Ë
    èÿæi__ ã                   ó  — 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
mZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZmZ d dlmZ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. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP d dlQmRZR e"dv rd dl#mSZS dZTejª                  j¬                  ZW eej°                  «       G d„ de
j:                  «      «       ZY eej°                  dd«        eej°                  dd«        eej°                  dd«        eej°                  dd«        eej°                  dd«        eej´                  «       G d„ d e«      «       Z[d!„ Z\d"„ Z] eej¼                  ej¾                  «      d#„ «       Z` eej¾                  «      d$„ «       Za eej°                  «      d%„ «       Zb eej°                  «      d&„ «       Zcd'„ Zded(„ «       Zeed)„ «       Zfed*„ «       Zged+„ «       ZhedËd,„«       Zi ed-¬.«      d/„ «       Zjd0„ Zked1„ «       Zled2„ «       Zmed3„ «       Zn ed-¬.«      d4„ «       Zoe"d5v r	ed6„ «       Zpne"dv r	ed7„ «       Zpn eqe"«      ‚ed8„ «       Zre"d5v r	ed9„ «       Zsne"dv r	ed:„ «       Zsn eqe"«      ‚ ed-¬.«      d;„ «       Zted<„ «       Zued=„ «       Zv eew«      d>„ «       Zx eejò                  «      d?„ «       Zz eejö                  «      d@„ «       Z| eejú                  «      dA„ «       Z~ eejþ                  «      dB„ «       Z€ ee�j                  «      dC„ «       Z‚ ee�j                  «      dD„ «       Z„ ee�j
                  «      dE„ «       Z†dF„ Z‡dG„ ZˆedH„ «       Z‰edI„ «       ZŠedJ„ «       Z‹edK„ «       ZŒdL„ Z� e e�e‹«      «      ZŽ e e�eŒ«      «      Z� eej°                  dM«      dÌdN„«       Z� eej°                  dO«      dÌdP„«       Z‘ eej°                  dQ«      dÌdR„«       Z’ eej°                  dS«      dÌdT„«       Z“ eej°                  dU«      dV„ «       Z” eej°                  dW«      dÌdX„«       Z• eej°                  dY«      dZ„ «       Z–ed[„ «       Z— eej°                  d\«      dÌd]„«       Z˜ eej°                  d^«      dÌd_„«       Z™ eej°                  d`«      dÍda„«       Zš eej°                  db«      dÎdc„«       Z›dd„ Zœ e eœe9«      «      Z� e eœe:«      «      Zž eej°                  de«      dÎdf„«       ZŸ eej°                  dg«      dÏdh„«       Z di„ Z¡  eej°                  dj«       e¡d-«      «         eej°                  dk«       e¡dl«      «       dm„ Z¢ e e¢eB«      «      Z£ e e¢eA«      «      Z¤ eej°                  dn«      dÐdo„«       Z¥edp„ «       Z¦ eej°                  dq«      dr„ «       Z§ eej°                  ds«      dt„ «       Z¨edu„ «       Z©edv„ «       Zªdw„ Z«dx„ Z¬ eej°                  dy«      dÑdz„«       Z­ eej°                  d{«      dÑd|„«       Z® eej°                  d}«      dÑd~„«       Z¯edÒd„«       Z°ed€„ «       Z±ed�„ «       Z²ed‚„ «       Z³ ed-¬.«      dƒ„ «       Z´ed„„ «       Zµ ee�jl                  «      d…„ «       Z· ee�jp                  «       ee�jr                  «      d†„ «       «       Zºed‡„ «       Z» ee�jx                  «      dˆ„ «       Z½ ee�j|                  «      d‰„ «       Z¿ eej°                  dŠ«      dÓd‹„«       ZÀdŒ„ ZÁ  eej°                  d�«       eÁeNeL«      «        edŽ„ «      ZÂ  eej°                  d�«       eÁe3eÂ«      «       d�„ ZÃ ed‘„ «      ZÄ e eÃeFeGeÄ«      «      ZÅ e eÃe@e?eE«      «      ZÆ eej°                  d’«      d“„ «       ZÇ eej°                  d”«      d•„ «       ZÈ eej°                  d–«      d—„ «       ZÉ eej°                  d˜«      d™„ «       ZÊ eej°                  dš«      d›„ «       ZËdÒdœ„ZÌ  eej°                  d�«       eÌe9«      «         eej°                  dž«       eÌeM«      «         eej°                  dŸ«       eÌeO«      «         eej°                  d «       eÌeP«      «         eej°                  d¡«       eÌe8d-«      «       d¢„ ZÍed£„ «       ZÎed¤„ «       ZÏd¥„ ZÐ e eÐd-«      «      ZÑ e eÐdl«      «      ZÒd¦„ ZÓ e eÓe0«      «      ZÔ e eÓe1«      «      ZÕ eej°                  d§«      d¨„ «       ZÖ eej°                  d©«      dª„ «       Z×ed«„ «       ZØed¬„ «       ZÙ eej°                  d­«      d®„ «       ZÚed¯„ «       ZÛed°„ «       ZÜ eej°                  d±«      d²„ «       ZÝed³„ «       ZÞed´„ «       Zß eej°                  dµ«      d¶„ «       Zàed·„ «       Záed¸„ «       Zâ eej°                  d¹«      dº„ «       Zã eeä«      d»„ «       Zåed¼„ «       Zæd½eTz  Zçed¾„ «       Zè eeé«      d¿„ «       Zê eej°                  dÀ«      dÁ„ «       Zë eej°                  dÂ«      dÃ„ «       Zì ee�jÚ                  dÀ«      dÄ„ «       Zî ee�jÚ                  dÂ«      dÅ„ «       Zï ee�jà                  dÂ«       ee�jà                  dÀ«      dÆ„ «       «       Zñ edÇej°                  «      dÈ„ «       Zò edÉej´                  «       ee�jæ                  «      dÊ„ «       «       Zôy)Ôé    N)ÚIntTypeÚConstant)Úis_nonelike)
ÚmodelsÚregister_modelÚmake_attribute_wrapperÚunboxÚboxÚNativeValueÚoverloadÚoverload_methodÚ	intrinsicÚregister_jitable)Úlower_constantÚ
lower_castÚlower_builtinÚiternext_implÚimpl_ret_new_refÚRefType)Úregister_defaultÚStructModel)ÚtypesÚcgutils)Ú	PYVERSION)ÚPY_UNICODE_1BYTE_KINDÚPY_UNICODE_2BYTE_KINDÚPY_UNICODE_4BYTE_KIND)Ú	c_helpers)Ú
_Py_hash_t)Úmemcpy_region)ÚTypingError)!Ú_Py_TOUPPERÚ_Py_TOLOWERÚ_Py_UCS4Ú_Py_ISALNUMÚ_PyUnicode_ToUpperFullÚ_PyUnicode_ToLowerFullÚ_PyUnicode_ToFoldedFullÚ_PyUnicode_ToTitleFullÚ_PyUnicode_IsPrintableÚ_PyUnicode_IsSpaceÚ_Py_ISSPACEÚ_PyUnicode_IsXidStartÚ_PyUnicode_IsXidContinueÚ_PyUnicode_IsCasedÚ_PyUnicode_IsCaseIgnorableÚ_PyUnicode_IsUppercaseÚ_PyUnicode_IsLowercaseÚ_PyUnicode_IsLineBreakÚ_Py_ISLINEBREAKÚ_Py_ISLINEFEEDÚ_Py_ISCARRIAGERETURNÚ_PyUnicode_IsTitlecaseÚ_Py_ISLOWERÚ_Py_ISUPPERÚ_Py_TABÚ_Py_LINEFEEDÚ_Py_CARRIAGE_RETURNÚ	_Py_SPACEÚ_PyUnicode_IsAlphaÚ_PyUnicode_IsNumericÚ_Py_ISALPHAÚ_PyUnicode_IsDigitÚ_PyUnicode_IsDecimalDigit)Úslicing))é   é
   )rD   é   )ÚPY_UNICODE_WCHAR_KINDéÿÿ c                   ó   — e Zd Zd„ Zy)ÚUnicodeModelc           	      óL  — dt         j                  fdt         j                  fdt         j                  fdt         j                  fdt
        fdt        j                  t         j                  «      fdt         j                  fg}t        j                  j                  | |||«       y )NÚdataÚlengthÚkindÚis_asciiÚhashÚmeminfoÚparent)r   ÚvoidptrÚintpÚint32Úuint32r   ÚMemInfoPointerÚpyobjectr   r   Ú__init__)ÚselfÚdmmÚfe_typeÚmemberss       új/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cpython/unicode.pyrY   zUnicodeModel.__init__Q   s€   € à”U—]‘]Ð#Ø”u—z‘zÐ"Ø”U—[‘[Ð!ØœŸ™Ð&Ø”ZÐ Øœ×,Ñ,¬U¯]©]Ó;Ð<à”u—~‘~Ð&ð	
ˆô 	×Ñ×#Ñ# D¨#¨w¸Õ@ó    N)Ú__name__Ú
__module__Ú__qualname__rY   © r_   r^   rJ   rJ   O   s   „ óAr_   rJ   rL   Ú_datarM   Ú_lengthrN   Ú_kindrO   Ú	_is_asciirP   Ú_hashc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚUnicodeIteratorModelc                 ó–   •— dt        j                  t         j                  «      fd|j                  fg}t        t
        | �  |||«       y )NÚindexrL   )r   ÚEphemeralPointerÚuintprL   Úsuperrj   rY   )rZ   r[   r\   r]   Ú	__class__s       €r^   rY   zUnicodeIteratorModel.__init__h   sA   ø€ ØœU×3Ñ3´E·K±KÓ@ÐAØ˜GŸL™LÐ)ð+ˆäÔ" DÑ2°3¸ÀÕIr_   )r`   ra   rb   rY   Ú__classcell__)rp   s   @r^   rj   rj   f   s   ø„ ÷Jð Jr_   rj   c           
      óú  — ddl m}m}m}m}m}m}m}m}m	}	 t        d   }
 ||| ||«       ||«       ||«       ||«      «      } ||
«      } |«       } |«       } |«       } |«       } ||  |	|«       |	|«       |	|«       |	|«      «      }|€t        d«      ‚|j                  }|j                  }|j                  }|dz   t        |«      z  }||z  j                  |«      }t        |«      ||||j                  fS )ztGet string data from a python string for use at compile-time to embed
    the string data into the LLVM module.
    r   )	Ú	CFUNCTYPEÚc_void_pÚc_intÚc_uintÚ	c_ssize_tÚc_ubyteÚ	py_objectÚPOINTERÚbyrefÚextract_unicodez1cannot extract unicode data from the given stringé   )Úctypesrs   rt   ru   rv   rw   rx   ry   rz   r{   r   Ú
ValueErrorÚvalueÚ_kind_to_byte_widthÚfrom_addressÚbytes)Úobjrs   rt   ru   rv   rw   rx   ry   rz   r{   Úextract_unicode_fnÚprotoÚfnrM   rN   rO   ÚhashvrL   ÚnbytesÚouts                       r^   Úcompile_time_get_string_datar‹   p   sÿ   € ÷÷ õ ô
 #Ð#4Ñ5ÐÙ�h 	©7°9Ó+=¹wÀu»~Ù˜f“o¡w¨yÓ'9ó;€Eá	Ð!Ó	"€BÙ‹[€FÙ‹7€DÙ‹x€HÙ‹K€EÙˆc‘5˜“=¡%¨£+©u°X«ÁÀeÃÓM€DØ€|ÜÐLÓMÐMØ�\‰\€FØ�:‰:€DØ�~‰~€HØ�q‰jÔ/°Ó5Ñ5€FØ�VÑ×
)Ñ
)¨$Ó
/€CÜ�‹:�v˜t X¨u¯{©{Ð:Ð:r_   c                 óÆ  — t        |«      \  }}}}}|j                  }	| j                  |	|«      }
 t        j                  |«      | |«      }|
|_        |j                  j                  |«      |_        |j                  j                  |«      |_        |j                  j                  |«      |_	        |j                  j                  d«      |_
        |j                  «       S )zf
    Get string data by `compile_time_get_string_data()` and return a
    unicode_type LLVM value
    éÿÿÿÿ)r‹   ÚmoduleÚinsert_const_bytesr   Úcreate_struct_proxyrL   rM   ÚtyperN   rO   rP   Ú	_getvalue)ÚcontextÚbuilderÚtypÚliteral_stringÚ	databytesrM   rN   rO   rˆ   ÚmodÚgvÚuni_strs               r^   Úmake_string_from_constantr›   Œ   sÂ   € ô 	% ^Ó4ñ -€Iˆv�t˜X uà
�.‰.€CØ	×	#Ñ	# C¨Ó	3€BØ.Œg×)Ñ)¨#Ó.¨w¸Ó@€GØ€G„LØ—^‘^×(Ñ(¨Ó0€G„NØ—<‘<×$Ñ$ TÓ*€G„LØ×'Ñ'×,Ñ,¨XÓ6€GÔð —<‘<×$Ñ$ RÓ(€G„LØ×ÑÓÐr_   c                 ó2   — t        | |||j                  «      S ©N)r›   Úliteral_value)r“   r”   ÚfromtyÚtotyÚvals        r^   Úcast_from_literalr¢       s   € ä$Ø�˜$ × 4Ñ 4óð r_   c                 ó   — t        | |||«      S r�   )r›   )r“   r”   r•   Úpyvals       r^   Úconstant_unicoder¥   ©   s   € ä$ W¨g°s¸EÓBÐBr_   c                 óâ  — |j                   j                  |«      \  }}}}}} t        j                  | «      |j                  |j
                  «      }	||	_        ||	_        ||	_        ||	_	        ||	_
        |j                   j                  ||«      |	_        ||	_        t        j                  |j
                  |j                   j                  «       «      }
t!        |	j#                  «       |
¬«      S )zE
    Convert a unicode str object to a native unicode structure.
    )Úis_error)ÚpyapiÚstring_as_string_size_and_kindr   r�   r“   r”   rL   rM   rN   rO   rP   Únrt_meminfo_new_from_pyobjectrQ   rR   Úis_not_nullÚerr_occurredr   r’   )r•   r„   ÚcÚokrL   rM   rN   rO   rˆ   rš   r§   s              r^   Úunbox_unicode_strr¯   ±   sÊ   € ð 	
�‰×.Ñ.¨sÓ3ñ ,€Bˆˆf�d˜H eà.Œg×)Ñ)¨#Ó.¨q¯y©y¸!¿)¹)ÓD€GØ€G„LØ€G„NØ€G„LØ€GÔØ€G„LØ—g‘g×;Ñ;ØØó€G„Oð €G„Nä×"Ñ" 1§9¡9¨a¯g©g×.BÑ.BÓ.DÓE€HÜ�w×(Ñ(Ó*°XÔ>Ð>r_   c                 óx  —  t        j                  | «      |j                  |j                  |¬«      }|j                  j                  |j                  |j                  |j                  «      }|j                  j                  |«       |j                  j                  j                  |j                  | |«       |S )z@
    Convert a native unicode structure to a unicode string
    ©r€   )r   r�   r“   r”   r¨   Ústring_from_kind_and_datarN   rL   rM   Úobject_hashÚnrtÚdecref)r•   r¡   r­   rš   Úress        r^   Úbox_unicode_strr·   È   s…   € ð
 /Œg×)Ñ)¨#Ó.¨q¯y©y¸!¿)¹)È3ÔO€GØ
�'‰'×
+Ñ
+Ø�‰�g—l‘l G§N¡Nó4€Cð
 ‡G�G×Ñ˜ÔØ‡I�I‡M�M×Ñ˜Ÿ™ C¨Ô-Ø€Jr_   c                 ó   ‡ — ˆ fd„}|S )Nc                 óÚ   •— |\  }}|j                  |t        ‰«      j                  «       «      }|j                  |j	                  ||g«      «      }|j                  |t        d«      «      S ©Né    )Úbitcastr   Ú
as_pointerÚloadÚgepÚzext)	r“   r”   Ú	signatureÚargsrL   ÚidxÚptrÚchÚbitsizes	           €r^   Úcodegenz#make_deref_codegen.<locals>.codegenÜ   sZ   ø€ Ø‰	ˆˆcØ�o‰o˜d¤G¨GÓ$4×$?Ñ$?Ó$AÓBˆØ�\‰\˜'Ÿ+™+ c¨C¨5Ó1Ó2ˆØ�|‰|˜B¤¨£Ó,Ð,r_   rc   ©rÆ   rÇ   s   ` r^   Úmake_deref_codegenrÉ   Û   s   ø€ ô-ð €Nr_   c                 ó€   — t        j                  t         j                  t         j                  «      }|t	        d«      fS ©Né   ©r   rV   rS   rT   rÉ   ©Ú	typingctxrL   ÚoffsetÚsigs       r^   Úderef_uint8rÒ   å   s+   € ä
�,‰,”u—}‘}¤e§j¡jÓ
1€CØÔ" 1Ó%Ð%Ð%r_   c                 ó€   — t        j                  t         j                  t         j                  «      }|t	        d«      fS ©Né   rÍ   rÎ   s       r^   Úderef_uint16rÖ   ë   ó+   € ä
�,‰,”u—}‘}¤e§j¡jÓ
1€CØÔ" 2Ó&Ð&Ð&r_   c                 ó€   — t        j                  t         j                  t         j                  «      }|t	        d«      fS rº   rÍ   rÎ   s       r^   Úderef_uint32rÙ   ñ   r×   r_   c                 ó°   — d„ }t        j                  t         j                  t         j                  t         j                  t         j                  «      }||fS )z�make empty string with data buffer of size alloc_bytes.

    Must set length and kind values for string after it is returned
    c           
      óH  — |\  }}}}t        j                  t        j                  «      } || |«      }	|j	                  ||j                  |t        |j                  d«      «      «      }
| j                  j                  ||
«      |	_
        ||	_        ||	_        ||	_        | j                  t        d«      |	_        | j                  j#                  ||	j                  «      |	_        t        j&                  |	j(                  j                  «      |	_        |	j+                  «       S )Nr}   r�   )r   r�   r   Úunicode_typeÚmulÚaddr   r‘   r´   Úmeminfo_allocrQ   rN   rO   rM   Úget_constantr   rP   Úmeminfo_datarL   Úget_null_valuerR   r’   )r“   r”   rÁ   rÂ   Úkind_valÚchar_bytes_valÚ
length_valÚis_ascii_valÚuni_str_ctorrš   Ú
nbytes_vals              r^   Údetailsz_malloc_string.<locals>.detailsý   sí   € Ø?CÑ<ˆ�> :¨|ô ×2Ñ2´5×3EÑ3EÓFˆÙ˜w¨Ó0ˆà—[‘[ Ø!(§¡¨ZÜ-5°j·o±oÀqÓ-Ió"KóLˆ
ð "Ÿ+™+×3Ñ3°G¸ZÓHˆŒØˆŒØ'ˆÔØ#ˆŒà×+Ñ+¬J¸Ó;ˆŒØ—{‘{×/Ñ/°¸¿¹ÓIˆŒä ×/Ñ/°·±×0CÑ0CÓDˆŒØ× Ñ Ó"Ð"r_   )r   rÜ   rU   rT   rV   )rÏ   rN   Ú
char_bytesrM   rO   ré   rÑ   s          r^   Ú_malloc_stringrë   ÷   s9   € ò#ô* ×
Ñ
œUŸ[™[¬%¯*©*´e·j±jÄ%Ç,Á,Ó
O€CØ�ˆ<Ðr_   c                 óx   — t        | «      }t        | |||«      }t        ||t        j                  d«      «       |S ©Nr   )r�   rë   Ú_set_code_pointÚnprV   )rN   rM   rO   Ú
char_widthÚss        r^   Ú_empty_stringrò     s5   € ä$ TÓ*€JÜ�t˜Z¨°Ó:€AÜ�A�vœrŸy™y¨›|Ô,Ø€Hr_   F)Ú_nrtc                 óú   — | j                   t        k(  rt        | j                  |«      S | j                   t        k(  rt        | j                  |«      S | j                   t        k(  rt        | j                  |«      S yrí   )rf   r   rÒ   rd   r   rÖ   r   rÙ   )ÚaÚis     r^   Ú_get_code_pointr÷     sa   € à‡w�wÔ'Ò'Ü˜1Ÿ7™7 AÓ&Ð&Ø	
�‰Ô)Ò	)Ü˜AŸG™G QÓ'Ð'Ø	
�‰Ô)Ò	)Ü˜AŸG™G QÓ'Ð'ð r_   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó  •— |\  }}}‰dk  r|j                  |t        ‰«      «      }|j                  |t        ‰«      j                  «       «      }|j	                  ||j                  ||g«      «       | j                  «       S rº   )Útruncr   r¼   r½   Ústorer¿   Úget_dummy_value)	r“   r”   rÁ   rÂ   rL   rÃ   rÅ   rÄ   rÆ   s	           €r^   rÇ   z!make_set_codegen.<locals>.codegen0  sr   ø€ Ø‰ˆˆc�2Ø�RŠ<Ø—‘˜r¤7¨7Ó#3Ó4ˆBØ�o‰o˜d¤G¨GÓ$4×$?Ñ$?Ó$AÓBˆØ�‰�b˜'Ÿ+™+ c¨C¨5Ó1Ô2Ø×&Ñ&Ó(Ð(r_   rc   rÈ   s   ` r^   Úmake_set_codegenrý   /  s   ø€ ô)ð €Nr_   c                 óž   — t        j                  t         j                  t         j                  t         j                  «      }|t        d«      fS rË   ©r   ÚvoidrS   Úint64rV   rý   ©rÏ   rL   rÃ   rÅ   rÑ   s        r^   Ú	set_uint8r  ;  s1   € ä
�*‰*”U—]‘]¤E§K¡K´·±Ó
>€CØÔ  Ó#Ð#Ð#r_   c                 óž   — t        j                  t         j                  t         j                  t         j                  «      }|t        d«      fS rÔ   rÿ   r  s        r^   Ú
set_uint16r  A  ó1   € ä
�*‰*”U—]‘]¤E§K¡K´·±Ó
>€CØÔ  Ó$Ð$Ð$r_   c                 óž   — t        j                  t         j                  t         j                  t         j                  «      }|t        d«      fS rº   rÿ   r  s        r^   Ú
set_uint32r  G  r  r_   c                 ó  — | j                   t        k(  rt        | j                  ||«       y | j                   t        k(  rt        | j                  ||«       y | j                   t        k(  rt        | j                  ||«       y t        d«      ‚)Nz4Unexpected unicode representation in _set_code_point)	rf   r   r  rd   r   r  r   r  ÚAssertionError)rõ   rö   rÅ   s      r^   rî   rî   M  sm   € ð 	‡w�wÔ'Ò'Ü�!—'‘'˜1˜bÕ!Ø	
�‰Ô)Ò	)Ü�1—7‘7˜A˜rÕ"Ø	
�‰Ô)Ò	)Ü�1—7‘7˜A˜rÕ"äØBóDð 	Dr_   ))rD   é   )rD   é   )rD   é   c                 óp   — | t         k(  r|S | t        k(  r|t        k(  r|S | S | t        k(  r| S t        d«      ‚)Nú/Unexpected unicode representation in _pick_kind©r   r   r   r
  ©Úkind1Úkind2s     r^   Ú
_pick_kindr  a  sL   € àÔ)Ò)ØˆLØÔ+Ò+ØÔ-Ò-Ø�à�ØÔ+Ò+ØˆLä ØAóCð Cr_   c                 óª   — | t         k(  s	|t         k(  rt        d«      ‚| t        k(  r|S | t        k(  r|t        k(  r|S | S | t        k(  r| S t        d«      ‚)Nú!PY_UNICODE_WCHAR_KIND unsupportedr  )rG   r
  r   r   r   r  s     r^   r  r  p  si   € àÔ*Ò*¨eÔ7LÒ.LÜ Ð!DÓEÐEàÔ)Ò)ØˆLØÔ+Ò+ØÔ-Ò-Ø�à�ØÔ+Ò+ØˆLä ØAóCð Cr_   c                 ój   — | dk(  r|dk(  rt        j                  d«      S t        j                  d«      S ©Nr}   r   )r   rV   )Ú	is_ascii1Ú	is_ascii2s     r^   Ú_pick_asciir  …  s+   € à�A‚~˜) qš.Ü�|‰|˜A‹ÐÜ�<‰<˜‹?Ðr_   c                 óT   — | t         k(  ry| t        k(  ry| t        k(  ryt        d«      ‚)Nr}   é   é   ú'Unexpected unicode encoding encounteredr  ©rN   s    r^   r�   r�   �  s2   € àÔ(Ò(ØØÔ*Ò*ØØÔ*Ò*Øä Ð!JÓKÐKr_   c                 ó|   — | t         k(  ry| t        k(  ry| t        k(  ry| t        k(  rt	        d«      ‚t	        d«      ‚)Nr}   r  r  r  r  )r   r   r   rG   r
  r   s    r^   r�   r�   ˜  sG   € àÔ(Ò(ØØÔ*Ò*ØØÔ*Ò*ØØÔ*Ò*Ü Ð!DÓEÐEä Ð!JÓKÐKr_   c                 óÔ   — |dk(  ry||z   | j                   kD  ry||z   |j                   kD  ryt        |«      D ].  }t        | ||z   «      }t        |||z   «      }||k  r y||kD  sŒ. y y)Nr   r�   r}   )re   Úranger÷   )rõ   Úa_offsetÚbÚb_offsetÚnrö   Úa_chrÚb_chrs           r^   Ú_cmp_regionr*  ¨  sy   € àˆA‚vØØ	�A‰˜Ÿ	™	Ò	!ØØ	�A‰˜Ÿ	™	Ò	!Øä�1ŽXˆÜ  8¨a¡<Ó0ˆÜ  8¨a¡<Ó0ˆØ�5Š=ÙØ�U‹]Ùð ð r_   c                 ób   — | dk  rt         S | dk  rt        S d}| |kD  rd}t        |«      ‚t        S )zK
    Compute the minimum unicode kind needed to hold a given codepoint
    é   i   rH   z;Invalid codepoint. Found value greater than Unicode maximum)r   r   r   r   )ÚcpÚMAX_UNICODEÚmsgs      r^   Ú_codepoint_to_kindr0  ¼  sB   € ð
 
ˆC‚xÜ$Ð$Ø	ˆeŠÜ$Ð$ð ˆØ�ÒØOˆCÜ˜S“/Ð!Ü$Ð$r_   c                 ó   — | dk  S )z;
    Returns true if a codepoint is in the ASCII range
    é€   rc   )rÅ   s    r^   Ú_codepoint_is_asciir3  Î  s   € ð
 �‰8€Or_   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — | j                   S r�   )re   ©rñ   s    r^   Úlen_implzunicode_len.<locals>.len_implÜ  s   € Ø—9‘9Ðr_   ©Ú
isinstancer   ÚUnicodeType)rñ   r7  s     r^   Úunicode_lenr;  Ù  s!   € ä�!”U×&Ñ&Ô'ò	àˆð (r_   c                 óŽ  — | j                   r|j                   sy t        | t        j                  «      r| j                  }n| }t        |t        j                  «      r|j                  }n|}t        j
                  t        j                  t        j                  f}t        ||«      }t        ||«      }|r|rd„ }|S ||z  rd„ }|S y )Nc           	      ó¸   — | d u }|d u }|s|r|r|ryyt        | «      } t        |«      }t        | «      t        |«      k7  ryt        | d|dt        | «      «      dk(  S )NTFr   )ÚstrÚlenr*  )rõ   r%  Úa_noneÚb_nones       r^   Úeq_implzunicode_eq.<locals>.eq_implñ  se   € à˜$�YˆFØ˜$�YˆFÙ™Ù™fØà ä�A“ˆAÜ�A“ˆAÜ�1‹vœ˜Q›ÒØÜ˜q ! Q¨¬3¨q«6Ó2°aÑ7Ð7r_   c                  ó   — y©NFrc   ©rõ   r%  s     r^   rB  zunicode_eq.<locals>.eq_impl  s   € Ør_   )Úis_internalr9  r   ÚOptionalr‘   r:  ÚStringLiteralÚUnicodeCharSeq)rõ   r%  Úcheck_aÚcheck_bÚacceptÚ	a_unicodeÚ	b_unicoderB  s           r^   Ú
unicode_eqrO  á  s¨   € à�MŠM˜aŸmšmØÜ�!”U—^‘^Ô$Ø—&‘&‰àˆÜ�!”U—^‘^Ô$Ø—&‘&‰àˆÜ×Ñ¤×!4Ñ!4´e×6JÑ6JÐK€FÜ˜7 FÓ+€IÜ˜7 FÓ+€IÙ‘Yò	8ð ˆØ	�YÒ	ò	àˆð	 
r_   c                 óê   — | j                   r|j                   sy t        j                  t        j                  t        j                  f}t        | |«      }t        ||«      }|r|rd„ }|S ||z  rd„ }|S y )Nc                 ó   — | |k(   S r�   rc   rE  s     r^   Úne_implzunicode_ne.<locals>.ne_impl  s   € Ø˜Q™�<Ðr_   c                  ó   — y)NTrc   rE  s     r^   rB  zunicode_ne.<locals>.eq_impl  s   € Ør_   )rF  r   r:  rH  rI  r9  )rõ   r%  rL  rM  rN  rR  rB  s          r^   Ú
unicode_nerT    sn   € à�MŠM˜aŸmšmØÜ×Ñ¤×!4Ñ!4´e×6JÑ6JÐK€FÜ˜1˜fÓ%€IÜ˜1˜fÓ%€IÙ‘Yò	 àˆØ	�YÒ	ò	àˆð	 
r_   c                 óÀ   — t        | t        j                  t        j                  f«      }t        |t        j                  t        j                  f«      }|r|rd„ }|S y y )Nc                 ó¢   — t        t        | «      t        |«      «      }t        | d|d|«      }|dk(  ry|dk(  rt        | «      t        |«      k  S y)Nr   r�   TF©Úminr?  r*  ©rõ   r%  ÚminlenÚeqcodes       r^   Últ_implzunicode_lt.<locals>.lt_impl  sN   € Üœ˜Q›¤ Q£Ó(ˆFÜ   A q¨!¨VÓ4ˆFØ˜Š|ØØ˜1’Ü˜1“v¤ A£‘Ð&Ør_   ©r9  r   r:  rH  )rõ   r%  rM  rN  r\  s        r^   Ú
unicode_ltr^    óT   € ä˜1œu×0Ñ0´%×2EÑ2EÐFÓG€IÜ˜1œu×0Ñ0´%×2EÑ2EÐFÓG€IÙ‘Yò	ð ˆð €yr_   c                 óÀ   — t        | t        j                  t        j                  f«      }t        |t        j                  t        j                  f«      }|r|rd„ }|S y y )Nc                 ó¢   — t        t        | «      t        |«      «      }t        | d|d|«      }|dk(  ry|dk(  rt        | «      t        |«      kD  S y)Nr   r}   TFrW  rY  s       r^   Úgt_implzunicode_gt.<locals>.gt_impl/  sN   € Üœ˜Q›¤ Q£Ó(ˆFÜ   A q¨!¨VÓ4ˆFØ˜Š{ØØ˜1’Ü˜1“v¤ A£‘Ð&Ør_   r]  )rõ   r%  rM  rN  rb  s        r^   Ú
unicode_gtrc  *  r_  r_   c                 óÀ   — t        | t        j                  t        j                  f«      }t        |t        j                  t        j                  f«      }|r|rd„ }|S y y )Nc                 ó   — | |kD   S r�   rc   rE  s     r^   Úle_implzunicode_le.<locals>.le_impl?  ó   € Ø˜A™�;Ðr_   r]  )rõ   r%  rM  rN  rf  s        r^   Ú
unicode_lerh  :  óR   € ä˜1œu×0Ñ0´%×2EÑ2EÐFÓG€IÜ˜1œu×0Ñ0´%×2EÑ2EÐFÓG€IÙ‘Yò	àˆð €yr_   c                 óÀ   — t        | t        j                  t        j                  f«      }t        |t        j                  t        j                  f«      }|r|rd„ }|S y y )Nc                 ó   — | |k   S r�   rc   rE  s     r^   Úge_implzunicode_ge.<locals>.ge_implI  rg  r_   r]  )rõ   r%  rM  rN  rl  s        r^   Ú
unicode_germ  D  ri  r_   c                 óx   — t        | t        j                  «      r t        |t        j                  «      rd„ }|S y y )Nc                 ó    — t        | |«      dkD  S ©Nr�   )Ú_findrE  s     r^   Úcontains_implz'unicode_contains.<locals>.contains_implQ  s   € ä˜˜A“; Ñ#Ð#r_   r8  )rõ   r%  rr  s      r^   Úunicode_containsrs  N  s7   € ä�!”U×&Ñ&Ô'¬J°q¼%×:KÑ:KÔ,Lò	$ð Ðð	 -MÐ'r_   c                 ó8  — | }t        | t        j                  «      r| j                  }n&t        | t        j                  «      r| j
                  }t        j                  t        j                  f}|�)t        ||«      st        dj                  ||| «      «      ‚yy)zƒCheck object belongs to one of specific types
    ty: type
        Type of the object
    name: str
        Name of the object
    Nú"{}" must be {}, not {})
r9  r   ÚOmittedr€   rG  r‘   ÚIntegerÚNoneTyper!   Úformat)ÚtyÚnameÚthetyÚaccepteds       r^   Úunicode_idx_check_typer~  W  s{   € ð €Eä�"”e—m‘mÔ$Ø—‘‰ä	�BœŸ™Ô	'Ø—‘ˆä—‘œuŸ~™~Ð.€HØÐ¤¨E°8Ô!<ÜÐ3×:Ñ:¸4ÀÈ2ÓNÓOÐOð "=Ðr_   c                 ó�   — t        | t        j                  «      s,dj                  |t        j                  | «      }t	        |«      ‚y)z$Check object belongs to unicode typeru  N)r9  r   r:  ry  r!   )rz  r{  r/  s      r^   Úunicode_sub_check_typer€  k  s<   € ä�bœ%×+Ñ+Ô,Ø'×.Ñ.¨t´U×5FÑ5FÈÓKˆÜ˜#ÓÐð -r_   c                 ó*   — | d|t         dz
  z  z  z  } | S ©Nr}   ©Ú_BLOOM_WIDTH©ÚmaskrÅ   s     r^   Ú
_bloom_addr‡  t  s    € àˆQ�2œ¨Ñ)Ñ*Ñ+Ñ,€DØ€Kr_   c                 ó&   — | d|t         dz
  z  z  z  S r‚  rƒ  r…  s     r^   Ú_bloom_checkr‰  z  s   € à�1˜œ|¨aÑ/Ñ0Ñ1Ñ2Ð2r_   c                 ón  — t        |«      }|dk(  r|S |dz
  x}}t        ||«      }t        j                  d«      }t	        ||«      }	t        |«      D ](  }
t        ||
«      }t	        |	|«      }	||k(  sŒ!||
z
  dz
  }Œ* |}
|
||z
  k  r¯t        | ||
z   «      }||k(  rgd}||k  r,t        | |
|z   «      }t        ||«      }||k7  rn|dz  }||k  rŒ,||k(  r|
S t        | ||
z   dz   «      }t        |	|«      dk(  r|
|z  }
n,|
|z  }
n&t        | ||
z   dz   «      }t        |	|«      dk(  r|
|z  }
|
dz  }
|
||z
  k  rŒ¯y)zLeft finder.r   r}   r�   )r?  r÷   r   rT   r‡  r#  r‰  )rL   ÚsubstrÚstartÚendÚmÚgapÚmlastÚlastÚzeror†  rö   rÅ   ÚjÚhaystack_chÚ	needle_chs                  r^   Ú_default_findr–  €  s~  € ô 	ˆF‹€AØˆA‚vØˆà�a‘%Ð€Cˆ%Ü˜6 5Ó)€Dä�:‰:�a‹=€DÜ�d˜DÓ!€DÜ�5Ž\ˆÜ˜V QÓ'ˆÜ˜$ Ó#ˆØ�‹:Ø˜!‘)˜a‘-‰Cð	 ð 	€AØ
ˆs�Q‰wŠ,Ü˜T 5¨1¡9Ó-ˆØ�Š:ØˆAØ�e’)Ü-¨d°A¸±EÓ:�Ü+¨F°AÓ6�	Ø )Ò+ØØ�Q‘�ð �e“)ð �EŠzà�ä   u¨q¡y°1¡}Ó5ˆBÜ˜D "Ó%¨Ò*Ø�Q‘‘à�S‘‘ä   u¨q¡y°1¡}Ó5ˆBÜ˜D "Ó%¨Ò*Ø�Q‘�Ø	ˆQ‰ˆð/ ˆs�Q‰w‹,ð2 r_   c                 ó<  — t        |«      }|dk(  r|S |dz
  x}}t        |d«      }t        d|«      }|}	|	dkD  r-t        ||	«      }
t        ||
«      }|
|k(  r|	dz
  }|	dz  }	|	dkD  rŒ-||z
  }	|	|k\  r­t        | |	«      }
|
|k(  ri|}|dkD  r,t        | |	|z   «      }t        ||«      }||k7  rn|dz  }|dkD  rŒ,|dk(  r|	S t        | |	dz
  «      }
|	|kD  rt        ||
«      dk(  r|	|z  }	n.|	|z  }	n(t        | |	dz
  «      }
|	|kD  rt        ||
«      dk(  r|	|z  }	|	dz  }	|	|k\  rŒ­y)zRight finder.r   r}   r�   )r?  r÷   r‡  r‰  )rL   r‹  rŒ  r�  rŽ  Úskipr�  Úmfirstr†  rö   rÅ   r“  r”  r•  s                 r^   Ú_default_rfindrš  ¯  s{  € ô 	ˆF‹€AØˆA‚vØˆ
à�q‘5Ð€Dˆ5Ü˜V QÓ'€FÜ�a˜Ó €DØ€AØ
ˆaŠ%Ü˜V QÓ'ˆÜ˜$ Ó#ˆØ�Š<Ø�q‘5ˆDØ	ˆQ‰ˆð ˆa‹%ð 	ˆa‰€AØ
ˆuŠ*Ü˜T 1Ó%ˆØ�Š<ØˆAØ�a’%Ü-¨d°A¸±EÓ:�Ü+¨F°AÓ6�	Ø )Ò+ØØ�Q‘�ð �a“%ð �AŠvà�ä   q¨1¡uÓ-ˆBØ�5Šyœ\¨$°Ó3°qÒ8Ø�Q‘‘à�T‘	‘ô !  q¨1¡uÓ-ˆBØ�5Šyœ\¨$°Ó3°qÒ8Ø�Q‘�Ø	ˆQ‰ˆð3 ˆu‹*ð6 r_   c                 ó   ‡ — dˆ fd„	}|S )z%Generate finder either left or right.c                 óˆ   •— t        | «      }t        |«      }|€d}|€|}t        |||«      \  }}||z
  |k  ry ‰| |||«      S )Nr   r�   )r?  Ú_adjust_indices)rL   r‹  rŒ  r�  rM   Ú
sub_lengthÚ	find_funcs         €r^   Úimplzgenerate_finder.<locals>.implâ  s[   ø€ Ü�T“ˆÜ˜“[ˆ
Øˆ=ØˆEØˆ;ØˆCä$ V¨U°CÓ8‰
ˆˆsØ�‰;˜Ò#Øá˜˜v u¨cÓ2Ð2r_   ©NNrc   )rŸ  r   s   ` r^   Úgenerate_finderr¢  à  s   ø€ õ3ð €Kr_   Úfindc                 ó–   — t        |t        j                  «      rdd„}|S t        |d«       t        |d«       t	        |d«       t
        S )zImplements str.find()c                 ó6   — | j                  t        |«      «      S r�   )r£  r>  ©rL   r‹  rŒ  r�  s       r^   Ú	find_implzunicode_find.<locals>.find_implû  s   € Ø—9‘9œS ›[Ó)Ð)r_   rŒ  r�  r‹  r¡  )r9  r   rI  r~  r€  rq  )rL   r‹  rŒ  r�  r§  s        r^   Úunicode_findr¨  ÷  sB   € ô �&œ%×.Ñ.Ô/ó	*àÐä˜5 'Ô*Ü˜3 Ô&Ü˜6 8Ô,ä€Lr_   Úrfindc                 ó–   — t        |t        j                  «      rdd„}|S t        |d«       t        |d«       t	        |d«       t
        S )zImplements str.rfind()c                 ó6   — | j                  t        |«      «      S r�   )r©  r>  r¦  s       r^   Ú
rfind_implz!unicode_rfind.<locals>.rfind_impl
  s   € Ø—:‘:œc &›kÓ*Ð*r_   rŒ  r�  r‹  r¡  )r9  r   rI  r~  r€  Ú_rfind)rL   r‹  rŒ  r�  r¬  s        r^   Úunicode_rfindr®    sB   € ô �&œ%×.Ñ.Ô/ó	+àÐä˜5 'Ô*Ü˜3 Ô&Ü˜6 8Ô,ä€Mr_   Úrindexc                 óV   — t        |d«       t        |d«       t        |d«       dd„}|S )zImplements str.rindex()rŒ  r�  Úsubc                 óL   — | j                  |||«      }|dk  rt        d«      ‚|S ©Nr   zsubstring not found)r©  r   ©rñ   r±  rŒ  r�  Úresults        r^   Úrindex_implz#unicode_rindex.<locals>.rindex_impl  s,   € Ø—‘˜˜e SÓ)ˆØ�AŠ:ÜÐ2Ó3Ð3àˆr_   r¡  ©r~  r€  )rñ   r±  rŒ  r�  r¶  s        r^   Úunicode_rindexr¸    s/   € ô ˜5 'Ô*Ü˜3 Ô&Ü˜3 Ô&óð Ðr_   rl   c                 óV   — t        |d«       t        |d«       t        |d«       dd„}|S )zImplements str.index()rŒ  r�  r±  c                 óL   — | j                  |||«      }|dk  rt        d«      ‚|S r³  )r£  r   r´  s        r^   Ú
index_implz!unicode_index.<locals>.index_impl/  s,   € Ø—‘˜˜U CÓ(ˆØ�AŠ:ÜÐ2Ó3Ð3àˆr_   r¡  r·  )rñ   r±  rŒ  r�  r»  s        r^   Úunicode_indexr¼  (  s/   € ô ˜5 'Ô*Ü˜3 Ô&Ü˜3 Ô&óð Ðr_   Ú	partitionc                 óB  — |}t        |t        j                  «      r|j                  }n&t        |t        j                  «      r|j
                  }t        j                  t        j                  f}|�*t        ||«      sdj                  d||«      }t        |«      ‚d„ }|S )zImplements str.partition()ru  Úsepc                 óL  — t        |«      }t        | j                  d| j                  «      }t	        |«      }| j                  |j                  k  st	        | «      |k  r| ||fS |dk(  rt        d«      ‚| j                  |«      }|dk  r| ||fS | d| || ||z   t	        | «       fS ©Nr   úempty separator)r>  rò   rf   rg   r?  r   r£  ©rL   r¿  Ú	empty_strÚ
sep_lengthÚposs        r^   r   zunicode_partition.<locals>.implJ  s©   € ä�#‹hˆÜ! $§*¡*¨a°·±Ó@ˆ	Ü˜“Xˆ
Ø�:‰:˜Ÿ	™	Ò!¤S¨£Y°Ò%;Ø˜ IÐ-Ð-à˜Š?ÜÐ.Ó/Ð/à�i‰i˜‹nˆØ�Š7Ø˜ IÐ-Ð-à�A�cˆ{˜C  c¨JÑ&6´s¸4³yÐ!AÐAÐAr_   ©
r9  r   rv  r€   rG  r‘   r:  rI  ry  r!   ©rL   r¿  r|  r}  r/  r   s         r^   Úunicode_partitionrÉ  :  óˆ   € ð €Eä�#”u—}‘}Ô%Ø—	‘	‰ä	�CœŸ™Ô	(Ø—‘ˆä×!Ñ!¤5×#7Ñ#7Ð8€HØÐ¤¨E°8Ô!<Ø'×.Ñ.¨u°hÀÓDˆÜ˜#ÓÐòBð" €Kr_   Úcountc                 ó¸   — t        |«       t        |«       t        |t        j                  «      rdd„}|S d}t	        |j                  t        |«      «      «      ‚)Nc                 ó  — d}t        | «      }t        |«      }t        ||d«      }t        |||«      }||z
  dk  s||kD  ry| || } t        | «      }d|}}|dk(  r|dz   S ||z   |k  r$| |||z    |k(  r|dz  }||z  }n|dz  }||z   |k  rŒ$|S ©Nr   r}   )r?  Ú_normalize_slice_idx_count)Úsrcr±  rŒ  r�  rË  Úsrc_lenÚsub_lens          r^   Ú
count_implz!unicode_count.<locals>.count_imple  sÈ   € ØˆEÜ˜#“hˆGÜ˜#“hˆGä.¨u°g¸qÓAˆEÜ,¨S°'¸7ÓCˆCà�U‰{˜QŠ %¨'¢/Øà�e˜cÐ"ˆCÜ˜#“hˆGØ˜G�3ˆEØ˜!Š|Ø ‘{Ð"à˜7‘? gÒ-Ø�u˜u w™Ð/°3Ò6Ø˜Q‘J�EØ˜WÑ$‘Eà˜Q‘J�Eð ˜7‘? gÓ-ð ˆLr_   z+The substring must be a UnicodeType, not {}r¡  )Ú_count_args_types_checkr9  r   r:  r!   ry  r‘   )rÐ  r±  rŒ  r�  rÓ  Ú	error_msgs         r^   Úunicode_countrÖ  ^  sP   € ô ˜EÔ"Ü˜CÔ ä�#”u×(Ñ(Ô)ó	ð0 ÐØ=€IÜ
�i×&Ñ&¤t¨C£yÓ1Ó
2Ð2r_   Ú
rpartitionc                 óB  — |}t        |t        j                  «      r|j                  }n&t        |t        j                  «      r|j
                  }t        j                  t        j                  f}|�*t        ||«      sdj                  d||«      }t        |«      ‚d„ }|S )zImplements str.rpartition()ru  r¿  c                 óL  — t        |«      }t        | j                  d| j                  «      }t	        |«      }| j                  |j                  k  st	        | «      |k  r||| fS |dk(  rt        d«      ‚| j                  |«      }|dk  r||| fS | d| || ||z   t	        | «       fS rÁ  )r>  rò   rf   rg   r?  r   r©  rÃ  s        r^   r   z unicode_rpartition.<locals>.impl“  s©   € ä�#‹hˆÜ! $§*¡*¨a°·±Ó@ˆ	Ü˜“Xˆ
Ø�:‰:˜Ÿ	™	Ò!¤S¨£Y°Ò%;Ø˜i¨Ð-Ð-à˜Š?ÜÐ.Ó/Ð/à�j‰j˜‹oˆØ�Š7Ø˜i¨Ð-Ð-à�A�cˆ{˜C  c¨JÑ&6´s¸4³yÐ!AÐAÐAr_   rÇ  rÈ  s         r^   Úunicode_rpartitionrÚ  ƒ  rÊ  r_   c                 ó\   — || kD  r| }|dk  r|| z  }|dk  rd}|dk  r|| z  }|dk  rd}||fS rí   rc   )rM   rŒ  r�  s      r^   r�  r�  ¨  sP   € à
ˆV‚|ØˆØ
ˆQ‚wØˆv‰ˆØ�Š7ØˆCØˆq‚yØ�‰ˆØ�1Š9ØˆEà�#ˆ:Ðr_   Ú
startswithc                 óà  — t        |«      s%t        |t        j                  «      st	        d«      ‚t        |«      s%t        |t        j                  «      st	        d«      ‚t        |t        j
                  «      r*t        |j                  t        j                  «      rdd„}|S t        |t        j                  «      rdd„}|S t        |t        j                  «      rdd„}|S t	        d«      ‚)Nz:When specified, the arg 'start' must be an Integer or Nonez8When specified, the arg 'end' must be an Integer or Nonec                 ó<   — |D ]  }| j                  |||«      sŒ y y©NTF)rÜ  )rñ   ÚprefixrŒ  r�  Úitems        r^   Ústartswith_tuple_implz1unicode_startswith.<locals>.startswith_tuple_implÅ  s$   € Û�Ø—<‘<  e¨SÕ1Ùð ð r_   c                 ó:   — | j                  t        |«      ||«      S r�   )rÜ  r>  )rñ   rà  rŒ  r�  s       r^   Ústartswith_char_seq_implz4unicode_startswith.<locals>.startswith_char_seq_implÎ  s   € Ø—<‘<¤ F£¨U°CÓ8Ð8r_   c                 óª   — t        | «      t        |«      }}|€d}|€|}t        |||«      \  }}||z
  |k  ry|dk(  ry| || }t        |d|d|«      dk(  S ©Nr   FT©r?  r�  r*  )rñ   rà  rŒ  r�  rM   Úprefix_lengthÚs_slices          r^   Ústartswith_unicode_implz3unicode_startswith.<locals>.startswith_unicode_implÔ  sv   € Ü$'¨£F¬C°«K�MˆFØˆ}Ø�Øˆ{Ø�ä(¨°¸Ó<‰JˆE�3Ø�U‰{˜]Ò*Øà Ò!Øà˜˜c�lˆGä˜w¨¨6°1°mÓDÈÑIÐIr_   z9The arg 'prefix' should be a string or a tuple of stringsr¡  )	r   r9  r   rw  r!   ÚUniTupleÚdtyper:  rI  )rñ   rà  rŒ  r�  râ  rä  rê  s          r^   Úunicode_startswithrí  ¸  sÒ   € ä�uÔ¤j°¼¿¹Ô&FÜØHóJð 	Jô �sÔ¤J¨s´E·M±MÔ$BÜØFóHð 	Hô �&œ%Ÿ.™.Ô)Ü�v—|‘|¤U×%6Ñ%6Ô7ó	ð %Ð$ä	�FœE×0Ñ0Ô	1ó	9ð (Ð'ä	�FœE×-Ñ-Ô	.ó	Jð$ 'Ð&ô ØGóIð 	Ir_   Úendswithc                 óü  — |�Dt        |t        j                  t        j                  t        j                  f«      st        d«      ‚|�Dt        |t        j                  t        j                  t        j                  f«      st        d«      ‚t        |t        j                  t        j                  f«      rdd„}|S t        |t        j                  «      rdd„}|S t        |t        j                  «      rdd„}|S y )Nz!The arg must be a Integer or Nonec                 ó@   — |D ]  }| j                  |||«      du sŒ y yrß  )rî  )rñ   r‹  rŒ  r�  rá  s        r^   Úendswith_implz'unicode_endswith.<locals>.endswith_implú  s)   € Û�Ø—:‘:˜d E¨3Ó/°4Ò7Ùð ð r_   c                 óÆ   — t        | «      }t        |«      }|€d}|€|}t        |||«      \  }}||z
  |k  ry|dk(  ry| || } t        | «      |z
  }t        | ||d|«      dk(  S ræ  rç  )rñ   r‹  rŒ  r�  rM   rž  rÐ   s          r^   rñ  z'unicode_endswith.<locals>.endswith_impl  s„   € Ü˜“VˆFÜ˜V›ˆJØˆ}Ø�Øˆ{Ø�ä(¨°¸Ó<‰JˆE�3Ø�U‰{˜ZÒ'Øà˜QŠØà�%˜�ˆAÜ˜“V˜jÑ(ˆFä˜q &¨&°!°ZÓ@ÀAÑEÐEr_   c                 ó:   — | j                  t        |«      ||«      S r�   )rî  r>  )rñ   r‹  rŒ  r�  s       r^   rñ  z'unicode_endswith.<locals>.endswith_impl  s   € Ø—:‘:œc &›k¨5°#Ó6Ð6r_   r¡  )
r9  r   rv  rw  rx  r!   ÚTuplerë  r:  rI  )rñ   r‹  rŒ  r�  rñ  s        r^   Úunicode_endswithrõ  í  sÐ   € àˆMœZ¨´·±Ü05·±Ü05·±ð0@ô Aô Ð=Ó>Ð>àˆKœ: c¬E¯M©MÜ,1¯M©MÜ,1¯N©Nð,<ô =ô Ð=Ó>Ð>ä�&œ5Ÿ;™;¬¯©Ð7Ô8ó	ð Ðä�&œ%×+Ñ+Ô,ó	Fð& Ðä�&œ%×.Ñ.Ô/ó	7àÐð 0r_   Ú
expandtabsc                 ó*  — |}t        |t        j                  «      r|j                  }n&t        |t        j                  «      r|j
                  }t        j                  t        f}|�'t        ||«      st        dj                  ||«      «      ‚dd„}|S )zImplements str.expandtabs()z"tabsize" must be {}, not {}c                 óÊ  — t        | «      }dx}}d}t        |«      D ]�  }t        | |«      }|t        k(  r<d}|dkD  sŒ |||z  z
  }|t        j
                  |z
  kD  rt        d«      ‚||z  }||z  }ŒT|t        j
                  dz
  kD  rt        d«      ‚|dz  }|dz  }|t        t        fv sŒŽd}Œ‘ |s| S t        | j                  || j                  «      }	dx}}t        |«      D ]}  }t        | |«      }|t        k(  r>|dkD  sŒ|||z  z
  }||z  }t        |||z   «      D ]  }
t        |	|
t        «       Œ ||z  }ŒV|dz  }t        |	||«       |dz  }|t        t        fv sŒ|d}Œ |	S )Nr   FTznew string is too longr}   )r?  r#  r÷   r:   ÚsysÚmaxsizeÚOverflowErrorr;   r<   rò   rf   rg   rî   r=   )rL   ÚtabsizerM   r“  Úline_posÚfoundrö   Ú
code_pointÚincrr¶   rÃ   s              r^   Úexpandtabs_implz+unicode_expandtabs.<locals>.expandtabs_impl/  s–  € Ü�T“ˆØÐˆˆHØˆÜ�v–ˆAÜ(¨¨qÓ1ˆJØœWÒ$Ø�Ø˜Q“;à" h°Ñ&8Ñ9�DØœ3Ÿ;™;¨Ñ-Ò-Ü+Ð,DÓEÐEØ Ñ$�HØ˜‘I‘Aà”s—{‘{ Q‘Ò&Ü'Ð(@ÓAÐAØ˜A‘�Ø�Q‘�Ø¤,Ô0CÐ!DÒDØ ‘Hð# ñ& ØˆKä˜DŸJ™J¨¨4¯>©>Ó:ˆØÐˆˆHÜ�v–ˆAÜ(¨¨qÓ1ˆJØœWÒ$Ø˜Q“;Ø" h°Ñ&8Ñ9�DØ Ñ$�HÜ$ Q¨¨D©Ö1˜Ü'¨¨S´)Õ<ð  2à˜‘I‘Aà˜A‘�Ü  Q¨
Ô3Ø�Q‘�Ø¤,Ô0CÐ!DÒDØ ‘Hð ð  ˆ
r_   ©rÌ   )
r9  r   rv  r€   rG  r‘   rw  Úintr!   ry  )rL   rü  r|  r}  r  s        r^   Úunicode_expandtabsr    s�   € ð €Eä�'œ5Ÿ=™=Ô)Ø—‘‰ä	�GœUŸ^™^Ô	,Ø—‘ˆä—‘œsÐ#€HØÐ¤¨E°8Ô!<ÜØ*×1Ñ1°(¸GÓDóFð 	Fó,ð\ Ðr_   Úsplitc                 ó`  — |dk(  s:t        |t        j                  t        j                  t        j                  f«      sy t        |t        j
                  «      rdd„}|S t        |t        j                  «      rdd„}|S |�'t        |t        j                  «      st        |dd«      €dd„}|S y )Nr�   c                 ó:   — | j                  t        |«      |¬«      S )N)Úmaxsplit)r  r>  )rõ   r¿  r  s      r^   Ú
split_implz!unicode_split.<locals>.split_implh  s   € Ø—7‘7œ3˜s›8¨h�7Ó7Ð7r_   c                 óä  — t        | «      }t        |«      }|dk(  rt        d«      ‚g }d}d}|dk(  rK|dk(  rFt        |d«      }t        |«      D ]+  }t        | |«      |k(  sŒ|j	                  | || «       |dz   }Œ- nZd}	||k  rS|dk(  s|	|k  rIt        | ||d|«      dk(  r!|j	                  | || «       ||z  }|}|	dz  }	n|dz  }||k  r|dk(  rŒC|	|k  rŒI||k  r|j	                  | |d  «       |S )Nr   rÂ  r}   r�   )r?  r   r÷   r#  Úappendr*  )
rõ   r¿  r  Úa_lenÚsep_lenÚpartsr‘  rÃ   Úsep_code_pointÚsplit_counts
             r^   r	  z!unicode_split.<locals>.split_implm  s"  € Ü˜“FˆEÜ˜#“hˆGà˜!Š|Ü Ð!2Ó3Ð3àˆEØˆDØˆCà˜!Š| ¨B¢Ü!0°°aÓ!8�Ü  ž<�CÜ& q¨#Ó.°.Ó@ØŸ™ Q t¨C [Ô1Ø" Q™w™ñ (ð
  �à˜E’k x°2¢~Ø'2°XÒ'=Ü" 1 c¨3°°7Ó;¸qÒ@ØŸ™ Q t¨C [Ô1Ø˜w™˜Ø"˜Ø# qÑ(™à˜q™˜ð ˜E’k x°2£~Ø'2°XÓ'=ð �uŠ}Ø—‘˜Q˜t˜u˜XÔ&àˆLr_   r€   Fc                 ó  — t        | «      }g }d}d}d}d}t        |«      D ]N  }t        | |«      }	t        |	«      }
|r|
rŒ|}d}Œ$|
sŒ'|j	                  | || «       d}|dz  }|dk7  sŒH||k(  sŒN n ||k  r|s|j	                  | |d  «       |S )Nr   TFr}   r�   )r?  r#  r÷   r+   r  )rõ   r¿  r  r  r  r‘  rÃ   r  Úin_whitespace_blockrÿ  Úis_whitespaces              r^   Úsplit_whitespace_implz,unicode_split.<locals>.split_whitespace_impl’  s¹   € Ü˜“FˆEàˆEØˆDØˆCØˆKØ"&Ðä˜U–|�Ü,¨Q°Ó4�
Ü 2°:Ó >�Ù&Ù$Øà"˜Ø.3Ñ+á(ØàŸ™ Q t¨C [Ô1Ø.2Ð+Ø# qÑ(˜Ø# r›>¨k¸XÓ.EÙ!ð# $ð& �uŠ}Ñ%8Ø—‘˜Q˜t˜u˜XÔ&àˆLr_   rp  )	r9  r   rv  rw  ÚIntegerLiteralrI  r:  rx  Úgetattr)rõ   r¿  r  r	  r  s        r^   Úunicode_splitr  `  sž   € à˜ŠNÜ�x¤%§-¡-´·±Ü"'×"6Ñ"6ð"8ô 9àä�#”u×+Ñ+Ô,ó	8àÐä�#”u×(Ñ(Ô)ó!	ðD ÐØ	ˆœ
 3¬¯©Ô7Ü�C˜ %Ó(Ð0ó	ð@ %Ð$ðC 1r_   c                 ó   ‡ — dˆ fd„	}|S )z@Generate whitespace rsplit func based on either ascii or unicodec                 óì  •— |dk  rt         j                  }g }t        | «      dz
  }|dkD  r||dk\  r t        | |«      } ‰|«      sn|dz  }|dk\  rŒ |dk  rnQ|}|dz  }|dk\  r t        | |«      } ‰|«      rn|dz  }|dk\  rŒ |j	                  | |dz   |dz    «       |dz  }|dkD  rŒ||dk\  rA|dk\  r t        | |«      } ‰|«      sn|dz  }|dk\  rŒ |dk\  r|j	                  | d|dz    «       |d d d…   S ©Nr   r}   r�   )rù  rú  r?  r÷   r  )rL   r¿  r  rµ  rö   rÿ  r“  Úisspace_funcs          €r^   Úrsplit_whitespace_implz?generate_rsplit_whitespace_impl.<locals>.rsplit_whitespace_impl¸  s=  ø€ à�aŠ<Ü—{‘{ˆHàˆÜ�‹I˜‰MˆØ˜ŠlØ�q’&Ü,¨T°1Ó5�
Ù# JÔ/ØØ�Q‘�ð	 �q“&ð
 �1ŠuØØˆAØ�‰FˆAØ�q’&Ü,¨T°1Ó5�
Ù 
Ô+ØØ�Q‘�ð	 �q“&ð
 �M‰M˜$˜q 1™u Q¨¡UÐ+Ô,Ø˜‰MˆHð! ˜‹lð$ �Š6ð �q’&Ü,¨T°1Ó5�
Ù# JÔ/ØØ�Q‘�ð	 �q“&ð
 �AŠvØ—‘˜d 1 Q¨¡U˜mÔ,à‘d˜�d‰|Ðr_   rp  rc   )r  r  s   ` r^   Úgenerate_rsplit_whitespace_implr  µ  s   ø€ õ$ðL "Ð!r_   Úrsplitc                 ó"  — d„ } ||dt         j                  t         j                  t         j                  f«        ||dt         j                  t
        f«       |�*t        |t         j                  t         j                  f«      rdd„}|S dd„}|S )zImplements str.unicode_rsplit()c                 óø   — | }t        | t        j                  «      r| j                  }n&t        | t        j                  «      r| j
                  }|�)t        ||«      st        dj                  ||| «      «      ‚yy)z.Check object belongs to one of specified typesNru  )r9  r   rv  r€   rG  r‘   r!   ry  )rz  r{  r}  r|  s       r^   Ú_unicode_rsplit_check_typez2unicode_rsplit.<locals>._unicode_rsplit_check_typeì  sn   € àˆä�bœ%Ÿ-™-Ô(Ø—H‘H‰Eä˜œEŸN™NÔ+Ø—G‘GˆEàÐ¤Z°°xÔ%@ÜØ)×0Ñ0°°xÀÓDóFð Fð &AÐr_   r¿  r  c                 óN   — | j                   rt        | ||«      S t        | ||«      S r�   )rg   Úascii_rsplit_whitespace_implÚunicode_rsplit_whitespace_impl)rL   r¿  r  s      r^   r  z.unicode_rsplit.<locals>.rsplit_whitespace_impl  s'   € Ø�~Š~Ü3°D¸#¸xÓHÐHÜ1°$¸¸XÓFÐFr_   c                 óÚ  — t        |«      }| j                  |j                  k  st        | «      t        |«      k  r| gS d„ }|dk  rt        j                  }t        |«      }|dk(  rt        d«      ‚|dk(  r
 || ||«      S g }t        | «      }|dkD  r>| j                  |d|¬«      }|dk  rn$|j                  | ||z   | «       |}|dz  }|dkD  rŒ>|j                  | d| «       |d d d…   S )Nc                 ó(  — g }t        |d«      }t        | «      dz
  x}}|dk\  rL|dkD  rGt        | |«      }||k(  r&|j                  | |dz   |dz    «       |dz
  x}}|dz  }|dz  }|dk\  r|dkD  rŒG|dk\  r|j                  | d|dz    «       |d d d…   S r  )r÷   r?  r  )rL   rÅ   r  rµ  Úch_code_pointrö   r“  Údata_code_points           r^   Ú_rsplit_charz9unicode_rsplit.<locals>.rsplit_impl.<locals>._rsplit_char  s¼   € àˆFÜ+¨B°Ó2ˆMÜ˜“I ‘MÐ!ˆA�Ø�q’&˜X¨š\Ü"1°$¸Ó":�Ø" mÒ3Ø—M‘M $ q¨1¡u¨q°1©uÐ"5Ô6Ø ™E�M�A˜Ø ‘M�HØ�Q‘�ð �q’&˜X¨›\ð �BŠwØ—‘˜d 1 q¨1¡u˜oÔ.à™$˜B˜$‘<Ðr_   r   rÂ  r}   )rŒ  r�  r�   )r>  rf   r?  rù  rú  r   r©  r  )rL   r¿  r  r)  rÅ  rµ  r“  rÆ  s           r^   Úrsplit_implz#unicode_rsplit.<locals>.rsplit_impl  sþ   € Ü�#‹hˆà�:‰:˜Ÿ	™	Ò!¤S¨£Y´°S³Ò%9Ø�6ˆMò	 ð" �aŠ<Ü—{‘{ˆHä˜“Xˆ
à˜Š?ÜÐ.Ó/Ð/Ø˜Š?Ù  c¨8Ó4Ð4àˆÜ�‹IˆØ˜ŠlØ—*‘*˜S¨¨q�*Ó1ˆCØ�QŠwØØ�M‰M˜$˜s ZÑ/°Ð2Ô3ØˆAØ˜‰MˆHð ˜‹lð 	�‰�d˜1˜Q�iÔ à‘d˜�d‰|Ðr_   rp  )r   r:  rI  rx  rw  r  r9  rv  )rL   r¿  r  r!  r  r*  s         r^   Úunicode_rsplitr+  è  s�   € òFñ ˜s E¬E×,=Ñ,=Ü,1×,@Ñ,@Ü,1¯N©Nð,<ô =ñ ˜x¨´e·m±mÄSÐ5IÔJà
€{”j ¤u§~¡~´u·}±}Ð&EÔFó	Gð
 &Ð%ó-ð^ Ðr_   Úcenterc                 ó  — t        |t        j                  «      st        d«      ‚t        |t        j                  «      rdd„}|S |dk(  s5t        |t        j
                  t        j                  f«      st        d«      ‚dd„}|S )NúThe width must be an IntegerÚ c                 ó8   — | j                  |t        |«      «      S r�   )r,  r>  ©ÚstringÚwidthÚfillchars      r^   Úcenter_implz#unicode_center.<locals>.center_impl@  s   € Ø—=‘= ¬¨H«Ó6Ð6r_   ú"The fillchar must be a UnicodeTypec                 óÆ   — t        | «      }t        |«      }|dk7  rt        d«      ‚||k  r| S ||z
  }|dz  ||z  dz  z   }||z
  }||z  }||k(  r|| z   |z   S || z   ||z  z   S )Nr}   ú5The fill character must be exactly one character longr  ©r?  r   )	r2  r3  r4  Ústr_lenÚfillchar_lenÚ	allmarginÚlmarginÚrmarginÚl_strings	            r^   r5  z#unicode_center.<locals>.center_implH  sŸ   € Ü�f“+ˆÜ˜8“}ˆà˜1ÒÜð .ó /ð /ð �GÒØˆMà˜G‘Oˆ	Ø ‘> i°%Ñ&7¸!Ñ&;Ñ<ˆØ˜gÑ%ˆà˜gÑ%ˆØ�gÒØ˜fÑ$ xÑ/Ð/à˜fÑ$¨°7Ñ(:Ñ;Ð;r_   ©r/  ©r9  r   rw  r!   rI  rv  r:  )r2  r3  r4  r5  s       r^   Úunicode_centerrB  :  sp   € ä�eœUŸ]™]Ô+ÜÐ8Ó9Ð9ä�(œE×0Ñ0Ô1ó	7àÐà˜ŠOÜ�x¤%§-¡-´×1BÑ1BÐ!CÔDÜÐ>Ó?Ð?ó<ð* Ðr_   c                 ó   ‡ — dˆ fd„	}|S )Nc                 ó"  •— t        |t        j                  «      st        d«      ‚t        |t        j                  «      r‰rdd„}|S dd„}|S |dk(  s5t        |t        j
                  t        j                  f«      st        d«      ‚dˆfd„	}|S )Nr.  r/  c                 ó8   — | j                  |t        |«      «      S r�   )Úljustr>  r1  s      r^   Ú
ljust_implz<gen_unicode_Xjust.<locals>.unicode_Xjust.<locals>.ljust_implg  ó   € Ø!Ÿ<™<¨¬s°8«}Ó=Ð=r_   c                 ó8   — | j                  |t        |«      «      S r�   )Úrjustr>  r1  s      r^   Ú
rjust_implz<gen_unicode_Xjust.<locals>.unicode_Xjust.<locals>.rjust_implk  rH  r_   r6  c                 ó†   •— t        | «      }t        |«      }|dk7  rt        d«      ‚||k  r| S |||z
  z  }‰r| |z   S || z   S )Nr}   r8  r9  )r2  r3  r4  r:  r;  ÚnewstrÚSTRING_FIRSTs         €r^   r   z6gen_unicode_Xjust.<locals>.unicode_Xjust.<locals>.impls  sc   ø€ Ü˜&“kˆGÜ˜x›=ˆLà˜qÒ Ü ð "2ó 3ð 3ð ˜ÒØ�à %¨'¡/Ñ2ˆFÙØ ‘Ð&à ‘Ð&r_   r@  rA  )r2  r3  r4  rG  rK  r   rN  s         €r^   Úunicode_Xjustz(gen_unicode_Xjust.<locals>.unicode_Xjusta  s~   ø€ Ü˜%¤§¡Ô/ÜÐ<Ó=Ð=ä�h¤× 4Ñ 4Ô5Ùó>à!Ð!ó>à!Ð!à˜C’Ü˜8¤e§m¡m´U×5FÑ5FÐ%GÔHÜÐBÓCÐCõ	'ð" ˆr_   r@  rc   )rN  rO  s   ` r^   Úgen_unicode_XjustrP  `  s   ø€ õ#ðJ Ðr_   rJ  rF  Tc                 ó   ‡ — ˆ fd„}|S )zDGenerate splitlines performer based on ascii or unicode line breaks.c                 óR  •— t        | «      }g }dx}}||k  r�||k  r t        | |«      } ‰
|«      rn|dz  }||k  rŒ |}||k  rG|dz   |k  r6t        | |«      }t        | |dz   «      }	t        |«      rt        |	«      r|dz  }|dz  }|r|}|j	                  | || «       |}||k  rŒ�|S rÎ  )r?  r÷   r6   r5   r  )rL   ÚkeependsrM   rµ  rö   r“  rÿ  ÚeolÚcur_cpÚnext_cpÚis_line_break_funcs             €r^   r   z&generate_splitlines_func.<locals>.impl�  sÖ   ø€ ä�T“ˆØˆØˆ	ˆˆAØ�&Šjà�f’*Ü,¨T°1Ó5�
Ù% jÔ1ØØ�Q‘�ð	 �f“*ð ˆCØ�6ŠzØ�q‘5˜6’>Ü,¨T°1Ó5�FÜ-¨d°A¸±EÓ:�GÜ+¨FÔ3¼ÀwÔ8OØ˜Q™˜Ø�Q‘�ÙØ�Cà�M‰M˜$˜q ˜+Ô&ØˆAð+ �&‹jð. ˆr_   rc   )rW  r   s   ` r^   Úgenerate_splitlines_funcrX  �  s   ø€ ôð< €Kr_   Ú
splitlinesc                 óT  — |}t        |t        j                  «      r|j                  }n&t        |t        j                  «      r|j
                  }t        j                  t        t        j                  t        f}|�(t        ||«      st        dj                  d||«      «      ‚dd„}|S )zImplements str.splitlines()ru  rS  c                 óJ   — | j                   rt        | |«      S t        | |«      S r�   )rg   Ú_ascii_splitlinesÚ_unicode_splitlines)rL   rS  s     r^   Úsplitlines_implz+unicode_splitlines.<locals>.splitlines_implÆ  s#   € Ø�>Š>Ü$ T¨8Ó4Ð4ä" 4¨Ó2Ð2r_   ©F)r9  r   rv  r€   rG  r‘   rw  r  ÚBooleanÚboolr!   ry  )rL   rS  r|  r}  r^  s        r^   Úunicode_splitlinesrb  ¶  sŠ   € ð €Eä�(œEŸM™MÔ*Ø—‘‰ä	�HœeŸn™nÔ	-Ø—‘ˆä—‘œs¤E§M¡M´4Ð8€HØÐ¤¨E°8Ô!<ÜØ%×,Ñ,¨Z¸À8ÓLóNð 	Nó3ð Ðr_   c           
      ó
  — t        |«      }|dk(  ryt        | «      }|dz
  |z  }| j                  }| j                  }|D ]<  }|t        |«      z  }t        ||j                  «      }t	        ||j                  «      }Œ> t        |||«      }|d   }	t        |d|	dt        |	«      «       t        |	«      }
t        d|«      D ]A  }t        ||
| d|«       |
|z  }
||   }	t        ||
|	dt        |	«      «       |
t        |	«      z  }
ŒC |S )Nr   Ú r}   )r?  rf   rg   r  r  rò   Ú_strncpyr#  )r¿  r  Ú	parts_lenr  rM   rN   rO   Úprµ  ÚpartÚ
dst_offsetrÃ   s               r^   Ú	join_listrj  Ï  s  € ä�E“
€IØ�A‚~Øô �#‹h€GØ˜!‰m˜wÑ&€FØ�9‰9€DØ�}‰}€HÛˆØ”#�a“&ÑˆÜ˜$ §¡Ó(ˆÜ˜x¨¯©Ó5‰ð ô
 ˜4 ¨Ó2€Fð �‰8€DÜˆV�Q˜˜a¤ T£Ô+Ü�T“€JÜ�Q˜	Ö"ˆÜ�˜ S¨!¨WÔ5Ø�gÑˆ
Ø�S‰zˆÜ�˜ T¨1¬c°$«iÔ8Ø”c˜$“iÑ‰
ð #ð €Mr_   Újoinc                 óZ  — t        |t        j                  «      rSt        |j                  t        j                  «      rd„ }|S t        |j                  t        j
                  «      rd„ }|S y t        |t        j                  «      rd„ }|S t        |t        j                  «      rd„ }|S y )Nc                 ó   — t        | |«      S r�   )rj  )r¿  r  s     r^   Újoin_list_implz$unicode_join.<locals>.join_list_implô  s   € Ü   eÓ,Ð,r_   c                 óT   — |D �cg c]  }t        |«      ‘Œ }}t        | |«      S c c}w r�   )r>  rj  )r¿  r  rg  Ú_partss       r^   rn  z$unicode_join.<locals>.join_list_implø  s,   € Ù*/Ó0©% Qœ#˜a�&¨%�Ð0Ü   fÓ-Ð-ùò 1s   …%c                 óL   — |D �cg c]  }|‘Œ }}| j                  |«      S c c}w r�   )rk  )r¿  r  rg  Ú
parts_lists       r^   Újoin_iter_implz$unicode_join.<locals>.join_iter_implÿ  s*   € Ù%*Ó+¡U š! UˆJÐ+Ø—8‘8˜JÓ'Ð'ùò ,s   …	!c                 ól   — t        t        |«      «      D �cg c]  }||   ‘Œ	 }}t        | |«      S c c}w r�   )r#  r?  rj  )r¿  r  rö   rr  s       r^   Újoin_str_implz#unicode_join.<locals>.join_str_impl  s7   € Ü,1´#°e³*Ô,=Ó>Ñ,= q˜% ›(Ð,=ˆJÐ>Ü˜S *Ó-Ð-ùò ?s   —1)r9  r   ÚListrì  r:  rI  ÚIterableType)r¿  r  rn  rs  ru  s        r^   Úunicode_joinrx  ï  s”   € ô �%œŸ™Ô$Ü�e—k‘k¤5×#4Ñ#4Ô5ò-à!Ð!Ü˜Ÿ™¤U×%9Ñ%9Ô:ò.ð "Ð!àÜ	�Eœ5×-Ñ-Ô	.ò	(ð ÐÜ	�Eœ5×,Ñ,Ô	-ò	.ð Ðð 
.r_   Úzfillc                 óV   — t        |t        j                  «      st        d«      ‚d„ }|S )Nz<width> must be an Integerc                 óx   — t        | «      }||k  r| S |r| d   nd}d||z
  z  }|dv r||z   | dd  z   }|S || z   }|S )Nr   rd  Ú0)Ú+Ú-r}   ©r?  )r2  r3  r:  Ú
first_charÚpaddingrM  s         r^   Ú
zfill_implz!unicode_zfill.<locals>.zfill_impl  sh   € ä�f“+ˆà�GÒØˆMá")�V˜A’Y¨rˆ
Ø˜ ™Ñ)ˆà˜Ñ#Ø 'Ñ)¨F°1°2¨JÑ6ˆFð ˆð ˜vÑ%ˆFàˆr_   )r9  r   rw  r!   )r2  r3  r‚  s      r^   Úunicode_zfillrƒ    s)   € ä�eœUŸ]™]Ô+ÜÐ6Ó7Ð7òð" Ðr_   c                 ó¢   — t        | «      }d}|�t        |«      D ]  }| |   |vsŒ|c S  |S t        |«      D ]  }t        | |   «      rŒ|c S  |S rí   ©r?  r#  r+   ©r2  Úcharsr:  rö   s       r^   Úunicode_strip_left_boundrˆ  '  sd   € ä�&‹k€Gà	€AØÐÜ�w–ˆAØ�a‰y Ò%Ø’ð  ð €Nô	 �w–ˆAÜ% f¨Q¡iÕ0Ø’ð  ð €Nr_   c                 óÆ   — t        | «      }d}|�&t        |dz
  dd«      D ]  }| |   |vsŒ|dz  } |S  |S t        |dz
  dd«      D ]  }t        | |   «      rŒ|dz  } |S  |S r  r…  r†  s       r^   Úunicode_strip_right_boundrŠ  8  s�   € ä�&‹k€GØ	€AØÐÜ�w ‘{ B¨Ö+ˆAØ�a‰y Ò%Ø�Q‘�Øð €Hð ,ð €Hô �w ‘{ B¨Ö+ˆAÜ% f¨Q¡iÕ0Ø�Q‘�Øà€Hð ,ð
 €Hr_   c                 óÞ   — t        | t        j                  «      r| j                  } | �Et        | t        j                  t        j
                  t        j                  f«      st        d«      ‚y y )Nz%The arg must be a UnicodeType or None)r9  r   rG  r‘   rv  r:  rx  r!   )r‡  s    r^   Úunicode_strip_types_checkrŒ  J  sZ   € Ü�%œŸ™Ô(Ø—
‘
ˆØˆMœZ¨´·±Ü05×0AÑ0AÜ05·±ð0@ô Aô ÐAÓBÐBðAˆMr_   c                 óÞ   — t        | t        j                  «      r| j                  } | �Et        | t        j                  t        j
                  t        j                  f«      st        d«      ‚y y )Nz,The slice indices must be an Integer or None)r9  r   rG  r‘   rv  rw  rx  r!   )Úargs    r^   rÔ  rÔ  S  sU   € Ü�#”u—~‘~Ô&Ø�h‰hˆØˆKœ: c¬E¯M©MÜ,1¯M©MÜ,1¯N©Nð,<ô =ô ÐHÓIÐIð=ˆKr_   Úlstripc                 ód   — t        |t        j                  «      rdd„}|S t        |«       dd„}|S )Nc                 ó6   — | j                  t        |«      «      S r�   )r�  r>  ©r2  r‡  s     r^   Úlstrip_implz#unicode_lstrip.<locals>.lstrip_impl`  ó   € Ø—=‘=¤ U£Ó,Ð,r_   c                 ó    — | t        | |«      d  S r�   )rˆ  r’  s     r^   r“  z#unicode_lstrip.<locals>.lstrip_implf  s   € ØÔ.¨v°uÓ=Ð>Ð?Ð?r_   r�   ©r9  r   rI  rŒ  )r2  r‡  r“  s      r^   Úunicode_lstripr—  \  s3   € ô �%œ×-Ñ-Ô.ó	-àÐä˜eÔ$ó@àÐr_   Úrstripc                 ód   — t        |t        j                  «      rdd„}|S t        |«       dd„}|S )Nc                 ó6   — | j                  t        |«      «      S r�   )r˜  r>  r’  s     r^   Úrstrip_implz#unicode_rstrip.<locals>.rstrip_implo  r”  r_   c                 ó    — | d t        | |«       S r�   )rŠ  r’  s     r^   r›  z#unicode_rstrip.<locals>.rstrip_implu  s   € ØÐ?Ô0°¸Ó?Ð@Ð@r_   r�   r–  )r2  r‡  r›  s      r^   Úunicode_rstripr�  k  s3   € ô �%œ×-Ñ-Ô.ó	-àÐä˜eÔ$óAàÐr_   Ústripc                 ód   — t        |t        j                  «      rdd„}|S t        |«       dd„}|S )Nc                 ó6   — | j                  t        |«      «      S r�   )rž  r>  r’  s     r^   Ú
strip_implz!unicode_strip.<locals>.strip_impl~  s   € Ø—<‘<¤ E£
Ó+Ð+r_   c                 ó<   — t        | |«      }t        | |«      }| || S r�   )rˆ  rŠ  )r2  r‡  ÚlbÚrbs       r^   r¡  z!unicode_strip.<locals>.strip_impl„  s&   € Ü% f¨eÓ4ˆÜ& v¨uÓ5ˆØ�b˜ˆ}Ðr_   r�   r–  )r2  r‡  r¡  s      r^   Úunicode_stripr¥  z  s4   € ô �%œ×-Ñ-Ô.ó	,àÐä˜eÔ$óð Ðr_   c                 óR   — | €|ry|S | dk  r| |z  } | dk  s| |k\  rt        d«      ‚| S )a%  
    Parameters
    ----------
    idx : int or None
        the index
    length : int
        the string length
    is_start : bool; optional with defaults to True
        Is it the *start* or the *stop* of the slice?

    Returns
    -------
    norm_idx : int
        normalized index
    r   zstring index out of range)Ú
IndexError)rÃ   rM   Úis_starts      r^   Únormalize_str_idxr©  �  sB   € ð" €{ÙØàˆMØ	ˆqŠØˆv‰ˆà
ˆQ‚w�#˜’-ÜÐ4Ó5Ð5à€Jr_   c                 ó@   — | €|S | | cxk  r	|k  r| |z  S  | dk  rdS | S )a%  
    Used for unicode_count

    If arg < -slice_len, returns 0 (prevents circle)

    If arg is within slice, e.g -slice_len <= arg < slice_len
    returns its real index via arg % slice_len

    If arg > slice_len, returns arg (in this case count must
    return 0 if it is start index)
    r   rc   )rŽ  Ú	slice_lenÚdefaults      r^   rÏ  rÏ  ®  s=   € ð €{ØˆØ€z�SÔ$˜9Ò$Ø�Y‰Ðð %à�a’ˆ1Ð ˜SÐ r_   c                 ó"   —  |||«      }d„ }||fS )zFix slice object.
    c                 óÎ   — |j                   \  }}|\  }}| j                  |||«      }t        j                  | |||«       t        j                  |||«       |j                  «       S r�   )rÂ   Úmake_helperrC   Úguard_invalid_sliceÚ	fix_slicer’   )	r“   r”   rÑ   rÂ   Ú	slicetypeÚ
lengthtypeÚsliceobjrM   Úslices	            r^   rÇ   z!_normalize_slice.<locals>.codegenÉ  sa   € Ø"%§(¡(Ñˆ�JØ!Ñˆ�6Ø×#Ñ# G¨Y¸ÓAˆÜ×#Ñ# G¨W°iÀÔGÜ×Ñ˜' 5¨&Ô1Ø�‰Ó Ð r_   rc   )rÏ   r´  rM   rÑ   rÇ   s        r^   Ú_normalize_slicer¶  Ã  s!   € ñ �8˜VÓ
$€Cò!ð �ˆ<Ðr_   c                 ó:   — t        j                  |«      }d„ }||fS )z2Compute the span from the given slice object.
    c                 ó|   — |j                   \  }|\  }| j                  |||«      }t        j                  ||«      }|S r�   )rÂ   r¯  rC   Úget_slice_length)r“   r”   rÑ   rÂ   r²  r´  rµ  Úresult_sizes           r^   rÇ   z_slice_span.<locals>.codegenÚ  s@   € Ø—h‘h‰ˆØ‰
ˆØ×#Ñ# G¨Y¸ÓAˆÜ×.Ñ.¨w¸Ó>ˆØÐr_   )r   rT   )rÏ   r´  rÑ   rÇ   s       r^   Ú_slice_spanr»  Ô  s#   € ô �*‰*�XÓ
€Còð �ˆ<Ðr_   c           
      ó$  — |j                   | j                   k(  rJt        |j                   «      }||z  }||z  }||z  }t        | j                  ||j                  ||d¬«       y t	        |«      D ]  }	t        | ||	z   t        |||	z   «      «       Œ! y )Nr}   )Úalign)rf   r�   r    rd   r#  rî   r÷   )
Údstri  rÐ  Ú
src_offsetr'  Ú
byte_widthÚsrc_byte_offsetÚdst_byte_offsetr‰   rö   s
             r^   re  re  ä  s‰   € à
‡y�y�C—I‘IÒÜ(¨¯©Ó3ˆ
Ø$ zÑ1ˆØ$ zÑ1ˆØ�Z‘ˆÜ�c—i‘i °#·)±)Ø% v°Qö	8ô �q–ˆAÜ˜C ¨a¡Ü+¨C°¸a±Ó@õBñ r_   c                 ó¼   — |t         j                  k(  sJ ‚d„ }t        j                  t         j                  t         j                  t         j                  «      }||fS )z_Create a slice of a unicode string using a view of its data to avoid
    extra allocation.
    c                 ó–  — |\  }}} t        j                  t        j                  «      | ||¬«      } t        j                  t        j                  «      | |«      }|j                  |_        |j
                  |_        |j                  |_        ||_        | j                  t        d«      |_
        | j                  j                  t        «      }	|	j                  | j                  t        j                  fi «      }
| j!                  |	|
«      } |||j
                  f«      }|j#                  ||«      }|j%                  |j&                  |g«      |_        t        j(                  |j*                  j,                  «      |_        | j.                  r*| j0                  j3                  ||j4                  d   |«       |j7                  «       S )Nr±   r�   r   )r   r�   r   rÜ   rQ   rN   rO   rM   rà   r   rP   Útyping_contextÚresolve_value_typer�   Úget_call_typerU   Úget_functionrÝ   r¿   rL   râ   rR   r‘   Ú
enable_nrtr´   ÚincrefrÂ   r’   )r“   r”   rÑ   rÂ   rÐ  rŒ  rM   Úin_strÚview_strÚbw_typÚbw_sigÚbw_implrÀ  rÐ   s                 r^   rÇ   z$_get_str_slice_view.<locals>.codegenú  st  € Ø!ÑˆˆU�Fð ”×,Ñ,Ü×Ñó Ø '¨¸ô=ˆð ”7×.Ñ.Ü×Ñó Ø '¨ó2ˆà!Ÿ>™>ˆÔØŸ™ˆŒØ"ŸO™OˆÔØ ˆŒà×,Ñ,¬Z¸Ó<ˆŒà×'Ñ'×:Ñ:Ô;NÓOˆØ×%Ñ%Ø×"Ñ"¤U§[¡[ N°Bó8ˆà×&Ñ& v¨vÓ6ˆÙ˜W v§{¡{ nÓ5ˆ
Ø—‘˜U JÓ/ˆØŸ™ F§K¡K°&°Ó:ˆŒä!×0Ñ0°·±×1EÑ1EÓFˆŒà×ÒØ�K‰K×Ñ˜w¨¯©°©°SÔ9Ø×!Ñ!Ó#Ð#r_   )r   rÜ   rT   )rÏ   Úsrc_tÚstart_tÚlength_trÇ   rÑ   s         r^   Ú_get_str_slice_viewrÓ  ó  sK   € ð
 ”E×&Ñ&Ò&Ð&Ð&ò$ô6 ×
Ñ
œU×/Ñ/´·±¼U¿Z¹ZÓ
H€CØ�ˆ<Ðr_   c                 ó¶   — t        | t        j                  «      r?t        |t        j                  «      rd„ }|S t        |t        j                  «      rd„ }|S y y )Nc                 óà   — t        |t        | «      «      }t        | |«      }t        |«      }|| j                  k(  rt        | |d«      S t        |«      }t        |d|«      }t        |d|«       |S r  )	r©  r?  r÷   r0  rf   rÓ  r3  rò   rî   )rñ   rÃ   r-  rN   rO   Úrets         r^   Úgetitem_charz%unicode_getitem.<locals>.getitem_char  sk   € Ü'¨¬S°«VÓ4�Ü$ Q¨Ó,�Ü)¨"Ó-�Ø˜1Ÿ7™7’?Ü.¨q°#°qÓ9Ð9ä2°2Ó6�HÜ'¨¨a°Ó:�CÜ# C¨¨BÔ/Ø�Jr_   c           	      óŽ  — t        |t        | «      «      }t        |«      }t        | |j                  «      }t        |«      }t        |«      }t        |j                  |j                  z   |j                  |j                  «      D ]9  }t        | |«      }|t        |«      z  }t        |«      }||k7  sŒ.t        ||«      }Œ; |j                  dk(  r&|| j                  k(  rt        | |j                  |«      S t        |||«      }	|j                  }
t        |«      D ](  }t        |	|t        | |
«      «       |
|j                  z  }
Œ* |	S r‚  )r¶  r?  r»  r÷   rŒ  r0  r3  r#  ÚstepÚstopr  rf   rÓ  rò   rî   )rñ   rÃ   Ú	slice_idxÚspanr-  rN   rO   rö   Únew_kindrÖ  Úcurs              r^   Úgetitem_slicez&unicode_getitem.<locals>.getitem_slice*  s#  € Ü,¨S´#°a³&Ó9�	Ü" 9Ó-�ä$ Q¨	¯©Ó8�Ü)¨"Ó-�Ü.¨rÓ2�ô ˜yŸ™°·±Ñ?Ø(Ÿ~™~¨y¯~©~ö?�Aä(¨¨AÓ.�BØÔ 3°BÓ 7Ñ7�HÜ1°"Ó5�HØ˜xÓ'Ü)¨$°Ó9™ð?ð —>‘> QÒ&¨4°1·7±7ª?ô /¨q°)·/±/À4ÓHÐHô (¨¨d°HÓ=�CØ#Ÿ/™/�CÜ" 4ž[˜Ü'¨¨Q´ÀÀ3Ó0GÔHØ˜yŸ~™~Ñ-™ð )ð �Jr_   )r9  r   r:  rw  Ú	SliceType)rñ   rÃ   r×  rß  s       r^   Úunicode_getitemrá    sT   € ä�!”U×&Ñ&Ô'Ü�cœ5Ÿ=™=Ô)ò
ð  ÐÜ˜œUŸ_™_Ô-ò"ðH !Ð ðK .ð (r_   c                 óê   — t        | t        j                  «      rt        |t        j                  «      rd„ }|S t        | t        j                  «      r t        |t        j                  «      rd„ }|S y y )Nc           	      óª  — | j                   |j                   z   }t        | j                  |j                  «      }t        | j                  |j                  «      }t        |||«      }t        t        | «      «      D ]  }t        ||t        | |«      «       Œ t        t        |«      «      D ]%  }t        |t        | «      |z   t        ||«      «       Œ' |S r�   )
re   r  rf   r  rg   rò   r#  r?  rî   r÷   )rõ   r%  Ú
new_lengthrÝ  Ú	new_asciirµ  rö   r“  s           r^   Úconcat_implz#unicode_concat.<locals>.concat_implZ  s¡   € ØŸ™ Q§Y¡YÑ.ˆJÜ! !§'¡'¨1¯7©7Ó3ˆHÜ# A§K¡K°·±Ó=ˆIÜ" 8¨Z¸ÓCˆFÜœ3˜q›6–]�Ü ¨¬?¸1¸aÓ+@ÕAð #äœ3˜q›6–]�Ü ¬¨A«°©
´OÀAÀqÓ4IÕJð #àˆMr_   c                 ó   — | t        |«      z   S r�   )r>  rE  s     r^   ræ  z#unicode_concat.<locals>.concat_implg  s   € Ø”s˜1“v‘:Ðr_   )r9  r   r:  rI  )rõ   r%  ræ  s      r^   Úunicode_concatrè  V  sc   € ô �!”U×&Ñ&Ô'¬J°q¼%×:KÑ:KÔ,Lò		ð Ðä�!”U×&Ñ&Ô'¬J°q¼%×:NÑ:NÔ,Oò	àÐð -PÐ'r_   c                 óP  — | dk(  s|dk  ry|dk(  r| S | j                   |z  }| j                  }t        ||| j                  «      }t	        | «      }t        |d| d|«       |}d|z  |k  rt        |||d|«       |dz  }d|z  |k  rŒd|z  |k(  s||z
  }t        |||||z
  |«       |S y )Nrd  r}   r   r  )re   rf   rò   rg   r?  re  )Ústr_argÚmult_argrä  rÝ  rµ  Úlen_aÚ	copy_sizeÚrests           r^   Ú_repeat_implrï  l  sÓ   € à�"‚}˜ 1šØØ	�QŠØˆà—_‘_ xÑ/ˆ
Ø—=‘=ˆÜ˜x¨°W×5FÑ5FÓGˆä�G“ˆÜ�˜˜G Q¨Ô.àˆ	Ø�)‰m˜zÒ)Ü�V˜Y¨°°9Ô=Ø˜‰NˆIð �)‰m˜zÓ)ð �9‰} 
Ò*ð  	Ñ)ˆDÜ�V˜Y¨°	¸DÑ0@À$ÔGØˆMð +r_   c                 óê   — t        | t        j                  «      rt        |t        j                  «      rd„ }|S t        | t        j                  «      r t        |t        j                  «      rd„ }|S y y )Nc                 ó   — t        | |«      S r�   ©rï  rE  s     r^   Úwrapzunicode_repeat.<locals>.wrapŠ  ó   € Ü  1Ó%Ð%r_   c                 ó   — t        || «      S r�   rò  rE  s     r^   ró  zunicode_repeat.<locals>.wrapŽ  rô  r_   )r9  r   r:  rw  )rõ   r%  ró  s      r^   Úunicode_repeatrö  ‡  sY   € ä�!”U×&Ñ&Ô'¬J°q¼%¿-¹-Ô,Hò	&àˆÜ	�A”u—}‘}Ô	%¬*°Q¼×8IÑ8IÔ*Jò	&àˆð +KÐ	%r_   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — t        | «      dk(  S rí   r  ©rõ   s    r^   r   zunicode_not.<locals>.impl–  s   € Ü�q“6˜Q‘;Ðr_   r8  ©rõ   r   s     r^   Úunicode_notrû  “  s!   € ä�!”U×&Ñ&Ô'ò	àˆð (r_   Úreplacec                 ó  — |}t        |t        j                  «      r|j                  }n&t        |t        j                  «      r|j
                  }t        |t        t        j                  f«      st        dj                  |«      «      ‚t        |t        j                  t        j                  f«      st        dj                  |«      «      ‚t        |t        j                  «      st        dj                  |«      «      ‚dd„}|S )NzGUnsupported parameters. The parameters must be Integer. Given count: {}z+The object must be a UnicodeType. Given: {}c                 ó
  — |dk(  r| S |dk(  rÓt        | «      }|dk(  r||j                  |«      z   |z   S |g}t        t        |«      |«      }t	        |«      D ]V  }|j                  ||   «       |dz   |k7  r|j                  |«       Œ1|j                  dj                  ||dz   d  «      «       ŒX |t        |«      kD  r|j                  |«       dj                  |«      S | j                  ||«      }|j                  |«      }|S )Nr   rd  r�   r}   )Úlistrk  rX  r?  r#  r  r  )	rñ   Úold_strÚnew_strrË  ÚscharsÚsplit_resultÚ	min_countrö   rµ  s	            r^   r   zunicode_replace.<locals>.impl¯  s   € Ø�AŠ:ØˆHØ�bŠ=Ü˜!“WˆFØ˜Š{Ø §¡¨fÓ!5Ñ5¸Ñ?Ð?Ø#˜9ˆLÜœC ›K¨Ó/ˆIÜ˜9Ö%�Ø×#Ñ# F¨1¡IÔ.Ø�q‘5˜IÒ%Ø ×'Ñ'¨Õ0à ×'Ñ'¨¯©°¸¸A¹°xÐ0@Ó(AÕBð &ð ”s˜6“{Ò"Ø×#Ñ# GÔ,Ø—7‘7˜<Ó(Ð(Ø—‘˜ %Ó(ˆØ—‘˜fÓ%ˆØˆr_   ©r�   )r9  r   rv  r€   rG  r‘   r  rw  r!   ry  r:  rx  )rñ   r   r  rË  r|  r   s         r^   Úunicode_replacer  ›  sÔ   € à€EÜ�%œŸ™Ô'Ø—‘‰Ü	�Eœ5Ÿ>™>Ô	*Ø—
‘
ˆä�eœc¤5§=¡=Ð1Ô2Üð =ß=C¹VÀE»]óLð 	Lô �g¤× 1Ñ 1´5·>±>ÐBÔCÜð 'ß'-¡v¨g£ó8ð 	8ô �gœu×0Ñ0Ô1Üð 'ß'-¡v¨g£ó8ð 	8óð, €Kr_   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 ó   •— ˆˆfd„}|S )Nc                 ó2  •— t        | «      }|dk(  ry|dk(  r(t        | d«      }| j                  r ‰|«      S  ‰|«      S | j                  r&t        |«      D ]  }t        | |«      } ‰|«      rŒ y t        |«      D ]  }t        | |«      } ‰|«      rŒ y y)Nr   Fr}   T)r?  r÷   rg   r#  )rL   rM   rÿ  rö   Ú
ascii_funcÚunicode_funcs       €€r^   r   z.gen_isAlX.<locals>.unicode_isAlX.<locals>.implÐ  sž   ø€ Ü˜“YˆFØ˜Š{Øà˜Š{Ü,¨T°1Ó5�
Ø—>’>Ù% jÓ1Ð1á'¨
Ó3Ð3à�~Š~Ü˜vž�AÜ!0°°qÓ!9�JÙ% jÕ1Ù$ð 'ô
 ˜6–]�Ü,¨T°1Ó5�
Ù# JÕ/Ù ð #ð
 r_   rc   )rL   r   r
  r  s     €€r^   Úunicode_isAlXz gen_isAlX.<locals>.unicode_isAlXÎ  s   ø€ õ	ð2 ˆr_   rc   )r
  r  r  s   `` r^   Ú	gen_isAlXr  Í  s   ù€ õð8 Ðr_   Úisalphac                 ó2   — t        | «      xs t        | «      S r�   )r?   r>   ©Úxs    r^   Ú<lambda>r  ñ  s   € Ü&:¸1Ó&=ò '<Ü&8¸Ó&;ð'<r_   Úisalnumc                 ó   ‡ ‡‡— ˆ ˆˆfd„}|S )Nc                 óÚ   •— t        | «      }|dk(  r ‰t        | d«      «      dk7  S |dk(  ryd}t        |«      D ].  }t        | |«      } ‰|«      s ‰|«      r y|rŒ$ ‰|«      sŒ-d}Œ0 |S ©Nr}   r   FT©r?  r÷   r#  )rõ   ÚlÚcasedrÃ   rÿ  Úis_lowerÚis_titleÚis_uppers        €€€r^   r   z_is_upper.<locals>.implÿ  s{   ø€ Ü�‹FˆØ�Š6ÙœO¨A¨qÓ1Ó2°aÑ7Ð7Ø�Š6ØØˆÜ˜–8ˆCÜ(¨¨CÓ0ˆJÙ˜
Ô#¡x°
Ô';ÙÚ¡¨Õ 4Ø‘ð ð ˆr_   rc   )r  r  r  r   s   ``` r^   Ú	_is_upperr  ú  s   ú€ ö
ð €Kr_   c                  ó   — yrD  rc   r  s    r^   r  r    s   € ¨5r_   Úisupperc                 ó   — d„ }|S )z
    Implements .isupper()
    c                 óF   — | j                   rt        | «      S t        | «      S r�   )rg   Ú_ascii_is_upperÚ_unicode_is_upperrù  s    r^   r   zunicode_isupper.<locals>.impl  s   € Ø�;Š;Ü" 1Ó%Ð%ä$ QÓ'Ð'r_   rc   rú  s     r^   Úunicode_isupperr$    s   € ò
(ð
 €Kr_   Úisasciic                 ó   — d„ }|S )z Implements UnicodeType.isascii()c                 ó   — | j                   S r�   )rg   ©rL   s    r^   r   zunicode_isascii.<locals>.impl)  s   € Ø�~‰~Ðr_   rc   ©rL   r   s     r^   Úunicode_isasciir*  %  s   € òà€Kr_   Úistitlec                 ó   — d„ }|S )zï
    Implements UnicodeType.istitle()
    The algorithm is an approximate translation from CPython:
    https://github.com/python/cpython/blob/1d4b6ba19466aba0eb91c4ba01ba509acf18c723/Objects/unicodeobject.c#L11829-L11885 # noqa: E501
    c                 ó$  — t        | «      }|dk(  r$t        | d«      }t        |«      xs t        |«      S |dk(  ryd}d}t	        |«      D ]C  }t        | |«      }t        |«      st        |«      r	|r yd}d}Œ.t        |«      r	|s yd}d}ŒBd}ŒE |S r  )r?  r÷   r1   r7   r#  r2   )rL   rM   Úcharr  Úprevious_is_casedrÃ   s         r^   r   zunicode_istitle.<locals>.impl6  sª   € Ü�T“ˆØ�QŠ;Ü" 4¨Ó+ˆDÜ)¨$Ó/ÒOÔ3IÈ$Ó3OÐOà�QŠ;ØàˆØ!ÐÜ˜–=ˆCÜ" 4¨Ó-ˆDÜ% dÔ+Ô/EÀdÔ/KÙ$Ù Ø$(Ð!Ø‘Ü'¨Ô-Ù(Ù Ø$(Ð!Ø‘à$)Ñ!ð !ð ˆr_   rc   r)  s     r^   Úunicode_istitler0  .  s   € òð6 €Kr_   Úislowerc                 ó   — d„ }|S )aP  
    impl is an approximate translation of:
    https://github.com/python/cpython/blob/201c8f79450628241574fba940e08107178dc3a5/Objects/unicodeobject.c#L11900-L11933    # noqa: E501
    mixed with:
    https://github.com/python/cpython/blob/201c8f79450628241574fba940e08107178dc3a5/Objects/bytes_methods.c#L131-L156    # noqa: E501
    c                 óê   — t        | «      }|dk(  rt        t        | d«      «      S |dk(  ryd}t        |«      D ]7  }t        | |«      }t	        |«      st        |«      r y|rŒ*t        |«      sŒ6d}Œ9 |S r  )r?  r2   r÷   r#  r1   r7   )rL   rM   r  rÃ   r-  s        r^   r   zunicode_islower.<locals>.impl]  sw   € Ü�T“ˆØ�QŠ;Ü)¬/¸$ÀÓ*BÓCÐCØ�QŠ;ØàˆÜ˜–=ˆCÜ   sÓ+ˆBÜ% bÔ)Ô-CÀBÔ-GÙÚÔ5°bÕ9Ø‘ð !ð ˆr_   rc   r)  s     r^   Úunicode_islowerr4  T  s   € òð €Kr_   Úisidentifierc                 ó   — d„ }|S )z%Implements UnicodeType.isidentifier()c                 ó´   — t        | «      }|dk(  ryt        | d«      }t        |«      s|dk7  ryt        d|«      D ]  }t        | |«      }t	        |«      rŒ y y)Nr   Fé_   r}   T)r?  r÷   r-   r#  r.   )rL   rM   Úfirst_cprö   rÿ  s        r^   r   z"unicode_isidentifier.<locals>.implt  s`   € Ü�T“ˆØ�QŠ;Øä" 4¨Ó+ˆÜ$ XÔ.°8¸tÒ3CØä�q˜&Ö!ˆAÜ(¨¨qÓ1ˆJÜ+¨JÕ7Ùð "ð
 r_   rc   r)  s     r^   Úunicode_isidentifierr:  p  s   € òð  €Kr_   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 ó   •— ˆˆfd„}|S )Nc                 ó¦   •— t        | «      }|dk(  r ‰t        | d«      «      S ‰r|dk(  ryt        |«      D ]  }t        | |«      } ‰|«      rŒ y yr  r  )rL   rM   rö   rÿ  Ú_PyUnicode_IS_funcÚempty_is_falses       €€r^   r   z*gen_isX.<locals>.unicode_isX.<locals>.implŠ  s[   ø€ Ü˜“YˆFØ˜Š{Ù)¬/¸$ÀÓ*BÓCÐCá &¨A¢+Øä˜6–]�Ü,¨T°1Ó5�
Ù)¨*Õ5Ù ð #ð
 r_   rc   )rL   r   r>  r?  s     €€r^   Úunicode_isXzgen_isX.<locals>.unicode_isX‰  s   ø€ õ	ð ˆr_   rc   )r>  r?  r@  s   `` r^   Úgen_isXrA  ˆ  s   ù€ õð" Ðr_   ÚisspaceÚ	isnumericÚisdigitÚ	isdecimalÚisprintablec                 ó   ‡ ‡— ˆ ˆfd„}|S )z)Generate common case operation performer.c           	      ó¸  •— t        | «      }|dk(  r!t        | j                  || j                  «      S | j                  r"t        | j                  |d«      } ‰	| |«       |S t        t        d|z  | j                  «      }dg} ‰
| |||«      }|d   }t        |«      }t        ||t        |«      «      }t        |«      D ]  }t        ||t        ||«      «       Œ |S )Nr   r}   rD   )
r?  rò   rf   rg   r   r0  r3  r#  rî   r÷   )rL   rM   r¶   ÚtmpÚmaxcharsÚ	newlengthÚmaxcharÚnewkindrö   r
  r  s            €€r^   r   zcase_operation.<locals>.impl¶  sÒ   ø€ Ü�T“ˆØ�QŠ;Ü  §¡¨V°T·^±^ÓDÐDà�>Š>Ü §
¡
¨F°AÓ6ˆCÙ�t˜SÔ!ØˆJô Ô1°1°v±:¸t¿~¹~ÓNˆà�3ˆÙ   v¨s°HÓ=ˆ	Ø˜1‘+ˆÜ$ WÓ-ˆÜ˜G YÔ0CÀGÓ0LÓMˆÜ�yÖ!ˆAÜ˜C ¤O°C¸Ó$;Õ<ð "ð ˆ
r_   rc   )r
  r  r   s   `` r^   Úcase_operationrN  ´  s   ù€ õð. €Kr_   c                 ó  — d}|dz
  }|dk\  r#t        | |«      }t        |«      sn|dz  }|dk\  rŒ#|dk\  xr t        |«      }|r@|dz   }||k  r#t        | |«      }t        |«      sn|dz  }||k  rŒ#||k(  xs t        |«       }|rdS dS )zEThis is a translation of the function that handles the capital sigma.r   r}   iÂ  iÃ  )r÷   r0   r/   )rL   rM   rÃ   r­   r“  Úfinal_sigmas         r^   Ú_handle_capital_sigmarQ  Ñ  sº   € ð 	
€AØˆa‰€AØ
ˆqŠ&Ü˜D !Ó$ˆÜ)¨!Ô,ØØ	ˆQ‰ˆð	 ˆq‹&ð
 ˜‘6Ò3Ô0°Ó3€KÙØ�!‰GˆØ�&ŠjÜ  aÓ(ˆAÜ-¨aÔ0ØØ�‰FˆAð	 �&‹jð
 ˜F‘{ÒAÔ+=¸aÓ+@Ð'@ˆáˆ5Ð* UÐ*r_   c                 óF   — | dk(  rt        |||«      |d<   yt        | |«      S )z>This is a translation of the function that lowers a character.i£  r   r}   )rQ  r'   )rÿ  rL   rM   rÃ   Úmappeds        r^   Ú_lower_ucs4rT  é  s.   € ð �UÒÜ)¨$°¸Ó<ˆˆq‰	ØÜ! *¨fÓ5Ð5r_   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó  •— d}t        |«      D ]u  }t        j                  dt        ¬«      }t	        | |«      }‰
rt        || |||«      }nt        ||«      }|d | D ]&  }	t        |d   |	«      |d<   t        |||	«       |dz  }Œ( Œw |S ©Nr   rD   ©rì  r}   )	r#  rï   Úzerosr$   r÷   rT  r&   Úmaxrî   )rL   rM   r¶   rJ  ÚkrÃ   rS  rÿ  Ún_resrŽ  Úlowers             €r^   Ú_do_upper_or_lowerz7_gen_unicode_upper_or_lower.<locals>._do_upper_or_lowerô  s•   ø€ ØˆÜ˜–=ˆCÜ—X‘X˜a¤xÔ0ˆFÜ(¨¨sÓ3ˆJÙÜ# J°°f¸cÀ6ÓJ‘ô /¨z¸6ÓB�Ø˜F˜U“^�Ü! (¨1¡+¨qÓ1�˜‘Ü  Q¨Ô*Ø�Q‘‘ñ $ð !ð ˆr_   rc   )r]  r^  s   ` r^   Ú_gen_unicode_upper_or_lowerr_  ó  s   ø€ ôð Ðr_   c                 ó   ‡ — ˆ fd„}|S )Nc                 óv   •— t        t        | «      «      D ]!  }t        | |«      }t        || ‰|«      «       Œ# y r�   )r#  r?  r÷   rî   )rL   r¶   rÃ   rÿ  Úfuncs       €r^   Ú_ascii_upper_or_lowerz8_gen_ascii_upper_or_lower.<locals>._ascii_upper_or_lower	  s3   ø€ Üœ˜T›Ö#ˆCÜ(¨¨sÓ3ˆJÜ˜C ¡d¨:Ó&6Õ7ñ $r_   rc   )rb  rc  s   ` r^   Ú_gen_ascii_upper_or_lowerrd  
	  s   ø€ ô8ð !Ð r_   r]  c                 ó*   — t        t        t        «      S )zImplements .lower())rN  Ú_ascii_lowerÚ_unicode_lowerr(  s    r^   Úunicode_lowerrh  	  ó   € ô œ,¬Ó7Ð7r_   Úupperc                 ó*   — t        t        t        «      S )zImplements .upper())rN  Ú_ascii_upperÚ_unicode_upperr(  s    r^   Úunicode_upperrn  	  ri  r_   c                 ó  — d}t        j                  dt        ¬«      }t        |«      D ][  }|j	                  d«       t        | |«      }t        ||«      }|d | D ](  }	|d   }
t        |
|	«      |d<   t        |||	«       |dz  }Œ* Œ] |S rW  )	rï   rY  r$   r#  Úfillr÷   r(   rZ  rî   )rL   rM   r¶   rJ  r[  rS  rÃ   rÿ  r\  rŽ  rL  s              r^   Ú_unicode_casefoldrq  #	  sŒ   € à	€AÜ�X‰X�aœxÔ(€FÜ�VŽ}ˆØ�‰�AŒÜ$ T¨3Ó/ˆ
Ü'¨
°FÓ;ˆØ˜˜“ˆAØ˜q‘kˆGÜ˜g q›/ˆH�Q‰KÜ˜C  AÔ&Ø�‰F‰Añ	  ð	 ð €Hr_   c                 óz   — t        t        | «      «      D ]$  }t        | |«      }t        ||t	        |«      «       Œ& y r�   )r#  r?  r÷   rî   r#   ©rL   r¶   rÃ   rÿ  s       r^   Ú_ascii_casefoldrt  4	  s2   € ä”S˜“YÖˆÜ$ T¨3Ó/ˆ
Ü˜˜S¤+¨jÓ"9Õ:ñ  r_   Úcasefoldc                 ó*   — t        t        t        «      S )zImplements str.casefold())rN  rt  rq  r(  s    r^   Úunicode_casefoldrw  ;	  s   € ô œ/Ô+<Ó=Ð=r_   c                 ó˜  — d}d}t        j                  dt        ¬«      }t        | d«      }t	        ||«      }|d | D ]   }	t        ||	«      }t        |||	«       |dz  }Œ" t        d|«      D ]V  }
|j                  d«       t        | |
«      }t        || ||
|«      }|d | D ]   }	t        ||	«      }t        |||	«       |dz  }Œ" ŒX ||d<   |S rW  )
rï   rY  r$   r÷   r)   rZ  rî   r#  rp  rT  )rL   rM   r¶   rJ  r[  rL  rS  rÿ  r\  rŽ  rÃ   s              r^   Ú_unicode_capitalizery  B	  sà   € à	€AØ€GÜ�X‰X�aœxÔ(€FÜ   qÓ)€Jä" :¨vÓ6€Eà�F�U‹^ˆÜ�g˜q“/ˆÜ˜˜Q Ô"Ø	ˆQ‰‰ð ô �Q˜ÖˆØ�‰�AŒÜ$ T¨3Ó/ˆ
Ü˜J¨¨f°c¸6ÓBˆØ˜˜“ˆAÜ˜' 1“oˆGÜ˜C  AÔ&Ø�‰F‰Añ  ð	  ð €HˆQ�KØ€Hr_   c                 óÀ   — t        | d«      }t        |dt        |«      «       t        dt	        | «      «      D ]$  }t        | |«      }t        ||t        |«      «       Œ& y rÎ  )r÷   rî   r"   r#  r?  r#   )rL   r¶   rÿ  rÃ   s       r^   Ú_ascii_capitalizer{  \	  sQ   € ä   qÓ)€JÜ�C˜œK¨
Ó3Ô4Ü�Qœ˜D›	Ö"ˆÜ$ T¨3Ó/ˆ
Ü˜˜S¤+¨jÓ"9Õ:ñ #r_   Ú
capitalizec                 ó*   — t        t        t        «      S r�   )rN  r{  ry  r(  s    r^   Úunicode_capitalizer~  f	  s   € äÔ+Ô-@ÓAÐAr_   c                 ór  — d}d}t        j                  dt        ¬«      }t        |«      D ]‰  }|j	                  d«       t        | |«      }|rt        || |||«      }	nt        t        |«      |«      }	|d|	 D ]'  }
|\  }t        ||
«      |d<   t        |||
«       |dz  }Œ) t        t        |«      «      }Œ‹ |S )zCThis is a translation of the function that titles a unicode string.r   FrD   rX  Nr}   )rï   Úemptyr$   r#  rp  r÷   rT  r)   rZ  rî   r/   )rL   rM   r¶   rJ  r[  Úprevious_casedrS  rÃ   rÿ  r\  rŽ  rL  s               r^   Ú_unicode_titler‚  l	  s¼   € ð 	
€AØ€NÜ�X‰X�aœxÔ(€FÜ�VŽ}ˆØ�‰�AŒÜ$ T¨3Ó/ˆ
ÙÜ 
¨D°&¸#¸vÓF‰Eä*¬8°JÓ+?ÀÓHˆEØ˜˜“ˆAØ‰HˆGÜ˜g q›/ˆH�Q‰KÜ˜C  AÔ&Ø�‰F‰Að	  ô
 ,¬H°ZÓ,@ÓA‰ð ð €Hr_   c                 óÜ   — d}t        t        | «      «      D ]S  }t        | |«      }t        |«      r|st	        |«      }d}nt        |«      r|rt        |«      }d}nd}t        |||«       ŒU y)z" Does .title() on an ASCII string FTN)r#  r?  r÷   r8   r"   r9   r#   rî   )rL   r¶   r/  rÃ   rÿ  s        r^   Ú_ascii_titler„  ƒ	  sq   € ð ÐÜ”S˜“YÖˆÜ$ T¨3Ó/ˆ
Ü�zÔ"Ù$Ü(¨Ó4�
Ø $ÑÜ˜Ô$Ù Ü(¨Ó4�
Ø $Ñà %ÐÜ˜˜S *Õ-ñ  r_   Útitlec                 ó*   — t        t        t        «      S )zImplements str.title())rN  r„  r‚  r(  s    r^   Úunicode_titler‡  —	  s   € ô œ,¬Ó7Ð7r_   c                 óÂ   — t        t        | «      «      D ]H  }t        | |«      }t        |«      rt	        |«      }nt        |«      rt        |«      }t        |||«       ŒJ y r�   )r#  r?  r÷   r9   r#   r8   r"   rî   rs  s       r^   Ú_ascii_swapcaser‰  Ÿ	  sQ   € ä”S˜“YÖˆÜ$ T¨3Ó/ˆ
Ü�zÔ"Ü$ ZÓ0‰JÜ˜Ô$Ü$ ZÓ0ˆJÜ˜˜S *Õ-ñ  r_   c                 ól  — d}d}t        j                  dt        ¬«      }t        |«      D ]�  }|j	                  d«       t        | |«      }t        |«      rt        || |||«      }	nt        |«      rt        ||«      }	nd}	||d<   |d |	 D ]   }
t        ||
«      }t        |||
«       |dz  }Œ" Œƒ ||d<   |S rW  )rï   r€  r$   r#  rp  r÷   r1   rT  r2   r&   rZ  rî   )rL   rM   r¶   rJ  r[  rL  rS  rÃ   rÿ  r\  rŽ  s              r^   Ú_unicode_swapcaser‹  «	  s½   € à	€AØ€GÜ�X‰X�aœxÔ(€FÜ�VŽ}ˆØ�‰�AŒÜ$ T¨3Ó/ˆ
Ü! *Ô-Ü 
¨D°&¸#¸vÓF‰EÜ# JÔ/Ü*¨:°vÓ>‰EàˆEØ"ˆF�1‰IØ˜˜“ˆAÜ˜' 1“oˆGÜ˜C  AÔ&Ø�‰F‰Añ  ð ð €HˆQ�KØ€Hr_   Úswapcasec                 ó*   — t        t        t        «      S r�   )rN  r‰  r‹  r(  s    r^   Úunicode_swapcaserŽ  Â	  s   € äœ/Ô+<Ó=Ð=r_   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 óP   — t        | «      }|dk7  rt        d«      ‚t        | d«      S )Nr}   zord() expected a characterr   )r?  Ú	TypeErrorr÷   )r­   Úlcs     r^   r   zol_ord.<locals>.implË	  s+   € Ü�Q“ˆBØ�QŠwäÐ <Ó=Ð=Ü" 1 aÓ(Ð(r_   r8  )r­   r   s     r^   Úol_ordr“  È	  s#   € ä�!”U×&Ñ&Ô'ò	)ð ˆð (r_   c                 ót   — | t         k  sJ ‚t        | «      }t        |d|t        k(  «      }t	        |d| «       |S r  )Ú_MAX_UNICODEr0  rò   r   rî   )rÅ   rN   rÖ  s      r^   Ú_unicode_charr–  Ú	  s?   € à”ÒÐÐÜ˜bÓ!€DÜ
˜˜a Ô)>Ñ!>Ó
?€CÜ�C˜˜BÔØ€Jr_   zchr() arg not in range(0x%hx)c                 ód   — | dk  s	| t         kD  rt        t        «      ‚t        t	        | «      «      S rí   )r•  r   Ú_out_of_range_msgr–  r$   )Úordinals    r^   Ú_PyUnicode_FromOrdinalrš  ç	  s,   € à�!Š�w¤Ò-ÜÔ*Ó+Ð+äœ 'Ó*Ó+Ð+r_   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — t        | «      S r�   )rš  )rö   s    r^   r   zol_chr.<locals>.impló	  s   € Ü)¨!Ó,Ð,r_   )r9  r   rw  )rö   r   s     r^   Úol_chrr�  ð	  s   € ä�!”U—]‘]Ô#ò	-àˆð $r_   Ú__str__c                 ó   — d„ S )Nc                 ó   — | S r�   rc   r6  s    r^   r  zunicode_str.<locals>.<lambda>ú	  s   € ‘Qr_   rc   r6  s    r^   Úunicode_strr¡  ø	  s   € áÐr_   Ú__repr__c                 ó   — d„ S )Nc                 ó   — d| z   dz   S )NÚ'rc   r6  s    r^   r  zunicode_repr.<locals>.<lambda>
  s   € �S˜1‘W˜s’]r_   rc   r6  s    r^   Úunicode_reprr¦  ý	  s
   € ñ #Ð"r_   c                 ó"   ‡—  | d«      Šˆfd„}|S )NrE   c                 ó†  •— d}| dk  r|  } d}| dk(  ry|dz   t        t        j                  t        j                  | «      «      «      z   }t        }t        |«      }t        |||d«      }|rt        |dt        d«      «       |dz
  }| dkD  r5t        | ‰	«      \  } }t        d«      |z   }t        |||«       |dz  }| dkD  rŒ5|S )NFr   Tr|  r}   r~  )
r  rï   ÚfloorÚlog10r   r�   rë   rî   ÚordÚdivmod)
r'  ÚflagrM   rN   rð   rñ   rÃ   Údigitr­   Útens
            €r^   r   zinteger_str.<locals>.impl	
  sÍ   ø€ ØˆØˆqŠ5Ø�ˆAØˆDØ�Š6ØØ˜‘œC¤§¡¬¯©°!«Ó 5Ó6Ñ6ˆÜ$ˆÜ(¨Ó.ˆ
Ü˜4 ¨V°TÓ:ˆÙÜ˜A˜q¤# c£(Ô+Ø�q‰jˆØ�!ŠeÜ˜a “~‰HˆAˆuÜ�C“˜5Ñ ˆAÜ˜A˜s AÔ&Ø�1‰HˆCð	 �!‹eð
 ˆr_   rc   )r'  r   r¯  s     @r^   Úinteger_strr°  
  s   ø€ ñ ˆB‹%€Côð( €Kr_   c                 ó   — d„ S )Nc                 ó"   — | j                  «       S r�   )rž  ©r'  s    r^   r  zinteger_repr.<locals>.<lambda>"
  s
   € �Q—Y‘Y”[r_   rc   r³  s    r^   Úinteger_reprr´   
  s   € á Ð r_   c                 ó   — d„ S )Nc                 ó   — | rdS dS )NÚTrueÚFalserc   ©r%  s    r^   r  zboolean_str.<locals>.<lambda>(
  s   € ™q�VÐ- gÐ-r_   rc   r¹  s    r^   Úboolean_strrº  %
  s
   € ñ .Ð-r_   Úgetiterc                 óˆ  — |j                   \  }|\  }| j                  ||j                  «      }| j                  t        j
                  d«      }t        j                  ||«      }||_        ||_	        | j                  r| j                  j                  |||«       |j                  «       }	t        | ||j                  |	«      S rí   )rÂ   r¯  Úreturn_typerà   r   rn   r   Úalloca_once_valuerl   rL   rÉ  r´   rÊ  r’   r   )
r“   r”   rÑ   rÂ   rz  rL   Úiterobjr’  Úindexptrr¶   s
             r^   Úgetiter_unicoderÁ  0
  s¨   € à�8‰8�D€RØ�F€Tà×!Ñ! '¨3¯?©?Ó;€Gð ×Ñ¤§¡¨QÓ/€DÜ×(Ñ(¨°$Ó7€Hà€G„Mð €G„Lð ×ÒØ�‰×Ñ˜7 B¨Ô-à
×
Ñ
Ó
€CÜ˜G W¨c¯o©o¸sÓCÐCr_   Úiternextc                 ó`  — |j                   \  }|\  }| j                  }|j                  t        j                  «      }|j                  |t        j                  t        j                  fi «      }	| j                  ||	«      }
|j                  t        «      }|j                  |t        j                  fi «      }| j                  ||«      }| j                  |||¬«      } |||j                  f«      }|j                  |j                  «      }|j                  d||«      }|j!                  |«       |j#                  |«      5   |
||j                  |f«      }|j%                  |«       t'        j(                  ||«      }|j+                  ||j                  «       d d d «       y # 1 sw Y   y xY w)Nr±   Ú<)rÂ   rÅ  rÆ  ÚoperatorÚgetitemrÇ  r   rÜ   rn   rÈ  r?  r¯  rL   r¾   rl   Úicmp_unsignedÚ	set_validÚif_thenÚyield_r   Úincrement_indexrû   )r“   r”   rÑ   rÂ   rµ  ÚitertyÚiterÚtyctxÚfntyÚgetitem_sigÚgetitem_implÚlen_sigr7  r¿  Ústrlenrl   Úis_validÚgotitemÚnindexs                      r^   Úiternext_unicoder×  H
  sv  € ð �x‰x�H€VØ�F€Tà×"Ñ"€Eð ×#Ñ#¤H×$4Ñ$4Ó5€DØ×$Ñ$ U¬U×-?Ñ-?ÄÇÁÐ,MØ%'ó)€Kà×'Ñ'¨¨kÓ:€Lð ×#Ñ#¤CÓ(€DØ× Ñ  ¬×);Ñ);Ð(=¸rÓB€GØ×#Ñ# D¨'Ó2€Hð ×!Ñ! '¨6¸Ð!Ó>€Gñ �g §¡˜Ó/€Fð �L‰L˜Ÿ™Ó'€Eð ×$Ñ$ S¨%°Ó8€HØ
×Ñ�XÔà	�‰˜Õ	"á˜w¨¯©°uÐ(>Ó?ˆØ�‰�gÔô ×(Ñ(¨°%Ó8ˆØ�‰�f˜gŸm™mÔ,÷ 
#×	"Ñ	"ús   ÅAF$Æ$F-)r   r¡  r  rp  r@  r_  r�   )Tr  )õrù  rÅ  Únumpyrï   Úllvmlite.irr   r   Únumba.core.cgutilsr   Únumba.core.extendingr   r   r   r	   r
   r   r   r   r   r   Únumba.core.imputilsr   r   r   r   r   r   Únumba.core.datamodelr   r   Ú
numba.corer   r   Únumba.core.utilsr   Únumba.core.pythonapir   r   r   Únumba._helperlibr   Únumba.cpython.hashingr   Únumba.core.unsafe.bytesr    Únumba.core.errorsr!   Únumba.cpython.unicode_supportr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   Únumba.cpythonrC   rG   r•  rT   Úbitwidthr„  r:  rJ   ÚUnicodeIteratorTyperj   r‹   r›   rH  rÜ   r¢   r¥   r¯   r·   rÉ   rÒ   rÖ   rÙ   rë   rò   r÷   rý   r  r  r  rî   r  ÚNotImplementedErrorr  r�   r*  r0  r3  r?  r;  ÚeqrO  ÚnerT  Últr^  Úgtrc  Úlerh  Úgerm  Úcontainsrs  r~  r€  r‡  r‰  r–  rš  r¢  rq  r­  r¨  r®  r¸  r¼  rÉ  rÖ  rÚ  r�  rí  rõ  r  r  r  r$  r#  r+  rB  rP  rX  r\  r]  rb  rj  rx  rƒ  rˆ  rŠ  rŒ  rÔ  r—  r�  r¥  r©  rÏ  r¶  r»  re  rÓ  rÆ  rá  rÞ   Úiaddrè  rï  rÝ   rö  Únot_rû  r  r  Ú_unicode_is_alnumr  Ú_always_falser"  r#  r$  r*  r0  r4  r:  rA  rN  rQ  rT  r_  rm  rg  rd  rl  rf  rh  rn  rq  rt  rw  ry  r{  r~  r‚  r„  r‡  r‰  r‹  rŽ  r«  r“  r–  r˜  rš  Úchrr�  r¡  r¦  rw  r°  r´  r`  rº  rÁ  ÚNEWr×  rc   r_   r^   Ú<module>r÷     s)  ðÛ 
Û ã ß )å *÷÷ ÷ ÷K÷ Kç >ß %Ý &÷ñ õ
 'Ý ,Ý 1Ý )÷F÷ F÷ F÷ F÷ F÷ F÷ F÷ Fõ Fõ> "àÐ"Ñ"Ý:ð €ð �z‰z×"Ñ"€ñ
 �×!Ñ!Ó"ôA�6×%Ñ%ó Aó #ðAñ �u×(Ñ(¨&°'Ô :Ù �u×(Ñ(¨(°IÔ >Ù �u×(Ñ(¨&°'Ô :Ù �u×(Ñ(¨*°kÔ BÙ �u×(Ñ(¨&°'Ô :ñ �%×+Ñ+Ó,ôJ˜;ó Jó -ðJò;ò8ñ( ˆE×Ñ ×!3Ñ!3Ó4ñó 5ðñ �×"Ñ"Ó#ñCó $ðCñ €u×ÑÓñ?ó ð?ñ, €U×ÑÓñó ðò$ð ñ&ó ð&ð
 ñ'ó ð'ð
 ñ'ó ð'ð
 ñó ðð< òó ðñ �uÔñ
ó ð
ò	ð ñ$ó ð$ð
 ñ%ó ð%ð
 ñ%ó ð%ñ
 �uÔñDó ðDð$ Ð+Ñ+ØñCó ñCð Ð$Ñ$ØñCó ñCñ" ˜iÓ
(Ð(ð ñó ðð Ð+Ñ+ØñLó ñLð Ð$Ñ$Øñ
Ló ñ
Lñ ˜iÓ
(Ð(ñ �uÔñó ðð& ñ%ó ð%ð" ñó ðñ 
ˆ#ƒñó ðñ 
ˆ(�+‰+Óñ#ó ð#ñL 
ˆ(�+‰+Óñó ðñ" 
ˆ(�+‰+Óñó ðñ 
ˆ(�+‰+Óñó ðñ 
ˆ(�+Š+Óñó ðñ 
ˆ(�+Š+Óñó ðñ 
ˆ(×
Ò
Óñó ðòPò(ð ñó ðð
 ñ3ó ð3ð
 ñ+ó ð+ð\ ñ-ó ð-ò`ñ& 	™¨Ó7Ó8€Ù	™/¨.Ó9Ó	:€ñ �×"Ñ" FÓ+òó ,ðñ �×"Ñ" GÓ,òó -ðñ �×"Ñ" HÓ-òó .ðñ" �×"Ñ" GÓ,òó -ðñ" �×"Ñ" KÓ0ñ ó 1ð ñF �×"Ñ" GÓ,ò 3ó -ð 3ñH �×"Ñ" LÓ1ñ ó 2ð ðH ñó ðñ �×"Ñ" LÓ1ò1Ió 2ð1Iñh �×"Ñ" JÓ/ò-ó 0ð-ñb �×"Ñ" LÓ1ò=ó 2ð=ñ@ �×"Ñ" GÓ,òQ%ó -ðQ%òh)"ñX "2Ù#Ð$6Ó7ó"9Ð á/Ù# KÓ0ó 2Ð ñ
 �×"Ñ" HÓ-òNó .ðNñb �×"Ñ" HÓ-ò"ó .ð"òJ&ðR ,��×!Ñ! 7Ó +Ñ,=¸eÓ,DÔ EØ +��×!Ñ! 7Ó +Ñ,=¸dÓ,CÔ Dò ñF %Ñ%=¸oÓ%NÓOÐ Ù&Ñ'?Øó(ó Ð ñ
 �×"Ñ" LÓ1òó 2ðð0 ñó ðñ> �×"Ñ" FÓ+ñó ,ðñ6 �×"Ñ" GÓ,ñó -ðð6 ñó ðð  ñó ðò"CòJñ �×"Ñ" HÓ-òó .ðñ �×"Ñ" HÓ-òó .ðñ �×"Ñ" GÓ,òó -ðð( òó ðð< ñ!ó ð!ð( ñó ðð  ñó ðñ �uÔñBó ðBð ñ"ó ð"ñJ 
ˆ(×
Ò
Óñ4!ó ð4!ñx 
ˆ(�,Š,ÓÙ	ˆ(�-Š-Óñó ó ðð( ñó ðñ4 
ˆ(�,Š,Óñó ðñ 
ˆ(�-Š-Óñó ðñ �×"Ñ" IÓ.ò)ó /ð)òbðB .��×!Ñ! 9Ó -©i¸Ø8Jó/Lô Mñ %ñ &=ó >Ð ð
 .��×!Ñ! 9Ó -©i¸Ø8Ió/Kô Lòñ, !¡Ó1€Ù"¡9¨[¸+Ø-:ó$<ó =€á$¡YÐ/EØ/EØ/Eó&Gó HÐ ñ
 �×"Ñ" IÓ.ñ	ó /ð	ñ �×"Ñ" IÓ.ñó /ðñ �×"Ñ" IÓ.ñ"ó /ð"ñJ �×"Ñ" IÓ.ñó /ðñ6 �×"Ñ" NÓ3ñó 4ðó.ð, .��×!Ñ! 9Ó -©gÐ6HÓ.IÔ Jð 0��×!Ñ! ;Ó /±Ð8LÓ0MÔ Nð .��×!Ñ! 9Ó -©gÐ6HÓ.IÔ Jð 0��×!Ñ! ;Ó /ÙÐ%Ó&ô(ð 2��×!Ñ! =Ó 1ÙÐ" EÓ*ô,òð: ñ+ó ð+ð. ñ6ó ð6òñ& "Ñ"=¸eÓ"DÓE€Ù!Ñ"=¸dÓ"CÓD€ò!ñ  Ñ 9¸+Ó FÓG€ÙÑ 9¸+Ó FÓG€ñ �×"Ñ" GÓ,ñ8ó -ð8ñ
 �×"Ñ" GÓ,ñ8ó -ð8ð ñó ðð  ñ;ó ð;ñ �×"Ñ" JÓ/ñ>ó 0ð>ð ñó ðð2 ñ;ó ð;ñ �×"Ñ" LÓ1ñBó 2ðBð
 ñó ðð, ñ.ó ð.ñ& �×"Ñ" GÓ,ñ8ó -ð8ð ñ.ó ð.ð ñó ðñ, �×"Ñ" JÓ/ñ>ó 0ð>ñ
 
ˆ#ƒñó ðð" ñó ðð 4°lÑBÐ ð ñ,ó ð,ñ 
ˆ#ƒñó ðñ �×"Ñ" IÓ.ñó /ðñ �×"Ñ" JÓ/ñ#ó 0ð#ñ �—’ 	Ó*ñó +ðñ6 �—’ 
Ó+ñ!ó ,ð!ñ �—’ 
Ó+Ù�—’ 	Ó*ñ.ó +ó ,ð.ñ ˆy˜%×+Ñ+Ó,ñDó -ðDñ. ˆz˜5×4Ñ4Ó5áˆw�{Š{Óñ%-ó ó 6ñ%-r_   