+
     Ÿi6  c                  sÀ   € R t ^ RIHt ^ RIt^ RIHtHtHtHt ^ RI	H
t
 ^ RIHt ]'       d   ^ RIHt ^ RIHt ^ RIHt ]]]].R3,          t]
! 4       t ! R	 R
4      tR# )z-Executes more complex patterns of keystrokes.)ÚannotationsN)ÚListÚCallableÚOptionalÚTYPE_CHECKING)Ú
SharedDict)Úlogger)ÚTask)ÚContext)ÚMappingc                  sX   € ] tR t^(tRtRR R lltR R ltR tR tRR	 lt	R
 t
R tRtR# )ÚMacrozÂChains tasks (like `modify` or `repeat`).

Tasks may have child_macros. Running a Macro runs Tasks, which in turn may run
their child_macros based on certain conditions (depending on the Task).
Nc               s$   € V ^8„  d   QhRRRRRR/# )é   ÚcodezOptional[str]ÚcontextzOptional[Context]ÚmappingzOptional[Mapping]© ©Zformató   "ÚI/usr/lib/python3.14/site-packages/inputremapper/injection/macros/macro.pyÚ__annotate__ÚMacro.__annotate__/   s(   € ÷ 'ñ 'àð'ð #ð'ð #ñ	'ó    c                sT   € Wn         W n        W0n        . V n        RV n        RV n        R# )z°Create a macro instance that can be populated with tasks.

Parameters
----------
code
    The original parsed code, for logging purposes.
context : Context
mapping : UIMapping
FN)r   r   r   ÚtasksÚrunningÚkeystroke_sleep_ms)Úselfr   r   r   s   &&&&r   Ú__init__ZMacro.__init__/   s+   € ð Œ	ØŒØŒð "$ˆŒ
àˆŒà"&ˆÖr   c               s   € V ^8„  d   QhRR/# )r   ÚcallbackÚInjectEventCallbackr   r   r   r   r   r   J   s   € ÷ !ñ !Ð"5ñ !r   c              ƒ  sÚ  "  € \        V4      '       g   \        R4      hV P                  '       d$   \        P                  ! RV P
                  4       R# V P                  P                  V n        RV n         V P                   F<  pVP                  V4      p\        P                  ! V4      '       g   K2  VG Rj  x€L
  K>  	   RT n        R#  L  \         d    h i ; i  RT n        i ; i5i)zoRun the macro.

Parameters
----------
callback
    Will receive int type, code and value for an event to write
zhandler is not callablez'Tried to run already running macro "%s"NTF)ZcallableZ
ValueErrorr   r   Zerrorr   r   Zmacro_key_sleep_msr   r   ÚrunÚasyncioZiscoroutineZ	Exception)r   r   ÚtaskZ	coroutines   &&  r   r   Z	Macro.runJ   s¸   é € ô ˜×!Ò!ÜÐ6Ó7Ð7à<<ˆ<ÜLŠLÐBÀDÇIÁIÔNÙà"&§,¡,×"AÑ"AˆÔàˆŒð		!ØŸ
œ
Ø ŸH™H XÓ.	Ü×&Ò& y×1Ô1Ø#—O’Oò #ð !ˆDŽLñ $øÜô 	Øð	ûð !ˆDLüsG   ‚.C+±AC+Á79C Â5C Â:CÂ;C Ã	C+ÃC ÃCÃC Ã	C(Ã(C+c                óL   € V P                    F  pVP                  4        K  	  R# )z&The user pressed the trigger key down.N)r   Úpress_trigger©r   r   ó   & r   r!   ZMacro.press_triggerh   s   € à—J”JˆDØ×ÑÖ ó r   c                r    )z"The user released the trigger key.N)r   Úrelease_triggerr"   r#   r   r$   ZMacro.release_triggerm   s   € à—J”JˆDØ× Ñ Ö"ó r   c              ƒ  sp   "  € \         P                  ! V P                  R,          4      G Rj  x€L
  R#  L5i)z»To add a pause between keystrokes.

This was needed at some point because it appeared that injecting keys too
fast will prevent them from working. It probably depends on the environment.
iè  N)r   Zsleepr   )r   Z_ó   &&r   Ú_keycode_pauseZMacro._keycode_pauser   s$   é € ô mŠm˜D×3Ñ3°dÕ:Ó;×;Ô;ùs   ‚+6­4®6c                	sL   € R V P                    R\        \        V 4      4       R2# )z<Macro "z" at Z>)r   ZhexZid)r   s   &r   Ú__repr__ZMacro.__repr__z   s#   € Ø˜$Ÿ)™)˜ E¬#¬b°«h«-¨¸Ð:Ð:r   c                	s<   € V P                   P                  V4       R # ©N)r   Zappendr"   r%   r   Úadd_taskZMacro.add_task}   s   € Ø
‰
×Ñ˜$Ör   )r   r   r   r   r   r   )NNr(   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Ú__doc__r   r   r!   r$   r&   r'   r)   Z__static_attributes__r   r   r   r
   r
   (   s*   † ñ÷'õ6!ò<!ò
#ô
<ò;ö r   r
   )r*   Z
__future__r    r   Ztypingr   r   r   r   Zinputremapper.ipc.shared_dictr   Zinputremapper.logging.loggerr   Z#inputremapper.injection.macros.taskr   Zinputremapper.injection.contextr   Zinputremapper.configs.mappingr	   Zintr   Zmacro_variablesr
   r   r   r   Ú<module>r+      sQ   ðñ( 4å "ã ß :Ó :å 4Ý /çÝ8Ý7Ý5à  S¨#˜°Ð4Õ5Ð á“,€÷V ó V r   