§
    ¢”jÕ'  ã                   ó’  — d Z g d¢ZddlZddlmZmZ 	 ddlmZmZm	Z	m
Z
mZmZmZ eefZn# e$ r ddlmZmZm	Z	m
Z
mZmZ eZY nw xY wdd„Zdd„Zdd	„Zd
„ Z ej        dej        ¦  «        j        Z G d„ d¦  «        Zd„ Zd„ Z	 ddlmZ n# e$ r	 ddlmZ Y nw xY w ej        d¦  «        j        Z	 e  n# e!$ r e"Z Y nw xY wd„ Z#dS )z5External interface to the BeautifulSoup HTML parser.
)Ú
fromstringÚparseÚconvert_treeé    N)ÚetreeÚhtml)ÚBeautifulSoupÚTagÚCommentÚProcessingInstructionÚNavigableStringÚDeclarationÚDoctype)r   r	   r
   r   r   r   c                 ó    — t          | ||fi |¤ŽS )a¤  Parse a string of HTML data into an Element tree using the
    BeautifulSoup parser.

    Returns the root ``<html>`` Element of the tree.

    You can pass a different BeautifulSoup parser through the
    `beautifulsoup` keyword, and a diffent Element factory function
    through the `makeelement` keyword.  By default, the standard
    ``BeautifulSoup`` class and the default factory of `lxml.html` are
    used.
    )Ú_parse)ÚdataÚbeautifulsoupÚmakeelementÚbsargss       úc/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/lxml/html/soupparser.pyr   r      s   € õ �$˜ {Ð=Ð=°fÐ=Ð=Ð=ó    c                 ó†   — t          | d¦  «        st          | ¦  «        } t          | ||fi |¤Ž}t          j        |¦  «        S )aY  Parse a file into an ElemenTree using the BeautifulSoup parser.

    You can pass a different BeautifulSoup parser through the
    `beautifulsoup` keyword, and a diffent Element factory function
    through the `makeelement` keyword.  By default, the standard
    ``BeautifulSoup`` class and the default factory of `lxml.html` are
    used.
    Úread)ÚhasattrÚopenr   r   ÚElementTree)Úfiler   r   r   Úroots        r   r   r   $   sK   € õ �4˜Ñ Ô ð Ý�D‰zŒzˆÝ�$˜ {Ð=Ð=°fÐ=Ð=€DÝÔ˜TÑ"Ô"Ð"r   c                 ó‚   — t          | |¦  «        }|                     ¦   «         }|D ]}|                     |¦  «         Œ|S )a  Convert a BeautifulSoup tree to a list of Element trees.

    Returns a list instead of a single root Element to support
    HTML-like soup with more than one root element.

    You can pass a different Element factory through the `makeelement`
    keyword.
    )Ú_convert_treeÚgetchildrenÚremove)Úbeautiful_soup_treer   r   ÚchildrenÚchilds        r   r   r   3   sN   € õ Ð,¨kÑ:Ô:€DØ×ÒÑ!Ô!€HØð ð ˆØ�Š�EÑÔÐÐØ€Or   c                 ó  — |€t           }t          |d¦  «        r	d|vrd|d<   t          |d¦  «        r	d|vrd|d<    || fi |¤Ž}t          ||¦  «        }t          |¦  «        dk    r|d         j        dk    r|d         S d|_        |S )	NÚHTML_ENTITIESÚconvertEntitiesr   ÚDEFAULT_BUILDER_FEATURESÚfeatureszhtml.parseré   r   )r   r   r   ÚlenÚtag)Úsourcer   r   r   Útreer   s         r   r   r   E   s·   € ØÐÝ%ˆÝˆ}˜oÑ.Ô.ð /Ø FÐ*Ð*Ø(.ˆFÐ$Ñ%Ýˆ}Ð8Ñ9Ô9ð /Ø˜VÐ#Ð#Ø!.ˆF�:ÑØˆ=˜Ð*Ð* 6Ð*Ð*€DÝ˜˜{Ñ+Ô+€Då
ˆ4�y„y�A‚~€~˜$˜qœ'œ+¨Ò/Ð/Ø�AŒwˆØ€D„HØ€Kr   z`(?:\s|[<!])*DOCTYPE\s*HTML(?:\s+PUBLIC)?(?:\s+(\'[^\']*\'|"[^"]*"))?(?:\s+(\'[^\']*\'|"[^"]*"))?c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
_PseudoTagc                 ó0   — d| _         g | _        || _        d S )Nr   )ÚnameÚattrsÚcontents)Úselfr4   s     r   Ú__init__z_PseudoTag.__init__`   s   € ØˆŒ	ØˆŒ
Ø ˆŒˆˆr   c                 ó4   — | j                              ¦   «         S ©N)r4   Ú__iter__)r5   s    r   r9   z_PseudoTag.__iter__e   s   € ØŒ}×%Ò%Ñ'Ô'Ð'r   N)Ú__name__Ú
__module__Ú__qualname__r6   r9   © r   r   r0   r0   ^   s2   € € € € € ð!ð !ð !ð
(ð (ð (ð (ð (r   r0   c                 óZ  — |€t           j        j        }d x}}d x}}t          | ¦  «        D ]b\  }}t	          |t
          ¦  «        r/|€|}|}|€&|j        r|j                             ¦   «         dk    r|}ŒI|€t	          |t          ¦  «        r|}Œc|€g x}}	| j	        }
n3| j	        d |…         }| j	        ||dz   …         }
| j	        |dz   d …         }	|�;|
 
                    |¦  «        }|
d |…         |j	        z   |
|dz   d …         z   |_	        nt          |
¦  «        }t          |¦  «        } ||¦  «        }|}t          |¦  «        D ]&} ||¦  «        }|�|                     |¦  «         |}Œ'|}|	D ]&} ||¦  «        }|�|                     |¦  «         |}Œ'|�‘	 |                     ¦   «         }n# t"          $ r
 |j        }Y nw xY wt'          |¦  «        }|snR|                     ¦   «         \  }}|                     ¦   «         j        }|o	|dd…         |_        |o	|dd…         |_        |S )Nr   r*   éÿÿÿÿ)r   Úhtml_parserr   Ú	enumerateÚ
isinstancer	   r2   ÚlowerÚ_DECLARATION_OR_DOCTYPEr4   Úindexr0   Ú_init_node_convertersÚreversedÚaddpreviousÚaddnextÚoutput_readyÚAttributeErrorÚstringÚ_parse_doctype_declarationÚgroupsÚgetroottreeÚdocinfoÚ	public_idÚ
system_url)r"   r   Úfirst_element_idxÚlast_element_idxÚ	html_rootÚdeclarationÚiÚeÚpre_rootÚ	post_rootÚrootsÚconvert_nodeÚres_rootÚprevÚ	convertedÚdoctype_stringÚmatchÚexternal_idÚsys_urirP   s                       r   r   r   i   sÄ  € ØÐÝÔ&Ô2ˆð ,0Ð/ÐÐ(Ø"Ð"€I�ÝÐ-Ñ.Ô.ð ð ‰ˆˆ1Ý�a�ÑÔð 	Ø Ð(Ø$%Ð!Ø ÐØÐ  Q¤VÐ °´·²±´À&Ò0HÐ0HØ�	øØÐ ¥Z°Õ3JÑ%KÔ%KÐ ØˆKøð Ð Ø!Ð!ˆ�9Ø#Ô,ˆˆà&Ô/Ð0BÐ1BÐ0BÔCˆØ#Ô,Ð->Ð?OÐPQÑ?QÐ-QÔRˆØ'Ô0Ð1AÀ!Ñ1CÐ1DÐ1DÔEˆ	ð Ðà�KŠK˜	Ñ"Ô"ˆØ" 2 A 2œY¨Ô);Ñ;¸eÀAÀaÁCÀDÀD¼kÑIˆ	ÔÐõ ˜uÑ%Ô%ˆ	å(¨Ñ5Ô5€Lð ˆ|˜IÑ&Ô&€HØ€DÝ�hÑÔð ð ˆØ �L ‘O”Oˆ	ØÐ Ø×Ò˜YÑ'Ô'Ð'ØˆDøð €DØð ð ˆØ �L ‘O”Oˆ	ØÐ Ø�LŠL˜Ñ#Ô#Ð#ØˆDøàÐð	0à(×5Ò5Ñ7Ô7ˆNˆNøÝð 	0ð 	0ð 	0Ø(Ô/ˆNˆNˆNð	0øøøõ +¨>Ñ:Ô:ˆØð 		;ð à#(§<¢<¡>¤>Ñ ˆK˜Ø×*Ò*Ñ,Ô,Ô4ˆGà +Ð A°¸A¸b¸DÔ0AˆGÔØ!(Ð!:¨W°Q°r°T¬]ˆGÔà€Os   ÆF0 Æ0GÇGc                 ó0  ‡ ‡‡‡‡	‡
‡— i Šg Šˆˆfd„}ˆˆfd„Š	d
ˆˆ	fd„	Šd„ Š
d„ Š |t           t          ¦  «        ˆˆˆ ˆ
fd„¦   «         } |t          ¦  «        d„ ¦   «         } |t          ¦  «        d„ ¦   «         } |t          ¦  «        ˆfd	„¦   «         }‰S )Nc                  ó   •‡ — ˆˆˆ fd„}|S )Nc                 óF   •— ‰D ]}| ‰|<   ‰                      |¦  «         Œ| S r8   )Úappend)ÚhandlerÚtÚ
convertersÚordered_node_typesÚtypess     €€€r   Úaddz5_init_node_converters.<locals>.converter.<locals>.addÃ   s7   ø€ Øð -ð -�Ø '�
˜1‘Ø"×)Ò)¨!Ñ,Ô,Ð,Ð,ØˆNr   r=   )rl   rm   rj   rk   s   ` €€r   Ú	converterz(_init_node_converters.<locals>.converterÂ   s.   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð
 ˆ
r   c                 óF   •— ‰D ]}t          | |¦  «        r
‰|         c S Œd S r8   )rB   )Únoderi   rj   rk   s     €€r   Úfind_best_converterz2_init_node_converters.<locals>.find_best_converterÊ   s>   ø€ Ø#ð 	%ð 	%ˆAÝ˜$ Ñ"Ô"ð %Ø! !”}Ð$Ð$Ð$ð%àˆtr   c                 ó¬   •— 	 ‰t          | ¦  «                 }n-# t          $ r   ‰| ¦  «        x}‰t          | ¦  «        <   Y nw xY w|€d S  || |¦  «        S r8   )ÚtypeÚKeyError)Úbs_nodeÚparentrh   rj   rq   s      €€r   r\   z+_init_node_converters.<locals>.convert_nodeÐ   s|   ø€ ð	OØ ¥ g¡¤Ô/ˆGˆGøÝð 	Oð 	Oð 	OØ2EÐ2EÀgÑ2NÔ2NÐNˆG�j¥ g¡¤Ñ/Ð/Ð/ð	Oøøøàˆ?Ø�4Øˆw�w Ñ'Ô'Ð's   ƒ ™'AÁAc                 óú   — t          | t          ¦  «        rYi }|                      ¦   «         D ]A\  }}t          |t          ¦  «        rd                     |¦  «        }t          |¦  «        ||<   ŒBnd„ | D ¦   «         }|S )Nú c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS r=   ©Úunescape)Ú.0ÚkÚvs      r   ú
<dictcomp>z<_init_node_converters.<locals>.map_attrs.<locals>.<dictcomp>â   s$   € Ð;Ð;Ð;©$¨!¨Q�q�( 1™+œ+Ð;Ð;Ð;r   )rB   ÚdictÚitemsÚlistÚjoinr{   )Úbs_attrsÚattribsr}   r~   s       r   Ú	map_attrsz(_init_node_converters.<locals>.map_attrsÚ   s‡   € Ý�h¥Ñ%Ô%ð 	<ØˆGØ ŸšÑ(Ô(ð )ð )‘��1Ý˜a¥Ñ&Ô&ð $ØŸš ™œ�AÝ% a™[œ[�˜‘
�
ð)ð
 <Ð;°(Ð;Ñ;Ô;ˆGØˆr   c                 óŒ   — t          | ¦  «        dk    r| j        pd|z   | _        d S | d         j        pd|z   | d         _        d S )Nr   Ú r?   )r+   ÚtextÚtail)rv   r‰   s     r   Úappend_textz*_init_node_converters.<locals>.append_textå   sI   € Ýˆv‰;Œ;˜!ÒÐØ!œ;Ð,¨"°Ñ4ˆFŒKˆKˆKà% bœzœÐ4°"¸Ñ<ˆF�2ŒJŒOˆOˆOr   c                 ó@  •— | j         }|�,|r ‰
|¦  «        nd }t          j        || j        |¬¦  «        }n!|r ‰
|¦  «        ni } ‰	| j        |¬¦  «        }| D ]C}	 ‰t	          |¦  «                 }|� |||¦  «         Œ'# t
          $ r Y nw xY w ‰||¦  «         ŒD|S )N)Úattrib)r3   r   Ú
SubElementr2   rs   rt   )ru   rv   r3   r…   Úresr$   rh   r\   rj   r   r†   s          €€€€r   Úconvert_tagz*_init_node_converters.<locals>.convert_tagí   sò   ø€ à”ˆØÐØ*/Ð9�i�i Ñ&Ô&Ð&°TˆGÝÔ" 6¨7¬<ÀÐHÑHÔHˆCˆCà*/Ð7�i�i Ñ&Ô&Ð&°RˆGØ�+˜gœl°7Ð;Ñ;Ô;ˆCàð 
	%ð 
	%ˆEðØ$¥T¨%¡[¤[Ô1�ð Ð&Ø�G˜E 3Ñ'Ô'Ð'Øøõ ð ð ð Ø�ðøøøð ˆL˜ Ñ$Ô$Ð$Ð$Øˆ
s   ÁBÂ
BÂBc                 ó\   — t          j        | ¦  «        }|�|                     |¦  «         |S r8   )r   ÚHtmlCommentrg   ©ru   rv   r�   s      r   Úconvert_commentz._init_node_converters.<locals>.convert_comment  s/   € åÔ˜wÑ'Ô'ˆØÐØ�MŠM˜#ÑÔÐØˆ
r   c                 ó¶   — |                       d¦  «        r
| d d…         } t          j        |                      dd¦  «        Ž }|�|                     |¦  «         |S )Nú?r?   rx   r*   )Úendswithr   r   Úsplitrg   r“   s      r   Ú
convert_piz)_init_node_converters.<locals>.convert_pi  s_   € à×Ò˜CÑ Ô ð 	#ð ˜c˜r˜c”lˆGÝÔ)¨7¯=ª=¸¸aÑ+@Ô+@ÐAˆØÐØ�MŠM˜#ÑÔÐØˆ
r   c                 ó>   •— |� ‰|t          | ¦  «        ¦  «         d S r8   rz   )ru   rv   r‹   s     €r   Úconvert_textz+_init_node_converters.<locals>.convert_text  s(   ø€ àÐØˆK˜¥¨Ñ 1Ô 1Ñ2Ô2Ð2Øˆtr   r8   )r	   r0   r
   r   r   )r   rn   r�   r”   r™   r›   r‹   r\   rj   rq   r†   rk   s   `     @@@@@@r   rF   rF   ¾   sW  øøøøøøø€ Ø€JØÐðð ð ð ð ð ðð ð ð ð ð ð(ð (ð (ð (ð (ð (ð (ð	ð 	ð 	ð=ð =ð =ð €Y�s•JÑÔðð ð ð ð ð ð ñ  Ôðð, €Y�wÑÔðð ñ Ôðð €YÕ$Ñ%Ô%ðð ñ &Ô%ðð €Y�ÑÔðð ð ð ñ  Ôðð
 Ðr   )Úname2codepointz&(\w+);c                 ó0   — | sdS d„ }t          || ¦  «        S )Nrˆ   c                 ó¨   — 	 t          t          |                      d¦  «                 ¦  «        S # t          $ r |                      d¦  «        cY S w xY w)Nr*   r   )Úunichrrœ   Úgrouprt   )Úms    r   Úunescape_entityz!unescape.<locals>.unescape_entity5  sU   € ð	Ý�.¨¯ª°©¬Ô4Ñ5Ô5Ð5øÝð 	ð 	ð 	Ø—7’7˜1‘:”:ÐÐÐð	øøøs   ‚,/ ¯AÁA)Úhandle_entities)rL   r¢   s     r   r{   r{   1  s0   € Øð Øˆrðð ð õ
 ˜?¨FÑ3Ô3Ð3r   )NNr8   )$Ú__doc__Ú__all__ÚreÚlxmlr   r   Úbs4r   r	   r
   r   r   r   r   rD   ÚImportErrorr   r   r   r   ÚcompileÚ
IGNORECASEra   rM   r0   r   rF   Úhtml.entitiesrœ   ÚhtmlentitydefsÚsubr£   rŸ   Ú	NameErrorÚchrr{   r=   r   r   ú<module>r±      s“  ððð ð 2Ð
1Ð
1€à 	€	€	€	Ø Ð Ð Ð Ð Ð Ð Ð ð	*ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  +¨GÐ4ÐÐøØð *ð *ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *ÐÐÐð	*øøøð>ð >ð >ð >ð#ð #ð #ð #ðð ð ð ð$ð ð ð$ (˜RœZð$ð „Mñ	ô ô ð	 ð(ð (ð (ð (ð (ñ (ô (ð (ðRð Rð Rðj^ð ^ð ^ðF.Ø,Ð,Ð,Ð,Ð,Ð,Ð,øØð .ð .ð .Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð.øøøð �"”*˜ZÑ(Ô(Ô,€ðØ
€F€FøØð ð ð à€F€F€Fðøøøð
	4ð 	4ð 	4ð 	4ð 	4s3   ”+ «AÁAÂB ÂBÂBÂ4B7 Â7CÃ C