OwlCyberSecurity - MANAGER
Edit File: _collections.cpython-311.pyc
� ������h�A����������������������D����d�dl�mZ�d�dlZd�dlmZ�d�dlmZmZ�d�dlm Z �ej ��������rd�dlmZ��G�d��de������������Z d d gZ�ej��������d������������Z�ej��������d������������Z�ej��������d ������������Zej��������d ej��������eef���������ej��������ej��������eef������������������df���������Z�G�d��de������������Zdd�Z�G�d��d ej��������eef���������ej��������eef���������������������Z�G�d��dej��������ej��������eef������������������������������Z�G�d��d ej��������eef���������������������Z dS�)�����)�annotationsN)�OrderedDict)�Enum�auto)�RLock)�Protocolc������������������������e�Zd�Zdd�Zd d�ZdS�) �HasGettableStringKeys�return�typing.Iterator[str]c����������������������d�S��N����selfs��� �K/opt/cloudlinux/venv/lib64/python3.11/site-packages/urllib3/_collections.py�keyszHasGettableStringKeys.keys�����������C������key�strc����������������������d�S�r���r����r���r���s��� r����__getitem__z!HasGettableStringKeys.__getitem__���r���r���N�r���r����r���r���r���r���)�__name__� __module__�__qualname__r���r���r���r���r���r ���r ��� ���s<�������������� �� �� �� � �� �� �� �� �� r���r ����RecentlyUsedContainer�HTTPHeaderDict�_KT�_VT�_DTc�������������������"�����e�Zd�Z�e��������������ZdS�)� _SentinelN)r���r���r���r���� not_passedr���r���r���r&���r&���'���s������������������J�J�Jr���r&���� potential�objectr����ValidHTTPHeaderSource | Nonec����������������������t����������|�t����������������������r|�S�t����������|�t����������j��������������������r1t����������j��������t����������j��������t ����������t ����������f���������|�������������S�t����������|�t����������j��������������������rAt����������j��������t����������j��������t����������j��������t ����������t ����������f������������������|�������������S�t����������|�d������������r%t����������|�d������������rt����������j��������d|�������������S�d�S�)Nr���r���r ���) � isinstancer!����typing�Mapping�castr����Iterable�Tuple�hasattr)r(���s��� r����%ensure_can_construct_http_header_dictr3���+���s���������)�^�,�,����� �I�v�~� .� .�����{�6�>�#�s�(�3�Y�?�?�?� �I�v�� /� /�����{�6�?�6�<��S��+A�B�I�N�N�N� ��F� #� #���� �=�(I�(I����{�2�I�>�>�>��tr���c��������������������������e�Zd�ZU�dZded<���ded<���ded<���ded <��� � �dd��fd� Zdd�Zd d�Zd!d�Zd"d�Z d#d�Z d$d�Zd%d�Z��xZ S�)&r ���a��� Provides a thread-safe dict-like container which maintains up to ``maxsize`` keys while throwing away the least-recently-used keys beyond ``maxsize``. :param maxsize: Maximum number of recent elements to retain. :param dispose_func: Every time an item is evicted from the container, ``dispose_func(value)`` is called. Callback which will get called ztyping.OrderedDict[_KT, _VT]� _container�int�_maxsize�#typing.Callable[[_VT], None] | None�dispose_funcr����lock� ���N�maxsizer����Nonec�����������������������t������������������������������������������������������������||�_��������||�_��������t ������������������������|�_��������t ������������������������|�_��������d�S�r���)�super�__init__r7���r9���r���r5���r���r:���)r���r<���r9���� __class__s��� �r���r@���zRecentlyUsedContainer.__init__R���sD������� � ���������� �(���%�-�-����G�G�� � � r���r���r"���r#���c����������������������|�j���������5��|�j�����������������������������|������������}||�j��������|<���|cd�d�d��������������S�#�1�swxY�w�Y���d�S�r���)r:���r5����pop)r���r����items��� r���r���z!RecentlyUsedContainer.__getitem__]���s������� �Y�� �� ��?�&�&�s�+�+�D�#'�D�O�C� �� �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� � ����&;�?�?�valuec���������������������d�}|�j���������5�� �||�j�����������������������������|������������f}||�j��������|<���nR#�t����������$�rE�||�j��������|<���t ����������|�j��������������������|�j��������k����r|�j�����������������������������d�������������}Y�nw�xY�wd�d�d��������������n#�1�swxY�w�Y���|�#|�j��������r|\��}}|����������������������|�������������d�S�d�S�d�S�)NF)�last)r:���r5���rC����KeyError�lenr7����popitemr9���)r���r���rF����evicted_item�_� evicted_values��� r����__setitem__z!RecentlyUsedContainer.__setitem__d���sH������� �Y�� G�� G� G�� #�D�O�$7�$7��$<�$<�<��',����$�$���� G�� G�� G��(-����$��t��'�'�$�-�7�7��$(�?�#:�#:��#:�#F�#F�L��� G���� G�� G�� G�� G�� G�� G�� G�� G�� G�� G�� G����� G�� G�� G�� G�&��#��(9�#�+��A�}����m�,�,�,�,�,��$�#�#�#s2����B�&3�B�AB�?B�B�B�B�Bc����������������������|�j���������5��|�j�����������������������������|������������}d�d�d��������������n#�1�swxY�w�Y���|�j��������r|����������������������|�������������d�S�d�S�r���)r:���r5���rC���r9���)r���r���rF���s��� r����__delitem__z!RecentlyUsedContainer.__delitem__}���s������� �Y�� -�� -��O�'�'��,�,�E� -�� -�� -�� -�� -�� -�� -�� -�� -�� -�� -����� -�� -�� -�� -����� %����e�$�$�$�$�$� %�� %s����/�3�3c�����������������l�����|�j���������5��t����������|�j��������������������cd�d�d��������������S�#�1�swxY�w�Y���d�S�r���)r:���rJ���r5���r���s��� r����__len__zRecentlyUsedContainer.__len__����s{������ �Y�� (�� (��t��'�'� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (����� (�� (�� (�� (�� (�� (s����)�-�-�typing.NoReturnc����������������� �����t����������d�������������)Nz7Iteration over this class is unlikely to be threadsafe.)�NotImplementedErrorr���s��� r����__iter__zRecentlyUsedContainer.__iter__����s������!�E� �� �� r���c���������������������|�j���������5��t����������|�j�������������������������������������������������������}|�j��������������������������������������������d�d�d��������������n#�1�swxY�w�Y���|�j��������r|D�]}|����������������������|��������������d�S�d�S�r���)r:����listr5����values�clearr9���)r���rZ���rF���s��� r���r[���zRecentlyUsedContainer.clear����s������� �Y�� $�� $��$�/�0�0�2�2�3�3�F��O�!�!�#�#�#� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $����� $�� $�� $�� $� ���� )��� )�� )���!�!�%�(�(�(�(� )�� )� )�� )s����A�A�A�A�set[_KT]c����������������������|�j���������5��t����������|�j�������������������������������������������������������cd�d�d��������������S�#�1�swxY�w�Y���d�S�r���)r:����setr5���r���r���s��� r���r���zRecentlyUsedContainer.keys����s������� �Y�� /�� /��t��+�+�-�-�.�.� /�� /�� /�� /�� /�� /�� /�� /�� /�� /�� /�� /����� /�� /�� /�� /�� /�� /rE���)r;���N)r<���r6���r9���r8���r���r=���)r���r"���r���r#���)r���r"���rF���r#���r���r=���)r���r"���r���r=����r���r6���)r���rT���)r���r=���)r���r\���)r���r���r����__doc__�__annotations__r@���r���rO���rQ���rS���rW���r[���r���� __classcell__�rA���s���@r���r ���r ���?���s��������������������-�,�,�,��M�M�M�5�5�5�5��K�K�K���<@� �� �� �� �� �� �� ��������-��-��-��-�2%��%��%��%�(��(��(��(� �� �� �� � )��)��)��)�/��/��/��/��/��/��/��/r���c�������������������>�����e�Zd�ZU�dZded<���dd�Zdd �Zdd�Zdd�ZdS�)�HTTPHeaderDictItemViewa��� HTTPHeaderDict is unusual for a Mapping[str, str] in that it has two modes of address. If we directly try to get an item with a particular name, we will get a string back that is the concatenated version of all the values: >>> d['X-Header-Name'] 'Value1, Value2, Value3' However, if we iterate over an HTTPHeaderDict's items, we will optionally combine these values based on whether combine=True was called when building up the dictionary >>> d = HTTPHeaderDict({"A": "1", "B": "foo"}) >>> d.add("A", "2", combine=True) >>> d.add("B", "bar") >>> list(d.items()) [ ('A', '1, 2'), ('B', 'foo'), ('B', 'bar'), ] This class conforms to the interface required by the MutableMapping ABC while also giving us the nonstandard iteration behavior we want; items with duplicate keys, ordered by time of first insertion. r!����_headers�headersr���r=���c����������������������||�_���������d�S�r���)rf���)r���rg���s��� r���r@���zHTTPHeaderDictItemView.__init__����s �������� � � r���r6���c�����������������h�����t����������t����������|�j�������������������������������������������������������������������S�r���)rJ���rY���rf���� iteritemsr���s��� r���rS���zHTTPHeaderDictItemView.__len__����s&�������4�� �/�/�1�1�2�2�3�3�3r���� typing.Iterator[tuple[str, str]]c�����������������4�����|�j��������������������������������������������S�r���)rf���rj���r���s��� r���rW���zHTTPHeaderDictItemView.__iter__����s�������}�&�&�(�(�(r���rD���r)����boolc�����������������������t����������|t����������������������r]t����������|������������dk����rJ|\��}}t����������|t����������������������r0t����������|t����������������������r|�j�����������������������������||������������S�dS�)N����F)r,����tuplerJ���r���rf����_has_value_for_header)r���rD���� passed_key� passed_vals��� r����__contains__z#HTTPHeaderDictItemView.__contains__����so�������d�E�"�"�� S�s�4�y�y�A�~�~�%)�"�J� ��*�c�*�*�� S�z�*�c�/J�/J�� S��}�:�:�:�z�R�R�R��ur���N)rg���r!���r���r=���r_����r���rk���)rD���r)���r���rm���) r���r���r���r`���ra���r@���rS���rW���rt���r���r���r���re���re�������s~�������������������8����� �� �� �� �4��4��4��4�)��)��)��)�����������r���re���c�������������������X������e�Zd�ZU�dZded<���d;d<��fd � Zd=d�Zd>d�Zd?d�Zd@d�Z dAdB��fd� Z dCd�ZdCd�ZdDd�Z dEd�Zd?d�Zdd �dFd"�ZdGd%�Zej��������dHd'���������������Zej��������dId*���������������Zej��������fdJd,�ZeZeZeZeZdKd-�ZdLd.�ZdMd/�ZdNd1�ZdNd2�ZdOd4�Z dPd7�Z!dQd8�Z"dQd9�Z#dQd:�Z$��xZ%S�)Rr!���ap�� :param headers: An iterable of field-value pairs. Must not contain multiple field names when compared case-insensitively. :param kwargs: Additional field-value pairs to pass in to ``dict.update``. A ``dict`` like container for storing HTTP Headers. Field names are stored and compared case-insensitively in compliance with RFC 7230. Iteration provides the first case-sensitive key seen for each case-insensitive pair. Using ``__setitem__`` syntax overwrites fields that compare equal case-insensitively in order to maintain ``dict``'s api. For fields that compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add`` in a loop. If multiple fields that are equal case-insensitively are passed to the constructor or ``.update``, the behavior is undefined and some will be lost. >>> headers = HTTPHeaderDict() >>> headers.add('Set-Cookie', 'foo=bar') >>> headers.add('set-cookie', 'baz=quxx') >>> headers['content-length'] = '7' >>> headers['SET-cookie'] 'foo=bar, baz=quxx' >>> headers['Content-Length'] '7' z%typing.MutableMapping[str, list[str]]r5���Nrg���r*����kwargsr���c����������������������t������������������������������������������������������������i�|�_��������|�@t����������|t����������������������r|����������������������|�������������n|����������������������|�������������|r|����������������������|�������������d�S�d�S�r���)r?���r@���r5���r,���r!���� _copy_from�extend)r���rg���rw���rA���s��� �r���r@���zHTTPHeaderDict.__init__����s�������� ��������������'�>�2�2�� %�����(�(�(�(����G�$�$�$��� ��K�K������� �� r���r����valr���r=���c����������������������t����������|t����������������������r|���������������������d������������}||g|�j��������|�����������������������������������<���d�S�)N�latin-1)r,����bytes�decoder5����lower�r���r���r{���s��� r���rO���zHTTPHeaderDict.__setitem__����sC�������c�5�!�!�� (��*�*�Y�'�'�C�(+�S�z���� � ���$�$�$r���c�����������������z�����|�j���������|��������������������������������������������}d���������������������|dd�����������������������S�)N�, �����r5���r�����joinr����s��� r���r���zHTTPHeaderDict.__getitem__��s0�������o�c�i�i�k�k�*���y�y��Q�R�R��!�!�!r���c�����������������:�����|�j���������|�����������������������������������=�d�S�r����r5���r����r���s��� r���rQ���zHTTPHeaderDict.__delitem__��s�������O�C�I�I�K�K�(�(�(r���r)���rm���c�����������������f�����t����������|t����������������������r|�����������������������������������|�j��������v�S�dS�)NF)r,���r���r����r5���r���s��� r���rt���zHTTPHeaderDict.__contains__��s.�������c�3���� 2��9�9�;�;�$�/�1�1��ur������defaultc�����������������H������t���������������������������������������������||������������S�r���)r?���� setdefault)r���r���r����rA���s��� �r���r����zHTTPHeaderDict.setdefault ��s��������w�w�!�!�#�w�/�/�/r����otherc�����������������������t����������|������������}|�dS��t����������|�������������|������������}d��|������������������������������������D���������������d��|�����������������������������������D���������������k����S�)NFc�����������������>�����i�|�]\��}}|������������������������������������|��S�r����r������.0�k�vs��� r���� <dictcomp>z)HTTPHeaderDict.__eq__.<locals>.<dictcomp>��s&������;�;�;���A���� � �1�;�;�;r���c�����������������>�����i�|�]\��}}|������������������������������������|��S�r���r����r����s��� r���r����z)HTTPHeaderDict.__eq__.<locals>.<dictcomp>��s9�������@ ��@ ��@ �!�Q��A�G�G�I�I�q�@ ��@ ��@ r���)r3����type� itermerged)r���r�����maybe_constructable�other_as_http_header_dicts��� r����__eq__zHTTPHeaderDict.__eq__��s�������C�E�J�J���&��5�(2��T� � �3F�(G�(G�%�;�;����):�):�;�;�;��@ ��@ �%>�%I�%I�%K�%K�@ ��@ ��@ �� �� r���c�����������������.�����|�����������������������|�������������S�r���)r����)r���r����s��� r����__ne__zHTTPHeaderDict.__ne__��s�������;�;�u�%�%�%�%r���r6���c�����������������*�����t����������|�j��������������������S�r���)rJ���r5���r���s��� r���rS���zHTTPHeaderDict.__len__��s�������4�?�#�#�#r���r���c��������������#���V���K����|�j��������������������������������������������D�]}|d���������V���� d�S�)Nr���)r5���rZ���)r����valss��� r���rW���zHTTPHeaderDict.__iter__!��s<�����������O�*�*�,�,�� �� �D��q�'�M�M�M�M� �� r���c�����������������0����� �|�|=�d�S�#�t�����������$�r�Y�d�S�w�xY�wr���)rI���r���s��� r����discardzHTTPHeaderDict.discard&��s4������ ��S� � � ���� �� �� ��D�D� ���s������ �F)�combiner����c����������������J����t����������|t����������������������r|���������������������d������������}|�����������������������������������}||g}|�j�����������������������������||������������}||urAt ����������|������������dk����sJ��|r|d���������dz���|z���|d<���dS�|���������������������|�������������dS�dS�)a���Adds a (name, value) pair, doesn't overwrite the value if it already exists. If this is called with combine=True, instead of adding a new header value as a distinct item during iteration, this will instead append the value to any existing header value with a comma. If no existing header value exists for the key, then the value will simply be added, ignoring the combine parameter. >>> headers = HTTPHeaderDict(foo='bar') >>> headers.add('Foo', 'baz') >>> headers['foo'] 'bar, baz' >>> list(headers.items()) [('foo', 'bar'), ('foo', 'baz')] >>> headers.add('foo', 'quz', combine=True) >>> list(headers.items()) [('foo', 'bar, baz, quz')] r}���ro������r����N)r,���r~���r���r����r5���r����rJ����append)r���r���r{���r����� key_lower�new_valsr����s��� r����addzHTTPHeaderDict.add,��s�������(��c�5�!�!�� (��*�*�Y�'�'�C��I�I�K�K� ���:����)�)�)�X�>�>���4�����t�9�9��>�>�>�>��� !���8�d�?�S�0��R�������C� � � � � �� �r����args�ValidHTTPHeaderSourcec����������������������t����������|������������dk����r t����������dt����������|��������������d��������������t����������|������������dk����r|d���������nd}t����������|t����������������������r2|�����������������������������������D�]\��}}|����������������������||���������������nt����������|t����������j��������������������r1|�����������������������������������D�]\��}}|����������������������||��������������n�t����������|t����������j ��������������������r`t ����������j ��������t����������j ��������t����������j��������t����������t����������f������������������|������������}|D�]\��}}|����������������������||��������������nSt����������|d������������rCt����������|d������������r3|�����������������������������������D�]}|����������������������|||�����������������������|�����������������������������������D�]\��}}|����������������������||��������������dS�) z�Generic import function for any type of header-like object. Adapted version of MutableMapping.update in order to insert items with self.add instead of self.__setitem__ r����z/extend() takes at most 1 positional arguments (z given)r���r���r���r���N)rJ���� TypeErrorr,���r!���rj���r����r-���r.����itemsr0���r/���r1���r���r2���r���)r���r����rw���r����r���r{���rF���s��� r���rz���zHTTPHeaderDict.extendO��s������ ��t�9�9�q�=�=��T�#�d�)�)�T�T�T����� ���t�9�9��>�>��Q���r���e�^�,�,�� *�!�O�O�-�-�� #�� #���S�����c�"�"�"�"� #� ��v�~� .� .�� *�!�K�K�M�M�� #�� #���S�����c�"�"�"�"� #� ��v�� /� /�� *��K�����S�#�X�0F� G��O�O�E�#�� %�� %� ��U�����e�$�$�$�$� %� �U�F� #� #�� *���}�(E�(E�� *���z�z�|�|�� *�� *������e�C�j�)�)�)�)� �,�,�.�.�� !�� !�J�C���H�H�S�%� � � � � !�� !r���� list[str]c����������������������d�S�r���r���r���s��� r����getlistzHTTPHeaderDict.getlistp����������r���r$����list[str] | _DTc����������������������d�S�r���r���)r���r���r����s��� r���r����zHTTPHeaderDict.getlistt��r����r����_Sentinel | _DTc���������������������� �|�j���������|��������������������������������������������}|dd����������S�#�t����������$�r�|t����������j��������u�rg�cY�S�|cY�S�w�xY�w)zmReturns a list of all the values for the named field. Returns an empty list if the key doesn't exist.r����N)r5���r����rI���r&���r'���)r���r���r����r����s��� r���r����zHTTPHeaderDict.getlistx��sg������ ��?�3�9�9�;�;�/�D������8�O����� �� �� ��)�.�.�.�� � � ��N�N�N� ���s����+��A�A�Ac�����������������t�����t����������|�������������j����������dt����������|��������������������������������������������������d�S�)N�(�))r����r����dictr����r���s��� r����__repr__zHTTPHeaderDict.__repr__���s4�������t�*�*�%�B�B��T�_�_�->�->�(?�(?�B�B�B�Br���c�����������������x�����|D�]6}|����������������������|������������}|g|�|�j��������|�����������������������������������<����7d�S�r���)r����r5���r����)r���r����r���r{���s��� r���ry���zHTTPHeaderDict._copy_from���sI�������� 7�� 7�C��-�-��$�$�C�,/�;�#�;�D�O�C�I�I�K�K�(�(� 7�� 7r���c�����������������^������t����������|���������������������������}|���������������������|��������������|S�r���)r����ry���)r����clones��� r����copyzHTTPHeaderDict.copy���s,��������T� � ���� ��������r���rk���c��������������#������K����|�D�]:}|�j���������|��������������������������������������������}|dd����������D�]}|d���������|fV�����;dS�)z8Iterate over all header lines, including duplicate ones.r����Nr���r����)r���r���r����r{���s��� r���rj���zHTTPHeaderDict.iteritems���sf������������ #�� #�C��?�3�9�9�;�;�/�D��A�B�B�x�� #�� #���1�g�s�l�"�"�"�"� #� #�� #r���c��������������#������K����|�D�]H}|�j���������|��������������������������������������������}|d���������d���������������������|dd����������������������fV����IdS�)z:Iterate over all headers, merging duplicate ones together.r���r����r����Nr����r����s��� r���r����zHTTPHeaderDict.itermerged���s_������������ -�� -�C��/�#�)�)�+�+�.�C��a�&�$�)�)�C����G�,�,�,�,�,�,�,� -�� -r���re���c����������������� �����t����������|�������������S�r���)re���r���s��� r���r����zHTTPHeaderDict.items���s������%�d�+�+�+r����header_name�potential_valuec�����������������`�����||�v�r)||�j���������|��������������������������������������������dd�����������v�S�dS�)Nr����Fr����)r���r����r����s��� r���rq���z$HTTPHeaderDict._has_value_for_header���s9�������$���"�d�o�k�6G�6G�6I�6I�&J�1�2�2�&N�N�N��ur���c�����������������`�����t����������|������������}|�t����������S�|����������������������|�������������|�S�r���)r3����NotImplementedrz���)r���r����r����s��� r����__ior__zHTTPHeaderDict.__ior__���s7�������D�E�J�J���&�!�!����'�(�(�(��r���c����������������������t����������|������������}|�t����������S�|������������������������������������}|���������������������|�������������|S�r���)r3���r����r����rz����r���r����r�����results��� r����__or__zHTTPHeaderDict.__or__���sD�������D�E�J�J���&�!�!�������� � �)�*�*�*�� r���c����������������������t����������|������������}|�t����������S��t����������|�������������|������������}|���������������������|��������������|S�r���)r3���r����r����rz���r����s��� r����__ror__zHTTPHeaderDict.__ror__���sL�������D�E�J�J���&�!�!���d���/�0�0��� � �d����� r���r���)rg���r*���rw���r���)r���r���r{���r���r���r=���r���)r���r���r���r=���)r���r)���r���rm���)r����)r���r���r����r���r���r���)r����r)���r���rm���r_���r���)r���r���r{���r���r����rm���r���r=���)r����r����rw���r���r���r=���)r���r���r���r����)r���r���r����r$���r���r����)r���r���r����r����r���r����)r���r���)r����r!���r���r=���)r���r!���ru���)r���re���)r����r���r����r���r���rm���)r����r)���r���r!���)&r���r���r���r`���ra���r@���rO���r���rQ���rt���r����r����r����rS���rW���r����r����rz���r-����overloadr����r&���r'���� getheaders�getallmatchingheaders�iget�get_allr����ry���r����rj���r����r����rq���r����r����r����rb���rc���s���@r���r!���r!�������s��������������������B�6�5�5�5� �� �� �� �� �� �� �2��2��2��2�"��"��"��"�)��)��)��)�������� 0��0��0��0��0��0��0� �� �� �� �&��&��&��&�$��$��$��$�������� ��������:?��!!��!!��!!��!!��!!��!!�F!��!��!��!�B��_��������_����_��������_���4=�3G����������&��J�#���D���G�C��C��C��C�7��7��7��7� ������� #��#��#��#�-��-��-��-�,��,��,��,�������� ����������������������������r���)r(���r)���r���r*���)!� __future__r���r-����collectionsr����enumr���r���� threadingr���� TYPE_CHECKING�typing_extensionsr���r ����__all__�TypeVarr"���r#���r$����Unionr.���r���r0���r1���r����r&���r3����Generic�MutableMappingr ����Setre���r!���r���r���r����<module>r�������s4�����"��"��"��"��"��"�� � � � ��#��#��#��#��#��#����������������������������� ��� ��+�*�*�*�*�*������������������#�$4� 5����f�n�U�����f�n�U�����f�n�U������� �N�3��8�� �O�F�L��c��*�+�����������������������������(Z/��Z/��Z/��Z/��Z/�F�N�3��8�4�f�6K�C�QT�H�6U��Z/��Z/��Z/�z-��-��-��-��-�V�Z���S�#�X�(>�?��-��-��-�`C��C��C��C��C�V�*�3��8�4��C��C��C��C��Cr���