Ë
    S^(h©z  ã            	       ó  — d Z ddlmZ ddlmZmZmZ  e«       r
ddlZddlmZ  e«       rddl	m
Z
 ddlmZmZ  e«       rdd	lmZ dd
„Zdedefd„Zddedededefd„Z G d„ dej                  j(                  «      Z	 	 	 dd„Zdd„Zy)zZHIGGS through FLUTE (Flexible Lookup Table Engine for LUT-quantized LLMs) integration fileé    )Úsqrté   )Úis_flute_availableÚis_hadamard_availableÚis_torch_availableN)Únn)Úprepare_data_transposed)ÚTuneMetaDataÚqgemm_v2)Úhadamard_transformc                 ó  — t        dt        | j                  «      z  «      D �cg c]  }d‘Œ }}|D ]/  }| j                  |   }|dz
  |z  dz   |z  }||z
  }	|	|d|z  dz
  <   Œ1 t        j                  j                  | |d|«      S c c}w )Nr   r   é   éþÿÿÿÚconstant)ÚrangeÚlenÚshaper   Ú
functionalÚpad)
ÚtensorÚdimsÚhad_block_sizeÚvalueÚ_Úpad_dimsÚdimÚsizeÚnext_multiple_of_1024Údeltas
             ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/integrations/higgs.pyÚpad_to_blockr!   &   sœ   € Ü  ¤S¨¯©Ó%6Ñ!6Ó7Ö8�a’Ð8€HÐ8Øò 'ˆØ�|‰|˜CÑ ˆØ"&¨¡(¨~Ñ!=ÀÑ!AÀ^Ñ SÐØ%¨Ñ,ˆØ!&ˆ��c‘˜A‘Òð	'ô �=‰=×Ñ˜V X¨z¸5ÓAÐAùò 9s   ¤	BÚpÚnc                 óÒ  — | |fdk(  �rt        j                  g ddg‘ddg‘ddg‘dd	g‘d
dg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘d d!g‘d"d#g‘d$d%g‘d&d'g‘d(d)g‘d*d+g‘d,d-g‘d.d/g‘d0d1g‘d2d3g‘d4d5g‘d6d7g‘d8d9g‘d:d;g‘d<d=g‘d>d?g‘d@dAg‘dBdCg‘dDdEg‘dFdGg‘dHdIg‘dJdKg‘dLdMg‘dNdOg‘dPdQg‘dRdSg‘dTdUg‘dVdWg‘dXdYg‘dZd[g‘d\d]g‘d^d_g‘d`dag‘dbdcg‘dddeg‘dfdgg‘dhdig‘djdkg‘dldmg‘dndog‘dpdqg‘drdsg‘dtdug‘dvdwg‘dxdyg‘dzd{g‘d|d}g‘d~dg‘d€d�g‘d‚dƒg‘d„d…g‘d†d‡g‘dˆd‰g‘dŠd‹g‘dŒd�g‘dŽd�g‘d�d‘g‘d’d“g‘d”d•g‘d–d—g‘d˜d™g‘dšd›g‘dœd�g‘dždŸg‘d d¡g‘d¢d£g‘d¤d¥g‘d¦d§g‘d¨d©g‘dªd«g‘d¬d­g‘d®d¯g‘d°d±g‘d²d³g‘d´dµg‘d¶d·g‘d¸d¹g‘dºd»g‘d¼d½g‘d¾d¿g‘dÀdÁg‘dÂdÃg‘dÄdÅg‘dÆdÇg‘dÈdÉg‘dÊdËg‘dÌdÍg‘dÎdÏg‘dÐdÑg‘dÒdÓg‘dÔdÕg‘dÖd×g‘dØdÙg‘dÚdÛg‘dÜdÝg‘dÞdßg‘dàdág‘dâdãg‘dädåg‘dædçg‘dèdég‘dêdëg‘dìdíg‘dîdïg‘dðdñg‘dòdóg‘dôdõg‘död÷g‘dødùg‘dúdûg‘düdýg‘dþdÿg‘�d �dg‘�d�dg‘�d�dg‘�d�dg‘�d�d	g‘�d
�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d �d!g‘�d"�d#g‘�d$�d%g‘�d&�d'g‘�d(�d)g‘�d*�d+g‘�d,�d-g‘�d.�d/g‘�d0�d1g‘�d2�d3g‘�d4�d5g‘�d6�d7g‘�d8�d9g‘�d:�d;g‘�d<�d=g‘�d>�d?g‘�d@�dAg‘�dB�dCg‘�dD�dEg‘�dF�dGg‘�dH�dIg‘�dJ�dKg‘�dL�dMg‘�dN�dOg‘�dP�dQg‘�dR�dSg‘�dT�dUg‘�dV�dWg‘�dX�dYg‘�dZ�d[g‘�d\�d]g‘�d^�d_g‘�d`�dag‘�db�dcg‘�dd�deg‘�df�dgg‘�dh�dig‘�dj�dkg‘�dl�dmg‘�dn�dog‘�dp�dqg‘�dr�dsg‘�dt�dug‘�dv�dwg‘�dx�dyg‘�dz�d{g‘�d|�d}g‘�d~�dg‘�d€�d�g‘�d‚�dƒg‘�d„�d…g‘�d†�d‡g‘�dˆ�d‰g‘�dŠ�d‹g‘�dŒ�d�g‘�dŽ�d�g‘�d��d‘g‘�d’�d“g‘�d”�d•g‘�d–�d—g‘�d˜�d™g‘�dš�d›g‘�dœ�d�g‘�dž�dŸg‘�d �d¡g‘�d¢�d£g‘�d¤�d¥g‘�d¦�d§g‘�d¨�d©g‘�dª�d«g‘�d¬�d­g‘�d®�d¯g‘�d°�d±g‘�d²�d³g‘�d´�dµg‘�d¶�d·g‘�d¸�d¹g‘�dº�d»g‘�d¼�d½g‘�d¾�d¿g‘�dÀ�dÁg‘�dÂ�dÃg‘�dÄ�dÅg‘�dÆ�dÇg‘�dÈ�dÉg‘�dÊ�dËg‘�dÌ�dÍg‘�dÎ�dÏg‘�dÐ�dÑg‘�dÒ�dÓg‘�dÔ�dÕg‘�dÖ�d×g‘�dØ�dÙg‘�dÚ�dÛg‘�dÜ�dÝg‘�dÞ�dßg‘�dà�dág‘�dâ�dãg‘�dä�dåg‘�dæ�dçg‘�dè�dég‘�dê�dëg‘�dì�díg‘�dî�dïg‘�dð�dñg‘�dò�dóg‘�dô�dõg‘�dö�d÷g‘�dø�dùg‘�dú�dûg‘�dü�dýg‘�dþ�dÿg‘�d �dg‘«      S | |f�dk(  �r•t        j                  g �d�dg‘�d�dg‘�d�dg‘�d	�d
g‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�dg‘�d�d g‘�d!�d"g‘�d#�d$g‘�d%�d&g‘�d'�d(g‘�d)�d*g‘�d+�d,g‘�d-�d.g‘�d/�d0g‘�d1�d2g‘�d3�d4g‘�d5�d6g‘�d7�d8g‘�d9�d:g‘�d;�d<g‘�d=�d>g‘�d?�d@g‘�dA�dBg‘�dC�dDg‘�dE�dFg‘�dG�dHg‘�dI�dJg‘�dK�dLg‘�dM�dNg‘�dO�dPg‘�dQ�dRg‘�dS�dTg‘�dU�dVg‘�dW�dXg‘�dY�dZg‘�d[�d\g‘�d]�d^g‘�d_�d`g‘�da�dbg‘�dc�ddg‘�de�dfg‘�dg�dhg‘�di�djg‘�dk�dlg‘�dm�dng‘�do�dpg‘�dq�drg‘�ds�dtg‘�du�dvg‘�dw�dxg‘�dy�dzg‘�d{�d|g‘�d}�d~g‘�d�d€g‘�d��d‚g‘«      S | |f�dƒk(  ret        j                  �d„�d…g�d†�d‡g�dˆ�d‰g�dŠ�d‹g�dŒ�d�g�dŽ�d�g�d��d‘g�d’�d“g�d”�d•g�d–�d—g�d˜�d™g�dš�d›g�dœ�d�g�dž�dŸg�d �d¡g�d¢�d£gg«      S | |f�d¤k(  rEt        j                  �d¥g�d¦g�d§g�d¨g�d©g�dªg�d«g�d¬g�d­g�d®g�d¯g�d°g�d±g�d²g�d³g�d´gg«      S | |f�dµk(  r-t        j                  �d¶g�d·g�d¸g�d¹g�dºg�d»g�d¼g�d½gg«      S | |f�d¾k(  r!t        j                  �d¿g�dÀg�dÁg�dÂgg«      S t        �dÃ| › �dÄ|› �«      ‚(Å  N)r   é   g   €Àg    fûÆ?g    B£å¿g   à¤]ô?g   à_×ü¿g   à²\è?g   €§9á¿g   @£ÒÀg    —íê?g   Àë…ë¿g    @yæ?g   ÀÐ‚
@g   @¯<â?g    4 @g   @ÒV
@g   €i@ã¿g    Ìá?g    ¬[ü¿g   àUÏ Àg    v•?g   `¯~Ý?g    Ëøê?g    àF÷?g    ³ã¿g   à#®	@g   À?³Ö?g    àuì?g    úã¿g   À�”ë?g   à!¦	Àg   àv-ò?g    õ‡Î¿g    W¢ú?g   àD¦í¿g   @á ÷?g   À-öó?g   `¬Ñð¿g   `áÿ?g   €Óù¿g    äÔ¿g   ÀõiÇ¿g   À5´Ò?g   `X¤ì¿g    #8ö¿g    ƒµ¿g    ÅEõ¿g   àï1ß¿g   `cµ÷?g   €äÔú¿g   €¥�Àg     ø¿g    â?þ?g    *Vý?g    üÒð?g   @ôÔ?g     Éð?g   €^
Àg   @xæ¿g    n|ý¿g   @‰´ó¿g   `©pë¿g    £5û¿g   `Aîñ¿g   €•²ä?g   @UVÄ¿g    yÝü¿g   à­Së¿g    dâ?g    µö¿g    •Âã¿g   `KGñ?g   `˜ü?g   €±½ò?g    ƒ	è?g   ÀïK@g   @ì½é?g   àßYö?g   €sæó¿g   `ò|Î¿g   @¡ž«?g     o@g    ©Dô¿g   @’Âö?g    2â?g   €Ø?g    ·Ôæ¿g   ÀÕR @g   `Ç(Ú?g    Erè?g   @N0ò¿g   `'/×?g    ‡¹÷¿g   €¨>Ú?g    ×?g   `Qcù¿g    2äù¿g    :7Àg   àdió¿g    �cí?g   `¯Ö¿g   `�ùØ¿g   à–âË?g    +÷@g   à¼ìô?g   `(fù?g   @8iú¿g   À=€û¿g    ò©£¿g   Àû
æ¿g   à+ãê¿g   €fŠé¿g    ­Éñ¿g    ¯LÀg   à·xõ?g   `*(å¿g    ÁÎï?g    ª/Õ¿g   @/aÅ¿g    êEÀg   €g�Àg    €“ú?g   €GÀg   àÔ{Ž?g   €háØ?g    _až?g    îþ?g   àÃâò?g    3˜@g   €ý#ý?g   Àyã¿g   ÀÑ±Ü¿g    —ž
@g   à¬Å×¿g    d,Àg   ÀûÃñ¿g   À&¡Àg   àåÙ¿g   `{Xå?g    YbÞ?g   @²"ó¿g    ¹ÙŠ¿g    —3Àg    T« Àg   @¬@û¿g   Àk¹ñ¿g   ÀªÀ¿g   `Ó{Ú¿g    ¸ðò?g   à>¤ÿ¿g   À	û?g   ÀŽ�ú¿g   `5Àg   àš ?g    Žâä?g   à�5í?g    µ„ã?g   €I Ø¿g    A¾Û?g   à’Ñ?g   Àœ½Ñ¿g   €9˜º?g   €@@g   À°z�¿g    Çj	Àg    ˜ô¿g   @�­ì¿g   @“Nâ?g    »}í¿g   ÀþÚñ?g    Zè¿g   `µ�@g   ÀcÀg    ÕÑÒ¿g   @=Dï¿g   €Šåí¿g    ¥¸ñ?g   `Êø¿g    b¹@g   À{Ü@g    ðh @g   à ¡í¿g   àïƒö?g   Àº]Æ¿g   À®Ká?g   €¯ì¿g   À±wê?g   `“¼ä?g    Í4ð?g    •bï?g    …¯¿g    `œÅ¿g   €pöð?g   @°â?g   @Q=s?g   @ýçÕ¿g   €Üàó¿g   @°@g   À1u×?g   €Í”Æ¿g   @´¥õ?g    ä‰«?g   `±‰@g   €_Óó¿g    ªÕ@g    …,ä?g   `¦då¿g   `Tü?g   àL�å?g   à®bÜ?g    •3ã?g    Èƒ¶¿g   €x½¿g    ìvú?g   `¾ÁÕ?g   €ì„¥¿g   ÀK3á¿g   À�/Û¿g   `ºEé¿g   @£#±?g   À€3ó?g    Ñ
Àg    êcÒ?g    1Òù¿g    „¤ß?g   `%Âõ?g    %·Ð?g   @‘w@g   àIŠõ?g   à�kó¿g    ”Îþ¿g   @ÌJß¿g    œý?g    ·ðÇ¿g   À£FÖ¿g   €é9ñ?g   `Ú ñ¿g   à8ÄÝ?g   `Ò@g    x¸À¿g   @wÿè¿g    x°?g    £ø¿g   @†Ò¿g    Í†â¿g    vã¿g    �ß?g   €n•@g   `9³Ç¿g   €ªYÀ?g    Ìç¿g   @©×ë?g    [mÖ?g    FÌ?g   @²ß?g   `Ð¬Àg   `Gšé¿g    c‹å?g   @Åúö¿g    Puø¿g   @ðªð?g   à½ôñ¿g   @Hä¿g    Þ4ï¿g   @… ì¿g   àwÀg    §#æ?g    dˆÂ?g   €M¥¿g    Öù¿g    ºýö?g   €øíØ?g   @vPÀg   €èœÅ¿g   àr†é?g   €LþÀg    ¦ô?g   @ßåå?g    :æÚ¿g    Óóþ?g   €Žõþ?g   `
ôˆ?g   @_Ý Àg   à$Rä¿g    ZŒç?g   À3Ëê¿g   `åâã¿g    Äµ?g   @çOî¿g   Àew@g    Lî÷¿g    Vö?g   €ß©Ò¿g    ÙV±?g   €å¶í?g   àæó¿g    ÂŠù?g   `¥;ú?g    ¥©Ô¿g   `í@ö¿g   Àâ-µ¿g    ±ý?g   `ãô¿g    ZYé?g   àœè Àg    	žâ?g    8;ô?g    ›Þþ?g   Àa‹Î¿g   @Rhì?g   `F
ó?g   àA’÷?g   @’—ì?g    ˜ÐÀg   `Äø¿g    þ8Ï?g   `ã>è?g   ÀÊà?g   @pÚÀg   Àýiò?g    ¤„ö?g   `ŸêÐ¿g   @ä� @g   €Bãø?g    íb¿g   @ª @g    ‰�û¿g   `\á¿g   À‰ñ¿g    )Wí?g   à`¨ì?g   `³üé¿g   `ì’@g    0$Ó¿g    >ø¿g    i¶ó?g    cæø¿g   À²Çý?g    ºH¶?g    °TÌ?g    ]òü¿g   àò.Ü¿g   €y¯Ø¿g   €“*þ¿g   `Fó?g   €áê@g   `ÁIs?g   À_;ò?g   ÀEÝ?g   À¿ ø¿g   `‹<É?g   `BÞ?g   @Þ¬ø?g   `5ô¿g   €µ×¿g   `SÝû¿g   à+Dã¿g   @4ñ?g    TÈ?g    Wï@g   ÀÜ¨Ý¿g   €1×?g    	›³¿g    xúô¿g   `¦Û?g    â¹ã?g    ÃhÏ?g   `“Óþ¿g    âÖÔ¿g   àúÈâ¿g    È¿g   à-Ãð¿g   `”‰×?g    Ö­ó¿g    åäó?g   `›¾Ç?g   €ìÍ?g   `$Z’¿g   €G)À?g    »§ò?g    3à¿g    ›%ã¿g   `axö¿g    •è?g   @ƒ×Ä¿g    ¿ï?g    ²„õ¿g   €ˆîé¿g   €ÚœÓ?g   @&Cæ?g   `"ý?g   @¯CÀg    ¤nÍ¿g   €92Ö¿g   À›é@g   àÍ÷¿g   `ë‹ó¿g   À‘Àg   à=�ì?g   `Lû?g    –ÀÀg    XÊñ?g    SðÀg   @�©Àg   `TÇ @g   @�‰©?g    ÔùÒ¿g   €­‚ Àg   `é¿g    X
Ú¿g     <í?g   `ìgï¿g   à¹ÌØ¿g    yÃö¿g   €µzç?g   àÄ�Ó?g   À+ õ?g   à$uó?g   àåmÿ¿g   €Pvó¿g   àü²Â?g   €°lÀg   À…	Ø¿g   À§‹í?g   À›y@g   @xÉ¿g    ümú?g    (Üæ¿g   €¹1Ù¿g   @qúè¿g   àŽÌ Àg   ÀµÙì?g   À2Iû¿g    ¢tº?g     iø?g    €	þ¿g    è—@g   `sÃþ?g   `
ô@g    M.ã¿g    ³Î?g   À ˜õ?g   `4í¿g   €‰ì¿g   @j€	Àg   @™Có¿g    oEø¿g   À¡Ñö?g    œ3@g   àžk÷?g   À”¦ú?g    éÊ?g   @Ÿìß¿g   àÞŸà?g   À�ÎÎ¿g   €oÉñ¿g   à7�ò¿g    «+ë¿g    €„Å¿g    pjÔ?g   à…Úî¿g   €� â¿g   @«ã¿g   À(ú¿g    “=í¿g   àÖ0Ü?g   `ü>Þ¿g    –.Àg   @ú\Þ?g   `[ý?g    ²#÷?g    Øò?g   àñ?g    êžî¿g    ­N¸?g   À�jý¿g   À=âÒ?g   €R¹Þ¿g   €è€Ž?g   `ïÀà¿g   àÜLü¿g   À‡– @g    «=ì¿g   àš@g   @äë?g    RÚ@g   €ré¿g   Àãó¿g   à�Ûí?g   `v_Ø?g   @TÁ?g   €Õéå?g   @¡ç?g    Â8ô?g    {ð}¿g   àþiÇ?g   €S”ó¿g   @kê?g   àsö÷?g    ©å?g    ¾ôÞ?g    …_æ¿g   @—3@g   €õìé?g   @î º?g   `Xr¶¿g    Ò[ñ¿g   €Þç¿g   €Žº¢?g   `£�Ô?g   @çÛü?g    5é¿g   €–ýú?)r   é@   g   €ûÅÀg   ÀÞxÂ?g    �Šè¿g   Àk‚û?g    „Àg   àlöó?g   ày½ó?g   à6ÙÀg   €¦Øë?g   à²ôÐ¿g   `Ö5÷?g   ÀÌk@g   À”$°¿g    Èzþ?g    1J@g   €±â?g   €ÐoÝ?g    .þý¿g   À„hþ¿g    Š¦Ó¿g   À_¸?g   àÁì?g   ÀÝ$ÿ?g   €î“å¿g   À6@g   @”T÷?g   à-î?g    ¹é¿g   €æŽ @g   À�Öù¿g   àÃ¹è?g   àÌ.Ì?g    �ñ?g   à”fø¿g   €´Íå?g   à,'ò?g    Þ?g   à^Ú@g   @L´ô¿g    >ûÛ¿g   €4b·¿g   Àµ�Ý?g    Né¿g   €óûÞ¿g    ô®?g   €nZí¿g   €t¼â¿g   Ài~@g    Jf½?g   €^GÀg   `åmù¿g   `6‚@g    /Íú?g    °æ?g    O†Ü¿g    Ùç?g    õ©ý¿g    šgý¿g    ^Dù¿g    ÍFð¿g    ™|ð¿g   €¶1ù¿g   `8ÿ¿g   @*÷Û?g   ÀàÖ¿g   €<Sþ¿g    ^Àö¿g   @^�è?g    Wií¿g    —à?g    Î1Ê?g   à6åõ?g   @Já?g   @(på?g   @?þ?g   àÆ ¢?g    D:Þ?g   ÀÀäã¿g   `÷uÚ¿g   ànÍ¿g    ü±@g    ¨[à¿g    jñ?g   À°=æ?g    ¬ Ú?g    îZÂ¿g   À�ô?g    æÅ?g    ÚG’?g   à˜Ü¿g   `9ó«?g   ÀÈÂö¿g   à±Ó?g   €¥Ó?g    :eî¿g    z¥î¿g    k¶Àg    ×éî¿g   Àmñõ?g    [rÙ¿g   àîß¿g   à�Î?g    þyô?g    ®ôô?g   €á á?g   `/Øò¿g   à(&ö¿g    CÃÂ?g   @äËÝ¿g   €Šèó¿g   `Ù¿g   @8lç¿g    §hö¿g   ÀÀ9ö?g   €ß«ë¿g   Àüüð?g   àz|ì¿g    yå�¿g   `Ý¨ï¿g   @õºÀg   `è ÷?g    Êð¿g    ;S¥¿g   `¢Š?g   €œ"Õ¿g   `á1ô?g   À"1æ?g   ÀÊWü?)r   é   g    
Êì¿g   @:-ú¿g   àÂî¿g    l™ù?g   €Çþ¿g   `�¸å?g    …;×?g   @õwÿ¿g    Îå¿g   @Luâ¿g    ˜Cç?g   €FÌã?g   @€Õ?g   @×dý?g   `FÂý?g    :Æ¢?g   €ÌÆ?g   €äî¿g   `Ö(ü¿g   àEûã¿g   €ºÇì¿g    Â¦Ô?g   `Ýê?g    OÓ¿g   @�ø?g   Àµô?g   À©LS¿g   À&í,?g    ØÖö?g    ƒSó¿g   @{£Ä¿g   Àºì?)r   r'   g   àWÜÀg   àX� Àg    „ãù¿g   à…ô¿g    §'î¿g   À+å¿g   €ÈÕØ¿g    ?oÀ¿g    ?oÀ?g   €ÈÕØ?g   À+å?g    §'î?g   à…ô?g    „ãù?g   àX� @g   àWÜ@)r   é   g   @/7Àg    §€õ¿g    21è¿g    ?_Ï¿g    ?_Ï?g    21è?g    §€õ?g   @/7@)r   é   g    «*ø¿g    YúÜ¿g    YúÜ?g    «*ø?zUnsupported p=z, n=)Útorchr   ÚNotImplementedError)r"   r#   s     r    Úget_higgs_gridr,   1   sf  € Ø	ˆ1€v�ÓÜ�|‰|ðAØ#Ð%8Ð9ðAà$Ð&8Ð9ðAð %Ð&8Ð9ðAð $Ð%8Ð9ð	Að
 $Ð%8Ð9ðAð $Ð%7Ð8ðAð $Ð%7Ð8ðAð #Ð$7Ð8ðAð $Ð%8Ð9ðAð %Ð&:Ð;ðAð %Ð&8Ð9ðAð $Ð%8Ð9ðAð #Ð$6Ð7ðAð $Ð%8Ð9ðAð $Ð%8Ð9ðAð  $Ð%9Ð:ð!Að" $Ð%8Ð9ð#Að$ $Ð%7Ð8ð%Að& %Ð&6Ð7ð'Að( #Ð$7Ð8ð)Að* %Ð&8Ð9ð+Að, %Ð&9Ð:ð-Að. &Ð'9Ð:ð/Að0 $Ð%7Ð8ð1Að2 %Ð&9Ð:ð3Að4 %Ð&8Ð9ð5Að6 $Ð%7Ð8ð7Að8 $Ð%7Ð8ð9Að: $Ð%8Ð9ð;Að< %Ð&9Ð:ð=Að> %Ð&9Ð:ð?Að@ $Ð%7Ð8ðAAðB %Ð&8Ð9ðCAðD %Ð&8Ð9ðEAðF %Ð&9Ð:ðGAðH $Ð%7Ð8ðIAðJ #Ð$6Ð7ðKAðL #Ð$6Ð7ðMAðN $Ð%7Ð8ðOAðP &Ð';Ð<ðQAðR #Ð$7Ð8ðSAðT $Ð%6Ð7ðUAðV #Ð$7Ð8ðWAðX $Ð%7Ð8ðYAðZ $Ð%8Ð9ð[Að\ $Ð%8Ð9ð]Að^ $Ð%8Ð9ð_Að` %Ð&8Ð9ðaAðb %Ð&9Ð:ðcAðd $Ð%9Ð:ðeAðf %Ð&9Ð:ðgAðh #Ð$6Ð7ðiAðj #Ð$7Ð8ðkAðl $Ð%:Ð;ðmAðn %Ð&9Ð:ðoAðp %Ð&9Ð:ðqAðr %Ð&8Ð9ðsAðt %Ð&8Ð9ðuAðv &Ð';Ð<ðwAðx %Ð&8Ð9ðyAðz $Ð%7Ð8ð{Að| &Ð'9Ð:ð}Að~ &Ð'9Ð:ðAð@ #Ð$5Ð6ðAAðB #Ð$7Ð8ðCAðD &Ð'8Ð9ðEAðF %Ð&9Ð:ðGAðH %Ð&9Ð:ðIAðJ &Ð'9Ð:ðKAðL #Ð$7Ð8ðMAðN 'Ð(9Ð:ðOAðP %Ð&8Ð9ðQAðR %Ð&9Ð:ðSAðT %Ð&8Ð9ðUAðV $Ð%6Ð7ðWAðX $Ð%8Ð9ðYAðZ %Ð&8Ð9ð[Að\ $Ð%7Ð8ð]Að^ &Ð'8Ð9ð_Að` %Ð&:Ð;ðaAðb %Ð&8Ð9ðcAðd 'Ð(:Ð;ðeAðf %Ð&9Ð:ðgAðh $Ð%7Ð8ðiAðj $Ð%8Ð9ðkAðl $Ð%8Ð9ðmAðn $Ð%8Ð9ðoAðp %Ð&7Ð8ðqAðr $Ð%6Ð7ðsAðt $Ð%6Ð7ðuAðv %Ð&7Ð8ðwAðx %Ð&7Ð8ðyAðz %Ð&8Ð9ð{Að| $Ð%7Ð8ð}Að~ #Ð$8Ð9ðAð@ &Ð'9Ð:ðAAðB $Ð%9Ð:ðCAðD &Ð':Ð;ðEAðF #Ð$6Ð7ðGAðH &Ð'9Ð:ðIAðJ %Ð&7Ð8ðKAðL %Ð&7Ð8ðMAðN #Ð$6Ð7ðOAðP $Ð%7Ð8ðQAðR $Ð%7Ð8ðSAðT &Ð';Ð<ðUAðV $Ð%8Ð9ðWAðX &Ð':Ð;ðYAðZ %Ð&9Ð:ð[Að\ %Ð&8Ð9ð]Að^ %Ð&9Ð:ð_Að` $Ð%7Ð8ðaAðb $Ð%8Ð9ðcAðd #Ð$6Ð7ðeAðf %Ð&9Ð:ðgAðh %Ð&8Ð9ðiAðj %Ð&9Ð:ðkAðl $Ð%8Ð9ðmAðn $Ð%6Ð7ðoAðp %Ð&9Ð:ðqAðr %Ð&9Ð:ðsAðt %Ð&9Ð:ðuAðv %Ð&8Ð9ðwAðx #Ð$8Ð9ðyAðz $Ð%8Ð9ð{Að| $Ð%8Ð9ð}Að~ %Ð&7Ð8ðAñ@ %Ñ&9Ð:ðAAñB $Ñ%8Ð9ðCAñD %Ñ&8Ð9ðEAñF %Ñ&9Ð:ðGAñH %Ñ&9Ð:ðIAñJ %Ñ&8Ð9ðKAñL %Ñ&;Ð<ðMAñN %Ñ&8Ð9ðOAñP %Ñ&7Ð8ðQAñR &Ñ'9Ð:ðSAñT #Ñ$5Ð6ðUAñV $Ñ%8Ð9ðWAñX $Ñ%6Ð7ðYAñZ &Ñ':Ð;ð[Añ\ %Ñ&8Ð9ð]Añ^ $Ñ%8Ð9ð_Añ` %Ñ&9Ð:ðaAñb $Ñ%8Ð9ðcAñd $Ñ%8Ð9ðeAñf %Ñ&8Ð9ðgAñh %Ñ&8Ð9ðiAñj $Ñ%9Ð:ðkAñl $Ñ%9Ð:ðmAñn #Ñ$7Ð8ðoAñp $Ñ%8Ð9ðqAñr $Ñ%7Ð8ðsAñt #Ñ$7Ð8ðuAñv $Ñ%6Ð7ðwAñx $Ñ%7Ð8ðyAñz %Ñ&9Ð:ð{Añ| $Ñ%7Ð8ð}Añ~ $Ñ%7Ð8ðAñ@ #Ñ$6Ð7ðAAñB %Ñ&8Ð9ðCAñD #Ñ$:Ð;ðEAñF $Ñ%8Ð9ðGAñH %Ñ&8Ð9ðIAñJ $Ñ%7Ð8ðKAñL %Ñ&7Ð8ðMAñN &Ñ':Ð;ðOAñP $Ñ%7Ð8ðQAñR $Ñ%8Ð9ðSAñT %Ñ&9Ð:ðUAñV %Ñ&:Ð;ðWAñX #Ñ$5Ð6ðYAñZ #Ñ$8Ð9ð[Añ\ #Ñ$7Ð8ð]Añ^ $Ñ%8Ð9ð_Añ` %Ñ&8Ð9ðaAñb %Ñ&:Ð;ðcAñd %Ñ&9Ð:ðeAñf $Ñ%8Ð9ðgAñh "Ñ#7Ð8ðiAñj $Ñ%9Ð:ðkAñl %Ñ&7Ð8ðmAñn $Ñ%8Ð9ðoAñp %Ñ&9Ð:ðqAñr %Ñ&9Ð:ðsAñt %Ñ&8Ð9ðuAñv $Ñ%7Ð8ðwAñx %Ñ&9Ð:ðyAñz 'Ñ(;Ð<ð{Añ| $Ñ%8Ð9ð}Añ~ %Ñ&7Ð8ðAñ@ $Ñ%9Ð:ðAAñB $Ñ%7Ð8ðCAñD %Ñ&8Ð9ðEAñF $Ñ%7Ð8ðGAñH %Ñ&9Ð:ðIAñJ &Ñ'9Ð:ðKAñL %Ñ&9Ð:ðMAñN %Ñ&8Ð9ðOAñP #Ñ$7Ð8ðQAñR $Ñ%8Ð9ðSAñT $Ñ%7Ð8ðUAñV %Ñ&9Ð:ðWAñX $Ñ%8Ð9ðYAñZ %Ñ&8Ð9ð[Añ\ %Ñ&9Ð:ð]Añ^ %Ñ&8Ð9ð_Añ` $Ñ%7Ð8ðaAñb $Ñ%8Ð9ðcAñd %Ñ&9Ð:ðeAñf %Ñ&:Ð;ðgAñh $Ñ%7Ð8ðiAñj %Ñ&7Ð8ðkAñl $Ñ%9Ð:ðmAñn %Ñ&8Ð9ðoAñp $Ñ%8Ð9ðqAñr $Ñ%7Ð8ðsAñt %Ñ&7Ð8ðuAñv $Ñ%7Ð8ðwAñx %Ñ&9Ð:ðyAñz $Ñ%8Ð9ð{Añ| %Ñ&9Ð:ð}Añ~ %Ñ&9Ð:ðAñ@ $Ñ%6Ð7ðAAñB #Ñ$6Ð7ðCAñD %Ñ&9Ð:ðEAñF $Ñ%9Ð:ðGAñH %Ñ&9Ð:ðIAñJ %Ñ&9Ð:ðKAñL $Ñ%8Ð9ðMAñN %Ñ&9Ð:ðOAñP %Ñ&9Ð:ðQAñR %Ñ&:Ð;ðSAñT $Ñ%8Ð9ðUAñV #Ñ$6Ð7ðWAñX $Ñ%7Ð8ðYAñZ %Ñ&9Ð:ð[Añ\ $Ñ%7Ð8ð]Añ^ %Ñ&:Ð;ð_Añ` %Ñ&9Ð:ðaAñb $Ñ%8Ð9ðcAñd #Ñ$6Ð7ðeAñf #Ñ$7Ð8ðgAñh %Ñ&8Ð9ðiAñj %Ñ&9Ð:ðkAñl $Ñ%7Ð8ðmAñn $Ñ%:Ð;ðoAñp %Ñ&7Ð8ðqAñr $Ñ%7Ð8ðsAñt $Ñ%8Ð9ðuAñv %Ñ&7Ð8ðwAñx $Ñ%8Ð9ðyAñz &Ñ'9Ð:ð{Añ| %Ñ&9Ð:ð}Añ~ $Ñ%6Ð7ðAñ@ %Ñ&8Ð9ðAAóC
ð C	
ðH 	
ˆ1€v‘ÓÜ�|‰|ðAÙ$Ñ&9Ð:ðAá#Ñ%7Ð8ðAñ %Ñ&8Ð9ðAñ #Ñ$7Ð8ð	Añ
 $Ñ%8Ð9ðAñ $Ñ%7Ð8ðAñ &Ñ'9Ð:ðAñ #Ñ$5Ð6ðAñ $Ñ%8Ð9ðAñ $Ñ%9Ð:ðAñ %Ñ&8Ð9ðAñ #Ñ$7Ð8ðAñ $Ñ%7Ð8ðAñ $Ñ%8Ð9ðAñ $Ñ%7Ð8ðAñ  #Ñ$7Ð8ð!Añ" $Ñ%7Ð8ð#Añ$ $Ñ%7Ð8ð%Añ& $Ñ%6Ð7ð'Añ( $Ñ%8Ð9ð)Añ* &Ñ'9Ð:ð+Añ, %Ñ&:Ð;ð-Añ. &Ñ':Ð;ð/Añ0 %Ñ&6Ð7ð1Añ2 %Ñ&8Ð9ð3Añ4 %Ñ&7Ð8ð5Añ6 $Ñ%7Ð8ð7Añ8 $Ñ%7Ð8ð9Añ: %Ñ&9Ð:ð;Añ< %Ñ&8Ð9ð=Añ> $Ñ%8Ð9ð?Añ@ %Ñ&9Ð:ðAAñB %Ñ&9Ð:ðCAñD %Ñ&8Ð9ðEAñF %Ñ&8Ð9ðGAñH %Ñ&8Ð9ðIAñJ $Ñ%7Ð8ðKAñL $Ñ%8Ð9ðMAñN $Ñ%8Ð9ðOAñP &Ñ';Ð<ðQAñR $Ñ%8Ð9ðSAñT #Ñ$6Ð7ðUAñV %Ñ&:Ð;ðWAñX $Ñ%8Ð9ðYAñZ %Ñ&:Ð;ð[Añ\ &Ñ':Ð;ð]Añ^ $Ñ%8Ð9ð_Añ` %Ñ&9Ð:ðaAñb %Ñ&9Ð:ðcAñd $Ñ%9Ð:ðeAñf %Ñ&8Ð9ðgAñh $Ñ%7Ð8ðiAñj $Ñ%8Ð9ðkAñl $Ñ%7Ð8ðmAñn &Ñ':Ð;ðoAñp %Ñ&9Ð:ðqAñr %Ñ&8Ð9ðsAñt %Ñ&8Ð9ðuAñv %Ñ&:Ð;ðwAñx %Ñ&9Ð:ðyAñz #Ñ$6Ð7ð{Añ| 'Ñ(<Ð=ð}Añ~ %Ñ&6Ð7ðAñ@ $Ñ%7Ð8ðAAóC
ð C	
ðH ˆQˆ‘7Ò	Ü�|‰|á$Ñ&9Ð:Ù#Ñ%7Ð8Ù#Ñ%6Ð7Ù$Ñ&9Ð:Ù$Ñ&8Ð9Ù#Ñ%7Ð8Ù#Ñ%7Ð8Ù"Ñ$8Ð9Ù$Ñ&9Ð:Ù$Ñ&9Ð:Ù$Ñ&9Ð:Ù"Ñ$7Ð8Ù#Ñ%7Ð8Ù'Ñ)?Ð@Ù#Ñ%7Ð8Ù%Ñ'9Ð:ð!ó
ð 	
ð( ˆQˆ‘7Ò	Ü�|‰|á$Ð%Ù#Ð$Ù$Ð%Ù$Ð%Ù$Ð%Ù$Ð%Ù%Ð&Ù%Ð&Ù$Ð%Ù$Ð%Ù#Ð$Ù#Ð$Ù#Ð$Ù#Ð$Ù"Ð#Ù#Ð$ð!ó
ð 	
ð( ˆQˆ‘6Ò	Ü�|‰|á$Ð%Ù$Ð%Ù$Ð%Ù$Ð%Ù#Ð$Ù#Ð$Ù#Ð$Ù#Ð$ð	ó
ð 	
ð ˆQˆ‘6Ò	Ü�|‰|Ñ1Ð2Ñ5HÐ4IÑL^ÐK_ÑbtÐauÐvÓwÐwä!¡N°1°#±T¸!¸Ð"=Ó>Ð>ó    ÚbitsÚ
group_sizeÚhadamard_sizec                 ó  — t        | j                  «      dk(  sJ d«       ‚t        |d||z  z  «      j                  | j                  «      }t
        j                  j                  |d¬«      dz  }| j                  }| j                  }| j                  dt
        j                  ¬«      } t        | dg|«      } | j                  d   |z  }	| j                  d|	|«      } t
        j                  j                  | d¬«      }
t        | d«      |
d d …d d …d f   z  } t        | dg|«      j                  | j                  d   |	d|«      } t        j                  | j                  d d |t
        j                  ¬	«      }t        d| j                  d   d
«      D ]U  }t        j                   d| ||d
z    z  |j"                  z  |z
  d¬«      j                  t
        j                  «      |||d
z    ŒW ~ |j                  |j                  d   d«      }|
t%        |«      z  }
t'        |t        j(                  |
j                  |«      ||z  d¬«      |j                  |«      |||||d¬«	      \  } }
}}}| |
||j+                  t
        j,                  ¬«      |dœS )Nr   z%Only 2D weights are supported for nowéÿÿÿÿ)ÚaxisT)ÚcopyÚdtyper   r   ©Údevicer5   r'   )r   F)Únum_bitsr/   Úvector_sizer5   r7   Úcheck_correctness©r5   )ÚweightÚscalesÚtablesÚtables2Útune_metadata)r   r   r,   Útor7   r*   ÚlinalgÚnormr5   Úfloat32r!   Úreshaper   ÚemptyÚuint8r   ÚargmaxÚTr   r	   Úrepeat_interleaveÚviewÚfloat16)r<   r.   r"   r/   r0   ÚgridÚgrid_norm_2r7   r5   Úmultr=   ÚcodesÚir>   r?   r@   s                   r    Úquantize_with_higgsrR   ¹  sY  € Üˆv�|‰|Ó Ò!ÐJÐ#JÓJÐ!ä˜!˜Q 1 t¡8™_Ó-×0Ñ0°·±Ó?€DÜ—,‘,×#Ñ# D¨rÐ#Ó2°aÑ7€Kà�]‰]€FØ�L‰L€EØ�Y‰Y˜D¬¯©ˆYÓ6€Fä˜& 1 # }Ó5€Fð �<‰<˜‰?˜mÑ+€DØ�^‰^˜B  mÓ4€FÜ�\‰\×Ñ˜v¨BÐÓ/€FÜ ¨Ó*¨V²A²q¸$°JÑ-?Ñ?€Fô ˜& 1 # qÓ)×1Ñ1°&·,±,¸q±/À4ÈÈQÓO€Fô �K‰K˜Ÿ™ S bÐ)°&ÄÇÁÔL€EÜ�1�f—l‘l 1‘o rÓ*ò pˆÜ!ŸL™L¨¨V°A¸¸B¹Ð-?Ñ)?À$Ç&Á&Ñ)HÈ;Ñ)VÐ\^Ô_×bÑbÔch×cnÑcnÓoˆˆa�!�b‘&Ñðpàà�M‰M˜%Ÿ+™+ a™.¨"Ó-€EØ”d˜=Ó)Ñ)€Fä5LØÜ×Ñ §	¡	¨%Ó 0°-À:Ñ2MÐSTÔUØ�‰�‹ØØØØØØô
6Ñ2€FˆF�F˜G ]ð ØØØ—<‘<¤e§m¡m�<Ó4Ø&ñð r-   c                   óv   ‡ — e Zd Z	 	 	 	 	 d
dedededej
                  dej                  dedefˆ fd„Zd	„ Zˆ xZ	S )ÚHiggsLinearÚin_featuresÚout_featuresr8   r5   r7   r/   r0   c	                 ó  •— t         ‰	| �  «        || _        || _        || _        || _        || _        ||z  dk(  sJ ‚|dv sJ ‚t        j                  t        j                  ||z  dz  |ft        j                  |¬«      d¬«      | _        t        j                  t        j                  |||z  f||¬«      d¬«      | _        t        j                  t        j                  d|z  f||¬«      d¬«      | _        t        j                  t        j                  d|z  d|z  df||¬«      d¬«      | _        |r3t        j                  t        j                  |||¬«      d¬«      | _        n| j#                  d	d «       d | _        d | _        y )
Nr   )r   é   r)   r'   )r5   r7   F)Úrequires_gradr   r6   Úbias)ÚsuperÚ__init__rU   rV   r8   r/   r0   r   Ú	Parameterr*   rF   Úint16r<   r=   r>   r?   rZ   Úregister_parameterÚ	workspacer@   )
ÚselfrU   rV   r8   rZ   r5   r7   r/   r0   Ú	__class__s
            €r    r\   zHiggsLinear.__init__í  s^  ø€ ô 	‰ÑÔØ&ˆÔØ(ˆÔØ ˆŒØ$ˆŒØ*ˆÔà˜ZÑ'¨1Ò,Ð,Ð,Ø˜9Ñ$Ð$Ð$ä—l‘lÜ�K‰K˜¨Ñ0°BÑ6¸ÐDÌEÏKÉKÐ`fÔgØô
ˆŒô —l‘lÜ�K‰K˜ {°jÑ'@ÐAÈÐW]Ô^Ðnsô
ˆŒô —l‘l¤5§;¡;°°8±¨~ÀUÐSYÔ#ZÐjoÔpˆŒÜ—|‘|Ü�K‰K˜˜H™ a¨¡k°1Ð5¸UÈ6ÔRÐbgô
ˆŒñ ÜŸ™¤U§[¡[°ÀfÐTYÔ%ZÐjoÔpˆD�Ià×#Ñ# F¨DÔ1àˆŒØ+/ˆÕr-   c           
      óN  — t        |dg| j                  «      }| j                  €t        d«      ‚t	        || j
                  | j                  | j                  | j                  j                  t        j                  ¬«      | j                  | j                  | j                  ¬«      S )Nr2   z,Workspace must be set before calling forwardr;   )r0   )r!   r0   r`   Ú	Exceptionr   r<   r=   r>   r?   rK   r*   rD   r@   )ra   Úxs     r    ÚforwardzHiggsLinear.forward  s…   € Ü˜˜R˜D $×"4Ñ"4Ó5ˆà�>‰>Ð!ÜÐJÓKÐKäØØ�K‰KØ�K‰KØ�K‰KØ�L‰L×Ñ¤E§M¡MÐÓ2Ø�N‰NØ×ÑØ×,Ñ,ô	
ð 		
r-   )TNNr%   é   )
Ú__name__Ú
__module__Ú__qualname__Úintr*   r5   r7   r\   rf   Ú__classcell__)rb   s   @r    rT   rT   ì  sk   ø„ ð Ø!Ø#ØØ!ñ'0àð'0ð ð'0ð ð	'0ð �{‰{ð'0ð —‘ð'0ð ð'0ð õ'0öR
r-   rT   c           
      ó
  ‡
— ddl m} | j                  «       D �]Y  \  }}|€g }|j                  |«       t	        |t
        j                  «      rÜdj                  |«      Š
t        ˆ
fd„|j                  D «       «      s­ |«       5  |j                  }|j                  }t        |||j                  du|j                  |j                  |j                   ¬«      | j"                  |<   d}t%        |«      | j"                  |   _        | j"                  |   j)                  d«       ddd«       t+        t-        |j/                  «       «      «      dkD  rt1        ||||¬	«      \  }	}|j3                  d
«       �Œ\ | |fS # 1 sw Y   ŒXxY w)a  
    Public method that recursively replaces the Linear layers of the given model with HIGGS quantized layers.
    `accelerate` is needed to use this method. Returns the converted model and a boolean that indicates if the
    conversion has been successfull or not.

    Args:
        model (`torch.nn.Module`):
            The model to convert, can be any `torch.nn.Module` instance.
        quantization_config (`HiggsConfig`):
            The quantization config object that contains the quantization parameters.
        current_key_name (`list`, *optional*):
            A list that contains the current key name. This is used for recursion and should not be passed by the user.
        has_been_replaced (`bool`, *optional*):
            A boolean that indicates if the conversion has been successful or not. This is used for recursion and
            should not be passed by the user.
    r   )Úinit_empty_weightsNú.c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­w©N)Úendswith)Ú.0ÚkeyÚcurrent_key_name_strs     €r    ú	<genexpr>z,replace_with_higgs_linear.<locals>.<genexpr>I  s   øè ø€ Òp¸cÐ+×4Ñ4°S×9Ñpùs   ƒ)rZ   r8   r0   r/   TF)Úquantization_configÚcurrent_key_nameÚhas_been_replacedr2   )Ú
acceleratern   Únamed_childrenÚappendÚ
isinstancer   ÚLinearÚjoinÚanyÚmodules_to_not_convertrU   rV   rT   rZ   r.   r0   r/   Ú_modulesÚtypeÚ
source_clsÚrequires_grad_r   ÚlistÚchildrenÚreplace_with_higgs_linearÚpop)Úmodelrw   rx   ry   rn   ÚnameÚmodulerU   rV   r   ru   s             @r    rˆ   rˆ   (  so  ø€ õ. .à×,Ñ,Ó.ó #!‰ˆˆfØÐ#Ø!ÐØ×Ñ Ô%ä�fœbŸi™iÔ(à#&§8¡8Ð,<Ó#=Ð ÜÓpÐEX×EoÑEoÔpÔpÙ'Ó)ñ ?Ø"(×"4Ñ"4�KØ#)×#6Ñ#6�Lä+6Ø#Ø$Ø#Ÿ[™[°Ð4Ø!4×!9Ñ!9Ø&9×&GÑ&GØ#6×#AÑ#Aô,�E—N‘N 4Ñ(ð )-Ð%ô 7;¸6³l�E—N‘N 4Ñ(Ô3à—N‘N 4Ñ(×7Ñ7¸Ô>÷#?ô$ Œt�F—O‘OÓ%Ó&Ó'¨!Ò+Ü#<ØØ$7Ø!1Ø"3ô	$Ñ ˆAÐ ð 	×Ñ˜RÖ ðG#!ðH Ð#Ð#Ð#÷7?ð ?ús   ÂBE9Å9F	c           	      óL  — t        j                  «       5  | j                  «       D �]e  \  }}|€g }|j                  |«       t	        |t
        «      r÷|j                  }|j                  }t         j                  j                  |||j                  du|j                  j                  |j                  j                  ¬«      | j                  |<    |t        j                  ||j                  j                  |j                  j                  ¬«      «      j                   j#                  «       | j                  |   j$                  _        t)        t+        |j-                  «       «      «      dkD  rt/        ||¬«      }|j1                  d«       �Œh | cddd«       S # 1 sw Y   yxY w)aÉ  
    Dequantizes the HiggsLinear layers in the given model by replacing them with standard torch.nn.Linear layers.
    Args:
        model (torch.nn.Module): The model containing HiggsLinear layers to be dequantized.
        current_key_name (list, optional): A list to keep track of the current module names during recursion. Defaults to None.
    Returns:
        torch.nn.Module: The model with HiggsLinear layers replaced by torch.nn.Linear layers.
    N)rZ   r7   r5   r6   r   )rx   r2   )r*   Úno_gradr{   r|   r}   rT   rU   rV   r   r~   rZ   r=   r7   r5   r‚   ÚeyerI   Ú
contiguousr<   Údatar   r†   r‡   Údequantize_higgsr‰   )rŠ   rx   r‹   rŒ   rU   rV   r   s          r    r’   r’   h  sT  € ô 
�‰‹ñ Ø!×0Ñ0Ó2ó 	%‰LˆD�&ØÐ'Ø#%Ð Ø×#Ñ# DÔ)ä˜&¤+Ô.Ø$×0Ñ0�Ø%×2Ñ2�ä',§x¡x§¡ØØ ØŸ™¨DÐ0Ø!Ÿ=™=×/Ñ/Ø Ÿ-™-×-Ñ-ð (7ó (�—‘˜tÑ$ñ 4:Ü—I‘I˜k°&·-±-×2FÑ2FÈfÏmÉm×NaÑNaÔbó4ç‘!—J‘J“Lð —‘˜tÑ$×+Ñ+Ô0ô ”4˜Ÿ™Ó)Ó*Ó+¨aÒ/Ü$ØØ%5ô�ð
 × Ñ  Ö$ð7	%ð8 ÷;÷ ò ús   •E;FÆF#)r   )r)   r   r%   rg   )NNFrq   )Ú__doc__Úmathr   Úutilsr   r   r   r*   r   Úflute.integrations.higgsr	   Ú
flute.tuner
   r   Úfast_hadamard_transformr   r!   rk   r,   rR   ÚModulerT   rˆ   r’   © r-   r    ú<module>r›      s¨   ðñ ]å ÷ñ ñ ÔÛÝñ ÔÝ@ß1áÔÝ:óBðE?�cð E?˜có E?ñP0 cð 0°#ð 0Àsð 0Ðadó 0ôf9
�%—(‘(—/‘/ô 9
ð| ØØó	=$ô@'r-   