§
    Êjéi  ã                  óx  — d Z 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m	Z	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 ddlmZ ddlmZmZmZmZmZ ddlmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0  ej1        e2¦  «        Z3e G d„ d¦  «        ¦   «         Z4 G d„ de&¦  «        Z5dS )z¼Invisible Playwright driver: operates the muse.ai web client using invisible-playwright
(C++ patched anti-detect Firefox) to bypass Cloudflare Turnstile, anti-bot, and fingerprint checks.
é    )ÚannotationsN)ÚAsyncIteratorÚCallable)Ú	dataclassÚfield)ÚAny)Úurlsplité   )ÚAccount)ÚSettings)Úfollowup_text)ÚUpstreamAuthErrorÚUpstreamErrorÚUpstreamQuotaErrorÚUpstreamRefusedÚUpstreamTimeout)Úmuseé   )ÚChatRequestÚDriverCapabilitiesÚImageRequestÚ
InputImageÚMediaResultÚ
MuseDriverÚSessionInfoÚVideoRequest)Údom)ÚHOT_BUBBLE_LIMITÚPOLL_INTERVALÚSTABLE_POLLS_DONEÚSTABLE_POLLS_FORCEÚis_thread_urlc                  óÊ   — e Zd ZU ded<   ded<   ded<   dZded<    ee¬	¦  «        Zd
ed<   dZded<   dZ	ded<   dZ
ded<   dZded<   dZded<   dZded<   edd„¦   «         ZdS )Ú_PlaywrightTabÚstrÚ
account_idr   ÚcontextÚpageNú
str | NoneÚhint)Údefault_factoryzlist[tuple[str, str]]Úturnsr   ÚintÚimage_countÚ Ú
thread_urlÚ
quota_noteFÚboolÚbusyÚstaleÚclosedÚreturnc                ó8   — t          | j        p| j        ¦  «        S ©N)r2   r,   r0   ©Úselfs    ú6C:\Projects\Muse2API\src\muse2api\drivers\invisible.pyÚ	has_statez_PlaywrightTab.has_state@   s   € å�D”JÐ1 $¤/Ñ2Ô2Ð2ó    )r6   r2   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r*   r   Úlistr,   r.   r0   r1   r3   r4   r5   Úpropertyr<   © r=   r;   r$   r$   2   sä   € € € € € € à€O€O�OØ€L€L�LØ€I€I�IØ€DÐÐÐÑØ#( 5¸Ð#>Ñ#>Ô#>€EÐ>Ð>Ð>Ñ>Ø€KÐÐÐÑØ€JÐÐÐÑØ€JÐÐÐÑØ€DÐÐÐÑØ€EÐÐÐÑØ€FÐÐÐÑàð3ð 3ð 3ñ „Xð3ð 3ð 3r=   r$   c                  óœ  — e Zd ZdZdZ edddddd¬¦  «        ZdXd	„ZdYd
„ZdYd„Z	dZd„Z
	 d[d\d„Zd]d„ZdYd„Zd^d„Zd_d„Zd]d„Zd]d„Zed]d„¦   «         Zd`d„Zdad#„Zdbd$„Zdcd&„Zd]d'„Zddd*„Zded,„Zdfd.„Zdgd/„Zd]d0„Zdcd1„Zd]d2„Zdhd3„Z did5„Z!ed[djd;„¦   «         Z"d<d=d>œZ#d?Z$dkdE„Z%dFZ&dGZ'dHZ(dIZ)e*dldL„¦   «         Z+dmdO„Z,dndP„Z-dodS„Z.dpdU„Z/dqdW„Z0dS )rÚInvisiblePlaywrightDriverzODriver using invisible-playwright (anti-detect Firefox) to bypass bot blocking.Ú	invisibleT)ÚchatÚchat_imagesÚimageÚ
image_editÚvideoÚrenew_sessionÚsettingsr   r6   ÚNonec                óº   — || _         d | _        d | _        i | _        i | _        i | _        t          j        ¦   «         | _        t          j	        ¦   «         | _
        d S r8   )rN   Ú_ipÚ_browserÚ	_contextsÚ_tabsÚ_openingÚasyncioÚ	ConditionÚ	_tab_condÚLockÚ	_ctx_lock)r:   rN   s     r;   Ú__init__z"InvisiblePlaywrightDriver.__init__M   sM   € Ø ˆŒØ#ˆŒØ$(ˆŒØ)+ˆŒØ68ˆŒ
Ø(*ˆŒÝ Ô*Ñ,Ô,ˆŒÝ œ™œˆŒˆˆr=   c              ƒ  óN  K  — ddl m} d }| j        j        rd| j        j        i}t                               d| j        j        ¦  «          || j        j        |d¬¦  «        | _        | j                             ¦   «         ƒ d {V —†| _	        t                               d¦  «         d S )Nr   )ÚInvisiblePlaywrightÚserverz@launching invisible-playwright anti-detect browser (headless=%s)T)ÚheadlessÚproxyÚhumanizez!invisible-playwright driver ready)
Úinvisible_playwright.async_apir]   rN   Úbrowser_proxyÚlogÚinfor_   rQ   Ú
__aenter__rR   )r:   r]   Ú
proxy_dicts      r;   Ústartupz!InvisiblePlaywrightDriver.startupX   s¿   è è € ØFÐFÐFÐFÐFÐFàˆ
ØŒ=Ô&ð 	AØ" D¤MÔ$?Ð@ˆJå�ŠÐSÐUYÔUbÔUkÑlÔlÐlØ&Ð&Ø”]Ô+ØØð
ñ 
ô 
ˆŒð
 #œh×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3ˆŒÝ�ŠÐ4Ñ5Ô5Ð5Ð5Ð5r=   c              ƒ  ó‚  K  — t          | j                             ¦   «         ¦  «        D ]/}t          |¦  «        D ]}|                      |¦  «        ƒ d {V —† ŒŒ0t          | j                             ¦   «         ¦  «        D ]M}t          j        t          ¦  «        5  |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ŒN| j         	                    ¦   «          | j
        rPt          j        t          ¦  «        5  | j
                             ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   | j        rSt          j        t          ¦  «        5  | j                             d d d ¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d | _
        d | _        t                               d¦  «         d S )Nz#invisible-playwright driver stopped)rB   rT   ÚvaluesÚ
_close_tabrS   Ú
contextlibÚsuppressÚ	ExceptionÚcloseÚclearrR   rQ   Ú	__aexit__rd   re   )r:   ÚtabsÚtabÚctxs       r;   Úshutdownz"InvisiblePlaywrightDriver.shutdownh   s…  è è € Ý˜œ×*Ò*Ñ,Ô,Ñ-Ô-ð 	+ð 	+ˆDÝ˜D‘z”zð +ð +�Ø—o’o cÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð+å˜œ×-Ò-Ñ/Ô/Ñ0Ô0ð 	"ð 	"ˆCÝÔ$¥YÑ/Ô/ð "ð "Ø—i’i‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "øàŒ×ÒÑÔÐØŒ=ð 	,ÝÔ$¥YÑ/Ô/ð ,ð ,Ø”m×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,àŒ8ð 	;ÝÔ$¥YÑ/Ô/ð ;ð ;Ø”h×(Ò(¨¨t°TÑ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;àˆŒØˆŒÝ�ŠÐ6Ñ7Ô7Ð7Ð7Ð7s6   ÂCÃC	ÃC	Ä D2Ä2D6Ä9D6Å#FÆFÆFúdict[str, Any]c              ƒ  óð   K  — | j         d uo| j                              ¦   «         }d„ | j                             ¦   «         D ¦   «         }| j        |t          |¦  «        t          d„ |D ¦   «         ¦  «        dœS )Nc                ó   — g | ]	}|D ]}|‘ŒŒ
S rD   rD   )Ú.0ÚtsÚts      r;   ú
<listcomp>z4InvisiblePlaywrightDriver.health.<locals>.<listcomp>|   s%   € Ð<Ð<Ð<�b¸Ð<Ð<°A�Ð<Ð<Ð<Ð<r=   c              3  ó$   K  — | ]}|j         V — Œd S r8   ©r3   ©ry   r{   s     r;   ú	<genexpr>z3InvisiblePlaywrightDriver.health.<locals>.<genexpr>�   s$   è è € Ð2Ð2¨˜QœVÐ2Ð2Ð2Ð2Ð2Ð2r=   )ÚdriverÚokrr   Ú	busy_tabs)rR   Úis_connectedrT   rj   ÚnameÚlenÚsum)r:   r‚   rr   s      r;   Úhealthz InvisiblePlaywrightDriver.healthz   s€   è è € ØŒ] $Ð&ÐG¨4¬=×+EÒ+EÑ+GÔ+GˆØ<Ð<˜DœJ×-Ò-Ñ/Ô/Ð<Ñ<Ô<ˆà”iØÝ˜‘I”IÝÐ2Ð2¨TÐ2Ñ2Ô2Ñ2Ô2ð	
ð 
ð 	
r=   NÚaccountr   Úpreferú'Callable[[_PlaywrightTab], bool] | Noner$   c              ƒ  ó¨  ‡K  — t          d| j        j        ¦  «        }g }| j        4 ƒd {V —† 	 | j                             |j        g ¦  «        }d„ |D ¦   «         D ],}|                     |¦  «         |                     |¦  «         Œ-d„ |D ¦   «         }t          |¦  «        | j
                             |j        d¦  «        z   |k     }t          ˆfd„|D ¦   «         d ¦  «        }	|	s|r,|s*|	pt          d„ |D ¦   «         |d         ¦  «        }
d|
_        nV|r3| j
                             |j        d¦  «        dz   | j
        |j        <   d }
n!| j                             ¦   «         ƒ d {V —† �Œ;	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |D ]}|                      |¦  «        ƒ d {V —† Œ|
r|
S 	 |                      |¦  «        ƒ d {V —†}
| j        4 ƒd {V —† | j
        |j        xx         dz  cc<   |
r:d|
_        | j                             |j        g ¦  «                             |
¦  «         | j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   n¥# | j        4 ƒd {V —† | j
        |j        xx         dz  cc<   |
r:d|
_        | j                             |j        g ¦  «                             |
¦  «         | j                             ¦   «          d d d ¦  «        ƒd {V —† w # 1 ƒd {V —†swxY w Y   w xY wt$                               dt          | j        |j                 ¦  «        |j        ¦  «         |
S )	Nr   Tc                ón   — g | ]2}|j         s'|j        °|j        s|j                             ¦   «         ¯0|‘Œ3S rD   )r5   r3   r4   r(   Ú	is_closedr   s     r;   r|   z7InvisiblePlaywrightDriver._checkout.<locals>.<listcomp>�   sB   € ÐjÐjÐj ¨Q¬XÐj¸a¼fÐjÈ!Ì'ÐjÐUVÔU[×UeÒUeÑUgÔUgÐj˜!ÐjÐjÐjr=   c                ó    — g | ]}|j         °	|‘ŒS rD   r~   r   s     r;   r|   z7InvisiblePlaywrightDriver._checkout.<locals>.<listcomp>�   s   € Ð6Ð6Ð6˜a¨q¬vÐ6˜Ð6Ð6Ð6r=   r   c              3  ó6   •K  — | ]}‰� ‰|¦  «        ¯|V — Œd S r8   rD   )ry   r{   rŠ   s     €r;   r€   z6InvisiblePlaywrightDriver._checkout.<locals>.<genexpr>’   s/   øè è € ÐMÐM A°°À6À6È!Á9Ä9°˜a°°°°ÐMÐMr=   c              3  ó(   K  — | ]}|j         °	|V — Œd S r8   ©r<   r   s     r;   r€   z6InvisiblePlaywrightDriver._checkout.<locals>.<genexpr>”   s)   è è € Ð(LÐ(L¨qÀÄÐ(L¨Ð(LÐ(LÐ(LÐ(LÐ(LÐ(Lr=   z&opened invisible tab %d for account %s)ÚmaxrN   Úaccount_max_concurrencyrX   rT   Ú
setdefaultÚidÚremoveÚappendr†   rU   ÚgetÚnextr3   Úwaitrk   Ú	_open_tabÚ
notify_allrd   re   )r:   r‰   rŠ   ÚlimitÚdeadrr   r{   ÚidleÚcan_openÚmatchrs   s     `        r;   Ú	_checkoutz#InvisiblePlaywrightDriver._checkout…   s3  øè è € õ �A�t”}Ô<Ñ=Ô=ˆØ%'ˆØ”>ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð,Ø”z×,Ò,¨W¬Z¸Ñ<Ô<�ØjÐj TÐjÑjÔjð #ð #�AØ—K’K ‘N”N�NØ—K’K ‘N”N�N�NØ6Ð6 4Ð6Ñ6Ô6�Ý˜t™9œ9 t¤}×'8Ò'8¸¼ÀQÑ'GÔ'GÑGÈ%ÒO�ÝÐMÐMÐMÐM¨ÐMÑMÔMÈtÑTÔT�Øð ˜Tð ¨(ð ØÐV¥4Ð(LÐ(L°DÐ(LÑ(LÔ(LÈdÐSTÌgÑ#VÔ#V�CØ#�C”HØØð Ø04´×0AÒ0AÀ'Ä*ÈaÑ0PÔ0PÐSTÑ0T�D”M '¤*Ñ-Ø�CØØ”n×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ñ!,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð$ ð 	%ð 	%ˆAØ—/’/ !Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Øð 	ØˆJð	,ØŸš wÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/ˆCà”~ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,Ø”˜gœjÐ)Ð)Ô)¨QÑ.Ð)Ð)Ñ)Øð FØ#�C”HØ”J×)Ò)¨'¬*°bÑ9Ô9×@Ò@ÀÑEÔEÐEØ”×)Ò)Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,øø�t”~ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,Ø”˜gœjÐ)Ð)Ô)¨QÑ.Ð)Ð)Ñ)Øð FØ#�C”HØ”J×)Ò)¨'¬*°bÑ9Ô9×@Ò@ÀÑEÔEÐEØ”×)Ò)Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,øøøõ 	�ŠÐ9½3¸t¼zÈ'Ì*Ô?UÑ;VÔ;VÐX_ÔXbÑcÔcÐcØˆ
sV   ­D=E=Å=
FÆ
FÆ3I/ ÇA0IÉ
I'É*I'É/LÉ=A0K?Ë-LË?
L	Ì	LÌL	ÌLrs   c              ƒ  ó¸   K  — d|_         t          j        |                      ¦   «         ¦  «        ƒ d {V —† |j        r|                      |¦  «        ƒ d {V —† d S d S )NF)r3   rV   ÚshieldÚ_notify_tabsr4   rk   ©r:   rs   s     r;   Ú_checkinz"InvisiblePlaywrightDriver._checkin¬   sy   è è € ØˆŒÝŒn˜T×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ØŒ9ð 	'Ø—/’/ #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð	'ð 	'r=   c              ƒ  ó    K  — | j         4 ƒd {V —† | j                              ¦   «          d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S r8   )rX   r�   r9   s    r;   r¦   z&InvisiblePlaywrightDriver._notify_tabs²   sà   è è € Ø”>ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ØŒN×%Ò%Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   �=½
AÁ
Ar   c              ƒ  óÒ  K  — | j         4 ƒd {V —† | j                             |j        ¦  «        x}r|cd d d ¦  «        ƒd {V —† S | j        s
J d¦   «         ‚| j                             dddœ¬¦  «        ƒ d {V —†}g }t          j        ¦   «         dz   }|j                             ¦   «         D ]i\  }}|sŒ|j	                             |¦  «        pd}| 
                    ||dd	d
||k    r|n"t          t          j        ¦   «         dz   ¦  «        dœ¦  «         Œj|r|                     |¦  «        ƒ d {V —† || j        |j        <   |cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )NzBrowser not initializedi   i„  )ÚwidthÚheight)Úviewporti  r   z.muse.aiú/Ti€:	 )r…   ÚvalueÚdomainÚpathÚsecureÚexpires)rZ   rS   r™   r–   rR   Únew_contextÚtimeÚcookiesÚitemsÚcookie_expiresr˜   r-   Úadd_cookies)r:   r‰   rt   r¶   Úfloorr…   r¯   Úexps           r;   Ú_contextz"InvisiblePlaywrightDriver._context¶   s„  è è € Ø”>ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø”n×(Ò(¨¬Ñ4Ô4Ð4ˆsð Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ”=Ð;Ð;Ð";Ñ;Ô;�=Øœ×1Ò1Ø#'°3Ð7Ð7ð 2ñ ô ð ð ð ð ð ð ˆCð ˆGÝ”I‘K”K $Ñ&ˆEØ&œ×4Ò4Ñ6Ô6ð ð ‘��eØð ØØÔ,×0Ò0°Ñ6Ô6Ð;¸!�Ø—’Ø Ø"Ø(ØØ"Ø&)¨E¢k k˜s˜sµs½4¼9¹;¼;ÈÑ;RÑ7SÔ7Sð ð  ñ ô ð ð ð ð /Ø—o’o gÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ø),ˆDŒN˜7œ:Ñ&Øð1	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �#EÁC=EÅ
E Å#E c              ƒ  óî   K  — |j                              d¦  «        st          d¦  «        ‚|                      |¦  «        ƒ d {V —†}|                     ¦   «         ƒ d {V —†}t          |j        ||¦  «        S )NÚ
hatch_sessz-account is missing session cookie: hatch_sess)r¶   r™   r   r¼   Únew_pager$   r–   )r:   r‰   rt   r(   s       r;   rœ   z#InvisiblePlaywrightDriver._open_tabÑ   s„   è è € ØŒ×"Ò" <Ñ0Ô0ð 	UÝ#Ð$SÑTÔTÐTØ—M’M 'Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*ˆØ—\’\‘^”^Ð#Ð#Ð#Ð#Ð#Ð#ˆÝ˜gœj¨#¨tÑ4Ô4Ð4r=   c              ƒ  ó”   K  — |j         rd S d\  |_         |_        t          j        |                      |¦  «        ¦  «        ƒ d {V —† d S )N)TF)r5   r3   rV   r¥   Ú_dispose_tabr§   s     r;   rk   z$InvisiblePlaywrightDriver._close_tabØ   sY   è è € ØŒ:ð 	ØˆFØ*ÑˆŒ
�C”HÝŒn˜T×.Ò.¨sÑ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4r=   c              ƒ  óÞ  K  — | j         4 ƒd {V —† | j                             |j        g ¦  «        }||v r|                     |¦  «         | o| j                             |j        ¦  «         }|r | j                             |j        d ¦  «        nd }| j                              ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t          j
        t          ¦  «        5  |j                             ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |rNt          j
        t          ¦  «        5  |                     ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S d S r8   )rX   rT   r™   r&   r—   rU   rS   Úpopr�   rl   rm   rn   r(   ro   )r:   rs   rr   Úlastr'   s        r;   rÁ   z&InvisiblePlaywrightDriver._dispose_tabÞ   sz  è è € Ø”>ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(Ø”:—>’> #¤.°"Ñ5Ô5ˆDØ�dˆ{ˆ{Ø—’˜CÑ Ô Ð Ø�8ÐE D¤M×$5Ò$5°c´nÑ$EÔ$EÐ EˆDØBFÐP�d”n×(Ò(¨¬¸Ñ>Ô>Ð>ÈDˆGØŒN×%Ò%Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(õ Ô ¥Ñ+Ô+ð 	#ð 	#Ø”(—.’.Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#àð 	&ÝÔ$¥YÑ/Ô/ð &ð &Ø—m’m‘o”oÐ%Ð%Ð%Ð%Ð%Ð%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &ð	&ð 	&s6   �BB<Â<
CÃ	CÃ& DÄDÄDÄ8E Å E$Å'E$c                ó>   — d | _         g | _        d| _        d| _        d S )Nr   r/   )r*   r,   r.   r0   )rs   s    r;   Ú_forgetz!InvisiblePlaywrightDriver._forgetì   s"   € àˆŒØˆŒ	ØˆŒØˆŒˆˆr=   c                óÂ  — |j         s|j        rd S |j                             d¦  «        }t	          |t
          ¦  «        sd S g }|                     d¦  «        pg D ]n}t	          |t          t          f¦  «        rPt          |¦  «        dk    r=| 	                    t          |d         ¦  «        t          |d         ¦  «        f¦  «         Œo||_         |                     d¦  «        pd |_        t          |                     d¦  «        pd¦  «        |_        	 t          |                     d	¦  «        pd¦  «        |_        d S # t          t          f$ r d|_        Y d S w xY w)
NÚhot_pager,   r
   r   r   r*   Úurlr/   r.   )r,   r0   Úmetar™   Ú
isinstanceÚdictrB   Útupler†   r˜   r%   r*   r-   r.   Ú	TypeErrorÚ
ValueError)r:   rs   r‰   Úhotr,   Úitems         r;   Ú	_load_hotz#InvisiblePlaywrightDriver._load_hotó   sL  € ØŒ9ð 	˜œð 	ØˆFØŒl×Ò˜zÑ*Ô*ˆÝ˜#�tÑ$Ô$ð 	ØˆFØˆØ—G’G˜GÑ$Ô$Ð*¨ð 	;ð 	;ˆDÝ˜$¥¥u Ñ.Ô.ð ;µ3°t±9´9À²>°>Ø—’�c $ q¤'™lœl­C°°Q´©L¬LÐ9Ñ:Ô:Ð:øØˆŒ	Ø—7’7˜6‘?”?Ð* dˆŒÝ˜SŸWšW U™^œ^Ð1¨rÑ2Ô2ˆŒð	 Ý! #§'¢'¨-Ñ"8Ô"8Ð"=¸AÑ>Ô>ˆCŒOˆOˆOøÝ�:Ð&ð 	 ð 	 ð 	 ØˆCŒOˆOˆOˆOð	 øøøs   Ä)E ÅEÅEÚreqr   rÉ   r%   c                óò   — |r||_         |j        |_        t          |j        ¦  «        |_        t          |j        ¦  «        |_        |j        pdd„ |j        D ¦   «         |j         |j        dœ|j        d<   d S )Nr/   c                ó,   — g | ]}t          |¦  «        ‘ŒS rD   )rB   )ry   Úturns     r;   r|   z7InvisiblePlaywrightDriver._save_hot.<locals>.<listcomp>  s   € Ð7Ð7Ð7 T•d˜4‘j”jÐ7Ð7Ð7r=   )r*   r,   rÉ   r.   rÈ   )	r0   Úconversation_hintr*   rB   r,   r†   Úimagesr.   rÊ   )r:   rs   r‰   rÓ   rÉ   s        r;   Ú	_save_hotz#InvisiblePlaywrightDriver._save_hot  sz   € Øð 	!Ø ˆCŒNØÔ(ˆŒÝ˜œ‘O”OˆŒ	Ý˜cœj™/œ/ˆŒàÔ)Ð/¨RØ7Ð7¨S¬YÐ7Ñ7Ô7Ø”>Øœ?ð	$
ð $
ˆŒ�ZÑ Ð Ð r=   c              ƒ  óF   K  — 	 |j         j        pdS # t          $ r Y dS w xY w©Nr/   )r(   rÉ   rn   r§   s     r;   Ú_hrefzInvisiblePlaywrightDriver._href  s<   è è € ð	Ø”8”<Ð% 2Ð%øÝð 	ð 	ð 	Ø�2�2ð	øøøs   „ ’
 Ÿ r2   c              ƒ  óð  ‡K  — |                       |¦  «        ƒ d {V —†}t          |¦  «        sdS |j        rWt          |¦  «        j                             d¦  «        t          |j        ¦  «        j                             d¦  «        k    rdS 	 |j                             t          j	        ¦  «        ƒ d {V —†pi }| 
                    d¦  «        sdS d| 
                    d¦  «        pdv rdS |                      |¦  «        ƒ d {V —†Šn# t          $ r Y dS w xY w‰ 
                    d¦  «        rdS t          ˆfd„t          j        D ¦   «         ¦  «        rdS ‰ 
                    d	¦  «        pd
t          k     S )NFr®   ÚhasInputzConnecting...Úheadr/   Ú
generatingc              3  óH   •K  — | ]}|‰                      d d¦  «        v V — ŒdS ©Útailr/   N©r™   ©ry   r*   Ústates     €r;   r€   z7InvisiblePlaywrightDriver._on_thread.<locals>.<genexpr>)  ó6   øè è € ÐIÐI°ˆt�u—y’y ¨Ñ,Ô,Ð,ÐIÐIÐIÐIÐIÐIr=   Ú
agentCountr   )rÜ   r"   r0   r	   r±   Úrstripr(   Úevaluater   Ú
PAGE_STATEr™   Ú_statern   ÚanyÚSTALL_HINTSr   )r:   rs   Úhrefr(   ræ   s       @r;   Ú
_on_threadz$InvisiblePlaywrightDriver._on_thread  sŸ  øè è € Ø—Z’Z ‘_”_Ð$Ð$Ð$Ð$Ð$Ð$ˆÝ˜TÑ"Ô"ð 	Ø�5ØŒ>ð 	�h t™nœnÔ1×8Ò8¸Ñ=Ô=ÅÈ#Ì.ÑAYÔAYÔA^×AeÒAeÐfiÑAjÔAjÒjÐjØ�5ð	Øœ×*Ò*­3¬>Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð@¸bˆDØ—8’8˜JÑ'Ô'ð Ø�uØ 4§8¢8¨FÑ#3Ô#3Ð#9°rÐ:Ð:Ø�uØŸ+š+ cÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*ˆEˆEøÝð 	ð 	ð 	Ø�5�5ð	øøøà�9Š9�\Ñ"Ô"ð 	Ø�5ÝÐIÐIÐIÐI½¼ÐIÑIÔIÑIÔIð 	Ø�5Ø—	’	˜,Ñ'Ô'Ð,¨1Õ0@Ò@Ð@s   ÂAD	 ÃD	 Ã-D	 Ä	
DÄDc              ƒ  óT  ‡K  — |                       |¦  «         |j                             t          j        d| j        j        dz  ¬¦  «        ƒ d {V —† t          j        ¦   «         | j        j        z   }i }t          j        ¦   «         |k     r²t          j
        d¦  «        ƒ d {V —† t          j        t          ¦  «        5  |j                             t          j        ¦  «        ƒ d {V —†pi }|                     d¦  «        r	 d d d ¦  «         d S 	 d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         |k     °²|                     d¦  «        pd                     ¦   «         Št'          ˆfd„t          j        D ¦   «         ¦  «        rt+          d	¦  «        ‚t-          d
¦  «        ‚)NÚdomcontentloadedéè  ©Ú
wait_untilÚtimeoutç      Ð?Úreadyrß   r/   c              3  ó    •K  — | ]}|‰v V — Œ	d S r8   rD   )ry   Úhrß   s     €r;   r€   z8InvisiblePlaywrightDriver._new_thread.<locals>.<genexpr>9  s'   øè è € Ð2Ð2˜Qˆq�DˆyÐ2Ð2Ð2Ð2Ð2Ð2r=   z8muse.ai redirected to login; cookies are no longer validz!muse.ai page did not become ready)rÆ   r(   Úgotor   ÚNEW_THREAD_URLrN   Úpage_ready_timeoutrµ   Ú	monotonicrV   Úsleeprl   rm   rn   rê   r   rë   r™   Úlowerrí   ÚLOGIN_HINTSr   r   )r:   rs   Údeadlineræ   rß   s       @r;   Ú_new_threadz%InvisiblePlaywrightDriver._new_thread-  s  øè è € Ø�Š�SÑÔÐØŒh�mŠm�DÔ/Ð<NÐX\ÔXeÔXxÐ{ÑXˆmñ  Aô  Að  	Að  	Að  	Að  	Að  	Að  	Að  	AÝ”>Ñ#Ô# d¤mÔ&FÑFˆØˆÝŒnÑÔ Ò)Ð)Ý”- Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ÝÔ$¥YÑ/Ô/ð ð Ø!œh×/Ò/µ´Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?ÐEÀ2�Ø—9’9˜WÑ%Ô%ð Øðð ð ñ ô ð ð ð ððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ŒnÑÔ Ò)Ð)ð —	’	˜&Ñ!Ô!Ð' R×.Ò.Ñ0Ô0ˆÝÐ2Ð2Ð2Ð2¥#¤/Ð2Ñ2Ô2Ñ2Ô2ð 	`Ý#Ð$^Ñ_Ô_Ð_ÝÐAÑBÔBÐBs   Â?ADÄD Ä#D rØ   úlist[InputImage]c              ƒ  ó$  K  — t          |¦  «        D ]ß\  }}|j                             d¦  «        d                              dd¦  «        }|j                             t          j        t          j	        |j
        ¦  «                             ¦   «         |j        d|› d|› �¦  «        ¦  «        ƒ d {V —†}|pi                      d¦  «        s't          d|pi                      d	¦  «        › �¦  «        ‚Œà|rt          j        d
¦  «        ƒ d {V —† d S d S )Nr®   éÿÿÿÿÚjpegÚjpgÚinput_ú.r‚   zfailed to attach image: Úerrg      ð?)Ú	enumerateÚmimeÚsplitÚreplacer(   rê   r   Úattach_fileÚbase64Ú	b64encodeÚdataÚdecoder™   r   rV   rÿ   )r:   rs   rØ   ÚidxÚimgÚextÚress          r;   Ú_attachz!InvisiblePlaywrightDriver._attach>  sA  è è € Ý! &Ñ)Ô)ð 	Yð 	Y‰HˆC�Ø”(—.’. Ñ%Ô% bÔ)×1Ò1°&¸%Ñ@Ô@ˆCØœ×)Ò)Ý”¥Ô 0°´Ñ :Ô :× AÒ AÑ CÔ CÀSÄXÐOcÐX[ÐOcÐOcÐ^aÐOcÐOcÑdÔdñô ð ð ð ð ð ð ˆCð �I˜2—?’? 4Ñ(Ô(ð YÝ#Ð$WÀÀ	Àr¿ºÈuÑ?UÔ?UÐ$WÐ$WÑXÔXÐXðYàð 	%Ý”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð	%ð 	%r=   Úpromptc              ƒ  óö  K  — |j                              t          j        |¦  «        ¦  «        ƒ d {V —†}|pi                      d¦  «        s't          d|pi                      d¦  «        › �¦  «        ‚t          j        ¦   «         dz   }t          j        ¦   «         |k     ra|j                              t          j        ¦  «        ƒ d {V —†dk    rd S t          j
        d¦  «        ƒ d {V —† t          j        ¦   «         |k     °a|j         j                             d¦  «        ƒ d {V —† t          j
        d¦  «        ƒ d {V —† |j                              t          j        ¦  «        ƒ d {V —†st          d	¦  «        ‚d S )
Nr‚   zcannot fill chat input: r  é   Úclickedgš™™™™™¹?ÚEnterg      à?z.send button not found and Enter did not submit)r(   rê   r   Ú
fill_inputr™   r   rµ   rþ   Ú
CLICK_SENDrV   rÿ   ÚkeyboardÚpressÚINPUT_EMPTY)r:   rs   r  r  r  s        r;   Ú_sendzInvisiblePlaywrightDriver._sendI  sž  è è € Ø”H×%Ò%¥c¤n°VÑ&<Ô&<Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=ˆØ�	�r�Š˜tÑ$Ô$ð 	UÝÐ S¸C¸IÀ2¿?º?È5Ñ;QÔ;QÐ SÐ SÑTÔTÐTÝ”>Ñ#Ô# aÑ'ˆÝŒnÑÔ Ò)Ð)Ø”X×&Ò&¥s¤~Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6¸)ÒCÐCØ�Ý”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$õ ŒnÑÔ Ò)Ð)ð ŒhÔ×%Ò% gÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ÝŒm˜CÑ Ô Ð Ð Ð Ð Ð Ð Ð Ø”X×&Ò&¥s¤Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7ð 	RÝÐ PÑQÔQÐQð	Rð 	Rr=   rÌ   c              ƒ  ó  ‡K  — |j                              t          j        ¦  «        ƒ d {V —†pi }|                     dd¦  «        }|                     ¦   «         Št          ˆfd„t          j        D ¦   «         d ¦  «        x}�r‰                     |¦  «        }d 	                    |t          d|dz
  ¦  «        |dz   …                              ¦   «         ¦  «        }|                     dd¦  «        }|                     d¦  «        sM||                     ¦   «         v r7t                               d	||j        pd
|¦  «         t          d|› d�¦  «        ‚||j        k    r+||_        t                               d||j        pd
|¦  «         |S )Nrã   r/   c              3  ó$   •K  — | ]
}|‰v ¯|V — Œd S r8   rD   ©ry   rú   Úlows     €r;   r€   z3InvisiblePlaywrightDriver._state.<locals>.<genexpr>[  s'   øè è € Ð?Ð?˜a°a¸3°h°h˜°h°h°h°hÐ?Ð?r=   ú r   éx   ÚlastTextrà   z quota hint %r in reply on %s: %sz
new threadu0   muse.ai reports the account is out of quota: â€¦u   â€¦z2ignoring quota hint %r outside the reply on %s: %s)r(   rê   r   Ú
CHAT_STATEr™   r   rš   ÚQUOTA_HINTSÚfindÚjoinr“   r  rd   Úwarningr0   r   r1   re   )	r:   rs   ræ   rã   ÚhitÚiÚsnippetÚreplyr(  s	           @r;   rì   z InvisiblePlaywrightDriver._stateW  s~  øè è € Ø”h×'Ò'­¬Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð=¸2ˆØ�yŠy˜ Ñ$Ô$ˆØ�jŠj‰lŒlˆÝÐ?Ð?Ð?Ð?¥3¤?Ð?Ñ?Ô?ÀÑFÔFÐFˆ3ñ 		}Ø—’˜‘”ˆAØ—h’h˜t¥C¨¨1¨s©7¡O¤O°A¸±GÐ$;Ô<×BÒBÑDÔDÑEÔEˆGØ—I’I˜j¨"Ñ-Ô-ˆEØ—9’9˜\Ñ*Ô*ð j¨s°e·k²k±m´mÐ/CÐ/CÝ—’Ð>ÀÀSÄ^ÐEcÐWcÐelÑmÔmÐmÝ(Ð)hÐ\cÐ)hÐ)hÐ)hÑiÔiÐiØ˜#œ.Ò(Ð(Ø!(�”Ý—’ÐMÈsÐTWÔTbÐTrÐfrÐt{Ñ|Ô|Ð|Øˆr=   c              ƒ  óæ   K  — |                       |¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —†}|                      ||¦  «        ƒ d {V —† |                      ||¦  «        ƒ d {V —† |S r8   )r  rì   r  r$  )r:   rs   r  rØ   Úbases        r;   Ú_preparez"InvisiblePlaywrightDriver._prepareg  s    è è € Ø×Ò˜sÑ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø—[’[ Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%ˆØ�lŠl˜3 Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�jŠj˜˜fÑ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Øˆr=   c              ƒ  óÆ   K  — |j                              t          j        ¦  «        ƒ d {V —†pg }|D ]/}t                               d|                     ¦   «         ¦  «         Œ0d S )Nzdenied muse.ai %s)r(   rê   r   ÚDENY_APPROVALSrd   re   r   )r:   rs   ÚdeniedÚwhats       r;   Ú_deny_approvalsz)InvisiblePlaywrightDriver._deny_approvalsn  sn   è è € Ø”x×(Ò(­Ô);Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ÐBÀˆØð 	8ð 	8ˆDÝ�HŠHÐ(¨$¯*ª*©,¬,Ñ7Ô7Ð7Ð7ð	8ð 	8r=   c              ƒ  ó¤  ‡K  — t          d„ t          |j        ¦  «        D ¦   «         d¦  «        }|sdS 	 |j                             t
          j        ¦  «        ƒ d {V —†pi }|                     d¦  «        sdS |                      |¦  «        ƒ d {V —†Š|j                             dt          j	        |d d…         ¦  «        › d�¦  «        ƒ d {V —†}n# t          $ r Y dS w xY w‰                     d¦  «        rdS t          ˆfd	„t
          j        D ¦   «         ¦  «        rdS ‰                     d
¦  «        pdt          k    rdS t          |¦  «        S )Nc              3  ó,   K  — | ]\  }}|d k    ¯|V — ŒdS )ÚuserNrD   )ry   ÚroleÚtexts      r;   r€   z?InvisiblePlaywrightDriver._live_continuation.<locals>.<genexpr>u  s+   è è € ÐWÐW¡: 4¨ÈÐPVÊÈ˜$ÈÈÈÈÐWÐWr=   r/   FrÞ   z5!!(document.body && document.body.innerText.includes(éP   z))rà   c              3  óH   •K  — | ]}|‰                      d d¦  «        v V — ŒdS râ   rä   rå   s     €r;   r€   z?InvisiblePlaywrightDriver._live_continuation.<locals>.<genexpr>„  rç   r=   rè   r   )rš   Úreversedr,   r(   rê   r   rë   r™   rì   Úqrn   rí   rî   r   r2   )r:   rs   Ú	last_userr(   Úpresentræ   s        @r;   Ú_live_continuationz,InvisiblePlaywrightDriver._live_continuationt  s�  øè è € ÝÐWÐWµ¸#¼)Ñ1DÔ1DÐWÑWÔWÐY[Ñ\Ô\ˆ	Øð 	Ø�5ð		Øœ×*Ò*­3¬>Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð@¸bˆDØ—8’8˜JÑ'Ô'ð Ø�uØŸ+š+ cÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*ˆEØœH×-Ò-ØaÍÌÈiÐX[ÐY[ÐX[ÌnÑH]ÔH]ÐaÐaÐañô ð ð ð ð ð ð ˆGˆGøõ ð 	ð 	ð 	Ø�5�5ð	øøøà�9Š9�\Ñ"Ô"ð 	Ø�5ÝÐIÐIÐIÐI½¼ÐIÑIÔIÑIÔIð 	Ø�5Ø�IŠI�lÑ#Ô#Ð( qÕ-=Ò=Ð=Ø�5Ý�G‰}Œ}Ðs   µAC Á8AC Ã
C ÃC c              ƒ  ó˜  K  — |j                              |j        d| j        j        dz  ¬¦  «        ƒ d {V —† t          j        ¦   «         | j        j        z   }t          j        ¦   «         |k     rNt          j        d¦  «        ƒ d {V —† |  	                    |¦  «        ƒ d {V —†rd S t          j        ¦   «         |k     °Nt          d¦  «        ‚)Nrò   ró   rô   r÷   z'saved conversation did not become ready)r(   rû   r0   rN   rý   rµ   rþ   rV   rÿ   rð   r   )r:   rs   r  s      r;   Ú_open_savedz%InvisiblePlaywrightDriver._open_savedŠ  sß   è è € ØŒh�mŠm˜CœNÐ7IÐSWÔS`ÔSsÐvzÑSzˆmÑ{Ô{Ð{Ð{Ð{Ð{Ð{Ð{Ð{Ý”>Ñ#Ô# d¤mÔ&FÑFˆÝŒnÑÔ Ò)Ð)Ý”- Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø—_’_ SÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)ð Ø�õ ŒnÑÔ Ò)Ð)õ ÐGÑHÔHÐHr=   c              ƒ  ó  ‡
‡K  — |j         pdŠ
|                      |ˆ
fd„¬¦  «        ƒ d {V —†Š|j        |j        }}	 t	          ˆfd„| j                             |j        g ¦  «        D ¦   «         ¦  «        s|                      ‰|¦  «         ‰j	        pd|j         pdk    }‰j
        r|rt          ‰j
        |j
        ¦  «        nd }|rñt          |j        ¦  «        ‰j        k    rÔ‰j        s|                      ‰¦  «        ƒ d {V —†r²|                      ‰¦  «        ƒ d {V —†s|                      ‰¦  «        ƒ d {V —†r#t"                               d‰j        pd¦  «         nB‰j        r;t"                               d‰j        ¦  «         |                      ‰¦  «        ƒ d {V —† |}|j        ‰j        d …         }nšt"                               d¦  «         |j                             d	¦  «        }t+          |t,          ¦  «        r6|                     d
¦  «        pd‰
k    r|j                             d	d ¦  «         |                      ‰¦  «        ƒ d {V —† |                      ‰¦  «        ƒ d {V —†}|                      ‰|¦  «        ƒ d {V —† |                      ‰|¦  «        ƒ d {V —† ‰|fS # t8          $ rN}	|                      ‰¦  «        ƒ d {V —† |                      ‰¦  «        ƒ d {V —† t?          d|	› �¦  «        |	‚d }	~	ww xY w)Nr/   c                ó,   •— | j         o| j        pd‰k    S rÛ   )r<   r*   )r{   r*   s    €r;   ú<lambda>z7InvisiblePlaywrightDriver._begin_chat.<locals>.<lambda>•  s   ø€ ¸Q¼[Ð=cÈaÌfÈlÐXZÐ_cÒMc€ r=   ©rŠ   c              3  ó.   •K  — | ]}|‰u¯|j         V — Œd S r8   r’   )ry   r{   rs   s     €r;   r€   z8InvisiblePlaywrightDriver._begin_chat.<locals>.<genexpr>˜  s*   øè è € Ð[Ð[ qÈaÐWZÈlÈl�q”{ÈlÈlÈlÈlÐ[Ð[r=   zreusing hot page %sz	open pagezreopening %szopening a new threadrÈ   r*   úbrowser error: ) r×   r£   r  rØ   rí   rT   r™   r–   rÒ   r*   r,   r   r†   r.   r0   rH  rð   rd   re   rJ  rÊ   rË   rÌ   rÃ   r  rì   r  r$  rn   rk   r¨   r   )r:   r‰   rÓ   r  rØ   Ú
same_ownerÚfollowÚsavedr6  Úexcr*   rs   s             @@r;   Ú_begin_chatz%InvisiblePlaywrightDriver._begin_chat“  sŽ  øøè è € ØÔ$Ð*¨ˆØ—N’N 7Ð3cÐ3cÐ3cÐ3c�NÑdÔdÐdÐdÐdÐdÐdÐdˆØœ S¤Z�ˆð	BÝÐ[Ð[Ð[Ð[¨D¬J¯NªN¸7¼:ÀrÑ,JÔ,JÐ[Ñ[Ô[Ñ[Ô[ð -Ø—’˜s GÑ,Ô,Ð,Øœ(˜. b¨cÔ.CÐ.IÀrÒJˆJØ<?¼IÐ^È*Ð^•] 3¤9¨c¬iÑ8Ô8Ð8ÐZ^ˆFØð ,�#˜cœj™/œ/¨S¬_Ò<Ð<Ø”ð =Ø(,×(?Ò(?ÀÑ(DÔ(DÐ"DÐ"DÐ"DÐ"DÐ"DÐ"Dð =ð Ÿš¨Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-ð 0°t×7NÒ7NÈsÑ7SÔ7SÐ1SÐ1SÐ1SÐ1SÐ1SÐ1Sð 0Ý—H’HÐ2°C´NÐ4QÀkÑRÔRÐRÐRØ”^ð 0Ý—H’H˜^¨S¬^Ñ<Ô<Ð<Ø×*Ò*¨3Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø�Øœ C¤OÐ$4Ð$4Ô5��å—’Ð/Ñ0Ô0Ð0Øœ×(Ò(¨Ñ4Ô4�Ý˜e¥TÑ*Ô*ð 7°·	²	¸&Ñ0AÔ0AÐ0GÀRÈDÒ/PÐ/PØ”L×$Ò$ Z°Ñ6Ô6Ð6Ø×&Ò& sÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØŸš SÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)ˆDØ—,’,˜s FÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø—*’*˜S &Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø˜�9ÐøÝð 	Bð 	Bð 	BØ—/’/ #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø—-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ÝÐ 7°#Ð 7Ð 7Ñ8Ô8¸cÐAøøøøð	Bøøøs   ½I+J) Ê)
LÊ3A	K<Ë<LúAsyncIterator[str]c           
    óD	  ‡K  — |                       ||¦  «        ƒ d {V —†\  }}|                     dd¦  «        |                     dd¦  «        }}t          j        ¦   «         }d\  }}	}
}d}	 	 |j        rÒ|j                             ¦   «         r¹	 |r„d}t          d¦  «        D ]H}|                      |¦  «        ƒ d {V —†}t          |¦  «        r nt          j
        d	¦  «        ƒ d {V —† ŒI|                      |||t          |¦  «        r|nd¦  «         n|                      |¦  «         |                      |¦  «        ƒ d {V —† d S t          j        ¦   «         |z
  }||j        k    rt          d
¦  «        ‚|s||j        k    rt          d¦  «        ‚t          j
        t"          ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —†Š‰                     d¦  «        r|                      |¦  «        ƒ d {V —† �Œ’‰                     dd¦  «        }‰                     dd¦  «        |k    p|o||k    }|r|s<|dk    r4t)          ˆfd„t*          j        D ¦   «         ¦  «        rt          d¦  «        ‚�Œ
d}||	k    r<|                     |¦  «        r|t1          |¦  «        d …         n|}|r|}|W V — |d}
}	në|
dz  }
‰                     d¦  «        s|
t2          k    s|
t4          k    r»d}	 |r„d}t          d¦  «        D ]H}|                      |¦  «        ƒ d {V —†}t          |¦  «        r nt          j
        d	¦  «        ƒ d {V —† ŒI|                      |||t          |¦  «        r|nd¦  «         n|                      |¦  «         |                      |¦  «        ƒ d {V —† d S �Œ:# t6          $ r3}|                      |¦  «        ƒ d {V —† t;          d|› �¦  «        |‚d }~ww xY w# |r„d}t          d¦  «        D ]H}|                      |¦  «        ƒ d {V —†}t          |¦  «        r nt          j
        d	¦  «        ƒ d {V —† ŒI|                      |||t          |¦  «        r|nd¦  «         n|                      |¦  «         |                      |¦  «        ƒ d {V —† w xY w)Nrè   r   r+  r/   )r/   Nr   FFTé
   gš™™™™™É?zassistant reply timed outzno first token from assistantÚapprovalé   c              3  óH   •K  — | ]}|‰                      d d¦  «        v V — ŒdS râ   rä   )ry   rú   Ústs     €r;   r€   z8InvisiblePlaywrightDriver.chat_stream.<locals>.<genexpr>Ì  s6   øè è € Ð+]Ð+]È¨A°·²¸ÀÑ1CÔ1CÐ,CÐ+]Ð+]Ð+]Ð+]Ð+]Ð+]r=   z&upstream workspace is stuck connectingr   rà   rP  )rU  r™   rµ   rþ   ÚcancelÚis_setÚrangerÜ   r"   rV   rÿ   rÙ   rÆ   r¨   rö   r   Úfirst_token_timeoutr   rì   r<  rí   r   rî   Ú
startswithr†   r    r!   rn   rk   r   )r:   r‰   rÓ   rs   r6  Ú
base_countÚ	base_textÚstartedÚemittedrÄ   ÚstableÚ	got_firstÚfinishedrÉ   Ú_ÚelapsedrA  Úis_newÚdeltarT  r\  s                       @r;   Úchat_streamz%InvisiblePlaywrightDriver.chat_streamµ  s¾  øè è € Ø×*Ò*¨7°CÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8‰	ˆˆTØ $§¢¨°qÑ 9Ô 9¸4¿8º8ÀJÐPRÑ;SÔ;S�Iˆ
Ý”.Ñ"Ô"ˆØ+=Ñ(ˆ��v˜yØˆð.	%ðØ”:ð  #¤*×"3Ò"3Ñ"5Ô"5ð ØðB ð 	"Ø�Ý˜r™œð -ð -�AØ $§
¢
¨3¡¤Ð/Ð/Ð/Ð/Ð/Ð/�CÝ$ SÑ)Ô)ð Ø˜Ý!œ-¨Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø—’˜s G¨S½ÀsÑ9KÔ9KÐ2S°#°#ÐQSÑTÔTÐTÐTà—’˜SÑ!Ô!Ð!Ø—-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$õU œ.Ñ*Ô*¨WÑ4�Ø˜Sœ[Ò(Ð(Ý)Ð*EÑFÔFÐFØ ð K W¨sÔ/FÒ%FÐ%FÝ)Ð*IÑJÔJÐJÝ”m¥MÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØŸ;š; sÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+�Ø—6’6˜*Ñ%Ô%ð Ø×.Ò.¨sÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ÙØ—v’v˜j¨"Ñ-Ô-�ØŸš ¨aÑ0Ô0°:Ò=Ð]À$ÐB\È4ÐS\ÒK\�Øð  Tð Ø ’|�|­Ð+]Ð+]Ð+]Ð+]ÍSÌ_Ð+]Ñ+]Ô+]Ñ(]Ô(]�|Ý-Ð.VÑWÔWÐWÙØ �	Ø˜4’<�<Ø37·?²?À7Ñ3KÔ3KÐU˜D¥ W¡¤  Ô/Ð/ÐQU�EØð $Ø"&˜Ø#˜˜˜˜Ø#'¨˜&�D�Dà˜a‘K�FØŸFšF <Ñ0Ô0ð °VÕ?PÒ5PÐ5PÐU[Õ_qÒUqÐUqØ#'˜Øð
 ð 	"Ø�Ý˜r™œð -ð -�AØ $§
¢
¨3¡¤Ð/Ð/Ð/Ð/Ð/Ð/�CÝ$ SÑ)Ô)ð Ø˜Ý!œ-¨Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø—’˜s G¨S½ÀsÑ9KÔ9KÐ2S°#°#ÐQSÑTÔTÐTÐTà—’˜SÑ!Ô!Ð!Ø—-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ñ[øõ> ð 	Bð 	Bð 	BØ—/’/ #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ÝÐ 7°#Ð 7Ð 7Ñ8Ô8¸cÐAøøøøð	Bøøøøð ð 	"Ø�Ý˜r™œð -ð -�AØ $§
¢
¨3¡¤Ð/Ð/Ð/Ð/Ð/Ð/�CÝ$ SÑ)Ô)ð Ø˜Ý!œ-¨Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø—’˜s G¨S½ÀsÑ9KÔ9KÐ2S°#°#ÐQSÑTÔTÐTÐTà—’˜SÑ!Ô!Ð!Ø—-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øøøs2   Á,!N' ÅF&N' Î%N' Î'
O$Î1.OÏO$Ï$O' Ï'B8RÚkindÚsizer)   Údurationú
int | Nonec                óÎ   — g }|r|                      d|› �¦  «         |r|                      |› d�¦  «         |dk    rdnd}|rdd                     |¦  «        › d�nd	}|› |› d
| › �S )Nzaspect ratio z seconds longrJ   zGenerate an imagezGenerate a videoz (z, ú)r/   ú: )r˜   r/  )r  rn  ro  rp  ÚhintsÚverbÚsuffixs          r;   Ú_media_promptz'InvisiblePlaywrightDriver._media_promptì  s¡   € àˆØð 	1Ø�LŠLÐ/¨Ð/Ð/Ñ0Ô0Ð0Øð 	5Ø�LŠL˜HÐ3Ð3Ð3Ñ4Ô4Ð4Ø&*¨g¢o oÐ"Ð"Ð;MˆØ-2Ð:Ð)�d—i’i Ñ&Ô&Ð)Ð)Ð)Ð)¸ˆØÐ*˜Ð*Ð* &Ð*Ð*Ð*r=   g     €V@ç       @)rL   rJ   g      @r6  rö   Úfloatr]  úasyncio.Event | Nonec           	   ƒ  óà  ‡K  — t          |                     dg ¦  «        ¦  «        }|                     dd¦  «        }| j                             ‰d¦  «        }	t          j        ¦   «         }
d }dx}x}}	 t          j        ¦   «         |
z
  }||k    r|r||| j        z  k     s�nž|r |                     ¦   «         rt          j        ‚t          j	        d¦  «        ƒ d {V —† |  
                    |¦  «        ƒ d {V —†}|                     d¦  «        r!|                      |¦  «        ƒ d {V —† d	\  }}Œ¼|                     dg ¦  «        |d …         }ˆfd
„|D ¦   «         }|r|d         S t          |                     d¦  «        ¦  «        pt          ˆfd„|D ¦   «         ¦  «        }t          j        ¦   «         |
z
  }|r, |t          dt          ||z  dz  ¦  «        ¦  «        ¦  «         t          ˆfd„|D ¦   «         ¦  «        rd }�Œ’|                     dd¦  «        }|                     dd¦  «        |k    �r|�r|                     d¦  «        sî|€t          j        ¦   «         }nÚt          j        ¦   «         |z
  |	k    r½|sD|                      |d‰› d�|rdndz   ¦  «        ƒ d {V —† d	\  }}|                     dd¦  «        }�ŒQ|j                             t&          j        ¦  «        ƒ d {V —†pi }|                      |                     dg ¦  «        ‰¦  «        }|r|‰dœS t-          d|d d…         › �¦  «        ‚nd }�ŒÌ|rt.                               d‰|¦  «         t3          ‰› d�¦  «        ‚)NÚattachmentsrè   r   ry  FTg333333ã?rY  )TNc                óp   •— g | ]2}|                      d ¦  «        ¯|                      d¦  «        ‰k    ¯0|‘Œ3S ©Úsrcrn  rä   ©ry   Úarn  s     €r;   r|   z9InvisiblePlaywrightDriver._wait_media.<locals>.<listcomp>  s<   ø€ ÐSÐSÐS˜1¨A¯EªE°%©L¬LÐS¸Q¿UºUÀ6¹]¼]ÈdÒ=RÐ=R�QÐ=RÐ=RÐ=Rr=   r  rà   c              3  óJ   •K  — | ]}‰|                      d ¦  «        pdv V — ŒdS ©Útidr/   Nrä   r�  s     €r;   r€   z8InvisiblePlaywrightDriver._wait_media.<locals>.<genexpr>  s8   øè è € Ð4dÐ4dÐVW°T¸a¿eºeÀE¹l¼lÐ>PÈbÐ5QÐ4dÐ4dÐ4dÐ4dÐ4dÐ4dr=   é_   éd   c              3  óJ   •K  — | ]}‰|                      d ¦  «        pdv V — ŒdS r„  rä   r�  s     €r;   r€   z8InvisiblePlaywrightDriver._wait_media.<locals>.<genexpr>  s7   øè è € ÐBÐB°A�4˜AŸEšE %™LœLÐ.¨BÐ/ÐBÐBÐBÐBÐBÐBr=   r+  r/   zPlease attach the final z file here in the chatz instead of uploading it.z, as a single attachment.Úlinksr  z!upstream replied with text only: éÈ   z*%s still generating after %.0fs; giving upz generation timed out)r†   r™   Ú_MEDIA_GRACErµ   rþ   Ú_OVERRUN_FACTORr^  rV   ÚCancelledErrorrÿ   rì   r<  r2   rí   Úminr-   r$  r(   rê   r   ÚLAST_BUBBLE_MEDIAÚ_pick_media_urlr   rd   r0  r   )r:   rs   r6  rn  rö   Úon_progressr]  Ú	base_attsrb  Úgracerd  Útext_done_atr:  Úasked_to_attachr3   rj  r\  Únew_attsÚfreshrA  ÚproberÉ   s      `                  r;   Ú_wait_mediaz%InvisiblePlaywrightDriver._wait_mediaú  s  øè è € õ ˜Ÿš °Ñ3Ô3Ñ4Ô4ˆ	Ø—X’X˜l¨AÑ.Ô.ˆ
ØÔ!×%Ò% d¨CÑ0Ô0ˆÝ”.Ñ"Ô"ˆØ%)ˆØ*/Ð/ˆÐ/� 4ð+	$Ý”nÑ&Ô&¨Ñ0ˆGØ˜'Ò!Ð!¨4Ð!°G¸gÈÔH\Ñ>\Ò4\Ð4\ÙØð -˜&Ÿ-š-™/œ/ð -ÝÔ,Ð,Ý”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø—{’{ 3Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'ˆBØ�vŠv�jÑ!Ô!ð Ø×*Ò*¨3Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø'1Ñ$�˜ØØ—v’v˜m¨RÑ0Ô0°°°Ô<ˆHØSÐSÐSÐS ÐSÑSÔSˆEØð !Ø˜R”yÐ Ý˜Ÿš˜|Ñ,Ô,Ñ-Ô-ÐdµÐ4dÐ4dÐ4dÐ4dÐ[cÐ4dÑ4dÔ4dÑ1dÔ1dˆDÝ”nÑ&Ô&¨Ñ0ˆGØð CØ��C ¥C¨°'Ñ(9¸CÑ(?Ñ$@Ô$@ÑAÔAÑBÔBÐBÝÐBÐBÐBÐB¸ÐBÑBÔBÑBÔBð Ø#�ÙØ—6’6˜* bÑ)Ô)ˆDØ�vŠv�l AÑ&Ô&¨Ò3Ñ3¸Ñ3ÀRÇVÂVÈLÑEYÔEYÐ3ØÐ'Ý#'¤>Ñ#3Ô#3�L�LÝ”^Ñ%Ô%¨Ñ4¸Ò=Ð=Ø*ð !Ø"ŸjšjØØS°tÐSÐSÐSØ>DÐeÐ:Ð:ÐJeñgñô ð ð ð ð ð ð ð ð
 9CÑ5˜¨Ø%'§V¢V¨L¸!Ñ%<Ô%<˜
Ù Ø"%¤(×"3Ò"3µCÔ4IÑ"JÔ"JÐJÐJÐJÐJÐJÐJÐPÈb�EØ×.Ò.¨u¯yªy¸À"Ñ/EÔ/EÀtÑLÔL�CØð :Ø'*°DÐ9Ð9Ð9Ý)Ð*ZÈdÐSWÐTWÐSWÌjÐ*ZÐ*ZÑ[Ô[Ð[ð >ð   $�ñW+	$ðX ð 	UÝ�KŠKÐDÀdÈGÑTÔTÐTÝ Ð<Ð<Ð<Ñ=Ô=Ð=r=   )z.mp4z.webmz.movz.m4v)z.pngz.jpgz.jpegz.webpz.gifz.avif)	zvideodelivery.netzcloudflarestream.comzcloudflarestorage.comzamazonaws.comzstorage.googleapis.comzblob.core.windows.netÚmusecdnzcdn.musezmuse-cdn)z/media/z	/downloadz/dl/z/videoz/attachmentz/files/r‰  ú	list[str]c                óÄ   ‡ ‡— |dk    r‰ j         n‰ j        Šdˆ ˆfd„}d„ |D ¦   «         }|                     |d¬	¦  «         |r ||d
         ¦  «        d
k    r|d
         nd S )NrL   Úur%   r6   r-   c                ó~  •‡— |                       ¦   «         Š‰                     dd¦  «        d                              dd¦  «        d         }|                      d¦  «        s|                     ‰¦  «        rdS t	          ˆfd„‰j        D ¦   «         ¦  «        rdS t	          ˆfd	„‰j        D ¦   «         ¦  «        rdS dS )
Nú?r   r   ú#zblob:é   c              3  ó    •K  — | ]}|‰v V — Œ	d S r8   rD   r'  s     €r;   r€   zKInvisiblePlaywrightDriver._pick_media_url.<locals>.score.<locals>.<genexpr>K  s'   øè è € Ð6Ð6 �1˜�8Ð6Ð6Ð6Ð6Ð6Ð6r=   r
   c              3  ó    •K  — | ]}|‰v V — Œ	d S r8   rD   )ry   Úsegr(  s     €r;   r€   zKInvisiblePlaywrightDriver._pick_media_url.<locals>.score.<locals>.<genexpr>M  s'   øè è € Ð:Ð: #�3˜#�:Ð:Ð:Ð:Ð:Ð:Ð:r=   )r   r  ra  Úendswithrí   Ú_MEDIA_HOSTSÚ_MEDIA_PATHS)r�  r±   r(  ÚclsÚextss     @€€r;   Úscorez8InvisiblePlaywrightDriver._pick_media_url.<locals>.scoreF  sÉ   øø€ Ø—'’'‘)”)ˆCØ—9’9˜S !Ñ$Ô$ QÔ'×-Ò-¨c°1Ñ5Ô5°aÔ8ˆDØ�|Š|˜GÑ$Ô$ð ¨¯ª°dÑ(;Ô(;ð Ø�qÝÐ6Ð6Ð6Ð6 SÔ%5Ð6Ñ6Ô6Ñ6Ô6ð Ø�qÝÐ:Ð:Ð:Ð:¨Ô)9Ð:Ñ:Ô:Ñ:Ô:ð Ø�qØ�1r=   c                ó@   — g | ]}|¯|                      d ¦  «        °|‘ŒS ))zmailto:zjavascript:)ra  )ry   r�  s     r;   r|   z=InvisiblePlaywrightDriver._pick_media_url.<locals>.<listcomp>Q  s/   € ÐXÐXÐX�q QÐX¨q¯|ª|Ð<VÑ/WÔ/WÐX�ÐXÐXÐXr=   T)ÚkeyÚreverser   )r�  r%   r6   r-   )Ú
_VIDEO_EXTÚ
_IMAGE_EXTÚsort)r¨  r‰  rn  rª  Úcandsr©  s   `    @r;   r�  z)InvisiblePlaywrightDriver._pick_media_urlB  s‘   øø€ à!%¨¢ ˆsŒ~ˆ~°c´nˆð		ð 		ð 		ð 		ð 		ð 		ð 		ð YÐX˜EÐXÑXÔXˆØ�
Š
�u dˆ
Ñ+Ô+Ð+Ø ÐB U U¨5°¬8¡_¤_°qÒ%8Ð%8ˆu�QŒxˆx¸dÐBr=   Úattr   c           	   ƒ  óâ  K  — |j                              t          j        |d         ¦  «        ¦  «        ƒ d {V —†}|pi                      d¦  «        s*t          d|› d|pi                      d¦  «        › �¦  «        ‚|                     d¦  «        p	|dk    rdnd	}t          t          j        |d
         ¦  «        |||                     d¦  «        pd |                     d¦  «        pd ¬¦  «        S )Nr€  r‚   zfailed to download generated rt  r  r  rL   z	video/mp4z	image/pngÚb64Úwrú   )r  r  rn  r«   r¬   )	r(   rê   r   Úfetch_as_base64r™   r   r   r  Ú	b64decode)r:   rs   r²  rn  r  r  s         r;   Ú	_downloadz#InvisiblePlaywrightDriver._downloadU  sù   è è € Ø”H×%Ò%¥cÔ&9¸#¸e¼*Ñ&EÔ&EÑFÔFÐFÐFÐFÐFÐFÐFˆØ�	�r�Š˜tÑ$Ô$ð 	bÝÐ `ÀÐ `Ð `ÈÈÐPRÏÊÐX]ÑH^ÔH^Ð `Ð `ÑaÔaÐaØ�wŠw�v‰ŒÐS°$¸'²/°/ ; ;À{ˆÝÝÔ! # e¤*Ñ-Ô-ØØØ—'’'˜#‘,”,Ð& $Ø—7’7˜3‘<”<Ð' 4ð
ñ 
ô 
ð 	
r=   c              ƒ  óð  K  — |                       |d„ ¬¦  «        ƒ d {V —†}	 |                      |||¦  «        ƒ d {V —†}	|                      ||	||||¦  «        ƒ d {V —†}
|                      ||
|¦  «        ƒ d {V —†	 |                      |¦  «        ƒ d {V —† S # t
          $ r3}|                      |¦  «        ƒ d {V —† t          d|› �¦  «        |‚d }~ww xY w# |                      |¦  «        ƒ d {V —† w xY w)Nc                ó   — | j          S r8   r’   )r{   s    r;   rM  z5InvisiblePlaywrightDriver._generate.<locals>.<lambda>l  s
   € ÀÄ¸_€ r=   rN  rP  )r£   r7  r™  r¸  r¨   rn   rk   r   )r:   r‰   r  rØ   rn  rö   r‘  r]  rs   r6  r²  rT  s               r;   Ú	_generatez#InvisiblePlaywrightDriver._generateb  so  è è € ð —N’N 7Ð3LÐ3L�NÑMÔMÐMÐMÐMÐMÐMÐMˆð	%ØŸš s¨F°FÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆDØ×(Ò(¨¨d°D¸'À;ÐPVÑWÔWÐWÐWÐWÐWÐWÐWˆCØŸš¨¨S°$Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð
 —-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øõ	 ð 	Bð 	Bð 	BØ—/’/ #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ÝÐ 7°#Ð 7Ð 7Ñ8Ô8¸cÐAøøøøð	Bøøøøð —-’- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øøøs$   ¢AB Â
CÂ".CÃCÃC ÃC5r   úlist[MediaResult]c           
   ƒ  óF  K  — |                       |j        d|j        ¦  «        }g }t          t	          d|j        ¦  «        ¦  «        D ]X}|                      |||j        d|j        |j	        |j
        ¦  «        ƒ d {V —†}|j        |_        |                     |¦  «         ŒY|S )NrJ   r   )rx  r  ro  r_  r“   Únr»  Úreference_imagesrö   r‘  r]  Úrevised_promptr˜   )r:   r‰   rÓ   r  Úresultsri  Úrs          r;   Úgenerate_imagez(InvisiblePlaywrightDriver.generate_imagew  s¸   è è € Ø×#Ò# C¤J°¸¼ÑBÔBˆØˆÝ•s˜1˜cœe‘}”}Ñ%Ô%ð 	ð 	ˆAØ—n’nØ˜ Ô!5°wÀÄÈSÌ_Ð^aÔ^hñô ð ð ð ð ð ð ˆAð  #œzˆAÔØ�NŠN˜1ÑÔÐÐØˆr=   r   c           	   ƒ  óÖ   K  — |                       |j        d|j        |j        ¦  «        }|j        r|j        gng }|                      |||d|j        |j        |j        ¦  «        ƒ d {V —†S )NrL   )	rx  r  ro  rp  Úfirst_framer»  rö   r‘  r]  )r:   r‰   rÓ   r  rØ   s        r;   Úgenerate_videoz(InvisiblePlaywrightDriver.generate_video‚  s„   è è € Ø×#Ò# C¤J°¸¼À3Ä<ÑPÔPˆØ&)¤oÐ=�#”/Ð"Ð"¸2ˆØ—^’^Ø�V˜V W¨c¬k¸3¼?ÈCÌJñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r=   r   c              ƒ  ót  K  — t          j        |j        ¦  «        ƒ d {V —†}| j        4 ƒd {V —† t	          | j                             |j        g ¦  «        ¦  «        }|D ]	}d|_        Œ
d„ |D ¦   «         }d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |D ]}|  	                    |¦  «        ƒ d {V —† Œ|S )NTc                ó    — g | ]}|j         °	|‘ŒS rD   r~   r   s     r;   r|   z;InvisiblePlaywrightDriver.renew_session.<locals>.<listcomp>�  s   € Ð2Ð2Ð2˜!¨1¬6Ð2�AÐ2Ð2Ð2r=   )
r   rM   r¶   rX   rB   rT   r™   r–   r4   rk   )r:   r‰   re   rr   rs   r    s         r;   rM   z'InvisiblePlaywrightDriver.renew_session‰  sh  è è € ÝÔ'¨¬Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆØ”>ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3Ý˜œ
Ÿš w¤z°2Ñ6Ô6Ñ7Ô7ˆDØð !ð !�Ø �”	�	Ø2Ð2˜tÐ2Ñ2Ô2ˆDð		3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð
 ð 	'ð 	'ˆCØ—/’/ #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Øˆs   ¯ABÂ
BÂB)rN   r   r6   rO   )r6   rO   )r6   rv   r8   )r‰   r   rŠ   r‹   r6   r$   )rs   r$   r6   rO   )r‰   r   r6   r   )r‰   r   r6   r$   )rs   r$   r‰   r   r6   rO   )
rs   r$   r‰   r   rÓ   r   rÉ   r%   r6   rO   )rs   r$   r6   r%   )rs   r$   r6   r2   )rs   r$   rØ   r  r6   rO   )rs   r$   r  r%   r6   rO   )rs   r$   r6   rÌ   )rs   r$   r  r%   rØ   r  r6   rÌ   )r‰   r   rÓ   r   )r‰   r   rÓ   r   r6   rV  )
r  r%   rn  r%   ro  r)   rp  rq  r6   r%   )rs   r$   r6  rÌ   rn  r%   rö   rz  r]  r{  r6   rÌ   )r‰  r›  rn  r%   r6   r)   )rs   r$   r²  rÌ   rn  r%   r6   r   )r‰   r   r  r%   rØ   r  rn  r%   rö   rz  r6   r   )r‰   r   rÓ   r   r6   r¼  )r‰   r   rÓ   r   r6   r   )r‰   r   r6   r   )1r>   r?   r@   Ú__doc__r…   r   Úcapabilitiesr[   rh   ru   rˆ   r£   r¨   r¦   r¼   rœ   rk   rÁ   ÚstaticmethodrÆ   rÒ   rÙ   rÜ   rð   r  r  r$  rì   r7  r<  rH  rJ  rU  rm  rx  r‹  rŒ  r™  r®  r¯  r¦  r§  Úclassmethodr�  r¸  r»  rÃ  rÆ  rM   rD   r=   r;   rF   rF   E   sj  € € € € € ØYÐYà€DØ%Ð%Ø˜t¨4¸DÈÐ\`ðñ ô €Lð(ð (ð (ð (ð6ð 6ð 6ð 6ð 8ð 8ð 8ð 8ð$
ð 
ð 
ð 
ð SWð%ð %ð %ð %ð %ðN'ð 'ð 'ð 'ð(ð (ð (ð (ðð ð ð ð65ð 5ð 5ð 5ð5ð 5ð 5ð 5ð&ð &ð &ð &ð ðð ð ñ „\ðð ð  ð  ð  ð$
ð 
ð 
ð 
ðð ð ð ðAð Að Að Að*Cð Cð Cð Cð"	%ð 	%ð 	%ð 	%ðRð Rð Rð Rðð ð ð ð ð ð ð ð8ð 8ð 8ð 8ðð ð ð ð,Ið Ið Ið Ið Bð  Bð  Bð  BðD4%ð 4%ð 4%ð 4%ðn ð+ð +ð +ð +ñ „\ð+ð "¨CÐ0Ð0€LØ€Oð7>ð 7>ð 7>ð 7>ðr 3€JØD€Jð
€Lð X€LàðCð Cð Cñ „[ðCð$
ð 
ð 
ð 
ð%ð %ð %ð %ð*	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð	ð 	ð 	ð 	ð 	ð 	r=   rF   )6rÉ  Ú
__future__r   rV   r  rl   Úloggingrµ   Úcollections.abcr   r   Údataclassesr   r   Útypingr   Úurllib.parser	   Úaccounts.modelr   Úconfigr   Úcore.promptr   Úerrorsr   r   r   r   r   Úupstreamr   r6  r   r   r   r   r   r   r   r   Úbrowserr   Úbrowser.driverr   r   r    r!   r"   Ú	getLoggerr>   rd   r$   rF   rD   r=   r;   ú<module>rÛ     s{  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ð ð3ð 3ð 3ð 3ð 3ñ 3ô 3ñ „ð3ð$M	ð M	ð M	ð M	ð M	 
ñ M	ô M	ð M	ð M	ð M	r=   