h&      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    6  Safe-Inferred  Safe-Inferred   Safe-Inferred"S http2Encoding integer with a temporary buffer whose size is 4096. No prefix is set. BS.unpack <$> encodeInteger 5 10[10]"BS.unpack <$> encodeInteger 5 1337 [31,154,10] BS.unpack <$> encodeInteger 8 42[42] http2%Integer encoding with a write buffer. http24Integer decoding. The first argument is N of prefix.decodeInteger 5 10 $ BS.empty10%decodeInteger 5 31 $ BS.pack [154,10]1337decodeInteger 8 42 $ BS.empty42 http2Integer decoding with a read buffer. The first argument is N of prefix. http2N+http2Target http2Setting prefixhttp2N+http2Target http2N+http2;The head of encoded integer whose prefix is already droppedhttp2The tail of encoded integer http2N+http2;The head of encoded integer whose prefix is already dropped   Safe-InferredOhttp2 Bit stream.http2Data type for Bit.http2Zerohttp2Onehttp2From  of length 8 to .fromBits [T,F,T,F,T,F,T,F]170fromBits [F,T,F,T,F,T,F,T]85 Safe-Inferredhttp2&let bs = BS.pack [0x12,0x34,0xf3,0xab]unpack4bits bs[1,2,3,4,15,3,10,11]unpack4bits $ BS.tail bs[3,4,15,3,10,11] Safe-Inferred7 Safe-Inferredd Safe-Inferred%&; http2Huffman encoding.http2Is this token ix for a header not defined in the static table?hhttp2;Is this token for a header not defined in the static table?ihttp2!Making a token from a header key.&toToken ":authority" == tokenAuthorityTrue toToken "foo"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = False, tokenKey = "foo"}toToken ":bar"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = True, tokenKey = ":bar"} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiiabcdfegh !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL`MNOPQRSTUVWXYZ[\]^_ Safe-Inferred6Vlhttp2Errors for decoder.mhttp2Index is out of rangenhttp2+Eos appears in the middle of huffman stringohttp2,Non-eos appears in the end of huffman stringphttp2)Eos of huffman string is more than 7 bitsqhttp2.A peer set the dynamic table size less than 32rhttp2Type for table entry. Size includes the 32 bytes magic number.http2Size in bytes.http2From  to .http2Getting the size of .http2Getting .http2Getting .http2Getting .http2Getting .http2Dummy  to initialize a dynamic table.http22How many entries can be stored in a dynamic table? Safe-Inferred" http2The size of static table.http2Get  from the static table.toStaticEntry 1Entry 42 (Token {tokenIx = 0, shouldBeIndexed = True, isPseudo = True, tokenKey = ":authority"}) ""toStaticEntry 8Entry 42 (Token {tokenIx = 4, shouldBeIndexed = True, isPseudo = True, tokenKey = ":status"}) "200"toStaticEntry 50Entry 37 (Token {tokenIx = 40, shouldBeIndexed = True, isPseudo = False, tokenKey = "Range"}) ""http2Pre-defined static table. Safe-Inferred"%&  Safe-Inferred""http2Huffman decoding.http2Huffman decoding.http2-Low devel Huffman decoding in a write buffer.http2>> testEndStream 0x1 Truehttp27Checking if the ACK flag is set. >>> testAck 0x1 Truehttp2(Checking if the END_HEADERS flag is set.testEndHeader 0x4Truehttp2#Checking if the PADDED flag is set.testPadded 0x8Truehttp2%Checking if the PRIORITY flag is set.testPriority 0x20Truehttp2Setting the END_STREAM flag.setEndStream 01http2Setting the ACK flag.setAck 01http2Setting the END_HEADERS flag.setEndHeader 04http2Setting the PADDED flag. setPadded 08http2Setting the PRIORITY flag. setPriority 032http2.Checking if the stream identifier for control. isControl 0True isControl 1Falsehttp23Checking if the stream identifier is from a client.isClientInitiated 0FalseisClientInitiated 1Truehttp23Checking if the stream identifier is from a server.isServerInitiated 0FalseisServerInitiated 2Truehttp2&Checking if the exclusive flag is set.http2Setting the exclusive flag.http2Clearing the exclusive flag.http2Getting  from .*framePayloadToFrameType (DataFrame "body") FrameDatahttp22Checking if padding is defined in this frame type.isPaddingDefined $ DataFrame ""TrueisPaddingDefined $ PingFrame ""False& Safe-Inferred%&X http2)Auxiliary information for frame encoding.http2!Flags to be set in a frame headerhttp2%Stream id to be set in a frame headerhttp2Padding if any. In the case where this value is set but the priority flag is not set, this value gets preference over the priority flag. So, if this value is set, the priority flag is also set.http2A smart builder of .encodeInfo setAck 0EncodeInfo {encodeFlags = 1, encodeStreamId = 0, encodePadding = Nothing}http2Encoding an HTTP/2 frame to . This function is not efficient enough for high performace program because of the concatenation of .0encodeFrame (encodeInfo id 1) (DataFrame "body")*"\NUL\NUL\EOT\NUL\NUL\NUL\NUL\NUL\SOHbody"http2Encoding an HTTP/2 frame to [$]. This is suitable for sendMany.http2Encoding an HTTP/2 frame header. The frame header must be completed.http2Writing an encoded HTTP/2 frame header to the buffer. The length of the buffer must be larger than or equal to 9 bytes.http2Encoding an HTTP/2 frame payload. This returns a complete frame header and chunks of payload.http2stream identifierhttp2Payload length. ' Safe-Inferred"%&^^http2#The type for frame payload decoder.http2Decoding an HTTP/2 frame to . The second argument must be include the entire of frame. So, this function is not useful for real applications but useful for testing.http28Decoding an HTTP/2 frame header. Must supply 9 bytes.http26Checking a frame header and reporting an error if any.checkFrameHeader defaultSettings (FrameData,(FrameHeader 100 0 0))Left (FrameDecodeError ProtocolError 0 "cannot used in control stream")http2Decoding an HTTP/2 frame payload. This function is considered to return a frame payload decoder according to a frame type.http2%Frame payload decoder for DATA frame.http2(Frame payload decoder for HEADERS frame.http2)Frame payload decoder for PRIORITY frame.http2+Frame payload decoder for RST_STREAM frame.http2)Frame payload decoder for SETTINGS frame.http2-Frame payload decoder for PUSH_PROMISE frame.http2%Frame payload decoder for PING frame.http2'Frame payload decoder for GOAWAY frame.http2.Frame payload decoder for WINDOW_UPDATE frame.http2-Frame payload decoder for CONTINUATION frame.http2Helper function to pull off the padding if its there, and will eat up the trailing padding automatically. Calls the decoder func passed in with the length of the unpadded portion between the padding octet and the actual paddinghttp2HTTP/2 settingshttp2Input byte-streamhttp2 Decoded frame Safe-Inferred"_Jhttp2The preface of HTTP/2.connectionPreface""PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"http2Length of the preface.connectionPrefaceLength24( Safe-Inferred"lhttp2The connection error or the stream error. Stream errors are treated as connection errors since there are no good recovery ways.  in connection errors should be the highest stream identifier but in this implementation it identifies the stream that caused this error.http2File specification.http21Either the next trailers maker or final trailers.http2Trailers maker. A chunks of the response body is passed with 5. The maker should update internal state with the  and return the next trailers maker. When response body reaches its end,  is passed and the maker should generate trailers. An example: {-# LANGUAGE BangPatterns #-} import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as C8 import Crypto.Hash (Context, SHA1) -- cryptonite import qualified Crypto.Hash as CH -- Strictness is important for Context. trailersMaker :: Context SHA1 -> Maybe ByteString -> IO NextTrailersMaker trailersMaker ctx Nothing = return $ Trailers [("X-SHA1", sha1)] where !sha1 = C8.pack $ show $ CH.hashFinalize ctx trailersMaker ctx (Just bs) = return $ NextTrailersMaker $ trailersMaker ctx' where !ctx' = CH.hashUpdate ctx bsUsage example: let h2rsp = responseFile ... maker = trailersMaker (CH.hashInit :: Context SHA1) h2rsp' = setResponseTrailersMaker h2rsp makerhttp2 Output objecthttp2Accessor for header.http2Accessor for outObj body.http2Accessor for trailers maker.http2 Input objecthttp2Accessor for headers.http26Accessor for body length specified in content-length:.http2Accessor for body.http2Accessor for trailers.http27Streaming body takes a write action and a flush action.http2Like *, but with a callback to unmask expectionsThis is used in the client: we spawn the new thread for the request body with exceptions masked, and provide the body of  with a callback to unmask them again (typically after installing an exception handler).We do NOT support this in the server, as here the scope of the thread that is spawned for the server is the entire handler, not just the response streaming body.TODO: The analogous change for the server-side would be to provide a similar unmask' callback as the first argument in the Server type alias.http2Path.http2 Authority.http2"http" or "https".http2#TrailersMake to create no trailers.http2 Checking  and reporting an error if any.*checkSettingsList [(SettingsEnablePush,2)]Just (ConnectionErrorIsSent ProtocolError 0 "enable push must be 0 or 1")) Safe-Inferred%&m* Safe-Inferred'm+ Safe-Inferredn, Safe-Inferred'oFhttp2"The context for HTTP/2 connection.http2RFC 9113 says "Other frames (from any stream) MUST NOT occur between the HEADERS frame and any CONTINUATION frames that might follow". This field is used to implement this requirement.:- Safe-Inferred%&'o . Safe-Inferred"%&p./ Safe-Inferred"%&'phttp2Running trailers-maker. *bufferIO buf siz $ \bs -> tlrmkr (Just bs)0 Safe-Inferred"%&'qhttp2Type for input streaming.1 Safe-InferredqJ2 Safe-Inferredshttp2Response from server.http2Request from client.http2 Client type. Safe-Inferreds3 Safe-Inferred"%&thttp2Client configurationhttp2 https or httphttp2 Server namehttp24How many pushed responses are contained in the cachehttp2Running HTTP/2 client.  Safe-Inferred"w http2Creating request without body.http2Creating request with file.http2Creating request with builder.http2 Creating request with streaming.http2Like +, but run the action with exceptions maskedhttp2Setting  to .http2!Getting the status of a response.http2$Getting the headers from a response.http2&Getting the body size from a response.http22Reading a chunk of the response body. An empty  returned when finished.http2Reading response trailers. This function must be called after  returns an empty. Safe-Inferredy??4 Safe-Inferred} http2Additional information.http2Time handle for the worker processing this request and response.http2!Local socket address copied from .http2"Remove socket address copied from .http2HTTP/2 push promise or sever push. Pseudo REQUEST headers in push promise is automatically generated. Then, a server push is sent according to .http2Accessor for a URL path in a push promise (a virtual request from a server). E.g. "/style/default.css".http24Accessor for response actually pushed from a server.http2Response from server.http2Request from client.http2Server type. Server takes a HTTP request, should generate a HTTP response and push promises, then should give them to the sending function. The sending function would throw exceptions so that they can be logged. Safe-Inferred}  5 Safe-Inferred"%&'0http2The type for cleaning up.http26This function is passed to workers. They also pass s from a server to this function. This function enqueues commands for the HTTP/2 sender.http2Worker for server applications. 6 Safe-Inferred"%&http2Running HTTP/2 server.  Safe-Inferred"1http2"Getting the method from a request.http2 Getting the path from a request.http2%Getting the authority from a request.http2"Getting the scheme from a request.http2#Getting the headers from a request.http2%Getting the body size from a request.http21Reading a chunk of the request body. An empty  returned when finished.http2Reading request trailers. This function must be called after  returns an empty.http2Creating response without body.http2Creating response with file.http2Creating response with builder.http2!Creating response with streaming.http2Getter for response body size. This value is available for file body.http2Setting  to .http2Creating push promise. The third argument is traditional, not used.9978978:78;<=>?@A?@B?@C?@C D E F G HIJKKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~               "############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&'''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((////2222233333344444444444446                            !!!$$%%&'(((((((((((((((((((((((((((((((((((((((((((((()))**************+++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------....../003334555555555555556"http2-4.2.1-GkIuYEnymbZINllxdDizv2 Network.HPACKNetwork.HTTP2.ClientNetwork.HPACK.InternalNetwork.HPACK.TokenNetwork.HTTP2.InternalNetwork.HTTP2.FrameNetwork.HTTP2.Client.InternalNetwork.HTTP2.Server.InternalNetwork.HTTP2.ServerImportsNetwork.HPACK.Builder!Network.HPACK.HeaderBlock.IntegerNetwork.HPACK.Huffman.Bit Network.HPACK.Huffman.ByteStringNetwork.HPACK.Huffman.ParamsNetwork.HPACK.Huffman.TableNetwork.HPACK.Huffman.EncodeNetwork.HPACK.Huffman.TreeNetwork.HPACK.TypesNetwork.HPACK.Table.EntryNetwork.HPACK.Table.StaticNetwork.HPACK.Table.RevIndexNetwork.HPACK.Huffman.DecodeNetwork.HPACK.HuffmanNetwork.HPACK.Table.DynamicNetwork.HPACK.Table Network.HPACK.HeaderBlock.Encode Network.HPACK.HeaderBlock.DecodeNetwork.HPACK.HeaderBlockNetwork.HTTP2.Arch.CacheNetwork.HTTP2.Arch.FileNetwork.HTTP2.Arch.ManagerNetwork.HTTP2.Arch.RateNetwork.HTTP2.Arch.ReadNNetwork.HTTP2.Arch.ConfigNetwork.HTTP2.Arch.StatusNetwork.HTTP2.Frame.TypesNetwork.HTTP2.Frame.EncodeNetwork.HTTP2.Frame.DecodeNetwork.HTTP2.Arch.TypesNetwork.HTTP2.Arch.QueueNetwork.HTTP2.Arch.StreamNetwork.HTTP2.Arch.EncodeFrameNetwork.HTTP2.Arch.ContextNetwork.HTTP2.Arch.WindowNetwork.HTTP2.Arch.HPACKNetwork.HTTP2.Arch.SenderNetwork.HTTP2.Arch.ReceiverNetwork.HTTP2.ArchNetwork.HTTP2.Client.TypesNetwork.HTTP2.Client.RunNetwork.HTTP2.Server.TypesNetwork.HTTP2.Server.WorkerNetwork.HTTP2.Server.Run/case-insensitive-1.2.1.0-1LEAVqUYxX3Bxyzjs1jrhMData.CaseInsensitive.Internalmk foldedCaseoriginal(http-types-0.12.3-JlXMXDo7mr8Ke1ukSqfJrBNetwork.HTTP.Types.MethodMethod/network-byte-order-0.1.6-8YtERXVIouY6N7oqXTN31VNetwork.ByteOrderBuffer BufferSize BufferOverrunGCBuffer encodeIntegerencodeI decodeIntegerdecodeIencodeH encodeHuffmanTokentokenIxshouldBeIndexedisPseudotokenKey tokenCIKeytokenFoldedKeytokenAuthority tokenMethod tokenPath tokenScheme tokenStatustokenAcceptCharsettokenAcceptEncodingtokenAcceptLanguagetokenAcceptRanges tokenAccepttokenAccessControlAllowOrigintokenAge tokenAllowtokenAuthorizationtokenCacheControltokenContentDispositiontokenContentEncodingtokenContentLanguagetokenContentLengthtokenContentLocationtokenContentRangetokenContentType tokenCookie tokenDate tokenEtag tokenExpect tokenExpires tokenFrom tokenHost tokenIfMatchtokenIfModifiedSincetokenIfNoneMatch tokenIfRangetokenIfUnmodifiedSincetokenLastModified tokenLink tokenLocationtokenMaxForwardstokenProxyAuthenticatetokenProxyAuthorization tokenRange tokenReferer tokenRefreshtokenRetryAfter tokenServertokenSetCookietokenStrictTransportSecuritytokenTransferEncodingtokenUserAgent tokenVarytokenViatokenWwwAuthenticatetokenConnectiontokenTE"tokenAccessControlAllowCredentialstokenAccessControlAllowHeaderstokenAccessControlAllowMethodstokenAccessControlExposeHeaders tokenAccessControlRequestHeaderstokenAccessControlRequestMethod tokenAltSvctokenContentSecurityPolicytokenEarlyData tokenExpectCttokenForwarded tokenOrigin tokenPurposetokenTimingAllowOrigintokenUpgradeInsecureRequeststokenXContentTypeOptionstokenXForwardedFortokenXFrameOptionstokenXXssProtectiontokenMax minTokenIxmaxStaticTokenIx maxTokenIx cookieTokenIxisCookieTokenIx isMaxTokenIxisStaticTokenIx isStaticTokentoToken $fEqToken $fShowToken DecodeError IndexOverrunEosInTheMiddle IllegalEos TooLongEosTooSmallTableSizeTooLargeTableSizeIllegalTableSizeUpdateHeaderBlockTruncatedIllegalHeaderNameTooLargeHeaderEncodeStrategycompressionAlgo useHuffmanCompressionAlgoNaiveStaticLinearIndexTokenHeaderList TokenHeader HeaderListHeader HeaderValue HeaderNamedefaultEncodeStrategyEntrySizetoEntry toEntryToken entrySizeentryTokenHeader entryTokenentryHeaderNameentryHeaderValue dummyEntry maxNumbersHuffmanDecoderdecodeHdecH decodeHuffman DynamicTablesetLimitForEncodingnewDynamicTableForEncodingnewDynamicTableForDecodingwithDynamicTableForEncodingwithDynamicTableForDecoding encodeHeaderencodeTokenHeaderencodeS encodeString HeaderTable ValueTablegetHeaderValue decodeHeaderdecodeTokenHeader decodeSimpledecodeSophisticated decodeStringdecodeS toHeaderTabledefaultDynamicTableSizePositionReadMakerSentinelCloser Refresher PositionRead ByteCount FileOffsetdefaultPositionReadMakerKilledByHttp2ThreadManagerManagerActionstart setAction stopAfter spawnAction forkManagedforkManagedUnmasktimeoutKillThread timeoutClose incCounter decCounter waitCounter0 defaultReadNConfigconfWriteBufferconfBufferSize confSendAll confReadNconfPositionReadMakerconfTimeoutManagerconfMySockAddrconfPeerSockAddrallocSimpleConfigfreeSimpleConfig FrameTypeId SettingsKeyId ErrorCodeId FramePayload DataFrame HeadersFrame PriorityFrameRSTStreamFrame SettingsFramePushPromiseFrame PingFrame GoAwayFrameWindowUpdateFrameContinuationFrame UnknownFrame FrameHeader payloadLengthflagsstreamIdFrame frameHeader framePayloadPaddingHeaderBlockFragmentStreamId FrameFlags FrameTypePriority exclusivestreamDependencyweightWeight WindowSizeSettingsheaderTableSize enablePushmaxConcurrentStreamsinitialWindowSize maxFrameSizemaxHeaderListSize SettingsList SettingsValue SettingsKey ErrorCodeFrameContinuationFrameWindowUpdate FrameGoAway FramePingFramePushPromise FrameSettingsFrameRSTStream FramePriority FrameHeaders FrameDataSettingsMaxHeaderBlockSizeSettingsMaxFrameSizeSettingsInitialWindowSizeSettingsMaxConcurrentStreamsSettingsEnablePushSettingsHeaderTableSizeHTTP11RequiredInadequateSecurityEnhanceYourCalm ConnectErrorCompressionErrorCancel RefusedStreamFrameSizeError StreamClosedSettingsTimeoutFlowControlError InternalError ProtocolErrorNoErrorframeHeaderLength fromErrorCode toErrorCodefromSettingsKey toSettingsKeydefaultSettingsupdateSettingsdefaultWindowSize maxWindowSizeisWindowOverflowrecommendedConcurrency fromFrameType toFrameType minFrameType maxFrameTypemaxPayloadLengthdefaultPayloadLength defaultFlags testEndStreamtestAck testEndHeader testPadded testPriority setEndStreamsetAck setEndHeader setPadded setPriority isControlisClientInitiatedisServerInitiated testExclusive setExclusiveclearExclusiveframePayloadToFrameTypeisPaddingDefined EncodeInfo encodeFlagsencodeStreamId encodePadding encodeInfo encodeFrameencodeFrameChunksencodeFrameHeaderencodeFrameHeaderBufencodeFramePayloadFramePayloadDecoderFrameDecodeError decodeFramedecodeFrameHeadercheckFrameHeaderdecodeFramePayloaddecodeDataFramedecodeHeadersFramedecodePriorityFramedecodeRSTStreamFramedecodeSettingsFramedecodePushPromiseFramedecodePingFramedecodeGoAwayFramedecodeWindowUpdateFramedecodeContinuationFrameconnectionPrefaceconnectionPrefaceLength HTTP2ErrorConnectionIsClosedConnectionErrorIsReceivedConnectionErrorIsSentStreamErrorIsReceivedStreamErrorIsSentBadThingHappen GoAwayIsSentStreamingChunkStreamingFinishedStreamingFlushStreamingBuilderNext BytesFilledDynaNextFileSpecNextTrailersMakerTrailers TrailersMakerOutObj outObjHeaders outObjBodyoutObjTrailersInpObj inpObjHeadersinpObjBodySize inpObjBodyinpObjTrailersOutBody OutBodyNoneOutBodyStreamingOutBodyStreamingUnmaskOutBodyBuilder OutBodyFileInpBodyPath AuthoritySchemedefaultTrailersMakerrunTrailersMakerfillBuilderBodyGetNextfillFileBodyGetNextfillStreamBodyGetNextResponseRequestClient ClientConfigscheme authority cacheLimitrun requestNoBody requestFilerequestBuilderrequestStreamingrequestStreamingUnmasksetRequestTrailersMakerresponseStatusresponseHeadersresponseBodySizegetResponseBodyChunkgetResponseTrailersAux auxTimeHandle auxMySockAddrauxPeerSockAddr PushPromisepromiseRequestPathpromiseResponseServer requestMethod requestPathrequestAuthority requestSchemerequestHeadersrequestBodySizegetRequestBodyChunkgetRequestTrailersresponseNoBody responseFileresponseBuilderresponseStreamingsetResponseTrailersMaker pushPromisebaseGHC.Base++GHC.Listfilterzipmap Control.Monadguardjoin GHC.FloatFloatingtanhtansqrtsinhsinpilogBaselog1pexplog1plog1mexplogexpm1expcoshcosatanhatanasinhasinacosh**acosMonad>>>>=returnFunctor<$fmapghc-prim GHC.ClassesOrd<<=>maxmincompare>=Control.Monad.Fail MonadFailfail Data.StringIsString fromString ApplicativeliftA2<**><*>pure Data.FoldableFoldablefoldr'foldMap'foldMapfoldtoListsumproductminimummaximumfoldr1foldl1foldl'elemfoldrfoldlnulllengthData.TraversablemapMsequence<>MonoidmconcatmemptymappendString GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJustOrderingGTLTEQWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherRightLeftforM_mapM_ zipWithM_zipWithMunless replicateM_ replicateMmfilter mapAndUnzipMforeverfoldM_foldMfilterM>=><=<<$!> Data.ListisSubsequenceOf mapAccumR mapAccumLforMControl.ApplicativeZipList getZipList WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowoptionalGHC.ForeignPtrwithForeignPtrmallocPlainForeignPtrBytesData.Functor.ConstConstgetConst traverse_ sequence_ sequenceA_ornotElemmsum minimumBy maximumByfor_foldrMfoldlMfind concatMapconcatasumanyandall Data.OldListzipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4wordsunzip7unzip6unzip5unzip4unwordsunlinesunionByunionunfoldr transposetails subsequences stripPrefixsortOnsortBysort singleton permutations partitionnubBynublines isSuffixOf isPrefixOf isInfixOf intersperse intersectBy intersect intercalateinsertByinsertinitsgroupBygroup genericTakegenericSplitAtgenericReplicate genericLength genericIndex genericDrop findIndices findIndex elemIndices elemIndex dropWhileEnddeleteFirstsBydeleteBydelete\\ Data.MonoidLastgetLastFirstgetFirstApgetApData.Semigroup.InternalSumgetSumProduct getProductEndoappEndoDualgetDualAnygetAnyAltgetAltAllgetAllData.OrdDowngetDown comparingclamp Data.BitsXorgetXorIorgetIorIffgetIffAndgetAndoneBitsrightspartitionEithersleftsisRightisLeft fromRightfromLefteitherNumericshowOct showIntAtBaseshowIntshowHex showHFloat showGFloatAlt showGFloat showFFloatAlt showFFloat showEFloatshowBin readSignedreadOctreadIntreadHex readFloatreadDecreadBinGHC.Read lexDigits showFloatfromRat floatToDigits byteSwap64 byteSwap32 byteSwap16 bitReverse8 bitReverse64 bitReverse32 bitReverse16GHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeroszeroBitsxor unsafeShiftR unsafeShiftLtestBitshiftRshiftLshiftsetBitrotateRrotateLrotatepopCountisSigned complementBit complementclearBit bitSizeMaybebitSizebit.&..|.toIntegralSizedtestBitDefaultpopCountDefault bitDefaultGHC.Real showSignedzipWith3zipWithzip3unzip3unzipuncons takeWhiletaketailsplitAtspanscanr1scanrscanl1scanl'scanlreverse replicaterepeatlookuplastiterate'iterateinitheadfoldl1' dropWhiledropcyclebreak!! Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybefromJust catMaybes Data.Functorvoid<$> MonadPlusmplusmzero Alternativesomemany<|>emptywhenliftM5liftM4liftM3liftM2liftMliftA3liftAap=<<<**>bytestring-0.11.3.1Data.ByteString.Short.InternalShortByteStringData.ByteString.Internal ByteStringBSPSBuilder<<BitsBFTfromBits unpack4bitscopyidxEos huffmanTable huffmanTable'HTreetoHTreemarkBinTipeosInfoshowTree printTreeflattenHIndexSIndexDIndexstaticTableSize toStaticEntry staticTablestaticTableListRevIndex newRevIndex renewRevIndexlookupRevIndexlookupRevIndex'insertRevIndexdeleteRevIndexList circularTableoffset numOfEntriesmaxNumOfEntriesdynamicTableSizemaxDynamicTableSizeprintDynamicTablerenewDynamicTable shouldRenew insertEntryTableSizeActionIgnoreKeepChangecodeInfoCodeInfoCIECIDtoIndexedEntryfromHIndexToIndexhuffmanDecoderisDynamicTableEmptyisSuitableSizeneedChangeTableSizeresetLimitForEncodingtoDynamicEntry getRevIndex encodeHeader'TrueFalseCachecQueuecTickcSizecLimit emptyCacheGHC.IO.Handle.TypesHandleaddMyId deleteMyIdRatenewRategetRate getStatus setStatusminSettingsKeymaxSettingsKey buildPaddingdecodeWithPaddingcheckSettingsList ReasonPhraseControlCGoawayCFramesCFinish OutputTypeONextOPushOWaitOObjOutputoutputSentinel outputStrmQ outputType outputObject outputStreamInput StreamTableStream streamInput streamWindow streamState streamNumber StreamStateReservedClosedHalfClosedRemoteOpenIdle ClosedCode ResetByMeResetKilledFinished OpenStateHasBodyNoBody Continued JustOpenedBodycheckSettingsValueforkAndEnqueueWhenReady enqueueOutputenqueueControlisIdleisOpenisHalfClosedRemoteisHalfClosedLocalisClosed newStream newPushStreamreadStreamStatenewStreamTableremovesearchupdateAllStreamWindowcloseAllStreams goawayFrame resetFrame settingsFrame pingFramewindowUpdateFrameContext continued peerSockAddr mySockAddremptyFrameRate settingsRatepingRaterxConnectionInctxConnectionWindowdecodeDynamicTableencodeDynamicTablecontrolQoutputQStreamIDoutputQoutputBufferLimit peerStreamId myStreamId concurrency streamTable peerSettings mySettingsmyPendingAlistmyFirstSettingsroleInforole ClientInfocache ServerInfoinputQRoleInfoRICRISRole toServerInfo toClientInfo newServerInfo newClientInfo insertCache lookupCache newContextisClientisServergetMyNewStreamIdgetPeerStreamIDsetPeerStreamIDsetStreamStateopenedhalfClosedRemotehalfClosedLocalclosed openStreamgetStreamWindowSizegetConnectionWindowSizewaitStreamWindowSizewaitConnectionWindowSizeincreaseWindowSizeincreaseStreamWindowSizeincreaseConnectionWindowSizedecreaseWindowSizeinformWindowUpdateproperWindowSizeupdateMySettingsupdatePeerSettings fixHeadershpackEncodeHeaderhpackEncodeHeaderLoophpackDecodeHeaderhpackDecodeTrailerjust frameSenderSource frameReceiver sendRequest sendStreamingexchangeSettings StreamInforesponseworker WorkerConf readInputQ writeOutputQ workerCleanup isPushable insertStreammakePushStream fromContextgoaway