
    V|h                     v    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	J
r
JrJr  SSKJr   " S S	\5      rg)
    N   )
FragmentFD   )imghdr)
escapeHTMLformatSecondssrt_subtitles_timecodeurljoin)__version__c                       \ rS rSrSr\R                  " SS\5      r\R                  " SS\5      r\S 5       rS r	S	 r
S
 rSrg)MhtmlFD   a  html, body {
    margin: 0;
    padding: 0;
    height: 100vh;
}

html {
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
}

body {
    scroll-snap-type: y mandatory;
    display: flex;
    flex-flow: column;
}

body > figure {
    max-width: 100vw;
    max-height: 100vh;
    scroll-snap-align: center;
}

body > figure > figcaption {
    text-align: center;
    height: 2.5em;
}

body > figure > img {
    display: block;
    margin: auto;
    max-width: 100%;
    max-height: calc(100vh - 5em);
}
z\s+ z5\B \B|(?<=[\w\-]) (?=[^\w\-])|(?<=[^\w\-]) (?=[\w\-]) c           	          SSR                  S [        R                  " U R                  5       SS9 5       5      R	                  S5      -   S-   $ )Nz
=?utf-8?Q?    c              3   P   #    U  H  nUS :  a  [        U45      OSU-  v   M     g7f)    s   =%02XN)bytes).0bs     Q/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/downloader/mhtml.py	<genexpr>'MhtmlFD._escape_mime.<locals>.<genexpr>6   s,      (
A 9E1$K(Q,6As   $&T)headerus-asciiz?=)joinquopriencodestringencodedecode)ss    r   _escape_mimeMhtmlFD._escape_mime4   sP    sxx (
((DA(
  
 6* !%% 	%r   c                     U SU S3$ )N.z@yt-dlp.github.io.invalid )selfifragmentfrag_boundarys       r   _gen_cidMhtmlFD._gen_cid;   s    Am_$=>>r   c                |   [         R                  " 5       nUR                  S[        [        5       S[        U5       SU R
                   S35        Sn[        U5       H  u  pgUR                  S5         XWS   -   nUR                  SR                  US	-   [        U5      [        U5      [        US   S
S9S95        UR                  SU R                  XgU5       S35        UR                  S5        UnM     UR                  5       $ ! [        [        [        4 a    S nUR                  SUS	-    S35         N}f = f)NzB<!DOCTYPE html><html><head><meta name="generator" content="yt-dlp z	"><title>z</title><style>z</style><body>r   z<figure>durationuK   <figcaption>Slide #{num}: {t0} – {t1} (duration: {duration})</figcaption>r   T)msec)numt0t1r/   z<figcaption>Slide #z</figcaption>z<img src="cid:z">z	</figure>)ioStringIOwriter   YT_DLP_VERSION_STYLESHEET	enumerateformatr	   r   KeyError
ValueError	TypeErrorr,   getvalue)	r(   	fragmentsr+   titleoutputr2   r)   fragr3   s	            r   	_gen_stubMhtmlFD._gen_stub>   sP   6 7A6P5Q R '( )&&' (	  +GALL$Iz**a&A-b1-b1*4
+;$G	   LL>$--*O)PPRSTLL%B# ,&    j)4 I21q5'GHIs   5AD		/D;:D;c                 V   UR                  S5      nU R                  R                  SS5      (       a  US   S S OUS   nUR                  SUS   5      nUR                  SUS	   5      nU[        U5      S
.nU R                  Xr5        UR	                  SS[        [        R                  " 5       5      R                  SS5      S.5      nUS   n	US   (       dc  U R                  UU	US9n
US   R                  SU R                  U5       SU	 SU SU	 S[        U
5       SU
 S3R                  5       5        SUS'   [        U5       GH  u  pUS-   US   ::  a  M  UR                  S	5      nU(       d  U(       d   e[        X<S   5      nU R                  X}U5      nU(       d  M^  U R!                  U5      n["        R$                  " 5       nUR                  SU	R                  S5      -  5        UR                  SU R'                  XU	5      R                  S5      -  5        UR                  S S![(        R*                  " US"9=(       d    S# 3R                  5       -  5        UR                  S$[        U5      -  5        UR                  S%UR                  S5      -  5        UR                  S&US'   -  5        UR                  S(5        U R-                  UUR/                  5       U-   S(-   5        GM     US   R                  S)U	R                  S5      -  5        U R1                  Xr5      $ )*Nfragment_base_urltestFr?   r   r@   	format_idwebpage_urlurl)filenametotal_fragsextra_state-r   )header_writtenmime_boundaryrP   rO   )r?   r+   r@   dest_streamznMIME-Version: 1.0
From: <nowhere@yt-dlp.github.io.invalid>
To: <nowhere@yt-dlp.github.io.invalid>
Subject: z-
Content-type: multipart/related; boundary="z&"; type="text/html"
X.yt-dlp.Origin: z

--z:
Content-Type: text/html; charset=utf-8
Content-Length: z

z
Tfragment_indexpaths   --%b
r   s   Content-ID: <%b>
s   Content-type: %b
zimage/)hjpegs   Content-length: %u
s   Content-location: %b
s   X.yt-dlp.Duration: %f
r/   s   
s
   --%b--

)getparamslen _prepare_and_start_frag_download
setdefaultstruuiduuid4replacerC   r6   r#   r    r9   r
   _download_fragment_read_fragmentr4   BytesIOr,   r   what_append_fragmentr>   _finish_frag_download)r(   rK   	info_dictrF   r?   r@   originctxrM   r+   stubr)   r*   fragment_urlsuccessfrag_contentfrag_headers                    r   real_downloadMhtmlFD.real_download`   sJ   %MM*=>26++//E3 3Ik*2A. )+ 6 	gy'=>}i.>? !y>

 	--c=nn]# .66sB?5
 
 $O4+,>>#+ " D $$ !--e45 6*O ,$$*8 ,"O $##&t9+ .&  &vx) -1K()$Y/KAA#.//#<<.L(((&'86:JK--cKG..s3L**,Km22:>>@'$--]*S*Z*Z[e*ffh'F6;;3N3XRX2Y*Z*a*a*cce)C,==?+l.A.A*.MMO,x
/CCEg&!![))+l:WDF9 0> 	M   4 4Z @@	B))#99r   r'   N)__name__
__module____qualname____firstlineno__r8   resubstaticmethodr#   r,   rC   rm   __static_attributes__r'   r   r   r   r      sV    #KH &&k2K&&QSUWbcK% %? !DN:r   r   )r4   r   rs   r\   r*   r   compatr   utilsr   r   r	   r
   versionr   r7   r   r'   r   r   <module>rz      s.    	  	     N N 3b:j b:r   