o
    ¼>hŠ  ã                   @   sž   zd dl mZ d dl mZ eZW d
S  eyN   ze W n ey'   eZY nw d dlmZ G dd„ de	ƒZG dd„ de	ƒZ
G dd	„ d	e	ƒZddd„ZY d
S w )é    )ÚXorMaskerNull)ÚcreateXorMasker)Úarrayc                   @   s2   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ ZdS )r   ©Ú_ptrNc                 C   ó
   d| _ d S ©Nr   r   ©ÚselfÚmask© r   ú|/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/websocket/xormasker.pyÚ__init__8   ó   
zXorMaskerNull.__init__c                 C   ó   | j S ©Nr   ©r
   r   r   r   Úpointer;   ó   zXorMaskerNull.pointerc                 C   r   r   r   r   r   r   r   Úreset>   r   zXorMaskerNull.resetc                 C   s   |  j t|ƒ7  _ |S r   )r   Úlen)r
   Údatar   r   r   ÚprocessA   s   zXorMaskerNull.processr   ©Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r   r   r   r   3   s    
r   c                   @   ó0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚXorMaskerSimple)r   Ú_mskc                 C   s&   t |ƒdksJ ‚d| _td|ƒ| _d S )Né   r   ÚB)r   r   r   r    r	   r   r   r   r   I   s   zXorMaskerSimple.__init__c                 C   r   r   r   r   r   r   r   r   N   r   zXorMaskerSimple.pointerc                 C   r   r   r   r   r   r   r   r   Q   r   zXorMaskerSimple.resetc                 C   sR   t |ƒ}td|ƒ}t|ƒD ]}||  | j| jd@  N  < |  jd7  _q| ¡ S )Nr"   é   é   )r   r   Úxranger    r   Útobytes)r
   r   ÚdlenÚpayloadÚkr   r   r   r   T   s   
zXorMaskerSimple.processNr   r   r   r   r   r   E   s    r   c                   @   r   )ÚXorMaskerShifted1)r   Ú	_mskarrayc                 C   s²   t |ƒdksJ ‚d| _tdƒtdƒtdƒtdƒg| _tdƒD ]8}| jd  ||d@  ¡ | jd  ||d d@  ¡ | jd  ||d d@  ¡ | jd  ||d d@  ¡ qd S )Nr!   r   r"   r#   r$   é   )r   r   r   r+   r%   Úappend)r
   r   Újr   r   r   r   `   s   üzXorMaskerShifted1.__init__c                 C   r   r   r   r   r   r   r   r   j   r   zXorMaskerShifted1.pointerc                 C   r   r   r   r   r   r   r   r   m   r   zXorMaskerShifted1.resetc                 C   s^   t |ƒ}td|ƒ}| j| jd@  }t|ƒD ]}||  ||d@  N  < q|  j|7  _| ¡ S )Nr"   r#   )r   r   r+   r   r%   r&   )r
   r   r'   r(   Úmskr)   r   r   r   r   p   s   
zXorMaskerShifted1.processNr   r   r   r   r   r*   \   s    
r*   Nc                 C   s    |d u s|dk rt | ƒS t| ƒS )Né€   )r   r*   )r   Úlengthr   r   r   Úcreate_xor_maskery   s   r2   r   )Úwsaccel.xormaskr   r   r2   ÚImportErrorr%   Ú	NameErrorÚranger   Úobjectr   r*   r   r   r   r   Ú<module>   s    
ý«