
    BUhB                        d dl Z d dlZd dlmZmZmZ d dlmZ dZdZ	dZ
dZede	d	e
dediZed
e	de
dediZede	de
ded
iZdZ ej                   d ej"                  e      z   dz         ZddddZg g ddgddgddgddgddg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 d)g d*g d+g d,g d-g d.g d/g d0g d1g d2g d3g d4g d5g d6g d7g d8g d9g d:g d;Zd<Zd=Zd>Zd?Zd@ZdA Z ed      D  cg c]=  } d g eddB      D cg c]$  }d e eeej=                  ||                   z  & c}z   ? c}} ZdC Z dD Z!dE Z"dF Z#dG Z$dH Z%dI Z&dJ Z'dK Z(dL Z)dM Z*dN Z+dO Z,d\dPZ-dQ Z.dR Z/dS Z0 G dT dU      Z1 G dV dW      Z2dXe2dYe3e   fdZZ4d[ Z5yc c}w c c}} w )]    N)LUTbase
exceptions)RSBlock            
   	                  s-   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:s   ^[s   ]*\Z   )   r   r                  "   )r   r   &   )r      *   )r   r   .   )r      2   )r   r   6   )r       :   )r   r   >   )r   r   r   B   )r   r   0   F   )r   r   r   J   )r   r   r    N   )r   r   8   R   )r   r   r"   V   )r   r   r#   Z   )r   r   r   H   ^   )r   r   r   r'   b   )r   r   r    r(   f   )r   r   r    P   j   )r   r!   r"   T   n   )r   r   r"   r+   r   )r   r   r#   r,   v   )r   r   r   r'   r/   z   )r   r   r    r(   r0   ~   )r   r   4   r(   h      )r   r   r)   r*   l      )r   r   <   r+   p      )r   r   r"   r+   r5      )r   r   r#   r,   r6      )r   r   r    r(   r0   r8      )r   r   r   L   r0         )r   r   r    r1   r2         )r   r!   r"   r3   r4         )r   r   r    r*   r4   r@      )r   r   r"   r+   r5   rA      i7  i%  iT        c                     | j                   S N
data_count)blocks    L/var/www/html/profi_bot/bot/venv/lib/python3.12/site-packages/qrcode/util.py_data_countrU   d   s        )   c                     | dz  }t        |      t        t              z
  dk\  rD|t        t        |      t        t              z
  z  z  }t        |      t        t              z
  dk\  rD| dz  |z  t        z  S )Nr   r   )	BCH_digitG15G15_MASKdatads     rT   BCH_type_infor_   r   si    
A
A,3
'1
,	SYq\IcN233 A,3
'1
, RZ1((rV   c                     | dz  }t        |      t        t              z
  dk\  rD|t        t        |      t        t              z
  z  z  }t        |      t        t              z
  dk\  rD| dz  |z  S )Nr   r   )rY   G18r\   s     rT   BCH_type_numberrb   z   sb    
A
A,3
'1
,	SYq\IcN233 A,3
'1
,BJ!rV   c                 4    d}| dk7  r|dz  }| dz  } | dk7  r|S )Nr   r    )r]   digits     rT   rY   rY      s0    E
!)

 !) LrV   c                     t         | dz
     S Nr   )PATTERN_POSITION_TABLEversions    rT   pattern_positionrk      s    !'A+..rV   c                     | dk(  rd S | dk(  rd S | dk(  rd S | dk(  rd S | d	k(  rd
 S | dk(  rd S | dk(  rd S | dk(  rd S t        d| z         )z>
    Return the mask function for the given mask pattern.
    r   c                     | |z   dz  dk(  S Nr   r   rd   ijs     rT   <lambda>zmask_func.<locals>.<lambda>       QUaK1,rV   r   c                     | dz  dk(  S rn   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>       AEQJrV   r   c                     |dz  dk(  S Nr   r   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>   ru   rV   r   c                     | |z   dz  dk(  S rw   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>   rs   rV   r	   c                 p    t        j                  | dz        t        j                  |dz        z   dz  dk(  S Nr   r   r   )mathfloorro   s     rT   rr   zmask_func.<locals>.<lambda>   s-    TZZA.AE1BBaG1LrV      c                 *    | |z  dz  | |z  dz  z   dk(  S rz   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>   s    QUaK1q5A+5:rV   r   c                 0    | |z  dz  | |z  dz  z   dz  dk(  S rz   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>   #    a!eq[AEQ;6!;q@rV   r   c                 0    | |z  dz  | |z   dz  z   dz  dk(  S )Nr   r   r   rd   ro   s     rT   rr   zmask_func.<locals>.<lambda>   r   rV   zBad mask pattern: )	TypeError)patterns    rT   	mask_funcr      s}     !|,,!|&&!|&&!|,,!|LL!|::!|@@!|@@
(72
33rV   c                 :    | dk  rt         S | dk  rt        S t        S )Nr      )MODE_SIZE_SMALLMODE_SIZE_MEDIUMMODE_SIZE_LARGEri   s    rT   mode_sizes_for_versionr      s"    |	2rV   c                     | t         t        t        t        fvrt	        d|  d      t        |       t        |      |    S )NInvalid mode ())MODE_NUMBERMODE_ALPHA_NUMMODE_8BIT_BYTE
MODE_KANJIr   check_versionr   )moderj   s     rT   length_in_bitsr      s?    KLL.a011'!'*400rV   c                 6    | dk  s| dkD  rt        d|  d      y )Nr   (   zInvalid version (was z, expected 1 to 40))
ValueErrorri   s    rT   r   r      s*    {gl0	9LMNN #rV   c                     t        |       }d}t        | |      }|t        | |      z  }|t        | |      z  }|t	        | |      z  }|S Nr   )len_lost_point_level1_lost_point_level2_lost_point_level3_lost_point_level4)modulesmodules_count
lost_points      rT   r   r      sX    LMJ#G];J$Wm<<J$Wm<<J$Wm<<JrV   c           	        	 d}t        |      }dg|dz   z  	|D ]O  }| |   }|d   }d}|D ])  }||   |k(  r|dz  }|dk\  r	|xx   dz  cc<   d}||   }+ |dk\  sC	|xx   dz  cc<   Q |D ]S  }| d   |   }d}|D ]/  }| |   |   |k(  r|dz  }|dk\  r	|xx   dz  cc<   d}| |   |   }1 |dk\  sG	|xx   dz  cc<   U |t        	fdt        d|dz         D              z  }|S )Nr   r   r}   c              3   4   K   | ]  }|   |d z
  z    yw)r   Nrd   ).0each_length	containers     rT   	<genexpr>z%_lost_point_level1.<locals>.<genexpr>   s'      6K 	++/26s   )rangesum)
r   r   r   modules_rangerowthis_rowprevious_colorlengthcolr   s
            @rT   r   r      sZ   J-(M}q()I3<!! C}.!Q;f%*%!)# ! Q;f"   C Cs|C N2!Q;f%*%!(c!2 ! Q;f"  #  MA$56  J
 rV   c                     d}t        |dz
        }|D ]X  }| |   }| |dz      }t        |      }|D ]9  }||dz      }	|	||dz      k7  rt        |d        #|	||   k7  r,|	||   k7  r5|dz  }; Z |S )Nr   r   r   r   iternext)
r   r   r   r   r   r   next_rowmodules_range_iterr   	top_rights
             rT   r   r      s    J-!+,M3<37# "-0%C q)IHS1W-- '.hsm+hsm+a
 & ( rV   c                    t        |      }t        |dz
        }d}|D ]  }| |   }t        |      }d}|D ]  }||dz      s||dz      r}||dz      su||dz      rm||dz      se||dz      r(||dz      r ||d	z      r||d
z      s||dz      s||dz      r0||dz      s-||dz      s%||d	z      s||d
z      r||dz      r||dz      r|dz  }||dz      st        |d          |D ]  }t        |      }d}|D ]  }| |dz      |   s| |dz      |   r| |dz      |   s| |dz      |   r| |dz      |   s| |dz      |   r7| |dz      |   r,| |d	z      |   r!| |d
z      |   s| |dz      |   s| |dz      |   rB| |dz      |   s<| |dz      |   s1| |d	z      |   s&| |d
z      |   r| |dz      |   r| |dz      |   r|dz  }| |dz      |   st        |d          |S )Nr   r   r   r	   r}   r   r   r   r   r   r
   r   r   )	r   r   r   modules_range_shortr   r   r   modules_range_short_iterr   s	            rT   r   r     s   
 -(M 23J3<#'(;#< +CS1W%S1W% q)S1W% q)S1W% q) q)$S1W-$S1W-$S2X.#C!G,$S1W-$S1W- q) q) r* b 
 b!-t4; ,	 F #'(;#< +CC!G$S)C!G$S)a(-C!G$S)a(-C!G$S)a(-a(-#C!G,S1#C!G,S1#C"H-c2"37+C0#C!G,S1#C!G,S1a(-a(-b)#. b 
sRx %-t41 , : rV   c                     t        t        t         |             }t        |      |dz  z  }t        t	        |dz  dz
        dz        }|dz  S )Nr   d   r   r}   r   )r   mapfloatintabs)r   r   
dark_countpercentratings        rT   r   r   Z  sN    Sg&'JJ=!#34GWs]R'(1,-FB;rV   c              #   L  K   t        |       } d}dt        j                  t              z   dz   }t	        |       |k  r7t        j
                  d|z   dz         }t        j
                  d|z   dz         }nPdt        |      j                  d      z   dz   }t        j
                  ||z         }t        j
                  ||z         }t        | |      }|D ]N  \  }}|rt        |t        d	
       t        ||      D ]#  \  }}	|rt        nt        }
t        |	|
d	
       % P yw)z
    An iterator returning QRData chunks optimized to the data content.

    :param minimum: The minimum number of bytes in a row to split as a chunk.
    s   \d   [   ]   ^s   +$   {asciis   ,}F)r   
check_dataN)to_bytestringreescape	ALPHA_NUMr   compilestrencode_optimal_splitQRDatar   r   r   )r]   minimumnum_patternalpha_pattern	re_repeatnum_bitsis_numchunkis_alpha	sub_chunkr   s              rT   optimal_data_chunksr   b  s
     DK299Y//$6M
4yGjj!3e!;<

4-#7%#?@3w<..w77%?	jjy!89

=9#<=dK0H![UCC'5e]'K#))1~~YTeDD (L	 "s   D"D$c              #      K   | rUt        j                  ||       }|sn<|j                         |j                         }}|r	d| d | f d| || f | |d  } | rU| rd| f y y w)NFT)r   searchstartend)r]   r   matchr   r   s        rT   r   r   |  s}     
		'4([[]EIIKsfu%%DsO##CDz  Tk s   AA$
A$c                 Z    t        | t              st        |       j                  d      } | S )z^
    Convert data to a (utf-8 encoded) byte-string if it isn't a byte-string
    already.
    zutf-8)
isinstancebytesr   r   r]   s    rT   r   r     s'    
 dE"4y(KrV   c                 p    | j                         rt        S t        j                  |       rt        S t
        S )z<
    Calculate the optimal mode for this chunk of data.
    )isdigitr   RE_ALPHA_NUMr   r   r   r   s    rT   optimal_moder     s-     ||~$rV   c                   *    e Zd ZdZddZd Zd Zd Zy)r   zS
    Data held in a QR compatible format.

    Doesn't currently handle KANJI.
    Nc                     |rt        |      }|t        |      | _        || _        y|| _        |t        t        t
        fvrt        d| d      |r|t        |      k  rt        d|       || _        y)zg
        If ``mode`` isn't provided, the most compact QR data type possible is
        chosen.
        Nr   r   z-Provided data can not be represented in mode )	r   r   r   r   r   r   r   r   r]   )selfr]   r   r   s       rT   __init__zQRData.__init__  s    
  &D<$T*DI 	 DIKHH.a 899d\$%77 #PQUPV!WXX	rV   c                 ,    t        | j                        S rP   )r   r]   r   s    rT   __len__zQRData.__len__  s    499~rV   c                    | j                   t        k(  ret        dt        | j                        d      D ]A  }| j                  ||dz    }t
        t        |         }|j                  t        |      |       C y | j                   t        k(  rt        dt        | j                        d      D ]  }| j                  ||dz    }t        |      dkD  rE|j                  t        j                  |d         dz  t        j                  |d         z   d       h|j                  t        j                  |      d        y | j                  }|D ]  }|j                  |d        y )	Nr   r   r   r   -   r   r   r
   )r   r   r   r   r]   NUMBER_LENGTHputr   r   r   find)r   bufferrp   chars
bit_lengthr]   cs          rT   writezQRData.write  s   99#1c$))na0		!a!e,*3u:6


3u:z2 1 YY.(1c$))na0		!a!e,u:>JJ!uQx025	uQx8PPRT JJy~~e4a8 1 99D

1a  rV   c                 ,    t        | j                        S rP   )reprr]   r   s    rT   __repr__zQRData.__repr__  s    DIIrV   )NT)__name__
__module____qualname____doc__r   r   r   r   rd   rV   rT   r   r     s    &!,rV   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	BitBufferc                      g | _         d| _        y r   )r   r   r   s    rT   r   zBitBuffer.__init__  s    !#rV   c                 p    dj                  | j                  D cg c]  }t        |       c}      S c c}w )N.)joinr   r   )r   ns     rT   r   zBitBuffer.__repr__  s+    xx5AQ5665s   3c                 n    t        j                  |dz        }| j                  |   d|dz  z
  z	  dz  dk(  S )Nr
   r   r   )r{   r|   r   )r   index	buf_indexs      rT   getzBitBuffer.get  s:    JJuqy)	Y'A	M:a?AEErV   c                 d    t        |      D ]"  }| j                  |||z
  dz
  z	  dz  dk(         $ y rg   )r   put_bit)r   numr   rp   s       rT   r   zBitBuffer.put  s3    vALL36A:>2a7A=> rV   c                     | j                   S rP   )r   r   s    rT   r   zBitBuffer.__len__  s    {{rV   c                    | j                   dz  }t        | j                        |k  r| j                  j                  d       |r'| j                  |xx   d| j                   dz  z	  z  cc<   | xj                   dz  c_         y )Nr
   r   rE   r   )r   r   r   append)r   bitr  s      rT   r  zBitBuffer.put_bit  se    KK1$	t{{y(KKq!KK	"dt{{Q&??"qrV   N)	r   r   r   r   r   r  r   r   r  rd   rV   rT   r  r    s!    7F?rV   r  r   	rs_blocksc           	         d}d}d}g }g }|D ]~  }|j                   }|j                  |z
  }	t        ||      }t        ||	      }t        |      D 
cg c]  }
d| j                  |
|z      z   }}
||z  }|	t
        j                  v r(t        j                  t
        j                  |	   d      }nUt        j                  dgd      }t        |	      D ]0  }
|t        j                  dt        j                  |
      gd      z  }2 t        j                  |t        |      dz
        }||z  }g }t        |      |	z
  }t        |	      D ]"  }
|
|z   }|j                  |dk\  r||   nd       $ |j                  |       |j                  |        g }t        |      D ],  }
|D ]%  }|
t        |      k  s|j                  ||
          ' . t        |      D ],  }
|D ]%  }|
t        |      k  s|j                  ||
          ' . |S c c}
w )Nr      r   )rR   total_countmaxr   r   r   
rsPoly_LUTr   
Polynomialgexpr   r  )r   r  offset
maxDcCount
maxEcCountdcdataecdatars_blockdcCountecCountrp   
current_dcrsPolyrawPolymodPoly
current_ec
mod_offsetmodIndexr]   dcecs                        rT   create_bytesr-    s   FJJ F F%%&&0W-
W-
@EgO1dV]]1v:66
O' cnn$__S^^G%<a@F__aS!,F7^$//1diil2CQ"GG $ //*c&kAo>F"
\G+
wA:~HHMgh/J   	j!j!9 < D:B3r7{BqE"   :B3r7{BqE"  
 KC Ps   Hc                 ,   t               }|D ]^  }|j                  |j                  d       |j                  t        |      t	        |j                  |              |j                  |       ` t        j                  | |      }t        d |D              }t        |      |kD  r%t        j                  dt        |      d|d      t        t        |t        |      z
  d            D ]  }|j                  d        t        |      dz  }|r$t        d|z
        D ]  }|j                  d        |t        |      z
  dz  }	t        |	      D ]7  }
|
dz  d	k(  r|j                  t        d       "|j                  t        d       9 t!        ||      S )
Nr	   c              3   :   K   | ]  }|j                   d z    yw)r
   NrQ   )r   rS   s     rT   r   zcreate_data.<locals>.<genexpr>/  s     @iUE$$q(is   z!Code length overflow. Data size (z) > size available (r   Fr
   r   r   )r  r   r   r   r   r   r   r  r   r   DataOverflowErrorr   minr  PAD0PAD1r-  )rj   error_correction	data_listr   r]   r  	bit_limit_delimitbytes_to_fillrp   s              rT   create_datar:  &  sV   [F

499a 

3t9nTYY@A

6  w(89I@i@@I
6{Y**6{I'
 	
 3y3v;.23u 4 &kAoGq7{#ANN5! $ V,2M=!q5A:JJtQJJtQ	 " 	**rV   )r	   )6r{   r   qrcoder   r   r   qrcode.baser   r   r   r   r   r   r   r   r   r   r   r   r   rh   rZ   ra   r[   r2  r3  rU   r   r   r   r  BIT_LIMIT_TABLEr_   rb   rY   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  listr-  r:  )r4  rj   s   00rT   <module>r?     s    	 ( (  
 AA	 BB	  BB	 =	rzz%)"))I"66AB 1#))G) G) G	)
 G) G) ) ) ) ) ) ) ) ) )  !)" #)$ %)& ')( ))* +), -). /)0 1)2 3)4 5)6 7)8 9): ;)< =)> ?)@ A)B C)D E)F #G)H #I)J #K)L #M)N #O)P #Q) V R  C "!H % C Q|#G 	
CK9I!JKLL#
 %)/4.1O

(V6IXE44 4n 81 1tG} 1h"+ys   'G	9)G"G	G	