§
    ©öÉg°E  ã                   óš   — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZmZ  G d„ de	¦  «        Z
 G d„ de	¦  «        Z G d„ d	e	¦  «        ZdS )
é    N)ÚBeautifulSoup)ÚEntitySubstitutionÚEncodingDetectorÚUnicodeDammitc                   óˆ   — e Zd ZdZd„ Zej                             dg d¢¦  «        d„ ¦   «         Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ ZdS )ÚTestUnicodeDammitz"Standalone tests of UnicodeDammit.c                 óB   — d}t          |¦  «        }|j        |k    sJ ‚d S )Nu   I'm already Unicode! â˜ƒ)r   Úunicode_markup)ÚselfÚmarkupÚdammits      úa/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/bs4/tests/test_dammit.pyÚtest_unicode_inputz$TestUnicodeDammit.test_unicode_input   s.   € Ø3ˆÝ˜vÑ&Ô&ˆØÔ$¨Ò.Ð.Ð.Ð.Ð.Ð.ó    z smart_quotes_to,expect_converted))Nu   â€˜â€™â€œâ€�)Úxmlz &#x2018;&#x2019;&#x201C;&#x201D;)Úhtmlz&lsquo;&rsquo;&ldquo;&rdquo;)Úasciiz''""c                 óp   — d}t          |dg|¬¦  «        j        }|d                     |¦  «        k    sJ ‚dS )zbVerify the functionality of the smart_quotes_to argument
        to the UnicodeDammit constructor.s   <foo>‘’“”</foo>úwindows-1252)Úknown_definite_encodingsÚsmart_quotes_toz<foo>{}</foo>N)r   r
   Úformat)r   r   Úexpect_convertedr   Ú	converteds        r   Útest_smart_quotes_toz&TestUnicodeDammit.test_smart_quotes_to   sY   € ð 0ˆÝ!ØØ&4Ð%5Ø+ð
ñ 
ô 
ô ð	 	ð
 ˜O×2Ò2Ð3CÑDÔDÒDÐDÐDÐDÐDÐDr   c                 ó€   — d}t          |¦  «        }|j                             ¦   «         dk    sJ ‚|j        dk    sJ ‚d S )Ns   SacrÃ© bleu! â˜ƒúutf-8u   SacrÃ© bleu! â˜ƒ©r   Úoriginal_encodingÚlowerr
   )r   Úutf8r   s      r   Útest_detect_utf8z"TestUnicodeDammit.test_detect_utf8*   sO   € Ø1ˆÝ˜tÑ$Ô$ˆØÔ'×-Ò-Ñ/Ô/°7Ò:Ð:Ð:Ð:ØÔ$Ð(DÒDÐDÐDÐDÐDÐDr   c                 ó„   — d}t          |dg¦  «        }|j                             ¦   «         dk    sJ ‚|j        dk    sJ ‚d S )Nó   íåìùú
iso-8859-8u   ×�×•×œ×©r   )r   Úhebrewr   s      r   Útest_convert_hebrewz%TestUnicodeDammit.test_convert_hebrew0   sS   € Ø$ˆÝ˜v¨ ~Ñ6Ô6ˆØÔ'×-Ò-Ñ/Ô/°<Ò?Ð?Ð?Ð?ØÔ$Ð(BÒBÐBÐBÐBÐBÐBr   c                 ó¦   — d}t          |¦  «        }|j                             ¦   «         dk    sJ ‚|j                             d¦  «        |k    sJ ‚d S )Ns   ã‚±ãƒ¼ã‚¿ã‚¤ Watchr   )r   r   r    r
   Úencode)r   Úutf_8r   s      r   Ú/test_dont_see_smart_quotes_where_there_are_nonezATestUnicodeDammit.test_dont_see_smart_quotes_where_there_are_none6   s\   € ØIˆÝ˜uÑ%Ô%ˆØÔ'×-Ò-Ñ/Ô/°7Ò:Ð:Ð:Ð:ØÔ$×+Ò+¨GÑ4Ô4¸Ò=Ð=Ð=Ð=Ð=Ð=r   c                 ó�   — d                      d¦  «        }t          |dg¦  «        }|j                             ¦   «         dk    sJ ‚d S )Nõ   RÃ¤ksmÃ¶rgÃ¥sr   r%   ©r)   r   r   r    ©r   Ú	utf8_datar   s      r   Ú test_ignore_inappropriate_codecsz2TestUnicodeDammit.test_ignore_inappropriate_codecs<   sL   € Ø#×*Ò*¨7Ñ3Ô3ˆ	Ý˜y¨<¨.Ñ9Ô9ˆØÔ'×-Ò-Ñ/Ô/°7Ò:Ð:Ð:Ð:Ð:Ð:r   c                 óš   — d                      d¦  «        }dD ]2}t          ||g¦  «        }|j                             ¦   «         dk    sJ ‚Œ3d S )Nr-   r   )z.utf8z...z
utF---16.!r.   )r   r0   Úbad_encodingr   s       r   Útest_ignore_invalid_codecsz,TestUnicodeDammit.test_ignore_invalid_codecsA   sb   € Ø#×*Ò*¨7Ñ3Ô3ˆ	Ø:ð 	?ð 	?ˆLÝ" 9¨|¨nÑ=Ô=ˆFØÔ+×1Ò1Ñ3Ô3°wÒ>Ð>Ð>Ð>Ð>ð	?ð 	?r   c                 óÊ   — d                      d¦  «        }t          |dg¬¦  «        }|j                             ¦   «         dk    sJ ‚t          |ddg¬¦  «        }|j        �J ‚d S )Nr-   r   )Úexclude_encodingsr   r.   r/   s      r   Útest_exclude_encodingsz(TestUnicodeDammit.test_exclude_encodingsG   sy   € à#×*Ò*¨7Ñ3Ô3ˆ	õ ˜y¸W¸IÐFÑFÔFˆØÔ'×-Ò-Ñ/Ô/°>ÒAÐAÐAÐAõ ˜y¸WÀnÐ<UÐVÑVÔVˆØÔ'Ð/Ð/Ð/Ð/Ð/r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚpytestÚmarkÚparametrizer   r"   r'   r+   r1   r4   r7   © r   r   r   r      sÎ   € € € € € Ø,Ð,ð/ð /ð /ð
 „[×ÒØ*ð	
ð 	
ð 	
ñô ð	Eð 	Eñô ð	EðEð Eð EðCð Cð Cð>ð >ð >ð;ð ;ð ;ð
?ð ?ð ?ð0ð 0ð 0ð 0ð 0r   r   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestEncodingDetectorc                 óX   — t          d¦  «        }t          |j        ¦  «        }d|v sJ ‚d S )Ns'   <?xml version="1.0" encoding="UTF-Û" ?>u   utf-ï¿½)r   ÚlistÚ	encodings)r   ÚdetectedrD   s      r   ÚPtest_encoding_detector_replaces_junk_in_encoding_name_with_replacement_characterzeTestEncodingDetector.test_encoding_detector_replaces_junk_in_encoding_name_with_replacement_characterV   s9   € õ $Ð$QÑRÔRˆÝ˜Ô+Ñ,Ô,ˆ	Ø.°)Ð;Ð;Ð;Ð;Ð;Ð;r   c                 óL   — dD ] }t          |d¬¦  «        }d|j        k    sJ ‚Œ!d S )N)s&   <html><meta charset="euc-jp" /></html>s&   <html><meta charset='euc-jp' /></html>s$   <html><meta charset=euc-jp /></html>s#   <html><meta charset=euc-jp/></html>T©Úis_htmlzeuc-jp)r   r   ©r   Údatar   s      r   Ú test_detect_html5_style_meta_tagz5TestEncodingDetector.test_detect_html5_style_meta_tag]   sH   € ð
ð 	8ð 	8ˆDõ # 4°Ð6Ñ6Ô6ˆFØ˜vÔ7Ò7Ð7Ð7Ð7Ð7ð	8ð 	8r   c                 óÖ  — d}t           j        j        }t          j        t          j        ¦  «         	 d„ }|t           j        _        t          |¦  «        }d|j        u sJ ‚d|j        v sJ ‚t          |d¦  «        }|j        sJ ‚	 t          j        t          j
        ¦  «         |t           j        _        d S # t          j        t          j
        ¦  «         |t           j        _        w xY w)NsT   ï»¿<?xml version="1.0" encoding="UTF-8"?>
<html><b>Ø¨ØªØ±</b>
<i>ÈÒÑ�ÊÑíä</i></html>c                 ó   — d S ©Nr?   )Ústrs    r   ÚnoopzETestEncodingDetector.test_last_ditch_entity_replacement.<locals>.noop~   s   € Ø�tr   Tu   ï¿½zhtml.parser)Úbs4r   Ú_chardet_dammitÚloggingÚdisableÚWARNINGr   Úcontains_replacement_charactersr
   r   ÚNOTSET)r   ÚdocÚchardetrQ   r   Úsoups         r   Ú"test_last_ditch_entity_replacementz7TestEncodingDetector.test_last_ditch_entity_replacementg   sê   € ð 2ˆõ ”*Ô,ˆÝŒ�œÑ(Ô(Ð(ð	1ðð ð ð *.�CŒJÔ&Ý" 3Ñ'Ô'ˆFØ˜6ÔAÐAÐAÐAÐAØ˜vÔ4Ð4Ð4Ð4Ð4å   mÑ4Ô4ˆDØÔ7Ð7Ð7Ð7Ð7åŒO�GœNÑ+Ô+Ð+Ø)0�CŒJÔ&Ð&Ð&øõ ŒO�GœNÑ+Ô+Ð+Ø)0�CŒJÔ&Ð0Ð0Ð0Ð0s   ³AB7 Â71C(c                 ó\   — d}t          |¦  «        }d|j        k    sJ ‚d|j        k    sJ ‚d S )Nó   ÿþ< a > á é < / a > u   <a>Ã¡Ã©</a>úutf-16le)r   r
   r   rJ   s      r   Útest_byte_order_mark_removedz1TestEncodingDetector.test_byte_order_mark_removedŒ   sB   € àMˆÝ˜tÑ$Ô$ˆØ Ô 5Ò5Ð5Ð5Ð5Ø˜VÔ5Ò5Ð5Ð5Ð5Ð5Ð5r   c                 óL  — d}t          |¦  «        }t          |dg¬¦  «        }d|j        k    sJ ‚t          |dg¬¦  «        }d|j        k    sJ ‚dgd„ |j        D ¦   «         k    sJ ‚d}t          |dgd	g¬
¦  «        }d	|j        k    sJ ‚dd	gd„ |j        D ¦   «         k    sJ ‚d S )Nr^   zutf-16)r   r   )Úuser_encodingsr_   c                 ó   — g | ]
}|d          ‘ŒS ©r   r?   ©Ú.0Úxs     r   ú
<listcomp>zRTestEncodingDetector.test_known_definite_versus_user_encodings.<locals>.<listcomp>¥   s   € ÐEÐEÐE¨  !¤ÐEÐEÐEr   r$   r%   )r   rb   c                 ó   — g | ]
}|d          ‘ŒS rd   r?   re   s     r   rh   zRTestEncodingDetector.test_known_definite_versus_user_encodings.<locals>.<listcomp>±   s   € Ð*PÐ*PÐ*P°A¨1¨Q¬4Ð*PÐ*PÐ*Pr   )r   r   Útried_encodings)r   rK   r   ÚbeforeÚafterr&   s         r   Ú)test_known_definite_versus_user_encodingsz>TestEncodingDetector.test_known_definite_versus_user_encodings“   sú   € ð
 NˆÝ˜tÑ$Ô$ˆõ ˜t¸x¸jÐIÑIÔIˆØ˜6Ô3Ò3Ð3Ð3Ð3õ
 ˜d°G°9Ð=Ñ=Ô=ˆØ˜UÔ4Ò4Ð4Ð4Ð4Øˆ|ÐEÐE¨fÔ.DÐEÑEÔEÒEÐEÐEÐEð %ˆÝØ¨g¨YÈÀ~ð
ñ 
ô 
ˆð ˜vÔ7Ò7Ð7Ð7Ð7Ø˜Ð&Ð*PÐ*P¸Ô9OÐ*PÑ*PÔ*PÒPÐPÐPÐPÐPÐPr   c                 óD  — d}t          j        d¬¦  «        5 }t          |dgdgdg¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |\  }|j        }t	          |t
          ¦  «        sJ ‚|j        t          k    sJ ‚d|j        k    sJ ‚g d¢d	„ |j	        D ¦   «         k    sJ ‚d S )
Nr$   T)Úrecordú	shift-jisr   r%   )r   Úoverride_encodingsrb   )rp   r   r%   c                 ó   — g | ]
}|d          ‘ŒS rd   r?   re   s     r   rh   zKTestEncodingDetector.test_deprecated_override_encodings.<locals>.<listcomp>Ç   s   € Ð2Ð2Ð2�aˆQˆqŒTÐ2Ð2Ð2r   )
ÚwarningsÚcatch_warningsr   ÚmessageÚ
isinstanceÚDeprecationWarningÚfilenameÚ__file__r   rj   )r   r&   Úwr   Úwarningru   s         r   Ú"test_deprecated_override_encodingsz7TestEncodingDetector.test_deprecated_override_encodings³   s!  € ð %ˆÝÔ$¨DÐ1Ñ1Ô1ð 	°QÝ"ØØ*5¨Ø$+ 9Ø ,˜~ð	ñ ô ˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ‰	ˆØ”/ˆÝ˜'Õ#5Ñ6Ô6Ð6Ð6Ð6ØÔ¥8Ò+Ð+Ð+Ð+Ø˜vÔ7Ò7Ð7Ð7Ð7ð 4Ð3Ð3Ø2Ð2˜6Ô1Ð2Ñ2Ô2ò
ð 
ð 
ð 
ð 
ð 
s   ˜;»?Á?c                 óT  — d                      d¦  «        }d                      d¦  «        }||z   |z   }t          j        t          ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }d|                     d¦  «        k    sJ ‚d S )Nu	   â˜ƒâ˜ƒâ˜ƒr!   u   â€œHi, I like Windows!â€�Úwindows_1252u+   â˜ƒâ˜ƒâ˜ƒâ€œHi, I like Windows!â€�â˜ƒâ˜ƒâ˜ƒ)r)   r<   ÚraisesÚUnicodeDecodeErrorÚdecoder   Ú	detwingle)r   r!   r~   rY   Úfixeds        r   Útest_detwinglez#TestEncodingDetector.test_detwingleÊ   sì   € à!×)Ò)¨&Ñ1Ô1ˆð.ç
Š&�Ñ
 Ô
 ð 	ð �\Ñ! DÑ(ˆõ Œ]Õ-Ñ.Ô.ð 	ð 	Ø�JŠJ�vÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Ô'¨Ñ,Ô,ˆØ<ÀÇÂÈVÑ@TÔ@TÒTÐTÐTÐTÐTÐTs   ÁA.Á.A2Á5A2c                 ó    — dD ]J}|                      d¦  «        }|                     d¦  «        sJ ‚t          j        |¦  «        }||k    sJ ‚ŒKd S )N)u   Å“u   â‚“u   Ã°Â�Â�Â“r!   ó   “)r)   Úendswithr   r‚   )r   Útricky_unicode_charÚinputÚoutputs       r   Ú+test_detwingle_ignores_multibyte_charactersz@TestEncodingDetector.test_detwingle_ignores_multibyte_charactersâ   sj   € ð
$
ð 	#ð 	#Ðð
 (×.Ò.¨vÑ6Ô6ˆEØ—>’> 'Ñ*Ô*Ð*Ð*Ð*Ý"Ô,¨UÑ3Ô3ˆFØ˜U’?�?�?�?�?ð	#ð 	#r   c                 ó  — d}|                      d¦  «        }d}|                      d¦  «        }t          j        } ||d¬¦  «        �J ‚d ||d¬¦  «        k    sJ ‚d ||d¬¦  «        k    sJ ‚d ||¦  «        k    sJ ‚d ||¦  «        k    sJ ‚d	d
z  } |||z   ¦  «        �J ‚ |||z   ¦  «        �J ‚ |||z   dd¬¦  «        dk    sJ ‚ ||d¬¦  «        dk    sJ ‚ |d	|z   d¬¦  «        dk    sJ ‚ |d|z   d¬¦  «        �J ‚d S )Nz0<html><head><meta charset="utf-8"></head></html>r   z,<?xml version="1.0" encoding="ISO-8859-1" ?>FrH   r   Tz
iso-8859-1ó    iˆ  )rI   Úsearch_entire_document)rŽ   ó   a)r)   r   Úfind_declared_encoding)r   Úhtml_unicodeÚ
html_bytesÚxml_unicodeÚ	xml_bytesÚmÚspacers          r   Útest_find_declared_encodingz0TestEncodingDetector.test_find_declared_encodingñ   s¢  € ð JˆØ!×(Ò(¨Ñ1Ô1ˆ
àDˆØ×&Ò& wÑ/Ô/ˆ	åÔ3ˆØˆq� uÐ-Ñ-Ô-Ð5Ð5Ð5Ø˜!˜!˜L°$Ð7Ñ7Ô7Ò7Ð7Ð7Ð7Ø˜!˜!˜J°Ð5Ñ5Ô5Ò5Ð5Ð5Ð5à˜q˜q ™~œ~Ò-Ð-Ð-Ð-Ø˜q˜q ™|œ|Ò+Ð+Ð+Ð+ð ˜‘ˆØˆq�˜*Ñ$Ñ%Ô%Ð-Ð-Ð-Øˆq�˜)Ñ#Ñ$Ô$Ð,Ð,Ð,ð
 ˆAˆf�zÑ!¨4ÈÐMÑMÔMÐQXÒXÐXÐXÐXð ˆq�°4Ð8Ñ8Ô8¸LÒHÐHÐHÐHØˆq�˜	Ñ!¸$Ð?Ñ?Ô?À<ÒOÐOÐOÐOØˆq�˜	Ñ!¸$Ð?Ñ?Ô?ÐGÐGÐGÐGÐGr   N)r8   r9   r:   rF   rL   r\   r`   rm   r|   r„   r‹   r—   r?   r   r   rA   rA   U   s¨   € € € € € ð<ð <ð <ð8ð 8ð 8ð#1ð #1ð #1ðJ6ð 6ð 6ðQð Qð Qð@
ð 
ð 
ð.Uð Uð Uð0#ð #ð #ð'Hð 'Hð 'Hð 'Hð 'Hr   rA   c                   óŽ  — e Zd ZdZd„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             ddg¦  «        d„ ¦   «         ZdS )ÚTestEntitySubstitutionz1Standalone tests of the EntitySubstitution class.c                 ó   — t           | _        d S rO   )r   Úsub©r   s    r   Úsetup_methodz#TestEntitySubstitution.setup_method  s   € Ý%ˆŒˆˆr   zoriginal,substituted)u   fooâˆ€â˜ƒÃµbaru   foo&forall;â˜ƒ&otilde;bar)u   â€˜â€™fooâ€œâ€�z&lsquo;&rsquo;foo&ldquo;&rdquo;c                 óF   — | j                              |¦  «        |k    sJ ‚d S rO   ©r›   Úsubstitute_html)r   ÚoriginalÚsubstituteds      r   Útest_substitute_htmlz+TestEntitySubstitution.test_substitute_html!  s+   € ð Œx×'Ò'¨Ñ1Ô1°[Ò@Ð@Ð@Ð@Ð@Ð@r   c                 ón   — dD ]1\  }}d}||z  }||z  }| j                              |¦  «        |k    sJ ‚Œ2d S )N)	)z&models;u   âŠ§)z&Nfr;u   ð�”‘)z&ngeqq;u   â‰§Ì¸)z&not;õ   Â¬)z&Not;u   â«¬z||)Úfjr¦   )z&gt;ú>)z&lt;ú<z3 %s 4rŸ   )r   ÚentityÚuÚtemplateÚrawÚwith_entitiess         r   Útest_html5_entityz(TestEntitySubstitution.test_html5_entity/  sc   € ð
ð 	Bð 	B‰IˆF�Að(  ˆHØ˜Q‘,ˆCØ$ vÑ-ˆMØ”8×+Ò+¨CÑ0Ô0°MÒAÐAÐAÐAÐAð/	Bð 	Br   c                 ó–   — d}d}| j                              |¦  «        |k    sJ ‚d}d}| j                              |¦  «        |k    sJ ‚d S )Nu   fjords âŠ” penguinszfjords &sqcup; penguinsu   fjords âŠ”ï¸€ penguinszfjords &sqcups; penguinsrŸ   )r   rK   r   s      r   Ú)test_html5_entity_with_variation_selectorz@TestEntitySubstitution.test_html5_entity_with_variation_selectorI  s`   € ð (ˆØ*ˆØŒx×'Ò'¨Ñ-Ô-°Ò7Ð7Ð7Ð7à-ˆØ+ˆØŒx×'Ò'¨Ñ-Ô-°Ò7Ð7Ð7Ð7Ð7Ð7r   c                 óL   — d}| j                              |d¦  «        |k    sJ ‚d S )NúWelcome to "my bar"F©r›   Úsubstitute_xml©r   Úss     r   ÚItest_xml_converstion_includes_no_quotes_if_make_quoted_attribute_is_falsez`TestEntitySubstitution.test_xml_converstion_includes_no_quotes_if_make_quoted_attribute_is_falseU  s0   € Ø!ˆØŒx×&Ò& q¨%Ñ0Ô0°AÒ5Ð5Ð5Ð5Ð5Ð5r   c                 óŠ   — | j                              dd¦  «        dk    sJ ‚| j                              dd¦  «        dk    sJ ‚d S )NÚWelcomeTz	"Welcome"z	Bob's Barz"Bob's Bar"r³   rœ   s    r   Ú6test_xml_attribute_quoting_normally_uses_double_quoteszMTestEntitySubstitution.test_xml_attribute_quoting_normally_uses_double_quotesY  sN   € ØŒx×&Ò& y°$Ñ7Ô7¸;ÒFÐFÐFÐFØŒx×&Ò& {°DÑ9Ô9¸^ÒKÐKÐKÐKÐKÐKr   c                 óL   — d}| j                              |d¦  «        dk    sJ ‚d S )Nr²   Tz'Welcome to "my bar"'r³   rµ   s     r   ÚOtest_xml_attribute_quoting_uses_single_quotes_when_value_contains_double_quoteszfTestEntitySubstitution.test_xml_attribute_quoting_uses_single_quotes_when_value_contains_double_quotes]  s3   € ð "ˆØŒx×&Ò& q¨$Ñ/Ô/Ð3LÒLÐLÐLÐLÐLÐLr   c                 óL   — d}| j                              |d¦  «        dk    sJ ‚d S )NúWelcome to "Bob's Bar"Tz""Welcome to &quot;Bob's Bar&quot;"r³   rµ   s     r   Úbtest_xml_attribute_quoting_escapes_single_quotes_when_value_contains_both_single_and_double_quoteszyTestEntitySubstitution.test_xml_attribute_quoting_escapes_single_quotes_when_value_contains_both_single_and_double_quotesc  s3   € ð &ˆØŒx×&Ò& q¨$Ñ/Ô/Ð3XÒXÐXÐXÐXÐXÐXr   c                 óJ   — d}| j                              |¦  «        |k    sJ ‚d S )Nr¾   r³   )r   Úquoteds     r   Ú<test_xml_quotes_arent_escaped_when_value_is_not_being_quotedzSTestEntitySubstitution.test_xml_quotes_arent_escaped_when_value_is_not_being_quotedi  s.   € Ø*ˆØŒx×&Ò& vÑ.Ô.°&Ò8Ð8Ð8Ð8Ð8Ð8r   c                 óF   — | j                              d¦  «        dk    sJ ‚d S )Nzfoo<bar>zfoo&lt;bar&gt;r³   rœ   s    r   Ú'test_xml_quoting_handles_angle_bracketsz>TestEntitySubstitution.test_xml_quoting_handles_angle_bracketsm  s*   € ØŒx×&Ò& zÑ2Ô2Ð6FÒFÐFÐFÐFÐFÐFr   c                 óF   — | j                              d¦  «        dk    sJ ‚d S )NzAT&TzAT&amp;Tr³   rœ   s    r   Ú#test_xml_quoting_handles_ampersandsz:TestEntitySubstitution.test_xml_quoting_handles_ampersandsp  s)   € ØŒx×&Ò& vÑ.Ô.°*Ò<Ð<Ð<Ð<Ð<Ð<r   c                 óF   — | j                              d¦  «        dk    sJ ‚d S )Nú&Aacute;T&Tz&amp;Aacute;T&amp;Tr³   rœ   s    r   ÚEtest_xml_quoting_including_ampersands_when_they_are_part_of_an_entityz\TestEntitySubstitution.test_xml_quoting_including_ampersands_when_they_are_part_of_an_entitys  s*   € ØŒx×&Ò& }Ñ5Ô5Ð9NÒNÐNÐNÐNÐNÐNr   c                 óF   — | j                              d¦  «        dk    sJ ‚d S )NrÈ   z&Aacute;T&amp;T)r›   Ú"substitute_xml_containing_entitiesrœ   s    r   ÚDtest_xml_quoting_ignoring_ampersands_when_they_are_part_of_an_entityz[TestEntitySubstitution.test_xml_quoting_ignoring_ampersands_when_they_are_part_of_an_entityv  s6   € àŒH×7Ò7¸ÑFÔFØ ò!ð !ð !ð !ð !ð !r   c                 óJ   — d}| j                              |¦  «        |k    sJ ‚dS )z:There's no need to do this except inside attribute values.zBob's "bar"NrŸ   )r   Útexts     r   Ú test_quotes_not_html_substitutedz7TestEntitySubstitution.test_quotes_not_html_substituted|  s.   € àˆØŒx×'Ò'¨Ñ-Ô-°Ò5Ð5Ð5Ð5Ð5Ð5r   zmarkup, old))z	foo & barzfoo &amp; bar)zfoo&zfoo&amp;)z
foo&&& barzfoo&amp;&amp;&amp; bar)zx=1&y=2zx=1&amp;y=2)z&123z&amp;123)z&abcz&amp;abc)z
foo &0 barzfoo &amp;0 bar)zfoo &lolwat barzfoo &amp;lolwat barc                 ó†   — | j                              |¦  «        |k    sJ ‚| j                              |¦  «        |k    sJ ‚d S rO   ©r›   r    Úsubstitute_html5_raw)r   r   Úolds      r   Ú'test_unambiguous_ampersands_not_escapedz>TestEntitySubstitution.test_unambiguous_ampersands_not_escaped�  sL   € ð Œx×'Ò'¨Ñ/Ô/°3Ò6Ð6Ð6Ð6ØŒx×,Ò,¨VÑ4Ô4¸Ò>Ð>Ð>Ð>Ð>Ð>r   zmarkup,html,html5,html5raw))ú&divide;ú&amp;divide;rÖ   rÕ   )z
&nonesuch;ú&amp;nonesuch;r×   r×   )z&#247;ú
&amp;#247;rØ   rØ   )z&#xa1;ú
&amp;#xa1;rÙ   rÙ   c                 óÆ   — | j                              |¦  «        |k    sJ ‚| j                              |¦  «        |k    sJ ‚| j                              |¦  «        |k    sJ ‚d S rO   )r›   r    Úsubstitute_html5rÒ   )r   r   r   Úhtml5Úhtml5raws        r   Ú'test_when_entity_ampersands_are_escapedz>TestEntitySubstitution.test_when_entity_ampersands_are_escaped’  sm   € ð, Œx×'Ò'¨Ñ/Ô/°4Ò7Ð7Ð7Ð7ØŒx×(Ò(¨Ñ0Ô0°EÒ9Ð9Ð9Ð9ØŒx×,Ò,¨VÑ4Ô4¸Ò@Ð@Ð@Ð@Ð@Ð@r   zmarkup,expect)z&nosuchentity;z&amp;nosuchentity;c                 ó†   — | j                              |¦  «        |k    sJ ‚| j                              |¦  «        |k    sJ ‚d S rO   rÑ   )r   r   Úexpects      r   Ú!test_ambiguous_ampersands_escapedz8TestEntitySubstitution.test_ambiguous_ampersands_escaped¬  sL   € ð Œx×'Ò'¨Ñ/Ô/°6Ò9Ð9Ð9Ð9ØŒx×,Ò,¨VÑ4Ô4¸Ò>Ð>Ð>Ð>Ð>Ð>r   N)r8   r9   r:   r;   r�   r<   r=   r>   r£   r®   r°   r·   rº   r¼   r¿   rÂ   rÄ   rÆ   rÉ   rÌ   rÏ   rÔ   rÞ   rá   r?   r   r   r™   r™     sö  € € € € € Ø;Ð;ð&ð &ð &ð „[×ÒØð Sð Cð	
ñ
ô 
ðAð Añ
ô 
ðAðBð Bð Bð4
8ð 
8ð 
8ð6ð 6ð 6ðLð Lð LðMð Mð MðYð Yð Yð9ð 9ð 9ðGð Gð Gð=ð =ð =ðOð Oð Oð
ð 
ð 
ð6ð 6ð 6ð
 „[×ÒØð		
ð 		
ð 		
ñô ð?ð ?ñô ð?ð „[×ÒØ$ð	
ð 	
ð 	
ñô ðAð Añô ðAð" „[×ÒØÐBÐCñô ð?ð ?ñô ð?ð ?ð ?r   r™   )r<   rT   rs   rR   r   Ú
bs4.dammitr   r   r   Úobjectr   rA   r™   r?   r   r   ú<module>rä      s  ðà €€€Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ðD0ð D0ð D0ð D0ð D0˜ñ D0ô D0ð D0ðNCHð CHð CHð CHð CH˜6ñ CHô CHð CHðLV?ð V?ð V?ð V?ð V?˜Vñ V?ô V?ð V?ð V?ð V?r   