+
    UV-jq,  ã                   ój  € ^ RI HtHtHtHtHtHt ^ RIHt	 ^ RI
Ht ^RIHt ^RIHtHtHtHtHt ^RIHtHtHtHt ^RIHtHtHt ^RIHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t) . R Ot*R R	 lt+R
 R lt,R R lt-R R lt.R R lt/RRR]	P`                  RRRRRRRRRRRR/R R llt1RRRR/R R llt2R# )!é    )ÚAnyÚCallableÚ	GeneratorÚListÚOptionalÚTupleN)Úcache)Ú_dflash_block_totalÚ_format_speculative_statsÚ_speculative_walkÚ_speculative_walk_batchÚ*_speculative_walk_batch_uniform_acceptance)Ú!_dflash_committed_hidden_segmentsÚ_dflash_next_block_sizeÚ_dflash_roundsÚ_dflash_rounds_batch)Ú_eagle3_capture_layer_idsÚ_eagle3_roundsÚ_eagle3_rounds_batch)Ú_buffer_mtp_target_cacheÚ_effective_mtp_block_sizeÚ_mtp_draft_block_activeÚ_mtp_draft_hiddenÚ_mtp_next_block_sizeÚ_mtp_roundsÚ_mtp_rounds_batchÚ _mtp_shared_kv_from_prompt_cacheÚ_mtp_verify_targetÚ_MTPVerifyResultÚ'_speculative_walk_batch_deferred_greedyÚ!_speculative_walk_deferred_greedyc                óZ   € V ^8„  d   QhR\         P                  R\        \        ,          /# )é   Údraft_modelÚreturn)ÚnnÚModuler   Ústr)Úformats   "Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/speculative/utils.pyÚ__annotate__r+   C   s"   € ÷ 2ñ 2¬"¯)©)ð 2¼Ä½ñ 2ó    c                 ó   € \        V 4      # ©N)r   )r$   s   &r*   Úformat_speculative_statsr/   C   s   € Ü$ [Ó1Ð1r,   c                ó$   € V ^8„  d   QhR\         /# ©r#   Ú
draft_kind©r(   )r)   s   "r*   r+   r+   G   s   € ÷ 	ñ 	¬Sñ 	r,   c                 óp   € V R 8X  d   \         # V R8X  d   \        # V R8X  d   \        # \        RV : R24      h)Úeagle3ÚmtpÚdflashúUnknown draft_kind ú(. Supported: ['dflash', 'eagle3', 'mtp'])r   r   r   Ú
ValueError)r2   s   &r*   Úget_speculative_rounds_batchr;   G   sF   € Ø�XÔÜ#Ð#Ø�UÔÜ Ð Ø�XÔÜ#Ð#Ü
Ø
˜j™^Ð+SÐTóð r,   c                ó0   € V ^8„  d   QhR\         R\        /# )r#   r2   r%   )r(   Údict)r)   s   "r*   r+   r+   S   s   € ÷ 	ñ 	¬3ð 	¼Dñ 	r,   c                 ó´   € V R 8X  d   RRRR/# V R8X  d   R\        V4      /# V R8X  d"   R\        VP                  P                  4      /# \	        RV : R24      h)	r6   Úreturn_hiddenTÚreturn_shared_kvr5   Úcapture_layer_idsr7   r8   r9   )r   ÚlistÚconfigÚtarget_layer_idsr:   )r2   Údrafters   &&r*   Úspeculative_prefill_kwargsrF   S   so   € Ø�UÔØ Ð'9¸4Ð@Ð@Ø�XÔØ#Ô%>¸wÓ%GÐHÐHØ�XÔØ#¤T¨'¯.©.×*IÑ*IÓ%JÐKÐKÜ
Ø
˜j™^Ð+SÐTóð r,   c                ó$   € V ^8„  d   QhR\         /# r1   r3   )r)   s   "r*   r+   r+   _   s   € ÷ ñ ¬ñ r,   c                 ó¨   € V R 8X  d   VP                   R,          # V R9   d#   \        P                  ! VP                   RR7      # \        RV : R24      h)r6   ©Úaxisr8   r9   éÿÿÿÿ)r7   r5   )Úhidden_statesÚmxÚconcatenater:   )r2   Úoutputss   &&r*   Úspeculative_hidden_staterP   _   sU   € Ø�UÔØ×$Ñ$ RÕ(Ð(ØÐ)Ô)Ü�~Š~˜g×3Ñ3¸"Ô=Ð=Ü
Ø
˜j™^Ð+SÐTóð r,   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r#   r2   Ú
batch_sizeÚ
make_cache)r(   Úintr   )r)   s   "r*   r+   r+   i   s*   € ÷ 
(ñ 
(ô ð
(ô ð	
(ô ñ
(r,   c                óZ   € VR 8X  d   V^8X  d   \         P                  ! V 4      # V! W4      # )r6   )r	   Úmake_prompt_cache)Úlmr2   rR   Úleft_paddingrS   s   &$$$$r*   Úmake_speculative_prompt_cacherY   i   s.   € ð �UÔ˜z¨QœÜ×&Ò& rÓ*Ð*Ù�bÓ'Ð'r,   Údraft_block_sizeÚtoken_dtypeÚ
stop_checkÚgreedy_samplingFÚshared_kv_statesÚeos_token_idsÚprompt_tokensÚrow_idsc          &      óè  € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          R\        P
                  R\        R\        P
                  R\        R\        \        P
                  .\        P
                  3,          R	\        \        ,          R
\        P                  R\        \        \        \        .\        3,          ,          R\        R\        \        ,          R\        \        ,          R\        \        P
                  ,          R\        \        \        ,          ,          R\        \        \        \        \        ,          ,          R3,          RR3,          /# )r#   Úmodelr$   Úprompt_cacheÚhiddenr2   Úfirst_bonusÚ
max_tokensÚsamplerrZ   r[   r\   r]   r^   r_   r`   ra   r%   N)r&   r'   r   r   rM   Úarrayr(   rT   r   r   ÚDtypeÚboolr=   Úsetr   r   )r)   s   "r*   r+   r+   v   sA  € ÷ ^ñ ^Ü�9‰9ð^ä—‘ð^ô ”s•)ð^ô �H‰Hð	^ô ð^ô —‘ð^ô ð^ô ”r—x‘x�j¤"§(¡(Ð*Õ+ð^ô œs•mð^ô —‘ð^ô œ¤3¬ *¬dÐ"2Õ3Õ4ð^ô ð^ô œt•nð^ô œC•=ð^ô  œBŸH™HÕ%ð!^ô" ”dœ3•iÕ ð#^ô$ Œu”Tœ(¤3�-Õ(¨$Ð.Õ/°°tÐ;Õ<ñ%^r,   c             #   ó2  "  € VP                   ^ 8”  d   \        VP                  ^ ,          4      M^pVR8X  dw   V^8X  dN   R \        V VVVV\        VP	                  R4      P                  4       4      VVVV	VR7       4        Rj  x€L
  R# \        V VVVVVVVVV	V
VVR7       Rj  x€L
  R# VR8X  d$   \        V VVVVVVVVV	V
VVVR7       Rj  x€L
  R# VR8X  d    \        V VVVVVVVV	V
R	7
       Rj  x€L
  R# \        R
V: R24      h Lˆ Lh L@ L5i)r   r5   c              3   ó0   "  € T F  w  rV.V3x € K  	  R # 5ir.   © )Ú.0ÚtokÚstates   &  r*   Ú	<genexpr>Ú0run_speculative_server_rounds.<locals>.<genexpr>�   s#   é € ð ñ#‘J�Cð �˜•ó#ùs   ‚©r`   rf   rg   rh   rZ   r[   r]   N)	r`   rf   rg   rh   rZ   r[   r\   r_   r]   r6   )	rf   rg   rh   rZ   r[   r\   r_   r]   ra   r7   )rf   rg   rh   rZ   r[   r\   r8   r9   rK   )
ÚndimrT   Úshaper   ÚreshapeÚitemr   r   r   r:   )rc   r$   rd   re   r2   rf   rg   rh   rZ   r[   r\   r]   r^   r_   r`   ra   rR   s   &&&&$$$$$$$$$$$$ r*   Úrun_speculative_server_roundsrz   v   sˆ  é € ð& /:×.>Ñ.>ÀÔ.B”�[×&Ñ& qÕ)Ô*È€Jà�XÔØ˜Œ?ñä"0ØØØ ØØ"/Ü # K×$7Ñ$7¸Ó$;×$@Ñ$@Ó$BÓ CØ)Ø#Ø%5Ø +Ø$3õ#ó÷ ð ñ  ä'ØØØØØ'Ø#Ø!ØØ-Ø#Ø!Ø'Ø+ô
÷ 	
ð 	
ñ 	à�UÔÜ$ØØØØØØ#Ø!ØØ-Ø#Ø!Ø'Ø+Øô
÷ 	
ð 	
ñ  	à�XÔÜ'ØØØØØ#Ø!ØØ-Ø#Ø!ô
÷ 	
ð 	
ñ 	ä
Ø
˜j™^Ð+SÐTóð ñKñ$	
ñ$	
ñ&	
ùsH   ‚BDÂDÂ!DÂ(DÂ))DÃDÃ%DÃ8DÃ9DÄDÄDÄDÚsampler_is_greedyc                óâ  € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          R\        P
                  R\        P
                  R\        P
                  R\        R\        R	\        R
\        \        P
                  .\        P
                  3,          R\        \        ,          R\        R\        \        \        \        P
                  3,          RR3,          /# )r#   rc   r$   rd   Ú	input_idsÚfirst_tokenÚlogprobsÚlast_outputsr2   rg   rh   rZ   r{   r%   N)r&   r'   r   r   rM   ri   r(   rT   r   r   rk   r   r   )r)   s   "r*   r+   r+   ×   sâ   € ÷ U
ñ U
Ü�9‰9ðU
ä—‘ðU
ô ”s•)ðU
ô �x‰xð	U
ô
 —‘ðU
ô �h‰hðU
ô ðU
ô ðU
ô ðU
ô ”r—x‘x�j¤"§(¡(Ð*Õ+ðU
ô œs•mðU
ô ðU
ô Œu”Sœ"Ÿ(™(�]Õ# T¨4Ð/Õ0ñU
r,   c             #   óN  "  € VP                   ^ ,          pVR8X  EdL   VP                  pVP                  R,          pV^8X  dc   \        W!V
4       \        P
                  ! V4       VP                  4       pWõ3x € \        V VVVVVVVV	V
VP                  VR7       Rj  x€L
  R# \        P
                  ! V4       VP                  ^8X  d   TMVP                  R4      pVP                  4       V3x € \        V P                  RR4      p\        V\        4      '       d   V0pMVf   RpM\!        R V 4       4      p\#        V VVVVVVV	V
VP                  VVR7       Rj  x€L
  R# VR8X  Ed/   \        P$                  ! VP                  RR7      pV^8X  dV   \        P
                  ! V4       VP                  4       pWõ3x € \'        V VVVVVVV	V
VP                  VR7       Rj  x€L
  R# \        P
                  ! V4       VP)                  R4      pVP                  4       V3x € \        V P                  RR4      p\        V\        4      '       d   V0pMVf   RpM\!        R	 V 4       4      p\+        V VVVVVVV	V
VP                  VVR
7       Rj  x€L
  R# VR8w  d   \-        RV: R24      h\        P$                  ! VP                  RR7      pV^8X  dT   \        P
                  ! V4       VP                  4       pWõ3x € \/        V VVVVVV	V
VP                  R7	       Rj  x€L
  R# \        P
                  ! V4       VP)                  R4      pVP                  4       V3x € \1        V VVVVVV	V
VP                  R7	       Rj  x€L
  R#  ELö EL6 EL³ EL Lu L5i)r   r6   ru   NÚeos_token_idc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir.   ©rT   ©rp   Úxs   & r*   rs   Ú)run_speculative_rounds.<locals>.<genexpr>
  ó   é € Ð2©c¨œc !Ÿf˜f«cùó   ‚)rf   rg   rh   rZ   r[   r_   r]   r5   rI   c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir.   r„   r…   s   & r*   rs   r‡   8  rˆ   r‰   )r`   rf   rg   rh   rZ   r[   r_   r]   r7   r8   r9   )rf   rg   rh   rZ   r[   rK   )rw   r^   rL   r   rM   Úevalry   r   Údtyperv   rx   ÚtolistÚgetattrrC   Ú
isinstancerT   rl   r   rN   r   Úsqueezer   r:   r   r   )rc   r$   rd   r}   r~   r   r€   r2   rg   rh   rZ   r{   ÚBr^   re   Úbonusrf   ÚeosÚeos_sets   &&&&&&&$$$$$       r*   Úrun_speculative_roundsr•   ×   s½  é € ð 	�‰˜Õ€Aà�UÕØ'×8Ñ8ÐØ×+Ñ+¨BÕ/ˆØ�Œ6Ü$ \Ð@PÔQÜ�GŠG�KÔ Ø×$Ñ$Ó&ˆEØ�/Ò!Ü"ØØØØØ Ø'Ø!Ø%ØØ!1Ø%ŸO™OØ 1ô÷ ð ñR 	ô5 �GŠG�KÔ à*×/Ñ/°1Ô4‘¸+×:MÑ:MÈbÓ:Qð ð ×$Ñ$Ó&¨Ð0Ò0Ü˜%Ÿ,™,¨¸Ó=ˆCÜ˜#œs×#Ò#Ø˜%‘Ø’Ø‘äÑ2©cÓ2Ó2�Ü(ØØØØØ Ø'Ø%ØØ!1Ø%ŸO™OØ%Ø 1ô÷ ð ñ 	à�XÕÜ—’ × :Ñ :ÀÔDˆØ�Œ6Ü�GŠG�KÔ Ø×$Ñ$Ó&ˆEØ�/Ò!Ü%ØØØØØ'Ø!Ø%ØØ!1Ø%ŸO™OØ 1ô÷ ð ñL 	ô1 �GŠG�KÔ Ø%×-Ñ-¨bÓ1ˆKØ×$Ñ$Ó&¨Ð0Ò0Ü˜%Ÿ,™,¨¸Ó=ˆCÜ˜#œs×#Ò#Ø˜%‘Ø’Ø‘äÑ2©cÓ2Ó2�Ü+ØØØØØ'Ø'Ø%ØØ!1Ø%ŸO™OØ%Ø 1ô÷ ð ñ 	à�XÔÜØ! *¡Ð/WÐXó
ð 	
ô �^Š^˜L×6Ñ6¸RÔ@€FØˆA„vÜ
�Š�ÔØ× Ñ Ó"ˆØˆoÒÜ!ØØØØØØ!ØØ-Ø!Ÿ™ô

÷ 
	
ò 
	
ô 	�Š�ÔØ!×)Ñ)¨"Ó-ˆØ× Ñ Ó" HÐ,Ò,Ü'ØØØØØ#Ø!ØØ-Ø!Ÿ™ô

÷ 
	
ò 
	
òeò6ò,ò0ñ4
	
ñ
	
ùsq   ‚BN%ÂNÂ CN%Å"NÅ#BN%Ç(NÇ)B/N%ÊNÊBN%Ì+N!Ì,A"N%ÎN#ÎN%ÎN%ÎN%ÎN%Î!N%Î#N%)r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r/   r;   rY   r•   rz   rP   rF   )3Útypingr   r   r   r   r   r   Úmlx.coreÚcorerM   Úmlx.nnr&   Úmodelsr	   Úcommonr
   r   r   r   r   r7   r   r   r   r   r5   r   r   r   r6   r   r   r   r   r   r   r   r   r   r   r    r!   Ú__all__r/   r;   rF   rP   rY   Úint32rz   r•   ro   r,   r*   Ú<module>rž      sê   ðß B× Bå Ý å ÷õ ÷ó ÷ TÑ S÷÷ ÷ ó ò€õ>2õ	õ	õõ
(ð^ð '+ð^ð ŸH™Hð^ð 8<ð^ð "ð^ð (,ð^ð $(ð^ð  )-ð!^ð" $(÷#^ðBU
ð '+ðU
ð $÷U
ñ U
r,   