MINI MINI MANI MO
3
  \t                 @   st   d dl Z d dlZe jZdddZG dd de jZG dd de jZG d	d
 d
e jZG dd de j	Z	d
d Z
dS )    Nstrictc             C   s   t j| |dS )NT)codecs
utf_16_decode)inputerrors r   (/usr/lib64/python3.6/encodings/utf_16.pydecode   s    r	   c               @   s8   e Zd ZdddZdddZdd Zd	d
 Zdd Zd
S )IncrementalEncoderr   c             C   s   t jj| | d | _d S )N)r   r
   __init__encoder)selfr   r   r   r   r      s    zIncrementalEncoder.__init__Fc             C   sN   | j d kr<tj|| jd }tjdkr0tj| _ ntj| _ |S | j || jd S )Nr   little)r   r   
utf_16_encoder   sys	byteorderutf_16_le_encodeutf_16_be_encode)r
   r   finalresultr   r   r   encode   s    
zIncrementalEncoder.encodec             C   s   t jj|  d | _d S )N)r   r
   resetr   )r
   r   r   r   r   !   s    zIncrementalEncoder.resetc             C   s   | j d krdS dS )N   r   )r   )r
   r   r   r   getstate%   s    zIncrementalEncoder.getstatec             C   s,   |rd | _ ntjdkr tj| _ ntj| _ d S )Nr   )r   r   r   r   r   r   )r
   stater   r   r   setstate,   s
    
zIncrementalEncoder.setstateN)r   )F)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r
      s
   
r
   c               @   s6   e Zd Zd
ddZdd Zdd Zdd	 Zd
d ZdS )IncrementalDecoderr   c             C   s   t jj| | d | _d S )N)r   BufferedIncrementalDecoderr   decoder)r
   r   r   r   r   r   6   s    zIncrementalDecoder.__init__c             C   sl   | j d kr\tj||d|\}}}|dkr2tj| _ n"|dkrDtj| _ n|dkrTtd||fS | j || j|S )Nr      r   z%UTF-16 stream does not start with BOM)r!   r   utf_16_ex_decodeutf_16_le_decodeutf_16_be_decodeUnicodeErrorr   )r
   r   r   r   outputconsumedr   r   r   r   _buffer_decode:   s    
z!IncrementalDecoder._buffer_decodec             C   s   t jj|  d | _d S )N)r   r    r   r!   )r
   r   r   r   r   G   s    zIncrementalDecoder.resetc             C   sD   t jj| d }| jd kr"|dfS ttjdk| jt jkk}||fS )Nr   r   big)r   r    r   r!   intr   r   r&