h*x֬      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   1.0(c) 2019-2023 Emily Pillmore BSD-styleEmily Pillmore , sofia-m-a stable non-portable Safe-Inferred1Kbase64Wraps a value, asserting that it is or is intended to be in a particular kind of Base64 encoding use  extractBase64 to extract the value, and  assertBase64" to tag a value as base64-encodedbase641The different kinds of supported Base64 encodingsbase64Standard base64 according to  7https://datatracker.ietf.org/doc/html/rfc4648#section-4 RFC 4648 4 Padding is always inserted when encoding, and required when decodingbase64Standard base64 according to  7https://datatracker.ietf.org/doc/html/rfc4648#section-4 RFC 4648 4 Padding is never inserted when encoding, and optional when decoding per  =https://datatracker.ietf.org/doc/html/rfc7049#section-2.4.4.2RFC 7049.base64URL-safe base64 according to  7https://datatracker.ietf.org/doc/html/rfc4648#section-5 RFC 4648 5 aka base64url Padding is never inserted when encoding, and optional when decodingbase64Any non-standard, non RFC 4648-compliant base64 encoding. Can only be decoded using lenient decoders.(c) 2019-2023 Emily Pillmore BSD-styleEmily Pillmore , sofia-m-a stable non-portable Safe-Inferred 01 base64)The type family of non-standard alphabetsOnly untyped variants of encodeBase64/decodeBase64 can interact with this type family, in addition to assertion/coercion/extraction of these types of values.base64%The type family of standard alphabetsThis type family defines the union of compatible standard alphabet base64 typesbase64%The type family of Url-safe alphabetsThis type family defines the union of compatible Url-safe base64 types. To write a function that is parametric over such types, issue a constraint like `forall k. UrlAlphabet k`. base64Assert the provenance of a value encoded in a particular base64 alphabet.Warning: This is a blind assertion that a particular value is base64 encoded in some alphabet. If you are not sure of the provenance of the value, you may experience odd behavior when attempting to decode. Use at your own risk. If I see any issues logged on this project from negligent use of this or  , I will smite you. base640Forget the provenance of a base64-encoded value. base642Coerce the alphabet of a base64-encoded bytestringWarning: This is a blind assertion that a particular value is base64 encoded in some alphabet. If you are not sure of the provenance of the value, you may experience odd behavior when attempting to decode. Use at your own risk. If I see any issues logged on this project from negligent use of this or  , I will smite you.    (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferred"Zbase64Given a bytestring, check to see that it conforms to a given alphabetbase64;This function checks that the last char of a bytestring is '=' and, if true, fails with a message or completes some io action.This is necessary to check when decoding permissively (i.e. filling in padding chars). Consider the following 4 cases of a string of length l:l = 0 mod 4: No pad chars are added, since the input is assumed to be good. l = 1 mod 4: Never an admissible length in base64 l = 2 mod 4: 2 padding chars are added. If padding chars are present in the string, they will fail as to decode as final quanta l = 3 mod 4: 1 padding char is added. In this case a string is of the form  body +  padchar. If adding the pad char "completes"" the string so that it is `l = 0 mod 4`, then this may possibly be forming corrupting data. This case is degenerate and should be disallowed.Hence, permissive decodes should only fill in padding chars when it makes sense to add them. That is, if an input is degenerate, it should never succeed when we add padding chars. We need the following invariant to hold:  B64U.decodeUnpadded  |' B64U.decodePadded ~ B64U.decodePadded (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferred base64Only the lookup table need be a foreignptr, and then, only so that we can automate some touches to keep it alivebase64Read  index off alphabet addrbase64Convert Word8's into Word32'sbase64Convert Word8's into Word32'sbase64Convert Word8's into Word32'sbase64Mask bottom 2 bitsbase64Mask bottom 4 bitsbase64,Validate some ptr index against some bitmaskbase64Allocate and fill n bytes with some database64Pack an  into an encoding table of sbase64/Rechunk a list of bytestrings in multiples of 4(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferredbase64Finalize an encoded bytestring by filling in the remaining bytes and any paddingbase64Finalize a bytestring by filling out the remaining bits without padding.(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferred$base64Base64url encoding tablebase64Base64 std encoding tablebase64&Non-URLsafe b64 decoding table (naive)base64"URLsafe b64 decoding table (naive)(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferredbase64Encoding inner loop. Packs 3 bytes from src pointer into the first 6 bytes of 4 Word8'#s (using the encoding table, as 2 Word12'&s ), writing these to the dst pointer.base64decode lookup tablebase64 src pointerbase64 dst pointerbase64decode lookup tablebase64 src pointerbase64 dst pointerbase64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs)(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferredbase64Encoding inner loop. Packs 6 bytes from src pointer into the first 6 bits of 4 Word12'#s (using the encoding table, as 2 Word12'&s ), writing these to the dst pointer.base64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs)base64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs)base64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs)(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore  Experimentalportable Safe-Inferred""base64The main decode function. Takes a padding flag, a decoding table, and the input value, producing either an error string on the left, or a decoded value. Note: If Padding ~ 'Don'tCare', then we pad out the input to a multiple of 4. If Padding ~ Padded, then we do not, and fail if the input is not a multiple of 4 in length. If Padding ~ Unpadded, then we validate correctness of length and the absence of padding and then treat as a std padded string.base641The main decode function for typed base64 values.This loop is separate from % due to the fact that when taking a  value from this library, the existence of the wrapper is a witness to the well-formedness of the underlying value, and so we can eschew error checking in the decode loop.(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred"1+ base64 Encode a  value as Base64  with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu" base64 Encode a  value as a Base64  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64' "Sun""U3Vu"base64Decode a padded Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"base64'Decode a padded untyped Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"decodeBase64Untyped "U3V"1Left "Base64-encoded bytestring requires padding"decodeBase64Untyped "U3V="3Left "non-canonical encoding detected at offset: 2"base64+Leniently decode an untyped Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"base64Tell whether a  value is base64 encoded.?This function will also detect non-canonical encodings such as ZE==, which are externally valid Base64-encoded values, but are internally inconsistent "impossible" values.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="Falsebase64Tell whether a  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use .Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"False  (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred"1@ base64 Encode a  value as a Base64url  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="base64 Encode a  as a Base64url  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64' "<>" "PDw_Pj4="base64Decode a Base64url encoded  value, either padded or unpadded. The correct decoding function is dispatched based on the existence of padding.:For typed values: - If a padded value is required, use , - If an unpadded value is required, use See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"base64$Decode an untyped Base64url encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.For a decoder that fails to decode untyped values of incorrect size: - If a padded value is required, use , - If an unpadded value is required, use See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"base64 Encode a  value as Base64url  without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4"base64 Encode a  value as Base64url without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded' "<>" "PDw_Pj4"base64%Decode an unpadded Base64url-encoded  value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"base64+Decode a padded, untyped Base64url-encoded  value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.In general, unless padded Base64url is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"base64"Decode a padded Base64url-encoded  value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:8decodeBase64Padded $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"base64.Decode an unpadded, untyped Base64url-encoded  value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.In general, unless unpadded Base64url is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"&decodeBase64UnpaddedUntyped "PDw_Pj4="4Left "Base64-encoded bytestring has invalid padding"base648Leniently decode an unpadded, untyped Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"base64Tell whether a  is encoded in padded or unpadded Base64url format.?This function will also detect non-canonical encodings such as ZE==, which are externally valid Base64url-encoded values, but are internally inconsistent "impossible" values.Examples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"Falsebase64Tell whether a  is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use .Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"False  (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred"1Iq base64 Encode a  value as Base64 Text with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu"!base64 Encode a  value as a Base64  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64' "Sun""U3Vu""base64Decode a padded Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"#base64'Decode a padded untyped Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"decodeBase64Untyped "U3V"1Left "Base64-encoded bytestring requires padding"decodeBase64Untyped "U3V="3Left "non-canonical encoding detected at offset: 2"$base64,Leniently decode an unpadded Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"%base64Tell whether a  value is base64 encoded.?This function will also detect non-canonical encodings such as ZE==, which are externally valid Base64-encoded values, but are internally inconsistent "impossible" values.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="False&base64Tell whether a  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use %.Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"False !"#$%& !"#$%&(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred"1\ 'base64 Encode a  value as a Base64url Text value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="(base64 Encode a  as a Base64url  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64' "<>" "PDw_Pj4=")base64Decode a Base64url encoded  value, either padded or unpadded. The correct decoding function is dispatched based on the existence of padding.:For typed values: - If a padded value is required, use /, - If an unpadded value is required, use -See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"2decodeBase64 $ assertBase64 @'UrlUnpadded "PDw-Pg""<<>>"*base64"Decode a padded Base64url encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.For a decoder that fails to decode untyped values of incorrect size: - If a padded value is required, use 0, - If an unpadded value is required, use .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"+base64 Encode a  value as Base64url Text without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4",base64 Encode a $ value as Base64url without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded' "<>" "PDw_Pj4"-base64%Decode an unpadded Base64url-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>".base64.Decode an unpadded, untyped Base64url-encoded  value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.In general, unless unpadded Base64url is explicitly required, it is safer to call *.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"&decodeBase64UnpaddedUntyped "PDw_Pj4="4Left "Base64-encoded bytestring has invalid padding"/base64"Decode a padded Base64url-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"0base64+Decode a padded, untyped Base64url-encoded  value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.In general, unless padded Base64url is explicitly required, it is safer to call ).See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"#decodeBase64PaddedUntyped "PDw_Pj4"1Left "Base64-encoded bytestring requires padding"1base648Leniently decode an unpadded, untyped Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"2base64Tell whether an untyped  is Base64url-encoded.Examples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"False3base64Tell whether an untyped  is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use 2.Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"False '(+,)*-./0123 '(+,)*-./0123(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1d4base64 Encode a  value as Base64  with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu"5base64 Encode a  value as a Base64  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64' "Sun""U3Vu"6base64Decode a padded Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"7base64Decode a padded Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"decodeBase64Untyped "U3V"1Left "Base64-encoded bytestring requires padding"decodeBase64Untyped "U3V="3Left "non-canonical encoding detected at offset: 2"8base64,Leniently decode an unpadded Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"9base64Tell whether a  value is base64 encoded.?This function will also detect non-canonical encodings such as ZE==, which are externally valid Base64-encoded values, but are internally inconsistent "impossible" values.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="False:base64Tell whether a  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use 9.Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"False456789:456789:(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1w| ;base64 Encode a  value as a Base64url  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="<base64 Encode a  as a Base64url  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64' "<>" "PDw_Pj4="=base64Decode a Base64url encoded  value, either padded or unpadded. The correct decoding function is dispatched based on the existence of padding.:For typed values: - If a padded value is required, use C, - If an unpadded value is required, use ASee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>">base64$Decode an untyped Base64url encoded  ByteString value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.For a decoder that fails to decode untyped values of incorrect size: - If a padded value is required, use D, - If an unpadded value is required, use BSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"?base64 Encode a  value as Base64url  without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4"@base64 Encode a $ value as Base64url without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded' "<>" "PDw_Pj4"Abase64%Decode an unpadded Base64url-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"Bbase64.Decode an unpadded, untyped Base64url encoded  ByteString value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.In general, unless unpadded Base64url is explicitly required, it is safer to call =.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"%decodeBase64UnpaddedUntyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"$decodeBase64UnpaddedUntyped "PDw-Pg" Right "<<>>"Cbase64"Decode a padded Base64url-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:8decodeBase64Padded $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"Dbase64+Decode a padded, untyped Base64url encoded  ByteString value.For a decoder that fails on unpadded input of incorrect size, use B.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"#decodeBase64PaddedUntyped "PDw_Pj4"1Left "Base64-encoded bytestring requires padding"Ebase648Leniently decode an unpadded, untyped Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"Fbase64Tell whether an untyped  is Base64url-encoded.Examples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"FalseGbase64Tell whether an untyped  is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use F.Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"False ;ABCDEFG ;ABCDEFG(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred<z Hbase64This data type represents the type of decoding errors of various kinds as they pertain to decoding  values. Namely, to distinguish between decoding errors from opaque unicode exceptions caught in the unicode decoding process.Ibase64The error associated with decoding failure as a result of the Base64 decoding processJbase64The error associated with the decoding failure as a result of the conversion processKbase64Lbase64base64HIJHIJ (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1Pbase64 Encode a  value in Base64 with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu"Qbase64Decode a padded Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"Rbase64(Decode a padded, untyped Base64-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"Sbase64Attempt to decode an untyped # value as Base64, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: S  ::  ->  (H UnicodeException)  Tbase64+Leniently decode an untyped Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"Ubase64Tell whether an untyped  value is Base64-encoded.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="FalseVbase64Tell whether an untyped  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use U.Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"FalseSbase64#convert a bytestring to text (e.g. )base64Input text to decodePQRSTUVPQRSTUV (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1Wbase64 Encode a ! value in Base64url with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="Xbase64Decode a Base64url encoded  value, either padded or unpadded. The correct decoding function is dispatched based on the existence of padding.:For typed values: - If a padded value is required, use _, - If an unpadded value is required, use \See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"Ybase64$Decode an untyped Base64url encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.For a decoder that fails to decode untyped values of incorrect size: - If a padded value is required, use `, - If an unpadded value is required, use ]See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"Zbase64Attempt to decode an untyped & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: Z  ::  ->  (H UnicodeException)  [base64 Encode a $ value in Base64url without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4"\base64%Decode an unpadded Base64url encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"]base64-Decode a unpadded, untyped Base64url-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base64url encodings are optionally padded.0For a decoder that fails on unpadded input, use `See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"%decodeBase64UnpaddedUntyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"$decodeBase64UnpaddedUntyped "PDw-Pg" Right "<<>>"^base64'Attempt to decode an untyped, unpadded & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: ^  ::  ->  (H UnicodeException)  _base64"Decode a padded Base64url encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:8decodeBase64Padded $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"`base64,Decode an untyped, padded Base64url encoded  value.For a decoder that fails on padded input, use ]See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"abase64$Attempt to decode a padded, untyped & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: decodeBase64PaddedWith  ::  ->  (H UnicodeException)  bbase64.Leniently decode an untyped Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"cbase64Tell whether an untyped  value is Base64url-encoded.Examples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"Falsedbase64Tell whether an untyped # value is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use c.Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"FalseZbase64#convert a bytestring to text (e.g. )base64Input text to decode^base64#convert a bytestring to text (e.g. )base64Input text to decodeabase64#convert a bytestring to text (e.g. )base64Input text to decodeW[XYZ\]^_`abcdW[XYZ\]^_`abcd (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred11ebase64 Encode a  value in Base64 with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu"fbase64Decode a padded Base64-encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"gbase64(Decode a padded, untyped Base64-encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"decodeBase64Untyped "U3V"1Left "Base64-encoded bytestring requires padding"decodeBase64Untyped "U3V="3Left "non-canonical encoding detected at offset: 2"hbase64Attempt to decode a # value as Base64, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: h  ::  ->  (H UnicodeException)  ibase64+Leniently decode an untyped Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"jbase64Tell whether an untyped  value is Base64-encoded.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="Falsekbase64Tell whether an untyped  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use j.Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"Falsehbase64#convert a bytestring to text (e.g. )base64Input text to decodeefghijkefghijk (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1lbase64 Encode a ! value in Base64url with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="mbase64(Decode an arbitrarily Base64url-encoded  value.:For typed values: - If a padded value is required, use t, - If an unpadded value is required, use qSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"nbase64$Decode an untyped Base64url-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base64url encodings are optionally padded.0For a decoder that fails on unpadded input, use q.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"obase64"Attempt to decode an untyped lazy & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: decodeBase64With  ::  ->  (H UnicodeException)  pbase64 Encode a  value in Base64url without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4"qbase64%Decode an unpadded Base64url encoded Text value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"rbase64.Decode an unpadded, untyped Base64url encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"&decodeBase64UnpaddedUntyped "PDw_Pj4="4Left "Base64-encoded bytestring has invalid padding"sbase64,Attempt to decode an unpadded, untyped lazy & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: s  ::  ->  (H UnicodeException)  tbase64"Decode a padded Base64url encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:8decodeBase64Padded $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"ubase64,Decode an untyped, padded Base64url encoded Text valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"vbase64)Attempt to decode a padded, untyped lazy & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: decodeBase64PaddedWith  ::  ->  (H UnicodeException) Text wbase64.Leniently decode an untyped Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"xbase64Tell whether an untyped  value is Base64url-encodedExamples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"Falseybase64Tell whether an untyped # value is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use x.Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"Falseobase64#convert a bytestring to text (e.g. )base64Input text to decodesbase64#convert a bytestring to text (e.g. )base64Input text to decodevbase64#convert a bytestring to text (e.g. )base64Input text to decodelpmnoqrstuvwxylpmnoqrstuvwxy (c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1Zzbase64 Encode a  value in Base64 with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:encodeBase64 "Sun""U3Vu"{base64Decode a padded Base64-encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:.decodeBase64 $ assertBase64 @'StdPadded "U3Vu""Sun"|base64Decode a padded Base64-encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "U3Vu" Right "Sun"decodeBase64Untyped "U3V"1Left "Base64-encoded bytestring requires padding"decodeBase64Untyped "U3V="3Left "non-canonical encoding detected at offset: 2"}base64Attempt to decode an untyped # value as Base64, converting from  ByteString to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Example: }  ::  ->  (H UnicodeException)  ~base64+Leniently decode an untyped Base64-encoded  value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "U3Vu""Sun"decodeBase64Lenient "U3V""Su"decodeBase64Lenient "U3V=""Su"base64Tell whether an untyped  value is Base64-encoded.Examples:isBase64 "U3Vu"TrueisBase64 "U3V"FalseisBase64 "U3V="Falsebase64Tell whether an untyped  value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use .Examples:isValidBase64 "U3Vu"TrueisValidBase64 "U3V"TrueisValidBase64 "U3V="TrueisValidBase64 "%"False}base64#convert a bytestring to text (e.g. )base64Input text to decodez{|}~z{|}~(c) 2019-2023 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Safe-Inferred1pbase64 Encode a ! value in Base64url with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5Examples:encodeBase64 "<>" "PDw_Pj4="base64/Decode an arbitrarily padded Base64url-encoded  value.:For typed values: - If a padded value is required, use , - If an unpadded value is required, use See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:2decodeBase64 $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"3decodeBase64 $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"base64+Decode an untyped padded Base64url-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base64url encodings are optionally padded.0For a decoder that fails on unpadded input, use .Note: This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base64-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase64With' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:decodeBase64Untyped "PDw_Pj4=" Right "<>"decodeBase64Untyped "PDw_Pj4" Right "<>"decodeBase64Untyped "PDw-Pg="4Left "Base64-encoded bytestring has invalid padding"decodeBase64Untyped "PDw-Pg" Right "<<>>"base64Attempt to decode an untyped & value as Base64url, converting from  ByteString to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: decodeBase64With  ::  ->  (H UnicodeException)  base64 Encode a $ value in Base64url without padding.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2Examples:encodeBase64Unpadded "<>" "PDw_Pj4"base64%Decode an unpadded Base64url encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:;decodeBase64Unpadded $ assertBase64 @'UrlUnpadded "PDw_Pj4""<>"base64.Decode an untyped, unpadded Base64url encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:%decodeBase64UnpaddedUntyped "PDw_Pj4" Right "<>"&decodeBase64UnpaddedUntyped "PDw_Pj4="4Left "Base64-encoded bytestring has invalid padding"base64'Attempt to decode an untyped, unpadded & value as Base64url, converting from  to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: decodeBase64UnpaddedWith  ::  ->  (H UnicodeException)  base64"Decode a padded Base64url encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:8decodeBase64Padded $ assertBase64 @'UrlPadded "PDw_Pj4=""<>"base64,Decode an untyped, padded Base64url encoded  valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples:$decodeBase64PaddedUntyped "PDw_Pj4=" Right "<>"#decodeBase64PaddedUntyped "PDw_Pj4"1Left "Base64-encoded bytestring requires padding"base64%Attempt to decode an untyped, padded & value as Base64url, converting from  ByteString to  according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Examples: decodeBase64With  ::  ->  (H UnicodeException)  base648Leniently decode an untyped, unpadded Base64url-encoded . This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.Examples:decodeBase64Lenient "PDw_Pj4=""<>""decodeBase64Lenient "PDw_%%%$}Pj4""<>"base64Tell whether an untyped  value is Base64url-encoded.Examples:isBase64Url "PDw_Pj4="TrueisBase64Url "PDw_Pj4"TrueisBase64Url "PDw_Pj"Falsebase64Tell whether an untyped # value is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded  value, use .Examples:isValidBase64Url "PDw_Pj4="TrueisValidBase64Url "PDw_Pj"TrueisValidBase64Url "%"Falsebase64#convert a bytestring to text (e.g. )base64Input text to decodebase64#convert a bytestring to text (e.g. )base64Input text to decodebase64#convert a bytestring to text (e.g. )base64Input text to decode !"#$%&'()*+,-'()*./0123+45'()*+,-'()*./0321+45'()*+,-'()*./0321+456789:;<= ' ) * > + , - ' ) * > . 0 3 ? 2 1 @ + 4 5 ' ) * > + , - ' ) * > . 0 3 ? 2 1 @ + 4 5 ' ) * > + , -')*>.03?21@+45ABCDEFGHIJKLMNOPQRSFGTUDVWXYZ[\]^_`ab_`abcdefghijklmhnjhopqrstkuFvwkxmky!base64-1.0-7TAlqsAoAvrItDy8I7m2aUData.Base64.TypesData.ByteString.Base64Data.ByteString.Base64.URLData.ByteString.Lazy.Base64Data.ByteString.Lazy.Base64.URLData.ByteString.Short.Base64 Data.ByteString.Short.Base64.URLData.Text.Encoding.Base64.ErrorData.Text.Encoding.Base64Data.Text.Encoding.Base64.URLData.Text.Lazy.Encoding.Base64"Data.Text.Lazy.Encoding.Base64.URLData.Text.Short.Encoding.Base64#Data.Text.Short.Encoding.Base64.URLbase64Data.Base64.Types.InternalData.ByteString.Base64.Internal%Data.ByteString.Base64.Internal.Utils$Data.ByteString.Base64.Internal.Tail&Data.ByteString.Base64.Internal.Tables(Data.ByteString.Base64.Internal.W16.Loop(Data.ByteString.Base64.Internal.W64.Loop$Data.ByteString.Base64.Internal.HeadT decodeUtf8' decodeUtf8Base64Alphabet StdPadded UrlPadded UrlUnpadded NonStandardNonStandardAlphabet StdAlphabet UrlAlphabet assertBase64 extractBase64 coerceBase64 encodeBase64 encodeBase64' decodeBase64decodeBase64UntypeddecodeBase64LenientisBase64 isValidBase64encodeBase64UnpaddedencodeBase64Unpadded'decodeBase64UnpaddeddecodeBase64PaddedUntypeddecodeBase64PaddeddecodeBase64UnpaddedUntyped isBase64UrlisValidBase64Url Base64Error DecodeErrorConversionError$fNFDataBase64Error$fExceptionBase64Error$fEqBase64Error$fShowBase64Error$fGenericBase64ErrordecodeBase64UntypedWithdecodeBase64UnpaddedUntypedWithdecodeBase64PaddedUntypedWithvalidateBase64validateLastPadvalidateBase64Url EncodingTableaixbaseGHC.WordWord8w32w64w64_16 mask_2bits mask_4bitsvalidateLastPoswriteNPlainForeignPtrBytes packTableghc-primGHC.PrimAddr#Word16reChunkN peekWord32BE peekWord64BEw32_16loopTail loopTailNoPadbase64UrlTable base64TabledecodeB64TabledecodeB64UrlTable innerLoop decodeLoopdecodeLoopNoError lenientLoop decodeBase64_decodeBase64Typed_ encodeBase64_encodeBase64Nopad_decodeBase64Lenient_bytestring-0.11.5.2Data.ByteString.Internal.Type ByteString text-2.0.2Data.Text.InternalTextData.ByteString.Lazy.InternalData.ByteString.Short.InternalShortByteString&text-short-0.1.5-2mzATDPgHcEDIpJmXzh33Data.Text.Short.Internal ShortTextRep_Base64ErrorData.Text.Encoding Data.EitherEitherData.Text.Internal.LazyData.Text.Lazy.Encoding