h$,"      !None  #$%1 url-bytesPossible parse errors url-bytesUrl type represented by its serialization, and slices of that serialization.Syntax in pseudo-BNF: url = scheme ":" [ hierarchical | non-hierarchical ] [ "?" query ]? [ "#" fragment ]? non-hierarchical = non-hierarchical-path non-hierarchical-path = * Does not start with "" */ hierarchical = authority? hierarchical-path authority = "//" userinfo? host [ ":" port ]? userinfo = username [ ":" password ]? "@" hierarchical-path = [ "/" path-segment ]+  url-bytesBefore ':' url-bytesBefore ':' (if a password is given) or '@' (if not)  url-bytesBefore initial '/', if any  url-bytesBefore '?' url-bytesBefore '#'  None #$%, url-bytesDecode a hierarchical URLNone #$%1W url-bytesSlice into the ) and retrieve the scheme, if it's present url-bytesSlice into the + and retrieve the username, if it's present url-bytesSlice into the ' and retrieve the host, if it's present url-bytesSlice into the % and retrieve the path starting with '/', if it's present url-bytesSlice into the - and retrieve the query string starting with '?', if it's present url-bytesSlice into the ) and retrieve the fragment starting with '#', if it's present url-bytes1This function is intentionally imprecise. E.g. 5getExtension "google.com/facebook.com" == Just ".com"! url-bytesscheme url-byteshost url-bytesport url-bytespath url-bytesframgent !! "      !"#$(url-bytes-0.1.1.1-59y69yvJpab5pqrZVcwsLHUrl Url.Unsafe Url.Rebind ParseError EndOfInputInvalidAuthority InvalidPorturlSerialization urlSchemeEndurlUsernameEnd urlHostStart urlHostEndurlPort urlPathStart urlQueryStarturlFragmentStart$fEqParseError$fOrdParseError$fShowParseError$fEqUrl$fOrdUrl $fShowUrl decodeUrl getScheme getUsername getAuthority getPasswordgetHostgetPathgetQuery getFragmentgetPort getExtension literalUrl constructUrl