
    (h1                         S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
  SSKJr  SSKJr   SSKJr  S
rSrSrSr " S S\
5      r " S S\5      r " S S\	5      r " S S\5      rg	! \ a    S	r N?f = f)z
This module is in work-in-progress state.
Hint tables / hint streams have not been implemented yet,
and there are a few "TODO" comment remaining.
cf. https://github.com/py-pdf/fpdf2/issues/62
   )ContentWithoutIDOutputProducer	PDFHeader)sign_content)PDFArrayPDFContentStream	PDFObject)iobj_ref)buffer_subst    )signerNz0%1%2%3%4%5%6%7%8%9%a%b%c%dz1%2%3%4%5%6%z2%3%4%5%6%7%z3%4%5%6%7%8%c                   (   ^  \ rS rSrU 4S jrSrU =r$ )PDFLinearization   c                    > [         TU ]  5         SU l        Xl        [        U l        S U l        [        U l        [        U l
        [        U l        g )N1)super__init__
linearizedn%HINT_STREAM_OFFSET_LENGTH_PLACEHOLDERho!FIRST_PAGE_END_OFFSET_PLACEHOLDERe&MAIN_XREF_1ST_ENTRY_OFFSET_PLACEHOLDERtFILE_LENGTH_PLACEHOLDERl)selfpages_count	__class__s     NC:\Users\13-19\Desktop\PokeDex\pokedex\Lib\site-packages\fpdf/linearization.pyr   PDFLinearization.__init__   s=    627(    )r   r   r   r   r   r   r   __name__
__module____qualname____firstlineno__r   __static_attributes____classcell__r"   s   @r#   r   r      s    
) 
)r%   r   c                   H    \ rS rSrSrS r\S 5       r\S 5       rS	S jr	Sr
g)
PDFXrefAndTrailer'   z0%1*2+3-2/1^c                     Xl         UR                  S-   U l        SU l        S U l        S U l        S U l        S U l        S U l        g )Nr   )	output_builderobj_idcountstart_obj_idcatalog_objinfo_obj
first_xref	main_xref	startxref)r    r2   s     r#   r   PDFXrefAndTrailer.__init__*   sF    ,#**Q.
r%   c                 ,    [        U R                  5      $ N)boolr9   r    s    r#   is_first_xrefPDFXrefAndTrailer.is_first_xref6   s    DNN##r%   c                 ,    [        U R                  5      $ r=   )r>   r8   r?   s    r#   is_main_xrefPDFXrefAndTrailer.is_main_xref:   s    DOO$$r%   Nc                 <   U R                   n/ n[        [        UR                  5      5      U l        U R
                  (       a@  [        UR                  U R                  U R                  R                  SS5      5      Ul        UR                  S5        UR                  U R                  S:X  a  SOU R                   SU R                   35        U R                  (       d  UR                  S5        [        UR                  5      S:  d   S5       e[        U R                  U R                  U R                  -   5       H%  nUR                  UR                  U   S S	35        M'     UR                  S
5        UR                  S5        U R
                  (       a7  UR                  SU R                  U R                  R                  -
   35        GO1U R                  (       aG  UR                  SU R                   R                   35        UR                  SU R                   35        OUR                  SU R                   35        UR                  S[#        U R$                  R&                  5       35        UR                  S[#        U R(                  R&                  5       35        UR*                  nUR-                  5       nUS:X  a  UR/                  UR                  5      nU(       a  UR                  SU S35        UR                  S5        UR                  S5        U R                  nU R
                  (       a  U R                  R                  nU R                  (       a  SnUR                  U5        UR                  S5        SR1                  U5      $ )N    xrefr   r   z0000000000 65535 f z<TODO: how to know the offsets in the 1st xref at this stage?010z	 00000 n trailerz<<z/Size z/Prev z/Root z/Info z/ID []z>>r:   0z%%EOF
)r2   strlenbufferr:   rC   r    PREV_MAIN_XREF_START_PLACEHOLDERrjustappendr5   r4   r@   offsetsranger8   r9   pdf_refr6   idr7   fpdffile_id_default_file_idjoin)r    _security_handlerbuilderoutr3   rY   rZ   r:   s           r#   	serializePDFXrefAndTrailer.serialize>   s   %%S01)55$$R-GN
 	

6

4,,1at7H7HI4::,WX!!JJ,- 1$	JI	J$D--t/@/@4::/MNFJJ'//&1#6i@A O

9

4JJ

T__-B-B BCDE!!

VDNN$8$8#9:;

VD$I$I#JKL

VDJJ<01JJ(8(8(;(; <=>?JJ(8(8 9:;<<<DllnG"}//?

U7)1-.

4

;NN	11II

9

7yy~r%   )r6   r4   r8   r7   r9   r2   r5   r:   r=   )r'   r(   r)   r*   rR   r   propertyr@   rC   r`   r+    r%   r#   r/   r/   '   s:    '5$
 $ $ % %.r%   r/   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )PDFHintStreamo   c                    > [         TU ]  XS9  S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l	        S U l
        S U l        S U l        g )N)contentscompress)r   r   sr   r   ar   vicr   rb)r    rh   ri   r"   s      r#   r   PDFHintStream.__init__p   s`    (>r%   )rk   rp   rn   r   rm   r   r   ro   rj   r   rl   )Fr&   r-   s   @r#   re   re   o   s     r%   re   c                       \ rS rSrS rSrg)LinearizedOutputProducer   c           
         U R                   nU R                  R                  [        UR                  5      5        [        UR                  5      nU R                  U5        [        U 5      nU R                  R                  U5        U R                  5       n[        S5      nU R                  R                  U5        U R                  [        SS5      5      nU R                  S-   Ul        [        U R                  5      nSU l        UR!                  U R                  [        SS 5      5      5        U R#                  5       nU R%                  5       n	U R'                  5       n
U R)                  5       nU R+                  5       nU R-                  5       nU R/                  5       nU R1                  U
UUUU5      nUR2                   H  nU R                  US5        M     U R5                  5       nU R7                  5       u  nnU R9                  5       nU R;                  5       n[        U 5      nU R                  R                  U5        U R                  S-   Ul        U HG  n[?        U[@        5      (       a  M  UULd  M!  U =R                  S-  sl        U R                  Ul        MI     U =R                  S-  sl        U R                  Ul!        US   RB                  Ul"        [G        U5      Ul$        U RK                  UUUS   U	UUUS9  / nU H  nUUl&        UUl'        URP                   H  nURR                  (       a  UR                  URR                  5        URT                  (       d  MB  [W        URT                  S5      (       d  M_  UR                  URT                  RR                  5        M     URP                  (       a  M  S Ul(        M     U H  nUR                  URR                  5        M      U H-  n[Y        UURZ                  S-
     RB                  5      Ul.        M/     UR^                  R`                  Rb                   H  nUUR[                  5       S-
     Ul2        M      UUl3        UUl4        UU4 H  nUUl5        UUl6        M     U Rn                  (       a   SU Rn                   35       eU Rp                  (       a   S[s        U Rp                  5       35       eU R                   H  n[?        U[@        5      (       a  S nOQ[s        U Rn                  5      U Rp                  URB                  '   U Rt                  Rw                  URB                  5      nU(       a;  U Ry                  U5         U R{                  UR}                  5       5        S S S 5        M  U R{                  UR}                  5       5        M     U R                  5         U Rp                  URB                     n [s        UR}                  5       5      n![        U Rn                  [        S	U S
 SU!S
 S35      U l7        [        U Rn                  [        U Rp                  US   RB                  S-      S
 5      U l7        [        U Rn                  [        U Rp                  UR<                     S
 5      U l7        [        U Rn                  [        [s        U Rn                  5      S
 5      U l7        UR                  (       aV  [        [        U Rn                  UR                  UR                  UR                  UR                  UR                  5      U l7        U Rn                  $ ! , (       d  f       GMl  = f)N r   r   embedded_files)pages_root_objfirst_page_objsig_annotation_objxmp_metadata_objstruct_tree_root_objoutline_dict_objdestz@Nothing should have been appended to the .buffer at this stage: z.No offset should have been set at this stage: [z 12drG   rL   )LrY   pdf_objsrT   r   pdf_versionr   r!   _add_pdf_objr/   _add_catalogre   
_add_pagesslicer3   r4   listextend_add_pages_root_add_annotations_as_objects
_add_fonts_add_images_add_gfxstates_add_shadings_add_patterns_add_resources_dictrw   _add_structure_tree_add_document_outline_add_xmp_metadata	_add_infor5   
isinstancer   rX   r   r   kids_finalize_catalogparent	resourcesannotsr~   rk   hasattrrW   page_numberpage_refstruct_builderdoc_struct_elemkpgr8   r9   r6   r7   rQ   rU   rP   trace_labels_per_obj_idget_trace_size_outr`   _log_final_sections_sizesr   r   r   r   r   	_sign_keyr   r   
_sign_cert_sign_extra_certs_sign_hashalgo
_sign_time)"r    rY   linearization_objr8   r6   hint_stream_obj	page_objsfirst_xref_pdf_objsrx   rz   font_objs_per_indeximg_objs_per_indexgfxstate_objs_per_nameshading_objs_per_namepattern_objs_per_nameresources_dict_objembedded_filer|   r}   outline_itemsr{   r7   r9   pdf_objdestspage_objannotoutline_itemr~   struct_elemrH   trace_label
hs1_offset
hs1_lengths"                                     r#   	bufferize"LinearizedOutputProducer.bufferize   s   yy 	Yt'7'789,T-=-=>+,&t,
Z('')'+_-OOE!QK0	  ;;?
"4==1 	q$89 --/!==?"oo/!--/!%!4!4!6 $ 2 2 4 $ 2 2 4!55"!!
 "00Mm-=> 1#779*.*D*D*F'-113>>#%d+	Y' #'++/
*Gw(899?2q !% + 	q![[ (loo&y1)$Q<1-!5- 	 	
 !H,HO!3H!::LL,777wuww77LL.	 )
 ???"& " *LLL**+ * D#Id.>.>.B$C$F$FGDM ..>>@@K&{'>'>'@1'DEKN A)	(

+D*D$DM , 	\Mdkk][	\ 	P;C<M;NO	P}}G'#344"+.t{{+;WZZ("::>>wzzJ%%k2IIg//12 32 		'++-. % 	&&( \\/"4"45
2245
"KK1
4 *T!2!4

 #KK-||IaLOOa/06

 #KK2||I223D9

 #KK#4;;%
 >>&&&##DK {{U 32s   2 ]


]	)rQ   r3   N)r'   r(   r)   r*   r   r+   rc   r%   r#   rs   rs      s    hr%   rs   )__doc__outputr   r   r   signr   syntaxr   r   r	   r
   rW   utilr   endesiver   ImportErrorr   r   r   r   r   r/   re   rs   rc   r%   r#   <module>r      s    @ ?  9 9 '  )F %$2 !)7 &( )y )E( EP$  i~ i_  Fs   A% %A0/A0