Ë
    ½�©j¶  ã                  óF  — d dl mZ d dlZd dlmZ ddlmZmZmZm	Z	m
Z
mZ  G d„ dej                  «      Z G d„ d	ej                  «      Z G d
„ dej                  «      Z G d„ deej"                  «      Z G d„ deej$                  «      Zdd„Z ej(                  e«       y)é    )ÚannotationsN)ÚAnyé   )Ú	IDNAErrorÚ_unicode_dots_reÚalabelÚdecodeÚencodeÚulabelc                  ó$   — e Zd ZdZddd„Zddd„Zy)ÚCodecaf  Stateless IDNA 2008 codec.

    Implements the :class:`codecs.Codec` protocol so that the whole-domain
    encoder (:func:`idna.encode`) and decoder (:func:`idna.decode`) are
    accessible through the standard codec machinery as ``"idna2008"``.

    Only the ``"strict"`` error handler is supported; any other handler
    raises :exc:`~idna.IDNAError`.
    c                ó`   — |dk7  rt        d|› d�d¬«      ‚|syt        |«      t        |«      fS )NÚstrictúUnsupported error handling "ú"Úunsupported_errors©Úcode©ó    r   )r   r
   Úlen©ÚselfÚdataÚerrorss      úQ/var/www/html/streamforge-license/venv/lib/python3.12/site-packages/idna/codec.pyr
   zCodec.encode   s;   € Ø�XÒÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`áØä�d‹|œS ›YÐ&Ð&r   c                ó`   — |dk7  rt        d|› d�d¬«      ‚|syt        |«      t        |«      fS )Nr   r   r   r   r   ©Ú r   )r   r	   r   r   s      r   r	   zCodec.decode   s;   € Ø�XÒÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`áØä�d‹|œS ›YÐ&Ð&r   N)r   )r   Ústrr   r    Úreturnútuple[bytes, int])r   Úbytesr   r    r!   útuple[str, int])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r	   © r   r   r   r   	   s   „ ñô'õ'r   r   c                  ó   — e Zd ZdZdd„Zy)ÚIncrementalEncodera·  Incremental IDNA 2008 encoder.

    Buffers a partial trailing label across calls until either the next
    label separator is seen or ``final=True``, so that streamed input is
    encoded one whole label at a time. Any of the four Unicode label
    separators (``U+002E``, ``U+3002``, ``U+FF0E``, ``U+FF61``) ends a
    label; the result always uses ``U+002E`` as the separator.

    Only the ``"strict"`` error handler is supported.
    c                óN  — |dk7  rt        d|› d�d¬«      ‚|syt        j                  |«      }d}|r|d   sd	}|d= n	|s|d= |rd	}g }d
}|D ]1  }|j                  t	        |«      «       |r|dz  }|t        |«      z  }Œ3 d	j                  |«      |z   }	|t        |«      z  }|	|fS )Nr   r   r   r   r   r   r   éÿÿÿÿó   .r   r   )r   r   ÚsplitÚappendr   r   Újoin)
r   r   r   ÚfinalÚlabelsÚtrailing_dotÚresultÚsizeÚlabelÚresult_bytess
             r   Ú_buffer_encodez!IncrementalEncoder._buffer_encode3   s×   € Ø�XÒÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`áØä!×'Ñ'¨Ó-ˆØˆÙØ˜"’:Ø#�Ø˜2‘JÙà˜2�JÙØ#'�LàˆØˆØò 	ˆEØ�M‰Mœ& ›-Ô(ÙØ˜‘	�Ø”C˜“JÑ‰Dð		ð —y‘y Ó(¨<Ñ7ˆØ”�LÓ!Ñ!ˆØ˜TÐ!Ð!r   N)r   r    r   r    r2   Úboolr!   r"   )r%   r&   r'   r(   r9   r)   r   r   r+   r+   '   s   „ ñ	ô"r   r+   c                  ó   — e Zd ZdZdd„Zy)ÚIncrementalDecodera  Incremental IDNA 2008 decoder.

    Buffers a partial trailing label across calls until either the next
    label separator is seen or ``final=True``, so that streamed input is
    decoded one whole label at a time.

    Only the ``"strict"`` error handler is supported.
    c                óÆ  — |dk7  rt        d|› d�d¬«      ‚|syt        |t        «      s	 t        |d«      }t	        j
                  |«      }d
}|r|d   sd}|d= n	|s|d= |rd}g }d}|D ]1  }	|j                  t        |	«      «       |r|dz  }|t        |	«      z  }Œ3 dj                  |«      |z   }
|t        |«      z  }|
|fS # t        $ r}t        dd	¬«      |‚d }~ww xY w)Nr   r   r   r   r   r   ÚasciizInvalid ASCII in A-labelÚinvalid_asciir   r-   ú.r   r   )
r   Ú
isinstancer    ÚUnicodeDecodeErrorr   r/   r0   r   r   r1   )r   r   r   r2   Úerrr3   r4   r5   r6   r7   Ú
result_strs              r   Ú_buffer_decodez!IncrementalDecoder._buffer_decode]   s  € Ø�XÒÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`áØä˜$¤Ô$ð[Ü˜4 Ó)�ô "×'Ñ'¨Ó-ˆØˆÙØ˜"’:Ø"�Ø˜2‘JÙà˜2�JÙØ#&�LàˆØˆØò 	ˆEØ�M‰Mœ& ›-Ô(ÙØ˜‘	�Ø”C˜“JÑ‰Dð		ð —X‘X˜fÓ%¨Ñ4ˆ
Ø”�LÓ!Ñ!ˆØ˜DÐ!Ð!øô3 &ò [ÜÐ :ÀÔQÐWZÐZûð[ús   «C Ã	C ÃCÃC N)r   r   r   r    r2   r:   r!   r$   )r%   r&   r'   r(   rE   r)   r   r   r<   r<   S   s   „ ñô#"r   r<   c                  ó   — e Zd Zy)ÚStreamWriterN©r%   r&   r'   r)   r   r   rG   rG   ƒ   ó   „ Ør   rG   c                  ó   — e Zd Zy)ÚStreamReaderNrH   r)   r   r   rK   rK   ‡   rI   r   rK   c           	     ó®   — | dk7  ryt        j                  | t        «       j                  t        «       j                  t
        t        t        t        ¬«      S )a£  Codec search function registered with :mod:`codecs`.

    Returns a :class:`codecs.CodecInfo` for the ``"idna2008"`` codec name
    so that ``str.encode("idna2008")`` and ``bytes.decode("idna2008")``
    invoke the IDNA 2008 codec defined in this module.

    :param name: The codec name being looked up.
    :returns: A :class:`codecs.CodecInfo` instance if ``name`` is
        ``"idna2008"``, otherwise ``None``.
    Úidna2008N)Únamer
   r	   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInfor   r
   r	   r+   r<   rG   rK   )rN   s    r   Úsearch_functionrU   ‹   sC   € ð ˆzÒØÜ×ÑØÜ‹w�~‰~Ü‹w�~‰~Ü-Ü-Ü!Ü!ôð r   )rN   r    r!   zcodecs.CodecInfo | None)Ú
__future__r   rS   Útypingr   Úcorer   r   r   r	   r
   r   r   ÚBufferedIncrementalEncoderr+   ÚBufferedIncrementalDecoderr<   rG   rK   rU   Úregisterr)   r   r   ú<module>r\      s‡   ðÝ "ã Ý ç M× Mô'ˆF�L‰Lô 'ô<)"˜×:Ñ:ô )"ôX-"˜×:Ñ:ô -"ô`	�5˜&×-Ñ-ô 	ô	�5˜&×-Ñ-ô 	óð0 €‡��Õ  r   