Ë
    ¡ëiÜE  ã                   ó–   — d Z i dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “Zd!Zd"Zd#d$lmZ  G d%„ d&e«      Zy')()ÚECC200datamatrixé   )éä   é0   é   éo   é>   é   )é   éD   é�   é†   éð   é\   éþ   é
   )
é   é   é¹   é¦   éß   éø   ét   éÿ   én   é=   é   )é¯   éŠ   éÍ   é   éÂ   é¨   é'   éõ   é<   éa   éx   r    )é)   é™   éž   é[   r   é*   éŽ   éÕ   r&   é²   éd   éò   é   )éœ   r&   éÀ   éü   é_   é	   é�   éw   r   é-   é   éº   éS   r   r;   )r=   éÃ   r0   r#   é¼   éK   éB   r   éñ   r.   ém   é�   é^   r   éá   r   éZ   r?   é   )r   r>   éô   r7   éé   éG   r"   é   r?   é    r)   é‘   éý   éO   él   éR   é   é®   r<   é¬   r   )é4   é¾   éX   r   rC   r#   é°   é   é›   éÅ   éû   r   r[   rZ   r   rU   r   é|   r    éµ   é¸   é`   é2   éÁ   r   )éÓ   éç   é+   r&   rK   ra   ég   rT   é%   é—   éª   é5   r@   é"   éù   éy   é   r   r   r.   é�   éˆ   r'   ri   rJ   r"   é]   r   é$   )$r$   é   r1   éÚ   é‚   éú   é¢   r_   éf   r'   éT   é³   éÜ   r]   éP   é¶   éå   r;   rL   é   r   é!   ée   é‰   r6   r9   és   é,   r   r`   é;   é   rF   éb   éQ   ép   r,   )*éM   rc   rƒ   é   é   é&   é   r)   é÷   éi   éz   rL   r$   é…   r1   é   r   r6   r0   r7   é§   r‘   éÖ   r   é9   rn   rZ   é   rO   r—   é6   r‚   r   éÊ   éE   rb   é–   é±   éâ   r   r7   r   r   )0r$   é„   rU   r   ra   é    éu   r�   éî   r“   r¢   re   r   r?   éí   éW   é¿   éj   é   é“   év   r
   rh   rG   rj   r   éƒ   rX   r'   r0   rA   r   r<   r   rR   r…   rY   r¤   é»   r¨   rM   r   r›   r.   r   rO   rF   r�   é8   )8r   r7   r   r¢   r    ro   r|   éÐ   r0   é   r   rj   éæ   r4   é×   éë   rœ   éŸ   rs   r   rŽ   éÈ   rŸ   r™   r   é’   ru   éê   r¡   éË   r®   éè   r   r¢   r�   rœ   éÉ   r¡   r   éÏ   é¤   é   rƒ   r$   rt   éC   r�   r   r[   rf   r¶   ék   rJ   rk   é�   é.   r   )>r1   rr   é©   rb   r   éÒ   r#   r©   rš   r?   r¸   é½   r¾   rQ   éÄ   rh   r   rŠ   r   r¯   r$   é?   r\   rW   rw   r¦   r   éÝ   r   é@   ér   rK   é¡   r…   r¨   é   rS   ru   é3   rÄ   r¤   r   é(   rv   r?   ro   é£   rŒ   rY   rj   r€   r½   r·   r	   rE   r   éà   r^   éV   é/   r   éÌ   r   )Dr|   r   é­   éY   r]   é•   r²   r¬   rÒ   r�   r¨   rI   éš   rs   éI   rt   r.   rq   r   é´   rµ   r\   r*   r�   r   r’   rr   r.   r   rM   éã   éì   rA   é‹   r)   r   rš   r•   r{   r‡   r|   r·   ra   rÁ   re   rq   r   éï   r_   rB   r†   rV   rU   r‡   é1   r·   rd   rÂ   rÆ   r™   rQ   r)   rŸ   rÄ   ra   rg   rR   r<   (   iÿÿÿr   r˜   r   rL   rF   rB   rk   é   rŽ   rž   r“   r1   rf   r™   rÁ   r€   r>   r#   rÇ   r×   r¦   r   r   éó   éŒ   r…   r
   é7   r©   rd   rµ   r   éÛ   rÃ   ra   rË   éÞ   r„   rg   r   éN   r½   é}   é‡   r”   r®   rx   rI   r<   rp   rÖ   r:   éc   r   rÛ   r¬   r»   r9   r)   éÔ   éÇ   r±   r+   rÉ   éL   r|   éÙ   r\   r   r&   r`   r(   rs   r   rO   r   r   éh   rc   r   rÎ   rP   é«   rQ   é¥   é~   rN   rq   rl   r7   éJ   é   r    rÌ   rz   r$   rÑ   r«   rÐ   r-   r‰   r_   rW   r¿   rX   r0   r²   r‡   re   rb   r¹   r—   r¨   r2   r¼   r'   é€   rÔ   r   r.   r•   r³   rÄ   rØ   r   r   rY   r	   rÈ   r‹   r^   rÅ   ry   ru   r6   éÆ   rG   r    é˜   rˆ   r   r   r{   r,   éÑ   rh   rŸ   rÍ   rV   r   rÚ   r¡   rJ   rÙ   r�   r‘   rS   r!   éq   r¯   éÎ   r¤   r*   r}   rÂ   rU   r¶   rC   r   r   r   rt   r�   r´   rA   rƒ   r4   é#   r5   r   é·   r@   éØ   rŒ   r=   r�   rÕ   rº   r   éU   rj   éö   éA   rT   r   r?   rš   r   r8   r¾   rÀ   rR   éH   r~   r°   r¥   r]   rÏ   r/   rÒ   ri   r‚   rE   rM   é{   é   rŠ   r·   rZ   rÊ   r¢   r­   rª   é:   r›   é”   r;   r   r§   r   ro   rn   rÓ   rD   r�   r[   r†   rm   éF   r–   rw   r"   rK   r¸   r3   rÆ   r%   r£   rv   r   rH   rr   r’   r�   rœ   (   r˜   rL   r€   r”   r§   r    rÆ   rð   r:   rG   rÖ   r›   r   r—   rÇ   r   r   re   r×   r±   r]   rà   r[   rS   r™   rQ   rø   r8   r
   r¿   r   r`   rr   r<   rÒ   r/   rÕ   r´   r7   r;   rs   rü   r   r»   rþ   rV   rê   r­   rp   rß   r   r|   rÓ   r	   r2   r   r¬   rŠ   rÍ   r£   r�   r>   rë   rý   rú   rc   r   r„   r¯   rF   rÚ   rÝ   r¶   r«   r+   r~   rû   rv   r(   rR   rº   r‚   rš   r   r6   rW   r‰   rx   r‘   rÁ   rƒ   rÄ   rí   r5   r.   rä   rö   r  rÞ   rk   r¦   ræ   r“   r#   râ   r3   rZ   r,   rz   r"   rã   rw   ré   r²   r�   rŽ   rè   rò   r®   rÿ   r   r·   rO   r°   rª   rf   rÎ   rU   r¡   rµ   rm   r   r¨   r   r�   r…   rX   rY   r‹   rÔ   r‡   rb   r0   r³   rÂ   r¤   rT   rô   rž   rJ   r   rd   rÙ   r†   r©   rØ   r$   rç   rÌ   r½   r–   rD   rÏ   rE   r?   rù   rj   rn   r1   r¸   r¥   r=   r   r&   r!   rÀ   rt   r   ró   r¾   rÊ   ry   rÐ   r_   rK   r-   rÛ   rˆ   rÃ   rì   rg   rõ   r�   rP   r*   ro   rl   r   rq   r   r’   rI   r\   r•   rå   rñ   rÈ   r   rá   rN   r   rï   r%   r'   r   r   r÷   r¼   r   r�   rA   rŸ   rh   rî   r   r   r   rH   rË   r}   rM   rC   ru   r)   rŒ   r   r^   r   rÅ   ri   rÜ   rÉ   r    r   r   ra   r4   rÑ   r9   r¢   rB   r¹   r{   r@   rœ   r˜   é    )ÚBarcodec                   ó˜   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚECC200DataMatrixa  This code only supports a Type 12 (44x44) C40 encoded data matrix.
    This is the size and encoding that Royal Mail wants on all mail from October 1st 2015.
    see https://bitbucket.org/rptlab/reportlab/issues/69/implementations-of-code-128-auto-and-data
    r€   c                 ó  — t        j                  | g|¢­i |¤Ž d| _        d| _        d| _        d| _        d| _        d| _        | j                  | j                  dz  z
  | _        | j                  | j
                  dz  z
  | _	        y )Nr…   rL   r   r¬   )
r  Ú__init__Úrow_modulesÚcol_modulesÚrow_regionsÚcol_regionsÚcw_dataÚcw_eccÚrow_usable_modulesÚcol_usable_modules)ÚselfÚargsÚkwargss      úk/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/barcode/ecc200datamatrix.pyr  zECC200DataMatrix.__init__a   s†   € Ü×Ñ˜Ð.˜tÒ. vÒ.ð ˆÔØˆÔØˆÔØˆÔØˆŒØˆŒØ"&×"2Ñ"2°T×5EÑ5EÈÑ5IÑ"IˆÔØ"&×"2Ñ"2°T×5EÑ5EÈÑ5IÑ"IˆÕó    c                 ó„   — d| _         | j                  D ]  }t        |«      dkD  sŒd| _          y  | j                  | _        y )Nr˜   r   r  )ÚvalidÚvalueÚordÚ	validated)r  Úcs     r  ÚvalidatezECC200DataMatrix.validaten   s>   € ØˆŒ
Ø—‘ò 	(ˆAÜ�1‹v˜‹|Ø�”
Ùð	(ð
 "ŸZ™ZˆD�Nr  c                 ó$  — t        |«      }g }|dk(  s|dk\  r|dk  s
|dk\  rV|dk  rQ|dk(  r|j                  |dz
  «       |S |dk\  r|dk  r|j                  |dz
  «       |S |j                  |dz
  «       |S |d	k\  r)|d
k  r$|j                  d	«       |j                  |«       |S |dk\  r|dk  s
|dk\  rL|dk  rG|j                  d«       |dk\  r|dk  r|j                  |dz
  «       |S |j                  |dz
  «       |S |dk\  r,|dk  r'|j                  d«       |j                  |dz
  «       |S |dk\  rI|dk  rD|j                  d«       |j                  d«       || j                  t        |dz
  «      «      z  }|S t	        d|›d|›d�«      ‚)Nr    r   r—   rû   rG   r®   r…   rÊ   r  rŒ   r�   rÆ   r+   r6   r˜   r›   ra   rt   rL   rð   r   rï   zCannot encode z (ú))r  ÚappendÚ_encode_c40_charÚchrÚ	Exception)r  ÚcharÚoÚencodeds       r  r  z!ECC200DataMatrix._encode_c40_charw   s­  € Ü�‹IˆØˆà�Š7�q˜B’w 1¨¢7°°R²¸AÀºGà�BŠwØ—‘˜q 2™vÔ&ð2 ˆð1 �b’˜Q "šWØ—‘˜q 2™vÔ&ð. ˆð+ —‘˜q 2™vÔ&ð* ˆð) �!ŠV˜˜RšØ�N‰N˜1ÔØ�N‰N˜1Ôð$ ˆð# �2Šg˜!˜rš' q¨B¢w°1¸²7Ø�N‰N˜1ÔØ�BŠw˜1 š7Ø—‘˜q 2™vÔ&ð ˆð —‘˜q 2™vÔ&ð ˆð �"ŠW˜˜cšØ�N‰N˜1ÔØ�N‰N˜1˜r™6Ô"ð ˆð �#ŠX˜!˜sš(à�N‰N˜1ÔØ�N‰N˜2ÔØ�t×,Ñ,¬S°°S±«\Ó:Ñ:ˆGð ˆõ ²tºQÐ?Ó@Ð@r  c                 ó  — g }|D ]  }|| j                  |«      z  }Œ t        |«      dz  r |j                  d«       t        |«      dz  rŒ g }|j                  d«       t        dt        |«      d«      D ]L  }|||dz    }|d   dz  |d   dz  z   |d   z   dz   }|j                  |dz  «       |j                  |dz  «       ŒN |j                  d	«       t        |«      | j                  kD  rt        d
«      ‚t        |«      | j                  k  rp|j                  d«       t        |«      | j                  k  rGdt        |«      dz   z  dz  dz   }|j                  d|z   d	z  «       t        |«      | j                  k  rŒG|S )NrÜ   r  r¯   i@  r˜   rË   rL   é   r   z4Too much data to fit into a data matrix of this sizerD   rÓ   rO   )r  Úlenr  Úranger  r!  )	r  r  r$  r  Ú	codewordsÚiÚchunkÚtotalÚrs	            r  Ú_encode_c40zECC200DataMatrix._encode_c40™   s†  € Øˆàò 	0ˆAØ�t×,Ñ,¨QÓ/Ñ/‰Gð	0ô �'‹l˜QÒØ�N‰N˜1Ôô �'‹l˜QÓð ˆ	Ø×Ñ˜Ôä�qœ#˜g›,¨Ó*ò 	*ˆAØ˜A˜a ™c�NˆEØ˜!‘H˜t‘O e¨A¡h°¡mÑ3°e¸A±hÑ>ÀÑBˆEØ×Ñ˜U c™\Ô*Ø×Ñ˜U S™[Õ)ð		*ð 	×Ñ˜Ôäˆy‹>˜DŸL™LÒ(ÜÐRÓSÐSäˆy‹>˜DŸL™LÒ(à×Ñ˜SÔ!Ü�i“. 4§<¡<Ò/ØœS ›^¨aÑ/Ñ0°CÑ7¸1Ñ<�Ø× Ñ  #¨¡'¨S¡Ô1ô �i“. 4§<¡<Ó/ð Ðr  c                 ó   — ||z  S ©N© ©r  Úint1Úint2s      r  Ú_gfsumzECC200DataMatrix._gfsum¹   s   € Ø�d‰{Ðr  c                 óR   — |dk(  s|dk(  ryt         t        |   t        |   z   dz     S )Nr  r   )ÚALOGVALÚLOGVALr2  s      r  Ú
_gfproductzECC200DataMatrix._gfproduct¼   s/   € Ø�1Š9˜ š	ØäœF 4™L¬6°$©<Ñ7¸3Ñ>Ñ?Ð?r  c                 ó  — t         |   }dg|z  }|D ]h  }| j                  ||d   «      }t        |dz
  dd«      D ]>  }| j                  |||   «      ||<   |dkD  sŒ!| j                  ||dz
     ||   «      ||<   Œ@ Œj |j	                  «        |S )z¶
        This method is basically verbatim from "huBarcode" which is BSD licensed
        https://github.com/hudora/huBarcode/blob/master/hubarcode/datamatrix/reedsolomon.py
        r  éÿÿÿÿr˜   )ÚFACTORSr5  r(  r9  Úreverse)r  ÚdataÚnum_code_wordsÚ
cw_factorsÚ
code_wordsÚ	data_wordÚtmpÚjs           r  Ú_get_reed_solomon_codez'ECC200DataMatrix._get_reed_solomon_codeÂ   s²   € ô
 ˜^Ñ,ˆ
Ø�S˜>Ñ)ˆ
àò 	RˆIØ—+‘+˜i¨°B©Ó8ˆCÜ˜>¨AÑ-¨r°2Ó6ò R�Ø $§¡°°ZÀ±]Ó C�
˜1‘Ø�q“5Ø$(§K¡K°
¸1¸q¹5Ñ0AÀ:ÈaÁ=Ó$Q�J˜q’MñRð	Rð 	×ÑÔØÐr  c                 óœ   — |j                  d«      }g }t        dd«      D ]  }|j                  ||z	  dz  «       Œ |j                  «        |S )Nr  r”   r˜   )Úpopr(  r  r=  )r  r>  r  Úbitsr*  s        r  Ú_get_next_bitszECC200DataMatrix._get_next_bitsÔ   sK   € Ø—‘˜“ˆØˆÜ�q˜!“ò 	(ˆAØ�K‰K˜ ™
 Q™Õ'ð	(à�‰ŒØˆr  c                 óØ   — |dk  r'|| j                   z  }|d| j                   dz   dz  z
  z  }|dk  r'|| j                  z  }|d| j                  dz   dz  z
  z  }|| j                  |   |<   y )Nr  r€   r”   )r  r  Ú_matrix)r  ÚrowÚcolÚbits       r  Ú
_place_bitzECC200DataMatrix._place_bitÜ   s�   € Ø�Š7Ø�4×*Ñ*Ñ*ˆCØ�A˜$×1Ñ1°AÑ5¸Ñ:Ñ;Ñ<ˆCà�Š7Ø�4×*Ñ*Ñ*ˆCØ�A˜$×1Ñ1°AÑ5¸Ñ:Ñ;Ñ<ˆCà!$ˆ�‰�SÑ˜#Òr  c                 óV  — | j                  |«      }| j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       y )	Nr˜   r  rL   rÜ   r€   r   rÉ   r	   ©rI  rO  r  r  ©r  r>  rH  s      r  Ú_place_bit_corner_1z$ECC200DataMatrix._place_bit_corner_1ç   ó
  € Ø×"Ñ" 4Ó(ˆØ�‰˜×/Ñ/°!Ñ3°Q¸¸Q¹Ô@Ø�‰˜×/Ñ/°!Ñ3°Q¸¸Q¹Ô@Ø�‰˜×/Ñ/°!Ñ3°Q¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Õ@r  c                 óV  — | j                  |«      }| j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       y ©	NrÜ   r  rL   r˜   r€   r   rÉ   r	   rQ  rR  s      r  Ú_place_bit_corner_2z$ECC200DataMatrix._place_bit_corner_2ò   rT  r  c                 óV  — | j                  |«      }| j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  | j                  dz
  d|d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       y rV  rQ  rR  s      r  Ú_place_bit_corner_3z$ECC200DataMatrix._place_bit_corner_3ý   rT  r  c                 óp  — | j                  |«      }| j                  | j                  dz
  d|d   «       | j                  | j                  dz
  | j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       | j                  d| j                  dz
  |d   «       y )	Nr˜   r  rÜ   rL   r€   r   rÉ   r	   rQ  rR  s      r  Ú_place_bit_corner_4z$ECC200DataMatrix._place_bit_corner_4  s  € Ø×"Ñ" 4Ó(ˆØ�‰˜×/Ñ/°!Ñ3°Q¸¸Q¹Ô@Ø�‰˜×/Ñ/°!Ñ3°T×5LÑ5LÈqÑ5PÐRVÐWXÑRYÔZØ�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Ô@Ø�‰˜˜4×2Ñ2°QÑ6¸¸Q¹Õ@r  c                 óÈ  — | j                  |«      }| j                  |dz
  |dz
  |d   «       | j                  |dz
  |dz
  |d   «       | j                  |dz
  |dz
  |d   «       | j                  |dz
  |dz
  |d   «       | j                  |dz
  ||d   «       | j                  ||dz
  |d   «       | j                  ||dz
  |d   «       | j                  |||d   «       y )	NrL   r  r˜   rÜ   r€   r   rÉ   r	   )rI  rO  )r  r>  rL  rM  rH  s        r  Ú_place_bit_standardz$ECC200DataMatrix._place_bit_standard  sÞ   € Ø×"Ñ" 4Ó(ˆØ�‰˜˜a™  q¡¨$¨q©'Ô2Ø�‰˜˜a™  q¡¨$¨q©'Ô2Ø�‰˜˜a™  q¡¨$¨q©'Ô2Ø�‰˜˜a™  q¡¨$¨q©'Ô2Ø�‰˜˜a™  d¨1¡gÔ.Ø�‰˜˜S 1™W d¨1¡gÔ.Ø�‰˜˜S 1™W d¨1¡gÔ.Ø�‰˜˜S $ q¡'Õ*r  c                 óP  — | j                   }| j                  }| j                  ||«      | _        d}d}	 ||k(  r|dk(  r| j	                  |«       nq||dz
  k(  r|dk(  r|dz  r| j                  |«       nM||dz
  k(  r|dk(  r|dz  dk(  r| j                  |«       n&||dz   k(  r|dk(  r|dz  dk(  r| j                  |«       	 ||k  r*|dk\  r%| j                  |   |   €| j                  |||«       |dz  }|dz  }|dk  s||k\  rnŒE|dz  }|dz  }	 |dk\  r*||k  r%| j                  |   |   €| j                  |||«       |dz  }|dz  }||k\  s|dk  rnŒE|dz  }|dz  }||k\  r||k\  rn�Œ:| j                  D ]  }t        d|«      D ]  }||   �Œ	d||<   Œ Œ  | j                  S )z²
        This method is heavily influenced by "huBarcode" which is BSD licensed
        https://github.com/hudora/huBarcode/blob/master/hubarcode/datamatrix/placement.py
        r€   r  rL   r”   r˜   rÜ   )
r  r  Ú_create_empty_matrixrK  rS  rW  rY  r[  r]  r(  )r  r>  ÚrowsÚcolsrL  rM  r*  s          r  Ú_create_matrixzECC200DataMatrix._create_matrix  s  € ð
 ×&Ñ&ˆØ×&Ñ&ˆà×0Ñ0°°tÓ<ˆŒàˆØˆàØ�dŠ{˜s ašxØ×(Ñ(¨Õ.Ø˜ ™Ò" s¨a¢x°T¸A²XØ×(Ñ(¨Õ.Ø˜ ™Ò" s¨a¢x°T¸A±XÀ²]Ø×(Ñ(¨Õ.Ø˜ ™Ò" s¨a¢x°T¸A±XÀ²]Ø×(Ñ(¨Ô.àØ˜’: #¨¢(¨t¯|©|¸CÑ/@ÀÑ/EÐ/MØ×,Ñ,¨T°3¸Ô<à�q‘�Ø�q‘�à˜’7˜c TškØð ð �1‰HˆCØ�1‰HˆCàØ˜!’8  d¢
¨t¯|©|¸CÑ/@ÀÑ/EÐ/MØ×,Ñ,¨T°3¸Ô<à�q‘�Ø�q‘�à˜$’; #¨¢'Øð ð �1‰HˆCØ�1‰HˆCà�dŠ{˜s dš{ØñK ðN —<‘<ò 	ˆCÜ˜1˜d“^ò �Ø�q‘6‘>Ø�C˜’Fñð	ð
 �|‰|Ðr  c                 óÄ  — g }d}d}t        | j                  | j                  z  «      }t        | j                  | j                  z  «      }|| j                  k  r†|| j                  k  r`||z  }||z  }||||z    }	t        dt        |	«      «      D ]  }
|	|
   |||z    |	|
<   Œ |j                  |	«       |dz  }|| j                  k  rŒ`d}|dz  }|| j                  k  rŒ†|S ©Nr  r˜   )Úintr  r
  r  r  r(  r'  r  )r  ÚmatrixÚregionsÚ
col_offsetÚ
row_offsetr`  ra  Úr_offsetÚc_offsetÚregionr*  s              r  Ú_create_data_regionsz%ECC200DataMatrix._create_data_regionsY  s  € ØˆØˆ
Øˆ
ä�4×*Ñ*¨T×-=Ñ-=Ñ=Ó>ˆÜ�4×*Ñ*¨T×-=Ñ-=Ñ=Ó>ˆà˜4×+Ñ+Ò+Ø˜t×/Ñ/Ò/Ø%¨Ñ,�Ø%¨Ñ,�Ø ¨¨h©Ð7�Ü˜q¤# f£+Ó.ò B�AØ & q¡	¨(°4¸±=Ð A�F˜1’IðBà—‘˜vÔ&Ø˜a‘�
ð ˜t×/Ñ/Ó/ð ˆJØ˜!‰OˆJð ˜4×+Ñ+Ó+ð ˆr  c                 óV   — g }t        d|«      D ]  }|j                  d g|z  «       Œ |S )Nr  )r(  r  )r  rL  rM  rf  r*  s        r  r_  z%ECC200DataMatrix._create_empty_matrixo  s3   € ØˆÜ�q˜#“ò 	(ˆAØ�M‰M˜4˜& 3™,Õ'ð	(àˆr  c                 ó&  — g }|D �]  }| j                  t        | j                  | j                  z  «      t        | j                  | j
                  z  «      «      }t        |«      D ]&  \  }}t        |«      D ]  \  }}|||dz      |dz   <   Œ Œ( t        |«      D ]`  \  }}	|dk(  rt        |	«      D ]  \  }}
|dz   dz  |	|<   Œ Œ*|dz   t        |«      k(  rt        |	«      D ]
  \  }}
d|	|<   Œ ŒTd|	d<   |dz  |	d<   Œb |j                  |«       �Œ |S )Nr˜   r  rL   r;  )	r_  re  r	  r  r  r
  Ú	enumerater'  r  )r  rg  Úwrappedrl  rf  r*  r`  rD  r>  rL  rM  s              r  Ú_wrap_data_regions_with_findersz0ECC200DataMatrix._wrap_data_regions_with_findersu  sE  € Øˆàó 	#ˆFØ×.Ñ.Ü�D×$Ñ$ t×'7Ñ'7Ñ7Ó8Ü�D×$Ñ$ t×'7Ñ'7Ñ7Ó8óˆFô
 % VÓ,ò ,‘��4Ü(¨›ò ,‘G�A�tØ'+�F˜1˜Q™3‘K  !¡Ò$ñ,ð,ô $ FÓ+ò 	$‘��3Ø˜’6Ü"+¨C£.ò -™˜˜3Ø"# a¡%¨1¡˜˜Ašñ-à˜‘Uœc &›kÒ)Ü"+¨C£.ò #™˜˜3Ø!"˜˜Ašñ#ð �C˜‘FØ !™e�C˜’Gð	$ð �N‰N˜6Ö"ð+	#ð. ˆr  c                 ó  — g }t        dt        |«      | j                  «      D ]a  }|||| j                  z    }d}|t        |d   «      k  sŒ)g }|D ]
  }|||   z  }Œ |j                  |«       |dz  }|t        |d   «      k  rŒ9Œc |S rd  )r(  r'  r
  r  )r  rg  Úmergedr*  r+  rD  Ú
merged_rowrL  s           r  Ú_merge_data_regionsz$ECC200DataMatrix._merge_data_regions‘  s¥   € Øˆä�qœ#˜g›,¨×(8Ñ(8Ó9ò 	ˆAØ˜A˜a × 0Ñ 0Ñ0Ð1ˆEØˆAØ”c˜% ™(“mÓ#Ø�
Ø ò )�CØ # a¡&Ñ(‘Jð)à—‘˜jÔ)Ø�Q‘�ð ”c˜% ™(“mÔ#ð	ð ˆr  c                 ó„  — t        | d«      r| j                  S | j                  | j                  «      }|| j	                  || j
                  «      z  }| j                  |«      }| j                  |«      }| j                  |«      }| j                  |«      | _        | j                  j                  «        | j                  S )Nr$  )Úhasattrr$  r.  r  rE  r  rb  rm  rr  rv  r=  )r  r$  rf  Údata_regionsrq  s        r  ÚencodezECC200DataMatrix.encode   s¡   € Ü�4˜Ô#Ø—<‘<Ðà×"Ñ" 4§>¡>Ó2ˆØ�4×.Ñ.¨w¸¿¹ÓDÑDˆà×$Ñ$ WÓ-ˆØ×0Ñ0°Ó8ˆØ×6Ñ6°|ÓDˆØ×/Ñ/°Ó8ˆŒà�‰×ÑÔà�|‰|Ðr  c                 ó|   — | j                   | j                  z  | _        | j                  | j                  z  | _        y r0  )r  ÚbarWidthÚ_heightr	  Ú_width)r  r  s     r  ÚcomputeSizezECC200DataMatrix.computeSize°  s.   € Ø×'Ñ'¨$¯-©-Ñ7ˆŒØ×&Ñ&¨¯©Ñ6ˆ�r  c                 ó"  — t        | j                  «      D ]w  \  }}t        |«      D ]d  \  }}|sŒ	| j                  | j                  || j                  z  z   | j
                  || j                  z  z   | j                  | j                  «       Œf Œy y r0  )rp  r$  ÚrectÚxr|  Úy)r  rƒ  rL  r‚  r>  s        r  ÚdrawzECC200DataMatrix.draw´  s|   € Ü §¡Ó-ò 	‰FˆAˆsÜ$ S›>ò ‘��4ÚØ—I‘IØŸ™  T§]¡]Ñ!2Ñ2ØŸ™  T§]¡]Ñ!2Ñ2ØŸ™ØŸ™õ	ññ	r  N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r|  r  r  r  r.  r5  r9  rE  rI  rO  rS  rW  rY  r[  r]  rb  rm  r_  rr  rv  rz  r  r„  r1  r  r  r  r  Z   s…   „ ñð €HòJò(ò òDò@ò@òò$ò	%ò	Aò	Aò	Aò	Aò	+ò9òvò,òò8òò 7ó	r  r  N)Ú__all__r<  r8  r7  Ú!reportlab.graphics.barcode.commonr  r  r1  r  r  ú<module>r‹     s  ðð 
€ð'ØÐð'àÐ'ð'ð Ð7ð'ð Ð;ð	'ð
 Ð?ð'ð ÐGð'ð ð 	$ð'ð ð 	.ð'ð ð 	:ð'ð ð 	Mð'ð ð 	-ð'ð$ ð 	Hð%'ð* ð 	$ð+'ð2 ð 	Jð3'ð: ð 	$ð;'ðD ð 	@ðE'€ðR
€ð,€õ, 6ôc�wõ cr  