ó
    T=Œj”^  ã                  óV  • % S SK Jr  S SKrS SKrS SKrS SKJrJr  SSKJ	r	J
r
JrJrJrJrJrJrJr  SSKJrJr  SSKJr  SS	KJrJrJrJrJr  \(       a  S S
KJrJrJ r   SSK!J"r"J#r#  SSK$J%r%  Sr&S\'S'   SS jr( " S S\\\	\
4   5      r) " S S\\\	\
4   5      r*          SS jr+g)é    )ÚannotationsN)ÚTYPE_CHECKINGÚGenericé   )	ÚCTÚKTÚRTÚDirectedGraphÚIterableViewÚIteratorMappingÚRequirementInformationÚStateÚbuild_iter_viewé   )ÚAbstractResolverÚResult)Ú	Criterion)ÚInconsistentCandidateÚRequirementsConflictedÚResolutionImpossibleÚResolutionTooDeepÚResolverException)Ú
CollectionÚIterableÚMapping)ÚAbstractProviderÚ
Preference)ÚBaseReportergš™™™™™¹?ÚfloatÚ_OPTIMISTIC_BACKJUMPING_RATIOc                óÎ  • U R                   nUR                  5        VVs0 s H  u  p#[        U5      U_M     nnnS U[        S 5      '   [        5       nUR	                  S 5        S 1nU R
                  R                  5        H†  u  px[        U R
                  XtU5      (       d  M#  Xu;  a  UR	                  U5        UR                  5        H9  n	 U[        U	5         n
X¥;  a  UR	                  U
5        UR                  X§5        M;     Mˆ     [        UR                  5        VVs0 s H  u  p#X&;   d  M  X#_M     snnUU R
                  S9$ s  snnf ! [         a     M“  f = fs  snnf )N)ÚmappingÚgraphÚcriteria)r"   ÚitemsÚidr
   Úaddr$   Ú_has_route_to_rootÚiter_parentÚKeyErrorÚconnectr   )Ústater"   ÚkÚvÚall_keysr#   Ú	connectedÚkeyÚ	criterionÚpÚpkeys              Úo/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/resolution.pyÚ_build_resultr6   &   s4  € Ø�m‰m€GØ;B¿=¹=¼?Ô%Kº?±4°1¤b¨£e¨Q¢h¹?€HÑ%KØ€HŒR�‹XÑä&3£o€EØ	‡I�Iˆd„Oà!% €IØŸ.™.×.Ñ.Ö0‰ˆÜ! %§.¡.°#À×KÑKÙØÓØ�I‰I�cŒNØ×&Ñ&Ö(ˆAðØ¤ 1£‘�ð Ó Ø—	‘	˜$”Ø�M‰M˜$Ö$ó )ñ 1ô Ø")§-¡-¤/ÔD¢/™$˜!°Q±^“�’¡/ÒDØØ—‘ñð ùó+ &Løô ó Úðüó Es#    E
ÃEÄ#E!
Ä2E!
Å
EÅEc                  óü   • \ rS rSrSr      SS jr\SS j5       rSS jr        SS jr	      SS jr
SS jr      SS	 jrSS
 jrSS jr    SS jrSS jrSS jrSS jr    SS jrS S jrSrg)!Ú
ResolutionéD   z¡Stateful resolution object.

This is designed as a one-off object that holds information to kick start
the resolution process, and holds the results afterwards.
c                ó\   • Xl         X l        / U l        [        U l        S U l        S U l        g ©N)Ú_pÚ_rÚ_statesr    Ú_optimistic_backjumping_ratioÚ_save_statesÚ_optimistic_start_round)ÚselfÚproviderÚreporters      r5   Ú__init__ÚResolution.__init__K   s0   € ð
 ŒØŒØ02ˆŒô .KˆÔ*Ø<@ˆÔØ37ˆÕ$ó    c                ó^   •  U R                   S   $ ! [         a  n[        S5      UeS nAff = f)Néÿÿÿÿr,   )r>   Ú
IndexErrorÚAttributeError)rB   Úes     r5   r,   ÚResolution.stateY   s3   € ð	1Ø—<‘< Ñ#Ð#øÜó 	1Ü  Ó)¨qÐ0ûð	1ús   ‚ ‘
,›'§,c                óè   • U R                   S   n[        UR                  R                  5       UR                  R                  5       UR
                  SS S9nU R                   R                  U5        g)zqPush a new state into history.

This new state will be used to hold resolution results of the next
coming round.
rI   N©r"   r$   Úbacktrack_causes)r>   r   r"   Úcopyr$   rP   Úappend)rB   Úbaser,   s      r5   Ú_push_new_stateÚResolution._push_new_state`   s^   € ð �|‰|˜BÑˆÜØ—L‘L×%Ñ%Ó'Ø—]‘]×'Ñ'Ó)Ø!×2Ñ2±1Ð5ñ
ˆð
 	�‰×Ñ˜EÕ"rG   c           
     ón  • U R                   R                  X#S9  U R                  R                  US9nUR	                  U5      nU(       a  [        UR                  5      nO/ nU R                  R                  U[        U[        R                  " S5      XB/05      [        U[        R                  " S5      XF05      S9nU(       a0  [        UR                  5      nUR                  [        X#5      5        O[        X#5      /n[        [!        U5      UUS9nUR"                  (       d  [%        U5      eXQU'   g )N)ÚrequirementÚparent)Úrequirement_or_candidateÚiter_requirementÚincompatibilities©Ú
identifierÚrequirementsr[   ©Ú
candidatesÚinformationr[   )r=   Úadding_requirementr<   ÚidentifyÚgetÚlistr[   Úfind_matchesr   ÚoperatorÚmethodcallerÚ
attrgetterra   rR   r   r   r   r`   r   )	rB   r$   rW   rX   r]   r2   r[   Úmatchesra   s	            r5   Ú_add_to_criteriaÚResolution._add_to_criterian   s$  € ð 	�‰×"Ñ"¨{Ð"ÑJà—W‘W×%Ñ%¸{Ð%ÐKˆ
Ø—L‘L Ó,ˆ	ÞÜ $ Y×%@Ñ%@Ó AÑà "Ðà—'‘'×&Ñ&Ø!Ü(ØÜ×%Ò%Ð&8Ó9Ø˜]Ð+óô
 .ØÜ×#Ò#Ð$7Ó8ØÐ/óð 'ð 
ˆö Ü˜y×4Ñ4Ó5ˆKØ×ÑÔ5°kÓJÕKä1°+ÓFÐGˆKäÜ& wÓ/Ø#Ø/ñ
ˆ	ð
 ×#×#Ü(¨Ó3Ð3Ø(�ÒrG   c           
     ó<  • U(       d  gUR                  5        H{  u  p4[        UR                  UR                   Vs/ s H=  nUR                  b+  U R
                  R                  UR                  5      U;  d  M;  UPM?     snUR                  5      X'   M}     gs  snf )a/  Remove information from parents of criteria.

Concretely, removes all values from each criterion's ``information``
field that have one of ``parents`` as provider of the requirement.

:param criteria: The criteria to update.
:param parents: Identifiers for which to remove information from all criteria.
N)r%   r   r`   ra   rX   r<   rc   r[   )rB   r$   Úparentsr1   r2   ra   s         r5   Ú!_remove_information_from_criteriaÚ,Resolution._remove_information_from_criteriaš   sŽ   € ö ØØ&Ÿn™nÖ.‰NˆCÜ%Ø×$Ñ$ð (1×'<Ò'<óâ'<˜à#×*Ñ*Ñ2ØŸ7™7×+Ñ+¨K×,>Ñ,>Ó?ÀwÑN÷	  Ù'<ñð ×+Ñ+óˆH‹Mò /ùòs   ¼:BÁ:Bc                óT  • U R                   R                  UU R                  R                  [	        U R                  R
                  [        R                  " S5      5      [	        U R                  R
                  [        R                  " S5      5      U R                  R                  S9$ )Nr`   ra   )r]   Úresolutionsr`   ra   rP   )	r<   Úget_preferencer,   r"   r   r$   rg   ri   rP   )rB   Únames     r5   Ú_get_preferenceÚResolution._get_preferenceµ   s…   € Ø�w‰w×%Ñ%ØØŸ
™
×*Ñ*Ü&Ø—
‘
×#Ñ#Ü×#Ò# LÓ1óô (Ø—
‘
×#Ñ#Ü×#Ò# MÓ2óð "ŸZ™Z×8Ñ8ð &ð 
ð 	
rG   c                ó¢   ^ ^•  T R                   R                  U   m[        UU 4S jUR	                  5        5       5      $ ! [         a     gf = f)NFc              3  óX   >#   • U  H  nTR                   R                  UTS 9v •  M!     g7f©)rW   Ú	candidateN©r<   Úis_satisfied_by)Ú.0ÚrÚcurrent_pinrB   s     €€r5   Ú	<genexpr>Ú8Resolution._is_current_pin_satisfying.<locals>.<genexpr>Ë   s,   øé € ð 
â1�ð �G‰G×#Ñ#°¸[Ð#ÕIÚ1ùó   ƒ'*)r,   r"   r*   ÚallrZ   )rB   rt   r2   r   s   `  @r5   Ú_is_current_pin_satisfyingÚ%Resolution._is_current_pin_satisfyingÄ   sU   ù€ ð	ØŸ*™*×,Ñ,¨TÑ2ˆKô õ 
à×/Ñ/Ô1ó
ó 
ð 	
øô ó 	Ùð	ús   „A Á
AÁAc                ó®   • U R                   R                  R                  5       nU R                  R	                  US9 H  nU R                  X#US9  M     U$ )N©rz   ©rX   )r,   r$   rQ   r<   Úget_dependenciesrk   )rB   rz   r$   rW   s       r5   Ú_get_updated_criteriaÚ Resolution._get_updated_criteriaÐ   sO   € Ø—:‘:×&Ñ&×+Ñ+Ó-ˆØŸ7™7×3Ñ3¸iÐ3ÓHˆKØ×!Ñ! (À	Ð!ÓJñ IàˆrG   c                óª  ^ ^• T R                   R                  U   n/ nUR                   HË  m T R                  T5      n[        UU 4S jUR                  5        5       5      nU(       d  [        TU5      eT R
                  R                  TS9  T R                   R                  R                  U5        T R                   R                  R                  US 5        TT R                   R                  U'   / s  $    U$ ! [         aM  nT R
                  R                  UR                  T5        UR                  UR                  5         S nAGM#  S nAff = f)Nc              3  óX   >#   • U  H  nTR                   R                  UTS 9v •  M!     g7fry   r{   )r}   r~   rz   rB   s     €€r5   r€   Ú7Resolution._attempt_to_pin_criterion.<locals>.<genexpr>æ   s,   øé € ð â5�Að —‘×'Ñ'°AÀÐ'ÕKÚ5ùr‚   r‡   )r,   r$   r`   rŠ   r   r=   Úrejecting_candidater2   rR   rƒ   rZ   r   ÚpinningÚupdater"   Úpop)rB   rt   r2   Úcausesr$   rL   Ú	satisfiedrz   s   `      @r5   Ú_attempt_to_pin_criterionÚ$Resolution._attempt_to_pin_criterionÖ   s  ù€ Ø—J‘J×'Ñ'¨Ñ-ˆ	à*,ˆØ"×-Ô-ˆIðØ×5Ñ5°iÓ@�ô õ à"×3Ñ3Ô5óó ˆIö Ü+¨I°yÓAÐAà�G‰G�O‰O iˆOÑ0Ø�J‰J×Ñ×&Ñ& xÔ0ð �J‰J×Ñ×"Ñ" 4¨Ô.Ø'0ˆD�J‰J×Ñ˜tÑ$àŠIñ7 .ð> ˆøô9 *ó Ø—‘×+Ñ+¨A¯K©K¸ÔCØ—‘˜aŸk™kÔ*Þûðús   ®C;Ã;
EÄAEÅEc                óR  • U GH  u  p#U(       d  M   U R                   R                  U   nU R                  R	                  U[        U R                   R                  [        R                  " S5      5      [        U R                   R                  [        R                  " S5      X#05      S9n[        U5      nU(       d    gUR                  UR                  5        [        U[        UR                  5      US9U R                   R                  U'   GM     g! [         a     GM"  f = f)NrZ   r[   r\   Fr_   T)r,   r$   r*   r<   rf   r   rg   rh   ri   r   Úextendr[   r   re   ra   )rB   Úincompatibilities_from_brokenr-   r[   r2   rj   r`   s          r5   Ú_patch_criteriaÚResolution._patch_criteriaû   s  € ô
 %BÑ ˆAÞ$ÙðØ ŸJ™J×/Ñ/°Ñ2�	ð —g‘g×*Ñ*ØÜ,Ø—J‘J×'Ñ'Ü×)Ò)Ð*<Ó=óô #2Ø—J‘J×'Ñ'Ü×'Ò'Ð(;Ó<ØÐ*ó#ð +ð ˆGô ,;¸7Ó+CˆJÞÙØ×$Ñ$ Y×%@Ñ%@ÔAÜ%.Ø%Ü  ×!6Ñ!6Ó7Ø"3ñ&ˆD�J‰J×Ñ Ô"ñ/ %Bð8 øô/ ó Ûðús   “DÄ
D&Ä%D&c           
     óú   • U R                   ci  U R                   Vs/ s HK  n[        UR                  R	                  5       UR
                  R	                  5       UR                  SS S9PMM     snU l         ggs  snf )zCSave states for potential rollback if optimistic backjumping fails.NrO   )r@   r>   r   r"   rQ   r$   rP   )rB   Úss     r5   Ú_save_stateÚResolution._save_state  sq   € à×ÑÑ$ð Ÿšó!ò &�Aô ØŸI™IŸN™NÓ,ØŸZ™ZŸ_™_Ó.Ø%&×%7Ñ%7¹Ð%:ôñ
 &ñ!ˆDÕð %ùò!s   œAA8c                óf   • SU l         U R                  (       a  U R                  U l        SU l        gg)z3Rollback states and disable optimistic backjumping.g        N)r?   r@   r>   )rB   s    r5   Ú_rollback_statesÚResolution._rollback_states*  s-   € à-0ˆÔ*Ø××Ø×,Ñ,ˆDŒLØ $ˆDÕð rG   c                óÈ  • [         R                  " S U 5       S U 5       5      nU Vs1 s H  o0R                  R                  U5      iM     nn[	        U R
                  5      S:¼  GaÉ  U R
                  S	 U R                  n  U R
                  R                  5       nUR                  R                  5       u  pgU R                  (       d  Xd;  a  OÆU R                  (       a"  U R                  c  Xd;  a  U R                  5         U R                  R!                  U5       Vs1 s H  o€R                  R                  U5      iM     n	nU	R#                  U5      (       d  O9UR                  (       d  O'[	        U R
                  5      S::  a  [        U5      eGM  UR$                  R'                  5        V
Vs/ s H  u  p«U
[)        UR*                  5      4PM     nn
nUR-                  Xg/45        U R/                  5         U R1                  U5      nU(       a  g[	        U R
                  5      S:¼  a  GMÉ  gs  snf ! [        [        4 a    [        U5      Sef = fs  snf s  snn
f )	ar  Perform backjumping.

When we enter here, the stack is like this::

    [ state Z ]
    [ state Y ]
    [ state X ]
    .... earlier states are irrelevant.

1. No pins worked for Z, so it does not have a pin.
2. We want to reset state Y to unpinned, and pin another candidate.
3. State X holds what state Y was before the pin, but does not
   have the incompatibility information gathered in state Y.

Each iteration of the loop will:

1.  Identify Z. The incompatibility is not always caused by the latest
    state. For example, given three requirements A, B and C, with
    dependencies A1, B1 and C1, where A1 and B1 are incompatible: the
    last state might be related to C, so we want to discard the
    previous state.
2.  Discard Z.
3.  Discard Y but remember its incompatibility information gathered
    previously, and the failure we're dealing with right now.
4.  Push a new state Y' based on X, and apply the incompatibility
    information from Y to Y'.
5a. If this causes Y' to conflict, we need to backtrack again. Make Y'
    the new Z and go back to step 2.
5b. If the incompatibilities apply cleanly, end backtracking.
c              3  óV   #   • U  H  oR                   c  M  UR                   v •  M!     g 7fr;   rˆ   ©r}   Úcs     r5   r€   Ú'Resolution._backjump.<locals>.<genexpr>Q  s   é € Ð>šv˜!¯©‹XˆQ�XŽXšvùs   ‚)–)c              3  ó8   #   • U  H  oR                   v •  M     g 7fr;   )rW   r¥   s     r5   r€   r§   R  s   é € Ð+¢F˜q�]Ž]¢Fùs   ‚é   rI   TNr   F)Ú	itertoolsÚchainr<   rc   Úlenr>   r,   r’   r"   ÚpopitemrJ   r*   r   r?   r@   rž   r‰   Ú
isdisjointr$   r%   re   r[   rR   rT   rš   )rB   r“   Úincompatible_reqsr~   Úincompatible_depsÚbroken_statert   rz   ÚdÚcurrent_dependenciesr-   r.   r™   Úsuccesss                 r5   Ú	_backjumpÚResolution._backjump1  s1  € ô> 09¯ªÙ>™vÓ>Ù+¡FÓ+ó0
Ðñ ;LÓLÒ:K°QŸW™W×-Ñ-¨aÖ0Ñ:KÐÐLÜ�$—,‘,Ó 1Ô$à—‘˜RÐ ð  Ÿ:™:ˆLØðAØ#'§<¡<×#3Ñ#3Ó#5�LØ&2×&:Ñ&:×&BÑ&BÓ&D‘O�Dð
 ×:×:ØÓ5ð ð
 ×6×6Ø×)Ñ)Ñ1ØÓ5à×$Ñ$Ô&ð 26·±×1IÑ1IÈ)Ô1Tó(Ú1T¨A—G‘G×$Ñ$ QÖ'Ñ1Tð %ð (ð ,×6Ñ6Ð7H×IÑIØð
 $×+×+Øô �t—|‘|Ó$¨Ó)Ü.¨vÓ6Ð6òW ð\ <H×;PÑ;P×;VÑ;VÔ;Xô-Ú;X±4°1�”D˜×,Ñ,Ó-Ó.Ñ;Xð *ñ -ð
 *×0Ñ0°$¸Ð1DÔEà× Ñ Ô"Ø×*Ñ*Ð+HÓIˆGö Øô �$—,‘,Ó 1Ö$ðJ ùòM Møô #¤HÐ-ó AÜ.¨vÓ6¸DÐ@ðAüò.(ùó"-s   ª$H4Â6H9 Ä"$IÆ5#IÈ9Ic           
     ó    • [        U VVs0 s H"  o"R                    H  n[        U5      U_M     M$     snnR                  5       5      $ s  snnf )z5Extract causes from list of criterion and deduplicate)re   ra   r&   Úvalues)rB   Úcriteronr¦   Úis       r5   Ú_extract_causesÚResolution._extract_causesœ  s<   € ô ¡xÔG¢x !¿½°A”R˜“U˜A’X¹‘U¡xÒG×NÑNÓPÓQÐQùÓGs   ‹)A

c                ó<
  • U R                   (       a  [        S5      eU R                  R                  5         [	        [
        R                  " 5       0 / S9/U l         U H)  n U R                  U R                  R                  US S9  M+     U R                  5         S nS n[        U5       GHñ  nU R                  R!                  US9  U R"                  (       ab  U R$                  bU  Uc5  Un['        X'-
  U R"                  -  5      nUS::  a  U R)                  5         Mr  OUb  Xv-
  U:¼  a  U R)                  5         M�  U R                  R                  R+                  5        VV	s/ s H  u  p‰U R-                  X‰5      (       a  M  UPM!     n
nn	U
(       d1  U R                  R/                  U R                  S9  U R                  s  $ [1        U R                  R                  R3                  5       5      [1        U
5      -
  n[5        U
5      S:”  a³  [7        U R8                  R;                  U
U R                  R<                  [?        U R                  R                  [@        RB                  " S5      5      [?        U R                  R                  [@        RB                  " S	5      5      U R                  RD                  S
95      nOU
nU(       d  [        S5      e[5        U5      S:”  a  [G        XÀRH                  S9nOUS   nU RK                  U5      nU(       aÚ  U RM                  U5      nU R                  RO                  US9   U RQ                  U5      n[S        U(       + =(       a    U R"                  =(       a    U R$                  5      nU(       a"  U R$                  (       a  U R)                  5         OÌXðR                  RD                  S S & W(       d  [        U R                  RD                  5      eO�U R                  R                  R+                  5        VV	s1 s H&  u  p‰X‹;   d  M  U R-                  X‰5      (       a  M$  UiM(     nnn	U RU                  U R                  R                  U5        U R                  5         U R                  RW                  XpR                  S9  GMô     [Y        U5      e! [         a%  n[        UR                  R                  5      UeS nAff = fs  sn	nf ! [         a)    U R"                  (       a  U R$                  (       a  Sn GN‘e f = fs  sn	nf )Nzalready resolvedrO   rˆ   )Úindexr   )r,   r   r`   ra   )Úidentifiersrr   r`   ra   rP   z-narrow_requirement_selection returned 0 names)r1   )r“   T)r¾   r,   )-r>   ÚRuntimeErrorr=   Ústartingr   ÚcollectionsÚOrderedDictrk   r,   r$   r   r   r2   ra   rT   ÚrangeÚstarting_roundr?   r@   Úintr¡   r%   r„   ÚendingÚsetÚkeysr¬   re   r<   Únarrow_requirement_selectionr"   r   rg   ri   rP   Úminru   r•   r»   Úresolving_conflictsrµ   Úboolro   Úending_roundr   )rB   r^   Ú
max_roundsr~   rL   Úoptimistic_rounds_cutoffÚ"optimistic_backjumping_start_roundÚround_indexr1   r2   Úunsatisfied_namesÚsatisfied_namesÚnarrowed_unstatisfied_namesrt   Úfailure_criterionr“   r´   Úfailed_optimistic_backjumpingÚnewly_unsatisfied_namess                      r5   ÚresolveÚResolution.resolve¢  s~  € Ø�<�<ÜÐ1Ó2Ð2à�‰×ÑÔô Ü#×/Ò/Ó1ØØ!#ñð
ˆŒó ˆAðKØ×%Ñ% d§j¡j×&9Ñ&9¸1ÀTÐ%ÓJñ ð 	×ÑÔð 04Ð Ø9=Ð*ä  ×,ˆKØ�G‰G×"Ñ"¨Ð"Ñ5ð ×1×1°d×6GÑ6GÑ6SØ5Ñ=Ø9DÐ6Ü/2Ø#Ñ1°T×5WÑ5WÑWó0Ð,ð 0°1Ó4Ø×-Ñ-Ô/Ù ð 5ð .Ñ9à#ÑHØ3ó4ð ×-Ñ-Ô/Ù ð '+§j¡j×&9Ñ&9×&?Ñ&?Ô&Aô!â&A‘N�CØ×6Ñ6°s×F÷ Ù&Að ñ !ö %Ø—‘—‘ T§Z¡Z�Ñ0Ø—z‘zÒ!ô " $§*¡*×"5Ñ"5×":Ñ":Ó"<Ó=ÄÐDUÓ@VÑVˆOäÐ$Ó%¨Ó)Ü.2Ø—G‘G×8Ñ8Ø$5Ø$(§J¡J×$6Ñ$6Ü#2Ø ŸJ™J×/Ñ/Ü$×/Ò/°Ó=ó$ô %4Ø ŸJ™J×/Ñ/Ü$×/Ò/°Ó>ó%ð *.¯©×)DÑ)Dð 9ð ó/Ñ+ð  /@Ð+ö /Ü"Ð#RÓSÐSô Ð.Ó/°!Ó3äÐ6×<PÑ<PÑQ‘à2°1Ñ5�à $× >Ñ >¸tÓ DÐæ Ø×-Ñ-Ð.?Ó@�ð —‘×+Ñ+°6Ð+Ñ:ðØ"Ÿn™n¨VÓ4�Gô 59Ø#œ÷ .Ø ×>Ñ>÷.à ×-Ñ-ó5Ð1ö 1°T×5F×5FØ×)Ñ)Õ+à5;—J‘J×/Ñ/±Ð2ö #Ü2°4·:±:×3NÑ3NÓOÐOð #ð +/¯*©*×*=Ñ*=×*CÑ*CÔ*Eô+â*E™˜ØÑ-ó ð !×;Ñ;¸C×K÷ Ù*Eð (ñ +ð ×6Ñ6Ø—J‘J×'Ñ'Ð)@ôð ×$Ñ$Ô&à�G‰G× Ñ  {¿*¹*Ð ÔEñ_ -ôb   
Ó+Ð+øô{ *ó KÜ*¨1¯;©;×+BÑ+BÓCÈÐJûðKüóD!øôl ,ó Ø×9×9¸d×>O×>OØ8<Ó5àð	üó.+sH   Á!%R*Å SÆ SÌ;S"ÐTÐ TÐ8TÒ*
SÒ4 SÓSÓ".TÔT)r?   rA   r<   r=   r@   r>   N)rC   zAbstractProvider[RT, CT, KT]rD   zBaseReporter[RT, CT, KT]ÚreturnÚNone)rÛ   úState[RT, CT, KT])rÛ   rÜ   )r$   údict[KT, Criterion[RT, CT]]rW   r	   rX   z	CT | NonerÛ   rÜ   )r$   rÞ   rn   zCollection[KT]rÛ   rÜ   )rt   r   rÛ   r   )rt   r   r2   zCriterion[RT, CT]rÛ   rÍ   )rz   r   rÛ   rÞ   )rt   r   rÛ   úlist[Criterion[RT, CT]])r™   zlist[tuple[KT, list[CT]]]rÛ   rÍ   )r“   ú$list[RequirementInformation[RT, CT]]rÛ   rÍ   )r¹   rß   rÛ   rà   )r^   úIterable[RT]rÏ   rÆ   rÛ   rÝ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rE   Úpropertyr,   rT   rk   ro   ru   r„   rŠ   r•   rš   rž   r¡   rµ   r»   rÙ   Ú__static_attributes__© rG   r5   r8   r8   D   sü   † ñð8à.ð8ð +ð8ð 
ô	8ð ó1ó ð1ô#ð*)à-ð*)ð ð*)ð ð	*)ð
 
ô*)ðXØ3ðØ>Lðà	ôô6
ð

Øð

Ø#4ð

à	ô

ôô#ðJ!Ø-Fð!à	ô!ôF
ô%ôiðVRØ/ðRà	-ôR÷N,rG   r8   c                  ó6   • \ rS rSrSr\r S     SS jjrSrg)ÚResolveri3  z3The thing that performs the actual resolution work.c                óv   • [        U R                  U R                  5      nUR                  XS9n[	        U5      $ )af  Take a collection of constraints, spit out the resolution result.

The return value is a representation to the final resolution result. It
is a tuple subclass with three public members:

* `mapping`: A dict of resolved candidates. Each key is an identifier
    of a requirement (as returned by the provider's `identify` method),
    and the value is the resolved candidate.
* `graph`: A `DirectedGraph` instance representing the dependency tree.
    The vertices are keys of `mapping`, and each edge represents *why*
    a particular package is included. A special vertex `None` is
    included to represent parents of user-supplied requirements.
* `criteria`: A dict of "criteria" that hold detailed information on
    how edges in the graph are derived. Each key is an identifier of a
    requirement, and the value is a `Criterion` instance.

The following exceptions may be raised if a resolution cannot be found:

* `ResolutionImpossible`: A resolution cannot be found for the given
    combination of requirements. The `causes` attribute of the
    exception is a list of (requirement, parent), giving the
    requirements that could not be satisfied.
* `ResolutionTooDeep`: The dependency tree is too deeply nested and
    the resolver gave up. This is usually caused by a circular
    dependency, but you can try to resolve this by increasing the
    `max_rounds` argument.
)rÏ   )r8   rC   rD   rÙ   r6   )rB   r^   rÏ   Ú
resolutionr,   s        r5   rÙ   ÚResolver.resolve8  s7   € ô@   §¡¨t¯}©}Ó=ˆ
Ø×"Ñ" <Ð"ÐGˆÜ˜UÓ#Ð#rG   ré   N)éd   )r^   rá   rÏ   rÆ   rÛ   úResult[RT, CT, KT])	râ   rã   rä   rå   ræ   r   Úbase_exceptionrÙ   rè   ré   rG   r5   rë   rë   3  s5   † Ù=à&€Nð
 ð"$à"ð"$ð ð"$ð 
÷	"$ð "$rG   rë   c                ó  • X;   a  gX;  a  gUc   eX   R                  5        HN  n U[        U5         nXS;   a  UR                  U5          g[	        XX#5      (       d  M=  UR                  U5          g   g! [         a     M`  f = f)NTF)r)   r&   r*   r'   r(   )r$   r1   r/   r0   r3   r4   s         r5   r(   r(   ]  s“   € ð ÓØØ
ÓØØ‰?Ðˆ?Ø‰]×&Ñ&Ö(ˆð	ØœB˜q›E‘?ˆDð ÓØ�M‰M˜#ÔÙÜ˜h¨h×BÓBØ�M‰M˜#ÔÙñ )ð øô ó 	Úð	ús   ¨A7Á7
BÂB)r,   rÝ   rÛ   rð   )
r$   zMapping[KT, Criterion[RT, CT]]r1   z	KT | Noner/   zdict[int, KT | None]r0   zset[KT | None]rÛ   rÍ   ),Ú
__future__r   rÂ   rª   rg   Útypingr   r   Ústructsr   r   r	   r
   r   r   r   r   r   Úabstractr   r   r2   r   Ú
exceptionsr   r   r   r   r   Úcollections.abcr   r   r   Ú	providersr   r   Ú	reportersr   r    Ú__annotations__r6   r8   rë   r(   ré   rG   r5   Ú<module>rü      s¼   ðÞ "ã Û Û ß )÷
÷ 
õ 
÷ /Ý  ÷õ ö ß=Ñ=ç8Ý(à'*Ð ˜uÓ *ôô<l,�˜˜R ˜Ñ$ô l,ô^'$Ð  B¨ 
Ñ+ô '$ðTØ,ðà	ðð #ðð ð	ð
 
õrG   