!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None-;<=>?BFKSTViCI magicbaneConstructs a WAI application from an API definition, a Servant context (used for auth mainly), the app context and the actual action handlers. magicbane*Gets a value of any type from the context. magicbaneZGets a thing from a value of any type from the context. (Useful for configuration fields.)$RJQPONMLKIDJKLMNOPQRSTUVZYXW]\[^a`_bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-3210/.476598;:<=>?$RJQPONMLKIJKLMNOPQRSTUVZYXW]\[^a`_bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-3210/.476598;:<=>?DNone;<=BO magicbaneCreates a logger module using a given formatting function. | Also returns the underlying TimedFastLogger for use outside of your Magicbane app (e.g. in some WAI middleware).  None;<=BTM magicbaneCreates a metrics module with a particular Store. The Store should come from the backend you want to use for storing the metrics. For development, a simple backend that shows metrics on a web page is ekg-wai, reexported here.-stuvwxyz{|}~-stuvwxyz{|}~None-;<=>?BFSTb  magicbane`Merges two JSON objects recursively. When the values are not objects, just returns the left one. magicbane<Encodes key-value data as application/x-www-form-urlencoded. magicbane>Decodes key-value data from application/x-www-form-urlencoded. magicbane[Reads a Servant incoming form as a list of key-value pairs (for use in FromForm instances). magicbaneConverts a flat key-value form with keys in typical nesting syntax (e.g. "one[two][three]") to an Aeson Value with nesting (for use in FromForm instances). magicbaneParses any string into a URI. magicbane%Prepares text for inclusion in a URL.:set -XOverloadedStringsslugify "Hello & World!""hello-and-world" magicbane'Creates a simple text/plain ServantErr. magicbane2Creates and throws a simple text/plain ServantErr.  None+;<=Bk magicbaneCreates a request from a URI. magicbaneCCreates a request from a string of any type, parsing it into a URI. magicbaneAConfigures the request to not throw errors on error status codes. magicbaneSSets a x-www-form-urlencoded form as the request body (also sets the content-type). magicbaneyPerforms the request, using a given function to read the body. This is what all other performWith functions are based on. magicbane(Performs the request, ignoring the body. magicbane>Performs the request, reading the body into a lazy ByteString.      !"#$%&'()*+,-./0123456789:;>=<TLPSRQONMKJIHGFEDCBA@?a`_^]\[ZYXWVUbdckjihgfelmn}|t{zyxwvusrqpo~      !"#$%&'()*+,-./0123456789:;>=<TLPSRQONMKJIHGFEDCBA@?a`_^]\[ZYXWVUbdckjihgfelmn}|t{zyxwvusrqpo~NoneBs[7 Trustworthy-;<=>?BFST]w magicbaneReads an Envy configuration from the env variables and launches the given action if successful. (Does environment variable reading ever fail in practice? Probably not.) "! $#'&%*)(/.-,+4321056789:;<=>?@ABCDEFGHJIMLKPONSRQXWVUT[ZY^]\_`abcdgefhipkmonljsrq{zyxwvut~}|      !"#$%&'()*+,-./0123456789:;>=<TLPSRQONMKJIHGFEDCBA@?a`_^]\[ZYXWVUbdckjihgfelmn}|t{zyxwvusrqpo~      !"#$%&'()*+,-./01234567;:98<=>?@ABCDEFGHRJQPONMLKISTUVWXYZ[\]^_`abcdefghijklmqponrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVZYXW]\[^a`_bcdefghijklmnoqrstuvwxyz{|}~      !"#$%&'()*+,-3210/.476598;:<=>?@ABCDEFGHIJKLMNOPQRSUTVWXYZ[\]^_`abcdefghijklmnopqrsvut~}|{zyxw "! $#'&%*)(/.-,+4321056789:;<=>?@ABCDEFGHJIMLKPONSRQXWVUT[ZY^]\_`abcdgefhipkmonljsrq{zyxwvut~}|      !"#$%&'()*+,-./0123456789:;>=<TLPSRQONMKJIHGFEDCBA@?a`_^]\[ZYXWVUbdckjihgfelmn}|t{zyxwvusrqpo~      !"#$%&'()*+,-./01234567;:98<=>?@ABCDEFGHRJQPONMLKISTUVWXYZ[\]^_`abcdefghijklmqponrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVZYXW]\[^a`_bcdefghijklmnoqrstuvwxyz{|}~      !"#$%&'()*+,-3210/.476598;:<=>?@ABCDEFGHIJKLMNOPQRSUTVWXYZ[\]^_`abcdefghijklmnopqrsvut~}|{zyxwSafe   ! "#$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#EFGFHFIFJKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqrsrtuvuwuxuyuzu{u|u}u~uuuuu~u}uuuuuuuuuuuuuuuuuuu                                 !"#$%&'()'(*'(+'(,'(-'(.'(/'(0'(1'(2'(3'(4'56'57'58'59'5:'5;'<='<>'<?'<@'<A'<B'<C'<D'<E'<F'<G'<H'<I'<J'KL'KM'KN'KO'KP'KQ'KR'KS'KT'KU'KV'KW'XY'XZ'X['X\'X]'X^'X_'X`'Xa'Xb'Xc'Xd'Xe'Xf'Xg'Xh'Xi'Xj'kl'km'kn'op'oq'rs'rt'ru'rv'rw'rx'ry'rz'r{'r|'r}'r~'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuuvwvxvyvzv{v|v}v~vvvvvvvvvvvvvvv$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%&$%$%$%$%$%      !"#$%&'()*+,-./0123456789:;<:;=:;>:;?:;@:;A:BC:BC:BD:BD:BE:BE:BF:BG:BH:BI:BJ:BK:BL:BM:BN:BO:BP:BQ:BR:BS:BT:BU:BV:BW:BX:BY:BZ:B[:B\:B]:B^:B_:B`:Ba:Bb:Bc:Bd:Be:Bf:Bg:Bh:Bi:Bj:Bk:Bl:Bm:Bn:Bo:Bp:Bq:Br:Bs:Bt:uv:uw:ux:uy:uz:u{:u|:u}:u~:u:u:u:u:u:u:u:u:::::         ! "#$#%#&#'#(#)#*#+#,#-#.#/#0#01213145657585959:;:;<=>?@A?@B?@C?@D?@EFGHFGIFGJFGKFGLFGMFNOFNPFNQFNRFNSFTUFTVFTWFTXFTYFTZFT[F\]F\^F\_F\`F\aF\bF\cF\cFdeFfgFhiFhjFklFkmFknFkoFkpFkqFkrFksFktFkuFkvFkwFkxFkyFkzFk{Fk|Fk}Fk~FkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFFFFFFFF::::::::::::::       !"#$%&'()*&magicbane-0.3.0-Ev1szEerYrxCVIWaUfXD7u Magicbane Magicbane.AppMagicbane.HTTPClientMagicbane.MetricsMagicbane.LoggingMagicbane.UtilMagicbane.ValidationPaths_magicbanebaseGHC.BaseassertData.Typeable.InternalTypeable$aeson-1.3.1.1-K5DYzowTgP676XKOYx8asq Data.AesoneitherDecodeFileStrict'eitherDecodeStrict' eitherDecode'eitherDecodeFileStricteitherDecodeStrict eitherDecodedecodeFileStrict' decodeStrict'decode'decodeFileStrict decodeStrictdecode encodeFileencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONTo1ArgsNoToArgsToArgstoEncodingList toJSONList toEncodingtoJSONToJSON.=KeyValue toJSONKeyList toJSONKey ToJSONKeyToJSONKeyValue ToJSONKeyTextToJSONKeyFunctionliftToEncodingListliftToEncodingliftToJSONList liftToJSONToJSON1liftToEncodingList2liftToEncoding2liftToJSONList2 liftToJSON2ToJSON2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeriesData.Aeson.Types.FromJSON.!=.:!.:?.:fromJSONwithEmbeddedJSONwithBoolwithScientific withNumber withArraywithText withObject parseJSON2 parseJSON1genericLiftParseJSONgenericParseJSON gParseJSON GFromJSON From1Args NoFromArgsFromArgs parseJSONList parseJSONFromJSONfromJSONKeyList fromJSONKey FromJSONKeyFromJSONKeyValueFromJSONKeyTextParserFromJSONKeyTextFromJSONKeyCoerceFromJSONKeyFunctionliftParseJSONList liftParseJSON FromJSON1liftParseJSONList2liftParseJSON2 FromJSON2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.InternalcamelTo2defaultTaggedObjectdefaultOptionsobjectSuccessErrorResultObjectArrayNullBoolNumberStringValuefromDotNetTime DotNetTimetagSingleConstructorsunwrapUnaryRecords sumEncodingomitNothingFieldsallNullaryToStringTagconstructorTagModifierfieldLabelModifierOptionscontentsFieldName tagFieldName TwoElemArrayObjectWithSingleField UntaggedValue TaggedObject SumEncodingData.Aeson.Types.GenericZeroOne%aeson-qq-0.8.2-Bu12wJsYyKrE4zVqxHy9Mo Data.Aeson.QQaesonQQ GHC.Conc.SyncThreadIdControl.ConcurrentrtsSupportsBoundThreadsControl.Concurrent.ChanChanGHC.IO.ExceptionSomeAsyncException IOException GHC.Exception SomeExceptiondisplayException fromException toException Exception Data.Proxy asProxyTypeOfProxyKProxyData.Type.BoolIfGHC.MVarMVartransformers-0.5.5.0Control.Monad.Trans.MaybeMaybeTControl.Monad.Trans.ExceptExceptT,unliftio-core-0.1.1.0-LMRC2BJekXQHTjQ89kypYpControl.Monad.IO.Unlift MonadUnliftIO1data-default-class-0.1.2.0-2kYzERBLX3wJoPfj7mwVvWData.Default.ClassdefDefault'data-has-0.3.0.0-8r0qQt5cMCM4AYbERGLZDXData.HashasLensmodifiergetterHas'ekg-core-0.1.1.4-LCsiebdciiD4i9oBCPCK7FSystem.MetricsregisterGcMetricsStore&ekg-wai-0.1.0.3-D22x5vRsH7T2b7T5KpjMFQSystem.Remote.Monitoring.WaiserverMetricStore!envy-1.5.0.0-8DBP7xDqCAnEUWju3LGr System.EnvyshowEnvunsetEnvironment'unsetEnvironmentsetEnvironment'setEnvironment decodeEnvmakeEnvgFromEnvCustomenvMaybeenvrunEnv runParserParserfromEnvFromEnv defConfig DefConfig customPrefixdropPrefixCountOptiontoEnvToEnvEnvListfromVartoVarVar#errors-2.3.0-72ZReVTmJk79SyQJwUXOwpControl.Error.UtilfmapRTisRightTisLeftTfmapRisRightisLeft isNothingTisJustTnothingjustmaybeT failWithMfailWith?:!? hoistMaybenoteTnotehushThush hoistEither bimapExceptTexceptTrunAllEAllErunAnyEAnyE runMaybeT mapMaybeT liftCatch runExceptT(exceptions-0.10.0-DmsI5QMvE6e6QgVkMINEKbControl.Monad.Catch MonadCatch)fast-logger-2.4.11-AXpCz9z0MQ8Ajcrb19zwrQSystem.Log.FastLogger LogCallbackLogFileLogFileNoRotate LogStderr LogStdoutLogNoneLogTypeSystem.Log.FastLogger.IOdefaultBufSize(http-types-0.12.1-CVeYXehbrw3Br6YeJckOG5Network.HTTP.Types.URIencodePathSegmentsRelative,http-api-data-0.3.8.1-8JbdzYMkghw4VmWZ8qnnFMWeb.Internal.HttpApiData toQueryParamtoHeadertoEncodedUrlPiece toUrlPiece ToHttpApiDataparseQueryParam parseHeader parseUrlPieceFromHttpApiData*network-uri-2.6.1.0-AstEwZoXrlUJQq4VkxaVo9 Network.URIURI+http-client-0.5.13.1-L8SCevgct4z5aDZX1HfnD7Network.HTTP.ClientresponseTimeoutDefaultresponseTimeoutNoneresponseTimeoutMicromanagerSetProxymanagerSetSecureProxymanagerSetInsecureProxywithResponseHistoryresponseOpenHistoryhrFinalResponsehrFinalRequest hrRedirectsHistoriedResponseNetwork.HTTP.Client.CorewithConnection responseClose responseOpen httpNoBodyhttpLbs withResponseNetwork.HTTP.Client.CookiesgenerateCookieinsertCheckedCookiereceiveSetCookieupdateCookieJarcomputeCookieStringinsertCookiesIntoRequestevictExpiredCookies!removeExistingCookieFromCookieJardestroyCookieJarcreateCookieJar pathMatches defaultPath domainMatches isIpAddressNetwork.HTTP.Client.Manager defaultProxyproxyEnvironmentNamedproxyEnvironmentuseProxynoProxyproxyFromRequest withManager closeManager newManagerdefaultManagerSettingsrawConnectionModifySocketSizerawConnectionModifySocketNetwork.HTTP.Client.RequestobservedStreamFile streamFilesetQueryStringPartialEscapesetQueryStringsetRequestCheckStatussetRequestIgnoreStatusurlEncodedBodyapplyBasicProxyAuthapplyBasicAuthdefaultRequestgetUrirequestFromURI_requestFromURI parseRequest_ parseRequestthrowErrorStatusCodes parseUrlThrowparseUrlNetwork.HTTP.Client.Body brConsume brReadSomebrReadNetwork.HTTP.Client.ConnectionsocketConnectionmakeConnectionNetwork.HTTP.Client.Types BodyReaderInvalidUrlExceptionHttpExceptionRequest HttpExceptionInvalidProxySettingsConnectionClosedInvalidProxyEnvironmentVariableHttpZlibExceptionInvalidDestinationHostIncompleteHeadersInvalidChunkHeadersResponseBodyTooShortWrongRequestBodyStreamSizeTlsNotSupportedNoResponseDataReceivedProxyConnectExceptionInternalException InvalidHeaderInvalidStatusLineConnectionFailureConnectionTimeoutResponseTimeoutOverlongHeadersTooManyRedirectsStatusCodeExceptionHttpExceptionContentcookie_http_onlycookie_secure_onlycookie_host_onlycookie_persistentcookie_last_access_timecookie_creation_time cookie_path cookie_domaincookie_expiry_time cookie_value cookie_nameCookie CookieJar proxyPort proxyHost RequestBodyIORequestBodyStreamChunkedRequestBodyStreamRequestBodyBuilder RequestBodyBSRequestBodyLBS RequestBodyPopper NeedsPopper GivesPopperrequestVersion cookieJarresponseTimeout checkResponse redirectCount decompressproxy requestBodyrequestHeaders queryStringporthostsecuremethodRequestresponseCookieJar responseBodyresponseHeadersresponseVersionresponseStatusResponsemanagerModifyResponsemanagerModifyRequestmanagerIdleConnectionCountmanagerWrapExceptionmanagerRetryableExceptionmanagerResponseTimeoutmanagerTlsConnectionmanagerRawConnectionmanagerConnCountManagerSettings ProxyOverrideManagergetHttpManagerHasHttpManager thisChunkSize readSoFarfileSizeStreamFileStatusQuery-http-link-header-1.0.3-CmOI0hjuxEXCbKdKFc7QfwNetwork.HTTP.Link.WriterwriteLinkHeader writeLinkNetwork.HTTP.Link.ParserparseLinkHeaderBSparseLinkHeaderBS'parseLinkHeaderparseLinkHeader' linkHeaderNetwork.HTTP.Link.Typeslnk linkParamshrefOther ContentTypeTitle'TitleMediaHreflangRevAnchorRel LinkParamNetwork.HTTP.Types.Versionhttp20http11http10http09 httpMinor httpMajor HttpVersionNetwork.HTTP.Types.QueryLiketoQuery QueryLikerenderQueryBuilderPartialEscaperenderQueryPartialEscape decodePath encodePath extractPathdecodePathSegmentsencodePathSegments urlDecode urlEncodeurlEncodeBuilderparseSimpleQuery parseQueryrenderSimpleQuery renderQueryrenderQueryBuildersimpleQueryToQueryparseQueryTextqueryToQueryTextrenderQueryTextqueryTextToQuery QueryItem QueryTextSimpleQueryItem SimpleQueryQNQE EscapeItemPartialEscapeQueryItemPartialEscapeQueryNetwork.HTTP.Types.StatusstatusIsServerErrorstatusIsClientErrorstatusIsRedirectionstatusIsSuccessfulstatusIsInformational networkAuthenticationRequired511 status511httpVersionNotSupported505 status505gatewayTimeout504 status504serviceUnavailable503 status503 badGateway502 status502notImplemented501 status501internalServerError500 status500requestHeaderFieldsTooLarge431 status431tooManyRequests429 status429preconditionRequired428 status428unprocessableEntity422 status422 imATeapot418 status418expectationFailed417 status417requestedRangeNotSatisfiable416 status416unsupportedMediaType415 status415requestURITooLong414 status414requestEntityTooLarge413 status413preconditionFailed412 status412lengthRequired411 status411gone410 status410 conflict409 status409requestTimeout408 status408proxyAuthenticationRequired407 status407notAcceptable406 status406methodNotAllowed405 status405 notFound404 status404 forbidden403 status403paymentRequired402 status402unauthorized401 status401 badRequest400 status400permanentRedirect308 status308temporaryRedirect307 status307 useProxy305 status305notModified304 status304 seeOther303 status303found302 status302movedPermanently301 status301multipleChoices300 status300partialContent206 status206resetContent205 status205 noContent204 status204nonAuthoritative203 status203 accepted202 status202 created201 status201ok200 status200switchingProtocols101 status101 continue100 status100mkStatus statusMessage statusCodeStatusNetwork.HTTP.Types.MethodrenderStdMethod renderMethod parseMethod methodPatch methodOptions methodConnect methodTrace methodDelete methodPut methodHead methodPost methodGetMethodPATCHOPTIONSCONNECTTRACEDELETEPUTHEADPOSTGET StdMethodNetwork.HTTP.Types.HeaderparseByteRangesrenderByteRangesrenderByteRangesBuilderrenderByteRangerenderByteRangeBuilderhCookie hUserAgenthServerhRefererhRange hLocation hLastModifiedhIfRangehIfModifiedSincehDate hContentType hContentMD5hContentLengthhContentEncoding hConnection hCacheControlhAuthorizationhAcceptLanguagehAccept HeaderNameRequestHeadersResponseHeadersByteRangeSuffixByteRangeFromTo ByteRangeFrom ByteRange ByteRanges,monad-metrics-0.2.1.2-7k41wMQm9UN2TaPXYaY1P0Control.Monad.Metricslabel'labeltimed timedListtimed'gaugegauge' distributioncountercounter' increment getMetrics MonadMetricsControl.Monad.Metrics.Internal metricsStore metricsLabels metricsGaugesmetricsCountersMetricsDaysHoursMinutesSeconds Milliseconds Microseconds Nanoseconds Resolution mtl-2.2.2Control.Monad.Error.Class throwErrorfragmentquerypath authorityscheme unreservedreserved escapeStringparseabsoluteURInormalizePathSegmentsnormalizeEscape normalizeCase relativeFrom pathSegments relativeTononStrictRelativeTounEscapeStringescapeURIString escapeURICharisUnescapedInURIComponentisUnescapedInURIisAllowedInURI uriToString isUnreserved isReserved uriIsRelative uriIsAbsolute isIPv4address isIPv6address isAbsoluteURIisRelativeReferenceisURIReferenceisURIparseAbsoluteURIparseRelativeReferenceparseURIReferenceparseURInullURI uriFragmenturiQueryuriPath uriAuthority uriSchemeuriPort uriRegName uriUserInfoURIAuth)raw-strings-qq-1.1-I6wKbUvIsYtHiffjLcURKeText.RawString.QQrQr&refined-0.2.3.0-DTGcjPDyfzhI4bAKMDPGppRefinedthrowRefineOtherException catchRefine throwRefine runRefineMrefineM mapRefineT runRefineTdisplayRefineExceptionrightOrleftOrandRightandLeftunrefinerefineTH unsafeRefine refineError refineFail refineThrowrefinevalidate PredicateNotAnd&&Or|| SizeLessThanSizeGreaterThan SizeEqualTo Ascending DescendingLessThan GreaterThanFromToFromToEqualTo NotEqualToPositive NonPositiveNegative NonNegative ZeroToOneNonZeroNonEmptyweakenWeakenRefineOtherExceptionRefineOrExceptionRefineAndExceptionRefineNotExceptionRefineExceptionRefineTRefineM'unliftio-0.2.7.0-FjA0wv5vXk81xwIghRvxcu UnliftIO.ChannewChan writeChanreadChandupChangetChanContentswriteList2ChanUnliftIO.ExceptionStringExceptionAsyncExceptionWrapperSyncExceptionWrappercatchcatchIOcatchAny catchDeep catchAnyDeep catchJusthandlehandleIO handleAny handleDeep handleAnyDeep handleJusttrytryIOtryAnytryDeep tryAnyDeeptryJustpureTry pureTryDeepcatches catchesDeepevaluate evaluateDeepbracketbracket_bracketOnErrorbracketOnError_finally withException onExceptionthrowIOtoSyncExceptiontoAsyncExceptionisSyncExceptionisAsyncExceptionmaskuninterruptibleMaskmask_uninterruptibleMask_ throwStringstringExceptionthrowTo impureThrow fromEither fromEitherIO fromEitherM UnliftIO.MVar newEmptyMVarnewMVartakeMVarputMVarreadMVarswapMVar tryTakeMVar tryPutMVar isEmptyMVar tryReadMVarwithMVarwithMVarMasked modifyMVar_ modifyMVarmodifyMVarMasked_modifyMVarMasked mkWeakMVar"rio-0.1.3.0-90B7o5HgFEbLcZCTPMW2IpRIO.Prelude.RIORIOUnliftIO.Concurrent myThreadId threadDelaythreadWaitReadthreadWaitWriteisCurrentThreadBound%servant-0.14.1-IXPUnz4VuNPGpdT6z7q0rY Servant.LinksallFieldLinks' allFieldLinks fieldLink' fieldLink allLinks'allLinks safeLink'safeLinklinkURI'linkURIlinkQueryParams linkSegmentsLink FlagParamArrayElemParam SingleParamParamLinkArrayElementPlainLinkArrayElementBracketLinkArrayElementStyleAsLinktoLinkMkLinkHasLinkServant.API.WithNamedContextWithNamedContextServant.API.TypeLevel EndpointsIsElem'IsElemIsSubAPI AllIsElemIsInIsStrictSubAPIAllIsInMapSub AppendList IsSubListElemElemGoServant.API.VerbsVerbGetPostPutDeletePatch PostCreated GetAccepted PostAcceptedDeleteAccepted PatchAccepted PutAcceptedGetNonAuthoritativePostNonAuthoritativeDeleteNonAuthoritativePatchNonAuthoritativePutNonAuthoritative GetNoContent PostNoContentDeleteNoContentPatchNoContent PutNoContentGetResetContentPostResetContentGetPartialContent reflectMethod ReflectMethodServant.API.Sub:>Servant.API.StreamStream StreamGet StreamPostgetStreamGeneratorStreamGeneratortoStreamGeneratorToStreamGenerator ResultStreambuildFromStreamBuildFromStreamtrailerboundaryheader FramingRenderBoundaryStrategyGeneralBoundaryStrategyIntersperseBoundaryStrategyBracketBoundaryStrategyparseEOFparseIncrementalByteStringParserunrenderFramesFramingUnrender NoFramingNewlineFramingNetstringFramingServant.API.ResponseHeadersnoHeader addHeadergetHeadersHList getResponseHeadersUndecodableHeader MissingHeaderHeaderResponseHeaderHConsHNilHListbuildHeadersToBuildHeadersTo getHeaders GetHeaders AddHeaderServant.API.ReqBodyReqBodyReqBody'Servant.API.RemoteHost RemoteHostServant.API.RawRawServant.API.QueryParam QueryParam QueryParam' QueryParams QueryFlagServant.API.HeaderHeader'Servant.API.ModifiersRequiredOptionalLenientStrictServant.API.IsSecure NotSecureSecureIsSecureServant.API.Experimental.Auth AuthProtectServant.API.EmptyEmptyAPIServant.API.DescriptionSummary DescriptionServant.API.ContentTypesJSON PlainTextFormUrlEncoded OctetStream contentTypes contentTypeAccept mimeRender MimeRendermimeUnrenderWithType mimeUnrender MimeUnrender NoContentServant.API.CaptureCaptureCapture' CaptureAllServant.API.BasicAuth BasicAuthbasicAuthPasswordbasicAuthUsername BasicAuthDataServant.API.Alternative:<|>$vault-0.3.1.1-2GquhY3BX83KRwXf3C8PlYData.Vault.LazyVault+singleton-bool-0.1.4-8EznQE6dMi2H7lit14Cx2CData.Singletons.BoolSBoolIsboolSBoolSTrueSFalse,servant-server-0.14.1-DkwDAoSjZeJIZpm5LSoEMmServant.Server.StaticFilesserveDirectoryserveDirectoryWithserveDirectoryEmbeddedserveDirectoryWebAppLookupserveDirectoryFileServerserveDirectoryWebAppServant.ServerlayoutWithContextlayout hoistServerserveWithContextserveServant.Server.Internal emptyServerhoistServerWithContextrouteServerT HasServerServer EmptyServer!Servant.Server.Internal.BasicAuth Authorized NoSuchUser BadPassword UnauthorizedBasicAuthResultunBasicAuthCheckBasicAuthCheckServant.Server.Internal.Router tweakResponse*Servant.Server.Internal.RoutingApplication toApplicationServant.Server.Internal.Handler runHandler runHandler'"Servant.Server.Internal.ServantErrerr505err504err503err502err501err500err422err418err417err416err415err414err413err412err411err410err409err407err406err405err404err403err402err401err400err307err305err304err303err302err301err300 errHeaderserrBodyerrReasonPhrase errHTTPCode ServantErrServant.Server.Internal.ContextdescendIntoNamedContext:. EmptyContextContextgetContextEntryHasContextEntry NamedContext"wai-3.2.1.2-HfHpipklQ348mLVBxRyzir Network.Wai Application#tagged-0.8.6-8akQ1aZG2N2GFJpoB5eGXO Data.TaggedTaggedunTagged$split-0.2.3.3-3fFb67BrTpqAjKImK4FBjRData.List.Split.InternalssplitOn1string-conversions-0.4.0.1-2odRrDeA1b0G507cZcdaLT#Data.String.Conversions.MonomorphicfromLT fromLazyTextfromSTfromStrictTextfromLBSfromLazyByteStringfromSBSfromStrictByteString fromStringtoLT toLazyTexttoST toStrictTexttoLBStoLazyByteStringtoSBStoStrictByteStringtoStringData.String.Conversionscs convertStringConvertibleStringsStrictByteStringSBSLazyByteStringLBS StrictTextSTLazyTextLTexceptToMaybeTmaybeToExceptTmkWeakThreadIdrunInUnboundThreadrunInBoundThreadforkOSyieldthreadCapabilitysetNumCapabilitiesgetNumCapabilitiesforkOnWithUnmaskforkOn killThread forkFinallyforkWithUnmaskforkIO Middleware$wai-cli-0.1.1-89CIGbx796rBp9KPkpUVrdNetwork.Wai.Cli defWaiMaindefPutListeningwaiMain runGraceful runActivatedServe503 ServeNormally GracefulMode devlogging gracefulMode tlsCertFile tlsKeyFileprotocolsocket WaiOptions3wai-middleware-metrics-0.2.4-JalHWliDWrjHzx9bNCgBBXNetwork.Wai.MetricsmetricsregisterNamedWaiMetricsregisterWaiMetricsstatusCode500CounterstatusCode400CounterstatusCode300CounterstatusCode200CounterstatusCode100CounterlatencyDistributionrequestCounter WaiMetricsrunMagicbaneHandler magicbaneAppaskObjaskOpt Formatter ModLogger newLoggersimpleFormatter$fHasLogFuncα ModMetricsforkMetricsServernewMetricsWith$fMonadMetricsμmergeVal writeFormreadFormformList formToObjectformKeyparseUrislugifyerrText throwErrText MonadHTTP ModHttpClient newHttpClientrunHTTPreqUreqS anyStatuspostForm performWithFnperformWithVoidperformWithBytes$fHasHttpManagerα$fFromJSONRefined$fToJSONRefinedBasicApp BasicContextWithLinkHTTPLinkFormHost decodeEnvy withEnvConfig hPutStrLnnewBasicContext $fDefConfigαversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName