.class public abstract Lokhttp3/internal/http2/Hpack; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lokhttp3/internal/http2/Hpack$Writer;, Lokhttp3/internal/http2/Hpack$Reader; } .end annotation # static fields .field public static final NAME_TO_FIRST_INDEX:Ljava/util/Map; .field public static final STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header; # direct methods .method static constructor ()V .locals 65 .line 47 new-instance v1, Lokhttp3/internal/http2/Header; move-object v0, v1 sget-object v2, Lokhttp3/internal/http2/Header;->TARGET_AUTHORITY:Lokio/ByteString; const-string v15, "" invoke-direct {v1, v2, v15}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v2, Lokhttp3/internal/http2/Header; move-object v1, v2 sget-object v3, Lokhttp3/internal/http2/Header;->TARGET_METHOD:Lokio/ByteString; const-string v4, "GET" invoke-direct {v2, v3, v4}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v4, Lokhttp3/internal/http2/Header; move-object v2, v4 const-string v5, "POST" invoke-direct {v4, v3, v5}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v4, Lokhttp3/internal/http2/Header; move-object v3, v4 sget-object v5, Lokhttp3/internal/http2/Header;->TARGET_PATH:Lokio/ByteString; const-string v6, "/" invoke-direct {v4, v5, v6}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v6, Lokhttp3/internal/http2/Header; move-object v4, v6 const-string v7, "/index.html" invoke-direct {v6, v5, v7}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v6, Lokhttp3/internal/http2/Header; move-object v5, v6 sget-object v7, Lokhttp3/internal/http2/Header;->TARGET_SCHEME:Lokio/ByteString; const-string v8, "http" invoke-direct {v6, v7, v8}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v8, Lokhttp3/internal/http2/Header; move-object v6, v8 const-string v9, "https" invoke-direct {v8, v7, v9}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v8, Lokhttp3/internal/http2/Header; move-object v7, v8 sget-object v14, Lokhttp3/internal/http2/Header;->RESPONSE_STATUS:Lokio/ByteString; const-string v9, "200" invoke-direct {v8, v14, v9}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v9, Lokhttp3/internal/http2/Header; move-object v8, v9 const-string v10, "204" invoke-direct {v9, v14, v10}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v10, Lokhttp3/internal/http2/Header; move-object v9, v10 const-string v11, "206" invoke-direct {v10, v14, v11}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v11, Lokhttp3/internal/http2/Header; move-object v10, v11 const-string v12, "304" invoke-direct {v11, v14, v12}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v12, Lokhttp3/internal/http2/Header; move-object v11, v12 const-string v13, "400" invoke-direct {v12, v14, v13}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v13, Lokhttp3/internal/http2/Header; move-object v12, v13 move-object/from16 v61, v0 const-string v0, "404" invoke-direct {v13, v14, v0}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object v13, v0 move-object/from16 v62, v1 const-string v1, "500" invoke-direct {v0, v14, v1}, Lokhttp3/internal/http2/Header;->(Lokio/ByteString;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object v14, v0 const-string v1, "accept-charset" invoke-direct {v0, v1, v15}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object v1, v15 move-object v15, v0 move-object/from16 v63, v2 const-string v2, "accept-encoding" move-object/from16 v64, v3 const-string v3, "gzip, deflate" invoke-direct {v0, v2, v3}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v16, v0 const-string v2, "accept-language" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v17, v0 const-string v2, "accept-ranges" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v18, v0 const-string v2, "accept" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v19, v0 const-string v2, "access-control-allow-origin" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v20, v0 const-string v2, "age" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v21, v0 const-string v2, "allow" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v22, v0 const-string v2, "authorization" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v23, v0 const-string v2, "cache-control" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v24, v0 const-string v2, "content-disposition" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v25, v0 const-string v2, "content-encoding" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v26, v0 const-string v2, "content-language" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v27, v0 const-string v2, "content-length" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v28, v0 const-string v2, "content-location" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v29, v0 const-string v2, "content-range" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v30, v0 const-string v2, "content-type" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v31, v0 const-string v2, "cookie" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v32, v0 const-string v2, "date" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v33, v0 const-string v2, "etag" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v34, v0 const-string v2, "expect" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v35, v0 const-string v2, "expires" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v36, v0 const-string v2, "from" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v37, v0 const-string v2, "host" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v38, v0 const-string v2, "if-match" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v39, v0 const-string v2, "if-modified-since" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v40, v0 const-string v2, "if-none-match" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v41, v0 const-string v2, "if-range" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v42, v0 const-string v2, "if-unmodified-since" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v43, v0 const-string v2, "last-modified" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v44, v0 const-string v2, "link" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v45, v0 const-string v2, "location" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v46, v0 const-string v2, "max-forwards" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v47, v0 const-string v2, "proxy-authenticate" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v48, v0 const-string v2, "proxy-authorization" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v49, v0 const-string v2, "range" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v50, v0 const-string v2, "referer" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v51, v0 const-string v2, "refresh" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v52, v0 const-string v2, "retry-after" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v53, v0 const-string v2, "server" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v54, v0 const-string v2, "set-cookie" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v55, v0 const-string v2, "strict-transport-security" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v56, v0 const-string v2, "transfer-encoding" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v57, v0 const-string v2, "user-agent" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v58, v0 const-string v2, "vary" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v59, v0 const-string v2, "via" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V new-instance v0, Lokhttp3/internal/http2/Header; move-object/from16 v60, v0 const-string v2, "www-authenticate" invoke-direct {v0, v2, v1}, Lokhttp3/internal/http2/Header;->(Ljava/lang/String;Ljava/lang/String;)V move-object/from16 v0, v61 move-object/from16 v1, v62 move-object/from16 v2, v63 move-object/from16 v3, v64 filled-new-array/range {v0 .. v60}, [Lokhttp3/internal/http2/Header; move-result-object v0 sput-object v0, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header; .line 354 invoke-static {}, Lokhttp3/internal/http2/Hpack;->nameToFirstIndex()Ljava/util/Map; move-result-object v0 sput-object v0, Lokhttp3/internal/http2/Hpack;->NAME_TO_FIRST_INDEX:Ljava/util/Map; return-void .end method .method public static checkLowercase(Lokio/ByteString;)Lokio/ByteString; .locals 4 .line 596 invoke-virtual {p0}, Lokio/ByteString;->size()I move-result v0 const/4 v1, 0x0 :goto_0 if-ge v1, v0, :cond_2 .line 597 invoke-virtual {p0, v1}, Lokio/ByteString;->getByte(I)B move-result v2 const/16 v3, 0x41 if-lt v2, v3, :cond_1 const/16 v3, 0x5a if-le v2, v3, :cond_0 goto :goto_1 .line 599 :cond_0 new-instance v0, Ljava/io/IOException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "PROTOCOL_ERROR response malformed: mixed case name: " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p0}, Lokio/ByteString;->utf8()Ljava/lang/String; move-result-object p0 invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :cond_1 :goto_1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_2 return-object p0 .end method .method public static nameToFirstIndex()Ljava/util/Map; .locals 4 .line 357 new-instance v0, Ljava/util/LinkedHashMap; sget-object v1, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header; array-length v1, v1 invoke-direct {v0, v1}, Ljava/util/LinkedHashMap;->(I)V const/4 v1, 0x0 :goto_0 sget-object v2, Lokhttp3/internal/http2/Hpack;->STATIC_HEADER_TABLE:[Lokhttp3/internal/http2/Header; .line 358 array-length v3, v2 if-ge v1, v3, :cond_1 .line 359 aget-object v3, v2, v1 iget-object v3, v3, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString; invoke-interface {v0, v3}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_0 .line 360 aget-object v2, v2, v1 iget-object v2, v2, Lokhttp3/internal/http2/Header;->name:Lokio/ByteString; invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v3 invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 363 :cond_1 invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; move-result-object v0 return-object v0 .end method