Ë
    `§1h¢]  ã                   óþ   — d dl mZmZmZmZ d dlmZ ddlmZ  G d„ d«      Z	 G d„ d«      Z
 G d	„ d
«      Z G d„ d«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    )ÚDictÚListÚOptionalÚUnion)Úcommand_builderé   )ÚSessionc                   ó   — e Zd ZdZdZdZdZy)ÚReadinessStatezSRepresents the stage of document loading at which a navigation command will return.ÚnoneÚinteractiveÚcompleteN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚNONEÚINTERACTIVEÚCOMPLETE© ó    úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/browsing_context.pyr   r      s   „ Ù]à€DØ€KØ�Hr   r   c                   ó    — e Zd ZdZdZdZdZdZy)ÚUserPromptTypez*Represents the possible user prompt types.ÚalertÚbeforeunloadÚconfirmÚpromptN)r   r   r   r   ÚALERTÚBEFORE_UNLOADÚCONFIRMÚPROMPTr   r   r   r   r   !   s   „ Ù4à€EØ"€MØ€GØ�Fr   r   c                   óH   — e Zd ZdZdedee   dedefd„Zede	dd fd	„«       Z
y
)ÚNavigationInfoz*Provides details of an ongoing navigation.ÚcontextÚ
navigationÚ	timestampÚurlc                 ó<   — || _         || _        || _        || _        y ©N©r%   r&   r'   r(   )Úselfr%   r&   r'   r(   s        r   Ú__init__zNavigationInfo.__init__-   s    € ð ˆŒØ$ˆŒØ"ˆŒØˆ�r   ÚjsonÚreturnc                 ó’   —  | |j                  d«      |j                  d«      |j                  d«      |j                  d«      ¬«      S )a  Creates a NavigationInfo instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the navigation information.

        Returns:
        -------
            NavigationInfo: A new instance of NavigationInfo.
        r%   r&   r'   r(   r+   ©Úget©Úclsr.   s     r   Ú	from_jsonzNavigationInfo.from_json9   s@   € ñ Ø—H‘H˜YÓ'Ø—x‘x Ó-Ø—h‘h˜{Ó+Ø—‘˜“ô	
ð 	
r   N)r   r   r   r   Ústrr   Úintr-   Úclassmethodr   r5   r   r   r   r$   r$   *   sW   „ Ù4ð
àð
ð ˜S‘Mð
ð ð	
ð
 ó
ð ð
˜Tð 
Ð&6ò 
ó ñ
r   r$   c                   ó|   — e Zd ZdZ	 	 	 	 ddededeed       dee   dee   dee   d	ee   fd
„Zede	dd fd„«       Z
y)ÚBrowsingContextInfoz)Represents the properties of a navigable.Nr%   r(   ÚchildrenÚparentÚuser_contextÚoriginal_openerÚclient_windowc                 óf   — || _         || _        || _        || _        || _        || _        || _        y r*   ©r%   r(   r;   r<   r=   r>   r?   )r,   r%   r(   r;   r<   r=   r>   r?   s           r   r-   zBrowsingContextInfo.__init__P   s8   € ð ˆŒØˆŒØ ˆŒØˆŒØ(ˆÔØ.ˆÔØ*ˆÕr   r.   r/   c                 óf  — d}|j                  d«      �1|j                  d«      D �cg c]  }t        j                  |«      ‘Œ }} | |j                  d«      |j                  d«      ||j                  d«      |j                  d«      |j                  d«      |j                  d«      ¬	«      S c c}w )
a!  Creates a BrowsingContextInfo instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the browsing context information.

        Returns:
        -------
            BrowsingContextInfo: A new instance of BrowsingContextInfo.
        Nr;   r%   r(   r<   ÚuserContextÚoriginalOpenerÚclientWindowrA   )r2   r:   r5   )r4   r.   r;   Úchilds       r   r5   zBrowsingContextInfo.from_jsonb   sŸ   € ð ˆØ�8‰8�JÓÐ+ØJNÏ(É(ÐS]ÓJ^Ö_ÀÔ+×5Ñ5°eÕ<Ð_ˆHÐ_áØ—H‘H˜YÓ'Ø—‘˜“ØØ—8‘8˜HÓ%ØŸ™ -Ó0Ø ŸH™HÐ%5Ó6ØŸ(™( >Ó2ô
ð 	
ùò `s   §B.©NNNN)r   r   r   r   r6   r   r   r-   r8   r   r5   r   r   r   r:   r:   M   sš   „ Ù3ð !%Ø&*Ø)-Ø'+ñ+àð+ð ð+ð ˜4Ð 5Ñ6Ñ7ð	+ð
 ˜‘ð+ð ˜s‘mð+ð " #™ð+ð   ‘}ó+ð$ ð
˜Tð 
Ð&;ò 
ó ñ
r   r:   c            
       óX   ‡ — e Zd ZdZdedee   dededef
ˆ fd„Zede	d	d fd
„«       Z
ˆ xZS )ÚDownloadWillBeginParamsz+Parameters for the downloadWillBegin event.r%   r&   r'   r(   Úsuggested_filenamec                 ó8   •— t         ‰| �  ||||«       || _        y r*   )Úsuperr-   rJ   )r,   r%   r&   r'   r(   rJ   Ú	__class__s         €r   r-   z DownloadWillBeginParams.__init__€   s    ø€ ô 	‰Ñ˜ *¨i¸Ô=Ø"4ˆÕr   r.   r/   c           	      ó²   —  | |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      ¬«      S )a$  Creates a DownloadWillBeginParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the download parameters.

        Returns:
        -------
            DownloadWillBeginParams: A new instance of DownloadWillBeginParams.
        r%   r&   r'   r(   ÚsuggestedFilename)r%   r&   r'   r(   rJ   r1   r3   s     r   r5   z!DownloadWillBeginParams.from_json‹   sM   € ñ Ø—H‘H˜YÓ'Ø—x‘x Ó-Ø—h‘h˜{Ó+Ø—‘˜“Ø#Ÿx™xÐ(;Ó<ô
ð 	
r   )r   r   r   r   r6   r   r7   r-   r8   r   r5   Ú__classcell__)rM   s   @r   rI   rI   }   sb   ø„ Ù5ð	5àð	5ð ˜S‘Mð	5ð ð		5ð
 ð	5ð  õ	5ð ð
˜Tð 
Ð&?ò 
ó ô
r   rI   c                   óP   — e Zd ZdZ	 ddededededee   f
d„Zed	ed
d fd„«       Z	y)ÚUserPromptOpenedParamsz*Parameters for the userPromptOpened event.Nr%   ÚhandlerÚmessageÚtypeÚdefault_valuec                 óJ   — || _         || _        || _        || _        || _        y r*   ©r%   rS   rT   rU   rV   )r,   r%   rS   rT   rU   rV   s         r   r-   zUserPromptOpenedParams.__init__£   s(   € ð ˆŒØˆŒØˆŒØˆŒ	Ø*ˆÕr   r.   r/   c           	      ó²   —  | |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      ¬«      S )a$  Creates a UserPromptOpenedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the user prompt parameters.

        Returns:
        -------
            UserPromptOpenedParams: A new instance of UserPromptOpenedParams.
        r%   rS   rT   rU   ÚdefaultValuerX   r1   r3   s     r   r5   z UserPromptOpenedParams.from_json±   sM   € ñ Ø—H‘H˜YÓ'Ø—H‘H˜YÓ'Ø—H‘H˜YÓ'Ø—‘˜&Ó!ØŸ(™( >Ó2ô
ð 	
r   r*   )
r   r   r   r   r6   r   r-   r8   r   r5   r   r   r   rR   rR       sf   „ Ù4ð (,ñ+àð+ð ð+ð ð	+ð
 ð+ð   ‘}ó+ð ð
˜Tð 
Ð&>ò 
ó ñ
r   rR   c            
       óL   — e Zd ZdZ	 ddedededee   fd„Zede	d	d fd
„«       Z
y)ÚUserPromptClosedParamsz*Parameters for the userPromptClosed event.Nr%   ÚacceptedrU   Ú	user_textc                 ó<   — || _         || _        || _        || _        y r*   ©r%   r]   rU   r^   )r,   r%   r]   rU   r^   s        r   r-   zUserPromptClosedParams.__init__É   s    € ð ˆŒØ ˆŒØˆŒ	Ø"ˆ�r   r.   r/   c                 ó’   —  | |j                  d«      |j                  d«      |j                  d«      |j                  d«      ¬«      S )a+  Creates a UserPromptClosedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the user prompt closed parameters.

        Returns:
        -------
            UserPromptClosedParams: A new instance of UserPromptClosedParams.
        r%   r]   rU   ÚuserTextr`   r1   r3   s     r   r5   z UserPromptClosedParams.from_jsonÕ   sA   € ñ Ø—H‘H˜YÓ'Ø—X‘X˜jÓ)Ø—‘˜&Ó!Ø—h‘h˜zÓ*ô	
ð 	
r   r*   )r   r   r   r   r6   Úboolr   r-   r8   r   r5   r   r   r   r\   r\   Æ   s\   „ Ù4ð $(ñ
#àð
#ð ð
#ð ð	
#ð
 ˜C‘=ó
#ð ð
˜Tð 
Ð&>ò 
ó ñ
r   r\   c                   ó:   — e Zd ZdZdedefd„Zededd fd„«       Zy)	ÚHistoryUpdatedParamsz(Parameters for the historyUpdated event.r%   r(   c                 ó    — || _         || _        y r*   ©r%   r(   )r,   r%   r(   s      r   r-   zHistoryUpdatedParams.__init__ì   s   € ð
 ˆŒØˆ�r   r.   r/   c                 óR   —  | |j                  d«      |j                  d«      ¬«      S )a"  Creates a HistoryUpdatedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the history updated parameters.

        Returns:
        -------
            HistoryUpdatedParams: A new instance of HistoryUpdatedParams.
        r%   r(   rg   r1   r3   s     r   r5   zHistoryUpdatedParams.from_jsonô   s(   € ñ Ø—H‘H˜YÓ'Ø—‘˜“ô
ð 	
r   N©	r   r   r   r   r6   r-   r8   r   r5   r   r   r   re   re   é   s?   „ Ù2ðàðð óð ð
˜Tð 
Ð&<ò 
ó ñ
r   re   c                   ó6   — e Zd ZdZdefd„Zededd fd„«       Zy)ÚBrowsingContextEventz'Base class for browsing context events.Úevent_classc                 ó    — || _         || _        y r*   )rl   Úparams)r,   rl   Úkwargss      r   r-   zBrowsingContextEvent.__init__	  s   € Ø&ˆÔØˆ�r   r.   r/   c                 ó4   —  | dd|j                  d«      i|¤ŽS )a  Creates a BrowsingContextEvent instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the event information.

        Returns:
        -------
            BrowsingContextEvent: A new instance of BrowsingContextEvent.
        rl   r   r1   r3   s     r   r5   zBrowsingContextEvent.from_json  s    € ñ Ñ?˜tŸx™x¨Ó6Ð?¸$Ñ?Ð?r   Nri   r   r   r   rk   rk     s8   „ Ù1ð Có ð ð@˜Tð @Ð&<ò @ó ñ@r   rk   c                   ó°  — e Zd ZdZdddddddd	d
dddddœZd„ Zdeddfd„Z	 	 	 dFdededee	   dee	   def
d„Z
dGdededdfd„Z	 	 	 dHdedee   dedee   def
d „Z	 	 dId!ee   d"ee   dee   fd#„Z	 	 dIded$ee   d%ee   ddfd&„Z	 	 	 dJded'e	d(ee   d)ee	   d*eee	      dee	   fd+„Z	 dKded,ed-ee   de	fd.„Z	 	 	 	 	 	 	 dLdeded/ee	   d0ed1ee	   d2eeeeef         d3ed4edefd5„Z	 	 dIded6ee   d-ee   de	fd7„Z	 	 	 	 dMdee   dee	   d8ee   d9eee      ddf
d:„Zded;ede	fd<„Zd=ed>edefd?„ZdKd@ed>edAeee      defdB„Zd@edCeddfdD„ZdNdE„Zy)OÚBrowsingContextz2BiDi implementation of the browsingContext module.zbrowsingContext.contextCreatedz browsingContext.contextDestroyedz browsingContext.domContentLoadedz!browsingContext.downloadWillBeginz!browsingContext.fragmentNavigatedzbrowsingContext.historyUpdatedzbrowsingContext.loadz!browsingContext.navigationAbortedz#browsingContext.navigationCommittedz browsingContext.navigationFailedz!browsingContext.navigationStartedz browsingContext.userPromptClosedz browsingContext.userPromptOpened)Úcontext_createdÚcontext_destroyedÚdom_content_loadedÚdownload_will_beginÚfragment_navigatedÚhistory_updatedÚloadÚnavigation_abortedÚnavigation_committedÚnavigation_failedÚnavigation_startedÚuser_prompt_closedÚuser_prompt_openedc                 ó.   — || _         i | _        i | _        y r*   )ÚconnÚsubscriptionsÚ	callbacks)r,   r�   s     r   r-   zBrowsingContext.__init__/  s   € ØˆŒ	ØˆÔØˆ�r   r%   r/   Nc                 óV   — d|i}| j                   j                  t        d|«      «       y)a  Activates and focuses the given top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID to activate.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        r%   zbrowsingContext.activateN©r�   Úexecuter   )r,   r%   rn   s      r   ÚactivatezBrowsingContext.activate4  s(   € ð ˜WÐ%ˆØ�	‰	×Ñœ/Ð*DÀfÓMÕNr   ÚviewportÚoriginÚformatÚclipc                 ó|   — ||dœ}|�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )aÎ  Captures an image of the given navigable, and returns it as a Base64-encoded string.

        Parameters:
        -----------
            context: The browsing context ID to capture.
            origin: The origin of the screenshot, either "viewport" or "document".
            format: The format of the screenshot.
            clip: The clip rectangle of the screenshot.

        Returns:
        -------
            str: The Base64-encoded screenshot.
        )r%   r‰   rŠ   r‹   z!browsingContext.captureScreenshotÚdatar…   )r,   r%   r‰   rŠ   r‹   rn   Úresults          r   Úcapture_screenshotz"BrowsingContext.capture_screenshotB  sT   € ð( %°Ñ7ˆØÐØ%ˆF�8ÑØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3VÐX^Ó#_Ó`ˆØ�f‰~Ðr   Úprompt_unloadc                 óX   — ||dœ}| j                   j                  t        d|«      «       y)a/  Closes a top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID to close.
            prompt_unload: Whether to prompt to unload.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        )r%   ÚpromptUnloadzbrowsingContext.closeNr…   )r,   r%   r�   rn   s       r   ÚclosezBrowsingContext.close_  s(   € ð %°mÑDˆØ�	‰	×Ñœ/Ð*AÀ6ÓJÕKr   rU   Úreference_contextÚ
backgroundr=   c                 óˆ   — d|i}|�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )a   Creates a new navigable, either in a new tab or in a new window, and returns its navigable id.

        Parameters:
        -----------
            type: The type of the new navigable, either "tab" or "window".
            reference_context: The reference browsing context ID.
            background: Whether to create the new navigable in the background.
            user_context: The user context ID.

        Returns:
        -------
            str: The browsing context ID of the created navigable.
        rU   ÚreferenceContextr•   rC   zbrowsingContext.creater%   r…   )r,   rU   r”   r•   r=   rn   rŽ   s          r   ÚcreatezBrowsingContext.createn  se   € ð( ˜$�ˆØÐ(Ø):ˆFÐ%Ñ&ØÐ!Ø#-ˆF�<Ñ ØÐ#Ø$0ˆF�=Ñ!à—‘×"Ñ"¤?Ð3KÈVÓ#TÓUˆØ�iÑ Ð r   Ú	max_depthÚrootc                 óÂ   — i }|�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   D �cg c]  }t        j	                  |«      ‘Œ c}S c c}w )a•  Returns a tree of all descendent navigables including the given parent itself, or all top-level contexts
        when no parent is provided.

        Parameters:
        -----------
            max_depth: The maximum depth of the tree.
            root: The root browsing context ID.

        Returns:
        -------
            List[BrowsingContextInfo]: A list of browsing context information.
        ÚmaxDepthrš   zbrowsingContext.getTreeÚcontexts)r�   r†   r   r:   r5   )r,   r™   rš   rn   rŽ   r%   s         r   Úget_treezBrowsingContext.get_tree�  si   € ð" ˆØÐ Ø!*ˆF�:ÑØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3LÈfÓ#UÓVˆØFLÈZÑFXÖY¸7Ô#×-Ñ-¨gÕ6ÒYÐYùÒYs   ½AÚacceptr^   c                 ór   — d|i}|�||d<   |�||d<   | j                   j                  t        d|«      «       y)zèAllows closing an open prompt.

        Parameters:
        -----------
            context: The browsing context ID.
            accept: Whether to accept the prompt.
            user_text: The text to enter in the prompt.
        r%   NrŸ   rb   z browsingContext.handleUserPromptr…   )r,   r%   rŸ   r^   rn   s        r   Úhandle_user_promptz"BrowsingContext.handle_user_prompt§  sH   € ð ˜WÐ%ˆØÐØ%ˆF�8ÑØÐ Ø!*ˆF�:Ñà�	‰	×Ñœ/Ð*LÈfÓUÕVr   ÚlocatorÚmax_node_countÚserialization_optionsÚstart_nodesc                 óŠ   — ||dœ}|�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )aº  Returns a list of all nodes matching the specified locator.

        Parameters:
        -----------
            context: The browsing context ID.
            locator: The locator to use.
            max_node_count: The maximum number of nodes to return.
            serialization_options: The serialization options.
            start_nodes: The start nodes.

        Returns:
        -------
            List[Dict]: A list of nodes.
        )r%   r¢   ÚmaxNodeCountÚserializationOptionsÚ
startNodeszbrowsingContext.locateNodesÚnodesr…   )r,   r%   r¢   r£   r¤   r¥   rn   rŽ   s           r   Úlocate_nodeszBrowsingContext.locate_nodes½  sf   € ð, %°Ñ9ˆØÐ%Ø%3ˆF�>Ñ"Ø Ð,Ø-BˆFÐ)Ñ*ØÐ"Ø#.ˆF�<Ñ à—‘×"Ñ"¤?Ð3PÐRXÓ#YÓZˆØ�g‰Ðr   r(   Úwaitc                 óh   — ||dœ}|�||d<   | j                   j                  t        d|«      «      }|S )aF  Navigates a navigable to the given URL.

        Parameters:
        -----------
            context: The browsing context ID.
            url: The URL to navigate to.
            wait: The readiness state to wait for.

        Returns:
        -------
            Dict: A dictionary containing the navigation result.
        rg   r¬   zbrowsingContext.navigater…   )r,   r%   r(   r¬   rn   rŽ   s         r   ÚnavigatezBrowsingContext.navigateÞ  s>   € ð$ %¨SÑ1ˆØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3MÈvÓ#VÓWˆØˆr   ÚmarginÚorientationÚpageÚpage_rangesÚscaleÚshrink_to_fitc	                 ó�   — |||||dœ}	|�||	d<   |�||	d<   |�||	d<   | j                   j                  t        d|	«      «      }
|
d   S )aŒ  Creates a paginated representation of a document, and returns it as a PDF document represented as a
        Base64-encoded string.

        Parameters:
        -----------
            context: The browsing context ID.
            background: Whether to include the background.
            margin: The margin parameters.
            orientation: The orientation, either "portrait" or "landscape".
            page: The page parameters.
            page_ranges: The page ranges.
            scale: The scale.
            shrink_to_fit: Whether to shrink to fit.

        Returns:
        -------
            str: The Base64-encoded PDF document.
        )r%   r•   r°   r³   ÚshrinkToFitr¯   r±   Ú
pageRangeszbrowsingContext.printr�   r…   )r,   r%   r•   r¯   r°   r±   r²   r³   r´   rn   rŽ   s              r   ÚprintzBrowsingContext.print÷  sq   € ð< Ø$Ø&ØØ(ñ
ˆð ÐØ%ˆF�8ÑØÐØ!ˆF�6‰NØÐ"Ø#.ˆF�<Ñ à—‘×"Ñ"¤?Ð3JÈFÓ#SÓTˆØ�f‰~Ðr   Úignore_cachec                 ót   — d|i}|�||d<   |�||d<   | j                   j                  t        d|«      «      }|S )aA  Reloads a navigable.

        Parameters:
        -----------
            context: The browsing context ID.
            ignore_cache: Whether to ignore the cache.
            wait: The readiness state to wait for.

        Returns:
        -------
            Dict: A dictionary containing the navigation result.
        r%   ÚignoreCacher¬   zbrowsingContext.reloadr…   )r,   r%   r¹   r¬   rn   rŽ   s         r   ÚreloadzBrowsingContext.reload%  sN   € ð$ ˜WÐ%ˆØÐ#Ø$0ˆF�=Ñ!ØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3KÈVÓ#TÓUˆØˆr   Údevice_pixel_ratioÚuser_contextsc                 óŠ   — i }|�||d<   |�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «       y)aµ  Modifies specific viewport characteristics on the given top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID.
            viewport: The viewport parameters.
            device_pixel_ratio: The device pixel ratio.
            user_contexts: The user context IDs.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        Nr%   rˆ   ÚdevicePixelRatioÚuserContextszbrowsingContext.setViewportr…   )r,   r%   rˆ   r½   r¾   rn   s         r   Úset_viewportzBrowsingContext.set_viewport@  sd   € ð( ˆØÐØ 'ˆF�9ÑØÐØ!)ˆF�:ÑØÐ)Ø);ˆFÐ%Ñ&ØÐ$Ø%2ˆF�>Ñ"à�	‰	×Ñœ/Ð*GÈÓPÕQr   Údeltac                 óZ   — ||dœ}| j                   j                  t        d|«      «      }|S )a,  Traverses the history of a given navigable by a delta.

        Parameters:
        -----------
            context: The browsing context ID.
            delta: The delta to traverse by.

        Returns:
        -------
            Dict: A dictionary containing the traverse history result.
        )r%   rÃ   zbrowsingContext.traverseHistoryr…   )r,   r%   rÃ   rn   rŽ   s        r   Útraverse_historyz BrowsingContext.traverse_history`  s0   € ð %¨uÑ5ˆØ—‘×"Ñ"¤?Ð3TÐV\Ó#]Ó^ˆØˆr   Ú
event_nameÚcallbackc                 óä   ‡ ‡‡— t        ‰«      }ˆˆˆ fd„}‰ j                  j                  ||«      }‰‰ j                  v r ‰ j                  ‰   j	                  |«       |S |g‰ j                  ‰<   |S )a%  Set a callback function to subscribe to a browsing context event.

        Parameters:
        ----------
            event_name: The event to subscribe to.
            callback: The callback function to execute on event.

        Returns:
        -------
            int: callback id
        c                 ó¼  •— ‰‰j                   d   k(  s‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t
        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y t        j                  | j                  «      } ‰|«       y )Nrs   rt   rv   r   r~   rx   )	ÚEVENTSr:   r5   rn   rI   rR   r\   re   r$   )Ú
event_dataÚinforn   rÇ   rÆ   r,   s      €€€r   Ú	_callbackz,BrowsingContext._on_event.<locals>._callback~  s"  ø€ Ø˜TŸ[™[Ð):Ñ;Ò;¸zÈTÏ[É[ÐYlÑMmÒ?mÜ*×4Ñ4°Z×5FÑ5FÓG�Ù˜•Ø˜tŸ{™{Ð+@ÑAÒAÜ0×:Ñ:¸:×;LÑ;LÓM�Ù˜Õ Ø˜tŸ{™{Ð+?Ñ@Ò@Ü/×9Ñ9¸*×:KÑ:KÓL�Ù˜Õ Ø˜tŸ{™{Ð+?Ñ@Ò@Ü/×9Ñ9¸*×:KÑ:KÓL�Ù˜Õ Ø˜tŸ{™{Ð+<Ñ=Ò=Ü-×7Ñ7¸
×8IÑ8IÓJ�Ù˜Õ ô &×/Ñ/°
×0AÑ0AÓB�Ù˜•r   )rk   r�   Úadd_callbackrƒ   Úappend)r,   rÆ   rÇ   ÚeventrÍ   Úcallback_ids   ```   r   Ú	_on_eventzBrowsingContext._on_eventp  so   ú€ ô % ZÓ0ˆö	ð* —i‘i×,Ñ,¨U°IÓ>ˆà˜Ÿ™Ñ'Ø�N‰N˜:Ñ&×-Ñ-¨kÔ:ð Ðð +6¨ˆD�N‰N˜:Ñ&àÐr   rÐ   r�   c                 ó–  — 	 | j                   |   }| j                  ||«      }|| j                  v r | j                  |   j                  |«       |S d|gi}|�||d<   t        | j                  «      }| j                  j                   |j                  di |¤Ž«       |g| j                  |<   |S # t        $ r t        d|› d�«      ‚w xY w)aL  Add an event handler to the browsing context.

        Parameters:
        ----------
            event: The event to subscribe to.
            callback: The callback function to execute on event.
            contexts: The browsing context IDs to subscribe to.

        Returns:
        -------
            int: callback id
        úEvent ú
 not foundÚeventsÚbrowsingContextsr   )
rÊ   ÚKeyErrorÚ	ExceptionrÒ   r‚   rÏ   r	   r�   r†   Ú	subscribe)r,   rÐ   rÇ   r�   rÆ   rÑ   rn   Úsessions           r   Úadd_event_handlerz!BrowsingContext.add_event_handlerœ  sã   € ð	8ØŸ™ UÑ+ˆJð —n‘n Z°Ó:ˆà˜×+Ñ+Ñ+Ø×Ñ˜zÑ*×1Ñ1°+Ô>ð Ðð   Ð-ˆFØÐ#Ø-5�Ð)Ñ*Ü˜dŸi™iÓ(ˆGØ�I‰I×ÑÐ/˜g×/Ñ/Ñ9°&Ñ9Ô:Ø.9¨]ˆD×Ñ˜zÑ*àÐøô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚B/ Â/CrÑ   c                 óÂ  — 	 | j                   |   }t        |«      }| j                  j                  ||«       | j                  |   j                  |«       t        | j                  |   «      dk(  rSd|gi}t        | j                  «      }| j                  j                   |j                  di |¤Ž«       | j                  |= yy# t        $ r t        d|› d�«      ‚w xY w)zÉRemove an event handler from the browsing context.

        Parameters:
        ----------
            event: The event to unsubscribe from.
            callback_id: The callback id to remove.
        rÔ   rÕ   r   rÖ   Nr   )rÊ   rØ   rÙ   rk   r�   Úremove_callbackr‚   ÚremoveÚlenr	   r†   Úunsubscribe)r,   rÐ   rÑ   rÆ   rn   rÛ   s         r   Úremove_event_handlerz$BrowsingContext.remove_event_handler¼  sÛ   € ð	8ØŸ™ UÑ+ˆJô % ZÓ0ˆà�	‰	×!Ñ! %¨Ô5Ø×Ñ˜:Ñ&×-Ñ-¨kÔ:Üˆt×!Ñ! *Ñ-Ó.°!Ò3Ø  Ð-ˆFÜ˜dŸi™iÓ(ˆGØ�I‰I×ÑÐ1˜g×1Ñ1Ñ;°FÑ;Ô<Ø×"Ñ" :Ñ.ð	 4øô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚C ÃCc                 ó4  — | j                   D ]‚  }t        |«      }| j                   |   D ]  }| j                  j                  ||«       Œ  d|gi}t	        | j                  «      }| j                  j                   |j                  di |¤Ž«       Œ„ i | _         y)z3Clear all event handlers from the browsing context.rÖ   Nr   )r‚   rk   r�   rÞ   r	   r†   rá   )r,   rÆ   rÐ   rÑ   rn   rÛ   s         r   Úclear_event_handlersz$BrowsingContext.clear_event_handlersÓ  s–   € à×,Ñ,ò 	=ˆJÜ(¨Ó4ˆEØ#×1Ñ1°*Ñ=ò >�Ø—	‘	×)Ñ)¨%°Õ=ð>à  Ð-ˆFÜ˜dŸi™iÓ(ˆGØ�I‰I×ÑÐ1˜g×1Ñ1Ñ;°FÑ;Õ<ð	=ð  ˆÕr   )rˆ   NN)F)NFN)NN)NNNr*   )FNÚportraitNNg      ð?TrG   )r/   N) r   r   r   r   rÊ   r-   r6   r‡   r   r   r�   rc   r“   r˜   r7   r   r:   rž   r¡   r«   r®   r   Úfloatr¸   r¼   rÂ   rÅ   ÚcallablerÒ   rÜ   râ   rä   r   r   r   rr   rr     sº  „ Ù<ð <Ø?Ø@ØBØAØ;Ø&ØAØ EØ?ØAØ@Ø@ñ€Fò ð
O ð O¨ó Oð" !Ø!%Ø#ñàðð ðð ˜‘ð	ð
 �t‰nðð 
óñ:L˜Sð L°ð LÀ$ó Lð$ ,0Ø Ø&*ñ!àð!ð $ C™=ð!ð ð	!ð
 ˜s‘mð!ð 
ó!ðB $(Ø"ñZà˜C‘=ðZð �s‰mðZð 
Ð!Ñ	"ó	Zð: "&Ø#'ñ	WàðWð ˜‘ðWð ˜C‘=ð	Wð
 
óWð4 )-Ø04Ø,0ñàðð ðð ! ™ð	ð
  (¨™~ðð ˜d 4™jÑ)ðð 
ˆd‰óðJ #ñ	àðð ðð �s‰mð	ð
 
óð8 !Ø!%Ø%Ø#Ø7;ØØ"ñ,àð,ð ð,ð ˜‘ð	,ð
 ð,ð �t‰nð,ð ˜d 5¨¨c¨¡?Ñ3Ñ4ð,ð ð,ð ð,ð 
ó,ðb (,Ø"ñ	àðð ˜t‘nðð �s‰mð	ð
 
óð: "&Ø#'Ø.2Ø-1ñRà˜#‘ðRð ˜4‘.ðRð % U™Oð	Rð
    S¡	Ñ*ðRð 
óRð@¨ð °Cð ¸Dó ð * Cð *°8ð *Àó *ñX sð °hð È(ÐSWÐX[ÑS\ÑJ]ð Ðiló ð@/¨#ð /¸Cð /ÀDó /ô.	 r   rr   N)Útypingr   r   r   r   Ú%selenium.webdriver.common.bidi.commonr   rÛ   r	   r   r   r$   r:   rI   rR   r\   re   rk   rr   r   r   r   ú<module>rê      s‚   ð÷$ /Ó .å Aå ÷ñ ÷ñ ÷ 
ñ  
÷F-
ñ -
ô` 
˜nô  
÷F#
ñ #
÷L 
ñ  
÷F
ñ 
÷:@ñ @÷,@ ò @ r   