
    Q?h'                         S r SrSSKrSSKrSSKJr  SSKJr  SSKJ	r	J
r
  SSKJrJr  / S4S	 jrS
SSS.rSSSS.rSS jrSS jrSS jrS rS rSS jrS rS rS S jrS r " S S5      rg)!z3.3.0     N)BytesIO)	rl_config)ImageReader	isUnicode)asciiBase85EncodeasciiBase85Decode<   c                 j    [        S[        U 5      U5       H  nUR                  XX2-    5        M     U$ Nr   )rangelenappend)srcdst	chunkSizeis       L/var/www/html/env/lib/python3.13/site-packages/reportlab/pdfbase/pdfutils.py_chunkerr      s1    1SXi(

3%& )J    RGBCMYKG)r   r   L         c           	         SS K n[        U 5      nUb.  UR                  U5        U(       a  UR                  5       (       a  g UR	                  5       u  pVUR                  5       n/ nUR                  n	U	" S5        U	" SU< SU< S[        UR                     < S35        U	" S5        [        U5      XV-  [        UR                     -  :X  d   S5       eUR                  U5      n
[        U
5      n[        X5        U	" S	5        U$ )
Nr   BI/W  /H  /BPC 8 /CS /z /F [/A85 /Fl]IDWrong amount of data for imageEI)zlibr   r   jpeg_fhgetSize
getRGBData_mode2csmoder   	_mode2bppcompressr   r   )filenameIMG
detectJpegr&   imgimgwidth	imgheightrawcoder   
compressedencodeds               r   makeA85Imager8      s    
h
C


3#++--++-H
..
CD[[F
4L
9XVYV^V^M_`a
4Ls8x+Ichh,???aAaa?s#J
+G W
4LKr   c           	         SS K n[        U 5      nUb.  UR                  U5        U(       a  UR                  5       (       a  g UR	                  5       u  pVUR                  5       n/ nUR                  n	U	" S5        U	" SU< SU< S[        UR                     < S35        U	" S5        [        U5      XV-  [        UR                     -  :X  d   S5       eUR                  U5      n
[        X5        U	" S	5        U$ )
Nr   r   r    r!   r"   z	 /F [/Fl]r#   r$   r%   )r&   r   r   r'   r(   r)   r*   r+   r   r,   r-   r   )r.   r/   r0   r&   r1   r2   r3   r4   r5   r   r6   s              r   makeRawImager:   9   s    
h
C


3#++--++-H
..
CD[[F
4L
HiQTQYQYHZ[\
4Ls8x+Ichh,???aAaa?s#J Z
4LKr   c                 ~   [         R                  R                  U 5      S   [        R                  =(       a    S=(       d    S-   nX:X  a[  [        U 5      (       a=  SSKJn  U(       a/  [        SU" U5      R                  5       R                  S5      5      $ g[        SU -  5      e[        R                  (       a  [        X5      nO[        X5      nU(       a  U$ [        US5      nUR                  SR!                  U5      S-   5        UR#                  5         [        R$                  (       a  ['        S	U-  5        gg)
zHProcesses image as if for encoding, saves to a file with .a85 extension.r   .a85z.bin)open_for_readN
zNo such cached image %swbzcached image as %s)ospathsplitextr   useA85cachedImageExistsreportlab.lib.utilsr=   filterreadsplitIOErrorr8   r:   openwritejoincloseverboseprint)r.   returnInMemoryr/   
cachednamer=   r5   fs          r   cacheImageFilerS   T   s     !!(+A.)2B2B2Mv2WQWXJX&&9fT-
2K2P2P2R2X2XY_2`&aa~3h>??-D-D$; D!	D!&()		&34 r   c                     SSK n[        U [        5      (       a  UR                  U 5      nOU nU HE  n[        U5      (       a'  [        R
                  (       a  [        SU-  5        M8  M:  [        U5        MG     g)zPreprocesses one or more image files.

Accepts either a filespec ('C:\mydir\*.jpg') or a list
of image filenames, crunches them all to save time.  Run this
to save huge amounts of time when repeatedly building image
documents.r   Nz#cached version of %s already exists)glob
isinstancestrrD   r   rN   rO   rS   )specrU   filelistr.   s       r   preProcessImagesrZ   m   sa     $s99T?X&&  ;hFG ! 8$ r   c                 H   [         R                  R                  U 5      S   [        R                  =(       a    S=(       d    S-   n[         R                  R                  U5      (       a9  [         R                  " U 5      S   n[         R                  " U5      S   nX#:  a  ggg)zDetermines if a cached image already exists for a given file.

Determines if a cached image exists which has the same name
and equal or newer date to the given file.r   r<   bin   r   )r@   rA   rB   r   rC   isfilestat)r.   rQ   original_datecached_dates       r   rD   rD      s{    
 !!(+A.)2B2B2Mv2VQVWJ	ww~~j!!)!,ggj)!,&r   c                     U R                  SU5      R                  SU5      R                  SU5      R                  X!5      $ )zrNormalizes different line end character(s).

Ensures all instances of CR, LF and CRLF end up as
the specified one.r>   
)replace)textdesiredunlikelys      r   _normalizeLineEndsri      s:     WVX&WT8$WT8$WX'	)r   c                     [        U 5      (       a  U R                  S5      n [        5       nUR                  [        R
                  " U 5      5        UR                  S5        UR                  5       $ )zEncodes input using ASCII-Hex coding.

This is a verbose encoding used for binary data within
a PDF file.  One byte binary becomes two bytes of ASCII.
Helper function used by images.utf-8   >)r   encoder   rK   binasciib2a_hexgetvalue)inputoutputs     r   _AsciiHexEncoders      sT     W%YF
LL!!%()
LL??r   c                    [        U 5      (       d  U R                  S5      n SR                  U R                  5       5      nUS   S:X  d   S5       eUSS n[	        U5      S-  S:X  d   S	5       eSR                  [        S[	        U5      S5       Vs/ s H  n[        [        XUS-    S
5      5      PM     sn5      $ s  snf )zaDecodes input using ASCII-Hex coding.

Not used except to provide a test of the inverse function.rk   r   >z'Invalid terminator for Ascii Hex StreamN   r   z(Ascii Hex stream has odd number of bytes   )r   decoderL   rH   r   r   chrint)rq   strippedr   s      r   _AsciiHexDecoder}      s     UW%wwu{{}%HB<3I II}Hx=1!M#MM!77%#h-PQ:RS:RQCHqsOB/0:RSTTSs   $B=c                     / n[        U 5      nSnX-  nXS:  a%  UR                  XXQ-    5        US-   nX-  nXS:  a  M%  [        US   5      S:X  a  US   SS US   S   US   -   /USS& SR                  U5      $ )z=Wraps input at a given column size by inserting 
characters.r   r   ru   Nr>   )r   r   rL   )rq   columnsrr   lengthr   poss         r   _wrapr      s    FZF	A
+C
,e,-Ek ,
 6":bz#2vbz"~fRj'@Ars;;vr   c                    SSK nSSKJn  / SQn/ SQn/ SQnSnSnU(       Gd!  UR                  SU R	                  S	5      5      nUS   S
:X  Ga  UR                  SU R	                  S	5      5      nUS   U;   a  U R                  SS	5        UR                  SU R	                  S	5      5      nUS   S:w  a  U" S5      eUR                  SU R	                  S5      5      n	U	S   S-  U	S	   -   n
UR                  SU R	                  S5      5      n	U	S   S-  U	S	   -   nUR                  SU R	                  S	5      5      n	U	S   nXX4$ US   S:X  a  UR                  SU R	                  S5      5      nUS   S-  US	   -   S-
  nU R	                  U5      nUR                  SUSS 5      n	UR                  SUSS 5      nUS   S-  US	   -   U	S   S-  U	S	   -   4nObUS   U;   a  U" SUS   -  5      eUS   U;  aB  UR                  SU R	                  S5      5      nU R                  US   S-  US	   -   S-
  S	5        U(       d  GM   gg)z@Read width, height and number of components from open JPEG file.r   N)PDFError)         )
                           r   )                                 )H   r   Br      rw   r]   z#JPEG must have 8 bits per componentBB   
      z#JPEG Unsupported JPEG marker: %0.2x)structreportlab.pdfbase.pdfdocr   unpackrG   seek)imager   r   validMarkersnoParamMarkersunsupportedMarkersdpidonexyheightwidthcolorns                 r   readJPEGInfor      sW    1 &L 	G 
 	M  CDMM#uzz!}-Q44<c5::a=1At|#

1a MM#uzz!}5Q419"#HIIMM$

16A$!)qt+MM$

16A$!)qt+MM#uzz!}51e001tMM$

16qTQY!A$&*JJqMMM$"R1MM$!B0!a1Q4'1q!A$71++DqtKLL1^+ MM$

16

QqTQY!A$.2A6= dr   c                   2    \ rS rSrS rS rS rS rS rSr	g)	_fusci  c                 ~    U(       d   S5       eXl         [        U5      U l        [        U5      =(       d    SU l        g )Nz'Argument k should be a non empty string   )_kr   _klenr{   _n)selfkr   s      r   __init___fusc.__init__  s/    ;;;qV
a&+Ar   c                     U R                  [        SR                  [        [        U R                  [        [        [        U5      5      5      5      5      5      U R                  5      $ Nr   )	_fusc__rotater   rL   maprz   _fusc__fusclistordr   r   ss     r   encrypt_fusc.encrypt  sH    }}.rwws3t{{4PSTWXYPZK[?\7]/^_`d`g`ghhr   c                     SR                  [        [        U R                  [	        [        [
        [        U R                  XR                  * 5      5      5      5      5      5      5      $ r   )	rL   r   rz   r   r   r   r	   r   r   r   s     r   decrypt_fusc.decrypt  sF    wws3t{{4C8I$--XY[b[bZbJc8d0e+fghiir   c                 `    [        U5      nUS:  a  X2-   nX#-  nU(       d  U$ X* S  US X2-
   -   $ r   )r   )r   r   r   ls       r   __rotate_fusc.__rotate!  s>    FQ3AC	(vag~r   c                     [        U5      n[        [        S U[        [        [        [	        X R
                  -  5      S-   U R                  -  S U 5      5      5      5      $ )Nc                 
    X-  $ )N )r   r   s     r   <lambda>_fusc.__fusc.<locals>.<lambda>*  s    AEr   r   )r   r   r   r   r{   r   r   )r   r   slens      r   __fusc_fusc.__fusc(  sR    1vC)!DS3tJJ;OPQ;QSWSZSZ:Z\a]a9b1c,deffr   )r   r   r   N)
__name__
__module____qualname____firstlineno__r   r   r   r   r   __static_attributes__r   r   r   r   r     s    ijgr   r   )NF)r   N)r>   z )r
   )__version____doc__r@   rn   ior   	reportlabr   rE   r   r   reportlab.lib.rl_accelr   r	   r   r*   r,   r8   r:   rS   rZ   rD   ri   rs   r}   r   r   r   r   r   r   <module>r      s    
 
    6 G"  c2aQ'	6652%.0
)U437jg gr   