Ë
    £eh2  ã                   óà   — d dl mZ d dlmZ d dlmZ d dlZd dlZ ej                  d«      Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    ©ÚtimestampNow)ÚDefaultTable)ÚreduceNzfontTools.mergec                 ó†   ‡— t        | «      } t        | «      }t        |«      Št        ˆfd„|D «       «      s
J d| z  «       ‚‰S )Nc              3   ó(   •K  — | ]	  }|‰k(  –— Œ y ­w©N© )Ú.0ÚitemÚfirsts     €úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/merge/util.pyú	<genexpr>zequal.<locals>.<genexpr>   s   øè ø€ Ò+ ˆt�u�}Ñ+ùs   ƒz"Expected all items to be equal: %s)ÚlistÚiterÚnextÚall)ÚlstÚtr   s     @r   Úequalr      sC   ø€ Ü
ˆs‹)€CÜˆS‹	€AÜ�‹G€EÜÓ+¨Ô+Ô+ÐWÐ-QÐTWÑ-WÓWÐ+Ø€Ló    c                 ó*   — t        t        | «      «      S r	   )r   r   ©r   s    r   r   r      s   € Ü”�S“	‹?Ðr   c                 ó   — t         S r	   ©ÚNotImplementedr   s    r   Úrecalculater      s   € ÜÐr   c                 ó   — t        «       S r	   r   r   s    r   Úcurrent_timer   "   s
   € Ü‹>Ðr   c                 ó6   — t        t        j                  | «      S r	   )r   ÚoperatorÚand_r   s    r   Úbitwise_andr#   &   s   € Ü”(—-‘- Ó%Ð%r   c                 ó6   — t        t        j                  | «      S r	   )r   r!   Úor_r   s    r   Ú
bitwise_orr&   *   s   € Ü”(—,‘, Ó$Ð$r   c                 óF   — t        | «      } t        | «      t        | «      z  S r	   )r   ÚsumÚlenr   s    r   Úavg_intr*   .   s   € Ü
ˆs‹)€CÜˆs‹8”s˜3“xÑÐr   c                 ó   ‡ — ˆ fd„}|S )zÒReturns a filter func that when called with a list,
    only calls func on the non-NotImplemented items of the list,
    and only so if there's at least one item remaining.
    Otherwise returns NotImplemented.c                 ó^   •— | D �cg c]  }|t         usŒ|‘Œ }}|r ‰|«      S t         S c c}w r	   r   )r   r   ÚitemsÚfuncs      €r   ÚwrapperzonlyExisting.<locals>.wrapper9   s4   ø€ Ø"%ÖD˜$¨´^Ò)C’ÐDˆÐDÙ#‰t�E‹{Ð7¬Ð7ùò Es   †*”*r
   )r.   r/   s   ` r   ÚonlyExistingr0   3   s   ø€ ô8ð €Nr   c                 ó:   — g }| D ]  }|j                  |«       Œ |S r	   )Úextend)r   Úlr   s      r   ÚsumListsr4   @   ó&   € Ø
€AØò ˆØ	�‰��ðà€Hr   c                 ó:   — i }| D ]  }|j                  |«       Œ |S r	   )Úupdate)r   Údr   s      r   ÚsumDictsr9   G   r5   r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óô   •‡— t        | «      } d}t        ‰d   «      D ]&  }	 ‰|   }d|z  Š |ˆfd„| D «       «      }|||z  z  }Œ( |S # t        $ r% 	 ‰d   }n# t        $ r t        d|z  «      ‚w xY wY ŒOw xY w)Nr   ÚsizeÚ*zDon't know how to merge bit %sé   c              3   ó:   •K  — | ]  }t        |‰z  «      –— Œ y ­wr	   )Úbool)r   r   Ú
shiftedBits     €r   r   z-mergeBits.<locals>.wrapper.<locals>.<genexpr>[   s   øè ø€ Ò$MÀ¤T¨$°Ñ*;×%<Ñ$Mùs   ƒ)r   ÚrangeÚKeyErrorÚ	Exception)r   ÚreturnValueÚ	bitNumberÚ
mergeLogicÚmergedValuerA   Úbitmaps        @€r   r/   zmergeBits.<locals>.wrapperO   s´   ù€ Ü�3‹iˆØˆÜ˜v f™~Ó.ò 
	4ˆIðRØ# IÑ.�
ð ˜i™ˆJÙ$Ó$MÈÔ$MÓMˆKØ˜;¨)Ñ3Ñ3‰Kð
	4ð Ðøô ò RðRØ!'¨¡‘JøÜò RÜ#Ð$DÀyÑ$PÓQÐQðRúñ ðRús)   ¢A	Á		A7ÁAÁA7ÁA1Á1A7Á6A7r
   )rI   r/   s   ` r   Ú	mergeBitsrJ   N   s   ø€ ôð  €Nr   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚAttendanceRecordingIdentityDictzYA dictionary-like object that records indices of items actually accessed
    from a list.c                 ó–   — || _         t        |«      D ��ci c]  \  }}t        |«      |“Œ c}}| _        t	        «       | _        y c c}}w r	   )r3   Ú	enumerateÚidr8   ÚsetÚs)Úselfr   ÚiÚvs       r   Ú__init__z(AttendanceRecordingIdentityDict.__init__f   s9   € ØˆŒÜ'0°£~×6™t˜q !”"�Q“%˜‘(Ó6ˆŒÜ“ˆ�ùó 7s   –Ac                 óh   — | j                   j                  | j                  t        |«         «       |S r	   )rQ   Úaddr8   rO   ©rR   rT   s     r   Ú__getitem__z+AttendanceRecordingIdentityDict.__getitem__k   s#   € Ø�‰�
‰
�4—6‘6œ"˜Q›%‘=Ô!Øˆr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__rU   rY   r
   r   r   rL   rL   b   s   „ ñòó
r   rL   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚGregariousIdentityDictzrA dictionary-like object that welcomes guests without reservations and
    adds them to the end of the guest list.c                 ó@   — || _         t        d„ |D «       «      | _        y )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr	   )rO   )r   rT   s     r   r   z2GregariousIdentityDict.__init__.<locals>.<genexpr>v   s   è ø€ Ò(˜q”R˜—UÑ(ùs   ‚)r3   rP   rQ   )rR   r   s     r   rU   zGregariousIdentityDict.__init__t   s   € ØˆŒÜÑ( CÔ(Ó(ˆ�r   c                 ó²   — t        |«      | j                  vr?| j                  j                  t        |«      «       | j                  j	                  |«       |S r	   )rO   rQ   rW   r3   ÚappendrX   s     r   rY   z"GregariousIdentityDict.__getitem__x   s;   € Üˆa‹5˜Ÿ™ÑØ�F‰F�J‰J”r˜!“uÔØ�F‰F�M‰M˜!ÔØˆr   NrZ   r
   r   r   r`   r`   p   s   „ ñ/ò)ór   r`   c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)ÚNonhashableDictz3A dictionary-like object mapping objects to values.Nc                 óØ   — |€.t        |«      D ��ci c]  \  }}t        |«      |“Œ c}}| _        y t        ||«      D ��ci c]  \  }}t        |«      |“Œ c}}| _        y c c}}w c c}}w r	   )rN   rO   r8   Úzip)rR   ÚkeysÚvaluesrS   rT   Úks         r   rU   zNonhashableDict.__init__‚   sV   € Øˆ>Ü+4°T«?×;¡4 1 a”b˜“e˜Q‘hÓ;ˆD�Fä+.¨t°VÓ+<×=¡4 1 a”b˜“e˜Q‘hÓ=ˆD�Fùó <ùã=s   ‘A Á A&c                 ó2   — | j                   t        |«         S r	   ©r8   rO   ©rR   rk   s     r   rY   zNonhashableDict.__getitem__ˆ   s   € Ø�v‰v”b˜“e‰}Ðr   c                 ó4   — || j                   t        |«      <   y r	   rm   )rR   rk   rT   s      r   Ú__setitem__zNonhashableDict.__setitem__‹   s   € Øˆ�‰Œr�!‹uŠr   c                 ó0   — | j                   t        |«      = y r	   rm   rn   s     r   Ú__delitem__zNonhashableDict.__delitem__Ž   s   € Ø�F‰F”2�a“5‰Mr   r	   )r[   r\   r]   r^   rU   rY   rp   rr   r
   r   r   rf   rf      s   „ Ù=ó>òòór   rf   )ÚfontTools.misc.timeToolsr   Ú#fontTools.ttLib.tables.DefaultTabler   Ú	functoolsr   r!   ÚloggingÚ	getLoggerÚlogr   r   r   r   r#   r&   r*   r0   r4   r9   rJ   ÚobjectrL   r`   rf   r
   r   r   ú<module>rz      s†   ðõ
 2Ý <Ý Û Û ð €g×ÑÐ)Ó*€òòòòò&ò%ò ò

òòòô( fô ô˜Vô ô�fõ r   