�
���g~ � �X � d dl Z d dlmZ d\ ZZZZZZ Z
g d�Zee
fZ G d� d� � ZdS )� N)�json)r � � � � � � )�OPEN�CLOSE�PING�PONG�MESSAGE�UPGRADE�NOOPc �2 � e Zd ZdZeZeddfd�Zdd�Zd� Z dS )�PacketzEngine.IO packet.Nc �0 � || _ || _ d | _ t |t � � rd| _ n$t |t � � rd| _ nd| _ | j r| j t k rt d� � �|�| � |� � d S d S )NFTz*Binary packets can only be of type MESSAGE)
�packet_type�data�encode_cache�
isinstance�str�binary�binary_typesr �
ValueError�decode)�selfr r �encoded_packets �_/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/engineio/packet.py�__init__zPacket.__init__ s� � �&����� � ����d�C� � � ��D�K�K�
��l�
+�
+� ��D�K�K��D�K��;� K�4�+�w�6�6��I�J�J�J��%��K�K��'�'�'�'�'� &�%� Fc � � | j r| j S | j r:|r0dt j | j � � � d� � z }n�| j }n�t
| j � � }t | j t � � r|| j z
}nwt | j t � � st | j t � � r%|| j � | j d�� � z
}n| j �|t
| j � � z
}|| _ |S )z�Encode the packet for transmission.
Note: as a performance optimization, subsequent calls to this method
will return a cached encoded packet, even if the data has changed.
�bzutf-8)�,�:)�
separators)
r r �base64� b64encoder r r r r �dict�listr �dumps)r �b64r s r �encodez
Packet.encode s � � �� %��$�$��;� 1��
+�!$�v�'7�� �'B�'B�'I�'I��(� (� "��� "&���� ��!1�2�2�N��$�)�S�)�)�
1��$�)�+����D�I�t�,�,�
1�
�4�9�d�0K�0K�
1��$�)�/�/�$�)�=G� #2� #I� #I� I�����&��#�d�i�.�.�0��*����r! c �� � t |t � � | _ | j s"t |� � dk rt d� � �| j o|d dk }|r6d| _ t
| _ t j |dd� � � | _ dS | j r$t |t � � st |� � }| j rt
| _ || _ dS t |d � � | _ |d � � � rt �| j
� |dd� � � | _ dS # t t f$ r |dd� | _ Y dS w xY w)zDecode a transmitted package.r zInvalid empty packet receivedr# Tr N)r r r �lenr r r r'