+
    "Ý³jï9  ã                  ó´  € ^ RI Ht ^ RIHt ^ RIHtHtHt ^ RIt^ RI	H
t
 ^ RIt^ RIHt ^ RIHt ^RIHtHt ^RIHtHt ^R	IHtHt ^R
IHt ^RIHt ^RIHt ^RIH t  ]! 4       t!Rt"Rt#Rt$Rt%R R lt&R t']&! 4       t(R R lt)R R lt*]! RR7      ]PV                  ! R4      ]PX                  ! 4       R R l4       4       4       t- ! R R]4      t.].t/. R Ot0R# )!é    )Úannotations)Ú	lru_cache)ÚDictÚOptionalÚTupleN)Úversion)Ú_ConvNd)ÚDEVICEÚPLATFORM)ÚFORMATÚMETHOD)Ú"_normalize_bitsandbytes_block_sizeÚ_normalize_bitsandbytes_format)ÚBACKEND)Úsetup_logger)ÚWeightOnlyQuantLinear)Ú_apply_optional_smootherz0.49.0z{bitsandbytes is not installed or is too old. Install a recent 0.49.x build, for example `pip install bitsandbytes>=0.49.3`.c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚbool© )Úformats   "Új/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/bitsandbytes.pyÚ__annotate__r   -   s   € ÷ Yñ Y Dñ Yó    c                 óà   €  ^ RI p \        P
                  ! T P                  4      \        P
                  ! \        4      8¬  #   \         d"   p\        P                  RT4        Rp?R# Rp?ii ; i)r   Nzbitsandbytes import failed: %sF)ÚbitsandbytesÚ	ExceptionÚlogÚdebugr   ÚparseÚ__version__ÚMINIMUM_BITSANDBYTES_VERSION)ÚbnbÚexcs     r   Ú_is_bitsandbytes_availabler(   -   sR   € ðÛ"ô
 �=Š=˜Ÿ™Ó)¬W¯]ª]Ô;WÓ-XÑXÐXøô	 ô Ü�	‰	Ð2°CÔ8Ýûðús   ‚A ÁA-ÁA(Á(A-c                 ó¦   € ^ RI p \        P                  ! V P                  4      \        P                  ! \        4      8  d   \        \        4      hV # )r   N)r   r   r#   r$   r%   ÚImportErrorÚBITSANDBYTES_INSTALL_HINT)r&   s    r   Úimport_bitsandbytesr,   7   s5   € Ûä‡}‚}�S—_‘_Ó%¬¯ªÔ6RÓ(SÔSÜÔ3Ó4Ð4Ø€Jr   c               ó    € V ^8„  d   QhRRRR/# ©r   Úlinearú	nn.Moduler   útorch.Tensorr   )r   s   "r   r   r   B   s   € ÷ ñ ˜ið ¨Lñ r   c                óô   € V P                   P                  4       p\        V \        4      '       d   VP	                  ^4      p\        V \
        P                  P                  4      '       d   VP                  pV# )é   )	ÚweightÚdetachÚ
isinstancer	   ÚflattenÚtransformersÚpytorch_utilsÚConv1DÚT)r/   r4   s   & r   Ú_weight_to_matrixr<   B   sV   € Ø�]‰]×!Ñ!Ó#€FÜ�&œ'×"Ò"Ø—‘ Ó"ˆÜ�&œ,×4Ñ4×;Ñ;×<Ò<Ø—‘ˆØ€Mr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚkeyÚstrr   r   )r   s   "r   r   r   K   s   € ÷ ñ ¨#ð °#ñ r   c                ó>   € V P                  R 4      '       d   R# RV  2# )zquant_state.Úweight_quant_stateÚweight_)Ú
startswith)r>   s   &r   Ú _packed_state_key_to_buffer_namerD   K   s    € Ø
‡~�~�n×%Ò%Ù#Ø�S�Eˆ?Ðr   é   )ÚmaxsizeFc               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r   Úin_featuresÚintÚout_featuresÚ
quant_typer?   Ú
block_sizeÚcompress_statisticsr   r   z4Tuple[Tuple[str, Tuple[int, ...], torch.dtype], ...]r   )r   s   "r   r   r   T   sF   € ÷ ñ àðð ðð ð	ð
 ðð ðð :ñr   c           
     ó\  € \        4       p\        P                  ! W3\        P                  R R7      p\        P                  ! R 4      ;_uu_ 4        VP
                  P                  VVVV\        P                  R7      w  rxR\        VP                  4      VP                  3.p	VP                  RR7      P                  4        F?  w  r«V	P                  \        V
4      \        VP                  4      VP                  34       KA  	  RRR4       \        X	4      #   + '       g   i     L; i)Úcpu)ÚdtypeÚdevice©Ú	blocksizerM   rK   Úquant_storager4   T©ÚpackedN)r,   ÚtorchÚzerosÚfloat16rQ   Ú
functionalÚquantize_4bitÚuint8ÚtupleÚshaperP   Úas_dictÚitemsÚappendrD   )rH   rJ   rK   rL   rM   r&   ÚtemplateÚqweightÚquant_stateÚspecr>   Útensors   $$$$$       r   Ú_buffer_spec_4bitrg   Q   sí   € ô Ó
€Cô �{Š{˜LÐ6¼e¿m¹mÐTYÔZ€Hô 
�Š�e×	Õ	Ø"Ÿ~™~×;Ñ;ØØ Ø 3Ø!ÜŸ+™+ð  <ó  
Ñˆð œ5 §¡Ó/°·±Ð?Ð@ˆØ&×.Ñ.°dÐ.Ó;×AÑAÖC‰KˆCØ�K‰KÔ9¸#Ó>ÄÀfÇlÁlÓ@SÐU[×UaÑUaÐbÖcñ D÷ 
ô �‹;Ð÷ 
×	ús   ÁB7DÄD+	c            
      ó  a € ] tR t^rt]R R l4       t]P                  .t]	P                  .t
]P                  ^(/t^^.tRtRtRt^.t^.t]P(                  ]P*                  .t]P0                  .t]P6                  ]P8                  ]P:                  ]P<                  .t. t ]PB                  ]PD                  ]PF                  .t$Rt%R]P:                  ]PB                  RRRRRRR3
R V 3R lllt&]'R	 R
 l4       t(])R R l4       t*R R lt+R R lt,R t-R R lt.R R lt/RR/R R llt0V 3R lt1R R lt2R%R R llt3R&R R llt4]Pj                  ! R4      ]Pl                  ! 4       R'R  R! ll4       4       t7R" R# lt8R$t9V ;t:# )(ÚBitsAndBytesLinearc               ó    € V ^8„  d   QhRRRR/# r.   r   )r   s   "r   r   ÚBitsAndBytesLinear.__annotate__t   s   € ÷ )ñ ) )ð )°ñ )r   c                ó   € \        V 4      # )zDExpose the weight-only processor's reference-weight conversion hook.)r<   )r/   s   &r   r<   Ú$BitsAndBytesLinear._weight_to_matrixs   s   € ô ! Ó(Ð(r   TFr   Nc                óX   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRR/# )r   ÚbitsrI   Ú
group_sizeÚsymr   Údesc_actrH   rJ   ÚbiasÚ
pack_dtypeztorch.dtyperP   Úregister_buffersr   zOptional[str]rL   zOptional[int]rM   zOptional[bool]Úbnb_quant_typeÚbnb_block_sizeÚbnb_compress_statisticsr   )r   s   "r   r   rk   ‰   sª   € ÷ /.ñ /.àð/.ð ð/.ð ð	/.ð
 ð/.ð ð/.ð ð/.ð ð/.ð  ð/.ð ð/.ð ð/.ð ð/.ð "ð/.ð ,ð/.ð &ð/.ð  &ð!/.ð" "0ñ#/.r   c                	ó¨  <€ Ve   TMTpVe   TMTpVe   TMTp\        VVR7      V n        \        V4      V n        Vf   RM
\	        V4      V n        W�n        R V n        R V n        \        SV `(  ! RRVRVRVRVRVP                  R\        P                  4      RVP                  RR 4      R	R
RV	RV/	VB  V
'       d   V P                  VR7       R # R # )N©ro   Tro   rH   rJ   rs   ÚbackendÚadapterru   FrP   rt   ©rs   r   )r   Ú
bnb_formatr   rw   r   rx   Úcompute_dtyperd   Ú_quant_state_signatureÚsuperÚ__init__Úpopr   ÚBITSANDBYTESÚ_allocate_buffers)Úselfro   rp   rq   rr   rH   rJ   rs   rt   rP   ru   r   rL   rM   rv   rw   rx   ÚkwargsÚ
raw_formatÚraw_block_sizeÚraw_compress_statisticsÚ	__class__s   &&&&&&&&&&&&&&&&&,   €r   r‚   ÚBitsAndBytesLinear.__init__‰   s  ø€ ð(  &Ò1‘V°~ˆ
Ø'1Ò'=™À>ˆà#6Ò#BÑÐH_ð 	 ô 9¸È$ÔOˆŒÜ@ÀÓPˆÔØ/FÒ/N¡tÔTXÐYpÓTqˆÔ$Ø"ÔØˆÔØ&*ˆÔ#ä‰Òñ 	
Øð	
à#ð	
ð &ð	
ð ð		
ð
 —J‘J˜y¬'×*>Ñ*>Ó?ð	
ð —J‘J˜y¨$Ó/ð	
ð #ð	
ð ð	
ð "ð	
ð ò	
÷ Ø×"Ñ"¨Ð"Ö-ñ r   c               ó   € V ^8„  d   QhRR/# )r   r   z Tuple[bool, Optional[Exception]]r   )r   s   "r   r   rk   »   s   € ÷ ñ Ð>ñ r   c                	óŽ   € \         '       g   R \        \        4      3#  \        4        R#   \         d   pR T3u Rp?# Rp?ii ; i)FN)TN)ÚBITSANDBYTES_AVAILABLEr*   r+   r,   r    )Úclsr'   s   & r   Úvalidate_onceÚ BitsAndBytesLinear.validate_onceº   sH   € ç%Ó%Øœ+Ô&?Ó@Ð@Ð@ð	ÜÔ!ð Ðøô ô 	Ø˜#�:Õûð	ús   Ÿ
+ «A¶?¹A¿Ac               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rk   Æ   s   € ÷ ñ ˜ñ r   c                	ó    € V P                   ^8H  # )é   rz   ©r†   s   &r   Úis_4bitÚBitsAndBytesLinear.is_4bitÅ   s   € à�y‰y˜A‰~Ðr   c               ó   € V ^8„  d   QhRR/# )r   r   rI   r   )r   s   "r   r   rk   É   s   € ÷ #ñ # 3ñ #r   c                	ó   € V P                   # ©N)rw   r–   s   &r   Úsmooth_block_sizeÚ$BitsAndBytesLinear.smooth_block_sizeÉ   s   € Ø×"Ñ"Ð"r   c               ó    € V ^8„  d   QhRRRR/# )r   rs   r   r   ÚNoner   )r   s   "r   r   rk   Ì   s   € ÷ ñ ¨ð °$ñ r   c               	óÆ  € V P                   '       dD   \        V P                  V P                  V P                  V P
                  V P                  R 7      pMGRV P                  V P                  3\        P                  3RV P                  3\        P                  33pV FN  w  r4p\        P                  ! WER7      pW0P                  9   d   W`P                  V&   K=  V P                  W64       KP  	  V'       db   \        P                  ! V P                  V P                  R7      pRV P                  9   d   WpP                  R&   R# V P                  RV4       R# RV n        R# ))rH   rJ   rK   rL   rM   r4   Ú
weight_scb)rP   rs   N)r—   rg   rH   rJ   r~   rw   rx   rW   Úint8Úfloat32rX   Ú_buffersÚregister_bufferr   rs   )r†   rs   Úbuffer_specÚbuffer_namer^   rP   ÚvalueÚbias_tensors   &$      r   r…   Ú$BitsAndBytesLinear._allocate_buffersÌ   s  € Ø�<�<ˆ<Ü+Ø ×,Ñ,Ø!×.Ñ.ØŸ?™?Ø×.Ñ.Ø$(×$@Ñ$@ô‰Kð ˜D×-Ñ-¨t×/?Ñ/?Ð@Ä%Ç*Á*ÐMØ × 1Ñ 1Ð3´U·]±]ÐCðˆKó
 *5Ñ%ˆK Ü—K’K Ô3ˆEØŸm™mÔ+Ø-2—‘˜kÓ*à×$Ñ$ [Ö8ñ *5÷ ÜŸ+š+ d×&7Ñ&7¸t×?QÑ?QÔRˆKØ˜Ÿ™Ô&Ø(3—‘˜fÓ%à×$Ñ$ V¨[Ö9àˆDŽIr   c                	óŠ  € . p\        V R 4      '       d*   V P                  e   VP                  V P                  4       V P                  '       d   \        M\
        pV F&  p\        WR4      pVf   K  VP                  V4       K(  	  \        V R4      '       d*   V P                  e   VP                  V P                  4       V# )r4   Nrs   )Úhasattrr4   ra   r—   Ú%_BITSANDBYTES_4BIT_STATE_BUFFER_NAMESÚ%_BITSANDBYTES_8BIT_STATE_BUFFER_NAMESÚgetattrrs   )r†   ÚbuffersÚstate_buffer_namesr§   rf   s   &    r   Úlist_buffersÚBitsAndBytesLinear.list_buffersë   sš   € ØˆÜ�4˜×"Ò" t§{¡{Ò'>Ø�N‰N˜4Ÿ;™;Ô'ð 6:·\·\°\Õ1ÔGlð 	ó .ˆKÜ˜T°Ó5ˆFØÔ!Ø—‘˜vÖ&ñ .ô
 �4˜× Ò  T§Y¡YÒ%:Ø�N‰N˜4Ÿ9™9Ô%Øˆr   c               ó   € V ^8„  d   QhRR/# )r   r   r?   r   )r   s   "r   r   rk   ü   s   € ÷ 4ñ 4˜Cñ 4r   c                	ó  € R V P                    RV P                   RV P                  RJ RV P                   2pV P                  '       d,   V RV P
                   RV P                   RV P                   2# V RV P
                   2# )zin_features=z, out_features=z, bias=Nz, bits=z	, format=z, block_size=z, compress_statistics=)rH   rJ   rs   ro   r—   r~   rw   rx   )r†   Úextras   & r   Ú
extra_reprÚBitsAndBytesLinear.extra_reprü   s¦   € à˜4×+Ñ+Ð,¨O¸D×<MÑ<MÐ;Nð OØ—I‘I TÐ)Ð*¨'°$·)±)°ð>ð 	ð �<�<ˆ<à�'˜ 4§?¡?Ð"3ð 4Ø"×1Ñ1Ð2ð 3'Ø'+×'CÑ'CÐ&DðFðð
 �˜	 $§/¡/Ð!2Ð3Ð3r   c               ó   € V ^8„  d   QhRR/# )r   r   zDict[str, torch.Tensor]r   )r   s   "r   r   rk   	  s   € ÷ 
ñ 
Ð&=ñ 
r   c                	óð   € R V P                   RV P                  RV P                   2V P                  /p\	        V R4      '       d   V P
                  VR&   \	        V R4      '       d   V P                  VR&   V# )ÚabsmaxÚ	quant_mapzquant_state.bitsandbytes__Úweight_nested_absmaxÚnested_absmaxÚweight_nested_quant_mapÚnested_quant_map)Úweight_absmaxÚweight_quant_mapr~   rA   r¬   r½   r¿   )r†   Úpayloads   & r   Ú_quant_state_payloadÚ'BitsAndBytesLinear._quant_state_payload	  sz   € à�d×(Ñ(Ø˜×.Ñ.Ø(¨¯©Ð(9Ð:¸D×<SÑ<Sð,
ˆô
 �4Ð/×0Ò0Ø'+×'@Ñ'@ˆG�OÑ$Ü�4Ð2×3Ò3Ø*.×*FÑ*FˆGÐ&Ñ'Øˆr   Úforcec               ó   € V ^8„  d   QhRR/# )r   rÆ   r   r   )r   s   "r   r   rk     s   € ÷  ñ  ¨Tñ  r   c               	óè  a € S P                   '       g   R S n        R S n        R # \        4       p\        ;QJ d    . V 3R lR 4       F  NK  	  5M! V 3R lR 4       4      pV'       g,   S P                  e   VS P                  8X  d   S P                  # VP
                  P                  P                  S P                  4       S P                  P                  R7      S n        VS n        S P                  # )Nc           	   3  óÌ   <"  € T FY  pV\        \        SV4      P                  4      \        \        SV4      P                  4      \        SV4      P
                  3x € K[  	  R # 5ir›   )r]   r¯   r^   r?   rQ   rP   )Ú.0Únamer†   s   & €r   Ú	<genexpr>Ú:BitsAndBytesLinear._refresh_quant_state.<locals>.<genexpr>  s]   øé € ð 
ñ ^�ð Ü”g˜d DÓ)×/Ñ/Ó0Ü”G˜D $Ó'×.Ñ.Ó/Ü˜˜dÓ#×)Ñ)õ	ó ^ùs   ƒA!A$©rQ   )r4   rÁ   rÂ   rA   )r—   rd   r€   r,   r]   rZ   Ú
QuantStateÚ	from_dictrÄ   r4   rQ   )r†   rÆ   r&   Ú	signatures   f$  r   Ú_refresh_quant_stateÚ'BitsAndBytesLinear._refresh_quant_state  sÑ   ø€ Ø�|�|ˆ|Ø#ˆDÔØ*.ˆDÔ'Ùä!Ó#ˆß”Eô 
ñ ^ó
—E‘Eô 
ñ ^ó
ó 
ˆ	÷ ˜×)Ñ)Ò5¸)Àt×GbÑGbÔ:bØ×#Ñ#Ð#àŸ>™>×4Ñ4×>Ñ>Ø×%Ñ%Ó'Ø—;‘;×%Ñ%ð ?ó 
ˆÔð '0ˆÔ#Ø×ÑÐr   c                	óp   <€ \         SV `  4        V P                  '       d   V P                  R R7       R# R# )T©rÆ   N)r�   Ú	post_initr—   rÒ   )r†   r‹   s   &€r   rÖ   ÚBitsAndBytesLinear.post_init/  s-   ø€ Ü‰ÑÔØ�<�<ˆ<Ø×%Ñ%¨DÐ%Ö1ñ r   c               ó   € V ^8„  d   QhRR/# )r   r   r1   r   )r   s   "r   r   rk   4  s   € ÷ añ a <ñ ar   c                	ó@  € \        4       pV P                  '       dF   V P                  4       pVP                  P	                  V P
                  VR 7      P                  4       # VP                  P                  V P
                  V P                  4      P                  4       # ))rd   )	r,   r—   rÒ   rZ   Údequantize_4bitr4   Ú
contiguousÚint8_vectorwise_dequantr¡   )r†   r&   rd   s   &  r   Údequantize_weightÚ$BitsAndBytesLinear.dequantize_weight4  sp   € Ü!Ó#ˆØ�<�<ˆ<Ø×3Ñ3Ó5ˆKØ—>‘>×1Ñ1°$·+±+È;Ð1ÓW×bÑbÓdÐdØ�~‰~×5Ñ5°d·k±kÀ4Ç?Á?ÓS×^Ñ^Ó`Ð`r   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r   r/   r0   Úscalesr1   rX   Úg_idxr   )r   s   "r   r   rk   ;  s/   € ÷ Sñ S˜9ð S¨lð SÀ<ð SÐXdñ Sr   c                	ó,   € V P                  WW4R 7       R# ©)r/   rá   rX   râ   N©Úpack_original)r†   r/   rá   rX   râ   s   &&&&&r   ÚpackÚBitsAndBytesLinear.pack;  s   € Ø×Ñ &¸uÐÖRr   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R/# )
r   r/   r0   rá   r1   rX   râ   Úblock_inrI   Úworkersr   )r   s   "r   r   rk   >  sN   € ÷ 
Sñ 
Sàð
Sð ð
Sð ð	
Sð
 ð
Sð ð
Sð ñ
Sr   c                	ó0   € ??V P                  WW4R 7       R# rä   rå   )r†   r/   rá   rX   râ   rê   rë   s   &&&&&&&r   Ú
pack_blockÚBitsAndBytesLinear.pack_block>  s   € ð �gØ×Ñ &¸uÐÖRr   c               ó(   € V ^8„  d   QhRRRRRRRR/# rà   r   )r   s   "r   r   rk   L  s2   € ÷ 1ñ 1àð1ð ð1ð ð	1ð
 ñ1r   c                	óf  € ???\        4       p\        \        V4      P                  R R7      P	                  4       VV P                  4       R7      P                  4       pV P                  '       Ed   TP                  V P                  \        P                  8X  d   \        P                  MV P                  4      pVP                  P                  VV P                  V P                  V P                  \        P                   R7      w  r‰VP                  4       V P"                  R&   V	P%                  RR7      P'                  4        F+  w  r«VP                  4       V P"                  \)        V
4      &   K-  	  V P+                  RR7       M›VP                  P-                  VP                  \        P.                  4      RR	7      w  r‚pVe!   VP1                  4       ^ 8”  d   \3        R4      hVP                  4       V P"                  R&   VP                  4       V P"                  R&   VP4                  ey   VP4                  P7                  4       P                  R V P                  R7      P                  4       pRV P"                  9   d   WÐP"                  R&   R
# V P9                  RV4       R
# R
V n        R
# )rO   rÎ   )Úsmoothrp   rR   r4   TrU   rÕ   ç        ©Ú	thresholdNúYBitsAndBytesLinear only supports the direct int8 vectorwise path without outlier routing.r¡   )rQ   rP   rs   )r,   r   r<   ÚtoÚclonerœ   rÛ   r—   r   rW   r£   rZ   r[   rw   rx   r~   r\   r¤   r_   r`   rD   rÒ   Úint8_vectorwise_quantrY   ÚnumelÚNotImplementedErrorrs   r5   r¥   )r†   r/   rá   rX   râ   rñ   r&   r4   rc   rd   r>   rf   Úoutlier_colsrs   s   &&&&&&        r   ræ   Ú BitsAndBytesLinear.pack_originalJ  s-  € ð �E˜5ä!Ó#ˆÜ)Ü˜fÓ%×(Ñ(°Ð(Ó6×<Ñ<Ó>ØØ×-Ñ-Ó/ô
÷ ‰*‹,ð	 	ð �<�<‰<Ø—Y‘Y°×0BÑ0BÄeÇmÁmÔ0SœuŸ}š}ÐY]×YkÑYkÓlˆFØ#&§>¡>×#?Ñ#?ØØ×-Ñ-Ø$(×$@Ñ$@ØŸ?™?Ü#Ÿk™kð $@ó $Ñ ˆGð '.×&8Ñ&8Ó&:ˆD�M‰M˜(Ñ#Ø*×2Ñ2¸$Ð2Ó?×EÑEÖG‘�ØGM×GXÑGXÓGZ�—‘Ô>¸sÓCÓDñ  Hà×%Ñ%¨DÐ%Õ1à,/¯N©N×,PÑ,PØ—	‘	œ%Ÿ-™-Ó(Øð -Qó -Ñ)ˆG˜\ð Ò'¨L×,>Ñ,>Ó,@À1Ô,DÜ)Øoóð ð '.×&8Ñ&8Ó&:ˆD�M‰M˜(Ñ#Ø*0×*;Ñ*;Ó*=ˆD�M‰M˜,Ñ'à�;‰;Ò"Ø—;‘;×%Ñ%Ó'×*Ñ*°%¸t×?QÑ?QÐ*ÓR×]Ñ]Ó_ˆDØ˜Ÿ™Ô&Ø(,—‘˜fÓ%à×$Ñ$ V¨TÖ2àˆDŽIr   c               ó   € V ^8„  d   QhRR/# )r   Úxr1   r   )r   s   "r   r   rk     s   € ÷ #ñ #˜ñ #r   c                	ó  € \        4       pVP                  pV P                  e   V P                  MTpV P                  f   R MV P                  P	                  V4      pV P
                  '       d^   V P                  4       pVP                  VP	                  V4      V P                  P                  4       VVR7      pVP	                  V4      # VP                  P                  VP	                  \        P                  4      RR7      w  r‰p
V
e!   V
P                  4       ^ 8”  d   \        R4      hVP                  P!                  W€P                  4      pVP                  P#                  W¹V P$                  VR7      pVP	                  V4      # )N)rd   rs   rò   ró   rõ   r}   )r,   rP   r   rs   rö   r—   rÒ   Úmatmul_4bitr4   ÚtrZ   rø   rW   rY   rù   rú   Úint8_linear_matmulÚint8_mm_dequantr¡   )r†   rþ   r&   Úinput_dtyper   rs   rd   ÚoutÚx_int8Úx_statsrû   Úmm_outs   &&          r   ÚforwardÚBitsAndBytesLinear.forward  sF  € Ü!Ó#ˆà—g‘gˆØ.2×.@Ñ.@Ò.L˜×*Ò*ÐR]ˆØ—y‘yÒ(‰t¨d¯i©i¯l©l¸=Ó.Iˆà�<�<ˆ<Ø×3Ñ3Ó5ˆKØ—/‘/Ø—‘�]Ó#Ø—‘—‘“Ø'Øð	 "ó ˆCð —6‘6˜+Ó&Ð&à(+¯©×(LÑ(LØ�D‰D”—‘ÓØð )Mó )
Ñ%ˆ˜ð Ò#¨×(:Ñ(:Ó(<¸qÔ(@Ü%Økóð ð —‘×2Ñ2°6¿;¹;ÓGˆØ�n‰n×,Ñ,¨V¸d¿o¹oÐTXÐ,ÓYˆØ�v‰v�kÓ"Ð"r   )r€   rs   rw   rx   r~   r   rd   r›   )Ni    r3   )NN);Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr<   r   r„   ÚSUPPORTS_BACKENDSr   ÚSUPPORTS_METHODSr   ÚSUPPORTS_FORMATSÚSUPPORTS_BITSÚSUPPORTS_SHARDSÚSUPPORTS_TRAININGÚSUPPORTS_AUTO_PADDINGÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYÚ"SUPPORTS_OUT_FEATURES_DIVISIBLE_BYr
   ÚCPUÚCUDAÚSUPPORTS_DEVICESr   ÚALLÚSUPPORTS_PLATFORMrW   r¢   Úint16Úint32Úint64ÚSUPPORTS_PACK_DTYPESÚSUPPORTS_ADAPTERSrY   Úbfloat16r£   ÚSUPPORTS_DTYPESÚ
QUANT_TYPEr‚   Úclassmethodr‘   Úpropertyr—   rœ   r…   r²   r·   rÄ   rÒ   rÖ   rÝ   rç   rí   Úinference_modeÚno_gradræ   r	  Ú__static_attributes__Ú__classcell__)r‹   s   @r   ri   ri   r   s   ø† Øô)ó ð)ð !×-Ñ-Ð.ÐØ×+Ñ+Ð,ÐØ×+Ñ+¨RÐ0ÐØ˜�F€MØ€OØÐØ!ÐØ)*¨Ð%Ø*+¨Ð&ØŸ
™
 F§K¡KÐ0ÐØ!Ÿ™˜ÐØ!ŸJ™J¨¯©°U·[±[À%Ç+Á+ÐNÐØÐØ—}‘} e§n¡n°e·m±mÐD€Oà€Jð Ø"'§+¡+Ø"Ÿ]™]Ø!%Ø $Ø$(Ø.2Ø(,Ø(,Ø26÷#/.ò /.ðb ôó ðð ôó ðõ#õò>õ"4õ
ð °E÷  õ42õ
a÷S÷
Sð ×Ò˜%Ó Ø
‡]‚]ƒ_ö1ó ó !ð1÷f#ó #r   ri   )rÁ   rÂ   r½   r¿   rA   )r¡   )r�   r+   ÚBitsAndBytes4bitLinearri   r,   )1Ú
__future__r   Ú	functoolsr   Útypingr   r   r   rW   Útorch.nnÚnnr8   Ú	packagingr   Útorch.nn.modules.convr	   Úmodels._constr
   r   Úquantizationr   r   Úquantization.configr   r   Úutils.backendr   Úutils.loggerr   Ú r   Úggufr   r!   r%   r+   r­   r®   r(   r,   r�   r<   rD   r(  r)  rg   ri   r,  Ú__all__r   r   r   Ú<module>r<     sÞ   ðõ #å ß (Ñ (ã Ý Û Ý Ý )ç -ß *÷õ %Ý (Ý #Ý *ñ ƒn€à'Ð ðUð ð
)Ð %ð )8Ð %õYòñ 4Ó5Ð õõñ �3ÔØ×Ò�eÓØ‡‚ƒôó ó ó ðô<i#Ð.ô i#ðX	 ,Ð ò‚r   