+
    UV-j:  ã                   óª  € ^ RI Ht ^ RIHt ^ RIHt ^RIHt ^RI	H
t
 R tR tR R lt ! R	 R
]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      tR# )é    )ÚOptionalN)Úgrid_sample©ÚVisionConfigc                 óö   € V P                   p\        V4      ^8X  d"   Vw  r#rEW#8¬  ;'       d    W$8¬  ;'       d    W48H  # \        V4      ^8X  d,   Vw  rbr4pV^8X  d   R# W#8¬  ;'       d    W$8¬  ;'       d    W48H  # R# )é   TF)ÚshapeÚlen)Úarrr	   Úout_channelsÚkHÚKWÚ_ÚBÚts   &       Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/glm4v/vision.pyÚcheck_array_shaper   
   s‚   € Ø�I‰I€Eô ˆ5ƒz�Q„Ø"'Ñˆ˜"àÑ"×KÐK¨Ñ);×KÐKÀ"Á(ÐKÜ	ˆU‹�qŒØ%*Ñ"ˆ˜ à�Œ6ÙàÑ"×KÐK¨Ñ);×KÐKÀ"Á(ÐKáó    c                óÌ   € V RRV P                   R,          ^,          13,          pV RV P                   R,          ^,          R13,          p\        P                  ! V) V.RR7      # )z*Rotates half the hidden dims of the input..N©Úaxiséÿÿÿÿ)r	   ÚmxÚconcatenate)ÚxÚx1Úx2s   &  r   Úrotate_halfr      sZ   € à	
ˆ3Ð"�!—'‘'˜"•+ Õ"Ð"Ð"Õ	#€BØ	
ˆ3�—‘˜•˜qÕ Ñ"Ð"Õ	#€BÜ�>Š>˜B˜3 ˜)¨"Ô-Ð-r   c                ó8   € V ^8„  d   QhR\         P                  /# ©é   Úreturn©r   Úarray)Úformats   "r   Ú__annotate__r&   $   s   € ÷ %ñ %´"·(±(ñ %r   c                 óî  € V P                   p\        P                  ! V4      p\        P                  ! V4      p\        P                  ! V^R7      p\        P
                  ! VR4      p\        P                  ! V^ R7      p\        P                  ! V^R7      p\        P
                  ! VR4      p\        P                  ! V^ R7      pW,          \        V 4      V,          ,           pVP                  V4      # )é   r   )r(   r(   r!   )Údtyper   ÚcosÚsinÚexpand_dimsÚtiler   Úastype)ÚtensorÚfreqsÚ
orig_dtyper*   r+   Úoutputs   &&    r   Úapply_rotary_pos_emb_visionr3   $   sª   € Ø—‘€Jä
�&Š&�‹-€CÜ
�&Š&�‹-€Cä
�.Š.˜ 1Ô
%€CÜ
�'Š'�#�yÓ
!€CÜ
�.Š.˜ 1Ô
%€Cä
�.Š.˜ 1Ô
%€CÜ
�'Š'�#�yÓ
!€CÜ
�.Š.˜ 1Ô
%€Cà�lœ{¨6Ó2°SÕ8Õ9€FØ�=‰=˜Ó$Ð$r   c                   óT   a a€ ] tR t^6t oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚGlm4vVisionRotaryEmbeddingc                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r!   ÚdimÚthetar"   N)ÚintÚfloat)r%   Ú__classdict__s   "€r   r&   Ú'Glm4vVisionRotaryEmbedding.__annotate__7   s"   ø€ ÷ ñ ™Cð ©ð ¸Dñ r   c                ó<   <€ \         SV `  4        Wn        W n        R # ©N)ÚsuperÚ__init__r7   r8   )Úselfr7   r8   Ú	__class__s   &&&€r   r@   Ú#Glm4vVisionRotaryEmbedding.__init__7   s   ø€ Ü‰ÑÔØŒØŽ
r   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r!   Úseqlenr"   )r9   r   r$   )r%   r;   s   "€r   r&   r<   <   s   ø€ ÷ ñ ™sð ¡r§x¡xñ r   c           	     óH  € R V P                   \        P                  ! ^ V P                  ^\        P                  R7      V P                  ,          ,          ,          p\        P                  ! VP                  4       VP                  R7      p\        P                  ! W24      pV# )g      ð?©r)   )r8   r   Úaranger7   Úfloat32Úitemr)   Úouter)rA   rE   Úinv_freqÚseqr0   s   &&   r   Ú__call__Ú#Glm4vVisionRotaryEmbedding.__call__<   sg   € ØØ�J‰Jœ2Ÿ9š9 Q¨¯©°!¼2¿:¹:ÔFÈÏÉÕQÕRõ
ˆô �iŠi˜Ÿ™›¨X¯^©^Ô<ˆÜ—’˜Ó'ˆØˆr   )r7   r8   )g     ˆÃ@©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r@   rN   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rB   r;   s   @@r   r5   r5   6   s   ù‡ € ÷õ ÷
÷ ð r   r5   c                   óD   a a€ ] tR t^Et oV3R lV 3R lltR tRtVtV ;t# )ÚGlm4vVisionEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# )r!   Úconfigr   )r%   r;   s   "€r   r&   Ú"Glm4vVisionEmbeddings.__annotate__F   s   ø€ ÷ 	Sñ 	S™|ñ 	Sr   c                ój  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  V n        V P
                  V P                  ,          ^,          V n        V P                  V n        \        P                  ! V P                  V P                  4      V n        R# )r!   N)r?   r@   r\   Úhidden_sizeÚ	embed_dimÚ
image_sizeÚ
patch_sizeÚnum_patchesÚnum_positionsÚnnÚ	EmbeddingÚposition_embedding©rA   r\   rB   s   &&€r   r@   ÚGlm4vVisionEmbeddings.__init__F   s   ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ ×+Ñ+ˆŒØ ×+Ñ+ˆŒà ŸO™O¨t¯©Õ>À1ÕDˆÔØ!×-Ñ-ˆÔÜ"$§,¢,¨t×/AÑ/AÀ4Ç>Á>Ó"RˆÖr   c           
     óœ  € V P                   P                  pVP                  ^,          pVP                  ^ ,          pV^ 8X  d%   \        P                  ! ^ WvP
                  R7      p	EMÒ\        V\        4      '       d'   \        P                  ! V\        P                  R7      p\        V\        P                  4      '       g'   \        P                  ! V\        P                  R7      pVP                  ^ ,          p
\        V
R,          4      pVP                  W»V4      P                  ^^ ^4      R,          P                  \        P                  4      p\        P                  ! \!        \#        V4      4       Uu. uF(  p\        P$                  ! W=^3,          W-,          4      NK*  	  up4      P                  \        P                  4      p\        P                  ! \!        \#        V4      4       Uu. uF(  p\        P$                  ! W=^3,          W-,          4      NK*  	  up4      P                  \        P                  4      pVP                  \        P                  4      pVP                  \        P                  4      pVR,           V,          ^,          ^,
          pVR,           V,          ^,          ^,
          p\        P&                  ! VV3RR7      R,          p\)        VP                  ^ ^^^4      V4      pVP+                  ^ 4      P+                  ^4      pVP                  VP
                  4      p	W,           pV# u upi u upi )r(   rG   ç      à?r   )N.r   )NºNNNN.)rg   Úweightr	   r   Úemptyr)   Ú
isinstanceÚlistr$   Úint32r9   ÚreshapeÚ	transposer.   rI   r   Úranger
   ÚrepeatÚstackr   Úsqueeze)rA   Ú
embeddingsÚlengthsÚimage_shapesÚh_coordsÚw_coordsÚpos_embed_weightr_   Ú	total_seqÚadapted_pos_embedÚorig_size_sqÚ	orig_sizeÚpos_embed_2dÚiÚtarget_hÚtarget_wÚnorm_wÚnorm_hÚgridÚinterpolated_embed_fp32Úadapted_pos_embed_fp32s   &&&&&&               r   rN   ÚGlm4vVisionEmbeddings.__call__Q   sƒ  € ð  ×2Ñ2×9Ñ9ÐØ&×,Ñ,¨QÕ/ˆØ—N‘N 1Õ%ˆ	ð ˜Œ>Ü "§¢¨¨K×?UÑ?UÔ VÒô ˜'¤4×(Ò(ÜŸ(š( 7´"·(±(Ô;�Ü˜l¬B¯H©H×5Ò5Ü!Ÿxšx¨¼B¿H¹HÔE�ð ,×1Ñ1°!Õ4ˆLÜ˜L¨#Õ-Ó.ˆIà ×(Ñ(¨¸{ÓKß‘˜1˜a Ó# Iõ/ç‘œŸ
™
Ó#ð ô —~’~ÜDIÌ#ÈgË,ÔDWÓXÑDW¸q”—’˜<¨1¨Õ-¨w­zÖ:ÑDWÑXóç‰f”R—Z‘ZÓ ð ô —~’~ÜDIÌ#ÈgË,ÔDWÓXÑDW¸q”—’˜<¨1¨Õ-¨w­zÖ:ÑDWÑXóç‰f”R—Z‘ZÓ ð ð
  —‘¤r§z¡zÓ2ˆHØ—‘¤r§z¡zÓ2ˆHØ #•~¨Õ1°QÕ6¸Õ:ˆFØ #•~¨Õ1°QÕ6¸Õ:ˆFô —8’8˜V VÐ,°2Ô6Ð7IÕJˆDô '2Ø×&Ñ& q¨!¨Q°Ó2Øó'Ð#ð &=×%DÑ%DÀQÓ%G×%OÑ%OÐPQÓ%RÐ"Ø 6× =Ñ =Ð>N×>TÑ>TÓ UÐð  Õ3ˆ
ØÐùò7 Yùò Ys   Å<.MÇ4.M	)r\   r`   ra   rc   rd   rb   rg   rP   rX   s   @@r   rZ   rZ   E   s   ù‡ € ÷	Só 	S÷7ò 7r   rZ   c                   óP   a a€ ] tR t^‹t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚGlm4vVisionPatchEmbedc                ó$   <€ V ^8„  d   QhRS[ RR/# ©r!   r\   r"   Nr   )r%   r;   s   "€r   r&   Ú"Glm4vVisionPatchEmbed.__annotate__Œ   s   ø€ ÷ 
ñ 
™|ð 
°ñ 
r   c                ód  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        V P                  V P                  V P                  .p\        P                  ! V P
                  V P                  VVR 7      V n
        R# ))Úkernel_sizeÚstrideN)r?   r@   r\   rb   Útemporal_patch_sizeÚin_channelsr_   r`   re   ÚConv3dÚproj)rA   r\   r’   rB   s   && €r   r@   ÚGlm4vVisionPatchEmbed.__init__Œ   s‰   ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒØ#)×#=Ñ#=ˆÔ Ø!×-Ñ-ˆÔØ×+Ñ+ˆŒà×/Ñ/°·±À$Ç/Á/ÐRˆÜ—I’IØ×ÑØ�N‰NØ#Øô	
ˆŽ	r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r!   Úhidden_statesr"   r#   )r%   r;   s   "€r   r&   r�   œ   s#   ø€ ÷ ñ ¡b§h¡hð ±2·8±8ñ r   c                óú   € VP                  RV P                  V P                  V P                  V P                  4      P	                  ^^4      pV P                  V4      pVP                  RV P                  4      pV# )r(   r   )rr   r•   r”   rb   Úmoveaxisr—   r`   )rA   rš   s   &&r   rN   ÚGlm4vVisionPatchEmbed.__call__œ   sq   € Ø%×-Ñ-ØØ×ÑØ×$Ñ$Ø�O‰OØ�O‰Oó
÷ ‰(�1�a‹.ð 	ð Ÿ	™	 -Ó0ˆØ%×-Ñ-¨b°$·.±.ÓAˆØÐr   )r\   r`   r•   rb   r—   r”   rP   rX   s   @@r   r�   r�   ‹   s   ù‡ € ÷
ó 
÷ ÷ ð r   r�   c                   óT   a a€ ] tR t^ªt oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚGlm4vVisionPatchMergerc                ó0   <€ V ^8„  d   QhRS[ RS[ RS[RR/# )r!   r7   Úcontext_dimÚbiasr"   N)r9   Úbool)r%   r;   s   "€r   r&   Ú#Glm4vVisionPatchMerger.__annotate__«   s/   ø€ ÷ @ñ @™Cð @©cð @¹ð @È$ñ @r   c                óB  <€ \         SV `  4        \        P                  ! WVR 7      V n        \        P
                  ! V4      V n        \        P                  ! WVR 7      V n        \        P                  ! WVR 7      V n        \        P                  ! W!VR 7      V n	        R# )©r¢   N)
r?   r@   re   ÚLinearr—   Ú	LayerNormÚpost_projection_normÚ	gate_projÚup_projÚ	down_proj)rA   r7   r¡   r¢   rB   s   &&&&€r   r@   ÚGlm4vVisionPatchMerger.__init__«   sg   ø€ Ü‰ÑÔä—I’I˜c¨TÔ2ˆŒ	Ü$&§L¢L°Ó$5ˆÔ!ÜŸš 3¸$Ô?ˆŒÜ—y’y ¸Ô=ˆŒÜŸš ;¸$Ô?ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r!   r   r"   r#   )r%   r;   s   "€r   r&   r¤   ´   s'   ø€ ÷ Lñ L™"Ÿ(™(ð L¡r§x¡xñ Lr   c                ó  € V P                  V4      p\        P                  ! V P                  V4      4      pV P	                  \        P
                  ! V P                  V4      4      V P                  V4      ,          4      # r>   )r—   re   Úgelur©   r¬   Úsilurª   r«   ©rA   r   s   &&r   rN   ÚGlm4vVisionPatchMerger.__call__´   sV   € Ø�I‰I�a‹LˆÜ�GŠG�D×-Ñ-¨aÓ0Ó1ˆØ�~‰~œbŸgšg d§n¡n°QÓ&7Ó8¸4¿<¹<È»?ÕJÓKÐKr   )r¬   rª   r©   r—   r«   )FrP   rX   s   @@r   rŸ   rŸ   ª   s#   ù‡ € ÷@õ @÷L÷ Lð Lr   rŸ   c                   óX   a a€ ] tR t^ºt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )ÚGlm4vVisionAttentionc                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r!   r7   Ú	num_headsr"   N)r9   )r%   r;   s   "€r   r&   Ú!Glm4vVisionAttention.__annotate__»   s"   ø€ ÷ 4ñ 4™Cð 4©Cð 4¸ñ 4r   c                óì   <€ \         SV `  4        W n        W,          ;V n        pVR,          V n        \
        P                  ! W^,          RR7      V n        \
        P                  ! WRR7      V n        R# )rk   Fr¦   Ng      à¿)	r?   r@   r¸   Úhead_dimÚscalere   r§   Úqkvr—   )rA   r7   r¸   r»   rB   s   &&& €r   r@   ÚGlm4vVisionAttention.__init__»   sU   ø€ Ü‰ÑÔØ"ŒØ#&Õ#3Ð3ˆŒ˜Ø˜t•^ˆŒ
Ü—9’9˜S¨¥'°Ô6ˆŒÜ—I’I˜c¨UÔ3ˆŽ	r   c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  /# )r!   r   Ú
cu_seqlensÚrotary_pos_embr"   r#   )r%   r;   s   "€r   r&   r¹   Ã   s=   ø€ ÷ !ñ !Ù—‘ð!Ù')§x¡xð!ÙACÇÁð!á	�‰ñ!r   c                ó   € VP                   ^ ,          pV P                  V4      P                  V^V P                  R4      P	                  ^^ ^^4      p\
        P                  ! V^4      w  rgp\        \
        P                  ! V^ 4      V4      ^ ,          p\        \
        P                  ! V^ 4      V4      ^ ,          pVP	                  ^ ^^^4      pVP	                  ^ ^^^4      pVP	                  ^ ^^^4      pVR,          VRR ,
          P                  4       p	WgV3 U
u. uF4  p
\
        P                  ! W©^ ,          \        V	R,          4      .^R7      NK6  	  pp
. p\        V!   FC  w  rgp\
        P                  P                  WgW€P                  RR7      pVP                  V4       KE  	  \
        P                   ! V^R7      pVP	                  ^ ^^^4      P                  VR4      pV P#                  V4      # u up
i )r   ºr(   NNN:Nr!   Nr   )r¼   Úmaskr   )r	   r½   rr   r¸   rs   r   Úsplitr3   r,   ÚtolistÚsumÚzipÚfastÚscaled_dot_product_attentionr¼   Úappendr   r—   )rA   r   rÀ   rÁ   Ú
seq_lengthr½   ÚqÚkÚvry   r/   ÚsplitsÚattn_outputsr2   s   &&&&          r   rN   ÚGlm4vVisionAttention.__call__Ã   sÊ  € ð —W‘W˜Q•Zˆ
à�H‰H�Q‹K×Ñ 
¨A¨t¯~©~¸rÓB×LÑLÈQÐPQÐSTÐVWÓXð 	ô —(’(˜3 Ó"‰ˆˆaä'¬¯ª°q¸!Ó(<¸nÓMÈaÕPˆÜ'¬¯ª°q¸!Ó(<¸nÓMÈaÕPˆà�K‰K˜˜1˜a Ó#ˆØ�K‰K˜˜1˜a Ó#ˆØ�K‰K˜˜1˜a Ó#ˆà˜b•> J¨s° OÕ3×;Ñ;Ó=ˆð  ™)ó
á#�ô �HŠH�V a�j¬#¨g°b­kÓ*:Ð;À!×DÙ#ð 	ð 
ð
 ˆÜ˜F”|‰GˆA�!Ü—W‘W×9Ñ9Ø�aŸz™z°ð :ó ˆFð ×Ñ Ö'ñ	 $ô —’ °1Ô5ˆØ×!Ñ! ! Q¨¨1Ó-×5Ñ5°jÀ"ÓEˆØ�y‰y˜Ó Ð ùò
s   Ä :G;)r»   r¸   r—   r½   r¼   )é   r>   rP   rX   s   @@r   r¶   r¶   º   s   ù‡ € ÷4õ 4÷!÷ !ò !r   r¶   c                   óD   a a€ ] tR t^åt oV 3R ltV3R lR ltRtVtV ;t# )ÚGlm4vVisionMLPc                óÒ   <€ \         SV `  4        \        P                  ! WR R7      V n        \        P                  ! WR R7      V n        \        P                  ! W!R R7      V n        R# )Fr¦   N)r?   r@   re   r§   rª   r«   r¬   )rA   r7   Ú
hidden_dimrB   s   &&&€r   r@   ÚGlm4vVisionMLP.__init__æ   sD   ø€ Ü‰ÑÔÜŸš 3¸Ô?ˆŒÜ—y’y °uÔ=ˆŒÜŸš :¸Ô?ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r¯   r#   )r%   r;   s   "€r   r&   ÚGlm4vVisionMLP.__annotate__ì   s'   ø€ ÷ Lñ L™"Ÿ(™(ð L¡r§x¡xñ Lr   c                ó–   € V P                  \        P                  ! V P                  V4      4      V P	                  V4      ,          4      # r>   )r¬   re   r²   rª   r«   r³   s   &&r   rN   ÚGlm4vVisionMLP.__call__ì   s0   € Ø�~‰~œbŸgšg d§n¡n°QÓ&7Ó8¸4¿<¹<È»?ÕJÓKÐKr   )r¬   rª   r«   rP   rX   s   @@r   rÕ   rÕ   å   s   ù‡ € õ@÷L÷ Lð Lr   rÕ   c                   óP   a a€ ] tR t^ðt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚGlm4vVisionBlockc                ó$   <€ V ^8„  d   QhRS[ RR/# r�   r   )r%   r;   s   "€r   r&   ÚGlm4vVisionBlock.__annotate__ñ   s   ø€ ÷ 

ñ 

™|ð 

°ñ 

r   c                óX  <€ \         SV `  4        \        P                  ! VP                  R R7      V n        \        P                  ! VP                  R R7      V n        \        VP                  VP                  R7      V n	        \        VP                  VP                  R7      V n        R# )g�íµ ÷Æ°>©Úeps)r7   r¸   )r7   r×   N)r?   r@   re   ÚRMSNormr_   Únorm1Únorm2r¶   r¸   ÚattnrÕ   Úout_hidden_sizeÚmlprh   s   &&€r   r@   ÚGlm4vVisionBlock.__init__ñ   sz   ø€ Ü‰ÑÔÜ—Z’Z × 2Ñ 2¸Ô=ˆŒ
Ü—Z’Z × 2Ñ 2¸Ô=ˆŒ
ä(Ø×"Ñ"¨f×.>Ñ.>ô
ˆŒ	ô "Ø×"Ñ"¨v×/EÑ/Eô
ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r    r#   )r%   r;   s   "€r   r&   rà   ý   s   ø€ ÷ ñ ÁRÇXÁXñ r   c                ó¤   € WP                  V P                  V4      VVR 7      ,           pWP                  V P                  V4      4      ,           pV# )©rÀ   rÁ   )rç   rå   ré   ræ   )rA   rš   rÀ   rÁ   s   &&&&r   rN   ÚGlm4vVisionBlock.__call__ý   sN   € Ø%¯	©	Ø�J‰J�}Ó%Ø!Ø)ð )2ó )
õ 
ˆð
 &¯©°·±¸MÓ1JÓ(KÕKˆØÐr   )rç   ré   rå   ræ   rP   rX   s   @@r   rÞ   rÞ   ð   s   ù‡ € ÷

ó 

÷÷ ð r   rÞ   c                   ó`   a a€ ] tR tRt oV3R lV 3R lltR tR	V3R lR lltR tRtVt	V ;t
# )
ÚVisionModeli  c                ó$   <€ V ^8„  d   QhRS[ RR/# r�   r   )r%   r;   s   "€r   r&   ÚVisionModel.__annotate__	  s   ø€ ÷ "Vñ "V™|ð "V°ñ "Vr   c                ó  <€ \         SV `  4        Wn        VP                  V n        V P                  R9  d   \	        RV P                   24      hVP
                  V n        \        V4      V n        \        VR7      V n	        VP                  V n
        VP                  V n        V P
                  V P
                  ,          V n        VP                  VP                  ,          p\        V^,          4      V n        \#        VP$                  4       Uu. uF  p\'        V4      NK  	  upV n        \+        VP,                  VP.                  R7      V n        \2        P4                  ! VP                  VP6                  R7      V n        \2        P:                  ! VP                  VP,                  VP
                  VP
                  R7      V n        \2        P4                  ! VP                  VP6                  R7      V n        R# u upi )Úglm4vzUnsupported model type: )r\   )r7   r¡   râ   )r•   r   r’   r“   N)rô   Úglm4v_vision) r?   r@   r\   Ú
model_typeÚ
ValueErrorÚspatial_merge_sizerZ   rx   r�   Úpatch_embedÚwindow_sizerb   Úspatial_merge_unitr_   r¸   r5   rÁ   rt   ÚdepthrÞ   ÚblocksrŸ   rè   Úintermediate_sizeÚmergerre   rä   Úrms_norm_epsÚpost_conv_layernormÚConv2dÚ
downsampleÚpost_layernorm)rA   r\   r»   r   rB   s   &&  €r   r@   ÚVisionModel.__init__	  s‘  ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒØ�?‰?Ð";Ô;ÜÐ7¸¿¹Ð7HÐIÓJÐJØ"(×";Ñ";ˆÔä/°Ó7ˆŒÜ0Øô
ˆÔð "×-Ñ-ˆÔØ ×+Ñ+ˆŒØ"&×"9Ñ"9¸D×<SÑ<SÕ"SˆÔà×%Ñ%¨×)9Ñ)9Õ9ˆÜ8¸ÀQ½ÓGˆÔä9>¸v¿|¹|Ô9LÓMÑ9L°AÔ'¨Ö/Ñ9LÑMˆŒÜ,Ø×&Ñ&°F×4LÑ4Lô
ˆŒô $&§:¢:Ø×Ñ F×$7Ñ$7ô$
ˆÔ ô Ÿ)š)Ø×*Ñ*Ø×/Ñ/Ø×1Ñ1Ø×,Ñ,ô	
ˆŒô !Ÿjšj¨×);Ñ);À×ATÑATÔUˆÖùò Ns   ÄG>c                ól  € . pVP                  4        EF«  w  r4p\        P                  ! \        P                  ! V4      ^4      p\        P                  ! We^R7      pVP                  W@P                  ,          V P                  WPP                  ,          V P                  4      p\        P                  ! VR4      pVP                  4       p\        P                  ! \        P                  ! V4      ^ 4      p\        P                  ! Wt^ R7      pVP                  W@P                  ,          V P                  WPP                  ,          V P                  4      p\        P                  ! VR4      pVP                  4       p\        P                  ! Wg.RR7      pVP                  \        P                  ! Wƒ^34      4       EK®  	  \        P                  ! V^ R7      p\        P                  ! VR,          4      p	V P                  V	4      p
W¢,          pVP                  VP                  ^ ,          R4      V3# )r(   r   )r   r!   r(   é   r   )rl   rÃ   )rÆ   r   r,   rH   ru   rr   rø   rs   Úflattenrv   rË   r-   r   ÚmaxrÁ   r	   )rA   Úgrid_thwÚpos_idsr   ÚhÚwÚhpos_idsÚwpos_idsÚstacked_pos_idsÚmax_grid_sizeÚrotary_pos_emb_fullrÁ   s   &&          r   Úrot_pos_embÚVisionModel.rot_pos_emb-  sª  € Øˆà—‘×(‰GˆA�!Ü—~’~¤b§i¢i°£l°AÓ6ˆHÜ—y’y °1Ô5ˆHØ×'Ñ'Ø×,Ñ,Õ,Ø×'Ñ'Ø×,Ñ,Õ,Ø×'Ñ'ó	ˆHô —|’| H¨lÓ;ˆHØ×'Ñ'Ó)ˆHä—~’~¤b§i¢i°£l°AÓ6ˆHÜ—y’y °1Ô5ˆHØ×'Ñ'Ø×,Ñ,Õ,Ø×'Ñ'Ø×,Ñ,Õ,Ø×'Ñ'ó	ˆHô —|’| H¨lÓ;ˆHØ×'Ñ'Ó)ˆHä Ÿhšh¨Ð';À"ÔEˆOØ�N‰Nœ2Ÿ7š7 ?¸°FÓ;×<ñ1 )ô4 —.’. ¨qÔ1ˆÜŸš˜x¨�Ó/ˆØ"×1Ñ1°-Ó@ÐØ,Õ5ˆà×%Ñ% g§m¡m°AÕ&6¸Ó;¸WÐDÐDr   c                ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[ P                  /# )r!   rš   r
  Úoutput_hidden_statesr"   )r   r$   r   r£   )r%   r;   s   "€r   r&   rò   Q  sC   ø€ ÷ .ñ .á—x‘xð.ñ —(‘(ð.ñ '¡t�nð	.ñ
 
�‰ñ.r   c                ó¾  € V P                  V4      pV P                  V4      pV P                  V4      w  rEVR,          VR,          ,          pVR,          p. p\        \	        VP                  4       VP                  4       4      4       F!  w  p	w  r«VP                  V
.V,          4       K#  	  \        P                  ! V4      P                  ^ R7      p\        P                  ! VR	^ R7      pVR,          VRR
 ,
          P                  4       pV P                  WW%R,          VR,          4      pV P                   F  pV! VVVR7      pK  	  V P                  V4      pVP                  R
V P                  V P                  VP                   R
,          4      pV P#                  V4      P                  R
V P$                  P&                  4      pV P)                  V4      pV# )rl   r   )Úconstant_valuesrÃ   Nrí   )rl   r(   )rl   r!   )rl   r   )r(   r   r   )rù   r  r  Ú	enumeraterÈ   rÆ   Úextendr   r$   ÚcumsumÚpadrx   rý   r  rr   rø   r	   r  r\   rè   rÿ   )rA   rš   r
  r  rÁ   Úimage_type_idsÚseq_lensÚrepeatsÚrepeated_valuesrƒ   Úseq_lenÚrepeat_countrÀ   ÚseqlensÚblks   &&&&           r   rN   ÚVisionModel.__call__Q  s²  € ð ×(Ñ(¨Ó7ˆØ×0Ñ0°Ó?ˆØ)-×)9Ñ)9¸(Ó)CÑ&ˆà˜D•> H¨T¥NÕ2ˆØ˜4•.ˆØˆÜ*3Ü�—‘Ó! 7§>¡>Ó#3Ó4ö+
Ñ&ˆAÑ&�ð ×"Ñ" G 9¨|Õ#;Ö<ñ+
ô
 —X’X˜oÓ.×5Ñ5¸1Ð5Ó=ˆ
Ü—V’V˜J¨ÀÔBˆ
Ø˜b•> J¨s° OÕ3×;Ñ;Ó=ˆØŸ™Ø H¸TÕ.BÀNÐSWÕDXó
ˆð —;”;ˆCÙØØ%Ø-ôŠMñ ð ×+Ñ+¨MÓ:ˆà%×-Ñ-ØØ×#Ñ#Ø×#Ñ#Ø×Ñ Õ#ó	
ˆð Ÿ™¨Ó6×>Ñ>Ø�—‘×+Ñ+ó
ˆð Ÿ™ MÓ2ˆØÐr   c                óF  € / pVP                  4        FŠ  w  r4R V9   d   K  RV9   g   RV9   dk   \        V4      '       d   WBV&   K3  VP                  ^8X  d   VP                  ^ ^^^^4      W#&   VP                  ^8X  d   VP                  ^ ^^^4      W#&   K„  K†  WBV&   KŒ  	  V# )Úposition_idszpatch_embed.proj.weightzdownsample.weight)Úitemsr   Úndimrs   )rA   ÚweightsÚsanitized_weightsrÎ   rÏ   s   &&   r   ÚsanitizeÚVisionModel.sanitize�  s©   € ØÐØ—M‘M–O‰DˆAØ Ô"áØ*¨aÔ/Ð3FÈ!Ô3Kô
 % Q×'Ò'Ø+, aÓ(à—v‘v ”{Ø/0¯{©{¸1¸aÀÀAÀqÓ/IÐ)Ñ,Ø—v‘v ”{Ø/0¯{©{¸1¸aÀÀAÓ/FÐ)Ó,ñ #ð () !Ó$ñ# $ð& !Ð r   )rý   r\   r  rx   rÿ   rö   rù   rb   r  r  rÁ   rø   rû   rú   r>   )rQ   rR   rS   rT   r@   r  rN   r,  rU   rV   rW   rX   s   @@r   rð   rð     s.   ù‡ € ÷"Vó "VòH"E÷H.ò .÷`!ò !r   rð   )Útypingr   Úmlx.coreÚcorer   Úmlx.nnre   Úkernelsr   r\   r   r   r   r3   ÚModuler5   rZ   r�   rŸ   r¶   rÕ   rÞ   rð   © r   r   Ú<module>r5     s­   ðÝ å Ý å !Ý  òò&.õ%ô$ §¡ô ôC˜BŸI™Iô CôL˜BŸI™Iô ô>L˜RŸY™Yô Lô (!˜2Ÿ9™9ô (!ôVL�R—Y‘Yô Lô�r—y‘yô ô.O!�"—)‘)ö O!r   