+
    ÆÜ³j$E  ã                   ó¸  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIt^ RIHt ^ RI	t	^ RI
Ht ]P                  ! ]4      t  ! R R4      t]	P"                  P$                  t] ! R R	4      4       t ! R
 R]	P*                  P,                  4      t ! R R]	P*                  P,                  4      t ! R R]	P*                  P,                  4      tRR R lltRR R lltR# )é    )Ú	dataclassN)Úprod)ÚOptional)Úwarnc                   óL   a € ] tR t^t o RtR tR t]R 4       tR t	R t
RtV tR# )ÚGlobalOutlierPoolerNc                ó   € \        R 4      h)zCall get_instance() instead)ÚRuntimeError©Úselfs   &Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/bitsandbytes/autograd/_functions.pyÚ__init__ÚGlobalOutlierPooler.__init__   s   € ÜÐ8Ó9Ð9ó    c                ó2   € \        4       V n        R V n        R # ©N)ÚsetÚoutliersÚ	model_dimr   s   &r   Ú
initializeÚGlobalOutlierPooler.initialize   s   € Ü›ˆŒØˆŽr   c                ó–   € V P                   f1   V P                  V 4      V n         V P                   P                  4        V P                   # r   )Ú	_instanceÚ__new__r   )Úclss   &r   Úget_instanceÚ GlobalOutlierPooler.get_instance#   s6   € à�=‰=Ò ØŸK™K¨Ó,ˆCŒMØ�M‰M×$Ñ$Ô&Ø�}‰}Ðr   c                ó¤   € V P                   f   W n         W P                   8w  d   R # V P                  P                  VP                  4       4       R # r   )r   r   ÚupdateÚtolist)r   Úoutlier_idxÚfeature_dims   &&&r   Úadd_outliersÚ GlobalOutlierPooler.add_outliers*   s9   € Ø�>‰>Ò!Ø(ŒNØŸ.™.Ô(Ùà�‰×Ñ˜[×/Ñ/Ó1Ö2r   c                óŽ   € \         P                  ! \        V P                  4      4      P	                  \         P
                  4      # r   )ÚtorchÚTensorÚlistr   ÚtoÚint64r   s   &r   Úget_current_outlier_idxÚ+GlobalOutlierPooler.get_current_outlier_idx2   s)   € Ü�|Š|œD §¡Ó/Ó0×3Ñ3´E·K±KÓ@Ð@r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   Úclassmethodr   r#   r+   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s9   ø‡ € Ø€Iò:òð ñó ðò3÷Að Ar   r   c                   ó„   a € ] tR t^9t o RtRtRtRtRtRt	Rt
RtRtRtRtRtRtRt]! 0 R	m4      tR tR tV 3R ltRtV tR# )
ÚMatmulLtStateFNç        Tc                ó¼   € V\         P                  9   d$   \        P                  ! R V R2\        ^R7       R# \        R\        V 4      P                   RV R24      h)zMatmulLtState.zD is deprecated and will be removed in the next bitsandbytes release.©Ú
stacklevelNÚ'z' object has no attribute ')r7   Ú_deprecated_fieldsÚwarningsr   ÚFutureWarningÚAttributeErrorÚtyper-   )r   Únames   &&r   Ú__getattr__ÚMatmulLtState.__getattr__R   s]   € Ø”=×3Ñ3Ô3Ü�MŠMØ   Ð&jÐkÜØõñ
 Ü˜q¤ d£×!4Ñ!4Ð 5Ð5PÐQUÐPVÐVWÐXÓYÐYr   c                óL   € R V n         R V n        R V n        R V n        R V n        R # r   )ÚCBÚSBÚSCBÚSBtÚCBtr   s   &r   Úreset_gradsÚMatmulLtState.reset_grads\   s%   € ØˆŒØˆŒØˆŒàˆŒØˆŽr   c                ó’  <€ V ^8„  d   Qh/ S[ ;R&   S[S[P                  ,          ;R&   S[S[P                  ,          ;R&   S[S[P                  ,          ;R&   S[S[P                  ,          ;R&   S[S[P                  ,          ;R&   S[S[P                  ,          ;R&   S[S[,          ;R&   S[S[P                  ,          ;R	&   # )
é   Úforce_no_igemmltrF   rG   rH   rI   rJ   ÚsubBÚoutlier_poolÚidx)Úboolr   r&   r'   r   )Úformatr5   s   "€r   Ú__annotate__ÚMatmulLtState.__annotate__9   s½   ø‡ ‚ áÑ"ñ ñ 	‘—‘ÕÑ%ñ	 ñ
 	‘—‘ÕÑ%ñ ñ 
‘%—,‘,Õ	Ñ&ñ ñ 
‘%—,‘,Õ	Ñ&ñ ñ 
‘%—,‘,Õ	Ñ&ñ ñ ‘5—<‘<Õ
 Ñ'ñ ñ Ñ.Õ/Ñ6ñ ñ  
‘%—,‘,Õ	Ñ&ò! r   )rF   rJ   rG   rI   rH   >   ÚCxBÚCxBtÚformatBÚ_tile_indices)r-   r.   r/   r0   rO   rF   rG   rH   rI   rJ   rP   rQ   Úhas_accumulated_gradientsÚ	thresholdrR   Úis_trainingÚhas_fp16_weightsÚuse_poolÚ	frozensetr=   rC   rK   Ú__annotate_func__r2   r3   r4   s   @r   r7   r7   9   so   ø‡ € à"Ðà!%€BØ!%€BØ"&€Cà"&€CØ"&€Cà#'€Dà26€LØ %ÐØ€IØ"&€CØ€KØÐØ€Hñ #Ò#NÓOÐòZò÷G ƒ r   r7   c                   ó\   a € ] tR t^et o ]RV 3R lR ll4       t]V 3R lR l4       tRtV tR# )ÚMatMul8bitLtNc                óú   <€ V ^8„  d   QhRS[ P                  P                  P                  RS[ P                  RS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          RS[S[,          /# )rN   ÚctxÚAÚBÚoutÚbiasÚstate)r&   ÚautogradÚfunctionÚFunctionCtxr'   r   r7   )rT   r5   s   "€r   rU   ÚMatMul8bitLt.__annotate__g   s|   ø€ ÷ `ñ `Ù�^‰^×$Ñ$×0Ñ0ð`á�<‰<ð`ñ �<‰<ð`ñ ‘e—l‘lÕ#ð	`ñ
 ‘u—|‘|Õ$ð`ñ ™Õ&ñ`r   c           	     óò	  € T;'       g    \        4       pR V n        \        VP                  4      ^ 8X  dç   RV n        Wn        W n        W@n        VP                  R,          VP                  ^ ,          8X  dS   \        P                  ! VP                  RR VP                  R,          ,           VP                  VP                  R7      # \        P                  ! VP                  RR VP                  R,          ,           VP                  VP                  R7      # VP                  pVP                  \        P                  8w  d1   \        4       '       g!   \        P                  RVP                  4       \        VP                  4      ^8X  d$   VP!                  RVP                  R,          4      pV P"                  ^,          '       dE   \$        P&                  ! VP)                  \        P                  4      VP*                  R7      w  rxršpME\$        P,                  ! VP)                  \        P                  4      VP*                  R7      w  rypR;rŠR pVP.                  '       g   VP0                  fñ   \3        VRR4      RJpVP5                  4       '       * ;'       d&    VP                  ^ ,          VP7                  ^4      8H  pV'       d   VP9                  4       pVP:                  '       d	   V'       d   VP0                  e   VP<                  fR   VP?                  4        \$        P,                  ! VP)                  \        P                  4      4      w  Vn        Vn        pVP*                  R	8”  dN   Wµn         \        PB                  PD                  PG                  VVVP0                  V	VP<                  VV4      w  ppMV\        PB                  PD                  PH                  PK                  WuP0                  W•P<                  WAP                  R
7      pRpWPn&        W`n'        VP                  V n(        Vf   RMVP                  V n)        \U        V P"                  R,          4      '       d   VVV3V n+        W¥P@                  3V n,        M". ROV n+        RV n,        V P[                  RR4       . VRR OVP0                  P                  ^ ,          N5p\        V4      ^8X  d   VP!                  V4      # V# )FTNºé   NN©ÚdtypeÚdeviceºNrq   NzHMatMul8bitLt: inputs will be cast from %s to float16 during quantization)r\   Úgradr8   )ri   rs   ºNrN   Néÿÿÿÿ©NNN©NN).r7   Úis_emptyr   Úshaperf   rg   ri   r&   Úemptyrs   rt   Úfloat16Ú_is_compilingÚloggerÚwarningÚlenÚreshapeÚneeds_input_gradÚFÚint8_double_quantr)   r\   Úint8_vectorwise_quantr^   rF   ÚgetattrÚis_contiguousÚstrideÚ
contiguousr]   rH   rK   rR   ÚopsÚbitsandbytesÚint8_mixed_scaled_mmÚint8_scaled_mmÚdefaultrj   Ú
grad_shapeÚdtype_AÚ
dtype_biasÚanyÚtensorsÚtensor_statesÚsave_for_backward)re   rf   rg   rh   ri   rj   Úinput_shapeÚCAÚCAtÚSCAÚSCAtÚoutlier_colsÚhas_gradÚis_transposedÚ_ÚoutputÚsubAÚoutput_shapes   &&&&&&            r   ÚforwardÚMatMul8bitLt.forwardf   s¤  € ð ×(Ð(œ›ˆð ˆŒÜ�—‘‹=˜AÔØˆCŒLØŒEØŒEØŒHØ�w‰w�r�{˜aŸg™g a�jÔ(Ü—{’{ 1§7¡7¨3¨B <°!·'±'¸"µ+Õ#=ÀQÇWÁWÐUV×U]ÑU]Ô^Ð^ä—{’{ 1§7¡7¨3¨B <°!·'±'¸"µ+Õ#=ÀQÇWÁWÐUV×U]ÑU]Ô^Ð^à—g‘gˆð �7‰7”e—m‘mÔ#¬M¯OªOÜ�N‰NÐeÐgh×gnÑgnÔoäˆq�w‰w‹<˜1ÔØ—	‘	˜"˜aŸg™g b�kÓ*ˆAð ×Ñ ×"Ô"ä/0×/BÒ/BÀ1Ç4Á4ÌÏÉÓCVÐbg×bqÑbqÔ/rÑ,ˆB�S¡ô %&×$;Ò$;¸A¿D¹DÄÇÁÓ<OÐ[`×[jÑ[jÔ$kÑ!ˆB�\ØÐˆCàˆà×!×!Ð! U§X¡XÒ%5Ü˜q &¨$Ó/°tÐ;ˆHØ !§¡Ó 1Ô1×OÐO°a·g±g¸aµjÀAÇHÁHÈQÃKÑ6OˆMßØ—L‘L“N�à×!×!Ð!¯(°u·x±xÒ7GÈ5Ï9É9ÒK\Ø×!Ñ!Ô#ô *+×)@Ò)@ÀÇÁÄeÇmÁmÓATÓ)UÑ&�”˜%œ) Qð �?‰?˜SÔ Ø$ŒIô !Ÿ9™9×1Ñ1×FÑFØØØ—‘ØØ—	‘	ØØó‰LˆF‘Dô —Y‘Y×+Ñ+×:Ñ:×BÑBØ—H‘H˜c§9¡9°4¿w¹wð Có ˆFð ˆDð Œ	à$ŒØ—g‘gˆŒØ!%¢™°4·:±:ˆŒäˆs×#Ñ# BÕ'×(Ò(Ø  a˜.ˆCŒKØ!%§y¡yÐ 1ˆCÕâ,ˆCŒKØ ,ˆCÔØ×!Ñ! $¨Ô-à=˜ S bÐ)Ð=¨5¯8©8¯>©>¸!Õ+<Ñ=ˆäˆ{Ó˜qÔ Ø—>‘> ,Ó/Ð/àˆr   c                óv   <€ V ^8„  d   QhRS[ P                  P                  P                  RS[ P                  /# )rN   re   Úgrad_output)r&   rk   rl   rm   r'   )rT   r5   s   "€r   rU   rn   Ê   s/   ø€ ÷ (5ñ (5‘e—n‘n×-Ñ-×9Ñ9ð (5ÉÏÉñ (5r   c                ó2  € V P                   '       dt   V P                  f   R M\        P                  ! V P                  4      p\        P                  ! V P                  4      \        P                  ! V P
                  4      R VR 3# V P                  w  r4rVpV P                  w  rxp	V P                  w  r«V P                  pR ;p;rïV'       d   VP                  ^ V P                  R7      p\        VP                  4      ^8X  d2   VP                  RVP                  R,          4      P                  4       pV'       Ed   \         P"                  ! VP%                  \        P&                  4      4      w  p ppp\        P(                  P*                  P,                  P/                  VP1                  4       P                  4       VP1                  4       VV
\        P&                  R7      pVP2                  R8”  dT   VeP   VP5                  4       ^ 8”  d;   VRV3;;,          \        P6                  ! VP1                  4       V4      ,          uu&   V'       dÂ   VP8                  e©   VP8                  P%                  V P:                  RR7      P=                  VP>                  PA                  ^4      PC                  R4      4      p\        P6                  ! VP%                  V P:                  4      V4      PE                  V PF                  4      pM\I        R4      hWÞR VR 3# )	N©rs   r8   :NNNT©Úcopyú)State must contain CB matrix for backwardrx   ç�@ €?)%r{   ri   r&   Ú
zeros_likerf   rg   r„   r•   r–   rj   Úsumr“   r‚   r|   rƒ   r‹   r…   r†   r)   r~   rŒ   r�   r�   r�   Útr\   ÚnumelÚmatmulrF   r’   Úmul_rH   Ú	unsqueezeÚmulÚviewr‘   Ú	Exception)re   r§   Ú	bias_gradÚ	req_gradAÚ	req_gradBr    Úreq_gradBiasrš   r¢   Ú_Arœ   rR   rj   Úgrad_AÚgrad_BÚ	grad_biasÚCgradÚSCgradtrF   s   &&                 r   ÚbackwardÚMatMul8bitLt.backwardÉ   sC  € à�<�<ˆ<Ø #§¡Ò 0™´e×6FÒ6FÀsÇxÁxÓ6PˆIÜ×#Ò# C§E¡EÓ*¬E×,<Ò,<¸S¿U¹UÓ,CÀTÈ9ÐVZÐZÐZà36×3GÑ3GÑ0ˆ	˜a¨qØŸ™‰ˆ�2Ø×%Ñ%‰	ˆØ"Ÿy™yˆØ&*Ð*ˆÐ*�çà#Ÿ™¨°·±˜Ó@ˆIô ˆ{× Ñ Ó! QÔ&Ø%×-Ñ-¨b°+×2CÑ2CÀBÕ2GÓH×SÑSÓUˆKçˆ9Ü&'×&9Ò&9¸+¿.¹.ÌÏÉÓ:WÓ&XÑ#ˆE�1�a˜ !ä—Y‘Y×+Ñ+×:Ñ:×BÑBØ—‘“	×$Ñ$Ó&Ø—‘“ØØÜ—m‘mð Có ˆFð �‰ Ô$¨Ò)9¸d¿j¹j»lÈQÔ>NØ�q˜#�v—¤%§,¢,¨{¯}©}«ÀÓ"EÕE“çØ�x‰xÒ#Ø—X‘X—[‘[ §¡°4�[Ó8×=Ñ=¸e¿i¹i×>QÑ>QÐRSÓ>T×>XÑ>XÐYdÓ>eÓf�ÜŸš k§n¡n°S·[±[Ó&AÀ2ÓF×KÑKÈCÏNÉNÓ[‘äÐ KÓLÐLà˜t Y°Ð4Ð4r   © ry   ©	r-   r.   r/   r0   Ústaticmethodr¤   rÂ   r2   r3   r4   s   @r   rc   rc   e   s4   ø‡ € Ø÷`ñ `ó ð`ðD ÷(5ó ö(5r   rc   c                   óJ   a € ] tR t^õt o ]RR]3R l4       t]R 4       tRtV t	R# )ÚMatMul8bitFpNc                óö  € VP                   '       g   VP                  fý   \        VRR 4      R JpVP                  4       '       * ;'       d&    VP                  ^ ,          VP                  ^4      8H  pV'       d   VP                  4       pVP                  '       d	   V'       d   VP                  e   VP                  f^   VP                  4        \        P                  ! VP                  \        P                  4      4      w  Vn        Vn        pVP                  pVP                  P                  P                  VP                   4      P#                  VP                  P%                  ^4      P'                  R4      4      p	\        P(                  P*                  P-                  WV4      p
WPn        VP                   V n        VP                  V n        Wn        Vf
   R V n        V
# VP                   V n        V
# )Nrv   r­   )r^   rF   rˆ   r‰   r|   rŠ   r‹   r]   rH   rK   r…   r‡   r)   r&   r~   Údatars   r³   r´   rµ   ÚnnÚ
functionalÚlinearrj   r’   r‘   rf   r“   )re   rf   rg   rh   ri   rj   rž   rŸ   r    rF   r¡   s   &&&&&&     r   r¤   ÚMatMul8bitFp.forwardû   s`  € à×!×!Ð! U§X¡XÒ%5Ü˜q &¨$Ó/°tÐ;ˆHØ !§¡Ó 1Ô1×OÐO°a·g±g¸aµjÀAÇHÁHÈQÃKÑ6OˆMßØ—L‘L“N�à×!×!Ð!¯(°u·x±xÒ7GÈ5Ï9É9ÒK\Ø×!Ñ!Ô#Ü)*×)@Ò)@ÀÇÁÄeÇmÁmÓATÓ)UÑ&�”˜%œ) QØ—H‘H�à�X‰X�]‰]×Ñ˜aŸg™gÓ&×+Ñ+¨E¯I©I×,?Ñ,?ÀÓ,B×,FÑ,FÀ{Ó,SÓTˆÜ—‘×$Ñ$×+Ñ+¨A°4Ó8ˆØŒ	Ø—g‘gˆŒØŸ™ˆŒØŒØ!%¢˜ˆŒØˆð 48·:±:ˆŒØˆr   c                óP  € V P                   w  r#rEpV P                  pV P                  pR ;p;ršV'       d   VP                  ^ V P                  R7      p
\        VP                  4      ^8X  d2   VP                  RVP                  R,          4      P                  4       pV'       d4   \        P                  ! VP                  4       V4      P                  4       p	V'       dÂ   VP                  e©   VP                  P                  V P                  RR7      P                  VP                   P#                  ^4      P%                  R4      4      p\        P                  ! VP                  V P                  4      V4      P'                  V P(                  4      pM\+        R4      hW‰R V
R 3# )Nr©   Trª   r¬   rx   r­   )r„   rf   rj   r¯   r“   r‚   r|   rƒ   r‹   r&   r²   r°   rF   r)   r’   r³   rH   r´   rµ   r¶   r‘   r·   )re   r§   r¹   rº   r    r»   rf   rj   r½   r¾   r¿   rF   s   &&          r   rÂ   ÚMatMul8bitFp.backward  s>  € à36×3GÑ3GÑ0ˆ	˜a¨qØ�E‰EˆØ—	‘	ˆØ&*Ð*ˆÐ*�ßà#Ÿ™¨°·±˜Ó@ˆIô ˆ{× Ñ Ó! QÔ&Ø%×-Ñ-¨b°+×2CÑ2CÀBÕ2GÓH×SÑSÓUˆKçÜ—\’\ !§#¡#£%¨Ó5×7Ñ7Ó9ˆFçØ�x‰xÒ#Ø—X‘X—[‘[ §¡°4�[Ó8×=Ñ=¸e¿i¹i×>QÑ>QÐRSÓ>T×>XÑ>XÐYdÓ>eÓf�ÜŸš k§n¡n°S·[±[Ó&AÀ2ÓF×KÑKÈCÏNÉNÓ[‘äÐ KÓLÐLà˜t Y°Ð4Ð4r   rÄ   )
r-   r.   r/   r0   rÆ   r7   r¤   rÂ   r2   r3   r4   s   @r   rÈ   rÈ   õ   s4   ø‡ € ð Ø#¨$°mó ó ðð* ñ5ó ö5r   rÈ   c                   óP   a € ] tR tRt o ]RV 3R lR ll4       t]R 4       tRtV tR# )Ú
MatMul4Biti,  Nc                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# )rN   Úquant_state)r   r…   Ú
QuantState)rT   r5   s   "€r   rU   ÚMatMul4Bit.__annotate__0  s   ø€ ÷ :ñ :¹XÁaÇlÁlÕ=Sñ :r   c                ó†  € R V n         VP                  4       ^ 8X  dÕ   RV n         Wn        W n        W@n        VP
                  pVP
                  R,          V^ ,          8X  dI   \        P                  ! VP
                  RR VR,          ,           VP                  VP                  R7      # \        P                  ! VP
                  RR VR,          ,           VP                  VP                  R7      # VP                  R^4      pVP                  '       gd   \        P                  P                  P                  P                  VVVP
                  VP                   VP"                  VP$                  VR7      pM¾VP&                  P"                  R8X  d™   \        P                  P                  P                  P                  VVVP
                  VP&                  P                   VP"                  VP$                  VVP                   VP&                  P(                  VP*                  R7
      pM\-        R	4      hVe   VP/                  V4       TpWPn        VP                  VP                  Vf   RMVP                  uV n        V n        V n        \9        V P:                  R
,          4      '       d   RV3V n        V# RV n        V# )FTNrp   rr   ru   ©ri   é   ©ri   Úabsmax_8bitÚabsmax_codeÚabsmax_offsetúAnested quantization with state2.blocksize != 256 is not supportedrw   rx   rz   )r{   r±   rf   rg   ri   r|   r&   r}   rs   rt   r¶   ÚnestedrŒ   r�   Ú	gemm_4bitr�   ÚabsmaxÚ	blocksizeÚ
quant_typeÚstate2ÚcodeÚoffsetÚNotImplementedErrorÚcopy_rj   r’   Údtype_Br“   r”   r„   r•   )re   rf   rg   rh   ri   rÔ   ÚB_shaper¡   s   &&&&&&  r   r¤   ÚMatMul4Bit.forward/  s9  € ð ˆŒØ�7‰7‹9˜Œ>ØˆCŒLØŒEØŒEØŒHØ!×'Ñ'ˆGØ�w‰w�r�{˜g a�jÔ(Ü—{’{ 1§7¡7¨3¨B <°'¸"µ+Õ#=ÀQÇWÁWÐUV×U]ÑU]Ô^Ð^ä—{’{ 1§7¡7¨3¨B <°'¸"µ+Õ#=ÀQÇWÁWÐUV×U]ÑU]Ô^Ð^ð
 �F‰F�2�q‹Mˆà×!×!Ð!Ü—Y‘Y×+Ñ+×5Ñ5×=Ñ=ØØØ×!Ñ!Ø×"Ñ"Ø×%Ñ%Ø×&Ñ&Øð >ó ‰Fð ×Ñ×)Ñ)¨SÔ0Ü—Y‘Y×+Ñ+×5Ñ5×=Ñ=ØØØ×!Ñ!Ø×"Ñ"×)Ñ)Ø×%Ñ%Ø×&Ñ&ØØ'×.Ñ.Ø'×.Ñ.×3Ñ3Ø)×0Ñ0ð >ó ‰Fô &Ð&iÓjÐjàŠ?Ø�I‰I�fÔØˆFð  Œ	Ø34·7±7¸A¿G¹GÈTÊ\ÁTÐ_c×_iÑ_iÐ0ˆŒ�S”[ #¤.äˆs×#Ñ# BÕ'×(Ò(Ø ˜)ˆCŒKð ˆð 'ˆCŒKàˆr   c                óV  € V P                   '       dt   V P                  f   R M\        P                  ! V P                  4      p\        P                  ! V P                  4      \        P                  ! V P
                  4      R VR 3# V P                  w  p rEpV P                  w  rFR R R r˜pV'       d   VP                  ^ V P                  R7      p	V'       dO   \        P                  ! V\        P                  ! W`P                  4      P                  VP                  4      4      pWxR V	R 3# )Nr©   )r{   ri   r&   r®   rf   rg   r„   r•   r¯   r“   r²   r…   Údequantize_4bitrj   r)   rs   )
re   r§   r¸   r¹   r    r»   rg   r½   r¾   r¿   s
   &&        r   rÂ   ÚMatMul4Bit.backwardl  sä   € à�<�<ˆ<Ø #§¡Ò 0™´e×6FÒ6FÀsÇxÁxÓ6PˆIÜ×#Ò# C§E¡EÓ*¬E×,<Ò,<¸S¿U¹UÓ,CÀTÈ9ÐVZÐZÐZà+.×+?Ñ+?Ñ(ˆ	�1�a qØ�{‰{‰ˆà$(¨$°˜	ˆçà#Ÿ™¨°·±˜Ó@ˆI÷ ô —\’\ +¬q×/@Ò/@ÀÇIÁIÓ/N×/QÑ/QÐR]×RcÑRcÓ/dÓeˆFà˜t Y°Ð4Ð4r   rÄ   ry   rÅ   r4   s   @r   rÒ   rÒ   ,  s3   ø‡ € ð ÷:ñ :ó ð:ðx ñ5ó ö5r   rÒ   c                óæ   € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          R\        \        ,          R\        \         P                  ,          /# )rN   rf   rg   rh   rj   ri   )r&   r'   r   r7   )rT   s   "r   rU   rU   …  sY   € ÷ 6ñ 6Ü‡|�|ð6ä‡|�|ð6ô 
”%—,‘,Õ	ð6ô ”MÕ"ð	6ô ”5—<‘<Õ
 ñ6r   c                 óú   € T;'       g    \        4       pVR 8”  d   WCn        VP                  '       d3   V P                  P                  R9   d   \
        P                  WW%V4      # \        P                  WW%V4      # )r8   )ÚcpuÚxpu)r7   r\   r]   rt   rA   rÈ   Úapplyrc   )rf   rg   rh   rj   r\   ri   s   &&&&&&r   r²   r²   …  se   € ð ×$Ð$”]“_€EØ�3„Ø#Œà××ÐØ�8‰8�=‰=˜NÔ*Ü×%Ñ% a¨C°uÓ=Ð=Ü×Ñ˜a C¨uÓ5Ð5r   c                óä   € V ^8„  d   QhR\         P                  R\         P                  R\        P                  R\        \         P                  ,          R\        \         P                  ,          /# )rN   rf   rg   rÔ   rh   ri   )r&   r'   r…   rÕ   r   )rT   s   "r   rU   rU   —  s_   € ÷ T:ñ T:Ü‡|�|ðT:ä‡|�|ðT:ô —‘ðT:ô 
”%—,‘,Õ	ð	T:ô
 ”5—<‘<Õ
 ñT:r   c                 ón  € Vf   \        R4      h\        VP                  4      ^8w  d   \        R4      hV P                  P                  R8X  d:   \        VRR4      '       d'   \        P                  ! WW2R7      pVe	   WT,          pV# VP                  R^4      pV P                  R,          pWbP                  ^ ,          8X  dÑ   WbP                  ^,          8w  dº   \        4       '       g*   \        R\        VP                  4       R2\        ^R	7       \        P                  ! W4      P                  V P                  4      p\         P"                  P$                  P'                  WP)                  4       V4      pVe   VP+                  V4       V# V# \         P,                  ! 4       ;'       d-    V P.                  ;'       g    VR J;'       d    VP.                  pV'       Egº   V P1                  4       p	V	^ 8X  dW   Ve   V# \         P2                  ! . V P                  R R OVP                  ^ ,          N5V P                  V P                  R
7      # VP4                  '       gd   \         P6                  P8                  P:                  P=                  V VVP                  VP>                  VP@                  VPB                  VR7      pM¾VPD                  P@                  R8X  d™   \         P6                  P8                  P:                  P=                  V VVP                  VPD                  P>                  VP@                  VPB                  VVP>                  VPD                  PF                  VPH                  R7
      pM\K        R4      hVe   VP+                  V4       V# V# \L        PO                  WW4V4      # )Nzquant_state is requiredz0matmul_4bit: quant_state.shape must be 2D [N, K]rñ   Úpacking_format_for_cpuF)rh   rj   zJmatmul_4bit: weight was quantized from a [K, N] tensor (quant_state.shape=z|). Re-quantize from the weight in [N, K] (out_features, in_features) orientation. This will be an error in a future version.r:   rr   rØ   rÙ   rÚ   rÞ   rx   )(Ú
ValueErrorr‚   r|   rt   rA   rˆ   r…   Ú	gemv_4bitr¶   r   r   r(   ÚDeprecationWarningrí   r)   rs   r&   rË   rÌ   rÍ   r°   rè   Úis_grad_enabledÚrequires_gradr±   r}   rß   rŒ   r�   rà   r�   rá   râ   rã   rä   rå   ræ   rç   rÒ   ró   )
rf   rg   rÔ   rh   ri   ÚresultÚKÚB_dqÚ
needs_gradÚA_numels
   &&&&&     r   Úmatmul_4bitr  —  s  € ð ÒÜÐ2Ó3Ð3Ü
ˆ;×ÑÓ Ô"ÜÐKÓLÐLð
 	‡x�x‡}�}˜Ô¤'¨+Ð7OÐQV×"WÒ"WÜ—’˜Q sÔ>ˆØÒØ�NˆFØˆð
 	
�‰ˆr�1‹€Aà	�‰��€Að 	×Ñ˜aÕ Ô  Q×*;Ñ*;¸AÕ*>Ô%>Ü�ŠÜØ\Ô]aÐbm×bsÑbsÓ]tÐ\uð v=ð =ô #Øõô × Ò  Ó0×3Ñ3°A·G±GÓ<ˆÜ—‘×$Ñ$×+Ñ+¨A¯v©v«x¸Ó>ˆØŠ?Ø�I‰I�fÔØˆJØˆä×&Ò&Ó(×kÐk¨a¯o©o×.jÐ.jÀ$ÈdÐBR×BiÐBiÐW[×WiÑWi€Jßˆ:Ø—'‘'“)ˆØ�aŒ<ØŠØ�
Ü—;’;ÐD §¡¨¨" ÐD¨{×/@Ñ/@ÀÕ/CÑDÈAÏGÉGÐ\]×\dÑ\dÔeÐeà×!×!Ð!Ü—Y‘Y×+Ñ+×5Ñ5×=Ñ=ØØØ×!Ñ!Ø×"Ñ"Ø×%Ñ%Ø×&Ñ&Øð >ó ‰Fð ×Ñ×)Ñ)¨SÔ0Ü—Y‘Y×+Ñ+×5Ñ5×=Ñ=ØØØ×!Ñ!Ø×"Ñ"×)Ñ)Ø×%Ñ%Ø×&Ñ&ØØ'×.Ñ.Ø'×.Ñ.×3Ñ3Ø)×0Ñ0ð >ó ‰Fô &Ð&iÓjÐjØŠ?Ø�I‰I�fÔØˆJØˆä×Ñ˜A #¨[Ó9Ð9r   )NNr8   Nrz   )Údataclassesr   ÚloggingÚmathr   Útypingr   r>   r   r&   Úbitsandbytes.functionalrÌ   r…   Ú	getLoggerr-   r€   r   ÚcompilerÚis_compilingr   r7   rk   ÚFunctionrc   rÈ   rÒ   r²   r  rÄ   r   r   Ú<module>r     sÃ   ðÝ !Û Ý Ý Û Ý ã å #à	×	Ò	˜8Ó	$€ð÷Añ Að: —‘×+Ñ+€ð ÷(ð (ó ð(ôVM5�5—>‘>×*Ñ*ô M5ô`45�5—>‘>×*Ñ*ô 45ônV5�—‘×(Ñ(ô V5÷r6÷$T:ñ T:r   