+
    "Ý³j@  ã                  ó6   € ^ RI Ht ^ RItRR R lltR R ltR# )é    )ÚannotationsNc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úmaskútorch.Tensor | NoneÚseq_lenz
int | NoneÚreturn© )Úformats   "ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/attn_mask.pyÚ__annotate__r      s#   € ÷ ,"ñ ,"Ð0ð ,"¸:ð ,"ÐQdñ ,"ó    c                óž  € V f   R# T pVP                   \        P                  8w  d+   \        P                  ! V^ 8  4      '       d   V^ 8¬  pMV^ 8„  pVP	                  4       ^8X  d�   VP                  ^4      ^8X  dk   VP                  ^4      ^8X  d   VR,          pEMVP                  ^4      VP                  ^4      8X  d   VR,          P                  ^R7      pMÒVR,          pMÈVP	                  4       ^8X  d!   VP                  ^4      ^8X  d   VR,          pM“VP	                  4       ^8X  d   M}VeY   VP	                  4       ^8”  dD   VP                  R	4      V8X  d.   VP                  VP                  ^ 4      R	4      RRV13,          pM!\        R\        V P                  4       24      hVP                  \        P                  R7      # )
a*  
Normalize a variety of HF attention mask formats to a boolean keep-mask [B, S].
True = keep (attended), False = drop (padding/fully-masked).

Accepts typical HF forms:
  - [B, S] with 1/0
  - [B, 1, 1, S] 'extended' masks with {0 or positive} keep and {negative large} masked
  - [B, 1, S] (rare)
N©Údim.z"Unsupported attention_mask shape: )Údtype)ºNNNr   r   r   )r   r   )r   r   r   éÿÿÿÿ)r   ÚtorchÚboolÚanyr   ÚsizeÚreshapeÚ
ValueErrorÚtupleÚshapeÚto)r   r   Úms   && r   Únormalize_seq_maskr      sb  € ð ‚|Ùà€Aà‡w�w”%—*‘*ÔÜ�9Š9�Q˜‘U×ÒØ�a‘‰Aà�Q‘ˆAð 	‡u�uƒw�!„|˜Ÿ™˜q›	 QœØ�6‰6�!‹9˜Œ>à�*•ŠAØ�V‰V�A‹Y˜!Ÿ&™& ›)Ô#ð �$•—‘ �Ó"‰Að �*•‰AØ	
�‰‹�AŒ˜!Ÿ&™& ›) qœ.Øˆg�J‰Ø	
�‰‹�AŒØð Ò 1§5¡5£7¨Q¤;°1·6±6¸"³:ÀÔ3HØ—	‘	˜!Ÿ&™& ›) RÓ(¨¨h¨w¨h¨Õ7‰AäÐAÄ%ÈÏ
É
ÓBSÐATÐUÓVÐVà�4‰4”e—j‘jˆ4Ó!Ð!r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úxztorch.TensorÚkeep_mask_bsr   r	   r
   )r   s   "r   r   r   :   s"   € ÷ 4ñ 4˜,ð 4Ð6Ið 4Èlñ 4r   c           
     óH  € Ve   V P                  4       ^8  d   V # V P                  ^ 4      V P                  ^4      r2VP                  W#38w  d3   \        RVP                   RW#3 R\	        V P                  4       24      h\        V4       Uu. uF  q@WAV,          3,          NK  	  pp\        V4      ^ 8X  dA   V P                  RV P                  R,          ,           V P                  V P                  R7      # \        P                  ! V^ R7      P                  4       # u upi )zí
Apply [B, S] keep-mask to a tensor x of shape [B, S, ...].
Returns a flattened tensor of shape [N_kept, ...] (collapses batch/time on the kept rows).
If keep_mask is None or x doesn't have [B, S, ...] leading dims, returns x unchanged.
zMask shape z does not match leading dims z of x=:r   NN)r   Údevicer   )r   )r   r   r   ÚAssertionErrorr   ÚrangeÚlenÚ	new_zerosr   r$   r   ÚcatÚ
contiguous)r!   r"   ÚBÚSÚbÚ	kept_rowss   &&    r   Úapply_keep_mask_btr/   :   sø   € ð Ò˜qŸu™u›w¨œ{Øˆà�6‰6�!‹9�a—f‘f˜Q“i€qØ×Ñ˜a˜VÔ#Ü˜{¨<×+=Ñ+=Ð*>Ð>[Ð]^Ð\bÐ[cÐciÔjoÐpq×pwÑpwÓjxÐiyÐzÓ{Ð{ô 16°a´Ó9±¨1�1 1•oÐ%×&Ð&±€IÐ9Ü
ˆ9ƒ~˜ÔØ�{‰{˜4 !§'¡'¨"¥+Õ-°Q·W±WÀQÇXÁXˆ{ÓNÐNÜ�9Š9�Y AÔ&×1Ñ1Ó3Ð3ùò :s   ÂD)N)Ú
__future__r   r   r   r/   r
   r   r   Ú<module>r1      s   ðõ #ã ÷,"÷^4r   