h&E@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv  Safe-Inferred " xmlhtml+Void elements as defined by the HTML5 spec.xmlhtmlElements that XmlHtml treats as raw text by default. Raw text elements are not allowed to have any other tags in them. This is necessary to support the Javascript less than operator inside a script tag, for example.The library uses the  function everywhere instead of checking this set directly because that gives us an escape hatch to avoid the default behavior if necessary.xmlhtmlDetermine whether a tag should be treated as raw text. Raw text elements are not allowed to have any other tags in them. This is necessary to support the Javascript less than operator inside a script tag, for example.If a tag is in the  set, this function allows you to override that behavior by adding the  xmlhtmlNotRaw1 attribute. Conversely, if a tag is not in the ? set, this function allows you to override that by adding the  xmlhtmlRaw attribute to the tag.This is the function that is actually used in the parser and renderer.  is not used any more, but is still provided for backwards compatibility and to let you see which tags are treated as raw by default.xmlhtml)List of elements with omittable end tags.xmlhtmlTags which should be considered automatically ended in case one of a certain set of tags pops up.xmlhtmlTags and attributes which should always be rendered with an explicit value, even when the value is empty. This is required by some web browsers for tags that are typically non-empty.xmlhtmlPredefined character entity references as defined by the HTML5 spec.xmlhtmlReverse lookup of Html entities. The values in this map should be the "canonical" entity names that are most widely support by browsers, email clients, etc. If you encounter a situation where the value in this map is not the most widely supported, please open a pull request to change the order in the appropriate ent2names table below.wxmlhtmlThis (Text, [Text]) formulation allows us to have a predictable canonical entity reference. This version was derived from  ,https://dev.w3.org/html5/html-author/charref which has an ordering for the names (along with a few additions that we had previously). We're assuming that the first name in the list is the canonical name. This is important because some names are less widely supported and we want xmlhtml to predictably generate the name that has the widest support rather than having the name decided implicitly by the ordering imposed by Map as had previously been the case.This list is split into a bunch of smaller lists because build times for this module get really long (as in minutes) if we don't. Safe-Inferred "xmlhtmlThe character encoding of a document. Currently only the required character encodings are implemented. xmlhtmlThe internal subset is unparsed, but preserved in case it's actually wanted.xmlhtmlAn external ID, as in a document type declaration. This can be a SYSTEM identifier, or a PUBLIC identifier, or can be omitted.xmlhtmlA document type declaration. Note that DTD internal subsets are currently unimplemented.xmlhtmlRendering optionsxmlhtml4Single or double-quotes used around attribute valuesxmlhtmlQuotes inside attribute values that conflict with the surround are escaped, or the outer quotes are changed to avoid conflicting with the internal ones xmlhtml?Attributes in the whitelist with empty values are rendered as  div example="" x6 applies this rule to all attributes with empty values!xmlhtmlA node of a document structure. A node can be text, a comment, or an element. XML processing instructions are intentionally omitted as a simplification, and CDATA and plain text are both text nodes, since they ought to be semantically interchangeable.(xmlhtmlRepresents a document fragment, including the format, encoding, and document type declaration as well as its content./xmlhtml+Determines whether the node is text or not.0xmlhtml0Determines whether the node is a comment or not.1xmlhtml1Determines whether the node is an element or not.2xmlhtml%Gives the tag name of an element, or x if the node isn't an element.3xmlhtml5Retrieves the attribute with the given name. If the !* is not an element, the result is always x4xmlhtml(Checks if a given attribute exists in a !.5xmlhtml4Sets the attribute name to the given value. If the !* is not an element, this is the identity.6xmlhtml9Gives the entire text content of a node, ignoring markup.7xmlhtmlGives the child nodes of the given node. Only elements have child nodes.8xmlhtml+Gives the child elements of the given node.9xmlhtmlGives all of the child elements of the node with the given tag name.:xmlhtmlGives the first child element of the node with the given tag name, or x# if there is no such child element.;xmlhtmlGives the descendants of the given node in the order that they begin in the document.<xmlhtmlGives the descendant elements of the given node, in the order that their start tags appear in the document.=xmlhtml4Gives the descendant elements with a given tag name.>xmlhtmlGives the first descendant element of the node with the given tag name, or x if there is no such element.yxmlhtmlRetrieves the preferred name of a character encoding for embedding in a document.zxmlhtml Gets the encoding function from { to | for an encoding.}xmlhtmlEncodes UTF-8 Text into bytestring with only latin1 characters UTF-8 characters found in the input and present in the  map are mapped to their escape sequences, and any other UTF-8 characters are replaced with ascii "?"~xmlhtml Gets the decoding function from | to { for an encoding.?  !'&%"$#(-+,*)./0123456789:;<=>yz}~ Safe-Inferred "[xmlhtml9Represents the state of a text scanner, for use with the  parser combinator.xmlhtmlGet an initial guess at document encoding from the byte order mark. If the mark doesn't exist, guess UTF-8. Otherwise, guess according to the mark.xmlhtml1Checks if a document contains invalid characters.xmlhtml Parses a { value and gives back the result. The parser is expected to match the entire string.xmlhtml/Consume input as long as the predicate returns , and return the consumed input. This parser does not fail. If it matches no input, it will return an empty string.xmlhtml/Consume input as long as the predicate returns , and return the consumed input. This parser requires the predicate to succeed on at least one character of input. It will fail if the first character fails the predicate.xmlhtmlThe equivalent of Parsec's string combinator, but for text. If there is not a complete match, then no input is consumed. This matches the behavior of string" from the attoparsec-text package.xmlhtmlScans text and progresses through a DFA, collecting the complete matching text as it goes.xmlhtmlThe parser to matchxmlhtml Name of the source file (can be "")xmlhtml Text to parse  Safe-Inferred "#Hxmlhtml5States for the DOCTYPE internal subset state machine.xmlhtmlThis is my best guess as to the best rule for handling document fragments for processing. It is essentially modeled after document, but allowing multiple nodes.xmlhtmlThe requirement to not contain "]]>" is for SGML compatibility. We deliberately choose to not enforce it. This makes the parser accept strictly more documents than a standards-compliant parser.xmlhtmlAlways returns Nothing since there's no representation for a PI in the document tree.xmlhtml)Return value is the encoding, if present.xmlhtmlInternal subset is parsed, but ignored since we don't have data types to store it.xmlhtmlInternal DOCTYPE subset. We don't actually parse this; just scan through and look for the end, and store it in a block of text.xmlhtml+Results are (tag name, attributes, isEmpty)+  Safe-Inferred "'xmlhtmlWhen parsing an element, three things can happen (besides failure): 6The end tag matches the start tag. This is a Matched.The end tag does not match, but the element has an end tag that can be omitted when there is no more content in its parent. This is an ImplicitLast. In this case, we need to remember the tag name of the end tag that we did find, so as to match it later.A start tag is found such that it implicitly ends the current element. This is an ImplicitNext. In this case, we parse and remember the entire element that comes next, so that it can be inserted after the element being parsed.xmlhtmlHTML version of document fragment parsing rule It differs only in that it parses the HTML version of  and returns an *.xmlhtmlInternal subset is parsed, but ignored since we don't have data types to store it.xmlhtmlFrom 8.2.2.3 of the HTML 5 spec, omitting the very high control characters because they are unlikely to occur and I got tired of typing.  Safe-Inferred ")P?xmlhtmlFunction for rendering XML nodes without the overhead of creating a Document structure.xmlhtmlProcess the first node differently to encode leading whitespace. This lets us be sure that parseXML is a left inverse to render.?@  Safe-Inferred "+xmlhtmlAnd, the rendering code.AxmlhtmlFunction for rendering HTML nodes without the overhead of creating a Document structure.BxmlhtmlFunction for rendering HTML nodes without the overhead of creating a Document structure, using default rendering optionsxmlhtmlHTML allows & so long as it is not "ambiguous" (i.e., looks like an entity). So we have a special case for that.xmlhtmlProcess the first node differently to encode leading whitespace. This lets us be sure that  parseHTML is a left inverse to render. AB Safe-Inferred ".KCxmlhtmlParses the given XML fragment.DxmlhtmlParses the given HTML fragment. This enables HTML quirks mode, which changes the parsing algorithm to parse valid HTML 5 documents correctly.Exmlhtml Renders a (.Cxmlhtml?Name of document source (perhaps a filename) for error messagesxmlhtmlDocument contentsxmlhtml The document or an error messageDxmlhtml?Name of document source (perhaps a filename) for error messagesxmlhtmlDocument contentsxmlhtml The document or an error message  !#$"%&'()*,+-./0123456789:;<=>?@ABCDEFG()*,+-!#$"%&'   /0123456789:;<=>CDFE.@?BAG Safe-Inferred ">/Hxmlhtml"A zipper for XML document forests.Ixmlhtml Retrieves the current node of a HxmlhtmlJust the tag of an elementxmlhtml>Reconstructs an element from a tag and a list of its children.Jxmlhtml Builds a H> for navigating a tree. That is, a forest with a single root !.Kxmlhtml Builds a H for navigating a forest with the given list of roots. The cursor is initially positioned at the left-most node. Gives x if the list is empty.Lxmlhtml?Retrieves the root node containing the current cursor position.MxmlhtmlRetrieves the entire forest of !s corresponding to a H.NxmlhtmlRetrieves a list of the !s at the same level as the current position of a cursor, including the current node.Oxmlhtml Navigates a H to its parent in the document.Pxmlhtml Navigates a H, up through parents to reach the root level.Qxmlhtml Navigates a H# down to the indicated child index.Rxmlhtml Navigates a H down to its first child.Sxmlhtml Navigates a H down to its last child.TxmlhtmlMoves a H to its left sibling.UxmlhtmlMoves a H to its right sibling.VxmlhtmlMoves a H to the next node encountered in a depth-first search. If it has children, this is equivalent to R. Otherwise, if it has a right sibling, then this is equivalent to U. Otherwise, the cursor moves to the first right sibling of one of its parents.xmlhtmlRepeats the given move until a H) is obtained that matches the predicate.Wxmlhtml Navigates a H/ to the first child that matches the predicate.Xxmlhtml Navigates a H7 to the nearest left sibling that matches a predicate.Yxmlhtml Navigates a H8 to the nearest right sibling that matches a predicate.ZxmlhtmlDoes a depth-first search for a descendant matching the predicate. This can match the current cursor position.[xmlhtmlDetermines if the H is at a root node.\xmlhtmlDetermines if the H is at a first child.]xmlhtmlDetermines if the H is at a last child.^xmlhtmlDetermines if the H is at a leaf node._xmlhtmlDetermines if the H/ is at a child node (i.e., if it has a parent).`xmlhtmlDetermines if the H3 is at a non-leaf node (i.e., if it has children).axmlhtmlGets the index of the H among its siblings.bxmlhtmlReplaces the current node.cxmlhtml1Modifies the current node by applying a function.dxmlhtmlModifies the current node by applying an action in some functor.exmlhtmlInserts a new !% to the left of the current position.fxmlhtmlInserts a new !& to the right of the current position.gxmlhtmlInserts a list of new !&s to the left of the current position.hxmlhtmlInserts a list of new !'s to the right of the current position.ixmlhtml Inserts a !+ as the first child of the current element.jxmlhtml Inserts a !* as the last child of the current element.kxmlhtmlInserts a list of !/s as the first children of the current element.lxmlhtmlInserts a list of !.s as the last children of the current element.mxmlhtmlInserts a new ! to the left of the current position, and moves left to the new node.nxmlhtmlInserts a new ! to the right of the current position, and moves right to the new node.oxmlhtml Removes the !- to the left of the current position, if any.pxmlhtml Removes the !. to the right of the current position, if any.qxmlhtmlRemoves the current !4, and moves the Cursor to its left sibling, if any.rxmlhtmlRemoves the current !5, and moves the Cursor to its right sibling, if any.sxmlhtmlRemoves the current !-, and moves the Cursor to its parent, if any.xmlhtml predicatexmlhtmlmovexmlhtmlstarting point,HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs,HJKLMINOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs Safe-Inferred "@xmlhtml Render a  to Text. This is only meant to be used for shorter strings, since it is inefficient for large strings.xmlhtml Render a  to an appending list of nodesxmlhtml Render some  to an appending list of nodesuxmlhtmlRender HTML to an xmlhtml (vxmlhtml&Render HTML to a list of xmlhtml nodesuvuv  !!"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHI J K L MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                  P Q            P   Q   &xmlhtml-0.2.5.4-FA7OurU6ZFsAf6M5HVl0bMText.XmlHtml.HTML.Meta Text.XmlHtmlText.XmlHtml.CursorText.Blaze.Renderer.XmlHtmlText.XmlHtml.CommonText.XmlHtml.Meta referencesText.XmlHtml.TextParserText.XmlHtml.XML.ParseText.XmlHtml.HTML.ParseText.XmlHtml.XML.RenderText.XmlHtml.HTML.RendervoidTags rawTextTags isRawTextendOmittableLastendOmittableNextexplicitAttributespredefinedRefsreversePredefinedRefsEncodingUTF8UTF16BEUTF16LE ISO_8859_1InternalSubset InternalTextNoInternalSubset ExternalIDPublicSystem NoExternalIDDocTypeAttrResolveInternalQuotesAttrResolveByEscapeAttrResolveAvoidEscape AttrSurroundSurroundDoubleQuoteSurroundSingleQuote RenderOptionsroAttributeSurroundroAttributeResolveInternalroExplicitEmptyAttrsNodeTextNodeCommentElement elementTag elementAttrselementChildrenDocument XmlDocument HtmlDocument docEncodingdocType docContentdefaultRenderOptions isTextNode isComment isElementtagName getAttribute hasAttribute setAttributenodeText childNodes childElementschildElementsTagchildElementTagdescendantNodesdescendantElementsdescendantElementsTagdescendantElementTagrenderXmlFragmentWithOptionsrenderXmlFragmentrenderHtmlFragmentWithOptionsrenderHtmlFragmentparseXML parseHTMLrenderWithOptionsrender renderDocTypeCursorcurrentfromNode fromNodestopNodetopNodessiblingsparentrootgetChild firstChild lastChildleftrightnextDF findChildfindLeft findRightfindRecisRootisFirstisLastisLeafisChild hasChildren getNodeIndexsetNode modifyNode modifyNodeM insertLeft insertRightinsertManyLeftinsertManyRightinsertFirstChildinsertLastChildinsertManyFirstChildinsertManyLastChild insertGoLeft insertGoRight removeLeft removeRight removeGoLeft removeGoRight removeGoUp $fEqCursor renderHtmlrenderHtmlNodesentNamesbase GHC.MaybeNothing encodingNameencoder text-1.2.5.0Data.Text.InternalTextbytestring-0.11.3.1Data.ByteString.Internal ByteString encodeAsciidecoderisUTF16fromTextbmapsafeChr ScanStatescanText guessEncoding isValidChar parseText takeWhile0ghc-prim GHC.TypesTrue takeWhile1textparsec-3.1.15.0Text.Parsec.TextParser GenParser parseFromFileScanNext ScanFinishScanFailparseInternalDoctypeState docFragmentcharDataprocessingInstructionxmlDecl docTypeDeclinternalDoctypeemptyOrStartTag IDSCommentE1 IDSCommentD1 IDSComment IDSCommentS3 IDSCommentS2 IDSCommentS1 IDSInQuote IDSScanningIDSStart whiteSpaceisNameStartChar isNameCharname attrValue systemLiteral pubIdLiteral isPubIdCharcommentpiTargetcdatacdSectprolog versionInfoeqmiscsdDeclelement attributeendTagcontentcharRef reference entityRef externalID encodingDecl ElemResult isControlChar ImplicitNext ImplicitLastMatched finishElementattrNamequotedAttrValueunquotedAttrValue finishCharReffinishEntityRef firstNodeinternalSubsetsysIDpubIDnodeescapedentityTagfromTagsearchfromChoiceStringText+blaze-markup-0.8.2.8-HVTBucnlbFt8oEthKptkIGText.Blaze.Internal ChoiceStringfromChoiceString renderNodes)blaze-html-0.9.1.2-617ujNsWufwGk3SeaK2GpeText.Blaze.HtmlHtml