§
    `Ò³gM*  ã                  óÐ   — d dl mZ d dlZd dlZd dlZej        eef         Z	ej        e	e
ee	f         e
ee	ef         f         Z	 ddd	„Zdd„Zdd„Zdd„Zdd„Z G d„ d¦  «        ZdS )é    )ÚannotationsNúapplication/octet-streamÚfilenameú
str | NoneÚdefaultÚstrÚreturnc                óB   — | rt          j        | ¦  «        d         p|S |S )zæ
    Guess the "Content-Type" of a file.

    :param filename:
        The filename to guess the "Content-Type" of using :mod:`mimetypes`.
    :param default:
        If no "Content-Type" can be guessed, default to `default`.
    r   )Ú	mimetypesÚ
guess_type)r   r   s     úL/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/urllib3/fields.pyÚguess_content_typer      s,   € ð ð <ÝÔ# HÑ-Ô-¨aÔ0Ð;°GÐ;Ø€Nó    ÚnameÚvalueÚ_TYPE_FIELD_VALUEc                ó�  ‡— ddl }|                     dt          d¬¦  «         t          ‰t          ¦  «        r‰                     d¦  «        Št          ˆfd„dD ¦   «         ¦  «        s7| › d	‰› d
�}	 |                     d¦  «         |S # t          t          f$ r Y nw xY wt          j                             ‰d¦  «        Š| › d‰› �Š‰S )a´  
    Helper function to format and quote a single header parameter using the
    strategy defined in RFC 2231.

    Particularly useful for header parameters which might contain
    non-ASCII values, like file names. This follows
    `RFC 2388 Section 4.4 <https://tools.ietf.org/html/rfc2388#section-4.4>`_.

    :param name:
        The name of the parameter, a string expected to be ASCII only.
    :param value:
        The value of the parameter, provided as ``bytes`` or `str``.
    :returns:
        An RFC-2231-formatted unicode string.

    .. deprecated:: 2.0.0
        Will be removed in urllib3 v2.1.0. This is not valid for
        ``multipart/form-data`` header parameters.
    r   Nz�'format_header_param_rfc2231' is deprecated and will be removed in urllib3 v2.1.0. This is not valid for multipart/form-data header parameters.é   ©Ú
stacklevelúutf-8c              3  ó    •K  — | ]}|‰v V — Œ	d S ©N© )Ú.0Úchr   s     €r   ú	<genexpr>z.format_header_param_rfc2231.<locals>.<genexpr>@   s'   øè è € Ð/Ð/˜rˆr�Uˆ{Ð/Ð/Ð/Ð/Ð/Ð/r   z"\
ú="ú"Úasciiz*=)ÚwarningsÚwarnÚDeprecationWarningÚ
isinstanceÚbytesÚdecodeÚanyÚencodeÚUnicodeEncodeErrorÚUnicodeDecodeErrorÚemailÚutilsÚencode_rfc2231)r   r   r!   Úresults    `  r   Úformat_header_param_rfc2231r/      s  ø€ ð( €O€O€Oà‡M‚Mð	1õ 	Øð ñ ô ð õ �%�ÑÔð &Ø—’˜WÑ%Ô%ˆåÐ/Ð/Ð/Ð/ YÐ/Ñ/Ô/Ñ/Ô/ð ØÐ$Ð$˜EÐ$Ð$Ð$ˆð	Ø�MŠM˜'Ñ"Ô"Ð"ð ˆMøõ #Õ$6Ð7ð 	ð 	ð 	ØˆDð	øøøõ
 ŒK×&Ò& u¨gÑ6Ô6€EØÐÐ�uÐÐ€Eà€Ls   Á1B ÂBÂBc                ó˜   — t          |t          ¦  «        r|                     d¦  «        }|                     ddddœ¦  «        }| › d|› d�S )aí  
    Format and quote a single multipart header parameter.

    This follows the `WHATWG HTML Standard`_ as of 2021/06/10, matching
    the behavior of current browser and curl versions. Values are
    assumed to be UTF-8. The ``\n``, ``\r``, and ``"`` characters are
    percent encoded.

    .. _WHATWG HTML Standard:
        https://html.spec.whatwg.org/multipage/
        form-control-infrastructure.html#multipart-form-data

    :param name:
        The name of the parameter, an ASCII-only ``str``.
    :param value:
        The value of the parameter, a ``str`` or UTF-8 encoded
        ``bytes``.
    :returns:
        A string ``name="value"`` with the escaped value.

    .. versionchanged:: 2.0.0
        Matches the WHATWG HTML Standard as of 2021/06/10. Control
        characters are no longer percent encoded.

    .. versionchanged:: 2.0.0
        Renamed from ``format_header_param_html5`` and
        ``format_header_param``. The old names will be removed in
        urllib3 v2.1.0.
    r   z%0Az%0Dz%22)é
   é   é"   r   r   )r$   r%   r&   Ú	translate)r   r   s     r   Úformat_multipart_header_paramr5   O   s[   € õ< �%�ÑÔð &Ø—’˜WÑ%Ô%ˆð �OŠO ¨E°uÐ=Ð=Ñ>Ô>€EØÐÐ�eÐÐÐÐr   c                ód   — ddl }|                     dt          d¬¦  «         t          | |¦  «        S )ú„
    .. deprecated:: 2.0.0
        Renamed to :func:`format_multipart_header_param`. Will be
        removed in urllib3 v2.1.0.
    r   Nz€'format_header_param_html5' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v2.1.0.r   r   ©r!   r"   r#   r5   ©r   r   r!   s      r   Úformat_header_param_html5r:   u   óG   € ð €O€O€Oà‡M‚Mð	%õ 	Øð ñ ô ð õ )¨¨uÑ5Ô5Ð5r   c                ód   — ddl }|                     dt          d¬¦  «         t          | |¦  «        S )r7   r   Nzz'format_header_param' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v2.1.0.r   r   r8   r9   s      r   Úformat_header_paramr=   ‡   r;   r   c                  óf   — e Zd ZdZ	 	 	 ddd„Ze	 dd d„¦   «         Zd!d„Zd"d„Zd#d„Z		 	 	 dd$d„Z
dS )%ÚRequestFieldaô  
    A data container for request body parameters.

    :param name:
        The name of this request field. Must be unicode.
    :param data:
        The data/value body.
    :param filename:
        An optional filename of the request field. Must be unicode.
    :param headers:
        An optional dict-like object of headers to initially use for the field.

    .. versionchanged:: 2.0.0
        The ``header_formatter`` parameter is deprecated and will
        be removed in urllib3 v2.1.0.
    Nr   r   Údatar   r   r   Úheadersútyping.Mapping[str, str] | NoneÚheader_formatterú5typing.Callable[[str, _TYPE_FIELD_VALUE], str] | Nonec                óÚ   — || _         || _        || _        i | _        |rt	          |¦  «        | _        |�*dd l}|                     dt          d¬¦  «         || _        d S t          | _        d S )Nr   zUThe 'header_formatter' parameter is deprecated and will be removed in urllib3 v2.1.0.r   r   )
Ú_nameÚ	_filenamer@   rA   Údictr!   r"   r#   rC   r5   )Úselfr   r@   r   rA   rC   r!   s          r   Ú__init__zRequestField.__init__«   sˆ   € ð ˆŒ
Ø!ˆŒØˆŒ	Ø.0ˆŒØð 	)Ý ™=œ=ˆDŒLàÐ'ØˆOˆOˆOà�MŠMð5å"Øð	 ñ ô ð ð %5ˆDÔ!Ð!Ð!å$AˆDÔ!Ð!Ð!r   Ú	fieldnamer   Ú_TYPE_FIELD_VALUE_TUPLEr	   c                óä   — t          |t          ¦  «        r/t          |¦  «        dk    r|\  }}}n|\  }}t          |¦  «        }nd}d}|} | ||||¬¦  «        }|                     |¬¦  «         |S )a³  
        A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters.

        Supports constructing :class:`~urllib3.fields.RequestField` from
        parameter of key/value strings AND key/filetuple. A filetuple is a
        (filename, data, MIME type) tuple where the MIME type is optional.
        For example::

            'foo': 'bar',
            'fakefile': ('foofile.txt', 'contents of foofile'),
            'realfile': ('barfile.txt', open('realfile').read()),
            'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'),
            'nonamefile': 'contents of nonamefile field',

        Field names and filenames must be unicode.
        é   N)r   rC   )Úcontent_type)r$   ÚtupleÚlenr   Úmake_multipart)ÚclsrK   r   rC   r   r@   rO   Úrequest_params           r   Úfrom_tupleszRequestField.from_tuplesÇ   s™   € õ6 �e�UÑ#Ô#ð 		Ý�5‰zŒz˜QŠˆØ/4Ñ,�˜$  à!&‘�˜$Ý1°(Ñ;Ô;��àˆHØˆLØˆDà˜Ø�t hÐAQð
ñ 
ô 
ˆð 	×$Ò$°,Ð$Ñ?Ô?Ð?àÐr   c                ó.   — |                       ||¦  «        S )a‹  
        Override this method to change how each multipart header
        parameter is formatted. By default, this calls
        :func:`format_multipart_header_param`.

        :param name:
            The name of the parameter, an ASCII-only ``str``.
        :param value:
            The value of the parameter, a ``str`` or UTF-8 encoded
            ``bytes``.

        :meta public:
        )rC   )rI   r   r   s      r   Ú_render_partzRequestField._render_partô   s   € ð ×$Ò$ T¨5Ñ1Ô1Ð1r   Úheader_partsú[dict[str, _TYPE_FIELD_VALUE | None] | typing.Sequence[tuple[str, _TYPE_FIELD_VALUE | None]]c                óî   — g }t          |t          ¦  «        r|                     ¦   «         }n|}|D ]0\  }}|�)|                     |                      ||¦  «        ¦  «         Œ1d                     |¦  «        S )aO  
        Helper function to format and quote a single header.

        Useful for single headers that are composed of multiple items. E.g.,
        'Content-Disposition' fields.

        :param header_parts:
            A sequence of (k, v) tuples or a :class:`dict` of (k, v) to format
            as `k1="v1"; k2="v2"; ...`.
        Nú; )r$   rH   ÚitemsÚappendrW   Újoin)rI   rX   ÚpartsÚiterabler   r   s         r   Ú_render_partszRequestField._render_parts  s�   € ð& ˆÝ�l¥DÑ)Ô)ð 	$Ø#×)Ò)Ñ+Ô+ˆHˆHà#ˆHà#ð 	=ð 	=‰KˆD�%ØÐ Ø—’˜T×.Ò.¨t°UÑ;Ô;Ñ<Ô<Ð<øà�yŠy˜ÑÔÐr   c                ój  — g }g d¢}|D ]B}| j                              |d¦  «        r%|                     |› d| j         |         › �¦  «         ŒC| j                              ¦   «         D ]%\  }}||vr|r|                     |› d|› �¦  «         Œ&|                     d¦  «         d                     |¦  «        S )z=
        Renders the headers for this request field.
        )úContent-DispositionúContent-TypeúContent-LocationFz: z
)rA   Úgetr]   r\   r^   )rI   ÚlinesÚ	sort_keysÚsort_keyÚheader_nameÚheader_values         r   Úrender_headerszRequestField.render_headers#  så   € ð ˆàOÐOÐOˆ	Ø!ð 	Fð 	FˆHØŒ|×Ò ¨%Ñ0Ô0ð FØ—’ ÐDÐD¨D¬L¸Ô,BÐDÐDÑEÔEÐEøà)-¬×);Ò);Ñ)=Ô)=ð 	Cð 	CÑ%ˆK˜Ø )Ð+Ð+Øð CØ—L’L KÐ!AÐ!A°<Ð!AÐ!AÑBÔBÐBøà�Š�VÑÔÐØ�{Š{˜5Ñ!Ô!Ð!r   Úcontent_dispositionrO   Úcontent_locationÚNonec           	     óÀ   — |pdd                      d|                      d| j        fd| j        ff¦  «        g¦  «        z   }|| j        d<   || j        d<   || j        d<   d	S )
aó  
        Makes this request field into a multipart request field.

        This method overrides "Content-Disposition", "Content-Type" and
        "Content-Location" headers to the request parameter.

        :param content_disposition:
            The 'Content-Disposition' of the request body. Defaults to 'form-data'
        :param content_type:
            The 'Content-Type' of the request body.
        :param content_location:
            The 'Content-Location' of the request body.

        z	form-datar[   Ú r   r   rc   rd   re   N)r^   ra   rF   rG   rA   )rI   rm   rO   rn   s       r   rR   zRequestField.make_multipart6  s†   € ð(  3ÐA°kÀTÇYÂYàØ×"Ò"Ø˜dœjÐ)¨J¸¼Ð+GÐHñô ðñF
ô F
ñ 
Ðð /BˆŒÐ*Ñ+Ø'3ˆŒ�^Ñ$Ø+;ˆŒÐ'Ñ(Ð(Ð(r   )NNN)
r   r   r@   r   r   r   rA   rB   rC   rD   r   )rK   r   r   rL   rC   rD   r	   r?   ©r   r   r   r   r	   r   )rX   rY   r	   r   )r	   r   )rm   r   rO   r   rn   r   r	   ro   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rJ   ÚclassmethodrU   rW   ra   rl   rR   r   r   r   r?   r?   ™   sÔ   € € € € € ðð ð*  $Ø37ØRVðBð Bð Bð Bð Bð8 ð
 SWð	*ð *ð *ð *ñ „[ð*ðX2ð 2ð 2ð 2ð  ð  ð  ð  ð>"ð "ð "ð "ð* +/Ø#'Ø'+ð	<ð <ð <ð <ð <ð <ð <r   r?   )r   )r   r   r   r   r	   r   rr   )Ú
__future__r   Úemail.utilsr+   r   ÚtypingÚUnionr   r%   r   rP   rL   r   r/   r5   r:   r=   r?   r   r   r   ú<module>r|      s)  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€à”L  e Ô,Ð Ø œ,ØØ	ˆ#Ð Ð
 Ô!Ø	ˆ#Ð  #Ð
%Ô&ð(ôÐ ð *Dðð ð ð ð ð -ð -ð -ð -ð`#ð #ð #ð #ðL6ð 6ð 6ð 6ð$6ð 6ð 6ð 6ð$|<ð |<ð |<ð |<ð |<ñ |<ô |<ð |<ð |<ð |<r   