úÎH[B|p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoNone5Token Error Responses /https://tools.ietf.org/html/rfc6749#section-5.2  None5IL !type synonym of post body content Is either p containing an error or q containg a resultThe gained Access Token. Use Data.Aeson.decode to decode string to  AccessToken. The  refreshToken" is special in some cases, e.g. 2https://developers.google.com/accounts/docs/OAuth2'Query Parameter Representation0aPrepare the authorization URL. Redirect to this URL asking for user interactive authentication.1HPrepare the URL and the request body query for fetching an access token.2cPrepare the URL and the request body query for fetching an access token, with optional grant type.3jUsing a Refresh Token. Obtain a new access token by sending a refresh token to the Authorization server.4For GET method API.5Create   with given access token value.>Parse JSON data into 3  !"#$%&'()*+,-./01(access code gained via authorization URL/access token request URL plus the request body.2(access code gained via authorization URL Grant Type/access token request URL plus the request body.3*refresh token gained via authorization URL0refresh token request URL plus the request body.4Base URIAuthorized Access TokenCombined Result56789:;<=>/  !"#$%&'()*+,-./0123456789:3'()*+,-$%&!"# >=<;./ 0123456789:  !"#$%&'()*+,-./0123456789:;<=>None:R)Request (via POST method) "OAuth2 Token".SoRequest a new AccessToken with the Refresh Token. TODO: seems more approporate to rename to refreshAccessTokenT1Conduct post request and return response as JSON.UAConduct post request and return response as JSON or Query String.VConduct post request.W>Conduct an authorized GET request and return response as JSON.X"Conduct an authorized GET request.Ysame to X; but set access token to query parameter rather than headerZ1Conduct POST request and return response as JSON.[Conduct POST request.\HConduct POST request with access token in the request body rather header]ZSend an HTTP request including the Authorization header with the specified access token.^ Parses a Response to to  OAuth2Result_ Parses a OAuth2Result BSL.ByteString into FromJSON a => ar Parses a OAuth2Result BSL.ByteString* that contains not JSON but a Query String`Try _ and ra0Set several header values: + userAgennt : hoauth2 + accept : `application/json` + authorization : Bearer xxxxx if $ provided.bSet the HTTP method to use.RHTTP connection manager OAuth DataOAuth 2 Tokens Access TokenSHTTP connection manager. OAuth context(refresh token gained after authorizationTHTTP connection manager. OAuth optionsThe URL request bodyResponse as JSONUHTTP connection manager. OAuth optionsThe URL request bodyResponse as ByteStringVHTTP connection manager. OAuth optionsURL Request body.Response as ByteStringWHTTP connection manager.Response as JSONXHTTP connection manager.Response as ByteStringYHTTP connection manager.Response as ByteStringZHTTP connection manager.Response as JSON[HTTP connection manager.Response as ByteString\HTTP connection manager.Response as ByteString]Request to performModify request before sendingHTTP connection manager.^_r`abRSTUVWXYZ[\]^_`abRSTUVWXYZ[\]^_`abRSTUVWXYZ[\]^_r`abNone5c)Authorization Code Grant Error Responses  3https://tools.ietf.org/html/rfc6749#section-4.1.2.1! Implicit Grant Error Responses 3https://tools.ietf.org/html/rfc6749#section-4.2.2.1 cdefghijklcfdehgij lkcdefghijcdefghijkl OAuth2 client(c) 2012 Haisheng Wu BSD-style (see the file LICENSE)Haisheng Wu <freizl@gmail.com>alphaportableNone@  !"#$%&'()*+,-./0123456789:RSTUVWXYZ[\]^_`abs      !!"##$%%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bc de fghfgijk$hoauth2-1.5.1-6577bP7atqIDWMjQxiwq9W!Network.OAuth.OAuth2.TokenRequestNetwork.OAuth.OAuth2.InternalNetwork.OAuth.OAuth2.HttpClient)Network.OAuth.OAuth2.AuthorizationRequestNetwork.OAuth.OAuth2ErrorsInvalidRequest InvalidClient InvalidGrantUnauthorizedClientUnsupportedGrantType InvalidScope$fToJSONErrors$fFromJSONErrors $fShowErrors $fEqErrors$fGenericErrors QueryParamsPostBody OAuth2Result OAuth2ErrorerrorerrorDescriptionerrorUri OAuth2Token accessToken refreshToken expiresIn tokenTypeidToken ExchangeTokenextokenIdTokenidtoken RefreshTokenrtoken AccessTokenatokenOAuth2 oauthClientIdoauthClientSecretoauthOAuthorizeEndpointoauthAccessTokenEndpoint oauthCallbackparseOAuth2ErrormkDecodeOAuth2ErrorauthorizationUrlaccessTokenUrlaccessTokenUrl'refreshAccessTokenUrlappendAccessTokenaccessTokenToParamappendQueryParams uriToRequest requestToUrihostLensportLens$fToJSONOAuth2Error$fFromJSONOAuth2Error$fToJSONOAuth2Token$fFromJSONOAuth2Token $fShowOAuth2 $fEqOAuth2$fShowAccessToken$fFromJSONAccessToken$fToJSONAccessToken$fShowRefreshToken$fFromJSONRefreshToken$fToJSONRefreshToken $fShowIdToken$fFromJSONIdToken$fToJSONIdToken$fShowExchangeToken$fFromJSONExchangeToken$fToJSONExchangeToken$fShowOAuth2Token$fGenericOAuth2Token$fShowOAuth2Error$fEqOAuth2Error$fGenericOAuth2ErrorfetchAccessTokenfetchRefreshTokendoJSONPostRequestdoFlexiblePostRequestdoSimplePostRequest authGetJSON authGetBS authGetBS' authPostJSON authPostBS authPostBS' authRequesthandleResponseparseResponseJSONparseResponseFlexibleupdateRequestHeaders setMethod AccessDeniedUnsupportedResponseType ServerErrorTemporarilyUnavailablebase Data.EitherLeftRightparseResponseString