Ë
    ÚÍ:j›  ã                  ó   — d Z ddlmZ ddlZddlZej
                  Z G d„ de«      Zd„ Z	d„ Z
d„ Zdd	„Zd
„ Zd„ Zd„ Zddd„Zddd„Zd„ Zd„ Zdd„Zdd„Zedk(  r4ddlZddlZ ej2                   ej4                  «       j6                  «       yy)z6fontTools.misc.textTools.py -- miscellaneous routines.é    )ÚannotationsNc                  ó:   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)ÚTagc                óH   — t        | t        «      r| j                  d«      } | S ©Nzlatin-1)Ú
isinstanceÚbytesÚdecode)Úblobs    úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/misc/textTools.pyÚ	transcodezTag.transcode   s   € ä�dœEÔ"Ø—;‘;˜yÓ)ˆDØˆó    c                óL   — t         j                  | | j                  |«      «      S ©N)ÚstrÚ__new__r   )ÚselfÚcontents     r   r   zTag.__new__   s   € Ü�{‰{˜4 §¡°Ó!8Ó9Ð9r   c                ó&   — | j                  |«       S r   )Ú__eq__©r   Úothers     r   Ú__ne__z
Tag.__ne__   s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                óL   — t         j                  | | j                  |«      «      S r   )r   r   r   r   s     r   r   z
Tag.__eq__   s   € Ü�z‰z˜$ §¡¨uÓ 5Ó6Ð6r   c                ó,   — t         j                  | «      S r   )r   Ú__hash__©r   s    r   r   zTag.__hash__   s   € Ü�|‰|˜DÓ!Ð!r   c                ó$   — | j                  d«      S r   )Úencoder   s    r   ÚtobyteszTag.tobytes    s   € Ø�{‰{˜9Ó%Ð%r   N)
Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r    © r   r   r   r      s-   „ Øñó ðò
:ò&ò7ò"ó&r   r   c                ó8   — t        t        d„ | D «       «      «      S )z-Convert a list of hex strings to binary data.c              3  óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   )r   r   )Ú.0Úchunks     r   ú	<genexpr>zreadHex.<locals>.<genexpr>&   s   è ø€ ÒQ e¼*ÀUÌCÕ:PœEÑQùs   ‚˜)ÚdeHexStrÚstrjoin)r   s    r   ÚreadHexr-   $   s   € ä”GÑQ¨wÔQÓQÓRÐRr   c                óþ   — t        | j                  «       «      } t        | «      dz  r| dz   } g }t        dt        | «      d«      D ],  }|j	                  t        t        | ||dz    d«      «      «       Œ. t        |«      S )z$Convert a hex string to binary data.é   Ú0r   é   )r,   ÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ	bytesjoin)ÚhexdataÚdataÚis      r   r+   r+   )   su   € ä�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                ó|   — t         j                  }d}| D ]$  }t        |«      }|||dz	  dz     z   ||dz     z   }Œ& |S )z$Convert binary data to a hex string.Ú é   é   )ÚstringÚ	hexdigitsÚbyteord)r:   ÚhÚrÚcr;   s        r   ÚhexStrrF   4   sU   € ä×Ñ€AØ
€AØò /ˆÜ�A‹JˆØ��1˜‘6˜S‘.Ñ!Ñ! A a¨#¡g¡JÑ.‰ð/ð €Hr   c                ó
  — g }d}t        |«      D ]3  }| dz  rd|z   }nd|z   }| dz	  } |dz   dz  rŒ!|j                  |«       d}Œ5 |r|j                  |«       |j                  «        | dv sJ d«       ‚dj                  |«      S )	Nr=   é   Ú1r0   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsú )r4   r5   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryr;   s        r   Ú
num2binaryrS   >   s—   € Ø€EØ€FÜ�4‹[ò ˆØˆsŠ7Ø˜6‘\‰Fà˜6‘\ˆFØ�‰FˆØ�Q‘˜!“Ø�L‰L˜Ô Ø‰Fðñ Ø�‰�VÔØ	‡M�M„OØ�‰<Ð?Ð?Ó?ˆ<Ø�8‰8�E‹?Ðr   c                ój   — t        | j                  «       «      } d}| D ]  }|dz  }|dk7  sŒ|dz  }Œ |S )Nr   rH   r0   )r,   r2   )ÚbinrO   Údigits      r   Ú
binary2numrW   Q   sF   € Ü
�#—)‘)“+Ó
€CØ	€AØò ˆØ�‰FˆØ�C‹<Ø�C‘‰Aðð €Hr   c                óT   — 	 t        | d„ ¬«      S # t        $ r t        | «      cY S w xY w)zjReturn a sorted copy of a list. If there are only strings
    in the list, it will not consider case.
    c                ó&   — | j                  «       | fS r   )Úlower)Úas    r   ú<lambda>zcaselessSort.<locals>.<lambda>a   s   € ¨A¯G©G«I°q¨>€ r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortra   [   s.   € ð
Ü�eÑ!9Ô:Ð:øÜò Ü�e‹}Òðús   ‚ �'¦'c                ó\   — t        | «      } |dkD  rt        | «      |z  }|r| d||z
  z  z  } | S )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
    rH   ó    )r    r3   )r:   ÚsizeÚ	remainders      r   Úpadrf   f   s>   € ô �4‹=€DØˆa‚xÜ˜“I Ñ$ˆ	ÙØ�E˜T IÑ-Ñ.Ñ.ˆDØ€Kr   c                óJ   — t        | t        «      s| j                  ||«      S | S r   )r   r   r
   ©ÚsÚencodingÚerrorss      r   Útostrrl   {   s"   € Ü�aœÔØ�x‰x˜ &Ó)Ð)àˆr   c                ó\   — t        | t        «      r| j                  ||«      S t        | «      S r   )r   r   r   r	   rh   s      r   r    r    ‚   s&   € Ü�!”SÔØ�x‰x˜ &Ó)Ð)ä�Q‹xˆr   c                ó   — t        | g«      S r   )r	   )Úns    r   r6   r6   ‰   s   € Ü�!�‹:Ðr   c                ó<   — t        | t        «      r| S t        | «      S r   )r   r7   Úord)rE   s    r   rB   rB   �   s   € Ü˜1œcÔ"ˆ1Ð.¬¨A«Ð.r   c                ó6   — t        |«      j                  | «      S r   )rl   rN   ©ÚiterableÚjoiners     r   r,   r,   ‘   s   € Ü�‹=×Ñ˜hÓ'Ð'r   c                óD   — t        |«      j                  d„ | D «       «      S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   )r    )r(   Úitems     r   r*   zbytesjoin.<locals>.<genexpr>–   s   è ø€ ÒC°$¤¨§ÑCùs   ‚)r    rN   rs   s     r   r8   r8   •   s   € Ü�6‹?×ÑÑC¸(ÔCÓCÐCr   Ú__main__)é    )ÚasciiÚstrict)ri   ústr | bytesrj   r   rk   r   Úreturnr   )ri   r}   rj   r   rk   r   r~   r	   )r=   )r   )Ú__doc__Ú
__future__r   Úastr@   Úliteral_evalÚsafeEvalr   r   r-   r+   rF   rS   rW   ra   rf   rl   r    r6   rB   r,   r8   r!   ÚdoctestÚsysÚexitÚtestmodÚfailedr%   r   r   ú<module>r‰      sœ   ðÙ <å "ã 
Û ð ×Ñ€ô&ˆ#ô &ò.Sò
òóò&òòô*ôòò/ó(óDð ˆzÒßà€C‡H�Hˆ_ˆW�_‰_Ó×%Ñ%Õ&ð r   