§
    Û×j¯ú  ã                  ó  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlZd dlmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZ d d	lmZmZ h d
£Z e¦   «         Z de!d<   dZ"d¨d„Z#d©d„Z$dªd„Z%d«d¬d„Z&d­d„Z'd®d „Z(d®d!„Z)d¯d$„Z*d°d&„Z+d±d(d)œd²d0„Z,d1d(d2œd³d6„Z-d´d9„Z.ddd:œdµd?„Z/d¶dddd@œd·dB„Z0ddCdDdEdFœZ1dd(ddddGœd¸dL„Z2d¹dQ„Z3dºdV„Z4d»dddd@œd¼dZ„Z5d½dddd@œd¾d]„Z6d¿dd^œdÀda„Z7dddbœdÁde„Z8dÂdh„Z9d d d d didddjdkdlœ	dÃdx„Z:dÄdy„Z;dd^œdÅd{„Z<dÆd€„Z=dd�dddddjddddddddddd‚œdÇd˜„Z>dÈd›„Z?dÉdœ„Z@ddd d d d didjdkdddd�œdÊdž„ZAddd d d d didjdkdŸœ	dËd „ZBdÌd¡„ZCdÌd¢„ZDdddbœdÍd£„ZEd¯d¤„ZFd¯d¥„ZGdÎd¦„ZHdÏd§„ZIdS )Ðé    )ÚannotationsN)ÚOrderedDict)ÚTemporaryDirectory)ÚImageÚ	ImageDrawÚ	ImageFont)Údownload_ffmpeg)Úget_mp4_audio_codec_settingsÚget_video_audio_extra_args)Úget_video_container_extensionÚget_video_encode_argsÚvalidate_video_output_settings)Úget_video_frameÚget_video_info>   ú.aviú.webmú.mkvú.movú.mp4zOrderedDict[str, str]Ú_THUMB_DATA_URL_CACHEé@   ÚreturnÚstrc                 ó¬   — t          ¦   «          t          j                             dd¦  «        pt	          j        d¦  «        } | st          d¦  «        ‚| S )NÚFFMPEG_BINARYÚ Úffmpegzffmpeg is not available.)r	   ÚosÚenvironÚgetÚshutilÚwhichÚRuntimeError)Úffmpeg_paths    ú@C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\video_tools.pyÚ_get_ffmpeg_pathr&      sO   € ÝÑÔÐÝ”*—.’. °"Ñ5Ô5ÐO½¼ÀhÑ9OÔ9O€KØð 7ÝÐ5Ñ6Ô6Ð6ØÐó    Úargsú	list[str]ÚNonec                óÐ   — t          j        t          ¦   «         dddg| ¢dddd¬¦  «        }|j        dk    r/t	          |j        p|j        pd	                     ¦   «         ¦  «        ‚d S )
Nú-yú-vÚerrorTúutf-8Úreplace©Úcapture_outputÚtextÚencodingÚerrorsr   zffmpeg command failed)Ú
subprocessÚrunr&   Ú
returncoder#   ÚstderrÚstdoutÚstrip)r(   Úresults     r%   Ú_run_ffmpegr=   #   s�   € ÝŒ^Õ-Ñ/Ô/°°t¸WÐLÀtÐLÐ]aÐhlÐw~ð  HQð  Rñ  Rô  R€FØÔ˜AÒÐÝ˜FœMÐU¨V¬]ÐUÐ>U×\Ò\Ñ^Ô^Ñ_Ô_Ð_ð Ðr'   Úsecondsúfloat | int | Noneú
str | Nonec                ó¦   — | €d S t          | ¦  «        } | dk     rt          d¦  «        ‚| d›                     d¦  «                             d¦  «        S )Nr   zTime values must be >= 0.ú.6fÚ0ú.)ÚfloatÚ
ValueErrorÚrstrip)r>   s    r%   Ú_format_timestamprH   )   sW   € Ø€ØˆtÝ�G‰nŒn€GØ�‚{€{ÝÐ4Ñ5Ô5Ð5ØÐÐ×"Ò" 3Ñ'Ô'×.Ò.¨sÑ3Ô3Ð3r'   Ú
start_timeÚend_timeÚdurationútuple[str | None, str | None]c                ó˜  — |�|�t          d¦  «        ‚t          | €dn| ¦  «        }t          |¦  «        }t          |¦  «        }|�/t          |¦  «        t          |¦  «        k    rt          d¦  «        ‚|�"t          |¦  «        dk    rt          d¦  «        ‚||€|n+t          t          |¦  «        t          |¦  «        z
  ¦  «        fS )Nz.Specify either end_time or duration, not both.r   z)end_time must be greater than start_time.zduration must be > 0.)rF   rH   rE   )rI   rJ   rK   Ú	start_strÚend_strÚduration_strs         r%   Ú_resolve_segment_argsrQ   2   sÒ   € ØÐ Ð 4ÝÐIÑJÔJÐJÝ! zÐ'9 ! !¸zÑJÔJ€IÝ Ñ)Ô)€GÝ$ XÑ.Ô.€LØÐ�u W™~œ~µ°yÑ1AÔ1AÒAÐAÝÐDÑEÔEÐEØÐ¥E¨,Ñ$7Ô$7¸1Ò$<Ð$<ÝÐ0Ñ1Ô1Ð1à g o�l�lÕ;LÍUÐSZÉ^Ì^Õ^cÐdmÑ^nÔ^nÑMnÑ;oÔ;oÐoÐor'   Ú	codec_keyc                ó°   — t          | pd¦  «                             ¦   «                              ¦   «         pd} | dk    rd} | dk    rdS | dv rdS | dk    rdnd	S )
NÚwavÚmp3Úmp3_192Úflacz.flac>   Úm4aÚalacú.m4az.wavz.mp3)r   r;   Úlower)rR   s    r%   Úget_audio_standalone_extensionr\   @   su   € Ý�IÐ& Ñ'Ô'×-Ò-Ñ/Ô/×5Ò5Ñ7Ô7Ð@¸5€IØ�EÒÐØˆ	Ø�FÒÐØˆwØ�OÐ#Ð#ØˆvØ %Ò'Ð'ˆ6ˆ6¨VÐ3r'   c                óš   — t          | ¦  «        }d|d         gt          | ¦  «        ¢}|                     d¦  «        r|d|d         gz  }|S )Nú-c:aÚcodecÚbitrateú-b:a)r
   r   r    )rR   Úsettingsr(   s      r%   Ú_get_mp4_audio_encode_argsrc   K   sY   € Ý+¨IÑ6Ô6€HØ�H˜WÔ%ÐNÕ(BÀ9Ñ(MÔ(MÐN€DØ‡|‚|�IÑÔð .Ø�˜ )Ô,Ð-Ñ-ˆØ€Kr'   c                óø   — t          | pd¦  «                             ¦   «                              ¦   «         pd} | dk    rd} | dk    rddgS | dk    rg d¢S | dv rdd	gS d
dddœ                     | d¦  «        }ddd|gS )NrT   rU   rV   r^   Ú	pcm_s16lerW   )r^   rW   z-sample_fmtÚs16>   rX   rY   rY   Ú128kÚ192kÚ320k)Úmp3_128rV   Úmp3_320Ú
libmp3lamera   )r   r;   r[   r    )rR   r`   s     r%   Ú!_get_standalone_audio_encode_argsrm   S   s³   € Ý�IÐ& Ñ'Ô'×-Ò-Ñ/Ô/×5Ò5Ñ7Ô7Ð@¸5€IØ�EÒÐØˆ	Ø�EÒÐØ˜Ð$Ð$Ø�FÒÐØ5Ð5Ð5Ð5Ø�OÐ#Ð#Ø˜ÐÐØ ¨VÀÐGÐG×KÒKÈIÐW]Ñ^Ô^€GØ�L &¨'Ð2Ð2r'   ÚpathÚboolc                óÀ   — t           j                             t          | pd¦  «                             ¦   «         ¦  «        d                              ¦   «         t          v S )Nr   é   )r   rn   Úsplitextr   r;   r[   ÚVIDEO_EXTENSIONS©rn   s    r%   Úhas_video_extensionru   a   sE   € ÝŒ7×Ò�C  
¨™OœO×1Ò1Ñ3Ô3Ñ4Ô4°QÔ7×=Ò=Ñ?Ô?ÕCSÐSÐSr'   Ú
video_pathc                ó>  — t           j                             t           j                             t	          | pd¦  «                             ¦   «         ¦  «        ¦  «        } t          | ¦  «        dk    s.t           j                             | ¦  «        rt          | ¦  «        sdS t          j	        | ¦  «        }t          j        t           j                             | ¦  «        › d|j        › d|j        › �                     d¦  «        ¦  «                             ¦   «         }t                                |d¦  «        }t          |¦  «        dk    rt                                |¦  «         |S t'          j        t+          ¦   «         ddddd	| d
ddddddddddddgd¬¦  «        }|j        dk    st          |j        ¦  «        dk    rOt1          |j                             dd¬¦  «                             ¦   «         pd                     ¦   «         ¦  «        ‚dt7          j        |j        ¦  «                             d¦  «        › �}|t           |<   t          t           ¦  «        t:          k    r8t                                d¬¦  «         t          t           ¦  «        t:          k    °8|S )Nr   r   ú|r/   r-   r.   z-threadsÚ1ú-iz	-frames:vú-vfz1scale=320:-1:force_original_aspect_ratio=decreasez-q:vÚ4ú-fÚ
image2pipez-vcodecÚmjpegú-T)r2   Úignore©r5   z"ffmpeg thumbnail extraction failedzdata:image/jpeg;base64,ÚasciiF)Úlast)r   rn   ÚabspathÚnormpathr   r;   ÚlenÚisfileru   ÚstatÚhashlibÚsha1Úst_mtime_nsÚst_sizeÚencodeÚ	hexdigestr   r    Úmove_to_endr6   r7   r&   r8   r:   r#   r9   ÚdecodeÚbase64Ú	b64encodeÚ_THUMB_CACHE_MAXÚpopitem)rv   r‰   Ú	cache_keyÚcachedr<   Údata_urls         r%   Úget_video_thumbnail_data_urlr™   e   so  € Ý”—’¥¤×!1Ò!1µ#°jÐ6FÀBÑ2GÔ2G×2MÒ2MÑ2OÔ2OÑ!PÔ!PÑQÔQ€JÝ
ˆ:�„˜!ÒÐ¥2¤7§>¢>°*Ñ#=Ô#=ÐÕEXÐYcÑEdÔEdÐØˆrÝŒ7�:ÑÔ€DÝ”¥¤§¢°
Ñ ;Ô ;Ð_Ð_¸dÔ>NÐ_Ð_ÐQUÔQ]Ð_Ð_×fÒfÐgnÑoÔoÑpÔp×zÒzÑ|Ô|€IÝ"×&Ò& y°"Ñ5Ô5€FÝ
ˆ6�{„{�Q‚€Ý×)Ò)¨)Ñ4Ô4Ð4ØˆÝŒ^åÑÔØØØØØØØØØØ?ØØØØØØØØØð)	
ð, ð/ñ ô €Fð2 Ô˜AÒÐ¥ V¤]Ñ!3Ô!3°qÒ!8Ð!8Ý˜FœM×0Ò0°ÀÐ0ÑJÔJ×PÒPÑRÔRÐzÐVz÷  Bò  Bñ  Dô  Dñ  Eô  Eð  	EØZ­Ô)9¸&¼-Ñ)HÔ)H×)OÒ)OÐPWÑ)XÔ)XÐZÐZ€HØ'/Õ˜)Ñ$Ý
Õ#Ñ
$Ô
$Õ'7Ò
7Ð
7Ý×%Ò%¨5Ð%Ñ1Ô1Ð1õ Õ#Ñ
$Ô
$Õ'7Ò
7Ð
7à€Or'   ç        g      ð?)Úmin_black_sÚstart_srE   Úend_súfloat | Noner›   údict[str, list]c               óÊ  ‡‡
— |�t          j        |¦  «        sg nd|‰z
  d›g}d|d›d�}t          j        t	          ¦   «         ddd	‰d›g|¢d
‘| ‘d‘d‘|‘d‘d‘d‘dddd¬¦  «        }|j        r0t          |j                             ¦   «         dd…         pd¦  «        ‚d„ t          j
        d|j        ¦  «        D ¦   «         d„ t          j
        d|j        ¦  «        D ¦   «         c}Š
ˆ
fd„t          t          |‰
¦  «        ¦  «        D ¦   «         }ˆfd„t          j
        d|j        ¦  «        D ¦   «         ˆfd„|D ¦   «         dœ}	d„ |	                     ¦   «         D ¦   «         S ) aÕ  Measured picture events in [start_s, end_s] (seconds), in one decode: "black_ranges_seconds" (ffmpeg blackdetect, nearly every
    pixel below 10 % luminance) and "cut_times_seconds" (hard cuts: a frame whose ffmpeg scene score is at least 0.08 and 3 times the
    highest of the 6 frames on either side; cuts score 0.14-1, down to 0.14 between dark shots, while continuous motion stays at most
    0.1 and close to its neighbours). Only non-empty entries are returned.Nú-tz.3fzscale=160:-2,blackdetect=d=ÚgzG:pix_th=0.10,select='gte(scene,0)',metadata=print:key=lavfi.scene_scorer-   Úinfoú-ssrz   ú-anr{   r}   Únullr€   Tr/   r0   r1   éþÿÿz"ffmpeg could not decode the video.c                ó,   — g | ]}t          |¦  «        ‘ŒS © ©rE   )Ú.0Útimes     r%   ú
<listcomp>z"picture_checks.<locals>.<listcomp>›   s   € Ð^Ð^Ð^ T•U˜4‘[”[Ð^Ð^Ð^r'   zpts_time:([\d.]+)c                ó,   — g | ]}t          |¦  «        ‘ŒS r©   rª   )r«   Úscores     r%   r­   z"picture_checks.<locals>.<listcomp>›   s;   € ð  awð  awð  awÐrwÕafÐglÑamÔamð  awð  awð  awr'   zlavfi\.scene_score=([\d.]+)c                ó²   •— g | ]S\  }\  }}|d k    ¯|dt          ‰t          d|dz
  ¦  «        |…         ‰|dz   |dz   …         z   pdg¦  «        z  k    ¯Q|‘ŒTS )g{®Gáz´?é   r   é   rq   é   )Úmax)r«   Úindexr¬   r¯   Úscoress       €r%   r­   z"picture_checks.<locals>.<listcomp>œ   s  ø€ ð  xð  xð  xÑ)�U™M˜T 5ÈeÐW[ÊmÈmÐ`eÐijÕmpÐqwÕx{Ð|}ð  @Eð  HIñ  @Iñ  yJô  yJð  KPð  yPô  rQð  TZð  [`ð  cdñ  [dð  ejð  mnñ  enð  [nô  Toñ  roð  rvð  tuð  svñ  nwô  nwñ  jwò  awð  awˆDð  awð  awð  awr'   c           	     ó–   •— g | ]E\  }}t          ‰t          |¦  «        z   d ¦  «        t          ‰t          |¦  «        z   d ¦  «        g‘ŒFS ©é   )ÚroundrE   )r«   ÚbeginÚendrœ   s      €r%   r­   z"picture_checks.<locals>.<listcomp>�   sg   ø€ ð  'Dð  'Dð  'DÑnxÐnsÐux­¨g½¸e¹¼Ñ.DÀaÑ(HÔ(HÍ%ÐPWÕZ_Ð`cÑZdÔZdÑPdÐfgÑJhÔJhÐ'ið  'Dð  'Dð  'Dr'   z'black_start:([\d.]+) black_end:([\d.]+)c                ó6   •— g | ]}t          ‰|z   d ¦  «        ‘ŒS r¸   ©rº   )r«   r¬   rœ   s     €r%   r­   z"picture_checks.<locals>.<listcomp>ž   s'   ø€ Ð#NÐ#NÐ#NÀ¥E¨'°D©.¸!Ñ$<Ô$<Ð#NÐ#NÐ#Nr'   )Úblack_ranges_secondsÚcut_times_secondsc                ó   — i | ]
\  }}|¯||“ŒS r©   r©   )r«   ÚkeyÚvalues      r%   ú
<dictcomp>z"picture_checks.<locals>.<dictcomp>Ÿ   s#   € ÐAÐAÐA™:˜3 ¸5ÐAˆC�ÐAÐAÐAr'   )ÚmathÚisfiniter6   r7   r&   r8   r#   r9   r;   ÚreÚfindallÚ	enumerateÚzipÚitems)rn   rœ   r�   r›   ÚspanÚpictureÚprocessÚtimesÚcutsÚchecksr¶   s    `        @r%   Úpicture_checksrÒ   ‘   s‹  øø€ ð
 �¥d¤m°EÑ&:Ô&:�ˆ2ˆ2ÀÈ%ÐRYÉ/ÐG_ÐG_Ð@`€Dð C¨Kð  Cð  Cð  Cð  C€GÝŒnÕ.Ñ0Ô0°$¸ÀÈ'ÐGWÐGWð  VÐZ^ð  VÐ`dð  VÐfjð  VÐlqð  VÐsxð  Vð  {Bð  Vð  DHð  Vð  JPð  Vð  RUð  Vð  gkð  rvð  AHð  QZð  [ñ  [ô  [€GØÔð bÝ˜7œ>×/Ò/Ñ1Ô1°$°%°%Ô8Ð`Ð<`ÑaÔaÐaØ^Ð^­R¬ZÐ8LÈgÌnÑ-]Ô-]Ð^Ñ^Ô^ð  awð  awÕ{}ô  |Fð  Geð  gnô  guñ  |vô  |vð  awñ  awô  aw€M€Eˆ6ð xð  xð  xð  x­Yµs¸5À&Ñ7IÔ7IÑ-JÔ-Jð  xñ  xô  x€Dð 'Dð  'Dð  'Dð  'DÕ|~ô  }Gð  Hrð  t{ô  tBñ  }Cô  }Cð  'Dñ  'Dô  'DØ#NÐ#NÐ#NÐ#NÈÐ#NÑ#NÔ#NðPð P€FàAÐA¨¯ª©¬ÐAÑAÔAÐAr'   g     €FÀ)Úthreshold_dbÚmin_secondsrÓ   rÔ   úlist[list[float]]c               óT  — t          ¦   «         ddd| ddd|d›d|d›�d	d
dg}t          j        |ddd¬¦  «        }|j        r0t	          |j                             ¦   «         dd…         pd¦  «        ‚t          | ¦  «        }d„ t          j	        d|j        ¦  «        D ¦   «         }d„ t          j	        d|j        ¦  «        D ¦   «         }||gt          |¦  «        t          |¦  «        z
  z  z  }d„ t          ||¦  «        D ¦   «         }t          d„ t          j        | ¦  «        d         D ¦   «         |¬¦  «        }	||	z
  |k    rd|r/|d         d         |	dz
  k    rt          |d¦  «        |d         d<   n3|                     t          |	d¦  «        t          |d¦  «        g¦  «         |S )z_Stretches (seconds) where the first audio track stays below threshold_db: ffmpeg silencedetect.r-   r£   rz   ú-vnú-afzsilencedetect=n=r¢   zdB:d=r}   r¦   r€   Tr0   )r2   r3   r5   r§   Nz"ffmpeg could not decode the audio.c                óH   — g | ]}t          d t          |¦  «        ¦  «        ‘Œ S ©rš   )r´   rE   ©r«   rÃ   s     r%   r­   z quiet_ranges.<locals>.<listcomp>©   s(   € ÐkÐkÐk¨�c�#•u˜U‘|”|Ñ$Ô$ÐkÐkÐkr'   zsilence_start: (-?[\d.]+)c                ó,   — g | ]}t          |¦  «        ‘ŒS r©   rª   rÛ   s     r%   r­   z quiet_ranges.<locals>.<listcomp>ª   s   € Ð[Ð[Ð[˜U�E�%‰LŒLÐ[Ð[Ð[r'   zsilence_end: ([\d.]+)c                óT   — g | ]%\  }}t          |d ¦  «        t          |d ¦  «        g‘Œ&S r¸   r¾   )r«   Ústartr¼   s      r%   r­   z quiet_ranges.<locals>.<listcomp>¬   s1   € ÐSÐSÐS±:°5¸#�u�U˜A‰Œ¥ c¨1¡¤Ð.ÐSÐSÐSr'   c              3  óz   K  — | ]6}|                      d ¦  «        dk    ¯d|v ¯t          |d         ¦  «        V — Œ7dS )Ú
codec_typeÚaudiorK   N)r    rE   ©r«   Ústreams     r%   ú	<genexpr>zquiet_ranges.<locals>.<genexpr>­   sŽ   è è € ð  \ð  \°6Ð^d×^hÒ^hÐiuÑ^vÔ^vð  {Bò  _Bð  _Bð  GQð  U[ð  G[ð  G[•U˜6 *Ô-Ñ.Ô.ð  G[ð  G[ð  G[ð  G[ð  \ð  \r'   Ústreams)Údefaultéÿÿÿÿrq   çš™™™™™©?r¹   )r&   r6   r7   r8   r#   r9   r;   Úget_media_durationrÇ   rÈ   r‡   rÊ   r´   r   Úproberº   Úappend)
rn   rÓ   rÔ   ÚcommandrÎ   rK   ÚstartsÚendsÚrangesÚ	audio_ends
             r%   Úquiet_rangesrñ   ¢   s  € åÑ!Ô! 4¨°°t¸UÀEð  LCÐ^jð  LCð  LCð  LCÐs~ð  LCð  LCð  LCð  EIð  KQð  SVð  W€GÝŒn˜W°TÀÈYÐWÑWÔW€GØÔð bÝ˜7œ>×/Ò/Ñ1Ô1°$°%°%Ô8Ð`Ð<`ÑaÔaÐaÝ! $Ñ'Ô'€HØkÐkµ"´*Ð=YÐ[bÔ[iÑ2jÔ2jÐkÑkÔk€FØ[Ð[¥b¤jÐ1IÈ7Ì>Ñ&ZÔ&ZÐ[Ñ[Ô[€DØˆXˆJ�#˜f™+œ+­¨D©	¬	Ñ1Ñ2Ñ2€DØSÐSÅÀVÈTÑARÔARÐSÑSÔS€FÝð  \ð  \½V¼\È$Ñ=OÔ=OÐPYÔ=Zð  \ñ  \ô  \ð  fnð  oñ  oô  o€IØ�)Ñ˜{Ò*Ð*Øð 	E�f˜R”j ”m y°4Ñ'7Ò7Ð7Ý! (¨AÑ.Ô.ˆF�2ŒJ�q‰MˆMà�MŠM�5 ¨AÑ.Ô.µ°hÀÑ0BÔ0BÐCÑDÔDÐDØ€Mr'   rì   Úfailurec                óü  — t          j        | t           j        t           j        ¬¦  «        }	 |j                             |                     ¦   «         ¦  «         |D ].}|j                             |                     ¦   «         ¦  «         Œ/n# t          $ r Y nw xY wt          j        t          ¦  «        5  |j         	                    ¦   «          ddd¦  «         n# 1 swxY w Y   |j
                             ¦   «                              d¬¦  «        }|                     ¦   «         r#t          |                     ¦   «         p|¦  «        ‚dS # t          j        t          ¦  «        5  |j         	                    ¦   «          ddd¦  «         n# 1 swxY w Y   |j
                             ¦   «                              d¬¦  «        }|                     ¦   «         r#t          |                     ¦   «         p|¦  «        ‚w xY w)zTRun ffmpeg with the PIL frames (first, then the rest) written to its standard input.)Ústdinr9   Nr0   r‚   )r6   ÚPopenÚPIPErô   ÚwriteÚtobytesÚBrokenPipeErrorÚ
contextlibÚsuppressÚcloser9   Úreadr‘   Úwaitr#   r;   )rì   ÚfirstÚframesrò   rÎ   Úframer.   s          r%   Ú_pipe_framesr  ¶   sB  € åÔ˜w­j¬oÅjÄoÐVÑVÔV€Gð9ØŒ×Ò˜EŸMšM™OœOÑ,Ô,Ð,Øð 	1ð 	1ˆEØŒM×Ò §¢¡¤Ñ0Ô0Ð0Ð0ð	1øåð ð ð Øˆðøøøõ Ô ¥Ñ1Ô1ð 	"ð 	"ØŒM×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à”×#Ò#Ñ%Ô%×,Ò,°IÐ,Ñ>Ô>ˆØ�<Š<‰>Œ>ð 	9Ý˜uŸ{š{™}œ}Ð7°Ñ8Ô8Ð8ð	9ð 	9øõ Ô ¥Ñ1Ô1ð 	"ð 	"ØŒM×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à”×#Ò#Ñ%Ô%×,Ò,°IÐ,Ñ>Ô>ˆØ�<Š<‰>Œ>ð 	9Ý˜uŸ{š{™}œ}Ð7°Ñ8Ô8Ð8Ð8Ð8Ð8Ð8sa   ­AB Â
E Â
BÂE ÂBÂE Â4CÃCÃ!CÅG;Å%FÅ?G;ÆFÆG;ÆFÆA(G;)Úvideo_codecÚvideo_containerÚoutput_pathÚfpsr  r  c               óì  — t          | ¦  «        } t          | ¦  «        }|j        \  }}t          j        t          j                             |¦  «        pdd¬¦  «         t          ¦   «         dddddd	d
d|› d|› �d|d›ddg|dz  s|dz  rddgng ¢t          ||¦  «        ¢t          |pd¦  «         
                    ¦   «                              ¦   «         dk    rddgng ¢|‘}t          ||| d¦  «         |S )zqEncode RGB PIL frames of one size as a silent video; odd sizes get one black pixel row/column for 4:2:0 encoders.rD   T©Úexist_okr,   r-   r.   r}   Úrawvideoú-pix_fmtÚrgb24ú-sÚxz-rr¢   rz   úpipe:0r¹   r{   zpad=ceil(iw/2)*2:ceil(ih/2)*2Úmp4ú	-movflagsú
+faststartz#ffmpeg could not encode the frames.)ÚiterÚnextÚsizer   Úmakedirsrn   Údirnamer&   r   r   r;   r[   r  )	r   r  r  r  r  rÿ   ÚwidthÚheightrì   s	            r%   Úencode_framesr  Ç   s]  € å�&‰\Œ\€FÝ�‰LŒL€EØ”J�M€Eˆ6Ý„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝÑ!Ô! 4¨¨w¸¸jÈ*ÐV]Ð_cÐhmÐexÐexÐpvÐexÐexÐz~ð  DGð  AKð  AKð  MQð  S[ð ~Ø=BÀQ¹YÐ\È&ÐSTÉ*Ð\�%Ð8Ð9Ð9ÐZ\ð~Ý`uð  wBð  DSñ  aTô  aTð~å03°OÐ4LÀuÑ0MÔ0M×0SÒ0SÑ0UÔ0U×0[Ò0[Ñ0]Ô0]ÐafÒ0fÐ0f�+˜|Ð,Ð,Ðlnð~àq|ð~€Gõ �˜% Ð)NÑOÔOÐOØÐr'   )r  r  Úaudio_codecr  c               óˆ  ‡— t          | ¦  «        } t          | ¦  «        }t          j        |¦  «                             dg ¦  «        }	t          d„ |	D ¦   «         ¦  «        }
|j        t          |
d         ¦  «        t          |
d         ¦  «        fk    rVt          d|j        › d|j	        › d|
d         › d|
d         › d|
d         › d	|
d         › d
|
d         › d|
d         › d�¦  «        ‚t          j                             |¦  «        d                              ¦   «         Št          j                             |¦  «        d                              ¦   «         ‰k    rt          ||¦  «         ˆfd„t          d„ |	D ¦   «         ¦  «        D ¦   «         }t          j        t          j                             |¦  «        pdd¬¦  «         t%          ¦   «         dddd|ddddd|j        › d|j	        › �d|d›dddd t'          |¦  «        d›d!�d"d#d"d$d"d%gt)          ||¦  «        ¢t          j                             |¦  «        d                              ¦   «         ‰k    rd&d'gnt+          |¦  «        ¢|¢t-          |pd(¦  «                             ¦   «                              ¦   «         d(k    rd)d*gng ¢|‘}t1          ||| d+¦  «         |S ),zÞBurn RGBA PIL frames of the video's size into its picture from start_s, one per video frame; the overlay's alpha shows the video
    through. Audio is copied when the container stays the same, and subtitle tracks are kept.rå   c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS )rà   ÚvideoN©r    râ   s     r%   rä   z!overlay_frames.<locals>.<genexpr>Ú   s8   è è € ÐUÐU˜F°·²¸LÑ1IÔ1IÈWÒ1TÐ1T�Ð1TÐ1TÐ1TÐ1TÐUÐUr'   r  r  zThe drawing renders at r  z over a z9 video: draw it in the video's aspect ratio, e.g. width="z
" height="z" viewBox="0 0 ú z".rq   c                óB   •— g | ]\  }}t          ||‰¦  «        D ]}|‘ŒŒS r©   )Ú_subtitle_codec_args)r«   rµ   rã   ÚargÚoutput_extensions       €r%   r­   z"overlay_frames.<locals>.<listcomp>à   sr   ø€ ð  Bð  Bð  B™]˜U Fõ  L`ð  afð  hnð  p@ñ  LAô  LAð  Bð  Bð  EH�Sð  Bð  Bð  Bð  Br'   c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS ©rà   ÚsubtitleNr  râ   s     r%   rä   z!overlay_frames.<locals>.<genexpr>à   s=   è è € Ð7Ð7À6ÐX^×XbÒXbÐcoÑXpÔXpÐt~ÒX~ÐX~¸ÐX~ÐX~ÐX~ÐX~Ð7Ð7r'   rD   Tr  r,   r-   r.   rz   r}   r
  r  Úrgbar  ú
-framerater¢   r  ú-filter_complexz[1:v]setpts=PTS-STARTPTS+z9/TB[drawing];[0:v][drawing]overlay=eof_action=pass[video]ú-mapz[video]ú0:a?ú0:s?r^   Úcopyr  r  r  z%ffmpeg could not draw over the video.)r  r  r   rê   r    r  ÚintrF   r  r  r   rn   rr   r[   r   rÉ   r  r  r&   rE   r   rc   r   r;   r  )r   rv   r  r  rœ   r  r  r  rÿ   rå   r  Úsubtitle_argsrì   r$  s                @r%   Úoverlay_framesr1  Ô   s#  ø€ õ �&‰\Œ\€FÝ�‰LŒL€EÝŒl˜:Ñ&Ô&×*Ò*¨9°bÑ9Ô9€GÝÐUÐU gÐUÑUÔUÑUÔU€EØ„z•c˜% œ.Ñ)Ô)­3¨u°X¬Ñ+?Ô+?Ð@Ò@Ð@Ýð  W°5´;ð  Wð  WÀÄð  Wð  WÐW\Ð]dÔWeð  Wð  WÐhmÐnvÔhwð  Wð  Wð  tyð  zAô  tBð  Wð  Wð  PUð  V^ô  P_ð  Wð  Wð  rwð  xô  r@ð  Wð  Wð  CHð  IQô  CRð  Wð  Wð  Wñ  Xô  Xð  	XÝ”w×'Ò'¨Ñ4Ô4°QÔ7×=Ò=Ñ?Ô?ÐÝ	„w×Ò˜
Ñ#Ô# AÔ&×,Ò,Ñ.Ô.Ð2BÒBÐBÝ" ;°Ñ<Ô<Ð<ð Bð  Bð  Bð  B­iÐ7Ð7ÈWÐ7Ñ7Ô7Ñ.Ô.ð  Bñ  Bô  B€MÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝÑ!Ô! 4¨¨w¸¸jÈ$ÐPZÐ\fÐhnÐptÐy~ô  zEð  wVð  wVð  HMô  HTð  wVð  wVð  Xdð  ilð  fpð  fpð  rvð  x@Ø ð  #J½eÀG¹n¼nð  #Jð  #Jð  #Jð  #Jð  LRð  T]ð  _eð  gmð  ouð  w}ð~å% k°?ÑCÔCð~å[]Ô[b×[kÒ[kÐlvÑ[wÔ[wÐxyÔ[z÷  \Aò  \Añ  \Cô  \Cð  GWò  \Wð  \WÈÐPVÐGWÐGWõ  ]wð  xCñ  ]Dô  ]Dð~ð HUð~õ 14°OÐ4LÀuÑ0MÔ0M×0SÒ0SÑ0UÔ0U×0[Ò0[Ñ0]Ô0]ÐafÒ0fÐ0f�+˜|Ð,Ð,Ðlnð~ð r}ð~€Gõ �˜% Ð)PÑQÔQÐQØÐr'   ÚfadeÚ	fadeblackÚ	fadewhite)ÚcutÚ	crossfadeÚ
fade_blackÚ
fade_white)ÚtransitionsÚtransition_sr  r  r  Úvideosr9  ústr | list[str] | Noner:  c               óZ	  — t          |||¦  «        }|�t          |¦  «        ‚d„ | D ¦   «         } dt          | ¦  «        cxk    rdk    sn t          d¦  «        ‚| D ]3}t          j                             |¦  «        st          d|› �¦  «        ‚Œ4t          |t          ¦  «        r|gnt          |pdg¦  «        }t          |¦  «        dk    r|t          | ¦  «        dz
  z  n|}t          |¦  «        t          | ¦  «        dz
  k    st          d	„ |D ¦   «         ¦  «        r>t          d
t          | ¦  «        dz
  › dd                     t          ¦  «        › d�¦  «        ‚t          | d         ¦  «        }	t          |	d         ¦  «        t          |	d         ¦  «        |	                     d¦  «        p|	d         }}}
d„ | D ¦   «         }t          d„ |D ¦   «         ¦  «        rt          d¦  «        ‚d„ | D ¦   «         }t          |¦  «        }g }t!          t#          ||¦  «        ¦  «        D ]^\  }\  }}|                     d|› d|
› d|› d|
› d|› d|› d|› d�¦  «         |r)|rd|› d�nd}|                     |› d |d!›d"|› d�¦  «         Œ_d#d$|d         }}}t!          t#          ||dd…         ¦  «        d¦  «        D �]\  }\  }}t          |         €O|                     |› |r|nd%› d&|› d|rd"|› d�nd%› d't          |¦  «        › d(|› d|rd)|› d�nd%› �¦  «         ||z  }n¥d*|cxk    rt'          ||¦  «        k     s'n t          d+t'          ||¦  «        d,›d-|› d.�¦  «        ‚|                     |› d&|› d/t          |         › d0|d1›d2||z
  d!›d(|› d�¦  «         |r"|                     |› d"|› d3|d1›d)|› d�¦  «         |||z
  z  }d(|› d�d)|› d�}}�Œt          j        t          j                             |¦  «        pdd4¬5¦  «         d6„ | D ¦   «         d7d8                     |¦  «        d9|g|rd9|gng ¢t-          ||¦  «        ¢z   }|r|t/          |¦  «        z  }t          |pd:¦  «                             ¦   «                              ¦   «         d:k    r|d;d<gz  }t5          g |¢|‘¦  «         |S )=aA  Join videos in order with a cut, crossfade or fade through black/white at each join (transitions: one per join, or one for all).
    Clips are fitted to the first one's size and frame rate; a transition overlaps the two clips by transition_s, and the soundtracks
    follow the picture (silence for a clip without sound).Nc                óŽ   — g | ]B}t           j                             t          |pd ¦  «                             ¦   «         ¦  «        ‘ŒCS ©r   ©r   rn   r†   r   r;   ©r«   rn   s     r%   r­   z merge_videos.<locals>.<listcomp>ô   s>   € ÐKÐKÐK¸D�bŒg×Ò�s 4 :¨2™œ×4Ò4Ñ6Ô6Ñ7Ô7ÐKÐKÐKr'   r¹   é    zMerge between 2 and 32 videos.úVideo not found: r5  rq   c              3  ó(   K  — | ]}|t           vV — Œd S ©N)ÚMERGE_TRANSITIONS)r«   Únames     r%   rä   zmerge_videos.<locals>.<genexpr>ü   s)   è è € Ð1hÐ1hÐTX°$Õ>OÐ2OÐ1hÐ1hÐ1hÐ1hÐ1hÐ1hr'   z&transitions needs one value per join (z) or one for all, among z, rD   r   r  r  Úavg_frame_rateÚr_frame_ratec                ó,   — g | ]}t          |¦  «        ‘ŒS r©   )ré   rA  s     r%   r­   z merge_videos.<locals>.<listcomp>   s!   € Ð=Ð=Ð=¨dÕ# DÑ)Ô)Ð=Ð=Ð=r'   c              3  ó(   K  — | ]}| p|d k    V — ŒdS )r   Nr©   )r«   rK   s     r%   rä   zmerge_videos.<locals>.<genexpr>  s-   è è € Ð
CÐ
C¨Xˆxˆ<Ð(˜8 qš=Ð
CÐ
CÐ
CÐ
CÐ
CÐ
Cr'   z#Every video needs a known duration.c                ó,   — g | ]}t          |¦  «        ‘ŒS r©   ©Ú_has_audio_streamrA  s     r%   r­   z merge_videos.<locals>.<listcomp>  s!   € Ð=Ð=Ð=¨dÕ# DÑ)Ô)Ð=Ð=Ð=r'   ú[z	:v]scale=ú:ú*:force_original_aspect_ratio=decrease,pad=z.:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1,fps=z0,format=yuv420p,settb=AVTB,setpts=PTS-STARTPTS[vú]zX:a]aresample=48000,aformat=sample_fmts=fltp:channel_layouts=stereo,asetpts=PTS-STARTPTS,zanullsrc=r=48000:cl=stereo,zapad,atrim=0:rB   z[az[v0]z[a0]r   ú[vzconcat=n=2:v=1:a=z[vjz[ajrè   zJtransition_s must be at least 0.05 s and shorter than the clips it joins (z.2fz s at join z).z]xfade=transition=ú
:duration=r¢   z:offset=z]acrossfade=d=Tr  c                ó    — g | ]}d |fD ]}|‘ŒŒS )rz   r©   )r«   rn   r#  s      r%   r­   z merge_videos.<locals>.<listcomp>  s)   € Ð>Ð>Ð>�t°$¸°Ð>Ð>¨#ˆsÐ>Ð>Ð>Ð>r'   r*  ú;r+  r  r  r  )r   rF   r‡   r   rn   rˆ   ÚFileNotFoundErrorÚ
isinstancer   ÚlistÚanyÚjoinrF  Ú_probe_video_streamr/  r    rÉ   rÊ   rë   Úminr  r  r   rc   r;   r[   r=   )r;  r  r9  r:  r  r  r  r.   rn   rÿ   r  r  ÚrateÚ	durationsÚ
with_audiorá   Úfiltersrµ   rK   Ú	has_audioÚsourcer  ÚsoundÚtotalrG  rì   s                             r%   Úmerge_videosrf  í   s”  € õ +¨;¸ÈÑUÔU€EØÐÝ˜ÑÔÐØKÐKÀFÐKÑKÔK€FØ•�F‘”Ð!Ð!Ò!Ð!˜rÒ!Ð!Ð!Ð!ÝÐ9Ñ:Ô:Ð:Øð @ð @ˆÝŒw�~Š~˜dÑ#Ô#ð 	@Ý#Ð$>¸Ð$>Ð$>Ñ?Ô?Ð?ð	@å#-¨k½3Ñ#?Ô#?Ða�;�-�-ÅTÈ+ÐJ`ÐZ_ÐY`ÑEaÔEa€KÝ58¸Ñ5EÔ5EÈÒ5JÐ5J�+¥ V¡¤¨q¡Ñ1Ð1ÐP[€KÝ
ˆ;ÑÔ�3˜v™;œ;¨™?Ò*Ð*­cÐ1hÐ1hÐ\gÐ1hÑ1hÔ1hÑ.hÔ.hÐ*Ýð  KÅ#ÀfÁ+Ä+ÐPQÁ/ð  Kð  KÐko×ktÒktõ  vGñ  lHô  lHð  Kð  Kð  Kñ  Lô  Lð  	LÝ  q¤	Ñ*Ô*€EÝ˜e GœnÑ-Ô-­s°5¸´?Ñ/CÔ/CÀUÇYÂYÐO_ÑE`ÔE`ÐEyÐdiÐjxÔdy�4ˆ6€EØ=Ð=°fÐ=Ñ=Ô=€IÝ
Ð
CÐ
C¸Ð
CÑ
CÔ
CÑCÔCð @ÝÐ>Ñ?Ô?Ð?Ø=Ð=°fÐ=Ñ=Ô=€JÝ�
‰OŒO€EØ€GÝ(1µ#°iÀÑ2LÔ2LÑ(MÔ(Mð Mð MÑ$ˆÑ$�˜)Ø�Šð  b˜5ð  bð  b¨5ð  bð  b°6ð  bð  bÐejð  bð  bÐmsð  bð  bð  dhð  bð  bð  Z_ð  bð  bð  bñ  	cô  	cð  	cØð 	Mð }Fð  iÐx˜ÐxÐxÐxÐxð  LiˆFØ�NŠN˜fÐKÐK°8ÐKÐKÐKÀ5ÐKÐKÐKÑLÔLÐLøØ  &¨)°A¬,�%ˆ5€EÝ#,­S°¸iÈÈÈ¼mÑ-LÔ-LÈaÑ#PÔ#Pð 6ñ 6ÑˆÑ��hÝ˜TÔ"Ð*Ø�NŠN˜eð  q¨eÐ%; U U¸ð  qð  q¸uð  qð  qÐX]ÐGeÀ}ÈEÀ}À}À}À}Ðceð  qð  qÕx{ð  }Bñ  yCô  yCð  qð  qð  HMð  qð  qð  bgð  Poð  P^ð  V[ð  P^ð  P^ð  P^ð  P^ð  moð  qð  qñ  rô  rð  rØ�XÑˆEˆEà˜<Ð>Ð>Ò>Ð>­#¨e°XÑ*>Ô*>Ò>Ð>Ð>Ð>Ý ð  "]ÕnqÐrwð  zBñ  oCô  oCð  "]ð  "]ð  "]ð  TYð  "]ð  "]ð  "]ñ  ^ô  ^ð  ^Ø�NŠN˜eð  að  a uð  að  aÕ@QÐRVÔ@Wð  að  aÐcoð  að  að  að  |Að  DPñ  |Pð  að  að  að  Y^ð  að  að  añ  bô  bð  bØð ]Ø—’ %Ð[Ð[¨5Ð[Ð[ÀÐ[Ð[Ð[ÐSXÐ[Ð[Ð[Ñ\Ô\Ð\Ø�X Ñ,Ñ,ˆEØ%˜U�~�~�~ ~¨U ~ ~ ~ˆuˆ‰Ý„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCØ>Ð>˜vÐ>Ñ>Ô>ÐBSÐUX×U]ÒU]Ð^eÑUfÔUfÐhnÐpuð  BRð  MRð  zZð  {Að  CHð  zIð  zIð  XZð  BRõ  ^sð  tð  APñ  ^Qô  ^Qð  BRñ  R€GØð ;ØÕ-¨kÑ:Ô:Ñ:ˆÝ
ˆ?Ð#˜eÑ$Ô$×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4¸Ò=Ð=Ø�K Ð.Ñ.ˆÝÐ'�'Ð'˜;Ð'Ñ(Ô(Ð(ØÐr'   Úcountr/  Úlayoutútuple[int, int, str]c                ó(  — t          |pd¦  «                             ¦   «                              ¦   «         pd}|dk    r| d|fS |dk    rd| |fS |dk    r@t          j        t          j        | ¦  «        ¦  «        }|t          j        | |z  ¦  «        |fS t          j        d|¦  «        }|€t          d¦  «        ‚t          t          |                     ¦   «         ¦  «        \  }}|dk     s|dk     s	||z  | k     rt          d|› d| › d	�¦  «        ‚|||fS )
NÚ
horizontalrq   ÚverticalÚgridz(\d+)x(\d+)z8layout must be horizontal, vertical, grid, or COLSxROWS.zlayout z does not have room for z media items.)r   r;   r[   rÅ   ÚceilÚsqrtrÇ   Ú	fullmatchrF   Úmapr/  Úgroups)rg  rh  ÚcolumnsÚmatchÚrowss        r%   Ú_side_by_side_layoutrv  "  s.  € Ý�Ð'˜<Ñ(Ô(×.Ò.Ñ0Ô0×6Ò6Ñ8Ô8ÐH¸L€FØ�ÒÐØ�a˜ÐÐØ�ÒÐØ�%˜ÐÐØ�ÒÐÝ”)�DœI eÑ,Ô,Ñ-Ô-ˆØ�œ	 %¨'¡/Ñ2Ô2°FÐ:Ð:ÝŒL˜¨Ñ0Ô0€EØ€}ÝÐSÑTÔTÐTÝ�˜UŸ\š\™^œ^Ñ,Ô,�M€GˆTØ�‚{€{�d˜Q’h�h '¨D¡.°5Ò"8Ð"8ÝÐW 6ÐWÐWÀ5ÐWÐWÐWÑXÔXÐXØ�D˜&Ð Ð r'   r  r  r3   úImage.Imagec                ó’  — t          j        d| |fd¦  «        }t          j        |¦  «        }t	          dt          d|dz  ¦  «        ¦  «        }	 t          j        d|¦  «        }n## t          $ r t          j	        ¦   «         }Y nw xY wt          |pd¦  «                             ¦   «                              dd	¦  «        }|}|rZ|                     ||¬
¦  «        | dz
  k    r<|d d…                              ¦   «         }|r|                     ||¬
¦  «        | dz
  k    °<||k    rÅd}|rˆ|                     |                     d¦  «        › |› �|¬
¦  «        | dz
  k    rS|d d…                              ¦   «         }|r5|                     |                     d¦  «        › |› �|¬
¦  «        | dz
  k    °S|                     ||¬
¦  «        | dz
  k    r|                     d¦  «        › |› �nd}|r]|                     d||¬
¦  «        }	|                     | |	d         z
  |	d         z   dz  ||	d         z
  |	d         z   dz  f|d|¬¦  «         |S )NÚRGBÚblacké   é$   r¹   zDejaVuSans.ttfr   ú
r   )Úfonté   rç   z...rD   )r   r   r   r±   rq   Úwhite)Úfillr~  )r   Únewr   ÚDrawr´   r]  r   ÚtruetypeÚOSErrorÚload_defaultr   r;   r0   Ú
textlengthrG   Útextbboxr3   )
r  r  r3   ÚimageÚdrawÚ	font_sizer~  Úoriginal_textÚsuffixÚboxs
             r%   Ú_side_by_side_legend_imager�  4  s„  € ÝŒI�e˜e V˜_¨gÑ6Ô6€EÝŒ>˜%Ñ Ô €DÝ�B�˜B ¨!¡Ñ,Ô,Ñ-Ô-€Ið(ÝÔ!Ð"2°IÑ>Ô>ˆˆøÝð (ð (ð (ÝÔ%Ñ'Ô'ˆˆˆð(øøøå˜˜
 ‘O”O×)Ò)Ñ+Ô+×3Ò3°D¸#Ñ>Ô>€MØ€DØ
ð "�4—?’? 4¨d�?Ñ3Ô3°e¸b±jÒ@Ð@Ø�C�R�CŒy×ÒÑ!Ô!ˆð ð "�4—?’? 4¨d�?Ñ3Ô3°e¸b±jÒ@Ð@àˆ}ÒÐØˆØð 	&�t—’¨$¯+ª+°cÑ*:Ô*:Ð'D¸FÐ'DÐ'DÈ4�ÑPÔPÐSXÐ[]ÑS]Ò]Ð]Ø˜˜˜”9×#Ò#Ñ%Ô%ˆDð ð 	&�t—’¨$¯+ª+°cÑ*:Ô*:Ð'D¸FÐ'DÐ'DÈ4�ÑPÔPÐSXÐ[]ÑS]Ò]Ð]à04·²ÀÈT°Ñ0RÔ0RÐV[Ð^`ÑV`Ò0`Ð0`�$—+’+˜cÑ"Ô"Ð, FÐ,Ð,Ð,ÐfhˆØð rØ�mŠm˜F D¨tˆmÑ4Ô4ˆØ�	Š	�E˜C œF‘N S¨¤VÑ+¨qÑ0°6¸CÀ¼F±?ÀSÈÄVÑ3KÈqÑ2PÐQÐSWÐ^eÐlpˆ	ÑqÔqÐqØ€Ls   ÁA% Á%BÂBÚsource_pathsÚlegendsúlist[str] | Nonec               óþ  ‡-‡.‡/— t          |||¦  «        }|�t          |¦  «        ‚d„ | D ¦   «         } | st          d¦  «        ‚t          d„ | D ¦   «         d ¦  «        }|�t          d|› �¦  «        ‚|�$t	          |t
          ¦  «        st          d¦  «        ‚|€g nd„ |D ¦   «         }t          |¦  «        t          | ¦  «        k    rt          d¦  «        ‚|dgt          | ¦  «        t          |¦  «        z
  z  z  }t          t          | ¦  «        |¦  «        \  Š.}	}
d	„ | D ¦   «         }g }t          | |¦  «        D ]š\  }}|rMt          |¦  «        }| 
                    t          |d
         ¦  «        t          |d         ¦  «        f¦  «         ŒTt          j        |¦  «        5 }| 
                    |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   Œ›|d         \  Š/}t          |¦  «        }|r!t!          dt#          d|dz  ¦  «        ¦  «        nd}||z   Š-t$          j                             t+          |pd¦  «                             ¦   «         ¦  «        }t%          j        t$          j                             |¦  «        pdd¬¦  «         t          |¦  «        �s3t          j        d‰.‰/z  |	‰-z  fd¦  «        }t5          t          | |¦  «        ¦  «        D ]à\  }\  }}t          j        |¦  «        5 }|                     d¦  «        }|                     ‰/|ft          j        j        ¦  «         |‰.z  ‰/z  }|‰.z  ‰-z  }|                     ||‰/|j         z
  dz  z   |||j!        z
  dz  z   f¦  «         |r*|                     tE          ‰/||¦  «        |||z   f¦  «         d d d ¦  «         n# 1 swxY w Y   Œá| #                    |¦  «         |S ‰/‰/dz  z  Š/||dz  z  }||dz  z  }||z   Š-g }t          | |¦  «        D ]m\  }}|sŒtI          |¦  «        }|�|dk    r!tK          |¦  «        \  }}}}|dk    r||z  nd}|dk    rt          d|› �¦  «        ‚| 
                    |¦  «         Œnt!          |¦  «        }| | &                    d¦  «                 } tO          | ¦  «        }|�|dk    r"tQ          tK          | ¦  «        d         ¦  «        }|dk    r|nd}|d› )                    d¦  «         )                    d¦  «        }!|d› )                    d¦  «         )                    d¦  «        }"g }#t          | |¦  «        D ]\  }}|#|rd|gnddd|!d|gz  }#ŒtU          d¬¦  «        5 }$|rht5          |¦  «        D ]X\  }}t$          j         +                    |$d |› d!�¦  «        }%tE          ‰/||¦  «         #                    |%¦  «         |#ddd|!d|%gz  }#ŒYg }&g }'tY          t          | ¦  «        ¦  «        D ]¹}|& 
                    d"|› d#|!› d$‰/› d%|› d&‰/› d%|› d'|"› d(|"› d)|› d*�¦  «         |rk|& 
                    d"t          | ¦  «        |z   › d#|!› d(|"› d+|› d*�	¦  «         |& 
                    d)|› d,|› d-|› d*�¦  «         |' 
                    d.|› d*�¦  «         Œ |' 
                    d)|› d*�¦  «         Œº‰.‰/z  |	‰-z  })}(t          | ¦  «        d/k    r%|& 
                    |'d         › d0|(› d%|)› d1�¦  «         n—d2 +                    ˆ-ˆ.ˆ/fd3„tY          t          | ¦  «        ¦  «        D ¦   «         ¦  «        }*|& 
                    d +                    |'¦  «        › d4t          | ¦  «        › d5|*› d6�¦  «         |& 
                    d7|(› d%|)› d1�¦  «         g |#¢d8‘d9 +                    |&¦  «        ‘d:‘d;‘}+t          d<„ t5          t          | |¦  «        ¦  «        D ¦   «         d ¦  «        },|,�|+d:|,› d=�d>d?gt[          |¦  «        ¢z  }+|+g t]          ||¦  «        ¢d@‘|"‘z  }+t+          |pdA¦  «                             ¦   «          /                    ¦   «         dAk    r|+dBdCgz  }+|+|gz  }+ta          |+¦  «         d d d ¦  «         n# 1 swxY w Y   |S )DNc                óŽ   — g | ]B}t           j                             t          |pd ¦  «                             ¦   «         ¦  «        ‘ŒCS r?  r@  rA  s     r%   r­   z&side_by_side_media.<locals>.<listcomp>O  s>   € ÐWÐWÐWÀ$•B”G×$Ò$¥S¨¨°¡_¤_×%:Ò%:Ñ%<Ô%<Ñ=Ô=ÐWÐWÐWr'   z3media_ids must contain at least one image or video.c              3  óX   K  — | ]%}t           j                             |¦  «        °!|V — Œ&d S rE  )r   rn   rˆ   rA  s     r%   rä   z%side_by_side_media.<locals>.<genexpr>R  s5   è è € ÐNÐN˜T½¼¿ºÈÑ9MÔ9MÐN�DÐNÐNÐNÐNÐNÐNr'   úMedia not found: z$legends must be an array of strings.c                óT   — g | ]%}t          |pd ¦  «                             ¦   «         ‘Œ&S r?  )r   r;   )r«   Úlegends     r%   r­   z&side_by_side_media.<locals>.<listcomp>W  s0   € Ð)ZÐ)ZÐ)ZÈ­#¨f¨l¸Ñ*;Ô*;×*AÒ*AÑ*CÔ*CÐ)ZÐ)ZÐ)Zr'   z3legends cannot contain more entries than media_ids.r   c                ó,   — g | ]}t          |¦  «        ‘ŒS r©   )ru   rA  s     r%   r­   z&side_by_side_media.<locals>.<listcomp>\  s!   € ÐAÐAÐA¨DÕ! $Ñ'Ô'ÐAÐAÐAr'   r  r  r   rB  é`   é   rD   Tr  ry  rz  r¹   z$Could not determine video duration: g      8@rB   rC   rz   z-loopry   r)  Úwangp_side_by_side_)ÚprefixÚlegend_z.pngrO  z:v]setpts=PTS-STARTPTS,fps=z,scale=rP  rQ  zM:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1,tpad=stop_mode=clone:stop_duration=z,trim=duration=rS  rR  z[lz][lz]vstack=inputs=2[tz[trq   zpad=z:0:0:color=black[out]rx   c              3  ó>   •K  — | ]}|‰z  ‰z  › d |‰z  ‰z  › �V — ŒdS )Ú_Nr©   )r«   rµ   Úcell_heightrs  Ú
tile_widths     €€€r%   rä   z%side_by_side_media.<locals>.<genexpr>§  s^   øè è € ð  !Kð  !KÐhm E¨G¡O°jÑ$@Ð!cÐ!cÀ5ÈGÑCSÐVaÑCaÐ!cÐ!cð  !Kð  !Kð  !Kð  !Kð  !Kð  !Kr'   zxstack=inputs=z:layout=z:fill=black:shortest=1[grid]z
[grid]pad=r*  rV  r+  z[out]c              3  óH   K  — | ]\  }\  }}|¯
t          |¦  «        ¯|V — Œd S rE  rM  )r«   rµ   rn   Úis_videos       r%   rä   z%side_by_side_media.<locals>.<genexpr>«  so   è è € ð  Oð  OÑ&= eÑ-=¨d°HÐiqð  Oõ  wHð  IMñ  wNô  wNð  O˜Eð  Oð  Oð  Oð  Oð  Oð  Or'   ú:a:0rØ   Úapadr¡   r  r  r  )1r   rF   r  rW  rX  rY  r‡   rv  rÊ   r\  rë   r/  r   Úopenr  rZ  r´   r]  r   rn   r†   r   r;   r  r  r‚  rÉ   ÚconvertÚ	thumbnailÚ
ResamplingÚLANCZOSÚpaster  r  r�  Úsaveré   r   rµ   Úget_precise_video_fpsrE   rG   r   r[  Úrangerc   r   r[   r=   )0r�  r  rh  r‘  r  r  r  r.   Úmissingru  Ú_resolved_layoutr;  Úsizesrn   r¤  rã   r‰  Útile_heightÚhas_legendsÚlegend_heightÚcanvasrµ   r˜  rc  r  Úyr_  rK   r  Ú_widthÚ_heightÚframe_countÚfirst_videoÚfps_textÚduration_textÚ
input_argsÚtemp_dirÚlegend_pathra  Útile_labelsÚoutput_widthÚoutput_heightÚ	positionsÚcmdÚaudio_indexr¡  rs  r¢  s0                                                @@@r%   Úside_by_side_mediarÇ  K  s�  øøø€ Ý*¨;¸ÈÑUÔU€EØÐÝ˜ÑÔÐØWÐWÈ,ÐWÑWÔW€LØð PÝÐNÑOÔOÐOÝÐNÐN \ÐNÑNÔNÐPTÑUÔU€GØÐÝÐ =°GÐ =Ð =Ñ>Ô>Ð>ØÐ¥:¨gµtÑ#<Ô#<ÐÝÐ?Ñ@Ô@Ð@Ø�OˆbˆbÐ)ZÐ)ZÐRYÐ)ZÑ)ZÔ)Z€GÝ
ˆ7�|„|•c˜,Ñ'Ô'Ò'Ð'ÝÐNÑOÔOÐOØ�ˆt•s˜<Ñ(Ô(­3¨w©<¬<Ñ7Ñ8Ñ8€GÝ&:½3¸|Ñ;LÔ;LÈfÑ&UÔ&UÑ#€GˆTÐ#ØAÐA°LÐAÑAÔA€FØ€EÝ˜l¨FÑ3Ô3ð )ð )‰ˆˆhØð 	)Ý(¨Ñ.Ô.ˆFØ�LŠL�#˜f WœoÑ.Ô.µ°F¸8Ô4DÑ0EÔ0EÐFÑGÔGÐGÐGå”˜DÑ!Ô!ð ) UØ—’˜UœZÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )øà# AœhÑ€J�Ý�g‘,”,€KØ:EÐL•C˜�C  K°1Ñ$4Ñ5Ô5Ñ6Ô6Ð6È1€MØ Ñ-€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝˆv‰;Œ;ñ Ý”˜5 7¨ZÑ#7¸ÀÑ9KÐ"LÈgÑVÔVˆÝ%.­s°<ÀÑ/IÔ/IÑ%JÔ%Jð 	vð 	vÑ!ˆE‘>�D˜&Ý”˜DÑ!Ô!ð v VØŸš uÑ-Ô-�Ø—’ ¨[Ð 9½5Ô;KÔ;SÑTÔTÐTØ˜G‘O jÑ0�Ø˜WÑ$ {Ñ2�Ø—’˜U Q¨*°u´{Ñ*BÀqÑ)HÑ%HÈ!È{Ð]bÔ]iÑOiÐnoÑNoÑJoÐ$pÑqÔqÐqØð vØ—L’LÕ!;¸JÈÐW]Ñ!^Ô!^ÐabÐdeÐhsÑdsÐ`tÑuÔuÐuðvð vð vñ vô vð vð vð vð vð vð vøøøð vð vð vð vøð 	�Š�KÑ Ô Ð ØÐà�*˜q‘.Ñ €JØ�; ‘?Ñ"€KØ�] QÑ&Ñ&€MØ Ñ-€KØ€IÝ˜l¨FÑ3Ô3ð 	#ð 	#‰ˆˆhØð 	ØÝ% dÑ+Ô+ˆØÐ˜x¨1š}˜}Ý0>¸tÑ0DÔ0DÑ-ˆC�˜ +Ø,/°!ªG¨G�{ SÑ(Ð(¸ˆHØ�qŠ=ˆ=ÝÐJÀDÐJÐJÑKÔKÐKØ×Ò˜Ñ"Ô"Ð"Ð"Ý�9‰~Œ~€HØ˜vŸ|š|¨DÑ1Ô1Ô2€KÝ
 Ñ
,Ô
,€CØ
€{�c˜Q’h�hÝ•N ;Ñ/Ô/°Ô2Ñ3Ô3ˆØ�q’�ˆ#ˆ#˜d€CØˆ|ˆ|×"Ò" 3Ñ'Ô'×.Ò.¨sÑ3Ô3€HØÐ%Ð%×,Ò,¨SÑ1Ô1×8Ò8¸Ñ=Ô=€MØ€JÝ˜l¨FÑ3Ô3ð gð g‰ˆˆhØ hÐf�t˜T�l�l°W¸cÀ<ÐQYÐ[_ÐaeÐ4fÑfˆ
ˆ
Ý	Ð#8Ð	9Ñ	9Ô	9ð ¸XØð 	XÝ!*¨7Ñ!3Ô!3ð Xð X‘��vÝ œgŸlšl¨8Ð5J¸uÐ5JÐ5JÐ5JÑKÔK�Ý*¨:°}ÀfÑMÔM×RÒRÐS^Ñ_Ô_Ð_Ø˜w¨¨\¸8ÀTÈ;ÐWÑW�
�
ØˆØˆÝ�3˜|Ñ,Ô,Ñ-Ô-ð 	2ð 	2ˆEØ�NŠNð  u˜uð  uð  uÀð  uð  uÐR\ð  uð  uÐ_jð  uð  uð  Wað  uð  uð  doð  uð  uð  ~Kð  uð  uð  \ið  uð  uð  mrð  uð  uð  uñ  vô  vð  vØð 2Ø—’ð   L¥3 |Ñ#4Ô#4°uÑ#<ð   Lð   LÐYað   Lð   LÐrð   Lð   Lð  DIð   Lð   Lð   Lñ  Mô  Mð  MØ—’ÐO EÐOÐO¨eÐOÐOÀuÐOÐOÐOÑPÔPÐPØ×"Ò" =¨ = = =Ñ1Ô1Ð1Ð1à×"Ò" =¨ = = =Ñ1Ô1Ð1Ð1Ø&-°
Ñ&:¸DÀ;Ñ<N�mˆÝˆ|ÑÔ Ò!Ð!Ø�NŠN˜k¨!œnÐeÐe°,ÐeÐeÀÐeÐeÐeÑfÔfÐfÐfàŸšð  !Kð  !Kð  !Kð  !Kð  !Kð  !KÕqvÕwzð  |Hñ  xIô  xIñ  rJô  rJð  !Kñ  !Kô  !Kñ  Kô  KˆIØ�NŠN˜bŸgšg kÑ2Ô2ð  Eð  EÅ#ÀlÑBSÔBSð  Eð  EÐ]fð  Eð  Eð  Eñ  Fô  Fð  FØ�NŠNÐ[¨Ð[Ð[°}Ð[Ð[Ð[Ñ\Ô\Ð\ØR�
ÐRÐ-ÐR¨s¯xªx¸Ñ/@Ô/@ÐRÀ&ÐRÈ'ÐRˆÝð  Oð  OÅÍ3È|Ð]cÑKdÔKdÑAeÔAeð  Oñ  Oô  Oð  QUñ  Vô  VˆØÐ"Ø�F˜{Ð0Ð0Ð0°%¸ÐjÕB\Ð]hÑBiÔBiÐjÑjˆCØÐZÕ& {°OÑDÔDÐZÀdÐZÈMÐZÑZˆÝˆÐ' %Ñ(Ô(×.Ò.Ñ0Ô0×6Ò6Ñ8Ô8¸EÒAÐAØ�K Ð.Ñ.ˆCØ�ˆ}ÑˆÝ�CÑÔÐð?ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð@ Ðs8   Æ#G
Ç
G	ÇG	Ë6B-N/Î/N3	Î6N3	Õ)K=a2á2a6á9a6Úsource_pathúfloat | intc               ó^  — t          |||¦  «        }|�t          |¦  «        ‚t          j                             t          | pd¦  «                             ¦   «         ¦  «        } t          j                             t          |pd¦  «                             ¦   «         ¦  «        }t          j                             | ¦  «        st          d| › �¦  «        ‚t          |||¦  «        \  }	}
t          j
        t          j                             |¦  «        pdd¬¦  «         d|	d| g}|
�|d|
gz  }|g d	¢z  }|t          ||¦  «        z  }|t          |¦  «        z  }t          |pd
¦  «                             ¦   «                              ¦   «         d
k    r|ddgz  }||gz  }t          |¦  «         |S )Nr   rC  rD   Tr  r¤   rz   r¡   )r+  ú0:v:0r+  r,  r  r  r  )r   rF   r   rn   r†   r   r;   rˆ   rW  rQ   r  r  r   rc   r[   r=   )rÈ  r  rI   rJ   rK   r  r  r  r.   rN   rP   rÅ  s               r%   Úextract_videorÌ  ¶  sª  € Ý*¨;¸ÈÑUÔU€EØÐÝ˜ÑÔÐÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBÝ3°JÀÈ(ÑSÔSÑ€Iˆ|Ý„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCØ�)˜T ;Ð
/€CØÐØ��lÐ#Ñ#ˆØÐ,Ð,Ð,Ñ,€CØÕ  ¨oÑ>Ô>Ñ>€CØÕ% kÑ2Ô2Ñ2€CÝ
ˆ?Ð#˜eÑ$Ô$×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4¸Ò=Ð=Ø�˜\Ð*Ñ*ˆØˆKˆ=Ñ€CÝ�ÑÔÐØÐr'   )r  Úaudio_track_noú
int | Nonec               óô  — t           j                             t          | pd¦  «                             ¦   «         ¦  «        } t           j                             t          |pd¦  «                             ¦   «         ¦  «        }t           j                             | ¦  «        st          d| › �¦  «        ‚t          j        | ¦  «        }d„ | 	                    dg ¦  «        D ¦   «         }t          |¦  «        dk    rt          d| › �¦  «        ‚|€dnt          |¦  «        }|dk    rt          d¦  «        ‚|t          |¦  «        k    r t          d	t          |¦  «        › d
�¦  «        ‚t          |||¦  «        \  }	}
t          j        t           j                             |¦  «        pd
d¬¦  «         g }|	�|d|	gz  }|d| gz  }|
�|d|
gz  }|dd|dz
  › �dgt#          |¦  «        ¢|‘z  }t%          |¦  «         |S )Nr   r–  c                ó¨   — g | ]O}t          |                     d d¦  «        ¦  «                             ¦   «                              ¦   «         dk    ¯M|‘ŒPS )rà   r   rá   )r   r    r;   r[   râ   s     r%   r­   z!extract_audio.<locals>.<listcomp>Ó  st   € ð  Dð  Dð  D ÅcÈ&Ï*Ê*ÐUaÐceÑJfÔJfÑFgÔFg×FmÒFmÑFoÔFo×FuÒFuÑFwÔFwð  |Cò  GCð  GC�Vð  GCð  GCð  GCr'   rå   r   úNo audio stream found in rq   zaudio_track_no must be >= 1.z%audio_track_no must be between 1 and rD   Tr  r¤   rz   r¡   r+  z0:a:r×   )r   rn   r†   r   r;   rˆ   rW  r   rê   r    r‡   r#   r/  rF   rQ   r  r  rm   r=   )rÈ  r  rI   rJ   rK   rÍ  r  rê   Úaudio_streamsrN   rP   rÅ  s               r%   Úextract_audiorÓ  Í  s  € Ý”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBÝŒL˜Ñ%Ô%€Eð Dð  D¨%¯)ª)°I¸rÑ*BÔ*Bð  Dñ  Dô  D€MÝ
ˆ=ÑÔ˜QÒÐÝÐD°{ÐDÐDÑEÔEÐEØ(Ð0�Q�Qµc¸.Ñ6IÔ6I€NØ˜ÒÐÝÐ7Ñ8Ô8Ð8Ø�˜MÑ*Ô*Ò*Ð*ÝÐVÅÀ]ÑASÔASÐVÐVÐVÑWÔWÐWÝ3°JÀÈ(ÑSÔSÑ€Iˆ|Ý„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCØ
€CØÐØ��yÐ!Ñ!ˆØˆD�+ÐÑ€CØÐØ��lÐ#Ñ#ˆØˆFÐ/˜>¨AÑ-Ð/Ð/°ÐuÕ9ZÐ[fÑ9gÔ9gÐuÐitÐuÑu€CÝ�ÑÔÐØÐr'   ©Úframe_noÚtime_secondsrÕ  rÖ  c               óî  — t           j                             t          | pd¦  «                             ¦   «         ¦  «        } t           j                             t          |pd¦  «                             ¦   «         ¦  «        }t           j                             | ¦  «        st          d| › �¦  «        ‚|€|€t          d¦  «        ‚t          j        t           j         	                    |¦  «        pdd¬¦  «         t          | ||¬¦  «        }t          | |dd¬¦  «                             d	¦  «        }|                     |¦  «         t           j                             |¦  «        st          d
¦  «        ‚|S )Nr   rC  ú%frame_no or time_seconds is required.rD   Tr  rÔ  )Úreturn_last_if_missingÚ
return_PILry  z1Frame extraction did not produce an output image.)r   rn   r†   r   r;   rˆ   rW  rF   r  r  Úresolve_video_frame_nor   r¨  r­  r#   )rÈ  r  rÕ  rÖ  r‰  s        r%   Úextract_video_framerÜ  è  sG  € Ý”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBØÐ Ð 0ÝÐ@ÑAÔAÐAÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝ% k¸HÐS_Ð`Ñ`Ô`€HÝ˜K¨È$Ð[_Ð`Ñ`Ô`×hÒhÐinÑoÔo€EØ	‡J‚Jˆ{ÑÔÐÝŒ7�>Š>˜+Ñ&Ô&ð PÝÐNÑOÔOÐOØÐr'   Úcrop_anchorútuple[str, str]c                ón  — t          | pd¦  «                             ¦   «                              ¦   «                              dd¦  «                             dd¦  «        pd}ddddddddddd	œ
}|                     ||¦  «        }|d
v rddddddœ|         S dddddœ}||v r||         S t          d¦  «        ‚)NÚcenterr€   r   r   ÚleftÚrightÚtopÚbottom)
ÚcentreÚmiddleÚcenter_leftÚleft_centerÚcenter_rightÚright_centerÚ
top_centerÚ
center_topÚbottom_centerÚcenter_bottom>   rã  rá  râ  rä  rà  )rà  rà  )rá  rà  )râ  rà  )rà  rã  )rà  rä  )rà  rá  râ  rã  rä  )rá  rã  )râ  rã  )rá  rä  )râ  rä  )Útop_leftÚ	top_rightÚbottom_leftÚbottom_rightzocrop_anchor must be one of center, left, right, top, bottom, top_left, top_right, bottom_left, or bottom_right.)r   r;   r[   r0   r    rF   )rÝ  Ú
normalizedÚanchor_aliasesÚcorner_anchorss       r%   Ú_resolve_crop_anchorrö  ø  s  € Ý�[Ð, HÑ-Ô-×3Ò3Ñ5Ô5×;Ò;Ñ=Ô=×EÒEÀcÈ3ÑOÔO×WÒWÐX[Ð]`ÑaÔaÐmÐem€JàØØØØØØØØ!Ø!ðð €Nð  ×#Ò# J°
Ñ;Ô;€JØÐAÐAÐAà*Ø&Ø(Ø$Ø*ð
ð 
ð ôð 	ð $Ø%Ø)Ø+ð	ð €Nð �^Ð#Ð#Ø˜jÔ)Ð)Ý
ð  Gñ  Hô  Hð  Hr'   ÚpixelsTrà  ©	Ú	crop_leftÚcrop_topÚ
crop_rightÚcrop_bottomÚ	crop_unitÚtarget_widthÚtarget_heightÚpreserve_aspect_ratiorÝ  Úsource_widthÚsource_heightrù  rú  rû  rü  rý  rþ  rÿ  r   útuple[int, int, int, int]c       	        ó<  ‡— t          ‰pd¦  «                             ¦   «                              ¦   «         pdŠ‰dvrt          d¦  «        ‚t	          |
¦  «        \  }}dˆfd	„} ||| ¦  «        } ||| ¦  «        } |||¦  «        } |||¦  «        }| |z
  |z
  }||z
  |z
  }|d
k    s|d
k    rt          d¦  «        ‚|	r|�|€||||fS |d
k    s|d
k    rt          d¦  «        ‚t          |¦  «        t          |¦  «        z  }t          |¦  «        t          |¦  «        z  }t          j        ||dd¬¦  «        r||||fS ||k    r[t          |t          dt          t          ||z  ¦  «        ¦  «        ¦  «        ¦  «        }||z
  }||dk    rd
n|dk    r|n|dz  z  }|}nZt          |t          dt          t          ||z  ¦  «        ¦  «        ¦  «        ¦  «        }||z
  }||dk    rd
n|dk    r|n|dz  z  }|}|d
k    s|d
k    rt          d¦  «        ‚||||fS )Nr÷  >   r÷  Úpercentz(crop_unit must be 'pixels' or 'percent'.rÃ   rE   re  r/  r   c                ó¤   •— t          | pd¦  «        } | dk     rt          d¦  «        ‚‰dk    rt          || z  dz  ¦  «        nt          | ¦  «        S )Nr   zCrop values must be >= 0.r  g      Y@)rE   rF   rº   )rÃ   re  rý  s     €r%   Úresolve_cropz3_resolve_resize_crop_geometry.<locals>.resolve_crop-  sY   ø€ Ý�e�j˜qÑ!Ô!ˆØ�1Š9ˆ9ÝÐ8Ñ9Ô9Ð9Ø/8¸IÒ/EÐ/E�u�U˜U‘] UÑ*Ñ+Ô+Ð+Í5ÐQVÉ<Ì<ÐWr'   r   z#Crop values remove the whole frame.ú+width and height must be > 0 when provided.rš   ç�íµ ÷Æ°>)Úrel_tolÚabs_tolrq   rá  râ  r¹   rã  rä  z8Unable to preserve aspect ratio with the requested crop.)rÃ   rE   re  r/  r   r/  )r   r;   r[   rF   rö  rE   rÅ   Úiscloser]  r´   r/  rº   )r  r  rù  rú  rû  rü  rý  rþ  rÿ  r   rÝ  Úalign_xÚalign_yr  rá  râ  rã  rä  Úcropped_widthÚcropped_heightÚtarget_ratioÚcurrent_ratioÚadjusted_widthÚtrimÚadjusted_heights         `                  r%   Ú_resolve_resize_crop_geometryr    sÀ  ø€ õ �IÐ) Ñ*Ô*×0Ò0Ñ2Ô2×8Ò8Ñ:Ô:ÐF¸h€IØÐ-Ð-Ð-ÝÐCÑDÔDÐDÝ+¨KÑ8Ô8Ñ€GˆWðXð Xð Xð Xð Xð Xð ˆ<˜	 <Ñ0Ô0€DØˆL˜ \Ñ2Ô2€EØ
ˆ,�x Ñ
/Ô
/€CØˆ\˜+ }Ñ5Ô5€FØ  4Ñ'¨%Ñ/€MØ" SÑ(¨6Ñ1€NØ˜ÒÐ˜^¨qÒ0Ð0ÝÐ>Ñ?Ô?Ð?Ø ð 8 LÐ$8¸MÐ<QØ�S˜-¨Ð7Ð7Ø�qÒÐ˜M¨QÒ.Ð.ÝÐFÑGÔGÐGÝ˜Ñ&Ô&­¨}Ñ)=Ô)=Ñ=€LÝ˜-Ñ(Ô(­5°Ñ+@Ô+@Ñ@€MÝ„|�M <¸ÀdÐKÑKÔKð 8Ø�S˜-¨Ð7Ð7Ø�|Ò#Ð#Ý˜]­C°µ3µu¸^ÈlÑ=ZÑ7[Ô7[Ñ3\Ô3\Ñ,]Ô,]Ñ^Ô^ˆØ˜~Ñ-ˆØ�W Ò&Ð&��°G¸wÒ4FÐ4F¨D¨DÈDÐTUÉIÑUˆØ&ˆˆå˜n­c°!µS½¸}È|Ñ?[Ñ9\Ô9\Ñ5]Ô5]Ñ.^Ô.^Ñ_Ô_ˆØ Ñ/ˆØ�G˜uÒ$Ð$ˆqˆq°'¸XÒ2EÐ2E¨$¨$È4ÐSTÉ9ÑTˆØ(ˆØ˜ÒÐ˜^¨qÒ0Ð0ÝÐSÑTÔTÐTØ��m ^Ð3Ð3r'   c           
     ó   — t           j                             t          | pd¦  «                             ¦   «         ¦  «        } t           j                             t          |pd¦  «                             ¦   «         ¦  «        }t           j                             | ¦  «        st          d| › �¦  «        ‚t          j        t           j                             |¦  «        pdd¬¦  «         t          d| ddd	d
d|g¦  «         |S )Nr   rC  rD   Tr  rz   r+  rË  ú-c:vr.  r¥   )
r   rn   r†   r   r;   rˆ   rW  r  r  r=   )rÈ  r  s     r%   Ú
mute_videor  R  sÙ   € Ý”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝ��{ F¨G°V¸VÀUÈKÐXÑYÔYÐYØÐr'   Ú
audio_pathc               ón  — t          ||¦  «         t          j                             t	          | pd¦  «                             ¦   «         ¦  «        } t          j                             t	          |pd¦  «                             ¦   «         ¦  «        }t          j                             t	          |pd¦  «                             ¦   «         ¦  «        }t          j                             | ¦  «        st          d| › �¦  «        ‚t          j                             |¦  «        st          d|› �¦  «        ‚t          |¦  «        st          d|› �¦  «        ‚t          j
        t          j                             |¦  «        pdd¬¦  «         t          d| d|d	d
d	dddg
t          |¦  «        ¢d‘|‘¦  «         |S )Nr   rC  úAudio not found: rÑ  rD   Tr  rz   r+  rË  ú1:a:0r  r.  z	-shortest)r   r   rn   r†   r   r;   rˆ   rW  rN  r#   r  r  r=   rc   )rv   r  r  r  s       r%   Úreplace_audior  \  s»  € Ý˜{¨KÑ8Ô8Ð8Ý”×!Ò!¥# jÐ&6°BÑ"7Ô"7×"=Ò"=Ñ"?Ô"?Ñ@Ô@€JÝ”×!Ò!¥# jÐ&6°BÑ"7Ô"7×"=Ò"=Ñ"?Ô"?Ñ@Ô@€JÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜*Ñ%Ô%ð BÝÐ @°JÐ @Ð @ÑAÔAÐAÝŒ7�>Š>˜*Ñ%Ô%ð BÝÐ @°JÐ @Ð @ÑAÔAÐAÝ˜ZÑ(Ô(ð EÝÐC°zÐCÐCÑDÔDÐDÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCÝ��z 4¨°V¸WÀfÈgÐW]Ð_eð  kõ  iCð  DOñ  iPô  iPð  kð  R]ð  kð  _jð  kñ  lô  lð  lØÐr'   rµ   rã   Údictr$  c                óô   — t          |                     dd¦  «        ¦  «                             ¦   «         }|dv r)|dvrt          d|› d|› d�¦  «        ‚d| › �|d	k    rd
nd	gS |dk    rd| › �|d	k    rdnd
gS g S )zgCodec of output subtitle stream index for a text subtitle stream: MP4/MOV store mov_text, Matroska SRT.Ú
codec_namer   ¾   r   r   >   ÚassÚssar3   ÚsubripÚwebvttÚmov_textzSubtitle codec z cannot be written to z; choose MKV.z-c:s:r'  r.  r   r%  )r   r    r[   rF   )rµ   rã   r$  r_   s       r%   r"  r"  l  s²   € å�—
’
˜<¨Ñ,Ô,Ñ-Ô-×3Ò3Ñ5Ô5€EØÐ+Ð+Ð+ØÐNÐNÐNÝÐk¨uÐkÐkÐL\ÐkÐkÐkÑlÔlÐlØ˜��¨5°JÒ+>Ð+>  ÀJÐOÐOØ˜6Ò!Ð!Ø˜��¨U°jÒ-@Ð-@  ÀfÐMÐMØ€Ir'   F)rv   Úinclude_video_audioÚgains_dbr  Ústandalone_audio_codecÚsubtitle_tracksÚinclude_video_subtitlesÚ	offsets_sÚ	fade_in_sÚ
fade_out_sÚvideo_audio_gain_dbÚnormalize_lufsÚtrim_start_sÚtrim_duration_sÚgain_pointsÚduckingÚaudio_languagesÚaudio_pathsÚmoder(  r)  úlist[float] | Noner*  r+  úlist[dict] | Noner,  r-  r.  r/  r0  r1  r2  r3  r4  úlist | Noner5  údict | Noner6  c               óº&  ‡ ‡‡‡
‡‡‡K‡L‡M‡N‡O‡P‡Q‡R‡S— t          ‰pd¦  «                             ¦   «                              ¦   «         Š‰dvrt          d¦  «        ‚|�5‰dk    s t	          |¦  «        t	          ‰ ¦  «        k    rt          d¦  «        ‚t          ‰ t          ¦  «        r‰dk    r‰ s‰dk    r|r‰st          d	¦  «        ‚d
„ ‰ D ¦   «         Š ‰ D ]T}t          j         	                    |¦  «        st          d|› �¦  «        ‚t          |¦  «        st          d|› �¦  «        ‚ŒU|r>t          j                             t          |¦  «                             ¦   «         ¦  «        nd}|r1t          j         	                    |¦  «        st          d|› �¦  «        ‚t          d„ |‰
||||‰‰||f
D ¦   «         ¦  «        }‰dk    r|r‰ s‰s|rt          d¦  «        ‚‰dk    r|s|	rt          d¦  «        ‚|r|st          d¦  «        ‚t          |t          t          d¦  «        f¦  «        st          d¦  «        ‚|pg }t          d„ |D ¦   «         ¦  «        dk    rt          d¦  «        ‚|D �]D}t          |t           ¦  «        r5t          |                     dd¦  «        ¦  «                             ¦   «         st          d¦  «        ‚t          j                             |d         ¦  «        d                              ¦   «         dvrt          d¦  «        ‚t          j         	                    |d         ¦  «        st          d|d         › �¦  «        ‚t          d„ t'          j        |d         ¦  «                             dg ¦  «        D ¦   «         ¦  «        st          d|d         › �¦  «        ‚�ŒF‰r |rt          |¦  «        st          d¦  «        ‚t          |pd¦  «                             ¦   «         st          d¦  «        ‚t          j                             t          |¦  «                             ¦   «         ¦  «        }t          j                             |¦  «        d                              ¦   «         }g ŠQ|r4|	r2d „ t'          j        |¦  «                             dg ¦  «        D ¦   «         ŠQg }g }|�rdt	          ‰ ¦  «        z   }|D ]}|d!|d         gz  }Œ‰Qr|d"d#gz  }t+          |¦  «        D ]\  ŠO}|d"|‰Oz   › d$�gz  }Œt+          ‰Qd%„ |D ¦   «         z   ¦  «        D ]…\  ŠO}|t-          ‰O||¦  «        z  }‰Ot	          ‰Q¦  «        k     rY|                     d&i ¦  «        }|                     d'¦  «        p|                     d(¦  «        }|r|d)v rd(nd'}|d*‰O› �|› d+|› �gz  }Œ†t/          ˆQfd,„t+          |¦  «        D ¦   «         d¦  «        }|�At1          t	          ‰Q¦  «        t	          |¦  «        z   ¦  «        D ]ŠO|d-‰O› �‰O|k    rd.nd/gz  }Œt+          |t	          ‰Q¦  «        ¬0¦  «        D ]Š\  ŠO}|                     d1¦  «        r|d*‰O› �d2|d1         › �gz  }|                     d'¦  «        r|d)v rd(nd'}|d*‰O› �|› d+|d'         › �gz  }|€)|                     d.¦  «        �|d-‰O› �|d.         rd.nd/gz  }Œ‹‰dk    �rd!|g|¢d"‘d3‘d"‘d4‘|¢d5‘d‘} |d6k    r| d7dgz  } n«d8„ t'          j        |¦  «                             dg ¦  «        D ¦   «         }!t+          |!¦  «        D ]i\  ŠO}t          |                     d9d¦  «        ¦  «                             ¦   «         }"|"d:v r| d;‰O› �dgz  } ŒIt3          |¦  «        }#| ˆOfd<„|#D ¦   «         z  } Œjt          j        t          j                             |¦  «        pd=d>¬?¦  «         t9          g | ¢|‘¦  «         |S ‰d@k    �rK|rt	          ‰ ¦  «        dk    s‰s|rt          dA¦  «        ‚t/          dB„ t'          j        ‰ dC         ¦  «                             dg ¦  «        D ¦   «         ¦  «        }$t          |$                     d9d¦  «        ¦  «                             ¦   «         }%|d6k    p|d)v o|%d:v }&d!|d!‰ dC         g|¢d"‘d3‘d"‘dD‘|¢d5‘d‘|&rd7dgnt3          |¦  «        ¢} t;          |¦  «        }'|'�|'dCk    r	| dE|'dF›gz  } t          j        t          j                             |¦  «        pd=d>¬?¦  «         t9          g | ¢|‘¦  «         |S t	          ‰ ¦  «        t=          ‰¦  «        z   ‰dk    rdndGk     rt          ‰dk    rdHndI¦  «        ‚ˆ ˆfdJ„}( |(dK|dLdMdN¦  «         |(dO‰
dCdPdQ¦  «        c}Š
 |(dR|dCdSdQ¦  «         |(dT|dCdSdQ¦  «        }} |(dU‰dCdPdQ¦  «         |(dV‰dCdPdQ¦  «        cŠŠˆˆfdW„ŠMi })|�¶‰dk    s t	          |¦  «        t	          ‰ ¦  «        k    rt          dX¦  «        ‚t+          |¦  «        D ]q\  ŠO}*|*rjt?          dY„ |*D ¦   «         ¦  «        }*t          dZ„ |*D ¦   «         ¦  «        rt          d[¦  «        ‚|)                      ‰Og ¦  «         !                    |*¦  «         Œr|��/dCd\l"m#ŠR |                     d]¦  «        |                     d^¦  «        },}+tI          |                     d_d`¦  «        ¦  «        tI          |                     dadb¦  «        ¦  «        tI          |                     dcdd¦  «        ¦  «        cŠLŠKŠPˆ fde„ŠSˆˆSfdf„}-‰dk    s]|+r[|,rYtK          tM          |-|+¦  «        ¦  «        r<tK          tM          |-|,¦  «        ¦  «        rtO          |+¦  «        tO          |,¦  «        z  rt          dg¦  «        ‚d‰Lcxk    rdhk    r"n ndi‰Kcxk    rdjk    rn ndi‰Pcxk    rdjk    sn t          dk¦  «        ‚t?          g ˆ ˆMˆ
ˆRfdl„|,D ¦   «         ¢dm|,v r ‰R|¦  «        ndn¢¦  «        }.g }/|.D ]\\  }0}1|/r>|0|/do         d         z
  ‰K‰Pz   k     r&tQ          |/do         d         |1¦  «        |/do         d<   ŒE|/ !                    |0|1g¦  «         Œ]ˆKˆLˆPfdp„|/D ¦   «         }*|+D ]5}2|*r1|)                      |2dmk    rdon|2g ¦  «         !                    |*¦  «         Œ6|�3‰dk    s‰rdLtI          |¦  «        cxk    rdMk    sn t          dq¦  «        ‚|�1‰dk    sdrtI          |¦  «        cxk    rdsk    sn t          dt¦  «        ‚‰dk    r|rd6ndun|rdntS          |¦  «        }3|3rPt          j                             |¦  «        d                              ¦   «         |3k    rt          ‰› dv|3› d=�¦  «        ‚t          j        t          j                             |¦  «        pd=d>¬?¦  «         |rd!|gng }4‰ D ]	}|4d!|gz  }4Œ
|4|z  }4|rdndCŠN‰rdwgng ˆNfdx„t1          t	          ‰ ¦  «        ¦  «        D ¦   «         z   }5|rg dy¢ng }6‰dk    �rIt+          |5¦  «        D ]\  ŠO}7|6d"|7gz  }6Œg |4¢|6¢|¢} |r(| d7dgz  } t;          |¦  «        }'|'�|'dCk    r	| dE|'dF›gz  } n™t+          ‰ ¦  «        D ]‰\  ŠO}t/          dz„ t'          j        |¦  «                             dg ¦  «        D ¦   «         ¦  «        }$t          |$                     d9d¦  «        ¦  «                             ¦   «         }%| d;‰O› �|%d:v rdnd{gz  } ŒŠ‰rd|gng d}„ ‰ D ¦   «         z   }8t+          |8¦  «        D ]\  ŠO}9| d~‰O› �d|9› �gz  } Œt+          |pg ‰rdndC¬0¦  «        D ]\  ŠO}:| d~‰O› �d2|:› �gz  } Œ�nËd€„ ‰r|gng ‰ z   D ¦   «         };tQ          |;d�„ ¬‚¦  «        }<|<                     dƒd„¦  «        }=|=d„k    r+d…d†d‡œ                     t=          |<dˆ         ¦  «        ¦  «        }=tQ          d‰„ |;D ¦   «         ¦  «        }>dŠ|>› �|=rd‹|=› �ndz   }?g }@g }At+          |5¦  «        D �]¿\  ŠO}7dŒ‰O› �‰Ot=          ‰¦  «        z
  }C}B|CdCk     rd�|pdCdŽ›dN�|?g}D�n ‰M|C¦  «        \  }0}E|0s|Erd�|0dŽ›�|Erd�|EdŽ›�ndz   d‘z   gng }D|Dd�|r||C         ndCdŽ›dN�|?gz  }D|r'||C         r|D !                    d’||C         dŽ›�¦  «         |rt||C         rltU          |EptV          j,        t;          ‰ |C         ¦  «        |0z
  ¦  «        }E|D !                    d“tQ          d”|E||C         z
  ¦  «        dŽ›d•||C         dŽ›�¦  «         ‰
r7‰
|C         r/|D !                    d–t[          ‰
|C         d—z  ¦  «        › d˜�¦  «         |)                     |C¦  «        r|Dd™gdš„ |)|C         D ¦   «         ¢z  }D|@ !                    d›|7› dœd� .                    |D¦  «        › d›|B› dœ�¦  «         |A !                    d›|B› dœ�¦  «         �ŒÁ|@ !                    d .                    |A¦  «        › džt	          |5¦  «        › dŸ|rd nd› d¡�¦  «         |rt;          |¦  «        nd}'|'�|'dCk    rdE|'dF›gng }Fd}G|�It_          g |4¢d¢‘d£ .                    g |@¢d¤‘¦  «        ‘d"‘d¥‘|F¢¦  «        }Hd�tI          |¦  «        |Hz
  dŽ›d¦�}G|rt3          |¦  «        nta          |¦  «        }#|#|# 1                    d7¦  «        dz            }"|" 2                    d§¦  «        s|"d¨v rd©ndª}I|@ !                    d¡|G› d«d¬|>z  › d­d`|Id®z  z  d¯›d°|>› d±�	¦  «         d±}Jg |4¢d¢‘d£ .                    |@¦  «        ‘|6¢d"‘|J‘|¢|#¢|F¢} t9          g | ¢|‘¦  «         |S )²a  Copy video, combine or retain audio, and attach selectable subtitle streams. Mixing can trim, offset, fade, gain and automate each
    file, lower some files under speech (ducking) and normalize the result. Files add at their own levels, under a true-peak limiter.r   >   Úmixr.  r0   Ú
multitrackz/mode must be copy, replace, mix, or multitrack.Nr?  zRaudio_languages needs multitrack mode and one language code per file of audio_ids.r.  r>  z3audio_paths must contain audio files for this mode.c                óŽ   — g | ]B}t           j                             t          |pd ¦  «                             ¦   «         ¦  «        ‘ŒCS r?  r@  rA  s     r%   r­   zremux_media.<locals>.<listcomp>„  s>   € ÐUÐUÐUÀ•2”7×#Ò#¥C¨¨
°¡O¤O×$9Ò$9Ñ$;Ô$;Ñ<Ô<ÐUÐUÐUr'   r  rÑ  rC  c              3  ó   K  — | ]}|d uV — Œ	d S rE  r©   rÛ   s     r%   rä   zremux_media.<locals>.<genexpr>�  s?   è è € ð  }ð  }¨E�e 4Ð'ð  }ð  }ð  }ð  }ð  }ð  }r'   z+copy requires a video and no audio changes.z?copy requires subtitle_tracks or include_video_subtitles=false.z&Subtitle tracks require a video input.z!subtitle_tracks must be an array.c              3  ón   K  — | ]0}t          |t          ¦  «        ¯|                     d ¦  «        du V — Œ1dS ©ræ   TN)rX  r  r    ©r«   Útracks     r%   rä   zremux_media.<locals>.<genexpr>—  sD   è è € Ð
`Ð
`¨EÍ
ÐSXÕZ^ÑH_ÔH_Ð
`ˆ5�9Š9�YÑÔ 4Ð'Ð
`Ð
`Ð
`Ð
`Ð
`Ð
`r'   rq   z/Only one new subtitle track can be the default.rn   z!Each subtitle track needs a path.>   ú.assú.srtú.ssaú.vttz-Subtitle files must be SRT, VTT, ASS, or SSA.zSubtitle not found: c              3  óH   K  — | ]}|                      d ¦  «        dk    V — ŒdS r&  r  râ   s     r%   rä   zremux_media.<locals>.<genexpr>   s3   è è € ÐwÐw¸f�6—:’:˜lÑ+Ô+¨zÒ9ÐwÐwÐwÐwÐwÐwr'   rå   zNo subtitle stream found in z:include_video_audio requires a video with an audio stream.zoutput_path is required.c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )rà   r'  r  râ   s     r%   r­   zremux_media.<locals>.<listcomp>ª  sT   € ð  Hð  Hð  H vÐ`f×`jÒ`jÐkwÑ`xÔ`xð  }Gò  aGð  aG˜Fð  aGð  aGð  aGr'   rz   r+  r-  z:s:0c           	     ó˜   — g | ]G}t          d „ t          j        |d         ¦  «                             dg ¦  «        D ¦   «         ¦  «        ‘ŒHS )c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS r&  r  )r«   Úitems     r%   rä   z)remux_media.<locals>.<listcomp>.<genexpr>µ  s�   è è € ð  @ið  @iÈð  DH÷  DLò  DLð  MYñ  DZô  DZð  ^hò  Dhð  DhÀð  Dhð  Dhð  Dhð  Dhð  @ið  @ir'   rn   rå   ©r  r   rê   r    rD  s     r%   r­   zremux_media.<locals>.<listcomp>µ  s…   € ð  ;Gð  ;Gð  ;Gð  ns½4ð  @ið  @iÕQWÔQ]Ð^cÐdjÔ^kÑQlÔQl×QpÒQpÐqzÐ|~ÑQÔQð  @iñ  @iô  @iñ  <iô  <ið  ;Gð  ;Gð  ;Gr'   ÚtagsÚtitleÚhandler_namer"  z-metadata:s:s:ú=c              3  óp   •K  — | ]0\  }}|                      d ¦  «        du ¯t          ‰¦  «        |z   V — Œ1dS rC  )r    r‡   )r«   rµ   rE  Úsource_subtitless      €r%   rä   zremux_media.<locals>.<genexpr>½  s�   øè è € ð  'Uð  'UÉÈÐPUÐw|÷  xAò  xAð  BKñ  xLô  xLð  PTð  xTð  xT¥sÐ+;Ñ'<Ô'<¸uÑ'Dð  xTð  xTð  xTð  xTð  'Uð  'Ur'   z-disposition:s:ræ   rC   )rÞ   Úlanguagez	language=rË  r,  r  r   r^   c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )rà   rá   r  râ   s     r%   r­   zremux_media.<locals>.<listcomp>Î  sT   € ð  Fð  Fð  F¨Ðag×akÒakÐlxÑayÔayð  ~Eò  bEð  bE˜Vð  bEð  bEð  bEr'   r!  >   ÚaacrY   ú-c:a:c                ó@   •— g | ]}|d k    rd‰› �n|dk    rd‰› �n|‘ŒS )r^   rY  ra   z-b:a:r©   )r«   r#  rµ   s     €r%   r­   zremux_media.<locals>.<listcomp>Õ  sU   ø€ ð   Hð   Hð   HÐtw°3¸&²=°= ¨   ÐY\Ð`fÒYfÐYfÀoÈeÀoÀoÀoÐloð   Hð   Hð   Hr'   rD   Tr  r0   zLreplace requires a video and exactly one audio file, without mixing options.c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS ©rà   rá   Nr  râ   s     r%   rä   zremux_media.<locals>.<genexpr>Ü  se   è è € ð  Ið  I vÐdj×dnÒdnÐo{Ñd|Ôd|ð  AHò  eHð  eH˜Fð  eHð  eHð  eHð  eHð  Ið  Ir'   r   r  r¡   rB   r¹   zmix requires an audio stream.z/multitrack requires at least two audio streams.c                ó  •‡‡— |€d S ‰dk    s t          |¦  «        t          ‰¦  «        k    rt          | › d�¦  «        ‚d„ |D ¦   «         }t          ˆˆfd„|D ¦   «         ¦  «        rt          d| › d‰› d‰› d|› d	�	¦  «        ‚|S )
Nr>  z> is available for mix only and needs one value per audio file.c                ó4   — g | ]}|€dnt          |¦  «        ‘ŒS ©Nrš   rª   rÛ   s     r%   r­   z1remux_media.<locals>.per_file.<locals>.<listcomp>í  s&   € ÐMÐMÐM¸U˜˜�#�#­E°%©L¬LÐMÐMÐMr'   c              3  óZ   •K  — | ]%}t          j        |¦  «         p|‰k     p|‰k    V — Œ&d S rE  ©rÅ   rÆ   )r«   rÃ   ÚhighÚlows     €€r%   rä   z0remux_media.<locals>.per_file.<locals>.<genexpr>î  sB   øè è € Ð[Ð[È5•4”= Ñ'Ô'Ð'ÐF¨5°3ª;ÐF¸%À$º,Ð[Ð[Ð[Ð[Ð[Ð[r'   zEach z$ value must be a finite number from z to r   rD   )r‡   rF   rZ  )rG  Úvaluesrc  rb  Úunitr7  r8  s     `` €€r%   Úper_filezremux_media.<locals>.per_fileè  s½   øøø€ Øˆ>Ø�4Ø�5Š=ˆ=�C ™KœK­3¨{Ñ+;Ô+;Ò;Ð;Ý ÐdÐdÐdÑeÔeÐeØMÐMÀfÐMÑMÔMˆÝÐ[Ð[Ð[Ð[Ð[ÐTZÐ[Ñ[Ô[Ñ[Ô[ð 	hÝÐf TÐfÐfÈsÐfÐfÐX\ÐfÐfÐ_cÐfÐfÐfÑgÔgÐgØˆr'   r)  éÄÿÿÿé   ÚdBr-  é  r>   r.  iX  r/  r2  r3  c                ó4   •— ‰r‰|          nd‰r‰|          ndfS r_  r©   )rµ   r3  r2  s    €€r%   ú<lambda>zremux_media.<locals>.<lambda>õ  s-   ø€ °LÐI˜\¨%Ô0Ð0ÀcÐetÐK}È?Ð[`ÔKaÐKaÐz}Ð~€ r'   zwgain_points is available for mix only and needs one entry (a list of [time_s, gain_db] points, or null) per audio file.c              3  óX   K  — | ]%\  }}t          |¦  «        t          |¦  «        fV — Œ&d S rE  rª   ©r«   r¬   Úgains      r%   rä   zremux_media.<locals>.<genexpr>ü  s7   è è € ÐTÐT¹z¸tÀT¥ t¡¤­e°D©k¬kÐ :ÐTÐTÐTÐTÐTÐTr'   c              3  ó®   K  — | ]P\  }}t          j        |¦  «        o3t          j        |¦  «        od |cxk    odk    nc od|cxk    odk    nc  V — ŒQdS )r   rj  rg  rh  Nra  rn  s      r%   rä   zremux_media.<locals>.<genexpr>ý  s¬   è è € ð  Oð  Oñ  zDÐy}ð  @D�DœM¨$Ñ/Ô/ÐsµD´MÀ$Ñ4GÔ4GÐsÈAÐQUÐL]ÐL]ÒL]ÐL]ÐY]ÒL]ÐL]ÐL]ÐL]ÐsÐbeÐimÐbsÐbsÒbsÐbsÐqsÒbsÐbsÐbsÐbsÐtð  Oð  Oð  Oð  Oð  Oð  Or'   zsEach gain point is [time_s, gain_db] with a time from 0 to 3600 s on the mix timeline and a gain from -60 to 24 dB.)Úspeech_intervalsÚtracksÚunderÚdepth_dbé
   Úattack_sgš™™™™™É?Ú	release_sg333333ã?c                ó”   •— t          | t          ¦  «        o2t          | t          ¦  «         od| cxk    ot          ‰¦  «        k     nc S )Nr   )rX  r/  ro   r‡   )rÃ   r7  s    €r%   rl  zremux_media.<locals>.<lambda>  sP   ø€ �j¨µÑ4Ô4Ðv½ZÈÍtÑ=TÔ=TÐ9TÐvÐYZÐ^cÐYvÐYvÒYvÐYvÕfiÐjuÑfvÔfvÒYvÐYvÐYvÐYv€ r'   c                ó*   •—  ‰| ¦  «        p| dk    o‰S )Nr  r©   )rN  r(  Úvalids    €€r%   rl  zremux_media.<locals>.<lambda>  s   ø€ ˜5˜5 ™;œ;ÐQ¨$°'ª/Ð*QÐ>Q€ r'   zéducking needs mix mode, "tracks" (what dips: indexes of audio_ids, or "video" with include_video_audio) and "under" (the voices: indexes of audio_ids, or "video" for the speech of lip-synced shots in the video), with no item in both.é(   g{®Gáz„?é   zGducking depth_db must be 1..40, attack_s and release_s 0.01..5 seconds.c              3  óÖ   •K  — | ]c}|d k    ¯ ‰‰|          ‰|¦  «        d          ‰|¦  «        d         pdd¬¦  «        D ]%\  }}|‰r‰|         ndz   |‰r‰|         ndz   fV — Œ&ŒddS )r  r   rq   NT)rI   rK   Úisolatedrš   r©   )r«   rµ   rÞ   r¼   r7  Úexcerptr-  rq  s       €€€€r%   rä   zremux_media.<locals>.<genexpr>  s  øè è € ð Jð JØ#°¸Ò0@Ð0@ÐScÐScÐdoÐpuÔdvð  DKð  DKð  LQñ  DRô  DRð  STô  DUð  `gð  `gð  hmñ  `nô  `nð  opô  `qð  `yð  uyð  DHð  TIñ  TIô  TIÐ0@Ð0@ÁZÀUÈCð !¸	Ð$J I¨eÔ$4Ð$4ÀsÑKÈSÐhqÐTzÐT]Ð^cÔTdÐTdÐwzÑM{Ð|Ø0@Ð0@Ð0@Ð0@Ð0@ðJð Jr'   r  r©   rç   c                óL   •— g | ] \  }}|‰z
  d f|‰ f|‰ f|‰z   d ffD ]}|‘ŒŒ!S rÚ   r©   )r«   rÞ   r¼   ÚpointÚattackÚdepthÚreleases       €€€r%   r­   zremux_media.<locals>.<listcomp>  sŒ   ø€ ð  Mð  Mð  M™J˜E 3ÀÈÁÐPSÐ?TÐW\Ð_dÐ^dÐVeÐhkÐnsÐmsÐgtÐwzð  ~Eñ  xEð  GJð  wKð  ?Lð  Mð  M°U�%ð  Mð  Mð  Mð  Mr'   z^video_audio_gain_db needs mix mode with include_video_audio=true and a gain from -60 to 24 dB.iØÿÿÿéûÿÿÿz?normalize_lufs needs mix mode and a target from -40 to -5 LUFS.rZ   z output must use z0:a:0c                ó    •— g | ]
}‰|z   › d �‘ŒS )r¥  r©   )r«   rµ   Úfirst_audio_indexs     €r%   r­   zremux_media.<locals>.<listcomp>%  s<   ø€ ð  <Eð  <Eð  <EÐchÐ?PÐSXÑ?XÐ<^Ð<^Ð<^ð  <Eð  <Eð  <Er'   )r+  rË  r  r.  c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS r\  r  râ   s     r%   rä   zremux_media.<locals>.<genexpr>2  se   è è € ð  $Gð  $G¨vÐbh×blÒblÐmyÑbzÔbzð  Fò  cFð  cF Fð  cFð  cFð  cFð  cFð  $Gð  $Gr'   rY   zOriginal Soundtrackc                ó’   — g | ]D}t           j                             t           j                             |¦  «        ¦  «        d          ‘ŒES )r   )r   rn   rr   ÚbasenamerA  s     r%   r­   zremux_media.<locals>.<listcomp>5  s^   € ð  LQð  LQð  LQð  }AÍBÌG×L\ÒL\Õ]_Ô]d×]mÒ]mÐnrÑ]sÔ]sÑLtÔLtÐuvÔLwð  LQð  LQð  LQr'   z-metadata:s:a:ztitle=c           	     óŒ   — g | ]A}t          d „ t          j        |¦  «                             dg ¦  «        D ¦   «         ¦  «        ‘ŒBS )c              3  óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS r\  r  râ   s     r%   rä   z)remux_media.<locals>.<listcomp>.<genexpr><  s=   è è € ÐzÐz 6ÐV\×V`ÒV`ÐamÑVnÔVnÐryÒVyÐVy˜ÐVyÐVyÐVyÐVyÐzÐzr'   rå   rO  rA  s     r%   r­   zremux_media.<locals>.<listcomp><  s`   € ð  Dð  Dð  Dð  @D•4ÐzÐz­V¬\¸$Ñ-?Ô-?×-CÒ-CÀIÈrÑ-RÔ-RÐzÑzÔzÑzÔzð  Dð  Dð  Dr'   c                ó,   — t          | d         ¦  «        S )NÚchannels©r/  )rã   s    r%   rl  zremux_media.<locals>.<lambda>=  s   € µ#°f¸ZÔ6HÑ2IÔ2I€ r'   )rÂ   Úchannel_layoutÚunknownÚmonoÚstereo)rq   r¹   rŽ  c              3  ó@   K  — | ]}t          |d          ¦  «        V — ŒdS )Úsample_rateNr�  râ   s     r%   rä   zremux_media.<locals>.<genexpr>A  s/   è è € ÐDÐD°&•3�v˜mÔ,Ñ-Ô-ÐDÐDÐDÐDÐDÐDr'   zaformat=sample_rates=z:channel_layouts=rE  zvolume=r¢   zatrim=start=rT  z,asetpts=PTS-STARTPTSzafade=t=in:st=0:d=zafade=t=out:st=rš   z:d=zadelay=iè  z:all=1zasetnsamples=n=480:p=0c              3  ó<   K  — | ]}d t          |¦  «        › d�V — ŒdS )zvolume='z':eval=frameN)Ú_gain_expression)r«   Úpointss     r%   rä   zremux_media.<locals>.<genexpr>U  sQ   è è € ð  6Nð  6NÐlrÐ6gÕAQÐRXÑAYÔAYÐ6gÐ6gÐ6gð  6Nð  6Nð  6Nð  6Nð  6Nð  6Nr'   rO  rR  ú,zamix=inputs=z:duration=longest:normalize=0z,apadz[mixed]r*  rV  z([mixed]ebur128=framelog=verbose[measure]z	[measure]zdB,Úpcm_)rW   rY   éþÿÿÿéýÿÿÿz
aresample=é   z,alimiter=limit=é   z.4fz:level=0:latency=1,aresample=z	[limited])3r   r;   r[   rF   r‡   rX  rY  r   rn   rˆ   rW  rN  r†   rZ  ÚtypeÚsumr  r    rr   r   rê   rÉ   r"  r  r¯  rc   r  r  r=   ré   r/  ÚsortedÚ
setdefaultrë   Úshared.deepy.audio_inspectionrq  rE   Úallrq  Úsetr´   r\   r]  rÅ   Úinfrº   r[  Ú_graph_loudnessrm   rµ   Ú
startswith)Tr7  r  r8  rv   r(  r)  r  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  rn   Úmix_optionsrE  r$  Úsubtitle_inputsr0  Úfirst_subtitle_inputrã   rP  rQ  rÂ   Údefault_subtitle_indexrì   rÒ  r_   Úencode_argsÚaudio_streamÚsource_codecÚ
copy_audioÚvideo_durationrf  Ú
automationr˜  rr  rs  ÚownÚspansÚmergedrÞ   r¼   rN  Úexpected_extensionÚinputsÚsourcesÚmapsrc  ÚnamesrG  rV  rå   Úrichestrh  r^  Úaudio_formatra  ÚlabelsÚlabelÚ
file_indexÚchainÚlengthÚduration_argsro  ÚloudnessÚceilingÚmixedr‚  rƒ  r  r‡  rµ   r„  rU  rq  rz  sT   ` ` `     `    ``                                                          @@@@@@@@@r%   Úremux_mediarÆ  x  s“  øøøøøøøøøøøøøøø€ õ
 ˆtˆz�r‰?Œ?× Ò Ñ"Ô"×(Ò(Ñ*Ô*€DØÐ;Ð;Ð;ÝÐJÑKÔKÐKØÐ"¨°Ò(<Ð(<ÅÀOÑ@TÔ@TÕX[Ð\gÑXhÔXhÒ@hÐ@hÝÐmÑnÔnÐnÝ�k¥4Ñ(Ô(ð P¨T°Vª^¨^ÀK¨^ÐY]ÐafÒYfÐYfÐkuÐYfð  {NÐYfÝÐNÑOÔOÐOØUÐUÈÐUÑUÔU€KØð Að AˆÝŒw�~Š~˜dÑ#Ô#ð 	@Ý#Ð$>¸Ð$>Ð$>Ñ?Ô?Ð?Ý  Ñ&Ô&ð 	AÝÐ?¸Ð?Ð?Ñ@Ô@Ð@ð	Aà>HÐR•”×!Ò!¥# j¡/¤/×"7Ò"7Ñ"9Ô"9Ñ:Ô:Ð:Èd€JØð B�"œ'Ÿ.š.¨Ñ4Ô4ð BÝÐ @°JÐ @Ð @ÑAÔAÐAÝð  }ð  }°hÀ	È9ÐV`Ðbuð  xFð  HTð  Veð  grð  t{ð  6|ð  }ñ  }ô  }ñ  }ô  }€KØˆv‚~€~˜z€~¨[€~Ð<O€~ÐS^€~ÝÐFÑGÔGÐGØˆv‚~€~˜o€~Ð2I€~ÝÐZÑ[Ô[Ð[Øð C˜zð CÝÐAÑBÔBÐBÝ�o­­d°4©j¬jÐ'9Ñ:Ô:ð >ÝÐ<Ñ=Ô=Ð=Ø%Ð+¨€OÝ
Ð
`Ð
`°_Ð
`Ñ
`Ô
`Ñ`Ô`ÐcdÒdÐdÝÐJÑKÔKÐKØ ð Mñ MˆÝ˜%¥Ñ&Ô&ð 	B­c°%·)²)¸FÀBÑ2GÔ2GÑ.HÔ.H×.NÒ.NÑ.PÔ.Pð 	BÝÐ@ÑAÔAÐAÝŒ7×Ò˜E &œMÑ*Ô*¨1Ô-×3Ò3Ñ5Ô5Ð=]Ð]Ð]ÝÐLÑMÔMÐMÝŒw�~Š~˜e FœmÑ,Ô,ð 	LÝ#Ð$J¸5À¼=Ð$JÐ$JÑKÔKÐKÝÐwÐwÍÌÐUZÐ[aÔUbÑHcÔHc×HgÒHgÐhqÐsuÑHvÔHvÐwÑwÔwÑwÔwð 	MÝÐK¸EÀ&¼MÐKÐKÑLÔLÐLñ	Màð W Jð WÕ6GÈ
Ñ6SÔ6Sð WÝÐUÑVÔVÐVÝˆ{Ð ˜bÑ!Ô!×'Ò'Ñ)Ô)ð 5ÝÐ3Ñ4Ô4Ð4Ý”'×"Ò"¥3 {Ñ#3Ô#3×#9Ò#9Ñ#;Ô#;Ñ<Ô<€KÝ”w×'Ò'¨Ñ4Ô4°QÔ7×=Ò=Ñ?Ô?ÐØÐØð HÐ-ð Hð Hð  Hµ´¸jÑ1IÔ1I×1MÒ1MÈiÐY[Ñ1\Ô1\ð  Hñ  Hô  HÐØ€OØ€MØñ eØ ¥3 {Ñ#3Ô#3Ñ3ÐØ$ð 	5ð 	5ˆEØ  e¨F¤mÐ4Ñ4ˆOˆOØð 	.Ø˜f fÐ-Ñ-ˆMÝ% oÑ6Ô6ð 	Mð 	M‰LˆE�5Ø˜fÐ)=ÀÑ)EÐ&KÐ&KÐ&KÐLÑLˆMˆMÝ&Ð'7ð  ;Gð  ;Gð  wFð  ;Gñ  ;Gô  ;Gñ  (Gñ  Hô  Hð 	Rð 	R‰MˆE�6ØÕ1°%¸ÐAQÑRÔRÑRˆMØ•sÐ+Ñ,Ô,Ò,Ð,Ø—z’z &¨"Ñ-Ô-�ØŸš Ñ)Ô)ÐE¨T¯XªX°nÑ-EÔ-E�Øð RØ,<Ð@PÐ,PÐ,P˜.˜.ÐV]�CØ!Ð&>°uÐ&>Ð&>À3Ð@PÐ@PÈÐ@PÐ@PÐ%QÑQ�MøÝ!%ð  'Uð  'Uð  'Uð  'UÕYbÐcrÑYsÔYsð  'Uñ  'Uô  'Uð  W[ñ  "\ô  "\ÐØ!Ð-Ý�sÐ#3Ñ4Ô4µs¸?Ñ7KÔ7KÑKÑLÔLð tð t�ØÐ";°EÐ";Ð";È%ÐSiÒJiÐJi¸Y¸YÐorÐ!sÑs��Ý% o½SÐAQÑ=RÔ=RÐSÑSÔSð 	eð 	e‰LˆE�5Ø�yŠy˜Ñ$Ô$ð ]ØÐ":°5Ð":Ð":Ð<[ÈÈjÔHYÐ<[Ð<[Ð!\Ñ\�Ø�yŠy˜Ñ!Ô!ð WØ(8Ð<LÐ(LÐ(L�n�nÐRY�ØÐ":°5Ð":Ð":¸sÐ<UÐ<UÀUÈ7Ä^Ð<UÐ<UÐ!VÑV�Ø%Ð-°%·)²)¸IÑ2FÔ2FÐ2RØÐ";°EÐ";Ð";È%ÐPYÔJZÐ=c¸Y¸YÐ`cÐ!dÑd�øØˆv‚~�~Ø˜Ðw oÐw°vÐw¸wÐwÈÐwÐPVÐwÐYfÐwÐhnÐwÐpvÐwˆØ˜vÒ%Ð%Ø˜ Ð'Ñ'ˆGˆGð Fð  Fµ&´,¸zÑ2JÔ2J×2NÒ2NÈyÐZ\Ñ2]Ô2]ð  Fñ  Fô  FˆMÝ!*¨=Ñ!9Ô!9ð Hð H‘��vÝ˜FŸJšJ |°RÑ8Ô8Ñ9Ô9×?Ò?ÑAÔA�Ø˜OÐ+Ð+Ø ¨  °Ð8Ñ8�G�Gå"<¸[Ñ"IÔ"I�KØð   Hð   Hð   Hð   Hð  |Gð   Hñ   Hô   Hñ  H�G�GÝ
Œ•B”G—O’O KÑ0Ô0Ð7°CÀ$ÐGÑGÔGÐGÝÐ+�gÐ+˜{Ð+Ñ,Ô,Ð,ØÐØˆyÒÑØð 	m�S Ñ-Ô-°Ò2Ð2Ð6IÐ2È[Ð2ÝÐkÑlÔlÐlÝð  Ið  Iµ´¸kÈ!¼nÑ1MÔ1M×1QÒ1QÐR[Ð]_Ñ1`Ô1`ð  Iñ  Iô  Iñ  Iô  IˆÝ˜<×+Ò+¨L¸"Ñ=Ô=Ñ>Ô>×DÒDÑFÔFˆØ%¨Ò/Ð}Ð4DÐHXÐ4XÐ4|Ð]iÐm|Ð]|ˆ
Ø˜ T¨;°q¬>ð  _¸Oð  _ÈVð  _ÐU\ð  _Ð^dð  _Ðfmð  _Ðp}ð  _ð  @Fð  _ð  HNð  _ð  fpð  R]ð  SYð  [að  Rbð  Rbõ  vPð  Q\ñ  v]ô  v]ð  _ˆÝ+¨JÑ7Ô7ˆØÐ%¨.¸1Ò*<Ð*<Ø˜ Ð5Ð5Ð6Ñ6ˆGÝ
Œ•B”G—O’O KÑ0Ô0Ð7°CÀ$ÐGÑGÔGÐGÝÐ+�gÐ+˜{Ð+Ñ,Ô,Ð,ØÐÝ
ˆ;ÑÔ�#Ð1Ñ2Ô2Ñ2¸4À5º=¸=°a°aÈaÒPÐPÝ¸DÀEºM¸MÐ8Ð8ð  PAñ  Bô  Bð  	Bðð ð ð ð ð ð #˜( :¨x¸¸bÀ$ÑGÔGÈÈÐR]Ð_hÐjkÐmqÐs|ÑI}ÔI}Ð€HˆiØ$˜H [°)¸QÀÀYÑOÔOÐQYÐQYÐZfÐhrÐtuÐwzð  }Fñ  RGô  RGˆz€IØ$, H¨^¸\È1ÈdÐT]Ñ$^Ô$^Ð`hÐ`hÐizð  }Lð  NOð  QUð  W`ñ  aaô  aaÐ!€L�/Ø~Ð~Ð~Ð~Ð~€GØ€JØÐØ�5Š=ˆ=�C Ñ,Ô,µ°KÑ0@Ô0@Ò@Ð@Ýð  Wñ  Xô  Xð  XÝ& {Ñ3Ô3ð 	@ð 	@‰MˆE�6Øð @ÝÐTÐTÈVÐTÑTÔTÑTÔT�Ýð  Oð  Oð  HNð  Oñ  Oô  Oñ  Oô  Oð \Ý$ð  &[ñ  \ô  \ð  \Ø×%Ò% e¨RÑ0Ô0×7Ò7¸Ñ?Ô?Ð?øØÑØBÐBÐBÐBÐBÐBØŸš HÑ-Ô-¨w¯{ª{¸7Ñ/CÔ/C�ˆÝ!& w§{¢{°:¸rÑ'BÔ'BÑ!CÔ!CÅUÈ7Ï;Ê;ÐWaÐcfÑKgÔKgÑEhÔEhÕjoÐpw×p{Òp{ð  }Hð  JMñ  qNô  qNñ  kOô  kOÐˆˆv�wØvÐvÐvÐvˆØQÐQÐQÐQÐQˆØ�5Š=ˆ= ˆ=¨eˆ=½3½sÀ3ÈÑ?OÔ?OÑ;PÔ;Pˆ=ÕX[Õ\_Ð`cÐejÑ\kÔ\kÑXlÔXlˆ=ÕpsÐtzÑp{Ôp{õ  Bð  CHñ  Iô  Iñ  qIˆ=Ýð rñ sô sð sà�UÐ Ð Ò Ð ˜bÒ Ð Ð Ð Ð  T¨VÐ%8Ð%8Ò%8Ð%8°qÒ%8Ð%8Ð%8Ð%8Ð%8¸TÀWÐ=QÐ=QÒ=QÐ=QÐPQÒ=QÐ=QÐ=QÐ=QÝÐfÑgÔgÐgÝð Uð Jð Jð Jð Jð Jð Jð JØ',ðJñ Jô Jð Uà:AÀUÐ:JÐ:JÐ*Ð*¨:Ñ6Ô6Ð6ÐPRðUñ Vô Vˆð ˆØð 	,ð 	,‰JˆE�3Øð ,˜% &¨¤*¨Q¤-Ñ/°&¸7Ñ2BÒBÐBÝ # F¨2¤J¨q¤M°3Ñ 7Ô 7��r”
˜1‘�à—’˜u c˜lÑ+Ô+Ð+Ð+ð Mð  Mð  Mð  Mð  Mð  M¨&ð  Mñ  Mô  MˆØð 	Zð 	ZˆDØð ZØ×%Ò%¨D°GªO¨O b bÀÀrÑJÔJ×QÒQÐRXÑYÔYÐYøØÐ&¨D°EªM¨MÐAT¨MÐ\_ÕchÐi|Ñc}Ôc}ð  ]Dð  ]Dò  ]Dð  ]Dð  BDò  ]Dð  ]Dð  ]Dð  ]DÝÐyÑzÔzÐzØÐ! t¨u¢} }¸CÅ5ÈÑCXÔCXÐ<^Ð<^Ò<^Ð<^Ð\^Ò<^Ð<^Ð<^Ð<^ÝÐZÑ[Ô[Ð[Ø?CÀ|Ò?SÐ?S JÐ:˜&˜&°F°FÐblð  [iÐZ^ÐZ^õ  sQð  Rhñ  siô  siÐØð J�bœg×.Ò.¨{Ñ;Ô;¸AÔ>×DÒDÑFÔFÐJ\Ò\Ð\Ý˜DÐHÐHÐ3EÐHÐHÐHÑIÔIÐIÝ„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCØ$.Ð6ˆt�ZÐ Ð °B€FØð ð ˆØ�4˜�,ÑˆˆØ
ˆoÑ€FØ'Ð.˜˜¨QÐØ/Ð7�ˆyˆy°Rð  <Eð  <Eð  <Eð  <EÕlqÕruð  wBñ  sCô  sCñ  mDô  mDð  <Eñ  <Eô  <Eñ  E€GØ0:ÐBÐ,Ð,Ð,Ð,À€DØˆ|ÒÑÝ& wÑ/Ô/ð 	%ð 	%‰MˆE�6Ø�V˜VÐ$Ñ$ˆDˆDØ2�FÐ2˜TÐ2 MÐ2ˆØð 		dØ˜ Ð'Ñ'ˆGÝ/°
Ñ;Ô;ˆNØÐ)¨n¸qÒ.@Ð.@Ø˜D ^Ð"9Ð"9Ð:Ñ:�øå(¨Ñ5Ô5ð dð d‘��tÝ#ð  $Gð  $G½¼ÀdÑ9KÔ9K×9OÒ9OÐPYÐ[]Ñ9^Ô9^ð  $Gñ  $Gô  $Gñ   Gô   G�Ý" <×#3Ò#3°LÀ"Ñ#EÔ#EÑFÔF×LÒLÑNÔN�Ø˜O E˜O˜O°|ÀÐ7VÐ7V¨V¨VÐ\bÐcÑc��Ø,?ÐGÐ'Ð(Ð(ÀRð  LQð  LQð  EPð  LQñ  LQô  LQñ  QˆÝ$ UÑ+Ô+ð 	Cð 	C‰KˆE�4ØÐ0¨Ð0Ð0°/¸4°/°/ÐBÑBˆGˆGÝ(¨Ð)>¸BÐK^ÐFeÀaÀaÐdeÐfÑfÔfð 	Jð 	J‰OˆE�8ØÐ0¨Ð0Ð0Ð2H¸hÐ2HÐ2HÐIÑIˆGˆGñ	Jð Dð  Dð  Ylð  Itð  JTð  IUð  IUð  rtð  xCñ  HCð  Dñ  Dô  DˆÝ�gÐ#IÐ#IÐJÑJÔJˆØ—’Ð-¨yÑ9Ô9ˆØ�YÒÐØ HÐ-Ð-×1Ò1µ#°g¸jÔ6IÑ2JÔ2JÑKÔKˆFÝÐDÐD¸GÐDÑDÔDÑDÔDˆØ5¨tÐ5Ð5ÐY_Ð9gÐ9UÈVÐ9UÐ9UÐ9UÐegÑhˆØˆØˆÝ& wÑ/Ô/ð 	(ñ 	(‰MˆE�6Ø /¨  °½Ð=PÑ9QÔ9QÑ1Q�:ˆEØ˜AŠ~ˆ~ØAÐ#6Ð#;¸!ÐAÐAÐAÐAÀ<ÐP�‘à ' ¨
Ñ 3Ô 3‘��vð Dð  Vð  HNð  VÐ1¨Ð1Ð1Ð1ÐPVÐ5^Ð5LÀ&Ð5LÐ5LÐ5LÐ5LÐ\^Ñ_ÐbyÑyÐzÐzð  TV�ØÐQ¸HÐ$K H¨ZÔ$8Ð$8È!ÐQÐQÐQÐQÐS_Ð`Ñ`�Øð Q ¨:Ô!6ð QØ—L’LÐ!O°iÀ
Ô6KÐ!OÐ!OÐ!OÑPÔPÐPØð  *¨ZÔ"8ð Ý  Ð!3­4¬8Õ5GÈÐT^ÔH_Ñ5`Ô5`ÐchÑ5hÑiÔi�FØ—L’LÐ!}µ3°s¸FÀZÐPZÔE[Ñ<[Ñ3\Ô3\Ð!}Ð!}Ð!}ÐcmÐnxÔcyÐ!}Ð!}Ð!}Ñ~Ô~Ð~Øð X ¨:Ô!6ð XØ—L’LÐ!V­5°¸:Ô1FÈÑ1MÑ+NÔ+NÐ!VÐ!VÐ!VÑWÔWÐWØ�~Š~˜jÑ)Ô)ð OØÐ2ð  Oð  6Nð  6Nð  wAð  BLô  wMð  6Nñ  6Nô  6Nð  Oñ  O�Ø�NŠNÐB˜vÐBÐB¨¯ª°©¬ÐBÐB¸%ÐBÐBÐBÑCÔCÐCØ�MŠM˜,˜e˜,˜,˜,Ñ'Ô'Ð'Ñ'à�Š˜"Ÿ'š' &™/œ/ð  Ið  Iµs¸7±|´|ð  Ið  IÐmwÐbÐbiÐbiÐ}ð  Ið  Ið  Iñ  	Jô  	Jð  	JØ;EÐOÕ+¨JÑ7Ô7Ð7È4ˆØ;IÐ;UÐZhÐklÒZlÐZl˜ .Ð6Ð6Ð7Ð7ÐrtˆØˆØÐ%Ý&ð  (k¨ð  (kÐ1Bð  (kÀCÇHÂHð  NDÈwð  NDð  YCð  NDñ  EEô  EEð  (kð  GMð  (kð  OZð  (kð  ]jð  (kñ  lô  lˆHØD�U >Ñ2Ô2°XÑ=ÐDÐDÐDÐDˆDØAKð  KÕ0°Ñ=Ô=Ð=ÕQrð  tJñ  RKô  RKˆØ˜K×-Ò-¨fÑ5Ô5¸Ñ9Ô:ˆØ×(Ò(¨Ñ0Ô0ÐU°EÐ=MÐ4MÐ4M�"�"ÐSUˆà�Šð  R ð  Rð  R°°T±ð  Rð  RÈ2ÐRYÐ\^ÑR^ÑK_ð  Rð  Rð  Rð  CGð  Rð  Rð  Rñ  	Sô  	Sð  	SØˆð F�Fð  FÐ-ð  F¨s¯xªx¸Ñ/@Ô/@ð  FÀ4ð  FÈð  FÐQVð  FÐYfð  FÐitð  Fð  xEð  FˆÝÐ'�'Ð'˜;Ð'Ñ(Ô(Ð(ØÐr'   r˜  úlist[tuple[float, float]]c                óF  — | d         d         d›}t          t          t          | | dd…         ¦  «        ¦  «        ¦  «        D ]9\  \  }}\  }}d|d›d|d›d||z
  d›d|d›d	t          ||z
  d
¦  «        d›d|› d�}Œ:d| d         d         d›d| d         d         d›d|› d�S )z£Linear gain of a piecewise-linear dB envelope at the filter time t; the first and last gains hold outside the points.
    The caller quotes it in the filter graph.rç   rq   r¢   Nzif(lt(t,z),z+(z)*(t-z)/r	  r™  ú)zpow(10,(if(lt(t,r   z))/20))ÚreversedrY  rÊ   r´   )r˜  Ú
expressionr¬   ro  Ú	next_timeÚ	next_gains         r%   r—  r—  k  s2  € ð ˜2”J˜q”MÐ%Ð%€JÝ08½½cÀ&È&ÐQRÐQSÐQSÌ*Ñ>UÔ>UÑ9VÔ9VÑ0WÔ0Wð Jð JÑ,‰ˆˆtÑ,�y )ð J 	ð  Jð  Jð  J¨tð  Jð  Jð  J¸ÀTÑ9Ið  Jð  Jð  JÐRVð  Jð  Jð  JÕ\_Ð`iÐlpÑ`pÐrvÑ\wÔ\wð  Jð  Jð  Jð  }Gð  Jð  Jð  Jˆ
ˆ
ØS˜f Qœi¨œlÐSÐSÐS°°q´	¸!´ÐSÐSÐSÀÐSÐSÐSÐSr'   c                óP  — t          j        t          ¦   «         ddg| ¢d‘d‘d‘dddd¬	¦  «        }|j        d
k    r(t	          |j        pd                     ¦   «         ¦  «        ‚t          t          j	        d|j        ¦  «        d         ¦  «        }|dk    rt          d¦  «        ‚|S )z`Integrated loudness (LUFS) of a filter graph's [measure] output, from FFmpeg's EBU R128 summary.z-hide_bannerz-nostatsr}   r¦   r€   Tr/   r0   r1   r   z"ffmpeg loudness measurement failedz\bI:\s*(-?[\d.]+)\s*LUFSrç   iºÿÿÿz4The mix is silent; it cannot be loudness-normalized.)r6   r7   r&   r8   r#   r9   r;   rE   rÇ   rÈ   rF   )r(   r<   rÃ  s      r%   r§  r§  t  sÈ   € åŒ^Õ-Ñ/Ô/°ÀÐfÈdÐfÐTXÐfÐZ`ÐfÐbeÐfÐw{ð  CGð  RYð  bkð  lñ  lô  l€FØÔ˜AÒÐÝ˜FœMÐQÐ-Q×XÒXÑZÔZÑ[Ô[Ð[Ý•R”ZÐ ;¸V¼]ÑKÔKÈBÔOÑPÔP€HØ�3‚€ÝÐOÑPÔPÐPØ€Or'   )r  r  rù  rú  rû  rü  rý  r   rÝ  r  r  r  c               ó  — t          |||¦  «        }|�t          |¦  «        ‚t          j                             t          | pd¦  «                             ¦   «         ¦  «        } t          j                             t          |pd¦  «                             ¦   «         ¦  «        }t          j                             | ¦  «        st          d| › �¦  «        ‚t          | ¦  «        }t          |d         ¦  «        }t          |d         ¦  «        }t          ||||||||||	|
¬¦  «        \  }}}}d|› d|› d|› d|› �g}|€|�z|�t          |¦  «        nd}|�t          |¦  «        nd}|�t          |¦  «        d	k    s|�"t          |¦  «        d	k    rt          d
¦  «        ‚|                     d|› d|› �¦  «         t          j        t          j                             |¦  «        pdd¬¦  «         d| dd                     |¦  «        ddddg}|t!          ||¦  «        z  }|t#          |¦  «        z  }t          |pd¦  «                             ¦   «                              ¦   «         dk    r|ddgz  }||gz  }t'          |¦  «         |S )Nr   rC  r  r  rø  zcrop=rP  rç   r   r  zscale=rD   Tr  rz   r{   r™  r+  rË  r,  r  r  r  )r   rF   r   rn   r†   r   r;   rˆ   rW  r\  r/  r  rë   r  r  r[  r   rc   r[   r=   )rÈ  r  r  r  rù  rú  rû  rü  rý  r   rÝ  r  r  r  r.   rã   r  r  rá  rã  r  r  ra  Úscale_wÚscale_hrÅ  s                             r%   Úresize_crop_videorÒ    s«  € Ý*¨;¸ÈÑUÔU€EØÐÝ˜ÑÔÐÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBÝ  Ñ-Ô-€FÝ�v˜g”Ñ'Ô'€LÝ˜˜xÔ(Ñ)Ô)€MÝ/LØØØØØØØØØØ3Øð0ñ 0ô 0Ñ,€Dˆ#ˆ}˜nð E�}ÐDÐD ~ÐDÐD¸ÐDÐD¸sÐDÐDÐE€GØÐ˜FÐ.Ø %Ð 1•#�e‘*”*�*°rˆØ!'Ð!3•#�f‘+”+�+¸ˆØÐ¥ U¡¤¨q¢ °FÐ4FÍ3ÈvÉ;Ì;ÐZ[ÒK[ÐK[ÝÐJÑKÔKÐKØ�ŠÐ3 Ð3Ð3¨'Ð3Ð3Ñ4Ô4Ð4Ý„K•”—’ Ñ,Ô,Ð3°¸dÐCÑCÔCÐCØ�˜e S§X¢X¨gÑ%6Ô%6¸ÀÈÐQWÐ
X€CØÕ  ¨oÑ>Ô>Ñ>€CØÕ% kÑ2Ô2Ñ2€CÝ
ˆ?Ð#˜eÑ$Ô$×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4¸Ò=Ð=Ø�˜\Ð*Ñ*ˆØˆKˆ=Ñ€CÝ�ÑÔÐØÐr'   )	r  r  rù  rú  rû  rü  rý  r   rÝ  c       	        óh  — t           j                             t          | pd¦  «                             ¦   «         ¦  «        } t           j                             t          |pd¦  «                             ¦   «         ¦  «        }t           j                             | ¦  «        st          d| › �¦  «        ‚t          j        | ¦  «        5 }|j	        \  }}t          ||||||||||	|
¬¦  «        \  }}}}|                     ||||z   ||z   f¦  «        }|€|�â|�t          |¦  «        dk    s|�"t          |¦  «        dk    rt          d¦  «        ‚|�t          |¦  «        n/t          dt          |t          |¦  «        |z  z  ¦  «        ¦  «        }|�t          |¦  «        n/t          dt          |t          |¦  «        |z  z  ¦  «        ¦  «        }|                     ||ft          j        j        ¦  «        }t          j        t           j                             |¦  «        pdd¬	¦  «         t           j                             |¦  «        d                              ¦   «         }|d
v rddini }|dv r|j        dvr|                     d¦  «        } |j        |fi |¤Ž d d d ¦  «         n# 1 swxY w Y   |S )Nr   zImage not found: rø  r   r  rq   rD   Tr  >   ú.webpú.jpgú.jpegÚqualityé_   >   rÕ  rÖ  >   ÚLry  ry  )r   rn   r†   r   r;   rˆ   rW  r   r§  r  r  Úcropr/  rF   r´   rº   Úresizerª  r«  r  r  rr   r[   r8  r¨  r­  )rÈ  r  r  r  rù  rú  rû  rü  rý  r   rÝ  r‰  r  r  rá  rã  r  r  Úoutput_imagerþ  rÿ  Ú
output_extÚsave_kwargss                          r%   Úresize_crop_imagerß  ©  sð  € Ý”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝ”'×"Ò"¥3 {Ð'8°bÑ#9Ô#9×#?Ò#?Ñ#AÔ#AÑBÔB€KÝŒ7�>Š>˜+Ñ&Ô&ð CÝÐ A°KÐ AÐ AÑBÔBÐBÝ	Œ�KÑ	 Ô	 ð 6 EØ&+¤jÑ#ˆ�mÝ3PØØØØØ!Ø#ØØØ Ø"7Ø#ð4
ñ 4
ô 4
Ñ0ˆˆc�= .ð —z’z 4¨¨d°]Ñ.BÀCÈ.ÑDXÐ"YÑZÔZˆØÐ Ð 2ØÐ ¥S¨¡Z¤Z°1¢_ _¸Ð8JÍsÐSYÉ{Ì{Ð^_ÒO_ÐO_Ý Ð!NÑOÔOÐOØ).Ð):�3˜u™:œ:˜:ÅÀAÅuÈ]Õ^aÐbhÑ^iÔ^iÐlzÑ^zÑM{ÑG|ÔG|Ñ@}Ô@}ˆLØ+1Ð+=�C ™KœK˜KÅ3ÀqÍ%ÐP^ÕbeÐfkÑblÔblÐo|Ñb|ÑP}ÑJ~ÔJ~ÑCÔCˆMØ'×.Ò.°¸mÐ/LÍeÔN^ÔNfÑgÔgˆLÝ
Œ•B”G—O’O KÑ0Ô0Ð7°CÀ$ÐGÑGÔGÐGÝ”W×%Ò% kÑ2Ô2°1Ô5×;Ò;Ñ=Ô=ˆ
Ø)3Ð7QÐ)QÐ)Q�y "�o�oÐWYˆØÐ*Ð*Ð*¨|Ô/@ÈÐ/TÐ/TØ'×/Ò/°Ñ6Ô6ˆLØˆÔ˜+Ð5Ð5¨Ð5Ð5Ð5ð76ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð8 Ðs   ÃGJ'Ê'J+Ê.J+c                óÐ   — t          j        | ¦  «        }|                     di ¦  «        pi }|                     dd ¦  «        }	 |€d nt          |¦  «        S # t          $ r Y d S w xY w)NÚformatrK   )r   rê   r    rE   Ú	Exception)rn   rê   Úformat_inforK   s       r%   ré   ré   Í  sx   € ÝŒL˜ÑÔ€EØ—)’)˜H bÑ)Ô)Ð/¨R€KØ�Š˜z¨4Ñ0Ô0€HðØÐ'ˆtˆt­U°8©_¬_Ð<øÝð ð ð Øˆtˆtðøøøs   ÁA Á
A%Á$A%c                óè  — 	 t          | ¦  «        }n# t          $ r Y d S w xY wdD ]Ì}t          |                     |d¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    s|dv rŒQd|v rV|                     dd¦  «        \  }}	 t          |¦  «        }t          |¦  «        }|dk    r||z  c S Œ›# t          $ r Y Œ§w xY w	 t          |¦  «        c S # t          $ r Y ŒÉw xY wd S )N)rH  rI  r   r   >   ú0/0úN/Aú/rq   )r\  râ  r   r    r;   r‡   ÚsplitrE   )rn   rã   rÂ   rÃ   ÚnumÚdens         r%   r®  r®  ×  sD  € ðÝ$ TÑ*Ô*ˆˆøÝð ð ð Øˆtˆtðøøøà1ð ð ˆÝ�F—J’J˜s BÑ'Ô'Ð-¨2Ñ.Ô.×4Ò4Ñ6Ô6ˆÝˆu‰:Œ:˜Š?ˆ?˜e ~Ð5Ð5ØØ�%ˆ<ˆ<Ø—{’{ 3¨Ñ*Ô*‰HˆC�ðÝ˜C‘j”j�Ý˜C‘j”j�Ø˜!’8�8Ø ™9Ð$Ð$Ð$ð øåð ð ð Ø�ðøøøðÝ˜U‘|”|Ð#Ð#Ð#øÝð ð ð Ø�ðøøøàˆ4s0   ‚ ’
 Ÿ Â(C Ã 
CÃCÃC"Ã"
C/Ã.C/c          
     óÚ  — |€|€t          d¦  «        ‚t          | ¦  «        \  }}}}t          | ¦  «        }|�|dk    rt          |¦  «        nt          |¦  «        }t	          dt          |¦  «        dz
  ¦  «        }	|€M|dk    rd}nDt          t          j        t	          dt          |pd¦  «        ¦  «        |z  dz   ¦  «        ¦  «        }t          |¦  «        }|dk     rd}||	k    r|	}|S )NrØ  r   rq   rš   g•Ö&è.>)rF   r   r®  rE   r´   r/  rÅ   Úfloor)
rn   rÕ  rÖ  r  r¸  r¹  rº  Úprecise_fpsÚeffective_fpsÚ	max_frames
             r%   rÛ  rÛ  ñ  s  € ØÐ Ð 0ÝÐ@ÑAÔAÐAÝ(6°tÑ(<Ô(<Ñ%€Cˆ�˜+Ý'¨Ñ-Ô-€KØ*5Ð*AÀkÐTUÂoÀo•E˜+Ñ&Ô&Ð&Õ[`ÐadÑ[eÔ[e€MÝ�A•s˜;Ñ'Ô'¨!Ñ+Ñ,Ô,€IØÐØ˜AÒÐØˆHˆHå�4œ:¥c¨#­u°\Ð5HÀSÑ/IÔ/IÑ&JÔ&JÈ]Ñ&ZÐ]aÑ&aÑbÔbÑcÔcˆHÝ�8‰}Œ}€HØ�!‚|€|ØˆØ�)ÒÐØˆØ€Or'   c                ó    — t          | ¦  «        S rE  rM  rt   s    r%   Úhas_audio_streamrñ    s   € Ý˜TÑ"Ô"Ð"r'   c                óH   — 	 t          | ¦  «         dS # t          $ r Y dS w xY w)NTF)r\  râ  rt   s    r%   Úhas_video_streamró  	  s<   € ðÝ˜DÑ!Ô!Ð!ØˆtøÝð ð ð Øˆuˆuðøøøs   ‚ “
! !c                óº   — t          j        | ¦  «        }|                     dg ¦  «        D ]}|                     d¦  «        dk    r|c S Œ t          d| › �¦  «        ‚)Nrå   rà   r  zNo video stream found in )r   rê   r    r#   )rv   rê   rã   s      r%   r\  r\    sj   € ÝŒL˜Ñ$Ô$€EØ—)’)˜I rÑ*Ô*ð ð ˆØ�:Š:�lÑ#Ô# wÒ.Ð.ØˆMˆMˆMð /å
Ð?°:Ð?Ð?Ñ
@Ô
@Ð@r'   c                ó„   — t          j        | ¦  «        }t          d„ |                     dg ¦  «        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|                      d ¦  «        dk    V — ŒdS r\  r  râ   s     r%   rä   z$_has_audio_stream.<locals>.<genexpr>  s3   è è € ÐZÐZ°vˆv�zŠz˜,Ñ'Ô'¨7Ò2ÐZÐZÐZÐZÐZÐZr'   rå   )r   rê   rZ  r    )rv   rê   s     r%   rN  rN    s=   € ÝŒL˜Ñ$Ô$€EÝÐZÐZÀÇÂÈ9ÐVXÑAYÔAYÐZÑZÔZÑZÔZÐZr'   )r   r   )r(   r)   r   r*   )r>   r?   r   r@   )NNN)rI   r?   rJ   r?   rK   r?   r   rL   )rR   r@   r   r   )rR   r@   r   r)   )rn   r   r   ro   )rv   r   r   r   )rš   N)
rn   r   rœ   rE   r�   rž   r›   rE   r   rŸ   )rn   r   rÓ   rE   rÔ   rE   r   rÕ   )rì   r)   rò   r   r   r*   )
r  r   r  rE   r  r@   r  r@   r   r   rÚ   )rv   r   r  r   r  rE   rœ   rE   r  r@   r  r@   r  r@   r   r   )r;  r)   r  r   r9  r<  r:  rE   r  r@   r  r@   r  r@   r   r   )rg  r/  rh  r@   r   ri  )r  r/  r  r/  r3   r   r   rw  )NN)r�  r)   r  r   rh  r@   r‘  r’  r  r@   r  r@   r  r@   r   r   )r   NN)rÈ  r   r  r   rI   rÉ  rJ   r?   rK   r?   r  r@   r  r@   r  r@   r   r   )NNNN)rÈ  r   r  r   rI   r?   rJ   r?   rK   r?   rÍ  rÎ  r  r@   r   r   )
rÈ  r   r  r   rÕ  rÎ  rÖ  r?   r   r   )rÝ  r@   r   rÞ  )r  r/  r  r/  rù  rE   rú  rE   rû  rE   rü  rE   rý  r   rþ  rÎ  rÿ  rÎ  r   ro   rÝ  r   r   r  )rÈ  r   r  r   r   r   )
rv   r   r  r   r  r   r  r@   r   r   )rµ   r/  rã   r  r$  r   r   r)   )*r7  r)   r  r   r8  r   rv   r@   r(  ro   r)  r9  r  r@   r*  r@   r+  r:  r,  ro   r-  r9  r.  r9  r/  r9  r0  rž   r1  rž   r2  r9  r3  r9  r4  r;  r5  r<  r6  r’  r   r   )r˜  rÇ  r   r   )r(   r)   r   rE   )rÈ  r   r  r   r  rÎ  r  rÎ  rù  rE   rú  rE   rû  rE   rü  rE   rý  r   r   ro   rÝ  r   r  r@   r  r@   r  r@   r   r   )rÈ  r   r  r   r  rÎ  r  rÎ  rù  rE   rú  rE   rû  rE   rü  rE   rý  r   r   ro   rÝ  r   r   r   )rn   r   r   rž   )rn   r   rÕ  rÎ  rÖ  r?   r   r/  )rv   r   r   r  )rv   r   r   ro   )JÚ
__future__r   r’   rú   rŠ   rÅ   r   rÇ   r!   r6   Úcollectionsr   Útempfiler   r   ÚPILr   r   r   Úshared.ffmpeg_setupr	   Úshared.utils.audio_videor
   r   Úshared.utils.video_codecsr   r   r   Úshared.utils.utilsr   r   rs   r   Ú__annotations__r”   r&   r=   rH   rQ   r\   rc   rm   ru   r™   rÒ   rñ   r  r  r1  rF  rf  rv  r�  rÇ  rÌ  rÓ  rÜ  rö  r  r  r  r"  rÆ  r—  r§  rÒ  rß  ré   r®  rÛ  rñ  ró  r\  rN  r©   r'   r%   ú<module>r      së  ðà "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à /Ð /Ð /Ð /Ð /Ð /Ø ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ø zÐ zÐ zÐ zÐ zÐ zÐ zÐ zÐ zÐ zØ >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø<Ð<Ð<Ð Ø/:¨{©}¬}Ð Ð <Ð <Ð <Ñ <ØÐ ðð ð ð ð`ð `ð `ð `ð4ð 4ð 4ð 4ðpð pð pð pð pð4ð 4ð 4ð 4ðð ð ð ð3ð 3ð 3ð 3ðTð Tð Tð Tð)ð )ð )ð )ðXBÐhkð Bð Bð Bð Bð Bð Bð" 6;ÐQTð ð ð ð ð ð ð(9ð 9ð 9ð 9ð" VZÐy}ð 
ð 
ð 
ð 
ð 
ð 
ðð  ~Bð  bfð  BFð ð ð ð ð ð ð, !¨vÀ[Ð`kÐlÐlÐ ð `dÐ{~ð  [_ð  Cð  _cð 2ð 2ð 2ð 2ð 2ð 2ðj!ð !ð !ð !ð$ð ð ð ð.hð  ]að  AEð  aeð hð hð hð hð hð hðVð  {ð  _cð  Cð ð ð ð ð ð ð.ð  hlð ð ð ð ð ð ð6 W[ð  @Dð ð ð ð ð ð ð Hð Hð Hð HðL ØØØØØ#Ø $Ø"&Øð54ð 54ð 54ð 54ð 54ð 54ðpð ð ð ð dhð ð ð ð ð ð ð 	ð 	ð 	ð 	ð bfð  DIð  jnð  JNð  uyð  `dð  FJØ04ÐVZð  ~Bð  hlð  MQØ37Ð_cð  AEð  ^bð  HLðpð pð pð pð pð pðfTð Tð Tð Tðð ð ð ð RVÐlpð  FGð  [\ð  rsð  JKð  ^fð  FJð  _gð  CGð  gkð  GKð 'ð 'ð 'ð 'ð 'ð 'ðT RVÐlpð  FGð  [\ð  rsð  JKð  ^fð  FJð  _gð !ð !ð !ð !ð !ð !ðHð ð ð ðð ð ð ð4 AEÐimð ð ð ð ð ð ð(#ð #ð #ð #ðð ð ð ðAð Að Að Að[ð [ð [ð [ð [ð [r'   