+
    7³hj²^  ã                   óª  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt]P                  P                  ]P                  P                  ]4      4      t]P                  P                  ]4      t]P                  P                  ]R4      t/ tR tR tR tR^R^R^R	^R
^R^/tR tR tR tR tR tR'R ltR t]P                  P                  ]RRR4      tR'R lt]P                  P                  ]R4      tR t R(R lt!R t"RR0t#R t$R t%R)R lt&R*R  lt'R! t(R"t)R+R# lt*R$ t+],R%8X  d$   ^ RI-t-].! ]! ]-P^                  R&,          !  4       R# R# ),u¨  ä¸“é¢˜çº§æº�æ–‡ä»¶å®šä½� â€”â€” ç»™ã€Œé¢„è§ˆ/ä¸‹è½½æœ¬ä¸“é¢˜æº�æ–‡ä»¶ã€�æ��ä¾›ç»Ÿä¸€å…¥å�£ã€‚

## ä¸ºä»€ä¹ˆéœ€è¦�
äº”ä¸ªæ•™æ��çš„æº�æ–‡ä»¶ç²’åº¦ä¸�å�Œï¼š
  åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰  1 ä¸“é¢˜ = 1 ä¸ª docx     ï¼ˆå¤©ç„¶å°±æ˜¯ä¸“é¢˜çº§ï¼‰
  å…¶ä½™å››ä¸ª      1 å†Œ   = 1 ä¸ªæ•´æœ¬ PDF   ï¼ˆè¦�æŒ‰é¡µèŒƒå›´åˆ‡å‡ºä¸“é¢˜ï¼‰
æœ¬æ¨¡å�—æŠŠå·®å¼‚å�ƒæŽ‰ï¼Œå¯¹å¤–å�ªæš´éœ²ä¸¤ä¸ªå‡½æ•°ï¼š

  locate(tb, gg, cd) -> {'kind','pages':[æœ¬åœ°pngè·¯å¾„...],'pdf':(æ•´æœ¬pdf, èµ·é¡µ, æ­¢é¡µ),'docx':è·¯å¾„}
  cut_pdf(src, lo, hi, out)  ç”¨ qpdf åˆ‡é¡µï¼ˆ0.05 ç§’çº§ï¼Œæ— ç¬¬ä¸‰æ–¹ä¾�èµ–ï¼‰

## é¡µèŒƒå›´ä»Žå“ªæ�¥ï¼ˆå…¨éƒ¨çŽ°æˆ�ï¼Œä¸�æ–°å»ºï¼‰
  åŠ¨è„‘ç­‹/ä¸¾ä¸€å��ä¸‰  ç»„å�·ç³»ç»Ÿ/åŽŸä¹¦é¡µ/page_ranges.jsonï¼ˆdnj 228 ä¸“é¢˜ / jyf 357 ä¸“é¢˜ï¼‰
  ä¸€è¯¾ä¸€ç»ƒ        æ¯�é¢˜å¸¦ page(p007)+lessonï¼ŒæŒ‰è¯¾è�šå�ˆå�– min~max
  èƒ¡å°�ç¾¤è¯¾ç¨‹      æ¯�é¢˜å¸¦ sec(è®²å�·)ï¼ŒæŒ‰è®²è�šå�ˆ
  åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰    data/v2/units.json çš„ docx + data/v2/pages/<key>/*.png
Nu   æº�é¢˜æ–‡ä»¶c                 ój   €  \         P                  ! \        V R R7      4      #   \         d     R# i ; i)zutf-8)ÚencodingN)ÚjsonÚloadÚopenÚ	Exception)Úps   &ôT   /Users/luyan/Desktop/AI workspace/è¯¾ç¨‹è®¾è®¡æœºå™¨äºº/ç»„å�·ç³»ç»Ÿ/topic_source.pyÚ_jr
      s/   € ðÜ�yŠyœ˜a¨'Ô2Ó3Ð3øÜô Úðús   ‚ # £2±2c            
      ó.  € R FŽ  p \         P                  P                  \         P                  P                  \        V RRR4      4      p\         P                  P                  \         P                  P                  VR4      4      '       g   KŒ  Vu # 	  R# )ú..u   æ•°å­¦å­¦ä¹ ç³»ç»ŸÚdataÚv2ú
units.jsonN)r   z../..Ú.)ÚosÚpathÚnormpathÚjoinÚHEREÚexists)ÚupÚcs     r	   Ú_v2_rootr   %   sc   € Û"ˆÜ�G‰G×ÑœRŸW™WŸ\™\¬$°Ð4HÈ&ÐRVÓWÓXˆÜ�7‰7�>‰>œ"Ÿ'™'Ÿ,™, q¨,Ó7×8Ô8ØŠHñ #ñ ó    c                  ó8  € R \         9  d„   \        4       p / pV '       df   \        \        P                  P                  V R4      4      ;'       g    .  F.  pY!VP                  R4      ;'       g    RP                  4       &   K0  	  W3\         R &   \         R ,          # )r   r   ÚtitleÚ )Ú_cacher   r
   r   r   r   ÚgetÚstrip)ÚV2ÚidxÚus      r	   Ú	_v2_unitsr$   -   sx   € Ø”6ÔÜ‹ZˆØˆßÜœŸ™Ÿ™ b¨,Ó7Ó8×>Ð>¸BÒ>�Ø67�Q—U‘U˜7“^×)Ð) r×0Ñ0Ó2Ó3ñ ?à�yŒˆt‰Ü�$�<Ðr   u	   ä¸€å¹´çº§u	   äºŒå¹´çº§u	   ä¸‰å¹´çº§u	   å››å¹´çº§u	   äº”å¹´çº§u	   å…­å¹´çº§c                  ó°   € R \         9  d@   \        \        P                  P	                  \
        RR4      4      ;'       g    / \         R &   \         R ,          # )Úprõ	   åŽŸä¹¦é¡µzpage_ranges.json)r   r
   r   r   r   r   © r   r	   Ú_rangesr)   <   s=   € Ø”6ÔÜœ"Ÿ'™'Ÿ,™,¤t¨[Ð:LÓMÓN×TÐTÐRTŒˆt‰Ü�$�<Ðr   c                ó  € RRRR/V ,          pRV^,
          ,          p\         P                   ! \        P                  P                  \        VR4      4       F.  pV R2\        P                  P                  V4      9   g   K,  Vu # 	  R# )	uL   æ•´æœ¬ PDF è·¯å¾„ï¼šæº�é¢˜æ–‡ä»¶/<åŠ¨è„‘ç­‹|ä¸¾ä¸€å��ä¸‰>/â€¦<N>å¹´çº§â€¦pdfÚdnjõ	   åŠ¨è„‘ç­‹Újyfõ   ä¸¾ä¸€å��ä¸‰u   ä¸€äºŒä¸‰å››äº”å…­ú*.pdfõ   å¹´çº§N)Úglobr   r   r   ÚSRCDIRÚbasename)ÚkindÚgrade_noÚkeyÚcnr   s   &&   r	   Ú	_book_pdfr8   B   sn   € à�+˜u nÐ
5°dÕ
;€CØ	˜h¨�lÕ	+€BÜ�YŠY”r—w‘w—|‘|¤F¨C°Ó9Ö:ˆØˆT�ˆ=œBŸG™G×,Ñ,¨QÓ/Ö/ØŠHñ ;ñ r   c            	     óÔ  € R\         9  EdÑ   / p \        P                  ! \        P                  P	                  \
        RRRR4      4       EF…  p\        P                  P                  \        P                  P                  V4      4      p\        V4      p\        V\        4      '       d   TM$T;'       g    / P                  R4      ;'       g    . p\        P                  ! \        4      pV Fª  pVP                  R4      ;'       g    RP                  4       p\        VP                  R	4      ;'       g    R4      p\         P"                  ! R
V4      p	V'       g   Kq  V	'       g   K{  WW,          P%                  \'        V	P)                  ^4      4      4       K¬  	  VP+                  4        F  w  rz\-        V
4      \/        V
4      3WV3&   K!  	  EKˆ  	  V \         R&   \         R,          # )uJ   {(å¹´çº§å†Œå��, è¯¾å��): (minPage, maxPage, ç»“æž„åŒ–jsonæ‰€åœ¨ç›®å½•å��)}Úyklõ   æˆ�æžœõ   ä¸€è¯¾ä¸€ç»ƒé¢˜åº“Ú*z*.jsonÚ	questionsÚlessonr   Úpagezp?(\d+))r   r1   r   r   r   ÚROOTr3   Údirnamer
   Ú
isinstanceÚlistr   ÚcollectionsÚdefaultdictr    ÚstrÚreÚmatchÚappendÚintÚgroupÚitemsÚminÚmax)r"   ÚfÚbookÚdÚqsÚaggÚqÚlesÚpgÚmÚpss              r	   Ú
_ykl_indexrZ   M   sU  € à”FÕØˆÜ—’œ2Ÿ7™7Ÿ<™<¬¨hÐ8LÈcÐS[Ó\×]ˆAÜ—7‘7×#Ñ#¤B§G¡G§O¡O°AÓ$6Ó7ˆDÜ�1“ˆAÜ  ¤D×)Ò)‘°·°°R¯}©}¸[Ó/I×/OÐ/OÈRˆBÜ×)Ò)¬$Ó/ˆCÛ�Ø—u‘u˜X“×,Ð,¨"×3Ñ3Ó5�Ü˜Ÿ™˜v›×,Ð,¨"Ó-�Ü—H’H˜Z¨Ó,�ß‘3Ÿ1™1Ø•H—O‘O¤C¨¯©°«
£OÖ4ñ ð Ÿ9™9ž;‘�Ü$'¨£G¬S°«WÐ#5�˜3�KÓ ô 'ñ ^ð Œˆu‰Ü�%�=Ðr   c                ó8  € \         P                  P                  \        V 4      p\         P                  P	                  V4      '       d   V# \
        P                  ! RV 4      pV'       d°   VP                  4       w  r4/ RRbRRbRRbRR	bR
RbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR R!bR"R#bpVP                  V4      pV'       dP   \         P                  P                  \        R$R%VR&V4      p\         P                  P	                  V4      '       d   V# R'# )(u  æŠŠé¢˜ç›® pg é‡Œçš„ç›¸å¯¹è·¯å¾„è§£æž�æˆ�çœŸå®žæ–‡ä»¶ã€‚

âš  éš�ç«™çš„ ç»„å�·ç³»ç»Ÿ/åŽŸä¹¦é¡µ/ å�ªå¸¦äº† dnjã€�jyf ä¸¤å¥—ï¼›ä¸€è¯¾ä¸€ç»ƒ(ykl)é‚£å¥—æ²¡éš�ç«™ï¼Œ
  è¦�å›žé€€åˆ°ä»“åº“åŽŸå§‹ æˆ�æžœ/ä¸€è¯¾ä¸€ç»ƒé¢˜åº“/<å†Œç›®å½•>/pages/ï¼ˆæœ�åŠ¡ç«¯å·²æœ‰å�Œæ ·çš„å›žé€€æ€�è·¯ï¼‰ã€‚
u"   åŽŸä¹¦é¡µ/ykl/([^/]+)/(p\d+\.png)$Ú1su   ä¸€å¹´çº§ä¸Šæ™®é€š2024ç§‹Ú1szu   ä¸€å¹´çº§ä¸Šå¢žå¼º2024ç§‹Ú2su   äºŒå¹´çº§ä¸Šæ™®é€šÚ2szu   äºŒå¹´çº§ä¸Šå¢žå¼ºÚ3su   ä¸‰å¹´çº§ä¸ŠÚ3szu   ä¸‰å¹´çº§ä¸Šå¢žå¼º2022ç§‹Ú3xu   ä¸‰å¹´çº§ä¸‹æ™®é€š2022ç§‹Ú3xzu   ä¸‰å¹´çº§ä¸‹å¢žå¼º2022ç§‹Ú4su   å››å¹´çº§ä¸Šæ™®é€š2026ç§‹Ú4szu   å››å¹´çº§ä¸Šå¢žå¼º2026ç§‹Ú4xu   å››å¹´çº§ä¸‹æ™®é€š2023æ˜¥Ú4xzu   å››å¹´çº§ä¸‹å¢žå¼º2023æ˜¥Ú5su   äº”å¹´çº§ä¸Šæ™®é€š2026ç§‹Ú5szu   äº”å¹´çº§ä¸Šå¢žå¼º2026ç§‹Ú5xu   äº”å¹´çº§ä¸‹æ™®é€š2023æ˜¥Ú5xzu   äº”å¹´çº§ä¸‹å¢žå¼º2023æ˜¥Ú6su   å…­å¹´çº§ä¸Šæ™®é€š2024ç§‹r;   r<   ÚpagesN)
r   r   r   r   r   rH   rI   Úgroupsr   rA   )ÚrelÚfprX   ÚrkÚnameÚYKLDrQ   r   s   &       r	   Ú_resolve_relrt   b   sq  € ô 
�‰�‰”d˜CÓ	 €BÜ	‡w�w‡~�~�b×ÒØˆ	Ü
�ŠÐ6¸Ó<€AßØ—8‘8“:‰ˆð3�Ð1ð 3°5Ð:Uð 3ØÐ*ð3Ø,1Ð3Gð3à�nð3à&+Ð-Hð3ð Ð1ð3ð 49Ð:Uð3ð Ð1ð	3ð 49Ð:Uð	3ð
 Ð1ð3ð
 49Ð:Uð3ð Ð1ð3ð 49Ð:Uð3ð Ð1ð3ð 49Ð:Uð3ð Ð1ð3ˆð �x‰x˜‹|ˆßÜ—‘—‘œT 8Ð-AÀ4ÈÐRVÓWˆAÜ�w‰w�~‰~˜a× Ò Ø�Ùr   c                óL  € . RRr2p\        \        V 4      4       F|  p\        P                  ! RV4      pV'       g   K$  VP	                  \        VP                  ^4      4      4       \        P                  P                  V4      q%P                  ^4      pK~  	  V'       g   R# . p\        \        V4      \        V4      ^,           4       F2  p\        V RVR RV 24      pV'       g   K!  VP	                  V4       K4  	  V'       g   R# RVR\        V4      \        V4      V3/# )	u’  é€šç”¨å…œåº•ï¼šæ‹¿è¯¥ä¸“é¢˜**æ‰€æœ‰é¢˜çš„ pg å­—æ®µå¹¶é›†**å½“é¡µèŒƒå›´ã€‚

æ¯�é�“é¢˜çš„ pg å·²ç»�æ˜¯ã€Œè¯¥é¢˜æ‰€åœ¨é¡µ Â±1ã€�çš„é¡µå›¾ç›¸å¯¹è·¯å¾„ï¼ˆç»„å�·å�°æ—¢æœ‰çš„ã€Œå¯¹ç…§åŽŸä¹¦ã€�ç”¨çš„å°±æ˜¯å®ƒï¼‰ï¼Œ
æ‰€ä»¥ä¸“é¢˜çº§é¡µèŒƒå›´ = ç»„å†…æ‰€æœ‰é¢˜ pg çš„å¹¶é›† â€”â€” ä¸�éœ€è¦�å�¦å»ºæ˜ å°„è¡¨ï¼Œä»»ä½•æ•™æ��éƒ½é€šç”¨ã€‚
â†’ {'pages': [ç»�å¯¹è·¯å¾„â€¦], 'span': (æœ€å°�é¡µ, æœ€å¤§é¡µ, ç›¸å¯¹ç›®å½•)}
NÚpngúp(\d+)\.(png|jpg)$ú/pÚ03dr   rm   Úspan)ÚsortedÚsetrH   ÚsearchrJ   rK   rL   r   r   rB   ÚrangerN   rO   rt   )	ÚpgsÚnumsÚsubÚextro   rX   ÚfilesÚnrp   s	   &        r	   Úlocate_by_questionsr…      sì   € ð ˜˜uˆs€DÜ”c˜#“hÖˆÜ�IŠIÐ+¨SÓ1ˆß‰1Ø�K‰Kœ˜AŸG™G A›J›Ô(´·±·±ÀÓ0D¨#ÏGÉGÐTUËJÂcñ  ÷ Ùð €EÜ”3�t“9œc $›i¨!�mÖ,ˆÜ˜S˜E  A c 7¨!¨C¨5Ð1Ó2ˆß‰2Ø�L‰L˜Öñ -÷ ÙØ�U˜F¤S¨£Y´°D³	¸3Ð$?Ð@Ð@r   c           
     ó¸  € T;'       g    RP                  4       pV R8X  d‰   \        4       w  rEVP                  V4      pV'       g   R# \        \        P                  ! \
        P                  P                  VRVR,          R4      4      4      pRRR	VRVR
VP                  R
4      RR/# V R9   EdŒ   V R8X  d   RMRp\        P                  V4      p	V	'       g   R# \        P                  ! RV4      p
V
'       g   R# \        4       P                  R/ 4      P                  V/ 4      P                  \        V	4      / 4      P                  V
P                  ^4      4      pV'       g   R# Vw  rÍ\        W‰4      p\
        P                  P                  \        RV\        V	4      4      p\!        WÍ^,           4       Uu. uF(  p\
        P                  P                  VRVR R24      NK*  	  ppV Uu. uF,  p\
        P                  P#                  V4      '       g   K*  VNK.  	  ppRTR	TRTRV'       d   WìV3R
R/# RR
R/# V R8X  d   \%        WV4      # R# u upi u upi )u˜   â†’ dict æˆ– Noneã€‚kind âˆˆ {v2, dnj, jyf, ykl, hxq}
src_hint = é¢˜ç›®çš„ src å­—æ®µï¼ˆèƒ¡å°�ç¾¤é� å®ƒåˆ¤å†Œæ¬¡ï¼Œå¦‚ã€Œä¸‰ä¸Šè®²ä¹‰ã€�â†’ ä¸‰ä¸Šï¼‰ã€‚r   u   åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰Nrm   r6   úp*.pngr4   r   r   ÚdocxÚpdfr,   r+   r-   z(\d+)Úrangesr'   r   ry   z.jpgu   èƒ¡å°�ç¾¤è¯¾ç¨‹)r,   r.   )r    r$   r   r{   r1   r   r   r   Ú_PGNrH   r}   r)   rG   rL   r8   r   r~   r   Ú_hxq)ÚtbÚggÚcdÚsrc_hintr!   r"   r#   Úpngsr4   ÚgrX   ÚrÚloÚhirQ   Úpdirr„   r   s   &&&&              r	   Úlocater—   ™   sý  € ð �(ˆ(�×	Ñ	Ó	€BØ	Ð!Ô!Ü“+‰ˆØ�G‰G�B‹KˆßÙÜ”d—i’i¤§¡§¡¨R°¸!¸E½(ÀHÓ MÓNÓOˆØ˜˜g r¨7°DØ˜Ÿ™˜f› u¨dð4ð 	4à	Ð*Õ*Ø˜kÔ)‰u¨uˆÜ�H‰H�R‹LˆßÙä�IŠI�h Ó#ˆßÙÜ‹Y�]‰]˜8 RÓ(×,Ñ,¨T°2Ó6ß‰c”#�a“&˜"‹oŸc™c !§'¡'¨!£*›oð 	
çÙØ‰ˆÜ˜Ó!ˆÜ�w‰w�|‰|œD +¨t´S¸³VÓ<ˆÜ=BÀ2ÈAÅvÔ=NÓOÑ=N¸”—‘—‘˜T Q q¨ g¨T ?Ö3Ñ=NˆÐOÙÓ5™4�a¤2§7¡7§>¡>°!×#4—�™4ˆÐ5Ø˜˜g r¨7°DØ¯˜ "�~¸ÀðGð 	GØ37¸ÀðGð 	Gà	ÐÔÜ�B˜HÓ%Ð%Ùùò PùÚ5s   Æ:.IÇ.'IÈIc                 ó>  € R\         9  Ed   / p \        \        P                  P	                  \
        RRR4      4      ;'       g    / pVP                  R4      ;'       g    .  F¢  pVP                  R4      ;'       g    RP                  4       pVP                  R4      ;'       g    RP                  4       pV'       g   K_  V'       g   Ki  V P                  W43\        4       4      P                  VP                  R	4      4       K¤  	  V \         R&   \         R,          # )
uÝ   {(å†Œ, è®²æ ‡é¢˜): [é¡µå�·â€¦]} â€”â€” ä»Ž æˆ�æžœ/èƒ¡å°�ç¾¤è®²ä¹‰/è®²ä¹‰ä¾‹é¢˜_é¢˜ç›®.json æŒ‰ sec è�šå�ˆã€‚
è¯¥åº“æ¯�é¢˜å¸¦ book(å¦‚ã€Œä¸‰ä¸Šã€�)+ sec(è®²å�·)+ sec_titleï¼Œé¡µå›¾åœ¨ æˆ�æžœ/èƒ¡å°�ç¾¤è®²ä¹‰/pages/<å†Œ>/ã€‚Úhxqr;   õ   èƒ¡å°�ç¾¤è®²ä¹‰u   è®²ä¹‰ä¾‹é¢˜_é¢˜ç›®.jsonrM   rQ   r   Ú	sec_titleÚsec)r   r
   r   r   r   rA   r   r    Ú
setdefaultr|   Úadd)r"   rR   ÚitrQ   Úts        r	   Ú
_hxq_indexr¡   ¾   sÖ   € ð ”FÕØˆÜŒr�w‰w�|‰|œD (Ð,=Ð?YÓZÓ[×aÐaÐ_aˆØ—5‘5˜“>×'Ð' RÒ'ˆBØ—F‘F˜6“N×(Ð( b×/Ñ/Ó1ˆDØ—‘˜Ó$×*Ð*¨×1Ñ1Ó3ˆAß‰tŸ™Ø—‘ ˜y¬#«%Ó0×4Ñ4°R·V±V¸E³]ÖCñ	 (ð
 Œˆu‰Ü�%�=Ðr   õ   èƒ¡å°�ç¾¤æ•°å­¦L0-L6u   è¯¾å�Žä¹ é¢˜u   ä¹ é¢˜+è§£æž�c                ó¶  € T;'       g    RP                  4       pRV9   Ed§   \        \        P                  ! \        P                  P                  \        R4      4      4       FÓ  p\        P                  ! \        P                  P                  VR4      4       F˜  p\        P                  P                  V4      pRV9   d   K+  \        P                  ! RRV4      P                  R4      ^ ,          P                  4       pV'       g   Kq  Wq8X  g   Wq9   g	   W9   g   K…  RR	R
VR. RRRV^^ 3RR/u u # 	  KÕ  	  \        P                  ! RV4      pV'       dn   \        P                  P                  \        RVP                  ^4       R24      p\        P                  P                  V4      '       d   RR	R
VR. RRRV^^ 3RR/# R# \        P                  ! RV4      pV'       g   R# VP                  ^4      VP                  ^4      ,           p	\        P                  P                  \        RRRV	4      p
\        \        P                  ! \        P                  P                  V
R4      4      4      pV'       g   R# V	^ ,          V	^,          rÜRpR Fœ  p\        P                  ! \        P                  P                  \        VRR4      RR7       FO  p\        P                  P                  V4      pVP!                  V R24      '       g   K>  WÖR,          9   g   KM  Tp M	  V'       g   Kœ   M	  RRR
TRTRRRV'       d   V^\#        V4      3RR/# RRR/# ) uu  èƒ¡å°�ç¾¤åˆ†ä¸¤ç±»æº�ï¼š
ã€Œä¸‰ä¸Šè®²ä¹‰ã€�ç­‰ â†’ è®²ä¹‰ä¹ é¢˜/<å†Œ>èƒ¡å°�ç¾¤.pdf + æˆ�æžœ/èƒ¡å°�ç¾¤è®²ä¹‰/pages/<å†Œ>/
ã€Œ1-2å¹´çº§è¯¾å�Žã€� â†’ è¯¾å�Žä¹ é¢˜/ä¹ é¢˜+è§£æž�/<N-Mè®²>/ä¹ é¢˜Nï¼š<è®²å��>.pdfï¼ˆ**ä¸€è®²ä¸€ä¸ª PDFï¼Œå¤©ç„¶ä¸“é¢˜çº§**ï¼‰
ã€ŒL3~L6è¯¾å�Žã€�   â†’ è¯¾å�Žä¹ é¢˜/ä¹ é¢˜+è§£æž�/L<N>-ä¹ é¢˜é›†.pdfï¼ˆæ•´æœ¬ï¼Œæ— è®²çº§é¡µèŒƒå›´ â†’ å�ªèƒ½ç»™æ•´æœ¬ï¼‰
r   u   è¯¾å�Žu   *è®²u   ä¹ é¢˜*.pdfu   ç­”æ¡ˆu   ^ä¹ é¢˜\d+[ï¼š:]u   ã€�r4   Úhxq_hwr   rm   rˆ   Nr‰   Ú
whole_fileTzL(\d)ÚLu   -ä¹ é¢˜é›†.pdfu    ([ä¸€äºŒä¸‰å››äº”å…­])([ä¸Šä¸‹])r;   rš   r‡   z**r/   )Ú	recursiver0   :Né   Nr™   Ú
whole_book)r¢   u   èƒ¡å°�ç¾¤æ•°å­¦L7-L9ã€�ç»¼å�ˆ)r    r{   r1   r   r   r   ÚHXQ_HWr3   rH   r�   ÚsplitrI   rL   r   rA   r2   Ú
startswithÚlen)rŽ   r�   r�   Úshr�   r   Úbrr   rX   rQ   r–   r‘   r’   ÚtermÚsrc_pdfÚbases   &&&             r	   rŒ   rŒ   Ð   s¶  € ð �.ˆ.�b×	Ñ	Ó	!€BØ�2…~äœ$Ÿ)š)¤B§G¡G§L¡L´¸Ó$@ÓAÖBˆCÜ—Y’YœrŸw™wŸ|™|¨C°Ó?Ö@�Ü—G‘G×$Ñ$ QÓ'�Ø˜q”=ÙÜ—v’vÐ1°2°qÓ9×?Ñ?ÀÓFÀqÕI×OÑOÓQ�ß‘4˜TœZ¨4¬:¸¾Ø" H¨g°r¸7ÀBØ" D¨%°!°Q¸°¸LÈ$ðPô Pó Añ Cô �HŠH�X˜rÓ"ˆßÜ—‘—‘œV q¨¯©°«¨°NÐ%CÓDˆAÜ�w‰w�~‰~˜a× Ò Ø ¨'°2°wÀØ  e¨a°°A¨Y¸ÀdðLð LáÜ
�ŠÐ4°bÓ9€AßÙØ�7‰7�1‹:˜Ÿ™ ›
Õ"€DÜ�7‰7�<‰<œ˜hÐ(9¸7ÀDÓI€DÜ”$—)’)œBŸG™GŸL™L¨¨xÓ8Ó9Ó:€DßÙð �1�g�t˜A•w€tØ€GÛIˆÜ—’œ2Ÿ7™7Ÿ<™<¬°°d¸GÓDÐPT×UˆAÜ—‘× Ñ  Ó#ˆAØ�|‰|˜q˜c ˜L×)Ô)¨d¸µe®mØ�™Uñ V÷ ‰7Ùñ Jð �E˜7 B¨°°v¸tØ¯g�G˜Q¤ D£	Ð*ÀÈtðUð UØ;?ÀÈtðUð Ur   u   _ä¸“é¢˜æ‹†åˆ†c                 ó<  € \         P                  P                  \        R4      p  \         P                  P	                  V 4      p\        P                  R4      T8w  dž   \        T 4      ;'       g    / p/ p\        \         P                  P                  \        R4      4      ;'       g    / P                  R. 4       F  pYCTR,          &   K  	  T\        R&   TP                  R4      ;'       g    / T3\        R&   \        R,          #   \
         d    / / 3u # i ; i)u­   {'æ•™æ��|å¹´çº§|ä¸“é¢˜': [{'label','path'}â€¦]} â€”â€” ç»„å�·å�°ä¸“é¢˜èŠ‚ â†’ æ‹†å¥½çš„æˆ�å“�æ–‡ä»¶ã€‚
å¸¦ mtime å¤±æ•ˆï¼Œé‡�è·‘ build_precut_map.py å�Žä¸�ç”¨é‡�å�¯æœ�åŠ¡ã€‚u   _ç»„å�·å�°æ˜ å°„.jsonÚpcmtu   _ç´¢å¼•.jsonrM   ÚoutÚmapÚpc)	r   r   r   ÚPRECUTÚgetmtimeÚOSErrorr   r   r
   )r   ÚmtrR   r"   rŸ   s        r	   Ú_precut_mapr¼     sä   € ô 	�‰�‰”VÐ4Ó5€AðÜ�W‰W×Ñ˜aÓ ˆô ‡z�z�&Ó˜RÔÜˆq‹E�KˆK�RˆØˆÜ”b—g‘g—l‘l¤6¨>Ó:Ó;×AÐA¸r×FÑFÀwÐPRÖSˆBØ��5•	‹Nñ TàŒˆv‰ØŸ™˜e›×*Ð*¨¨CÐ0Œˆt‰Ü�$�<Ðøô ô Ø�2ˆvŠðús   ¦D	 Ä	DÄDc                ón  € \        4       w  rgVP                  V  RV RV 24      pV'       g   R# V'       d4   V U	u. uF  q™P                  R4      V8X  g   K  V	NK  	  p
p	V
'       d   T
pM;V'       d4   V U	u. uF  q™P                  R4      V8X  g   K  V	NK  	  up	;'       g    TpV^ ,          pT;'       g    RpV F&  p	V	R,          '       g   K  V	R,          V9   g   K$  T	p M	  \        P                  P	                  \
        VR,          4      p\        P                  P                  V4      '       g   R# VP                  VR,          4      ;'       g    / pRVRVR,          RVP                  RR4      RVP                  R4      R	VP                  R	4      R
VP                  R
4      /# u up	i u up	i )u[  â†’ {'path':ç»�å¯¹è·¯å¾„,'pages':[èµ·é¡µ,æ­¢é¡µ]|None,'label':â€¦,'role':â€¦} æˆ– None

ä¸€ä¸ªä¸“é¢˜èŠ‚ä¸‹å�¯èƒ½æŒ‚ç�€å¤šä»½ï¼šå­¦ç”Ÿç‰ˆ/æ•™å¸ˆç‰ˆï¼ˆå¾ˆå¤šæ•™æ��ä¸¤ç‰ˆéƒ½æœ‰ï¼‰ï¼Œ
èƒ¡å°�ç¾¤è¿˜å†�åˆ†è®²ä¹‰/è¯¾å�Žã€‚å…ˆæŒ‰ role è¿‡æ»¤ï¼Œå†�æŒ‰é¢˜ç›®çš„ src å­—æ®µé€‰ï¼›
é€‰ä¸�å‡ºå°±ç»™ç¬¬ä¸€ä¸ªï¼ˆå­¦ç”Ÿç‰ˆæŽ’åœ¨å‰�ï¼Œé»˜è®¤ç»™å­¦ç”Ÿçš„é‚£ä»½ï¼‰ã€‚
Ú|NÚlabelÚroler   r   õ	   å­¦ç”Ÿç‰ˆrm   r�   rQ   )r¼   r   r   r   r   r2   r   )r�   rŽ   r�   r�   rÀ   r¿   rX   r"   ÚhitsÚhÚexactÚpickr®   rp   rŸ   s   &&&&&&         r	   ÚprecutrÆ     si  € ô ‹]�F€AØ�5‰5�B�4�q˜˜˜A˜b˜TÐ"Ó#€DßÙßÙ Ó<™D�q§E¡E¨'£N°eÑ$;—�™DˆÐ<ßØˆDøß	ÙÓ9™4�a§5¡5¨£=°DÑ#8—�™4Ñ9×AÐA¸TˆØ��7€DØ	�ˆ�R€BÛˆØˆW�:Ž:˜!˜G�*¨Ö*ØˆD‘eñ ô 
�‰�‰”f˜d 6�lÓ	+€BÜ�7‰7�>‰>˜"×ÒÙØ	�‰��f•Ó	×	$Ð	$ "€BØ�B˜  g¥°¸¿¹ÀÈÓ8UØ�R—V‘V˜G“_ d¨B¯F©F°4«L¸&À"Ç&Á&ÈÃ.ðRð Rùò =ùò :s   ¼F-ÁF-Á7F2ÂF2c                óÆ   € V R8X  d*   \         P                  P                  \        RRVR4      ^3# V R8X  d*   \         P                  P                  \        RRRV4      ^3# R# )u#   â†’ (ç›®å½•, é¡µå�·ä½�æ•°) æˆ– Noneõ   ä¸€è¯¾ä¸€ç»ƒr;   r<   rm   rš   N)r   r   r   rA   )r�   rQ   s   &&r	   Ú_pagedirrÉ   6  sY   € à	ˆ^ÔÜ�w‰w�|‰|œD (Ð,@À$ÈÓPÐRSÐSÐSØ	ÐÔÜ�w‰w�|‰|œD (Ð,=¸wÈÓMÈqÐPÐPÙr   u   èƒ¡å°�ç¾¤è¯¾å�Žu   èƒ¡å°�ç¾¤è®²ä¹‰ç­”æ¡ˆc                ó²   €  \        V 4      ;'       d3    \        V4      ;'       d     \        P                  P                  W4      #   \         d     R# i ; i)uj   æ˜¯ä¸�æ˜¯å�Œä¸€ä¸ªæ–‡ä»¶ï¼ˆç¡¬é“¾æŽ¥ä¹Ÿç®—ï¼‰â€”â€” åˆ¤ã€Œè¿™æ‰¹é¡µå›¾é…�ä¸�é…�å¾—ä¸Šè¿™ä»½æˆ�å“�ã€�ç”¨ã€‚F)Úboolr   r   Úsamefiler   )Úar¯   s   &&r	   Ú
_same_filerÎ   H  sF   € ðÜ�A‹w×=Ð=œ4 ›7×=Ð=¤r§w¡w×'7Ñ'7¸Ó'=Ð=øÜô Úðús   ‚A ”A §A ÁAÁAc           
     ó*  € \        4       w  r4VP                  V  RV RV 24      ;'       g    .  Uu. uFU  p\        P                  P	                  \        P                  P                  \        VR,          4      4      '       g   KS  VNKW  	  up# u upi )uv   è¯¥ä¸“é¢˜èŠ‚æŒ‚ç�€çš„å…¨éƒ¨æˆ�å“�æ–‡ä»¶ï¼ˆèƒ¡å°�ç¾¤ä¼šå�Œæ—¶æœ‰ã€Œè®²ä¹‰ã€�å’Œã€Œè¯¾å�Žã€�ï¼‰â†’ [{'label','path'}â€¦]r¾   r   )r¼   r   r   r   r   r   r2   )r�   rŽ   r�   rX   Ú_rÃ   s   &&&   r	   Ú
precut_allrÑ   P  s~   € ä‹=�D€AØŸ™   A b T¨¨2¨$Ð/Ó0×6Ð6°BÐ6ó @Ñ6�!Ü�w‰w�~‰~œbŸg™gŸl™l¬6°1°Vµ9Ó=×>÷ ˆAÑ6ñ @ð @ùò @s   ²ABÂBc                ó´  € V P                  R4      pV P                  R4      \        9   pV'       Edw   Vw  rV\        V P                  R4      V P                  R4      ;'       g    R4      pV'       d¤   Vw  r‰\        WV^,           4       U
u. uF,  p
\        P
                  P                  VRV
RV	 R2 R24      NK.  	  pp
V Uu. uF,  p\        P
                  P                  V4      '       g   K*  VNK.  	  pp\        V4      We,
          ^,           8X  d   V# R	pV'       d   . MT;'       g    .  FF  p\        P                  ! R
V4      pV'       g   K$  VP                  ^4      VP                  ^4      pp M	  V'       dj   . p\        WV^,           4       F2  p
\        V RV
R RX 24      pV'       g   K!  VP                  V4       K4  	  \        V4      We,
          ^,           8X  d   V# V'       d¸   VP                  R4      '       d¡   V'       g™   . pVR,           F  p\        P                  ! R\        P
                  P                  V4      4      pV'       g   KA  V\        VP                  ^4      4      u;8:  d
   V8:  g   Kj  M Kn  VP                  V4       K�  	  V'       d   V# M§V'       d    VP                  R4      '       d‰   VP                  R4      '       gr   V'       gj   VP                  R4      '       d3   \!        V R,          VP                  R4      4      '       d+    VR,          # V P                  RR4      R8X  d
   VR,          # V R,          P#                  4       P%                  R4      '       d   \'        V R,          ^^ 4      # V R,          P#                  4       P%                  R4      '       d   \)        V R,          4      # . # u up
i u upi )uî   é¢„è§ˆç”¨é¡µå›¾ï¼Œ**å¿…é¡»æ˜¯è¿™ä¸ªæˆ�å“�æ–‡ä»¶é‡Œçš„é‚£å‡ é¡µ**ï¼ˆé¢„è§ˆä»€ä¹ˆ=ä¸‹è½½ä»€ä¹ˆï¼‰ã€‚

ä¼˜å…ˆå¤�ç”¨å·²æ¸²æŸ“å¥½çš„é«˜æ¸…é¡µå›¾ï¼ˆæ‰«æ��ä»¶ 200dpiï¼Œæ¯”çŽ°æ¸²æ¸…æ¥šï¼‰ï¼Œ
å®žåœ¨æ‰¾ä¸�åˆ°æ‰�ç”¨ pdftoppm ä»Žæˆ�å“� PDF çŽ°æ¸²ã€‚
rm   r�   rQ   r   r   Ú0rR   z.pngNz^(.*)/p\d+\.(png|jpg)$rx   ry   r   rw   r©   rˆ   r   rÀ   rÁ   z.pdf)z.docxz.doc)r   Ú_XBOOK_PAGESrÉ   r~   r   r   r   r   r­   rH   r}   rL   rt   rJ   r3   rK   rÎ   ÚlowerÚendswithÚrender_pdf_pagesÚrender_docx_pages)r·   r   ÚlocÚrngÚxbookr”   r•   ÚpdrR   Úwr„   rƒ   rP   r�   ro   rX   r‚   s   &&&              r	   Úprecut_pagesrÞ   W  sì  € ð �&‰&�‹/€CØ�F‰F�4‹LœLÑ(€Eß
€sØ‰ˆô �b—f‘f˜T“l B§F¡F¨6£N×$8Ð$8°bÓ9ˆßØ‰DˆAÜAFÀrÐPQÍ6ÔARÓSÑAR¸A”R—W‘W—\‘\ ! q¨¨1¨Q¨C¨q¨&¨	°Ð%6Ö7ÑARˆEÐSÙ %Ó;¡˜1¬¯©¯©¸×):—Q�Q¡ˆEÐ;Ü�5‹z˜R�W q�[Ô(Ø�àˆß‘B c§i i¨RÒ0ˆCÜ—	’	Ð3°SÓ9ˆAß‰qØŸ7™7 1›: q§w¡w¨q£z�S�±5ñ 1÷ ØˆEÜ˜2 A�vÖ&�Ü  C 5¨¨1¨S¨'°°3°%Ð!8Ó9�ß‘1Ø—L‘L –Oñ 'ô �5‹z˜R�W q�[Ô(Ø�ç�3—7‘7˜7×#Ò#¯EØˆEØ˜—\�\�Ü—I’IÐ3´R·W±W×5EÑ5EÀaÓ5HÓI�ß‘1˜œs 1§7¡7¨1£:›Ö4°"×4Ò4Ø—L‘L –Oñ "÷ Ø�øß
�#—'‘'˜'×"Ò"¨3¯7©7°<×+@Ò+@ÏØ:=¿'¹'À&¿/º/Œz˜"˜V�* c§g¡g¨f£o×6Ó6ð  �7�|Ðð —F‘F˜6 ;Ó/°;Ô>ð �7�|ÐØ	ˆ&…z×ÑÓ×"Ñ" 6×*Ò*Ü  6¥
¨A¨qÓ1Ð1Ø	ˆ&…z×ÑÓ×"Ñ"Ð#4×5Ò5Ü   F¥Ó,Ð,Ø€Iùòc TùÚ;s   Â2OÃ'OÃ/Oc           
     ó
  € ^ RI pT;'       g%    \        P                  P                  \        R4      p\
        P                  ! V  R\        P                  P                  V 4       2P                  4       4      P                  4       R,          p\        P                  P                  VRV,           4      p\        P                  P                  VR4      p\        P                  P                  V4      '       Eg5   \        P                  ! VRR7       VP                  R	R
7      p \        P                  P                  VR4      p\        P                  ! W4       \        P                   ! RRR\        P                  P                  VR4      ,           RRRWg.RRR7       \        P                  P                  VR4      p\        P                  P                  V4      '       g   . \        P"                  ! VRR7       # \        P$                  ! W…4        \        P"                  ! TRR7       \)        V^^ V4      #   \&         d    . u \        P"                  ! TRR7       # i ; i  \        P"                  ! TRR7       i ; i)um  docx â†’ PDFï¼ˆLibreOfficeï¼‰â†’ é¡µå›¾ã€‚åˆ�ä¸­åŸ¹ä¼˜çš„æˆ�å“�å�ªæœ‰ docxï¼Œæ²¡æœ‰çŽ°æˆ�é¡µå›¾ã€‚

é¦–æ¬¡çº¦ 6 ç§’ï¼Œä¹‹å�Žèµ°ç¼“å­˜ã€‚
âš  soffice çš„ file:// URL ç¢°åˆ°**ä¸­æ–‡æˆ–ç©ºæ ¼**å°±å´©ï¼Œè€Œä¸”å´©çš„æ˜¯**æ•´æ�¡è·¯å¾„**ä¸�å�ªæ–‡ä»¶å�� â€”â€”
  æœ¬ä»“åº“è·¯å¾„æ˜¯ã€Œâ€¦/AI workspace/è¯¾ç¨‹è®¾è®¡æœºå™¨äºº/ç»„å�·ç³»ç»Ÿ/â€¦ã€�ï¼Œä¸¤æ ·å…¨å� ã€‚
  æ‰€ä»¥æ•´ä¸ªè½¬æ�¢åœ¨çº¯ ASCII çš„ä¸´æ—¶ç›®å½•é‡Œå�šå®Œï¼Œå†�æŠŠ PDF æ�¬å›žç¼“å­˜ï¼ˆè¸©è¿‡ï¼šå�ªæ�¢æ–‡ä»¶å��ä¸�ç®¡ç”¨ï¼Œ
  rc=0 ä½†ä¸€ä¸ªæ–‡ä»¶éƒ½ä¸�äº§å‡ºï¼‰ã€‚ç‹¬ç«‹ UserInstallation æ˜¯ä¸ºäº†ä¸�è·Ÿç”¨æˆ·å¼€ç�€çš„ LibreOffice æŠ¢é”�ã€‚
â†’ [é¡µå›¾ç»�å¯¹è·¯å¾„â€¦]
Nú.cache_pagesr¾   ºNé   NÚdocx_zdoc.pdfT©Úexist_okÚzjdocx_)Úprefixzsrc.docxÚsofficez
--headlessz-env:UserInstallation=file://Úprofilez--convert-tor‰   z--outdiré,  ©Úcapture_outputÚtimeoutzsrc.pdf)Úignore_errors)Útempfiler   r   r   r   ÚhashlibÚmd5r¹   ÚencodeÚ	hexdigestr   ÚmakedirsÚmkdtempÚshutilÚcopy2Ú
subprocessÚrunÚrmtreeÚmover   r×   )	ÚsrcÚ	cache_dirrï   ÚsigÚoutdirr‰   ÚworkÚtmpÚmades	   &&       r	   rØ   rØ   š  sÆ  € ó Ø×?Ð?œRŸW™WŸ\™\¬$°Ó?€IÜ
�+Š+˜˜˜QœrŸw™w×/Ñ/°Ó4Ð5Ð6×=Ñ=Ó?Ó
@×
JÑ
JÓ
LÈSÕ
Q€CÜ�W‰W�\‰\˜) W¨s¥]Ó3€FÜ
�'‰'�,‰,�v˜yÓ
)€CÜ�7‰7�>‰>˜#×ÓÜ
�Š�F TÕ*Ø×Ñ yÐÓ1ˆð	4Ü—'‘'—,‘,˜t ZÓ0ˆCÜ�LŠL˜Ô"Ü�NŠN˜I |Ø;¼b¿g¹g¿l¹lÈ4ÐQZÓ>[Õ[Ø*¨E°:¸tðJð +/¸õ=ô —7‘7—<‘<  iÓ0ˆDÜ—7‘7—>‘> $×'Ò'Øô
 �MŠM˜$¨dÖ3ô	 �KŠK˜Õ"ô �MŠM˜$¨dÕ3Ü˜C  A yÓ1Ð1øô	 ô 	Ø‰Iä�MŠM˜$¨dÖ3ð	ûô �MŠM˜$¨dÖ3ús+   Ä&CH= È H= È=I%É
I( É$I%É%I( É(Jc                ó  € . Rr!V  Fn  p\         P                  ! RV4      pV'       g   K$  VP                  ^4      VP                  ^4      3q!P                  \	        VP                  ^4      4      4       Kp  	  V'       d	   V'       g   R# \        V4      \        V4      reVw  rxVR8X  dä   \         P                  ! RV4      pV'       g   R# VP                  ^4      VP                  ^4      R8X  d   RMR\        VP                  ^4      4      rºp	V	 RV
 2p\        P                  ! \        P                  P                  \        R	R
4      4       F:  p\        P                  P                  V4      pWÎ9   g   K*  RV9   V8X  g   K6  WÕV3u # 	  R# )uD  é€šç”¨ä¸‹è½½å…œåº•ï¼šä»Žé¢˜ç›® pg çš„é¡µå›¾è·¯å¾„æŽ¨å‡ºã€Œæ•´æœ¬ PDF + é¡µèŒƒå›´ã€�ã€‚

é¡µå›¾ç›®å½•å��ç¼–ç �äº†å†Œæ¬¡ï¼ˆåŽŸä¹¦é¡µ/ykl/1s â†’ ä¸€è¯¾ä¸€ç»ƒä¸€å¹´çº§ä¸Šæ™®é€šï¼‰ï¼Œ
æ•´æœ¬ PDF åœ¨ æº�é¢˜æ–‡ä»¶/<æ•™æ��>/ ä¸‹æŒ‰å†Œå��åŒ¹é…�ã€‚é€‚ç”¨äºŽ locate() æ²¡è¦†ç›–çš„æ•™æ��/å†Œã€‚
â†’ (æ•´æœ¬pdf, èµ·é¡µ, æ­¢é¡µ) æˆ– None
Nu    åŽŸä¹¦é¡µ/(\w+)/([^/]+)/p(\d+)\.r:   z(\d)([sx])(z?)$Úsu   ä¸Šu   ä¸‹r0   rÈ   r/   u   å¢žå¼º)rH   r}   rL   rJ   rK   rN   rO   rI   rË   r1   r   r   r   r2   r3   )r   r€   rq   ro   rX   r”   r•   r4   r�   Úgrr°   ÚenhÚwantr   r¯   s   &              r	   Úfallback_pdfr  ¾  s6  € ð �4ˆ"ÛˆÜ�IŠIÐ9¸3Ó?ˆß‰1Ø—'‘'˜!“*˜aŸg™g a›jÐ)ˆB¯;©;´s¸1¿7¹7À1»:³Ö+Gñ ÷ —rÙÜ�‹Yœ˜D›	ˆØ�I€DØˆu„}ä�HŠHÐ'¨Ó-ˆßÙØŸ™ ›
¨a¯g©g°a«j¸CÔ.?¡UÀUÌTÐRS×RYÑRYÐZ[ÓR\ÓM]�#ˆØ��V˜D˜6Ð"ˆÜ—’œ2Ÿ7™7Ÿ<™<¬°ÀÓHÖIˆAÜ—‘× Ñ  Ó#ˆAØŽy˜x¨1™}°Ö4Ø˜r�{Ò"ñ Jñ r   iØ  c                ó  € T;'       g%    \         P                  P                  \        R4      p\         P                  ! VRR7       ^ RIpVP                  ! V  RV RV R\         P                  P                  V 4       R\         2	P                  4       4      P                  4       R,          p\         P                  P                  W54      p\        \        P                  ! \         P                  P                  VR4      4      4      pV'       d   V# \         P                  ! VRR7       R	R
R\        \        4      RR.pV'       d   VR\        V4      .,          pV'       d   VR\        V4      .,          pW€\         P                  P                  VR4      .,          p \        P                  ! VRRR7       \        \        P                  ! \         P                  P                  TR4      4      4      #   \          d    . u # i ; i)uå  æŠŠ PDF æ¸²æˆ�é¡µå›¾ï¼ˆpoppler çš„ pdftoppmï¼Œ0.15 ç§’/é¡µï¼Œ**ä¸�æ˜¯ LibreOffice**ï¼‰ã€‚

ç»™é‚£äº›æ²¡æœ‰é¢„æ¸²æŸ“é¡µå›¾çš„æº�ç”¨ï¼ˆå¦‚èƒ¡å°�ç¾¤è¯¾å�Žä¹ é¢˜ï¼‰ï¼Œè®©**é¢„è§ˆå’Œä¸‹è½½å§‹ç»ˆå�Œæº�**ï¼š
ä¸‹è½½ç»™å“ªå‡ é¡µã€�é¢„è§ˆå°±æ˜¾ç¤ºå“ªå‡ é¡µã€‚ç»“æžœæŒ‰ã€Œæº�è·¯å¾„+é¡µèŒƒå›´+mtime+å‡ºå›¾è®¾ç½®ã€�ç¼“å­˜ã€‚

âš  æŒ‰**å®½åº¦**å‡ºå›¾ï¼Œä¸�æŒ‰ dpiã€‚æº� PDF çš„çº¸å¼ å¤§å°�å¹¶ä¸�éƒ½æ˜¯ A4ï¼š
  ä¸€è¯¾ä¸€ç»ƒæœ‰ 8 ä»½å…¨å†Œç­”æ¡ˆæ˜¯ 2000Ã—2835 ptï¼ˆâ‰ˆ28Ã—39 è‹±å¯¸ï¼‰ï¼Œå›ºå®š `-r 110` æ¸²å‡ºæ�¥
  æ˜¯ 3056Ã—4344ã€�**å�•å¼  7.8 MB**ï¼Œ8 ä»½å°±å�ƒæŽ‰ 0.59 GBï¼Œæµ�è§ˆå™¨é‡Œä¹Ÿæ‹–å¾—åŠ¨ä¸�äº†ã€‚
  `-scale-to-x` è®©ä»»ä½•çº¸å¼ éƒ½å‡ºå�Œä¸€ä¸ªå®½åº¦ï¼ˆ1240pxï¼Œä¸Žæˆ�æžœé‡Œå·²æ¸²çš„è®²ä¹‰é¡µå›¾ 1241px å¯¹é½�ï¼‰ã€‚
â†’ [é¡µå›¾ç»�å¯¹è·¯å¾„â€¦]
rà   Trä   Nr¾   z|wrá   z*.pngÚpdftoppmz-pngz-scale-to-xz-scale-to-yz-1z-fz-lr   rê   rë   )r   r   r   r   rô   rð   rñ   r¹   ÚPAGE_PXrò   ró   r{   r1   rG   rø   rù   r   )	rü   r”   r•   rý   rð   rþ   rÿ   ÚgotÚcmds	   &&&&     r	   r×   r×   á  sy  € ð ×?Ð?œRŸW™WŸ\™\¬$°Ó?€IÜ‡K‚K�	 DÕ)Ûà
�+Š+˜˜˜Q˜r˜d ! B 4 q¬¯©×)9Ñ)9¸#Ó)>Ð(?¸rÄ'ÀÐKß‘v“xó!ß!*¡£¨Sõ2€Cä�W‰W�\‰\˜)Ó)€FÜ
”—’œ2Ÿ7™7Ÿ<™<¨°Ó8Ó9Ó
:€Cß
Øˆ
Ü‡K‚K� Õ&Ø�v˜}¬c´'«l¸MÈ4Ð
P€Cß	Ø�”c˜"“gˆÕˆß	Ø�”c˜"“gˆÕˆØ”—‘—‘˜f cÓ*Ð+Õ+€CðÜ�Š�s¨4¸Õ=ô ”$—)’)œBŸG™GŸL™L¨°Ó9Ó:Ó;Ð;øô ô ØŠ	ðús   Æ#G9 Ç9H	ÈH	c           	     óŠ   € \         P                  ! RV RRV RV 2RV.R^xR7      p\        P                  P	                  V4      # )uT   ç”¨ qpdf æŒ‰é¡µèŒƒå›´åˆ‡ PDFï¼ˆ0.05 ç§’çº§ï¼Œç³»ç»Ÿè‡ªå¸¦ï¼Œæ— ç¬¬ä¸‰æ–¹ä¾�èµ–ï¼‰ã€‚Úqpdfz--pagesr   Ú-z--Trë   )rø   rù   r   r   r   )rü   r”   r•   rµ   r“   s   &&&& r	   Úcut_pdfr    sC   € ä�Š˜  Y°¸°t¸1¸R¸D°\À4ÈÐMØ&*°Cô	9€Aä�7‰7�>‰>˜#ÓÐr   Ú__main__:é   é   N)r   )r   NN)NN)N)r  é    N)0Ú__doc__r   rH   r   r1   rö   rð   rø   rE   r   rB   ÚabspathÚ__file__r   rA   r   r2   r   r
   r   r$   r‹   r)   r8   rZ   rt   r…   r—   r¡   rª   rŒ   r¸   r¼   rÆ   rÉ   rÔ   rÎ   rÑ   rÞ   rØ   r  r  r×   r  Ú__name__ÚsysÚprintÚargvr(   r   r	   Ú<module>r     sf  ðñ÷" D× C× C× Cà	‡w�w‡��r—w‘w—‘ xÓ0Ó1€Ø	‡w�w‡��tÓ€Ø	�‰�‰�d˜NÓ	+€à	€òòòð 	�Q˜ Q¨°Q¸ÀQÈÐUVÐXcÐefÐg€òòòò*ò:Aô4"òJð 
�‰�‰�fÐ4°nÀoÓ	V€ô.Uðd 
�‰�‰�f˜oÓ	.€òô$Rò>ð  "Ð#:Ð;€òò@ô@ôF!2òHð@ €ô!<òHð ˆzÔÛÙ	‰&�#—(‘(˜3•-Ñ
 Ö!ñ r   