DefaultJSONParser.smali 
.class public Lcom/alibaba/fastjson/parser/DefaultJSONParser;
.super Ljava/lang/Object;
.source "DefaultJSONParser.java"
# interfaces
.implements Ljava/io/Closeable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    }
.end annotation
# static fields
.field public static final NONE:I = 0x0
.field public static final NeedToResolve:I = 0x1
.field public static final TypeNameRedirect:I = 0x2
.field private static final primitiveClasses:Ljava/util/Set;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Set<",
            "Ljava/lang/Class<",
            "*>;>;"
        }
    .end annotation
.end field
# instance fields
.field private autoTypeAccept:[Ljava/lang/String;
.field private autoTypeEnable:Z
.field protected config:Lcom/alibaba/fastjson/parser/ParserConfig;
.field protected context:Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArrayIndex:I
.field private dateFormat:Ljava/text/DateFormat;
.field private dateFormatPattern:Ljava/lang/String;
.field private extraProcessors:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
            ">;"
        }
    .end annotation
.end field
.field private extraTypeProviders:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
            ">;"
        }
    .end annotation
.end field
.field protected fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
.field public final input:Ljava/lang/Object;
.field protected transient lastBeanContext:Lcom/alibaba/fastjson/serializer/BeanContext;
.field public final lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.field private objectKeyLevel:I
.field public resolveStatus:I
.field private resolveTaskList:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;",
            ">;"
        }
    .end annotation
.end field
.field public final symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
# direct methods
.method static constructor <clinit>()V
    .registers 4
    .line 46
    new-instance v0, Ljava/util/HashSet;
    invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
    sput-object v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->primitiveClasses:Ljava/util/Set;
    const/16 v1, 0x11
    new-array v1, v1, [Ljava/lang/Class;
    .line 78
    sget-object v2, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x0
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x1
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x2
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x3
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x4
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x5
    aput-object v2, v1, v3
    sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
    const/4 v3, 0x6
    aput-object v2, v1, v3
    const/4 v2, 0x7
    const-class v3, Ljava/lang/Boolean;
    aput-object v3, v1, v2
    const/16 v2, 0x8
    const-class v3, Ljava/lang/Byte;
    aput-object v3, v1, v2
    const/16 v2, 0x9
    const-class v3, Ljava/lang/Short;
    aput-object v3, v1, v2
    const/16 v2, 0xa
    const-class v3, Ljava/lang/Integer;
    aput-object v3, v1, v2
    const/16 v2, 0xb
    const-class v3, Ljava/lang/Long;
    aput-object v3, v1, v2
    const/16 v2, 0xc
    const-class v3, Ljava/lang/Float;
    aput-object v3, v1, v2
    const/16 v2, 0xd
    const-class v3, Ljava/lang/Double;
    aput-object v3, v1, v2
    const/16 v2, 0xe
    const-class v3, Ljava/math/BigInteger;
    aput-object v3, v1, v2
    const/16 v2, 0xf
    const-class v3, Ljava/math/BigDecimal;
    aput-object v3, v1, v2
    const/16 v2, 0x10
    const-class v3, Ljava/lang/String;
    aput-object v3, v1, v2
    .line 100
    invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
    move-result-object v1
    invoke-interface {v0, v1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
    return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;)V
    .registers 3
    .line 149
    invoke-static {}, Lcom/alibaba/fastjson/parser/ParserConfig;->getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
    move-result-object v0
    invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    .registers 4
    const/4 v0, 0x0
    .line 153
    invoke-direct {p0, v0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    return-void
.end method
.method public constructor <init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    .registers 6
    .line 156
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    .line 48
    sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
    const/4 v0, 0x0
    .line 56
    iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    .line 64
    iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    const/4 v1, 0x0
    .line 66
    iput-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
    .line 67
    iput-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
    .line 68
    iput-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    .line 70
    iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->objectKeyLevel:I
    .line 73
    iput-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->autoTypeAccept:[Ljava/lang/String;
    .line 157
    iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 158
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
    .line 159
    iput-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    .line 160
    iget-object p1, p3, Lcom/alibaba/fastjson/parser/ParserConfig;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    .line 162
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result p1
    const/16 p3, 0x7b
    if-ne p1, p3, :cond_33
    .line 164
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 165
    check-cast p2, Lcom/alibaba/fastjson/parser/JSONLexerBase;
    const/16 p1, 0xc
    iput p1, p2, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
    goto :goto_44
    :cond_33
    const/16 p3, 0x5b
    if-ne p1, p3, :cond_41
    .line 167
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 168
    check-cast p2, Lcom/alibaba/fastjson/parser/JSONLexerBase;
    const/16 p1, 0xe
    iput p1, p2, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
    goto :goto_44
    .line 170
    :cond_41
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    :goto_44
    return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
    .registers 4
    .line 133
    invoke-static {}, Lcom/alibaba/fastjson/parser/ParserConfig;->getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
    move-result-object v0
    sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
    invoke-direct {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
    return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    .registers 5
    .line 137
    new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
    sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
    invoke-direct {v0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
    invoke-direct {p0, p1, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
    .registers 5
    .line 141
    new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
    invoke-direct {v0, p1, p3}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
    invoke-direct {p0, p1, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    return-void
.end method
.method public constructor <init>([CILcom/alibaba/fastjson/parser/ParserConfig;I)V
    .registers 6
    .line 145
    new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
    invoke-direct {v0, p1, p2, p4}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>([CII)V
    invoke-direct {p0, p1, v0, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
    return-void
.end method
.method private addContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .registers 7
    .line 1377
    iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    add-int/lit8 v1, v0, 0x1
    iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    .line 1378
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    if-nez v1, :cond_11
    const/16 v1, 0x8
    new-array v1, v1, [Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1379
    iput-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    goto :goto_22
    .line 1380
    :cond_11
    array-length v2, v1
    if-lt v0, v2, :cond_22
    .line 1381
    array-length v2, v1
    mul-int/lit8 v2, v2, 0x3
    div-int/lit8 v2, v2, 0x2
    .line 1382
    new-array v2, v2, [Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1383
    array-length v3, v1
    const/4 v4, 0x0
    invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
    .line 1384
    iput-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1386
    :cond_22
    :goto_22
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    aput-object p1, v1, v0
    return-void
.end method
# virtual methods
.method public final accept(I)V
    .registers 6
    .line 1527
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1528
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    if-ne v1, p1, :cond_c
    .line 1529
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-void
    .line 1531
    :cond_c
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, expect "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object p1
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string p1, ", actual "
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    .line 1532
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result p1
    invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object p1
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-direct {v1, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
.end method
.method public final accept(II)V
    .registers 5
    .line 1537
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1538
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    if-ne v1, p1, :cond_c
    .line 1539
    invoke-interface {v0, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_f
    .line 1541
    :cond_c
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->throwException(I)V
    :goto_f
    return-void
.end method
.method public acceptType(Ljava/lang/String;)V
    .registers 6
    .line 1081
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1083
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon()V
    .line 1085
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const-string v2, "type not match error"
    const/4 v3, 0x4
    if-ne v1, v3, :cond_2d
    .line 1089
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v1
    invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result p1
    if-eqz p1, :cond_27
    .line 1090
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1091
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result p1
    const/16 v1, 0x10
    if-ne p1, v1, :cond_26
    .line 1092
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    :cond_26
    return-void
    .line 1095
    :cond_27
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {p1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1086
    :cond_2d
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {p1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
    .registers 4
    .line 1303
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    if-nez v0, :cond_c
    .line 1304
    new-instance v0, Ljava/util/ArrayList;
    const/4 v1, 0x2
    invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    .line 1306
    :cond_c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    return-void
.end method
.method public checkListResolve(Ljava/util/Collection;)V
    .registers 6
    .line 1119
    iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    const/4 v1, 0x1
    if-ne v0, v1, :cond_36
    .line 1120
    instance-of v0, p1, Ljava/util/List;
    const/4 v2, 0x0
    if-eqz v0, :cond_24
    .line 1121
    invoke-interface {p1}, Ljava/util/Collection;->size()I
    move-result v0
    sub-int/2addr v0, v1
    .line 1122
    check-cast p1, Ljava/util/List;
    .line 1123
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    move-result-object v1
    .line 1124
    new-instance v3, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;
    invoke-direct {v3, p0, p1, v0}, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/util/List;I)V
    iput-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
    .line 1125
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iput-object p1, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1126
    invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    goto :goto_36
    .line 1128
    :cond_24
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    move-result-object v0
    .line 1129
    new-instance v1, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;
    invoke-direct {v1, p1}, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;-><init>(Ljava/util/Collection;)V
    iput-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
    .line 1130
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iput-object p1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1131
    invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    :cond_36
    :goto_36
    return-void
.end method
.method public checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
    .registers 5
    .line 1138
    iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    const/4 v1, 0x1
    if-ne v0, v1, :cond_18
    .line 1139
    new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;
    invoke-direct {v0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/ResolveFieldDeserializer;-><init>(Ljava/util/Map;Ljava/lang/Object;)V
    .line 1140
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    move-result-object p1
    .line 1141
    iput-object v0, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
    .line 1142
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iput-object p2, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    const/4 p1, 0x0
    .line 1143
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    :cond_18
    return-void
.end method
.method public close()V
    .registers 5
    .line 1551
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1554
    :try_start_2
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->AutoCloseSource:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v1
    if-eqz v1, :cond_32
    .line 1555
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0x14
    if-ne v1, v2, :cond_13
    goto :goto_32
    .line 1556
    :cond_13
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "not close json text, token : "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
    :try_end_32
    .catchall {:try_start_2 .. :try_end_32} :catchall_36
    .line 1560
    :cond_32
    :goto_32
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
    return-void
    :catchall_36
    move-exception v1
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
    .line 1561
    throw v1
.end method
.method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V
    .registers 4
    .line 1515
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->config(Lcom/alibaba/fastjson/parser/Feature;Z)V
    return-void
.end method
.method public getConfig()Lcom/alibaba/fastjson/parser/ParserConfig;
    .registers 2
    .line 656
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    return-object v0
.end method
.method public getContext()Lcom/alibaba/fastjson/parser/ParseContext;
    .registers 2
    .line 1288
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    return-object v0
.end method
.method public getDateFomartPattern()Ljava/lang/String;
    .registers 2
    .line 104
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
    return-object v0
.end method
.method public getDateFormat()Ljava/text/DateFormat;
    .registers 4
    .line 108
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
    if-nez v0, :cond_1c
    .line 109
    new-instance v0, Ljava/text/SimpleDateFormat;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->getLocale()Ljava/util/Locale;
    move-result-object v2
    invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
    .line 110
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->getTimeZone()Ljava/util/TimeZone;
    move-result-object v1
    invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
    .line 112
    :cond_1c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
    return-object v0
.end method
.method public getExtraProcessors()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
            ">;"
        }
    .end annotation
    .line 1314
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
    if-nez v0, :cond_c
    .line 1315
    new-instance v0, Ljava/util/ArrayList;
    const/4 v1, 0x2
    invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
    .line 1317
    :cond_c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
    return-object v0
.end method
.method public getExtraTypeProviders()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
            ">;"
        }
    .end annotation
    .line 1321
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
    if-nez v0, :cond_c
    .line 1322
    new-instance v0, Ljava/util/ArrayList;
    const/4 v1, 0x2
    invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
    .line 1324
    :cond_c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
    return-object v0
.end method
.method public getFieldTypeResolver()Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    .registers 2
    .line 1328
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    return-object v0
.end method
.method public getInput()Ljava/lang/String;
    .registers 3
    .line 179
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
    instance-of v1, v0, [C
    if-eqz v1, :cond_12
    .line 180
    new-instance v0, Ljava/lang/String;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->input:Ljava/lang/Object;
    check-cast v1, [C
    check-cast v1, [C
    invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
    return-object v0
    .line 182
    :cond_12
    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
    move-result-object v0
    return-object v0
.end method
.method public getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    .registers 3
    .line 1310
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    invoke-interface {v0}, Ljava/util/List;->size()I
    move-result v1
    add-int/lit8 v1, v1, -0x1
    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    return-object v0
.end method
.method public getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
    .registers 2
    .line 1523
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    return-object v0
.end method
.method public getObject(Ljava/lang/String;)Ljava/lang/Object;
    .registers 4
    const/4 v0, 0x0
    .line 1108
    :goto_1
    iget v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    if-ge v0, v1, :cond_1d
    .line 1109
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    aget-object v1, v1, v0
    invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/ParseContext;->toString()Ljava/lang/String;
    move-result-object v1
    invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v1
    if-eqz v1, :cond_1a
    .line 1110
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    aget-object p1, p1, v0
    iget-object p1, p1, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    return-object p1
    :cond_1a
    add-int/lit8 v0, v0, 0x1
    goto :goto_1
    :cond_1d
    const/4 p1, 0x0
    return-object p1
.end method
.method public getOwnerContext()Lcom/alibaba/fastjson/parser/ParseContext;
    .registers 2
    .line 1292
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    return-object v0
.end method
.method public getResolveStatus()I
    .registers 2
    .line 1100
    iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    return v0
.end method
.method public getResolveTaskList()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;",
            ">;"
        }
    .end annotation
    .line 1296
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    if-nez v0, :cond_c
    .line 1297
    new-instance v0, Ljava/util/ArrayList;
    const/4 v1, 0x2
    invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    .line 1299
    :cond_c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    return-object v0
.end method
.method public getSymbolTable()Lcom/alibaba/fastjson/parser/SymbolTable;
    .registers 2
    .line 175
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    return-object v0
.end method
.method public handleResovleTask(Ljava/lang/Object;)V
    .registers 13
    .line 1578
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    if-nez v0, :cond_5
    return-void
    .line 1582
    :cond_5
    invoke-interface {v0}, Ljava/util/List;->size()I
    move-result v0
    const/4 v1, 0x0
    move v2, v1
    :goto_b
    if-ge v2, v0, :cond_ac
    .line 1583
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
    invoke-interface {v3, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
    move-result-object v3
    check-cast v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    .line 1584
    iget-object v4, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->referenceValue:Ljava/lang/String;
    const/4 v5, 0x0
    .line 1587
    iget-object v6, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v6, :cond_20
    .line 1588
    iget-object v5, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v5, v5, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    :cond_20
    const-string v6, "$"
    .line 1593
    invoke-virtual {v4, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
    move-result v6
    if-eqz v6, :cond_45
    .line 1594
    invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getObject(Ljava/lang/String;)Ljava/lang/Object;
    move-result-object v6
    if-nez v6, :cond_49
    .line 1597
    :try_start_2e
    new-instance v7, Lcom/alibaba/fastjson/JSONPath;
    invoke-static {}, Lcom/alibaba/fastjson/serializer/SerializeConfig;->getGlobalInstance()Lcom/alibaba/fastjson/serializer/SerializeConfig;
    move-result-object v8
    iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    const/4 v10, 0x1
    invoke-direct {v7, v4, v8, v9, v10}, Lcom/alibaba/fastjson/JSONPath;-><init>(Ljava/lang/String;Lcom/alibaba/fastjson/serializer/SerializeConfig;Lcom/alibaba/fastjson/parser/ParserConfig;Z)V
    .line 1598
    invoke-virtual {v7}, Lcom/alibaba/fastjson/JSONPath;->isRef()Z
    move-result v8
    if-eqz v8, :cond_49
    .line 1599
    invoke-virtual {v7, p1}, Lcom/alibaba/fastjson/JSONPath;->eval(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v6
    :try_end_44
    .catch Lcom/alibaba/fastjson/JSONPathException; {:try_start_2e .. :try_end_44} :catch_49
    goto :goto_49
    .line 1606
    :cond_45
    iget-object v6, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v6, v6, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    .line 1609
    :catch_49
    :cond_49
    :goto_49
    iget-object v7, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
    if-eqz v7, :cond_a8
    if-eqz v6, :cond_7b
    .line 1613
    invoke-virtual {v6}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v8
    const-class v9, Lcom/alibaba/fastjson/JSONObject;
    if-ne v8, v9, :cond_7b
    iget-object v8, v7, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo;
    if-eqz v8, :cond_7b
    const-class v8, Ljava/util/Map;
    iget-object v9, v7, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo;
    iget-object v9, v9, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
    .line 1615
    invoke-virtual {v8, v9}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
    move-result v8
    if-nez v8, :cond_7b
    .line 1616
    iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    aget-object v8, v8, v1
    iget-object v8, v8, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    .line 1617
    invoke-static {v4}, Lcom/alibaba/fastjson/JSONPath;->compile(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONPath;
    move-result-object v4
    .line 1618
    invoke-virtual {v4}, Lcom/alibaba/fastjson/JSONPath;->isRef()Z
    move-result v9
    if-eqz v9, :cond_7b
    .line 1619
    invoke-virtual {v4, v8}, Lcom/alibaba/fastjson/JSONPath;->eval(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v6
    .line 1624
    :cond_7b
    invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->getOwnerClass()Ljava/lang/Class;
    move-result-object v4
    if-eqz v4, :cond_a5
    .line 1625
    invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->getOwnerClass()Ljava/lang/Class;
    move-result-object v4
    invoke-virtual {v4, v5}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
    move-result v4
    if-nez v4, :cond_a5
    iget-object v4, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v4, v4, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v4, :cond_a5
    .line 1628
    iget-object v3, v3, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
    :cond_93
    iget-object v3, v3, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v3, :cond_a5
    .line 1629
    invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->getOwnerClass()Ljava/lang/Class;
    move-result-object v4
    iget-object v8, v3, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    invoke-virtual {v4, v8}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
    move-result v4
    if-eqz v4, :cond_93
    .line 1630
    iget-object v5, v3, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    .line 1636
    :cond_a5
    invoke-virtual {v7, v5, v6}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
    :cond_a8
    add-int/lit8 v2, v2, 0x1
    goto/16 :goto_b
    :cond_ac
    return-void
.end method
.method public isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    .registers 3
    .line 1519
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result p1
    return p1
.end method
.method public parse()Ljava/lang/Object;
    .registers 2
    const/4 v0, 0x0
    .line 1390
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v0
    return-object v0
.end method
.method public parse(Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessable;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 13
    .line 1686
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/4 v1, 0x0
    const/16 v2, 0xc
    if-eq v0, v2, :cond_8c
    .line 1687
    new-instance p1, Ljava/lang/StringBuilder;
    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v0, "syntax error, expect {, actual "
    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    .line 1688
    instance-of v0, p2, Ljava/lang/String;
    if-eqz v0, :cond_46
    .line 1689
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string p1, ", fieldName "
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    .line 1690
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    .line 1692
    :cond_46
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string p1, ", "
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    .line 1693
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object p1
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    .line 1695
    new-instance v0, Lcom/alibaba/fastjson/JSONArray;
    invoke-direct {v0}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
    .line 1696
    invoke-virtual {p0, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    .line 1698
    invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONArray;->size()I
    move-result p2
    const/4 v2, 0x1
    if-ne p2, v2, :cond_86
    .line 1699
    invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/JSONArray;->get(I)Ljava/lang/Object;
    move-result-object p2
    .line 1700
    instance-of v0, p2, Lcom/alibaba/fastjson/JSONObject;
    if-eqz v0, :cond_86
    .line 1701
    check-cast p2, Lcom/alibaba/fastjson/JSONObject;
    return-object p2
    .line 1705
    :cond_86
    new-instance p2, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {p2, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p2
    .line 1708
    :cond_8c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1711
    :goto_8e
    :try_start_8e
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1712
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v2
    .line 1713
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v4, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v3
    if-eqz v3, :cond_b8
    :goto_a3
    const/16 v3, 0x2c
    if-ne v2, v3, :cond_b8
    .line 1715
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 1716
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1717
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v2
    :try_end_b7
    .catchall {:try_start_8e .. :try_end_b7} :catchall_260
    goto :goto_a3
    :cond_b8
    const-string v3, "expect \':\' at "
    const/16 v4, 0x3a
    const/16 v5, 0x22
    const/16 v6, 0x10
    if-ne v2, v5, :cond_f4
    .line 1723
    :try_start_c2
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v2, v7, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v2
    .line 1724
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1725
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v4, :cond_d9
    goto/16 :goto_171
    .line 1727
    :cond_d9
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v1
    invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    :cond_f4
    const/16 v7, 0x7d
    if-ne v2, v7, :cond_10b
    .line 1730
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 1731
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 1732
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_107
    .catchall {:try_start_c2 .. :try_end_107} :catchall_260
    .line 1823
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object p1
    :cond_10b
    const-string v7, "syntax error"
    const/16 v8, 0x27
    if-ne v2, v8, :cond_152
    .line 1735
    :try_start_111
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->AllowSingleQuotes:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v2, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v2
    if-eqz v2, :cond_14c
    .line 1739
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v2, v7, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v2
    .line 1740
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1741
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v4, :cond_131
    goto :goto_171
    .line 1743
    :cond_131
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v1
    invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1736
    :cond_14c
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {p1, v7}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1746
    :cond_152
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowUnQuotedFieldNames:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v2, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v2
    if-eqz v2, :cond_25a
    .line 1750
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
    move-result-object v2
    .line 1751
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1752
    iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v4, :cond_237
    .line 1758
    :goto_171
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 1759
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 1760
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    .line 1762
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 1764
    sget-object v3, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
    const/16 v4, 0xd
    const/4 v7, 0x0
    if-ne v2, v3, :cond_1ea
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v3, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v3
    if-nez v3, :cond_1ea
    .line 1765
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v2, v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v2
    .line 1767
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->getFeatures()I
    move-result v5
    invoke-virtual {v3, v2, v7, v5}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
    move-result-object v2
    .line 1769
    const-class v3, Ljava/util/Map;
    invoke-virtual {v3, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
    move-result v3
    if-eqz v3, :cond_1c8
    .line 1770
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1771
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    if-ne v2, v4, :cond_22f
    .line 1772
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_1c4
    .catchall {:try_start_111 .. :try_end_1c4} :catchall_260
    .line 1823
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object p1
    .line 1778
    :cond_1c8
    :try_start_1c8
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {p1, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object p1
    .line 1780
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    const/4 v1, 0x2
    .line 1782
    invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    if-eqz v0, :cond_1e0
    .line 1784
    instance-of v1, p2, Ljava/lang/Integer;
    if-nez v1, :cond_1e0
    .line 1785
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V
    .line 1788
    :cond_1e0
    invoke-interface {p1, p0, v2, p2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    check-cast p1, Ljava/util/Map;
    :try_end_1e6
    .catchall {:try_start_1c8 .. :try_end_1e6} :catchall_260
    .line 1823
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object p1
    .line 1792
    :cond_1ea
    :try_start_1ea
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    if-eqz v1, :cond_1f4
    .line 1795
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 1798
    :cond_1f4
    invoke-interface {p1, v2}, Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessable;->getType(Ljava/lang/String;)Ljava/lang/reflect/Type;
    move-result-object v3
    .line 1800
    iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/16 v6, 0x8
    if-ne v5, v6, :cond_208
    .line 1802
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    goto :goto_20c
    .line 1804
    :cond_208
    invoke-virtual {p0, v3, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v7
    .line 1807
    :goto_20c
    invoke-interface {p1, v2, v7}, Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessable;->apply(Ljava/lang/String;Ljava/lang/Object;)V
    .line 1809
    invoke-virtual {p0, v0, v7, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1810
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 1812
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    const/16 v3, 0x14
    if-eq v2, v3, :cond_233
    const/16 v3, 0xf
    if-ne v2, v3, :cond_224
    goto :goto_233
    :cond_224
    if-ne v2, v4, :cond_22f
    .line 1818
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    :try_end_22b
    .catchall {:try_start_1ea .. :try_end_22b} :catchall_260
    .line 1823
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object p1
    :cond_22f
    add-int/lit8 v1, v1, 0x1
    goto/16 :goto_8e
    :cond_233
    :goto_233
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object p1
    .line 1754
    :cond_237
    :try_start_237
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v1
    invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v1, ", actual "
    invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1747
    :cond_25a
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {p1, v7}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    :try_end_260
    .catchall {:try_start_237 .. :try_end_260} :catchall_260
    :catchall_260
    move-exception p1
    .line 1823
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 1824
    throw p1
.end method
.method public parse(Ljava/lang/Object;)Ljava/lang/Object;
    .registers 9
    .line 1403
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1404
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/4 v2, 0x2
    if-eq v1, v2, :cond_182
    const/4 v3, 0x3
    if-eq v1, v3, :cond_174
    const/4 v3, 0x4
    if-eq v1, v3, :cond_142
    const/16 v3, 0xc
    if-eq v1, v3, :cond_113
    const/16 v3, 0xe
    if-eq v1, v3, :cond_ef
    const-string v3, "syntax error, "
    const/16 v4, 0x12
    const/4 v5, 0x0
    if-eq v1, v4, :cond_c6
    const/16 v6, 0x1a
    if-eq v1, v6, :cond_be
    packed-switch v1, :pswitch_data_18a
    packed-switch v1, :pswitch_data_196
    .line 1510
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1469
    :pswitch_41
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v5
    .line 1411
    :pswitch_45
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1412
    new-instance v0, Ljava/util/TreeSet;
    invoke-direct {v0}, Ljava/util/TreeSet;-><init>()V
    .line 1413
    invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    return-object v0
    .line 1406
    :pswitch_51
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1407
    new-instance v0, Ljava/util/HashSet;
    invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
    .line 1408
    invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    return-object v0
    .line 1493
    :pswitch_5d
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->isBlankInput()Z
    move-result p1
    if-eqz p1, :cond_64
    return-object v5
    .line 1496
    :cond_64
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "unterminated json string, "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1478
    :pswitch_7f
    invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1480
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result p1
    if-ne p1, v4, :cond_a6
    const/16 p1, 0xa
    .line 1483
    invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1485
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
    .line 1486
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
    move-result-object p1
    invoke-virtual {p1}, Ljava/lang/Number;->longValue()J
    move-result-wide v0
    .line 1487
    invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
    const/16 p1, 0xb
    .line 1489
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
    .line 1491
    new-instance p1, Ljava/util/Date;
    invoke-direct {p1, v0, v1}, Ljava/util/Date;-><init>(J)V
    return-object p1
    .line 1481
    :cond_a6
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    const-string v0, "syntax error"
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1466
    :pswitch_ae
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v5
    .line 1475
    :pswitch_b2
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1476
    sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
    return-object p1
    .line 1472
    :pswitch_b8
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1473
    sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
    return-object p1
    .line 1498
    :cond_be
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->bytesValue()[B
    move-result-object p1
    .line 1499
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object p1
    .line 1502
    :cond_c6
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object p1
    const-string v1, "NaN"
    .line 1503
    invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result p1
    if-eqz p1, :cond_d6
    .line 1504
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v5
    .line 1507
    :cond_d6
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1416
    :cond_ef
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->UseNativeJavaObject:Lcom/alibaba/fastjson/parser/Feature;
    invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v1
    if-eqz v1, :cond_fd
    new-instance v1, Ljava/util/ArrayList;
    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
    goto :goto_102
    :cond_fd
    new-instance v1, Lcom/alibaba/fastjson/JSONArray;
    invoke-direct {v1}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
    .line 1419
    :goto_102
    invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    .line 1420
    sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->UseObjectArray:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result p1
    if-eqz p1, :cond_112
    .line 1421
    invoke-interface {v1}, Ljava/util/Collection;->toArray()[Ljava/lang/Object;
    move-result-object p1
    return-object p1
    :cond_112
    return-object v1
    .line 1425
    :cond_113
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->UseNativeJavaObject:Lcom/alibaba/fastjson/parser/Feature;
    invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v1
    if-eqz v1, :cond_12f
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    .line 1426
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_129
    new-instance v0, Ljava/util/HashMap;
    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
    goto :goto_13b
    :cond_129
    new-instance v0, Ljava/util/LinkedHashMap;
    invoke-direct {v0}, Ljava/util/LinkedHashMap;-><init>()V
    goto :goto_13b
    :cond_12f
    new-instance v1, Lcom/alibaba/fastjson/JSONObject;
    sget-object v2, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    .line 1429
    invoke-interface {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONObject;-><init>(Z)V
    move-object v0, v1
    :goto_13b
    check-cast v0, Ljava/util/Map;
    .line 1430
    invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    return-object p1
    .line 1450
    :cond_142
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object p1
    const/16 v1, 0x10
    .line 1451
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1453
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_173
    .line 1454
    new-instance v0, Lcom/alibaba/fastjson/parser/JSONScanner;
    invoke-direct {v0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
    .line 1456
    :try_start_158
    invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
    move-result v1
    if-eqz v1, :cond_16a
    .line 1457
    invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
    move-result-object p1
    invoke-virtual {p1}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
    move-result-object p1
    :try_end_166
    .catchall {:try_start_158 .. :try_end_166} :catchall_16e
    .line 1460
    invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
    return-object p1
    :cond_16a
    invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
    goto :goto_173
    :catchall_16e
    move-exception p1
    invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
    .line 1461
    throw p1
    :cond_173
    :goto_173
    return-object p1
    .line 1446
    :cond_174
    sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result p1
    invoke-interface {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
    move-result-object p1
    .line 1447
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object p1
    .line 1442
    :cond_182
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
    move-result-object p1
    .line 1443
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object p1
    :pswitch_data_18a
    .packed-switch 0x6
        :pswitch_b8
        :pswitch_b2
        :pswitch_ae
        :pswitch_7f
    .end packed-switch
    :pswitch_data_196
    .packed-switch 0x14
        :pswitch_5d
        :pswitch_51
        :pswitch_45
        :pswitch_41
    .end packed-switch
.end method
.method public parseArray(Ljava/lang/Class;)Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;)",
            "Ljava/util/List<",
            "TT;>;"
        }
    .end annotation
    .line 715
    new-instance v0, Ljava/util/ArrayList;
    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
    .line 716
    invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
    return-object v0
.end method
.method public parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;",
            "Ljava/util/Collection;",
            ")V"
        }
    .end annotation
    .line 721
    invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
    return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
    .registers 4
    const/4 v0, 0x0
    .line 726
    invoke-virtual {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
    return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
    .registers 11
    .line 731
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/16 v1, 0x15
    if-eq v0, v1, :cond_e
    const/16 v1, 0x16
    if-ne v0, v1, :cond_19
    .line 733
    :cond_e
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 734
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    :cond_19
    const/16 v1, 0xe
    if-ne v0, v1, :cond_e7
    .line 742
    sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    const/4 v1, 0x4
    if-ne v0, p1, :cond_2b
    .line 743
    sget-object v0, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
    .line 744
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    const/4 v3, 0x2
    invoke-interface {v2, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_46
    .line 745
    :cond_2b
    const-class v0, Ljava/lang/String;
    if-ne v0, p1, :cond_37
    .line 746
    sget-object v0, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
    .line 747
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_46
    .line 749
    :cond_37
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v0
    .line 750
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
    move-result v3
    invoke-interface {v2, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 753
    :goto_46
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 754
    invoke-virtual {p0, p2, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    const/4 p3, 0x0
    .line 757
    :goto_4c
    :try_start_4c
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v4, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v3
    const/16 v4, 0x10
    if-eqz v3, :cond_66
    .line 758
    :goto_58
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v4, :cond_66
    .line 759
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    goto :goto_58
    .line 764
    :cond_66
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    :try_end_6c
    .catchall {:try_start_4c .. :try_end_6c} :catchall_e2
    const/16 v5, 0xf
    if-ne v3, v5, :cond_79
    .line 804
    invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 807
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-void
    .line 768
    :cond_79
    :try_start_79
    sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    const/4 v5, 0x0
    if-ne v3, p1, :cond_88
    .line 769
    sget-object v3, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
    invoke-virtual {v3, p0, v5, v5}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v3
    .line 770
    invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
    goto :goto_cd
    .line 771
    :cond_88
    const-class v3, Ljava/lang/String;
    if-ne v3, p1, :cond_af
    .line 773
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v1, :cond_a0
    .line 774
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v5
    .line 775
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_ab
    .line 777
    :cond_a0
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v3
    if-nez v3, :cond_a7
    goto :goto_ab
    .line 781
    :cond_a7
    invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
    move-result-object v5
    .line 785
    :goto_ab
    invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
    goto :goto_cd
    .line 788
    :cond_af
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    const/16 v6, 0x8
    if-ne v3, v6, :cond_bf
    .line 789
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    goto :goto_c7
    .line 792
    :cond_bf
    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v3
    invoke-interface {v0, p0, p1, v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v5
    .line 794
    :goto_c7
    invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
    .line 795
    invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
    .line 798
    :goto_cd
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v4, :cond_de
    .line 799
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
    move-result v4
    invoke-interface {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_de
    .catchall {:try_start_79 .. :try_end_de} :catchall_e2
    :cond_de
    add-int/lit8 p3, p3, 0x1
    goto/16 :goto_4c
    :catchall_e2
    move-exception p1
    .line 804
    invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 805
    throw p1
    .line 738
    :cond_e7
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "field "
    invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p3, " expect \'[\', but "
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-static {v0}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object p3
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string p3, ", "
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object p3
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public final parseArray(Ljava/util/Collection;)V
    .registers 3
    const/4 v0, 0x0
    .line 1169
    invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    return-void
.end method
.method public final parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    .registers 12
    .line 1174
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1176
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0x15
    if-eq v1, v2, :cond_12
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0x16
    if-ne v1, v2, :cond_15
    .line 1177
    :cond_12
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 1180
    :cond_15
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0xe
    if-ne v1, v2, :cond_137
    const/4 v1, 0x4
    .line 1185
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1187
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v3, :cond_34
    iget v3, v3, Lcom/alibaba/fastjson/parser/ParseContext;->level:I
    const/16 v4, 0x200
    if-gt v3, v4, :cond_2c
    goto :goto_34
    .line 1188
    :cond_2c
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    const-string p2, "array level > 512"
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1191
    :cond_34
    :goto_34
    iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1192
    invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    const/4 p2, 0x0
    move v4, p2
    .line 1195
    :goto_3b
    :try_start_3b
    sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v5
    const/16 v6, 0x10
    if-eqz v5, :cond_4f
    .line 1196
    :goto_45
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    if-ne v5, v6, :cond_4f
    .line 1197
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    goto :goto_45
    .line 1203
    :cond_4f
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/4 v7, 0x2
    const/4 v8, 0x0
    if-eq v5, v7, :cond_10e
    const/4 v7, 0x3
    if-eq v5, v7, :cond_f7
    if-eq v5, v1, :cond_d0
    const/4 v7, 0x6
    if-eq v5, v7, :cond_ca
    const/4 v7, 0x7
    if-eq v5, v7, :cond_c4
    const/16 v7, 0x8
    if-eq v5, v7, :cond_c0
    const/16 v7, 0xc
    if-eq v5, v7, :cond_ac
    const/16 v7, 0x14
    if-eq v5, v7, :cond_a4
    const/16 v7, 0x17
    if-eq v5, v7, :cond_9f
    if-eq v5, v2, :cond_85
    const/16 v7, 0xf
    if-eq v5, v7, :cond_7e
    .line 1268
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v8
    goto/16 :goto_115
    .line 1263
    :cond_7e
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_81
    .catch Ljava/lang/ClassCastException; {:try_start_3b .. :try_end_81} :catch_12a
    .catchall {:try_start_3b .. :try_end_81} :catchall_128
    .line 1283
    invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-void
    .line 1246
    :cond_85
    :try_start_85
    new-instance v8, Lcom/alibaba/fastjson/JSONArray;
    invoke-direct {v8}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
    .line 1247
    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v5
    invoke-virtual {p0, v8, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    .line 1248
    sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->UseObjectArray:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v5
    if-eqz v5, :cond_115
    .line 1249
    invoke-interface {v8}, Ljava/util/Collection;->toArray()[Ljava/lang/Object;
    move-result-object v8
    goto/16 :goto_115
    .line 1260
    :cond_9f
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto/16 :goto_115
    .line 1266
    :cond_a4
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    const-string p2, "unclosed jsonArray"
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1242
    :cond_ac
    new-instance v5, Lcom/alibaba/fastjson/JSONObject;
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    invoke-direct {v5, v7}, Lcom/alibaba/fastjson/JSONObject;-><init>(Z)V
    .line 1243
    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v7
    invoke-virtual {p0, v5, v7}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v8
    goto :goto_115
    .line 1256
    :cond_c0
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_115
    .line 1238
    :cond_c4
    sget-object v8, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
    .line 1239
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_115
    .line 1234
    :cond_ca
    sget-object v8, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
    .line 1235
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_115
    .line 1217
    :cond_d0
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v8
    .line 1218
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1220
    sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v5
    if-eqz v5, :cond_115
    .line 1221
    new-instance v5, Lcom/alibaba/fastjson/parser/JSONScanner;
    invoke-direct {v5, v8}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
    .line 1222
    invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
    move-result v7
    if-eqz v7, :cond_f3
    .line 1223
    invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
    move-result-object v7
    invoke-virtual {v7}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
    move-result-object v7
    move-object v8, v7
    .line 1227
    :cond_f3
    invoke-virtual {v5}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
    goto :goto_115
    .line 1209
    :cond_f7
    sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v5
    if-eqz v5, :cond_105
    const/4 v5, 0x1
    .line 1210
    invoke-interface {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
    move-result-object v5
    goto :goto_109
    .line 1212
    :cond_105
    invoke-interface {v0, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
    move-result-object v5
    :goto_109
    move-object v8, v5
    .line 1214
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_115
    .line 1205
    :cond_10e
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
    move-result-object v8
    .line 1206
    invoke-interface {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 1272
    :cond_115
    :goto_115
    invoke-interface {p1, v8}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
    .line 1273
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
    .line 1275
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    if-ne v5, v6, :cond_124
    .line 1276
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_124
    .catch Ljava/lang/ClassCastException; {:try_start_85 .. :try_end_124} :catch_12a
    .catchall {:try_start_85 .. :try_end_124} :catchall_128
    :cond_124
    add-int/lit8 v4, v4, 0x1
    goto/16 :goto_3b
    :catchall_128
    move-exception p1
    goto :goto_133
    :catch_12a
    move-exception p1
    .line 1281
    :try_start_12b
    new-instance p2, Lcom/alibaba/fastjson/JSONException;
    const-string v0, "unkown error"
    invoke-direct {p2, v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
    throw p2
    :try_end_133
    .catchall {:try_start_12b .. :try_end_133} :catchall_128
    .line 1283
    :goto_133
    invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 1284
    throw p1
    .line 1181
    :cond_137
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "syntax error, expect [, actual "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object v2
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string v2, ", pos "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    .line 1182
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v0, ", fieldName "
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
    .registers 18
    move-object/from16 v0, p0
    move-object/from16 v1, p1
    .line 811
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    const/16 v3, 0x8
    const/4 v4, 0x0
    const/16 v5, 0x10
    if-ne v2, v3, :cond_17
    .line 812
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-object v4
    .line 816
    :cond_17
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    const/16 v6, 0xe
    if-ne v2, v6, :cond_1b0
    .line 820
    array-length v2, v1
    new-array v2, v2, [Ljava/lang/Object;
    .line 821
    array-length v7, v1
    const-string v8, "syntax error"
    const/4 v9, 0x0
    const/16 v10, 0xf
    if-nez v7, :cond_47
    .line 822
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 824
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    if-ne v1, v10, :cond_41
    .line 828
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    new-array v1, v9, [Ljava/lang/Object;
    return-object v1
    .line 825
    :cond_41
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v1, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
    .line 832
    :cond_47
    iget-object v7, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    const/4 v11, 0x2
    invoke-interface {v7, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    move v7, v9
    .line 834
    :goto_4e
    array-length v12, v1
    if-ge v7, v12, :cond_19c
    .line 837
    iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v12
    const-string v13, "syntax error :"
    if-ne v12, v3, :cond_63
    .line 839
    iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v12, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    move-object v12, v4
    goto/16 :goto_152
    .line 841
    :cond_63
    aget-object v12, v1, v7
    .line 842
    sget-object v14, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    if-eq v12, v14, :cond_130
    const-class v14, Ljava/lang/Integer;
    if-ne v12, v14, :cond_6f
    goto/16 :goto_130
    .line 850
    :cond_6f
    const-class v14, Ljava/lang/String;
    const/4 v15, 0x4
    if-ne v12, v14, :cond_95
    .line 851
    iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v14
    if-ne v14, v15, :cond_89
    .line 852
    iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v12
    .line 853
    iget-object v14, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v14, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto/16 :goto_152
    .line 855
    :cond_89
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v14
    .line 856
    iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-static {v14, v12, v15}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
    move-result-object v12
    goto/16 :goto_152
    .line 861
    :cond_95
    array-length v14, v1
    add-int/lit8 v14, v14, -0x1
    if-ne v7, v14, :cond_ba
    .line 862
    instance-of v14, v12, Ljava/lang/Class;
    if-eqz v14, :cond_ba
    .line 863
    move-object v14, v12
    check-cast v14, Ljava/lang/Class;
    .line 866
    const-class v3, [B
    if-eq v14, v3, :cond_a9
    const-class v3, [C
    if-ne v14, v3, :cond_b1
    :cond_a9
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-eq v3, v15, :cond_ba
    .line 867
    :cond_b1
    invoke-virtual {v14}, Ljava/lang/Class;->isArray()Z
    move-result v3
    .line 868
    invoke-virtual {v14}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
    move-result-object v14
    goto :goto_bc
    :cond_ba
    move-object v14, v4
    move v3, v9
    :goto_bc
    if-eqz v3, :cond_121
    .line 874
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-eq v3, v6, :cond_121
    .line 875
    new-instance v3, Ljava/util/ArrayList;
    invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
    .line 877
    iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v15, v14}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v14
    .line 878
    invoke-interface {v14}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
    move-result v15
    .line 880
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-eq v6, v10, :cond_11a
    .line 882
    :goto_dd
    invoke-interface {v14, v0, v12, v4}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v6
    .line 883
    invoke-interface {v3, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    .line 885
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-ne v6, v5, :cond_f2
    .line 886
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_dd
    .line 887
    :cond_f2
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-ne v6, v10, :cond_fb
    goto :goto_11a
    .line 890
    :cond_fb
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
    .line 895
    :cond_11a
    :goto_11a
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-static {v3, v12, v6}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
    move-result-object v12
    goto :goto_152
    .line 897
    :cond_121
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v3, v12}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v3
    .line 898
    invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v6
    invoke-interface {v3, v0, v12, v6}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v12
    goto :goto_152
    .line 843
    :cond_130
    :goto_130
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v11, :cond_148
    .line 844
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->intValue()I
    move-result v3
    invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    move-result-object v12
    .line 845
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_152
    .line 847
    :cond_148
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v3
    .line 848
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-static {v3, v12, v6}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
    move-result-object v12
    .line 902
    :goto_152
    aput-object v12, v2, v7
    .line 904
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v10, :cond_15d
    goto :goto_19c
    .line 908
    :cond_15d
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    if-ne v3, v5, :cond_17d
    .line 912
    array-length v3, v1
    add-int/lit8 v3, v3, -0x1
    if-ne v7, v3, :cond_170
    .line 913
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    goto :goto_175
    .line 915
    :cond_170
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :goto_175
    add-int/lit8 v7, v7, 0x1
    const/16 v3, 0x8
    const/16 v6, 0xe
    goto/16 :goto_4e
    .line 909
    :cond_17d
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
    .line 919
    :cond_19c
    :goto_19c
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    if-ne v1, v10, :cond_1aa
    .line 923
    iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-object v2
    .line 920
    :cond_1aa
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v1, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
    .line 817
    :cond_1b0
    new-instance v1, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error : "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v1
.end method
.method public parseArrayWithType(Ljava/lang/reflect/Type;)Ljava/lang/Object;
    .registers 8
    .line 1010
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/16 v1, 0x8
    if-ne v0, v1, :cond_11
    .line 1011
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    const/4 p1, 0x0
    return-object p1
    .line 1015
    :cond_11
    move-object v0, p1
    check-cast v0, Ljava/lang/reflect/ParameterizedType;
    invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
    move-result-object v0
    .line 1017
    array-length v1, v0
    const/4 v2, 0x1
    if-ne v1, v2, :cond_cc
    const/4 v1, 0x0
    .line 1021
    aget-object v0, v0, v1
    .line 1023
    instance-of v3, v0, Ljava/lang/Class;
    if-eqz v3, :cond_2e
    .line 1024
    new-instance p1, Ljava/util/ArrayList;
    invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
    .line 1025
    check-cast v0, Ljava/lang/Class;
    invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
    return-object p1
    .line 1029
    :cond_2e
    instance-of v3, v0, Ljava/lang/reflect/WildcardType;
    if-eqz v3, :cond_70
    .line 1030
    check-cast v0, Ljava/lang/reflect/WildcardType;
    .line 1033
    invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
    move-result-object v2
    aget-object v1, v2, v1
    .line 1036
    const-class v2, Ljava/lang/Object;
    invoke-virtual {v2, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
    move-result v2
    if-eqz v2, :cond_65
    .line 1037
    invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
    move-result-object v0
    array-length v0, v0
    if-nez v0, :cond_4e
    .line 1039
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object p1
    return-object p1
    .line 1041
    :cond_4e
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "not support type : "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 1045
    :cond_65
    new-instance p1, Ljava/util/ArrayList;
    invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
    .line 1046
    check-cast v1, Ljava/lang/Class;
    invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
    return-object p1
    .line 1053
    :cond_70
    instance-of v3, v0, Ljava/lang/reflect/TypeVariable;
    if-eqz v3, :cond_a6
    .line 1054
    move-object v3, v0
    check-cast v3, Ljava/lang/reflect/TypeVariable;
    .line 1055
    invoke-interface {v3}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
    move-result-object v4
    .line 1057
    array-length v5, v4
    if-ne v5, v2, :cond_8f
    .line 1061
    aget-object v1, v4, v1
    .line 1062
    instance-of v2, v1, Ljava/lang/Class;
    if-eqz v2, :cond_a6
    .line 1063
    new-instance p1, Ljava/util/ArrayList;
    invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
    .line 1064
    check-cast v1, Ljava/lang/Class;
    invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
    return-object p1
    .line 1058
    :cond_8f
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "not support : "
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 1069
    :cond_a6
    instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
    if-eqz v1, :cond_b5
    .line 1070
    check-cast v0, Ljava/lang/reflect/ParameterizedType;
    .line 1072
    new-instance p1, Ljava/util/ArrayList;
    invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
    .line 1073
    invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
    return-object p1
    .line 1077
    :cond_b5
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "TODO : "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 1018
    :cond_cc
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "not support type "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
.end method
.method public parseExtra(Ljava/lang/Object;Ljava/lang/String;)V
    .registers 6
    .line 1655
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1656
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon()V
    .line 1659
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
    const/4 v1, 0x0
    if-eqz v0, :cond_1f
    .line 1660
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object v0
    :goto_e
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
    move-result v2
    if-eqz v2, :cond_1f
    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v1
    check-cast v1, Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;
    .line 1661
    invoke-interface {v1, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;->getExtraType(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type;
    move-result-object v1
    goto :goto_e
    :cond_1f
    if-nez v1, :cond_26
    .line 1665
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v0
    goto :goto_2a
    .line 1666
    :cond_26
    invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
    move-result-object v0
    .line 1668
    :goto_2a
    instance-of v1, p1, Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessable;
    if-eqz v1, :cond_34
    .line 1669
    check-cast p1, Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessable;
    .line 1670
    invoke-interface {p1, p2, v0}, Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessable;->processExtra(Ljava/lang/String;Ljava/lang/Object;)V
    return-void
    .line 1674
    :cond_34
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
    if-eqz v1, :cond_4c
    .line 1675
    invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object v1
    :goto_3c
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
    move-result v2
    if-eqz v2, :cond_4c
    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v2
    check-cast v2, Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;
    .line 1676
    invoke-interface {v2, p1, p2, v0}, Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;->processExtra(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    goto :goto_3c
    .line 1680
    :cond_4c
    iget p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    const/4 p2, 0x1
    if-ne p1, p2, :cond_54
    const/4 p1, 0x0
    .line 1681
    iput p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    :cond_54
    return-void
.end method
.method public parseKey()Ljava/lang/Object;
    .registers 4
    .line 1394
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/16 v1, 0x12
    if-ne v0, v1, :cond_18
    .line 1395
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v0
    .line 1396
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    const/16 v2, 0x10
    invoke-interface {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-object v0
    :cond_18
    const/4 v0, 0x0
    .line 1399
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v0
    return-object v0
.end method
.method public parseObject()Lcom/alibaba/fastjson/JSONObject;
    .registers 4
    .line 1153
    new-instance v0, Lcom/alibaba/fastjson/JSONObject;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v2, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v1
    invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;-><init>(Z)V
    .line 1154
    invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;)Ljava/lang/Object;
    move-result-object v0
    .line 1156
    instance-of v1, v0, Lcom/alibaba/fastjson/JSONObject;
    if-eqz v1, :cond_18
    .line 1157
    check-cast v0, Lcom/alibaba/fastjson/JSONObject;
    return-object v0
    :cond_18
    if-nez v0, :cond_1c
    const/4 v0, 0x0
    return-object v0
    .line 1164
    :cond_1c
    new-instance v1, Lcom/alibaba/fastjson/JSONObject;
    check-cast v0, Ljava/util/Map;
    invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
    return-object v1
.end method
.method public parseObject(Ljava/lang/Class;)Ljava/lang/Object;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;)TT;"
        }
    .end annotation
    const/4 v0, 0x0
    .line 666
    invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/reflect/Type;",
            ")TT;"
        }
    .end annotation
    const/4 v0, 0x0
    .line 670
    invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/reflect/Type;",
            "Ljava/lang/Object;",
            ")TT;"
        }
    .end annotation
    .line 675
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/16 v1, 0x8
    if-ne v0, v1, :cond_14
    .line 677
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 679
    invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->optionalEmpty(Ljava/lang/reflect/Type;)Ljava/lang/Object;
    move-result-object p1
    return-object p1
    :cond_14
    const/4 v1, 0x4
    if-ne v0, v1, :cond_3b
    .line 683
    const-class v0, [B
    if-ne p1, v0, :cond_27
    .line 684
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->bytesValue()[B
    move-result-object p1
    .line 685
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object p1
    .line 689
    :cond_27
    const-class v0, [C
    if-ne p1, v0, :cond_3b
    .line 690
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object p1
    .line 691
    iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 692
    invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C
    move-result-object p1
    return-object p1
    .line 696
    :cond_3b
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v0
    .line 699
    :try_start_41
    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v1
    const-class v2, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    if-ne v1, v2, :cond_83
    .line 700
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0xc
    if-eq v1, v2, :cond_7b
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v1
    const/16 v2, 0xe
    if-ne v1, v2, :cond_5e
    goto :goto_7b
    .line 701
    :cond_5e
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v0, "syntax error,expect start with { or [,but actually start with "
    invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 703
    :cond_7b
    :goto_7b
    check-cast v0, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    const/4 v1, 0x0
    invoke-virtual {v0, p0, p1, p2, v1}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;I)Ljava/lang/Object;
    move-result-object p1
    return-object p1
    .line 705
    :cond_83
    invoke-interface {v0, p0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    :try_end_87
    .catch Lcom/alibaba/fastjson/JSONException; {:try_start_41 .. :try_end_87} :catch_93
    .catchall {:try_start_41 .. :try_end_87} :catchall_88
    return-object p1
    :catchall_88
    move-exception p1
    .line 710
    new-instance p2, Lcom/alibaba/fastjson/JSONException;
    invoke-virtual {p1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p2, v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
    throw p2
    :catch_93
    move-exception p1
    .line 708
    throw p1
.end method
.method public parseObject(Ljava/util/Map;)Ljava/lang/Object;
    .registers 3
    const/4 v0, 0x0
    .line 1149
    invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object p1
    return-object p1
.end method
.method public final parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
    .registers 20
    move-object/from16 v1, p0
    move-object/from16 v0, p1
    move-object/from16 v2, p2
    const-string v3, "parse number key error"
    .line 187
    iget-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 189
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/4 v6, 0x0
    const/16 v7, 0x8
    if-ne v5, v7, :cond_17
    .line 190
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v6
    .line 194
    :cond_17
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/16 v7, 0xd
    if-ne v5, v7, :cond_23
    .line 195
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v0
    .line 199
    :cond_23
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/4 v8, 0x4
    if-ne v5, v8, :cond_38
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v5
    invoke-virtual {v5}, Ljava/lang/String;->length()I
    move-result v5
    if-nez v5, :cond_38
    .line 200
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-object v0
    .line 204
    :cond_38
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    const/16 v9, 0xc
    const/16 v10, 0x10
    if-eq v5, v9, :cond_70
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v5
    if-ne v5, v10, :cond_49
    goto :goto_70
    .line 205
    :cond_49
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, expect {, actual "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string v3, ", "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 208
    :cond_70
    :goto_70
    iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 210
    :try_start_72
    instance-of v9, v0, Lcom/alibaba/fastjson/JSONObject;
    if-eqz v9, :cond_7e
    .line 211
    move-object v11, v0
    check-cast v11, Lcom/alibaba/fastjson/JSONObject;
    invoke-virtual {v11}, Lcom/alibaba/fastjson/JSONObject;->getInnerMap()Ljava/util/Map;
    move-result-object v11
    goto :goto_7f
    :cond_7e
    move-object v11, v0
    :goto_7f
    const/4 v13, 0x0
    .line 215
    :goto_80
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 216
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v14
    .line 217
    sget-object v15, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v15
    const/16 v8, 0x2c
    if-eqz v15, :cond_9e
    :goto_91
    if-ne v14, v8, :cond_9e
    .line 219
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 220
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 221
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v14
    :try_end_9d
    .catchall {:try_start_72 .. :try_end_9d} :catchall_6a9
    goto :goto_91
    :cond_9e
    const-string v6, ", name "
    const-string v12, "expect \':\' at "
    const/16 v15, 0x3a
    const/16 v7, 0x22
    const-string v8, "syntax error"
    const/4 v10, 0x1
    if-ne v14, v7, :cond_dc
    .line 228
    :try_start_ab
    iget-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v4, v14, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v14
    .line 229
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 230
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v15, :cond_bd
    :goto_ba
    const/4 v7, 0x0
    goto/16 :goto_213
    .line 232
    :cond_bd
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_dc
    const/16 v7, 0x7d
    if-ne v14, v7, :cond_107
    .line 235
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 236
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 237
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    if-nez v13, :cond_103
    .line 240
    iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v3, :cond_fc
    iget-object v3, v3, Lcom/alibaba/fastjson/parser/ParseContext;->fieldName:Ljava/lang/Object;
    if-ne v2, v3, :cond_fc
    iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v3, v3, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    if-ne v0, v3, :cond_fc
    .line 241
    iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    goto :goto_103
    .line 243
    :cond_fc
    invoke-virtual/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    move-result-object v2
    :try_end_100
    .catchall {:try_start_ab .. :try_end_100} :catchall_6a9
    if-nez v5, :cond_103
    move-object v5, v2
    .line 650
    :cond_103
    :goto_103
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    :cond_107
    const/16 v7, 0x27
    if-ne v14, v7, :cond_142
    .line 253
    :try_start_10b
    sget-object v14, Lcom/alibaba/fastjson/parser/Feature;->AllowSingleQuotes:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v14
    if-eqz v14, :cond_13c
    .line 257
    iget-object v14, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v4, v14, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v14
    .line 258
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 259
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v15, :cond_123
    goto :goto_ba
    .line 261
    :cond_123
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 254
    :cond_13c
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v0, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_142
    const/16 v7, 0x1a
    if-eq v14, v7, :cond_6a3
    const/16 v7, 0x2c
    if-eq v14, v7, :cond_69d
    const/16 v7, 0x30
    if-lt v14, v7, :cond_152
    const/16 v7, 0x39
    if-le v14, v7, :cond_156
    :cond_152
    const/16 v7, 0x2d
    if-ne v14, v7, :cond_1b8
    .line 268
    :cond_156
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 269
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
    :try_end_15c
    .catchall {:try_start_10b .. :try_end_15c} :catchall_6a9
    .line 271
    :try_start_15c
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/4 v12, 0x2
    if-ne v7, v12, :cond_168
    .line 272
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
    move-result-object v7
    goto :goto_16c
    .line 274
    :cond_168
    invoke-interface {v4, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
    move-result-object v7
    .line 276
    :goto_16c
    sget-object v12, Lcom/alibaba/fastjson/parser/Feature;->NonStringKeyAsString:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v12
    if-nez v12, :cond_179
    if-eqz v9, :cond_177
    goto :goto_179
    :cond_177
    :goto_177
    move-object v14, v7
    goto :goto_17e
    .line 277
    :cond_179
    :goto_179
    invoke-virtual {v7}, Ljava/lang/Object;->toString()Ljava/lang/String;
    move-result-object v7
    :try_end_17d
    .catch Ljava/lang/NumberFormatException; {:try_start_15c .. :try_end_17d} :catch_19f
    .catchall {:try_start_15c .. :try_end_17d} :catchall_6a9
    goto :goto_177
    .line 282
    :goto_17e
    :try_start_17e
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v15, :cond_186
    goto/16 :goto_ba
    .line 284
    :cond_186
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 280
    :catch_19f
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_1b8
    const/16 v7, 0x7b
    if-eq v14, v7, :cond_201
    const/16 v7, 0x5b
    if-ne v14, v7, :cond_1c1
    goto :goto_201
    .line 294
    :cond_1c1
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->AllowUnQuotedFieldNames:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    if-eqz v7, :cond_1fb
    .line 298
    iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
    move-result-object v14
    .line 299
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 300
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    if-ne v7, v15, :cond_1da
    goto/16 :goto_ba
    .line 302
    :cond_1da
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v3, ", actual "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 295
    :cond_1fb
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v0, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 287
    :cond_201
    :goto_201
    iget v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->objectKeyLevel:I
    add-int/lit8 v12, v7, 0x1
    iput v12, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->objectKeyLevel:I
    const/16 v12, 0x200
    if-gt v7, v12, :cond_695
    .line 290
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 291
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v14
    move v7, v10
    :goto_213
    if-nez v7, :cond_21b
    .line 307
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 308
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 311
    :cond_21b
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v7
    .line 313
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 315
    sget-object v12, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
    if-ne v14, v12, :cond_358
    sget-object v12, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature;
    .line 316
    invoke-interface {v4, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v12
    if-nez v12, :cond_358
    .line 317
    iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    const/16 v7, 0x22
    invoke-interface {v4, v6, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
    move-result-object v6
    .line 319
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->IgnoreAutoType:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    if-eqz v7, :cond_241
    :goto_23e
    const/4 v15, 0x4
    goto/16 :goto_38e
    :cond_241
    if-eqz v0, :cond_256
    .line 325
    invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v7
    invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;
    move-result-object v7
    invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v7
    if-eqz v7, :cond_256
    .line 326
    invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v7
    goto :goto_260
    :cond_256
    const-string v7, "java.util.HashMap"
    .line 327
    invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v7
    if-eqz v7, :cond_262
    .line 328
    const-class v7, Ljava/util/HashMap;
    :goto_260
    const/4 v12, 0x0
    goto :goto_295
    :cond_262
    const-string v7, "java.util.LinkedHashMap"
    .line 329
    invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v7
    if-eqz v7, :cond_26d
    .line 330
    const-class v7, Ljava/util/LinkedHashMap;
    goto :goto_260
    :cond_26d
    const/4 v7, 0x0
    .line 334
    :goto_26e
    invoke-virtual {v6}, Ljava/lang/String;->length()I
    move-result v8
    if-ge v7, v8, :cond_285
    .line 335
    invoke-virtual {v6, v7}, Ljava/lang/String;->charAt(I)C
    move-result v8
    const/16 v12, 0x30
    if-lt v8, v12, :cond_284
    const/16 v12, 0x39
    if-le v8, v12, :cond_281
    goto :goto_284
    :cond_281
    add-int/lit8 v7, v7, 0x1
    goto :goto_26e
    :cond_284
    :goto_284
    const/4 v10, 0x0
    :cond_285
    if-nez v10, :cond_293
    .line 343
    iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getFeatures()I
    move-result v8
    const/4 v12, 0x0
    invoke-virtual {v7, v6, v12, v8}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
    move-result-object v7
    goto :goto_295
    :cond_293
    const/4 v12, 0x0
    move-object v7, v12
    :goto_295
    if-nez v7, :cond_29d
    .line 348
    sget-object v7, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
    invoke-interface {v11, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    goto :goto_23e
    :cond_29d
    const/16 v3, 0x10
    .line 352
    invoke-interface {v4, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 353
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v8
    const/16 v9, 0xd
    if-ne v8, v9, :cond_2fb
    .line 354
    invoke-interface {v4, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_2ad
    .catchall {:try_start_17e .. :try_end_2ad} :catchall_6a9
    .line 357
    :try_start_2ad
    iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v2
    .line 358
    instance-of v2, v2, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    if-eqz v2, :cond_2be
    .line 359
    iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-static {v0, v7, v2}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
    move-result-object v0
    goto :goto_2bf
    :cond_2be
    move-object v0, v12
    :goto_2bf
    if-nez v0, :cond_2ee
    .line 363
    const-class v0, Ljava/lang/Cloneable;
    if-ne v7, v0, :cond_2cb
    .line 364
    new-instance v0, Ljava/util/HashMap;
    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
    goto :goto_2ee
    :cond_2cb
    const-string v0, "java.util.Collections$EmptyMap"
    .line 365
    invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_2d8
    .line 366
    invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
    move-result-object v0
    goto :goto_2ee
    :cond_2d8
    const-string v0, "java.util.Collections$UnmodifiableMap"
    .line 367
    invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_2ea
    .line 368
    new-instance v0, Ljava/util/HashMap;
    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
    invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
    move-result-object v0
    goto :goto_2ee
    .line 370
    :cond_2ea
    invoke-virtual {v7}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
    move-result-object v0
    :try_end_2ee
    .catch Ljava/lang/Exception; {:try_start_2ad .. :try_end_2ee} :catch_2f2
    .catchall {:try_start_2ad .. :try_end_2ee} :catchall_6a9
    .line 650
    :cond_2ee
    :goto_2ee
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    :catch_2f2
    move-exception v0
    .line 376
    :try_start_2f3
    new-instance v2, Lcom/alibaba/fastjson/JSONException;
    const-string v3, "create instance error"
    invoke-direct {v2, v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
    throw v2
    :cond_2fb
    const/4 v3, 0x2
    .line 380
    invoke-virtual {v1, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    .line 382
    iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v3, :cond_312
    if-eqz v2, :cond_312
    instance-of v4, v2, Ljava/lang/Integer;
    if-nez v4, :cond_312
    iget-object v3, v3, Lcom/alibaba/fastjson/parser/ParseContext;->fieldName:Ljava/lang/Object;
    instance-of v3, v3, Ljava/lang/Integer;
    if-nez v3, :cond_312
    .line 386
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V
    .line 389
    :cond_312
    invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I
    move-result v3
    if-lez v3, :cond_329
    .line 390
    iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-static {v0, v7, v2}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
    move-result-object v0
    const/4 v2, 0x0
    .line 391
    invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    .line 392
    invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/Object;)V
    :try_end_325
    .catchall {:try_start_2f3 .. :try_end_325} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    .line 396
    :cond_329
    :try_start_329
    iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v0
    .line 397
    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v3
    .line 398
    const-class v4, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    invoke-virtual {v4, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
    move-result v4
    if-eqz v4, :cond_348
    const-class v4, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    if-eq v3, v4, :cond_348
    const-class v4, Lcom/alibaba/fastjson/parser/deserializer/ThrowableDeserializer;
    if-eq v3, v4, :cond_348
    const/4 v3, 0x0
    .line 401
    invoke-virtual {v1, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    goto :goto_350
    .line 402
    :cond_348
    instance-of v3, v0, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
    if-eqz v3, :cond_350
    const/4 v15, 0x0
    .line 403
    invoke-virtual {v1, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    .line 405
    :cond_350
    :goto_350
    invoke-interface {v0, v1, v7, v2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v0
    :try_end_354
    .catchall {:try_start_329 .. :try_end_354} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    :cond_358
    const/4 v12, 0x0
    const/4 v15, 0x0
    const-string v12, "$ref"
    if-ne v14, v12, :cond_462
    if-eqz v5, :cond_462
    if-eqz v0, :cond_368
    .line 411
    :try_start_362
    invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I
    move-result v16
    if-nez v16, :cond_462
    :cond_368
    sget-object v15, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature;
    .line 412
    invoke-interface {v4, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v15
    if-nez v15, :cond_462
    const/4 v15, 0x4
    .line 413
    invoke-interface {v4, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 414
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-ne v6, v15, :cond_443
    .line 415
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v6
    const/16 v7, 0xd
    .line 416
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    .line 418
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/16 v8, 0x10
    if-ne v7, v8, :cond_396
    .line 419
    invoke-interface {v11, v14, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    :goto_38e
    move v8, v15
    const/4 v6, 0x0
    const/16 v7, 0xd
    const/16 v10, 0x10
    goto/16 :goto_80
    :cond_396
    const-string v0, "@"
    .line 424
    invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_3b8
    .line 425
    iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v0, :cond_40c
    .line 427
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    .line 428
    instance-of v3, v2, [Ljava/lang/Object;
    if-nez v3, :cond_3b6
    instance-of v3, v2, Ljava/util/Collection;
    if-eqz v3, :cond_3ad
    goto :goto_3b6
    .line 430
    :cond_3ad
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v2, :cond_40c
    .line 431
    iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v6, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    goto :goto_417
    :cond_3b6
    :goto_3b6
    move-object v6, v2
    goto :goto_417
    :cond_3b8
    const-string v0, ".."
    .line 434
    invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_3d3
    .line 435
    iget-object v0, v5, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    if-eqz v0, :cond_3c7
    .line 436
    iget-object v6, v5, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    goto :goto_417
    .line 438
    :cond_3c7
    new-instance v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    invoke-direct {v0, v5, v6}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
    invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
    .line 439
    invoke-virtual {v1, v10}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    goto :goto_40c
    :cond_3d3
    const-string v0, "$"
    .line 441
    invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_3f7
    move-object v0, v5
    .line 443
    :goto_3dc
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v2, :cond_3e3
    .line 444
    iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    goto :goto_3dc
    .line 447
    :cond_3e3
    iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    if-eqz v2, :cond_3eb
    .line 448
    iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    move-object v6, v0
    goto :goto_417
    .line 450
    :cond_3eb
    new-instance v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    invoke-direct {v2, v0, v6}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
    invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
    .line 451
    invoke-virtual {v1, v10}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    goto :goto_40c
    .line 454
    :cond_3f7
    invoke-static {v6}, Lcom/alibaba/fastjson/JSONPath;->compile(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONPath;
    move-result-object v0
    .line 455
    invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONPath;->isRef()Z
    move-result v0
    if-eqz v0, :cond_40e
    .line 456
    new-instance v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
    invoke-direct {v0, v5, v6}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
    invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
    .line 457
    invoke-virtual {v1, v10}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setResolveStatus(I)V
    :cond_40c
    :goto_40c
    const/4 v6, 0x0
    goto :goto_417
    .line 459
    :cond_40e
    new-instance v0, Lcom/alibaba/fastjson/JSONObject;
    invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
    .line 460
    invoke-virtual {v0, v12, v6}, Lcom/alibaba/fastjson/JSONObject;->fluentPut(Ljava/lang/String;Ljava/lang/Object;)Lcom/alibaba/fastjson/JSONObject;
    move-result-object v6
    .line 464
    :goto_417
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v0
    const/16 v2, 0xd
    if-ne v0, v2, :cond_428
    const/16 v0, 0x10
    .line 467
    invoke-interface {v4, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    :try_end_424
    .catchall {:try_start_362 .. :try_end_424} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v6
    .line 465
    :cond_428
    :try_start_428
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 471
    :cond_443
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "illegal ref, "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v3
    invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_462
    const/4 v15, 0x4
    if-nez v13, :cond_47e
    .line 476
    iget-object v12, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    if-eqz v12, :cond_476
    iget-object v12, v12, Lcom/alibaba/fastjson/parser/ParseContext;->fieldName:Ljava/lang/Object;
    if-ne v2, v12, :cond_476
    iget-object v12, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v12, v12, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    if-ne v0, v12, :cond_476
    .line 477
    iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    goto :goto_47e
    .line 479
    :cond_476
    invoke-virtual/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    move-result-object v12
    if-nez v5, :cond_47d
    move-object v5, v12
    :cond_47d
    move v13, v10
    .line 487
    :cond_47e
    :goto_47e
    invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v12
    const-class v10, Lcom/alibaba/fastjson/JSONObject;
    if-ne v12, v10, :cond_48a
    if-nez v14, :cond_48a
    const-string v14, "null"
    :cond_48a
    const/16 v10, 0x22
    if-ne v7, v10, :cond_4b7
    .line 495
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
    .line 496
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
    move-result-object v7
    .line 499
    sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v8
    if-eqz v8, :cond_4b3
    .line 500
    new-instance v8, Lcom/alibaba/fastjson/parser/JSONScanner;
    invoke-direct {v8, v7}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;)V
    .line 501
    invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch()Z
    move-result v10
    if-eqz v10, :cond_4b0
    .line 502
    invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->getCalendar()Ljava/util/Calendar;
    move-result-object v7
    invoke-virtual {v7}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
    move-result-object v7
    .line 504
    :cond_4b0
    invoke-virtual {v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->close()V
    .line 507
    :cond_4b3
    invoke-interface {v11, v14, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    goto :goto_4df
    :cond_4b7
    const/16 v10, 0x30
    if-lt v7, v10, :cond_4bf
    const/16 v10, 0x39
    if-le v7, v10, :cond_4c3
    :cond_4bf
    const/16 v10, 0x2d
    if-ne v7, v10, :cond_528
    .line 509
    :cond_4c3
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
    .line 510
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/4 v8, 0x2
    if-ne v7, v8, :cond_4d2
    .line 511
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
    move-result-object v7
    goto :goto_4dc
    .line 513
    :cond_4d2
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
    move-result-object v7
    .line 516
    :goto_4dc
    invoke-interface {v11, v14, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 630
    :goto_4df
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
    .line 631
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getCurrent()C
    move-result v8
    const/16 v10, 0x2c
    if-ne v8, v10, :cond_4f3
    .line 633
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    :goto_4ed
    const/16 v8, 0xd
    const/16 v10, 0x10
    goto/16 :goto_66f
    :cond_4f3
    const/16 v2, 0x7d
    if-ne v8, v2, :cond_507
    .line 636
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
    .line 637
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->resetStringPosition()V
    .line 638
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 641
    invoke-virtual {v1, v7, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    :try_end_503
    .catchall {:try_start_428 .. :try_end_503} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    .line 645
    :cond_507
    :try_start_507
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, position at "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_528
    const/16 v10, 0x5b
    if-ne v7, v10, :cond_575
    .line 518
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 520
    new-instance v6, Lcom/alibaba/fastjson/JSONArray;
    invoke-direct {v6}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
    if-eqz v2, :cond_53c
    .line 522
    invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v7
    const-class v10, Ljava/lang/Integer;
    :cond_53c
    if-nez v2, :cond_541
    .line 527
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 530
    :cond_541
    invoke-virtual {v1, v6, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
    .line 532
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->UseObjectArray:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    if-eqz v7, :cond_550
    .line 533
    invoke-virtual {v6}, Lcom/alibaba/fastjson/JSONArray;->toArray()[Ljava/lang/Object;
    move-result-object v6
    .line 537
    :cond_550
    invoke-interface {v11, v14, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 539
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    const/16 v7, 0xd
    if-ne v6, v7, :cond_562
    .line 540
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    :try_end_55e
    .catchall {:try_start_507 .. :try_end_55e} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    .line 542
    :cond_562
    :try_start_562
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    const/16 v7, 0x10
    if-ne v6, v7, :cond_56f
    move v10, v7
    const/16 v8, 0xd
    goto/16 :goto_66f
    .line 545
    :cond_56f
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v0, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :cond_575
    const/16 v8, 0x7b
    if-ne v7, v8, :cond_64e
    .line 548
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    if-eqz v2, :cond_588
    .line 550
    invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v6
    const-class v7, Ljava/lang/Integer;
    if-ne v6, v7, :cond_588
    const/4 v6, 0x1
    goto :goto_589
    :cond_588
    const/4 v6, 0x0
    .line 553
    :goto_589
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->CustomMapDeserializer:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v7
    if-eqz v7, :cond_5b8
    .line 554
    iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    const-class v8, Ljava/util/Map;
    invoke-virtual {v7, v8}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v7
    check-cast v7, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
    .line 557
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getFeatures()I
    move-result v8
    sget-object v10, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    iget v10, v10, Lcom/alibaba/fastjson/parser/Feature;->mask:I
    and-int/2addr v8, v10
    if-eqz v8, :cond_5b1
    const-class v8, Ljava/util/Map;
    .line 558
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->getFeatures()I
    move-result v10
    invoke-virtual {v7, v8, v10}, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->createMap(Ljava/lang/reflect/Type;I)Ljava/util/Map;
    move-result-object v7
    goto :goto_5c3
    :cond_5b1
    const-class v8, Ljava/util/Map;
    .line 559
    invoke-virtual {v7, v8}, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->createMap(Ljava/lang/reflect/Type;)Ljava/util/Map;
    move-result-object v7
    goto :goto_5c3
    .line 561
    :cond_5b8
    new-instance v7, Lcom/alibaba/fastjson/JSONObject;
    sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v4, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v8
    invoke-direct {v7, v8}, Lcom/alibaba/fastjson/JSONObject;-><init>(Z)V
    :goto_5c3
    if-nez v6, :cond_5cc
    .line 566
    iget-object v8, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    invoke-virtual {v1, v8, v7, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    move-result-object v8
    goto :goto_5cd
    :cond_5cc
    const/4 v8, 0x0
    .line 571
    :goto_5cd
    iget-object v10, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    if-eqz v10, :cond_5ee
    if-eqz v14, :cond_5d8
    .line 572
    invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
    move-result-object v10
    goto :goto_5d9
    :cond_5d8
    const/4 v10, 0x0
    .line 573
    :goto_5d9
    iget-object v12, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    invoke-interface {v12, v0, v10}, Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;->resolve(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type;
    move-result-object v10
    if-eqz v10, :cond_5ee
    .line 575
    iget-object v12, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v12, v10}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v12
    .line 576
    invoke-interface {v12, v1, v10, v14}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v10
    move-object v12, v10
    const/4 v10, 0x1
    goto :goto_5f0
    :cond_5ee
    const/4 v10, 0x0
    const/4 v12, 0x0
    :goto_5f0
    if-nez v10, :cond_5f6
    .line 581
    invoke-virtual {v1, v7, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v12
    :cond_5f6
    if-eqz v8, :cond_5fc
    if-eq v7, v12, :cond_5fc
    .line 585
    iput-object v0, v8, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    :cond_5fc
    if-eqz v14, :cond_605
    .line 589
    invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String;
    move-result-object v7
    invoke-virtual {v1, v0, v7}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
    .line 592
    :cond_605
    invoke-interface {v11, v14, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    if-eqz v6, :cond_60d
    .line 596
    invoke-virtual {v1, v12, v14}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    .line 599
    :cond_60d
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/16 v8, 0xd
    if-ne v7, v8, :cond_61f
    .line 600
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 602
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    :try_end_61b
    .catchall {:try_start_562 .. :try_end_61b} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    .line 604
    :cond_61f
    :try_start_61f
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/16 v8, 0x10
    if-ne v7, v8, :cond_633
    if-eqz v6, :cond_62e
    .line 606
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V
    goto/16 :goto_4ed
    .line 608
    :cond_62e
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    goto/16 :goto_4ed
    .line 612
    :cond_633
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 615
    :cond_64e
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    .line 616
    invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    move-result-object v7
    .line 618
    invoke-interface {v11, v14, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    .line 620
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/16 v8, 0xd
    if-ne v7, v8, :cond_667
    .line 621
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    :try_end_663
    .catchall {:try_start_61f .. :try_end_663} :catchall_6a9
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    return-object v0
    .line 623
    :cond_667
    :try_start_667
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v7
    const/16 v10, 0x10
    if-ne v7, v10, :cond_674
    :goto_66f
    move v7, v8
    move v8, v15
    const/4 v6, 0x0
    goto/16 :goto_80
    .line 626
    :cond_674
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "syntax error, position at "
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-interface {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->pos()I
    move-result v3
    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 288
    :cond_695
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    const-string v2, "object key level > 512"
    invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 266
    :cond_69d
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v0, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 264
    :cond_6a3
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    invoke-direct {v0, v8}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
    :try_end_6a9
    .catchall {:try_start_667 .. :try_end_6a9} :catchall_6a9
    :catchall_6a9
    move-exception v0
    .line 650
    invoke-virtual {v1, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 651
    throw v0
.end method
.method public parseObject(Ljava/lang/Object;)V
    .registers 12
    .line 929
    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
    move-result-object v0
    .line 931
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v1
    .line 932
    instance-of v2, v1, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    const/4 v3, 0x0
    if-eqz v2, :cond_12
    .line 933
    check-cast v1, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
    goto :goto_13
    :cond_12
    move-object v1, v3
    .line 936
    :goto_13
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    const/16 v4, 0xc
    const/16 v5, 0x10
    if-eq v2, v4, :cond_45
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    if-ne v2, v5, :cond_28
    goto :goto_45
    .line 937
    :cond_28
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "syntax error, expect {, actual "
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->tokenName()Ljava/lang/String;
    move-result-object v1
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 942
    :cond_45
    :goto_45
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
    invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
    move-result-object v2
    const/16 v4, 0xd
    if-nez v2, :cond_72
    .line 945
    iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-ne v6, v4, :cond_5f
    .line 946
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-void
    .line 949
    :cond_5f
    iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v6
    if-ne v6, v5, :cond_72
    .line 950
    iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v6, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v6
    if-eqz v6, :cond_72
    goto :goto_45
    :cond_72
    if-eqz v1, :cond_79
    .line 958
    invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
    move-result-object v6
    goto :goto_7a
    :cond_79
    move-object v6, v3
    :goto_7a
    if-nez v6, :cond_bf
    .line 962
    iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v7, Lcom/alibaba/fastjson/parser/Feature;->IgnoreNotMatch:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v6, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v6
    if-eqz v6, :cond_9c
    .line 966
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon()V
    .line 967
    invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
    .line 969
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    if-ne v2, v4, :cond_45
    .line 970
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
    return-void
    .line 963
    :cond_9c
    new-instance p1, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v3, "setter not found, class "
    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string v0, ", property "
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 976
    :cond_bf
    iget-object v2, v6, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo;
    iget-object v2, v2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
    .line 977
    iget-object v7, v6, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo;
    iget-object v7, v7, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;
    .line 979
    sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    const/4 v9, 0x2
    if-ne v2, v8, :cond_d8
    .line 980
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
    .line 981
    sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
    invoke-virtual {v2, p0, v7, v3}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v2
    goto :goto_10a
    .line 982
    :cond_d8
    const-class v8, Ljava/lang/String;
    if-ne v2, v8, :cond_e7
    .line 983
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    const/4 v7, 0x4
    invoke-interface {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
    .line 984
    invoke-static {p0}, Lcom/alibaba/fastjson/serializer/StringCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;)Ljava/lang/Object;
    move-result-object v2
    goto :goto_10a
    .line 985
    :cond_e7
    sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
    if-ne v2, v8, :cond_f7
    .line 986
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
    .line 987
    sget-object v2, Lcom/alibaba/fastjson/serializer/LongCodec;->instance:Lcom/alibaba/fastjson/serializer/LongCodec;
    invoke-virtual {v2, p0, v7, v3}, Lcom/alibaba/fastjson/serializer/LongCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v2
    goto :goto_10a
    .line 989
    :cond_f7
    iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    invoke-virtual {v8, v2, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
    move-result-object v2
    .line 991
    iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
    move-result v9
    invoke-interface {v8, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
    .line 992
    invoke-interface {v2, p0, v7, v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
    move-result-object v2
    .line 995
    :goto_10a
    invoke-virtual {v6, p1, v2}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
    .line 998
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    if-ne v2, v5, :cond_117
    goto/16 :goto_45
    .line 1002
    :cond_117
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result v2
    if-ne v2, v4, :cond_45
    .line 1003
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    invoke-interface {p1, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
    return-void
.end method
.method public popContext()V
    .registers 4
    .line 1343
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_b
    return-void
    .line 1347
    :cond_b
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1349
    iget v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    if-gtz v0, :cond_16
    return-void
    :cond_16
    add-int/lit8 v0, v0, -0x1
    .line 1353
    iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    .line 1354
    iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    const/4 v2, 0x0
    aput-object v2, v1, v0
    return-void
.end method
.method public resolveReference(Ljava/lang/String;)Ljava/lang/Object;
    .registers 6
    .line 1565
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    const/4 v1, 0x0
    if-nez v0, :cond_6
    return-object v1
    :cond_6
    const/4 v0, 0x0
    .line 1568
    :goto_7
    iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
    array-length v3, v2
    if-ge v0, v3, :cond_22
    iget v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
    if-ge v0, v3, :cond_22
    .line 1569
    aget-object v2, v2, v0
    .line 1570
    invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/ParseContext;->toString()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v3, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v3
    if-eqz v3, :cond_1f
    .line 1571
    iget-object p1, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
    return-object p1
    :cond_1f
    add-int/lit8 v0, v0, 0x1
    goto :goto_7
    :cond_22
    return-object v1
.end method
.method public setConfig(Lcom/alibaba/fastjson/parser/ParserConfig;)V
    .registers 2
    .line 660
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
    return-void
.end method
.method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    .registers 6
    .line 1366
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_c
    const/4 p1, 0x0
    return-object p1
    .line 1370
    :cond_c
    new-instance v0, Lcom/alibaba/fastjson/parser/ParseContext;
    invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/ParseContext;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)V
    iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    .line 1371
    invoke-direct {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .line 1373
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    return-object p1
.end method
.method public setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    .registers 5
    .line 1358
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_c
    const/4 p1, 0x0
    return-object p1
    .line 1362
    :cond_c
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    invoke-virtual {p0, v0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
    move-result-object p1
    return-object p1
.end method
.method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
    .registers 4
    .line 1336
    iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
    invoke-interface {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
    move-result v0
    if-eqz v0, :cond_b
    return-void
    .line 1339
    :cond_b
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->context:Lcom/alibaba/fastjson/parser/ParseContext;
    return-void
.end method
.method public setDateFomrat(Ljava/text/DateFormat;)V
    .registers 2
    .line 125
    invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setDateFormat(Ljava/text/DateFormat;)V
    return-void
.end method
.method public setDateFormat(Ljava/lang/String;)V
    .registers 2
    .line 116
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
    const/4 p1, 0x0
    .line 117
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
    return-void
.end method
.method public setDateFormat(Ljava/text/DateFormat;)V
    .registers 2
    .line 129
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
    return-void
.end method
.method public setFieldTypeResolver(Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;)V
    .registers 2
    .line 1332
    iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
    return-void
.end method
.method public setResolveStatus(I)V
    .registers 2
    .line 1104
    iput p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
    return-void
.end method
.method public throwException(I)V
    .registers 5
    .line 1546
    new-instance v0, Lcom/alibaba/fastjson/JSONException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "syntax error, expect "
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object p1
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string p1, ", actual "
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
    .line 1547
    invoke-interface {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
    move-result p1
    invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
    move-result-object p1
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
    throw v0
.end method