ó
    _š‘h¥"  ã                   ó´   • S r SSKrSSKJr  SSKJr  SSKJr  \" S5      r1 Skr	S r
S	 r " S
 S5      r " S S\5      r " S S\5      r " S S\5      rS rg)zCompare two HTML documents.é    N)Ú
HTMLParser)ÚVOID_ELEMENTS)Ú_lazy_re_compilez[\t\n\f\r ]+>   ÚloopÚopenÚasyncÚismapÚmutedÚhiddenÚcheckedÚdefaultÚautoplayÚcontrolsÚdisabledÚmultipleÚnomoduleÚreadonlyÚrequiredÚreversedÚselectedÚ	autofocusÚ	itemscopeÚ	truespeedÚ
novalidateÚplaysinlineÚformnovalidateÚallowfullscreenúdefer c                 ó.   • [         R                  SU 5      $ )NÚ )ÚASCII_WHITESPACEÚsub)Ústrings    ÚTC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\django/test/html.pyÚnormalize_whitespacer%   -   s   € Ü×Ñ  VÓ,Ð,ó    c           	      ó  • / nU  Hv  u  p#US:X  a;  U(       a4  SR                  [        S [        R                  U5       5       5      5      nU[        ;   a  U(       a  X2:X  a  S nOUc  SnUR                  X#45        Mx     U$ )NÚclassr    c              3   ó6   #   • U  H  o(       d  M  Uv •  M     g 7f©N© )Ú.0Úvalues     r$   Ú	<genexpr>Ú'normalize_attributes.<locals>.<genexpr>8   s   é € ÐQÒ*G Ë5—u‘uÒ*Gùs   ‚
�	Ú )ÚjoinÚsortedr!   ÚsplitÚBOOLEAN_ATTRIBUTESÚappend)Ú
attributesÚ
normalizedÚnamer-   s       r$   Únormalize_attributesr9   1   s€   € Ø€JÛ!‰ˆØ�7‹?žuð —H‘HÜÑQÔ*:×*@Ñ*@ÀÔ*GÓQÓQóˆEð Ô%Ó%Þ˜E›MØ�øØ‰]ØˆEØ×Ñ˜4˜-Ö(ñ "ð  Ðr&   c                   óZ   • \ rS rSrS rS rS rS rS rSS jr	S r
S	 rS
 rS rS rSrg)ÚElementéF   c                 ó>   • Xl         [        U5      U l        / U l        g r*   )r8   r2   r6   Úchildren)Úselfr8   r6   s      r$   Ú__init__ÚElement.__init__G   s   € ØŒ	Ü  Ó,ˆŒØˆ�r&   c                 óJ  • [        U[        5      (       a|  [        U5      nU R                  (       a_  [        U R                  S   [        5      (       a=  U R                  S==   U-  ss'   [        U R                  S   5      U R                  S'   g OoU R                  (       a^  [        U R                  S   [        5      (       a<  U R                  S   R	                  5       (       a  U R                  R                  5         U(       a  U R                  R                  U5        g g ©Néÿÿÿÿ)Ú
isinstanceÚstrr%   r>   ÚisspaceÚpopr5   ©r?   Úelements     r$   r5   ÚElement.appendL   sÉ   € Ü�gœs×#Ñ#Ü*¨7Ó3ˆGØ�}�}¤¨D¯M©M¸"Ñ,=¼s×!CÑ!CØ—‘˜bÓ! WÑ,Ó!Ü$8¸¿¹ÀrÑ9JÓ$K�—‘˜bÑ!ØøØ�]�]ô ˜$Ÿ-™-¨Ñ+¬S×1Ñ1°d·m±mÀBÑ6G×6OÑ6O×6QÑ6QØ—‘×!Ñ!Ô#ÞØ�M‰M× Ñ  Õ)ð r&   c                 ó   ^• U4S jmT" U R                   5        [        U R                   5       H\  u  p[        U[        5      (       a  UR	                  5       U R                   U'   M9  [        US5      (       d  ML  UR                  5         M^     g )Nc                 ó¶   >• U (       aP  [        U S   [        5      (       a8  U S   R                  5       U S'   U S   (       d  U R                  5         T" U 5      n U $ rC   )rE   rF   ÚrstriprH   )r>   Úrstrip_last_elements    €r$   rO   Ú-Element.finalize.<locals>.rstrip_last_element]   sK   ø€ ÞœJ x°¡|´S×9Ñ9Ø'¨™|×2Ñ2Ó4�˜‘Ø —|Ø—L‘L”NÙ2°8Ó<�HØˆOr&   Úfinalize)r>   Ú	enumeraterE   rF   ÚstripÚhasattrrQ   )r?   ÚiÚchildrO   s      @r$   rQ   ÚElement.finalize\   sc   ø€ õ	ñ 	˜DŸM™MÔ*Ü! $§-¡-Ö0‰HˆAÜ˜%¤×%Ñ%Ø#(§;¡;£=�—‘˜aÓ Ü˜ 
×+Ó+Ø—‘Ö ò	 1r&   c                 óÂ   • [        US5      (       a  U R                  UR                  :w  a  gU R                  UR                  :w  a  gU R                  UR                  :H  $ )Nr8   F)rT   r8   r6   r>   rI   s     r$   Ú__eq__ÚElement.__eq__l   sK   € Ü�w ×'Ñ'¨4¯9©9¸¿¹Ó+DØØ�?‰?˜g×0Ñ0Ó0ØØ�}‰} × 0Ñ 0Ñ0Ð0r&   c                 óH   • [        U R                  /U R                  Q75      $ r*   )Úhashr8   r6   ©r?   s    r$   Ú__hash__ÚElement.__hash__s   s   € Ü�T—Y‘YÐ1 §¡Ñ1Ó2Ð2r&   c                 ó„  • [        U[        5      (       d  X:X  a  g[        U[        5      (       a  U R                  UR                  :X  a  gSnSnU R                   Hà  n[        U[        5      (       a<  [        U[        5      (       a%  U(       a  X5R	                  U5      -  nMI  X;   a    gMR  MT  X5R                  XS9-  nU(       d  U(       a  Us  $ [        U[        5      (       d  MŽ  UR                  (       d  M¡  UR                  U   nXe:X  a)  US-  nU[        UR                  5      :X  a	  US-  nSnMÜ  MÞ  SnMâ     U$ )Né   r   ©Úcount)rE   rF   ÚRootElementr>   rc   Ú_countÚlen)r?   rJ   rc   rU   Úelem_child_idxrV   Ú
elem_childs          r$   re   ÚElement._countv   s   € Ü˜'¤3×'Ñ'¨D«OØÜ�gœ{×+Ñ+°·±À×AQÑAQÓ0QØØˆØˆØ—]”]ˆEô ˜%¤×%Ñ%Ü˜g¤s×+Ñ+ÞØŸ[™[¨Ó1Ñ1šØ Ó)Ù ñ *ñ ,ð —\‘\ '�\Ð7Ñ7�Þ¦Ø’Hô
 ˜g¤{×3Ó3¸×8H×8HÑ8HØ!(×!1Ñ!1°.Ñ!A�Jà!Ó*Ø&¨!Ñ+˜à)¬S°×1AÑ1AÓ-BÓBØ ™F˜AØ-.šNñ Cð
 *+šñ; #ð< ˆr&   c                 ó(   • U R                  USS9S:„  $ )NFrb   r   ©re   rI   s     r$   Ú__contains__ÚElement.__contains__�   s   € Ø�{‰{˜7¨%ˆ{Ð0°1Ñ4Ð4r&   c                 ó"   • U R                  USS9$ )NTrb   rk   rI   s     r$   rc   ÚElement.count    s   € Ø�{‰{˜7¨$ˆ{Ð/Ð/r&   c                 ó    • U R                   U   $ r*   )r>   )r?   Úkeys     r$   Ú__getitem__ÚElement.__getitem__£   s   € Ø�}‰}˜SÑ!Ð!r&   c           
      ó²  • SU R                   -  nU R                   H   u  p#Ub  USU< SU< S3-  nM  USU-  -  nM"     U R                  (       a|  US-  nUSR                  U R                   Vs/ s H9  n[	        U[
        5      (       a  [        R                  " U5      O
[        U5      PM;     sn5      -  nUSU R                   -  -  nU$ US	-  nU$ s  snf )
Nz<%sr    z="Ú"z %sz>
r0   z
</%s>Ú>)r8   r6   r>   r1   rE   rF   ÚhtmlÚescape)r?   Úoutputrq   r-   Úcs        r$   Ú__str__ÚElement.__str__¦   sÙ   € Ø˜Ÿ™Ñ"ˆØŸ/œ/‰JˆCØÑ Ù««UÐ3Ñ3’à˜% #™+Ñ%’ñ	 *ð
 �=�=Ø�e‰OˆFØ�b—g‘gð "Ÿ]š]óâ*˜ô '1°´C×&8Ñ&8”D—K’K ”N¼cÀ!»fÒDÙ*ñóñ ˆFð �i $§)¡)Ñ+Ñ+ˆFð ˆð �c‰MˆFØˆùòs   Á0A C
c                 ó   • [        U 5      $ r*   )rF   r]   s    r$   Ú__repr__ÚElement.__repr__º   s   € Ü�4‹yÐr&   )r6   r>   r8   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r@   r5   rQ   rY   r^   re   rl   rc   rr   r{   r~   Ú__static_attributes__r+   r&   r$   r;   r;   F   s:   † òò
*ò !ò 1ò3ô%òN5ò0ò"òõ(r&   r;   c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )rd   é¾   c                 ó&   >• [         TU ]  S S5        g )Nr+   )Úsuperr@   ©r?   Ú	__class__s    €r$   r@   ÚRootElement.__init__¿   s   ø€ Ü‰Ñ˜˜rÕ"r&   c           	      óÌ   • SR                  U R                   Vs/ s H9  n[        U[        5      (       a  [        R
                  " U5      O
[        U5      PM;     sn5      $ s  snf )Nr0   )r1   r>   rE   rF   rw   rx   )r?   rz   s     r$   r{   ÚRootElement.__str__Â   sI   € Ø�w‰wØGKÇ}Â}ÓUÂ}À!œz¨!¬S×1Ñ1ŒT�[Š[˜Œ^´s¸1³vÒ=Á}ÑUó
ð 	
ùÚUs   šA A!r+   )r€   r�   r‚   rƒ   r@   r{   r„   Ú__classcell__©rŠ   s   @r$   rd   rd   ¾   s   ø† õ#÷
ð 
r&   rd   c                   ó   • \ rS rSrSrg)ÚHTMLParseErroréÈ   r+   N)r€   r�   r‚   rƒ   r„   r+   r&   r$   r‘   r‘   È   s   † Úr&   r‘   c                   ó`   ^ • \ rS rSrU 4S jrS rSS jr\S 5       rS r	S r
S rS	 rS
rU =r$ )ÚParseréÌ   c                 ó\   >• [         TU ]  5         [        5       U l        / U l        0 U l        g r*   )rˆ   r@   rd   ÚrootÚ	open_tagsÚelement_positionsr‰   s    €r$   r@   ÚParser.__init__Í   s&   ø€ Ü‰ÑÔÜ“MˆŒ	ØˆŒØ!#ˆÕr&   c                 ó4   • [        XR                  5       5      er*   )r‘   Úgetpos)r?   Úmsgs     r$   ÚerrorÚParser.errorÓ   s   € Ü˜S§+¡+£-Ó0Ð0r&   c                 ó¾   • U(       d  U(       a  U R                   U   nUc  U R                  5       n[        US5      (       a  UR                  UR                  4nSU-  $ )NÚlinenozLine %d, Column %d)r™   rœ   rT   r¡   Úoffset)r?   ÚpositionrJ   s      r$   Úformat_positionÚParser.format_positionÖ   sR   € ÞžGØ×-Ñ-¨gÑ6ˆHØÑØ—{‘{“}ˆHÜ�8˜X×&Ñ&Ø—‘¨¯©Ð7ˆHØ# hÑ.Ð.r&   c                 óZ   • U R                   (       a  U R                   S   $ U R                  $ rC   )r˜   r—   r]   s    r$   ÚcurrentÚParser.currentß   s"   € à�>�>Ø—>‘> "Ñ%Ð%à—9‘9Ðr&   c                 ó^   • U R                  X5        U[        ;  a  U R                  U5        g g r*   )Úhandle_starttagr   Úhandle_endtag)r?   ÚtagÚattrss      r$   Úhandle_startendtagÚParser.handle_startendtagæ   s+   € Ø×Ñ˜SÔ(Ø”mÓ#Ø×Ñ˜sÕ#ð $r&   c                 óê   • [        U5      n[        X5      nU R                  R                  U5        U[        ;  a  U R
                  R                  U5        U R                  5       U R                  U'   g r*   )r9   r;   r§   r5   r   r˜   rœ   r™   )r?   r¬   r­   rJ   s       r$   rª   ÚParser.handle_starttagë   sX   € Ü$ UÓ+ˆÜ˜#Ó%ˆØ�‰×Ñ˜GÔ$Ø”mÓ#Ø�N‰N×!Ñ! 'Ô*Ø*.¯+©+«-ˆ×Ñ˜wÒ'r&   c                 ó–  • U R                   (       d(  U R                  SU< SU R                  5       < S35        U R                   R                  5       nUR                  U:w  af  U R                   (       d(  U R                  SU< SU R                  5       < S35        U R                   R                  5       nUR                  U:w  a  Me  g g )NzUnexpected end tag `z` (Ú))r˜   rž   r¤   rH   r8   )r?   r¬   rJ   s      r$   r«   ÚParser.handle_endtagó   s‡   € Ø�~�~Ø�JŠJ»¸d×>RÑ>RÖ>TÐUÔVØ—.‘.×$Ñ$Ó&ˆØ�l‰l˜cÓ!Ø—>—>Ø—
’
Û69¸4×;OÑ;OÖ;QÐRôð —n‘n×(Ñ(Ó*ˆGð �l‰l˜c×!r&   c                 ó:   • U R                   R                  U5        g r*   )r§   r5   )r?   Údatas     r$   Úhandle_dataÚParser.handle_dataþ   s   € Ø�‰×Ñ˜DÕ!r&   )r™   r˜   r—   )NN)r€   r�   r‚   rƒ   r@   rž   r¤   Úpropertyr§   r®   rª   r«   r·   r„   rŽ   r�   s   @r$   r”   r”   Ì   s?   ø† õ$ò1ô/ð ñó ðò$ò
8ò	+÷"ð "r&   r”   c                 ó(  • [        5       nUR                  U 5        UR                  5         UR                  nUR	                  5         [        UR                  5      S:X  a1  [        UR                  S   [        5      (       d  UR                  S   nU$ )zè
Take a string that contains HTML and turn it into a Python object structure
that can be easily compared against other HTML on semantic equivalence.
Syntactical differences like which quotation is used on arguments will be
ignored.
ra   r   )	r”   ÚfeedÚcloser—   rQ   rf   r>   rE   rF   )rw   ÚparserÚdocuments      r$   Ú
parse_htmlr¿     st   € ô ‹X€FØ
‡K�K�ÔØ
‡L�L„NØ�{‰{€HØ×ÑÔä
ˆ8×ÑÓ Ó"¬:°h×6GÑ6GÈÑ6JÌC×+PÑ+PØ×$Ñ$ QÑ'ˆØ€Or&   )Ú__doc__rw   Úhtml.parserr   Údjango.utils.htmlr   Údjango.utils.regex_helperr   r!   r4   r%   r9   r;   rd   Ú	Exceptionr‘   r”   r¿   r+   r&   r$   Ú<module>rÅ      sj   ðÙ !ã Ý "å +Ý 6ñ
 $ OÓ4Ð òÐ ò<-ò÷*uñ uôp
�'ô 
ô	�Yô 	ô3"ˆZô 3"ólr&   