Ë
    iKêj D ã                   ó  — U d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZmZm Z m!Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZEmFZFmGZG d dlHmIZImJZJ d dlKmLZLmMZMmNZN d dlOmPZPmQZQmRZR d dlSmTZTmUZUmVZV d dlWmXZX d dlYmZZZ d dl[m\Z\m]Z] d dl^m_Z_m`Z`maZa dZbecedd<   dZeecedd<   dZfecedd <   d!Zgecedd"<   d#Zhecedd$<    e«       Zid%„ Zj ed&d'¬(«       G d)„ d*«      «       Zkd+eld,eld-emececf   fd.„Zn end/d0¬1«      \  ZoZp G d2„ d3e«      Zq G d4„ d5er«      Zsd6etd-eReueR   z  fd7„Zv G d8„ d9e«      Zw ed:elexew   ececd;œ«      Zy ed<eey   eey   eey   eey   eet   eezetelf      eet   d=œ«      Z{d>e	e9e:z  e;z     d-ecdz  fd?„Z| G d@„ dAe@«      Z}dBe>dCe~d-dfdD„Z G dE„ dF«      Z€ G dG„ dHer«      Z�y)Ié    N)Údefaultdict)ÚCallableÚ	GeneratorÚSequence)ÚAbstractContextManagerÚcontextmanagerÚnullcontext)Ú	dataclassÚfield)Ú	timedelta)ÚEnum)ÚRandom)ÚLiteralÚNoReturnÚNotRequiredÚ	TypedDictÚcast)ÚHealthCheckÚPhaseÚ	VerbosityÚsettings)Úlocal_settings)ÚExampleDatabaseÚchoices_from_bytesÚchoices_to_bytes)ÚBackendCannotProceedÚFlakyBackendFailureÚFlakyStrategyDefinitionÚHypothesisExceptionÚInvalidArgumentÚStopTest)ÚLRUReusedCache)ÚceilÚoverride)ÚChoiceConstraintsTÚ
ChoiceKeyTÚ
ChoiceNodeÚChoiceTÚChoiceTemplateÚ	ValueHoleÚchoices_key)ÚConjectureDataÚConjectureResultÚDataObserverÚOverrunÚStatusÚ_Overrun)ÚDataTreeÚPreviouslyUnseenBehaviourÚTreeRecordingObserver)Úensure_free_stackframesÚ
startswith)ÚNO_SCOREÚParetoFrontÚParetoOptimiser)ÚAVAILABLE_PROVIDERSÚHypothesisProviderÚPrimitiveProvider)ÚShrinkerÚShrinkPredicateTÚsort_key)ÚInterestingOrigin)Úfail_health_check)ÚObservationÚwith_observability_callback)Úbase_reportÚreportÚverbose_reportiô  ÚMAX_SHRINKSi,  ÚMAX_SHRINKING_SECONDSi    ÚBUFFER_SIZEi'  Ú
CACHE_SIZEé
   ÚMIN_TEST_CALLSc                 ó   — t        | «      | fS ©N)Úlen©Úss    új/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/conjecture/engine.pyÚshortlexrS   q   s   € Ü�‹F�Aˆ;Ðó    TF)ÚslotsÚfrozenc                   ó²   — e Zd ZU  ed¬«      Zeed<    ed¬«      Zeed<    ed¬«      Zeed<    ed„ ¬«      Z	e
eee   f   ed<   ed	efd
„«       Zd	efd„Zy)ÚHealthCheckStater   )ÚdefaultÚvalid_test_casesÚinvalid_test_casesÚoverrun_test_casesc                  ó    — t        t        «      S rN   )r   Úlist© rT   rR   ú<lambda>zHealthCheckState.<lambda>{   s   € ¤¬DÓ 1€ rT   )Údefault_factoryÚ
draw_timesÚreturnc                 ór   — t        j                  t        | j                  j	                  «       g ¬«      «      S )N)Ústart)ÚmathÚfsumÚsumrb   Úvalues©Úselfs    rR   Útotal_draw_timez HealthCheckState.total_draw_time~   s%   € ä�y‰yœ˜TŸ_™_×3Ñ3Ó5¸RÔ@ÓAÐArT   c                 óx  — | j                   syt        d„ | j                   D «       «      }ddd|› d�›d�g}t        | j                   j                  «       d„ ¬«      }t	        |«      D �];  \  }\  }}d|cxk  rt        | j                   «      d	z
  k  rUn nRt        j                  |«      d
z  | j                  k  r-|j                  dt        | j                   «      |z
  › d�«        n¿t        |«      dd D �cg c]  }|dkD  sŒ	|d›d�‘Œ }}dj                  dgdz  |z   dd «      j                  d«      }	|j                  d«      j                  d«      }
|j                  d|
d|› d�›dt        |«      d›dt        j                  |«      | j                  z  d›d|	› �«       �Œ> dj                  |«      S c c}w )z2Return a terminal report describing what was slow.Ú c              3   ón   K  — | ]-  }t        |j                  d «      j                  d«      «      –— Œ/ y­w)ú	generate:ú: N)rO   ÚremoveprefixÚremovesuffix)Ú.0Úks     rR   ú	<genexpr>z1HealthCheckState.timing_report.<locals>.<genexpr>†   s.   è ø€ ò 
ØDEŒC�—‘˜{Ó+×8Ñ8¸Ó>×?ñ
ùs   ‚35z
  ú^z0   count | fraction |    slowest draws (seconds)c                 ó    — t        | d   «       S ©Né   )rh   ©Úkvs    rR   r`   z0HealthCheckState.timing_report.<locals>.<lambda>Š   s   € ÌÈBÈqÉEË
À{€ rT   ©Úkeyé   é   é   z  (skipped z rows of fast draws)éûÿÿÿNgü©ñÒMb@?z>6.3fú,ú z    -- rp   rq   ú  z | z>4z  | z>7.0%z  |  ú
)rb   ÚmaxÚsortedÚitemsÚ	enumeraterO   rf   rg   rl   ÚappendÚjoinÚrstriprr   rs   )rk   ÚwidthÚoutÚargs_in_orderÚiÚargnameÚtimesÚtÚreprsÚdescÚargs              rR   Útiming_reportzHealthCheckState.timing_report‚   s¹  € à�ŠØÜñ 
ØIMÏÉô
ó 
ˆð �b˜˜5˜' ˜	�]Ð"RÐSÐTˆÜ˜tŸ™×4Ñ4Ó6Ñ<RÔSˆÜ#,¨]Ó#;ó 	ÑˆAÑ�˜ð �QÔ3œ#˜dŸo™oÓ.°Ñ2Õ3Ü—I‘I˜eÓ$ rÑ)¨D×,@Ñ,@Ò@à—
‘
˜[¬¨T¯_©_Ó)=ÀÑ)AÐ(BÐBVÐWÔXÙä,2°5«M¸"¸#Ð,>ÖK qÀ!ÀdÃ(˜˜%�y ’]ÐKˆEÐKØ—8‘8˜i˜[¨1™_¨uÑ4°b°cÐ:Ó;×BÑBÀ3ÓGˆDØ×&Ñ& {Ó3×@Ñ@ÀÓFˆCØ�J‰JØ�S˜˜5˜' ˜	�N #¤c¨%£j° _°DÜ—9‘9˜UÓ# D×$8Ñ$8Ñ8¸Ð?¸uÀTÀFðLöð	ð" �y‰y˜‹~Ðùò Ls   Ã7
F7ÄF7N)Ú__name__Ú
__module__Ú__qualname__r   rZ   ÚintÚ__annotations__r[   r\   rb   r   Ústrr^   ÚfloatÚpropertyrl   r˜   r_   rT   rR   rX   rX   u   s~   … á!¨!Ô,Ð�cÓ,Ù#¨AÔ.Ð˜Ó.Ù#¨AÔ.Ð˜Ó.Ù05Ù1ô1€J�˜C  e¡Ð,Ñ-ó ð ðB ò Bó ðBð˜sô rT   rX   ÚrÚcrc   c                 óÈ   — t        j                  t        j                  d|z
  «      t        j                  d| z
  «      z  «      dz
  }t        j                  d| z  «      }||fS ry   )rf   r#   Úlog)r¡   r¢   ÚbaseÚper_ps       rR   Ú_invalid_thresholdsr§   Ÿ   sN   € Ü�9‰9”T—X‘X˜a !™e“_¤t§x¡x°°A±£Ñ6Ó7¸!Ñ;€DÜ�I‰I�a˜!‘eÓ€EØ�ˆ;ÐrT   g{®Gáz„?g®Gáz®ï?)r¡   r¢   c                   ó<   — e Zd ZdZdZde› d�ZdZdZdZ	de
d	efd
„Zy)Ú
ExitReasonz&settings.max_examples={s.max_examples}zTsettings.max_examples={s.max_examples}, but < 1% of test cases satisfied assumptionszshrunk test case z timesznothing left to doztest was flakyzshrinking was very slowr   rc   c                 ó:   — | j                   j                  |¬«      S )NrP   )ÚvalueÚformat)rk   r   s     rR   ÚdescribezExitReason.describe¶   s   € Ø�z‰z× Ñ  8Ð Ó,Ð,rT   N)r™   rš   r›   Úmax_examplesÚmax_iterationsrG   Úmax_shrinksÚfinishedÚflakyÚvery_slow_shrinkingÚSettingsrž   r­   r_   rT   rR   r©   r©   «   sD   „ Ø;€Lð	7ð ð & k ]°&Ð9€KØ#€HØ€EØ3Ðð- ð -¨cô -rT   r©   c                   ó   — e Zd Zy)ÚRunIsCompleteN©r™   rš   r›   r_   rT   rR   r¶   r¶   º   ó   „ ØrT   r¶   Úbackendc                 ó8  — t         |    }t        |t        «      r4|j                  dd«      \  }}t	        t        j                  |«      |«      }|j                  dk(  r |d «      S |j                  dk(  r|S t        d|j                  › d|j                  › d�«      ‚)Nú.rz   Útest_functionÚ	test_casezinvalid lifetime z for provider z/. Expected one of 'test_function', 'test_case'.)
r:   Ú
isinstancerž   ÚrsplitÚgetattrÚ	importlibÚimport_moduleÚlifetimer    r™   )r¹   Úprovider_clsÚmodule_nameÚ
class_names       rR   Ú_get_providerrÇ   ¾   s¤   € Ü& wÑ/€LÜ�,¤Ô$Ø".×"5Ñ"5°c¸1Ó"=Ñˆ�ZÜœy×6Ñ6°{ÓCÀZÓPˆà×Ñ Ò/Ù˜DÓ!Ð!Ø	×	Ñ	 +Ò	-ØÐäØ × 5Ñ 5Ð6°nÀ\×EZÑEZÐD[ð \<ð <ó
ð 	
rT   c                   óF   — e Zd ZU eed<   eed<   eed<   eed<   ee   ed<   y)Ú	CallStatsÚstatusÚruntimeÚdrawtimeÚgctimeÚeventsN)r™   rš   r›   rž   r�   rŸ   r^   r_   rT   rR   rÉ   rÉ   Ï   s    … ØƒKØƒNØƒOØƒMØ�‰IÔrT   rÉ   ÚPhaseStatistics)úduration-secondsú
test-casesúdistinct-failuresúshrinks-successfulÚStatisticsDict)zgenerate-phasezreuse-phasezshrink-phasezexplain-phaseústopped-becauseÚtargetsÚnodeidÚchoicesc                 ó¢   — d}| D ]G  }t        |t        «      r y t        |t        «      r|j                  € y ||j                  z  }ŒC|dz  }ŒI |S )Nr   rz   )r¾   r*   r)   Úcount)rØ   rÚ   Úchoices      rR   Úchoice_countrÜ   î   sZ   € ð €EØò 	ˆÜ�fœiÔ(áÜ˜¤Ô/Ø�|‰|Ð#ÙØ�V—\‘\Ñ!‰Eà�Q‰J‰Eð	ð €LrT   c                   ó"   — e Zd Zedefd„«       Zy)ÚDiscardObserverrc   c                 ó   — t         ‚rN   )ÚContainsDiscardrj   s    rR   Úkill_branchzDiscardObserver.kill_branch   s   € äÐrT   N)r™   rš   r›   r$   r   rá   r_   rT   rR   rÞ   rÞ   ÿ   s   „ Øð˜Xò ó ñrT   rÞ   ÚdataÚfor_failurec                ó0  — | j                   D �]   }| j                  j                  |j                  |¬«      }t        t
        t        t        t        dœ|j                     }t        |«      |ur;t        d|› d| j                  j                  j                  › dt        |«      › �«      ‚t        t        |j                  j                  «       D ��ci c]#  \  }}|| j                  j                  ||¬«      “Œ% c}}«      }||_        ||_        �Œ y c c}}w )N©rã   )ÚstringrŸ   ÚintegerÚbooleanÚbytesz	expected z from z, got )ÚnodesÚproviderÚrealizer«   rž   rŸ   rœ   Úboolré   Útyper   r›   r   r%   Úconstraintsr‰   )râ   rã   Únoder«   Úexpected_typeru   Úvrï   s           rR   Úrealize_choicesró     s	  € Ø—
‘
ó 'ˆØ—‘×%Ñ% d§j¡j¸kÐ%ÓJˆäÜÜÜÜñ
ð �)‰)ñˆô �‹;˜mÑ+Ü%Ø˜M˜?¨&Ø—=‘=×(Ñ(×5Ñ5Ð6°f¼TÀ%»[¸MðKóð ô
 Üð !×,Ñ,×2Ñ2Ó4÷á�A�qð �4—=‘=×(Ñ(¨¸Ð(ÓDÑDóó
ˆð ˆŒ
Ø&ˆÖñ/'ùó"s   Ã(Dc                   óH  — e Zd Zddddddœdeegdf   dedz  dedz  dedz  ded	e	e
ef   dz  d
dfd„Zeded
ed   fd„«       Zed
efd„«       Zded
dfd„ZdPd„Zeded   d
ed   fd„«       Zed
efd„«       Zd
efd„Zded
dfd„Zdee   d
eedf   fd„Zded
dfd„Zdddœdeeez  e z     d ed!e
ed"   z  d
e!e"z  fd#„Z#ded
dfd$„Z$de!d
dfd%„Z%d
eedf   fd&„Z&ded
dfd'„Z'	 dQdee   d(edz  d
dfd)„Z(dee   d
dfd*„Z)d(edz  d
efd+„Z*ed
efd,„«       Z+ed
efd-„«       Z,d.ed
dfd/„Z-ed
efd0„«       Z.dee!z  d
dfd1„Z/d
e0fd2„Z1dPd3„Z2ed
e3dz  fd4„«       Z4d
efd5„Z5dPd6„Z6d7e7d
dfd8„Z8d
efd9„Z9dPd:„Z:dee!z  d
dfd;„Z;d
efd<„Z<dPd=„Z=dd>œd?e
dz  d
efd@„Z>dPdA„Z?dPdB„Z@dddCœdDeeez  e z     dEeAdz  dFe
dz  d
efdG„ZBdPdH„ZCdPdI„ZD	 	 dRdJee!z  dKeEdz  dLeee!z  egef   dz  d
ee!z  fdM„ZF	 	 dRdJee!z  dKeEdz  dLeee!z  egef   dz  d
eGfdN„ZH	 dSdDeeI   d
eJeeIdf      fdO„ZKy)TÚConjectureRunnerNF)r   ÚrandomÚdatabase_keyÚignore_limitsÚthread_overlapr¼   r   rö   r÷   rø   rù   rc   c                óB  — || _         |xs
 t        «       | _        d| _        d | _        d| _        d| _        d| _        d| _        d| _	        |xs t        t        j                  d«      «      | _        || _        || _        |€i n|| _        d| _        i | _        g | _        d| _        i | _        d | _        d | _        t0        j2                  | _        t7        «       | _        d | _        t=        «       | _        tA        | j                  jB                  «      | _"        tG        d„ «      | _$        i | _%        d| _&        t0        j2                  | _'        d | _(        d | _)        | j                  �U| j                  jT                  �?tW        | j                  «      | _)        | jR                  jY                  | jZ                  «       t]        t^        t`        df   tb        td        z  f   tf        «      | _4        d| _5        d | _6        d| _7        d| _8        d| _9        d | _:        d| _;        y )Nr   é€   z(not a phase)ç        c                  ó   — t         S rN   )r7   r_   rT   rR   r`   z+ConjectureRunner.__init__.<locals>.<lambda>O  s   € ”H€ rT   .F)<Ú_test_functionr´   r   ÚshrinksÚfinish_shrinking_deadlineÚ
call_countÚmisaligned_countrZ   r[   r\   r   Ú_randomÚgetrandbitsrö   r÷   rø   rù   Ú_current_phaseÚ
statisticsÚstats_per_test_caseÚ_nested_phase_secondsÚinteresting_test_casesÚfirst_bug_found_atÚlast_bug_found_atrf   ÚinfÚfirst_bug_found_timeÚsetÚshrunk_test_casesÚhealth_check_stater2   ÚtreerÇ   r¹   rë   r   Úbest_observed_targetsÚ#best_test_cases_of_observed_targetsÚ_target_valid_spentÚ_next_optimise_atÚ_best_scores_at_last_passÚpareto_frontÚdatabaser8   Úon_evictÚon_pareto_evictr"   Útupler&   r-   r1   rJ   Ú_ConjectureRunner__data_cacheÚ"reused_previously_shrunk_test_caseÚ+_ConjectureRunner__pending_call_explanationÚ_backend_found_failureÚ_backend_exceeded_deadlineÚ_backend_discard_countÚ_verified_by_backendÚ_switch_to_hypothesis_provider)rk   r¼   r   rö   r÷   rø   rù   s          rR   Ú__init__zConjectureRunner.__init__!  sü  € ð ANˆÔØ"*Ò"8¬h«jˆŒØˆŒØ7;ˆÔ&Ø ˆŒØ%&ˆÔØ%&ˆÔØ'(ˆÔØ'(ˆÔØ$ÒH¬¬w×/BÑ/BÀ3Ó/GÓ(HˆŒØ*6ˆÔØ#0ˆÔØ$2Ð$:™bÀˆÔð $3ˆÔØ*,ˆŒØ46ˆÔ à,/ˆÔ"àQSˆÔ#à.2ˆÔØ-1ˆÔÜ+/¯8©8ˆÔ!ä9<»ˆÔØ;?ˆÔÜ&›jˆŒ	ÜERØ�M‰M×!Ñ!óF
ˆŒô ?JÙó?
ˆÔ"ð QSˆÔ0ð )*ˆÔ Ü(,¯©ˆÔØBFˆÔ&ð 15ˆÔØ×ÑÐ(¨T¯]©]×-CÑ-CÐ-OÜ +¨D¯K©KÓ 8ˆDÔØ×Ñ×&Ñ& t×';Ñ';Ô<ô +Ü”*˜c�/Ñ"Ô$4´xÑ$?Ð?ñ
ä
óˆÔð 9>ˆÔ/à6:ˆÔ'Ø,1ˆÔ#Ø05ˆÔ'Ø+,ˆÔ#à04ˆÔ!Ø49ˆÕ+rT   r«   )NNNc              #   ób   K  — | j                   }	 || _         d –— || _         y # || _         w xY w­wrN   )r#  )rk   r«   Úpreviouss      rR   Ú#_with_switch_to_hypothesis_providerz4ConjectureRunner._with_switch_to_hypothesis_providerv  s3   è ø€ ð ×6Ñ6ˆð	;Ø27ˆDÔ/Ûà2:ˆDÕ/ø°(ˆDÕ/üs   ‚/�# ›/£	,¬/c                 óP   — | j                   j                  dk(  xs | j                  S )NÚ
hypothesis)r   r¹   r#  rj   s    rR   Úusing_hypothesis_backendz)ConjectureRunner.using_hypothesis_backend�  s&   € ð �M‰M×!Ñ! \Ñ1ÒX°T×5XÑ5Xð	
rT   Úexplanationc                 ó   — || _         y rN   ©r  )rk   r+  s     rR   Úexplain_next_call_asz%ConjectureRunner.explain_next_call_as‡  s
   € Ø*5ˆÕ'rT   c                 ó   — d | _         y rN   r-  rj   s    rR   Úclear_call_explanationz'ConjectureRunner.clear_call_explanationŠ  s
   € Ø*.ˆÕ'rT   Úphase)ÚreuseÚgenerateÚshrinkÚexplainc              #   ó^  K  — | j                   }| j                  }| j                  }g | _         || _        d| _        t        j                  «       }	 d –— t        j                  «       |z
  }| j
                  j                  |dz   dg dœ«      }|dxx   || j                  z
  z  cc<   |dxx   | j                   z  cc<   t        | j                  «      |d<   | j                  |d<   || _         || _        ||z   | _        y # t        j                  «       |z
  }| j
                  j                  |dz   dg dœ«      }|dxx   || j                  z
  z  cc<   |dxx   | j                   z  cc<   t        | j                  «      |d<   | j                  |d<   || _         || _        ||z   | _        w xY w­w)Nrü   z-phase)rÐ   rÑ   rÐ   rÑ   rÒ   rÓ   )
r  r  r  ÚtimeÚperf_counterr  Ú
setdefaultrO   r	  rÿ   )rk   r1  Úsaved_statsÚsaved_phaseÚsaved_nested_secondsÚ
start_timeÚelapsedÚstatss           rR   Ú_log_phase_statisticsz&ConjectureRunner._log_phase_statistics�  sº  è ø€ ð ×.Ñ.ˆØ×)Ñ)ˆØ#×9Ñ9ÐØ#%ˆÔ Ø#ˆÔØ%(ˆÔ"Ü×&Ñ&Ó(ˆ
ð	HÛä×'Ñ'Ó)¨JÑ6ˆGð —O‘O×.Ñ.Ø˜Ñ Ø%(¸Ñ;óˆEð Ð$Ó%¨°4×3MÑ3MÑ)MÑMÓ%Ø�,Ó 4×#;Ñ#;Ñ;ÓÜ),¨T×-HÑ-HÓ)IˆEÐ%Ñ&Ø*.¯,©,ˆEÐ&Ñ'Ø'2ˆDÔ$Ø"-ˆDÔØ)=ÀÑ)GˆDÕ&øô ×'Ñ'Ó)¨JÑ6ˆGð —O‘O×.Ñ.Ø˜Ñ Ø%(¸Ñ;óˆEð Ð$Ó%¨°4×3MÑ3MÑ)MÑMÓ%Ø�,Ó 4×#;Ñ#;Ñ;ÓÜ),¨T×-HÑ-HÓ)IˆEÐ%Ñ&Ø*.¯,©,ˆEÐ&Ñ'Ø'2ˆDÔ$Ø"-ˆDÔØ)=ÀÑ)GˆDÕ&üs    ‚AF-ÁC? ÁB*F-Ã?B+F*Æ*F-c                 óN   — t         j                  | j                  j                  v S rN   )r   Útargetr   Úphasesrj   s    rR   Úshould_optimisez ConjectureRunner.should_optimise®  s   € ä�|‰|˜tŸ}™}×3Ñ3Ð3Ð3rT   c                 óJ   — | j                   j                  xr | j                  S rN   )r  Úis_exhaustedr*  rj   s    rR   Ú__tree_is_exhaustedz$ConjectureRunner.__tree_is_exhausted²  s   € Ø�y‰y×%Ñ%ÒG¨$×*GÑ*GÐGrT   râ   c                 óÈ   — t        «       5  	 | j                  |«       ddd«       y# t        $ r%}|j                  |j                  k(  rn‚ Y d}~Œ2d}~ww xY w# 1 sw Y   yxY w)z�Run ``self._test_function``, but convert a ``StopTest`` exception
        into a normal return and avoid raising anything flaky for RecursionErrors.
        N)r5   rþ   r!   Útestcounter)rk   râ   Úes      rR   Ú__stoppable_test_functionz*ConjectureRunner.__stoppable_test_functionµ  sj   € ô %Ó&ñ 	ðØ×#Ñ# DÔ)÷	ð 	øô ò 	Ø—=‘= D×$4Ñ$4Ò4ð ð
 ô ûð		ú÷	ð 	ús+   ‹A�'§	A°AÁAÁAÁAÁA!rØ   .c                 ó   — t        |«      S rN   )r+   )rk   rØ   s     rR   Ú
_cache_keyzConjectureRunner._cache_keyÌ  s   € Ü˜7Ó#Ð#rT   c                 óx   — |j                  «       }| j                  |j                  «      }|| j                  |<   y rN   )Ú	as_resultrM  rØ   r  )rk   râ   Úresultr~   s       rR   Ú_cachezConjectureRunner._cacheÏ  s0   € Ø—‘Ó!ˆØ�o‰o˜dŸl™lÓ+ˆØ!'ˆ×Ñ˜#ÒrT   r   )Úerror_on_discardÚextendrR  rS  Úfullc                ó¾  — t        d„ |D «       «      }|snt        d„ |D «       «      s\t        t        t           |«      }| j	                  |«      }	 | j
                  |   }|dk(  s|j                  t        j                  ur|S 	 |dk(  rd}nt        |«      x}€d}n||z   }t        «       }	|r
t        «       }		 |rt        ‚| j                  ||	|¬«      }
| j                  j!                  |
«       |
j#                  «        | j	                  |
j$                  «      }|
j                  t        j                  kD  r	 | j
                  |   S t&        | j
                  |<   t&        S # t        $ r Y Œçw xY w# t        $ r Y nw xY w	 | j
                  |   S # t        $ r Y nw xY w# t        $ r Y nw xY w| j                  ||¬«      }| j)                  |«       |j+                  «       S )a¶  
        If ``error_on_discard`` is set to True this will raise ``ContainsDiscard``
        in preference to running the actual test function. This is to allow us
        to skip test cases we expect to be redundant in some cases. Note that
        it may be the case that we don't raise ``ContainsDiscard`` even if the
        result has discards if we cannot determine from previous runs whether
        it will have a discard.
        c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrN   )r¾   r*   ©rt   rÛ   s     rR   rv   z8ConjectureRunner.cached_test_function.<locals>.<genexpr>å  s   è ø€ ÒQ¸vœZ¨´	×:ÑQùó   ‚c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrN   )r¾   r)   rW  s     rR   rv   z8ConjectureRunner.cached_test_function.<locals>.<genexpr>æ  s   è ø€ ò *
Ø39ŒJ�vœ~×.ñ*
ùrX  r   rT  N©ÚobserverÚmax_choices©r\  )Úanyr   r   r(   rM  r  rÊ   r0   ÚOVERRUNÚKeyErrorrÜ   r.   rÞ   r3   Únew_conjecture_datar  Úsimulate_test_functionÚfreezerØ   r/   r¼   rO  )rk   rØ   rR  rS  Úhas_value_holer~   ÚcachedÚ
max_lengthrÚ   Útrial_observerÚ
trial_datarâ   s               rR   Úcached_test_functionz%ConjectureRunner.cached_test_functionÔ  sü  € ô" ÑQÈÔQÓQˆÙ¤cñ *
Ø=Dô*
ô '
ô
 œ8¤GÑ,¨gÓ6ˆGØ—/‘/ 'Ó*ˆCðØ×*Ñ*¨3Ñ/�ð ˜Q’; &§-¡-´v·~±~Ñ"EØ!�Mð #Fð
 �VÒØ‰JÜ# GÓ,Ð,ˆeÐ5Ø‰Jà ™ˆJô /;«nˆÙÜ,Ó.ˆNð	ñ Ü/Ð/Ø×1Ñ1Ø .¸jð 2ó ˆJð �I‰I×,Ñ,¨ZÔ8ð ×ÑÔØ—/‘/ *×"4Ñ"4Ó5ˆCØ× Ñ ¤6§>¡>Ò1ðØ×,Ñ,¨SÑ1Ð1ô *1�×!Ñ! #Ñ&Ü�øô[ ò ÙðûôL  ò ÙðúðØ×(Ñ(¨Ñ-Ð-øÜò Ùðûô% )ò 	Ùð	úð* ×'Ñ'¨¸ZÐ'ÓHˆà×Ñ˜4Ô Ø�~‰~ÓÐsH   Á1E Â77F Ä7E. Å	E+Å*E+Å.	E:Å9E:Å>F Æ	FÆFÆ	F(Æ'F(c                 óì  ‡ — ‰ j                   �"‰ j                  ‰ j                   «       d ‰ _         ‰ xj                  dz  c_        d}dt        dt        dd fˆ fd„}d}	 ‰ j                  |«       	 |�sZ|j                  �J ‚|j                  «        ‰ j                  j                  dk7  r(	 t        ||j                  t        j                  u ¬	«       |sù|j                  j                  j!                  «       |j"                  |j$                  z
  t'        j(                  |j*                  j-                  «       «      |j.                  |j0                  z
  t3        d
„ |j4                  j7                  «       D «       «      dœ}‰ j8                  j;                  |«       ‰ j=                  |«       |j>                  �‰ xj@                  dz  c_         	 |ry ‰ jS                  |«       |jT                  rR‰ jV                  �F‰ jV                  jY                  |j[                  «       «      r‰ jO                  |jP                  d¬«       |j                  t        j\                  k\  �r|jT                  j7                  «       D ]ñ  \  }}	t_        ‰ j`                  |   |	«      ‰ j`                  |<   |‰ jb                  vr2|j[                  «       }
tE        |
td        «      rJ ‚|
‰ jb                  |<   Œl‰ jb                  |   }|jT                  |   }|	|k  rŒ�|	|kD  s,tg        |jh                  «      tg        |jh                  «      k  sŒÁ|j[                  «       }
tE        |
td        «      rJ ‚|
‰ jb                  |<   Œó |j                  t        j\                  u r‰ xjj                  dz  c_5        |j                  t        jl                  u r‰ xjn                  dz  c_7        |j                  t        jp                  u r‰ xjr                  dz  c_9        |j                  t        j                  k(  �rË‰ jt                  �s#|jv                  }t	        jx                  |jP                  «      }‰ j{                  d«      5  ‰ j                  |«       d d d «       |j                  «        |j                  t        j                  k7  r�|j                  j\                  d|j                  jl                  d|j                  jp                  di|j                     }t}        dt        |«      j€                  › d‰ j                  j                  ›d|› d�|g«      ‚‰ j=                  |«       |j‚                  €J ‚|j‚                  }d}	 ‰ j„                  |   }tg        |jh                  «      tg        |jh                  «      k  rg‰ xj†                  dz  c_C        ‰ j‰                  |jP                  «       ‰ jŠ                  j�                  ‰ j�                  |jP                  «      «       d}	 |r©‰ jO                  |jP                  «       |j[                  «       ‰ j„                  |<   ‰ jt                  sd‰ _N        ‰ jŠ                  jŸ                  ‰ j�                  |jP                  «      |j[                  «       «       ‰ j                   j£                  |«       ‰ j†                  t¤        k\  r‰ j§                  t¨        jª                  «       ‰ j¬                  sW‰ j®                  �K‰ j®                  t—        j°                  «       k  r*tK        d«       ‰ j§                  t¨        j²                  «       ‰ j„                  s•‰ jj                  ‰ j                  j´                  k\  r‰ j§                  t¨        j´                  «       ‰ jn                  ‰ jr                  z   t¶        t¸        ‰ jj                  z  z   kD  r‰ j§                  t¨        jº                  «       ‰ j½                  «       rIt¿        d„ ‰ j„                  j-                  «       D «       «      s‰ j§                  t¨        jÀ                  «       ‰ jÃ                  |«       y # t        $ r d}‚ t        $ �r¦} |||«       d}|j                  «        Y d }~|�s~|j                  �J ‚|j                  «        ‰ j                  j                  dk7  rJ	 t        ||j                  t        j                  u ¬	«       n!# t        $ r} |||«       d}Y d }~nd }~ww xY w|sú|j                  j                  j!                  «       |j"                  |j$                  z
  t'        j(                  |j*                  j-                  «       «      |j.                  |j0                  z
  t3        d
„ |j4                  j7                  «       D «       «      dœ}‰ j8                  j;                  |«       ‰ j=                  |«       |j>                  �‰ xj@                  dz  c_         y y y y d }~wtB        $ �rL}|j                  «        tE        |tF        «      r:|jH                  r.tK        ddjM                  d„ |jH                  D «       «      z   «       ‰ j                  j                  dk7  �r·	 t        |d¬	«       �n§# t        $ �rš} |||«       d}Y d }~Y d }~|�s~|j                  �J ‚|j                  «        ‰ j                  j                  dk7  rJ	 t        ||j                  t        j                  u ¬	«       n!# t        $ r} |||«       d}Y d }~nd }~ww xY w|sú|j                  j                  j!                  «       |j"                  |j$                  z
  t'        j(                  |j*                  j-                  «       «      |j.                  |j0                  z
  t3        d
„ |j4                  j7                  «       D «       «      dœ}‰ j8                  j;                  |«       ‰ j=                  |«       |j>                  �‰ xj@                  dz  c_         y y y y d }~ww xY w‰ jO                  |jP                  «       ‚ d }~ww xY w# t        $ r} |||«       d}Y d }~�Œ°d }~ww xY w# |�s~|j                  �J ‚|j                  «        ‰ j                  j                  dk7  rJ	 t        ||j                  t        j                  u ¬	«       n!# t        $ r} |||«       d}Y d }~nd }~ww xY w|sú|j                  j                  j!                  «       |j"                  |j$                  z
  t'        j(                  |j*                  j-                  «       «      |j.                  |j0                  z
  t3        d
„ |j4                  j7                  «       D «       «      dœ}‰ j8                  j;                  |«       ‰ j=                  |«       |j>                  �‰ xj@                  dz  c_         w w w w xY w# 1 sw Y   �	Œ›xY w# t�        $ rM d}‰ j                  ‰ _I        ‰ j”                  €*‰ j                  ‰ _J        t—        j˜                  «       ‰ _M        Y �Œhw xY w)Nrz   FÚexcrâ   rc   c                 ó`  •— | j                   dv r2d‰_        | j                   dk(  rã‰j                  j                  ‰_        nÇ| j                   dk(  r¸‰xj
                  dz  c_        ‰j
                  dkD  r”‰j
                  ‰j                  z  dkD  rxt        d‰j                  j                  ›d	‰j
                  › d
‰j                  › d‰j
                  ‰j                  z  dz  d›d‰j                  j                  ›�
«       d‰_        ‰xj                  dz  c_        | j                   |_	        y )N)ÚverifiedÚ	exhaustedTrm  Údiscard_test_caserz   rK   gš™™™™™É?zSwitching away from backend z$ to the Hypothesis backend, because z of z attempted test cases (éd   z0.1fz%) were discarded by backend )
Úscoper#  r   r¹   r"  r!  r  rF   r[   Úcannot_proceed_scope)rk  râ   rk   s     €rR   Ú_backend_cannot_proceedz?ConjectureRunner.test_function.<locals>._backend_cannot_proceed3  s  ø€ ð �y‰yÐ5Ñ5Ø6:�Ô3Ø—9‘9 
Ò*Ø04·±×0EÑ0E�DÕ-Ø—‘Ð1Ò1Ø×+Ò+¨qÑ0Õ+à×/Ñ/°"Ò4Ø×4Ñ4°t·±ÑFÈ#ÒMä"Ø6°t·}±}×7LÑ7LÐ6Oð P#à#'×#>Ñ#>Ð"?¸tÀDÇOÁOÐCTð Uà ×7Ñ7¸$¿/¹/ÑIÈCÑOÐPTÐUð V5Ø59·]±]×5JÑ5JÐ4MðOôð ;?�DÔ7ð ×#Ò# qÑ(Õ#Ø(+¯	©	ˆDÕ%rT   Tr)  rå   c              3   ó>   K  — | ]  \  }}|d k(  r|n|› d|› �–— Œ y­w)rn   rq   Nr_   )rt   ru   rò   s      rR   rv   z1ConjectureRunner.test_function.<locals>.<genexpr>‹  s1   è ø€ ò )á $  1ð "# b¢™A°°°2°a°S¨kÓ9ñ)ùs   ‚)rÊ   rË   rÌ   rÍ   rÎ   z Steps leading up to this error:
r†   c              3   ó&   K  — | ]	  }d |› �–— Œ y­w)r…   Nr_   )rt   rQ   s     rR   rv   z1ConjectureRunner.test_function.<locals>.<genexpr>h  s   è ø€ ÒL¨Q " Q C¤ÑLùs   ‚ó   pareto©Úsub_keyÚpassedzfailed filtersÚoverranz@Inconsistent results from replaying a failing test case! Raised z on backend=z, but z under backend='hypothesis'.aj  WARNING: Hypothesis has spent more than five minutes working to shrink a failing test case, and stopped because it is making very slow progress.  When you re-run your tests, shrinking will resume and may take this long before aborting again.

PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone.c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrN   )rØ   )rt   Útcs     rR   rv   z1ConjectureRunner.test_function.<locals>.<genexpr>  s   è ø€ ò 2
ØˆB�J�Jñ2
ùs   ‚)br  Údebugr  r   r,   Ú*_ConjectureRunner__stoppable_test_functionÚKeyboardInterruptrc  rr  r   r¹   ró   rÊ   r0   ÚINTERESTINGÚnameÚlowerÚfinish_timer=  rf   rg   rb   ri   Úgc_finish_timeÚgc_start_timerˆ   rÎ   r‰   r  r‹   rQ  Úmisaligned_atr  ÚBaseExceptionr¾   r   Ú_stateful_repr_partsrE   rŒ   Úsave_choicesrØ   Ú
debug_dataÚtarget_observationsr  ÚaddrO  ÚVALIDr‡   r  r  r1   r?   rê   rZ   ÚINVALIDr[   r_  r\   r*  Úexpected_exceptionÚfor_choicesr'  r   rî   r™   Úinteresting_originr	  rÿ   Údowngrade_choicesr  ÚunpinrM  r`  r  r
  r7  Ú	monotonicr  r  Úpinr  ÚdiscardrG   Ú	exit_withr©   r°   rø   r   r8  r³   r®   ÚINVALID_THRESHOLD_BASEÚINVALID_PER_VALIDr¯   Ú$_ConjectureRunner__tree_is_exhaustedr^  r±   Úrecord_for_health_check)rk   râ   Úinterruptedrs  Úfinally_early_returnrk  Ú
call_statsÚerrru   rò   Údata_as_resultÚexisting_test_caseÚexisting_scoreÚinitial_exceptionÚdesc_new_statusr~   ÚchangedÚexistings   `                 rR   r¼   zConjectureRunner.test_function+  s  ø€ Ø×*Ñ*Ð6Ø�J‰J�t×6Ñ6Ô7Ø.2ˆDÔ+à�Š˜1Ñ�Øˆð	2Ü%ð	2Ü-;ð	2àõ	2ðB  %Ðð@	3Ø×*Ñ*¨4Õ0òB Ø×0Ñ0Ð8Ð8Ð8Ø—‘”à—=‘=×(Ñ(¨LÒ8ð4Ü'Ø ¨d¯k©k¼V×=OÑ=OÐ.Oõñ ,à"&§+¡+×"2Ñ"2×"8Ñ"8Ó":Ø#'×#3Ñ#3°d·o±oÑ#EÜ$(§I¡I¨d¯o©o×.DÑ.DÓ.FÓ$GØ"&×"5Ñ"5¸×8JÑ8JÑ"JÜ"(ñ )à(,¯©×(9Ñ(9Ó(;ô)ó #ñ	-�Jð ×,Ñ,×3Ñ3°JÔ?à—K‘K Ô%à×*Ñ*Ð6à×-Ò-°Ñ2Ö-áØà�‰˜Ôð ×$Ò$Ø×!Ñ!Ð-Ø×!Ñ!×%Ñ% d§n¡nÓ&6Ô7à×Ñ˜dŸl™l°IÐÔ>à�;‰;œ&Ÿ,™,Ó&Ø×0Ñ0×6Ñ6Ó8ò Q‘��1Ü03°D×4NÑ4NÈqÑ4QÐSTÓ0U�×*Ñ*¨1Ñ-à˜D×DÑDÑDØ%)§^¡^Ó%5�NÜ)¨.¼(ÔCÐCÐCØBP�D×<Ñ<¸QÑ?Øà%)×%MÑ%MÈaÑ%PÐ"Ø!3×!GÑ!GÈÑ!J�à�~Ò%Øà�~Ò%¬°$·*±*Ó)=ÄØ&×,Ñ,óAó *ð &*§^¡^Ó%5�NÜ)¨.¼(ÔCÐCÐCØBP�D×<Ñ<¸QÒ?ð)Qð, �;‰;œ&Ÿ,™,Ñ&Ø×!Ò! QÑ&Õ!Ø�;‰;œ&Ÿ.™.Ñ(Ø×#Ò# qÑ(Õ#Ø�;‰;œ&Ÿ.™.Ñ(Ø×#Ò# qÑ(Õ#à�;‰;œ&×,Ñ,Ó,Ø×0Ó0ð %)×$;Ñ$;Ð!Ü%×1Ñ1°$·,±,Ó?�ð ×=Ñ=¸dÓCñ 9Ø×2Ñ2°4Ô8÷9à—‘”ð —;‘;¤&×"4Ñ"4Ò4àŸ™×)Ñ)¨8ØŸ™×+Ñ+Ð-=ØŸ™×+Ñ+¨Yð'ð —k‘kñ	'#�Oô
 .ð"Ü"&Ð'8Ó"9×"BÑ"BÐ!Cð D#Ø#'§=¡=×#8Ñ#8Ð";¸6Ø*Ð+Ð+GðIð +Ð+óð ð —‘˜DÔ!à×*Ñ*Ð6Ð6Ð6Ø×)Ñ)ˆCØˆGð#Ø×6Ñ6°sÑ;�ô ˜DŸJ™JÓ'¬(°8·>±>Ó*BÒBØ—L’L AÑ%•LØ×*Ñ*¨8×+;Ñ+;Ô<Ø×%Ñ%×+Ñ+¨D¯O©O¸H×<LÑ<LÓ,MÔNØ"‘GáØ×!Ñ! $§,¡,Ô/Ø37·>±>Ó3C�×+Ñ+¨CÑ0Ø×4Ò4Ø26�DÔ/Ø×!Ñ!×%Ñ% d§o¡o°d·l±lÓ&CÀTÇ^Á^ÓEUÔVØ×&Ñ&×.Ñ.¨sÔ3à�|‰|œ{Ò*Ø—‘œz×5Ñ5Ô6ð ×"Ò"Ø×.Ñ.Ð:Ø×.Ñ.´×1BÑ1BÓ1DÒDô ð-ôð �N‰Nœ:×9Ñ9Ô:à×*Ò*ð
 ×$Ñ$¨¯©×(BÑ(BÒBØ—‘œz×6Ñ6Ô7Ø×'Ñ'¨$×*AÑ*AÑAÜ&Ô):¸T×=RÑ=RÑ)RÑRòð —‘œz×8Ñ8Ô9ð
 ×#Ñ#Ô%¬cñ 2
Ø!%×!<Ñ!<×!CÑ!CÓ!Eô2
ô /
ð �N‰Nœ:×.Ñ.Ô/à×$Ñ$ TÕ*øôW !ò 	ØˆKØÜ#ó 	Ù# C¨Ô.àˆKØ�K‰KŒMÛò0 Ø×0Ñ0Ð8Ð8Ð8Ø—‘”à—=‘=×(Ñ(¨LÒ8ð4Ü'Ø ¨d¯k©k¼V×=OÑ=OÐ.Oöøô 0ò 4Ù/°°TÔ:Ø/3Õ,ûð4úñ ,à"&§+¡+×"2Ñ"2×"8Ñ"8Ó":Ø#'×#3Ñ#3°d·o±oÑ#EÜ$(§I¡I¨d¯o©o×.DÑ.DÓ.FÓ$GØ"&×"5Ñ"5¸×8JÑ8JÑ"JÜ"(ñ )à(,¯©×(9Ñ(9Ó(;ô)ó #ñ	-�Jð ×,Ñ,×3Ñ3°JÔ?à—K‘K Ô%à×*Ñ*Ð6à×-Ò-°Ñ2Ö-ð 7ð ,ð ûô/ ó 	Ø�K‰KŒMÜ˜#Ô6Ô7¸D×<UÒ<Uô Ø7Ø—i‘iÑL°$×2KÑ2KÔLÓLñMôð �}‰}×$Ñ$¨Ó4ðÜ# D°d×;øÜ+ó Ù+¨C°Ô6ð #'�Kßò Ø×0Ñ0Ð8Ð8Ð8Ø—‘”à—=‘=×(Ñ(¨LÒ8ð4Ü'Ø ¨d¯k©k¼V×=OÑ=OÐ.Oöøô 0ò 4Ù/°°TÔ:Ø/3Õ,ûð4úñ ,à"&§+¡+×"2Ñ"2×"8Ñ"8Ó":Ø#'×#3Ñ#3°d·o±oÑ#EÜ$(§I¡I¨d¯o©o×.DÑ.DÓ.FÓ$GØ"&×"5Ñ"5¸×8JÑ8JÑ"JÜ"(ñ )à(,¯©×(9Ñ(9Ó(;ô)ó #ñ	-�Jð ×,Ñ,×3Ñ3°JÔ?à—K‘K Ô%à×*Ñ*Ð6à×-Ò-°Ñ2Ö-ð 7ð ,ð ûðúð ×Ñ˜dŸl™lÔ+Øûð'	ûô@ 0ò 4Ù/°°TÔ:Ø/3Ö,ûð4ûò Ø×0Ñ0Ð8Ð8Ð8Ø—‘”à—=‘=×(Ñ(¨LÒ8ð4Ü'Ø ¨d¯k©k¼V×=OÑ=OÐ.Oöøô 0ò 4Ù/°°TÔ:Ø/3Õ,ûð4úñ ,à"&§+¡+×"2Ñ"2×"8Ñ"8Ó":Ø#'×#3Ñ#3°d·o±oÑ#EÜ$(§I¡I¨d¯o©o×.DÑ.DÓ.FÓ$GØ"&×"5Ñ"5¸×8JÑ8JÑ"JÜ"(ñ )à(,¯©×(9Ñ(9Ó(;ô)ó #ñ	-�Jð ×,Ñ,×3Ñ3°JÔ?à—K‘K Ô%à×*Ñ*Ð6à×-Ò-°Ñ2Ö-ð 7ð ,ð ú÷j9ñ 9ûô4 ò AØ�Ø)-¯©�Ô&Ø×*Ñ*Ð2Ø.2¯o©o�DÔ+Ü04·±Ó0@�DÔ-úðAúsù   Áa Â+'q( Ñ%xÕ)x áq%á+hâr
 ã'c- ã-	dã6dädèq%èA4q êjêq ê
qê'p<ê2q ê6r
 ë5'l ì	l;ì&l6ì6l;ð<qñq ñ q%ñ%r
 ñ(	rñ1ròrò
;xó's.ó-xó.	tó7tôxôtôDxøxøAy3ù2y3c                 ó–   — | j                   j                  }|€J ‚|j                  | j                  t	        |j
                  «      «       y rN   )r   r  ÚdeleteÚ
pareto_keyr   rØ   )rk   râ   Údbs      rR   r  z ConjectureRunner.on_pareto_evict%  s7   € Ø�]‰]×#Ñ#ˆØˆ~Ðˆ~à
�	‰	�$—/‘/Ô#3°D·L±LÓ#AÕBrT   c                 óL   — | j                   j                  | j                  «      S )aP  Uses the tree to proactively generate a starting choice sequence
        that we haven't explored yet for this test.

        When this method is called, we assume that there must be at
        least one novel prefix left to find. If there were not, then the
        test run should have already stopped due to tree exhaustion.
        )r  Úgenerate_novel_prefixrö   rj   s    rR   r¬  z&ConjectureRunner.generate_novel_prefix+  s   € ð �y‰y×.Ñ.¨t¯{©{Ó;Ð;rT   c           
      ó4  — |j                   t        j                  k(  rd | _        | j                  }|€y |j                  j                  «       D ]#  \  }}|j                  |   j                  |«       Œ% |j                   t        j                  k(  r|xj                  dz  c_        ng|j                   t        j                  k(  r|xj                  dz  c_
        n4|j                   t        j                  k(  sJ ‚|xj                  dz  c_        d}d}d}|j                  |k  sJ ‚|j                  |k(  rd | _        y |j                  |k(  r@t        | j                  d|j                  › d|j                  › d�t        j                   «       |j                  |k(  r@t        | j                  d|j                  › d|j                  › d	�t        j"                  «       |j$                  }d
| j                  j&                  xs t)        d¬«      z  }	|t+        d|	j-                  «       «      kD  rï| j.                  j1                  t3        j4                  «       d«      sÀg }
|j                  r|
j                  |j                  › d�«       |j                  r|
j                  |j                  › d�«       dj7                  |
«      }
|
rd|
› d�nd}
t        | j                  d|j                  › d|d›d|
› d�|j9                  «       z   dz   t        j:                  «       y y y )Nrz   rK   é2   r�   zKGenerated inputs routinely consumed more than the maximum allowed entropy: z+ inputs were generated successfully, while aW   inputs exceeded the maximum allowed entropy during generation.

Testing with inputs this large tends to be slow, and to produce failures that are both difficult to shrink and difficult to understand. Try decreasing the amount of data generated, for example by decreasing the minimum size of collection strategies like st.lists().

If you expect the average size of your input to be this large, you can disable this health check with @settings(suppress_health_check=[HealthCheck.data_too_large]). See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.z:It looks like this test is filtering out a lot of inputs. aÙ   inputs were filtered out. 

An input might be filtered out by calls to assume(), strategy.filter(...), or occasionally by Hypothesis internals.

Applying this much filtering makes input generation slow, since Hypothesis must discard inputs which are filtered out and try generating it again. It is also possible that applying this much filtering will distort the domain and/or distribution of the test, leaving your testing less rigorous than expected.

If you expect this many inputs to be filtered out during generation, you can disable this health check with @settings(suppress_health_check=[HealthCheck.filter_too_much]). See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.r   é   )Úsecondsg      ð?Fz invalid inputsz2 inputs which exceeded the maximum allowed entropyz, and ú (ú)rn   z4Input generation is slow: Hypothesis only generated z valid inputs after z.2fz secondsz.
aW  

This could be for a few reasons:
1. This strategy could be generating too much data per input. Try decreasing the amount of data generated, for example by decreasing the minimum size of collection strategies like st.lists().
2. Some other expensive computation could be running during input generation. For example, if @st.composite or st.data() is interspersed with an expensive computation, HealthCheck.too_slow is likely to trigger. If this computation is unrelated to input generation, move it elsewhere. Otherwise, try making it more efficient, or disable this health check if that is not possible.

If you expect input generation to take this long, you can disable this health check with @settings(suppress_health_check=[HealthCheck.too_slow]). See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.)rÊ   r0   r€  r  rb   r‰   r‹   r�  rZ   rŽ  r[   r_  r\   rA   r   r   Údata_too_largeÚfilter_too_muchrl   Údeadliner   r‡   Útotal_secondsrù   ÚgetÚ	threadingÚ	get_identrŒ   r˜   Útoo_slow)rk   râ   Ústateru   rò   Úmax_valid_drawsÚmax_invalid_drawsÚmax_overrun_drawsÚ	draw_timeÚdraw_time_limitÚ	extra_strs              rR   r›  z(ConjectureRunner.record_for_health_check5  s  € ð �;‰;œ&×,Ñ,Ò,Ø&*ˆDÔ#à×'Ñ'ˆàˆ=Øà—O‘O×)Ñ)Ó+ò 	*‰DˆAˆqØ×Ñ˜QÑ×&Ñ& qÕ)ð	*ð �;‰;œ&Ÿ,™,Ò&Ø×"Ò" aÑ'Ö"Ø�[‰[œFŸN™NÒ*Ø×$Ò$¨Ñ)Ö$à—;‘;¤&§.¡.Ò0Ð0Ð0Ø×$Ò$¨Ñ)Õ$àˆØÐØÐà×%Ñ%¨Ò8Ð8Ð8à×!Ñ! _Ò4Ø&*ˆDÔ#Øà×#Ñ#Ð'8Ò8ÜØ—‘ð$Ø$)×$:Ñ$:Ð#;ð <'Ø',×'?Ñ'?Ð&@ð Aðô" ×*Ñ*ô'ð* ×#Ñ#Ð'8Ò8ÜØ—‘ØLØ×)Ñ)Ð*ð +Ø×1Ñ1Ð2ð 3ðô$ ×+Ñ+ô)ð2 ×)Ñ)ˆ	Ø˜tŸ}™}×5Ñ5ÒM¼È1Ô9MÑNˆàœ˜C ×!>Ñ!>Ó!@ÓAÒAð ×'Ñ'×+Ñ+¬I×,?Ñ,?Ó,AÀ5ÔIàˆIØ×'Ò'Ø× Ñ  E×$<Ñ$<Ð#=¸_Ð!MÔNØ×'Ò'Ø× Ñ Ø×/Ñ/Ð0ð 1.ð .ôð !Ÿ™ iÓ0ˆIÙ-6˜"˜Y˜K qÑ)¸BˆIäØ—‘ØFØ×)Ñ)Ð*Ð*>¸yÈ¸oð NØ#˜ð %ðð ×*Ñ*Ó,ñ-ð0ñô0 ×$Ñ$õ5ð Jð BrT   rx  c                 ó†   — | j                   �5| j                   j                  | j                  |«      t        |«      «       y y rN   )r  Úsaverx  r   )rk   rØ   rx  s      rR   r‰  zConjectureRunner.save_choicesµ  s6   € ð �=‰=Ð$Ø�M‰M×Ñ˜tŸ|™|¨GÓ4Ô6FÀwÓ6OÕPð %rT   c                 óØ   — t        |«      }| j                  j                  �I| j                  �<| j                  j                  j	                  | j                  | j
                  |«       y y y rN   )r   r   r  r÷   ÚmoveÚsecondary_key)rk   rØ   Úbuffers      rR   r’  z"ConjectureRunner.downgrade_choices»  sX   € Ü! 'Ó*ˆØ�=‰=×!Ñ!Ð-°$×2CÑ2CÐ2OØ�M‰M×"Ñ"×'Ñ'¨×(9Ñ(9¸4×;MÑ;MÈvÕVð 3PÐ-rT   c                 ót   — | j                   €J ‚|€| j                   S dj                  | j                   |f«      S )Nó   .)r÷   rŒ   )rk   rx  s     rR   rx  zConjectureRunner.sub_keyÀ  s?   € Ø× Ñ Ð,Ð,Ð,Øˆ?Ø×$Ñ$Ð$Ø�y‰y˜$×+Ñ+¨WÐ5Ó6Ð6rT   c                 ó$   — | j                  d«      S )Ns	   secondaryrw  rj   s    rR   rÆ  zConjectureRunner.secondary_keyÆ  s   € à�|‰|˜LÓ)Ð)rT   c                 ó$   — | j                  d«      S )Nrv  rw  rj   s    rR   r©  zConjectureRunner.pareto_keyÊ  s   € à�|‰|˜IÓ&Ð&rT   Úmessagec                 ój   — | j                   j                  t        j                  k\  rt	        |«       y y rN   )r   Ú	verbosityr   r}  rD   )rk   rÌ  s     rR   r}  zConjectureRunner.debugÎ  s%   € Ø�=‰=×"Ñ"¤i§o¡oÒ5Ü˜Õ ð 6rT   c                 óP   — | j                   j                  t        j                  k\  S rN   )r   rÎ  r   r}  rj   s    rR   Úreport_debug_infoz"ConjectureRunner.report_debug_infoÒ  s   € à�}‰}×&Ñ&¬)¯/©/Ñ9Ð9rT   c                 óÖ  — | j                   sy t        |j                  «      }|j                  t        j                  k(  r|› d|j
                  ›d�}na|j                  t        j                  k(  rDt        |t        «      r4t        |t        «      sJ ‚|› d|j                  j                  dd«      › d�}| j                  t        |j                  «      › d|› d|j                  › �«       y )Nr±  r²  úgave up becauseú?z choices -> z
	)rÐ  ÚreprrÊ   r0   r€  r‘  rŽ  r¾   r,   rÎ   r·  r}  rO   rØ   )rk   râ   rÊ   s      rR   rŠ  zConjectureRunner.debug_dataÖ  s¾   € Ø×%Ò%Øä�d—k‘kÓ"ˆØ�;‰;œ&×,Ñ,Ò,Ø�x˜r $×"9Ñ"9Ð!<¸AÐ>‰FØ�[‰[œFŸN™NÒ*¬z¸$ÄÔ/OÜ˜d¤NÔ3Ð3Ð3Ø�x˜r $§+¡+§/¡/Ð2CÀSÓ"IÐ!JÈ!ÐLˆFà�
‰
”c˜$Ÿ,™,Ó'Ð(¨°V°H¸DÀÇÁÀÐOÕPrT   c                 óÜ   ‡ — dt         dd fˆ fd„}‰ j                  j                  dk7  r;t        ‰ j                  t
        «      r!‰ j                  j                  rt        |«      S t        «       S )NÚobservationrc   c                 ó°   •— | j                   dk(  sJ ‚t        ‰j                  t        «      sJ ‚‰j                  s‰j                  j                  | «       y y )Nr½   )rî   r¾   rë   r<   r#  Úon_observation)rÖ  rk   s    €rR   rØ  z=ConjectureRunner.observe_for_provider.<locals>.on_observationä  sL   ø€ Ø×#Ñ# {Ò2Ð2Ð2ä˜dŸm™mÔ->Ô?Ð?Ð?à×6Ò6Ø—‘×,Ñ,¨[Õ9ð 7rT   r)  )	rB   r   r¹   r¾   rë   r<   Úadd_observability_callbackrC   r	   )rk   rØ  s   ` rR   Úobserve_for_providerz%ConjectureRunner.observe_for_providerã  s[   ø€ ð	:¬ð 	:¸õ 	:ð �M‰M×!Ñ! \Ò1ô ˜4Ÿ=™=Ô*;Ô<à—‘×8Ò8ä.¨~Ó>Ð>Ü‹}ÐrT   c                 ó´  — t        | j                  «      5  | j                  «       5  	 | j                  «        | j
                  j                  «       D ]  }| j                  |«       Œ | j                  d| j                  › d| j                  › d| j                  › d�«       d d d «       d d d «       y # t        $ r Y Œ…w xY w# 1 sw Y   Œ!xY w# 1 sw Y   y xY w)NzRun complete after z test cases (z valid) and z shrinks)r   r   rÚ  Ú_runr¶   r	  ri   rŠ  r}  r  rZ   rÿ   )rk   rò   s     rR   ÚrunzConjectureRunner.run÷  sÑ   € Ü˜DŸM™MÓ*ñ 
	¨D×,EÑ,EÓ,Gñ 
	ðØ—	‘	”ð ×0Ñ0×7Ñ7Ó9ò #�Ø—‘ Õ"ð#à�J‰JØ% d§o¡oÐ%6ð 7Ø×)Ñ)Ð*¨,°t·|±|°nÀHðNô÷
	÷ 
	ð 
	øô !ò Ùðú÷
	ð 
	ú÷ 
	ð 
	úsE   –C§C©B3¹A)CÂ"CÂ3	B?Â<CÂ>B?Â?CÃC	ÃCÃCc                 óH   — | j                   €y | j                  j                  S rN   )r÷   r   r  rj   s    rR   r  zConjectureRunner.database  s!   € à×ÑÐ$ØØ�}‰}×%Ñ%Ð%rT   c                 ón   — | j                   d uxr& t        j                  | j                  j                  v S rN   )r  r   r2  r   rC  rj   s    rR   Úhas_existing_test_casesz(ConjectureRunner.has_existing_test_cases
  s)   € Ø�}‰} DÐ(ÒP¬U¯[©[¸D¿M¹M×<PÑ<PÐ-PÐPrT   c                 ó  — | j                  «       �rz| j                  d«       | j                  j                  }| j                  }|€J ‚|€J ‚t        |j                  |«      t        ¬«      }t        j                  | j                  j                  v rdnd}t        dt        || j                  j                  z  «      «      }t        |«      }t        |«      |k  r†t        |j                  | j                   «      «      }|t        |«      z
  }t        |«      |k  r|}	n| j"                  j%                  ||«      }	|	j'                  t        ¬«       |j)                  |	«       d}
d}t+        |«      D ]á  \  }}||k\  r|
r nÕt-        |«      }|€|j/                  ||«       Œ/| j1                  |d	¬
«      }|j2                  t4        j6                  k7  r/|j/                  ||«       |j/                  | j                   |«       ŒŽ||k  r7d}
t9        |t:        «      rJ ‚t=        |«      t=        |j>                  «      k7  rd}| j                  j@                  rŒá n |
r	|rd| _!        | jD                  €J ‚t        |«      |k  �r| jF                  �s |t        |«      z
  }t        |j                  | jH                  «      «      }t        |«      |kD  r| j"                  j%                  ||«      }|j'                  t        ¬«       |D ]ˆ  }t-        |«      }|€|j/                  | jH                  |«       Œ-| j1                  |d	¬
«      }|| jD                  vr|j/                  | jH                  |«       |j2                  t4        j6                  k(  sŒˆ y yyyy)a7  If appropriate (we have a database and have been told to use it),
        try to reload existing test cases from the database.

        If there are a lot we don't try all of them. We always try the
        smallest test case in the database (which is guaranteed to be the
        last failure) and the largest (which is usually the seed test case
        which the last failure came from but we don't enforce that). We
        then take a random sampling of the remainder and try those. Any
        test cases that are no longer interesting are cleared out.
        z Reusing test cases from databaseNr}   gš™™™™™¹?rz   r€   FTrT  )rS  )%rà  r}  r   r  r÷   rˆ   ÚfetchrS   r   r3  rC  r‡   r#   r®   rO   r^   rÆ  rö   ÚsampleÚsortrS  rŠ   r   r¨  ri  rÊ   r0   r€  r¾   r1   r+   rØ   Úreport_multiple_bugsr  r  r	  r©  )rk   rª  Údb_keyÚcorpusÚfactorÚdesired_sizeÚprimary_corpus_sizeÚextra_corpusÚ	shortfallÚextraÚfound_interesting_in_primaryÚ%all_interesting_in_primary_were_exactr‘   r¦  rØ   râ   Údesired_extraÚpareto_corpuss                     rR   Úreuse_existing_test_casesz*ConjectureRunner.reuse_existing_test_cases  s'  € ð ×'Ñ'Õ)Ø�J‰JÐ9Ô:ð —‘×'Ñ'ˆBØ×&Ñ&ˆFØ�>Ð!�>ØÐ%Ð%Ð%ä˜BŸH™H VÓ,´(Ô;ˆFÜ"Ÿ^™^¨t¯}©}×/CÑ/CÑC‘SÈ!ˆFÜ˜q¤$ v°·±×0JÑ0JÑ'JÓ"KÓLˆLÜ"% f£+Ðä�6‹{˜\Ò)Ü# B§H¡H¨T×-?Ñ-?Ó$@ÓA�à(¬3¨v«;Ñ6�	ä�|Ó$¨	Ò1Ø(‘Eà ŸK™K×.Ñ.¨|¸YÓG�EØ—
‘
œx�
Ô(Ø—‘˜eÔ$ð ,1Ð(Ø48Ð1ä(¨Ó0ò ‘��8ØÐ+Ò+Ñ0LÙÜ,¨XÓ6�Ø�?à—I‘I˜f hÔ/ØØ×0Ñ0°ÀÐ0ÓH�Ø—;‘;¤&×"4Ñ"4Ò4Ø—I‘I˜f hÔ/Ø—I‘I˜d×0Ñ0°(Õ;àÐ.Ò.Ø7;Ð4Ü#-¨d´HÔ#=Ð=Ð=Ü& wÓ/´;¸t¿|¹|Ó3LÒLØDIÐAØŸ=™=×=Ó=Ùð'ñ( ,Ù8Ø>B�DÔ;ð
 ×$Ñ$Ð0Ð0Ð0ô �6‹{˜\Ó)°$×2MÓ2MØ ,¬s°6«{Ñ :�Ü $ R§X¡X¨d¯o©oÓ%>Ó ?�Ü�}Ó%¨Ò5Ø$(§K¡K×$6Ñ$6°}ÀmÓ$T�MØ×"Ñ"¤xÐ"Ô0à -ò 	�HÜ0°Ó:�GØ�ØŸ	™	 $§/¡/°8Ô<Ø Ø×4Ñ4°WÀVÐ4ÓL�DØ 4×#4Ñ#4Ñ4ØŸ	™	 $§/¡/°8Ô<Ø—{‘{¤f×&8Ñ&8Ó8Ùñ	ð 3NÐ)ðQ *rT   Úreasonc                 ó   — | j                   ry |j                  | j                  «      | j                  d<   | j                  r"t        | j                  «      | j                  d<   | j                  d|j                  › d�«       || _        t        ‚)NrÕ   rÖ   z
exit_with(r²  )
rø   r­   r   r  r  Údictr}  r�  Úexit_reasonr¶   )rk   ró  s     rR   r—  zConjectureRunner.exit_withr  ss   € Ø×ÒØØ-3¯_©_¸T¿]¹]Ó-Kˆ�‰Ð)Ñ*Ø×%Ò%Ü)-¨d×.HÑ.HÓ)IˆD�O‰O˜IÑ&Ø�
‰
�Z §¡˜}¨AÐ.Ô/Ø!ˆÔÜÐrT   c                 ó  — t         t        | j                  z  z   }| j                  | j                  j                  k\  s,| j
                  | j                  z   |kD  s| j                  «       ry| j                  syt        j                  | j                  j                  vs:| j                  j                  r$t        j                  «       | j                  z
  dkD  ryt!        | j"                  t$        «      sJ ‚t!        | j&                  t$        «      sJ ‚| j"                  | j&                  cxk  r| j(                  k  sJ ‚ J ‚| j(                  t*        k  xs3 | j(                  t-        | j"                  dz   | j&                  dz  «      k  S )NFTrK   éè  r€   )r˜  r™  rZ   r   r®   r[   r\   rš  r	  r   r4  rC  rå  r7  r”  r  r¾   r
  rœ   r  r  rL   Úmin)rk   Úinvalid_thresholds     rR   Úshould_generate_morez%ConjectureRunner.should_generate_more|  sK  € ô #Ô%6¸×9NÑ9NÑ%NÑNð 	ð ×!Ñ! T§]¡]×%?Ñ%?Ò?Ø×'Ñ'¨$×*AÑ*AÑAÐEVÒVØ×'Ñ'Ô)àð
 ×*Ò*Øô
 �L‰L §¡× 4Ñ 4Ñ4Ø—=‘=×5Ò5Ü�~‰~Ó $×";Ñ";Ñ;¸bÒ@àÜ˜$×1Ñ1´3Ô7Ð7Ð7Ü˜$×0Ñ0´#Ô6Ð6Ð6Ø×&Ñ&¨$×*@Ñ*@ÔSÀDÇOÁOÒSÐSÑSÐSÐSð
 �‰¤Ñ/ò 
°4·?±?ÄSØ×#Ñ# dÑ*¨D×,BÑ,BÀQÑ,FóF
ñ 4
ð 	
rT   c                 ó¾  — t         j                  | j                  j                  vry | j                  ry | j                  d«       | j                  «       sJ ‚d| _        | j                  t        dd ¬«      f«      }|j                  t        j                  kD  rat        |t        «      sJ ‚|j                  €C| j                   j#                  | j%                  |j&                  «      |j)                  «       «       |j                  t        j                  k(  sC|j                  t        j*                  k(  rKt        |t        «      r;|j,                  dz  t.        kD  r%t1        | j                  dt2        j4                  «       t7        «       | _        d}t;        | j                  j<                  dz  d	«      }| j                  j<                  d
k  r-t?        | j                  j<                  dz  |dz   d«      | _         nt?        d|dz   «      | _         d| _        | j                  «       �r×| jB                  s#| jE                  g «      }| jG                  |«       Œ@d| _$        | jK                  «       }| jL                  |k  rÝ| jN                  d|z  k  rË| j                  s¿|dk  rº| j                  |t        dd ¬«      fz   «      }|j                  t        j*                  k  r|dz  }ŒÌt        |t        «      sJ ‚d}tQ        |j&                  «      tQ        |«      z
  }tQ        |«      |dz  z   }| jE                  ||¬«      }		 | jR                  jU                  |	«       �ŒCd }| jE                  ||¬«      }| jG                  |«       |j                  t        j                  u r|�d|j^                  vrd|j^                  d<   | ja                  |«       | jc                  «       r| je                  «        | j                  «       r�ŒÖy y # tV        $ r Y nw xY wt        |	jX                  tZ        «      sJ ‚|	jX                  j\                  r�Œ,| j                  «       sy |	j&                  }�Œ)NzGenerating new test casesTÚsimplest)rÚ   r€   aê  The smallest natural input for this test is very large. This makes it difficult for Hypothesis to generate good inputs, especially when trying to shrink failing inputs.

Consider reducing the amount of data generated by the strategy. Also consider introducing small alternative values for some strategies. For example, could you mark some arguments as optional by replacing `some_complex_strategy`with `st.none() | some_complex_strategy`?

If you are confident that the size of the smallest natural input to your test cannot be reduced, you can suppress this health check with @settings(suppress_health_check=[HealthCheck.large_base_example]). See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.r   rK   r®  rø  rz   éÈ   Fr3  r   r]  rÒ  zBreduced max size for early test cases (avoids flaky health checks))3r   r3  r   rC  r	  r}  rû  r#  ri  r)   rÊ   r0   r_  r¾   r-   rr  r  r•  rM  rØ   rO  r�  ÚlengthrI   rA   r   Úlarge_base_examplerX   r  rù  r®   r‡   r  r*  ra  r¼   r  r¬  rZ   r  rO   r  rb  r3   r[  r4   ÚkilledrÎ   Úgenerate_mutations_fromÚ_should_optimise_nowÚ_run_optimise_pass)
rk   Ú	zero_dataÚ"consecutive_zero_extend_is_invalidÚsmall_test_case_caprâ   ÚprefixÚminimal_test_caseÚminimal_extensionrf  rh  s
             rR   Úgenerate_new_test_casesz(ConjectureRunner.generate_new_test_cases¥  sù  € Ü�>‰> §¡×!5Ñ!5Ñ5ØØ×&Ò&ð à�
‰
Ð.Ô/à×(Ñ(Ô*Ð*Ð*Ø.2ˆÔ+Ø×-Ñ-¬~¸jÐPTÔ/UÐ.WÓXˆ	Ø×ÑœfŸn™nÒ,Ü˜iÔ)9Ô:Ð:Ð:ð ×-Ñ-Ð5Ø×!Ñ!×%Ñ%Ø—O‘O I×$5Ñ$5Ó6¸	×8KÑ8KÓ8Môð ×ÑœvŸ~™~Ò-Ø×Ñ¤§¡Ò,Ü˜9Ô&6Ô7Ø× Ñ  1Ñ$¤{Ò2äØ—‘ðô  ×.Ñ.ô%ô* #3Ó"4ˆÔð  ./Ð*ô4 " $§-¡-×"<Ñ"<ÀÑ"BÀBÓGÐð
 �=‰=×%Ñ%¨Ò,Ü%(Ø—‘×*Ñ*¨aÑ/Ð1DÀqÑ1HÈ"ó&ˆDÕ"ô &)¨Ð.AÀAÑ.EÓ%FˆDÔ"Ø.3ˆÔ+à×'Ñ'Õ)ð ×0Ò0Ø×/Ñ/°Ó3�Ø×"Ñ" 4Ô(Øà",ˆDÔØ×/Ñ/Ó1ˆFà×%Ñ%Ð)<Ò<Ø—O‘O qÐ+>Ñ'>Ò>Ø×3Ò3Ø6¸Ò:à$(×$=Ñ$=Øœn¨Z¸tÔDÐFÑFó%Ð!ð %×+Ñ+¬f¯l©lÒ:Ø6¸!Ñ;Ð6Øô "Ð"3Ô5EÔFÐFÐFØ56Ð2Ü$'Ð(9×(AÑ(AÓ$BÄSÈÃ[Ñ$PÐ!Ü  ›[Ð+<¸qÑ+@Ñ@�
ð "×5Ñ5°fÈ*Ð5ÓU�
ðØ—I‘I×4Ñ4°ZÔ@Ùð" "�
à×+Ñ+¨FÀ
Ð+ÓKˆDØ×Ñ˜tÔ$ð —‘œvŸ~™~Ñ-ØÐ*Ø%¨T¯[©[Ñ8ð Yð —‘Ð-Ñ.ð ×(Ñ(¨Ô.ð ×(Ñ(Ô*Ø×'Ñ'Ô)ðe ×'Ñ'×)Ð)øôV 1ò Ùðúô
 " *×"5Ñ"5Ô7LÔMÐMÐMØ×&Ñ&×-Ò-Ùð ×0Ñ0Ô2Øà#×+Ñ+’s   Ì:O= Ï=	P	ÐP	c                 óÖ  ‡— |j                   t        j                  k\  �r5| j                  �€'| j                  }d}| j                  «       �r| j                  |dz   k  �ró|dk  �rì|j                  j                  }|sy | j                  j                  |«      }| j                  j                  t        |«      d«      \  \  }}\  }}	||kD  r||	f||fc\  }}\  }}	||cxk  r|	cxk  r|k  r#n n |j                  d | |j                  |d  z   }
nh| j                  j                  ||f||	fg«      \  }}|j                  || }|j                  d | |z   |j                  || z   |z   |j                  |	d  z   }
	 | j                  |
d¬«      Š‰t        u r|dz  }nŒt!        ‰t"        «      sJ ‚‰j                   |j                   k\  r\t%        |j                  «      t%        ‰j                  «      k7  r1t'        ˆfd„|j(                  j+                  «       D «       «      r‰}d}n|dz  }| j                  «       r| j                  |dz   k  r|dk  r�Œéy y y y y y y y # t        $ r	 |dz  }Y �Œ,w xY w)Nr   r   r€   T)rR  rz   c              3   óh   •K  — | ])  \  }}|‰j                   v xr ‰j                   |   |k\  –— Œ+ y ­wrN   )r‹  )rt   ru   rò   Únew_datas      €rR   rv   z;ConjectureRunner.generate_mutations_from.<locals>.<genexpr>ú  sI   øè ø€ ò  ñ !%  1ð  ×!=Ñ!=Ð=ò EØ (× <Ñ <¸QÑ ?À1Ñ DóEñ ùs   ƒ/2)rÊ   r0   rŽ  r  r  rû  ÚspansÚmutator_groupsrö   rÛ   rã  rˆ   rØ   ri  rà   r/   r¾   r-   r+   Úallr‹  r‰   )rk   râ   Úinitial_callsÚfailed_mutationsÚgroupsÚgroupÚstart1Úend1Ústart2Úend2Úattemptre   ÚendÚreplacementr  s                 @rR   r  z(ConjectureRunner.generate_mutations_fromg  s©  ø€ ð �K‰Kœ6Ÿ>™>Ó)ð ×'Ñ'Ñ/à ŸO™OˆMØ Ðð ×)Ñ)Õ+ð —O‘O }°qÑ'8Ó8Ø$¨Ó)àŸ™×2Ñ2�ÙØàŸ™×*Ñ*¨6Ó2�Ø15·±×1CÑ1CÄFÈ5ÃMÐSTÓ1UÑ.‘�˜¡ ¨Ø˜F’?Ø6<¸d°^ÀfÈdÀ^Ð2‘N�V˜T¡N V¨Tð ˜fÔ4¨Ô4°Õ4ðF #Ÿl™l¨7¨FÐ3°d·l±lÀ6À7Ð6KÑK‘Gà!%§¡×!3Ñ!3°f¸d°^ÀfÈdÀ^Ð4TÓ!U‘J�E˜3Ø"&§,¡,¨u°SÐ"9�Kð Ÿ™ W fÐ-Ø%ñ&àŸ,™, t¨FÐ3ñ4ð &ñ&ð Ÿ,™, t uÐ-ñ	.ð ð
Ø#×8Ñ8Øð *.ð  9ó  �Hð œwÑ&Ø$¨Ñ)Ñ$ä% hÔ0@ÔAÐAÐAà Ÿ™¨4¯;©;Ò6Ü'¨¯©Ó5¼ÀX×EUÑEUÓ9VÒVÜó  ð )-×(@Ñ(@×(FÑ(FÓ(Hô ô ð  (˜Ø+,Ñ(à(¨AÑ-Ð(ðI ×)Ñ)Ô+ð —O‘O }°qÑ'8Ò8Ø$¨Õ)ð 9ð	 ,ð
 *ð 9ð	 ,ð 0ð	 *øôt 'ò Ø$¨Ñ)Ð$Úðús   Å8I ÉI(É'I(c                 óP  ‡ — ‰ j                   sy‰ j                  ‰ j                  k\  ry‰ j                  duxro ‰ j                  j
                  dk\  xrT ‰ j                  ‰ j                  j
                  dz  k  xr, t        ˆ fd„‰ j                  j                  «       D «       «      S )zGDecide whether to run an optimisation pass at this point in generation.FTNrø  r€   c              3   ój   •K  — | ]*  \  }}|‰j                   j                  |t        «      kD  –— Œ, y ­wrN   )r  r·  r7   )rt   rB  Úscorerk   s      €rR   rv   z8ConjectureRunner._should_optimise_now.<locals>.<genexpr>  s5   øè ø€ ò á!�F˜Eð ˜×6Ñ6×:Ñ:¸6Ä8ÓLÕLñùs   ƒ03)
rD  rZ   r  r  r   r®   r  r^  r  r‰   rj   s   `rR   r  z%ConjectureRunner._should_optimise_now  sŸ   ø€ à×#Ò#ØØ× Ñ  D×$:Ñ$:Ò:Øð ×*Ñ*°$Ð6ò Ø—‘×*Ñ*¨dÑ2òà×(Ñ(¨4¯=©=×+EÑ+EÈÑ+JÑJòô ó à%)×%?Ñ%?×%EÑ%EÓ%Gôó ð		
rT   c                 ó’  — | j                   j                  dk  rd}nL| j                   j                  dz  | j                  z
  }| j                  t	        t        d|dz  «      |«      z   }d| _        | j                  }d}	 | j                  |¬«      }| j                  |z
  }| xj                  |z  c_        |�=|r;| j                  | j                   j                  dz  k  r| j                  |z   | _        nt        j                  | _        t        | j                  «      | _        d	| _        y# | j                  |z
  }| xj                  |z  c_        |�=|r;| j                  | j                   j                  dz  k  r| j                  |z   | _        nt        j                  | _        t        | j                  «      | _        d	| _        w xY w)
z6Run one optimisation pass, then schedule the next one.rø  Nr€   rþ  é   rB  F©Ú	max_validr3  )r   r®   r  rZ   rù  r‡   r  Úoptimise_targetsr  rf   r  rõ  r  r  )rk   r#  Ú	remainingÚstart_validÚimprovedÚspents         rR   r  z#ConjectureRunner._run_optimise_pass  s”  € à�=‰=×%Ñ%¨Ò,à‰IàŸ™×2Ñ2°aÑ7¸$×:RÑ:RÑRˆIØ×-Ñ-´´C¸¸YÈ!¹^Ó4LÈiÓ0XÑXˆIØ&ˆÔØ×+Ñ+ˆØˆð	-Ø×,Ñ,°yÐ,ÓAˆHà×)Ñ)¨KÑ7ˆEØ×$Ò$¨Ñ-Õ$ð Ð%ÙØ×,Ñ,¨t¯}©}×/IÑ/IÈQÑ/NÒNà)-×)>Ñ)>ÀÑ)F�Õ&ä)-¯©�Ô&Ü-1°$×2LÑ2LÓ-MˆDÔ*Ø",ˆDÕøð ×)Ñ)¨KÑ7ˆEØ×$Ò$¨Ñ-Õ$ð Ð%ÙØ×,Ñ,¨t¯}©}×/IÑ/IÈQÑ/NÒNà)-×)>Ñ)>ÀÑ)F�Õ&ä)-¯©�Ô&Ü-1°$×2LÑ2LÓ-MˆDÔ*Ø",ˆDÕús   Á?D+ Ä+BGr"  r#  c                óº  — | j                   syddlm} d}d}	 | j                  }d}t	        | j
                  j                  «       «      D ]J  \  }}|�| j                  |k\  r|c S  || |||¬«      }	|	j                  «        |	j                  dkD  sŒGd}d}ŒL | j                  r	 |S |dz  }|rŒ–| j                  r| j                  «        || j                  k(  r	 |S ŒÄ)zÇIf any target observations have been made, attempt to optimise them
        all, stopping early if ``self.valid_test_cases`` reaches ``max_valid``.
        Returns whether this made any improvements.Fr   )Ú	OptimiserrK   T)Úmax_improvementsr€   )rD  Ú(hypothesis.internal.conjecture.optimiserr*  r  r^   r  r‰   rZ   rÝ  Úimprovementsr	  r  Úpareto_optimise)
rk   r#  r*  r'  r+  Ú
prev_callsÚany_improvementsrB  râ   Ú	optimisers
             rR   r$  z!ConjectureRunner.optimise_targets4  sÿ   € ð ×#Ò#ØÝFð ˆØÐØØŸ™ˆJà$Ðä $ T×%MÑ%M×%SÑ%SÓ%UÓ Vò 	$‘�˜ØÐ(¨T×-BÑ-BÀiÒ-OØ#’OÙ%Ø˜$ Ð9Iô�	ð —‘”Ø×)Ñ)¨AÓ-Ø'+Ð$Ø#‘Hð	$ð ×*Ò*Øð ˆð  Ñ!ÐáØà×)Ò)Ø×$Ñ$Ô&à˜TŸ_™_Ò,ØØˆð; rT   c                 óP   — | j                   �t        | «      j                  «        y y rN   )r  r9   rÝ  rj   s    rR   r.  z ConjectureRunner.pareto_optimiseb  s$   € Ø×ÑÐ(Ü˜DÓ!×%Ñ%Õ'ð )rT   c                 ó€  — d| _         | j                  d«      5  | j                  «        d d d «       | j                  r| j	                  t
        j                  «       d| _         | j                  d«      5  | j                  «        t        j                  | j                  j                  vrd| _        | j                  «        d d d «       d| _         | j                  d«      5  | j                  «        d d d «       | j	                  t
        j                  «       y # 1 sw Y   ŒóxY w# 1 sw Y   ŒfxY w# 1 sw Y   ŒAxY w)NTr2  Fr3  rB  r4  )r#  r@  rò  r  r—  r©   r±   r  r   r3  r   rC  r  r$  Úshrink_interesting_test_casesrj   s    rR   rÜ  zConjectureRunner._runf  s  € à.2ˆÔ+Ø×'Ñ'¨Ó0ñ 	-Ø×*Ñ*Ô,÷	-ð
 ×2Ò2Ø�N‰Nœ:×.Ñ.Ô/à.3ˆÔ+Ø×'Ñ'¨
Ó3ñ 	(Ø×(Ñ(Ô*ô �~‰~ T§]¡]×%9Ñ%9Ñ9Ø&.�Ô#Ø×%Ñ%Ô'÷	(ð /3ˆÔ+Ø×'Ñ'¨Ó1ñ 	1Ø×.Ñ.Ô0÷	1à�‰”z×*Ñ*Õ+÷+	-ð 	-ú÷	(ð 	(ú÷	1ð 	1ús$   ™DÁ5AD(Ã#D4ÄD%Ä(D1Ä4D=rZ  r  r[  r\  c                óÚ   — | j                   rt        n| j                  }|xs | j                  j	                  «       }| j
                  s
t        «       }t        ||||| j                  ¬«      S )N)r  r[  rë   r\  rö   )	r#  r;   rë   r  Únew_observerr*  r.   r,   rö   )rk   r  r[  r\  rë   s        rR   ra  z$ConjectureRunner.new_conjecture_data€  sd   € ð #'×"EÒ"EÕÈ4Ï=É=ð 	ð Ò7˜tŸy™y×5Ñ5Ó7ˆØ×,Ò,Ü#“~ˆHäØØØØ#Ø—;‘;ô
ð 	
rT   c                 óŒ  ‡ ‡— t         j                  ‰ j                  j                  vs‰ j                  sy‰ j                  d«       t        j                  «       t        z   ‰ _	        t        ‰ j                  j                  «       d„ ¬«      D ]Š  }|j                  t        j                  k(  sJ ‚‰ j                  |j                   «      }‰ j#                  |«       |j                  t        j                  k7  sŒl‰ j%                  t&        j(                  «       ŒŒ ‰ j+                  «        t-        ‰ j.                  «      t-        ‰ j                  «      k  rðt1        ˆ fd„‰ j                  j3                  «       D «       d„ ¬«      \  Š}‰ j                  d‰›d|j                   › �«       ‰ j                  j4                  s‰ j                  |d	„ «       yd
t6        t8        z  dt:        fˆfd„}‰ j                  ||«       ‰ j.                  j=                  ‰«       t-        ‰ j.                  «      t-        ‰ j                  «      k  rŒïyy)a"  If we've found interesting test cases, try to replace each of them
        with a minimal interesting test case with the same interesting_origin.

        We may find one or more test cases with a new interesting_origin
        during the shrink process. If so we shrink these too.
        NzShrinking failing test casesc                 ó,   — t        | j                  «      S rN   )r?   rê   ©Úds    rR   r`   z@ConjectureRunner.shrink_interesting_test_cases.<locals>.<lambda>¤  s   € ÄÈÏÉÓ@Q€ rT   r}   c              3   óH   •K  — | ]  \  }}|‰j                   vr||f–— Œ y ­wrN   )r  )rt   ru   rò   rk   s      €rR   rv   zAConjectureRunner.shrink_interesting_test_cases.<locals>.<genexpr>°  s/   øè ø€ ò á˜˜1Ø × 6Ñ 6Ñ6ð ˜”Fñùs   ƒ"c                 ó`   — t        | d   j                  «      t        t        | d   «      «      fS )Nrz   r   )r?   rê   rS   rÔ  r{   s    rR   r`   z@ConjectureRunner.shrink_interesting_test_cases.<locals>.<lambda>µ  s%   € ¤¨¨A©¯©Ó 5´xÄÀRÈÁUÃÓ7LÐM€ rT   z
Shrinking rq   c                 ó<   — | j                   t        j                  k(  S rN   )rÊ   r0   r€  r9  s    rR   r`   z@ConjectureRunner.shrink_interesting_test_cases.<locals>.<lambda>¼  s   € ¨a¯h©h¼&×:LÑ:LÑ.L€ rT   r:  rc   c                 ó~   •— | j                   t        j                  k  ryt        t        | «      } | j
                  ‰k(  S )NF)rÊ   r0   r€  r   r-   r‘  )r:  rB  s    €rR   Ú	predicatezAConjectureRunner.shrink_interesting_test_cases.<locals>.predicate¿  s6   ø€ Ø—8‘8œf×0Ñ0Ò0Ø ÜÔ)¨1Ó-�Ø×+Ñ+¨vÑ5Ð5rT   )r   r4  r   rC  r	  r}  r7  r8  rH   r   rˆ   ri   rÊ   r0   r€  ra  rØ   r¼   r—  r©   r²   Úclear_secondary_keyrO   r  rù  r‰   rå  r-   r1   rí   rŒ  )rk   Ú	prev_datarâ   rP  r?  rB  s   `    @rR   r4  z.ConjectureRunner.shrink_interesting_test_cases–  sÑ  ù€ ô �<‰<˜tŸ}™}×3Ñ3Ñ3¸4×;VÒ;VØà�
‰
Ð1Ô2Ü)-×):Ñ):Ó)<Ô?TÑ)TˆÔ&äØ×'Ñ'×.Ñ.Ó0Ñ6Qô
ò 	1ˆIð ×#Ñ#¤v×'9Ñ'9Ò9Ð9Ð9Ø×+Ñ+¨I×,=Ñ,=Ó>ˆDØ×Ñ˜tÔ$Ø�{‰{œf×0Ñ0Ó0Ø—‘œz×/Ñ/Õ0ð	1ð 	× Ñ Ô"ä�$×(Ñ(Ó)¬C°×0KÑ0KÓ,LÒLÜ óà $× ;Ñ ;× AÑ AÓ Côñ
 Nô‰NˆF�Fð �J‰J˜ F :¨R°·±Ð/?Ð@ÔAà—=‘=×5Ò5ð —‘˜FÑ$LÔMØð6Ô-´Ñ8ð 6¼Tõ 6ð �K‰K˜ 	Ô*à×"Ñ"×&Ñ& vÔ.ô3 �$×(Ñ(Ó)¬C°×0KÑ0KÓ,LÕLrT   c                 ó8  — | j                  «       �r| j                  j                  }|€J ‚t        |j	                  | j
                  «      t        ¬«      }|D ]º  }t        |«      }|€|j                  | j
                  |«       Œ-| j                  j                  «       D �ch c]  }t        |j                  «      ’Œ }}t        |«      t        t        t        |«      «      kD  r y | j                  |«       |j                  | j
                  |«       Œ¼ y y c c}w )Nr}   )rà  r   r  rˆ   râ  rÆ  rS   r   r¨  r	  ri   r   rØ   r‡   Úmapri  )rk   rª  rç  r¢   rØ   rò   Úprimarys          rR   r@  z$ConjectureRunner.clear_secondary_keyÉ  sý   € Ø×'Ñ'Õ)ð —‘×'Ñ'ˆBØ�>Ð!�>ô ˜BŸH™H T×%7Ñ%7Ó8¼hÔGˆFØò 1�Ü,¨QÓ/�Ø�?Ø—I‘I˜d×0Ñ0°!Ô4Øð "×8Ñ8×?Ñ?ÓAöàô % Q§Y¡YÕ/ð�ð ô ˜A“;¤¤S¬°7Ó%;Ó!<Ò<Ùà×)Ñ)¨'Ô2ð —	‘	˜$×,Ñ,¨aÕ0ñ!1ð *ùò"s   Â!DÚinitialr?  Úallow_transitionc                 ó`   — | j                  |||«      }|j                  «        |j                  S rN   )Únew_shrinkerr4  Úshrink_target)rk   rE  r?  rF  rQ   s        rR   r4  zConjectureRunner.shrinkè  s,   € ð ×Ñ˜g yÐ2BÓCˆØ	�‰Œ
Ø�‰ÐrT   c           	      ó†   — t        | |||t        j                  | j                  j                  v | j
                  dk(  ¬«      S )NrB  )rF  r5  Úin_target_phase)r=   r   r5  r   rC  r  )rk   rE  r?  rF  s       rR   rH  zConjectureRunner.new_shrinkerô  sA   € ô ØØØØ-Ü—M‘M T§]¡]×%9Ñ%9Ð9Ø ×/Ñ/°8Ñ;ô
ð 	
rT   c                 óH   ‡ ‡‡— t        ˆˆˆ fd„‰ j                  D «       «      S )z«Return a collection of choice sequence nodes which cause the test to pass.
        Optionally restrict this by a certain prefix, which is useful for explain mode.
        c              3   óð   •K  — | ]m  }‰j                   |   xŠj                  t        j                  u r@t	        t        t        ‰«      j                  ‰«      rt        t        ‰«      j                  –— Œo y ­wrN   )r  rÊ   r0   r�  r6   r   r-   rê   )rt   r~   r  rP  rk   s     €€€rR   rv   z<ConjectureRunner.passing_choice_sequences.<locals>.<genexpr>  sa   øè ø€ ò 
àØ×+Ñ+¨CÑ0Ð0�×8Ñ8¼F¿L¹LÑHÜœ4Ô 0°&Ó9×?Ñ?ÀÔHô Ô! 6Ó*×0Õ0ñ
ùs   ƒA3A6)Ú	frozensetr  )rk   r  rP  s   ``@rR   Úpassing_choice_sequencesz)ConjectureRunner.passing_choice_sequences  s%   ú€ ô õ 
à×(Ñ(ô
ó 
ð 	
rT   )rc   NrN   )NN)r_   )Lr™   rš   r›   r   r,   r´   r   ré   rí   rõ  rœ   r$  r   r   r'  r    r*  rž   r.  r0  r   r@  rD  rš  r~  r   r(   r  r&   rM  rQ  r)   r*   r-   r1   ri  r¼   r  r¬  r›  r‰  r’  rx  rÆ  r©  r}  rÐ  rŠ  r   rÚ  rÝ  r   r  rà  rò  r©   r—  rû  r  r  r  r  r$  r.  rÜ  r.   ra  r4  r@  r>   r4  r=   rH  r'   rN  rO  r_   rT   rR   rõ   rõ      s$  „ ð
 %)Ø $Ø%)Ø#Ø15òS:à Ð 0°$Ð 6Ñ7ðS:ð ˜T‘/ð	S:ð
 ˜‘ðS:ð ˜d‘lðS:ð ðS:ð ˜S $˜Y™¨$Ñ.ðS:ð 
óS:ðj ð;Øð;à	Ð#Ñ	$ò;ó ð;ð ð
¨$ò 
ó ð
ð
6°ð 6¸ó 6ó/ð ðHØÐEÑFðHà	Ð#Ñ	$òHó ðHð@ ð4 ò 4ó ð4ðH Tó Hð¨nð Àó ð.$ (¨7Ñ"3ð $¸¸jÈ#¸oÑ8Nó $ð(˜>ð (¨dó (ð "'Ø()òU à˜' NÑ2°YÑ>Ñ?ðU ð ð	U ð
 �g˜f‘oÑ%ðU ð 
˜HÑ	$óU ðnx+ .ð x+°Tó x+ðtCÐ$4ð C¸ó Cð< u¨W°c¨\Ñ':ó <ð~¨Nð ~¸tó ~ðB CGñQØ Ñ(ðQØ38¸4±<ðQà	óQðW¨°'Ñ):ð W¸tó Wð
7˜u t™|ð 7°ó 7ð ð*˜uò *ó ð*ð ð'˜Eò 'ó ð'ð!˜Sð ! Tó !ð ð: 4ò :ó ð:ðQ˜~Ð0@Ñ@ð QÀTó QðÐ&<ó ó(ð ð&˜/¨DÑ0ò &ó ð&ð
Q¨ó QócðJ 
ð ¨tó ð'
 dó '
óR@*ðD\.¨NÐ=MÑ,Mð \.ÐRVó \.ð|
 dó 
ó$-ð: ;?ò ,¨S°4©Zð ,À4ó ,ó\(ó,ð< )-Ø"&ò
à˜ >Ñ1°IÑ=Ñ>ð
ð  Ñ%ð	
ð
 ˜4‘Zð
ð 
ó
ó,1/óf1ðD .2ð ñ
àÐ"2Ñ2ð
ð $ dÑ*ð
ð
 �nÐ'7Ñ7¸ÐHÈ$ÐNÑOÐRVÑVð
ð 
Ð*Ñ	*ó
ð .2ð ñ
àÐ"2Ñ2ð
ð $ dÑ*ð
ð
 �nÐ'7Ñ7¸ÐHÈ$ÐNÑOÐRVÑVð
ð 
ó
ð$ .0ñ
Ø˜zÑ*ð
à	�5˜ S˜Ñ)Ñ	*ô
rT   rõ   c                   ó   — e Zd Zy)rà   Nr·   r_   rT   rR   rà   rà     r¸   rT   rà   )‚rÁ   rf   r¸  r7  Úcollectionsr   Úcollections.abcr   r   r   Ú
contextlibr   r   r	   Údataclassesr
   r   Údatetimer   Úenumr   rö   r   Útypingr   r   r   r   r   r)  r   r   r   r   r´   Úhypothesis._settingsr   Úhypothesis.databaser   r   r   Úhypothesis.errorsr   r   r   r   r    r!   Úhypothesis.internal.cacher"   Úhypothesis.internal.compatr#   r$   Ú%hypothesis.internal.conjecture.choicer%   r&   r'   r(   r)   r*   r+   Ú#hypothesis.internal.conjecture.datar,   r-   r.   r/   r0   r1   Ú'hypothesis.internal.conjecture.datatreer2   r3   r4   Ú)hypothesis.internal.conjecture.junkdrawerr5   r6   Ú%hypothesis.internal.conjecture.paretor7   r8   r9   Ú(hypothesis.internal.conjecture.providersr:   r;   r<   Ú'hypothesis.internal.conjecture.shrinkerr=   r>   r?   Úhypothesis.internal.escalationr@   Úhypothesis.internal.healthcheckrA   Ú!hypothesis.internal.observabilityrB   rC   Úhypothesis.reportingrD   rE   rF   rG   rœ   r�   rH   rI   rJ   rL   r  rS   rX   rŸ   r  r§   r˜  r™  r©   Ú	Exceptionr¶   rž   rî   rÇ   rÉ   r^   rÏ   rõ  rÔ   rÜ   rÞ   rí   ró   rõ   rà   r_   rT   rR   ú<module>ri     sk  ðô Û Û Û Ý #ß 9Ñ 9ß JÑ Jß (Ý Ý Ý ß BÕ Bç JÓ JÝ /ß UÑ U÷÷ õ 5ß 5÷÷ ñ ÷÷ ÷ñ ÷
÷ YÑ X÷ñ ÷
 YÑ XÝ <Ý =ß Vß DÑ Dð €ˆSÓ ð !Ð �sÓ  ð €ˆSÓ Ø€
ˆCÓ Ø€�Ó ñ
 ‹(€òñ �˜eÔ$÷&ð &ó %ð&ðR˜eð ¨ð °%¸¸S¸±/ó ñ -@À$È$Ô,OÑ )Ð Ð)ô-�ô -ô	�Iô 	ð
˜3ð 
Ð#4°tÐ<MÑ7NÑ#Nó 
ô"�	ô ñ Øà!Ø˜9‘oØ Ø!ñ	ó€ñ Øà% oÑ6Ø" ?Ñ3Ø# OÑ4Ø$ _Ñ5Ø& sÑ+Ø˜t C¨ JÑ/Ñ0Ø˜cÑ"ñó€ðØ�g Ñ.°Ñ:Ñ;ðàˆ4�Zóô"�lô ð'˜.ð '¸$ð 'À4ó '÷6p
ñ p
ôf/	�iõ 	rT   