+
    f7i2  c                   s    ^ RI Ht ^ RIHt ^ RIHt ^ RIt^ RIt]P                  ! R4      t	R t
R tR tR	 tR
 tR tR tR tR tR tR t ! R R]4      t ! R R]4      t ! R R]4      tR# )    timestampNow)DefaultTable)reduceNzfontTools.mergec                 s   a \        V 4      p \        V 4      p\        V4      o\        ;QJ d    V3R  lV 4       F  '       d   K   RM	  RM! V3R  lV 4       4      '       g   Q RV ,          4       hS# )c              3   s,   <"   T F	  qS8H  x  K  	  R # 5iN ).0itemfirst   & ;/usr/lib64/python3.14/site-packages/fontTools/merge/util.py	<genexpr>Zequal.<locals>.<genexpr>   s     +u}s   FTz"Expected all items to be equal: %s)listiternextZall)lstZtr	   s   & @r   equalr      sV    
s)CS	AGE3++333++++W-QTW-WW+L    c                 s*    \        \        V 4      4      # r   )r   r   r      &r   r	   r	      s    S	?r   c                 s    \         # r   ZNotImplementedr   r   r   recalculater      s    r   c                 s    \        4       # r   r   r   r   r   current_timer   "   s
    >r   c                 6    \        \        P                  V 4      # r   )r   operatorZand_r   r   r   bitwise_andr   &   s    (--%%r   c                 r   r   )r   r   Zor_r   r   r   
bitwise_orr   *   s    (,,$$r   c                 sN    \        V 4      p \        V 4      \        V 4      ,          # r   )r   ZsumZlenr   r   r   avg_intr   .   s    
s)Cs8s3xr   c                s   a  V 3R lpV# )zReturns 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                 sr   < V  Uu. uF  q\         Jg   K  VNK  	  ppV'       d	   S! V4      # \         # u upi r   r   )r   r   Zitemsfuncs   &  r   wrapperZonlyExisting.<locals>.wrapper9   s5    "%D#$^)C#D#tE{77 Es   44r   )r   r      f r   onlyExistingr    3   s    8 Nr   c                 s>    . pV  F  pVP                  V4       K  	  V# r   )Zextend)r   lr      &  r   sumListsr#   @   !    
A	 Hr   c                 s>    / pV  F  pVP                  V4       K  	  V# r   )Zupdate)r   dr   r"   r   sumDictsr&   G   r$   r   c                 s   a  V 3R  lpV# )c                 s6  <a \        V 4      p ^ p\        SR,          4       F7  p SV,          p^T,          oT! T3R lT  4       4      pYT,          ,          pK9  	  V#   \         d/     SR,          p LG  \         d    \        RT,          4      hi ; ii ; i)r    ZsizeZ*zDon't know how to merge bit %sc              3   sH   <"   T F  p\        VS,          4      x  K  	  R # 5ir   )Zbool)r   r   
shiftedBitr
   r   r   Z-mergeBits.<locals>.wrapper.<locals>.<genexpr>[   s     $MT$*;%<%<s   ")r   ZrangeZKeyErrorZ	Exception)r   ZreturnValueZ	bitNumberZ
mergeLogicZmergedValuer'   bitmaps   &    @r   r   ZmergeBits.<locals>.wrapperO   s    3ivf~.IR#I.
 iJ$$M$MMK)33K /   RR!'J R#$Dy$PQQRRs   	AB+	A66BBr   )r(   r   r   r   	mergeBitsr)   N   s      Nr   c                   s0   a  ] tR t^bt o RtR tR tRtV tR# )AttendanceRecordingIdentityDictzUA dictionary-like object that records indices of items actually accessed
from a list.c                s    Wn         \        V4       UUu/ uF  w  r#\        V4      VbK  	  uppV n        \	        4       V n        R # u uppi r   )r!   	enumerateidr%   sets)selfr   ivs   &&  r   __init__Z(AttendanceRecordingIdentityDict.__init__f   s9    '0~6~tq"Q%(~6 7s   Ac                sp    V P                   P                  V P                  \        V4      ,          4       V# r   )r.   addr%   r,   r/   r1      &&r   __getitem__Z+AttendanceRecordingIdentityDict.__getitem__k   s#    

466"Q%=!r   )r%   r!   r.   N	__name__
__module____qualname____firstlineno____doc__r2   r6   __static_attributes____classdictcell__Z__classdict__   @r   r*   r*   b   s     
 r   r*   c                   s0   a  ] tR t^pt o RtR tR tRtV tR# )GregariousIdentityDictznA dictionary-like object that welcomes guests without reservations and
adds them to the end of the guest list.c                s@    Wn         \        R  V 4       4      V n        R# )c              3   s8   "   T F  p\        V4      x  K  	  R # 5ir   )r,   )r   r1   s   & r   r   Z2GregariousIdentityDict.__init__.<locals>.<genexpr>v   s     (CqRUUCs   N)r!   r-   r.   )r/   r   r5   r   r2   ZGregariousIdentityDict.__init__t   s    (C((r   c                s    \        V4      V P                  9  d@   V P                  P                  \        V4      4       V P                  P	                  V4       V# r   )r,   r.   r3   r!   Zappendr4   r5   r   r6   Z"GregariousIdentityDict.__getitem__x   s;    a5FFJJr!uFFMM!r   )r!   r.   Nr7   r?   r@   r   rA   rA   p   s     /) r   rA   c                   s@   a  ] tR t^t o RtRR ltR tR tR tRt	V t
R# )	NonhashableDictz3A dictionary-like object mapping objects to values.Nc                s    Vf1   \        V4       UUu/ uF  w  r4\        V4      VbK  	  uppV n        R # \        W4       UUu/ uF  w  rT\        V4      VbK  	  uppV n        R # u uppi u uppi r   )r+   r,   r%   Zzip)r/   ZkeysZvaluesr0   r1   ks   &&&   r   r2   ZNonhashableDict.__init__   sZ    >+4T?;?41beQh?;DF+.t+<=+<41beQh+<=DF <=s   A%A+c                s:    V P                   \        V4      ,          # r   r%   r,   r/   rC   r5   r   r6   ZNonhashableDict.__getitem__   s    vvbe}r   c                s4    W P                   \        V4      &   R # r   rD   )r/   rC   r1   s   &&&r   __setitem__ZNonhashableDict.__setitem__   s    r!ur   c                s2    V P                   \        V4       R # r   rD   rE   r5   r   __delitem__ZNonhashableDict.__delitem__   s    FF2a5Mr   )r%   r   )r8   r9   r:   r;   r<   r2   r6   rF   rG   r=   r>   r?   r@   r   rB   rB      s!     => r   rB   )ZfontTools.misc.timeToolsr   Z#fontTools.ttLib.tables.DefaultTabler   Z	functoolsr   r   ZloggingZ	getLoggerZlogr   r	   r   r   r   r   r   r    r#   r&   r)   Zobjectr*   rA   rB   r   r   r   <module>rH      s   
 2 <    )*&% 

(f V f r   