Ë
    iKêj	2  ã                   óZ  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ ed
   Zeed<   e	e   Zeed<   eedf   Zeed<   d)de defd„Z!da"e#eef   dz  ed<   de#eef   fd„Z$ede deeef   fd„«       Z%da&edz  ed<   defd„Z'd*dede defd„Z( e)«       diZ*e#e)e   ef   ed<   de	e    dz  defd„Z+dedefd„Z,i Z-e#eee.e.eef   ef   ed <   dddd!d!d"œd#edz  d$e.dz  d%e.dz  d&ee    d'ee    defd(„Z/y)+é    N)Ú
CollectionÚIterable)Úcache)ÚPath)ÚAnyÚLiteralÚ	TypeAlias)Ústorage_directory)Ú_current_build_context)ÚInvalidArgument)ÚIntervalSetÚ
IntervalsT)%ÚLÚLuÚLlÚLtÚLmÚLoÚMÚMnÚMcÚMeÚNÚNdÚNlÚNoÚPÚPcÚPdÚPsÚPeÚPiÚPfÚPoÚSÚSmÚScÚSkÚSoÚZÚZsÚZlÚZpÚCÚCcÚCfÚCsÚCoÚCnÚCategoryNameÚ
Categories.ÚCategoriesTupleÚfnameÚreturnc                 óR   — t        dt        j                  | › d�«      j                  S )NÚunicode_dataz.json.gz)r
   ÚunicodedataÚunidata_versionÚpath)r7   s    ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/charmap.pyÚcharmap_filer?   H   s(   € ÜØœ×3Ñ3¸°w¸hÐ5Góç
�dðó    Ú_charmapc            	      óŒ  — t         €ât        «       } 	 t        j                  | d«      5 }t	        t        j                  |«      «      }ddd«       j3                  «       D ��ci c]  \  }}|t;        d	„ |D «       «      “Œ c}}a t         j=                  «       D ]O  }t?        tA        |d
«      «      }tC        d„ |D «       «      sJ ‚|t1        |«      k(  sJ ‚tC        d„ |D «       «      rŒOJ ‚ t         €J ‚t         S # 1 sw Y   Œ±xY w# t        $ �r° t        j                  }i } |t        d«      «      }d}t        dt        j                  dz   «      D ]C  } |t        |«      «      }||k7  sŒ|j                  |g «      j                  ||dz
  f«       ||}}ŒE |j                  |g «      j                  |t        j                  f«       	 t!        d«      }|j#                  «        t%        j&                  |j(                  ¬«      \  }	}
t+        j,                  |	«       t        j                  |
dd¬«      5 }t        j.                  t1        |j3                  «       «      «      }|j5                  |j7                  «       «       ddd«       n# 1 sw Y   nxY wt+        j8                  |
| «       n# t        $ r Y nw xY wY �Œmw xY wc c}}w )zâReturn a dict that maps a Unicode category, to a tuple of 2-tuples
    covering the codepoint intervals for characters in that category.

    >>> charmap()['Co']
    ((57344, 63743), (983040, 1048573), (1048576, 1114109))
    NÚrbr   é   Útmp©ÚdirÚwb©Úmtimec              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Útuple)Ú.0Úpairs     r>   ú	<genexpr>zcharmap.<locals>.<genexpr>‚   s   è ø€ Ò3 T”U˜4—[Ñ3ùs   ‚© c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrL   )Ú
isinstanceÚint)rN   Úxs     r>   rP   zcharmap.<locals>.<genexpr>ˆ   s   è ø€ Ò8¨a”z !¤S×)Ñ8ùs   ‚c              3   ó8   K  — | ]  }t        |«      d k(  –— Œ y­w)é   N©Úlen)rN   Útups     r>   rP   zcharmap.<locals>.<genexpr>Š   s   è ø€ Ò3¨”s˜3“x 1•}Ñ3ùs   ‚)"rA   r?   ÚgzipÚGzipFileÚdictÚjsonÚloadÚ	Exceptionr;   ÚcategoryÚchrÚrangeÚsysÚ
maxunicodeÚ
setdefaultÚappendr
   Úcreate_if_missingÚtempfileÚmkstempr=   ÚosÚcloseÚdumpsÚsortedÚitemsÚwriteÚencodeÚrenamesrM   ÚvaluesÚlistÚsumÚall)ÚfÚdÚtmp_charmapra   Úlast_catÚ
last_startÚiÚcatÚstorage_dirÚfdÚtmpfileÚfpÚresultÚkÚpairsÚvsÚintss                    r>   Úcharmapr‡   Q   sv  € ô ÐÜ‹Nˆð 	Ü—‘˜q $Ó'ð A¨1Ü.2´4·9±9¸Q³<Ó.@�÷AðF EP×DUÑDUÓDW÷
Ù8@¸¸5ˆAŒuÑ3¨UÔ3Ó3Ñ3ó
ˆô
 —/‘/Ó#ò 	4ˆBÜœ˜B ›Ó$ˆDÜÑ8°4Ô8Ô8Ð8Ð8Øœ6 $›<Ò'Ð'Ð'ÜÑ3°Ô3Õ3Ð3Ð3ð		4ô ÐÐÐÜ€O÷]Að Aûô ó 	ô #×+Ñ+ˆHØˆKÙ¤ A£Ó'ˆHØˆJÜ˜1œcŸn™n¨qÑ0Ó1ò 2�Ùœs 1›vÓ&�Ø˜(“?Ø×*Ñ*¨8°RÓ8×?Ñ?ÀÈQÐQRÉUÐ@SÔTØ+.°˜j‘Hð	2ð
 ×"Ñ" 8¨RÓ0×7Ñ7¸ÄSÇ^Á^Ð8TÔUðä/°Ó6�Ø×-Ñ-Ô/Ü&×.Ñ.°;×3CÑ3CÔD‘��GÜ—‘˜”ä—]‘] 7¨D¸Ô:ð .¸bÜ!ŸZ™Z¬¨{×/@Ñ/@Ó/BÓ(CÓD�FØ—H‘H˜VŸ]™]›_Ô-÷.÷ .ñ .úô —
‘
˜7 AÕ&øÜò Ùðýð7	üó>
st   ’D ¨C7ÁD Á"K Ã7D Ã<D ÄA%J=Å)AJ=ÇA+J*È2AJÉ>	J*ÊJ	ÊJ*Ê)J=Ê*	J6Ê3J=Ê5J6Ê6J=Ê<J=Ú
codec_namec                 ó¬  — | t        j                  | «      j                  k(  sJ ‚t        d| › �«      }	 t	        j
                  |«      5 }t        j                  |«      \  }}ddd«       t!        «      }	|	j#                  |	«      }	t!        «      }
|
j#                  |
«      }
	 t%        d«      }|j'                  «        t)        j*                  |j,                  ¬«      \  }}t/        j0                  |«       t	        j
                  |dd¬«      5 }|j3                  t        j4                  |	j6                  |
j6                  g«      j                  «       «       ddd«       t/        j8                  ||«       |	|
fS # 1 sw Y   �ŒxY w# t        $ r¦ g }g }t        t        j                  dz   «      D ]  }t        |«      }	 |j                  | «      }n# t        $ r Y Œ,w xY w|j                  ||f«       	 |j                  | «      |k(  }n# t        $ r d}Y nw xY w|rŒm|j                  ||f«       Œ� Y �ŒÊw xY w# 1 sw Y   ŒâxY w# t        $ r Y |	|
fS w xY w)	z¦Return IntervalSets of characters which can be encoded with this codec,
    and the subset which encode successfully but do not decode back to the
    same character.z	codec-v2-NrD   FrE   rF   rH   rI   )ÚcodecsÚlookupÚnamer?   r[   r\   r^   r_   r`   rc   rd   re   rb   rq   rg   Údecoder   Úunionr
   rh   ri   rj   r=   rk   rl   rp   rm   Ú	intervalsrr   )rˆ   r7   ÚgzfÚencodable_intervalsÚnon_roundtrip_intervalsr|   ÚcharÚencodedÚ
roundtripsÚresÚnon_roundtripr~   r   r€   rw   s                  r>   Úintervals_from_codecr˜   �   s6  € ð œŸ™ zÓ2×7Ñ7Ò7Ð7Ð7Ü˜9 Z LÐ1Ó2€Eð7Ü�]‰]˜5Ó!ð 	J SÜ;?¿9¹9ÀS»>Ñ8ÐÐ!8÷	Jô0 Ð)Ó
*€CØ
�)‰)�C‹.€CÜÐ 7Ó8€MØ!×'Ñ'¨Ó6€Mðä'¨Ó.ˆØ×%Ñ%Ô'Ü×&Ñ&¨;×+;Ñ+;Ô<‰ˆˆGÜ
�‰�Œä�]‰]˜7 D°Ô2ð 	S°aØ�G‰G”D—J‘J §¡¨}×/FÑ/FÐGÓH×OÑOÓQÔR÷	Sä
�
‰
�7˜EÔ"ð �ÐÐ÷Q	Jñ 	Jûô ò 7à ÐØ"$ÐÜ”s—~‘~¨Ñ)Ó*ò 	7ˆAÜ�q“6ˆDðØŸ+™+ jÓ1‘øÜò Ùðúà×&Ñ&¨¨1 vÔ.ð#ð %Ÿ^™^¨JÓ7¸4Ñ?‘
øÜò #Ø"’
ð#úâØ'×.Ñ.°°1¨vÕ6ó	7ð	7ú÷@	Sð 	Sûô ò ØØ�ÐÐðús£   ´F Á	E9Á"F Â#A+I ÄA	H8ÅI Å9FÅ>F Æ7H5Æ>GÇH5Ç	GÇH5ÇGÇH5Ç3HÈH5ÈHÈH5ÈHÈH5ÈH5È4H5È8IÈ=I É	IÉIÚ_categoriesc                  ó
  ‡— t         €wt        «       Št        ‰j                  «       ˆfd„¬«      } | j	                  d«       | j	                  d«       | j                  d«       | j                  d«       t        | «      a t         S )zŸReturn a tuple of Unicode categories in a normalised order.

    >>> categories() # doctest: +ELLIPSIS
    ('Zl', 'Zp', 'Co', 'Me', 'Pc', ..., 'Cc', 'Cs')
    c                 ó    •— t        ‰|    «      S rL   rX   )ÚcÚcms    €r>   ú<lambda>zcategories.<locals>.<lambda>Ñ   s   ø€ ´S¸¸A¹³Z€ r@   )Úkeyr/   r1   )r™   r‡   rn   ÚkeysÚremoverg   rM   )Ú
categoriesr�   s    @r>   r¢   r¢   È   sm   ø€ ô ÐÜ‹YˆÜ˜BŸG™G›IÓ+?Ô@ˆ
Ø×Ñ˜$ÔØ×Ñ˜$ÔØ×Ñ˜$ÔØ×Ñ˜$ÔÜ˜JÓ'ˆÜÐr@   ÚcatsrŒ   c           
      óü   ‡‡— d}t        «       }t        | «      Š| D ]K  Š‰|v r,‰j                  ‰«       ‰j                  ˆfd„|D «       «       Œ3‰|vsŒ8t	        d|› d| ›d‰›d�«      ‚ t        ˆfd„|D «       «      S )a÷  Return a tuple of Unicode categories in a normalised order.

    This function expands one-letter designations of a major class to include
    all subclasses:

    >>> as_general_categories(['N'])
    ('Nd', 'Nl', 'No')

    See section 4.5 of the Unicode standard for more on classes:
    https://www.unicode.org/versions/Unicode10.0.0/ch04.pdf

    If the collection ``cats`` includes any elements that do not represent a
    major class or a class with subclass, a deprecation warning is raised.
    )r   r   r   r   r%   r*   r.   c              3   óF   •K  — | ]  }|j                  ‰«      sŒ|–— Œ y ­wrL   )Ú
startswith)rN   rU   rœ   s     €r>   rP   z(as_general_categories.<locals>.<genexpr>ï   s   øè ø€ Ò8˜Q¨¯©°Q­”qÑ8ùs   ƒ!š!zIn ú=z, z! is not a valid Unicode category.c              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wrL   rQ   )rN   rœ   Úouts     €r>   rP   z(as_general_categories.<locals>.<genexpr>ô   s   øè ø€ Ò+�q ! s¢(”Ñ+ùó   ƒ	�)r¢   ÚsetÚdiscardÚupdater   rM   )r£   rŒ   Úmajor_classesÚcsrœ   r©   s       @@r>   Úas_general_categoriesr°   Ú   sŽ   ù€ ð 8€MÜ	‹€BÜ
ˆd‹)€CØò ˆØ�ÑØ�K‰K˜ŒNØ�J‰JÓ8 "Ô8Õ8Ø�bŠ[Ü!Ø�d�V˜1˜T˜H B q eÐ+LÐMóð ðô Ó+˜BÔ+Ó+Ð+r@   rQ   Úcategory_index_cachec                 óZ   ‡ — t        «       }‰ €t        |«      Š t        ˆ fd„|D «       «      S )aU  Return a normalised tuple of all Unicode categories that are in
    `include`, but not in `exclude`.

    If include is None then default to including all categories.
    Any item in include that is not a unicode character will be excluded.

    >>> _category_key(exclude=['So'], include=['Lu', 'Me', 'Cs', 'So'])
    ('Me', 'Lu', 'Cs')
    c              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wrL   rQ   )rN   rœ   r£   s     €r>   rP   z _category_key.<locals>.<genexpr>  s   øè ø€ Ò,�q ! t¢)”Ñ,ùrª   )r¢   r«   rM   )r£   r¯   s   ` r>   Ú_category_keyr´   ú   s+   ø€ ô 
‹€BØ€|Ü�2‹wˆÜÓ,˜BÔ,Ó,Ð,r@   rŸ   c                 ój  — t        | «      } t        | «      }t        j                  }|� |j                  j
                  j                  s
	 t        |   S | sy| sJ ‚t        | «      t        t        «       «      k(  rt        dt        j                  fg«      }n=t        t        | dd «      «      j                  t        t!        «       | d      «      «      }t#        |t        «      sJ ‚|� |j                  j
                  j                  s|j$                  t        |<   |j$                  S # t        $ r Y ŒÛw xY w)a5  Return a tuple of codepoint intervals covering characters that match one
    or more categories in the tuple of categories `key`.

    >>> _query_for_key(categories())
    ((0, 1114111),)
    >>> _query_for_key(('Zl', 'Zp', 'Co'))
    ((8232, 8233), (57344, 63743), (983040, 1048573), (1048576, 1114109))
    NrQ   r   éÿÿÿÿ)rM   Ú	frozensetr   ÚvalueÚdataÚproviderÚavoid_realizationr±   ÚKeyErrorr«   r¢   r   rd   re   Ú_query_for_keyrŽ   r‡   rS   r�   )rŸ   Ú	cache_keyÚcontextr‚   s       r>   r½   r½   
  s  € ô �‹*€Cä˜#“€IÜ$×*Ñ*€GØ€˜gŸl™l×3Ñ3×EÒEð	Ü'¨	Ñ2Ð2ñ ØÙ€Jˆ3Ü
ˆ3ƒx”3”z“|Ó$Ò$Ü˜q¤#§.¡.Ð1Ð2Ó3‰äœ^¨C°°¨HÓ5Ó6×<Ñ<Üœ›	 # b¡'Ñ*Ó+ó
ˆô �fœkÔ*Ð*Ð*Ø€˜gŸl™l×3Ñ3×EÒEØ*0×*:Ñ*:Ô˜YÑ'Ø×ÑÐøô ò 	Ùð	ús   Á
D& Ä&	D2Ä1D2Úlimited_category_index_cacheÚ )r¢   Úmin_codepointÚmax_codepointÚinclude_charactersÚexclude_charactersr¢   rÂ   rÃ   rÄ   rÅ   c                 óØ  — |€d}|€t         j                  }||kD  rt        d|› d|› �«      ‚t        | «      }t	        j
                  dj                  |«      «      }t	        j
                  dj                  |«      «      }||||j                  |j                  f}t        j                  }	|	� |	j                  j                  j                  s
	 t        |   S g }
t        |«      D ]8  \  }}||k\  sŒ||k  sŒ|
j!                  t#        ||«      t%        ||«      f«       Œ: t	        |
«      |z  |z
  }
|	� |	j                  j                  j                  s	|
t        |<   |
S # t        $ r Y Œ‘w xY w)u­  Return a tuple of intervals covering the codepoints for all characters
    that meet the criteria.

    >>> query()
    ((0, 1114111),)
    >>> query(min_codepoint=0, max_codepoint=128)
    ((0, 128),)
    >>> query(min_codepoint=0, max_codepoint=128, categories=['Lu'])
    ((65, 90),)
    >>> query(min_codepoint=0, max_codepoint=128, categories=['Lu'],
    ...       include_characters='â˜ƒ')
    ((65, 90), (9731, 9731))
    r   zmin_codepoint=z is greater than max_codepoint=rÁ   )rd   re   r   r´   r   Úfrom_stringÚjoinr�   r   r¸   r¹   rº   r»   rÀ   r¼   r½   rg   ÚmaxÚmin)r¢   rÂ   rÃ   rÄ   rÅ   ÚcatkeyÚcharacter_intervalsÚexclude_intervalsÚqkeyr¿   r‚   ÚuÚvs                r>   ÚqueryrÑ   0  s~  € ð* ÐØˆØÐÜŸ™ˆà�}Ò$ÜØ˜]˜OÐ+JÈ=È/ÐZó
ð 	
ô ˜:Ó&€FÜ%×1Ñ1°"·'±'Ð:LÓ2MÓNÐÜ#×/Ñ/°·±Ð8JÓ0KÓLÐàØØØ×%Ñ%Ø×#Ñ#ð€Dô %×*Ñ*€GØ€˜gŸl™l×3Ñ3×EÒEð	Ü/°Ñ5Ð5ð €FÜ˜vÓ&ò J‰ˆˆ1Ø�Ó ! }Ó"4Ø�M‰Mœ3˜q -Ó0´#°a¸Ó2GÐHÕIðJô ˜&Ó!Ð$7Ñ7Ð;LÑL€FØ€˜gŸl™l×3Ñ3×EÒEØ-3Ô$ TÑ*à€Møô ò 	Ùð	ús   ÃE Å	E)Å(E))r‡   )r£   )0rŠ   r[   r^   rk   rd   ri   r;   Úcollections.abcr   r   Ú	functoolsr   Úpathlibr   Útypingr   r   r	   Úhypothesis.configurationr
   Úhypothesis.controlr   Úhypothesis.errorsr   Ú hypothesis.internal.intervalsetsr   r   r4   Ú__annotations__r5   rM   r6   Ústrr?   rA   r]   r‡   r˜   r™   r¢   r°   r·   r±   r´   r½   rÀ   rT   rÑ   rQ   r@   r>   ú<module>rÜ      s	  ðô Û Û Û 	Û 
Û Û ß 0Ý Ý ß *Ñ *å 6Ý 5Ý -ß Dð "ð$
ñ&€ˆió &ðN ! Ñ.€
ˆIÓ .Ø" <°Ð#4Ñ5€�Ó 5ñ˜ð ¨Dó ð 37€ˆ$ˆ|˜ZÐ'Ñ
(¨4Ñ
/Ó 6ð<��l JÐ.Ñ/ó <ð~ ð1Øð1à
ˆ;˜Ð#Ñ$ò1ó ð1ðh '+€ˆ_˜tÑ#Ó *ð�Oó ñ$, 
ð ,°#ð ,À?ó ,ñ: DMÃ;ÐPRÐBSÐ �d˜9 \Ñ2°JÐ>Ñ?Ó Sð-˜ ™¨Ñ,ð -°ó -ð ˜
ð  zó ðF ð ˜dØ	ˆ/˜3  Z°Ð
;Ñ<¸kÐIñó ð %)Ø $Ø $Ø*,Ø*,ò9à˜TÑ!ð9ð ˜‘:ð9ð ˜‘:ð	9ð
 # 3™ð9ð # 3™ð9ð ô9r@   