U if% @ sp d dl Z dddZdddZG dd de jZG d d d e jZG dd de jZG d d de jZdd ZdS ) Nstrictc C s t jt | |d t| fS Nr )codecsBOM_UTF8utf_8_encodelen)inputerrors r 8/opt/alt/python38/lib64/python3.8/encodings/utf_8_sig.pyencode s r c C sD d}| d d t jkr&| dd } d}t | |d\}}||| fS )Nr T)r r utf_8_decode)r r prefixoutputconsumedr r r decode s r c @ s8 e Zd ZdddZdddZdd Zd d Zdd Zd S )IncrementalEncoderr c C s t j| | d| _d S N )r r __init__firstselfr r r r r s zIncrementalEncoder.__init__Fc C s: | j r$d| _ tjt|| jd S t|| jd 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 ' s zIncrementalEncoder.resetc C s | j S Nr r r r r getstate+ s zIncrementalEncoder.getstatec C s || _ d S 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 j| | d| _d S r )r BufferedIncrementalDecoderr r r r r r r 2 s zIncrementalDecoder.__init__c C sv | j rht|dk r*tj|r"dS d| _ n>d| _ |d d tjkrht|dd ||\}}||d fS t|||S )Nr r r )r r r r startswithr )r r r r r r r r r _buffer_decode6 s z!IncrementalDecoder._buffer_decodec C s t j| d| _d S r )r r' r r r r r r r G s zIncrementalDecoder.resetc C s t j| }|d | jfS r )r r' r r r r r r r K s zIncrementalDecoder.getstatec C s t j| | |d | _d S r )r r' r" r r r r r r" P s zIncrementalDecoder.setstateN)r )r# r$ r% r r+ r r r" r r r r r&