+
    ` ÀjB¿  ã                  ó¸	  € R t ^ RIHt ^ RIt^ RIHt ^RIHt ^RIHt	 ^RIH
t ^RIHt ^ RIt^ RIHtHtHtHtHt ^ R	IHt ^ R
IHt ^ RIt]P2                  ! 4       t]P6                  ! 4       tRtRt0 Rƒmt0 R„mt 0 R…mt!0 R†mt"0 R‡mt#]] ,          ]!,          ]",          ]#,          t$Rt%R]% R2t&Rt'R]& R]' R2t(R]& R2t)R]& R]% R2t*R]) R]) R2t+R]( R]( R2t,R]% R]% R]+ R 2t-R]( R!]( R"]- R#]( R$]( R%2t.R&]+ 2t/R']+ 2t0R(]+ R)]+ R*2t1R+]( R,]+ R-]+ R]. ]( R.2
t2R/]+ R0]( R12t3R/]+ R0]( R22t4R3]+ R2t5R4t6]( R52t7R6]3 2t8R7]+ 2t9R8]4 R9], R:]( R;]' R%]& ]( R<]' R%]& ]( R=2t:R>]4 R?], R@]( RA2t;]4 RB]- R]( RC]( R%]- RD]( R52t<]4 RE]( R52t=]' RF]& RG]( RH]( R%2t>]4 RB]- R]( RC]( R%]- RD]( R52t?]P€                  ! RI]( RJ2]P‚                  4      tB]P€                  ! RI]& RK]% RL2]P‚                  4      tC]P€                  ! RM]( RN]( RO2]P‚                  4      tD]P€                  ! RP]- RQ]( RC]( RR2]PŠ                  4      tF]P€                  ! ]&4      tG]P€                  ! RS]( R%24      tH]P€                  ! RT]' RU24      tI]P€                  ! RS]5 RV2]PŠ                  4      tJ]P€                  ! ]4]P‚                  ]PŠ                  ,          ]P–                  ,          4      tL]P€                  ! ]3]PŠ                  ]P‚                  ,          ]P–                  ,          4      tMRˆtNRWtORXtP^tQ^tR^tS^tT^tU^ tV^@tW^€tXRYtYRZtZR[t[R\t\]! ]\R]7      R‰R^ R_ ll4       t]R` Ra lt^Rb Rc lt_Rd Re lt`Rf Rg lta ! Rh Ri4      tb ! Rj Rk]b4      tc ! Rl Rm4      td] ! Rn Ro4      4       te ! Rp Rq]]f]e]PÎ                  ,          3,          4      th]e! Rr]Q]U,          4      ti]e! Rs]Q]U,          4      tj]e! Rt]Q]U,          ]T,          4      tk]e! Ru]Q]U,          ]V,          4      tl]e! Rv]Q]U,          4      tm]e! Rw]Q]U,          4      tn]e! Rx]Q]U,          4      to]e! Ry]Q]U,          4      tp]e! Rz]Q]U,          ]Z,          4      tq]e! R{]Q]U,          4      tr]e! R|]Q]U,          4      ts]e! R}]Q]U,          ]X,          4      tt]e! R}]Q]U,          ]Y,          4      tu]e! R~]Q]U,          4      tv]e! R]Q]U,          4      tw]e! R€]Q4      tx ! R� R‚4      tyR# )ŠzCSS selector parser.)ÚannotationsN)Ú	lru_cache)Úutil)Ú	css_match)Ú	css_types)ÚSelectorSyntaxError)ÚMatchÚAnyÚIteratorÚIterableÚcast)Ú	dataclass)ÚUserDictiýÿ  i    z(?:\r\n|(?!\r\n)[\n\f\r])z	(?:[ \t]|Ú)z(?:/\*(?:[^*]|\*(?!/))*\*/)z(?:Ú|z(?:\\(?:[a-f0-9]{1,6}z?|[^\r\n\f]|$))z?|z|[^\r\n\f]|$))z;
(?:(?:--|-?(?:[^\x00-\x2f\x30-\x40\x5B-\x5E\x60\x7B-\x9f]|z:))
(?:[^\x00-\x2c\x2e\x2f\x3A-\x40\x5B-\x5E\x60\x7B-\x9f]|z)*)
z[-+]?(?:[0-9]+n?|n)(?:(?<=n)z*[-+]z	*[0-9]+)?z
(?:"(?:\\(?:z&|[^\r\n\f])|[^\\"\r\n\f])*"|
'(?:\\(?:z|[^\r\n\f])|[^\\'\r\n\f])*'|
z)
z*(?P<cmp>[!~^|*$]?=)z*(?P<value>z)(?:z*(?P<case>[is]))?)?Ú*z\#z\.z(?P<tag_ns>(?:z|\*)?\|)?(?P<tag_name>z|\*)z\[z*(?P<attr_ns>(?:z|\*)?\|(?!=))?(?P<attr_name>z*\]z
(?P<name>:z)(?P<open>\(z*)?z*)z(?P<name>:(?=--)Ú&z*\)Ú:z@Pz
(?P<pseudo_nth_child>z
(?P<nth_child>z|even|odd))(?:z*\)|(?P<of>z*ofz*))
z
(?P<pseudo_nth_type>z
(?P<nth_type>z|even|odd))z*\)
z(?P<values>z*,z)*)z(?P<dir>ltr|rtl)z*(?=z|[,+>~])z*(?P<relation>[,+>~])?z(?:(\\[a-f0-9]{1,6}z?)|(\\[^\r\n\f])|(\\$))z?)|(\\[^\r\n\f])|(\\$)|(\\z))z'(?P<s1>[-+])?(?P<a>[0-9]+n?|n)(?:(?<=n)z*(?P<s2>[-+])z*(?P<b>[0-9]+))?z(?:(?P<value>z)|(?P<split>z*))Ú^z$^(?:[ \t]|(?:\n\r|(?!\n\r)[\n\f\r])|z)*Ú$Ú,Ú é   i   i   iô  )Úmaxsizec               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )é   ÚpatternÚstrÚ
namespaceszct.Namespaces | NoneÚcustomúct.CustomSelectors | NoneÚignoreztuple[str] | NoneÚflagsÚintÚreturnzcm.SoupSieve© )Úformats   "Úh/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.14/site-packages/soupsieve/css_parser.pyÚ__annotate__r(   Ý   sD   € ÷ ñ Øðà$ðð &ðð ð	ð
 ðð ñó    c           
     ó‚   € \        V4      p\        P                  ! V \        V VVVR7      P	                  4       VVV4      # )zCached CSS compile.)r   r!   r"   )Úprocess_customÚcmÚ	SoupSieveÚ	CSSParserÚprocess_selectors)r   r   r   r!   r"   Úcustom_selectorss   &&&&& r'   Ú_cached_css_compiler1   Ü   sK   € ô & fÓ-ÐÜ�<Š<ØÜØØ#ØØô		
÷
 Ñ
Ó
ØØØóð r)   c               ó   € V ^8„  d   QhRR/# )r   r$   ÚNoner%   )r&   s   "r'   r(   r(   õ   s   € ÷ &ñ &�dñ &r)   c                 ó.   € \         P                  4        R# )zPurge the cache.N)r1   Úcache_clearr%   r)   r'   Ú_purge_cacher6   õ   s   € ô ×#Ñ#Ö%r)   c               ó    € V ^8„  d   QhRRRR/# )r   r   r    r$   z dict[str, str | ct.SelectorList]r%   )r&   s   "r'   r(   r(   û   s   € ÷ ñ Ð4ð Ð9Yñ r)   c                ó   € / pV ex   V P                  4        Fc  w  r#\        P                  ! V4      p\        P	                  V4      f   \        RV R24      hWA9   d   \        RV R24      hW1\        V4      &   Ke  	  V# )zProcess custom.z
The name 'z)' is not a valid custom pseudo-class namezThe custom selector 'z' has already been registered)Úitemsr   ÚlowerÚ	RE_CUSTOMÚmatchr   ÚKeyErrorÚcss_unescape)r   r0   ÚkeyÚvalueÚnames   &    r'   r+   r+   û   s„   € ð ÐØÒØ Ÿ,™,ž.‰JˆCÜ—:’:˜c“?ˆDÜ�‰˜tÓ$Ò,Ü)¨J°t°fÐ<eÐ*fÓgÐgØÔ'ÜÐ!6°t°fÐ<YÐZÓ[Ð[Ø38œ\¨$Ó/Ó0ñ )ð Ðr)   c               ó    € V ^8„  d   QhRRRR/# )r   Úcontentr   r$   r%   )r&   s   "r'   r(   r(   
  s   € ÷ ñ ˜#ð  #ñ r)   c                ó¢   € R R lpV P                  \        4      pV'       d   \        M\        P	                  TV'       d
   V ^R 4      # T 4      # )zg
Unescape CSS value.

Strings allow for spanning the value on multiple strings by escaping a new line.
c               ó    € V ^8„  d   QhRRRR/# )r   Úmú
Match[str]r$   r   r%   )r&   s   "r'   r(   Ú"css_unescape.<locals>.__annotate__  s   € ÷ ñ �:ð  #ñ r)   c                óH  € V P                  ^4      '       d=   \        V P                  ^4      R,          ^4      pV^ 8X  d   \        p\        V4      pV# V P                  ^4      '       d   V P                  ^4      R,          pV# V P                  ^4      '       d   RpV# RpV# )z(Replace with the appropriate substitute.ºé   NNõ   ï¿½Ú )Úgroupr#   ÚUNICODE_REPLACEMENT_CHARÚchr)rF   Ú	codepointr@   s   &  r'   ÚreplaceÚcss_unescape.<locals>.replace  s“   € ð �7‰7�1�:Š:Ü˜AŸG™G A›J r�N¨BÓ/ˆIØ˜AŒ~Ü4�	Ü˜	“NˆEð ˆð �W‰W�Q�ZŠZØ—G‘G˜A“J˜r•NˆEð ˆð �W‰W�Q�ZŠZØˆEð ˆð ˆEàˆr)   éÿÿÿÿ)Ú
startswithÚQUOTEDÚRE_CSS_STR_ESCÚ
RE_CSS_ESCÚsub)rC   rR   Úquoteds   &  r'   r>   r>   
  sK   € õð" ×Ñ¤Ó'€Fß$�N¬*×9Ñ9Øßˆ��"ˆóð à%,óð r)   c               ó    € V ^8„  d   QhRRRR/# )r   Úidentr   r$   r%   )r&   s   "r'   r(   r(   )  s   € ÷ ñ �#ð ˜#ñ r)   c                ó  € . p\        V 4      pV^ 8„  ;'       d    V ^ ,          R8H  pV^8X  d   V'       d   VP                  RV  24       EM&\        V 4       EF  w  rE\        V4      pV^ 8X  d   VP                  R4       K+  ^Tu;8:  d   ^8:  g
   M V^8X  d   VP                  RVR R24       K[  V^ 8X  g   V'       d2   V^8X  d+   ^0Tu;8:  d   ^98:  d   M MVP                  RVR R24       K›  VR9   gM   V^€8¼  gF   ^0Tu;8:  d   ^98:  g7   M ^0Tu;8:  d   ^98:  g&   M ^ATu;8:  d   ^Z8:  g   M ^aTu;8:  d   ^z8:  d   M MVP                  V4       EK  VP                  RV 24       EK  	  RP	                  V4      # )zEscape identifier.Ú-Ú\rL   Úxr   rM   )é-   é_   )ÚlenÚappendÚ	enumerateÚordÚjoin)r\   ÚstringÚlengthÚ
start_dashÚindexÚcrQ   s   &      r'   Úescaperm   )  sC  € ð €FÜ�‹Z€FØ˜!‘×/Ð/  a¥¨C¡€JØ�„{—zà�‰˜˜5˜'�lÖ#ä! %×(‰HˆEÜ˜A›ˆIØ˜DÔ Ø—‘˜hÖ'Ø˜)Ö+ tÖ+°	¸TÔ0AØ—‘  9¨Q -¨qÐ1Ö2Ø˜1”*§°¸´
À$È)ÖB[ÐW[×B[Ø—‘  9¨Q -¨qÐ1Ö2à˜\Ô)¨Y¸$Ô->À4È9ÖC\ÐX\ÖC\Ø˜Ö* dÖ*°¸	Ö0IÀTÖ0IÈtÐW`ÖOhÐdh×Ohà—‘˜a× à—‘  1 #˜h×'ñ )ð �7‰7�6‹?Ðr)   c                  óT   € ] tR tRtRtR R lt]R R l4       tR R ltR	 R
 lt	Rt
R# )ÚSelectorPatterniE  úSelector pattern.c               ó$   € V ^8„  d   QhRRRRRR/# )r   rA   r   r   r$   r3   r%   )r&   s   "r'   r(   ÚSelectorPattern.__annotate__H  s!   € ÷ 8ñ 8˜Sð 8¨3ð 8°4ñ 8r)   c                ó,   € Wn         W n        RV n        R# ©úInitialize.N)rA   r   Ú_re_pattern)ÚselfrA   r   s   &&&r'   Ú__init__ÚSelectorPattern.__init__H  s   € ð Œ	ØŒØ37ˆÖr)   c               ó   € V ^8„  d   QhRR/# )r   r$   zre.Pattern[str]r%   )r&   s   "r'   r(   rr   P  s   € ÷  ñ  ˜Oñ  r)   c                ó\  € \         ;_uu_ 4        V P                  f_   \        P                  ! V P                  \        P
                  \        P                  ,          \        P                  ,          4      V n        RRR4       V P                  #   + '       g   i     T P                  # ; i)z1Retrieve the compiled regular expression pattern.N)ÚRE_LOCKrv   ÚreÚcompiler   ÚIÚXÚU©rw   s   &r'   Ú
re_patternÚSelectorPattern.re_patternO  sj   € ÷ ŽWØ×ÑÒ'Ü#%§:¢:¨d¯l©l¼B¿D¹DÄ2Ç4Á4½KÌ"Ï$É$Õ<NÓ#O�Ô ÷ ð ×ÑÐ÷ ŽWð ×ÑÐús   �A-BÂB+	c               ó   € V ^8„  d   QhRR/# ©r   r$   r   r%   )r&   s   "r'   r(   rr   X  s   € ÷ ñ ˜#ñ r)   c                ó   € V P                   # )ú	Get name.)rA   r‚   s   &r'   Úget_nameÚSelectorPattern.get_nameX  s   € ð �y‰yÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r   Úselectorr   rk   r#   r"   r$   zMatch[str] | Noner%   )r&   s   "r'   r(   rr   ]  s)   € ÷ 6ñ 6˜cð 6¨#ð 6°cð 6Ð>Oñ 6r)   c                ó8   € V P                   P                  W4      # )úMatch the selector.)rƒ   r<   )rw   r�   rk   r"   s   &&&&r'   r<   ÚSelectorPattern.match]  s   € ð �‰×$Ñ$ XÓ5Ð5r)   )rv   rA   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rx   Úpropertyrƒ   r‰   r<   Ú__static_attributes__r%   r)   r'   ro   ro   E  s-   † Ùõ8ð ô ó ð õ÷
6ñ 6r)   ro   c                  ó>   € ] tR tRtRtR R ltR R ltR R ltR	tR
# )ÚSpecialPseudoPatternic  rp   c               ó    € V ^8„  d   QhRRRR/# )r   ÚpatternszCtuple[tuple[str, tuple[str, ...], str, type[SelectorPattern]], ...]r$   r3   r%   )r&   s   "r'   r(   Ú!SpecialPseudoPattern.__annotate__f  s   € ÷ 
!ñ 
!Ð!dð 
!Ðimñ 
!r)   c                ó®   € / V n         V F@  pV^ ,          pV^,          ! W2^,          4      pV^,           F  pW@P                   V&   K  	  KB  	  RV n        R# rt   )r›   Úmatched_name)rw   r›   ÚprA   r   Úpseudos   &&    r'   rx   ÚSpecialPseudoPattern.__init__f  sV   € ð ˆŒÛˆAØ�Q•4ˆDØ˜–d˜4 1¥Ó&ˆGØ˜AŸ$˜$�Ø(/—‘˜fÓ%ó ñ ð !ˆÖr)   c               ó   € V ^8„  d   QhRR/# r†   r%   )r&   s   "r'   r(   rœ   r  s   € ÷ Qñ Q˜#ñ Qr)   c                óV   € V P                   f   R# V P                   P                  4       # )rˆ   rM   )rž   r‰   r‚   s   &r'   r‰   ÚSpecialPseudoPattern.get_namer  s)   € ð ×&Ñ&Ò.ˆrÐP°D×4EÑ4E×4NÑ4NÓ4PÐPr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# rŒ   r%   )r&   s   "r'   r(   rœ   w  s)   € ÷ ñ ˜cð ¨#ð °cð Ð>Oñ r)   c                ó&  € Rp\         P                  W4      pV'       dr   \        P                  ! \	        VP                  R4      4      4      pV P                  P                  V4      pV'       d!   VP                  WV4      pV'       d   Wpn        V# )r�   NrA   )	ÚRE_PSEUDO_CLASS_SPECIALr<   r   r:   r>   rN   r›   Úgetrž   )rw   r�   rk   r"   r    rF   rA   r   s   &&&&    r'   r<   ÚSpecialPseudoPattern.matchw  sl   € ð ˆÜ#×)Ñ)¨(Ó:ˆßÜ—:’:œl¨1¯7©7°6«?Ó;Ó<ˆDØ—m‘m×'Ñ'¨Ó-ˆGßØ Ÿ™ x¸Ó>�ßØ(/Ô%àˆr)   )rž   r›   N)	r‘   r’   r“   r”   r•   rx   r‰   r<   r—   r%   r)   r'   r™   r™   c  s   † Ùõ
!õQ÷
ñ r)   r™   c                  óN   € ] tR tRtRtR R ltR R ltR R ltR	 R
 lt]t	Rt
R# )Ú	_Selectori‡  zé
Intermediate selector class.

This stores selector data for a compound selector as we are acquiring them.
Once we are done collecting the data for a compound selector, we freeze
the data in an object that can be pickled and hashed.
c               ó    € V ^8„  d   QhRRRR/# )r   Úkwargsr	   r$   r3   r%   )r&   s   "r'   r(   Ú_Selector.__annotate__�  s   € ÷ 6ñ 6 ð 6¨ñ 6r)   c                ó.  € VP                  RR4      V n        VP                  R. 4      V n        VP                  R. 4      V n        VP                  R. 4      V n        VP                  R. 4      V n        VP                  R. 4      V n        VP                  R. 4      V n        VP                  R	R4      V n        VP                  R
. 4      V n	        VP                  R. 4      V n
        VP                  R^ 4      V n        VP                  RR4      V n        R# )ru   ÚtagNÚidsÚclassesÚ
attributesÚnthÚ	selectorsÚ	relationsÚrel_typeÚcontainsÚlangr"   Úno_matchF)r¨   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   r"   rº   )rw   r­   s   &,r'   rx   Ú_Selector.__init__�  sÜ   € ð —:‘:˜e TÓ*ˆŒØ—:‘:˜e RÓ(ˆŒØ—z‘z )¨RÓ0ˆŒØ Ÿ*™* \°2Ó6ˆŒØ—:‘:˜e RÓ(ˆŒØŸ™ K°Ó4ˆŒØŸ™ K°Ó4ˆŒØŸ
™
 :¨tÓ4ˆŒØŸ
™
 :¨rÓ2ˆŒØ—J‘J˜v rÓ*ˆŒ	Ø—Z‘Z ¨Ó+ˆŒ
ØŸ
™
 :¨uÓ5ˆŽr)   c               ó    € V ^8„  d   QhRRRR/# )r   r¶   úlist[_Selector]r$   úct.SelectorListr%   )r&   s   "r'   r(   r®      s   € ÷ %ñ %¨?ð %¸ñ %r)   c                óÜ   € V'       dQ   V^ ,          pVP                   P                  VR,          4       \        P                  ! VP	                  4       .4      # \        P                  ! 4       # )zFreeze relation.rJ   )r¶   ÚextendÚctÚSelectorListÚfreeze)rw   r¶   Úsels   && r'   Ú_freeze_relationsÚ_Selector._freeze_relations   sJ   € ÷ Ø˜A•,ˆCØ�M‰M× Ñ  ¨2¥Ô/Ü—?’? C§J¡J£L >Ó2Ð2ä—?’?Ó$Ð$r)   c               ó   € V ^8„  d   QhRR/# )r   r$   zct.Selector | ct.SelectorNullr%   )r&   s   "r'   r(   r®   ª  s   € ÷ ñ Ð5ñ r)   c                óþ  € V P                   '       d   \        P                  # \        P                  ! V P                  \        V P                  4      \        V P                  4      \        V P                  4      \        V P                  4      \        V P                  4      V P                  V P                  4      V P                  \        V P                  4      \        V P                  4      V P                   4      # )zFreeze self.)rº   rÁ   ÚNullÚSelectorr°   Útupler±   r²   r³   r´   rµ   rÅ   r¶   r·   r¸   r¹   r"   r‚   s   &r'   rÃ   Ú_Selector.freezeª  s    € ð �=�=ˆ=Ü—7‘7ˆNä—;’;Ø—‘Ü�d—h‘h“Ü�d—l‘lÓ#Ü�d—o‘oÓ&Ü�d—h‘h“Ü�d—n‘nÓ%Ø×&Ñ& t§~¡~Ó6Ø—‘Ü�d—m‘mÓ$Ü�d—i‘iÓ Ø—
‘
óð r)   c               ó   € V ^8„  d   QhRR/# r†   r%   )r&   s   "r'   r(   r®   ¾  s   € ÷ 
ñ 
˜ñ 
r)   c                óX  € RV P                   : RV P                  : RV P                  : RV P                  : RV P                  : RV P
                  : RV P                  : RV P                  : R	V P                  : R
V P                  : RV P                  : RV P                  : R2# )zString representation.z_Selector(tag=z, ids=z
, classes=z, attributes=z, nth=z, selectors=z, relations=z, rel_type=z, contains=z, lang=z, flags=z, no_match=r   )r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   r"   rº   r‚   s   &r'   Ú__str__Ú_Selector.__str__¾  s¨   € ð ˜TŸX™X™L¨¨t¯x©x©l¸*ÀTÇ\Á\ÑDTÐTaÐbf×bqÑbqÑatð uØ—8‘8‘,˜l¨4¯>©>Ñ*<¸LÈÏÉÑHZð [ØŸ™Ñ(¨°D·M±MÑ3DÀGÈDÏIÉIÉ=ÐX`Ðae×akÑakÑ`nð oØŸ™Ñ(¨ð+ð	
r)   )r³   r²   r¸   r"   r±   r¹   rº   r´   r·   r¶   rµ   r°   N)r‘   r’   r“   r”   r•   rx   rÅ   rÃ   rÏ   Ú__repr__r—   r%   r)   r'   r«   r«   ‡  s"   † ñõ6õ %õõ(
ð „Hr)   r«   c                  ó0   € ] tR tRt$ RtR]R&   R]R&   RtR# )	Ú
CSSPatterniË  z<A CSS pattern that hasn't been processed by `CSSParser` yet.r   r�   r#   r"   r%   N)r‘   r’   r“   r”   r•   Ú__annotations__r—   r%   r)   r'   rÓ   rÓ   Ë  s   ‡ áFàƒMØ‡Jr)   rÓ   c                  ó2   € ] tR tRtRtR R ltR R ltRtR# )	ÚPseudoSelectorMapiÓ  zPseudo selector map.c               ó$   € V ^8„  d   QhRRRRRR/# )r   r?   r   r@   zCSSPattern | ct.SelectorListr$   r3   r%   )r&   s   "r'   r(   ÚPseudoSelectorMap.__annotate__Ö  s"   € ÷ ñ ˜sð Ð+Gð ÈDñ r)   c                ó"   € W P                   V&   R# )z	Set item.N)Údata©rw   r?   r@   s   &&&r'   Ú__setitem__ÚPseudoSelectorMap.__setitem__Ö  s   € ð �	‰	�#‹r)   c               ó    € V ^8„  d   QhRRRR/# )r   r?   r   r$   r¾   r%   )r&   s   "r'   r(   rØ   Û  s   € ÷ 	ñ 	˜sð 	 ñ 	r)   c                ó(  € \         ;_uu_ 4        V P                  V,          p\        V\        4      '       d>   \	        VP
                  4      P                  VP                  R7      pW P                  V&   RRR4       V#   + '       g   i     X# ; i)z	Get item.©r"   N)ÚSEL_LOCKrÚ   Ú
isinstancerÓ   r.   r�   r/   r"   rÛ   s   && r'   Ú__getitem__ÚPseudoSelectorMap.__getitem__Û  si   € ÷ ŽXØ—I‘I˜c•NˆEÜ˜%¤×,Ò,Ü! %§.¡.Ó1×CÑCÈ%Ï+É+ÐCÓV�Ø!&—	‘	˜#‘÷	 ð ˆ÷ ŽXð ˆús   �A'B Â B	r%   N)r‘   r’   r“   r”   r•   rÜ   rã   r—   r%   r)   r'   rÖ   rÖ   Ó  s   † Ùõ÷
	ñ 	r)   rÖ   zhtml|*:is(a, area)[href]z\
    html|*:is(input[type=checkbox], input[type=radio])[checked], html|option[selected]
    z°
    :checked,

    /*
    This pattern must be at the end.
    Special logic is applied to the last selector.
    */
    html|form html|*:is(button, input)[type="submit"]
    aF  
    html|input[type="checkbox"][indeterminate],
    html|input[type="radio"]:is(:not([name]), [name=""]):not([checked]),
    html|progress:not([value]),

    /*
    This pattern must be at the end.
    Special logic is applied to the last selector.
    */
    html|input[type="radio"][name]:not([name='']):not([checked])
    aš  
    html|*:is(input:not([type=hidden]), button, select, textarea, fieldset, optgroup, option, fieldset)[disabled],
    html|optgroup[disabled] > html|option,
    html|fieldset[disabled] > html|*:is(input:not([type=hidden]), button, select, textarea, fieldset),
    html|fieldset[disabled] >
        html|*:not(legend:nth-of-type(1)) html|*:is(input:not([type=hidden]), button, select, textarea, fieldset)
    z|
    html|*:is(input:not([type=hidden]), button, select, textarea, fieldset, optgroup, option, fieldset):not(:disabled)
    z,html|*:is(input, textarea, select)[required]z2html|*:is(input, textarea, select):not([required])aW  
    html|input:is(
        :not([type]),
        [type=""],
        [type=text],
        [type=search],
        [type=url],
        [type=tel],
        [type=email],
        [type=password],
        [type=number]
    )[placeholder]:not([placeholder='']):is(:not([value]), [value=""]),
    html|textarea[placeholder]:not([placeholder=''])
    a  
    html|*:is(
        textarea,
        input:is(
            :not([type]),
            [type=""],
            [type=text],
            [type=search],
            [type=url],
            [type=tel],
            [type=email],
            [type=number],
            [type=password],
            [type=date],
            [type=datetime-local],
            [type=month],
            [type=time],
            [type=week]
        )
    ):not([readonly], :disabled),
    html|*:is([contenteditable=""], [contenteditable="true" i])
    zhtml|*:not(:read-write)zó
    html|input:is(
        [type="date"],
        [type="month"],
        [type="week"],
        [type="time"],
        [type="datetime-local"],
        [type="number"],
        [type="range"]
    ):is(
        [min],
        [max]
    )
    z html|*:is(details, dialog)[open]zhtml|*:is(video, audio)[muted]z*|*c                  ól  € ] tR tRtRt]! R]4      ]! RRK]]3RRL]	]3RRM]
]3RRN]]3RRO]]334      ]! R	]4      ]! R
]4      ]! R]4      ]! R]4      ]! R]4      ]! R]4      ]! R]4      ]! R]4      ]! R]4      ]! R]4      3t]! / R]bR]bR]bR]bR]bR]bR]bR]bR] bR]!bR]"bR]#bR]$bR ]%bR!]&bR"]'bR#](b4      t)R$R%R&R%R'^ /R( R) llt*RPR* R+ llt+R, R- lt,R. R/ lt-R0 R1 lt.R2 R3 lt/R4 R5 lt0R6 R7 lt1R8 R9 lt2R: R; lt3R< R= lt4R> R? lt5R@ RA lt6RB RC lt7RQRD RE llt8RF RG lt9RQRH RI llt:RJt;R%# )Rr.   i|  zParse CSS selectors.Úpseudo_closeÚpseudo_containsÚpseudo_nth_childÚpseudo_nth_typeÚpseudo_langÚ
pseudo_dirÚpseudo_class_customÚpseudo_classÚpseudo_elementÚampÚat_ruleÚidÚclassr°   Ú	attributeÚcombineú:linkú	:any-linkú:checkedú:defaultú:indeterminateú	:disabledú:enabledú	:requiredú:mutedú:openú	:optionalú
:read-onlyú:read-writeú	:in-rangeú:out-of-rangeú:placeholder-shownú
<nth-of-s>r   Nr!   r"   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r�   r   r   z'dict[str, str | ct.SelectorList] | Noner!   zIterable[str] | Noner"   r#   r$   r3   r%   )r&   s   "r'   r(   ÚCSSParser.__annotate__²  s<   € ÷ ñ àðð 8ð	ð
 %ðð ðð 
ñr)   c               óà   € VP                  RR4      V n        W@n        V P                  \        P                  ,          V n        Vf   / MTV n        \        Vf   . MT4      V n        ^ V n	        R# )ru   Ú rL   N)
rR   r   r"   r   ÚDEBUGÚdebugr   Ú	frozensetr!   Úcount)rw   r�   r   r!   r"   s   &&$$$r'   rx   ÚCSSParser.__init__²  sW   € ð  ×'Ñ'¨°Ó9ˆŒØŒ
Ø—Z‘Z¤$§*¡*Õ,ˆŒ
Ø"šN‘b°ˆŒÜ f¢n¡¸&ÓAˆŒØˆŽ
r)   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	incrementr#   r$   r3   r%   )r&   s   "r'   r(   r  Ã  s   € ÷ añ a¨ð a°Tñ ar)   c                ó†   € V ;P                   V,          un         V P                   \        8”  d   \        R\         24      hR# )z!Check the current selector count.z/Selector exceeds pseudo-class nesting limit of N)r  ÚSELECTOR_LIMITÚ
ValueError)rw   r  s   &&r'   Úincrement_countÚCSSParser.increment_countÃ  s7   € ð 	�
Š
�iÕ�
Ø�:‰:œÔ&ÜÐNÌ~ÐN^Ð_Ó`Ð`ñ 'r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r   rÄ   r«   rF   rG   Úhas_selectorÚboolr$   r%   )r&   s   "r'   r(   r  Ê  s0   € ÷ Fñ F¨Ið F¸*ð FÐTXð FÐ]añ Fr)   c                óˆ  € RpVP                  R4      pVP                  R4      '       d&   \        P                  ! VP                  R4      4      MRpVP                  R4      '       d   \        VP                  R4      RR 4      MRp\        VP                  R4      4      pRp	Rp
RpV'       d0   VR8X  d   \        P
                  M^ \        P                  ,          pMS\        P                  ! V4      R	8X  d)   \        P
                  \        P                  ,          pR
p	M\        P                  pV'       d   \        VP                  R4      4      pV'       g   RpEMVP                  R4      '       dA   V'       g   RM\        P                  ! V4      p\        P                  ! RV,          V4      pEM´VP                  R4      '       dA   V'       g   RM\        P                  ! V4      p\        P                  ! RV,          V4      pEM]VP                  R4      '       dA   V'       g   RM\        P                  ! V4      p\        P                  ! RV,          V4      pEMVP                  R4      '       d[   V'       d   \        P                  V4      '       d   RM\        P                  ! V4      p\        P                  ! RV,          V4      pM•VP                  R4      '       d4   \        P                  ! R\        P                  ! V4      ,          V4      pMK\        P                  ! R\        P                  ! V4      ,          V4      pVP                  R4      '       d   R
pV	'       d)   V'       d!   \        P                  ! VP                  4      p
\        P                  ! W‡WÚ4      pV'       dl   \        4       pVP                   P#                  V4       \        P$                  ! VP'                  4       .R
R4      pVP(                  P#                  V4       R
pV# VP                   P#                  V4       R
pV# )z8Create attribute selector from the returned regex match.FÚcmpÚcaseNÚattr_nsrM   Ú	attr_nameÚiÚtypeTr@   r   z(?!)z^%s.*r   z.*?%s$r   z.*?%s.*Ú~z7.*?(?:(?<=^)|(?<=[ \t\r\n\f]))%s(?=(?:[ \t\r\n\f]|$)).*r   z^%s(?:-.*)?$z^%s$Ú!rT   )rN   r   r:   r>   r}   r   ÚDOTALLrU   rm   r~   ÚRE_WSÚsearchr   rÁ   ÚSelectorAttributer«   r³   rd   rÂ   rÃ   rµ   )rw   rÄ   rF   r  ÚinverseÚopr  ÚnsÚattrÚis_typeÚpattern2r@   r"   r   Úsel_attrÚsub_selÚnot_lists   &&&&             r'   Úparse_attribute_selectorÚ"CSSParser.parse_attribute_selectorÊ  sç  € ð ˆØ�W‰W�U‹^ˆØ./¯g©g°f¯oªoŒt�zŠz˜!Ÿ'™' &›/Ô*À4ˆØ67·g±g¸i×6HÒ6HŒ\˜!Ÿ'™' )Ó,¨S¨bÐ1Ô2ÈbˆÜ˜AŸG™G KÓ0Ó1ˆØˆØˆØˆçØ! Sœ[”R—T’T¨a´2·9±9Õ<‰EÜ�ZŠZ˜Ó Ô'Ü—D‘Dœ2Ÿ9™9Õ$ˆEØ‰Gä—I‘IˆEçÜ  §¡¨Ó!1Ó2ˆEçàŠGØ�]‰]˜3×Ò÷ $)‘G¬b¯iªi¸Ó.>ˆEÜ—j’j ¨EÕ!1°5Ó9ŠGØ�]‰]˜3×Ò÷ $)‘G¬b¯iªi¸Ó.>ˆEÜ—j’j ¨UÕ!2°EÓ:ŠGØ�]‰]˜3×Ò÷ $)‘G¬b¯iªi¸Ó.>ˆEÜ—j’j ¨eÕ!3°UÓ;ŠGØ�]‰]˜3×Ò÷ $)¬E¯L©L¸×,?Ò,?‘GÄRÇYÂYÈuÓEUˆEÜ—j’jÐ![Ð^cÕ!cÐejÓk‰GØ�]‰]˜3×Òä—j’j ´2·9²9¸UÓ3CÕ!CÀUÓK‰Gô —j’j ¬2¯9ª9°UÓ+;Õ!;¸UÓCˆGØ�}‰}˜S×!Ò!à�ß—wÜ—z’z '§/¡/Ó2ˆHô ×'Ò'¨°'ÓDˆßä“kˆGØ×Ñ×%Ñ% hÔ/Ü—’¨¯©Ó(8Ð'9¸4ÀÓGˆHØ�M‰M× Ñ  Ô*ð ˆØÐð �N‰N×!Ñ! (Ô+àˆØÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r    s)   € ÷ ñ  Yð °:ð ÈTð ÐVZñ r)   c                óà   € VP                  R4      '       d   \        VP                  R4      RR 4      MRp\        VP                  R4      4      p\        P                  ! WT4      Vn        RpV# )z#Parse tag pattern from regex match.Útag_nsNÚtag_nameTrT   )rN   r>   rÁ   ÚSelectorTagr°   )rw   rÄ   rF   r  Úprefixr°   s   &&&&  r'   Úparse_tag_patternÚCSSParser.parse_tag_pattern  s]   € ð :;¿¹À×9JÒ9J”˜aŸg™g hÓ/°°Ð4Ô5ÐPTˆÜ˜1Ÿ7™7 :Ó.Ó/ˆÜ—.’. Ó-ˆŒØˆØÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r    s*   € ÷ ñ ¨Yð ¸:ð ÐUYð Ð^bñ r)   c                ó|  € \         P                  ! \        VP                  R4      4      4      pV P                  P                  V4      pVf<   \        RV RVP                  ^ 4       2V P                  VP                  ^ 4      4      h\        V\        P                  4      '       g\   V P                  V \        WPP                  V P                  V P                  R7      P                  \         R7      pWPP                  V&   V P#                  VP$                  4       VP&                  P)                  V4       RpV# )z´
Parse custom pseudo class alias.

Compile custom selectors as we need them. When compiling a custom selector,
set it to `None` in the dictionary so we can avoid an infinite loop.
rA   zUndefined custom selector 'z' found at position )r   r"   r!   rà   T)r   r:   r>   rN   r   r¨   r   Úendr   râ   rÁ   rÂ   r.   r"   r!   r/   Ú
FLG_PSEUDOr  r  rµ   rd   )rw   rÄ   rF   r  r    r�   s   &&&&  r'   Úparse_pseudo_class_customÚ#CSSParser.parse_pseudo_class_custom  sú   € ô —’œL¨¯©°«Ó9Ó:ˆØ—;‘;—?‘? 6Ó*ˆØÒÜ%Ø-¨f¨XÐ5IÈ!Ï%É%ÐPQË(ÈÐTØ—‘Ø—‘�a“óð ô ˜(¤B§O¡O×4Ò4Ø—‘˜FÐ#Ü Ø§¡°D·J±JÀtÇ{Á{ôçÑ¤jÐÓ1ð ð #+�K‰K˜Ñà×Ñ˜XŸ^™^Ô,Ø�‰×Ñ˜XÔ&ØˆØÐr)   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r   rÄ   r«   rF   rG   r  r  Ú	iselectorú Iterator[tuple[str, Match[str]]]Úis_htmlr$   ztuple[bool, bool]r%   )r&   s   "r'   r(   r  8  sN   € ÷ J%ñ J%àðJ%ð ðJ%ð ð	J%ð
 4ðJ%ð ðJ%ð 
ñJ%r)   c                ó|	  € Rp\         P                  ! \        VP                  R4      4      4      pVP                  R4      '       d   RpV'       d1   V\        9   d&   V P                  WW4VP                  ^ 4      4      pW53# V'       Egg   V\        9   Ed[   VR8X  d*   V;P                  \        P                  ,          un        EM%VR8X  d,   V;P                  \        P                  ,          un        RpEMóVR8X  d*   V;P                  \        P                  ,          un        EMÃVR8X  d*   V;P                  \        P                  ,          un        EM“WpP                  9   dL   V P                  V,          pV P                  VP                   4       VP"                  P%                  V4       EM8VR	8X  dJ   VP&                  P%                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      4       EMèVR
8X  dJ   VP&                  P%                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      4       EM˜VR8X  dJ   VP&                  P%                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      4       EMHVR8X  dI   VP&                  P%                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      4       MùVR8X  dw   VP&                  P-                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      \        P(                  ! ^ R^RR\        P*                  ! 4       4      .4       M|VR8X  dv   VP&                  P-                  \        P(                  ! ^ R^RR\        P*                  ! 4       4      \        P(                  ! ^ R^RR\        P*                  ! 4       4      .4       RpW53# V'       dH   V\.        9   d=   V P1                  WBP                  ^ 4      \2        \4        ,          4       RVn        RpW53# V'       g   V\8        9   d   RVn        RpW53# V\:        9   d+   \=        RV R2V P>                  VPA                  ^ 4      4      h\=        RV R2V P>                  VPA                  ^ 4      4      h)zParse pseudo class.FrA   ÚopenTú:rootú:definedú:scopeú:emptyú:first-childú:last-childú:first-of-typeú:last-of-typeú:only-childú:only-of-typez!Invalid syntax for pseudo class 'Ú'z¢' was detected as a pseudo-class and is either unsupported or invalid. If the syntax was not intended to be recognized as a pseudo-class, please escape the colon.)!r   r:   r>   rN   ÚPSEUDO_COMPLEXÚparse_pseudo_openr<  ÚPSEUDO_SIMPLEr"   rÁ   ÚSEL_ROOTÚSEL_DEFINEDÚ	SEL_SCOPEÚ	SEL_EMPTYÚPSEUDO_SELECTORSr  r  rµ   rd   r´   ÚSelectorNthrÂ   rÀ   ÚPSEUDO_COMPLEX_NO_MATCHÚparse_selectorsr=  ÚFLG_OPENrº   ÚPSEUDO_SIMPLE_NO_MATCHÚPSEUDO_SUPPORTEDr   r   Ústart)	rw   rÄ   rF   r  rA  rC  Úcomplex_pseudor    Úpseudo_selectors	   &&&&&&   r'   Úparse_pseudo_classÚCSSParser.parse_pseudo_class8  s…  € ð ˆÜ—’œL¨¯©°«Ó9Ó:ˆØ�7‰7�6�?Š?Ø!ˆNß˜f¬Ô6Ø×1Ñ1°#¸|ÐXY×X]ÑX]Ð^_ÓX`ÓaˆLðv Ð$Ð$÷u  � F¬mÕ$;Ø˜Ô Ø—	’	œRŸ[™[Õ(—	Ø˜:Ô%Ø—	’	œRŸ^™^Õ+•	Ø’Ø˜8Ô#Ø—	’	œRŸ\™\Õ)—	Ø˜8Ô#Ø—	’	œRŸ\™\Õ)—	Ø×0Ñ0Ô0Ø"&×"7Ñ"7¸Õ"?�Ø×$Ñ$ _×%:Ñ%:Ô;Ø—‘×$Ñ$ _Ö5Ø˜>Ô)Ø—‘—‘œrŸ~š~¨a°¸¸5À%ÌÏÊÓIZÓ[Ö\Ø˜=Ô(Ø—‘—‘œrŸ~š~¨a°¸¸5À$ÌÏÊÓHYÓZÖ[ØÐ+Ô+Ø—‘—‘œrŸ~š~¨a°¸¸4ÀÌÏÊÓHYÓZÖ[Ø˜?Ô*Ø—‘—‘œrŸ~š~¨a°¸¸4ÀÄrÇÂÓGXÓYÕZØ˜=Ô(Ø—‘—‘äŸš q¨%°°E¸5Ä"Ç/Â/ÓBSÓTÜŸš q¨%°°E¸4ÄÇÂÓARÓSðõð ˜?Ô*Ø—‘—‘äŸš q¨%°°D¸%ÄÇÂÓARÓSÜŸš q¨%°°D¸$ÄÇÂÓ@QÓRðôð  ˆLð, Ð$Ð$÷+  Ô*AÔ AØ× Ñ  ¯E©E°!«H´jÄ8Õ6KÔLØˆCŒLØˆLð$ Ð$Ð$÷#   FÔ.DÔ$DØˆCŒLØˆLð Ð$Ð$ð Ô'Ô'Ü%Ø3°F°8¸1Ð=Ø—‘Ø—‘˜“
óð ô &Ø�F�8ð nð nà—‘Ø—‘˜“
ó	ð r)   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r   rÄ   r«   rF   rG   r  r  rA  rB  r$   r%   )r&   s   "r'   r(   r  „  sC   € ÷ Añ AàðAð ðAð ð	Að
 4ðAð 
ñAr)   c                ó  € VP                  4       pVP                  R4      '       d   RpMRp\        P                  ! \	        VR,          4      4      VR&   \        P                  ! VP                  RV,           4      4      pVR8X  d	   ^p^ p	Rp
EMZVR8X  d	   ^p^p	Rp
EMK\        \        \        ,          \        P                  V4      4      pVP                  R	4      '       d   VP                  R	4      R
8X  d   R
MRpRpVP                  R4      pVP                  R4      p
VP                  R4      '       d   VR,          pMV
'       d   WÎRR ,          pM
WÎ,           pRpVP                  R4      '       d   VP                  R4      R
8X  d   R
pVP                  R4      '       d   WÛP                  R4      ,          pV'       d   \        V^
4      M^ pV'       d   \        V^
4      M^ p	VR,          pVR8X  dó   VP                  R4      '       d2   V P                  WBP                  ^ 4      \         \"        ,          4      pM.V P$                  R,          pV P'                  VP(                  4       VR8X  d8   VP*                  P-                  \.        P0                  ! WŠV	RRV4      4       RpV# VR8X  d4   VP*                  P-                  \.        P0                  ! WŠV	RRV4      4       RpV# VR8X  dK   VP*                  P-                  \.        P0                  ! WŠV	RR\.        P2                  ! 4       4      4       RpV# VR8X  dG   VP*                  P-                  \.        P0                  ! WŠV	RR\.        P2                  ! 4       4      4       RpV# )zParse `nth` pseudo.rè   Ú_childÚ_typerA   r´   ÚevenTÚoddÚs1r^   rM   ÚaÚnÚ1NÚs2ÚbÚofr  ú
:nth-childFú:nth-last-childú:nth-of-typeú:nth-last-of-typerT   )Ú	groupdictr¨   r   r:   r>   r   r   r   ÚRE_NTHr<   rN   ÚendswithrU   r#   r[  r<  r=  r\  rX  r  r  r´   rd   rÁ   rY  rÂ   )rw   rÄ   rF   r  rA  ÚmdictÚpostfixrC   rj  rn  ÚvarÚ	nth_partsÚ_s1Ú_s2rk  Ú
pseudo_selÚnth_sels   &&&&&            r'   Úparse_pseudo_nthÚCSSParser.parse_pseudo_nth„  sÐ  € ð —‘“ˆØ�9‰9Ð'×(Ò(Ø‰GàˆGÜŸ
š
¤<°°fµÓ#>Ó?ˆˆf‰Ü—*’*˜UŸY™Y u¨w¥Ó7Ó8ˆØ�fÔàˆBØˆBØŠCØ˜ÔàˆBØˆBØŠCäœU¤3�Z¬¯©°gÓ)>Ó?ˆIØ"Ÿ™¨×.Ò.°9·?±?À4Ó3HÈCÔ3O‘#ÐUWˆCØˆCØ—‘ Ó$ˆAØ—*‘*˜S“/ˆCØ�|‰|˜C× Ò Ø�s•
‘ßØ˜˜"�v•‘à•g�Ø�Ø�‰˜t×$Ò$¨¯©¸Ó)>À#Ô)EØ�Ø�‰˜s×#Ò#Ø—‘ sÓ+Õ+�ß!$”�S˜"”¨!ˆBß!$”�S˜"”¨!ˆBà˜6•]ˆ
Ø�hÔØ�w‰w�t�}Š}à×.Ñ.¨y¿%¹%À»(ÄJÔQYÕDYÓZ‘ð ×/Ñ/°Õ=�Ø×$Ñ$ W§]¡]Ô3Ø˜\Ô)Ø—‘—‘œrŸ~š~¨b°r¸5À%ÈÓQÔRð ˆØÐð Ð0Ô0Ø—‘—‘œrŸ~š~¨b°r¸5À$ÈÓPÔQð ˆØÐð ˜^Ô+Ø—‘—‘œrŸ~š~¨b°r¸4ÀÌÏÊÓHYÓZÔ[ð ˆØÐð Ð2Ô2Ø—‘—‘œrŸ~š~¨b°r¸4ÀÄrÇÂÓGXÓYÔZØˆØÐr)   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r   rÄ   r«   rA   r   r  r  rA  rB  rk   r#   r$   r%   )r&   s   "r'   r(   r  Ç  sF   € ÷ ñ àðð ðð ð	ð
 4ðð ðð 
ñr)   c                óþ   € \         \        ,          pVR8X  d   V\        ,          pM)VR8X  d   V\        ,          pMVR9   d   V\        ,          pVP
                  P                  V P                  WEV4      4       RpV# )z"Parse pseudo with opening bracket.ú:notú:hasT)ú:whereú:is)r=  r\  ÚFLG_NOTÚFLG_RELATIVEÚFLG_FORGIVErµ   rd   r[  )rw   rÄ   rA   r  rA  rk   r"   s   &&&&&& r'   rR  ÚCSSParser.parse_pseudo_openÇ  sm   € ô œXÕ%ˆØ�6Œ>Ø”WÕ‰EØ�VŒ^Ø”\Õ!‰EØÐ&Ô&Ø”[Õ ˆEà�‰×Ñ˜T×1Ñ1°)ÀEÓJÔKØˆàÐr)   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r   rÄ   r«   rF   rG   r  r  rµ   r½   r·   r   rk   r#   r$   ztuple[bool, _Selector, str]r%   )r&   s   "r'   r(   r  Þ  sP   € ÷ /+ñ /+àð/+ð ð/+ð ð	/+ð
 #ð/+ð ð/+ð ð/+ð 
%ñ/+r)   c                ó,  € VP                  R4      pV'       g   \        pV\        8X  dv   V'       g   \        RV RV R2V P                  V4      hWQn        VR	,          P                  P                  V4       R\        ,           pVP                  \        4       4       MfV'       d*   WQn        VR	,          P                  P                  V4       M,VR,          \        8w  d   \        RV 2V P                  V4      hRV,           p\        4       pRpW1V3# )
úParse combinator tokens.ÚrelationúThe combinator 'ú' at position ú , must have a selector before itr   rJ   z%The multiple combinators at position FrT   )	rN   ÚWS_COMBINATORÚCOMMA_COMBINATORr   r   r·   r¶   rd   r«   )rw   rÄ   rF   r  rµ   r·   rk   Ú
combinators   &&&&&&& r'   Úparse_has_combinatorÚCSSParser.parse_has_combinatorÞ  sû   € ð —W‘W˜ZÓ(ˆ
ßÜ&ˆJØÔ)Ô)ßÜ)Ø& z l°.ÀÀÐGgÐhØ—L‘LØóð ð
 $ŒLØ�b�M×#Ñ#×*Ñ*¨3Ô/Øœ]Õ*ˆHØ×ÑœY›[Õ)çà'”Ø˜"•×'Ñ'×.Ñ.¨sÕ3Ø˜"•¤Ô.ô *Ø;¸E¸7ÐCØ—L‘LØóð ð ˜ZÕ'ˆHä‹kˆØˆØ (Ð*Ð*r)   c               ó<   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRR/	# )r   rÄ   r«   rF   rG   r  r  rµ   r½   r¶   Ú	is_pseudoÚ
is_forgiverk   r#   r$   ztuple[bool, _Selector]r%   )r&   s   "r'   r(   r    sd   € ÷ -!ñ -!àð-!ð ð-!ð ð	-!ð
 #ð-!ð #ð-!ð ð-!ð ð-!ð ð-!ð 
 ñ-!r)   c	                óZ  € VP                  R4      p	V	'       g   \        p	V'       gQ   V'       d   V	\        8w  d   \        RV	 RV R2V P                  V4      hV	\        8X  d   V P                  4        VR M¦V	\        8X  dg   VP                  '       g%   V'       g   \        P                  ! RR4      Vn        VP                  P                  V4       VP                  V4       VR M5VP                  P                  V4       W‘n        VR VP                  V4       \        4       pRpW13# )	rŽ  r�  r�  r‘  r’  ºNNNr   NF)rN   r“  r”  r   r   r  r°   rÁ   r6  r¶   rÀ   rd   r·   r«   )
rw   rÄ   rF   r  rµ   r¶   r™  rš  rk   r•  s
   &&&&&&&&& r'   Úparse_combinatorÚCSSParser.parse_combinator  sÿ   € ð —W‘W˜ZÓ(ˆ
ßÜ&ˆJßß Ô/?Ô!?Ü)Ø& z l°.ÀÀÐGgÐhØ—L‘LØóð ð Ô-Ô-Ø×$Ñ$Ô&Ø˜a�LøàÔ-Ô-Ø—w—w�w§yä Ÿnšn¨S°$Ó7�C”GØ—‘×$Ñ$ YÔ/Ø× Ñ  Ô%Ø˜a‘Là—‘×$Ñ$ YÔ/Ø)”Ø˜a�LØ× Ñ  Ô%ä‹kˆØˆàÐ Ð r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r  >  s)   € ÷ 	ñ 	 )ð 	°
ð 	È$ð 	ÐSWñ 	r)   c                ó  € VP                  ^ 4      pVP                  R4      '       d0   VP                  P                  \	        VR,          4      4       RpV# VP
                  P                  \	        VR,          4      4       RpV# )zParse HTML classes and ids.Ú.rJ   T)rN   rU   r²   rd   r>   r±   )rw   rÄ   rF   r  r�   s   &&&& r'   Úparse_class_idÚCSSParser.parse_class_id>  sp   € ð —7‘7˜1“:ˆØ×Ñ˜s×#Ò#Ø�K‰K×Ñœ|¨H°R­LÓ9Ô:ð ˆØÐð �G‰G�N‰Nœ<¨°­Ó5Ô6ØˆØÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r  I  s*   € ÷ ñ ¨ð °zð ÐQUð ÐZ^ñ r)   c                óä  € \         P                  ! \        VP                  R4      4      4      pVR8X  d   \        P
                  ! R\        4       VR8H  p\        P                  VP                  R4      4       Uu. uF6  pVP                  R4      '       d   K  \        VP                  R4      4      NK8  	  ppVP                  P                  \        P                  ! Wu4      4       RpV# u upi )	zParse contains.rA   ú	:containsz\The pseudo class ':contains' is deprecated, ':-soup-contains' should be used moving forward.ú:-soup-contains-ownÚvaluesÚsplitr@   T)r   r:   r>   rN   ÚwarningsÚwarnÚFutureWarningÚ	RE_VALUESÚfinditerr¸   rd   rÁ   ÚSelectorContains)rw   rÄ   rF   r  r    Úcontains_ownÚtokenr›   s   &&&&    r'   Úparse_pseudo_containsÚCSSParser.parse_pseudo_containsI  sÇ   € ô —’œL¨¯©°«Ó9Ó:ˆØ�[Ô Ü�MŠMØnÜôð Ð!6Ñ6ˆô #×+Ñ+¨A¯G©G°HÓ,=Ô>ó
á>�Ø—;‘;˜w×'ô /ŒL˜Ÿ™ WÓ-Ö.Ù>ð 	ð 
ð
 	�‰×ÑœB×/Ò/°ÓGÔHØˆØÐùò
s   Á<C-ÂC-c               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r  \  s)   € ÷ ñ  Yð °:ð ÈTð ÐVZñ r)   c                ó:  € \         P                  VP                  R4      4       Uu. uF6  pVP                  R4      '       d   K  \        VP                  R4      4      NK8  	  ppVP                  P                  \        P                  ! V4      4       RpV# u upi )zParse pseudo language.r¨  r©  r@   T)r­  r®  rN   r>   r¹   rd   rÁ   ÚSelectorLang)rw   rÄ   rF   r  r±  r›   s   &&&&  r'   Úparse_pseudo_langÚCSSParser.parse_pseudo_lang\  s   € ô
 #×+Ñ+¨A¯G©G°HÓ,=Ô>ó
á>�Ø—;‘;˜w×'ô /ŒL˜Ÿ™ WÓ-Ö.Ù>ð 	ð 
ð
 	�‰�‰œŸš¨Ó1Ô2ØˆàÐùò
s   §BÁBc               ó(   € V ^8„  d   QhRRRRRRRR/# r  r%   )r&   s   "r'   r(   r  i  s)   € ÷ ñ  Ið °*ð ÈDð ÐUYñ r)   c                óÐ   € \         P                  ! VP                  R4      4      R8X  d   \        P                  M\        P
                  pV;P                  V,          un        RpV# )zParse pseudo direction.ÚdirÚltrT)r   r:   rN   rÁ   ÚSEL_DIR_LTRÚSEL_DIR_RTLr"   )rw   rÄ   rF   r  r@   s   &&&& r'   Úparse_pseudo_dirÚCSSParser.parse_pseudo_diri  sD   € ô #'§*¢*¨Q¯W©W°U«^Ó"<ÀÔ"E”—’Ì2Ï>É>ˆØ�	Š	�UÕ�	ØˆØÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rA  rB  rk   r#   r"   r$   r¾   r%   )r&   s   "r'   r(   r  q  s>   € ÷ Beñ Beà3ðBeð ðBeð ð	Beð
 
ñBer)   c           
     óÈ  € \        4       p. pRpRp. pR\        ,           p	V P                  p
\        V\        ,          4      p\        V\
        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      p\        V\        ,          4      pV P                  '       dÒ   V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R	4       V'       d   \!        R
4       V'       d   \!        R4       V'       d   \!        R4       V'       d   \!        R4       V'       d   VP#                  \        4       4         \%        V4      w  ppVR)9  d   V P'                  4        V P(                  '       d¢   \*        P-                  VP/                  ^ 4      4      pVez   VP/                  R4      P1                  4       V P(                  9   dL   \3        RVP/                  R4       RVP5                  ^ 4       R2V P6                  VP5                  ^ 4      4      hVR8X  d   \9        RVP5                  ^ 4       24      hVR8X  d,   V;P:                  \<        P>                  ,          un        RpEM<VR8X  d   V PA                  VVV4      pEM VR8X  d   V PC                  VVWaV4      w  roEMVR8X  d   \9        RVP5                  ^ 4       24      hVR8X  d   V PE                  VVV4      pEMÁVR*9   d   V PG                  VVWa4      pEM¥VR8X  d   V PI                  VVV4      pEM‰VR8X  d   V PK                  VVV4      pRpEMkVR8X  d”   V'       gH   V'       g9   \3        R VP5                  ^ 4       2V P6                  VP5                  ^ 4      4      hRVn&        V'       d   RpEM\3        R!VP5                  ^ 4       2V P6                  VP5                  ^ 4      4      hVR8X  d:   V'       d   V PO                  VVWeW’4      w  rdp	MªV PQ                  VVWeWŒVV4      w  rdM‘VR"8X  d   V PS                  VVV4      pMvVR#8X  dV   V'       d:   \3        R$VP5                  ^ 4       R%2V P6                  VP5                  ^ 4      4      hV PU                  VVV4      pMVR+9   d   V PW                  VVV4      pVPY                  ^ 4      pEK  V'       d#   V'       g   \3        R&V 2V P6                  V4      hV'       d˜   VP\                  '       g%   V'       g   \<        P^                  ! R'R4      Vn.        V'       d*   W”n0        VR,,          Pb                  P#                  V4       MuVPb                  Pe                  V4       VR( VP#                  V4       MEV'       d>   V'       d	   V'       g.   V P'                  4        RVn&        VR( VP#                  V4       RpV'       g   \3        R V 2V P6                  V4      hV'       d   \<        Pf                  VR,,          n        V'       d   \<        Ph                  VR,,          n        V'       d   \<        Pj                  VR,,          n        V'       d   \<        Pl                  VR,,          n        V'       d   \<        Pn                  VR,,          n        \<        Pp                  ! V Uu. uF  pVPs                  4       NK  	  upWïV P                  V
,
          4      #   \Z         d     EL9i ; iu upi )-zParse selectors.Fr   z    is_pseudo: Truez    is_open: Truez    is_relative: Truez    is_not: Truez    is_html: Truez    is_default: Truez    is_indeterminate: Truez    is_in_range: Truez    is_out_of_range: Truez    is_placeholder_shown: Truez    is_forgive: TrueTrô   ræ   NrA   zThe selector 'r‘  z, has been disallowedrð   zAt-rules found at position rï   rì   rí   rî   z!Pseudo-element found at position rç   rê   rë   z Expected a selector at position z)Unmatched pseudo-class close at position ró   r°   zTag name found at position z instead of at the startz"Unclosed pseudo-class at position r   rœ  )rô   ræ   )ré   rè   )rò   rñ   rT   ):r«   r“  r  r  r\  r=  r‰  rˆ  ÚFLG_HTMLÚFLG_DEFAULTÚFLG_INDETERMINATEÚFLG_IN_RANGEÚFLG_OUT_OF_RANGEÚFLG_PLACEHOLDER_SHOWNrŠ  r  Úprintrd   Únextr  r!   ÚRE_PSEUDO_IGNOREr<   rN   r:   r   r_  r   ÚNotImplementedErrorr"   rÁ   rV  r>  rb  r²  r€  r·  r¿  rº   r–  r�  r0  r8  r¢  r<  ÚStopIterationr°   r6  r·   r¶   rÀ   ÚSEL_DEFAULTÚSEL_INDETERMINATEÚSEL_IN_RANGEÚSEL_OUT_OF_RANGEÚSEL_PLACEHOLDER_SHOWNrÂ   rÃ   )rw   rA  rk   r"   rÄ   rµ   r  Úclosedr¶   r·   r  Úis_openr™  Úis_relativeÚis_notrC  Ú
is_defaultÚis_indeterminateÚis_in_rangeÚis_out_of_rangeÚis_placeholder_shownrš  r?   rF   ÚmiÚss   &&&&                      r'   r[  ÚCSSParser.parse_selectorsq  sr  € ô ‹kˆØˆ	ØˆØˆØˆ	ØœÕ&ˆØ—
‘
ˆô �uœxÕ'Ó(ˆÜ˜¤Õ+Ó,ˆ	Ü˜5¤<Õ/Ó0ˆÜ�eœg•oÓ&ˆÜ�uœxÕ'Ó(ˆÜ˜%¤+Õ-Ó.ˆ
Ü Ô(9Õ 9Ó:ÐÜ˜5¤<Õ/Ó0ˆÜ˜uÔ'7Õ7Ó8ˆÜ# EÔ,AÕ$AÓBÐÜ˜%¤+Õ-Ó.ˆ
ð �:�:ˆ:ßÜÐ+Ô,ßÜÐ)Ô*ßÜÐ-Ô.ßÜÐ(Ô)ßÜÐ)Ô*ßÜÐ,Ô-ßÜÐ2Ô3ßÜÐ-Ô.ßÜÐ1Ô2ß#ÜÐ6Ô7ßÜÐ,Ô-÷ Ø×ÑœY›[Ô)ðO	ØÜ˜i›‘��QàÐ9Ô9Ø×(Ñ(Ô*ð —;—;�;Ü)×/Ñ/°·±¸³
Ó;�BØ’~¨"¯(©(°6Ó*:×*@Ñ*@Ó*BÀdÇkÁkÔ*QÜ1Ø,¨R¯X©X°fÓ-=Ð,>¸nÈQÏWÉWÐUVËZÈLÐXmÐnØ ŸL™LØŸG™G A›Jóð ð
 ˜)Ô#Ü-Ð0KÈAÏGÉGÐTUËJÈ<Ð.XÓYÐYØ˜E”\Ø—I’I¤§¡Õ-•IØ#'’LØÐ1Ô1Ø#'×#AÑ#AÀ#ÀqÈ,Ó#W’LØ˜NÔ*Ø,0×,CÑ,CÀCÈÈLÐelÓ,mÑ)�L¡'ØÐ,Ô,Ü-Ð0QÐRS×RYÑRYÐZ[ÓR\ÐQ]Ð.^Ó_Ð_ØÐ-Ô-Ø#'×#=Ñ#=¸cÀ1ÀlÓ#S’LØÐCÔCØ#'×#8Ñ#8¸¸aÀÓ#Y’LØ˜MÔ)Ø#'×#9Ñ#9¸#¸qÀ,Ó#O’LØ˜LÔ(Ø#'×#8Ñ#8¸¸aÀÓ#N�Là"’GØ˜NÔ*ß'ß)Ü"5Ø"BÀ1Ç7Á7È1Ã:À,Ð OØ $§¡Ø !§¡¨£
ó#ð ð
 (,˜œßØ!%˜Ùä1ØGÈÏÉÐPQË
À|ÐTØ ŸL™LØŸG™G A›Jóð ð
 ˜IÔ%ß"Ø6:×6OÑ6OØ  L¸Xó7Ñ3˜©8ð -1×,AÑ,AØ  L¸YÐS]Ð_dó-Ñ)˜ cð ˜KÔ'Ø#'×#@Ñ#@ÀÀaÈÓ#V‘LØ˜E”\ß#Ü1Ø9¸!¿'¹'À!»*¸ÐE]Ð^Ø ŸL™LØŸG™G A›Jóð ð
 $(×#9Ñ#9¸#¸qÀ,Ó#O‘LØ˜OÔ+Ø#'×#6Ñ#6°s¸A¸|Ó#L�LàŸ™˜a›“÷
 Ÿ6Ü%Ø4°U°GÐ<Ø—‘Øóð ÷ Ø—7—7�7§9äŸ.š.¨¨dÓ3�”ßØ'”Ø˜"•×'Ñ'×.Ñ.¨sÕ3à—‘×$Ñ$ YÔ/Ø˜a�LØ× Ñ  Õ%÷ §·)à× Ñ Ô"ØˆCŒLØ˜!�Ø×Ñ˜SÔ!ØˆLçô &Ø2°5°'Ð:Ø—‘Øóð ÷ Ü"$§.¡.ˆI�b�MÔßÜ"$×"6Ñ"6ˆI�b�MÔßÜ"$§/¡/ˆI�b�MÔßÜ"$×"5Ñ"5ˆI�b�MÔßÜ"$×":Ñ":ˆI�b�MÔô �Š±IÓ>±I¨q §¡¦
±IÑ>ÀÐQU×Q[ÑQ[Ð^cÕQcÓdÐdøôs ô 	Úð	üòr  ?sG   È#7_ ÉG_ Ð2_ Ð:A_ Ò_ ÒA_ ÓA_ Ô'A;_ Þ_ß_ß_c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r$   rB  r%   )r&   s   "r'   r(   r  5  s   € ÷ ($ñ ($ Sð ($Ð-Mñ ($r)   c              #  ó°  "  € \         P                  V4      pV'       d   VP                  ^ 4      M^ p\        P                  VRRR1,          4      pV'       d   VP                  ^ 4      M^ p\	        V4      ^V,           ,
          pV P
                  '       d   \        RV: 24       W58:  Ed   RpV P                   F”  pVP                  WV P                  4      pV'       g   K)  VP                  4       pV P
                  '       d4   \        RV RVP                  ^ 4      : RVP                  ^ 4       24       VP                  ^ 4      pWr3x €  M	  Ve   K³  W,          pVR8X  d   RV 2p	M0VR8X  d   R	V 2p	M#VR
8X  d   RV 2p	MVR8X  d   RV 2p	M	RV: RV 2p	\        W�P                  V4      hV P
                  '       d   \        R4       R# R# 5i)zIterate selector tokens.Nz## PARSING: zTOKEN: 'z' --> z at position Ú[z)Malformed attribute selector at position r¡  z%Malformed class selector at position Ú#z"Malformed id selector at position r   z,Malformed pseudo-class selector at position zInvalid character z
 position z## END PARSINGrT   )ÚRE_WS_BEGINr%  r<  Ú	RE_WS_ENDrc   r  rÉ  Ú
CSS_TOKENSr<   r"   r‰   rN   r_  r   r   )
rw   r   rF   rk   Úoffsetr<  ÚvrA   rl   Úmsgs
   &&        r'   Úselector_iterÚCSSParser.selector_iter5  s�  é € ô ×Ñ˜wÓ'ˆß�—‘�a” 1ˆÜ×Ñ˜W¡T r T�]Ó+ˆß�—‘�q” AˆÜ�'‹l˜a &�jÕ)ˆà�:�:ˆ:Ü�L ¡Ð,Ô-Ø�lØˆAØ—_”_�Ø—G‘G˜G¨D¯J©JÓ7�ß‘1ØŸ:™:›<�DØ—z—z�zÜ ¨¨¨f°Q·W±W¸Q³Z±NÀ-ÐPQ×PWÑPWÐXYÓPZÈ|Ð\Ô]ØŸE™E !›H�EØ˜'’MÙñ %ð ŒyØ•N�ð ˜”8ØEÀeÀWÐM‘CØ˜#”XØAÀ%ÀÐI‘CØ˜#”XØ>¸u¸gÐF‘CØ˜#”XØHÈÈÐP‘Cà.¨q©e°:¸e¸WÐE�CÜ)¨#¯|©|¸UÓCÐCØ�:�:ˆ:ÜÐ"Ö#ñ ùs    ‚CGÃ%!GÄAGÅA,GÇGc               ó$   € V ^8„  d   QhRRRRRR/# )r   rk   r#   r"   r$   r¾   r%   )r&   s   "r'   r(   r  _  s&   € ÷ Tñ T sð T°sð TÀ?ñ Tr)   c                óX   € V P                  V P                  V P                  4      W4      # )zProcess selectors.)r[  ré  r   )rw   rk   r"   s   &&&r'   r/   ÚCSSParser.process_selectors_  s&   € ð ×#Ñ# D×$6Ñ$6°t·|±|Ó$DÀeÓSÐSr)   )r  r   r  r"   r!   r   )r¦  ú:-soup-containsr§  )rq  rr  )rs  rt  )ú:lang)ú:dir)rK   )é    rñ  )<r‘   r’   r“   r”   r•   ro   ÚPAT_PSEUDO_CLOSEr™   ÚPAT_PSEUDO_CONTAINSÚPAT_PSEUDO_NTH_CHILDÚPAT_PSEUDO_NTH_TYPEÚPAT_PSEUDO_LANGÚPAT_PSEUDO_DIRÚPAT_PSEUDO_CLASS_CUSTOMÚPAT_PSEUDO_CLASSÚPAT_PSEUDO_ELEMENTÚPAT_AMPÚPAT_AT_RULEÚPAT_IDÚ	PAT_CLASSÚPAT_TAGÚPAT_ATTRÚPAT_COMBINErå  rÖ   ÚCSS_LINKÚCSS_CHECKEDÚCSS_DEFAULTÚCSS_INDETERMINATEÚCSS_DISABLEDÚCSS_ENABLEDÚCSS_REQUIREDÚ	CSS_MUTEDÚCSS_OPENÚCSS_OPTIONALÚCSS_READ_ONLYÚCSS_READ_WRITEÚCSS_IN_RANGEÚCSS_OUT_OF_RANGEÚCSS_PLACEHOLDER_SHOWNÚCSS_NTH_OF_S_DEFAULTrX  rx   r  r0  r8  r>  rb  r€  rR  r–  r�  r¢  r²  r·  r¿  r[  ré  r/   r—   r%   r)   r'   r.   r.   |  sA  † Ùñ 	˜Ð(8Ó9Ùð &ØKØ'Ø#ð	ð $Ð%FÐH\Ð^mÐnØ"Ð$IÐK^Ð`oÐpØ 
¨O¸_ÐMØ˜y¨.¸/ÐJðó	
ñ 	Ð-Ð/FÓGÙ˜Ð(8Ó9ÙÐ(Ð*<Ó=Ù˜˜wÓ'Ù˜	 ;Ó/Ù˜˜fÓ%Ù˜ Ó+Ù˜˜wÓ'Ù˜ XÓ.Ù˜	 ;Ó/ð3€Jñ: )ð	
Ø�Xð	
à˜ð	
ð ˜ð	
ð ˜ð		
ð
 Ð/ð	
ð ˜ð	
ð ˜ð	
ð ˜ð	
ð �ið	
ð �Xð	
ð ˜ð	
ð ˜-ð	
ð ˜>ð	
ð ˜ð	
ð Ð-ð	
ð  !Ð"7ð!	
ð" Ð.ð#	
óÐð,ð ;?ð	ð
 (,ðð ÷÷"aõFõPõõ:J%õXAõFõ./+õb-!õ^	õõ&õ÷BeõH($÷TTó Tr)   r.   >   rõ   rþ   rF  rI  rý   rH  r÷   rø   rG  rû   rö   rú   r  rÿ   rü   r   rK  rN  r  rJ  rM  rO  r  rL  rù   r  >   ú:hostú:pastú:focusú:hoverú:activeú:futureú:pausedú:targetú:currentú:playingú:seekingú:stalledú:visitedú	:autofillú
:bufferingú:fullscreenú:local-linkú:focus-withinú:popover-openú:user-invalidú:focus-visibleú:target-withinú:volume-lockedú:picture-in-picture>   r‡  r…  r„  r†  ú:matchesr¦  rî  r§  >   r  r  ú:host-context>   rð  rï  rq  rs  rr  rt  )rP  Ú")Nrñ  )zr•   Ú
__future__r   r}   Ú	functoolsr   rM   r   r   r,   r   rÁ   r   rª  Útypingr   r	   r
   r   r   Údataclassesr   Úcollectionsr   Ú	threadingÚLockr|   ÚRLockrá   rO   r  rS  r]  rQ  rZ  ÚPSEUDO_SPECIALr^  ÚNEWLINEÚWSÚCOMMENTSÚWSCÚCSS_ESCAPESÚCSS_STRING_ESCAPESÚ
IDENTIFIERÚNTHÚVALUEÚATTRrý  rþ  rÿ  r   rù  ÚPAT_PSEUDO_CLASS_SPECIALrø  rû  rò  rú  rü  rô  rõ  rö  r÷  r  ró  r~   r   rX   rW   rv  r€   r­  r$  rã  rä  r;   r�   r§   rË  rV   r”  r“  r=  rˆ  r‰  rÄ  rÃ  rÅ  r\  rÆ  rÇ  rÈ  rŠ  Ú	_MAXCACHEr1   r6   r+   r>   rm   ro   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'   Ú<module>rB     s
  ðÙ Ý "Û 	Ý Ý Ý Ý Ý %Û ß 7Õ 7Ý !Ý  Û à
�.Š.Ó
€Ø�?Š?Ó€à!Ð à€ò€ò<Ð ò8	€òÐ ò€ð !Ð#9Õ9¸NÕJÐMdÕdÐguÕuÐ ð '€Ø�'�˜!Ð€à)€à	ˆRˆD��(�˜1Ð€à(¨¨¨OÐ<€Ø/°¨t°2°g°Y¸nÐMÐ ð;Ø;F¸-ð H8Ø8C°}ð Eð€
ð
 
& c U¨%°¨u°IÐ>€ðØˆIð 
Ø
ˆð Ø€ð ð	€ð ˆcˆUÐ& s e¨;°u°g¸TÀ#ÀÐFYÐZ]ÐY^Ð^_Ð`€ð ˆzˆlÐ	€à�*�Ð€	à˜J˜<Ð'=¸j¸\ÈÐ
N€à��Ð% j \Ð1MÈjÈ\ÐYZÐ[_ÐZ`ÐadÐ`eÐehÐi€à   ¨L¸¸¸SÐAÐ à(¨¨°LÀÀÀRÐHÐ à-¨j¨\¸Ð;Ð à
€à�e˜3�<Ð àÐ*Ð+Ð,Ð à�J�<Ð €ðØ.Ð/ð 0Øˆe�> #  k°(°¸1¸R¸DÀÀÀSÈÈ
ÐRSÐTVÐSWÐX[ÐW\ð ]ðÐ ð
Ø-Ð.ð /ØˆU�+˜c˜Uð #ðÐ ð
 /Ð/¨{¸5¸'ÀÀSÀEÈÈCÈ5ÐPQÐRWÐQXÐX[Ð\_Ð[`Ð`cÐd€à-Ð.Ð.>¸s¸eÀ3ÐG€à�˜4 ˜t 8¨C¨5Ð0FÀsÀeÈ1ÐM€à2Ð3°;¸u¸gÀSÈÈÈRÐPSÈuÐTUÐV[ÐU\Ð\_Ð`cÐ_dÐdgÐhÐ ð �ZŠZÐ0°°Ð5LÐMÈrÏtÉtÓT€
Ø—’Ð4°R°DÐ8RÐSZÐR[Ð[]Ð^Ð`b×`dÑ`dÓe€à	�ŠÐ>¸s¸eÀ=ÐQTÐPUÐUeÐfÐhj×hlÑhlÓ	m€à�JŠJ˜-¨ w¨l¸3¸%¸rÀ#ÀÀcÐJÈBÏDÉDÓQ€	à
�
Š
�2‹€Ø�jŠj˜A˜c˜U !˜Ó%€Ø�JŠJÐ>¸x¸jÈÐKÓL€	Ø�JŠJ˜!Ð3Ð4°AÐ6¸¿¹Ó=€	ØŸ*š*Ð%=¸r¿t¹tÀbÇdÁd½{ÈRÏTÉTÕ?QÓRÐ Ø—:’:Ð.°·±°r·t±tµ¸b¿d¹dÕ0BÓCÐ à	€ð Ð à€ð €
Ø
€Ø€Ø€Ø€ØÐ Ø€Ø€ØÐ ØÐ Ø€ð €	ñ �9Ôöó ðõ0&õõõ>÷86ñ 6ô<!˜?ô !÷HAñ AðH ÷ð ó ðô˜  j°2·?±?Õ&BÐ!BÕCô ñ* Ð0°*¸xÕ2GÓH€áðð �Õó	€ñ ðð �Õ˜KÕ'ó€ñ ð
ð �ÕÐ-Õ-óÐ ñ ðð �Õó	€ñ ðð �Õó	€ñ ÐHÈ*ÐW_ÕJ_Ó`€áÐNÐPZÐ]eÕPeÓf€á"ðð �ÕÐ1Õ1óÐ ñ$ ðð, �Õó/€ñ4 Ð4°jÀ8Õ6KÓL€áðð �Õ˜LÕ(ó€ñ$ ðð �ÕÐ,Õ,óÐ ñ$ Ð8¸*ÀxÕ:OÓP€áÐ7¸ÀhÕ9NÓO€	á! %¨Ó4Ð ÷fTó fTr)   