private final Object _deserialize(
     JsonParser paramJsonParser, DeserializationContext paramDeserializationContext)
     throws IOException {
   Object localObject1;
   if (paramJsonParser.canReadTypeId()) {
     localObject1 = paramJsonParser.getTypeId();
     if (localObject1 != null) {
       paramJsonParser =
           _deserializeWithNativeTypeId(
               paramJsonParser, paramDeserializationContext, localObject1);
     }
   }
   do {
     boolean bool;
     Object localObject2;
     do {
       return paramJsonParser;
       bool = paramJsonParser.isExpectedStartArrayToken();
       String str = _locateTypeId(paramJsonParser, paramDeserializationContext);
       localObject2 = _findDeserializer(paramDeserializationContext, str);
       localObject1 = paramJsonParser;
       if (this._typeIdVisible) {
         localObject1 = paramJsonParser;
         if (paramJsonParser.getCurrentToken() == JsonToken.START_OBJECT) {
           localObject1 = new TokenBuffer(null, false);
           ((TokenBuffer) localObject1).writeStartObject();
           ((TokenBuffer) localObject1).writeFieldName(this._typePropertyName);
           ((TokenBuffer) localObject1).writeString(str);
           localObject1 =
               JsonParserSequence.createFlattened(
                   ((TokenBuffer) localObject1).asParser(paramJsonParser), paramJsonParser);
           ((JsonParser) localObject1).nextToken();
         }
       }
       localObject2 =
           ((JsonDeserializer) localObject2)
               .deserialize((JsonParser) localObject1, paramDeserializationContext);
       paramJsonParser = (JsonParser) localObject2;
     } while (!bool);
     paramJsonParser = (JsonParser) localObject2;
   } while (((JsonParser) localObject1).nextToken() == JsonToken.END_ARRAY);
   throw paramDeserializationContext.wrongTokenException(
       (JsonParser) localObject1,
       JsonToken.END_ARRAY,
       "expected closing END_ARRAY after type information and deserialized value");
 }