Ë
    ¾Ž±jU+  ã                  óè  — d Z ddlmZ ddlZddlZddlmZ ddlZddlZ	ddl
Z ee«      j                  «       j                  d   Zej                   j#                  d ee«      «       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 dd
lmZm Z m!Z! d„ Z"d„ Z#d„ Z$e%dk(  rU ejL                  e ¬«      Z'e'jQ                  de¬«        e$e'jS                  «       jT                  j                  «       «       yy)zGReconstruct saved research measurements from complete execution traces.é    )ÚannotationsN)ÚPathé   )Údigest)Úconfirmed_score_structure)Ú_score_to_signals)ÚDELTASÚ
THRESHOLDSÚ
TRACE_KEYSÚ
write_json)Ú	evaluatorÚhashesÚprotected_hashesc           
     óÂ  — t        j                  | «      j                  d«      j                  t        «      dz  }t         j                  t        j
                  |«      |f   }| t        j                  |«      k\  }|�Gt        j                  |«      }|t        |«      dk(  r| |t        j                  dd«      z   k  n| |k  z  }|d   |   }t         j                  dt        j                  d|z   «      f   }	|	t         j                  j                  |	«      z  dz
  j                  «       }
||   j                  «       dz  }|	d	   d
kD  r.t        j                  t        j                  |	d	   «      |z  «      nd}t!        |	d	   dz
  dz  |
dz  |
d
k  r|t#        |
«      z  nd t%        |d   |   j                  «       «      t%        |d   |   j                  «       «      ¬«      S )Nztimedelta64[ns]g    eÍÍAé
   r   ÚDÚ
net_returnç      ð?g    ~~Aéÿÿÿÿr   g      ð¿éd   Úexecute_entryÚexecute_exit)Úpnl_pctÚdd_pctÚcalmarÚentriesÚexits)ÚnpÚdiffÚastypeÚfloatÚr_ÚmedianÚ
datetime64ÚlenÚtimedelta64ÚcumprodÚmaximumÚ
accumulateÚminÚsumÚexpm1ÚlogÚdictÚabsÚint)ÚtimesÚtraceÚstartÚendÚ	intervalsÚ	durationsÚmaskÚboundÚreturnsÚequityÚddÚyearsÚcagrs                úC/Users/jameslopez/projects/TradingBot25/tools/verify_mlp_revisit.pyÚmeasurer?      s¡  € Ü—‘˜“×%Ñ%Ð&7Ó8×?Ñ?ÄÓFÈÑL€IÜ—‘”b—i‘i 	Ó*¨IÐ5Ñ6€IØ”B—M‘M %Ó(Ñ(€DØ
€Ü—‘˜cÓ"ˆØ¼#¸c»(Àbº.�˜¤§¡¨q°#Ó 6Ñ6Ò6ÈeÐW\ÉnÑ\ˆØ�LÑ! $Ñ'€GÜ�U‰U�2”r—z‘z ! g¡+Ó.Ð.Ñ/€FØ
”2—:‘:×(Ñ(¨Ó0Ñ
0°1Ñ
4×	9Ñ	9Ó	;€BØ�d‰O×ÑÓ! ^Ñ4€EØ39¸"±:À²>Œ2�8‰8”B—F‘F˜6 "™:Ó&¨Ñ.Ô/Às€DÜ˜ ™ a™¨3Ñ.°r¸C±xØ)+¨aª�tœc "›g’~°TÜ˜E /Ñ2°4Ñ8×<Ñ<Ó>Ó?Ü˜% Ñ/°Ñ5×9Ñ9Ó;Ó<ô>ð >ó    c                ó”  — |d   j                  t        «      }|d   j                  t        «      }|d   }t        j                  d|d d f   }t        j                  ||z  «      rJ ‚t        j
                  j                  |||j                  t        «      z   |j                  t        «      z
  «       t        j                  d|dd  |d d z  dz
  f   }||z  dt        j                  d	|d d f   j                  t        «      |j                  t        «      z   z  z
  }	t        j
                  j                  |d
   |	dd¬«       t        j                  |d   «      D ]i  }
d|
vsJ d«       ‚t        | ||
d   |
d   «      }|j                  «       D ]5  \  }}|€|
|   €ŒJ ‚t        j
                  j                  ||
|   dd¬«       Œ7 Œk y )Nr   r   Úpositionr   r   ç        r   g{®Gázt?Fr   g›+¡†›„=)ÚrtolÚatolÚPeriod_MeasurementsÚcoveragezUnexpected missing periodr3   r4   ç:Œ0âŽyE>ç»½×Ùß|Û=©rE   rD   )r    Úboolr   r"   ÚanyÚtestingÚassert_array_equalr0   r!   Úassert_allcloseÚjsonÚloadsr?   Úitems)r1   Úcloser2   ÚrowÚentryÚexit_rB   ÚpreviousÚmarket_returnsÚexpectedÚperiodÚmetricsÚkeyÚvalues                 r>   Úverify_tracer^   '   s²  € Ø�/Ñ"×)Ñ)¬$Ó/€EØ�.Ñ!×(Ñ(¬Ó.€EØ�ZÑ €HÜ�u‰u�Q˜  "˜Ð%Ñ&€HÜ�v‰v�e˜e‘mÔ$Ð$Ð$Ü‡J�J×!Ñ! (¨H°u·|±|ÄCÓ7HÑ,HÈ5Ï<É<ÔX[ÓK\Ñ,\Ô]Ü—U‘U˜2˜u Q R˜y¨5°°"¨:Ñ5¸Ñ9Ð9Ñ:€NØ˜.Ñ(¨4´2·5±5¸ÀÀcÀrÀ
Ð9JÑ3K×3RÑ3RÔSXÓ3YÐ\a×\hÑ\hÔinÓ\oÑ3oÑ+pÑp€HÜ‡J�J×Ñ˜u \Ñ2°HÀ1È5ÐÔQÜ—*‘*˜SÐ!6Ñ7Ö8ˆØ Ñ'ÐDÐ)DÓDÐ'Ü˜% ¨¨w©¸À¹ÓGˆØ!Ÿ-™-ž/‰JˆC�Øˆ}Ø˜c‘{Ñ*Ð*Ð*ä—
‘
×*Ñ*¨5°&¸±+ÀDÈuÐ*ÕUñ	 *ñ 9r@   c                óÚ  ‡8‡9‡:— t        j                  | dz  j                  «       «      }|d   sJ ‚t        j                  | dz  j                  «       «      }|d   j                  «       D ]/  \  }}t	        t
        |z  j                  «       «      |k(  rŒ*J |«       ‚ t        j                  | dz  j                  «       «      }|t        «       k(  sJ ‚t        j                  | dz  j                  «       «      }|t        |D �cg c]  }t
        |z  ‘Œ c}«      k(  sJ ‚t
        dz  }t	        |j                  «       «      |d   k(  sJ ‚t        j                  |«      }	|	j                  j                  j                  «       j                  j                  «       |	_        t        j                  |	j                   t        j"                  j$                  j'                  |	j                   «      rd	nd ¬
«      |	d<   |	j(                  d d }	|	j*                  j-                  «       }
|	j                   j-                  d¬«      }t        j                  | dz  j                  «       «      }t/        |D �ch c]  }|d   ’Œ	 c}«      t/        |«      k(  sJ ‚t1        «       Š8‰8j3                  d|D �cg c]  }|d   ‘Œ	 c}«      ‰8_        i Š:ˆ8ˆ:fd„}g }d|d   v �rMt        j                  | dz  j                  «       «      }t        j                  | dz  j                  «       «      }|D �ci c]  }|d   |d   |d   f|“Œ }}|D �ci c]  }|d   |d   |d   f|“Œ }}|D �]Ë  }|d   }t7        j8                  | |› d�z  «      5 }t6        j:                  j=                  |j?                  d«      |d   «       t@        D �ci c]  }||d|› �   “Œ }}||d df   }|d   |d    dkD  k(  sJ ‚tC        ||
||«        |||«       d!D �ci c]  }|g “Œ }}tE        tF        «      D �]”  \  }}tE        tH        «      D �]{  \  }} t@        D �ci c]  }|||› d"|› d"|› �   “Œ }!}|||| f   }"‰8jJ                  D ]%  }||k(  r|"|   ||   | z   k(  rŒJ ‚|"|   ||   k(  rŒ%J ‚ tC        ||
|!|"«        ||!|"«       |||| f   }#d#D �]õ  Š9tM        ˆ9fd$„t        j                  |"d%   «      D «       «      }$tO        |||$d&   |$d'   «      }%tO        ||!|$d&   |$d'   «      }&|t7        jP                  |$d&   «      k\  }'|$d'   r5|'|t7        jP                  |$d'   «      t7        jR                  d(d)«      z   k  z  }'|d*   |!d*   k7  |d+   |!d+   k7  z  |'z  }(|#‰9   }|d,   tU        |(jW                  «       «      k(  sJ ‚|d-   tU        |d.   |!d.   k7  |'z  jW                  «       «      k(  sJ ‚|d/   tU        |d0   |!d0   k7  |'z  jW                  «       «      k(  sJ ‚d1})d2D ]c  \  }}*|%|   �|&|   �|&|   |%|   z
  nd }+|+�;t6        j:                  jY                  |+|d3   |   d4d5¬6«       |)t[        |+«      |*k\  z  })ŒZ|d3   |   €ŒcJ ‚ |)|d7   k(  sJ ‚‰9d8k(  s�ŒÀ|t[        | «         j]                  tU        |(jW                  «       «      |)f«       �Œø �Œ~ �Œ— |j                  «       D ]Y  \  },}-|d9   t        |,«         }|t_        ta        d:„ |-D «       «      ta        d;„ |-D «       «      tc        d<„ |-D «       «      ¬=«      k(  rŒYJ ‚ 	 d d d «       �ŒÎ |D �.cg c]
  }.|.d>   sŒ	|.‘Œ }/}.d?gte        |/D �.ch c]  }.|.d@   ’Œ	 c}.«      z   D ]¤  }0|0d?k(  r|/n|/D �.cg c]  }.|.d@   |0k(  sŒ|.‘Œ c}.}1d!D ]}  },dAD ]v  }2dBD �ci c]  }|d“Œ }3}|1D ]7  }|d9   t        |,«         |2   }4|3|d   |4k(  rdCndD|d   rdEndFz   xx   d(z  cc<   Œ9 |j]                  t_        dS|0|,|2t/        |1«      dGœ|3¤Ž«       Œx Œ Œ¦ t/        |«      t/        |«      dHz  k(  sáJ ‚|D ]Ê  }"t        j                  | |"dI   › dJ�z  «      }!t6        j:                  j=                  |t        j                  |!j                   «      j-                  «       «       tC        ||
t@        D �ci c]  }||!|   j-                  «       “Œ c}|"«        |t@        D �ci c]  }||!|   j-                  «       “Œ c}|"«       ŒÌ t/        |«      dKk(  sJ ‚t_        dLt/        |«      t/        |«      dMz  dLdLt/        |«      |t	        tg        th        «      j                  «       «      te        | jk                  «       «      D �ci c]G  }|jm                  «       sŒ|jn                  dNk7  sŒ$|jn                  t	        |j                  «       «      “ŒI c}¬O«	      }5tq        | dNz  |5«       ts        t        jt                  |5j                  «       D �6�7ci c]  \  }6}7|6dPvsŒ|6|7“Œ c}7}6dQ¬R«      «       y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w # 1 sw Y   �ŒíxY wc c}.w c c}.w c c}.w c c}w c c}w c c}w c c}w c c}7}6w )TNzverification.jsonÚcompletezcomparison_manifest.jsonÚsource_hasheszprotected_hashes.jsonzreference_hashes.jsonz!data/mlp/COINBASE_BTCUSD, 360.csvÚdata_sha256Ús)ÚunitÚtimer   zdatetime64[ns])Údtypezresults.jsonÚEvaluation_KeyÚ6HÚmlp_weights_filec                óJ  •— |d   }|‰vr‰j                  d|«      ‰|<   ‰|   \  }}}}‰j                  j                  |   |d   k(  sJ ‚‰j                  D �ci c]  }|||   “Œ
 }}‰j                  |d<   i }	|d   j                  d«      rTt        |d   j                  dd«      d   «      }
t        |j                  j                  «       |
|
¬	«      j                  |	d
<   t        |j                  «       ||||fi |	¤Ž}t        d d D ](  }t        j                   j#                  | |   ||   «       Œ* |j$                  |j&                  t)        j*                  ‰j,                  «      t)        j.                  d¬«      z   k  df   j                  «       }t        j0                  t        j2                  |d d …d f   t        j4                  t6        D �cg c]  }||   ‘Œ	 c}«      d d d …f   z
  «      d¬«      }|d   t        |dk  j9                  «       «      k(  sJ ‚y c c}w c c}w )Nri   rh   ÚArtifact_SHA256Ú_pine_time_startÚPolicyÚhigher_low_Ú_r   )ÚleftÚrightÚ
entry_gateé   )ÚdaysÚactivation_score)ÚaxisúFragile_0.05çš™™™™™©?)Úload_scored_frameÚ_COMPARISONÚartifact_hashesÚ
PARAM_COLSÚSCORE_STARTÚ
startswithr0   Úrsplitr   ru   Úto_numpyÚbullish_stater   Úcopyr   r   rM   rN   Úlocre   ÚpdÚ	TimestampÚ	TRAIN_ENDÚ	Timedeltar*   r/   Úarrayr
   r+   )r2   rT   ÚpathÚscoredÚstochÚpricesÚhighsr\   ÚparamsÚkwargsÚwidthÚrebuiltÚtrain_scoreÚkÚnearestÚmoduleÚscored_caches                  €€r>   Úreconstruct_actionsz#verify.<locals>.reconstruct_actionsS   s  ø€ ØÐ%Ñ&ˆØ�|Ñ#Ø!'×!9Ñ!9¸$ÀÓ!EˆL˜ÑØ'3°DÑ'9Ñ$ˆ��v˜uØ×!Ñ!×1Ñ1°$Ñ7¸3Ð?PÑ;QÒQÐQÐQØ+1×+<Ò+<Ó=Ñ+< C�#�s˜3‘x‘-Ð+<ˆÐ=Ø%+×%7Ñ%7ˆÐ!Ñ"ØˆØˆx‰=×#Ñ# MÔ2Ü˜˜H™×,Ñ,¨S°!Ó4°QÑ7Ó8ˆEÜ#<¸V×=TÑ=T×=]Ñ=]Ó=_ÐfkÐsxÔ#y÷  $Hñ  $HˆF�<Ñ Ü# F§K¡K£M°6¸5À&È%ÑZÐSYÑZˆÜ˜b˜q“>ˆCÜ�J‰J×)Ñ)¨%°©*°g¸c±lÕCð "à—j‘j §¡¬r¯|©|¸F×<LÑ<LÓ/MÔPR×P\ÑP\ÐbcÔPdÑ/dÑ!dÐfxÐ!xÑy÷  Cñ  Có  EˆÜ—&‘&œŸ™ ªA¨t¨GÑ 4´r·x±xÕT^Ó@_ÑT^ÈqÀÈÃÐT^Ñ@_Ó7`ÐaeÒghÐahÑ7iÑ iÓjÐqrÔsˆØ�>Ñ"¤c¨7°S©=×*=Ñ*=Ó*?Ó&@Ò@Ð@Ñ@ùò >ùò A`s   ÁHÇH Ú	center_idr   zcenter_summary.jsonzsensitivity.jsonÚ	thresholdÚdeltaz.npzÚint64Útime_nsÚcenter_rC   Úflaggedrw   )rx   r   ro   )ÚISÚOOSc              3  óL   •K  — | ]  }|j                  d «      ‰k(  sŒ|–— Œ y­w)ÚnameN)Úget)Ú.0Úpr¢   s     €r>   Ú	<genexpr>zverify.<locals>.<genexpr>‚   s)   øè ø€ Ð)uÑ5[°Ð_`×_dÑ_dÐekÓ_lÐptÓ_t¬!Ñ5[ùs   ƒ$�$rF   r3   r4   r   r   r   r   Úchanged_action_barsÚchanged_position_barsrB   Úchanged_return_barsr   F))r   r   )r   r   )r   rx   ÚdeltasrH   rI   rJ   ÚmaterialrŸ   Úsensitivityc              3  ó,   K  — | ]  \  }}|d kD  –— Œ y­w)r   N© ©r¤   Úaro   s      r>   r¦   zverify.<locals>.<genexpr>š   s   è ø€ Ð;`ÑN_ÁdÀaÈ¸AÀ½EÑN_ùs   ‚c              3  ó&   K  — | ]	  \  }}|–— Œ y ­w©Nr®   )r¤   ro   Úms      r>   r¦   zverify.<locals>.<genexpr>›   s   è ø€ Ð(IÑ7H©t¨q°!¬Ñ7Hùó   ‚c              3  ó&   K  — | ]	  \  }}|–— Œ y ­wr²   r®   r¯   s      r>   r¦   zverify.<locals>.<genexpr>œ   s   è ø€ Ð+LÑ:K±$°!°Q¬AÑ:Kùr´   )Úany_actionsÚany_materialÚmax_action_barsÚsampleÚALLÚmodel)r¶   r·   )ÚTPÚFPÚTNÚFNÚTÚFÚPÚN)r»   Ú	magnitudeÚoutcomeÚné   rm   z	_bars.csvé   Tr   z
audit.json)	ÚpassedÚrows_reconstructedÚperiod_rows_reconstructedÚaccounting_reconstructedÚactions_reconstructedÚprotected_files_unchangedÚ	confusionÚverifier_sha256Úevidence_hashes)rÏ   rÑ   é   )Úindentr®   );rP   rQ   Ú	read_textrR   r   ÚREPOÚ
read_bytesr   r   r„   Úread_csvÚcolumnsÚstrÚlowerÚstripÚto_datetimere   ÚapiÚtypesÚis_numeric_dtypeÚilocrS   r€   r%   r   Úcapture_comparisonrz   r   ÚloadrM   rN   r    r   r^   Ú	enumerater
   r	   r|   Únextr?   r$   r&   r0   r+   rO   r/   Úappendr.   rL   ÚmaxÚsortedr   Ú__file__ÚiterdirÚis_filer¢   r   ÚprintÚdumps);Ú	directoryÚverificationÚmanifestr‰   rY   Ú	protectedÚ
referencesr¥   ÚsourceÚframerS   r1   ÚrowsÚrr—   rÏ   ÚcentersÚdifferencesÚdÚindexed_diffÚindexÚcenterÚcidÚsavedr\   ÚbaseÚbase_rowr³   ÚoutcomesÚtir™   Údirš   r2   rT   Ú
differencerZ   r°   Úbr7   Úchangedr«   Úlimitr]   rÄ   Úoutcomes_at_scaleÚcr¹   r»   ÚsubsetrÅ   ÚcountsÚpositiveÚreceiptr“   Úvr•   r¢   r–   s;                                                           @@@r>   Úverifyr  ;   sû
  ú€ Ü—:‘:˜yÐ+>Ñ>×IÑIÓKÓL€LØ˜
Ò#Ð#Ð#Ü�z‰z˜9Ð'AÑA×LÑLÓNÓO€HØ" ?Ñ3×9Ñ9Ö;‰ˆˆhÜ”t˜d‘{×.Ñ.Ó0Ó1°XÓ=ÐC¸tÓCÐ=ð <ä—
‘
˜IÐ(?Ñ?×JÑJÓLÓM€IØÔ(Ó*Ò*Ð*Ð*Ü—‘˜YÐ)@Ñ@×KÑKÓMÓN€JØœ±:Ó >±:¨a¤¨£°:Ñ >Ó?Ò?Ð?Ð?ÜÐ7Ñ7€FÜ�&×#Ñ#Ó%Ó&¨(°=Ñ*AÒAÐAÐAÜ�K‰K˜Ó€EØ—M‘M×%Ñ%×+Ñ+Ó-×1Ñ1×7Ñ7Ó9€E„MÜ—N‘N 5§:¡:¼2¿6¹6¿<¹<×;XÑ;XÐY^×YcÑYcÔ;d±CÐjnÔo€Eˆ&�MØ�J‰J�s˜ˆO€EØ�K‰K× Ñ Ó"€EØ�J‰J×ÑÐ&6ÐÓ7€EÜ�:‰:�y >Ñ1×<Ñ<Ó>Ó?€DÜ©TÓ2©T¨�Ð"Ó#¨TÑ2Ó3´s¸4³yÒ@Ð@Ð@Ü‹[€FØ×2Ñ2°4ÑY]Ó9^ÑY]ÐTU¸!Ð<NÓ:OÐY]Ñ9^Ó_€FÔØ€LõAð$ €IØ�d˜1‘gÒÜ—*‘*˜iÐ*?Ñ?×JÑJÓLÓMˆÜ—j‘j )Ð.@Ñ"@×!KÑ!KÓ!MÓNˆÙQ\Ó]ÑQ\ÈA˜˜;™¨¨;©¸¸7¹ÐDÀaÑGÐQ\ˆÐ]ÙJNÓOÉ$ÀQ�!�K‘. ! K¡.°!°G±*Ð=¸qÑ@È$ˆÐOÜˆFØ˜Ñ%ˆCÜ—‘˜¨ u¨D \Ñ1Ô2°eÜ—
‘
×-Ñ-¨e¯l©l¸7Ó.CÀUÈ9ÑEUÔVÝ?IÓJ¹z¸˜˜U W¨S¨E ?Ñ3Ñ3¸z�ÐJØ   d¨B Ñ/�Ø˜iÑ(¨X°nÑ-EÈÑ-IÒJÐJÐJÜ˜U E¨4°Ô:Ù# D¨(Ô3Ù+4Ó5©9 a˜A˜r™E¨9�Ð5Ü%.¬z×%:‘M�B˜	Ü%.¬v×%6™	˜˜EÝKUÓ VÉ:ÀC  e¨r¨d°!°B°4°q¸¸Ð,>Ñ&?Ñ!?È:˜Ð VØ# C¨°EÐ$9Ñ:˜Ø#)×#4Ô#4˜CØ" iÒ/Ø'*¨3¡x°8¸C±=À5Ñ3HÓ'HÐ HÐ'Hà'*¨3¡x°8¸C±=Ó'@Ð @Ð'@ð	 $5ô
 % U¨E°5¸#Ô>Ù+¨E°3Ô7Ø%1°#°yÀ%Ð2GÑ%H˜
Ü$1˜DÜ%)Ó)u´T·Z±ZÀÐDYÑ@ZÔ5[Ó)uÓ%u˜FÜ '¨¨t°V¸G±_ÀfÈUÁmÓ T˜AÜ '¨¨u°f¸W±oÀvÈeÁ}Ó U˜AØ#(¬B¯M©M¸&À¹/Ó,JÑ#J˜DØ% eš}Ø $¨´·±¸fÀU¹mÓ0LÌrÏ~É~Ð^_ÐadÓOeÑ0eÑ(eÑ e Ø(,¨_Ñ(=ÀÀÑAWÑ(WÐ\`ÐaoÑ\pÐtyð  {Iñ  uJñ  ]Jñ  (Kð  OSñ  'S˜GØ'1°$Ñ'7˜HØ#+Ð,AÑ#BÄcÈ'Ï+É+Ë-ÓFXÒ#XÐXÐ#XØ#+Ð,CÑ#DÌÈdÐS]ÑN^ÐbgÐhrÑbsÑNsÐw{ÑM{÷  MAñ  MAó  MCó  IDò  $Dð  Dð  $DØ#+Ð,AÑ#BÄcÈDÐQ]ÑL^ÐbgÐhtÑbuÑLuÐy}ÑK}÷  KCñ  KCó  KEó  GFò  $Fð  Fð  $FØ',˜HÛ.`¡
  UØ;<¸S¹6Ð;MÐRSÐTWÑRXÐRd¨¨#©°°3±ªÐjn Ø#(Ð#4Ü$&§J¡J×$>Ñ$>¸uÀhÈxÑFXÐY\ÑF]ÐdhÐotÐ$>Ô$uØ$,´°E³
¸eÑ0CÑ$C¡Hà+3°HÑ+=¸cÑ+BÑ+JÐ$JÐ+Jð /að $,¨x¸
Ñ/CÒ#CÐCÐ#CØ# tœ|Ø (¬¨U«Ñ 4× ;Ñ ;¼SÀÇÁÃÓ=OÐQYÐ<ZÖ [ò- %2ò &7ð &;ðF 5=·N±NÖ4DÑ0�IÐ0Ø% mÑ4´S¸³^ÑD�HØ#¤t¼Ñ;`ÑN_Ó;`Ó8`Ü%(Ñ(IÑ7HÓ(IÓ%IÜ(+Ñ+LÑ:KÓ+LÓ(Lô(Nó Nð Nð Nñ 5E÷W 3Ñ2ð ñd %Ó4™W˜¨¨(«’!˜WˆÐ4Ø�Wœv¹6Ó&B¹6°a q¨£z¸6Ñ&BÓCÔCˆEØ$¨š~‘V¹vÓ3]¹v¸!ÈÈ7ÉÐW\ÓI\²A¸vÑ3]ˆFÛ&�	Û>�GÙ0HÓIÑ0H¨˜c 1™fÐ0H�FÐIÛ"(˜Ø#)¨-Ñ#8¼¸Y»Ñ#HÈÑ#Q˜Ø v¨iÑ'8¸HÒ'D¡È#ÐY_Ð`iÒYjÑRUÐpsÑtÓuÐyzÑzÔuð #)ð ×$Ñ$¤TÐ%u°ÀÐT[Ô_bÐciÓ_jÑ%uÐntÑ%uÕvñ  ?ñ 'ð Dô �4‹yœC ›L¨2Ñ-Ò-Ð-Ð-ãˆCÜ—K‘K 	¨s°8©}¨o¸YÐ,GÑ GÓHˆEÜ�J‰J×)Ñ)¨%´·±ÀÇ
Á
Ó1K×1TÑ1TÓ1VÔWÜ˜ ÍjÓ'YÉjÀs¨¨U°3©Z×-@Ñ-@Ó-BÑ(BÈjÑ'YÐ[^Ô_ÙÅzÓ RÁzÀ  e¨C¡j×&9Ñ&9Ó&;Ñ!;ÀzÑ RÐTWÕXð	 ô
 �4‹y˜AŠ~Ðˆ~Ü˜$´3°t³9ÔX[Ð\`ÓXaÐbdÑXdØ!%¸TÔ]`ÐajÓ]kØ¬V´D¼³N×4MÑ4MÓ4OÓ-PÜAGÈ	×HYÑHYÓH[ÔA\ó  HÑA\¸AÐ`a×`iÑ`iÕ`kÐpq×pvÑpvð  {Gó  qG˜Ÿ™¤¨¯©«Ó!7Ñ7ÐA\ñ  HôI€Gô ˆy˜<Ñ'¨Ô1Ü	Œ$�*‰* w§}¡}¤Ôd¡™t˜q !¸!ÐCcÒ:c�a˜‘d ÒdÐmnÔ
oÕpùòa !?ùò 3ùâ9^ùò2 ^ùÚOùò
 Kùò
 6ùò !W÷ 3Ñ2üò` 5ùÚ&BùÚ3]ùò Jùò (ZùÚ Rùò
 HùãdsÂ   Äh
É)hÊ$h
ÌhÌ:h#Í8;h7Î3h(Ï5h7Ï8
h-Ð6h7Ð8h2Ñ,h7Ñ:h7ÒGh7Ùh7Ù,B'h7Üh7Ü'
iÜ2iÝi	
Ý&iÝ4iÞ	
i
âiãi
å$i"å:i"æ
&i"ç.i'ç;i'è(h7è7i	Ú__main__)Údescriptionrí   )Útype)+Ú__doc__Ú
__future__r   ÚargparserP   Úpathlibr   ÚsysÚnumpyr   Úpandasr„   rè   ÚresolveÚparentsrÕ   r‰   ÚinsertrÙ   Ústrategies.mlp_comparisonr   Ústrategies.mlp_score_structurer   Ústrategies.strategy_mlp_scoresr   Útools.run_mlp_revisitr	   r
   r   r   Ú#tools.run_mlp_entry_loss_experimentr   r   r   r?   r^   r  Ú__name__ÚArgumentParserÚparserÚadd_argumentÚ
parse_argsrí   r®   r@   r>   Ú<module>r&     sÌ   ðÙ MÝ "ã Û Ý Û 
ã Û áˆHƒ~×ÑÓ×'Ñ'¨Ñ*€Ø ‡�‡��‘3�t“9Ô Ý ,Ý DÝ <ß LÓ Lß SÑ Sò>ò$Vò(yqðx ˆzÒØ$ˆX×$Ñ$°Ô9€FØ
×Ñ˜¨$ÐÔ/Ù
ˆ6×ÑÓ×(Ñ(×0Ñ0Ó2Õ3ð r@   