Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 NebÂ<ã@svddlmZdZdZddlmZddlmZdd„ZGdd„deƒZ d d „Z d d „Z d d„Z dd„Z edkrre ƒdS)é)Úprint_functionz3.3.0Ú USPS_4State)ÚBarcode)ÚasNativecCs>t|ƒ}|dd…|dd…jƒ}|jdƒr:|dd…}|S)znormalized hexNéÚlééÿÿÿÿ)ÚhexÚlowerÚendswith)ÚiÚr©rúB/tmp/tmp4i9tl1d3/lib64/python/reportlab/graphics/barcode/usps4s.pyÚnhex s  rcD@sFeZdZdZdZdZdZdZedidjdkdld �Z edodrdudxd �Z edydzd{d|d�Z d}dd„Z dd„Z dd„ZeeƒZdd„Zedd„eƒZdd„Zed d„eƒZd!d"„Zed#d„eƒZd$d%„Zed&d„eƒZd'd(„Zed)d„eƒZd*d+„Zed,d„eƒZd-d.„ZeeƒZd/d0„ZeeƒZd1d2„ZeeƒZd3d4„ZeeƒZd5d6„ZeeƒZd7d8„ZeeƒZd¿ZdÀZedGd„ƒZedHd„ƒZ edIdJ„ƒZ!e!j"dKdJ„ƒZ!edLdM„ƒZ#e#j"dNdM„ƒZ#edOdP„ƒZ$e$j"dQdP„ƒZ$edRd„ƒZ%edSd„ƒZ&dTdU„Z'ee'ƒZ'dVdW„Z(ee(ƒZ(dXdY„Z)dZd[„Z*dÁd\d]„Z+d^d_„Z,d`da„Z-ee-dbd„ƒZ-dcdd„Z.dÂdfdg„Z/dhS)ÃrzC USPS 4-State OneView (TM) barcode. All info from USPS-B-3200A ré rç°?ç…ëQ¸µ?ç+‡ÙÎ÷“?çÉv¾Ÿ/�?)ÚFÚTÚAÚD)rrrr縅ëQ¸Ž?çš™™™™™™?ç”ö_˜L¥?çš™™™™™©?çÀ?çyé&1¬œ?)ÚwidthÚpitchÚhczÚvczÚ01234567094987654321ÚcKs˜|jƒt|tƒrt|ƒnt|ƒ}|s`t|ƒd krN|dd…|dd…}}q|tdt|ƒƒ‚nt|ƒd kr|td t|ƒƒ‚||_||_|j f|ŽdS) Nééééz;value+routing length must be 20, 25, 29 or 31 digits not %déé rz/routing length must be 5, 9 or 11 digits not %d)r'r(r)r*)r+r,r) Ú_initÚ isinstanceÚintÚstrrÚlenÚ ValueErrorÚ _trackingÚ_routingZ _setKeywords)ÚselfÚvalueÚroutingZkwdrrrÚ__init__?s  zUSPS_4State.__init__cCsd|_d|_d|_d|_dS)N)Ú_bvalueÚ _codewordsÚ _charactersÚ _barcodes)r5rrrr-NszUSPS_4State._initcCs(||}d|dd|||dS)NéHrrr)ÚkindrÚsÚVrrrÚscaleTszUSPS_4State.scalecCs|jƒ||_dS)N)r-r3)r5ÚtrackingrrrrBYszUSPS_4State.trackingcCs|jS)N)r3)r5rrrÚ\szUSPS_4State.cCs|jƒ||_dS)N)r-r4)r5r7rrrr7^szUSPS_4State.routingcCs|jS)N)r4)r5rrrrCascCsd|_ttd|ƒdƒ|_dS)Nrr)Ú_sizedÚminÚmaxÚ _widthSize)r5r6rrrÚ widthSizecszUSPS_4State.widthSizecCs|jS)N)rG)r5rrrrCfscCsd|_||_dS)N)rDÚ _heightSize)r5r6rrrÚ heightSizehszUSPS_4State.heightSizecCs|jS)N)rI)r5rrrrCkscCsd|_||_dS)N)rDÚ _fontSize)r5r6rrrÚfontSizemszUSPS_4State.fontSizecCs|jS)N)rK)r5rrrrCpscCsd|_||_dS)N)rDÚ_humanReadable)r5r6rrrÚ humanReadablerszUSPS_4State.humanReadablecCs|jS)N)rM)r5rrrrCusc Csˆ|j}|�s„|j}t|ƒ}yX|dkr*d}nF|dkr@t|ƒd}n0|dkrVt|ƒd}n|dkrlt|ƒd}nt‚Wntd|ƒ‚YnX|j}|dd …}y4|d 9}|t|dƒ7}|d9}|t|dƒ7}Wntd |ƒ‚YnXd }xŒdD]„\}}|} ||7}|| |…}yBt|ƒ|k�r*t‚x*t|ƒD]} |d 9}|t|| ƒ7}�q4WWntd|||fƒ‚YnX�qö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 rr+rr,i¡†ri¡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úspecial serviceséúcustomer identifieréúsequence numberz+Problem converting %s, %s must be %d digits©rPrQ©rRrS©rTr,)rUrVrW)r9r7r1r/r2rBÚrange) r5r6r7ÚnrBZsvaluer ÚnameZndÚjrrrÚbinarywsP   zUSPS_4State.binaryc Cs |j�s|j}t|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}} t|dƒ\}} t|dƒ\}} d|koždkns¼tdtt|ƒƒ|fƒ‚t|ƒ|_|jd@rØ|d7}|d9}tt t|| | | ||||||f ƒƒ|_|jS) z¶convert binary value into codewords >>> print(USPS_4State('01234567094987654321','01234567891').codewords) (673, 787, 607, 1022, 861, 19, 816, 1294, 35, 602) i|iUri’z.improper value %s passed to _2codewords A-->%sii“r) r:r\ÚdivmodÚAssertionErrorr r/Ú_crc11Ú_fcsÚtupleÚmap) r5r6rÚJÚIÚHÚGrÚErÚCÚBrrrÚ codewords®s$0  $zUSPS_4State.codewordscCstddƒ|j_|jjS)Nr+i)Ú_initNof13TableÚ __class__Útable1)r5rrrrmÇszUSPS_4State.table1cCstddƒ|j_|jjS)NréN)rkrlÚtable2)r5rrrroÌszUSPS_4State.table2c CsŽ|jsˆ|j}|j}g}|j}|j}|j}xTtdƒD]H}||}|dkrP||} n ||d} ||?d@rr| d@} || ƒq2Wt|ƒ|_|jS)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 rOiiriÿ)r;rjr`ÚappendrmrorXra) r5rjÚfcsrhZaCrmror ZcwÚcrrrÚ charactersÑs"      zUSPS_4State.charactersc Csr|jsl|j}g}|j}|j}xB|jD]8\}}}}|||||?d@d|||?d@ƒq$Wdj|ƒ|_|jS)z×Get 4 state bar codes for current routing and tracking >>> print(USPS_4State('01234567094987654321','01234567891').barcodes) AADTFFDFTDADTAADAATFDTDDAAADDTDTTDAFADADDDTFFFDDTTTADFAAADFTDAADA rrr&)r<rsrpÚ _bits2barsÚtable4Újoin) r5rhriZaBZ bits2barsZdcÚdbZacÚabrrrÚbarcodesês0 zUSPS_4State.barcodesérérQrOr,é ér+rSrrrrcCs|jd|j|jƒS)Nr#)rAÚ dimensionsÚ widthScale)r5rrrrC scCs|jd|j|jƒS)Nr$)rAr~Ú heightScale)r5rrrrCscCs&d|jkr|jdS|jd|j|jƒS)NÚ _barWidthr!)Ú__dict__rAr~r)r5rrrÚbarWidths  zUSPS_4State.barWidthcCs0|jd\}}dtt|d|ƒ|ƒ|jd<dS)Nr!r=gR@r�)r~rErFr‚)r5r6rYÚxrrrrƒscCs&d|jkr|jdS|jd|j|jƒS)NÚ_pitchr")r‚rAr~r)r5rrrr"s  zUSPS_4State.pitchcCs0|jd\}}dtt|d|ƒ|ƒ|jd<dS)Nr"r=gR@r…)r~rErFr‚)r5r6rYr„rrrr"!scCs8d|jkr|jdS|jd|j|jƒ|jd|j|jƒS)NÚ _barHeightr)r‚rAÚtopsr€Úbottoms)r5rrrÚ barHeight&s  zUSPS_4State.barHeightcCsp|jdd|jdd}|jdd|jdd}dtt|d|ƒ|ƒ}|jd<|||||_dS)Nrrrr=gR@r†)r‡rˆrErFr‚rJ)r5r6rYr„rrrr‰,s"cCstdtd|jƒƒS)Nrr)rErFrH)r5rrrrC3scCstdtd|jƒƒS)Nrr)rErFrJ)r5rrrrC4scCs|jƒ|jS)N)Ú computeSizeÚ_width)r5rrrr!6szUSPS_4State.widthcCs|jƒ|jS)N)rŠÚ_height)r5rrrÚheight;szUSPS_4State.heightcCs‚t|ddƒs~|j}|j}|j}|j}|j}|j}|j}d||d||_d|||_ |j rx|j |j d|7_ d|_ dS)NrDré@g333333ó?T) Úgetattrrr€r‰rƒr"ÚhorizontalClearZoneÚverticalClearZoner‹rŒrNrLrD)r5ÚwsÚhsr‰rƒr"r#r$rrrrŠ@s zUSPS_4State.computeSizecCs|jƒ|j|jfS)N)rŠr!r�)r5ZaWZaHrrrÚwrapOszUSPS_4State.wrapcCsPi}|j}x@dD]8}|j||j|ƒ|}||j||j|ƒ||f||<qW|S)Nrrrr)rrrr)r€rArˆr‡)r5Úy0ÚvInfor“ÚbÚyrrrÚ _getBarVInfoSs  $zUSPS_4State._getBarVInfoc Cs||jƒ|j}|j}|j}|}||jd}|j}|j|ƒ}x2|jD](}||\} } |j|| || ƒ||7}qDW|j ƒdS)Ngà?) rŠr�r‘rƒr‰r"r™ryZrectÚdrawHumanReadable) r5r#r$Zbwr„r•Zdwr–r—ZybZhbrrrÚdraw[s    zUSPS_4State.drawcCsP|j}|j}|r|fpf}dj|dd…|dd…|dd…|dd…f|ƒS)Nú rrr+r)rBr7rv)r5rBr7rrrr6jszUSPS_4State.valuecCs|jjd|ƒS)NrB)r‚Ú __setitem__)r5r6rrrrCoscCsL|jrH|j}|j}|j}|j}|jd|d|}|j|||j||ƒdS)Nrgš™™™™™É?)rNr�r‘ÚfontNamerLr‰Úannotater6)r5r#r$ržrLr˜rrrršqszUSPS_4State.drawHumanReadableÚmiddlec Cstj||||||dd�dS)NÚstart)Úanchor)rrŸ)r5r„r˜ÚtextržrLr¢rrrrŸzszUSPS_4State.annotateN)rr)rr)rr)rrç°¿ç…ëQ¸µ¿)r¤r¥ç+‡ÙÎ÷“¿çÉv¾Ÿ/�¿)r¦r§ç°¿ç…ëQ¸µ¿)r¨r©ç+‡ÙÎ÷“¿çÉv¾Ÿ/�¿)rªr«)rr)rr)rr)r r )r%r&©rzrr{rQ©rrOrr©r,r|rr}©r+r+rSr©r}r,rQr©rrr+r|©rr+rr}©r{r{r,r©rSrQr}rO©rQr,rzrS©r+rrr{©r}r+rr|©r,rOrr©rzrrSrz©rQrSr{r,©rrQr}rS©rSr{rrz©rrr,r,©rzrOr+r©r{rrQr}©rSrrr{©r}rrr©r,r}rQr|©rrSrzrz©r+rr{rO©rr|rSr,©rzrQr}r©r+r}r,rz©r{rSrrO©rQr{rr+©r}r{r+rz©rzrrr,©rSrr,rS©rrSr{r}©rrrQr©r+r,r}r|©r{rrSr©r,r+rzr{©rQrQrr©rrzrr©rrQr{r©rSrOrQr+©r}rzr,r{©rrr+rS©rr}rzr|©r{rr}r©r+rOrQr©r,rQrr,©rSr+rr{©rzr}rrz©r+rr{r+©rrQrrO©rSr|r,r©rQrrrS©r}r}rzr,©r+r{rr©rr+rr©r,rr{r|©r}rQrSrS©rzrrQrz©r{rzrzr+©rr|rr©rr,r,r©rSr}r+rQ©rQrOr}r)Ar¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërì)rrrr)r)r )0Ú__name__Ú __module__Ú __qualname__Ú__doc__rGrIrKrMÚdictr‡rˆr~r8r-rAÚ staticmethodrBÚpropertyr7rHrJrLrNr\rjrmrorsryrurtr�r‘rƒÚsetterr"r‰rr€r!r�rŠr”r™r›r6ršrŸrrrrrs° 5         cCstt|ƒƒdd…}ddt|ƒ|}d}d}t|dd…dƒd>}xDtdd ƒD]6}||Ad @rp|d >|A}n|d >}|dM}|d K}qRWxrtdddƒD]b}t|||d…dƒd >}xBtd ƒD]6}||Ad @rà|d >|A}n|d >}|dM}|d K}qÂWqšW|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 rNÚ0éi5iÿér+r}iré rQrö)rr/r1rX)r6ZhexbytesÚgprqÚdatar—r„rrrr_}s(   r_cCs6d}x,tdƒD] }|dK}||d@O}|dL}qW|S)zureverse unsigned 13 bit number >>> print(_ru13(7936), _ru13(31), _ru13(47), _ru13(7808)) 31 7936 7808 47 rrør)rX)r rr„rrrÚ_ru13�s   rûc CsÎ|dg}d}|d}x�tdƒD]„}d}x$tdƒD]}||d|>@dk7}q2W||krXq t|ƒ}||krjq ||kr„|||<|d8}q |||<|d7}|||<|d7}q W||dksÊtd|d||fƒ‚|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 Nrri røz!u+1(%d)!=l(%d) for %d of 13 table)rXrûr^) ÚNZlenTrrÚurrZbcr—rrrrrk©s*   "rkcCsddl}|jƒS)Nr)ÚdoctestÚtestmod)rþrrrÚ_testÄsrÚ__main__N)r)Ú __future__rÚ __version__Ú__all__Z!reportlab.graphics.barcode.commonrZreportlab.lib.utilsrrrr_rûrkrrírrrrÚs   n