+
    )O|jJP  ã                  óð  a € 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t
 ^ RIHtHtHtHtHtHt ^RIHtHtHtHtHt ^RIHt ^RIHt ^RIHtHt ^R	IH t  ]'       d   ^ R
IH!t! . R?Ot"R R lt#]]$]]$]
]$,          3,          .]%3,          t&]R@,          t' RR0t(0 RAmt) ! R R]*4      t+ ! R R]*4      t, ! R R]-4      t. ! R R]4      t/R R lt0R R lt1RBR R llt2RR R R! R"R# R$]Pf                  R%]Pf                  R&]Ph                  R']Pf                  R(R) /t5R*]6R+&   R, R- lt7R. R/ lt8R0 R1 lt9R2 R3 lt:R4 R5 lt;]Px                  R6 R7 l4       t=R8 R9 lt> ! R: R4      t?R; R< lt@R= R> ltAR# )Cé    )ÚannotationsN)ÚSet)ÚTYPE_CHECKINGÚCallableÚLiteralÚ	TypedDictÚUnionÚcast)Ú
MarkerAtomÚ
MarkerListÚOpÚValueÚVariable)Úparse_marker)ÚParserSyntaxError)ÚInvalidSpecifierÚ	Specifier)Úcanonicalize_name)ÚMappingÚEnvironmentÚInvalidMarkerÚMarkerÚUndefinedComparisonÚUndefinedEnvironmentNamec               ó   € V ^8„  d   QhRR/# )é   Úreturnz	list[str]© )Úformats   "ÚJC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\packaging/markers.pyÚ__annotate__r!   #   s   € ÷ ñ �ñ ó    c                 ó   € \         # ©N)Ú__all__r   r"   r    Ú__dir__r&   #   s   € Ü€Nr"   ÚextrasÚdependency_groupsc                  ó   € ] tR t^=tRtRtR# )r   zßRaised when attempting to create a :class:`Marker` from invalid input.

This error indicates that the given marker string does not conform to the
:ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.
r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   r"   r    r   r   =   s   † õr"   c                  ó   € ] tR t^EtRtRtR# )r   z×Raised when evaluating an unsupported marker comparison.

This can happen when marker values are compared as versions but do not
conform to the :ref:`specification of version specifiers
<pypug:version-specifiers>`.
r   Nr*   r   r"   r    r   r   E   s   † õr"   c                  ó   € ] tR t^NtRtRtR# )r   a±  Raised when evaluating a marker that references a missing environment key.

Subclasses :class:`KeyError` so that code catching the bare ``KeyError`` that
a missing environment lookup historically produced keeps working.

.. versionchanged:: 26.3
    Now subclasses :class:`KeyError` (was :class:`ValueError`) and is raised by
    :meth:`Marker.evaluate` for missing environment keys, where a bare
    ``KeyError`` was raised before.
r   Nr*   r   r"   r    r   r   N   s   † õ	r"   c                  óž   € ] tR t^[t$ RtR]R&    R]R&    R]R&    R]R&    R]R&    R]R&    R]R	&    R]R
&    R]R&    R]R&    R]R&   RtR# )r   zx
A dictionary that represents a Python environment as captured by
:func:`default_environment`. All fields are required.
ÚstrÚimplementation_nameÚimplementation_versionÚos_nameÚplatform_machineÚplatform_releaseÚplatform_systemÚplatform_versionÚpython_full_versionÚplatform_python_implementationÚpython_versionÚsys_platformr   N)r+   r,   r-   r.   r/   Ú__annotations__r0   r   r"   r    r   r   [   s�   ‡ ñð
 ÓØ>àÓðð
 ƒLðð
 Óðð Óðð Óðð Óðð Óðð %(Ó'ðð ÓØ9àÓór"   c               ó    € V ^8„  d   QhRRRR/# )r   ÚresultzMarkerList | MarkerAtom | strr   r   )r   s   "r    r!   r!   ¨   s   € ÷ ñ Ø)ðà"ñr"   c                óæ  € \        V \        4      '       d   V  Uu. uF  p\        V4      NK  	  up# \        V \        4      '       g   V # V w  r#p\        V\        4      '       dI   VP
                  R 8X  d8   \        V\        4      '       d"   \        VP
                  4      p\        V4      pM½\        V\        4      '       dI   VP
                  R 8X  d8   \        V\        4      '       d"   \        VP
                  4      p\        V4      pM_\        V\        4      '       dJ   VP
                  \        9   d5   \        V\        4      '       d   \        \        VP
                  4      4      pW#V3# u upi )Úextra)	Ú
isinstanceÚlistÚ_normalize_extrasÚtupler   Úvaluer   r   ÚMARKERS_ALLOWING_SET)rB   ÚrÚlhsÚopÚrhsÚnormalized_extras   &     r    rG   rG   ¨   s  € ô �&œ$×ÒÙ.4Ó5©f¨Ô! !Ö$©fÑ5Ð5Ü�fœe×$Ò$Øˆà�L€CˆSÜ�#”x× Ò  S§Y¡Y°'Ô%9¼jÈÌe×>TÒ>TÜ,¨S¯Y©YÓ7ÐÜÐ$Ó%‰Ü	�Cœ×	"Ò	" s§y¡y°GÔ';Ä
È3ÔPU×@VÒ@VÜ,¨S¯Y©YÓ7ÐÜÐ$Ó%‰ä�3œ×!Ò!Ø�I‰IÔ-Ô-Ü�sœE×"Ò"ô Ô% c§i¡iÓ0Ó1ˆØ�Cˆ<Ðùò/ 6s   ›E.c               ó    € V ^8„  d   QhRRRR/# )r   Úresultsr   r   r   )r   s   "r    r!   r!   Æ   s   € ÷ 3ñ 3 Zð 3°Jñ 3r"   c                óB   € V  Uu. uF  p\        V4      NK  	  up# u upi )z
Normalize extra values.
)rG   )rQ   rK   s   & r    Ú_normalize_extra_valuesrS   Æ   s"   € ñ
 +2Ó2©' QÔ˜aÖ ©'Ñ2Ð2ùÒ2s   …c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmarkerzlist[str] | MarkerAtom | strÚfirstzbool | Noner   r4   r   )r   s   "r    r!   r!   Î   s$   € ÷ ñ Ø(ðØ1<ðàñr"   c                óF  € \        V \        \        \        34      '       g   Q h\        V \        4      '       dH   \	        V 4      ^8X  d8   \        V ^ ,          \        \        34      '       d   \        V ^ ,          VR7      # \        V \        4      '       dB   R V  4       pV'       d   RP                  V4      # RRP                  V4      ,           R,           # \        V \        4      '       d/   RP                  V  Uu. uF  q3P                  4       NK  	  up4      # V # u upi )é   ©rV   c              3  ó<   "  € T F  p\        VR R7      x € K  	  R# 5i)FrY   N)Ú_format_marker)Ú.0Úms   & r    Ú	<genexpr>Ú!_format_marker.<locals>.<genexpr>Ý   s   é € Ð@¹°A” ¨×/Ñ/»ùs   ‚Ú Ú(Ú))rE   rF   rH   r4   Úlenr[   ÚjoinÚ	serialize)rU   rV   Úinnerr]   s   &&  r    r[   r[   Î   sØ   € ô �fœt¤U¬CÐ0×1Ò1Ð1Ð1ô
 	�6œ4× Ò Ü�‹K˜1ÔÜ�v˜a•y¤4¬ -×0Ò0ä˜f Q�i¨uÔ5Ð5ä�&œ$×ÒÙ@¹Ó@ˆßØ—8‘8˜E“?Ð"à˜Ÿ™ %›Õ(¨3Õ.Ð.Ü	�FœE×	"Ò	"Ø�x‰x±Ó7±¨1Ÿ™ž±Ñ7Ó8Ð8àˆùò 8s   Ã=DÚinc                ó
   € W9   # r$   r   ©rL   rN   s   &&r    Ú<lambda>rj   é   s   € ˜3š:r"   znot inc                ó
   € W9  # r$   r   ri   s   &&r    rj   rj   ê   s   € ˜sš~r"   Ú<c                ó   € R # ©Fr   ©Ú_lhsÚ_rhss   &&r    rj   rj   ë   ó   € ™Er"   z<=z==z!=z>=Ú>c                ó   € R # rn   r   ro   s   &&r    rj   rj   ð   rr   r"   zdict[str, Operator]Ú
_operatorsc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   rL   r4   rM   r   rN   ústr | AbstractSet[str]Úkeyr   Úboolr   )r   s   "r    r!   r!   ô   s0   € ÷ ñ �#ð ˜2ð Ð$:ð ÀCð ÈDñ r"   c          	     ó  € VP                  4       pV\        9   d$    \        V V 24      pVP                  V R R7      # \
        P                  V4      pVf   \        RV: RV : RV: R24      hV! W4      #   \         d     LFi ; i)T)Úprereleasesz
Undefined z on z and Ú.)re   ÚMARKERS_REQUIRING_VERSIONr   Úcontainsr   ru   Úgetr   )rL   rM   rN   rx   Úop_strÚspecÚopers   &&&$   r    Ú_eval_oprƒ   ô   s”   € Ø�\‰\‹^€FØ
Ô'Ô'ð	8Ü ˜x¨ uÐ-Ó.ˆDð —=‘= °$�=Ó7Ð7ä&ŸN™N¨6Ó2€DØ‚|Ü! J¨r©f°D¸¹¸uÀSÁGÈ1Ð"MÓNÐNá�‹>Ðøô  ô 	Ùð	ús   �A8 Á8BÂBc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rL   r4   rN   rw   rx   r   z"tuple[str, str | AbstractSet[str]]r   )r   s   "r    r!   r!     s,   € ÷ ñ Ø	ðØ)ðØ03ðà'ñr"   c                ó  € VR 8X  d!   \        V\        4      '       g   Q R4       hW3# V\        9   dS   \        V\        4      '       d   \        V 4      \        V4      3# \        V 4      V Uu0 uF  p\        V4      kK  	  up3# W3# u upi )rD   zextra value must be a string)rE   r4   rJ   r   )rL   rN   rx   Úvs   &&& r    Ú
_normalizer‡     sŒ   € ð ˆg„~Ü˜#œs×#Ò#ÐCÐ%CÓCÐ#àˆzÐØ
Ô"Ô"Ü�cœ3×ÒÜ% cÓ*Ô,=¸cÓ,BÐCÐCä% cÓ*É3Ó,OÉ3ÀaÔ->¸qÖ-AÉ3Ñ,OÐPÐPð ˆ8€Oùò -Ps   Á-Bc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úenvironmentú!dict[str, str | AbstractSet[str]]rx   r4   r   rw   r   )r   s   "r    r!   r!     s$   € ÷ 6ñ 6Ø2ð6Ø9<ð6àñ6r"   c                óJ   €  W,          #   \          d    \        T4      R hi ; ir$   )ÚKeyErrorr   )r‰   rx   s   &&r    Ú_lookup_environmentr�     s,   € ð6ØÕÐøÜô 6Ü& sÓ+°Ð5ð6ús   ‚
 Š"c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmarkersr   r‰   rŠ   r   ry   r   )r   s   "r    r!   r!   #  s$   € ÷ $-ñ $-Øð$-Ø&Gð$-à	ñ$-r"   c           
     ó*  € . .pV  EFV  p\        V\        4      '       d$   VR,          P                  \        W14      4       K=  \        V\        4      '       dÓ   Vw  rEp\        V\
        4      '       d%   VP                  p\        W4      pVP                  p	M#VP                  pVP                  p\        W4      p	\        V\        4      '       g&   \        RV: RV RVP                  4       : R24      h\        W‰VR7      w  r‰VR,          P                  \        W…W—R7      4       EK%  VR8X  d   VP                  . 4       EK@  VR8X  d   EKJ  \        RV: 24      h	  \        ;QJ d    R	 V 4       F  '       g   K   R
# 	  R# ! R	 V 4       4      # )rX   zSet-valued marker z= can only be used with the membership form (e.g. "<name>" in z-); it cannot appear on the left-hand side of r|   )rx   ÚorÚandzUnexpected marker c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir$   )Úall)r\   Úitems   & r    r^   Ú$_evaluate_markers.<locals>.<genexpr>G  s   é € Ð,¡V˜TŒs�4�yˆy£Vùs   ‚TFéÿÿÿÿ)rE   rF   ÚappendÚ_evaluate_markersrH   r   rI   r�   r4   r   re   r‡   rƒ   Ú	TypeErrorÚany)
r�   r‰   ÚgroupsrU   rL   rM   rN   Úenvironment_keyÚ	lhs_valueÚ	rhs_values
   &&        r    r™   r™   #  s`  € ð !#˜t€FäˆÜ�fœd×#Ò#Ø�2�J×ÑÔ/°ÓDÖEÜ˜¤×&Ò&Ø!‰LˆC�Sä˜#œx×(Ò(Ø"%§)¡)�Ü/°ÓM�	ØŸI™I‘	àŸI™I�	Ø"%§)¡)�Ü/°ÓM�	ä˜i¬×-Ò-Ü)Ø(¨Ñ(;ð <Bà&Ð'ð (Ø!Ÿ|™|›~Ñ0°ð3óð ô $.¨iÈÔ#XÑ ˆIØ�2�J×Ñœh y°iÔU×VØ�tŒ^Ø�M‰M˜"×Ø�uŒ_ÚäÐ0°±
Ð;Ó<Ð<ñ; ÷> ‹3Ñ,¡VÓ,�3Œ3Ð,Š3Ð,ˆ3Ñ,¡VÓ,Ó,Ð,r"   c               ó    € V ^8„  d   QhRRRR/# )r   Úinfozsys._version_infor   r4   r   )r   s   "r    r!   r!   J  s   € ÷ ñ Ð0ð °Sñ r"   c                óÎ   € V P                    R V P                   R V P                   2pV P                  pVR8w  d*   W^ ,          \	        V P
                  4      ,           ,          pV# )r|   Úfinal)ÚmajorÚminorÚmicroÚreleaselevelr4   Úserial)r¡   ÚversionÚkinds   &  r    Ú_format_full_versionr«   J  sU   € Ø—‘�˜A˜dŸj™j˜\¨¨4¯:©:¨,Ð7€GØ×Ñ€DØˆw„Ø˜•7œS §¡Ó-Õ-Õ-ˆØ€Nr"   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r    r!   r!   S  s   € ÷ ñ  [ñ r"   c                 ó  € \        \        P                  P                  4      p \        P                  P                  pRVRV R\
        P                  R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R	\        P                  ! 4       R
RP                  \        P                  ! 4       R,          4      R\        P                  /# )aB  Build the default marker environment for the current Python process.

The values are derived from process-constant data (the running interpreter
and the host platform), so this is cached and built only once. The result is
shared between callers and must never be mutated; :func:`default_environment`
returns a fresh copy.
r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r|   :Nr   Nr?   )r«   ÚsysÚimplementationr©   ÚnameÚosÚplatformÚmachineÚreleaseÚsystemr>   Úpython_implementationrd   Úpython_version_tuple)Úiverr5   s     r    Ú_cached_default_environmentrº   R  sÁ   € ô  ¤× 2Ñ 2× :Ñ :Ó;€DÜ×,Ñ,×1Ñ1ÐàÐ2Ø  $Ø”2—7‘7ØœH×,Ò,Ó.ØœH×,Ò,Ó.Øœ8Ÿ?š?Ó,ØœH×,Ò,Ó.Øœx×6Ò6Ó8Ø(¬(×*HÒ*HÓ*JØ˜#Ÿ(™(¤8×#@Ò#@Ó#BÀ2Õ#FÓGØœŸ™ðð r"   c               ó   € V ^8„  d   QhRR/# r­   r   )r   s   "r    r!   r!   l  s   € ÷ Dñ D˜[ñ Dr"   c                 ó<   € \        R\        \        4       4      4      # )aU  Return the default marker environment for the current Python process.

This is the base environment used by :meth:`Marker.evaluate`. A fresh copy
is returned on every call so callers may freely mutate the result; a shallow
copy suffices because all values are immutable strings.

.. versionchanged:: 26.3
    The environment is computed once per process and cached, since it is
    derived from process-constant data. Patching ``platform``/``sys``/``os``
    after the first call has no effect; pass an explicit ``environment`` to
    :meth:`Marker.evaluate` to evaluate against different values.
r   )r
   Údictrº   r   r"   r    Údefault_environmentr¾   l  s   € ô �œtÔ$?Ó$AÓBÓCÐCr"   c                  ó°   € ] tR tRtRtRtR R lt]R R l4       tR R lt	R	 R
 lt
R R ltR R ltR R ltR R ltR R ltR R ltRR R lltRtR# )r   i|  aº  Represents a parsed dependency marker expression.

Marker expressions are parsed according to the
:ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.

:param marker: The string representation of a marker expression.
:raises InvalidMarker: If ``marker`` cannot be parsed.

Instances are safe to serialize with :mod:`pickle`. They use a stable
format so the same pickle can be loaded in future packaging releases.

.. versionchanged:: 26.2

    Added a stable pickle format. Pickles created with packaging 26.2+ can
    be unpickled with future releases.  Backward compatibility with pickles
    from packaging < 26.2 is supported but may be removed in a future
    release.
c               ó    € V ^8„  d   QhRRRR/# )r   rU   r4   r   ÚNoner   )r   s   "r    r!   ÚMarker.__annotate__’  s   € ÷ /ñ /˜sð / tñ /r"   c                	ó˜   € . V n          \        \        V4      4      V n         R #   \         d   p\	        \        T4      4      ThR p?ii ; ir$   )Ú_markersrS   Ú_parse_markerr   r   r4   )ÚselfrU   Úes   && r    Ú__init__ÚMarker.__init__’  sD   € ð %'ˆŒð	/Ü3´MÀ&Ó4IÓJˆDŽMøô" !ô 	/Ü¤ A£Ó'¨QÐ.ûð	/ús   ‰$ ¤A	¯AÁA	c               ó    € V ^8„  d   QhRRRR/# )r   r�   r   r   r   r   )r   s   "r    r!   rÂ   ±  s   € ÷ ñ  Jð °6ñ r"   c                ó4   € V P                  V 4      pWn        V# )z‚Create a Marker instance from a pre-parsed marker tree.

This avoids re-parsing serialised marker strings when combining markers.
)Ú__new__rÄ   )Úclsr�   Únews   && r    Ú_from_markersÚMarker._from_markers°  s   € ð �k‰k˜#ÓˆØŒØˆ
r"   c               ó   € V ^8„  d   QhRR/# ©r   r   r4   r   )r   s   "r    r!   rÂ   º  s   € ÷ -ñ -˜ñ -r"   c                	ó,   € \        V P                  4      # r$   )r[   rÄ   ©rÆ   s   &r    Ú__str__ÚMarker.__str__º  s   € Ü˜dŸm™mÓ,Ð,r"   c               ó   € V ^8„  d   QhRR/# rÒ   r   )r   s   "r    r!   rÂ   ½  s   € ÷ =ñ =˜#ñ =r"   c                	óP   € R V P                   P                   R\        V 4      : R2# )rl   ra   z)>)Ú	__class__r+   r4   rÔ   s   &r    Ú__repr__ÚMarker.__repr__½  s&   € Ø�4—>‘>×*Ñ*Ð+¨1¬S°«Y©M¸Ð<Ð<r"   c               ó   € V ^8„  d   QhRR/# )r   r   Úintr   )r   s   "r    r!   rÂ   À  s   € ÷ ñ ˜#ñ r"   c                	ó*   € \        \        V 4      4      # r$   )Úhashr4   rÔ   s   &r    Ú__hash__ÚMarker.__hash__À  s   € Ü”C˜“I‹Ðr"   c               ó    € V ^8„  d   QhRRRR/# )r   ÚotherÚobjectr   ry   r   )r   s   "r    r!   rÂ   Ã  s   € ÷ 'ñ '˜Fð ' tñ 'r"   c                	óh   € \        V\        4      '       g   \        # \        V 4      \        V4      8H  # r$   )rE   r   ÚNotImplementedr4   ©rÆ   rã   s   &&r    Ú__eq__ÚMarker.__eq__Ã  s(   € Ü˜%¤×(Ò(Ü!Ð!ä�4‹yœC ›JÑ&Ð&r"   c               ó   € V ^8„  d   QhRR/# rÒ   r   )r   s   "r    r!   rÂ   É  s   € ÷ ñ ˜cñ r"   c                	ó   € \        V 4      # r$   )r4   rÔ   s   &r    Ú__getstate__ÚMarker.__getstate__É  s   € ô �4‹yÐr"   c               ó    € V ^8„  d   QhRRRR/# )r   Ústaterä   r   rÁ   r   )r   s   "r    r!   rÂ   Î  s   € ÷ Añ A &ð A¨Tñ Ar"   c                	ó.  € \        V\        4      '       d    \        \        V4      4      V n        R# \        V\        4      '       d/   RV9   d(   VR,          p\        V\        4      '       d	   W0n        R# \        V\        4      '       dY   \        V4      ^8X  dI   Vw  rE\        V\        4      '       d/   RV9   d(   VR,          p\        V\        4      '       d	   W0n        R# \        R V: 24      h  \
         d   p\        R T: 24      ThRp?ii ; i)zCannot restore Marker from NrÄ   )rE   r4   rS   rÅ   rÄ   r   rš   r½   rF   rH   rc   )rÆ   rï   Úexcr�   Ú_Ú	slot_dicts   &&    r    Ú__setstate__ÚMarker.__setstate__Î  së   € Ü�eœS×!Ò!ðRÜ 7¼ÀeÓ8LÓ M�”ñ Ü�eœT×"Ò" z°UÔ':à˜JÕ'ˆGÜ˜'¤4×(Ò(Ø '”ÙÜ�eœU×#Ò#¬¨E«
°a¬à ‰LˆAÜ˜)¤T×*Ò*¨z¸YÔ/FØ# JÕ/�Ü˜g¤t×,Ò,Ø$+”MÙÜÐ5°e±YÐ?Ó@Ð@øô# %ô RÜÐ"=¸e¹YÐ GÓHÈcÐQûðRús   ˜C4 Ã4DÃ?DÄDc               ó    € V ^8„  d   QhRRRR/# ©r   rã   r   r   r   )r   s   "r    r!   rÂ   æ  s   € ÷ Jñ J˜Vð J¨ñ Jr"   c                óŠ   € \        V\        4      '       g   \        # V P                  V P                  RVP                  .4      # )zHCombine this marker with another using ``and``.

.. versionadded:: 26.1
r’   ©rE   r   ræ   rÏ   rÄ   rç   s   &&r    Ú__and__ÚMarker.__and__æ  s7   € ô
 ˜%¤×(Ò(Ü!Ð!Ø×!Ñ! 4§=¡=°%¸¿¹Ð"HÓIÐIr"   c               ó    € V ^8„  d   QhRRRR/# r÷   r   )r   s   "r    r!   rÂ   ï  s   € ÷ Iñ I˜Fð I vñ Ir"   c                óŠ   € \        V\        4      '       g   \        # V P                  V P                  RVP                  .4      # )zGCombine this marker with another using ``or``.

.. versionadded:: 26.1
r‘   rù   rç   s   &&r    Ú__or__ÚMarker.__or__ï  s7   € ô
 ˜%¤×(Ò(Ü!Ð!Ø×!Ñ! 4§=¡=°$¸¿¹Ð"GÓHÐHr"   Nc               ó$   € V ^8„  d   QhRRRRRR/# )r   r‰   z+Mapping[str, str | AbstractSet[str]] | NoneÚcontextÚEvaluateContextr   ry   r   )r   s   "r    r!   rÂ   ø  s(   € ÷ 2
ñ 2
à@ð2
ð !ð2
ð 
ñ	2
r"   c                óF  € \        R\        4       4      pVR8X  d   VR\        4       R\        4       /,          pMVR8X  d   RVR&   Ve;   W1,          pRV9   d,   \        RVR,          4      pV'       d   \        V4      MRVR&   \	        V P
                  \        V4      4      # )	a  Evaluate a marker.

Return the boolean from evaluating this marker against the environment.
The environment is determined from the current Python process unless
passed in explicitly.

:param environment: Mapping containing keys and values to override the
   detected environment.
:param EvaluateContext context: The context in which the marker is
    evaluated, which influences what marker names are considered valid.
    Accepted values are ``"metadata"`` (for core metadata; default),
    ``"lock_file"``, and ``"requirement"`` (i.e. all other situations).
:raises UndefinedComparison: If the marker uses a comparison on values
    that are not valid versions per the :ref:`specification of version
    specifiers <pypug:version-specifiers>`.
:raises UndefinedEnvironmentName: If the marker references a value that
    is missing from the evaluation environment.
:returns: ``True`` if the marker matches, otherwise ``False``.

.. versionchanged:: 25.0
    Added the ``context`` parameter, which influences which marker names
    are considered valid.
rŠ   Ú	lock_filer'   r(   ÚmetadataÚ rD   z
str | None)r
   r¾   Ú	frozensetr   r™   rÄ   Ú_repair_python_full_version)rÆ   r‰   r  Úcurrent_environmentrD   s   &&&  r    ÚevaluateÚMarker.evaluateø  s´   € ô8 #Ø/Ô1DÓ1Fó
Ðð �kÔ!ØØœ)›+Ø#¤Y£[ð$õ Ñð ˜
Ô"Ø+-Ð Ñ(àÒ"ØÕ.ÐØÐ-Ô-ô ˜\Ð+>¸wÕ+GÓH�ßKPÔ/@ÀÔ/GÐVXÐ# GÑ,ä Ø�M‰MÔ6Ð7JÓKó
ð 	
r"   )rÄ   )Nr  )r+   r,   r-   r.   r/   Ú	__slots__rÈ   ÚclassmethodrÏ   rÕ   rÚ   rà   rè   rì   rô   rú   rþ   r
  r0   r   r"   r    r   r   |  s\   † ñð& €Iõ/ð< ôó ðõ-õ=õõ'õõ
Aõ0JõI÷2
ó 2
r"   c               ó    € V ^8„  d   QhRRRR/# )r   r<   r4   r   r   )r   s   "r    r!   r!   -  s   € ÷ ñ °Sð ¸Sñ r"   c                ó>   € V P                  R4      '       d   V  R2# V # )úw
Work around platform.python_version() returning something that is not PEP 440
compliant for non-tagged Python builds.
Ú+Úlocal)Úendswith)r<   s   &r    Ú_pep440_python_full_versionr  -  s)   € ð
 ×#Ñ# C×(Ò(Ø%Ð& eÐ,Ð,ØÐr"   c               ó    € V ^8„  d   QhRRRR/# )r   ÚenvrŠ   r   r   )r   s   "r    r!   r!   7  s   € ÷ 	ñ 	Ø	*ð	à&ñ	r"   c                óH   € \        RV R,          4      p\        V4      V R&   V # )r  r4   r<   )r
   r  )r  r<   s   & r    r  r  7  s-   € ô ˜u cÐ*?Õ&@ÓAÐÜ!<Ð=PÓ!Q€CÐÑØ€Jr"   )r   r  r   r   r   r   r¾   )r  r  Úrequirement>   r>   r9   r<   r6   )T)BÚ__conditional_annotations__Ú
__future__r   Ú	functoolsÚoperatorr²   r³   r¯   Úcollections.abcr   ÚAbstractSetÚtypingr   r   r   r   r	   r
   Ú_parserr   r   r   r   r   r   rÅ   Ú
_tokenizerr   Ú
specifiersr   r   Úutilsr   r   r%   r&   r4   ry   ÚOperatorr  rJ   r}   Ú
ValueErrorr   r   rŒ   r   r   rG   rS   r[   ÚeqÚneru   r@   rƒ   r‡   r�   r™   r«   Úcacherº   r¾   r   r  r  )r  s   @r    Ú<module>r)     ss  øð÷
 #Ð "ã Û Û 	Û Û 
Ý .ß K× Kç @Õ @Ý 2Ý )ß 3Ý $çÝ'ò€õð �S˜%  [°Õ%5Ð 5Õ6Ð7¸Ð=Õ>€ØÐ@ÕA€ð	ð !Ð"5Ð6Ð òÐ ô�Jô ô˜*ô ô
˜xô 
ôJ�)ô JõZõ<3÷ð6 	Ñ
%ØÑ-ØÑ	!Øˆ(�+‰+Øˆ(�+‰+Øˆ(�+‰+Øˆ(�+‰+ØÑ	!ð	#€
Ðó 	õõ"õ*6õ$-õNð ‡�ôó ðõ2D÷ n
ñ n
õb÷	r"   