ó
    ùŠÂjåA  ã                   ó  • % S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
  S SKJrJrJr  S SKJr  S SKJr  \\\\         r0 r\\\4   \S'   SS jrS	 rS
 rS rS r " S S\5      r\" S\S9r \" S\S9r! " S S\\    5      r"g)é    N)Úbisect_left)ÚGenericÚ
NamedTupleÚOptionalÚTypeVarÚcastÚoverloadÚLiteral)Ú	constantsÚ
exceptionsÚutil)Ú	BaseImage)Ú
PyPNGImageÚprecomputed_qr_blanksc                 óZ   • [        S0 UD6nUR                  U 5        UR                  5       $ )N© )ÚQRCodeÚadd_dataÚ
make_image)ÚdataÚkwargsÚqrs      ÚA/var/www/website/venv/lib/python3.13/site-packages/qrcode/main.pyÚmaker      s'   € Ü	Ñ	�&Ñ	€BØ‡K�K�ÔØ�=‰=‹?Ðó    c                 ó@   • [        U 5      S::  a  [        SU  S35      eg )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                 ó>   • [        U 5      S:  a  [        SU -  5      eg )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                 óœ   • U c  g [        U [        5      (       d  [        S[        U 5       S35      eU S:  d  U S:”  a  [	        SU  S35      eg )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,   (   sc   € ØÑØÜ�l¤C×(Ñ(ÜØ(¬¨lÓ);Ð(<¸OÐLó
ð 	
ð �aÓ˜<¨!Ó+ÜÐCÀLÀ>ÐQRÐSÓTÐTð ,r   c                 ó6   • U  Vs/ s H  oS S  PM	     sn$ s  snf ©Nr   )ÚxÚrows     r   Úcopy_2d_arrayr1   3   s   € ÙÓ ša�s‘‹F™aÑ Ð ùÒ s   …c                   ó~   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S	'   \\S
'   S\4S jrSrg)ÚActiveWithNeighborsé7   ÚNWÚNÚNEÚWÚmeÚEÚSWÚSÚSEÚreturnc                 ó   • U R                   $ r.   )r9   ©Úselfs    r   Ú__bool__ÚActiveWithNeighbors.__bool__B   s   € Ø�w‰wˆr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚboolÚ__annotations__rB   Ú__static_attributes__r   r   r   r3   r3   7   s;   ‡ ØƒHØƒGØƒHØƒGØƒHØƒGØƒHØƒGØƒHð˜$÷ r   r3   ÚGenericImage)ÚboundÚGenericImageLocalc                   óÚ  • \ rS rSr% \\S'   Sr\\   \S'   S\	R                  SSSS4S\\\      4S jjr\S	\4S
 j5       r\R                   S%S j5       r\S 5       r\R                   S 5       rS rS&S jrS'S jrS rS rS(S jrS rS(S jrS)S jr\ S(S\S   S	\4S jj5       r\ S(S\\   S	\4S jj5       rS(S jrS\S\S	\4S jr S r!S r"S r#S  r$S! r%S" r&S\S\S	\'4S# jr(S$r)g)*r   éJ   ÚmodulesNÚ_versioné
   é   Úimage_factoryc                 ó  • [        U5        [        U5        Xl        [        U5      U l        [        U5      U l        [        U5      U l        X`l        XPl        Ub  [        U[        5      (       d   eU R                  5         g r.   )r"   r$   Úversionr   Úerror_correctionÚbox_sizeÚborderr+   rT   Ú
issubclassr   Úclear)rA   rV   rW   rX   rY   rT   r+   s          r   Ú__init__ÚQRCode.__init__N   sm   € ô 	˜Ô!Ü�fÔØŒÜ #Ð$4Ó 5ˆÔÜ˜H›ˆŒô ˜&“kˆŒØ(ÔØ*ÔØÑ$Ü˜m¬Y×7Ñ7Ð7Ð7Ø�
‰
�r   r>   c                 óp   • U R                   c  U R                  5         [        [        U R                   5      $ r.   )rQ   Úbest_fitr   r   r@   s    r   rV   ÚQRCode.versione   s&   € à�=‰=Ñ Ø�M‰MŒOÜ”C˜Ÿ™Ó'Ð'r   c                 óX   • Ub!  [        U5      n[        R                  " U5        Xl        g r.   )r   r   Úcheck_versionrQ   )rA   Úvalues     r   rV   r`   k   s$   € àÑÜ˜“JˆEÜ×Ò˜uÔ%Ø�r   c                 ó   • U R                   $ r.   )Ú_mask_patternr@   s    r   r+   ÚQRCode.mask_patternr   s   € à×!Ñ!Ð!r   c                 ó&   • [        U5        Xl        g r.   )r,   re   )rA   Úpatterns     r   r+   rf   v   s   € ä˜GÔ$Ø$Õr   c                 ó>   • / /U l         SU l        SU l        / U l        g)z
Reset the internal data.
r   N)rP   Úmodules_countÚ
data_cacheÚ	data_listr@   s    r   r[   ÚQRCode.clear{   s#   € ð �tˆŒØˆÔØˆŒØˆ�r   c                 óP  • [        U[        R                  5      (       a  U R                  R	                  U5        OdU(       a.  U R                  R                  [        R                  " XS95        O/U R                  R	                  [        R                  " U5      5        SU l        g)zÛ
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   ÚQRDatarl   ÚappendÚextendÚoptimal_data_chunksrk   )rA   r   Úoptimizes      r   r   ÚQRCode.add_data„   si   € ô �dœDŸK™K×(Ñ(Ø�N‰N×!Ñ! $Õ'ÞØ�N‰N×!Ñ!¤$×":Ò":¸4Ñ"RÕSà�N‰N×!Ñ!¤$§+¢+¨dÓ"3Ô4Øˆ�r   c                 óò   • U(       d  U R                   c  U R                  U R                   S9  U R                  c!  U R                  SU R	                  5       5        gU R                  SU R                  5        g)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)rV   r_   r+   ÚmakeImplÚbest_mask_pattern)rA   Úfits     r   r   ÚQRCode.make”   sY   € ö �4—<‘<Ñ'Ø�M‰M §¡ˆMÑ-Ø×ÑÑ$Ø�M‰M˜% ×!7Ñ!7Ó!9Õ:à�M‰M˜% ×!2Ñ!2Õ3r   c                 ór  • U R                   S-  S-   U l        U R                   [        ;   a"  [        [        U R                      5      U l        OÏ[        U R                  5       Vs/ s H  nS /U R                  -  PM     snU l        U R                  SS5        U R                  U R                  S-
  S5        U R                  SU R                  S-
  5        U R                  5         U R                  5         [        U R                  5      [        U R                   '   U R                  X5        U R                   S:¼  a  U R                  U5        U R                  c;  [        R                  " U R                   U R                  U R                  5      U l        U R!                  U R                  U5        g s  snf )NrS   é   r   r&   )rV   rj   r   r1   rP   ÚrangeÚsetup_position_probe_patternÚsetup_position_adjust_patternÚsetup_timing_patternÚsetup_type_infoÚsetup_type_numberrk   r   Úcreate_datarW   rl   Úmap_data)rA   Útestr+   Úis       r   ry   ÚQRCode.makeImpl¢   s[  € Ø!Ÿ\™\¨AÑ-°Ñ2ˆÔà�<‰<Ô0Ó0Ü(Ô)>¸t¿|¹|Ñ)LÓMˆD�Lô 6;¸4×;MÑ;MÔ5NóÚ5N°��˜×+Ñ+Ô+Ñ5Nñˆ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   Á%F4c                 ó´  • [        SS5       HÈ  nX-   S::  d  U R                  X-   ::  a  M  [        SS5       H™  nX$-   S::  d  U R                  X$-   ::  a  M  SUs=::  a  S::  a	  O  OUS;   d6  SUs=::  a  S::  a	  O  OUS;   d   SUs=::  a  S::  a+  O  O(SUs=::  a  S::  a  O  OSU R                  X-      X$-   '   Mƒ  S	U R                  X-      X$-   '   M›     MÊ     g )
Néÿÿÿÿé   r   é   >   r   r�   é   rS   TF©r   rj   rP   )rA   r0   ÚcolÚrÚcs        r   r€   Ú#QRCode.setup_position_probe_pattern¾   s¿   € Ü�r˜1–ˆAØ‰w˜"‹} × 2Ñ 2°c±gÓ =Ùä˜2˜q–\�Ø‘7˜b“= D×$6Ñ$6¸#¹'Ó$AÙð ˜!•[˜q–[ Q¨&£[Ø˜Q� !ž¨¨V«Ø˜Q� !ž¨¨Q­°!®à59�D—L‘L ¡Ñ)¨#©'Ó2à5:�D—L‘L ¡Ñ)¨#©'Ó2ó "ò	 r   c                 ó¤  • Uc  Sn[         R                  " U5        [         R                  " U5      n[         R                  " 5       nU R                   HW  nUR                  UR                  S5        UR                  [        U5      X$R                     5        UR                  U5        MY     [        U5      n[        [         R                  U R                     XQ5      U l        U R                  S:X  a  [        R                  " 5       eU[         R                  " U R                  5      La  U R                  U R                  S9  U R                  $ )z4
Find the minimum size required to fit in the data.
é   rS   é)   rw   )r   rb   Úmode_sizes_for_versionÚ	BitBufferrl   ÚputÚmodeÚlenÚwriter   ÚBIT_LIMIT_TABLErW   rV   r   ÚDataOverflowErrorr_   )rA   rx   Ú
mode_sizesÚbufferr   Úneeded_bitss         r   r_   ÚQRCode.best_fitÐ   sþ   € ð ‰=ØˆEÜ×Ò˜5Ô!ô ×0Ò0°Ó7ˆ
Ü—’Ó!ˆØ—N”NˆDØ�J‰J�t—y‘y !Ô$Ø�J‰J”s˜4“y *¯Y©YÑ"7Ô8Ø�J‰J�vÖñ #ô
 ˜&“kˆÜ"Ü× Ñ  ×!6Ñ!6Ñ7¸ó
ˆŒð �<‰<˜2ÓÜ×.Ò.Ó0Ð0ð œT×8Ò8¸¿¹ÓFÒFØ�M‰M §¡ˆMÑ-Ø�|‰|Ðr   c                 ó¸   • SnSn[        S5       HF  nU R                  SU5        [        R                  " U R                  5      nUS:X  d  X:”  d  MB  UnUnMH     U$ )z'
Find the most efficient mask pattern.
r   rŒ   T)r   ry   r   Ú
lost_pointrP   )rA   Úmin_lost_pointrh   rˆ   r¤   s        r   rz   ÚQRCode.best_mask_patternî   sY   € ð ˆØˆä�q–ˆAØ�M‰M˜$ Ô"äŸš¨¯©Ó6ˆJà�A‹v˜Õ4Ø!+�Ø’ñ ð ˆr   c                 ó^  • Uc  SSK nUR                  nUR                  5       (       d  [        S5      eU R                  c  U R                  5         U R                  nUR                  SSUS-  S-   -  -   S-   5        [        U5       Hr  nUR                  S	5        [        U5       H>  nU R                  U   U   (       a  UR                  S
5        M-  UR                  S	5        M@     UR                  S5        Mt     UR                  SSUS-  S-   -  -   S-   5        UR                  5         g)zb
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Ž   rS   z[0m
z[1;47m  [40mz  z[1;47m  [0m
)ÚsysÚstdoutÚisattyÚOSErrorrk   r   rj   rœ   r   rP   Úflush)rA   Úoutrª   Úmodcountr‘   r’   s         r   Ú	print_ttyÚQRCode.print_tty   sü   € ð ‰;Ûà—*‘*ˆCà�z‰z�|‰|Ü˜+Ó&Ð&à�?‰?Ñ"Ø�I‰IŒKà×%Ñ%ˆØ�	‰	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÔJÜ�x–ˆAØ�I‰IÐ,Ô-Ü˜8–_�Ø—<‘< ‘? 1×%Ø—I‘I˜d–Oà—I‘IÐ4Ö5ñ	 %ð
 �I‰IÐ-Ö.ñ !ð 	�	‰	�, #¨°A©¸Ñ)9Ñ":Ñ;¸kÑIÔJØ�	‰	�r   c                 ó’  ^ ^^
• Uc  [         R                  nU(       a   UR                  5       (       d  [        S5      eT R                  c  T R                  5         T R                  m
S Vs/ s H  n[        U45      R                  S5      PM      nnU(       a  SmT(       a  UR                  5         S[        4UU
U 4S jjn[        T R                  * T
T R                  -   S5       HÈ  nU(       a?  T(       a  UT
T R                  -   S	-
  :  a  UR                  S
5        UR                  S5        [        T R                  * T
T R                  -   5       H.  nU" Xx5      U" US	-   U5      S	-  -   n	UR                  XY   5        M0     U(       a  UR                  S5        UR                  S5        MÊ     UR                  5         gs  snf )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                 óì   >• T(       a.  TR                   (       a  [        X5      TTR                   -   :¼  a  g[        X5      S:  d  [        X5      T:¼  a  g[        [        TR
                  U    U   5      $ )Nr•   r   )rY   ÚmaxÚminr   r   rP   )r/   ÚyÚinvertr°   rA   s     €€€r   Ú
get_moduleÚ&QRCode.print_ascii.<locals>.get_module5  sV   ø€ Þ˜$Ÿ+Ÿ+¬#¨a«)°xÀ$Ç+Á+Ñ7MÓ*MØÜ�1‹y˜1‹}¤ A£	¨XÓ 5ØÜœ˜TŸ\™\¨!™_¨QÑ/Ó0Ð0r   rŽ   r•   z[48;5;232mz[38;5;255mz[0mÚ
)rª   r«   r¬   r­   rk   r   rj   ÚbytesÚdecodeÚreverser   r   rY   rœ   r®   )rA   r¯   Úttyr½   ÚcodeÚcodesr¾   r‘   r’   Úposr°   s   `  `      @r   Úprint_asciiÚQRCode.print_ascii  sj  ú€ ð ‰;Ü—*‘*ˆCæ�s—z‘z—|‘|Ü˜+Ó&Ð&à�?‰?Ñ"Ø�I‰IŒKà×%Ñ%ˆÙ<PÓQÒ<P°D”˜�w“×&Ñ& wÖ/Ñ<PˆÐQÞØˆFÞØ�M‰MŒOð	1¤÷ 	1ñ 	1ô ˜Ÿ™�| X°·±Ñ%;¸QÖ?ˆAÞÞ  X°·±Ñ%;¸aÑ%?Ó!?Ø—I‘IÐ.Ô/Ø—	‘	Ð*Ô+Ü˜DŸK™K˜<¨°D·K±KÑ)?Ö@�Ù  Ó&©*°Q¸±U¸AÓ*>À!Ñ*CÑD�Ø—	‘	˜%™*Ö%ñ Aö Ø—	‘	˜)Ô$Ø�I‰I�dŽOñ @ð 	�	‰	�ùò1 Rs   Á+%Gc                 ó   • g r.   r   ©rA   rT   r   s      r   r   ÚQRCode.make_imageI  s   € ð r   c                 ó   • g r.   r   rË   s      r   r   rÌ   N  s   € ð  r   c                 óÆ  • UR                  S5      (       dB  UR                  S5      (       d,  UR                  S5      (       d  UR                  S5      (       a)  U R                  [        R                  :w  a  [	        S5      e[        U R                  5        U R                  c  U R                  5         Ub  [        U[        5      (       d   eO&U R                  nUc  SSKJnJn  U(       a  UO[        nU" U R                   U R"                  U R                  4SU R$                  0UD6nUR&                  (       a…  [)        U R"                  5       Hl  n[)        U R"                  5       HP  nUR*                  (       a  UR-                  XgU S	9  M&  U R$                  U   U   (       d  M?  UR/                  Xg5        MR     Mn     UR0                  (       a  UR3                  5         U$ )
z]
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   )ÚgetrW   r   ÚERROR_CORRECT_Hr   r"   rX   rk   r   rZ   r   rT   Úqrcode.image.pilrÓ   rÔ   r   rY   rj   rP   Úneeds_drawrectr   Úneeds_contextÚdrawrect_contextÚdrawrectÚneeds_processingÚprocess)rA   rT   r   rÓ   rÔ   Úimr‘   r’   s           r   r   rÌ   S  s‚  € ð �J‰JÐ,×-Ñ-Ø�z‰zÐ*×+Ñ+Ø�z‰zÐ.×/Ñ/Ø�z‰z˜/×*Ñ*Ø×#Ñ#¤y×'@Ñ'@Ó@ÜØaóð ô 	˜Ÿ™Ô&Ø�?‰?Ñ"Ø�I‰IŒKàÑ$Ü˜m¬Y×7Ñ7Ð7Ñ7à ×.Ñ.ˆMØÑ$ß<ö -2¡´z�áØ�K‰KØ×ÑØ�M‰Mñ
ð  Ÿ<™<ð	
ð
 ñ
ˆð ××Ü˜4×-Ñ-Ö.�Ü˜t×1Ñ1Ö2�AØ×'×'Ø×+Ñ+¨A°TÐ+Ó:ØŸ™ a™¨×+Ñ+ØŸ™ AÖ)ó	 3ñ /ð ××Ø�J‰JŒLàˆ	r   r0   r�   c                 ó¦   • US:¬  =(       aF    U[        U R                  5      :  =(       a'    US:¬  =(       a    U[        U R                  U   5      :  $ )Nr   )r›   rP   )rA   r0   r�   s      r   Úis_constrainedÚQRCode.is_constrained†  sM   € à�1‰H÷ -Ø”c˜$Ÿ,™,Ó'Ñ'÷-à�q‘÷-ð ”c˜$Ÿ,™, sÑ+Ó,Ñ,ð		
r   c                 ó8  • [        SU R                  S-
  5       H0  nU R                  U   S   b  M  US-  S:H  U R                  U   S'   M2     [        SU R                  S-
  5       H0  nU R                  S   U   b  M  US-  S:H  U R                  S   U'   M2     g )NrŒ   r�   rŽ   r   r�   )rA   r‘   r’   s      r   r‚   ÚQRCode.setup_timing_patternŽ  sœ   € Ü�q˜$×,Ñ,¨qÑ0Ö1ˆAØ�|‰|˜A‰˜qÑ!Ñ-ÙØ!" Q¡¨!¡ˆD�L‰L˜‰O˜AÓñ 2ô
 �q˜$×,Ñ,¨qÑ0Ö1ˆAØ�|‰|˜A‰˜qÑ!Ñ-ÙØ!" Q¡¨!¡ˆD�L‰L˜‰O˜AÓò 2r   c                 óÚ  • [         R                  " U R                  5      n[        [	        U5      5       H³  nX   n[        [	        U5      5       H”  nX   nU R
                  U   U   b  M  [        SS5       Hh  n[        SS5       HU  nUS:X  d  US:X  d  US:X  d  US:X  d  US:X  a  US:X  a  SU R
                  X6-      XW-   '   M?  SU R
                  X6-      XW-   '   MW     Mj     M–     Mµ     g )Néþÿÿÿé   rŽ   r   TF)r   Úpattern_positionrV   r   r›   rP   )rA   rÇ   rˆ   r0   Újr�   r‘   r’   s           r   r�   Ú$QRCode.setup_position_adjust_pattern™  sÖ   € Ü×#Ò# D§L¡LÓ1ˆä”s˜3“x–ˆAØ‘&ˆCäœ3˜s›8–_�Ø‘f�à—<‘< Ñ$ SÑ)Ñ5Ùä˜r 1ž�AÜ" 2 qž\˜à ›GØ  A›vØ  B›wØ  A›vØ ! Q£¨1°«6à=A˜DŸL™L¨©Ñ1°#±'Ó:à=B˜DŸL™L¨©Ñ1°#±'Ó:ó *ó &ó %ò !r   c                 ó”  • [         R                  " U R                  5      n[        S5       HE  nU(       + =(       a
    X#-	  S-  S:H  nX@R                  US-     US-  U R
                  -   S-
  S-
  '   MG     [        S5       HE  nU(       + =(       a
    X#-	  S-  S:H  nX@R                  US-  U R
                  -   S-
  S-
     US-  '   MG     g )Né   r•   rç   rŒ   )r   ÚBCH_type_numberrV   r   rP   rj   )rA   r‡   Úbitsrˆ   Úmods        r   r„   ÚQRCode.setup_type_number²  s¾   € Ü×#Ò# D§L¡LÓ1ˆä�r–ˆAØ”(×5 ¡¨a¡°AÑ5ˆCØGJ�L‰L˜˜a™Ñ   Q¡¨×);Ñ);Ñ!;¸aÑ!?À!Ñ!CÓDñ ô �r–ˆAØ”(×5 ¡¨a¡°AÑ5ˆCØGJ�L‰L˜˜Q™ ×!3Ñ!3Ñ3°aÑ7¸!Ñ;Ñ<¸QÀ!¹VÓDò r   c                 ó´  • U R                   S-  U-  n[        R                  " U5      n[        S5       Hq  nU(       + =(       a
    XE-	  S-  S:H  nUS:  a  X`R                  U   S'   M4  US:  a  X`R                  US-      S'   MP  X`R                  U R
                  S-
  U-      S'   Ms     [        S5       H}  nU(       + =(       a
    XE-	  S-  S:H  nUS:  a#  X`R                  S   U R
                  U-
  S-
  '   MD  US:  a  X`R                  S   SU-
  S-
  S-   '   Mf  X`R                  S   SU-
  S-
  '   M     U(       + U R                  U R
                  S-
     S'   g )Nrç   é   r•   r�   rŒ   é	   )rW   r   ÚBCH_type_infor   rP   rj   )rA   r‡   r+   r   rî   rˆ   rï   s          r   rƒ   ÚQRCode.setup_type_info½  sM  € Ø×%Ñ%¨Ñ*¨lÑ:ˆÜ×!Ò! $Ó'ˆô �r–ˆAØ”(×5 ¡¨a¡°AÑ5ˆCà�1‹uØ%(—‘˜Q‘ Ó"Ø�Q“Ø),—‘˜Q ™UÑ# AÓ&à?B—‘˜T×/Ñ/°"Ñ4°qÑ8Ñ9¸!Ó<ñ ô �r–ˆAØ”(×5 ¡¨a¡°AÑ5ˆCà�1‹uØ>A—‘˜Q‘ × 2Ñ 2°QÑ 6¸Ñ :Ó;Ø�Q“Ø25—‘˜Q‘  Q¡¨¡
¨Q¡Ó/à.1—‘˜Q‘  Q¡¨¡
Ó+ñ ð 7;´(ˆ�‰�T×'Ñ'¨!Ñ+Ñ,¨QÒ/r   c                 óò  • SnU R                   S-
  nSnSn[        R                  " U5      n[        U5      n[	        U R                   S-
  SS5       H£  n	U	S::  a  U	S-  n	X™S-
  4n
 U
 He  nU R
                  U   U   b  M  SnXh:  a  X   U-	  S-  S:H  nU" XK5      (       a  U(       + nXÀR
                  U   U'   US-  nUS:X  d  M^  US-  nSnMg     XC-  nUS:  d  U R                   U::  a	  XC-  nU* nM£  M�     g )Nr‹   r•   r&   r   ræ   r�   F)rj   r   Ú	mask_funcr›   r   rP   )rA   r   r+   Úincr0   ÚbitIndexÚ	byteIndexr÷   Údata_lenr�   Ú	col_ranger’   Údarks                r   r†   ÚQRCode.map_dataÚ  s'  € ØˆØ× Ñ  1Ñ$ˆØˆØˆ	ä—N’N <Ó0ˆ	ä�t“9ˆä˜×+Ñ+¨aÑ/°°BÖ7ˆCØ�a‹xØ�q‘�à A™g˜ˆIàÛ"�AØ—|‘| CÑ(¨Ñ+Ó3Ø$˜à$Ó/Ø%)¡_¸Ñ%@ÀAÑ$EÈ!Ñ#K˜Dá$ S×,Ñ,Ø'+¤8˜Dà/3Ÿ™ SÑ)¨!Ñ,Ø  A™˜à# r�>Ø%¨™N˜IØ'(šHñ #ð" ‘
�à˜“7˜d×0Ñ0°CÓ7Ø‘J�CØ˜$�CÙñ/ ò 8r   c                 ó¸  • U R                   c  U R                  5         U R                  (       d  U R                  $ [	        U R                  5      U R                  S-  -   nS/U-  /U R                  -  nS/U R                  -  nU R                   H/  nUR                  U[        [        [           U5      -   U-   5        M1     US/U-  /U R                  -  -  nU$ )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)	rk   r   rY   rP   r›   rq   r   ÚlistrH   )rA   ÚwidthrÅ   Úx_borderÚmodules        r   Ú
get_matrixÚQRCode.get_matrix  sº   € ð �?‰?Ñ"Ø�I‰IŒKà�{�{Ø—<‘<Ðä�D—L‘LÓ! D§K¡K°!¡OÑ3ˆØ�˜%‘Ð  4§;¡;Ñ.ˆØ�7˜TŸ[™[Ñ(ˆØ—l”lˆFØ�K‰K˜¤4¬¬T©
°FÓ#;Ñ;¸hÑFÖGñ #à�%�˜5‘Ð! D§K¡KÑ/Ñ/ˆàˆr   c                 óþ   • / n[        US-
  US-   5       H^  n[        US-
  US-   5       HE  nUR                  U R                  XE5      =(       a    [        U R                  U   U   5      5        MG     M`     [        U6 $ )Nr•   rŽ   )r   rq   rá   rH   rP   r3   )rA   r0   r�   Úcontextr‘   r’   s         r   Úactive_with_neighborsÚQRCode.active_with_neighbors  su   € Ø ˆÜ�s˜Q‘w  a¡Ö(ˆAÜ˜3 ™7 C¨!¡GÖ,�Ø—‘˜t×2Ñ2°1Ó8×U¼TÀ$Ç,Á,ÈqÁ/ÐRSÑBTÓ=UÖVó -ñ )ô # GÐ,Ð,r   )re   rQ   rY   rX   rk   rl   rW   rT   r+   rP   rj   rV   )r>   N)é   )Tr.   )NFF)*rD   rE   rF   rG   ÚModulesTyperI   rQ   r   r   r   ÚERROR_CORRECT_Mr*   rK   r\   ÚpropertyrV   Úsetterr+   r[   r   r   ry   r€   r_   rz   r±   rÈ   r	   r
   r   rM   rH   rá   r‚   r�   r„   rƒ   r†   r  r3   r  rJ   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   rH   r  r   Údictr   rI   r   r"   r$   r,   r1   r3   rK   rM   r   r   r   r   Ú<module>r     s¦   ðÜ 
Ý ÷÷ ñ ÷ /Ñ .Ý 'Ý (à�4˜ ™Ñ'Ñ(€à02Ð �t˜C Ð,Ñ-Ó 2ôòSò

òUò!ô˜*ô ñ �~¨YÑ7€ÙÐ/°yÑAÐ ôS-ˆW�\Ñ"õ S-r   