78D6EBA3DA1B8111E3EABF6 8Eˆl–ß=¿JJj"Tâ�fãLÜm•1hßÕ 0Ôa–ß=¿JJj"Tâ�nàŸ¸'Å£Ø Gˆ×Ö ƒuÁ9Õ¾ØÊGa ´i9ã@sVdZddlZe d¡jZe d¡jZe d¡Ze d¡Ze d¡Z[Gdd „d ƒZ dS) zÎShared support for scanning document type declarations in HTML and XHTML. This module is used as a foundation for the html.parser module. It has no documented public API and should not be used directly. éNz[a-zA-Z][-_.a-zA-Z0-9]*\s*z(\'[^\']*\'|"[^"]*")\s*z--\s*>z ]\s*]\s*>z]\s*>c@s�eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd Z d d„Z d#dd„Z d$dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"S)%Ú ParserBaseziParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.cCs|jturtdƒ‚dS)Nz)_markupbase.ParserBase must be subclassed)Ú __class__rÚ RuntimeError©Úself©rú#/usr/lib64/python3.9/_markupbase.pyÚ__init__s ÿzParserBase.__init__cCs tdƒ‚dS)Nz.subclasses of ParserBase must override error())ÚNotImplementedError)rÚmessagerrrÚerror sÿzParserBase.errorcCsd|_d|_dS)Nér©ÚlinenoÚoffsetrrrrÚreset$szParserBase.resetcCs |j|jfS)z&Return current line number and offset.rrrrrÚgetpos(szParserBase.getposcCsb||kr |S|j}| d||¡}|rN|j||_| d||¡}||d|_n|j|||_|S)NÚ r )ÚrawdataÚcountrÚrindexr)rÚiÚjrZnlinesÚposrrrÚ updatepos0s zParserBase.updateposÚc CsÂ|j}|d}|||d…dkr*|dS|||d…dvrBdSt|ƒ}|||d…dkrh| |¡S||dkr~| |¡S| ||¡\}}|dkrš|S|d kr¨d |_||k�r¾||}|dkrø||d|…}|d kræ| |¡n | |¡|dS|d v�r t||ƒ}|�sdS|  ¡}n�|d v�r<| ||¡\} }nt||jv�rR|d}n^|dk�rž|d k�rx|  |d|¡}n$|d v�r’|  d|¡n |  d¡n|  d||¡|dkr¨|Sq¨dS)Nér ú>)ú-réÿÿÿÿz--ú[rZdoctyperz"'Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>ÚlinkZlinktypeÚelementÚattlistz&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration) rÚlenÚ parse_commentÚparse_marked_sectionÚ _scan_nameÚ_decl_othercharsZ handle_declÚ unknown_declÚ_declstringlit_matchÚendÚ_parse_doctype_subsetr ) rrrrÚnZdecltypeÚcÚdataÚmÚnamerrrÚparse_declaration@sZ                  ÿzParserBase.parse_declarationr cCs®|j}| |d|¡\}}|dkr&|S|dvr@t ||d¡}n8|dvrZt ||d¡}n| d||d|…¡d}|s€dS|r¤| d¡}| ||d|…¡| d¡S)Nér>ZtempÚignoreZrcdataZincludeZcdata>ÚifZendifÚelsez+unknown status keyword %r in marked sectionr) rr'Ú_markedsectioncloseÚsearchÚ_msmarkedsectioncloser Ústartr)r+)rrÚreportrZsectNamerÚmatchrrrr&’s  zParserBase.parse_marked_sectioncCsj|j}|||d…dkr$| d¡t ||d¡}|s