
    kf'                         d Z dZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZ g dfd	Zd
dddZddddZd dZd dZd!dZd Zd Zd"dZd Zd Zd#dZd Z G d d          ZdS )$z3.3.0     N)BytesIO)	rl_config)ImageReader	isUnicode)asciiBase85EncodeasciiBase85Decode<   c                     t          dt          |           |          D ]"}|                    | |||z                       #|S Nr   )rangelenappend)srcdst	chunkSizeis       Z/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/reportlab/pdfbase/pdfutils.py_chunkerr      sJ    1SXXi(( ' '

3q9}%&&&&J    RGBCMYKG)r   r   L         Fc           	      L   dd l }t          |           }|-|                    |           |r|                                rd S |                                \  }}|                                }g }|j        }	 |	d            |	d|d|dt          |j                 d            |	d           t          |          ||z  t          |j                 z  k    s
J d            |
                    |          }
t          |
          }t          ||            |	d	           |S )
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      s2   KKK
h

C


3 	#++-- 	4++--Hi
..

CD[F
F4LLL
FF999XVYV^M_M_M_`aaa
F4LLLs88x)+Ich,?????Aa???s##J
++G WT
F4LLLKr   c           	      .   dd l }t          |           }|-|                    |           |r|                                rd S |                                \  }}|                                }g }|j        }	 |	d            |	d|d|dt          |j                 d            |	d           t          |          ||z  t          |j                 z  k    s
J d            |
                    |          }
t          |
|            |	d	           |S )
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%   KKK
h

C


3 	#++-- 	4++--Hi
..

CD[F
F4LLL
FFHHHiiiQTQYHZHZHZ[\\\
F4LLLs88x)+Ich,?????Aa???s##J Z
F4LLLKr   c                    t           j                            |           d         t          j        rdpdz   }| |k    rit          |           rHddlm} |r>t          d ||          	                                
                    d                    S dS t          d| z            t          j        rt          | |          }nt          | |          }|r|S t          |d          }|                    d                    |          dz              |                                 t          j        rt'          d	|z             dS dS )
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   sX    !!(++A.)2B2Mv2WQWXJX&& 	@999999afT--
2K2K2P2P2R2R2X2XY_2`2`&a&aaaa3h>??? 	.--DD--D&$; D!!	D!!&()))				 	5&344444	5 	5r   c                     ddl }t          | t                    r|                     |           }n| }|D ]?}t          |          rt          j        rt          d|z             0t          |           @dS )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   s     KKK$s 99T?? % %X&& 	%  H;hFGGG8$$$$% %r   c                 ,   t           j                            |           d         t          j        rdpdz   }t           j                            |          r>t          j        |           d         }t          j        |          d         }||k    rdS dS dS )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.)2B2Mv2VQVWJ	w~~j!! 	))!,gj))!,;&&11qr   r>    c                     |                      d|                               d|                               d|                               ||          S )zzNormalizes 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   _normalizeLineEndsrj      sH     WVX&&WT8$$WT8$$WXw''	)r   c                    t          |           r|                     d          } t                      }|                    t	          j        |                      |                    d           |                                S )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   _AsciiHexEncodert      sm      &W%%YYF
LL!%(()))
LL??r   c           	         t          |           s|                     d          } d                    |                                           d         dk    s
J d            dd         t	                    dz  dk    s
J d	            d                    fd
t          dt	                    d          D                       S )zeDecodes input using ASCII-Hex coding.

    Not used except to provide a test of the inverse function.rl   r   >z'Invalid terminator for Ascii Hex StreamN   r   z(Ascii Hex stream has odd number of bytesc           
      `    g | ]*}t          t          ||d z            d                    +S )rx      )chrint).0r   strippeds     r   
<listcomp>z#_AsciiHexDecode.<locals>.<listcomp>   s7    SSSQCHQqsUOB//00SSSr   )r   decoderL   rH   r   r   )rr   r~   s    @r   _AsciiHexDecoder      s     U &W%%wwu{{}}%%HB<3 I}Hx==1!!!#M!!!77SSSS%#h--PQ:R:RSSSTTTr   c                 R   g }t          |           }d}||z  }||k     r0|                    | |||z                       |dz   }||z  }||k     0t          |d                   dk    r,|d         dd         |d         d         |d         z   g|dd<   d                    |          S )z>Wraps input at a given column size by inserting 
 characters.r   r   rv   Nr>   )r   r   rL   )rr   columnsrs   lengthr   poss         r   _wrapr      s    FZZF	A
A+C
,,eCGO,---Ek ,,
 6":bz#2#vbz"~fRj'@Arss;;vr   c                    ddl }ddlm} g d}g d}g d}d}d}|s|                    d|                     d	                    }|d         d
k    r}|                    d|                     d	                    }|d         |v r|                     dd	           |                    d|                     d	                    }|d         dk    r |d          |                    d|                     d                    }	|	d         dz  |	d	         z   }
|                    d|                     d                    }	|	d         dz  |	d	         z   }|                    d|                     d	                    }	|	d         }||
||fS |d         dk    r|                    d|                     d                    }|d         dz  |d	         z   dz
  }|                     |          }|                    d|dd                   }	|                    d|dd                   }|d         dz  |d	         z   |	d         dz  |	d	         z   f}n||d         |v r |d|d         z            |d         |vrT|                    d|                     d                    }|                     |d         dz  |d	         z   dz
  d	           |dS dS )z@Read width, height and number of components from open JPEG file.r   N)PDFError)         )
                           r   )                                 )H   r   Br      rx   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      s    MMM111111 &%%L 	GFF 
 	MLL  CD 7MM#uzz!}}--Q44<<c5::a==11At|##

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

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

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

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

166

QqTQY!A$.2A666=  7 7 7 7 7r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )_fuscc                     |s
J d            || _         t          |          | _        t          |          pd| _        d S )Nz'Argument k should be a non empty string   )_kr   _klenr|   _n)selfkr   s      r   __init__z_fusc.__init__  s@    ;;;;;;VV
a&&+Ar   c                    |                      t          d                    t          t          |                     t          t          t          |                                                            | j                  S Nr   )	_fusc__rotater   rL   mapr{   _fusc__fusclistordr   r   ss     r   encryptz_fusc.encrypt  sZ    }}.rwws3t{{4PSTWXYPZPZK[K[?\?\7]7]/^/^__`d`ghhhr   c                    d                     t          t          |                     t	          t          t
          t          |                     || j                                                                               S r   )	rL   r   r{   r   r   r   r	   r   r   r   s     r   decryptz_fusc.decrypt  s[    wws3t{{4C8I$--XY[_[bZbJcJc8d8d0e0e+f+fgghhiiir   c                 z    t          |          }|dk     r||z   }||z  }|s|S || d          |d ||z
           z   S r   )r   )r   r   r   ls       r   __rotatez_fusc.__rotate!  sQ    FFQ33AaC	Q(!va1g~r   c                     t          |          }t          t          d |t          t          t          t	          || j        z            dz   | j        z  d |                                                 S )Nc                     | |z  S )N )r   r   s     r   <lambda>z_fusc.__fusc.<locals>.<lambda>*  s
    AE r   r   )r   r   r   r   r|   r   r   )r   r   slens      r   __fuscz_fusc.__fusc(  sf    1vvC))!DS3tDJ;O;OPQ;QSWSZ:Z\a]a\a9b1c1c,d,deefffr   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r     sj          i i ij j j  g g g g gr   r   )NF)r   N)r>   rb   )r
   )__version____doc__r@   ro   ior   	reportlabr   rE   r   r   reportlab.lib.rl_accelr   r	   r   r*   r,   r8   r:   rS   rZ   rD   rj   rt   r   r   r   r   r   r   r   <module>r      s   
 
			              6 6 6 6 6 6 6 6 G G G G G G G G"     c22aQ''	   6   65 5 5 52% % %.  0
) 
) 
) 
)  U U U   437 37 37jg g g g g g g g g gr   