File: //lib64/python3.9/encodings/__pycache__/utf_8_sig.cpython-39.opt-1.pyc
a
    �DOg%  �                   @   st   d Z ddlZddd�Zddd�ZG dd	� d	ej�ZG d
d� dej�ZG dd
� d
ej�ZG dd� dej�Zdd� Z	dS )a   Python 'utf-8-sig' Codec
This work similar to UTF-8 with the following changes:
* On encoding/writing a UTF-8 encoded BOM will be prepended/written as the
  first three bytes.
* On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these
  bytes will be skipped.
�    N�strictc                 C   s   t jt �| |�d  t| �fS �Nr   )�codecs�BOM_UTF8�utf_8_encode�len)�input�errors� r
   �+/usr/lib64/python3.9/encodings/utf_8_sig.py�encode   s    �r   c                 C   sD   d}| d d� t jkr&| dd � } d}t �| |d�\}}||| fS )Nr   �   T)r   r   �utf_8_decode)r   r	   �prefix�output�consumedr
   r
   r   �decode   s    r   c                   @   s8   e Zd Zddd�Zddd�Zdd� Zd	d
� Zdd� Zd
S )�IncrementalEncoderr   c                 C   s   t j�| |� d| _d S �N�   )r   r   �__init__�first��selfr	   r
   r
   r   r      s    zIncrementalEncoder.__init__Fc                 C   s:   | j r$d| _ tjt�|| j�d  S t�|| j�d S d S r   )r   r   r   r   r	   )r   r   �finalr
   r
   r   r      s    �zIncrementalEncoder.encodec                 C   s   t j�| � d| _d S r   )r   r   �resetr   �r   r
   r
   r   r   '