§
    £”jA=  ã                   ó�   — d dl mZ dZdZd dlmZ d dlmZ d„ Z G d„ de¦  «        Z	d	„ Z
d
„ Zd„ Zd„ Zedk    r e¦   «          dS dS )é    )Úprint_functionz3.3.0)ÚUSPS_4State)ÚBarcode)ÚasNativec                 ó°   — t          | ¦  «        }|dd…         |dd…                              ¦   «         z   }|                     d¦  «        r
|dd…         }|S )znormalized hexNé   Úléÿÿÿÿ)ÚhexÚlowerÚendswith)ÚiÚrs     úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/barcode/usps4s.pyÚnhexr   
   sP   € åˆA‰Œ€AØ	ˆ"ˆ1ˆ"Œˆa���Œe�kŠk‰mŒmÑ€AØ‡z‚z�#�„Ð"˜A˜c˜r˜cœF˜Ø€Hó    c                   óÎ  — e Zd ZdZdZdZdZdZ	  edddd¬¦  «        Z	 ed	d
d	d
¬¦  «        Z
 edddd¬¦  «        ZdHd„Zd„ Zd„ Z ee¦  «        Zd„ Z ed„ e¦  «        Zd„ Z ed„ e¦  «        Zd „ Z ed!„ e¦  «        Zd"„ Z ed#„ e¦  «        Zd$„ Z ed%„ e¦  «        Zd&„ Z ed'„ e¦  «        Zd(„ Z ee¦  «        Zd)„ Z ee¦  «        Zd*„ Z ee¦  «        Zd+„ Z ee¦  «        Zd,„ Z ee¦  «        Zd-„ Z ee¦  «        Zd.Zd/Z ed0„ ¦  «        Z ed1„ ¦  «        Z ed2„ ¦   «         Z!e!j"        d3„ ¦   «         Z!ed4„ ¦   «         Z#e#j"        d5„ ¦   «         Z#ed6„ ¦   «         Z$e$j"        d7„ ¦   «         Z$ ed8„ ¦  «        Z% ed9„ ¦  «        Z&ed:„ ¦   «         Z'ed;„ ¦   «         Z(e'j"        d<„ ¦   «         Z'e(j"        d=„ ¦   «         Z(d>„ Z)d?„ Z*dId@„Z+dA„ Z,dB„ Z- ee-dC„ ¦  «        Z-dD„ Z.dJdF„Z/dGS )Kr   zC USPS 4-State OneView (TM) barcode. All info from USPS-B-3200A
    é   é   r   T)g      °?g…ëQ¸µ?)g+‡ÙÎ÷“?gÉv¾Ÿ/�?)ÚFÚTÚAÚD)g      °¿g…ëQ¸µ¿)g+‡ÙÎ÷“¿gÉv¾Ÿ/�¿)r   r   r   r   )g¸…ëQ¸Ž?gš™™™™™™?)g”ö_˜L¥?gš™™™™™©?)ç      À?r   )çyé&1¬œ?r   )ÚwidthÚpitchÚhczÚvcz)gôýÔxé&±?gq=
×£p½?)g/Ý$�•?ç{®Gáz¤?)gôýÔxé&±¿gq=
×£p½¿)g/Ý$�•¿g{®Gáz¤¿)r   r   r   r   )r    r    Ú01234567094987654321Ú c                 ó¸  — |                       ¦   «          t          |t          ¦  «        rt          |¦  «        nt	          |¦  «        }|sEt          |¦  «        dv r|d d…         |dd …         }}nOt          dt          |¦  «        z  ¦  «        ‚t          |¦  «        dvrt          dt          |¦  «        z  ¦  «        ‚|| _        || _         | j	        di |¤Ž d S )N)é   é   é   é   r$   z;value+routing length must be 20, 25, 29 or 31 digits not %d)é   é	   r   z/routing length must be 5, 9 or 11 digits not %d© )
Ú_initÚ
isinstanceÚintÚstrr   ÚlenÚ
ValueErrorÚ	_trackingÚ_routingÚ_setKeywords)ÚselfÚvalueÚroutingÚkwds       r   Ú__init__zUSPS_4State.__init__?   sâ   € Ø�
Š
‰ŒˆÝ(¨­sÑ3Ô3ÐH•�E‘
”
�
½À%¹¼ˆØð 	_å�5‰zŒz˜]Ð*Ð*Ø!& s¨ s¤¨U°2°3°3¬Z�w��å Ð!^ÕadÐejÑakÔakÑ!kÑlÔlÐlÝ�‰\Œ\ Ð)Ð)ÝÐNÕQTÐU\ÑQ]ÔQ]Ñ]Ñ^Ô^Ð^ØˆŒØˆŒØˆÔÐ Ð ˜CÐ Ð Ð Ð Ð r   c                 ó>   — d | _         d | _        d | _        d | _        d S ©N)Ú_bvalueÚ
_codewordsÚ_charactersÚ	_barcodes©r4   s    r   r+   zUSPS_4State._initN   s#   € ØˆŒØˆŒØˆÔØˆŒˆˆr   c                 óL   — ||          }d|d         d|z
  z  ||d         z  z   z  S )NéH   r   r   r*   )Úkindr   ÚsÚVs       r   ÚscalezUSPS_4State.scaleT   s/   € ØˆdŒGˆØ�1�Q”4˜˜1™‘:˜a  !¤™fÑ$Ñ%Ð%r   c                 ó<   — |                       ¦   «          || _        d S r:   )r+   r1   )r4   Útrackings     r   rG   zUSPS_4State.trackingY   s   € Ø�
Š
‰ŒˆØ!ˆŒˆˆr   c                 ó   — | j         S r:   )r1   r?   s    r   ú<lambda>zUSPS_4State.<lambda>\   ó   €  T¤^€ r   c                 ó<   — |                       ¦   «          || _        d S r:   )r+   r2   )r4   r6   s     r   r6   zUSPS_4State.routing^   s   € Ø�
Š
‰ŒˆØˆŒˆˆr   c                 ó   — | j         S r:   )r2   r?   s    r   rI   zUSPS_4State.<lambda>a   s   €  D¤M€ r   c                 óZ   — d | _         t          t          d|¦  «        d¦  «        | _        d S )Nr   r   )Ú_sizedÚminÚmaxÚ
_widthSize©r4   r5   s     r   Ú	widthSizezUSPS_4State.widthSizec   s&   € ØˆŒÝ�c ! E™lœl¨1Ñ-Ô-ˆŒˆˆr   c                 ó   — | j         S r:   )rQ   r?   s    r   rI   zUSPS_4State.<lambda>f   s   €  d¤o€ r   c                 ó"   — d | _         || _        d S r:   )rN   Ú_heightSizerR   s     r   Ú
heightSizezUSPS_4State.heightSizeh   s   € ØˆŒØ ˆÔÐÐr   c                 ó   — | j         S r:   )rV   r?   s    r   rI   zUSPS_4State.<lambda>k   s	   €  tÔ'7€ r   c                 ó"   — d | _         || _        d S r:   )rN   Ú	_fontSizerR   s     r   ÚfontSizezUSPS_4State.fontSizem   s   € ØˆŒØˆŒˆˆr   c                 ó   — | j         S r:   )rZ   r?   s    r   rI   zUSPS_4State.<lambda>p   rJ   r   c                 ó"   — d | _         || _        d S r:   )rN   Ú_humanReadablerR   s     r   ÚhumanReadablezUSPS_4State.humanReadabler   s   € ØˆŒØ#ˆÔÐÐr   c                 ó   — | j         S r:   )r^   r?   s    r   rI   zUSPS_4State.<lambda>u   s	   € ¨$Ô*=€ r   c                 ó  — | j         }|�st| j        }t          |¦  «        }	 |dk    rd}nR|dk    rt          |¦  «        dz   }n9|dk    rt          |¦  «        dz   }n |dk    rt          |¦  «        dz   }nt          ‚n#  t	          d|z  ¦  «        ‚xY w| j        }|dd	…         }	 |d
z  }|t          |d         ¦  «        z  }|dz  }|t          |d         ¦  «        z  }n#  t	          d|z  ¦  «        ‚xY wd	}dD ]z\  }}|}	||z  }||	|…         }	 t          |¦  «        |k    rt          ‚t          |¦  «        D ]}	|d
z  }|t          ||	         ¦  «        z  }Œ Œa#  t	          d|||fz  ¦  «        ‚xY w|| _         |S )aè  convert the 4 state string values to binary
        >>> print(nhex(USPS_4State('01234567094987654321','').binary))
        0x1122103b5c2004b1
        >>> print(nhex(USPS_4State('01234567094987654321','01234').binary))
        0xd138a87bab5cf3804b1
        >>> print(nhex(USPS_4State('01234567094987654321','012345678').binary))
        0x202bdc097711204d21804b1
        >>> print(nhex(USPS_4State('01234567094987654321','01234567891').binary))
        0x16907b2a24abc16a2e5c004b1
        r   r(   r   r)   i¡† r   i¡Pœ;z@Problem converting %s, routing code must be 0, 5, 9 or 11 digitsr   é
   z:Problem converting %s, barcode identifier must be 2 digits))zspecial servicesé   )zcustomer identifieré   )zsequence numberr)   z+Problem converting %s, %s must be %d digits)r;   r6   r/   r-   r0   rG   Úrange)
r4   r5   r6   ÚnrG   Úsvaluer   ÚnameÚndÚjs
             r   ÚbinaryzUSPS_4State.binaryw   sâ  € ð ”ˆØñ '	!Ø”lˆGÝ�G‘”ˆAðoØ�a’4�4Ø�E�EØ˜’T�TÝ ™LœL¨™N�E�EØ˜’T�TÝ ™LœL¨Ñ/�E�EØ˜’U�UÝ ™LœL¨Ñ3�E�Eå$Ð$øøðoÝ Ð!cÐfmÑ!mÑnÔnÐnøøøà”}ˆHØ˜a ˜c”]ˆFðhØ˜‘�Ø�˜V AœY™œÑ'�Ø˜‘
�Ø�˜V AœY™œÑ'��øðhÝ Ð!]Ð`fÑ!fÑgÔgÐgøøøàˆAØeð 
gð 
g‘��RØ�Ø�R‘�Ø! ! A #œ�ðgÝ˜6‘{”{ B’�­jÐ(8Ý" 2™YœYð 0ð 0˜Ø ™˜Ø¥ V¨A¤Y¡¤Ñ/˜˜ð0øðgÝ$Ð%RÐV\Ð]aÐbdÐUeÑ%eÑfÔfÐføøøØ ˆDŒLØˆs%   ¢AA> Á>BÂ':C" Ã"C6ÄA	EÅE5c                 ó¨  — | j         �sD| j        }t          |d¦  «        \  }}t          |d¦  «        \  }}t          |d¦  «        \  }}t          |d¦  «        \  }}t          |d¦  «        \  }}t          |d¦  «        \  }}t          |d¦  «        \  }}	t          |d¦  «        \  }}
t          |d¦  «        \  }}d|cxk    rdk    s,n J dt          t	          |¦  «        ¦  «        ›d|›�¦   «         ‚t          |¦  «        | _        | j        dz  r|dz  }|d	z  }t          t          t          |||
|	||||||f
¦  «        ¦  «        | _         | j         S )
z¶convert binary value into codewords
        >>> print(USPS_4State('01234567094987654321','01234567891').codewords)
        (673, 787, 607, 1022, 861, 19, 816, 1294, 35, 602)
        i|  iU  r   i’  zimproper value z passed to _2codewords A-->é   i“  r   )	r<   rk   Údivmodr   r-   Ú_crc11Ú_fcsÚtupleÚmap)r4   r5   r   ÚJÚIÚHÚGr   ÚEr   ÚCÚBs               r   Ú	codewordszUSPS_4State.codewords®   sV  € ð
 Œñ 	DØ”KˆEÝ˜% Ñ$Ô$‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqÝ˜!˜D‘>”>‰DˆAˆqØ�a�9�9’9�9˜’9�9�9�9�9�9ÕRUÕVYÐZ_ÑV`ÔV`ÑRaÔRaÐRaÐRaÐbcÐbcÐd‘9”9�9Ý˜u™œˆDŒIØŒy˜‰~Ð'˜q C™x˜qØ�‰FˆAÝ#¥C­¨Q¨q°°1°Q°q¸¸1¸Q¸qÐ,AÑ$BÔ$BÑCÔCˆDŒOØŒÐr   c                 óN   — t          dd¦  «        | j        _        | j        j        S )Nr(   é  )Ú_initNof13TableÚ	__class__Útable1r?   s    r   r   zUSPS_4State.table1Ç   s!   € Ý /°°$Ñ 7Ô 7ˆŒÔØŒ~Ô$Ð$r   c                 óN   — t          dd¦  «        | j        _        | j        j        S )Nr   éN   )r}   r~   Útable2r?   s    r   r‚   zUSPS_4State.table2Ì   s!   € Ý /°°"Ñ 5Ô 5ˆŒÔØŒ~Ô$Ð$r   c                 ó*  — | j         s†| j        }| j        }g }|j        }| j        }| j        }t          d¦  «        D ]=}||         }|dk    r	||         }	n||dz
           }	||z	  dz  r|	 dz  }	 ||	¦  «         Œ>t          |¦  «        | _         | j         S )zÐ convert own codewords to characters
        >>> print(' '.join(hex(c)[2:] for c in USPS_4State('01234567094987654321','01234567891').characters))
        dcb 85c 8e4 b06 6dd 1740 17c6 1200 123f 1b2b
        rb   i  r|   r   iÿ  )r=   rz   rp   Úappendr   r‚   re   rq   )
r4   rz   Úfcsrx   ÚaCr   r‚   r   ÚcwÚcs
             r   Ú
characterszUSPS_4State.charactersÑ   s·   € ð
 Ôð 	(ØœˆIØ”)ˆCØˆAØ”ˆBØ”[ˆFØ”[ˆFÝ˜2‘Y”Yð ð �Ø˜q”\�Ø�t’8�8Ø˜rœ
�A�Aà˜r $™wœ�AØ˜‘F˜A‘:ð $Ø˜˜V™�AØ��1‘”��Ý$ Q™xœxˆDÔØÔÐr   c                 óü   — | j         so| j        }g }|j        }| j        }| j        D ]6\  }}}} ||||         |z	  dz  d||         |z	  dz  z  z            ¦  «         Œ7d                     |¦  «        | _         | j         S )z×Get 4 state bar codes for current routing and tracking
        >>> print(USPS_4State('01234567094987654321','01234567891').barcodes)
        AADTFFDFTDADTAADAATFDTDDAAADDTDTTDAFADADDDTFFFDDTTTADFAAADFTDAADA
        r   r   r"   )r>   r‰   r„   Ú
_bits2barsÚtable4Újoin)	r4   rx   ry   ÚaBÚ	bits2barsÚdcÚdbÚacÚabs	            r   ÚbarcodeszUSPS_4State.barcodesê   s–   € ð
 Œ~ð 	(Ø”ˆAØˆAØ”ˆBØœˆIØ#œ{ð Að A‘��2�b˜Ø��9˜q œu b™y¨!™m¨Q°°2´¸±¸A±Ñ->Ñ>Ô?Ñ@Ô@Ð@Ð@ØŸWšW Q™ZœZˆDŒNØŒ~Ðr   )A)é   r   é   rc   )r   rb   r   r   )r)   é   r   é   )r(   r(   rd   r   )r˜   r)   rc   r   )r   r   r(   r—   )r   r(   r   r˜   )r–   r–   r)   r   )rd   rc   r˜   rb   )rc   r)   r•   rd   )r(   r   r   r–   )r˜   r(   r   r—   )r)   rb   r   r   )r•   r   rd   r•   )rc   rd   r–   r)   )r   rc   r˜   rd   )rd   r–   r   r•   )r   r   r)   r)   )r•   rb   r(   r   )r–   r   rc   r˜   )rd   r   r   r–   )r˜   r   r   r   )r)   r˜   rc   r—   )r   rd   r•   r•   )r(   r   r–   rb   )r   r—   rd   r)   )r•   rc   r˜   r   )r(   r˜   r)   r•   )r–   rd   r   rb   )rc   r–   r   r(   )r˜   r–   r(   r•   )r•   r   r   r)   )rd   r   r)   rd   )r   rd   r–   r˜   )r   r   rc   r   )r(   r)   r˜   r—   )r–   r   rd   r   )r)   r(   r•   r–   )rc   rc   r   r   )r   r•   r   r   )r   rc   r–   r   )rd   rb   rc   r(   )r˜   r•   r)   r–   )r   r   r(   rd   )r   r˜   r•   r—   )r–   r   r˜   r   )r(   rb   rc   r   )r)   rc   r   r)   )rd   r(   r   r–   )r•   r˜   r   r•   )r(   r   r–   r(   )r   rc   r   rb   )rd   r—   r)   r   )rc   r   r   rd   )r˜   r˜   r•   r)   )r(   r–   r   r   )r   r(   r   r   )r)   r   r–   r—   )r˜   rc   rd   rd   )r•   r   rc   r•   )r–   r•   r•   r(   )r   r—   r   r   )r   r)   r)   r   )rd   r˜   r(   rc   )rc   rb   r˜   r   ©r   r   r   r   c                 óD   — |                       d| j        | j        ¦  «        S )Nr   )rE   Ú
dimensionsÚ
widthScaler?   s    r   rI   zUSPS_4State.<lambda>  s   € °·
²
¸5ÀÄÐQUÔQ`Ñ0aÔ0a€ r   c                 óD   — |                       d| j        | j        ¦  «        S )Nr   )rE   r›   ÚheightScaler?   s    r   rI   zUSPS_4State.<lambda>  s   € ¨d¯jªj¸¸t¼ÈtÔO_Ñ.`Ô.`€ r   c                 óp   — d| j         v r| j         d         S |                      d| j        | j        ¦  «        S )NÚ	_barWidthr   ©Ú__dict__rE   r›   rœ   r?   s    r   ÚbarWidthzUSPS_4State.barWidth  s6   € à˜$œ-Ð'Ð'Ø”= Ô-Ð-Ø�zŠz˜' $¤/°$´/ÑBÔBÐBr   c                 ó~   — | j         d         \  }}dt          t          |dz  |¦  «        |¦  «        z  | j        d<   d S )Nr   rA   ç      R@r    ©r›   rO   rP   r¢   ©r4   r5   rf   Úxs       r   r£   zUSPS_4State.barWidth  sA   € àŒ˜wÔ'‰ˆˆ1Ø%'­­C°°d±
¸1Ñ,=Ô,=¸aÑ(@Ô(@Ñ%@ˆŒ�kÑ"Ð"Ð"r   c                 óp   — d| j         v r| j         d         S |                      d| j        | j        ¦  «        S )NÚ_pitchr   r¡   r?   s    r   r   zUSPS_4State.pitch  s6   € à�t”}Ð$Ð$Ø”= Ô*Ð*Ø�zŠz˜' $¤/°$´/ÑBÔBÐBr   c                 ó~   — | j         d         \  }}dt          t          |dz  |¦  «        |¦  «        z  | j        d<   d S )Nr   rA   r¥   rª   r¦   r§   s       r   r   zUSPS_4State.pitch!  sA   € àŒ˜wÔ'‰ˆˆ1Ø"$¥S­¨U°4©Z¸Ñ):Ô):¸1Ñ%=Ô%=Ñ"=ˆŒ�hÑÐÐr   c                 ó´   — d| j         v r| j         d         S |                      d| j        | j        ¦  «        |                      d| j        | j        ¦  «        z
  S )NÚ
_barHeightr   )r¢   rE   Útopsrž   Úbottomsr?   s    r   Ú	barHeightzUSPS_4State.barHeight&  sR   € à˜4œ=Ð(Ð(Ø”= Ô.Ð.Ø�zŠz˜#˜dœi¨Ô(8Ñ9Ô9¸D¿JºJÀsÈ4Ì<ÐX\ÔXhÑ<iÔ<iÑiÐir   c                 ó  — | j         d         d         | j        d         d         z
  }| j         d         d         | j        d         d         z
  }dt          t          |dz  |¦  «        |¦  «        z  x}| j        d<   ||z
  ||z
  z  | _        d S )Nr   r   r   rA   r¥   r­   )r®   r¯   rO   rP   r¢   rW   r§   s       r   r°   zUSPS_4State.barHeight,  sŠ   € àŒI�cŒN˜1Ô ¤¨SÔ 1°!Ô 4Ñ4ˆØŒI�cŒN˜1Ô ¤¨SÔ 1°!Ô 4Ñ4ˆØ.0µµS¸¸t¹ÀAÑ5FÔ5FÀqÑ1IÔ1IÑ.IÐIˆ�”˜lÑ+Ø  1™9 q¨¡sÑ+ˆŒˆˆr   c                 óH   — t          dt          d| j        ¦  «        ¦  «        S ©Nr   r   )rO   rP   rS   r?   s    r   rI   zUSPS_4State.<lambda>3  s   € ¥s¨1­S°°4´>Ñ-BÔ-BÑ'CÔ'C€ r   c                 óH   — t          dt          d| j        ¦  «        ¦  «        S r³   )rO   rP   rW   r?   s    r   rI   zUSPS_4State.<lambda>4  s   € ­¨A­c°!°D´OÑ.DÔ.DÑ(EÔ(E€ r   c                 ó8   — |                       ¦   «          | j        S r:   )ÚcomputeSizeÚ_widthr?   s    r   r   zUSPS_4State.width6  s   € à×ÒÑÔÐØŒ{Ðr   c                 ó8   — |                       ¦   «          | j        S r:   )r¶   Ú_heightr?   s    r   ÚheightzUSPS_4State.height;  s   € à×ÒÑÔÐØŒ|Ðr   c                 ó   — d S r:   r*   ©r4   Úvs     r   r   zUSPS_4State.widthA  ó   € àˆr   c                 ó   — d S r:   r*   r¼   s     r   rº   zUSPS_4State.heightD  r¾   r   c                 ó   — t          | dd ¦  «        s|| j        }| j        }| j        }| j        }| j        }| j        }| j        }d|z  |z   d|z  z   | _        d|z  |z   | _	        | j
        r| xj	        | j        dz  |z   z  c_	        d| _        d S d S )NrN   r   é@   g333333ó?T)Úgetattrrœ   rž   r°   r£   r   ÚhorizontalClearZoneÚverticalClearZoner·   r¹   r_   r[   rN   )r4   ÚwsÚhsr°   r£   r   r   r   s           r   r¶   zUSPS_4State.computeSizeH  s®   € Ý�t˜H TÑ*Ô*ð 	Ø”ˆBØÔ!ˆBØœˆIØ”}ˆHØ”JˆEØÔ*ˆCØÔ(ˆCØ˜C™% (Ñ*¨R°©XÑ5ˆDŒKØ˜S™5 ™?ˆDŒLØÔ!ð 6Ø�” ¤¨cÑ 1°#Ñ 5Ñ5�”ØˆDŒKˆKˆKð	ð 	r   c                 óF   — |                       ¦   «          | j        | j        fS r:   )r¶   r   rº   )r4   ÚaWÚaHs      r   ÚwrapzUSPS_4State.wrapW  s#   € Ø×ÒÑÔÐØŒz˜4œ;Ð&Ð&r   c                 ó®   — i }| j         }dD ]H}|                      || j        |¦  «        |z   }||                      || j        |¦  «        |z   |z
  f||<   ŒI|S )Nr™   )rž   rE   r¯   r®   )r4   Úy0ÚvInforÆ   ÚbÚys         r   Ú_getBarVInfozUSPS_4State._getBarVInfo[  sk   € ØˆØÔˆØ"ð 	;ð 	;ˆAØ—
’
˜1˜Tœ\¨"Ñ-Ô-¨bÑ0ˆAØ˜Ÿš A d¤i°Ñ3Ô3°BÑ6¸Ñ:Ð:ˆE�!‰HˆHØˆr   c                 ó:  — |                       ¦   «          | j        }| j        }| j        }|}|| j        dz  z   }| j        }|                      |¦  «        }| j        D ]*}||         \  }	}
|                      ||	||
¦  «         ||z  }Œ+|  	                    ¦   «          d S )Ng      à?)
r¶   rÃ   rÄ   r£   r°   r   rÐ   r”   ÚrectÚdrawHumanReadable)r4   r   r   Úbwr¨   rÌ   ÚdwrÍ   rÎ   ÚybÚhbs              r   ÚdrawzUSPS_4State.drawc  s´   € Ø×ÒÑÔÐØÔ&ˆØÔ$ˆØŒ]ˆØˆØ�” Ñ#Ñ#ˆØŒZˆØ×!Ò! "Ñ%Ô%ˆØ”ð 	ð 	ˆAØ˜1”X‰FˆB�Ø�IŠI�a˜˜2˜bÑ!Ô!Ð!Ø�‰GˆAˆAØ×ÒÑ Ô Ð Ð Ð r   c                 ó¤   — | j         }| j        }|r|fpd}d                     |dd…         |dd…         |dd…         |dd …         f|z   ¦  «        S )Nr*   ú r   r   r(   r   )rG   r6   r�   )r4   rG   r6   s      r   r5   zUSPS_4State.valuer  sb   € Ø”=ˆØ”,ˆØÐ(˜w˜jÐ.¨BˆØ�xŠx˜ ! A #œ x°°!°¤}°X¸aÀ¸d´^ÀHÈRÈSÈSÄMÐRÐSZÑZÑ[Ô[Ð[r   c                 ó8   — | j                              d|¦  «        S )NrG   )r¢   Ú__setitem__rR   s     r   rI   zUSPS_4State.<lambda>w  s   € ¨d¬m×.GÒ.GÈ
ÐSXÑ.YÔ.Y€ r   c                 ó²   — | j         rO| j        }| j        }| j        }| j        }| j        d|z  z   d|z  z   }|                      ||| j        ||¦  «         d S d S )Nr   gš™™™™™É?)r_   rÃ   rÄ   ÚfontNamer[   r°   Úannotater5   )r4   r   r   rÞ   r[   rÏ   s         r   rÓ   zUSPS_4State.drawHumanReadabley  sp   € ØÔð 	>ØÔ*ˆCØÔ(ˆCØ”}ˆHØ”}ˆHØ”˜q ™uÑ$ S¨¡\Ñ1ˆAØ�MŠM˜#˜a ¤
¨8°HÑ=Ô=Ð=Ð=Ð=ð	>ð 	>r   Úmiddlec           	      ó<   — t          j        | |||||d¬¦  «         d S )NÚstart)Úanchor)r   rß   )r4   r¨   rÏ   ÚtextrÞ   r[   rã   s          r   rß   zUSPS_4State.annotate‚  s(   € ÝÔ˜˜a  $ x°ÀÐHÑHÔHÐHÐHÐHr   N)r!   r"   )r   )rà   )0Ú__name__Ú
__module__Ú__qualname__Ú__doc__rQ   rV   rZ   r^   Údictr®   r¯   r›   r8   r+   rE   ÚstaticmethodrG   Úpropertyr6   rS   rW   r[   r_   rk   rz   r   r‚   r‰   r”   rŒ   r‹   rÃ   rÄ   r£   Úsetterr   r°   rœ   rž   r   rº   r¶   rÊ   rÐ   rØ   r5   rÓ   rß   r*   r   r   r   r      sš  € € € € € ðð à€JØ€KØ€IØ€Nð%ØˆtØØØØð	ñ ô ˆð �$Ø!Ø!Ø!Ø!ð	ñ ô ˆð �TØ"Ø#ØØð	ñ ô ˆ
ð4!ð !ð !ð !ðð ð ð&ð &ð &ð ˆL˜ÑÔ€Eð"ð "ð "ð ˆxÐ3Ð3°HÑ=Ô=€Hð ð  ð  ð ˆhÐ1Ð1°'Ñ:Ô:€Gð.ð .ð .ð �Ð5Ð5°iÑ@Ô@€Ið!ð !ð !ð �Ð7Ð7¸
ÑCÔC€Jðð ð ð ˆxÐ3Ð3°HÑ=Ô=€Hð$ð $ð $ð �HÐ=Ð=¸mÑLÔL€Mð4ð 4ð 4ðj ˆX�fÑÔ€Fðð ð ð, �˜Ñ#Ô#€Ið%ð %ð %ð ˆX�fÑÔ€Fð%ð %ð %ð ˆX�fÑÔ€Fð ð  ð  ð. �˜*Ñ%Ô%€Jðð ð ð ˆx˜Ñ!Ô!€Hð€Fð$ !€JØ"˜(Ð#aÐ#aÑbÔbÐØ ˜Ð!`Ð!`ÑaÔaÐàðCð Cñ „XðCð
 „_ðAð Añ „_ðAð ðCð Cñ „XðCð
 „\ð>ð >ñ „\ð>ð ðjð jñ „Xðjð
 Ôð,ð ,ñ Ôð,ð �ÐCÐCÑDÔD€JØ�(ÐEÐEÑFÔF€Kàðð ñ „Xðð ðð ñ „Xðð
 „\ðð ñ „\ðà„]ðð ñ „]ððð ð ð'ð 'ð 'ðð ð ð ð!ð !ð !ð\ð \ð \ð
 ˆH�UÐYÐYÑZÔZ€Eð>ð >ð >ðIð Ið Ið Ið Ið Ir   r   c                 óê  — t          t          | ¦  «        ¦  «        dd…         }ddt          |¦  «        z
  z  |z   }d}d}t          |dd…         d¦  «        dz  }t          dd	¦  «        D ]"}||z  d
z  r	|dz  |z  }n|dz  }|dz  }|dz  }Œ#t          ddd¦  «        D ]R}t          |||dz   …         d¦  «        dz  }t          d	¦  «        D ]"}||z  d
z  r	|dz  |z  }n|dz  }|dz  }|dz  }Œ#ŒS|S )aV  
    >>> usps = [USPS_4State('01234567094987654321',x).binary for x in ('','01234','012345678','01234567891')]
    >>> print(' '.join(nhex(x) for x in usps))
    0x1122103b5c2004b1 0xd138a87bab5cf3804b1 0x202bdc097711204d21804b1 0x16907b2a24abc16a2e5c004b1
    >>> print(' '.join(nhex(_crc11(x)) for x in usps))
    0x51 0x65 0x606 0x751
    r   NÚ0é   i5  iÿ  é   r(   r˜   rm   r   rc   )r   r-   r/   re   )r5   ÚhexbytesÚgpr…   ÚdatarÎ   r¨   s          r   ro   ro   …  sK  € õ •C˜‘J”JÑÔ   Ô#€HØ�B•s˜8‘}”}Ñ$Ñ% hÑ.€HØ	€BØ
€CÝˆx˜˜˜Œ|˜BÑÔ Ñ"€DÝ�1�Q‰ZŒZð ð ˆØ�$‰J˜Ñð 	Ø˜‘6˜2‘+ˆCˆCà�q‘&ˆCØˆu‰ˆØ�‰
ˆˆå�1�T˜!‰_Œ_ð ð ˆÝ�8˜A˜a ™c˜E”? 2Ñ&Ô&¨Ñ)ˆÝ�q‘”ð 	ð 	ˆAØ�d‘
˜EÑ!ð Ø˜A‘v˜r‘k��à˜1‘f�Ø�5‰LˆCØ�Q‰JˆDˆDð	ð €Jr   c                 óR   — d}t          d¦  «        D ]}|dz  }|| dz  z  }| dz  } Œ|S )zureverse unsigned 13 bit number
    >>> print(_ru13(7936), _ru13(31), _ru13(47), _ru13(7808))
    31 7936 7808 47
    r   é   r   )re   )r   r   r¨   s      r   Ú_ru13rö   ¥  sD   € ð
 	
€AÝ�2‰YŒYð ð ˆØ	ˆa‰ˆØ	ˆQ�‰U‰
ˆØ	ˆa‰ˆˆØ€Hr   c                 óF  — |dgz  }d}|dz
  }t          d¦  «        D ]g}d}t          d¦  «        D ]}||d|z  z  dk    z  }Œ|| k    rŒ,t          |¦  «        }||k     rŒB||k    r|||<   |dz  }ŒS|||<   |dz  }|||<   |dz  }Œh||dz   k    sJ d|dz   || fz  ¦   «         ‚|S )a,  create and return table of 13 bit values with N bits on
    >>> T = _initNof13Table(5,1287)
    >>> print(' '.join('T[%d]=%d' % (i, T[i]) for i in (0,1,2,3,4,1271,1272,1284,1285,1286)))
    T[0]=31 T[1]=7936 T[2]=47 T[3]=7808 T[4]=55 T[1271]=6275 T[1272]=6211 T[1284]=856 T[1285]=744 T[1286]=496
    Nr   r   i    rõ   z!u+1(%d)!=l(%d) for %d of 13 table)re   rö   )	ÚNÚlenTr   r	   Úurˆ   ÚbcrÎ   r   s	            r   r}   r}   ±  sô   € ð 	ˆdˆV‰€AØ	€AØˆQ‰€AÝ�4‰[Œ[ð ð ˆØˆÝ�r‘”ð 	 ð 	 ˆAØ�1�a˜‘d‘8˜a’-ÑˆBˆBØˆqŠ5ˆ5�(Ý�!‰HŒHˆØˆQŠ3ˆ3�ØˆaŠ4ˆ4ØˆAˆa‰DØ�‰FˆAˆAàˆAˆa‰DØ�‰FˆAØˆAˆa‰DØ�‰FˆAˆAØˆq�‰sŠ8ˆ8ˆ8Ð8¸A¸a¹CÀÀ!¸9ÑD‰8Œ8ˆ8Ø€Hr   c                  ó2   — dd l } |                      ¦   «         S )Nr   )ÚdoctestÚtestmod)rý   s    r   Ú_testrÿ   Ì  s   € Ø€N€N€NØ�?Š?ÑÔÐr   Ú__main__N)Ú
__future__r   Ú__version__Ú__all__Ú!reportlab.graphics.barcode.commonr   Úreportlab.lib.utilsr   r   r   ro   rö   r}   rÿ   rå   r*   r   r   ú<module>r     sò   ðð &Ð %Ð %Ð %Ð %Ð %Ø€Ø
€à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ðrIð rIð rIð rIð rI�'ñ rIô rIð rIðhð ð ð@
ð 
ð 
ðð ð ð6ð ð ð ˆzÒÐØ	€E�G„G€G€G€Gð Ðr   