§
    (¶Õi=9  ã                   óâ   — d Z ddlZ ej        d¦  «        j        Z ej        d¦  «        j        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z[ G d„ d	¦  «        Z	dS )
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                   ón   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdZd„ Z	dd	„Z
dd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú
ParserBaseziParser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers.c                 ó@   — | j         t          u rt          d¦  «        ‚d S )Nz)_markupbase.ParserBase must be subclassed)Ú	__class__r   ÚRuntimeError©Úselfs    ú"/usr/lib/python3.11/_markupbase.pyÚ__init__zParserBase.__init__   s,   € ØŒ>�ZÐ'Ð'ÝØ;ñ=ô =ð =ð (Ð'ó    c                 ó"   — d| _         d| _        d S )Né   r   ©ÚlinenoÚoffsetr   s    r
   ÚresetzParserBase.reset    s   € ØˆŒØˆŒˆˆr   c                 ó   — | j         | j        fS )z&Return current line number and offset.r   r   s    r
   ÚgetposzParserBase.getpos$   s   € àŒ{˜DœKÐ'Ð'r   c                 óâ   — ||k    r|S | j         }|                     d||¦  «        }|r4| j        |z   | _        |                     d||¦  «        }||dz   z
  | _        n| j        |z   |z
  | _        |S )Nú
r   )ÚrawdataÚcountr   Úrindexr   )r	   ÚiÚjr   ÚnlinesÚposs         r
   Ú	updateposzParserBase.updatepos,   s   € Ø�Š6ˆ6ØˆHØ”,ˆØ—’˜t Q¨Ñ*Ô*ˆØð 	,Øœ+¨Ñ.ˆDŒKØ—.’.  q¨!Ñ,Ô,ˆCØ˜S ™U™)ˆDŒKˆKàœ+¨™/¨!Ñ+ˆDŒKØˆr   Ú c                 óì  — | j         }|dz   }|||…         dk    s
J d¦   «         ‚|||dz   …         dk    r|dz   S |||dz   …         dv rdS t          |¦  «        }|||dz   …         dk    r|                      |¦  «        S ||         d	k    r|                      |¦  «        S |                      ||¦  «        \  }}|d
k     r|S |dk    rd| _        ||k     �r||         }|dk    rC||dz   |…         }|dk    r|                      |¦  «         n|                      |¦  «         |dz   S |dv r)t          ||¦  «        }|sdS | 	                    ¦   «         }n�|dv r|                      ||¦  «        \  }	}nr|| j        v r|dz   }nc|d	k    rE|dk    r|  
                    |dz   |¦  «        }n=|dv rt          d|z  ¦  «        ‚t          d¦  «        ‚t          d||         z  ¦  «        ‚|d
k     r|S ||k     �°dS )Né   ú<!z$unexpected call to parse_declarationr   ú>)ú-r   éÿÿÿÿz--ú[r   Údoctyper   z"'Ú4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>   ÚlinkÚattlistÚelementÚlinktypez&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)r   ÚlenÚparse_commentÚparse_marked_sectionÚ
_scan_nameÚ_decl_othercharsÚhandle_declÚunknown_declÚ_declstringlit_matchÚendÚ_parse_doctype_subsetÚAssertionError)
r	   r   r   r   ÚnÚdecltypeÚcÚdataÚmÚnames
             r
   Úparse_declarationzParserBase.parse_declaration<   s‚  € ð ”,ˆØ�‰EˆØ�q˜�sŒ|˜tÒ#Ð#Ð#Ð%KÑ#Ô#Ð#Ø�1�Q�q‘S�5Œ>˜SÒ Ð à�q‘5ˆLØ�1�Q�q‘S�5Œ>˜YÐ&Ð&ð �2å�‰LŒLˆØ�1�Q�q‘S�5Œ>˜TÒ!Ð!à×%Ò% aÑ(Ô(Ð(Ø�QŒZ˜3ÒÐð
 ×,Ò,¨QÑ/Ô/Ð/àŸ/š/¨!¨QÑ/Ô/‰KˆH�aØˆqŠ5ˆ5ØˆHØ�yÒ Ð Ø$&ˆDÔ!Ø�!Še‰eØ˜”
ˆAØ�CŠxˆxà˜q ™s 1˜u”~�Ø˜yÒ(Ð(Ø×$Ò$ TÑ*Ô*Ð*Ð*ð ×%Ò% dÑ+Ô+Ð+Ø˜1‘u�Ø�EˆzˆzÝ(¨°!Ñ4Ô4�Øð Ø˜2Ø—E’E‘G”G��ØÐLÐLÐLØŸ/š/¨!¨QÑ/Ô/‘��a�aØ�dÔ+Ð+Ð+Ø˜‘E��Ø�c’�à˜yÒ(Ð(Ø×2Ò2°1°q±5¸!Ñ<Ô<�A�AØÐ!KÐKÐKõ
 )Ð)QÐT\Ñ)\Ñ]Ô]Ð]å(Ð)MÑNÔNÐNå$Ð%HÈ7ÐSTÌ:Ñ%UÑVÔVÐVØ�1ŠuˆuØ�ðM �!Še‰eðN ˆrr   r   c                 óô  — | j         }|||dz   …         dk    s
J d¦   «         ‚|                      |dz   |¦  «        \  }}|dk     r|S |dv rt                               ||dz   ¦  «        }n@|dv rt                               ||dz   ¦  «        }nt          d||dz   |…         z  ¦  «        ‚|sdS |r5|                     d¦  «        }|                      ||dz   |…         ¦  «         |                     d¦  «        S )	Né   z<![z)unexpected call to parse_marked_section()r   >   ÚtempÚcdataÚignoreÚrcdataÚinclude>   ÚifÚelseÚendifz+unknown status keyword %r in marked sectionr%   )	r   r0   Ú_markedsectioncloseÚsearchÚ_msmarkedsectioncloser7   Ústartr3   r5   )r	   r   Úreportr   ÚsectNamer   Úmatchs          r
   r/   zParserBase.parse_marked_section�   s"  € Ø”ˆØ�q˜˜1™�uŒ~ Ò&Ð&Ð&Ð(SÑ&Ô&Ð&Ø—o’o q¨¡s¨AÑ/Ô/‰ˆ�!ØˆqŠ5ˆ5ØˆHØÐGÐGÐGå&×-Ò-¨g°q¸±sÑ;Ô;ˆEˆEØÐ0Ð0Ð0å(×/Ò/°¸¸1¹Ñ=Ô=ˆEˆEå Ø=ÀÈÈ!ÉÈAÈÄÑNñô ð ð ð 	Ø�2Øð 	/Ø—’˜A‘”ˆAØ×Ò˜g a¨¡c¨1 fœoÑ.Ô.Ð.Ø�yŠy˜‰|Œ|Ðr   c                 ó,  — | j         }|||dz   …         dk    rt          d¦  «        ‚t                               ||dz   ¦  «        }|sdS |r5|                     d¦  «        }|                      ||dz   |…         ¦  «         |                     d¦  «        S )Né   ú<!--z"unexpected call to parse_comment()r%   r   )r   r7   Ú_commentcloserJ   rL   Úhandle_commentr5   )r	   r   rM   r   rO   r   s         r
   r.   zParserBase.parse_comment¥   sœ   € Ø”,ˆØ�1�Q�q‘S�5Œ>˜VÒ#Ð#Ý Ð!EÑFÔFÐFÝ×$Ò$ W¨a°©cÑ2Ô2ˆØð 	Ø�2Øð 	1Ø—’˜A‘”ˆAØ×Ò ¨¨!©¨Q¨¤Ñ0Ô0Ð0Ø�yŠy˜‰|Œ|Ðr   c                 óª  — | j         }t          |¦  «        }|}||k     �r3||         }|dk    �r	|||dz   …         }|dk    rdS |dk    r+|                      ||dz   ¦  «         t          d|z  ¦  «        ‚|dz   |k    rdS |dz   |k    rdS |||dz   …         dk    r |                      |d	¬
¦  «        }|d	k     r|S Œ£|                      |dz   |¦  «        \  }}|dk    rdS |dvr+|                      ||dz   ¦  «         t          d|z  ¦  «        ‚t          | d|z   ¦  «        }	 |	||¦  «        }|d	k     r|S �n|dk    rA|dz   |k    rdS |                      |dz   |¦  «        \  }}|d	k     r|S ||         dk    r|dz   }nÍ|dk    r…|dz   }||k     r?||                              ¦   «         r%|dz   }||k     r||                              ¦   «         °%||k     r3||         dk    r|S |                      ||¦  «         t          d¦  «        ‚dS |                     ¦   «         r|dz   }n(|                      ||¦  «         t          d|z  ¦  «        ‚||k     �°3dS )Nú<r!   r%   r"   r   z*unexpected char in internal subset (in %r)rQ   rR   r   )rM   >   Úentityr*   r+   Únotationz)unknown declaration %r in internal subsetÚ_parse_doctype_ú%ú;ú]r#   z%unexpected char after internal subsetz%unexpected char %r in internal subset)r   r-   r   r7   r.   r0   ÚgetattrÚisspace)
r	   r   Údeclstartposr   r8   r   r:   Úsr=   Úmeths
             r
   r6   z ParserBase._parse_doctype_subset³   sç  € Ø”,ˆÝ�‰LŒLˆØˆØ�!Še‰eØ˜”
ˆAØ�CŠx‰xØ˜A˜a ™c˜E”N�Ø˜’8�8à˜2Ø˜’9�9Ø—N’N <°°Q±Ñ7Ô7Ð7Ý(ØDÀqÑHñô ð ð ˜‘E˜a’<�<à˜2Ø˜‘E˜Q’;�;à˜2Ø˜1˜Q˜q™S˜5”> VÒ+Ð+Ø×*Ò*¨1°QÐ*Ñ7Ô7�AØ˜1’u�uØ ˜ØØŸ/š/¨!¨a©%°Ñ>Ô>‘��aØ˜’7�7Ø˜2ØÐKÐKÐKØ—N’N <°°Q±Ñ7Ô7Ð7Ý(ØCÀdÑJñô ð õ ˜tÐ%6¸Ñ%=Ñ>Ô>�Ø�D˜˜LÑ)Ô)�Ø�q’5�5Ø�Hñ à�c’�à˜‘E˜a’<�<à˜2Ø—’ q¨1¡u¨lÑ;Ô;‘��1Ø�q’5�5Ø�HØ˜1”: Ò$Ð$Ø˜A™�AøØ�c’�Ø˜‘E�Ø˜!’e�e ¨¤
× 2Ò 2Ñ 4Ô 4�eØ˜A™�Að ˜!’e�e ¨¤
× 2Ò 2Ñ 4Ô 4�eà�q’5�5Ø˜q”z SÒ(Ð(Ø ˜Ø—N’N <°Ñ3Ô3Ð3Ý(Ð)PÑQÔQÐQà˜2Ø—’‘”ð RØ˜‘E��à—’˜|¨QÑ/Ô/Ð/Ý$Ð%LÈqÑ%PÑQÔQÐQð{ �!Še‰eð~ ˆrr   c                 ó    — |                       ||¦  «        \  }}|dk    rdS | j        }d||d …         v r|                     d|¦  «        dz   S dS )Nr%   r#   r   )r0   r   Úfind)r	   r   r_   r=   r   r   s         r
   Ú_parse_doctype_elementz!ParserBase._parse_doctype_elementù   s_   € Ø—/’/ ! \Ñ2Ô2‰ˆˆaØ�Š7ˆ7Ø�2à”,ˆØ�'˜!˜"˜"”+ÐÐØ—<’<  QÑ'Ô'¨!Ñ+Ð+Øˆrr   c                 ól  — | j         }|                      ||¦  «        \  }}|||dz   …         }|dk    rdS |dk    r|dz   S 	 |                      ||¦  «        \  }}|dk     r|S |||dz   …         }|dk    rdS |dk    rxd||d …         v r|                     d|¦  «        dz   }ndS |||dz   …                              ¦   «         r$|dz   }|||dz   …                              ¦   «         °$||d …         sdS n|                      ||¦  «        \  }}|||dz   …         }|sdS |dv r:t	          ||¦  «        }|r|                     ¦   «         }ndS |||dz   …         }|sdS |d	k    rE||d …         d	k    rdS |                      |dz   |¦  «        \  }}|dk     r|S |||dz   …         }|sdS |dk    r|dz   S �Œt)
Nr   r   r%   r#   r   ú(ú)ú'"ú#)r   r0   rc   r^   r4   r5   )r	   r   r_   r   r=   r   r:   r<   s           r
   Ú_parse_doctype_attlistz!ParserBase._parse_doctype_attlist  sE  € Ø”,ˆØ—/’/ ! \Ñ2Ô2‰ˆˆaØ�A�a˜‘c�EŒNˆØ�Š7ˆ7Ø�2Ø�Š8ˆ8Ø�q‘5ˆLð.	ð —o’o a¨Ñ6Ô6‰GˆD�!Ø�1ŠuˆuØ�Ø˜˜!˜A™#˜”ˆAØ�BŠwˆwØ�rØ�CŠxˆxà˜' ! " "œ+Ð%Ð%ØŸš S¨!Ñ,Ô,¨qÑ0�A�Aà˜2Ø˜a  !¡˜e”n×,Ò,Ñ.Ô.ð Ø˜A™�Að ˜a  !¡˜e”n×,Ò,Ñ.Ô.ð à˜q˜r˜r”{ð à˜2ðð Ÿ/š/¨!¨\Ñ:Ô:‘��aØ˜˜!˜A™#˜”ˆAØð Ø�rØ�EˆzˆzÝ(¨°!Ñ4Ô4�Øð ØŸš™œ�A�Aà˜2Ø˜A˜a ™c˜E”N�Øð Ø˜2Ø�CŠxˆxØ˜1˜2˜2”; #Ò%Ð%à˜2ØŸ/š/¨!¨a©%°Ñ>Ô>‘��aØ�q’5�5Ø�HØ˜A˜a ™c˜E”N�Øð Ø˜2Ø�CŠxˆxà˜1‘u�ñ].	r   c                 ó*  — |                       ||¦  «        \  }}|dk     r|S | j        }	 |||dz   …         }|sdS |dk    r|dz   S |dv r)t          ||¦  «        }|sdS |                     ¦   «         }n!|                       ||¦  «        \  }}|dk     r|S Œk)Nr   r   r%   r#   rh   )r0   r   r4   r5   )r	   r   r_   r=   r   r   r:   r<   s           r
   Ú_parse_doctype_notationz"ParserBase._parse_doctype_notation=  sÁ   € Ø—/’/ ! \Ñ2Ô2‰ˆˆaØˆqŠ5ˆ5ØˆHØ”,ˆð	Ø˜˜!˜A™#˜”ˆAØð à�rØ�CŠxˆxØ˜1‘u�Ø�EˆzˆzÝ(¨°!Ñ4Ô4�Øð Ø˜2Ø—E’E‘G”G��àŸ/š/¨!¨\Ñ:Ô:‘��aØ�q’5�5Ø�Hð	r   c                 óÂ  — | j         }|||dz   …         dk    r4|dz   }	 |||dz   …         }|sdS |                     ¦   «         r|dz   }nnŒ-n|}|                      ||¦  «        \  }}|dk     r|S 	 | j         ||dz   …         }|sdS |dv r)t          ||¦  «        }|r|                     ¦   «         }n.dS |dk    r|dz   S |                      ||¦  «        \  }}|dk     r|S Œp)Nr   rZ   r%   r   rh   r#   )r   r^   r0   r4   r5   )r	   r   r_   r   r   r:   r=   r<   s           r
   Ú_parse_doctype_entityz ParserBase._parse_doctype_entityT  s4  € Ø”,ˆØ�1�Q�q‘S�5Œ>˜SÒ Ð Ø�A‘ˆAðØ˜A˜a ™c˜E”N�Øð Ø˜2Ø—9’9‘;”;ð Ø˜A™�A�Aàðð àˆAØ—/’/ ! \Ñ2Ô2‰ˆˆaØˆqŠ5ˆ5ØˆHð	Ø”˜Q˜q ™s˜UÔ#ˆAØð Ø�rØ�EˆzˆzÝ(¨°!Ñ4Ô4�Øð ØŸš™œ�A�Aà˜2Ø�c’�Ø˜1‘u�àŸ/š/¨!¨\Ñ:Ô:‘��aØ�q’5�5Ø�Hð	r   c                 ó˜  — | j         }t          |¦  «        }||k    rdS t          ||¦  «        }|rh|                     ¦   «         }|                     ¦   «         }|t          |¦  «        z   |k    rdS |                     ¦   «         |                     ¦   «         fS |                      ||¦  «         t          d|||dz   …         z  ¦  «        ‚)N)Nr%   zexpected name token at %ré   )	r   r-   Ú_declname_matchÚgroupÚstripÚlowerr5   r   r7   )r	   r   r_   r   r8   r<   r`   r=   s           r
   r0   zParserBase._scan_namex  sÅ   € Ø”,ˆÝ�‰LŒLˆØ�Š6ˆ6Ø�8Ý˜G QÑ'Ô'ˆØð 
	Ø—’‘	”	ˆAØ—7’7‘9”9ˆDØ•C˜‘F”F‘
˜qÒ Ð Ø�xØ—:’:‘<”< §¢¡¤Ð(Ð(à�NŠN˜<¨Ñ+Ô+Ð+Ý Ø+¨g°lÀ<ÐPRÁ?Ð6RÔ.SÑSñô ð r   c                 ó   — d S )N© )r	   r;   s     r
   r3   zParserBase.unknown_decl‹  s   € Øˆr   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r1   r>   r/   r.   r6   rd   rj   rl   rn   r0   r3   rv   r   r
   r   r      s  € € € € € ð+ð +ð=ð =ð =ð
ð ð ð(ð (ð (ðð ð ð ÐðMð Mð Mðbð ð ð ð0
ð 
ð 
ð 
ðCð Cð CðLð ð ð6ð 6ð 6ðrð ð ð. ð  ð  ðHð ð ð&ð ð ð ð r   r   )
rz   ÚreÚcompilerO   rq   r4   rS   rI   rK   r   rv   r   r
   ú<module>r}      s»   ððð ð 
€	€	€	à�"”*Ð:Ñ;Ô;ÔA€Ø!�r”zÐ"<Ñ=Ô=ÔCÐ Ø�”
˜9Ñ%Ô%€Ø �b”j Ñ.Ô.Ð ð
 #˜œ
 8Ñ,Ô,Ð àðuð uð uð uð uñ uô uð uð uð ur   