content: {-# LANGUAGE OverloadedStrings #-}
  
  module HPACK.HeaderBlock where
  
  import Data.ByteString (ByteString)
  import Data.ByteString.Base16
  import Network.HTTP.Types
  
  fromHexString :: ByteString -> ByteString
  fromHexString = decodeLenient
  
  ----------------------------------------------------------------
  
  d41h :: [Header]
  d41h =
      [ (":method", "GET")
      , (":scheme", "http")
      , (":path", "/")
      , (":authority", "www.example.com")
      ]
  
  d41b :: ByteString
  d41b = fromHexString "828684418cf1e3c2e5f23a6ba0ab90f4ff"
  
  d42h :: [Header]
  d42h =
      [ (":method", "GET")
      , (":scheme", "http")
      , (":path", "/")
      , (":authority", "www.example.com")
      , ("cache-control", "no-cache")
      ]
  
  d42b :: ByteString
  d42b = fromHexString "828684be5886a8eb10649cbf"
  
  d43h :: [Header]
  d43h =
      [ (":method", "GET")
      , (":scheme", "https")
      , (":path", "/index.html")
      , (":authority", "www.example.com")
      , ("custom-key", "custom-value")
      ]
  
  d43b :: ByteString
  d43b = fromHexString "828785bf408825a849e95ba97d7f8925a849e95bb8e8b4bf"
  
  ----------------------------------------------------------------
  
  d61h :: [Header]
  d61h =
      [ (":status", "302")
      , ("cache-control", "private")
      , ("date", "Mon, 21 Oct 2013 20:13:21 GMT")
      , ("location", "https://www.example.com")
      ]
  
  d61b :: ByteString
  d61b =
      fromHexString
          "488264025885aec3771a4b6196d07abe941054d444a8200595040b8166e082a62d1bff6e919d29ad171863c78f0b97c8e9ae82ae43d3"
  
  d62h :: [Header]
  d62h =
      [ (":status", "307")
      , ("cache-control", "private")
      , ("date", "Mon, 21 Oct 2013 20:13:21 GMT")
      , ("location", "https://www.example.com")
      ]
  
  d62b :: ByteString
  d62b = fromHexString "4883640effc1c0bf"
  
  d63h :: [Header]
  d63h =
      [ (":status", "200")
      , ("cache-control", "private")
      , ("date", "Mon, 21 Oct 2013 20:13:22 GMT")
      , ("location", "https://www.example.com")
      , ("content-encoding", "gzip")
      , ("set-cookie", "foo=ASDJKHQKBZXOQWEOPIUAXQWEOIU; max-age=3600; version=1")
      ]
  
  d63b :: ByteString
  d63b =
      fromHexString
          "88c16196d07abe941054d444a8200595040b8166e084a62d1bffc05a839bd9ab77ad94e7821dd7f2e6c7b335dfdfcd5b3960d5af27087f3672c1ab270fb5291f9587316065c003ed4ee5b1063d5007"
  
  ----------------------------------------------------------------
  
  d81h :: [Header]
  d81h =
      [ (":status", "403")
      , ("server", "nginx/1.14.0")
      , ("date", "Wed, 13 Feb 2019 14:57:11 GMT")
      , ("content-type", "text/html")
      , ("content-length", "169")
      ]
  
  d81b :: ByteString
  d81b =
      fromHexString
          "2048033430337689aa6355e580ae1697076196e4593e940b2a612c6a08017d40b571b76e042a62d1bf5f87497ca589d34d1f5c03313639"
  