
     hW                     l   d Z ddlZddlZddlZd ZddZddZddZddZddZ	d	 Z
d
 Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Zej                   d        Z ej$                  ej&                  d      d        Zy)zPython codec for CSS.    Nc                 2    dj                  d | D              S )N c              3   2   K   | ]  }t        |        y wN)chr).0bytes     N/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/codec.py	<genexpr>zchars.<locals>.<genexpr>   s     43t9s   )join)
bytestrings    r
   charsr      s    774444    c                 X   d}d}d}d}d}d}d}d}	d	}
d
}d}t        |       }|dk\  r7| d   }|dk7  r|| z  }|dk7  r	|||z   z  }|dk7  r|| z  }|dk7  r||	|z  |z   z  }|dk7  r|||
z  |z   z  }|dk\  r| d   }|dk7  r|| z  }|dk7  r	|||z   z  }|dk7  r|| z  }|dk7  r|||z  |	z  |
z   z  }|dk7  r|| z  }|dk7  r|| z  }|dk\  r| d   }|dk7  r|| z  }|dk7  r|| z  }|dk7  r|||	z  |
z   z  }|dk7  r|| z  }|dk7  r|| z  }|dk\  rH| d   }| dd ddd k(  r|| z  }|dk7  r|||z  |	z   z  }|dk7  r|| z  }|dk7  r||
 z  }|dk7  r|| z  }|dk(  ry||dz
  z  s||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||k(  r|dk\  ry||	k(  r|dk\  ry||
k(  r|dk\  ry||k(  rS|dk\  rNd}t        |       }|d t        |       |k(  r0|j                  d!t        |            }|dk\  r|t        |      | d"fS |ryy#)$a%  
    Detect the encoding of the byte string ``input``, which contains the
    beginning of a CSS file. This function returns the detected encoding (or
    ``None`` if it hasn't got enough data), and a flag that indicates whether
    that encoding has been detected explicitely or implicitely. To detect the
    encoding the first few bytes are used (or if ``input`` is ASCII compatible
    and starts with a charset rule the encoding name from the rule). "Explicit"
    detection means that the bytes start with a BOM or a charset rule.

    If the encoding can't be detected yet, ``None`` is returned as the encoding.
    ``final`` specifies whether more data will be available in later calls or
    not. If ``final`` is true, ``detectencoding_str()`` will never return
    ``None`` as the encoding.
                       @         i   i  r               c         h   s     a   utf-8F)	utf-8-sigT)zutf-16T)z	utf-16-leF)z	utf-16-beF)zutf-32T)z	utf-32-leF)z	utf-32-beF
@charset "N"TNF)lenr   find)inputfinalCANDIDATE_UTF_8_SIGCANDIDATE_UTF_16_AS_LECANDIDATE_UTF_16_AS_BECANDIDATE_UTF_16_LECANDIDATE_UTF_16_BECANDIDATE_UTF_32_AS_LECANDIDATE_UTF_32_AS_BECANDIDATE_UTF_32_LECANDIDATE_UTF_32_BECANDIDATE_CHARSET
candidateslicprefix
charsinputposs                     r
   detectencoding_strr=      s   " J 
UB	Qw!H
?...J
?25KKLLJ
?111J<#&99<MM J 
?&)<<?RR J 7aAJ222
J 69O OPP
J555
J',-)* ** 
 G|222
G|000
Qw!H
?#6"66J<#6"66J
?.-.-.# J
 
?#9"99J<#4"44J7aAQqz[1%55"'=&==
J"/4512' 

 J"'=&==
G|"':&::
G|"'8&88
Q*q.),,q&11bAg#11bAg#..27'..27'11bAg#11bAg#..27'..27',,q!FuJ-CK(F2 ooc3v;7!8&s6{S94@@ r   c                     d}| j                  |      r1| j                  dt        |            }|dk\  r| t        |      | dfS y|s|j                  |       syy)a  
    Detect the encoding of the unicode string ``input``, which contains the
    beginning of a CSS file. The encoding is detected from the charset rule
    at the beginning of ``input``. If there is no charset rule, ``"utf-8"``
    will be returned.

    If the encoding can't be detected yet, ``None`` is returned. ``final``
    specifies whether more data will be available in later calls or not. If
    ``final`` is true, ``detectencoding_unicode()`` will never return ``None``.
    r&   r'   r   Tr#   r(   )
startswithr*   r)   )r+   r,   r:   r<   s       r
   detectencoding_unicoder@      sg     Fjjc&k*!8#f+,d33
 	 
f''.  r   c                 .   d}t        |       t        |      kD  rc| j                  |      rP| j                  dt        |            }|dk\  rG|j                  dd      j	                         dk(  rd}||z   | |d z   S | S |j                  |       r|r| S |r| S y)	a  
    Replace the name of the encoding in the charset rule at the beginning of
    ``input`` with ``encoding``. If ``input`` doesn't starts with a charset
    rule, ``input`` will be returned unmodified.

    If the encoding can't be found yet, ``None`` is returned. ``final``
    specifies whether more data will be available in later calls or not.
    If ``final`` is true, ``_fixencoding()`` will never return ``None``.
    r&   r'   r   _-r%   r$   N)r)   r?   r*   replacelower)r+   encodingr,   r:   r<   s        r
   _fixencodingrG      s     F
5zCKF#**S#f+.Cax##C-335D&H(5;66 Lu%r   c                    	 | j                         } ||s't        | d      \  }}|dk(  rt        d      |r|r||} t	        j
                  |      | |      \  } }t        | t        |      d      |fS # t        $ r Y mw xY w)NTcss css not allowed as encoding name)tobytesAttributeErrorr=   
ValueErrorcodecs
getdecoderrG   str)r+   errorsrF   force	_encodingexplicitconsumeds          r
   decoderV      s     u 25$ ?H?@@U H 4))(3E6BUHHt4h??  s   A4 4	B ?B c                 .   t        |       }|@t        | d      d   }|j                  dd      j                         dk(  r$t	        | dd      } nt	        | t        |      d      } |dk(  rt        d      t        j                  |      } || |      d   |fS )	NTr   rB   rC   r%   r$   rI   rJ   )	r)   r@   rD   rE   rG   rP   rM   rN   
getencoder)r+   rQ   rF   rU   encoders        r
   encoderZ      s    5zH)%6q9C%++-< 6EUCM485;<<)GE6"1%x00r   c                 :    d}| D ]  }|dz  t        |      z   } |S )Nr   r   ord)bytesir	   s      r
   
_bytes2intr`      s(    	A!Vs4y  Hr   c                 x    g }| r&|j                  dt        | dz               | dz  } | r&dj                  |      S )Nr   r   r   r   )insertr   r   )r_   vs     r
   
_int2bytesrd     s>    
A
	CDM"	a  771:r   c                   R    e Zd Zd
dZd ZddZd Zd Zd Z e	ee      Z
d Zd	 Zy)IncrementalDecoderNc                     d | _         || _        || _        t        j                  j                  | |       || _        d| _        d| _        y Nr   F)	decoderrF   rR   rN   rf   __init___errorsbufferheaderfixed)selfrQ   rF   rR   s       r
   rj   zIncrementalDecoder.__init__  sE     
!!**48  r   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wNFr   T)rV   rn   r+   partresults       r
   
iterdecodezIncrementalDecoder.iterdecode  G     D[[u-F  R&L    = =c                    | j                   | j                  |z   }| j                  | j                  sJt	        ||      \  }}||| _        y|dk(  rt        d      |r| j                  r| j                  || _        d| _        t        j                  | j                        } || j                        | _         | j                  r| j                   j                  ||      S | j                  | j                   j                  ||      z   }| j                  }|j                  dd      j                         dk(  rd}t        |t        |      |      }||| _        yd| _	        |S )	Nr   rI   rJ   rB   rC   r%   r$   T)ri   rl   rF   rR   r=   rM   rN   getincrementaldecoderrk   rm   rV   rD   rE   rG   rP   )rn   r+   r,   rF   rT   ri   output	newoutputs           r
   rV   zIncrementalDecoder.decode$  sC    <<KK%'E}}$DJJ'9%'G$8#"'DK&$%GHHTZZ]]*$,DMDK224==AG"4<<0DL<<&&ue44 t||225%@@==C%++-<H X>	 DKr   c                 l    t         j                  j                  |        d | _        d| _        d| _        y rh   )rN   rf   resetri   rl   rm   rn   s    r
   r|   zIncrementalDecoder.resetK  s,    !!''- r   c                     | j                   S r   rk   r}   s    r
   
_geterrorszIncrementalDecoder._geterrorsQ      ||r   c                 L    | j                   || j                   _        || _        y r   )ri   rQ   rk   rn   rQ   s     r
   
_seterrorszIncrementalDecoder._seterrorsT      <<#"(DLLr   c                     | j                   >| j                  | j                  | j                  d| j                   j	                         f}n%| j                  | j                  | j                  dd f}dt        t        j                  |            fS )NTFr   )ri   rF   rl   rm   getstater`   marshaldumpsrn   states     r
   r   zIncrementalDecoder.getstate\  sv    <<#  %%'E ]]DKK1A1A5$OEJw}}U3455r   c                 @   t        t        j                  |d               }|d   | _        |d   | _        |d   | _        |d   S t        j                  | j                        | j                        | _	        | j                  j                  |d          y d | _	        y )Nr   r   r   r   r   )rd   r   loadsrF   rl   rm   rN   rx   rk   ri   setstater   s     r
   r   zIncrementalDecoder.setstatei  s    7==q23aAh 88F677Ft||TDLLL!!%(+DLr   strictNTF)__name__
__module____qualname__rj   rt   rV   r|   r   r   propertyrQ   r   r    r   r
   rf   rf     s9    	!%N! j*-F6	 r   rf   c                   R    e Zd Zd
dZd ZddZd Zd Zd Z e	ee      Z
d Zd	 Zy)IncrementalEncoderNc                 |    d | _         || _        t        j                  j	                  | |       || _        d| _        y Nr   )rY   rF   rN   r   rj   rk   rl   )rn   rQ   rF   s      r
   rj   zIncrementalEncoder.__init__v  s6     !!**48 r   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wrp   )rZ   rq   s       r
   
iterencodezIncrementalEncoder.iterencode  ru   rv   c                    | j                   >| j                  |z   }| j                  T| j                  }|j                  dd      j	                         dk(  rd}t        |t        |      |      }||| _        y|}nt        ||      d   | _        | j                  | j                  dk(  rt        d      t        j                  | j                        }| j                  }| j                  j                  dd      j	                         dk(  rt        |dd	      }|j                  | j                        | _         d| _        n|| _        y| j                   j                  ||      S )
NrB   rC   r%   r$   r   r   rI   rJ   T)rY   rl   rF   rD   rE   rG   rP   r@   rM   rN   lookupincrementalencoderrk   rZ   )rn   r+   r,   rF   newinputinfos         r
   rZ   zIncrementalEncoder.encode  s7   <<KK%'E}}(==##C-335D&H's8}eD#"'DK  !7ue DQ G}}(==E)$%GHH}}T]]3====((c288:kI(>E#66t||D #||""5%00r   c                 ^    t         j                  j                  |        d | _        d| _        y r   )rN   r   r|   rY   rl   r}   s    r
   r|   zIncrementalEncoder.reset  s$    !!''-r   c                     | j                   S r   r   r}   s    r
   r   zIncrementalEncoder._geterrors  r   r   c                 L    | j                   || j                   _        || _        y r   )rY   rQ   rk   r   s     r
   r   zIncrementalEncoder._seterrors  r   r   c                     | j                   3| j                  | j                  d| j                   j                         f}n| j                  | j                  dd f}t	        t        j                  |            S )NTF)rY   rF   rl   r   r`   r   r   r   s     r
   r   zIncrementalEncoder.getstate  sY    <<#]]DKKt||7L7L7NOE]]DKK=E'--.//r   c                 &   t        t        j                  |            }|d   | _        |d   | _        |d   S t        j                  | j                        | j                        | _        | j                  j                  |d          y d | _        y )Nr   r   r   r   )
rd   r   r   rF   rl   rN   getincrementalencoderrk   rY   r   r   s     r
   r   zIncrementalEncoder.setstate  ss    7==/0aAh8F677Ft||TDLLL!!%(+DLr   r   Nr   )r   r   r   rj   r   rZ   r|   r   r   r   rQ   r   r   r   r   r
   r   r   u  s8    1<
 j*-F0 r   r   c                   :    e Zd ZddZddZd Zd Z eee      Zy)StreamWriterNc                 ~    t         j                  j                  | ||       d | _        || _        || _        d| _        y r   )rN   r   rj   streamwriterrF   rk   rl   )rn   streamrQ   rF   headers        r
   rj   zStreamWriter.__init__  s7    $$T66:  r   c                    t        |      }| j                  I| j                  |z   }t        |      }| j                  T| j                  }|j	                  dd      j                         dk(  rd}t        |t        |      d      }||| _        y|}nt        |d      d   | _        | j                  | j                  dk(  rt        d	       t        j                  | j                        | j                  | j                        | _        | j                  }| j                  j	                  dd      j                         dk(  rt        |dd
      }d| _        n|| _        y| j                  j                  ||      d   |fS )NrB   rC   r%   r$   Fr   r   r   rI   rJ   Tr   )r)   r   rl   rF   rD   rE   rG   rP   r@   rM   rN   	getwriterr   rk   rZ   )rn   r+   rQ   r8   rF   r   s         r
   rZ   zStreamWriter.encode  s\   Z$KK%'EUB}}(==##C-335D&H's8}eD#"'DK"  !7ue DQ G}}(==E)$%GHH$CF$4$4T]]$CKK%!  ====((c288:kI(>E #!!((7:B??r   c                     | j                   S r   r   r}   s    r
   r   zStreamWriter._geterrors  r   r   c                 z    	 | j                   || j                   _        || _        y # t        $ r
 Y || _        y w xY wr   )r   rQ   rL   rk   r   s     r
   r   zStreamWriter._seterrors  E    	  ,+1!!(
 	  			   ' 	::)r   NFr   )	r   r   r   rj   rZ   r   r   r   rQ   r   r   r
   r   r     s&    @B	 j*-Fr   r   c                   :    e Zd ZddZddZd Zd Z eee      Zy)StreamReaderNc                 ~    t         j                  j                  | ||       d | _        || _        || _        || _        y r   )rN   r   rj   streamreaderrF   rR   rk   )rn   r   rQ   rF   rR   s        r
   rj   zStreamReader.__init__  s7    $$T66:  
r   c                 V   | j                   | j                  | j                  sCt        |d      \  }}|y|dk(  rt	        d      |r| j                  r| j                  || _        t        j                  | j                        } || j                  | j                        }|j                  ||      \  }}| j                  }|j                  dd      j                         dk(  rd}t        |t        |      d      }||| _         ||fS y| j                   j                  ||      S )	NFr   rI   rJ   rB   rC   r%   r$   )r   rF   rR   r=   rM   rN   	getreaderr   rk   rV   rD   rE   rG   rP   )	rn   r+   rQ   rF   rT   r   ry   rU   rz   s	            r
   rV   zStreamReader.decode
  s   $}}$DJJ'9%'G$8#"&$%GHHTZZ]]*$,DM!++DMM:L'T\\BL!-!4!4UF!CVX}}HS)//1[@"$VS]EBI$$0!!8,,  ''v66r   c                     | j                   S r   r   r}   s    r
   r   zStreamReader._geterrors#  r   r   c                 z    	 | j                   || j                   _        || _        y # t        $ r
 Y || _        y w xY wr   )r   rQ   rL   rk   r   s     r
   r   zStreamReader._seterrors&  r   r   r   r   )	r   r   r   rj   rV   r   r   r   rQ   r   r   r
   r   r     s$    72	 j*-Fr   r   c           	      v    | dk7  ry t        j                  dt        t        t        t
        t        t              S )NrI   )namerZ   rV   r   incrementaldecoderr   r   )rN   	CodecInforZ   rV   r   rf   r   r   )r   s    r
   search_functionr   4  s4    u}--!! r   	cssescapec                     t        | t              st        d| z        dj                  d | j                  | j
                  | j                   D              | j                  fS )z)
    Error handler for CSS escaping.
    zdon't know how to handle %rr   c              3   8   K   | ]  }d t        |      z    yw)z\%06xNr\   )r   r9   s     r
   r   zcssescape.<locals>.<genexpr>K  s     K+Ja3q6!+Js   )
isinstanceUnicodeEncodeError	TypeErrorr   objectstartend)excs    r
   r   r   C  sV    
 c-.5;<<
K3::cii#''+JKK r   r   r   r   )__doc__rN   	functoolsr   r   r=   r@   rG   rV   rZ   r`   rd   rf   r   r   r   registerr   partialregister_errorr   r   r   r
   <module>r      s       &5HV.:@*1c 22 c LP 22 P f7.6&& 7.t/.6&& /.d   6((+6	 7	r   