"""
Static Table for QPACK Encoder

This module defines the complete static header table as specified by RFC 9204.
"""

STATIC_TABLE = [
    (":authority", ""),
    (":method", "GET"),
    (":method", "POST"),
    (":path", "/"),
    (":path", "/index.html"),
    (":scheme", "https"),
    (":scheme", "http"),
    (":status", "200"),
    (":status", "204"),
    (":status", "206"),
    (":status", "304"),
    (":status", "400"),
    (":status", "404"),
    (":status", "500"),
    ("accept-charset", ""),
    ("accept-encoding", "gzip, deflate, br"),
    ("accept-language", ""),
    ("accept-ranges", ""),
    ("accept", ""),
    ("access-control-allow-origin", ""),
    ("age", ""),
    ("allow", ""),
    ("authorization", ""),
    ("cache-control", ""),
    ("content-disposition", ""),
    ("content-encoding", ""),
    ("content-language", ""),
    ("content-length", ""),
    ("content-location", ""),
    ("content-range", ""),
    ("content-type", ""),
    ("cookie", ""),
    ("date", ""),
    ("etag", ""),
    ("expect", ""),
    ("expires", ""),
    ("from", ""),
    ("host", ""),
    ("if-match", ""),
    ("if-modified-since", ""),
    ("if-none-match", ""),
    ("if-range", ""),
    ("if-unmodified-since", ""),
    ("last-modified", ""),
    ("link", ""),
    ("location", ""),
    ("max-forwards", ""),
    ("proxy-authenticate", ""),
    ("proxy-authorization", ""),
    ("range", ""),
    ("referer", ""),
    ("refresh", ""),
    ("retry-after", ""),
    ("server", ""),
    ("set-cookie", ""),
    ("strict-transport-security", ""),
    ("transfer-encoding", ""),
    ("user-agent", ""),
    ("vary", ""),
    ("via", ""),
    ("www-authenticate", ""),
    ("disposition", ""),
    ("content-security-policy", ""),
    ("content-transfer-encoding", ""),
    ("x-content-type-options", ""),
    ("x-frame-options", ""),
    ("x-xss-protection", ""),
    ("dn", ""),
    ("downlink", ""),
    ("early-data", ""),
    ("ect", ""),
    ("rtt", ""),
    ("server-timing", ""),
    ("timing-allow-origin", ""),
    ("upgrade", ""),
    ("via2", ""),
    ("x-powered-by", ""),
    ("x-correlation-id", ""),
    ("x-request-id", ""),
    ("x-strict-transport-security", ""),
    ("x-forwarded-for", ""),
    ("x-forwarded-proto", ""),
    ("x-real-ip", ""),
    ("traceparent", ""),
    ("tracestate", ""),
    ("priority", ""),
    ("dnt", ""),
    ("sec-fetch-site", ""),
    ("sec-fetch-mode", ""),
    ("sec-fetch-dest", ""),
    ("sec-fetch-user", ""),
    ("origin", ""),
    ("upgrade-insecure-requests", ""),
    ("prompt", ""),
    ("purpose", ""),
    ("sec-ch-ua", ""),
    ("sec-ch-ua-mobile", ""),
    ("sec-ch-ua-platform", ""),
    ("sec-ch-ua-full-version", "")
]

if len(STATIC_TABLE) != 99:
    raise RuntimeError(
        f"Static table incomplete; expected 99 entries but got {len(STATIC_TABLE)}.")

