Ë
    F‚$håA  ã                   ó  — U d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
 d dlmZmZmZ d dlmZ d dlmZ eeee         Zi Zeeef   ed<   dd„Zd	„ Zd
„ Zd„ Zd„ Z G d„ de«      Z ede¬«      Z  ede¬«      Z! G d„ dee    «      Z"y)é    N)Úbisect_left)ÚGenericÚ
NamedTupleÚOptionalÚTypeVarÚcastÚoverloadÚLiteral)Ú	constantsÚ
exceptionsÚutil)Ú	BaseImage)Ú
PyPNGImageÚprecomputed_qr_blanksc                 óZ   — t        di |¤Ž}|j                  | «       |j                  «       S )N© )ÚQRCodeÚadd_dataÚ
make_image)ÚdataÚkwargsÚqrs      úI/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/qrcode/main.pyÚmaker      s'   € Ü	Ñ	�&Ñ	€BØ‡K�K�ÔØ�=‰=‹?Ðó    c                 ó>   — t        | «      dk  rt        d| › d�«      ‚y )Nr   zInvalid box size (was z, expected larger than 0)©ÚintÚ
ValueError©Úsizes    r   Ú_check_box_sizer"      s(   € Ü
ˆ4ƒy�A‚~ÜÐ1°$°Ð7PÐQÓRÐRð r   c                 ó<   — t        | «      dk  rt        d| z  «      ‚y )Nr   z=Invalid border value (was %s, expected 0 or larger than that)r   r    s    r   Ú_check_borderr$   !   s'   € Ü
ˆ4ƒy�1‚}ÜØKÈdÑRó
ð 	
ð r   c                 óŒ   — | €y t        | t        «      st        dt        | «      › d�«      ‚| dk  s| dkD  rt	        d| › d�«      ‚y )NzInvalid mask pattern (was z, expected int)r   é   z(Mask pattern should be in range(8) (got ú))Ú
isinstancer   Ú	TypeErrorÚtyper   )Úmask_patterns    r   Ú_check_mask_patternr,   (   s`   € ØÐØÜ�l¤CÔ(ÜØ(¬¨lÓ);Ð(<¸OÐLó
ð 	
ð �aÒ˜<¨!Ò+ÜÐCÀLÀ>ÐQRÐSÓTÐTð ,r   c                 ó2   — | D �cg c]  }|d d  ‘Œ	 c}S c c}w ©Nr   )ÚxÚrows     r   Úcopy_2d_arrayr1   3   s   € ØÖ �sˆC‘ŠFÒ Ð ùÒ s   …c                   ót   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   d
efd„Zy)ÚActiveWithNeighborsÚNWÚNÚNEÚWÚmeÚEÚSWÚSÚSEÚreturnc                 ó   — | j                   S r.   )r8   ©Úselfs    r   Ú__bool__zActiveWithNeighbors.__bool__B   s   € Ø�w‰wˆr   N)Ú__name__Ú
__module__Ú__qualname__ÚboolÚ__annotations__rA   r   r   r   r3   r3   7   s;   … ØƒHØƒGØƒHØƒGØƒHØƒGØƒHØƒGØƒHð˜$ô r   r3   ÚGenericImage)ÚboundÚGenericImageLocalc                   ó²  — e Zd ZU eed<   dZee   ed<   dej                  ddddfdee
e      fd„Zedefd	„«       Zej                  d#d
„«       Zed„ «       Zej                  d„ «       Zd„ Zd$d„Zd%d„Zd„ Zd„ Zd&d„Zd„ Zd&d„Zd'd„Ze	 d&ded   defd„«       Ze	 d&de
e   defd„«       Zd&d„Zdededefd„Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%dedede&fd"„Z'y)(r   ÚmodulesNÚ_versioné
   é   Úimage_factoryc                 ó  — t        |«       t        |«       || _        t        |«      | _        t        |«      | _        t        |«      | _        || _        || _        |�t        |t        «      sJ ‚| j                  «        y r.   )r"   r$   Úversionr   Úerror_correctionÚbox_sizeÚborderr+   rO   Ú
issubclassr   Úclear)r@   rQ   rR   rS   rT   rO   r+   s          r   Ú__init__zQRCode.__init__N   sp   € ô 	˜Ô!Ü�fÔØˆŒÜ #Ð$4Ó 5ˆÔÜ˜H›ˆŒô ˜&“kˆŒØ(ˆÔØ*ˆÔØÐ$Ü˜m¬YÔ7Ð7Ð7Ø�
‰
�r   r=   c                 ón   — | j                   €| j                  «        t        t        | j                   «      S r.   )rL   Úbest_fitr   r   r?   s    r   rQ   zQRCode.versione   s&   € à�=‰=Ð Ø�M‰MŒOÜ”C˜Ÿ™Ó'Ð'r   c                 óV   — |� t        |«      }t        j                  |«       || _        y r.   )r   r   Úcheck_versionrL   )r@   Úvalues     r   rQ   zQRCode.versionk   s&   € àÐÜ˜“JˆEÜ×Ñ˜uÔ%Øˆ�r   c                 ó   — | j                   S r.   )Ú_mask_patternr?   s    r   r+   zQRCode.mask_patternr   s   € à×!Ñ!Ð!r   c                 ó(   — t        |«       || _        y r.   )r,   r^   )r@   Úpatterns     r   r+   zQRCode.mask_patternv   s   € ä˜GÔ$Ø$ˆÕr   c                 ó>   — g g| _         d| _        d| _        g | _        y)z*
        Reset the internal data.
        r   N)rK   Úmodules_countÚ
data_cacheÚ	data_listr?   s    r   rV   zQRCode.clear{   s#   € ð �tˆŒØˆÔØˆŒØˆ�r   c                 ó\  — t        |t        j                  «      r#| j                  j	                  |«       d| _        y|r8| j                  j                  t        j                  ||¬«      «       d| _        y| j                  j	                  t        j                  |«      «       d| _        y)a  
        Add data to this QR Code.

        :param optimize: Data will be split into multiple chunks to optimize
            the QR size by finding to more compressed modes of at least this
            length. Set to ``0`` to avoid optimizing at all.
        )ÚminimumN)r(   r   ÚQRDatard   ÚappendÚextendÚoptimal_data_chunksrc   )r@   r   Úoptimizes      r   r   zQRCode.add_data„   s~   € ô �dœDŸK™KÔ(Ø�N‰N×!Ñ! $Ô'ð
 ˆ�ñ	 Ø�N‰N×!Ñ!¤$×":Ñ":¸4ÈÔ"RÔSð ˆ�ð �N‰N×!Ñ!¤$§+¡+¨dÓ"3Ô4Øˆ�r   c                 óê   — |s| j                   €| j                  | j                   ¬«       | j                  €!| j                  d| j	                  «       «       y| j                  d| j                  «       y)zÉ
        Compile the data into a QR Code array.

        :param fit: If ``True`` (or if a size has not been provided), find the
            best fit for the data to avoid data overflow errors.
        N©ÚstartF)rQ   rY   r+   ÚmakeImplÚbest_mask_pattern)r@   Úfits     r   r   zQRCode.make”   sY   € ñ �4—<‘<Ð'Ø�M‰M §¡ˆMÔ-Ø×ÑÐ$Ø�M‰M˜% ×!7Ñ!7Ó!9Õ:à�M‰M˜% ×!2Ñ!2Õ3r   c                 ód  — | j                   dz  dz   | _        | j                   t        v r"t        t        | j                      «      | _        nÌt        | j                  «      D �cg c]  }d g| j                  z  ‘Œ c}| _        | j                  dd«       | j                  | j                  dz
  d«       | j                  d| j                  dz
  «       | j                  «        | j                  «        t        | j                  «      t        | j                   <   | j                  ||«       | j                   dk\  r| j                  |«       | j                  €:t        j                  | j                   | j                  | j                  «      | _        | j!                  | j                  |«       y c c}w )NrN   é   r   r&   )rQ   rb   r   r1   rK   ÚrangeÚsetup_position_probe_patternÚsetup_position_adjust_patternÚsetup_timing_patternÚsetup_type_infoÚsetup_type_numberrc   r   Úcreate_datarR   rd   Úmap_data)r@   Útestr+   Úis       r   ro   zQRCode.makeImpl¢   sX  € Ø!Ÿ\™\¨AÑ-°Ñ2ˆÔà�<‰<Ô0Ñ0Ü(Ô)>¸t¿|¹|Ñ)LÓMˆD�Lô 6;¸4×;MÑ;MÓ5NöØ01��˜×+Ñ+Ó+òˆDŒLð ×-Ñ-¨a°Ô3Ø×-Ñ-¨d×.@Ñ.@À1Ñ.DÀaÔHØ×-Ñ-¨a°×1CÑ1CÀaÑ1GÔHØ×.Ñ.Ô0Ø×%Ñ%Ô'ä2?ÀÇÁÓ2MÔ! $§,¡,Ñ/à×Ñ˜T <Ô0à�<‰<˜1ÒØ×"Ñ" 4Ô(à�?‰?Ð"Ü"×.Ñ.Ø—‘˜d×3Ñ3°T·^±^óˆDŒOð 	�‰�d—o‘o |Õ4ùò)s   Á#F-c                 ó–  — t        dd«      D ]º  }||z   dk  s| j                  ||z   k  rŒt        dd«      D ]Ž  }||z   dk  s| j                  ||z   k  rŒd|cxk  rdk  rn n|dv s.d|cxk  rdk  rn n|dv sd|cxk  rdk  r*n n'd|cxk  rdk  rn nd| j                  ||z      ||z   <   Œwd	| j                  ||z      ||z   <   Œ� Œ¼ y )
Néÿÿÿÿé   r   é   >   r   r�   é   rN   TF©rt   rb   rK   )r@   r0   ÚcolÚrÚcs        r   ru   z#QRCode.setup_position_probe_pattern¾   sÙ   € Ü�r˜1“ò 	;ˆAØ�Q‰w˜"Š} × 2Ñ 2°c¸A±gÒ =Øä˜2˜q“\ò ;�Ø˜‘7˜b’= D×$6Ñ$6¸#À¹'Ò$AØð ˜!”[˜q•[ Q¨&¡[Ø˜Qœ !�¨¨V©Ø˜Qœ !�¨¨Q¬°!­à59�D—L‘L  q¡Ñ)¨#°©'Ò2à5:�D—L‘L  q¡Ñ)¨#°©'Ò2ñ;ñ		;r   c                 óš  — |€d}t        j                  |«       t        j                  |«      }t        j                  «       }| j                  D ]W  }|j                  |j                  d«       |j                  t        |«      ||j                     «       |j                  |«       ŒY t        |«      }t        t         j                  | j                     ||«      | _        | j                  dk(  rt        j                  «       ‚|t        j                  | j                  «      ur| j                  | j                  ¬«       | j                  S )zD
        Find the minimum size required to fit in the data.
        é   rN   é)   rm   )r   r[   Úmode_sizes_for_versionÚ	BitBufferrd   ÚputÚmodeÚlenÚwriter   ÚBIT_LIMIT_TABLErR   rQ   r   ÚDataOverflowErrorrY   )r@   rn   Ú
mode_sizesÚbufferr   Úneeded_bitss         r   rY   zQRCode.best_fitÐ   s  € ð ˆ=ØˆEÜ×Ñ˜5Ô!ô ×0Ñ0°Ó7ˆ
Ü—‘Ó!ˆØ—N‘Nò 	ˆDØ�J‰J�t—y‘y !Ô$Ø�J‰J”s˜4“y *¨T¯Y©YÑ"7Ô8Ø�J‰J�vÕð	ô
 ˜&“kˆÜ"Ü× Ñ  ×!6Ñ!6Ñ7¸Àeó
ˆŒð �<‰<˜2ÒÜ×.Ñ.Ó0Ð0ð œT×8Ñ8¸¿¹ÓFÑFØ�M‰M §¡ˆMÔ-Ø�|‰|Ðr   c                 ó®   — d}d}t        d«      D ]B  }| j                  d|«       t        j                  | j                  «      }|dk(  s||kD  sŒ?|}|}ŒD |S )z7
        Find the most efficient mask pattern.
        r   r€   T)rt   ro   r   Ú
lost_pointrK   )r@   Úmin_lost_pointr`   r}   r–   s        r   rp   zQRCode.best_mask_patternî   s`   € ð ˆØˆä�q“ò 	ˆAØ�M‰M˜$ Ô"äŸ™¨¯©Ó6ˆJà�AŠv˜¨*Ó4Ø!+�Ø‘ð	ð ˆr   c                 ó<  — |€ddl }|j                  }|j                  «       st        d«      ‚| j                  €| j                  «        | j                  }|j                  dd|dz  dz   z  z   dz   «       t        |«      D ]i  }|j                  d	«       t        |«      D ]7  }| j                  |   |   r|j                  d
«       Œ'|j                  d	«       Œ9 |j                  d«       Œk |j                  dd|dz  dz   z  z   dz   «       |j                  «        y)zz
        Output the QR Code only using TTY colors.

        If the data has not been compiled yet, make it first.
        Nr   ú	Not a ttyz[1;47mú r‚   rN   z[0m
z[1;47m  [40mz  z[1;47m  [0m
)ÚsysÚstdoutÚisattyÚOSErrorrc   r   rb   r�   rt   rK   Úflush)r@   Úoutr›   Úmodcountr…   r†   s         r   Ú	print_ttyzQRCode.print_tty   s  € ð ˆ;Ûà—*‘*ˆCà�z‰zŒ|Ü˜+Ó&Ð&à�?‰?Ð"Ø�I‰IŒKà×%Ñ%ˆØ�	‰	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÔJÜ�x“ò 	/ˆAØ�I‰IÐ,Ô-Ü˜8“_ò 6�Ø—<‘< ‘? 1Ò%Ø—I‘I˜d•Oà—I‘IÐ4Õ5ð	6ð
 �I‰IÐ-Õ.ð	/ð 	�	‰	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÔJØ�	‰	�r   c                 ó8  ‡ ‡‡
— |€t         j                  }|r|j                  «       st        d«      ‚‰ j                  €‰ j                  «        ‰ j                  Š
dD �cg c]  }t        |f«      j                  d«      ‘Œ }}|rdŠ‰r|j                  «        dt        fˆˆ
ˆ fd„}t        ‰ j                   ‰
‰ j                  z   d«      D ]·  }|r9‰r|‰
‰ j                  z   d	z
  k  r|j                  d
«       |j                  d«       t        ‰ j                   ‰
‰ j                  z   «      D ]/  } |||«       ||d	z   |«      d	z  z   }	|j                  ||	   «       Œ1 |r|j                  d«       |j                  d«       Œ¹ |j                  «        yc c}w )zË
        Output the QR Code using ASCII characters.

        :param tty: use fixed TTY color codes (forces invert=True)
        :param invert: invert the ASCII characters (solid <-> transparent)
        Nr™   )éÿ   éß   éÜ   éÛ   Úcp437Tr=   c                 óØ   •— ‰r)‰j                   rt        | |«      ‰‰j                   z   k\  ryt        | |«      dk  st        | |«      ‰k\  ryt        t        ‰j
                  |    |   «      S )Nrˆ   r   )rT   ÚmaxÚminr   r   rK   )r/   ÚyÚinvertr¡   r@   s     €€€r   Ú
get_modulez&QRCode.print_ascii.<locals>.get_module5  s\   ø€ Ù˜$Ÿ+š+¬#¨a°«)°xÀ$Ç+Á+Ñ7MÒ*MØÜ�1�a‹y˜1Š}¤ A q£	¨XÒ 5ØÜœ˜TŸ\™\¨!™_¨QÑ/Ó0Ð0r   r‚   rˆ   z[48;5;232mz[38;5;255mz[0mú
)r›   rœ   r�   rž   rc   r   rb   ÚbytesÚdecodeÚreverser   rt   rT   r�   rŸ   )r@   r    Úttyr­   ÚcodeÚcodesr®   r…   r†   Úposr¡   s   `  `      @r   Úprint_asciizQRCode.print_ascii  sl  ú€ ð ˆ;Ü—*‘*ˆCá�s—z‘z”|Ü˜+Ó&Ð&à�?‰?Ð"Ø�I‰IŒKà×%Ñ%ˆØ<PÖQ°D”˜�w“×&Ñ& wÕ/ÐQˆÐQÙØˆFÙØ�M‰MŒOð	1¤÷ 	1ô ˜Ÿ™�| X°·±Ñ%;¸QÓ?ò 
	ˆAÙÙ  X°·±Ñ%;¸aÑ%?Ò!?Ø—I‘IÐ.Ô/Ø—	‘	Ð*Ô+Ü˜DŸK™K˜<¨°D·K±KÑ)?Ó@ò &�Ù   AÓ&©*°Q¸±U¸AÓ*>À!Ñ*CÑD�Ø—	‘	˜% ™*Õ%ð&ñ Ø—	‘	˜)Ô$Ø�I‰I�d�Oð
	ð 	�	‰	�ùò1 Rs   Á"Fc                  ó   — y r.   r   ©r@   rO   r   s      r   r   zQRCode.make_imageI  s   € ð r   c                  ó   — y r.   r   r¹   s      r   r   zQRCode.make_imageN  s   € ð  r   c                 óV  — |j                  d«      s3|j                  d«      s"|j                  d«      s|j                  d«      r(| j                  t        j                  k7  rt	        d«      ‚t        | j                  «       | j                  €| j                  «        |�t        |t        «      s"J ‚| j                  }|€ddlm}m} |r|nt        } || j                   | j"                  | j                  fd| j$                  i|¤Ž}|j&                  rzt)        | j"                  «      D ]b  }t)        | j"                  «      D ]H  }|j*                  r|j-                  ||| ¬	«       Œ$| j$                  |   |   sŒ7|j/                  ||«       ŒJ Œd |j0                  r|j3                  «        |S )
zu
        Make an image from the QR Code data.

        If the data has not been compiled yet, make it first.
        Úembedded_image_pathÚembedded_imageÚembeded_image_pathÚembeded_imagezOError correction level must be ERROR_CORRECT_H if an embedded image is providedr   )ÚImageÚPilImageÚqrcode_modules)r   )ÚgetrR   r   ÚERROR_CORRECT_Hr   r"   rS   rc   r   rU   r   rO   Úqrcode.image.pilrÀ   rÁ   r   rT   rb   rK   Úneeds_drawrectrt   Úneeds_contextÚdrawrect_contextÚdrawrectÚneeds_processingÚprocess)r@   rO   r   rÀ   rÁ   Úimr…   r†   s           r   r   zQRCode.make_imageS  s~  € ð �J‰JÐ,Ô-Ø�z‰zÐ*Ô+Ø�z‰zÐ.Ô/Ø�z‰z˜/Ô*Ø×#Ñ#¤y×'@Ñ'@Ò@ÜØaóð ô 	˜Ÿ™Ô&Ø�?‰?Ð"Ø�I‰IŒKàÐ$Ü˜m¬YÔ7Ð7Ð7à ×.Ñ.ˆMØÐ$ß<ñ -2¡´z�áØ�K‰KØ×ÑØ�M‰Mñ
ð  Ÿ<™<ð	
ð
 ñ
ˆð ×ÒÜ˜4×-Ñ-Ó.ò *�Ü˜t×1Ñ1Ó2ò *�AØ×'Ò'Ø×+Ñ+¨A¨q°TÐ+Õ:ØŸ™ a™¨Ó+ØŸ™ A qÕ)ñ	*ð*ð ×ÒØ�J‰JŒLàˆ	r   r0   r„   c                 óˆ   — |dk\  xr< |t        | j                  «      k  xr" |dk\  xr |t        | j                  |   «      k  S )Nr   )rŽ   rK   )r@   r0   r„   s      r   Úis_constrainedzQRCode.is_constrained†  sM   € à�1‰Hò -Ø”c˜$Ÿ,™,Ó'Ñ'ò-à�q‘ò-ð ”c˜$Ÿ,™, sÑ+Ó,Ñ,ð		
r   c                 ó(  — t        d| j                  dz
  «      D ]-  }| j                  |   d   �Œ|dz  dk(  | j                  |   d<   Œ/ t        d| j                  dz
  «      D ]-  }| j                  d   |   �Œ|dz  dk(  | j                  d   |<   Œ/ y )Nr€   r�   r‚   r   rƒ   )r@   r…   r†   s      r   rw   zQRCode.setup_timing_patternŽ  s¦   € Ü�q˜$×,Ñ,¨qÑ0Ó1ò 	,ˆAØ�|‰|˜A‰˜qÑ!Ð-ØØ!" Q¡¨!¡ˆD�L‰L˜‰O˜AÒð	,ô
 �q˜$×,Ñ,¨qÑ0Ó1ò 	,ˆAØ�|‰|˜A‰˜qÑ!Ð-ØØ!" Q¡¨!¡ˆD�L‰L˜‰O˜AÒñ	,r   c                 óÂ  — t        j                  | j                  «      }t        t	        |«      «      D ]©  }||   }t        t	        |«      «      D ]‹  }||   }| j
                  |   |   �Œt        dd«      D ]b  }t        dd«      D ]Q  }|dk(  s|dk(  s|dk(  s|dk(  s
|dk(  r|dk(  rd| j
                  ||z      ||z   <   Œ:d| j
                  ||z      ||z   <   ŒS Œd Œ� Œ« y )Néþÿÿÿé   r‚   r   TF)r   Úpattern_positionrQ   rt   rŽ   rK   )r@   r¶   r}   r0   Újr„   r…   r†   s           r   rv   z$QRCode.setup_position_adjust_pattern™  sþ   € Ü×#Ñ# D§L¡LÓ1ˆä”s˜3“x“ò 	CˆAØ�a‘&ˆCäœ3˜s›8“_ò C�Ø˜!‘f�à—<‘< Ñ$ SÑ)Ð5Øä˜r 1›ò C�AÜ" 2 q›\ò 
C˜à šGØ  AšvØ  BšwØ  AšvØ ! Q¢¨1°ª6à=A˜DŸL™L¨¨q©Ñ1°#¸±'Ò:à=B˜DŸL™L¨¨q©Ñ1°#¸±'Ò:ñ
CñCñCñ	Cr   c                 ón  — t        j                  | j                  «      }t        d«      D ]=  }| xr ||z	  dz  dk(  }|| j                  |dz     |dz  | j
                  z   dz
  dz
  <   Œ? t        d«      D ]=  }| xr ||z	  dz  dk(  }|| j                  |dz  | j
                  z   dz
  dz
     |dz  <   Œ? y )Né   rˆ   rÒ   r€   )r   ÚBCH_type_numberrQ   rt   rK   rb   )r@   r|   Úbitsr}   Úmods        r   ry   zQRCode.setup_type_number²  sÔ   € Ü×#Ñ# D§L¡LÓ1ˆä�r“ò 	KˆAØ�(Ò5 ¨¡¨a¡°AÑ5ˆCØGJˆD�L‰L˜˜a™Ñ   Q¡¨×);Ñ);Ñ!;¸aÑ!?À!Ñ!CÒDð	Kô �r“ò 	KˆAØ�(Ò5 ¨¡¨a¡°AÑ5ˆCØGJˆD�L‰L˜˜Q™ ×!3Ñ!3Ñ3°aÑ7¸!Ñ;Ñ<¸QÀ!¹VÒDñ	Kr   c                 ó~  — | j                   dz  |z  }t        j                  |«      }t        d«      D ]g  }| xr ||z	  dz  dk(  }|dk  r|| j                  |   d<   Œ+|dk  r|| j                  |dz      d<   ŒF|| j                  | j
                  dz
  |z      d<   Œi t        d«      D ]s  }| xr ||z	  dz  dk(  }|dk  r#|| j                  d   | j
                  |z
  dz
  <   Œ;|dk  r|| j                  d   d|z
  dz
  dz   <   Œ\|| j                  d   d|z
  dz
  <   Œu | | j                  | j
                  dz
     d<   y )NrÒ   é   rˆ   r�   r€   é	   )rR   r   ÚBCH_type_infort   rK   rb   )r@   r|   r+   r   rØ   r}   rÙ   s          r   rx   zQRCode.setup_type_info½  si  € Ø×%Ñ%¨Ñ*¨lÑ:ˆÜ×!Ñ! $Ó'ˆô �r“ò 	CˆAØ�(Ò5 ¨¡¨a¡°AÑ5ˆCà�1ŠuØ%(�—‘˜Q‘ Ò"Ø�Q’Ø),�—‘˜Q ™UÑ# AÒ&à?B�—‘˜T×/Ñ/°"Ñ4°qÑ8Ñ9¸!Ò<ð	Cô �r“ò 	2ˆAØ�(Ò5 ¨¡¨a¡°AÑ5ˆCà�1ŠuØ>A�—‘˜Q‘ × 2Ñ 2°QÑ 6¸Ñ :Ò;Ø�Q’Ø25�—‘˜Q‘  Q¡¨¡
¨Q¡Ò/à.1�—‘˜Q‘  Q¡¨¡
Ò+ð	2ð 7;°(ˆ�‰�T×'Ñ'¨!Ñ+Ñ,¨QÒ/r   c                 óÒ  — d}| j                   dz
  }d}d}t        j                  |«      }t        |«      }t	        | j                   dz
  dd«      D ]•  }	|	dk  r|	dz  }	|	|	dz
  f}
	 |
D ]Z  }| j
                  |   |   �Œd}||k  r||   |z	  dz  dk(  } |||«      r| }|| j
                  |   |<   |dz  }|dk(  sŒT|dz  }d}Œ\ ||z  }|dk  s| j                   |k  r	||z  }| }Œ–Œ‚ y )Nr   rˆ   r&   r   rÑ   r�   F)rb   r   Ú	mask_funcrŽ   rt   rK   )r@   r   r+   Úincr0   ÚbitIndexÚ	byteIndexrß   Údata_lenr„   Ú	col_ranger†   Údarks                r   r{   zQRCode.map_dataÚ  s<  € ØˆØ× Ñ  1Ñ$ˆØˆØˆ	ä—N‘N <Ó0ˆ	ä�t“9ˆä˜×+Ñ+¨aÑ/°°BÓ7ò 	ˆCØ�aŠxØ�q‘�à˜c A™g˜ˆIàØ"ò )�AØ—|‘| CÑ(¨Ñ+Ñ3Ø$˜à$ xÒ/Ø%)¨)¡_¸Ñ%@ÀAÑ$EÈ!Ñ#K˜Dá$ S¨!Ô,Ø'+ 8˜Dà/3˜Ÿ™ SÑ)¨!Ñ,Ø  A™˜à# r›>Ø%¨™N˜IØ'(™Hð)ð" �s‘
�à˜’7˜d×0Ñ0°CÒ7Ø˜3‘J�CØ˜$�CØð/ ñ	r   c                 ó¨  — | j                   €| j                  «        | j                  s| j                  S t	        | j                  «      | j                  dz  z   }dg|z  g| j                  z  }dg| j                  z  }| j                  D ].  }|j                  |t        t        t           |«      z   |z   «       Œ0 |dg|z  g| j                  z  z  }|S )z¦
        Return the QR Code as a multidimensional array, including the border.

        To return the array without a border, set ``self.border`` to 0 first.
        r‚   F)	rc   r   rT   rK   rŽ   rh   r   ÚlistrE   )r@   Úwidthr´   Úx_borderÚmodules        r   Ú
get_matrixzQRCode.get_matrix  sÁ   € ð �?‰?Ð"Ø�I‰IŒKà�{Š{Ø—<‘<Ðä�D—L‘LÓ! D§K¡K°!¡OÑ3ˆØ�˜%‘Ð  4§;¡;Ñ.ˆØ�7˜TŸ[™[Ñ(ˆØ—l‘lò 	HˆFØ�K‰K˜¤4¬¬T©
°FÓ#;Ñ;¸hÑFÕGð	Hà�%�˜5‘Ð! D§K¡KÑ/Ñ/ˆàˆr   c                 óî   — g }t        |dz
  |dz   «      D ]W  }t        |dz
  |dz   «      D ]@  }|j                  | j                  ||«      xr t        | j                  |   |   «      «       ŒB ŒY t        |Ž S )Nrˆ   r‚   )rt   rh   rÎ   rE   rK   r3   )r@   r0   r„   Úcontextr…   r†   s         r   Úactive_with_neighborszQRCode.active_with_neighbors  s…   € Ø ˆÜ�s˜Q‘w  a¡Ó(ò 	WˆAÜ˜3 ™7 C¨!¡GÓ,ò W�Ø—‘˜t×2Ñ2°1°aÓ8ÒU¼TÀ$Ç,Á,ÈqÁ/ÐRSÑBTÓ=UÕVñWð	Wô # GÐ,Ð,r   )r=   N)é   )Tr.   )NFF)(rB   rC   rD   ÚModulesTyperF   rL   r   r   r   ÚERROR_CORRECT_Mr*   rG   rW   ÚpropertyrQ   Úsetterr+   rV   r   r   ro   ru   rY   rp   r¢   r·   r	   r
   r   rI   rE   rÎ   rw   rv   ry   rx   r{   rë   r3   rî   r   r   r   r   r   J   sŒ  … ØÓØ"€Hˆh�s‰mÓ"ð Ø"×2Ñ2ØØØ6:Øñð    \Ñ 2Ñ3óð. ð(˜ò (ó ð(ð
 ‡^�^òó ðð ñ"ó ð"ð ×Ññ%ó ð%òóó 4ò5ò8;ó$ò<ó$ó<)ðV à-1ñØ$ T™]ðà	òó ðð à7;ñ Ø!Ð"3Ñ4ð à	ò ó ð ó0ðf
 #ð 
¨Cð 
°Dó 
ò	,òCò2	Kò;ò:'òRð*-¨ð -°3ð -Ð;Nô -r   r   r.   )#r›   Úbisectr   Útypingr   r   r   r   r   r	   r
   Úqrcoder   r   r   Úqrcode.image.baser   Úqrcode.image.purer   rç   rE   rð   r   Údictr   rF   r   r"   r$   r,   r1   r3   rG   rI   r   r   r   r   ú<module>rú      s¦   ðÜ 
Ý ÷÷ ñ ÷ /Ñ .Ý 'Ý (à�4˜ ™Ñ'Ñ(€à02Ð �t˜C Ð,Ñ-Ó 2óòSò

òUò!ô˜*ô ñ �~¨YÔ7€ÙÐ/°yÔAÐ ôS-ˆW�\Ñ"õ S-r   