§
     ’Þ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
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mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d d	lmZm Z  d d
l!m"Z"m#Z# d dl$m%Z%m&Z& dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0h d£Z1 e	j2        de	j3        ¦  «        Z4 e	j2        d¦  «        Z5 e	j2        d¦  «        Z6 e	j2        d¦  «        Z7 e	j2        de	j3        ¦  «        Z8 e	j2        d¦  «        Z9 e	j2        d¦  «        Z: ej;        ¦   «         Z< ej=        ¦   «         e*z   >                    ¦   «         a? edd¬¦  «        Z@i ZAdeBd<   i ZCd eBd!<   i ZDd"eBd#<    G d$„ d%eE¦  «        ZF G d&„ d'eF¦  «        ZGd½d,„ZHd¾d-„ZId¿d0„ZJdÀd3„ZKdÀd4„ZLdÁdÂd;„ZMdÃdÄd?„ZNdÅd@„ZOdÆdÇdC„ZPdÆdÈdE„ZQdÉdF„ZRdÊdG„ZSdÊdH„ZTdËdL„ZUdÌdN„ZVdÍdP„ZW G dQ„ dR¦  «        ZXdSdTœdU„ZYdÎdV„ZZdÏdX„Z[dÐdY„Z\dÎdZ„Z]h d[£Z^d\Z_ e	j2        d]e	j3        ¦  «        Z`dÑd_„ZadÒda„ZbddbœdÓdf„ZcdÔdh„ZddÕdj„ZedÖdl„Zfd×do„ZgdØds„ZhdØdt„ZidÙdw„ZjdÚdx„ZkdÛdz„ZldÚd{„ZmdÜd|„ZndÜd}„Zo ejp        eo¦  «         dÜd~„ZqdÆddd€œdÝd…„ZrdÞd†„Zsdßd‡„Ztdàd‰„ZudádŠ„Zvdâd‹„ZwdãdŒ„Zxdäd�„Zydd�œdåd“„Zzdæd•„Z{dçd˜„Z|dèdš„Z}dád›„Z~dÆdédœ„ZdêdŸ„Z€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ñd­„Z‰dÆdòd®„ZŠdód¯„Z‹d°d±œdôd³„ZŒdÜd´„Z�edõdµ„¦   «         ZŽdÆdÊd¶„Z�d¾d·„Z�dÆdÊd¸„Z‘dödº„Z’dâd»„Z“g d¼¢Z”dS )÷é    )ÚannotationsN)ÚFutureÚThreadPoolExecutor)Úcontextmanager)ÚdatetimeÚtimezone©ÚPath)ÚSimpleNamespace)ÚAny)Údisambiguate_gallery_media_idsÚgallery_media_ids)ÚMESH_EXTENSIONSÚWORLD_EXTENSIONS)Úavailable_pathÚ	safe_nameé   Údeepy_sessionsz.mono-sessionzcards.jsonlÚlinkÚcopyÚnew_sessionÚreset_session>   ú.bmpú.gifú.jpgú.pngú.tifú.jfifú.jpegú.tiffú.webpú.pjpegú.aacú.aviú.m4aú.m4vú.mkvú.movú.mp3ú.mp4ú.oggú.wavú.wmaú.flacú.opusú.webmz(?:https?://|www\.)\S+z1(?<!\w)(?:[A-Za-z]:[\\/]|\\\\)[^\s\]\[(){}<>\"']+z4(?<!\w)/(?:[^\s\]\[(){}<>\"']+/)*[^\s\]\[(){}<>\"']+z!?\[([^\]]*)\]\([^)]*\)z;(?:@file\([^)]*\)|<attachment\b[^>]*>|\[attachment[^\]]*\])z^\d{8}-\d{6}-[a-f0-9]{8}$z^mono-[a-f0-9]{32}$zdeepy-session-save)Úmax_workersÚthread_name_prefixzdict[str, tuple[str, Path]]Ú_OWNED_LOCKSzdict[str, dict[str, Any]]Ú_UI_JOURNAL_STATESzdict[str, Path]Ú	_EXTERNALc                  ó   — e Zd ZdS )ÚSessionStoreErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úBC:\Users\johnn\OneDrive\Documents\AI\shared\deepy\session_store.pyr7   r7   9   ó   € € € € € Ø€Dr=   r7   c                  ó   — e Zd ZdS )ÚSessionLockedErrorNr8   r<   r=   r>   rA   rA   =   r?   r=   rA   Úpathústr | os.PathLike[str] | NoneÚreturnr
   c                óf  — t          | pd¦  «                             ¦   «         r!t          | ¦  «                             ¦   «         nt          j        ¦   «         t
          z  }t          5  |                     ¦   «         at           
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   t          S ©NÚ )ÚstrÚstripr
   Ú
expanduserÚcwdÚDEFAULT_SESSIONS_FOLDERÚ
_ROOT_LOCKÚresolveÚ_SESSIONS_ROOTr4   Úclear)rB   Ú	candidates     r>   Úconfigure_sessions_rootrR   A   sË   € å+.¨t¨z°r©?¬?×+@Ò+@Ñ+BÔ+BÐl•�T‘
”
×%Ò%Ñ'Ô'Ð'ÍÌÉ
Ì
ÕUlÑHl€IÝ	ð #ð #Ø"×*Ò*Ñ,Ô,ˆÝ× Ò Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ Ðs   Á'.B!Â!B%Â(B%c                 óR   — t           5  t          cd d d ¦  «         S # 1 swxY w Y   d S ©N)rM   rO   r<   r=   r>   Úsessions_rootrU   J   so   € Ý	ð ð Ýðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   ˆœ £ Úchat_session_idrH   c                óÜ  — dt          | pd¦  «                             ¦   «                              ¦   «         › �}t                               |¦  «        st          d¦  «        ‚t          5  t          }|                     dd¬¦  «         |t          z  }	 | 
                    d¬¦  «                             ¦   «         }n# t          $ r d}Y nw xY w||k    rCt                               |¦  «        r)	 t          j        ||z  ¦  «         n# t          $ r Y nw xY w||z  dz  }|                     dd¬¦  «         |                     d	|j        › d	t!          j        ¦   «         j        › d
�¦  «        }	 |                     |d¬¦  «         t)          j        ||¦  «         n8# t          $ r+ 	 |                     d¬¦  «         n# t          $ r Y nw xY wY nw xY w|cd d d ¦  «         S # 1 swxY w Y   d S )Nzmono-rG   z+Invalid temporary Deepy session identifier.T©ÚparentsÚexist_okúutf-8©ÚencodingÚ	workspaceú.ú.tmp©Ú
missing_ok)rH   rI   ÚlowerÚ_MONO_SESSION_DIR_REÚ	fullmatchr7   rM   rO   ÚmkdirÚMONO_SESSION_POINTER_FILENAMEÚ	read_textÚOSErrorÚshutilÚrmtreeÚ	with_nameÚnameÚuuidÚuuid4ÚhexÚ
write_textÚosÚreplaceÚunlink)rV   Údirectory_nameÚrootÚpointerÚprevious_namer^   Ú	temporarys          r>   Úensure_mono_session_workspacerz   O   s~  € ØI�S Ð!6°BÑ7Ô7×=Ò=Ñ?Ô?×EÒEÑGÔGÐIÐI€NÝ×)Ò)¨.Ñ9Ô9ð OÝÐ MÑNÔNÐNÝ	ð ð ÝˆØ�
Š
˜4¨$ˆ
Ñ/Ô/Ð/ØÕ6Ñ6ˆð	Ø#×-Ò-°wÐ-Ñ?Ô?×EÒEÑGÔGˆMˆMøÝð 	ð 	ð 	ØˆMˆMˆMð	øøøà˜NÒ*Ð*Õ/C×/MÒ/MÈmÑ/\Ô/\Ð*ðÝ”˜d ]Ñ2Ñ3Ô3Ð3Ð3øÝð ð ð Ø�ðøøøà˜>Ñ)¨KÑ7ˆ	Ø�Š ¨tˆÑ4Ô4Ð4Ø×%Ò%Ð&O¨'¬,Ð&OÐ&O½¼¹¼Ô9IÐ&OÐ&OÐ&OÑPÔPˆ	ð	Ø× Ò  ¸'Ð ÑBÔBÐBÝŒJ�y 'Ñ*Ô*Ð*Ð*øÝð 	ð 	ð 	ðØ× Ò ¨DÐ Ñ1Ô1Ð1Ð1øÝð ð ð Ø�ðøøøøøð	øøøð
 ð1ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s£   Á))G!Â(B<Â;G!Â<CÃG!Ã
CÃ#G!Ã/DÄG!Ä
DÄG!ÄDÄAG!Å.,FÆG!Æ
GÆ&F=Æ<GÆ=
G
ÇGÇ	G
Ç
GÇG!ÇGÇG!Ç!G%Ç(G%Úvaluer   c                óš   — t          | pd¦  «                             ¦   «                              ¦   «         t          k    rt          nt          S rF   )rH   rI   rc   ÚGALLERY_MEDIA_COPYÚGALLERY_MEDIA_LINK©r{   s    r>   Únormalize_gallery_media_moder€   n   s>   € Ý!$ U [¨bÑ!1Ô!1×!7Ò!7Ñ!9Ô!9×!?Ò!?Ñ!AÔ!AÕEWÒ!WÐ!WÕÐÕ]oÐor=   c                óš   — t          | pd¦  «                             ¦   «                              ¦   «         t          k    rt          nt          S rF   )rH   rI   rc   ÚRESET_MODE_RESETÚRESET_MODE_NEWr   s    r>   Únormalize_reset_moder„   r   s>   € Ý" 5 ;¨BÑ/Ô/×5Ò5Ñ7Ô7×=Ò=Ñ?Ô?ÕCSÒSÐSÕÐÕYgÐgr=   é
   é<   Úfirst_requestÚ	max_wordsÚintÚ	max_charsc           
     óx  — t                                dt          | pd¦  «        ¦  «        }t                               d„ |¦  «        }t                               d|¦  «        }t
                               d|¦  «        }t                               d|¦  «        }t          j        dd|¦  «                             d¦  «        }|sdS t          j	        d|d¬	¦  «        d
                              ¦   «         }| 	                    ¦   «         }d 
                    |d t          dt          |¦  «        ¦  «        …         ¦  «                             ¦   «         }t          |¦  «        |k    rS|d |…                              dd¦  «        d
                              d¦  «        p|d |…                              ¦   «         }|pdS )Nú rG   c                ó4   — d|                       d¦  «        › d�S )NrŒ   r   )Úgroup)Úmatchs    r>   ú<lambda>z!automatic_title.<locals>.<lambda>x   s   € Ð/D°5·;²;¸q±>´>Ð/DÐ/DÐ/D€ r=   ú\s+u    	
-â€“â€”:;,.!?â€¦úDeepy sessionu   (?:[.!?â€¦]+|\s+[â€“â€”]\s+|\n)r   )Úmaxsplitr   u    -â€“â€”:;,.!?)Ú_ATTACHMENT_REÚsubrH   Ú_MARKDOWN_LINK_REÚ_URL_REÚ_WINDOWS_PATH_REÚ_POSIX_PATH_REÚrerI   ÚsplitÚjoinÚmaxr‰   ÚlenÚrsplitÚrstrip)r‡   rˆ   rŠ   ÚtextÚclauseÚwordsÚtitles          r>   Úautomatic_titler¥   v   s‚  € Ý×Ò˜c¥3 }Ð':¸Ñ#;Ô#;Ñ<Ô<€DÝ× Ò Ð!DÐ!DÀdÑKÔK€DÝ�;Š;�s˜DÑ!Ô!€DÝ×Ò  TÑ*Ô*€DÝ×Ò˜c 4Ñ(Ô(€DÝŒ6�&˜#˜tÑ$Ô$×*Ò*Ð+DÑEÔE€DØð ØˆÝŒXÐ8¸$ÈÐKÑKÔKÈAÔN×TÒTÑVÔV€FØ�LŠL‰NŒN€EØ�HŠH�UÐ2�C ¥3 y¡>¤>Ñ2Ô2Ð2Ô3Ñ4Ô4×:Ò:Ñ<Ô<€EÝ
ˆ5�z„z�IÒÐØ�j�y�jÔ!×(Ò(¨¨aÑ0Ô0°Ô3×:Ò:Ð;KÑLÔLÐjÐPUÐV`ÐW`ÐV`ÔPa×PhÒPhÑPjÔPjˆØÐ#�OÐ#r=   rG   r¤   Ú
storage_idc                ó°  ‡— t          j        ddt          | pd¦  «        ¦  «                             ¦   «         d d…         } | st	          d¦  «        ‚ˆfd„t          ¦   «         D ¦   «         }| }d}|                     ¦   «         |v rPd|› d	�}| d dt          |¦  «        z
  …                              ¦   «         |z   }|d
z  }|                     ¦   «         |v °P|S )Nr‘   rŒ   rG   éx   zSession title cannot be empty.c                óv   •— h | ]5}|d          ‰k    ¯t          |d         ¦  «                             ¦   «         ’Œ6S ©Úidr¤   )rH   Úcasefold)Ú.0Úitemr¦   s     €r>   ú	<setcomp>z _unique_title.<locals>.<setcomp>‹   sC   ø€ ÐiÐiÐi°TÐPTÐUYÔPZÐ^hÒPhÐPh•3�t˜G”}Ñ%Ô%×.Ò.Ñ0Ô0ÐPhÐPhÐPhr=   é   z (ú)r   )	rš   r•   rH   rI   r7   Úlist_sessionsr¬   rž   r    )r¤   r¦   Úused_titlesrQ   ÚnumberÚsuffixs    `    r>   Ú_unique_titler¶   ‡   sð   ø€ ÝŒF�6˜3¥ E K¨RÑ 0Ô 0Ñ1Ô1×7Ò7Ñ9Ô9¸$¸3¸$Ô?€EØð BÝÐ @ÑAÔAÐAØiÐiÐiÐi½]¹_¼_ÐiÑiÔi€KØ€IØ€FØ
×
Ò
Ñ
Ô
 +Ð
-Ð
-Ø�f���ˆØÐ,˜3¥ V¡¤Ñ,Ð,Ô-×4Ò4Ñ6Ô6¸Ñ?ˆ	Ø�!‰ˆð ×
Ò
Ñ
Ô
 +Ð
-Ð
-ð Ðr=   c                 óŽ   — t          j        t          j        ¦  «                             d¬¦  «                             dd¦  «        S )NÚmilliseconds)Útimespecz+00:00ÚZ)r   Únowr   ÚutcÚ	isoformatrs   r<   r=   r>   Ú_utc_nowr¾   •   s7   € ÝŒ<�œÑ%Ô%×/Ò/¸Ð/ÑHÔH×PÒPÐQYÐ[^Ñ_Ô_Ð_r=   rv   úPath | Nonec                ó  — | €t          ¦   «         n| } t          | ¦  «        }	 t          j        ¦   «                              d¦  «        › dt          j        ¦   «         j        d d…         › �}||vr| |z                       ¦   «         s|S Œg)NTú%Y%m%d-%H%M%Sú-é   )	rU   Ú_session_manifestsr   r»   Ústrftimern   ro   rp   Úexists)rv   ÚusedrQ   s      r>   Ú_new_storage_idrÈ   ™   s�   € Ø"˜l�=‰?Œ?ˆ?°€DÝ˜dÑ#Ô#€DðÝ”|‘~”~×.Ò.¨Ñ?Ô?ÐXÐXÅ$Ä*Á,Ä,ÔBRÐSUÐTUÐSUÔBVÐXÐXˆ	Ø˜DÐ Ð ¨$°Ñ*:×)BÒ)BÑ)DÔ)DÐ ØÐðr=   ú&dict[str, tuple[Path, dict[str, Any]]]c                óX  — | €t          ¦   «         n| } i }|                      ¦   «         s|S |                      ¦   «         D ]ê}|j                             d¦  «        s7|j        dk    s,|                     ¦   «         r|                     ¦   «         |k    rŒT|dz  }|                     ¦   «         sŒn	 t          |¦  «        }n# t          $ r Y Œ‹w xY wt          | 
                    dd¦  «        ¦  «        }t                               |¦  «        sŒÍ||v rt          d|› �¦  «        ‚||f||<   Œë|S )Nr_   Ú_exportsúsession.jsonr«   rG   z$Duplicate Deepy session identifier: )rU   Úis_dirÚiterdirrm   Ú
startswithrN   Úis_fileÚ
_read_jsonr7   rH   ÚgetÚ_SESSION_ID_REre   )rv   ÚrecordsÚ	directoryÚmanifest_pathÚmanifestÚidentitys         r>   rÄ   rÄ   ¢   sc  € Ø"˜l�=‰?Œ?ˆ?°€DØ€GØ�;Š;‰=Œ=ð ØˆØ—\’\‘^”^ð 2ð 2ˆ	ØŒ>×$Ò$ SÑ)Ô)ð 	¨Y¬^¸zÒ-IÐ-IÐQZ×QaÒQaÑQcÔQcÐ-IÐgp×gxÒgxÑgzÔgzð  Hò  hHð  hHØØ! NÑ2ˆØ×$Ò$Ñ&Ô&ð 	Øð	Ý! -Ñ0Ô0ˆHˆHøÝ ð 	ð 	ð 	ØˆHð	øøøå�x—|’| D¨"Ñ-Ô-Ñ.Ô.ˆÝ×'Ò'¨Ñ1Ô1ð 	ØØ�wÐÐÝ#Ð$UÈ8Ð$UÐ$UÑVÔVÐVØ&¨Ð1ˆ�ÑÐØ€Ns   Â.B>Â>
CÃ
Cc                óB  ‡ — t          |¦  «        }t                               |¦  «        rd|z   }dg}t          ‰ ¦  «                             ¦   «         D ]:\  }}|                     ˆ fd„|                     dg ¦  «        D ¦   «         ¦  «         Œ;t          ‰ ||¬¦  «        S )NÚ_rË   c              3  óp   •K  — | ]0}t          |¦  «        j        ‰k    ¯t          |¦  «        j        V — Œ1d S rT   )r
   Úparentrm   )r­   rB   rv   s     €r>   ú	<genexpr>z)_new_session_directory.<locals>.<genexpr>À   sC   øè è € ÐzÐz¨DÕ`dÐeiÑ`jÔ`jÔ`qÐuyÒ`yÐ`y�˜T™
œ
œÐ`yÐ`yÐ`yÐ`yÐzÐzr=   Úprevious_directories)Úreserved)r   rd   re   rÄ   ÚvaluesÚextendrÒ   r   )rv   r¤   rm   rß   Ú
_directoryr×   s   `     r>   Ú_new_session_directoryrã   º   s¯   ø€ Ý�UÑÔ€DÝ×%Ò% dÑ+Ô+ð Ø�T‰zˆØˆ|€HÝ 2°4Ñ 8Ô 8× ?Ò ?Ñ AÔ Að {ð {Ñˆ
�HØ�ŠÐzÐzÐzÐz°H·L²LÐAWÐY[Ñ4\Ô4\ÐzÑzÔzÑzÔzÐzÐzÝ˜$ ¨xÐ8Ñ8Ô8Ð8r=   c                óþ   — t          | pd¦  «                             ¦   «         } t                               | ¦  «        st	          d¦  «        ‚t          ¦   «         }| |vrt	          d| › �¦  «        ‚||          d         S )NrG   ú!Invalid Deepy session identifier.zDeepy session does not exist: r   )rH   rI   rÓ   re   r7   rÄ   )r¦   rÔ   s     r>   Ú_validated_session_dirræ   Ä   sƒ   € Ý�ZÐ% 2Ñ&Ô&×,Ò,Ñ.Ô.€JÝ×#Ò# JÑ/Ô/ð EÝÐ CÑDÔDÐDÝ Ñ"Ô"€GØ˜Ð Ð ÝÐ MÀÐ MÐ MÑNÔNÐNØ�:Ô˜qÔ!Ð!r=   c                óš   — t           5  t                               | ¦  «        }d d d ¦  «         n# 1 swxY w Y   |�|nt          | ¦  «        S rT   )rM   r5   rÒ   ræ   )r¦   Úexternals     r>   Ú_session_dirré   Î   s†   € Ý	ð -ð -Ý—=’= Ñ,Ô,ˆð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -àÐ+ˆ8ˆ8Õ1GÈ
Ñ1SÔ1SÐSs   ˆ/¯3¶3rÕ   ústr | os.PathLike[str]ú
str | Nonec                ó”  — t          | ¦  «                             ¦   «                              ¦   «         } t          ¦   «         }|                      |¦  «        r|                      |¦  «        j        nd}|�,|r|d                              d¦  «        st          d¦  «        ‚| dz   	                    ¦   «         sI|  
                    ¦   «         r3t          |                      ¦   «         ¦  «        rt          | › d�¦  «        ‚dS t          t          | dz  ¦  «                             dd¦  «        ¦  «        }t                                |¦  «        st          d	¦  «        ‚t$          5  t&                               || ¦  «        | k    s|t)          ¦   «         v rt          d
|› d�¦  «        ‚| t&          |<   ddd¦  «         n# 1 swxY w Y   |S )z`Register a session folder kept outside the catalog. Returns its id, or None for an empty folder.Nr   r_   z:Choose a session folder outside the Deepy sessions folder.rÌ   z) is not empty and holds no Deepy session.r«   rG   rå   z2Another Deepy session already uses the identifier )r
   rJ   rN   rU   Úis_relative_toÚrelative_toÚpartsrÏ   r7   rÐ   rÆ   ÚanyrÎ   rH   rÑ   rÒ   rÓ   re   rM   r5   rÄ   )rÕ   rv   rï   r¦   s       r>   Úopen_external_sessionrñ   Ô   sö  € å�Y‘”×*Ò*Ñ,Ô,×4Ò4Ñ6Ô6€IÝ‰?Œ?€DØ1:×1IÒ1IÈ$Ñ1OÔ1OÐYˆI×!Ò! $Ñ'Ô'Ô-Ð-ÐUY€EØÐ %Ð¨u°Q¬x×/BÒ/BÀ3Ñ/GÔ/GÐÝÐ \Ñ]Ô]Ð]Ø˜Ñ&×/Ò/Ñ1Ô1ð Ø×ÒÑÔð 	]¥# i×&7Ò&7Ñ&9Ô&9Ñ":Ô":ð 	]Ý# yÐ$[Ð$[Ð$[Ñ\Ô\Ð\ØˆtÝ•Z 	¨NÑ :Ñ;Ô;×?Ò?ÀÀbÑIÔIÑJÔJ€JÝ×#Ò# JÑ/Ô/ð EÝÐ CÑDÔDÐDÝ	ð *ð *Ý�=Š=˜ YÑ/Ô/°9Ò<Ð<À
ÕN`ÑNbÔNbÐ@bÐ@bÝ#Ð$fÐYcÐ$fÐ$fÐ$fÑgÔgÐgØ )�	�*Ñð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð Ðs   Å$AF=Æ=GÇGÚNonec                ó|   — t           5  t                               | d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rT   )rM   r5   Úpop)r¦   s    r>   Úclose_external_sessionrõ   é   s€   € Ý	ð (ð (Ý�Š�j $Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   ˆ1±5¸5Úboolc                ó²   — | dz  }|                      ¦   «         o>t          t          t          |¦  «                             dd¦  «        pd¦  «        ¦  «        S )Nú.session.lockÚpidr   )rÐ   Ú_process_aliver‰   rÑ   rÒ   )rÕ   Ú	lock_paths     r>   Úsession_folder_in_userü   î   sS   € Ø˜OÑ+€IØ×ÒÑÔÐ`¥>µ#µjÀÑ6KÔ6K×6OÒ6OÐPUÐWXÑ6YÔ6YÐ6^Ð]^Ñ2_Ô2_Ñ#`Ô#`Ð`r=   c                  óF   — e Zd ZdZd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
dS )	ÚSessionReferenceszKResolve persistent session IDs independently of their current folder names.c                ó´  — t          ¦   «         | _        i | _        | j                             ¦   «         D ]£\  }\  }}t	          |¦  «        g|                     dg ¦  «        ¢D ]t}t          j                             t          j         	                    |¦  «        ¦  «        }|| j        v r#| j        |         |k    rt          d|› �¦  «        ‚|| j        |<   ŒuŒ¤d S )NrÞ   z Ambiguous Deepy session folder: )rÄ   rÔ   ÚrootsÚitemsrH   rÒ   rr   rB   ÚnormcaseÚabspathr7   )ÚselfrØ   rÕ   r×   rv   Úkeys         r>   Ú__init__zSessionReferences.__init__õ   sÜ   € Ý)Ñ+Ô+ˆŒØˆŒ
Ø/3¬|×/AÒ/AÑ/CÔ/Cð 	+ð 	+Ñ+ˆHÑ+�y (Ý˜Y™œÐS¨(¯,ª,Ð7MÈrÑ*RÔ*RÐSð +ð +�Ý”g×&Ò&¥r¤w§¢°tÑ'<Ô'<Ñ=Ô=�Ø˜$œ*Ð$Ð$¨¬°C¬¸HÒ)DÐ)DÝ+Ð,UÈtÐ,UÐ,UÑVÔVÐVØ"*�”
˜3‘�ð	+ð	+ð 	+r=   c                óú  — t          |t          ¦  «        r|                      |¦  «         |S t          |t          ¦  «        st	          d¦  «        ‚t          t          j                             |¦  «        ¦  «        }|j	        D ]v}| j
                             t          j                             t          |¦  «        ¦  «        ¦  «        }|�.||                     |¦  «                             ¦   «         dœ}|c S Œw|S )NzInvalid session media path.)Údeepy_session_idrB   )Ú
isinstanceÚdictÚvalidaterH   r7   r
   rr   rB   r  rY   r   rÒ   r  rî   Úas_posix)r  rB   rQ   rÜ   rØ   Ú	references         r>   ÚencodezSessionReferences.encodeÿ   sé   € Ý�d�DÑ!Ô!ð 	Ø�MŠM˜$ÑÔÐØˆKÝ˜$¥Ñ$Ô$ð 	CÝ#Ð$AÑBÔBÐBÝ�œŸš¨Ñ.Ô.Ñ/Ô/ˆ	ØÔ'ð 	!ð 	!ˆFØ”z—~’~¥b¤g×&6Ò&6µs¸6±{´{Ñ&CÔ&CÑDÔDˆHØÐ#Ø19À9×CXÒCXÐY_ÑC`ÔC`×CiÒCiÑCkÔCkÐlÐl�	Ø Ð Ð Ð ð $ð ˆr=   c                ó,  — t          | t          ¦  «        rt          | ¦  «        ddhk    rt          d¦  «        ‚| d         | d         }}t          |t          ¦  «        rt
                               |¦  «        st          d¦  «        ‚t          |t          ¦  «        rf|rdt          |¦  «                             ¦   «         sCdt          | 	                    dd¦  «        ¦  «        j
        v sd|v s|                     d	¦  «        rt          d
¦  «        ‚||fS )Nr  rB   z&Invalid Deepy session media reference.z4Invalid Deepy session identifier in media reference.ú..ú\ú/ú:)r  r  z*Invalid relative Deepy session media path.)r	  r
  Úsetr7   rH   rÓ   re   r
   Úis_absoluters   rï   rÏ   )r  rØ   Úrelatives      r>   r  zSessionReferences.validate  sm  € å˜)¥TÑ*Ô*ð 	N­c°)©n¬nÐASÐU[Ð@\Ò.\Ð.\Ý#Ð$LÑMÔMÐMØ&Ð'9Ô:¸IÀfÔ<M�(ˆÝ˜(¥CÑ(Ô(ð 	\µ×0HÒ0HÈÑ0RÔ0Rð 	\Ý#Ð$ZÑ[Ô[Ð[Ý˜(¥CÑ(Ô(ð 	R°ð 	R½DÀ¹N¼N×<VÒ<VÑ<XÔ<Xð 	RÐ\`ÕdhÐiq×iyÒiyÐz~ð  ADñ  jEô  jEñ  eFô  eFô  eLð  ]Lð  ]Lð  PSð  W_ð  P_ð  P_ð  ck÷  cvò  cvð  wBñ  cCô  cCð  P_Ý#Ð$PÑQÔQÐQØ˜Ð!Ð!r=   c                óÖ   — |                       |¦  «        \  }}|| j        vrd S 	 t          t          | j        |         d         |¦  «        ¦  «        S # t          t
          f$ r Y d S w xY w)Nr   )r  rÔ   rH   Ú_session_member_pathri   r7   )r  r  rØ   r  s       r>   rN   zSessionReferences.resolve  s|   € Ø!Ÿ]š]¨9Ñ5Ô5Ñˆ�(Ø˜4œ<Ð'Ð'Ø�4ð	ÝÕ+¨D¬L¸Ô,BÀ1Ô,EÀxÑPÔPÑQÔQÐQøÝÕ*Ð+ð 	ð 	ð 	à�4�4ð	øøøs   ¥-A ÁA(Á'A(c                óˆ   — |                       |¦  «        }t          |t          ¦  «        r|                      |¦  «        p|n|S rT   )r  r	  r
  rN   )r  r{   r  s      r>   rB   zSessionReferences.path"  s=   € Ø—K’K Ñ&Ô&ˆ	Ý9CÀIÍtÑ9TÔ9TÐc�—’˜YÑ'Ô'Ð4¨9øÐZcÐcr=   c           	     ó¢  — i }| j                              ¦   «         D �]#\  }\  }}|                     dg ¦  «        D �]}|t          |¦  «        k    rŒ|t          |¦  «        ft	          |¦  «                             ¦   «         |                     ¦   «         ffD ]¤\  }}d|v rdnd}	||	z   |||	z   <   t          j                             ||	z   d¬¦  «        |t          j                             ||	z   d¬¦  «        <   t          j
        ||	z   d¬¦  «        dd…         |t          j
        ||	z   d¬¦  «        dd…         <   Œ¥�Œ�Œ%t          ||¦  «        S )	NrÞ   r  r  ©ÚsafeF©Úensure_asciir   éÿÿÿÿ)rÔ   r  rÒ   rH   r
   r  ÚurllibÚparseÚquoteÚjsonÚdumpsÚ_replace_paths)
r  r{   ÚreplacementsÚ	_identityrÕ   r×   ÚoriginalÚbeforeÚafterÚ	separators
             r>   ÚrebasezSessionReferences.rebase&  s¯  € ØˆØ04´×0BÒ0BÑ0DÔ0Dð 		Uñ 		UÑ,ˆIÑ,˜	 8Ø$ŸLšLÐ)?ÀÑDÔDð Uñ U�Ø�s 9™~œ~Ò-Ð-ØØ'/µ°Y±´Ð&@Å4ÈÁ>Ä>×CZÒCZÑC\ÔC\Ð^g×^pÒ^pÑ^rÔ^rÐBsÐ%tð Uð U‘M�F˜Eà(,°¨¨  ¸C�IØ7<¸yÑ7H�L ¨)Ñ!3Ñ4ÝU[ÔUa×UgÒUgÐhmÐpyÑhyð  ADÐUgñ  VEô  VE�L¥¤×!3Ò!3°F¸YÑ4FÈSÐ!3Ñ!QÔ!QÑRÝ]aÔ]gÐhmÐpyÑhyð  INð  ^Oñ  ^Oô  ^Oð  PQð  RTð  PTô  ^U�L¥¤¨F°YÑ,>ÈUÐ!SÑ!SÔ!SÐTUÐVXÐTXÔ!YÑZÐZñUñUõ ˜e \Ñ2Ô2Ð2r=   N)r9   r:   r;   Ú__doc__r  r  Ústaticmethodr  rN   rB   r,  r<   r=   r>   rþ   rþ   ó   sƒ   € € € € € ØUÐUð+ð +ð +ðð ð ð ð"ð "ñ „\ð"ðð ð ðdð dð dð3ð 3ð 3ð 3ð 3r=   rþ   r<   )Úblockedc                ó,  — t          j        d¦  «        }g g }}t          5  t          ¦   «                              ¦   «         D �]6\  }\  }}|j        |k    rŒ|| v r,|                     |¦  «         |                     d|¦  «         ŒEt          dddd¬¦  «        }	 t          ||¦  «         t          |j        |d         ¦  «        }t          t                               g |                     dg ¦  «        ¢t!          |¦  «        ‘¦  «        ¦  «        }	t#          |dz  i |¥d|	i¥¦  «         |                     |¦  «         t!          |d	z  ¦  «        |_        t!          |¦  «        t)          |j        ¦  «        ft*          |j        <   t/          |¦  «         |                     |¦  «         nJ# t0          t2          f$ r6}
|                     |¦  «         |                     d
||
¦  «         Y d}
~
nd}
~
ww xY w	 t5          |¦  «         �ŒÆ# t0          $ r"}
|                     d||
¦  «         Y d}
~
�Œíd}
~
ww xY w# 	 t5          |¦  «         w # t0          $ r!}
|                     d||
¦  «         Y d}
~
w d}
~
ww xY wxY w	 ddd¦  «         n# 1 swxY w Y   ||dœS )zPOne-time rename of ID-named folders; locked/failed folders stay usable in place.zwangp.workspaceszmDeepy session folder rename skipped for %s: used as a dedicated workspace folder. No retry on later startups.rG   N©Úsession_lock_pathÚsession_lock_tokenÚpending_session_saveÚstorage_session_dirr¤   rÞ   rÌ   rø   zJDeepy session folder rename skipped for %s: %s No retry on later startups.z.Cannot release Deepy migration lock for %s: %s)ÚrenamedÚskipped)ÚloggingÚ	getLoggerrM   rÄ   r  rm   ÚappendÚwarningr   Ú_acquire_session_lockrã   rÜ   Úlistr
  ÚfromkeysrÒ   rH   Ú_atomic_jsonÚrenamer2  r
   r3   r3  Ú_forget_ui_journalri   r7   Úrelease_session_lock)r/  Úloggerr6  r7  rØ   rÕ   r×   ÚleaseÚdestinationÚaliasesÚerrors              r>   Úmigrate_session_foldersrH  5  sv  € åÔÐ1Ñ2Ô2€FØ˜2ˆW€GÝ	ð gð gÝ/AÑ/CÔ/C×/IÒ/IÑ/KÔ/Kð 	gñ 	gÑ+ˆHÑ+�y (ØŒ~ Ò)Ð)ØØ˜7Ð"Ð"Ø—’˜xÑ(Ô(Ð(Ø—’ð   Oð  QZñ  [ô  [ð  [ØÝ#°bÈRÐfjð  ACð  Dñ  Dô  DˆEðgÝ% e¨YÑ7Ô7Ð7Ý4°YÔ5EÀxÐPWÔGXÑYÔY�Ý�tŸ}š}Ð-h¨x¯|ª|Ð<RÐTVÑ/WÔ/WÐ-hÕY\Ð]fÑYgÔYgÐ-hÑiÔiÑjÔj�å˜Y¨Ñ7Ð9f¸HÐ9fÐF\Ð^eÐ9fÐ9fÑgÔgÐgØ× Ò  Ñ-Ô-Ð-Ý*-¨k¸OÑ.KÑ*LÔ*L�Ô'Ý:=¸kÑ:JÔ:JÍDÐQVÔQhÑLiÔLiÐ9j•˜UÔ5Ñ6Ý" 9Ñ-Ô-Ð-Ø—’˜xÑ(Ô(Ð(Ð(øÝÕ.Ð/ð ð ð Ø—’˜xÑ(Ô(Ð(Ø—’ÐkÐmvÐx}Ñ~Ô~Ð~Ð~Ð~Ð~Ð~Ð~øøøøðøøøðgÝ(¨Ñ/Ô/Ð/Ñ/øÝð gð gð gØ—N’NÐ#SÐU^Ð`eÑfÔfÐfÐfÐfÐfÐfÑføøøøðgøøøøðgÝ(¨Ñ/Ô/Ð/Ð/øÝð gð gð gØ—N’NÐ#SÐU^Ð`eÑfÔfÐfÐfÐfÐfÐfÐføøøøðgøøøøøøð3	gðgð gð gñ gô gð gð gð gð gð gð gøøøð gð gð gð gð8 ¨7Ð3Ð3Ð3s�    A9JÂDF+Æ*H6Æ+G2Æ<,G-Ç(H6Ç-G2Ç2H6Ç6HÈJÈ
H3ÈH.È(JÈ.H3È3JÈ6I6È8IÉI6É
I3ÉI.É)I6É.I3É3I6É6JÊJ
ÊJ
c                óŒ  — | �(t          | t          t          t          t          f¦  «        r| S t          | t
          ¦  «        rd„ |                      ¦   «         D ¦   «         S t          | t          t          t          f¦  «        rd„ | D ¦   «         S t          | t          j        ¦  «        rt          | ¦  «        S t          | ¦  «        S )Nc                óN   — i | ]"\  }}t          |¦  «        t          |¦  «        “Œ#S r<   )rH   Ú
_json_safe©r­   r  Úchilds      r>   ú
<dictcomp>z_json_safe.<locals>.<dictcomp>\  s,   € ÐLÐLÐL±
°°U•�C‘”�* UÑ+Ô+ÐLÐLÐLr=   c                ó,   — g | ]}t          |¦  «        ‘ŒS r<   )rK  ©r­   rM  s     r>   ú
<listcomp>z_json_safe.<locals>.<listcomp>^  s    € Ð5Ð5Ð5 e•
˜5Ñ!Ô!Ð5Ð5Ð5r=   )r	  rH   r‰   Úfloatrö   r
  r  r=  Útupler  rr   ÚPathLiker   s    r>   rK  rK  X  s«   € Ø€}�
 5­3µµU½DÐ*AÑBÔB€}ØˆÝ�%�ÑÔð MØLÐL¸e¿kºk¹m¼mÐLÑLÔLÐLÝ�%�$¥¥sÐ+Ñ,Ô,ð 6Ø5Ð5¨uÐ5Ñ5Ô5Ð5Ý�%�œÑ%Ô%ð Ý�5‰zŒzÐÝˆu‰:Œ:Ðr=   údict[str, Any]c                óV  — 	 t           5  |                      d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }n1# t          t
          f$ r}t          d| j        › �¦  «        |‚d }~ww xY wt          |t          ¦  «        st          d| j        › �¦  «        ‚|S )Nr[   r\   z Cannot read Deepy session file: zInvalid Deepy session file: )
rM   rh   r#  Úloadsri   Ú
ValueErrorr7   rm   r	  r
  )rB   Úcontentr{   Úexcs       r>   rÑ   rÑ   d  sü   € ðYåð 	7ð 	7Ø—n’n¨g�nÑ6Ô6ˆGð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7å”
˜7Ñ#Ô#ˆˆøÝ•ZÐ ð Yð Yð YÝÐ NÀ4Ä9Ð NÐ NÑOÔOÐUXÐXøøøøðYøøøå�e�TÑ"Ô"ð LÝÐ J¸t¼yÐ JÐ JÑKÔKÐKØ€Ls2   ‚A ‰, A ¬0°A ³0´A ÁA:ÁA5Á5A:c                ó8  — | j                              dd¬¦  «         |                      d| j        › dt	          j        ¦   «         j        › d�¦  «        }	 |                     t          j	        t          |¦  «        dd¬¦  «        d¬	¦  «         t          5  t          j        || ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         r|                     ¦   «          d S d S # |                     ¦   «         r|                     ¦   «          w w xY w)
NTrX   r_   r`   F©ú,r  ©r  Ú
separatorsr[   r\   )rÜ   rf   rl   rm   rn   ro   rp   rq   r#  r$  rK  rM   rr   rs   rÆ   rt   )rB   r{   ry   s      r>   r?  r?  q  s\  € Ø„K×Ò˜d¨TÐÑ2Ô2Ð2Ø—’ÐE 4¤9ÐEÐE­t¬z©|¬|Ô/?ÐEÐEÐEÑFÔF€IðØ×Ò�TœZ­
°5Ñ(9Ô(9ÈÐZdÐeÑeÔeÐpwÐÑxÔxÐxÝð 	(ð 	(ÝŒJ�y $Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð ×ÒÑÔð 	Ø×ÒÑÔÐÐÐð	ð 	øˆ9×ÒÑÔð 	Ø×ÒÑÔÐÐð	øøøs1   ÁA C. ÂB7Â+C. Â7B;Â;C. Â>B;Â?C. Ã.+Dc                óÖ   — t          | t          ¦  «        rd„ |                      ¦   «         D ¦   «         S t          | t          t          f¦  «        rd„ | D ¦   «         S t          | ¦  «        S )Nc                ót   — i | ]5\  }}t          |¦  «        d k    ¯t          |¦  «        t          |¦  «        “Œ6S )Ú_published_text)rH   Ú_clean_ui_valuerL  s      r>   rN  z#_clean_ui_value.<locals>.<dictcomp>  sA   € ÐrÐrÐr±Z°S¸%ÕTWÐX[ÑT\ÔT\Ð`qÒTqÐTq•�C‘”�/¨%Ñ0Ô0ÐTqÐTqÐTqr=   c                ó,   — g | ]}t          |¦  «        ‘ŒS r<   ©rc  rP  s     r>   rQ  z#_clean_ui_value.<locals>.<listcomp>�  s    € Ð:Ð:Ð:¨5• Ñ&Ô&Ð:Ð:Ð:r=   )r	  r
  r  r=  rS  rK  r   s    r>   rc  rc  }  si   € Ý�%�ÑÔð sØrÐrÀ5Ç;Â;Á=Ä=ÐrÑrÔrÐrÝ�%�$¥˜Ñ'Ô'ð ;Ø:Ð:°EÐ:Ñ:Ô:Ð:Ý�eÑÔÐr=   >   Úremove_blockÚupsert_blockÚremove_messageÚupsert_messagezwangp-assistant-chatz>(\bclass\s*=\s*)(?P<quote>['\"])(?P<classes>[^'\"]*)(?P=quote)Úmarkupc                óV   — t           | vr| S dd„}t                               || ¦  «        S )Nr�   úre.MatchrD   rH   c                óÖ  — g }|                       d¦  «                             ¦   «         D ]{}|t          k    s:|                     t          › d�¦  «        s|                     t          › d�¦  «        rd|t	          t          ¦  «        d …         › �}|                     |¦  «         Œ||                       d¦  «        }|                       d¦  «        › |› d                     |¦  «        › |› �S )NÚclassesÚ__z--Úchatr"  r   rŒ   )rŽ   r›   Ú_LEGACY_CHAT_CLASS_PREFIXrÏ   rž   r:  rœ   )r�   rn  Ú
class_namer"  s       r>   Úcompact_attributez7_compact_replay_html_classes.<locals>.compact_attributeŽ  s  € ØˆØŸ+š+ iÑ0Ô0×6Ò6Ñ8Ô8ð 	'ð 	'ˆJØÕ6Ò6Ð6¸*×:OÒ:OÕSlÐPpÐPpÐPpÑ:qÔ:qÐ6Ðu÷  vKò  vKõ  Ohð  Llð  Llð  Llñ  vmô  vmÐ6ØQ J­sÕ3LÑ/MÔ/MÐ/NÐ/NÔ$OÐQÐQ�
Ø�NŠN˜:Ñ&Ô&Ð&Ð&Ø—’˜GÑ$Ô$ˆØ—+’+˜a‘.”.ÐC %ÐC¨¯ª°'Ñ):Ô):ÐC¸EÐCÐCÐCr=   )r�   rl  rD   rH   )rq  Ú_CHAT_CLASS_ATTRIBUTE_REr•   )rj  rs  s     r>   Ú_compact_replay_html_classesru  Š  sC   € Ý ¨Ð.Ð.ØˆðDð Dð Dð Dõ $×'Ò'Ð(9¸6ÑBÔBÐBr=   Úeventc                ó
  — t          |                      dd¦  «        pd¦  «        dk    rpt          |                      d¦  «        t          ¦  «        rH| d         }t          |                     d¦  «        t           ¦  «        rt	          |d         ¦  «        |d<   t          |                      dd¦  «        pd¦  «        dk    r@t          |                      d¦  «        t           ¦  «        rt	          | d         ¦  «        | d<   | S )NÚtyperG   ri  ÚmessageÚhtmlrg  )rH   rÒ   r	  r
  ru  )rv  ry  s     r>   Ú_compact_replay_event_classesr{  š  sá   € Ý
ˆ5�9Š9�V˜RÑ Ô Ð& BÑ'Ô'Ð+;Ò;Ð;Å
È5Ï9Ê9ÐU^ÑK_ÔK_ÕaeÑ@fÔ@fÐ;Ø˜	Ô"ˆÝ�g—k’k &Ñ)Ô)­3Ñ/Ô/ð 	LÝ:¸7À6¼?ÑKÔKˆG�F‰OÝ
ˆ5�9Š9�V˜RÑ Ô Ð& BÑ'Ô'¨>Ò9Ð9½jÈÏÊÐSYÑIZÔIZÕ\_Ñ>`Ô>`Ð9Ý4°U¸6´]ÑCÔCˆˆf‰Ø€Lr=   ©Úmax_sequencer}  ú
int | Noneú%tuple[list[dict[str, Any]], int, int]c          
     ó0  — | t           z  }|                     ¦   «         sg ddfS 	 |                     d¬¦  «                             ¦   «         }n"# t          $ r}t          d¦  «        |‚d }~ww xY wg }d}d}d„ t          |¦  «        D ¦   «         }|r|d         nd}	t          |¦  «        D �]ç\  }
}|                     ¦   «         sŒ	 t          j	        |¦  «        }n/# t          $ r"}|
|	k    rY d }~ �n¡t          d¦  «        |‚d }~ww xY wt          |t          ¦  «        st          d¦  «        ‚t          |                     d	d¦  «        pd¦  «        }t          |                     d
d¦  «        pd¦  «        }|t          k    rt          d¦  «        ‚||dz   k    rt          d¦  «        ‚|}|�||k    r�Œt!          |                     dd¦  «        pd¦  «        dk    s(t          |                     d¦  «        t          ¦  «        st          d¦  «        ‚t!          |d                              dd¦  «        pd¦  «        t"          vrt          d¦  «        ‚|                     dt'          t)          |d         ¦  «        ¦  «        dœ¦  «         |}�Œé|||fS )Nr   r[   r\   z Cannot read Deepy cards journal.c                ó@   — g | ]\  }}|                      ¦   «         ¯|‘ŒS r<   )rI   )r­   ÚindexÚlines      r>   rQ  z$_read_ui_journal.<locals>.<listcomp>¯  s)   € ÐRÐRÐR¡+ %¨ÀTÇZÂZÁ\Ä\ÐR˜ÐRÐRÐRr=   r  z*Deepy cards journal contains invalid JSON.z2Deepy cards journal contains an invalid operation.Úschema_versionÚsequencez7This Deepy cards journal was created by a newer format.r   z/Deepy cards journal sequence is not contiguous.ÚcmdrG   Úchat_outputrv  z7Deepy cards journal contains an invalid client command.rx  z;Deepy cards journal contains an unsupported client command.©r†  rv  )ÚUI_JOURNAL_FILENAMErÐ   rh   Ú
splitlinesri   r7   Ú	enumeraterI   r#  rW  rX  r	  r
  r‰   rÒ   ÚUI_JOURNAL_SCHEMA_VERSIONrH   Ú_REPLAY_EVENT_TYPESr:  r{  rc  )rÕ   r}  rB   ÚlinesrZ  ÚcommandsÚprevious_sequenceÚapplied_sequenceÚnonempty_indicesÚfinal_nonempty_indexr‚  rƒ  Ú	operationr„  r…  s                  r>   Ú_read_ui_journalr•  ¤  sï  € ØÕ*Ñ*€DØ�<Š<‰>Œ>ð Ø�1�aˆxˆðMØ—’¨�Ñ0Ô0×;Ò;Ñ=Ô=ˆˆøÝð Mð Mð MÝÐ BÑCÔCÈÐLøøøøðMøøøà%'€HØÐØÐØRÐRµ¸5Ñ1AÔ1AÐRÑRÔRÐØ3CÐKÐ+¨BÔ/Ð/ÈÐÝ  Ñ'Ô'ð $ñ $‰ˆˆtØ�zŠz‰|Œ|ð 	Øð	[Ýœ
 4Ñ(Ô(ˆIˆIøÝð 	[ð 	[ð 	[ØÐ,Ò,Ð,Ø����‘Ý#Ð$PÑQÔQÐWZÐZøøøøð	[øøøõ ˜)¥TÑ*Ô*ð 	ZÝ#Ð$XÑYÔYÐYÝ˜YŸ]š]Ð+;¸QÑ?Ô?ÐDÀ1ÑEÔEˆÝ�y—}’} Z°Ñ3Ô3Ð8°qÑ9Ô9ˆØÕ5Ò5Ð5Ý#Ð$]Ñ^Ô^Ð^ØÐ(¨1Ñ,Ò,Ð,Ý#Ð$UÑVÔVÐVØ$ÐØÐ#¨°<Ò(?Ð(?ÙÝˆy�}Š}˜U BÑ'Ô'Ð-¨2Ñ.Ô.°-Ò?Ð?ÅzÐR[×R_ÒR_Ð`gÑRhÔRhÕjnÑGoÔGoÐ?Ý#Ð$]Ñ^Ô^Ð^Ýˆy˜Ô!×%Ò% f¨bÑ1Ô1Ð7°RÑ8Ô8Õ@SÐSÐSÝ#Ð$aÑbÔbÐbØ�Š Õ8UÕVeÐfoÐpwÔfxÑVyÔVyÑ8zÔ8zÐ{Ð{Ñ|Ô|Ð|Ø#ÐÑØÐ%Ð'8Ð8Ð8s5   ¥(A Á
A-ÁA(Á(A-ÃCÃ
DÃ%DÃ2DÄDÚlast_sequencec                óR  — | t           z  }|                     ¦   «         sd S 	 |                     d¦  «        5 }d}	 |                     ¦   «         }|sn­|                     ¦   «         sŒ-	 t          j        |                     d¦  «        ¦  «        }t          |t          ¦  «        r%t          |                     dd¦  «        pd¦  «        nd}n# t          t          f$ r Y n w xY w||k    rn|                     ¦   «         }ŒÄ|                     dt           j        ¦  «         |                     ¦   «         |k    }|r|                     |¦  «         |dk    r]|                     |dz
  ¦  «         |                     d¦  «        dk    r,|                     |¦  «         |                     d¦  «         d}|r:|                     ¦   «          t!          j        |                     ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S # t0          $ r}	t3          d¦  «        |	‚d }	~	ww xY w)	Nzrb+r   Tr[   r…  r   ó   
z#Cannot recover Deepy cards journal.)r‰  rÐ   ÚopenÚreadlinerI   r#  rW  Údecoder	  r
  r‰   rÒ   ÚUnicodeDecodeErrorrX  ÚtellÚseekrr   ÚSEEK_ENDÚtruncateÚreadÚwriteÚflushÚfsyncÚfilenori   r7   )
rÕ   r–  rB   ÚjournalÚkeep_offsetrƒ  r”  r…  ÚchangedrZ  s
             r>   Ú_truncate_ui_journalr©  Î  sz  € ØÕ*Ñ*€DØ�<Š<‰>Œ>ð ØˆðPØ�YŠY�uÑÔð 	+ ØˆKð-Ø×'Ò'Ñ)Ô)�Øð ØØ—z’z‘|”|ð ØðÝ $¤
¨4¯;ª;°wÑ+?Ô+?Ñ @Ô @�IÝISÐT]Õ_cÑIdÔIdÐk�s 9§=¢=°¸QÑ#?Ô#?Ð#DÀ1ÑEÔEÐEÐjk�H�HøÝ*­JÐ7ð ð ð Ø�Eðøøøà˜mÒ+Ð+ØØ%Ÿlšl™nœn�ð-ð �LŠL˜�BœKÑ(Ô(Ð(Ø—l’l‘n”n¨Ò3ˆGØð .Ø× Ò  Ñ-Ô-Ð-Ø˜QŠˆØ—’˜[¨1™_Ñ-Ô-Ð-Ø—<’< ‘?”? eÒ+Ð+Ø—L’L Ñ-Ô-Ð-Ø—M’M %Ñ(Ô(Ð(Ø"�GØð +Ø—’‘”�Ý”˜ŸšÑ)Ô)Ñ*Ô*Ð*ð9	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øõ: ð Pð Pð PÝÐ EÑFÔFÈCÐOøøøøðPøøøs`   ¢H ·0G:Á(A#CÃG:ÃC ÃG:ÃC Ã DG:Ç-H Ç:G>Ç>H ÈG>ÈH È
H&ÈH!È!H&Úrecordc                ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                ó@   — i | ]\  }}|d k    ¯|t          |¦  «        “ŒS )Úblocksre  ©r­   r  r{   s      r>   rN  z"_message_frame.<locals>.<dictcomp>õ  s,   € Ð\Ð\Ð\©J¨C°ÈCÐS[ÊOÈOˆC• Ñ'Ô'ÈOÈOÈOr=   )r  )rª  s    r>   Ú_message_framer¯  ô  s   € Ø\Ð\¸&¿,º,¹.¼.Ð\Ñ\Ô\Ð\r=   Úmessage_indexc                óZ   — ddl m} d|                     | ¦  «        t          |¦  «        dœS )Nr   ©Úassistant_chatri  )rx  ry  r°  )Úshared.gradior³  Ú_render_message_payloadr‰   )rª  r°  r³  s      r>   Ú_message_replay_eventr¶  ø  sR   € Ø,Ð,Ð,Ð,Ð,Ð,à$°×1WÒ1WÐX^Ñ1_Ô1_Õruð  wDñ  sEô  sEð  Fð  Fð  Fr=   ÚblockÚblock_indexc                óÖ  — ddl m} t          |                     dd¦  «        pd¦  «        }dt          |                      dd¦  «        pd¦  «        |                     | ¦  «        t          |¦  «        t          |                     dd¦  «        pd¦  «        |t          |¦  «        |                     | |d¬	¦  «        |d
v r%t          |                     dd¦  «        pd¦  «        ndddœ
S )Nr   r²  rx  Úmarkdownrg  r«   rG   F)Ú	streaming>   rº  Ú	reasoningÚcontext_summaryÚcontext_thinkingr¡   )
rx  Ú
message_idry  r°  Úblock_idÚ
block_typer¸  rz  r¡   r»  )r´  r³  rH   rÒ   Ú_message_frame_payloadr‰   Ú_render_block_html)rª  r·  r°  r¸  r³  rÁ  s         r>   Ú_block_replay_eventrÄ  þ  s  € Ø,Ð,Ð,Ð,Ð,Ð,å�U—Y’Y˜v zÑ2Ô2Ð@°jÑAÔA€JàÝ˜&Ÿ*š* T¨2Ñ.Ô.Ð4°"Ñ5Ô5Ø!×8Ò8¸Ñ@Ô@Ý˜]Ñ+Ô+Ý˜Ÿ	š	 $¨Ñ+Ô+Ð1¨rÑ2Ô2Ø Ý˜;Ñ'Ô'Ø×1Ò1°&¸%È5Ð1ÑQÔQØ4>ð  CCð  5Cð  5C•�E—I’I˜f bÑ)Ô)Ð/¨RÑ0Ô0Ð0ð  IKØðð ð r=   Úpreviousúlist[dict[str, Any]]Úcurrentc                ó  — d„ | D ¦   «         }g }|D �]v}t          |t          ¦  «        sŒt          |¦  «        }t          |                     dd¦  «        pd¦  «        }|                     |i ¦  «        }d„ t          |                     dg ¦  «        pg ¦  «        D ¦   «         }g }	t          |                     dg ¦  «        pg ¦  «        D �]E}
t          |
t          ¦  «        sŒt          |
                     dd¦  «        pd¦  «        }t          |
                     dd¦  «        pd¦  «        }|dv o"t          |
                     d	d
¦  «        ¦  «        }|dk    omt          |
                     dd
¦  «        ¦  «        pJt          |
                     dd¦  «        pd¦  «                             ¦   «                              ¦   «         dv}|s|r.||v r(|	 	                    t          ||         ¦  «        ¦  «         �Œ0|	 	                    |
¦  «         �ŒG|	|d<   t          |                     dd¦  «        pd¦  «        dk    p0t          |	¦  «        p!t          |                     d¦  «        ¦  «        }|r| 	                    |¦  «         �Œx|S )Nc                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S ©r«   rG   ©r	  r
  rH   rÒ   ©r­   rª  s     r>   rN  z/_consolidated_ui_transcript.<locals>.<dictcomp>  ó“   € ð  Jð  Jð  J¸FÕR\Ð]cÕeiÑRjÔRjð  JÕorÐsy×s}Òs}ð  Cð  EGñ  tHô  tHñ  pIô  pIð  J•c˜&Ÿ*š* T¨2Ñ.Ô.Ñ/Ô/°ð  Jð  Jð  Jr=   r«   rG   c                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S rÊ  rË  ©r­   r·  s     r>   rN  z/_consolidated_ui_transcript.<locals>.<dictcomp>  ó·   € ð  oð  oð  o¸uõ  zDð  EJõ  LPñ  zQô  zQð  oõ  VYð  Z_÷  Zcò  Zcð  dhð  jlñ  Zmô  Zmñ  Vnô  Vnð  o�3˜uŸyšy¨¨rÑ2Ô2Ñ3Ô3°Uð  oð  oð  or=   r­  rx  rº  >   rº  r¼  r½  r¾  r»  FÚtoolÚrequest_pendingÚstatus>   ÚdonerG  ÚfailedÚ	cancelledÚinterruptedÚroleÚ	assistantÚattachments)
r	  r
  rc  rH   rÒ   r=  rö   rI   rc   r:  )rÅ  rÇ  Úprevious_by_idÚconsolidatedÚ
raw_recordrª  r¿  Úprevious_recordÚprevious_blocksr­  r·  rÀ  rÁ  Úincomplete_textÚincomplete_toolÚ
renderables                   r>   Ú_consolidated_ui_transcriptrã    s  € ð Jð  JÀhð  Jñ  Jô  J€NØ€LØð (ñ (ˆ
Ý˜*¥dÑ+Ô+ð 	ØÝ  Ñ,Ô,ˆÝ˜Ÿš D¨"Ñ-Ô-Ð3°Ñ4Ô4ˆ
Ø(×,Ò,¨Z¸Ñ<Ô<ˆð oð  oÍÈ_×M`ÒM`ÐaiÐkmÑMnÔMnÐMtÐrtÑHuÔHuð  oñ  oô  oˆØˆÝ˜&Ÿ*š* X¨rÑ2Ô2Ð8°bÑ9Ô9ð 	!ñ 	!ˆEÝ˜e¥TÑ*Ô*ð ØÝ˜5Ÿ9š9 T¨2Ñ.Ô.Ð4°"Ñ5Ô5ˆHÝ˜UŸYšY v¨zÑ:Ô:ÐH¸jÑIÔIˆJØ(Ð,lÐlð  UÕquÐv{×vÒvð  ALð  NSñ  wTô  wTñ  rUô  rUˆOØ(¨FÒ2ð  X½¸U¿YºYÐGXÐZ_Ñ=`Ô=`Ñ8aÔ8að  9WÕehÐin×irÒirÐs{Ð}ñ  jAô  jAð  jGð  EGñ  fHô  fH÷  fNò  fNñ  fPô  fP÷  fVò  fVñ  fXô  fXð  `Wð  fWˆOØð  /ð Ø˜Ð.Ð.Ø—M’M¥/°/À(Ô2KÑ"LÔ"LÑMÔMÐMÙØ�MŠM˜%Ñ Ô Ð Ñ Ø!ˆˆxÑÝ˜Ÿš F¨BÑ/Ô/Ð5°2Ñ6Ô6¸+ÒEÐxÍÈfÉÌÐxÕY]Ð^d×^hÒ^hÐivÑ^wÔ^wÑYxÔYxˆ
Øð 	(Ø×Ò Ñ'Ô'Ð'ùØÐr=   c                ó  — g }d„ | D ¦   «         }d„ |D ¦   «         }|                      ¦   «         |                      ¦   «         z
  D ]}|                     dd|dœdœ¦  «         Œd„ | D ¦   «         }d„ t          |¦  «        D ¦   «         }t          |¦  «        D �]l\  }}	t          |	                     d	d
¦  «        pd
¦  «                             ¦   «         }|sŒ@|                     |¦  «        }
|                     ||¦  «        |k    }|
�"|s t          |	¦  «        t          |
¦  «        k    r'|                     dt          |	|¦  «        dœ¦  «         Œºd„ t          |
                     dg ¦  «        pg ¦  «        D ¦   «         }d„ t          |	                     dg ¦  «        pg ¦  «        D ¦   «         }|                      ¦   «         |                      ¦   «         z
  D ]H}|                     dd||t          ||                              dd¦  «        pd¦  «        dœdœ¦  «         ŒIt          t          |	                     dg ¦  «        pg ¦  «        ¦  «        D ]¯\  }}t          |t          ¦  «        sŒt          |                     d	d
¦  «        pd
¦  «                             ¦   «         }|r[t          |¦  «        t          |                     |¦  «        ¦  «        k    r(|                     dt          |	|||¦  «        dœ¦  «         Œ°�Œn|S )Nc                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S rÊ  rË  rÌ  s     r>   rN  z-_build_ui_replay_commands.<locals>.<dictcomp>0  rÍ  r=   c                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S rÊ  rË  rÌ  s     r>   rN  z-_build_ui_replay_commands.<locals>.<dictcomp>1  s“   € ð  Hð  Hð  H¸6ÕPZÐ[aÕcgÑPhÔPhð  HÕmpÐqw×q{Òq{ð  }Að  CEñ  rFô  rFñ  nGô  nGð  H•S˜Ÿš D¨"Ñ-Ô-Ñ.Ô.°ð  Hð  Hð  Hr=   r‡  rh  )rx  r¿  rˆ  c                óÄ   — g | ]]}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        ‘Œ^S rÊ  rË  rÌ  s     r>   rQ  z-_build_ui_replay_commands.<locals>.<listcomp>4  s€   € ð  Bð  Bð  B°FÍ*ÐU[Õ]aÑJbÔJbð  BÕgjÐkq×kuÒkuÐvzÐ|~ÑkÔkñ  hAô  hAð  B•c˜&Ÿ*š* T¨2Ñ.Ô.Ñ/Ô/ð  Bð  Bð  Br=   c                ó   — i | ]\  }}||“Œ	S r<   r<   )r­   r‚  r¿  s      r>   rN  z-_build_ui_replay_commands.<locals>.<dictcomp>5  s   € Ð]Ð]Ð]Ñ.?¨e°Z˜
 EÐ]Ð]Ð]r=   r«   rG   c                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S rÊ  rË  rÏ  s     r>   rN  z-_build_ui_replay_commands.<locals>.<dictcomp>?  rÐ  r=   r­  c                óÆ   — i | ]^}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «        ¯:t          |                     d d¦  «        ¦  «        |“Œ_S rÊ  rË  rÏ  s     r>   rN  z-_build_ui_replay_commands.<locals>.<dictcomp>@  s¯   € ð  eð  eð  e¸eÕoyÐzõ  BFñ  pGô  pGð  eõ  LOð  PU÷  PYò  PYð  Z^ð  `bñ  Pcô  Pcñ  Ldô  Ldð  e�#˜eŸiši¨¨bÑ1Ô1Ñ2Ô2°Eð  eð  eð  er=   rf  rx  rº  )rx  r¿  rÀ  rÁ  )Úkeysr:  r‹  rH   rÒ   rI   r¯  r¶  r=  r	  r
  rc  rÄ  )rÅ  rÇ  r�  rÛ  Úcurrent_by_idr¿  Úprevious_orderÚprevious_indicesr°  rª  rÞ  Úmovedrß  Úcurrent_blocksrÀ  r¸  r·  s                    r>   Ú_build_ui_replay_commandsrñ  .  s÷  € Ø€Hð Jð  JÀhð  Jñ  Jô  J€Nð Hð  HÀWð  Hñ  Hô  H€MØ$×)Ò)Ñ+Ô+¨m×.@Ò.@Ñ.BÔ.BÑBð oð oˆ
Ø�Š ÐAQÐakÐ8lÐ8lÐmÐmÑnÔnÐnÐnð Bð  B¸hð  Bñ  Bô  B€NØ]Ð]Å9È^ÑC\ÔC\Ð]Ñ]Ô]ÐÝ!*¨7Ñ!3Ô!3ð Añ AÑˆ�vÝ˜Ÿš D¨"Ñ-Ô-Ð3°Ñ4Ô4×:Ò:Ñ<Ô<ˆ
Øð 	ØØ(×,Ò,¨ZÑ8Ô8ˆØ ×$Ò$ Z°Ñ?Ô?À=ÒPˆØÐ" eÐ"­~¸fÑ/EÔ/EÍÐXgÑIhÔIhÒ/hÐ/hØ�OŠO MÕ<QÐRXÐZgÑ<hÔ<hÐiÐiÑjÔjÐjØð oð  oÍÈ_×M`ÒM`ÐaiÐkmÑMnÔMnÐMtÐrtÑHuÔHuð  oñ  oô  oˆð eð  eÅtÈFÏJÊJÐW_ÐacÑLdÔLdÐLjÐhjÑGkÔGkð  eñ  eô  eˆØ'×,Ò,Ñ.Ô.°×1DÒ1DÑ1FÔ1FÑFð 	[ð 	[ˆHØ�OŠO MÀ^Ðcmð  |Dõ  TWð  Xgð  hpô  Xq÷  Xuò  Xuð  v|ð  ~Hñ  XIô  XIð  XWð  MWñ  TXô  TXð  =Yð  =Yð  Zð  Zñ  [ô  [ð  [ð  [Ý"+­D°·²¸HÀbÑ1IÔ1IÐ1OÈRÑ,PÔ,PÑ"QÔ"Qð 	Að 	AÑˆK˜Ý˜e¥TÑ*Ô*ð ØÝ˜5Ÿ9š9 T¨2Ñ.Ô.Ð4°"Ñ5Ô5×;Ò;Ñ=Ô=ˆHØð A�O¨EÑ2Ô2µoÀo×FYÒFYÐZbÑFcÔFcÑ6dÔ6dÒdÐdØ—’¨Õ@SÐTZÐ\aÐcpÐr}Ñ@~Ô@~Ð Ð ñ  Aô  Að  Aøñ	Að €Or=   Ú
transcriptú%tuple[int, int, list[dict[str, Any]]]c           	     óô  — t          |                      ¦   «         ¦  «        }t                               |¦  «        }|�€•g }d}| dz  }|                     ¦   «         �rUt          |¦  «        }t          |                     di ¦  «                             dg ¦  «        pg ¦  «        }|                     di ¦  «                             di ¦  «        }	|	r$t          |	t          ¦  «        st          d¦  «        ‚t          |	t          ¦  «        r¨|	r¦t          |	                     dd	¦  «        pd	¦  «        t          k    rt          d
¦  «        ‚t          |	                     dd¦  «        pd¦  «        }t          | |¬¦  «        \  }
}}||k    rt          d¦  «        ‚|}|dk    rt          g |¦  «        rg }t          | |¦  «         t          |¦  «        |dœ}t          |d         |¦  «        }t!          |d         |¦  «        }t          |d         pd¦  «        }|rÂ| t          z                       ddd¬¦  «        5 }|D ]M}|dz  }t$          |dœt          |¦  «        ¥}|                     t)          j        |dd¬¦  «        dz   ¦  «         ŒN|                     ¦   «          t/          j        |                     ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   ||dœt          |<   |t5          |¦  «        |fS )Nr   úcontext.jsonrp  rò  ÚuiÚreplayú#Invalid Deepy UI replay descriptor.rB   rG   ú%Invalid Deepy UI replay journal path.r–  r|  ú&Deepy UI replay journal is incomplete.©rò  r…  r…  Úar[   ú
©r]   Únewliner   )r„  r…  Fr\  r^  )rH   rN   r4   rÒ   rÐ   rÑ   r=  r	  r
  r7   r‰  r‰   r•  rã  r©  rc  rñ  r™  rŒ  r¢  r#  r$  r£  rr   r¤  r¥  rž   )rÕ   rò  Ú	cache_keyÚstaterÅ  Úcommitted_sequenceÚcontext_pathÚstored_contextÚstored_transcriptr÷  Ú	_commandsr‘  Ú_physical_sequencerÇ  r�  r…  ÚwriterÚcommandÚpayloads                      r>   Ú_append_ui_journalr  L  sN  € Ý�I×%Ò%Ñ'Ô'Ñ(Ô(€IÝ×"Ò" 9Ñ-Ô-€EØ�}ØˆØÐØ  >Ñ1ˆØ×ÒÑ!Ô!ñ 	"Ý'¨Ñ5Ô5ˆNÝ $ ^×%7Ò%7¸ÀÑ%CÔ%C×%GÒ%GÈÐVXÑ%YÔ%YÐ%_Ð]_Ñ `Ô `ÐØ#×'Ò'¨¨bÑ1Ô1×5Ò5°hÀÑCÔCˆFØð O�j¨µÑ6Ô6ð OÝ'Ð(MÑNÔNÐNÝ˜&¥$Ñ'Ô'ð 	"¨Fð 	"Ý�v—z’z &¨"Ñ-Ô-Ð3°Ñ4Ô4Õ8KÒKÐKÝ+Ð,SÑTÔTÐTÝ%(¨¯ª°OÀQÑ)GÔ)GÐ)LÈ1Ñ%MÔ%MÐ"ÝBRÐS\Ðk}ÐB~ÑB~ÔB~Ñ?�	Ð+Ð-?Ø#Ð'9Ò9Ð9Ý+Ð,TÑUÔUÐUØ,�Ø%¨Ò*Ð*Õ/JÈ2ÈxÑ/XÔ/XÐ*Ø!�HÝ˜YÐ(:Ñ;Ô;Ð;Ý.¨xÑ8Ô8ÐFXÐYÐYˆÝ)¨%°Ô*=¸zÑJÔJ€GÝ(¨¨|Ô)<¸gÑFÔF€HÝ�5˜Ô$Ð)¨Ñ*Ô*€HØð &ØÕ-Ñ-×3Ò3°CÀ'ÐSWÐ3ÑXÔXð 	&Ð\bØ#ð dð d�Ø˜A‘�Ý-FÐT\ÐyÐyÕ`oÐpwÑ`xÔ`xÐy�Ø—’�TœZ¨¸eÐPZÐ[Ñ[Ô[Ð^bÑbÑcÔcÐcÐcØ�LŠL‰NŒNˆNÝŒH�V—]’]‘_”_Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 4;ÈÐ$QÐ$QÕ�yÑ!Ø•S˜‘\”\ 7Ð*Ð*s   È9BKËKËKc                óz   — t                                t          |                      ¦   «         ¦  «        d ¦  «         d S rT   )r4   rô   rH   rN   )rÕ   s    r>   rA  rA  t  s2   € Ý×Ò�3˜y×0Ò0Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:Ð:Ð:r=   rù   c                ó|  — | dk    rdS t           j        dk    �rodd l}ddlm} |                     dd¬¦  «        }|j        }|j        |j        |j        f|_        |j	        |_
        |j        }|j	        |                     |j        ¦  «        f|_        |j        |_
        |j        }|j	        f|_        |j        |_
         |dd| ¦  «        }|s9|                     ¦   «         }|d	k    rdS |d
k    rdS |                     |¦  «        ‚|                     ¦   «         }		  |||                     |	¦  «        ¦  «        s'|                     |                     ¦   «         ¦  «        ‚|	j        dk     ||¦  «         S #  ||¦  «         w xY w	 t          j        | d¦  «         dS # t&          $ r Y dS t(          $ r Y dS w xY w)Nr   FÚnt)ÚwintypesÚkernel32T)Úuse_last_errori   é   éW   i  )rr   rm   Úctypesr  ÚWinDLLÚOpenProcessÚDWORDÚBOOLÚargtypesÚHANDLEÚrestypeÚGetExitCodeProcessÚPOINTERÚCloseHandleÚget_last_errorÚWinErrorÚbyrefr{   ÚkillÚPermissionErrorri   )
rù   r  r  r  Úopen_processÚget_exit_codeÚclose_handleÚhandlerG  Ú	exit_codes
             r>   rú   rú   x  só  € Ø
ˆa‚x€xØˆuÝ	„w�$‚�ØˆˆˆØ#Ð#Ð#Ð#Ð#Ð#à—=’= ¸D�=ÑAÔAˆØÔ+ˆØ!)¤°´ÀÄÐ OˆÔØ'œˆÔØ Ô3ˆØ"*¤/°6·>²>À(Ä.Ñ3QÔ3QÐ!RˆÔØ (¤ˆÔØÔ+ˆØ!)¤Ð 2ˆÔØ'œ}ˆÔØ�˜f e¨SÑ1Ô1ˆØð 	)Ø×)Ò)Ñ+Ô+ˆEØ˜ŠzˆzØ�tØ˜Š{ˆ{Ø�uØ—/’/ %Ñ(Ô(Ð(Ø—N’NÑ$Ô$ˆ	ð	!Ø �= ¨¯ª°iÑ)@Ô)@ÑAÔAð ?Ø—o’o f×&;Ò&;Ñ&=Ô&=Ñ>Ô>Ð>Ø”? cÒ)àˆL˜Ñ Ô Ð Ð øˆLˆL˜Ñ Ô Ð Ð øøøðÝ
Œ��Q‰ŒˆØˆtøÝð ð ð ØˆtˆtÝð ð ð Øˆuˆuðøøøs%   ÄAE9 Å9FÆ
F! Æ!
F;Æ.	F;Æ:F;c                ó  — t          | j        pd¦  «        }|rt          |¦  «        |dz  k    rd S |dz  }t          j        ¦   «         j        }t          j        ¦   «         |t          ¦   «         dœ}	 t          j	        |t          j
        t          j        z  t          j        z  ¦  «        }nÉ# t          $ r¼ 	 t          |¦  «        }t          |                     dd¦  «        pd¦  «        }n# t"          $ r d}Y nw xY wt%          |¦  «        rt'          d|› d�¦  «        ‚|                     d¬	¦  «         t          j	        |t          j
        t          j        z  t          j        z  ¦  «        }Y nw xY wt          j        |d
d¬¦  «        5 }	t-          j        ||	¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «        | _        || _        t2          5  t          |¦  «        |ft4          |<   d d d ¦  «         d S # 1 swxY w Y   d S )NrG   rø   )rù   ÚtokenÚ
created_atrù   r   ú)Deepy session is already open by process r_   Tra   Úwr[   r\   )rH   r2  r
   rn   ro   rp   rr   Úgetpidr¾   r™  ÚO_CREATÚO_EXCLÚO_WRONLYÚFileExistsErrorrÑ   r‰   rÒ   Ú	Exceptionrú   rA   rt   Úfdopenr#  Údumpr3  rM   r3   )
ÚsessionrÕ   Úcurrent_pathrû   r*  r
  Ú
descriptorÚexistingÚexisting_pidr  s
             r>   r<  r<  ¡  s†  € Ý�wÔ0Ð6°BÑ7Ô7€LØð �˜\Ñ*Ô*¨i¸/Ñ.IÒIÐIØˆØ˜OÑ+€IÝŒJ‰LŒLÔ€EÝ”i‘k”k¨EÅÁÄÐLÐL€GðNÝ”W˜Y­¬
µR´YÑ(>ÅÄÑ(LÑMÔMˆ
ˆ
øÝð 	Nð 	Nð 	Nð	Ý! )Ñ,Ô,ˆHÝ˜xŸ|š|¨E°1Ñ5Ô5Ð:¸Ñ;Ô;ˆLˆLøÝð 	ð 	ð 	ØˆLˆLˆLð	øøøå˜,Ñ'Ô'ð 	bÝ$Ð%`ÐQ]Ð%`Ð%`Ð%`ÑaÔaÐaØ×Ò DÐÑ)Ô)Ð)Ý”W˜Y­¬
µR´YÑ(>ÅÄÑ(LÑMÔMˆ
ˆ
ˆ
ð	Nøøøõ 
Œ�:˜s¨WÐ	5Ñ	5Ô	5ð #¸ÝŒ	�'˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #å # I¡¤€GÔØ!&€GÔÝ	ð :ð :Ý" 9™~œ~¨yÐ9��UÑð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s[   Á29B, Â,
E2Â74C,Ã+E2Ã,C;Ã8E2Ã:C;Ã;A4E2Å1E2ÆF.Æ.F2Æ5F2ÇHÈHÈ	Hc                óp  — | j         }t          |t          ¦  «        rU|                     ¦   «         sA	 |                     ¦   «          n+# t
          $ r}t          |¦  «        | _        Y d }~nd }~ww xY wt          | j        pd¦  «        r!t          t          | j        ¦  «        ¦  «        nd }t          | j
        pd¦  «        }|�t|                     ¦   «         r`	 t          |¦  «        }n# t          $ r i }Y nw xY wt          |                     dd¦  «        ¦  «        |k    r|                     d¬¦  «         t           5  t"                               |d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          | j        pd¦  «        r!t)          t          | j        ¦  «        ¦  «         d| _        d| _
        d S )NrG   r*  Tra   )r4  r	  r   rÔ  Úresultr3  rH   Úsession_save_errorr2  r
   r3  rÐ   rÑ   r7   rÒ   rt   rM   r3   rô   r5  rA  )r6  ÚpendingrZ  rû   r*  r
  s         r>   rB  rB  ¼  s  € ØÔ*€GÝ�'�6Ñ"Ô"ð 2¨7¯<ª<©>¬>ð 2ð	2Ø�NŠNÑÔÐÐøÝð 	2ð 	2ð 	2Ý),¨S©¬ˆGÔ&Ð&Ð&Ð&Ð&Ð&øøøøð	2øøøå8;¸GÔ<UÐ<[ÐY[Ñ8\Ô8\Ðf••S˜Ô2Ñ3Ô3Ñ4Ô4Ð4Ðbf€IÝ�Ô*Ð0¨bÑ1Ô1€EØÐ ×!2Ò!2Ñ!4Ô!4Ðð	Ý  Ñ+Ô+ˆGˆGøÝ ð 	ð 	ð 	ØˆGˆGˆGð	øøøåˆw�{Š{˜7 BÑ'Ô'Ñ(Ô(¨EÒ1Ð1Ø×Ò¨ÐÑ-Ô-Ð-Ý	ð &ð &Ý×Ò˜ Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &å
ˆ7Ô&Ð,¨"Ñ-Ô-ð >Ý�4 Ô ;Ñ<Ô<Ñ=Ô=Ð=Ø "€GÔØ!#€GÔÐÐs;   ²A Á
A/ÁA*Á*A/ÃC( Ã(C7Ã6C7Ä>E&Å&E*Å-E*c                 ó’  — t           5  t          t                               ¦   «         ¦  «        } t                               ¦   «          d d d ¦  «         n# 1 swxY w Y   | D ]e\  }\  }}	 t          |¦  «        }t          |                     dd¦  «        ¦  «        |k    r|                     d¬¦  «         ŒV# t          $ r Y Œbw xY wd S )Nr*  rG   Tra   )
rM   r=  r3   r  rP   rÑ   rH   rÒ   rt   r3  )Úownedr*  râ   rû   r
  s        r>   Ú_release_all_locksrA  Ô  s  € Ý	ð ð Ý•\×'Ò'Ñ)Ô)Ñ*Ô*ˆÝ×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð +0ð ð Ñ&ˆÑ&�
˜Ið	Ý  Ñ+Ô+ˆGÝ�7—;’;˜w¨Ñ+Ô+Ñ,Ô,°Ò5Ð5Ø× Ò ¨DÐ Ñ1Ô1Ð1øøÝð 	ð 	ð 	ØˆDð	øøøðð s%   ˆA AÁAÁAÁ*AB7Â7
CÃCc                ó   — t           | _        d S rT   )Úschedule_autosaveÚsafe_checkpoint_callback©r6  s    r>   Úbind_session_persistencerF  ä  s   € Ý'8€GÔ$Ð$Ð$r=   F)Úmedia_importrÕ   Ú
deepy_typeÚgallery_media_modeÚenvironmentúdict[str, Any] | Nonec               óâ  — t          |pd¦  «                             ¦   «                              ¦   «         }| j        rÆ| j        |k    rt          d¦  «        ‚t          |p| j        ¦  «        | _        t          |p| j	        ¦  «        | _	        | j
        rQt          |pd¦  «                             ¦   «         r.t          t          |¦  «        | j        ¦  «        | _        d| _
        t          | ¦  «         t          | ¦  «        S t          |pd¦  «                             ¦   «         }|s|st          d¦  «        ‚t!          ¦   «         }|                     dd¬¦  «         t$          5  t'          |¦  «        }	| j        p|rdnt          |¦  «        }
|€5t          |
|	¦  «        }
t)          ||
¦  «        }|                     ¦   «          n!|                     dd¬¦  «         |t*          |	<   d d d ¦  «         n# 1 swxY w Y   |dz                       ¦   «          t-          | |¦  «         t/          ¦   «         }|	| _        t          |¦  «        | _        |o| j         | _
        |
| _        || _        || _        || _        t          |¦  «        | _        t          |pi ¦  «        | _	        |	| _        t9          |d	z  d
t:          it          | ¦  «        ¥¦  «         t          | ¦  «         t          | ¦  «        S )NrG   z5A Deepy session cannot change between Prime and Zero.Fz?A Deepy session is created only when its first request is sent.TrX   zNew Deepy sessionr^   rÌ   r„  )rH   rI   rc   Ústorage_session_idÚstorage_deepy_typer7   r€   rI  rK  Úsession_environmentÚstorage_title_pendingr¶   r¥   Ústorage_titlerF  Úsession_metadatarU   rf   rM   rÈ   rã   r5   r<  r¾   r5  Ústorage_created_atÚstorage_updated_atrV   r?  ÚSESSION_SCHEMA_VERSION)r6  r‡   rH  rI  rJ  rG  rÕ   Úrequestrv   r¦   r¤   r»   s               r>   Úensure_sessionrW  è  s#  € Ý�ZÐ% 2Ñ&Ô&×,Ò,Ñ.Ô.×4Ò4Ñ6Ô6€JØÔ!ð 	)ØÔ%¨Ò3Ð3Ý#Ð$[Ñ\Ô\Ð\Ý%AÐBTÐBrÐX_ÔXrÑ%sÔ%sˆÔ"Ý&0°Ð1[ÀÔ@[Ñ&\Ô&\ˆÔ#ØÔ(ð 	2­S°Ð1DÀ"Ñ-EÔ-E×-KÒ-KÑ-MÔ-Mð 	2Ý$1µ/À-Ñ2PÔ2PÐRYÔRlÑ$mÔ$mˆGÔ!Ø,1ˆGÔ)Ý  Ñ)Ô)Ð)Ý Ñ(Ô(Ð(Ý�-Ð% 2Ñ&Ô&×,Ò,Ñ.Ô.€GØð c˜<ð cÝÐ aÑbÔbÐbÝ‰?Œ?€DØ‡J‚J�t d€JÑ+Ô+Ð+Ý	ð 
.ð 
.Ý$ TÑ*Ô*ˆ
ØÔ%ÐlÀÐ*kÐ*=Ð*=ÕSbÐcjÑSkÔSkˆØÐÝ! %¨Ñ4Ô4ˆEÝ.¨t°UÑ;Ô;ˆIØ�OŠOÑÔÐÐð �OŠO D°4ˆOÑ8Ô8Ð8Ø$-�I�jÑ!ð
.ð 
.ð 
.ñ 
.ô 
.ð 
.ð 
.ð 
.ð 
.ð 
.ð 
.øøøð 
.ð 
.ð 
.ð 
.ð �Ñ×#Ò#Ñ%Ô%Ð%Ý˜' 9Ñ-Ô-Ð-Ý
‰*Œ*€CØ!+€GÔÝ"% i¡.¤.€GÔØ$0Ð$N¸Ô9NÐ5N€GÔ!Ø!€GÔØ!+€GÔØ!$€GÔØ!$€GÔÝ!=Ð>PÑ!QÔ!Q€GÔÝ",¨[Ð->¸BÑ"?Ô"?€GÔØ(€GÔÝ�˜^Ñ+Ð.>Õ@VÐ-tÕZjÐkrÑZsÔZsÐ-tÑuÔuÐuÝ˜WÑ%Ô%Ð%Ý˜GÑ$Ô$Ð$s   Å%BG3Ç3G7Ç:G7c                óD  — t          | j        pd¦  «        t          | j        pd¦  «        dœ| j        rddini ¥t          | j        pd¦  «        t          | j        pd¦  «        t          | j        pd¦  «        t          | j        ¦  «        dœ¥| j	        r	d| j	        ini ¥S )NrG   rª   Útitle_pendingT©rH  r+  Ú
updated_atrI  Úgallery_workspace_id)
rH   rM  rQ  rP  rN  rS  rT  r€   rI  r\  rE  s    r>   rR  rR    sÎ   € å�'Ô,Ð2°Ñ3Ô3Ý�WÔ*Ð0¨bÑ1Ô1ð	ð 	ð '.Ô&CÐKˆO˜TÐ"Ð"Èð	õ ˜'Ô4Ð:¸Ñ;Ô;Ý˜'Ô4Ð:¸Ñ;Ô;Ý˜'Ô4Ð:¸Ñ;Ô;Ý:¸7Ô;UÑVÔVð	ð 	ð 	ð FMÔEaÐiÐ" GÔ$@ÐAÐAÐgið	ð 	r=   c                óB   — | j         sd S t          | j         ¦  «        dz  S )Nr^   )r5  r
   rE  s    r>   Úsession_workspacer^  #  s(   € ØÔ&ð ØˆtÝ�Ô+Ñ,Ô,¨{Ñ:Ð:r=   Úruntimec                óž  — t          | t          ¦  «        st          d¦  «        ‚|                      d¦  «        }|€d S t          |t          ¦  «        r)t	          |                     dd¦  «        pd¦  «        dk    rt          d¦  «        ‚h d£}|                     |¦  «        r2t          |d         ¦  «        d	vst          |d
         t          ¦  «        st          d¦  «        ‚|d
         }h d£                     |¦  «        rt          |d         t          ¦  «        st          d¦  «        ‚t          t          j
        |¦  «        ¦  «        S )NzInvalid Deepy runtime context.Úpending_actionr„  r   r   z/Invalid Deepy pending-action replay descriptor.>   ÚseedÚphaseÚtop_kÚtop_pÚ	do_sampleÚ	user_textÚtemperatureÚmodel_passesÚrecent_stepsÚmax_new_tokensÚassistant_badgeÚuser_message_idÚgeneration_stateÚthinking_enabledÚcompletion_prefixÚturn_messages_lenÚstream_answer_textÚassistant_message_idÚstream_reasoning_textÚloop_answer_checkpointÚstream_answer_block_idÚincomplete_stop_retriesÚpending_natural_thoughtÚcompleted_thought_contentÚstream_reasoning_block_idÚselected_audio_media_snapshotÚselected_visual_media_snapshotrc  >   rÑ  ÚthoughtÚ	statementrn  z2Incomplete Deepy pending-action replay descriptor.>   ÚpresenceÚsampling_stateÚsampling_enabledr€  z.Invalid Deepy pending-action generation state.)r	  r
  r7   rÒ   r‰   ÚissubsetrH   r=  rK  r   Údeepcopy)r_  r÷  Úrequiredrn  s       r>   Ú_pending_action_from_runtimer…  )  s…  € Ý�g�tÑ$Ô$ð BÝÐ @ÑAÔAÐAØ�[Š[Ð)Ñ*Ô*€FØ€~ØˆtÝ�f�dÑ#Ô#ð S¥s¨6¯:ª:Ð6FÈÑ+JÔ+JÐ+OÈaÑ'PÔ'PÐTUÒ'UÐ'UÝÐ QÑRÔRÐRðð ð €Hð ×Ò˜VÑ$Ô$ð V­¨F°7¬OÑ(<Ô(<ÐDdÐ(dÐ(dÕlvÐw}ð  Qô  xRõ  TXñ  mYô  mYÐ(dÝÐ TÑUÔUÐUØÐ0Ô1ÐØ=Ð=Ð=×FÒFÐGWÑXÔXð RÕ`jÐk{ð  }Mô  lNõ  PTñ  aUô  aUð RÝÐ PÑQÔQÐQÝ•d”m FÑ+Ô+Ñ,Ô,Ð,r=   c                óæ  — | j         r| j        sd S | j        5  | j        }t	          j        | j        ¦  «        }|�4t	          j        | j        ¦  «        }t	          j        | j        ¦  «        }�n8t          |t          ¦  «        rñt          dt          t          |                     dt          | j        ¦  «        ¦  «        pd¦  «        t          | j        ¦  «        ¦  «        ¦  «        }t	          j        | j        d |…         ¦  «        }t#          |                     dd¦  «        pd¦  «                             ¦   «         }|r|                     d|dœ¦  «         t	          j        | j        ¦  «        }n2t	          j        | j        ¦  «        }t	          j        | j        ¦  «        }t*          | j         ||t          | j        ¦  «        t          | j        pd¦  «        t          | j        pd¦  «        t#          | j        pd¦  «        t	          j        | j        ¦  «        dœt	          j        | j        ¦  «        t	          j        | j        ¦  «        | j        dœt	          j        | j        ¦  «        t?          | j         ¦  «        t#          | j!        pd¦  «        t#          | j"        pd¦  «        t#          | j#        pd¦  «        t#          | j$        pd¦  «        |d	œt	          j        | j%        ¦  «        d
g dœdœ}t          | j&        pd¦  «        }tO          | ¦  «        }	t#          | j(        pd¦  «        }
d d d ¦  «         n# 1 swxY w Y   t#          | j        ¦  «        tS          |¦  «        |	||
dœS )Nr   Úpersisted_messages_lenry  rG   rÙ  )rØ  rY  )Úmessagesrò  Úturn_durationsÚtranscript_counterÚrevisionÚinterruption_noticeÚinterruption_history)Útool_settingsÚ!model_selection_runtime_signature)Úpending_chat_mediaÚgenerated_client_idsÚselected_visual_signatureÚselected_audio_signatureÚselected_mesh_signatureÚselected_world_signaturera  r^   )rB   Úmedia)r„  Ú
session_idrp  r–  rö  r_  rJ  r^   )rÕ   ÚcontextÚmetadatar‹  Ú
lock_token)*rM  r5  Ú	turn_lockÚcurrent_turnr   rƒ  Úpending_action_replayÚpending_action_replay_messagesÚ pending_action_replay_transcriptr	  r
  r�   Úminr‰   rÒ   rž   rˆ  rH   rI   r:  Úchat_transcriptÚCONTEXT_SCHEMA_VERSIONÚchat_turn_durationsÚchat_transcript_counterÚchat_revisionrŒ  r�  Úmedia_registryÚtool_ui_settingsr�  r�  r=  r‘  Ú!selected_visual_runtime_signatureÚ selected_audio_runtime_signatureÚselected_mesh_runtime_signatureÚ selected_world_runtime_signaturerO  Úsafe_checkpoint_revisionrR  r3  rK  )r6  Ú
checkpointra  Úsaved_messagesÚsaved_transcriptÚmessage_limitÚcompleted_thoughtr˜  r‹  r™  rš  s              r>   Ú_capture_snapshotr²  ?  s®  € ØÔ%ð ¨WÔ-Hð ØˆtØ	Ô	ð ,;ð ,;ØÔ)ˆ
Ýœ wÔ'DÑEÔEˆØÐ%Ý!œ]¨7Ô+QÑRÔRˆNÝ#œ}¨WÔ-UÑVÔVÐÑÝ˜
¥DÑ)Ô)ð 		FÝ ¥3¥s¨:¯>ª>Ð:RÕTWÐX_ÔXhÑTiÔTiÑ+jÔ+jÐ+oÐnoÑ'pÔ'pÕruÐv}ô  wGñ  sHô  sHñ  $Iô  $Iñ  Jô  JˆMÝ!œ]¨7Ô+;¸N¸]¸NÔ+KÑLÔLˆNÝ # J§N¢NÐ3NÐPRÑ$SÔ$SÐ$YÐWYÑ ZÔ Z× `Ò `Ñ bÔ bÐØ ð [Ø×%Ò%¨{ÐGXÐ&YÐ&YÑZÔZÐZÝ#œ}¨WÔ-DÑEÔEÐÐå!œ]¨7Ô+;Ñ<Ô<ˆNÝ#œ}¨WÔ-DÑEÔEÐå4Ø!Ô4à*Ø.Ý"& wÔ'BÑ"CÔ"CÝ&)¨'Ô*IÐ*NÈQÑ&OÔ&OÝ Ô 5Ð :¸Ñ;Ô;Ý'*¨7Ô+FÐ+LÈ"Ñ'MÔ'MÝ(,¬°gÔ6RÑ(SÔ(Sðð õ ”] 7Ô#9Ñ:Ô:Ý$(¤M°'Ô2JÑ$KÔ$KÐryô  s\ð  ]ð  ]å&*¤m°GÔ4NÑ&OÔ&OÝ(,¨WÔ-IÑ(JÔ(JÝ-0°Ô1ZÐ1`Ð^`Ñ-aÔ-aÝ,/°Ô0XÐ0^Ð\^Ñ,_Ô,_Ý+.¨wÔ/VÐ/\ÐZ\Ñ+]Ô+]Ý,/°Ô0XÐ0^Ð\^Ñ,_Ô,_Ø"0ðð õ  œ=¨Ô)DÑEÔEØ"-¸Ð;Ð;ð1
ð 
ˆõ4 �wÔ7Ð<¸1Ñ=Ô=ˆÝ# GÑ,Ô,ˆÝ˜Ô3Ð9°rÑ:Ô:ˆ
ðY,;ð ,;ð ,;ñ ,;ô ,;ð ,;ð ,;ð ,;ð ,;ð ,;ð ,;øøøð ,;ð ,;ð ,;ð ,;õZ ˜WÔ8Ñ9Ô9ÅjÐQXÑFYÔFYÐgoð  ~Fð  V`ð  að  að  as   ˜LMÍMÍMc                óP   — |                       ¦   «         }|j        d›d|j        d›�S )NÚxr  )ÚstatÚst_sizeÚst_mtime_ns)rB   rµ  s     r>   Ú_fingerprintr¸  r  s.   € Ø�9Š9‰;Œ;€DØŒlÐ3Ð3Ð3˜tÔ/Ð3Ð3Ð3Ð3r=   c                ór  — | dz  }|                      ¦   «         sg S |dz  }g }t          |                     d¦  «        ¦  «        D �]p}|                     ¦   «         r5|j                             ¦   «         t          vs|                     |¦  «        rŒM|                     | ¦  «         	                    ¦   «         }t          j        |                     ¦   «                              d¦  «        ¦  «                             ¦   «         d d…         }|                     d|› �t!          |¦  «        t#          |¦  «        t$          j                             t#          |                     ¦   «         ¦  «        ¦  «        ddi |j                             dd	¦  «        dd|j        d
gt3          |¦  «        |dœ¦  «         �Œr|S )Nr^   ÚsandboxÚ*r[   é   Ú
workspace_rG   rÚ   rŒ   r¢  )Úmedia_idÚ
media_typerB   Úpath_keyÚsourceÚ	client_idÚsettingsÚlabelÚprompt_summaryÚpromptÚfilenameÚaccessÚfingerprintÚsession_relative_path)rÍ   ÚsortedÚrglobrÐ   rµ   rc   Ú_MEDIA_EXTENSIONSrí   rî   r  ÚhashlibÚsha1r¬   r  Ú	hexdigestr:  Ú_detect_media_typerH   rr   rB   r  rN   Ústemrs   rm   r¸  )rÕ   r^   rº  rÔ   rB   r  Údigests          r>   Ú_workspace_mediarÔ  w  sG  € Ø˜KÑ'€IØ×ÒÑÔð Øˆ	Ø˜)Ñ#€GØ€GÝ�y—’ sÑ+Ô+Ñ,Ô,ð ^ñ ^ˆØ�|Š|‰~Œ~ð 	 ¤×!2Ò!2Ñ!4Ô!4Õ<MÐ!MÐ!MÐQU×QdÒQdÐelÑQmÔQmÐ!MØØ×#Ò# IÑ.Ô.×7Ò7Ñ9Ô9ˆÝ”˜h×/Ò/Ñ1Ô1×8Ò8¸ÑAÔAÑBÔB×LÒLÑNÔNÈsÐPRÈsÔSˆØ�ŠÐ$9°Ð$9Ð$9ÕI[Ð\`ÑIaÔIaÕknÐosÑktÔktõ  CEô  CJ÷  CSò  CSõ  TWð  X\÷  Xdò  Xdñ  Xfô  Xfñ  Tgô  Tgñ  Chô  Chð  tð  NPð  ^`ð  koô  kt÷  k|ò  k|ð  }@ð  BEñ  kFô  kFð  Z\ð  hjð  x|ô  xAð  NUð  MVõ  gsð  txñ  gyô  gyð  T\ð  ]ð  ]ñ  	^ô  	^ð  	^ñ  	^Ø€Nr=   rÔ   Úmodec                ó’  — g }t          ¦   «         }t          ¦   «         }|D �]¾}t          |t          ¦  «        r|                     d¦  «        dk    rŒ2t          t          j        |¦  «        ¦  «        }d„ t          |                     dg ¦  «        pg ¦  «        D ¦   «         }|s`t          |                     dd¦  «        ¦  «         
                    ¦   «                              ¦   «         dk    r|                     d¦  «         |sŒçt          |¦  «        |d<   t          |                     dd¦  «        pd¦  «         
                    ¦   «         }	|	rt          |	¦  «        nd }
|	r|                     |	¦  «        nd }t          |t          ¦  «        r||d	<   n,|
�*|
                     ¦   «         r|                     d	d ¦  «         |
��¢|
                     ¦   «         �r�	 t%          |
¦  «        |d
<   n# t&          $ r Y nw xY w|t(          k    �r]t          |                     dd¦  «        ¦  «        dk    �r5t+          j        ddt          |                     dd¦  «        ¦  «        ¦  «         
                    d¦  «        pd}| dz  |› d|
j        › �z  }|j                             dd¬¦  «         |                     ¦   «         rh|                     ¦   «         j        |
                     ¦   «         j        k    s4|                     ¦   «         j        |
                     ¦   «         j        k    rt;          j        |
|¦  «         |                     | ¦  «                              ¦   «         |d<   |
�>tB          j"         #                    t          |
 $                    ¦   «         ¦  «        ¦  «        nd}|r||v r�Œ’|r|                     |¦  «         | %                    |¦  «         �ŒÀtM          | ¦  «        D ]V}|d         |vrJ|                     |d         ¦  «        }t          |t          ¦  «        r||d	<   | %                    |¦  «         ŒW|S )NrÁ  r^   c                ót   — h | ]5}t          |¦  «                             ¦   «                              ¦   «         ’Œ6S r<   )rH   rI   rc   )r­   r{   s     r>   r¯   z!_prepare_media.<locals>.<setcomp>Ž  s6   € ÐaÐaÐa°5•C˜‘J”J×$Ò$Ñ&Ô&×,Ò,Ñ.Ô.ÐaÐaÐar=   rÈ  rG   Údeepyr¢  rB   Úsession_referencerÉ  ú[^A-Za-z0-9_-]+rÚ   r¾  r–  TrX   Úsession_copy_pathrÀ  )'r  rþ   r	  r
  rÒ   rK  r   rƒ  r=  rH   rI   rc   ÚaddrË  r
   r  rÐ   rô   r¸  ri   r}   rš   r•   rm   rÜ   rf   rµ  r¶  r·  rj   Úcopy2rî   r  rr   rB   r  rN   r:  rÔ  )rÕ   rÔ   rÕ  ÚpreparedÚknown_pathsÚ
referencesrÝ  rª  ÚaccessesÚraw_pathrB   r  Úsafe_idrE  rÀ  s                  r>   Ú_prepare_mediarä  †  sH  € Ø€HÝ‘%”%€KÝ"Ñ$Ô$€JØð " ñ " ˆ
Ý˜*¥dÑ+Ô+ð 	¨z¯~ª~¸hÑ/GÔ/GÈ;Ò/VÐ/VØÝ�DœM¨*Ñ5Ô5Ñ6Ô6ˆØaÐa½DÀÇÂÈHÐVXÑAYÔAYÐA_Ð]_Ñ<`Ô<`ÐaÑaÔaˆØð 	"�C §
¢
¨8°RÑ 8Ô 8Ñ9Ô9×?Ò?ÑAÔA×GÒGÑIÔIÈWÒTÐTØ�LŠL˜Ñ!Ô!Ð!Øð 	ØÝ! (Ñ+Ô+ˆˆxÑÝ�v—z’z &¨"Ñ-Ô-Ð3°Ñ4Ô4×:Ò:Ñ<Ô<ˆØ!)Ð3�t�H‰~Œ~ˆ~¨tˆØ3;ÐE�J×%Ò% hÑ/Ô/Ð/Àˆ	Ý�i¥Ñ&Ô&ð 	2Ø*3ˆFÐ&Ñ'Ð'ØÐ $§,¢,¡.¤.ÐØ�JŠJÐ*¨DÑ1Ô1Ð1ØÑ §¢¡¤ÑðÝ(4°TÑ(:Ô(:��}Ñ%Ð%øÝð ð ð Ø�ðøøøàÕ)Ò)Ñ)­c°&·*²*¸XÀrÑ2JÔ2JÑ.KÔ.KÈ{Ò.ZÑ.ZÝœ&Ð!3°S½#¸f¿jºjÈÐU\Ñ>]Ô>]Ñ:^Ô:^Ñ_Ô_×eÒeÐfiÑjÔjÐuÐnu�Ø'¨'Ñ1°wÐ4LÐ4LÀÄÐ4LÐ4LÑL�ØÔ"×(Ò(°ÀÐ(ÑEÔEÐEØ"×*Ò*Ñ,Ô,ð 4°×0@Ò0@Ñ0BÔ0BÔ0JÈdÏiÊiÉkÌkÔNaÒ0aÐ0aÐep×euÒeuÑewÔewô  fDð  HL÷  HQò  HQñ  HSô  HSô  H_ò  f_ð  f_Ý”L  {Ñ3Ô3Ð3Ø.9×.EÒ.EÀiÑ.PÔ.P×.YÒ.YÑ.[Ô.[�Ð*Ñ+Ø<@Ð<L•2”7×#Ò#¥C¨¯ª©¬Ñ$7Ô$7Ñ8Ô8Ð8ÐRTˆØð 	˜ KÐ/Ð/ÙØð 	&Ø�OŠO˜HÑ%Ô%Ð%Ø�Š˜ÑÔÐÑÝ" 9Ñ-Ô-ð $ð $ˆØ�*Ô [Ð0Ð0à"×)Ò)¨&°¬.Ñ9Ô9ˆIÝ˜)¥TÑ*Ô*ð 8Ø.7�Ð*Ñ+Ø�OŠO˜FÑ#Ô#Ð#øØ€Os   ÇG0Ç0
G=Ç<G=©Úrebind_pathsr˜  ræ  c               óÆ  ‡	— t          t                               t          j        dt          j        |                      di ¦  «        ¦  «        t          j        ¦  «        ¦  «        ¦  «        }g }|                      dg ¦  «        D �].}t          |t          ¦  «        r|                     d¦  «        sŒ.t          |                     d¦  «        pi ¦  «        x}|d<   |                     d¦  «        dk    rdnd}t          |d         |¦  «        Š	|r5t          t                               g |d	         ¢‰	¢¦  «        ¦  «        |d	<   nO|                     d	¦  «        s:t          t                               g ˆ	fd
„|D ¦   «         ¢‰	¢¦  «        ¦  «        |d	<   |                     |d         ||f¦  «         �Œ0t          |t          |¦  «        ¦  «        D ]\  \  }}}Š	‰	|d	<   Œd S )Nz(?:visual|audio):[a-f0-9]{12}rp  r–  rB   rÃ  r¿  ÚaudioÚvisualr   c              3  ól   •K  — | ].}|                      ¦   «         ‰v ¯|                      ¦   «         V — Œ/d S rT   )rc   )r­   r¾  Úidss     €r>   rÝ   z._preserve_gallery_media_ids.<locals>.<genexpr>Ä  s‚   øè è € ð  BNð  BNÐW_Ðu}÷  vDò  vDñ  vFô  vFð  JMð  vMð  vMÀ(Ç.Â.ÑBRÔBRð  vMð  vMð  vMð  vMð  BNð  BNr=   )r=  r
  r>  rš   Úfindallr#  r$  rÒ   Ú
IGNORECASEr	  r   r:  Úzipr   )
r˜  ræ  Úreferenced_idsr  rª  rÃ  ÚgalleryÚ_pathÚ_galleryrë  s
            @r>   Ú_preserve_gallery_media_idsró  ·  s;  ø€ Ý�$Ÿ-š-­¬
Ð3SÕUYÔU_Ð`g×`kÒ`kÐlrÐtvÑ`wÔ`wÑUxÔUxÕz|ô  {Hñ  )Iô  )Iñ  Jô  Jñ  Kô  K€NØ€EØ—+’+˜g rÑ*Ô*ð :ñ :ˆÝ˜&¥$Ñ'Ô'ð 	¨v¯zªz¸&Ñ/AÔ/Að 	ØÝ(,¨V¯ZªZ¸
Ñ-CÔ-CÐ-IÀrÑ(JÔ(JÐJˆ�6˜*Ñ%Ø#ŸZšZ¨Ñ5Ô5¸Ò@Ð@�'�'ÀhˆÝ  v¤°Ñ8Ô8ˆØð 	WÝ,0µ·²Ð?eÀÐJ]ÔA^Ð?eÐadÐ?eÑ1fÔ1fÑ,gÔ,gˆHÐ(Ñ)Ð)Ø—’Ð1Ñ2Ô2ð 	Wå,0µ·²ð  @Uð  BNð  BNð  BNð  BNÐcqð  BNñ  BNô  BNð  @Uð  QTð  @Uñ  2Vô  2Vñ  -Wô  -WˆHÐ(Ñ)Ø�Š�f˜V”n g¨xÐ8Ñ9Ô9Ð9Ñ9Ý,/°Õ7UÐV[Ñ7\Ô7\Ñ,]Ô,]ð ,ð ,Ñ(Ñ#ˆ�˜( SØ(+ˆÐ$Ñ%Ð%ð,ð ,r=   Úsnapshotc           	     óV  — t          | d         ¦  «        }|                     ¦   «         st          d¦  «        ‚|dz  }t          |¦  «        }t	          |                     dd¦  «        ¦  «        | d         k    rt          d¦  «        ‚| d         }| d	         }t          |t          |d
                              dg ¦  «        pg ¦  «        ¦  «        \  }}}||d
         d<   t          t          ||dœ|d         d<   t          |d         ¦  «        }	t          |t          |                     dg ¦  «        pg ¦  «        |	¦  «        }
|
|d<   t          |¦  «         d„ |
D ¦   «         |d         d<   t          ¦   «         }t          |d         |d         dœ|                     d¦  «        rddini ¥|d         |d         ||	dœ¥|                     d¦  «        r
d|d         ini ¥t!          | d         ¦  «        t#          |d
         d         ¦  «        ||t#          |
¦  «        dœ¥}t          |dz  ¦  «                             d g ¦  «        }|r||d <   ||d!<   t!          | d         ¦  «        |d"<   t%          |d#z  |¦  «         t%          |dz  |¦  «         |t!          | d         ¦  «        |d$œS )%NrÕ   z=Deepy session directory disappeared while it was being saved.rø   r*  rG   rš  z5Deepy session lock changed before the save completed.r˜  r™  rp  rò  )r„  rB   r–  Ú
card_countrö  r÷  rI  r–  c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )rÁ  r^   ©rÒ   rÌ  s     r>   rQ  z#_write_snapshot.<locals>.<listcomp>Û  s/   € Ð$gÐ$gÐ$g°À6Ç:Â:ÈhÑCWÔCWÐ[fÒCfÐCf VÐCfÐCfÐCfr=   r^   r«   r¤   )r„  r«   r¤   rY  TrH  r+  rZ  r\  r‹  rˆ  )Úcontext_revisionÚmessage_countrö  Úreplay_sequenceÚmedia_countrÌ   rÞ   Úsaved_atÚcheckpoint_revisionrõ  )r×   r‹  rû  )r
   rÍ   r7   rÑ   rH   rÒ   rA   r  r=  rŒ  r‰  r€   rä  ró  r¾   rU  r‰   rž   r?  )rô  rÕ   rû   Úlockr˜  r™  rû  rö  Úconsolidated_transcriptrÕ  r–  r[  r×   rÞ   s                 r>   Ú_write_snapshotr  Ê  s2  € Ý�X˜kÔ*Ñ+Ô+€IØ×ÒÑÔð aÝÐ _Ñ`Ô`Ð`Ø˜OÑ+€IÝ�iÑ Ô €DÝ
ˆ4�8Š8�G˜RÑ Ô Ñ!Ô! X¨lÔ%;Ò;Ð;Ý Ð!XÑYÔYÐYØ�yÔ!€GØ˜
Ô#€HÝ;MÈiÕY]Ð^eÐflÔ^m×^qÒ^qÐr~ð  ACñ  _Dô  _Dð  _Jð  HJñ  ZKô  ZKñ  <Lô  <LÑ8€O�ZÐ!8Ø$;€GˆF„O�LÑ!Ý1JÕTgð  {Jð  Zdð  eð  e€GˆD„M�(ÑÝ'¨Ð1EÔ(FÑGÔG€DÝ˜9¥d¨7¯;ª;°wÀÑ+CÔ+CÐ+IÀrÑ&JÔ&JÈDÑQÔQ€EØ€GˆGÑÝ Ñ(Ô(Ð(Ø$gÐ$g¸%Ð$gÑ$gÔ$g€GˆKÔ˜Ñ!Ý‘”€Jå0Ø�tŒnØ˜'Ô"ðð ð '/§l¢l°?Ñ&CÔ&CÐKˆO˜TÐ"Ð"Èð	ð
 ˜|Ô,Ø˜|Ô,Ø Ø"ðð ð ð JRÏÊÐVlÑImÔImÐuÐ" HÐ-CÔ$DÐEÐEÐsuðõ   ¨Ô 4Ñ5Ô5Ý˜W Vœ_¨ZÔ8Ñ9Ô9Ø Ø*Ý˜5‘z”zðð ð €Hõ  & i°.Ñ&@ÑAÔA×EÒEÐF\Ð^`ÑaÔaÐØð @Ø+?ˆÐ'Ñ(Ø$€GˆJÑÝ%(¨°*Ô)=Ñ%>Ô%>€GÐ!Ñ"Ý�˜^Ñ+¨WÑ5Ô5Ð5Ý�˜^Ñ+¨XÑ6Ô6Ð6Ø ­c°(¸:Ô2FÑ.GÔ.GÐ\kÐlÐlÐlr=   Úfuturer   c           
     óN  — 	 |                      ¦   «         }| j        |cxk    r|d         d         k    r¢n d S t          |d         d         ¦  «        | _        t	          t          | j        pd¦  «        t          |d         ¦  «        ¦  «        | _        t          |                     dt          | dd¦  «        ¦  «        pd¦  «        | _	        d| _
        d S d S # t          $ rB}| j        |k    r,t          |¦  «        | _
        t          d	|› �¦  «         Y d }~d S Y d }~d S d }~ww xY w)
Nr×   r«   r[  r   r‹  rû  Úui_replay_sequencerG   z,[Assistant] Continuous session save failed: )r<  rM  rH   rT  r�   r‰   Úsaved_checkpoint_revisionrÒ   Úgetattrr  r=  r3  Úprint)r6  r¦   r  r<  rZ  s        r>   Ú_save_completedr  ÷  s^  € ð,Ø—’‘”ˆð Ô%¨ÐOÐOÒOÐO°v¸jÔ7IÈ$Ô7OÒOÐOÐOÐOÐOÐOÝ),¨V°JÔ-?ÀÔ-MÑ)NÔ)NˆGÔ&Ý03µC¸Ô8YÐ8^Ð]^Ñ4_Ô4_ÕadÐekÐlvÔewÑaxÔaxÑ0yÔ0yˆGÔ-Ý),¨V¯ZªZÐ8IÍ7ÐSZÐ\pÐrsÑKtÔKtÑ-uÔ-uÐ-zÐyzÑ){Ô){ˆGÔ&Ø)+ˆGÔ&Ð&Ð&ð	 PÐOøõ ð Hð Hð HØÔ%¨Ò3Ð3Ý),¨S©¬ˆGÔ&ÝÐFÀÐFÐFÑGÔGÐGÐGÐGÐGÐGÐGÐGð 4Ð3Ð3Ð3Ð3Ð3øøøøðHøøøs   ‚C Ã
D$Ã"1DÄD$úFuture | Nonec                óæ   ‡ ‡— t          ‰ ¦  «        }|€d S t                               t          |¦  «        }|‰ _        t          |d         d         ¦  «        Š|                     ˆ ˆfd„¦  «         |S )Nr™  r«   c                ó&   •— t          ‰‰| ¦  «        S rT   )r  )Ú	completedr6  r¦   s    €€r>   r�   z#schedule_autosave.<locals>.<lambda>  s   ø€ ­¸wÈ
ÐT]Ñ/^Ô/^€ r=   )r²  Ú_WRITERÚsubmitr  r4  rH   Úadd_done_callback)r6  rô  r  r¦   s   `  @r>   rC  rC    st   øø€ Ý  Ñ)Ô)€HØÐØˆtÝ�^Š^�O¨XÑ6Ô6€FØ#)€GÔ Ý�X˜jÔ)¨$Ô/Ñ0Ô0€JØ
×ÒÐ^Ð^Ð^Ð^Ð^Ñ_Ô_Ð_Ø€Mr=   c                ó`   — t          | ¦  «        }|€d S |                     ¦   «         }|d         S )Nr×   )rC  r<  )r6  r  r<  s      r>   Úflush_sessionr    s1   € Ý˜wÑ'Ô'€FØ€~ØˆtØ�]Š]‰_Œ_€FØ�*ÔÐr=   c                óF  ‡— t          ¦   «         }|                     ¦   «         sg S t          | pd¦  «                             ¦   «                              ¦   «         }g }t          |¦  «                             ¦   «         D ]Š\  }Š‰                     d¦  «        rŒ|rLt          ‰                     dd¦  «        ¦  «                             ¦   «                              ¦   «         |k    rŒi|                     ˆfd„dD ¦   «         ¦  «         Œ‹| 	                    d„ d¬¦  «         |S )	NrG   Úarchived_atrH  c                ó<   •— i | ]}|‰                      |¦  «        “ŒS r<   rø  )r­   r  r×   s     €r>   rN  z!list_sessions.<locals>.<dictcomp>$  s9   ø€ ð  lð  lð  l°C˜˜hŸlšl¨3Ñ/Ô/ð  lð  lð  lr=   )r«   r¤   rH  r+  r[  rI  rú  rü  c                óH   — t          |                      dd¦  «        ¦  «        S )Nr[  rG   )rH   rÒ   )r®   s    r>   r�   zlist_sessions.<locals>.<lambda>%  s   € ¥3 t§x¢x°¸bÑ'AÔ'AÑ#BÔ#B€ r=   T)r  Úreverse)
rU   rÍ   rH   rI   rc   rÄ   rà   rÒ   r:  Úsort)rH  rv   Únormalized_typeÚsessionsrâ   r×   s        @r>   r²   r²     sC  ø€ Ý‰?Œ?€DØ�;Š;‰=Œ=ð Øˆ	Ý˜*Ð*¨Ñ+Ô+×1Ò1Ñ3Ô3×9Ò9Ñ;Ô;€OØ€HÝ 2°4Ñ 8Ô 8× ?Ò ?Ñ AÔ Að mð mÑˆ
�HØ�<Š<˜Ñ&Ô&ð 	ØØð 	�s 8§<¢<°¸bÑ#AÔ#AÑBÔB×HÒHÑJÔJ×PÒPÑRÔRÐVeÒeÐeØØ�Šð  lð  lð  lð  lð  <kð  lñ  lô  lñ  	mô  	mð  	mð  	mØ‡M‚MÐBÐBÈD€MÑQÔQÐQØ€Or=   r&  údict[str, str]c                ób  ‡— t          | t          ¦  «        r ˆfd„|                      ¦   «         D ¦   «         S t          | t          ¦  «        rˆfd„| D ¦   «         S t          | t          ¦  «        r@| ‰v r‰|          S | }‰                     ¦   «         D ]\  }}|                     ||¦  «        }Œ|S | S )Nc                ó8   •— i | ]\  }}|t          |‰¦  «        “ŒS r<   ©r%  )r­   r  rM  r&  s      €r>   rN  z"_replace_paths.<locals>.<dictcomp>+  s)   ø€ ÐYÐYÐY¹Z¸SÀ%�•^ E¨<Ñ8Ô8ÐYÐYÐYr=   c                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r<   r  )r­   rM  r&  s     €r>   rQ  z"_replace_paths.<locals>.<listcomp>-  s#   ø€ ÐGÐGÐG¸•˜u lÑ3Ô3ÐGÐGÐGr=   )r	  r
  r  r=  rH   rs   )r{   r&  Úupdatedr(  Úreplacements    `   r>   r%  r%  )  sÑ   ø€ Ý�%�ÑÔð ZØYÐYÐYÐYÈ5Ï;Ê;É=Ì=ÐYÑYÔYÐYÝ�%�ÑÔð HØGÐGÐGÐGÀÐGÑGÔGÐGÝ�%�ÑÔð Ø�LÐ Ð Ø Ô&Ð&ØˆØ%1×%7Ò%7Ñ%9Ô%9ð 	=ð 	=Ñ!ˆH�kØ—o’o h°Ñ<Ô<ˆGˆGØˆØ€Lr=   c                ó  ‡‡— t          | t          ¦  «        rJt          | ¦  «        ddhk    r| d         ‰k    ri | ¥d‰i¥S ˆˆfd„|                      ¦   «         D ¦   «         S t          | t          ¦  «        rˆˆfd„| D ¦   «         S | S )Nr  rB   c                ó:   •— i | ]\  }}|t          |‰‰¦  «        “ŒS r<   ©Ú_rebind_session_references)r­   r  rM  Únew_idÚold_ids      €€r>   rN  z._rebind_session_references.<locals>.<dictcomp><  s-   ø€ ÐgÐgÐgÉ:È3ÐPU�Õ/°°v¸vÑFÔFÐgÐgÐgr=   c                ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS r<   r#  )r­   rM  r%  r&  s     €€r>   rQ  z._rebind_session_references.<locals>.<listcomp>>  s&   ø€ ÐUÐUÐUÀeÕ*¨5°&¸&ÑAÔAÐUÐUÐUr=   )r	  r
  r  r  r=  )r{   r&  r%  s    ``r>   r$  r$  8  s´   øø€ Ý�%�ÑÔð hÝˆu‰:Œ:Ð,¨fÐ5Ò5Ð5¸%Ð@RÔ:SÐW]Ò:]Ð:]Ø8�eÐ8Ð/°Ð8Ð8Ð8ØgÐgÐgÐgÐgÐY^×YdÒYdÑYfÔYfÐgÑgÔgÐgÝ�%�ÑÔð VØUÐUÐUÐUÐUÈuÐUÑUÔUÐUØ€Lr=   r(  r   c                óú  — |r||k    rd S || |<   t           j                             |¦  «                             dd¦  «        }t           j                             |¦  «                             dd¦  «        }|| |<   t          j                             |d¬¦  «        | t          j                             |d¬¦  «        <   t          j        |d¬¦  «        dd…         | t          j        |d¬¦  «        dd…         <   d S )Nr  r  r  Fr  r   r  )	rr   rB   Únormpathrs   r   r!  r"  r#  r$  )r&  r(  r   Únormalized_originalÚnormalized_replacements        r>   Ú_register_path_replacementr,  B  sõ   € Øð �x ;Ò.Ð.ØˆØ(€L�ÑÝœ'×*Ò*¨8Ñ4Ô4×<Ò<¸TÀ3ÑGÔGÐÝœW×-Ò-¨kÑ:Ô:×BÒBÀ4ÈÑMÔMÐØ(>€LÐ$Ñ%ÝFLÄl×FXÒFXÐYoÐvyÐFXÑFzÔFz€L•”×#Ò#Ð$7¸cÐ#ÑBÔBÑCÝCGÄ:ÈkÐhmÐCnÑCnÔCnÐopÐqsÐosÔCt€L•”˜H°5Ð9Ñ9Ô9¸!¸B¸$Ô?Ñ@Ð@Ð@r=   Úrelative_pathc                óì   — | t          |pd¦  «                             dd¦  «        z                       ¦   «         }	 |                     | ¦  «         n"# t          $ r}t          d¦  «        |‚d }~ww xY w|S )NrG   r  r  z7Deepy session context contains an unsafe relative path.)rH   rs   rN   rî   rX  r7   )rÕ   r-  rQ   rZ  s       r>   r  r  M  s�   € Ø�S Ð!4°"Ñ5Ô5×=Ò=¸dÀCÑHÔHÑH×QÒQÑSÔS€IðdØ×Ò˜iÑ(Ô(Ð(Ð(øÝð dð dð dÝÐ YÑZÔZÐ`cÐcøøøøðdøøøàÐs   ¼A Á
A1ÁA,Á,A1ú tuple[list[dict[str, Any]], int]c                ó¢  — |                      di ¦  «                              di ¦  «        }|r$t          |t          ¦  «        st          d¦  «        ‚t          |t          ¦  «        r’|r�t	          |                      dd¦  «        pd¦  «        t
          k    rt          d¦  «        ‚t          |                      dd¦  «        pd¦  «        }t          | |¬	¦  «        \  }}}||k    rt          d
¦  «        ‚||fS t          |                      di ¦  «                              dg ¦  «        pg ¦  «        }t          g t          g |¦  «        ¦  «        dfS )Nrö  r÷  rø  rB   rG   rù  r–  r   r|  rú  rp  rò  )rÒ   r	  r
  r7   rH   r‰  r‰   r•  r=  rñ  rã  )rÕ   r˜  r÷  Úexpected_sequencer�  r‘  Ú_last_sequencerò  s           r>   Ú_session_replay_commandsr3  V  sR  € Ø�[Š[˜˜rÑ"Ô"×&Ò& x°Ñ4Ô4€FØð G•j ­Ñ.Ô.ð GÝÐ EÑFÔFÐFÝ�&�$ÑÔð * Fð *Ýˆv�zŠz˜& "Ñ%Ô%Ð+¨Ñ,Ô,Õ0CÒCÐCÝ#Ð$KÑLÔLÐLÝ §
¢
¨?¸AÑ >Ô >Ð CÀ!ÑDÔDÐÝ5EÀiÐ^oÐ5pÑ5pÔ5pÑ2ˆÐ" NØÐ0Ò0Ð0Ý#Ð$LÑMÔMÐMØÐ)Ð)Ð)Ý�g—k’k &¨"Ñ-Ô-×1Ò1°,ÀÑCÔCÐIÀrÑJÔJ€JÝ$ RÕ)DÀRÈÑ)TÔ)TÑUÔUÐWXÐXÐXr=   c           	     ó^  — t          | ¦  «        }t          |dz  ¦  «        }|                     d¦  «        rt          d¦  «        ‚t          |dz  ¦  «        }t	          |                     dd¦  «        ¦  «        | k    s't	          |                     dd¦  «        ¦  «        | k    rt          d¦  «        ‚t          |                     d	d
¦  «        pd
¦  «        t          k    s.t          |                     d	d
¦  «        pd
¦  «        t          k    rt          d¦  «        ‚t	          |pd¦  «                             ¦   «          	                    ¦   «         }t	          |                     dd¦  «        ¦  «                             ¦   «          	                    ¦   «         }||k    r:t          d| 
                    ¦   «         › d| 
                    ¦   «         › d�¦  «        ‚t          |                     di ¦  «        t          ¦  «        st          d¦  «        ‚t          |                     di ¦  «        ¦  «         t          ||¦  «         t          |                     dg ¦  «        pg ¦  «        D ]x}t          |t          ¦  «        sŒd|v r t                                |d         ¦  «         dD ]9}	t	          |                     |	d¦  «        pd¦  «        }
|
rt%          ||
¦  «         Œ:Œy|dz  }|d uo1|j        | k    o&t)          t	          |j        pd¦  «        ¦  «        |k    }|                     ¦   «         ry|swt          |¦  «        }t/          t          |                     dd
¦  «        pd
¦  «        ¦  «        r6t1          dt          |                     dd
¦  «        pd
¦  «        › d�¦  «        ‚|S )NrÌ   r  úCRestore this archived session and its workspace before resuming it.rõ  r«   rG   r—  ú5Deepy session identifiers do not match its directory.r„  r   ú1This Deepy session was created by a newer format.rH  úThis is a Deepy ú' session and cannot be opened in Deepy r_   rp  ú#Invalid Deepy session chat context.r_  r–  rÙ  ©rÊ  rÛ  rø   rù   r,  )ré   rÑ   rÒ   r7   rH   r‰   rU  r¢  rI   rc   r¤   r	  r
  r…  r3  r=  rþ   r  r  rM  r
   r2  rÐ   rú   rA   )r¦   rH  Úactive_sessionrÕ   r×   r˜  Úrequested_typeÚstored_typerª  r  r-  rû   Úactive_lockrÿ  s                 r>   Úvalidate_sessionr@  f  sÿ  € Ý˜ZÑ(Ô(€IÝ˜) nÑ4Ñ5Ô5€HØ‡|‚|�MÑ"Ô"ð gÝÐ eÑfÔfÐfÝ˜ ^Ñ3Ñ4Ô4€GÝ
ˆ8�<Š<˜˜bÑ!Ô!Ñ"Ô" jÒ0Ð0µC¸¿ºÀLÐRTÑ8UÔ8UÑ4VÔ4VÐZdÒ4dÐ4dÝÐ WÑXÔXÐXÝ
ˆ8�<Š<Ð(¨!Ñ,Ô,Ð1°Ñ2Ô2Õ5KÒKÐKÍsÐSZ×S^ÒS^Ð_oÐqrÑSsÔSsÐSxÐwxÑOyÔOyõ  }Sò  PSð  PSÝÐ SÑTÔTÐTÝ˜Ð) rÑ*Ô*×0Ò0Ñ2Ô2×8Ò8Ñ:Ô:€NÝ�h—l’l <°Ñ4Ô4Ñ5Ô5×;Ò;Ñ=Ô=×CÒCÑEÔE€KØ˜Ò$Ð$Ýð  !I°;×3DÒ3DÑ3FÔ3Fð  !Ið  !IÐo}÷  pDò  pDñ  pFô  pFð  !Ið  !Ið  !Iñ  Jô  Jð  	JÝ�g—k’k &¨"Ñ-Ô-­tÑ4Ô4ð GÝÐ EÑFÔFÐFÝ  §¢¨Y¸Ñ!;Ô!;Ñ<Ô<Ð<Ý˜Y¨Ñ0Ô0Ð0Ý�w—{’{ 7¨BÑ/Ô/Ð5°2Ñ6Ô6ð ?ð ?ˆÝ˜&¥$Ñ'Ô'ð 	ØØ &Ð(Ð(Ý×&Ò& vÐ.AÔ'BÑCÔCÐCØAð 	?ð 	?ˆCÝ §
¢
¨3°Ñ 3Ô 3Ð 9°rÑ:Ô:ˆMØð ?Ý$ Y°Ñ>Ô>Ð>øð	?ð ˜OÑ+€IØ ¨Ð,ð  d°Ô1RÐV`Ò1`ð  dÕeiÕjmÐn|ô  oOð  oUð  SUñ  kVô  kVñ  fWô  fWð  [dò  fd€KØ×ÒÑÔð r ;ð rÝ˜)Ñ$Ô$ˆÝ�#˜dŸhšh u¨aÑ0Ô0Ð5°AÑ6Ô6Ñ7Ô7ð 	rÝ$Ð%pÕQTÐUY×U]ÒU]Ð^cÐefÑUgÔUgÐUlÐklÑQmÔQmÐ%pÐ%pÐ%pÑqÔqÐqØ€Or=   c                óì  — t          |¦  «        }t          |dz  ¦  «        }|                     d¦  «        rt          d¦  «        ‚t          |dz  ¦  «        }t	          |                     dd¦  «        ¦  «        |k    s't	          |                     dd¦  «        ¦  «        |k    rt          d¦  «        ‚t          |                     d	d
¦  «        pd
¦  «        t          k    s.t          |                     d	d
¦  «        pd
¦  «        t          k    rt          d¦  «        ‚t	          |pd¦  «                             ¦   «          	                    ¦   «         }t	          |                     dd¦  «        ¦  «                             ¦   «          	                    ¦   «         }||k    r:t          d| 
                    ¦   «         › d| 
                    ¦   «         › d�¦  «        ‚t          |¦  «         t          ¦   «         }|                     |¦  «        }i }	t          |                     dg ¦  «        pg ¦  «        }
g }|
D �]¿}t          |t           ¦  «        sŒt	          |                     dd¦  «        p|                     dd¦  «        pd¦  «        }d|v r�|                     |d         ¦  «        }|rrt%          |¦  «                             ¦   «         rQ|rt)          |	||¦  «         ||d<   t*          j                             |¦  «        |d<   |                     dd ¦  «         Œçt	          |                     dd¦  «        pd¦  «        }|ršt3          ||¦  «        }|                     ¦   «         rv|r1|t	          |¦  «        k    rt)          |	|t	          |¦  «        ¦  «         t	          |¦  «        |d<   t*          j                             t	          |¦  «        ¦  «        |d<   �Œ¨d|vr%|r#t%          |¦  «                             ¦   «         r�ŒÑt	          |                     dd¦  «        pd¦  «        }|rt3          ||¦  «        nd }|�‰|                     ¦   «         ru|rt)          |	|t	          |¦  «        ¦  «         t	          |¦  «        |d<   t*          j                             t	          |                     ¦   «         ¦  «        ¦  «        |d<   �Œ•|r(|                     |¦  «         d|v r||d<   dx|d<   |d<   �ŒÁt7          ||	¦  «        }t          |d¬¦  «         t9          ||¦  «        \  }}|                     t7          ||	¦  «        ¦  «        }|                     di ¦  «        }t          |t           ¦  «        st          d¦  «        ‚|                     di ¦  «        }t          |t           ¦  «        r+t;          d„ |                     ¦   «         D ¦   «         ¦  «        rt          d¦  «        ‚t?          | |¦  «         || _         t	          |¦  «        | _!        t	          |                     dd¦  «        pd¦  «        | _"        tG          |                     d d!¦  «        ¦  «        | _$        || _%        t	          |                     d"d¦  «        pd¦  «        | _&        t	          |                     d#d¦  «        pd¦  «        | _'        tQ          |                     d$¦  «        ¦  «        | _)        t	          |                     d%d¦  «        pd¦  «        | _*        tW          |                     d&i ¦  «        ¦  «        | _,        || _-        t          |                     d'g ¦  «        pg ¦  «        | _.        t!          |¦  «        | _/        t          |                     d(g ¦  «        pg ¦  «        | _0        tc          | j0        ¦  «        D ]_\  }}t          |t           ¦  «        rE|                     d)¦  «        r0d!|d)<   d*|d+<   |                     d,te          ||¦  «        d-œ¦  «         Œ`t          |                     d.d
¦  «        pd
¦  «        | _3        t          |                     d/d
¦  «        pd
¦  «        d0z   | _4        d
| _5        || _6        || _7        t	          |                     d1d¦  «        pd¦  «        | _8        t          |                     d2g ¦  «        pg ¦  «        | _9        t          |                     dg ¦  «        pg ¦  «        | _:        d
d3l;m<}  || j0        || j:        ¦  «         t{          d4„ | j:        D ¦   «         pd
g¦  «        | _>        t!          |                     d5i ¦  «                             d6i ¦  «        pi ¦  «        | _?        t	          |                     d5i ¦  «                             d7d¦  «        ¦  «        | _@        |                     d8i ¦  «        }t          |                     d9g ¦  «        ¦  «        | _A        t…          |¦  «        }t          |                     d:g ¦  «        pg ¦  «        | _C        t	          |                     d;d¦  «        pd¦  «        | _D        t	          |                     d<d¦  «        pd¦  «        | _E        t	          |                     d=d¦  «        pd¦  «        | _F        t	          |                     d>d¦  «        pd¦  «        | _G        g | _H        d
| _I        d | _J        d | _K        || _L        |�t›          jN        | j.        ¦  «        ng | _O        |�t›          jN        | j0        ¦  «        ng | _P        d?| _Q        t          |                     d@d
¦  «        pd
¦  «        | _R        | jR        | _S        t          | jT        pd
¦  «        d0z   | _T        t          | j,                             dAg ¦  «        pg ¦  «        | _U        t­          | ¦  «         ||| j,        |dBœS )CNrÌ   r  r5  rõ  r«   rG   r—  r6  r„  r   r7  rH  r8  r9  r_   r–  rB   Úunavailable_pathrÙ  rÀ  rÊ  rÛ  Trå  rp  r:  r‰  c              3  ó¸   K  — | ]U\  }}t          |t          ¦  «         p7t          |¦  «        t          t          fvpt          j        |¦  «         p|d k     V — ŒVdS ©r   N)r	  rH   rx  r‰   rR  ÚmathÚisfiniter®  s      r>   rÝ   zload_session.<locals>.<genexpr>Ê  s·   è è € ð  .xð  .xñ  Xbð  X[ð  ]bµ*¸SÅ#Ñ2FÔ2FÐ.Fð  /SÍ$ÈuÉ+Ì+Õ^aÕchÐ]iÐJið  /SÕquÔq~ð  @Eñ  rFô  rFð  nFð  /Sð  JOð  RSò  JSð  .xð  .xð  .xð  .xð  .xð  .xr=   z%Invalid Deepy session turn durations.r¤   r’   rY  Fr+  r[  rI  r\  rJ  rˆ  rò  ÚqueuedzNot runÚbadger‡  rˆ  rŠ  r‹  r   rŒ  r�  )Úrestore_media_linksc           
     ó@  — g | ]›}t          |                     d d¦  «        ¦  «                             dd¦  «        d                              ¦   «         ¯Qt	          t          |                     d d¦  «        ¦  «                             dd¦  «        d         ¦  «        ‘ŒœS )r¾  rG   rÚ   r   r  Ú_0)rH   rÒ   rŸ   Úisdigitr‰   rÌ  s     r>   rQ  z load_session.<locals>.<listcomp>ë  s  € ð  *Jð  *Jð  *JÐhnõ  MPð  QW÷  Q[ò  Q[ð  \fð  hjñ  Qkô  Qkñ  Mlô  Ml÷  Msò  Msð  twð  yzñ  M{ô  M{ð  |~ô  M÷  MGò  MGñ  MIô  MIð  *J­#­c°&·*²*¸ZÈÑ2NÔ2NÑ.OÔ.O×.VÒ.VÐWZÐ\]Ñ.^Ô.^Ð_aÔ.bÑ*cÔ*cð  *Jð  *Jð  *Jr=   rö  rŽ  r�  r_  r�  r‘  r’  r“  r”  r•  z0restored session requires a full context prefillrþ  Úskills)r×   Úmissing_mediarJ  Úreplay_commands)Wré   rÑ   rÒ   r7   rH   r‰   rU  r¢  rI   rc   r¤   ró  rþ   r,  r=  r	  r
  rN   r
   rÐ   r,  rr   rB   r  rô   r  r:  r%  r3  rð   r  r<  rM  r5  rQ  rö   rP  rN  rS  rT  r€   rI  r\  rK  rO  rV   rˆ  r£  r¡  r‹  r¶  r¤  r¥  Úchat_event_sequenceÚui_replay_commandsr  rŒ  r�  r¦  Úshared.deepy.media_linksrI  r�   Úmedia_registry_counterr§  r�  r�  r…  r‘  r¨  r©  rª  r«  Úrendered_token_idsÚrendered_messages_lenÚruntime_snapshotÚpaused_runtime_snapshotr�  r   rƒ  rž  rŸ  Úpending_replay_reasonr¬  r  Ú
chat_epochÚactive_skillsrF  )r6  r¦   rH  rÕ   r×   r˜  r=  r>  rà  r&  Úmedia_recordsrN  rª  r(  ÚresolvedÚsession_relativer-  ÚcopiedÚcopied_pathrO  rû  rp  Ú	durationsÚrecord_indexrI  r_  ra  s                              r>   Úload_sessionrb  Š  sß  € Ý˜ZÑ(Ô(€IÝ˜) nÑ4Ñ5Ô5€HØ‡|‚|�MÑ"Ô"ð gÝÐ eÑfÔfÐfÝ˜ ^Ñ3Ñ4Ô4€GÝ
ˆ8�<Š<˜˜bÑ!Ô!Ñ"Ô" jÒ0Ð0µC¸¿ºÀLÐRTÑ8UÔ8UÑ4VÔ4VÐZdÒ4dÐ4dÝÐ WÑXÔXÐXÝ
ˆ8�<Š<Ð(¨!Ñ,Ô,Ð1°Ñ2Ô2Õ5KÒKÐKÍsÐSZ×S^ÒS^Ð_oÐqrÑSsÔSsÐSxÐwxÑOyÔOyõ  }Sò  PSð  PSÝÐ SÑTÔTÐTÝ˜Ð) rÑ*Ô*×0Ò0Ñ2Ô2×8Ò8Ñ:Ô:€NÝ�h—l’l <°Ñ4Ô4Ñ5Ô5×;Ò;Ñ=Ô=×CÒCÑEÔE€KØ˜Ò$Ð$Ýð  !I°;×3DÒ3DÑ3FÔ3Fð  !Ið  !IÐo}÷  pDò  pDñ  pFô  pFð  !Ið  !Ið  !Iñ  Jô  Jð  	JÝ Ñ(Ô(Ð(Ý"Ñ$Ô$€JØ×Ò Ñ(Ô(€GØ€LÝ˜Ÿš W¨bÑ1Ô1Ð7°RÑ8Ô8€MØ€MØð #9ñ #9ˆÝ˜&¥$Ñ'Ô'ð 	ØÝ�v—z’z &¨"Ñ-Ô-ÐY°·²Ð<NÐPRÑ1SÔ1SÐYÐWYÑZÔZˆØ &Ð(Ð(Ø!×)Ò)¨&Ð1DÔ*EÑFÔFˆHØð �D ™NœN×2Ò2Ñ4Ô4ð Øð QÝ.¨|¸XÀxÑPÔPÐPØ!)��v‘Ý%'¤W×%5Ò%5°hÑ%?Ô%?��zÑ"Ø—
’
Ð-¨tÑ4Ô4Ð4ØÝ˜vŸzšzÐ*AÀ2ÑFÔFÐLÈ"ÑMÔMÐØð 	Ý0°Ð<LÑMÔMˆMØ×$Ò$Ñ&Ô&ð Øð [ ­C°Ñ,>Ô,>Ò >Ð >Ý.¨|¸XÅsÈ=ÑGYÔGYÑZÔZÐZÝ!$ ]Ñ!3Ô!3��v‘Ý%'¤W×%5Ò%5µc¸-Ñ6HÔ6HÑ%IÔ%I��zÑ"ÙØ fÐ,Ð,°Ð,½dÀ8¹n¼n×>TÒ>TÑ>VÔ>VÐ,ÙÝ�V—Z’ZÐ 3°RÑ8Ô8Ð>¸BÑ?Ô?ˆØAGÐQÕ*¨9°fÑ=Ô=Ð=ÈTˆØÐ" {×':Ò':Ñ'<Ô'<Ð"Øð UÝ*¨<¸Å3À{ÑCSÔCSÑTÔTÐTÝ  Ñ-Ô-ˆF�6‰NÝ!#¤×!1Ò!1µ#°k×6IÒ6IÑ6KÔ6KÑ2LÔ2LÑ!MÔ!MˆF�:ÑÑØð 	9Ø× Ò  Ñ*Ô*Ð*Ø" fÐ,Ð,Ø-5�Ð)Ñ*Ø68Ð8��v‘ ¨
Ñ!3ùÝ˜W lÑ3Ô3€GÝ °dÐ;Ñ;Ô;Ð;Ý'?À	È7Ñ'SÔ'SÑ$€O�_Ø ×'Ò'­°ÈÑ(UÔ(UÑVÔV€OØ�;Š;�v˜rÑ"Ô"€DÝ�d�DÑ!Ô!ð GÝÐ EÑFÔFÐFØ—’Ð)¨2Ñ.Ô.€IÝ�i¥Ñ&Ô&ð I­#ð  .xð  .xð  fo÷  fuò  fuñ  fwô  fwð  .xñ  .xô  .xñ  +xô  +xð IÝÐ GÑHÔHÐHÝ˜' 9Ñ-Ô-Ð-Ø!+€GÔÝ"% i¡.¤.€GÔÝ §¢¨W°bÑ 9Ô 9Ð L¸_ÑMÔM€GÔÝ$(¨¯ª°oÀuÑ)MÔ)MÑ$NÔ$N€GÔ!Ø!,€GÔÝ!$ X§\¢\°,ÀÑ%CÔ%CÐ%IÀrÑ!JÔ!J€GÔÝ!$ X§\¢\°,ÀÑ%CÔ%CÐ%IÀrÑ!JÔ!J€GÔÝ!=¸h¿lºlÐK_Ñ>`Ô>`Ñ!aÔ!a€GÔÝ#& x§|¢|Ð4JÈBÑ'OÔ'OÐ'UÐSUÑ#VÔ#V€GÔ Ý",¨W¯[ª[¸ÈÑ-KÔ-KÑ"LÔ"L€GÔØ(€GÔÝ˜DŸHšH Z°Ñ4Ô4Ð:¸Ñ;Ô;€GÔÝ"& y¡/¤/€GÔÝ" 4§8¢8¨L¸"Ñ#=Ô#=Ð#CÀÑDÔD€GÔÝ )¨'Ô*AÑ BÔ Bð qð qÑˆ�fÝ�f�dÑ#Ô#ð 	q¨¯
ª
°8Ñ(<Ô(<ð 	qØ$ˆF�8ÑØ'ˆF�7‰OØ×"Ò"¨=ÕCXÐY_ÐamÑCnÔCnÐ#oÐ#oÑpÔpÐpøÝ&)¨$¯(ª(Ð3GÈÑ*KÔ*KÐ*PÈqÑ&QÔ&Q€GÔ#Ý §¢¨°QÑ 7Ô 7Ð <¸1Ñ=Ô=ÀÑA€GÔØ"#€GÔØ!0€GÔØ!0€GÔÝ"% d§h¢hÐ/DÀbÑ&IÔ&IÐ&OÈRÑ"PÔ"P€GÔÝ#'¨¯ªÐ1GÈÑ(LÔ(LÐ(RÐPRÑ#SÔ#S€GÔ Ý! '§+¢+¨g°rÑ":Ô":Ð"@¸bÑAÔA€GÔØ<Ð<Ð<Ð<Ð<Ð<àÐ˜Ô/°À'ÔBXÑYÔYÐYÝ%(ð  *Jð  *JÐryô  sIð  *Jñ  *Jô  *Jð  *Qð  OPð  NQñ  &Rô  &R€GÔ"Ý# G§K¢K°°bÑ$9Ô$9×$=Ò$=¸oÈrÑ$RÔ$RÐ$XÐVXÑYÔY€GÔÝ03°G·K²KÀÀbÑ4IÔ4I×4MÒ4MÐNqÐsuÑ4vÔ4vÑ0wÔ0w€GÔ-Ø�kŠk˜) RÑ(Ô(€GÝ!% g§k¢kÐ2FÈÑ&KÔ&KÑ!LÔ!L€GÔÝ1°'Ñ:Ô:€NÝ#'¨¯ªÐ4JÈBÑ(OÔ(OÐ(UÐSUÑ#VÔ#V€GÔ Ý03°G·K²KÐ@[Ð]_Ñ4`Ô4`Ð4fÐdfÑ0gÔ0g€GÔ-Ý/2°7·;²;Ð?YÐ[]Ñ3^Ô3^Ð3dÐbdÑ/eÔ/e€GÔ,Ý.1°'·+²+Ð>WÐY[Ñ2\Ô2\Ð2bÐ`bÑ.cÔ.c€GÔ+Ý/2°7·;²;Ð?YÐ[]Ñ3^Ô3^Ð3dÐbdÑ/eÔ/e€GÔ,Ø!#€GÔØ$%€GÔ!Ø#€GÔØ&*€GÔ#Ø$2€GÔ!ØP^ÐPj­T¬]¸7Ô;KÑ-LÔ-LÐ-LÐpr€GÔ*ØYgÐYs­t¬}¸WÔ=TÑ/UÔ/UÐ/UÐy{€GÔ,Ø$V€GÔ!Ý'*¨7¯;ª;Ð7LÈaÑ+PÔ+PÐ+UÐTUÑ'VÔ'V€GÔ$Ø(/Ô(H€GÔ%Ý˜WÔ/Ð4°1Ñ5Ô5¸Ñ9€GÔÝ  Ô!<×!@Ò!@ÀÈ2Ñ!NÔ!NÐ!TÐRTÑUÔU€GÔÝ˜WÑ%Ô%Ð%Ø °=ÐQXÔQlð  BQð  Rð  Rð  Rr=   Úgenc                ó¢  ‡— ddl m} ddlm} ddlm}m} ˆfd„|D ¦   «         }|d         \  }}i }	i }
i }i }|                     ¦   «         D �]d\  }}t          |¦  «        D �]M\  }} |||¦  «        pi }t          |¦  «        |f}t          j                             t          t          t          |¦  «        ¦  «                             ¦   «         ¦  «        ¦  «        }||	|<   ||f|
|<   t          |                     dd¦  «        pd¦  «        }|r.||t!          t          t          |¦  «        ¦  «        ¦  «        |f<   t          |                     d	d¦  «        pd¦  «        }t          t          |pd¦  «        ¦  «        }|s#|                     ¦   «         rt%          |¦  «        }|r|||<   �ŒO�Œfd}g }t'          | j        ¦  «        D �]Æ}t)          |t*          ¦  «        sŒt          t          |                     d
d¦  «        pd¦  «        ¦  «        }|                     ¦   «         s#|                     t          |¦  «        ¦  «         Œ‚t          |                     dd¦  «        pt!          |¦  «        ¦  «        }t          j                             t          |                     ¦   «         ¦  «        ¦  «        }t          |                     dd¦  «        pd¦  «        }t          |                     dd¦  «        pd¦  «        }t+          |                     t          |¦  «        |                     d¦  «        ¦  «        ¦  «        }|                     | j        |                     dd¦  «        |dœ¦  «          ||¦  «        }|j        }t7          t          |¦  «        ||¦  «        |d<   |	                     |¦  «        }|                     ||f¦  «        p|                     |¦  «        }|€º|�¸t          |d         ¦  «                             ¦   «         r‘|                     d¦  «        5 }t9          |d         d¦  «        5 } 	 |                     d¦  «        }!|!|                      d¦  «        k    rn|!s|}nŒ5d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |��;|\  }}"|"                     |                     |i |¥|"¥¦  «        ¦  «         |
t          j                             t          t          |¦  «                             ¦   «         ¦  «        ¦  «                 \  }#}$|"|#|$<   t7          |||"¦  «        }%t=          t*                               g |d         ¢|%¢¦  «        ¦  «        |"d<   |                     |t          j                             t          t          |¦  «                             ¦   «         ¦  «        ¦  «        ¬¦  «         i |¥|"¥|d<   �Œ|r||d<   |                      ¦   «         |d<   ||j!                 \  }&}'|&                     t          |¦  «        ¦  «         |'                     |¦  «         t          |¦  «        |f}||	|<   |'tE          |'¦  «        dz
  f|
|<   |r||||f<   |r|||<   |dz  }�ŒÈ|D ]7}(tE          ||(j!                 d         ¦  «        dz
  ‰|(j#        <   d‰|(j$        <   Œ8|r(t!          t          |d         ¦  «        ¦  «        dk    rdnd ‰d<   | %                    | ‰¦  «         | &                    ¦   «         D ]'\  }(\  }})tO          | d|(› d�d„ |D ¦   «         ¦  «         Œ(||dœS )Nr   )r¦  )Úpeek_settings)ÚGALLERY_SOURCESÚsource_for_kindc                óˆ   •— i | ]>}|j         ‰                     |j        g ¦  «        ‰                     |j        g ¦  «        f“Œ?S r<   )r«   Ú
setdefaultÚ	files_keyÚsettings_key)r­   rÁ  rc  s     €r>   rN  z(inject_session_media.<locals>.<dictcomp>  sY   ø€ ð  Kð  Kð  KÐpv�”˜SŸ^š^¨FÔ,<¸bÑAÔAÀ3Ç>Â>ÐRXÔReÐgiÑCjÔCjÐkð  Kð  Kð  Kr=   ÚvideorÂ  rG   Údeepy_media_fingerprintrB   r¿  rÉ  rÃ  r¾  )r  Údeepy_media_idrm  r   ÚrbTi   )rB   rÀ  r   r  g        Úselected_video_timeÚseen_Ú_gallery_pathsc                ó,   — g | ]}t          |¦  «        ‘ŒS r<   )rH   ©r­   rB   s     r>   rQ  z(inject_session_media.<locals>.<listcomp>_  s   € Ð9VÐ9VÐ9VÈ½#¸d¹)¼)Ð9VÐ9VÐ9Vr=   )ÚinjectedÚmissing)(Úshared.deepyr¦  Úshared.utils.media_settingsre  Úshared.utils.gallery_sourcesrf  rg  rà   r‹  rH   rr   rB   r  r
   rN   rÒ   rÑ  rÐ   r¸  Úreversedr	  r
  r:  Ú_resolve_settingsÚupdaterM  Ú	media_idsr   r™  r¡  r=  r>  r   r«   rž   Úselected_keyÚlast_selected_keyÚsync_tool_call_gallery_mediar  Úsetattr)*r6  rc  r¦  re  rf  rg  Ú	galleriesÚvisual_pathsÚ_visual_settingsÚcanonical_pathsÚsettings_locationsÚclient_keysÚfingerprintsÚpathsÚsettings_listr‚  rB   rÃ  ÚentryÚ	canonicalrÂ  rÉ  Úexisting_pathru  rv  rª  r¿  Útargetrð  r9  rQ   Úsource_fileÚcandidate_fileÚchunkÚexisting_settingsÚtarget_listÚtarget_indexrë  Útarget_pathsÚtarget_settingsrÁ  Ú	_settingss*    `                                        r>   Úinject_session_mediar˜    s6  ø€ Ø+Ð+Ð+Ð+Ð+Ð+Ø9Ð9Ð9Ð9Ð9Ð9àMÐMÐMÐMÐMÐMÐMÐMð Kð  Kð  Kð  Kð  {Jð  Kñ  Kô  K€IØ%.¨wÔ%7Ñ"€LÐ"Ø€OØÐØ€KØ€LØ )× 0Ò 0Ñ 2Ô 2ð 2ñ 2Ñˆˆ}Ý$ UÑ+Ô+ð 	2ñ 	2‰KˆE�4Ø$�} ]°EÑ:Ô:Ð@¸bˆHÝ˜‘Y”Y Ð)ˆEÝœ×(Ò(­­Tµ#°d±)´)©_¬_×-DÒ-DÑ-FÔ-FÑ)GÔ)GÑHÔHˆIØ).ˆO˜IÑ&Ø-:¸EÐ,BÐ˜yÑ)Ý˜HŸLšL¨°bÑ9Ô9Ð?¸RÑ@Ô@ˆIØð VØPU�Õ/µµS¸±Y´Y±´Ñ@Ô@À)ÐLÑMÝ˜hŸlšlÐ+DÀbÑIÔIÐOÈRÑPÔPˆKÝ ¥ T Z¨R¡¤Ñ1Ô1ˆMØð : =×#8Ò#8Ñ#:Ô#:ð :Ý*¨=Ñ9Ô9�Øð 2Ø,1�˜[Ñ)ùñ	2ð €HØ€Gå˜7Ô1Ñ2Ô2ð 3ñ 3ˆÝ˜&¥$Ñ'Ô'ð 	ØÝ•C˜Ÿ
š
 6¨2Ñ.Ô.Ð4°"Ñ5Ô5Ñ6Ô6ˆØ�|Š|‰~Œ~ð 	Ø�NŠN�3˜t™9œ9Ñ%Ô%Ð%ØÝ˜Ÿš L°"Ñ5Ô5ÐQÕ9KÈDÑ9QÔ9QÑRÔRˆ
Ý”G×$Ò$¥S¨¯ª©¬Ñ%8Ô%8Ñ9Ô9ˆ	Ý˜Ÿ
š
 ;°Ñ3Ô3Ð9°rÑ:Ô:ˆ	Ý˜&Ÿ*š* ]°BÑ7Ô7Ð=¸2Ñ>Ô>ˆÝ˜×8Ò8½¸T¹¼ÀFÇJÂJÈzÑDZÔDZÑ[Ô[Ñ\Ô\ˆØ�Š¨WÔ-GÐ[a×[eÒ[eÐfpÐrtÑ[uÔ[uð  S^ð  _ð  _ñ  	`ô  	`ð  	`Ø � Ñ,Ô,ˆØÔ"ˆÝ(9½#¸d¹)¼)ÀWÈhÑ(WÔ(WˆÐ$Ñ%Ø"×&Ò& yÑ1Ô1ˆØ—O’O Z°Ð$;Ñ<Ô<Ð]À×@PÒ@PÐQ\Ñ@]Ô@]ˆ	àÐ 	Ð 5½$¸yÈ¼|Ñ:LÔ:L×:TÒ:TÑ:VÔ:VÐ 5Ø—’˜4‘”ð  Kµ°iÀ´lÀDÑ1IÔ1Ið È^ðØ'×,Ò,¨[Ñ9Ô9�EØ × 3Ò 3°KÑ @Ô @Ò@Ð@ØØ ð Ø#,˜Øððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ÑØ/7Ñ,ˆMÐ,Ø×$Ò$ ^×%EÒ%EÀmÐUvÐX`ÐUvÐduÐUvÑ%wÔ%wÑxÔxÐxØ(:½2¼7×;KÒ;KÍCÕPTÐUbÑPcÔPc×PkÒPkÑPmÔPmÑLnÔLnÑ;oÔ;oÔ(pÑ%ˆK˜Ø(9ˆK˜Ñ%Ý# M°7Ð<MÑNÔNˆCÝ59½$¿-º-ÐHnÈ(ÐSfÔJgÐHnÐjmÐHnÑ:oÔ:oÑ5pÔ5pÐÐ1Ñ2Ø�MŠM˜}µr´w×7GÒ7GÍÍDÐQ^ÑL_ÔL_×LgÒLgÑLiÔLiÑHjÔHjÑ7kÔ7kˆMÑlÔlÐlØ!B HÐ!BÐ0AÐ!BˆF�:ÑÙØð 	.Ø$-ˆH�[Ñ!Ø%Ÿ]š]™_œ_ˆˆzÑØ(1°&´)Ô(<Ñ%ˆ�oØ×Ò�C ™IœIÑ&Ô&Ð&Ø×Ò˜xÑ(Ô(Ð(Ý�T‘”˜HÐ%ˆØ%*ˆ˜	Ñ"Ø)8½#¸oÑ:NÔ:NÐQRÑ:RÐ(SÐ˜9Ñ%Øð 	9Ø38ˆK˜ YÐ/Ñ0Øð 	.Ø(-ˆL˜Ñ%Ø�A‰ˆ‰Ø!ð -ð -ˆÝ#& y°´Ô';¸AÔ'>Ñ#?Ô#?À!Ñ#CˆˆFÔÑ Ø(,ˆˆFÔ$Ñ%Ð%Ø(4Ð!xÕ9KÍDÐQ]Ð^`ÔQaÑLbÔLbÑ9cÔ9cÐgnÒ9nÐ9n  Ðtx€CÐÑØ×/Ò/°¸Ñ=Ô=Ð=Ø&/§o¢oÑ&7Ô&7ð Xð XÑ"ˆÑ"�˜	Ý�Ð7 Ð7Ð7Ð7Ð9VÐ9VÐPUÐ9VÑ9VÔ9VÑWÔWÐWÐWØ ¨WÐ5Ð5Ð5s6   Ð.RÑ7RÑ<RÒRÒRÒRÒRÒR#	Ò&R#	c                ó„   — t          || j        ¦  «        | _        d| _        t	          | ¦  «        }|pt          | ¦  «        S )NF)r¶   rM  rQ  rP  r  rR  )r6  r¤   r×   s      r>   Úrename_sessionrš  c  s@   € Ý)¨%°Ô1KÑLÔL€GÔØ$)€GÔ!Ý˜WÑ%Ô%€HØÐ0Õ'¨Ñ0Ô0Ð0r=   c                óô  — |�|j         | k    rt          ||¦  «        S t          | ¦  «        }|dz                       ¦   «         rSt	          |dz  ¦  «        }t          t          |                     dd¦  «        pd¦  «        ¦  «        rt          d¦  «        ‚t          || ¦  «        }t	          |dz  ¦  «        }||d<   | 
                    dd ¦  «         t          ¦   «         |d<   t          |dz  |¦  «         |S )	Nrø   rù   r   z,Close this Deepy session before renaming it.rÌ   r¤   rY  r[  )rM  rš  ræ   rÐ   rÑ   rú   r‰   rÒ   rA   r¶   rô   r¾   r?  )r¦   r¤   r<  rÕ   rÿ  Únormalized_titler×   s          r>   Úrename_stored_sessionr�  j  s  € ØÐ! nÔ&GÈ:Ò&UÐ&UÝ˜n¨eÑ4Ô4Ð4Ý& zÑ2Ô2€IØ�OÑ#×,Ò,Ñ.Ô.ð UÝ˜) oÑ5Ñ6Ô6ˆÝ�#˜dŸhšh u¨aÑ0Ô0Ð5°AÑ6Ô6Ñ7Ô7ð 	UÝ$Ð%SÑTÔTÐTÝ$ U¨JÑ7Ô7ÐÝ˜) nÑ4Ñ5Ô5€HØ(€HˆWÑØ‡L‚L� $Ñ'Ô'Ð'Ý%™ZœZ€Hˆ\ÑÝ�˜^Ñ+¨XÑ6Ô6Ð6Ø€Or=   c           
     óŽ  ‡— |�|j         | k    rt          |¦  «         t          | ¦  «        Št          | t	          t          ‰dz  ¦  «                             dd¦  «        ¦  «        |¬¦  «        }t          ‰dz  ¦  «        }t          |¦  «         t          ¦   «         }| 	                    |¦  «        }t          ¦   «         }t          |¦  «        }d„ t          ¦   «         D ¦   «         }t          j        ddt	          |                     dd¦  «        pd	¦  «        t          j        ¬
¦  «                             ¦   «         }d}		 |	dk    rdnd|	› d�}
|d t#          ddt%          |
¦  «        z
  ¦  «        …                              ¦   «         › |
› �}|                     ¦   «         |vrn|	dz  }	Œit*          5  t-          ||¦  «        }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t1          ¦   «         }|                     ||||¬¦  «         |                     dd ¦  «         ||d<   ||d<   i }t7          |t	          ‰¦  «        t	          |¦  «        ¦  «         t9          ||¦  «        }t;          || |¦  «        }t          |d¬¦  «         	 t=          j        ‰|dˆfd„¬¦  «         |t@          z  }| !                    ¦   «         rq| 	                    | "                    d¬¦  «        ¦  «        }| #                    ¦   «         D ]\  }}| $                    ||¦  «        }Œ| %                    |dd¬¦  «         tM          |dz  |¦  «         tM          |dz  |¦  «         n^# tN          $ rQ | (                    ¦   «         r;| )                    ¦   «          *                    |¦  «         t=          j+        |¦  «         ‚ w xY w|S )NrÌ   rH  rG   ©r<  rõ  c                ó|   — h | ]9}t          |                     d d¦  «        pd¦  «                             ¦   «         ’Œ:S )r¤   rG   )rH   rÒ   r¬   )r­   r®   s     r>   r¯   z+duplicate_stored_session.<locals>.<setcomp>†  s?   € Ð_Ð_Ð_Àt•s˜4Ÿ8š8 G¨RÑ0Ô0Ð6°BÑ7Ô7×@Ò@ÑBÔBÐ_Ð_Ð_r=   z\s+\(copy(?: \d+)?\)$r¤   r’   )Úflagsr   Tz (copy)z (copy r±   r¨   )r«   r¤   r+  r[  rÞ   r—  rý  rå  c                ó<   •— dgt          | ¦  «        ‰k    rddgng ¢S ©Nrø   rÌ   rõ  r	   )rÁ  ÚnamesrÕ   s     €r>   r�   z*duplicate_stored_session.<locals>.<lambda>�  sj   ø€ Ðbqð  b}õ  Z^ð  _eñ  Zfô  Zfð  jsò  Zsð  Zsð  wEð  GUð  vVð  vVð  y{ð  b}€ r=   ©Údirs_exist_okÚignorer[   r\   rý  rþ  ),rM  r  ræ   r@  rH   rÑ   rÒ   ró  rþ   r,  rU   rÈ   r²   rš   r•   rí  rI   r�   rž   r    r¬   rM   rã   rf   r¾   r|  rô   r,  r%  r$  rj   Úcopytreer‰  rÐ   rh   r  rs   rq   r?  r3  rÍ   rN   rî   rk   )r¦   r<  r×   r˜  rà  rv   r%  Úexisting_titlesÚ
base_titleÚcopy_numberrµ   Úduplicate_titlerE  r»   r&  r¦  Újournal_textr(  r   rÕ   s                      @r>   Úduplicate_stored_sessionr®  {  sZ  ø€ ØÐ! nÔ&GÈ:Ò&UÐ&UÝ�nÑ%Ô%Ð%Ý& zÑ2Ô2€IÝ 
­Cµ
¸9À~Ñ;UÑ0VÔ0V×0ZÒ0ZÐ[gÐikÑ0lÔ0lÑ,mÔ,mð  Mð  Nñ  Nô  N€HÝ˜ ^Ñ3Ñ4Ô4€GÝ Ñ(Ô(Ð(Ý"Ñ$Ô$€JØ×Ò Ñ(Ô(€GÝ‰?Œ?€DÝ˜TÑ"Ô"€FØ_Ð_Í}ÉÌÐ_Ñ_Ô_€OÝ”Ð0°"µc¸(¿,º,ÀwÐPRÑ:SÔ:SÐ:fÐWfÑ6gÔ6gÕoqÔo|Ð}Ñ}Ô}÷  Dò  Dñ  Fô  F€JØ€KðØ)¨QÒ.Ð.��Ð4L¸kÐ4LÐ4LÐ4LˆØ'Ð(C­#¨a°µs¸6±{´{Ñ1BÑ*CÔ*CÐ(CÔD×KÒKÑMÔMÐWÈvÐWÐWˆØ×#Ò#Ñ%Ô%¨_Ð<Ð<ØØ�qÑˆðõ 
ð ð Ý,¨T°?ÑCÔCˆØ×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ‰*Œ*€CØ‡O‚O�v _ÀÐQT€OÑUÔUÐUØ‡L‚LÐ'¨Ñ.Ô.Ð.Ø"€GˆLÑØ€GˆJÑØ#%€LÝ˜|­S°©^¬^½SÀÑ=MÔ=MÑNÔNÐNÝ˜W lÑ3Ô3€GÝ(¨°*¸fÑEÔE€GÝ °dÐ;Ñ;Ô;Ð;ðÝŒ˜	 ;¸dð  L}ð  L}ð  L}ð  L}ð  	~ñ  	~ô  	~ð  	~ØÕ 3Ñ3ˆØ�?Š?ÑÔð 	MØ%×,Ò,¨W×->Ò->ÈÐ->Ñ-PÔ-PÑQÔQˆLØ)5×);Ò);Ñ)=Ô)=ð Kð KÑ%�˜+Ø+×3Ò3°H¸kÑJÔJ��Ø×Ò˜|°gÀtÐÑLÔLÐLÝ�[ >Ñ1°7Ñ;Ô;Ð;Ý�[ >Ñ1°8Ñ<Ô<Ð<Ð<øÝð ð ð Ø×ÒÑÔð 	'Ø×ÒÑ!Ô!×-Ò-¨dÑ3Ô3Ð3ÝŒM˜+Ñ&Ô&Ð&Øð	øøøð
 €Os    Æ3%G$Ç$G(Ç+G(ÊCM' Í'AOc                óZ   — t          |¦  «        | _        | j        rt          | ¦  «        nd S rT   )r€   rI  rM  r  )r6  rÕ  s     r>   Úset_gallery_media_moder°  ®  s-   € Ý!=¸dÑ!CÔ!C€GÔØ%,Ô%?ÐI�=˜Ñ!Ô!Ð!ÀTÐIr=   T)Úsave_currentr±  c               óÔ  — |r| j         rt          | ¦  «         t          | ¦  «         d| _         d| _        d| _        d| _        d| _        d| _        d| _        i | _	        d| _
        d| _        d| _        d | _        d| _        d | _        g | _        d| _        d | _        g | _        g | _        t+          j        ¦   «         j        | _        t3          | j        pd¦  «        dz   | _        d S )NrG   Fr   r   )rM  r  rB  r5  rQ  rP  rN  rS  rT  rO  r�  r¬  r  r4  r=  rD  rQ  r  r�  rž  rŸ  rn   ro   rp   rV   r‰   rY  )r6  r±  s     r>   Ústart_new_sessionr³  ³  sü   € Øð ˜Ô2ð Ý�gÑÔÐÝ˜Ñ!Ô!Ð!Ø!#€GÔØ"$€GÔØ€GÔØ$)€GÔ!Ø!#€GÔØ!#€GÔØ!#€GÔØ"$€GÔØ02€GÔ-Ø'(€GÔ$Ø()€GÔ%Ø#'€GÔ Ø!#€GÔØ'+€GÔ$Ø!#€GÔØ!"€GÔØ$(€GÔ!Ø-/€GÔ*Ø/1€GÔ,Ý"œj™lœlÔ.€GÔÝ˜WÔ/Ð4°1Ñ5Ô5¸Ñ9€GÔÐÐr=   c                ón  — | j         sd S t          | j         ¦  «        }t          |¦  «         |t          z                       d¬¦  «         g ddœt
          t          |                     ¦   «         ¦  «        <   g | _        d| _	        dD ]€}||z                       ¦   «         }| 
                    |¦  «         |                     ¦   «         rt          j        |¦  «         |dk    s| j        t          k    r|                     ¦   «          Œ�t#          | j        pd¦  «        dz   | _        t'          | ¦  «         d S )NTra   r   rû  )r^   r–  r^   r   )rM  ræ   rA  r‰  rt   r4   rH   rN   rQ  r  rî   rÍ   rj   rk   rI  r}   rf   r‰   r¬  r  )r6  rÕ   Ú
child_namerM  s       r>   Úreset_session_filesr¶  Î  s7  € ØÔ%ð ØˆÝ& wÔ'AÑBÔB€IÝ�yÑ!Ô!Ð!ØÕ$Ñ$×,Ò,¸Ð,Ñ=Ô=Ð=ØBDÐRSÐ3TÐ3TÕ•s˜9×,Ò,Ñ.Ô.Ñ/Ô/Ñ0Ø!#€GÔØ!"€GÔØ,ð ð ˆ
Ø˜ZÑ'×0Ò0Ñ2Ô2ˆØ×Ò˜)Ñ$Ô$Ð$Ø�<Š<‰>Œ>ð 	!ÝŒM˜%Ñ Ô Ð Ø˜Ò$Ð$¨Ô(BÕFXÒ(XÐ(XØ�KŠK‰MŒMˆMøÝ'*¨7Ô+KÐ+PÈqÑ'QÔ'QÐTUÑ'U€GÔ$Ý�'ÑÔÐÐÐr=   c              #  ó¾  K  — t          | ¦  «        }t          dddd¬¦  «        }t          ||¦  «         	 |dz  }t          |¦  «        }|                     d¦  «        | k    rt          d¦  «        ‚t          |i |¥dt          ¦   «         i¥¦  «         	 dV — n# t          $ r t          ||¦  «         ‚ w xY w	 t          |¦  «         dS # t          |¦  «         w xY w)zRHide a session without moving linked artifacts; undo if its workspace cannot move.rG   Nr1  rÌ   r«   z6Deepy session identifier does not match its directory.r  )
ræ   r   r<  rÑ   rÒ   r7   r?  r¾   r3  rB  )r¦   rÕ   rD  rB   r×   s        r>   Úarchiving_sessionr¸  â  s  è è € õ ' zÑ2Ô2€IÝ¨bÀRÐ^bÐxzÐ{Ñ{Ô{€EÝ˜% Ñ+Ô+Ð+ð$Ø˜>Ñ)ˆÝ˜dÑ#Ô#ˆØ�<Š<˜ÑÔ Ò+Ð+Ý#Ð$\Ñ]Ô]Ð]Ý�TÐB˜hÐB¨µx±z´zÐBÐBÑCÔCÐCð	ØˆEˆEˆEˆEøÝð 	ð 	ð 	Ý˜˜xÑ(Ô(Ð(Øð	øøøð õ
 	˜UÑ#Ô#Ð#Ð#Ð#øÕ˜UÑ#Ô#Ð#Ð#øøøs$   ¶AC ÂB ÂC ÂB6Â6C ÃCc                óZ  — t          | ¦  «        }t          |¦  «         |�|j        | k    rt          |¦  «         nƒ|dz                       ¦   «         rlt          |dz  ¦  «        }t          t          |                     dd¦  «        pd¦  «        ¦  «        rt          d¦  «        ‚|dz   
                    d¬¦  «         t          ¦   «         dz  }|                     dd¬¦  «         t          ||j        ¦  «        }t          j        t#          |¦  «        t#          |¦  «        ¦  «         |S )	Nrø   rù   r   z,Close this Deepy session before deleting it.Tra   z.trashrX   )ræ   rA  rM  rB  rÐ   rÑ   rú   r‰   rÒ   rA   rt   rU   rf   r   rm   rj   ÚmoverH   )r¦   r<  rÕ   rÿ  ÚtrashrE  s         r>   Údelete_sessionr¼  ÷  s  € Ý& zÑ2Ô2€IÝ�yÑ!Ô!Ð!ØÐ! nÔ&GÈ:Ò&UÐ&UÝ˜^Ñ,Ô,Ð,Ð,Ø
�oÑ
%×	.Ò	.Ñ	0Ô	0ð >Ý˜) oÑ5Ñ6Ô6ˆÝ�#˜dŸhšh u¨aÑ0Ô0Ð5°AÑ6Ô6Ñ7Ô7ð 	UÝ$Ð%SÑTÔTÐTØ	�_Ñ	$×,Ò,¸Ð,Ñ=Ô=Ð=Ý‰OŒO˜hÑ&€EØ	‡K‚K˜ t€KÑ,Ô,Ð,Ý  ¨	¬Ñ7Ô7€KÝ
„K•�I‘”¥ KÑ 0Ô 0Ñ1Ô1Ð1ØÐr=   c                óx   — | j         st          d¦  «        ‚t          | ¦  «         t          | j         | ¬¦  «        S )Nz1There is no materialized Deepy session to export.rŸ  )rM  r7   r  Úexport_stored_sessionrE  s    r>   Úexport_sessionr¿    sA   € ØÔ%ð UÝÐ SÑTÔTÐTÝ�'ÑÔÐÝ  Ô!;ÈGÐTÑTÔTÐTr=   c                óX  ‡— |�|j         | k    rt          |¦  «         t          | ¦  «        Š‰dz  }|d uo1|j         | k    o&t          t	          |j        pd¦  «        ¦  «        |k    }|                     ¦   «         rR|sPt          |¦  «        }t          t          | 
                    dd¦  «        pd¦  «        ¦  «        rt          d¦  «        ‚t          ¦   «         dz  }|                     dd¬¦  «         |‰j        › d	t          j        ¦   «                              d
¦  «        › d�z  }t          ‰dz  ¦  «        }t          ‰dz  ¦  «        }t%          ¦   «         }	t'          |¦  «         |	                     |¦  «        }ˆfd„‰                     d¦  «        D ¦   «         }
ˆfd„|
D ¦   «         }g }g }t-          | 
                    dg ¦  «        pg ¦  «        D �]}t/          |t0          ¦  «        sŒ| 
                    d¦  «        r|	                     |d         ¦  «        nd }t/          |t0          ¦  «        r||d<   t	          | 
                    dd¦  «        ¦  «        dk    rŒ�t	          | 
                    dd¦  «        pd¦  «        }|r#t5          ‰|¦  «                             ¦   «         rŒ×t	          | 
                    dd¦  «        pd¦  «                             ¦   «         }d|v r|	                     |d         ¦  «        pd}|rt          |¦  «        nd }|�|                     ¦   «         s|r|                     |¦  «         �Œqt=          j        ddt	          | 
                    dd¦  «        ¦  «        ¦  «                             d¦  «        pd}|› d|j        › �}d|› �}d}||v rd|› d|› d|j        › �}|dz  }||v °|                      |¦  «         ||d<   |                     ||f¦  «         �Œ tC          ¦   «         |dœ|d<   tE          j#        |dtD          j$        d¬ ¦  «        5 }| %                    dtM          j'        tQ          |¦  «        d!d¬"¦  «        ¦  «         | %                    dtM          j'        tQ          |¦  «        d!d¬"¦  «        ¦  «         |
D ]Æ}|‰tR          z  k    rC| %                    tR          |	                     | *                    d#¬$¦  «        ¦  «        ¦  «         ŒS| +                    || ,                    ‰¦  «         -                    ¦   «         |j.         /                    ¦   «         t`          v rtD          j1        ntD          j$        ¬%¦  «         ŒÇ|D ]'\  }}| +                    ||tD          j1        ¬%¦  «         Œ(	 d d d ¦  «         n# 1 swxY w Y   |S )&Nrø   rG   rù   r   z-Close this Deepy session before exporting it.rË   TrX   rÂ   rÁ   z.ziprÌ   rõ  c                ój   •— g | ]/}|                      ¦   «         ¯|j        d k    ¯!|‰dz  ‰dz  fv¯-|‘Œ0S )rø   rõ  rÌ   )rÐ   rm   ©r­   rB   rÕ   s     €r>   rQ  z)export_stored_session.<locals>.<listcomp>!  s�   ø€ ð  zð  zð  z ÀÇÂÁÄð  zÐSWÔS\Ð`oÒSoÐSoÐtxð  BKð  N\ñ  B\ð  ^gð  jxñ  ^xð  Ayð  uyð  uy�tð  uyð  uyð  uyr=   r»  c                ó^   •— h | ])}|                      ‰¦  «                             ¦   «         ’Œ*S r<   )rî   r  rÂ  s     €r>   r¯   z(export_stored_session.<locals>.<setcomp>"  s3   ø€ ÐXÐXÐXÀ�T×%Ò% iÑ0Ô0×9Ò9Ñ;Ô;ÐXÐXÐXr=   r–  rB   rÙ  rÁ  r^   rÛ  rÚ  rÚ   r¾  zmedia/r°   r   )Úpackaged_atrN  Úexportr-  )ÚcompressionÚ
allowZip64F)r  Úindentr[   r\   )Úcompress_type)2rM  r  ræ   r
   rH   r2  rÐ   rÑ   rú   r‰   rÒ   rA   rU   rf   rm   r   r»   rÅ   rþ   ró  r,  rÌ  r=  r	  r
  r  r  rI   rN   r:  rš   r•   rÜ  r¾   ÚzipfileÚZipFileÚZIP_DEFLATEDÚwritestrr#  r$  rK  r‰  rh   r¢  rî   r  rµ   rc   rÍ  Ú
ZIP_STORED)r¦   r<  rû   r?  rÿ  ÚexportsrE  r×   r˜  rà  Údirectory_filesÚarchive_namesÚexternal_filesrN  rª  r  r^  Úsource_textrÁ  rã  rÒ  Úarchive_namerµ   ÚarchiverB   rÕ   s                            @r>   r¾  r¾    s¢  ø€ ØÐ! nÔ&GÈ:Ò&UÐ&UÝ�nÑ%Ô%Ð%Ý& zÑ2Ô2€IØ˜OÑ+€IØ ¨Ð,ð  d°Ô1RÐV`Ò1`ð  dÕeiÕjmÐn|ô  oOð  oUð  SUñ  kVô  kVñ  fWô  fWð  [dò  fd€KØ×ÒÑÔð V ;ð VÝ˜)Ñ$Ô$ˆÝ�#˜dŸhšh u¨aÑ0Ô0Ð5°AÑ6Ô6Ñ7Ô7ð 	VÝ$Ð%TÑUÔUÐUÝ‰oŒo 
Ñ*€GØ‡M‚M˜$¨€MÑ.Ô.Ð.Ø˜yœ~Ð^Ð^µ´±´×0GÒ0GÈÑ0XÔ0XÐ^Ð^Ð^Ñ^€KÝ˜) nÑ4Ñ5Ô5€HÝ˜ ^Ñ3Ñ4Ô4€GÝ"Ñ$Ô$€JÝ Ñ(Ô(Ð(Ø×Ò Ñ(Ô(€Gð zð  zð  zð  z¨	¯ª¸Ñ(<Ô(<ð  zñ  zô  z€OØXÐXÐXÐXÈÐXÑXÔX€MØ-/€NØ€MÝ�w—{’{ 7¨BÑ/Ô/Ð5°2Ñ6Ô6ð 6ñ 6ˆÝ˜&¥$Ñ'Ô'ð 	ØØ9?¿ºÀFÑ9KÔ9KÐU�J×%Ò% f¨V¤nÑ5Ô5Ð5ÐQUˆ	Ý�i¥Ñ&Ô&ð 	4Ø*3ˆFÐ&Ñ'Ýˆv�zŠz˜( BÑ'Ô'Ñ(Ô(¨KÒ7Ð7ØÝ�V—Z’ZÐ 3°RÑ8Ô8Ð>¸BÑ?Ô?ˆØð 	Õ*¨9°fÑ=Ô=×EÒEÑGÔGð 	ØÝ˜&Ÿ*š* V¨RÑ0Ô0Ð6°BÑ7Ô7×=Ò=Ñ?Ô?ˆØ &Ð(Ð(Ø$×,Ò,¨VÐ4GÔ-HÑIÔIÐOÈRˆKØ&1Ð;•�kÑ"Ô"Ð"°tˆØˆ> §¢Ñ!1Ô!1ˆ>Øð 2Ø×$Ò$ [Ñ1Ô1Ð1ÙÝ”&Ð+¨Sµ#°f·j²jÀÈWÑ6UÔ6UÑ2VÔ2VÑWÔW×]Ò]Ð^aÑbÔbÐmÐfmˆØÐ)Ð)˜FœKÐ)Ð)ˆØ& ��ˆØˆØ˜mÐ+Ð+ØD GÐDÐD¨fÐDÐD°v´{ÐDÐDˆLØ�a‰KˆFð ˜mÐ+Ð+ð 	×Ò˜,Ñ'Ô'Ð'Ø&2ˆÐ"Ñ#Ø×Ò˜v |Ð4Ñ5Ô5Ð5Ñ5Ý(0©
¬
À]ÐSÐS€GˆHÑÝ	Œ˜ cµwÔ7KÐX\Ð	]Ñ	]Ô	]ð 	PÐahØ×Ò˜­¬µJ¸xÑ4HÔ4HÐW\ÐefÐ)gÑ)gÔ)gÑhÔhÐhØ×Ò˜­¬µJ¸wÑ4GÔ4GÐV[ÐdeÐ)fÑ)fÔ)fÑgÔgÐgØ#ð 	tð 	tˆDØ�yÕ#6Ñ6Ò6Ð6Ø× Ò Õ!4°j×6GÒ6GÈÏÊÐ`gÈÑHhÔHhÑ6iÔ6iÑjÔjÐjÐjà—’˜d D×$4Ò$4°YÑ$?Ô$?×$HÒ$HÑ$JÔ$JÐptÔp{÷  qBò  qBñ  qDô  qDõ  HYð  qYð  qYÕZaÔZlÐZlõ  _fô  _s�ñ  tô  tð  tð  tØ"0ð 	Pð 	PÑˆD�,Ø�MŠM˜$ ½GÔ<NˆMÑOÔOÐOÐOð	Pð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð Ðs   Ð.E$VÖV#Ö&V#Úarchive_pathc           
     ó   ‡— t          | ¦  «                             ¦   «                              ¦   «         } |                      ¦   «         rt	          j        | ¦  «        st          d¦  «        ‚t          ¦   «         }|                     dd¬¦  «         t	          j	        | ¦  «        5 }| 
                    ¦   «         }t          |¦  «        dk    st          d„ |D ¦   «         ¦  «        dk    rt          d¦  «        ‚|D ]V}t          |j                             dd	¦  «        ¦  «        }|                     ¦   «         s	d
|j        v rt          d¦  «        ‚ŒWt#          j        d|¬¦  «        5 }t          |¦  «        }|                     |¦  «         |Š‰dz                       ¦   «         sId„ ‰                     d¦  «        D ¦   «         }t          |¦  «        dk    rt          d¦  «        ‚|d         Št+          ‰dz  ¦  «        }	t+          ‰dz  ¦  «        }
t-          |	                     dd¦  «        pd¦  «        }t1          |	                     dd¦  «        pd¦  «        t2          k    s.t1          |
                     dd¦  «        pd¦  «        t4          k    rt          d¦  «        ‚t-          |	                     dd¦  «        ¦  «                             ¦   «                              ¦   «         dvs)t;          |
                     di ¦  «        t<          ¦  «        st          d¦  «        ‚t?          ‰|
¦  «         |r8t-          |
                     dd¦  «        pd¦  «        |k    rt          d¦  «        ‚tA          |
                     dg ¦  «        pg ¦  «        D ]x}t;          |t<          ¦  «        sŒd|v r tB           "                    |d         ¦  «         d D ]9}t-          |                     |d¦  «        pd¦  «        }|rtG          ‰|¦  «         Œ:ŒytH           %                    |¦  «        r*|tM          |¦  «        vr||z   '                    ¦   «         s|ntQ          |¦  «        }||	d<   |	 )                    d!d ¦  «         t-          |	                     d"d¦  «        pd#¦  «        |	d"<   tU          ¦   «         |	d$<   ||
d<   tW          |
||¦  «        }
tX          5  t[          ||	d"         ¦  «        }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   	 t]          j/        ‰|dˆfd%„¬&¦  «         ta          |dz  |
¦  «         ta          |dz  |	¦  «         nJ# tb          $ r= |                     ¦   «          2                    |¦  «         t]          j3        |¦  «         ‚ w xY w	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |	S )'Nz)Select a valid Deepy session ZIP archive.TrX   i'  c              3  ó@   K  — | ]}t          d |j        ¦  «        V — ŒdS rD  )r�   Ú	file_size)r­   Úmembers     r>   rÝ   z!import_session.<locals>.<genexpr>X  s/   è è € Ð&VÐ&VÀF¥s¨1¨fÔ.>Ñ'?Ô'?Ð&VÐ&VÐ&VÐ&VÐ&VÐ&Vr=   l       2 z#Deepy session archive is too large.r  r  r  z.Deepy session archive contains an unsafe path.z.deepy-import-)ÚprefixÚdirrÌ   c                ót   — g | ]5}|j                              d ¦  «                             ¦   «         ¯.|j         ‘Œ6S )rõ  )rÜ   ÚjoinpathrÐ   rt  s     r>   rQ  z"import_session.<locals>.<listcomp>c  sk   € ð  Lð  Lð  L¨dÐ\`Ô\g×\pÒ\pÐqñ  ]Aô  ]A÷  ]Iò  ]Iñ  ]Kô  ]Kð  L˜dœkð  Lð  Lð  Lr=   r   z+Archive does not contain one Deepy session.r   rõ  r«   rG   r„  z9This Deepy session archive was created by a newer format.rH  >   ÚzeroÚprimerp  z2Archive contains an invalid Deepy session context.r—  z8Archive contains inconsistent Deepy session identifiers.r–  rÙ  r;  rÞ   r¤   zImported Deepy sessionr[  c                ó<   •— dgt          | ¦  «        ‰k    rddgng ¢S r£  r	   )rÁ  r¤  Úcontent_roots     €r>   r�   z import_session.<locals>.<lambda>…  sj   ø€ Ðm|ð  mKõ  eið  jpñ  eqô  eqð  uAò  eAð  eAð  BPð  R`ð  Aað  Aað  GIð  mK€ r=   r¥  )4r
   rJ   rN   rÐ   rÊ  Ú
is_zipfiler7   rU   rf   rË  Úinfolistrž   ÚsumrÇ  rs   r  rï   ÚtempfileÚTemporaryDirectoryÚ
extractallrÌ  rÑ   rH   rÒ   r‰   rU  r¢  rI   rc   r	  r
  r3  r=  rþ   r  r  rÓ   re   rÄ   rÆ   rÈ   rô   r¾   r$  rM   rã   rj   r¨  r?  r3  rî   rk   )rÖ  rv   rÕ  ÚmembersrÚ  Úmember_pathÚtemporary_namery   Ú
candidatesr×   r˜  Úoriginal_idrª  r  r-  r¦   rE  râ  s                    @r>   Úimport_sessionrî  P  s,  ø€ Ý˜Ñ%Ô%×0Ò0Ñ2Ô2×:Ò:Ñ<Ô<€LØ×ÒÑ!Ô!ð M­Ô);¸LÑ)IÔ)Ið MÝÐ KÑLÔLÐLÝ‰?Œ?€DØ‡J‚J�t d€JÑ+Ô+Ð+Ý	Œ˜Ñ	&Ô	&ð 5¨'Ø×"Ò"Ñ$Ô$ˆÝˆw‰<Œ<˜%ÒÐ¥3Ð&VÐ&VÈgÐ&VÑ&VÔ&VÑ#VÔ#VÐYpÒ#pÐ#pÝ#Ð$IÑJÔJÐJØð 	Zð 	ZˆFÝ˜vœ×6Ò6°t¸SÑAÔAÑBÔBˆKØ×&Ò&Ñ(Ô(ð Z¨D°KÔ4EÐ,EÐ,EÝ'Ð(XÑYÔYÐYð -FåÔ(Ð0@ÀdÐKÑKÔKð -	È~Ý˜^Ñ,Ô,ˆIØ×Ò˜yÑ)Ô)Ð)Ø$ˆLØ  >Ñ1×:Ò:Ñ<Ô<ð -ð Lð  L°l×6HÒ6HÈÑ6XÔ6Xð  Lñ  Lô  L�
Ý�z‘?”? aÒ'Ð'Ý+Ð,YÑZÔZÐZØ)¨!œ}�Ý! ,°Ñ"?Ñ@Ô@ˆHÝ  °Ñ!>Ñ?Ô?ˆGÝ˜hŸlšl¨4°Ñ4Ô4Ð:¸Ñ;Ô;ˆKÝ�8—<’<Ð 0°!Ñ4Ô4Ð9¸Ñ:Ô:Õ=SÒSÐSÕWZÐ[b×[fÒ[fÐgwÐyzÑ[{Ô[{ð  \Að  @Añ  XBô  XBõ  E[ò  X[ð  X[Ý'Ð(cÑdÔdÐdÝ�8—<’< ¨bÑ1Ô1Ñ2Ô2×8Ò8Ñ:Ô:×@Ò@ÑBÔBÐJ[Ð[Ð[ÕcmÐnu×nyÒnyð  {Að  CEñ  oFô  oFõ  HLñ  dMô  dMÐ[Ý'Ð(\Ñ]Ô]Ð]Ý$ \°7Ñ;Ô;Ð;Øð d�s 7§;¢;¨|¸RÑ#@Ô#@Ð#FÀBÑGÔGÈ;ÒVÐVÝ'Ð(bÑcÔcÐcÝ˜wŸ{š{¨7°BÑ7Ô7Ð=¸2Ñ>Ô>ð Jð J�Ý! &­$Ñ/Ô/ð ØØ&¨&Ð0Ð0Ý%×.Ò.¨vÐ6IÔ/JÑKÔKÐKØIð Jð J�CÝ$'¨¯
ª
°3¸Ñ(;Ô(;Ð(A¸rÑ$BÔ$B�MØ$ð JÝ,¨\¸=ÑIÔIÐIøðJõ )7×(@Ò(@ÀÑ(MÔ(Mð  ÐR]ÕewÐx|Ñe}Ôe}ÐR}ÐR}ð  HLð  OZñ  HZ÷  Gbò  Gbñ  Gdô  GdÐR}˜˜õ  jyð  z~ñ  jô  jˆJØ'ˆH�T‰NØ�LŠLÐ/°Ñ6Ô6Ð6Ý # H§L¢L°¸"Ñ$=Ô$=Ð$YÐAYÑ ZÔ ZˆH�WÑÝ%-¡Z¤ZˆH�\Ñ"Ø$.ˆG�LÑ!Ý0°¸+ÀzÑRÔRˆGÝð $ð $Ý4°T¸8ÀGÔ;LÑMÔM�Ø×!Ò!Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ðÝ” ¨kÈð  WKð  WKð  WKð  WKð  Lñ  Lô  Lð  LÝ˜[¨>Ñ9¸7ÑCÔCÐCÝ˜[¨>Ñ9¸8ÑDÔDÐDÐDøÝð ð ð Ø×#Ò#Ñ%Ô%×1Ò1°$Ñ7Ô7Ð7Ý”˜kÑ*Ô*Ð*Øðøøøð EðS-	ð -	ð -	ñ -	ô -	ð -	ð -	ð -	ð -	ð -	ð -	øøøð -	ð -	ð -	ð -	ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ðl €Osv   Â%CWÅ(M(V,Ó+TÓ;V,ÔTÔV,ÔTÔV,ÔAUÕV,ÕAVÖV,Ö WÖ,V0	Ö0WÖ3V0	Ö4W×W×
Wc                ó|   — | j                              ¦   «         }|dv rdS |dv rdS |t          v rdS |t          v rdS dS )N>   r#   r%   r)   r+   r,   r-   r.   r/   rè  >   r$   r&   r'   r(   r*   r0   rl  Ú3dÚworldÚimage)rµ   rc   r   r   )rB   rµ   s     r>   rÑ  rÑ  �  s]   € ØŒ[×ÒÑ Ô €FØÐSÐSÐSØˆwØÐBÐBÐBØˆwØ•Ð Ð ØˆtØÕ!Ð!Ð!ØˆwØˆ7r=   )+r¢  rL   r}   r~   rg   rƒ   r‚   rU  r‰  rŒ  rA   r7   r¸  r¥   rF  rõ   rR   r¼  r®  rz   rW  r¿  r¾  r  rî  r˜  r²   rb  r€   r„   rñ   rB  rš  r�  r¶  rC  rü   rR  r^  rU   r°  r³  r@  )rB   rC   rD   r
   )rD   r
   )rV   rH   rD   r
   )r{   r   rD   rH   )r…   r†   )r‡   rH   rˆ   r‰   rŠ   r‰   rD   rH   )rG   )r¤   rH   r¦   rH   rD   rH   )rD   rH   rT   )rv   r¿   rD   rH   )rv   r¿   rD   rÉ   )rv   r
   r¤   rH   rD   r
   )r¦   rH   rD   r
   )rÕ   rê   rD   rë   )r¦   rH   rD   rò   )rÕ   r
   rD   rö   )r{   r   rD   r   )rB   r
   rD   rU  )rB   r
   r{   rU  rD   rò   )rj  rH   rD   rH   )rv  rU  rD   rU  )rÕ   r
   r}  r~  rD   r  )rÕ   r
   r–  r‰   rD   rò   )rª  rU  rD   rU  )rª  rU  r°  r‰   rD   rU  )
rª  rU  r·  rU  r°  r‰   r¸  r‰   rD   rU  )rÅ  rÆ  rÇ  rÆ  rD   rÆ  )rÕ   r
   rò  rÆ  rD   ró  )rÕ   r
   rD   rò   )rù   r‰   rD   rö   )rD   rò   )r‡   rH   rH  rH   rI  rH   rJ  rK  rÕ   r¿   rD   rU  )rD   rU  )rD   r¿   )r_  r   rD   rK  )rD   rK  )rB   r
   rD   rH   )rÕ   r
   rD   rÆ  )rÕ   r
   rÔ   rÆ  rÕ  rH   rD   rÆ  )r˜  rU  ræ  rö   rD   rò   )rô  rU  rD   rU  )r¦   rH   r  r   rD   rò   )rD   r	  )rH  rë   rD   rÆ  )r{   r   r&  r  rD   r   )r&  r  r(  rH   r   rH   rD   rò   )rÕ   r
   r-  rH   rD   r
   )rÕ   r
   r˜  rU  rD   r/  )r¦   rH   rH  rH   rD   rU  )rc  rU  rD   rU  )r¤   rH   rD   rU  )r¦   rH   r¤   rH   rD   rU  )r¦   rH   rD   rU  )rÕ  rH   rD   rK  )r±  rö   rD   rò   )r¦   rH   )rÖ  rê   rD   rU  )•Ú
__future__r   Úatexitr   rÎ  r#  r8  rE  rr   rš   rj   ræ  Ú	threadingÚurllib.parser   rn   rÊ  Úconcurrent.futuresr   r   Ú
contextlibr   r   r   Úpathlibr
   Útypesr   Útypingr   Úshared.utils.gallery_mediar   r   ry  r   r   Úshared.utils.readable_pathsr   r   rU  r¢  rŒ  rL   rg   r‰  r~   r}   rƒ   r‚   rÍ  Úcompilerí  r—   r˜   r™   r–   r”   rÓ   rd   ÚRLockrM   rK   rN   rO   r  r3   Ú__annotations__r4   r5   ÚRuntimeErrorr7   rA   rR   rU   rz   r€   r„   r¥   r¶   r¾   rÈ   rÄ   rã   ræ   ré   rñ   rõ   rü   rþ   rH  rK  rÑ   r?  rc  r�  rq  rt  ru  r{  r•  r©  r¯  r¶  rÄ  rã  rñ  r  rA  rú   r<  rB  rA  ÚregisterrF  rW  rR  r^  r…  r²  r¸  rÔ  rä  ró  r  r  rC  r  r²   r%  r$  r,  r  r3  r@  rb  r˜  rš  r�  r®  r°  r³  r¶  r¸  r¼  r¿  r¾  rî  rÑ  Ú__all__r<   r=   r>   ú<module>r     sý	  ðà "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Að Ð ØÐ ØÐ Ø*Ð Ø /Ð Ø#Ð ØÐ ØÐ Ø€Ø"Ð ð ^ð  ^ð  ^Ð Ø
ˆ"Œ*Ð.°´Ñ
>Ô
>€Ø�2”:ÐRÑSÔSÐ Ø�”ÐSÑTÔT€Ø�B”JÐ9Ñ:Ô:Ð Ø�”ÐZÐ\^Ô\iÑjÔj€Ø�”Ð8Ñ9Ô9€Ø!�r”zÐ"8Ñ9Ô9Ð ØˆYŒ_ÑÔ€
Ø�$”(‘*”*Ð6Ñ6×?Ò?ÑAÔA€Ø
Ð
¨Ð?SÐ
TÑ
TÔ
T€Ø,.€Ð .Ð .Ð .Ñ .Ø02Ð Ð 2Ð 2Ð 2Ñ 2à€	Ð Ð Ð Ñ ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð*ñ 	ô 	ð 	ðð ð ð ðð ð ð ð
ð ð ð ð>pð pð pð pðhð hð hð hð$ð $ð $ð $ð $ð"ð ð ð ð ð`ð `ð `ð `ðð ð ð ð ðð ð ð ð ð09ð 9ð 9ð 9ð"ð "ð "ð "ðTð Tð Tð Tðð ð ð ð*(ð (ð (ð (ð
að að að að
?3ð ?3ð ?3ð ?3ð ?3ñ ?3ô ?3ð ?3ðD (*ð  4ð  4ð  4ð  4ð  4ðF	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ð [ÐZÐZÐ Ø2Ð Ø%˜2œ:Ð&gÐikÔivÑwÔwÐ ðCð Cð Cð Cð ð ð ð ð EIð '9ð '9ð '9ð '9ð '9ð '9ðT#Pð #Pð #Pð #PðL]ð ]ð ]ð ]ðFð Fð Fð Fðð ð ð ð$ð ð ð ð<ð ð ð ð<%+ð %+ð %+ð %+ðP;ð ;ð ;ð ;ð&ð &ð &ð &ðR:ð :ð :ð :ð6$ð $ð $ð $ð0
ð 
ð 
ð 
ð €„Ð"Ñ #Ô #Ð #ð9ð 9ð 9ð 9ð+%ð  V[ð  vzð +%ð +%ð +%ð +%ð +%ð +%ð\
ð 
ð 
ð 
ð;ð ;ð ;ð ;ð-ð -ð -ð -ð,0að 0að 0að 0aðf4ð 4ð 4ð 4ð
ð ð ð ð.ð .ð .ð .ðb RWð ,ð ,ð ,ð ,ð ,ð ,ð&*mð *mð *mð *mðZ,ð ,ð ,ð ,ðð ð ð ðð ð ð ðð ð ð ð ð ð ð ð ðð ð ðuð uð uð uðð ð ð ðYð Yð Yð Yð !ð !ð !ð !ð !ðHyRð yRð yRð yRðxZ6ð Z6ð Z6ð Z6ðz1ð 1ð 1ð 1ðð ð ð ð ð"0ð 0ð 0ð 0ð 0ðfJð Jð Jð Jð
 8<ð :ð :ð :ð :ð :ð :ð6ð ð ð ð( ð$ð $ð $ñ „ð$ð(ð ð ð ð ð"Uð Uð Uð Uð>ð >ð >ð >ð >ðB<ð <ð <ð <ð~
ð 
ð 
ð 
ð,ð ,ð ,€€€r=   