
    ]h]_                        d Z dZdZd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 eed      r G d dej                        Z eed      r G d dej                         Z G d dej"                        Z G d dej$                        Z eed      rd Zn5d$dZd$dZ G d dej"                        Z G d dej$                        Zd Z ej0                  e       d Z ej4                  d e       y)%zPython codec for CSS.restructuredtextzWalter Doerwaldz0$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $    Nc                 2    dj                  d | D              S )N c              3   2   K   | ]  }t        |        y wN)chr).0bytes     /home/pod-website-builder.sw7ft.com/pod-website-builder/website-analyzer/venv/lib/python3.12/site-packages/css_parser/_codec3.py	<genexpr>zchars.<locals>.<genexpr>   s     43t94s   )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</2EEHYYZZJ
?25HHK^^__J7aAJ222
J 69O OPP
J555
J 36L L 3!46I!J K K
G|222
G|000
Qw!H
?#6"66J<#6"66J
?$:=P$PSf$f"ggJ
?#9"99J<#4"44J7aAQqz[1%55"'=&==
J"(;>T(TWj(j&kk
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,3v;'61 ooc3v;7!8&s6{37>> 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_unicoderA      sg     Fjjc&k*!8#f+c*D11
 	 
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   _fixencodingrH      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
getdecoderrH   str)r,   errorsrG   force	_encodingexplicitconsumeds          r   decoderW      s     u 25$ ?H?@@Ux'7 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   rC   rD   r&   r%   rJ   rK   )	r*   rA   rE   rF   rH   rQ   rN   rO   
getencoder)r,   rR   rG   rV   encoders        r   encoder[      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   
_bytes2intra      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   
_int2bytesre      s>    
A
	CDM"	a  771:r   IncrementalDecoderc                   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)rf   Nc                     d | _         || _        || _        t        j                  j                  | |       || _        d| _        d| _        y Nr   F)	decoderrG   rS   rO   rf   __init___errorsbufferheaderfixed)selfrR   rG   rS   s       r   rk   zIncrementalDecoder.__init__  sE    DL$DMDJ%%..tV< "DLDK$Dr   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wNFr   T)rW   ro   r,   partresults       r   
iterdecodezIncrementalDecoder.iterdecode  L      !T51 L! [[T*F    = =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   rJ   rK   rC   rD   r&   r%   T)rj   rm   rG   rS   r>   rN   rO   getincrementaldecoderrl   rn   rW   rE   rF   rH   rQ   )ro   r,   r-   rG   rU   rj   output	newoutputs           r   rW   zIncrementalDecoder.decode  sB    ||#e+==(

+=eU+K(Xx'&+!!U*()KLL 8M(0  66t}}E&t||4||**5%88 [[4<<#6#6ue#DDF}}HS)//1[@"$VS]EBI $#Dr   c                 l    t         j                  j                  |        d | _        d| _        d| _        y ri   )rO   rf   resetrj   rm   rn   ro   s    r   r}   zIncrementalDecoder.reset;  s,    %%++D1DLDK$Dr   c                     | j                   S r   rl   r~   s    r   
_geterrorszIncrementalDecoder._geterrorsA      <<r   c                 L    | j                   || j                   _        || _        y r   )rj   rR   rl   ro   rR   s     r   
_seterrorszIncrementalDecoder._seterrorsD      ||'&,#!DLr   c                     | j                   >| j                  | j                  | j                  d| j                   j	                         f}n%| j                  | j                  | j                  dd f}dt        t        j                  |            fS )NTFr   )rj   rG   rm   rn   getstatera   marshaldumpsro   states     r   r   zIncrementalDecoder.getstateK  sn    ||'T5E5EtT\\MbMbMdeT5E5EudS
7==#7899r   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   )re   r   loadsrG   rm   rn   rO   ry   rl   rj   setstater   s     r   r   zIncrementalDecoder.setstateR  s    w}}U1X67E!!HDM(DK$QxDQx#Jv;;DMMJ4<<X%%eAh/#r   strictNTF)__name__
__module____qualname__rk   ru   rW   r}   r   r   propertyrR   r   r    r   r   rf   rf     s9    		%	#	J	%	 	"
 *j1	:		$r   IncrementalEncoderc                   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)r   Nc                 |    d | _         || _        t        j                  j	                  | |       || _        d| _        y Nr   )rZ   rG   rO   r   rk   rl   rm   )ro   rR   rG   s      r   rk   zIncrementalEncoder.__init__`  s6    DL$DM%%..tV< "DLDKr   c              #   ~   K   |D ]  }| j                  |d      }|s|  | j                  dd      }|r| y y wrq   )r[   rr   s       r   
iterencodezIncrementalEncoder.iterencodei  rv   rw   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 )
NrC   rD   r&   r%   r   r   rJ   rK   T)rZ   rm   rG   rE   rF   rH   rQ   rA   rN   rO   lookupincrementalencoderrl   r[   )ro   r,   r-   rG   newinputinfos         r   r[   zIncrementalEncoder.encoder  s7   ||#e+==,#}}H''S1779[H#*+E3x=%HH'&+!$E %;5%$H$KDM==,}}-()KLL!==7D#}}H}},,S#6<<>+M ,UGT B#'#:#:4<<#HDL"$DK"'DK<<&&ue44r   c                 ^    t         j                  j                  |        d | _        d| _        y r   )rO   r   r}   rZ   rm   r~   s    r   r}   zIncrementalEncoder.reset  s$    %%++D1DLDKr   c                     | j                   S r   r   r~   s    r   r   zIncrementalEncoder._geterrors  r   r   c                 L    | j                   || j                   _        || _        y r   )rZ   rR   rl   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)rZ   rG   rm   r   ra   r   r   r   s     r   r   zIncrementalEncoder.getstate  sY    ||'T4<<;P;P;RSUDAgmmE233r   c                 &   t        t        j                  |            }|d   | _        |d   | _        |d   S t        j                  | j                        | j                        | _        | j                  j                  |d          y d | _        y )Nr   r   r   r   )
re   r   r   rG   rm   rO   getincrementalencoderrl   rZ   r   r   s     r   r   zIncrementalEncoder.setstate  ss    w}}U34E!!HDM(DKQx#Jv;;DMMJ4<<X%%eAh/#r   r   Nr   )r   r   r   rk   r   r[   r}   r   r   r   rR   r   r   r   r   r   r   r   _  s8    			5<	
	 	"
 *j1	4	$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   )rO   r   rk   streamwriterrG   rl   rm   )ro   streamrR   rG   headers        r   rk   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 )NrC   rD   r&   r%   Fr   r   r   rJ   rK   Tr   )r*   r   rm   rG   rE   rF   rH   rQ   rA   rN   rO   	getwriterr   rl   r[   )ro   r,   rR   r9   rG   r   s         r   r[   zStreamWriter.encode  sZ   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]]$CDKKQUQ]Q]$^!====((c288:kI(>E #!!((7:B??r   c                     | j                   S r   r   r~   s    r   r   zStreamWriter._geterrors      ||r   c                 z    	 | j                   || j                   _        || _        y # t        $ r
 Y || _        y w xY wr   )r   rR   rM   rl   r   s     r   r   zStreamWriter._seterrors  E    	  ,+1!!(
 	  			   ' 	::)r   NFr   )	r   r   r   rk   r[   r   r   r   rR   r   r   r   r   r     s%    @>	 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   )rO   r   rk   streamreaderrG   rS   rl   )ro   r   rR   rG   rS   s        r   rk   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   rJ   rK   rC   rD   r&   r%   )r   rG   rS   r>   rN   rO   	getreaderr   rl   rW   rE   rF   rH   rQ   )	ro   r,   rR   rG   rU   r   rz   rV   r{   s	            r   rW   zStreamReader.decode  s   $}}$DJJ'9%'G$8#"&$%GHHTZZDMM4I$,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   rR   rM   rl   r   s     r   r   zStreamReader._seterrors
  r   r   r   r   )	r   r   r   rk   rW   r   r   r   rR   r   r   r   r   r     s$    7.	 j*-Fr   r   	CodecInfoc           	      v    | dk(  r4t        j                  dt        t        t        t
        t        t              S y )NrJ   )namer[   rW   r   incrementaldecoderr   r   )rO   r   r[   rW   r   rf   r   r   )r   s    r   search_functionr     s6    5=###5#5))  r   c                 l    t         j                  t        j                  | |      d   z   t        |       fS )Nr   )rO   BOM_UTF8utf_8_encoder*   )r,   rR   s     r   utf8sig_encoder   &  s,    &"5"5eV"DQ"GGUTTr   c                     d}| d d t         j                  k(  r| dd  } d}t        j                  | |d      \  }}|||z   fS )Nr   r    T)rO   r   utf_8_decode)r,   rR   r;   rz   rV   s        r   utf8sig_decoder   )  sQ    !9'!"IEF#00E((r   c                       e Zd Zd ZddZy)UTF8SigStreamWriterc                 f    t         j                  j                  |        	 | `y # t        $ r Y y w xY wr   )rO   r   r}   r[   rM   r~   s    r   r}   zUTF8SigStreamWriter.reset2  2    %%d+K!    $ 	00c                 D    t         j                  | _        t        ||      S r   )rO   r   r[   r   ro   r,   rR   s      r   r[   zUTF8SigStreamWriter.encode9  s     --DK!%00r   Nr   )r   r   r   r}   r[   r   r   r   r   r   1  s    		1r   r   c                       e Zd Zd ZddZy)UTF8SigStreamReaderc                 f    t         j                  j                  |        	 | `y # t        $ r Y y w xY wr   )rO   r   r}   rW   rM   r~   s    r   r}   zUTF8SigStreamReader.reset>  r   r   c                     t        |      dk  r t        j                  j                  |      ryt        j                  | _        t        ||      S )Nr    r   )r*   rO   r   r@   r   rW   r   r   s      r   rW   zUTF8SigStreamReader.decodeE  s=    5zA~&//"<"<U"C  --DK!%00r   Nr   )r   r   r   r}   rW   r   r   r   r   r   =  s    		1r   r   c                     dd l }|j                  |       } | dk(  rt        t        t        t
        fS | dk(  rt        t        t        t        fS y )Nr   rJ   	utf_8_sig)
	encodingsnormalize_encodingr[   rW   r   r   r   r   r   r   )r   r   s     r   r   r   M  sI    ++D15=FL,??[ "N4GI\]] !r   c                     t        | t              st        d| z        dj                  d | j                  | j
                  | j                   D              | j                  fS )Nzdon't know how to handle %rr   c              3   8   K   | ]  }d t        |      z    yw)z\%06xNr]   )r	   r:   s     r   r   zcssescape.<locals>.<genexpr>^  s     M!Hs1v%Ms   )
isinstanceUnicodeEncodeError	TypeErrorr   objectstartend)excs    r   	cssescaper   [  sO    c-.5;<<GGMszz#))CGG/LMMswwWWr   r   r   r   r   r   )__doc____docformat__
__author____version__rO   r   r   r>   rA   rH   rW   r[   ra   re   hasattrrf   r   r   r   r   r   r   r   r   registerr   register_errorr   r   r   <module>r      s"   "
@  &5xv.:@&1 6'(Z$V66 Z$z 6'(O$V66 O$d4.6&& 4.n,.6&& ,.^ 6;
U)
1f11 
11f11 1 ^   
X   k9 -r   