�
L�g18 � � � d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm Z ddl
mZmZ ddl
mZ d dlmZ de j d e j d
efd�Zn&# e$ r ej Zde j d e j d
efd�ZY nw xY wg d
�ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%eeeeeeee e!e"e#e$fZ& G d� d� � Z' G d� d � � Z( G d!� d"� � Z)dS )#� N)�Lock)�Callable�Optional�Union� )�WebSocketPayloadException�WebSocketProtocolException)�
validate_utf8)�XorMaskerSimple�
mask_value�
data_value�returnc �J � t | � � � |� � }|S �N)r �process)r r
�mask_results �_/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/websocket/_abnf.py�_maskr % s# � �,�Z�8�8�@�@��L�L���� c � � t |� � }t � |t � � }t � | |dz z | d |dz � z t � � }||z � |t � � S )N� )�len�int�
from_bytes�native_byteorder�to_bytes)r r
�datalen�int_data_value�int_mask_values r r r - ss � ��j�/�/�����
�4D�E�E������'�Q�,�'�*�]�w��{�]�*C�C�EU�
�
�� ��/�9�9�'�CS�T�T�Tr )�ABNF�continuous_frame�frame_buffer�
STATUS_NORMAL�STATUS_GOING_AWAY�STATUS_PROTOCOL_ERROR�STATUS_UNSUPPORTED_DATA_TYPE�STATUS_STATUS_NOT_AVAILABLE�STATUS_ABNORMAL_CLOSED�STATUS_INVALID_PAYLOAD�STATUS_POLICY_VIOLATION�STATUS_MESSAGE_TOO_BIG�STATUS_INVALID_EXTENSION�STATUS_UNEXPECTED_CONDITION�STATUS_BAD_GATEWAY�STATUS_TLS_HANDSHAKE_ERRORi� i� i� i� i� i� i� i� i� i� i� i� i� i� i� c � � e Zd ZdZdZdZdZdZdZdZ eeeeee fZ
eded ed
edede d
iZdZdZ
dZddddeddfdededededededeeedf ddfd�Zd'deddfd�Zededefd �� � Zdefd!�Zed(deeef dededd fd"�� � Zdefd#�Zd$eeef defd%�Zed$eeef deeef defd&�� � ZdS ))r z}
ABNF frame class.
See http://tools.ietf.org/html/rfc5234
and http://tools.ietf.org/html/rfc6455#section-5.2
r r � � � �
�cont�text�binary�close�ping�pong�~ i l � �fin�rsv1�rsv2�rsv3�opcoder �dataNr c � � || _ || _ || _ || _ || _ || _ |�d}|| _ t j | _ dS )zG
Constructor for ABNF. Please check RFC for arguments.
Nr<