
    F js                        % S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJrJrJrJrJrJrJrJr  S SKJr  SS	KJr  SS
KJrJrJrJr  SSKJ r   SSK!J"r"   S SK#J$r$J%r%J&r&J'r(   S SK*J+r+  \+RX                  r-\(       a  S SK*J$r/  S SK0J1r1  O\r/\\2S'    S SK3r3\ " S S5      5       r4\Rj                  " \65      r7Sr8\4" 5       r9/ SQr:Sr;Sr<Sr=Sr> S;S\S\"S\\?\@\@4      S\?\A\\ S\B\\S4   \\-  4   4S jjrCS\BS\D4S  jrES!\S\\/   4S" jrFS#\A\-  \-  S\4S$ jrGS%\AS\4S& jrH\S'\BS#\A\-  S\D4S( j5       rIS#\AS)\S\S\?\A\ \4   4S* jrJ   S<S#\\A\\4   S)\S\B\\\AS4   S+\S\\?\@\@4      S\4
S, jjrK " S- S.5      rLS)SS\?\M\M4   4S/ jrNS)SS\B4S0 jrO  S=S)SS1\PS-  S2\PS-  S\B4S3 jjrQS4\\M   S\B4S5 jrRS\?\S\B\M4   \M\M\M4   4S6 jrTS)SS+\S7\S\B4S8 jrU  S=S)SS1\PS-  S2\PS-  S\B4S9 jjrVS)SS\D4S: jrWg! \) a    Sr$Sr%Sr&Sr( GNf = f! \)\.4 a    Sr- GNf = f! \) a    Sr3 GNf = f)>    N)	dataclass)BytesIO)ceil)Path)	TYPE_CHECKINGAnyBinaryIOIterableOptional	TypeAlias	TypeGuardUnionno_type_check)urlopen   )FPDFException)
ImageCacheImageFilterRasterImageInfoVectorImageInfo)	SVGObject)	ImageType)ImageImageCmsTiffImagePluginfeatures)
Resampling)r   )ImageCmsProfilePILImagec                   $    \ rS rSr% Sr\\S'   Srg)ImageSettings>   compression_level N)__name__
__module____qualname____firstlineno__r$   int__annotations____static_attributes__r%       c/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/fpdf/image_parsing.pyr!   r!   >   s      sr-   r!   )AUTOFlateDecode	DCTDecode	JPXDecode	LZWDecode(   r      @             `            P      0      p            H      (      h            X      8      x            D      $      d            T      4      t            L      ,      l            \      <      |            B      "      b            R      2      r      
      J      *      j            Z      :      z            F      &      f            V      6      v            N      .      n            ^      r"      ~      r      A      !      a            Q      1      q      	      I      )      i            Y      9      y            E      %      e            U      5      u            M      -      m            ]      =      }            C      #      c            S      3      s            K      +      k            [      ;      {            G      '      g            W      7      w            O      /      o            _      ?               i  r   rc   image_cachenamedimsreturnc                 n   [        U[        [        45      (       aF  [        U5      R                  S5      (       a'   [	        [        U5      [        [        U5      5      U S9$ [        U[        5      (       a=  [        UR                  5       5      (       a  [	        S[        R                  " U5      U S9$ [        U[        R                  5      (       a6  [        UR                  5       R                  5       5      (       a
  [	        SXS9$ [        U[        5      (       a  USpTGO[        U5      (       aH  UR                  5       n[         R"                  " SSS9nUR%                  U5        UR'                  5       UpTO[        U[        [        R                  45      (       ay  [        U[        R                  5      (       a  UR                  5       OUnUR                  5       n[         R"                  " SSS9nUR%                  U5        UR'                  5       UpTO[        U5      SpTU R(                  R+                  U5      nUb  US	   S
-   US	'   O[-        UUU R.                  U5      n[1        U R(                  5      S
-   US'   S
US	'   SUS'   UR+                  S5      n	U	bd  [2        R5                  SU5        XR6                  ;   a  U R6                  U	   US'   O'[1        U R6                  5      n
XR6                  U	'   XS'   SUS'   XR(                  U'   XEU4$ ! [         a  n[        SU 35      UeSnAff = f)a;  
Read an image and load it into memory.

For raster images: following this call, the image is inserted in `image_cache.images`,
and following calls to `fpdf.fpdf.FPDF.image()` will re-use the same cached values, without re-reading the image.

For vector images: the data is loaded and the metadata extracted.

Args:
    image_cache: an `ImageCache` instance, usually the `.image_cache` attribute of a `FPDF` instance.
    name: either a string representing a file path to an image, an URL to an image,
        an io.BytesIO, or a instance of `PIL.Image.Image`.
    dims (tuple[int, int]): optional dimensions as a tuple (width, height) to resize the image
        (raster only) before storing it in the PDF.

Returns: A tuple, consisting of 3 values: the name, the image data,
    and an instance of a subclass of `ImageInfo`.
z.svgr2  zCould not parse file: Nvector_imagemd5F)usedforsecurityusagesr   iiccp_iiccpzHICC profile found for image %s - It will be inserted in the PDF document)
isinstancestrr   endswithget_svg_info
load_image	Exception
ValueErrorbytes_is_svgstripior   getvalue_is_pil_imagetobyteshashlibnewupdate	hexdigestimagesgetget_img_infoimage_filterlenLOGGERdebugicc_profiles)r2  r3  r4  errorraster_nameimgbytes_img_hashinfor>  r=  s              r.   preload_imager_  n   s   8 $d$$T););F)C)C	ID	:c$i0k 
 $74::<#8#8NBJJt,<+VV$

##0E0E0G(H(HNDJJ
 $S	t		;;ue<#--/S	D5"**-	.	.$.tRZZ$@$@d;;ue<#--/St9dS5@5G5G5K5KK5XDh!+X$$	
 **+a/S	XXxxLLZ ///!,!9!9$!?X[55617((.!'XDL*.;'T!!i  	I5dV<=5H	Is   %L 
L4 L//L4r\  c                 T    U R                  S5      =(       d    U R                  S5      $ )Ns   <?xml s   <svg )
startswith)r\  s    r.   rG  rG     s#    Y'F6+<+<X+FFr-   objc                 T    [         S L=(       a    [        U [         R                   5      $ N)r   r?  )rb  s    r.   rK  rK     s    =C!==r-   filenamec                    [        U [        [        R                  [        45      (       a  U $ [        U S5      (       a4  [        U [        [        45      (       d  [        U R                  5       5      $ [        U [        5      (       a  [        U 5      n U R                  S5      (       a.  [        U 5       n[        UR                  5       5      sSSS5        $ U R                  S5      (       a  [        U 5      $ [        U S5       n[        UR                  5       5      sSSS5        $ ! , (       d  f       N== f! , (       d  f       g= f)z
This method is used to load external resources, such as images.
It is automatically called when resource added to document by `fpdf.fpdf.FPDF.image()`.
It always return a BytesIO buffer.
read)zhttp://zhttps://Nzdata:rb)r?  r   rI  BufferedIOBaser	   hasattrr@  r   rg  ra  r   _decode_base64_imageopen)re  url_file
local_files      r.   rC  rC     s     (Wb&7&7BCCx  HsDk)J)Jx}}''(D!!x=233 X(8==?+ 			W	%	%#H--	h	z() 
		  
	s   3D&D7&
D47
Ebase64Imagec                     U R                  S5      n[        U5      S:w  a  [        S5      eUS   n[        R                  " U5      n[        U5      $ )z7Decode the base 64 image string into an io byte stream.zbase64,rs   z!Unsupported non-base64 image datar   )splitrU  NotImplementedErrorbase64	b64decoder   )ro  frags	imageDatadecodedDatas       r.   rk  rk     sM    i(E
5zQ!"EFFaI""9-K;r-   r>  c                 :    [         R                  " [        U 5      5      n[        UR                  R                  5      R                  5       nUS;  a  [        R                  SUU5        gg! [         R                   a    [        R                  SU5         gf = f)z%Checks the validity of an ICC profilezInvalid ICC Profile in file %sF)GRAYRGBzEUnsupported color space %s in ICC Profile of file %s - cf. issue #711T)
r   getOpenProfiler   
PyCMSErrorrV  r^  r@  profilexcolor_spacerH  )r>  re  r}  color_spaces       r.   is_iccp_validr     s    %-%<%<WT]%K goo22399;K/)S	

   4h?s   A- -*BBr[  c                 0   UR                  S5        UR                  5       n[        X2S9nUR                  (       a  UR                  u    pVnOS=pgUR                  (       a  UR                  nUR
                  (       a  UR
                  n[        XFUS9nXU4$ )Nr   r7  g        )datawh)seekrg  r   viewboxwidthheightr   )	re  r[  r2  svg_datasvg_r  r  r^  s	            r.   rB  rB    sx     HHQKxxzH
H
6C
{{[[
1
yyII
zzJJA.D$r-   rT  c                    [         c  [        S5      eSnSnSnSnU(       a  [        U[        [        45      (       a$  [        U 5      n[         R                  " U5      nSnO`[        U5      (       dP  [        U[        5      n[        U[        5      (       a  [        U5      nOUnUc   e[         R                  " U5      nSn[        U5      (       d   eSnU(       a  UR                  U[        S9nSnUS:X  aC  UR                  S:X  a  SnO0UR                  S	:X  a  [        R                  " S
5      (       a  SnOSnUR                  S;   a  US:w  a  UR!                  S5      nUR                  S;  a  UR!                  S5      nSnUR                  S;   a  US:X  a  UR!                  S5      nO'UR                  S;   a  US:X  a  UR!                  S5      nUR"                  u  p[%        5       nSnSUR&                  ;   a-  [)        UR&                  S   U 5      (       a  UR&                  S   nUGbr  U(       Gdj  UR                  S:X  a  US:X  a  UR                  S;   a  Su  pnOFUR                  S:X  a  Su  pnSnO.UR                  S:X  a  Su  pnO[+        SUR                   35      eUR-                  S5        UR/                  UR1                  5       U	U
UUUUUUSU SU	 3S.
5        U$ UR                  S :X  Ga  US:X  Ga  UR&                  S!   S":X  Ga  [3        UR4                  [6        R8                     5      S#:X  Ga^  [3        UR4                  [6        R:                     5      S#:X  Ga3  UR4                  [6        R<                     nSnUS:X  a  SnOUS#:w  a  [+        S$U 35      e[?        U5      u  nnUR-                  U5        UR1                  U5      nUR4                  RA                  [6        RB                  5      nUb  US#:X  a  OLUS%:X  a8  [E        U5      n[G        U5       H  u  nn[H        U   UU'   M     [        U5      nO[+        S&U 35      eS'u  pnUR/                  UU	U
SUUUUUS([	        U(       + 5      RK                  5        SU	 S)U
 3S*.
5        U$ SnUR                  S	:X  a  S'u  pn[M        X5      US+'   GOUR                  S:X  a  Su  pn[M        X5      US+'   GOUR                  S:X  aD  Su  pn[O        S#SS%5      n[M        XUS,9US+'   [Q        U5      (       a  US-;  a  [M        XUS.9US/'   GOUR                  S0:X  a  S1u  pn[M        X5      US+'   URR                  b  URR                  RR                  OSUS2'   UR&                  RA                  S3S5      b.  US-;  a(  [M        UR!                  S5      U[O        S4SS55      S.9US/'   GOUR                  S6:X  ak  S1u  pnURR                  b  URR                  RR                  OSUS2'   [O        S#SS%5      n[M        XUS,9US+'   [Q        U5      (       a  US-;  a  [M        XUS.9US/'   OUR                  S:X  a  Su  pn[M        X5      US+'   OfUR                  S:X  a  Su  pn[M        X5      US+'   OBSu  pn[O        S4SS55      n[M        XUS,9US+'   [Q        U5      (       a  US-;  a  [M        XUS.9US/'   SU SU	 3nUR                  S	:X  a  S7U	 S)U
 3nU(       d%  U(       a  [U        US8S5        OURW                  5         UR/                  U	U
UUUUUUUS9.	5        U$ ):z
Args:
    filename: in a format that can be passed to load_image
    img: optional `bytes`, `BytesIO` or `PIL.Image.Image` instance
    image_filter (str): one of the SUPPORTED_IMAGE_FILTERS
Nz1Pillow not available - fpdf2 cannot insert imagesTF)resampler/   JPEGr1   1libtiffCCITTFaxDecoder0   )PPARGBA)r  LLArz  r  r  r  CMYK)r  r  r3   rz  r  r  icc_profile)rz  r  )r   rC   	DeviceRGBr  )rS   rC   
DeviceCMYK)r   rC   
DeviceGrayzUnsupported image mode: r   z/Predictor 15 /Colors z
 /Columns )
r  r  r  csr>  dpnbpcfinverteddpTIFFcompressiongroup4r   z4unsupported photometric interpretation for g4 tiff: rs   zunsupported FillOrder: )r   r   r  z
/BlackIs1 z /K -1 /Rows )
r  r  r  r>  r  r  r  r  r  r  r  )remove_slice)r1   r2   )select_slicesmaskr  )r   rC   Indexedpaltransparencyr   rS   r  z/BlackIs1 true /Columns fp)	r  r  r  r>  r  r  r  r  r  ),r   EnvironmentErrorr?  r   r@  rC  rl  rK  r   rF  resizeRESAMPLEformatmodePIL_featurescheckconvertsizer   r^  r  rE  r  rO  rg  rU  tag_v2r   STRIPOFFSETSSTRIPBYTECOUNTSPHOTOMETRIC_INTERPRETATIONccitt_payload_location_from_pilrR  	FILLORDER	bytearray	enumerateTIFFBitRevTablelower_to_dataslice
_has_alphapalettesetattrclose)re  r[  rT  r4  
is_pil_imgkeep_bytes_io_openjpeg_invertedimg_raw_dataimg_alteredr  r  r^  r>  r  r  colspacephotor  offsetlengthccittrawdata	fillorderr<  nalpha_channelr  s                             r.   rS  rS    s0    }RSSJ M'+L*S4+..!(+jj&
3'W5c5!!"3<LL'''jj&
Kjjj1v::&LXX_!3!3I!>!> ,L(L
xx;<=#@kk&!
xxIIkk&!
xx= \[%@kk% 	d	 ;kk#88DADD -0(;;88M*D::LK$?xx?*%6"(V#%7"( $S%7"( #;CHH:!FGGa KK(--/" % -23%z!E K JJ&  00'83CJJ;;<=BCJJ>>?@AEJJIIJEHz! J5'R  =SANFFf%.:.?.?.GL

'@'@AI INa(6%l3DAq&5a&8LO 4$\2 #:9+!FGG!3ChKK( "% -&sx<'8'>'>'@&AA3m\][^_ K L
xx3/(2V	S/(2V	T	/(aq)NVc??| 4
  
 %S]SDM	S,(2V-0[[-Dckk))$U 88<<-9l S
 ?

 %F#\aq@QDM 
T	,(-0[[-Dckk))$Uaq)NVc??| 4
  
 %S]SDM	V	/(2V	U	.(2V.(aq)NVc??| 4
  
 %S]SDM!#j	4B
xx3's-s;Ct$IIKKK%
	
 Kr-   c                   R    \ rS rSrSrS\S\S\4S jrSS	 jrS
\S\S\SS4S jr	Sr
g)	temp_attri  zE
temporary change the attribute of an object using a context manager
rb  fieldvaluec                 D    Xl         X l        X0l        SU l        S U l        g )NF)rb  r  r  exists	old_value)selfrb  r  r  s       r.   __init__temp_attr.__init__  s    

"r-   r5  Nc                     [        U R                  U R                  5      (       a,  SU l        [	        U R                  U R                  5      U l        [        U R                  U R                  U R                  5        g )NT)rj  rb  r  r  getattrr  r  r  )r  s    r.   	__enter__temp_attr.__enter__  sL    488TZZ((DK$TXXtzz:DN$**djj1r-   exctypeexcinstexctbc                     U R                   (       a,  [        U R                  U R                  U R                  5        g [        U R                  U R                  5        g rd  )r  r  rb  r  r  delattr)r  r  r  r  s       r.   __exit__temp_attr.__exit__  s3    ;;DHHdjj$..9DHHdjj)r-   )r  r  rb  r  r  )r5  N)r&   r'   r(   r)   __doc__r   r@  r  r  r  r,   r%   r-   r.   r  r    sG    #C # #C #2* *c *# *$ *r-   r  c                     U R                   [        R                     nU R                   [        R                     n[	        U5      S:w  d  [	        U5      S:w  a  [        S5      eUUsu  nu  nX44$ )zS
returns the byte offset and length of the CCITT payload in the original TIFF data
r   z;Transcoding multiple strips not supported by the PDF format)r  r   r  r  rU  rr  )r[  strip_offsetsstrip_bytesr  r  s        r.   r  r    sw     JJ;;<M**_<<=K 	Ma{q !I
 	

 	 IVy
 >r-   c                 "  ^ ^^ [        5       n[        R                  " T R                  T R                  T R                  5       5      nT R                  S   S-   S-  T R                  S   -  m[        [        S5      (       a,  [        [        ST5         UR                  USSS9  S	S	S	5        Ok[        R                  R                  mS
[        S[        S[        4U UU4S jjn[        [        R                  SU5         UR                  USSS9  S	S	S	5        UR                  S5        [        R                   " U5      n[#        U5      u  pVUR                  U5        UR%                  U5      $ ! , (       d  f       Nd= f! , (       d  f       Nu= f)zF
Convert the open PIL.Image imgdata to compressed CCITT Group4 data.

r   r  rC   r   
STRIP_SIZEr  r  )r  r  Nr  tagr5  c                    > [         R                  TR                  S   [         R                  T/[         R                  S/0nUR                  UT" X5      5      $ )Nr   r   )r   ROWSPERSTRIPr  r  r  rR  )r  r  	overridesr[  pillow__getitem__tmp_strip_sizes      r.   __getitem__)transcode_monochrome.<locals>.__getitem__V  sQ    ,,chhqk//.1A,,qcI
 ==&7&BCCr-   r  )r   r   	frombytesr  r  rL  rj  r   r  saveImageFileDirectory_v2r  r   r*   objectr  rl  r  rg  )	r[  newimgioimg2r  newimgr  r  r  r  s	   `      @@r.   transcode_monochromer  8  sG    yH
 ??388SXXs{{}=D hhqkAo!+chhqk9N--nEIIhv8ID FE
 ,AAMM	Dc 	D 	D 	D 	D 11=+
 IIhv8ID
 MM!ZZ!F4V<NFMM&==  7 FE
 
s   E/?F /
E= 
Fr  r  c                    [        U R                  5       5      nU(       a  X1	 U(       a  X2   nU R                  S:X  a  [        U R                  S   S-  5      nO=[        U5      U R                  S   U R                  S   -  -  nU R                  S   U-  n[        5       n[        S[        U5      U5       H)  nUR                  S5        UR                  X7Xt-    5        M+     Un[        /n[        5       u  ppSnU H  nU[        U/5      -   nX;   a  UnM  UR                  X   5        U
S[        -  S-
  ::  a&  XU'   U
S-  n
X:  a  U[        :  a  US-  nSU-  S-
  nO"UR                  [        5        [        5       u  pp[        U/5      nM     U(       a  UR                  X   5        UR                  [        5        [        U5      $ )Nr  r   rC   r       r-   )r  rL  r  r   r  rU  rangeextendLZW_CLEAR_TABLE_MARKERclear_tablerF  appendLZW_MAX_BITS_PER_CODELZW_EOD_MARKERpack_codes_into_bytes)r[  r  r  r  row_sizechannels_countdata_with_paddingr<  result_codestable	next_codebits_per_codemax_code_valuecurrent_sequencebytenext_sequences                   r.   _to_lzwdatar  m  s   
 S[[]#D!
xx3a(Tsxx{SXXa['@A88A;/!1c$i*  '  !,!78 + D ++L6Am3Em(5$=8!,  78 Q"771<<'0m$Q	--BW2W!Q&M&'=&8A%=N ##$:;BM-?-  %dV}/ 4 E34' ..r-   codesc                    [        5       u  nnnnSnSn[        5       n[        b#  [        R                  " U [        R                  S9n U  H  nXS-  U-  nXc-  nUS:  a#  US-  nUR                  XV-	  S-  5        US:  a  M#  U[        :X  a  [        5       u  pp4MP  U[        :w  d  M\  US-  nX$:  d  Mh  U[        :  d  Mt  US-  nSU-  S-
  nM     US:  a  UR                  USU-
  -  S-  5        [        U5      $ )z
Convert the list of result codes into a continuous byte stream, with codes packed as per the code bit-width.
The bit-width starts at 9 bits and expands as needed.

r   )dtyperC   r0  r   )
r  r  numpyarrayuint32r  r  r  r  rF  )	r  r  r  r  r  bufferbits_in_bufferoutputcodes	            r.   r  r    s    		FN[F E6)T1'!aNMM63t;< ! )):E-7A-^#NI)m>S.S""#}"4!9   v!n"45=>=r-   c                      [        S5       V s0 s H  n [        U /5      U _M     nn [        S-   n[        nSU-  S-
  nXX44$ s  sn f )zC
Reset the encoding table and coding state to initial conditions.

r1  r   )r  rF  r  LZW_INITIAL_BITS_PER_CODE)r<  r  r  r  r  s        r.   r  r    sT     %*#J/JqUA3Z]JE/"I-M=(A-N]::	 0s   Akwargsc                    US:X  a  [        U 40 UD6$ US:X  a  [        U 5      $ US:X  a  [        U 40 UD6$ U R                  S:X  a  U R	                  S5      n U R                  S:X  a  U R	                  S5      n US:X  a*  [        5       nU R                  US	S
9  UR                  5       $ US:X  a*  [        5       nU R                  USS
9  UR                  5       $ [        SU S35      e)Nr0   r  r3   r  r  r  rz  r1   r  )r  r2   JPEG2000zUnsupported image filter: "")		_to_zdatar  r  r  r  r   r  rJ  r   )r[  rT  r  compressed_bytess       r.   r  r    s    }$'''''#C(({"3)&))
xx4kk#
xx6kk% {""9!&1((**{""9!*5((**
5l^1E
FFr-   c                    [        U R                  5       5      nU(       a  X1	 U(       a  X2   nU R                  S:X  a  [        U R                  S   S-  5      nO=[        U5      U R                  S   U R                  S   -  -  nU R                  S   U-  n[        5       n[        S[        U5      U5       H)  nUR                  S5        UR                  X7Xt-    5        M+     [        R                  " U[        R                  S9$ )Nr  r   rC   r   r  )level)r  rL  r  r   r  rU  r  r   zlibcompressSETTINGSr$   )r[  r  r  r  r  r  r	  r<  s           r.   r#  r#    s    
 S[[]#D!
xx3a(Tsxx{SXXa['@A88A;/!1c$i*  '  !,!78 + ==*(2L2LMMr-   c                 
   U R                  S5      nUR                  5       u  p#US:X  a  US:X  a  gX#:X  a  g[        b'  [        R                  " U5      S:g  R	                  5       $ [	        S UR                  5        5       5      $ )a~  
Return True if the image has any non-opaque alpha channel values.

For the alpha band, `getextrema()` yields the min & max values across all pixels:
- (255, 255): every pixel is fully opaque, so we can fast-return False.
- (x, x) where x != 255: the channel is a flat non-opaque mask, so True.
Otherwise we need to scan for any value different from 255 (using NumPy if available).
Ar0  FTc              3   *   #    U  H	  oS :g  v   M     g7f)r0  Nr%   ).0cs     r.   	<genexpr>_has_alpha.<locals>.<genexpr>,  s     9!8ACx!8s   )
getchannel
getextremar  asarrayanyrL  )r[  r  lohis       r.   r  r    sw     NN3'M%%'FB	SyR3Y	xm,388::9!6!6!8999r-   rd  )Nr/   N)NN)Xrs  rM  rI  loggingr'  dataclassesr   r   mathr   pathlibr   typingr   r   r	   r
   r   r   r   r   r   urllib.requestr   errorsr   image_datastructuresr   r   r   r   r  r   utilr   PILr   r   r   r   r  ImportError	PIL.Imager   LANCZOSr  AttributeErrorr   PIL.ImageCmsr   r+   r  r!   	getLoggerr&   rV  SUPPORTED_IMAGE_FILTERSr)  r  r  r  r  r  tuplefloatr@  rF  r_  boolrG  rK  rC  rk  r  rB  rS  r  r*   r  r  r  r  r  dictr  r  r#  r  r%   r-   r.   <module>rL     s     	   !   
 
 
 # !   NN$!!H +,Hi
      
 
		8	$X ?<     +/U"U"
U" 5&
'U" 	)Z$
<=o%'	U"pGE Gd G>s >y2 >*th. *8 *4 c  g    t   $ /9
3	?*+( @D &*.	gC4'(g	z5(D#t;	<g g 5&
'	g
 gT* *2 c3h <2!j 2!U 2!n "&!%=/	=/$,=/ $,=/ 	=/@(# (5 (V
;U4s
+S#s:; 
;G* GK G3 G5 G> "&!%N	N$,N $,N 	N2:J :4 :m  EHOL	 	^$ H  Es6   )H 6H  $H1 HH 
H.-H.1H=<H=