ó
    oñ:i›  ã                  ó0  • S r SSKJr  SSKrSSKr\R
                  r " S S\5      rS r	S r
S rSS	 jrS
 rS rS rSSS jjrSSS jjrS rS rSS jrSS jr\S:X  a4  SSKrSSKr\R2                  " \R4                  " 5       R6                  5        gg)z6fontTools.misc.textTools.py -- miscellaneous routines.é    )ÚannotationsNc                  óB   • \ rS rSr\S 5       rS rS rS rS r	S r
Srg	)
ÚTagé   c                óR   • [        U [        5      (       a  U R                  S5      n U $ ©Nzlatin-1)Ú
isinstanceÚbytesÚdecode)Úblobs    Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/misc/textTools.pyÚ	transcodeÚTag.transcode   s"   € ä�dœE×"Ñ"Ø—;‘;˜yÓ)ˆDØˆó    c                óJ   • [         R                  X R                  U5      5      $ ©N)ÚstrÚ__new__r   )ÚselfÚcontents     r   r   ÚTag.__new__   s   € Ü�{‰{˜4§¡°Ó!8Ó9Ð9r   c                ó.   • U R                  U5      (       + $ r   )Ú__eq__©r   Úothers     r   Ú__ne__Ú
Tag.__ne__   s   € Ø—;‘;˜uÓ%Ô%Ð%r   c                óJ   • [         R                  X R                  U5      5      $ r   )r   r   r   r   s     r   r   Ú
Tag.__eq__   s   € Ü�z‰z˜$§¡¨uÓ 5Ó6Ð6r   c                ó,   • [         R                  U 5      $ r   )r   Ú__hash__©r   s    r   r!   ÚTag.__hash__   s   € Ü�|‰|˜DÓ!Ð!r   c                ó$   • U R                  S5      $ r   )Úencoder"   s    r   ÚtobytesÚTag.tobytes    s   € Ø�{‰{˜9Ó%Ð%r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr   r   r   r   r!   r&   Ú__static_attributes__r(   r   r   r   r      s-   † Øñó ðò
:ò&ò7ò"õ&r   r   c                ó8   • [        [        S U  5       5      5      $ )z-Convert a list of hex strings to binary data.c              3  óT   #   • U  H  n[        U[        5      (       d  M  Uv •  M      g 7fr   )r	   r   )Ú.0Úchunks     r   Ú	<genexpr>ÚreadHex.<locals>.<genexpr>&   s   é € ÐQªw e¼*ÀUÌC×:PŸE™Eªwùs   ‚(Ÿ	()ÚdeHexStrÚstrjoin)r   s    r   ÚreadHexr7   $   s   € ä”GÑQ©wÓQÓQÓRÐRr   c                ó
  • [        U R                  5       5      n [        U 5      S-  (       a  U S-   n / n[        S[        U 5      S5       H,  nUR	                  [        [        XUS-    S5      5      5        M.     [        U5      $ )z$Convert a hex string to binary data.é   Ú0r   é   )r6   ÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ	bytesjoin)ÚhexdataÚdataÚis      r   r5   r5   )   sn   € ä�g—m‘m“oÓ&€GÜ
ˆ7ƒ|�a×Ø˜C‘-ˆØ€DÜ�1”c˜'“l AÖ&ˆØ�‰”GœC ¨A°©EÐ 2°BÓ7Ó8Ö9ñ 'ä�T‹?Ðr   c                ó|   • [         R                  nSnU  H#  n[        U5      nX!US-	  S-     -   XS-     -   nM%     U$ )z$Convert binary data to a hex string.Ú é   é   )ÚstringÚ	hexdigitsÚbyteord)rD   ÚhÚrÚcrE   s        r   ÚhexStrrP   4   sL   € ä×Ñ€AØ
€AÛˆÜ�A‹JˆØ�1˜‘6˜S‘.Ñ!Ñ! A¨#¡g¡JÑ.Šñ ð €Hr   c                ó2  • / nSn[        U5       H?  nU S-  (       a  SU-   nOSU-   nU S-	  n US-   S-  (       a  M,  UR                  U5        SnMA     U(       a  UR                  U5        UR                  5         U S;   d   S5       eSR                  U5      $ )	NrG   é   Ú1r:   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsÚ )r>   r?   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryrE   s        r   Ú
num2binaryr]   >   s”   € Ø€EØ€FÜ�4Ž[ˆØˆs�7Ø˜6‘\‰Fà˜6‘\ˆFØ�‰FˆØ�Q‘˜!—‘Ø�L‰L˜Ô ØŠFñ ö Ø�‰�VÔØ	‡M�M„OØ�‹<Ð?Ð?Ó?ˆ<Ø�8‰8�E‹?Ðr   c                ór   • [        U R                  5       5      n SnU  H  nUS-  nUS:w  d  M  US-  nM     U$ )Nr   rR   r:   )r6   r<   )ÚbinrY   Údigits      r   Ú
binary2numra   Q   sA   € Ü
�#—)‘)“+Ó
€CØ	€AÛˆØ�‰FˆØ�C�<Ø�C‘ŠAñ ð €Hr   c                óP   •  [        U S S9$ ! [         a    [        U 5      s $ f = f)zbReturn a sorted copy of a list. If there are only strings
in the list, it will not consider case.
c                ó&   • U R                  5       U 4$ r   )Úlower)Úas    r   Ú<lambda>ÚcaselessSort.<locals>.<lambda>a   s   € ¨A¯G©G«I°q©>r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortrl   [   s.   € ð
Ü�eÑ!9Ñ:Ð:øÜó Ü�e‹}Òðús   ‚
 �%¤%c                óf   • [        U 5      n US:”  a  [        U 5      U-  nU(       a
  U SX-
  -  -  n U $ )zÕPad byte string 'data' with null bytes until its length is a
multiple of 'size'.

>>> len(pad(b'abcd', 4))
4
>>> len(pad(b'abcde', 2))
6
>>> len(pad(b'abcde', 4))
8
>>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
True
rR   ó    )r&   r=   )rD   ÚsizeÚ	remainders      r   Úpadrq   f   s<   € ô �4‹=€DØˆaƒxÜ˜“I Ñ$ˆ	ÞØ�E˜TÑ-Ñ.Ñ.ˆDØ€Kr   c                óR   • [        U [        5      (       d  U R                  X5      $ U $ r   )r	   r   r   ©ÚsÚencodingÚerrorss      r   Útostrrw   {   s#   € Ü�aœ×ÑØ�x‰x˜Ó)Ð)àˆr   c                ód   • [        U [        5      (       a  U R                  X5      $ [        U 5      $ r   )r	   r   r%   r
   rs   s      r   r&   r&   ‚   s'   € Ü�!”S×ÑØ�x‰x˜Ó)Ð)ä�Q‹xˆr   c                ó   • [        U /5      $ r   )r
   )Úns    r   r@   r@   ‰   s   € Ü�!�‹:Ðr   c                óF   • [        U [        5      (       a  U $ [        U 5      $ r   )r	   rA   Úord)rO   s    r   rL   rL   �   s   € Ü˜1œc×"Ñ"ˆ1Ð.¬¨A«Ð.r   c                ó6   • [        U5      R                  U 5      $ r   )rw   rX   ©ÚiterableÚjoiners     r   r6   r6   ‘   s   € Ü�‹=×Ñ˜hÓ'Ð'r   c                óD   • [        U5      R                  S U  5       5      $ )Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   )r&   )r1   Úitems     r   r3   Úbytesjoin.<locals>.<genexpr>–   s   é € ÐCº(°$¤¨§ º(ùs   ‚)r&   rX   r~   s     r   rB   rB   •   s   € Ü�6‹?×ÑÑC¹(ÓCÓCÐCr   Ú__main__)é    )ÚasciiÚstrict)rt   ústr | bytesru   r   rv   r   Úreturnr   )rt   r‰   ru   r   rv   r   rŠ   r
   )rG   )r   )Ú__doc__Ú
__future__r   ÚastrJ   Úliteral_evalÚsafeEvalr   r   r7   r5   rP   r]   ra   rl   rq   rw   r&   r@   rL   r6   rB   r)   ÚdoctestÚsysÚexitÚtestmodÚfailedr(   r   r   Ú<module>r•      s˜   ðÙ <å "ã 
Û ð ×Ñ€ô&ˆ#ô &ò.Sò
òôò&òòö*öòò/ô(ôDð ˆzÓßà‡H‚HˆW�_Š_Ó×%Ñ%Õ&ð r   