�
L�g�� � �
� d Z ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlm
Z dd lmZ ddl
Z
dd
lmZmZmZmZ dZh d�Zh d
�Zh d�Zh d�Zh d�Zeez ez ez ez ZdZde� d�ZdZde� de� d�Zde� d�Zde� de� d�Zde� de� d�Z de� de� d �Z!d!e� d"e� d#e � d$�Z"de� d%e� d&e"� d'e� d(e� d)�Z#d*e � �Z$d+e � �Z%d,e � d-e � d.�Z&d/e� d0e � d1e � de#� �Z'd2e � d3e� d4�Z(d2e � d3e� d5�Z)d6e � d�Z*d7Z+e� d8�Z,d9e(� �Z-d:e � �Z.d;e)� d<e!� d=e� d>e� d?e� e� d@e� d?e� e� dA�Z/dBe)� dCe!� dDe� dE�Z0e)� dFe"� de� dGe� d?e"� dHe� d8�Z1e)� dIe� d8�Z2e� dJe� dKe� d?�Z3e)� dFe"� de� dGe� d?e"� dHe� d8�Z4 ej5 dLe� dM�ej6 � � Z7 ej5 dLe� dNe� d�ej6 � � Z8 ej5 dOe� dPe� dQ�ej6 � � Z9 ej5 dRe"� dSe� dGe� dT�ej: � � Z; ej5 e� � Z< ej5 dUe� d?�� � Z= ej5 e� dV�� � Z> ej5 dUe*� dW�ej: � � Z?dXZ@dYZAdZBdZZCd[ZDd\ZEd]ZFd^ZGd_ZHd`ZIdaZJdbZKdcZLddZM eeM�e� � d�dp�� � ZNd�dr�ZOd�dt�ZPd�d�dy�ZQd�d{�ZR G d|� d}� � ZS G d~� deS� � ZT G d�� d�� � ZU G d�� d�� � ZV eVd�� � �W eBeFz ��� � ZX eVd�� � �W eBeFz ��� � ZY eVd�� � �W eBeFz eEz ��� � ZZ eVd�� � �W eBeFz eGz ��� � Z[ eVd�� � �W eBeFz ��� � Z\ eVd�� � �W eBeFz ��� � Z] eVd�� � �W eBeFz ��� � Z^ eVd�� � �W eBeFz ��� � Z_ eVd�� � �W eBeFz eKz ��� � Z` eVd�� � �W eB��� � Za eVd�� � �W eBeFz ��� � Zb eVd�� � �W eBeFz ��� � Zc eVd�� � �W eBeIz eFz ��� � Zd eVd�� � �W eBeJz eFz ��� � ZedS )�zCSS selector parser.� )�annotationsN)� lru_cache� )�util)� css_match)� css_types)�SelectorSyntaxError)�Match�Any�Iterator�casti�� > �:link�:root�:empty�:scope�:checked�:default�:defined�:enabled� :any-link� :disabled� :in-range� :optional� :required�
:read-only�:last-child�:only-child�:read-write�:first-child�
:last-of-type�
:only-of-type�
:out-of-range�:first-of-type�:indeterminate�:placeholder-shown> �:past�:focus�:hover�:active�:future�:paused�:target�:playing�:visited�:local-link�
:focus-within�
:user-invalid�:focus-visible�:target-within�:host�:current> �:matches�:is�:has�:not�:where� :contains�:-soup-contains�:-soup-contains-own> �
:host-contextr4 r5 > �:dir�:lang�
:nth-child�:nth-of-type�:nth-last-child�:nth-last-of-typez(?:\r\n|(?!\r\n)[\n\f\r])z (?:[ \t]|�)z"(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)z(?:�|z(?:\\(?:[a-f0-9]{1,6}z?|[^\r\n\f]|$))z?|[^\r\n\f]|$|z))z8
(?:(?:-?(?:[^\x00-\x2f\x30-\x40\x5B-\x5E\x60\x7B-\x9f]|z>)+|--)
(?:[^\x00-\x2c\x2e\x2f\x3A-\x40\x5B-\x5E\x60\x7B-\x9f]|z)*)
z (?:[-+])?(?:[0-9]+n?|n)(?:(?<=n)z *(?:[-+])z
*(?:[0-9]+))?z(?:"(?:\\(?:.|z)|[^\\"\r\n\f]+)*?"|'(?:\\(?:.|z)|[^\\'\r\n\f]+)*?'|z+)z*(?P<cmp>[!~^|*$]?=)z*(?P<value>z)(?:z*(?P<case>[is]))?)?z*\]z\#z\.z(?P<tag_ns>(?:z|\*)?\|)?(?P<tag_name>z|\*)z\[z*(?P<attr_ns>(?:z|\*)?\|)?(?P<attr_name>z
(?P<name>:z)(?P<open>\(z*)?z*)z(?P<name>:(?=--)�&z*\)�:z@Pz
(?P<pseudo_nth_child>z
(?P<nth_child>z|even|odd))(?:z*\)|(?P<of>�*z*ofz*))
z
(?P<pseudo_nth_type>z
(?P<nth_type>z|even|odd))z*\)
z(?P<values>z*,z)*)z(?P<dir>ltr|rtl)z*?(?P<relation>[,+>~]|z(?![,+>~]))z(?:(\\[a-f0-9]{1,6}z?)|(\\[^\r\n\f])|(\\$))z?)|(\\[^\r\n\f])|(\\$)|(\\z'(?P<s1>[-+])?(?P<a>[0-9]+n?|n)(?:(?<=n)z
*(?P<s2>[-+])z*(?P<b>[0-9]+))?z
(?:(?P<value>z)|(?P<split>z*))�^z*$�$�,� � � � � � �@ � � i i i� )�maxsize�pattern�str�
namespaces�ct.Namespaces | None�custom�ct.CustomSelectors | None�flags�int�return�cm.SoupSievec � � t |� � }t j | t | ||�� � � � � |||� � S )zCached CSS compile.�r[ r] )�process_custom�cm� SoupSieve� CSSParser�process_selectors)rW rY r[ r] �custom_selectorss �d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/soupsieve/css_parser.py�_cached_css_compilerj � s[ � � &�f�-�-��
�<����#��
�
�
� �
�
�
���
�
�
�
� �Nonec �8 � t � � � dS )zPurge the cache.N)rj �cache_clear� rk ri �_purge_cacherp � s � � �#�#�%�%�%�%�%rk � dict[str, str | ct.SelectorList]c � � i }| ��| � � � D ]o\ }}t j |� � }t � |� � �t d|� d�� � �||v rt
d|� d�� � �||t |� � <