§
    1@Äj…P ã                   ó¼  — d Z ddlZddlZddlmZmZ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 ddlmZ ddlmZ  ej        e¦  «        Zd	ZeZ eh d
£¦  «        Zedv rddlmZ  G d„ de¦  «        ZeZnedv rn e e¦  «        ‚e G d„ de!¦  «        ¦   «         Z" G d„ de!¦  «        Z#d„ Z$ G d„ de!¦  «        Z%e G d„ de!¦  «        ¦   «         Z& G d„ de&¦  «        Z' G d„ de'¦  «        Z(edv re(Z)nedv re'Z)nedk     re&Z)n e e¦  «        ‚ ed g d!¢¦  «        Z* G d"„ d#e!¦  «        Z+ ed$g d%¢¦  «        Z,d&„ Z-d'„ Z. G d(„ d)e!¦  «        Z/ G d*„ d+e!¦  «        Z0dS ),z)
Implement python 3.8+ bytecode analysis
é    N)Ú
namedtupleÚdefaultdictÚdeque)Útotal_ordering)Ú
UniqueDictÚ	PYVERSIONÚALL_BINOPS_TO_OPERATORSÚ_lazy_pformat)ÚNEW_BLOCKERSÚCFGraph)ÚLoc)ÚUnsupportedBytecodeErroré   >   ÚNOPÚPRECALLÚ
LOAD_CONSTÚ
LOAD_DEREF©©é   é   ©r   é   ©r   é   ©r   é   )ÚEnumc                   ó   — e Zd ZdZdZdZdS )ÚCALL_INTRINSIC_1_Operandr   é   r   N)Ú__name__Ú
__module__Ú__qualname__ÚINTRINSIC_STOPITERATION_ERRORÚUNARY_POSITIVEÚINTRINSIC_LIST_TO_TUPLE© ó    úDC:\Projects\Historical\venv\Lib\site-packages\numba/core/byteflow.pyr    r       s!   € € € € € Ø()Ð%ØˆØ"#ÐÐÐr)   r    ©©r   é
   ©r   é   c                   óJ   — e Zd ZdZ eh d£¦  «        Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	Ú	BlockKindz?Kinds of block to make related code safer than just `str`.
    >   ÚTRYÚLOOPÚWITHÚEXCEPTÚFINALLYÚWITH_FINALLYc                 ó*   — || j         v sJ ‚|| _        d S ©N)Ú_membersÚ_value)ÚselfÚvalues     r*   Ú__init__zBlockKind.__init__4   s    € Ø˜œÐ%Ð%Ð%Ð%ØˆŒˆˆr)   c                 óH   — t          t          | ¦  «        | j        f¦  «        S r9   )ÚhashÚtyper;   ©r<   s    r*   Ú__hash__zBlockKind.__hash__8   s   € Ý•T˜$‘Z”Z ¤Ð-Ñ.Ô.Ð.r)   c                 óª   — t          |t          ¦  «        r| j        |j        k     S t          d                     t          |¦  «        ¦  «        ¦  «        ‚©Nzcannot compare to {!r}©Ú
isinstancer1   r;   Ú	TypeErrorÚformatrA   ©r<   Úothers     r*   Ú__lt__zBlockKind.__lt__;   sG   € Ý�e�YÑ'Ô'ð 	JØ”; ¤Ò-Ð-åÐ4×;Ò;½DÀ¹K¼KÑHÔHÑIÔIÐIr)   c                 óª   — t          |t          ¦  «        r| j        |j        k    S t          d                     t          |¦  «        ¦  «        ¦  «        ‚rE   rF   rJ   s     r*   Ú__eq__zBlockKind.__eq__A   sG   € Ý�e�YÑ'Ô'ð 	JØ”; %¤,Ò.Ð.åÐ4×;Ò;½DÀ¹K¼KÑHÔHÑIÔIÐIr)   c                 ó6   — d                      | j        ¦  «        S )NzBlockKind({}))rI   r;   rB   s    r*   Ú__repr__zBlockKind.__repr__G   s   € Ø×%Ò% d¤kÑ2Ô2Ð2r)   N)r"   r#   r$   Ú__doc__Ú	frozensetr:   r>   rC   rL   rN   rP   r(   r)   r*   r1   r1   *   s�   € € € € € ðð àˆyð ð ð ñ ô €Hðð ð ð/ð /ð /ðJð Jð JðJð Jð Jð3ð 3ð 3ð 3ð 3r)   r1   c                   óœ   — e Zd ZdZd„ Zd„ Zedv rd„ Znedv rd„ Zn ee¦  «        ‚d„ Z	d	„ Z
d
„ Zedv rd„ ZdS edv rd„ ZdS  ee¦  «        ‚)ÚFlowziData+Control Flow analysis.

    Simulate execution to recover dataflow and controlflow information.
    c                 ó�   — t                                dt          |d„ ¬¦  «        ¦  «         || _        t	          ¦   «         | _        d S )Nzbytecode dump:
%sc                 ó*   — |                       ¦   «         S r9   )Údump©Úxs    r*   ú<lambda>zFlow.__init__.<locals>.<lambda>R   s   € À!Ç&Â&Á(Ä(€ r)   )Ú	lazy_func)Ú_loggerÚdebugr
   Ú	_bytecoder   Úblock_infos)r<   Úbytecodes     r*   r>   zFlow.__init__P   sK   € Ý�ŠÐ*Ý# HÐ8JÐ8JÐKÑKÔKñ	Mô 	Mð 	Mà!ˆŒÝ%™<œ<ˆÔÐÐr)   c                 óÎ  — t          | j        ddd¬¦  «        }t          | j        j        j        ¬¦  «        }|j                             |¦  «         t          ¦   «         }|j        �rzt           	                    d|j        ¦  «         |j         
                    ¦   «         }||j        v�r/t           	                    d|j        ¦  «         t           	                    d|¦  «         |||j        <   	 |                     |¦  «         |                     ¦   «         rnW|                      ||¦  «        rn@|                      |¦  «        r*|                      |¦  «         |                     ¦   «          nŒ�t           	                    d	|j        ¦  «         |j                             |¦  «         |                     ¦   «         }|j                             |¦  «         |j        �°z|                      |j        ¦  «         |                      |¦  «         t5          |j        d
„ ¬¦  «        D ]<}t7          |¦  «        x| j        |j        <   }t           	                    d||¦  «         Œ=dS )aì  Run a trace over the bytecode over all reachable path.

        The trace starts at bytecode offset 0 and gathers stack and control-
        flow information by partially interpreting each bytecode.
        Each ``State`` instance in the trace corresponds to a basic-block.
        The State instances forks when a jump instruction is encountered.
        A newly forked state is then added to the list of pending states.
        The trace ends when there are no more pending states.
        r   r(   )r`   ÚpcÚnstackÚ
blockstack)Údebug_filenamezpending: %sz	stack: %szstate.pc_initial: %sTzend state. edges=%sc                 ó   — | j         S r9   )Ú
pc_initialrX   s    r*   rZ   zFlow.run.<locals>.<lambda>Œ   s   € ¸1¼<€ r)   )Úkeyzblock_infos %s:
%sN)ÚStater^   ÚTraceRunnerÚfunc_idÚfilenameÚpendingÚappendr   r\   r]   ÚpopleftÚfinishedÚ_stackrg   ÚdispatchÚhas_terminatedÚ_run_handle_exceptionÚ_is_implicit_new_blockÚ_guard_with_asÚsplit_new_blockÚoutgoing_edgesÚaddÚget_outgoing_statesÚextendÚ
_build_cfgÚ_prune_phisÚsortedÚadapt_state_infosr_   )r<   Ú
firststateÚrunnerÚfirst_encounterÚstateÚ
out_statesÚsis          r*   ÚrunzFlow.runV   sS  € õ  D¤N°qÀØ&(ð*ñ *ô *ˆ
å¨D¬NÔ,BÔ,KÐLÑLÔLˆØŒ×Ò˜jÑ)Ô)Ð)õ
 %™,œ,ˆð Œnñ 	2Ý�MŠM˜-¨¬Ñ8Ô8Ð8Ø”N×*Ò*Ñ,Ô,ˆEØ˜FœOÐ+Ñ+Ý—’˜k¨5¬<Ñ8Ô8Ð8Ý—’Ð4°eÑ<Ô<Ð<Ø49� Ô 0Ñ1ð"Ø—O’O EÑ*Ô*Ð*à×+Ò+Ñ-Ô-ð "Øà×5Ò5°f¸eÑDÔDð "Ø!à×6Ò6°uÑ=Ô=ð "à ×/Ò/°Ñ6Ô6Ð6à!×1Ò1Ñ3Ô3Ð3Ø!ð"õ —’Ð3°UÔ5IÑJÔJÐJØ”×#Ò# EÑ*Ô*Ð*Ø"×6Ò6Ñ8Ô8�
Ø”×%Ò% jÑ1Ô1Ð1ð5 Œnñ 	2ð: 	�Š˜œÑ(Ô(Ð(à×Ò˜Ñ Ô Ð å˜FœOÐ1GÐ1GÐHÑHÔHð 	<ð 	<ˆEÝ6GÈÑ6NÔ6NÐNˆDÔ˜UÔ-Ñ.°Ý�MŠMÐ/°¸Ñ;Ô;Ð;Ð;ð	<ð 	<r)   ©r.   r   r   r   r   c                 ó0  — |                      ¦   «         sx|                     ¦   «         rd|                     ¦   «         j        t          vrD|                     |                     ¦   «         j        ¬¦  «         |                     |¦  «         dS |                     ¦   «          |                      ¦   «         sß| 	                    ¦   «         rÍt                               d|                     ¦   «         |j        ¦  «         |                     ¦   «         }|                     d¦  «        }|r|d         |j        k    rd }d S |                     d|j        ¬¦  «        }|j        |d<   |j        |d<   |j        |d	<   |                     |j        |¬
¦  «         dS d S d S )N©rb   Tz3.11 exception %s PC=%sr2   Úend©rŠ   Ú
end_offsetÚstack_depthÚ
push_lasti©rb   Úextra_block)Úin_withÚhas_active_tryÚget_instÚopnameÚ_NO_RAISE_OPSÚforkÚnextÚ_adjust_except_stackÚ
advance_pcÚis_in_exceptionr\   r]   Úget_exceptionÚ_pcÚget_top_blockÚtargetÚ
make_blockrŠ   ÚdepthÚlasti)r<   r�   rƒ   ÚehÚeh_topÚeh_blocks         r*   rt   zFlow._run_handle_exception‘   s’  € Ø—=’=‘?”?ð $Ø×(Ò(Ñ*Ô*ð$à—N’NÑ$Ô$Ô+µ=Ð@Ð@à—
’
˜eŸnšnÑ.Ô.Ô3�
Ñ4Ô4Ð4Ø×+Ò+¨EÑ2Ô2Ð2Ø�tà× Ò Ñ"Ô"Ð"ð —}’}‘”ð $¨5×+@Ò+@Ñ+BÔ+Bð $Ý—M’MÐ";Ø"'×"5Ò"5Ñ"7Ô"7¸¼ñDô Dð Dà×,Ò,Ñ.Ô.�BØ"×0Ò0°Ñ7Ô7�FØð 	$ &¨¤-°2´9Ò"<Ð"<à#'˜˜˜à#(×#3Ò#3°E¸r¼yÐ#3Ñ#IÔ#I˜Ø13´˜ Ñ.Ø24´(˜ Ñ/Ø13´˜ Ñ.ØŸ
š
 e¤i¸X˜
ÑFÔFÐFØ#˜tð$ð $ð $ð $r)   ©r,   c                 óD  — |                      ¦   «         r÷|                     ¦   «         j        t          vr×|                     |                     ¦   «         j        ¬¦  «         |                     d¦  «        }|                     |¦  «         |j        }i }||d         k    r||d         z
  |d<   |d         }t          d¦  «        t          t          d¦  «        t          i|d                  |d	<   ||d
<    |j        dd|d         i|¤Ž dS |                     ¦   «          d S )Nr‰   r2   Úentry_stackÚnpopÚhandlerr5   r6   ÚkindÚnpushr�   rb   rŠ   Tr(   )r’   r“   r”   r•   r–   r—   r�   Úpop_block_and_abover�   r1   Ú_EXCEPT_STACK_OFFSETÚ_FINALLY_POPr™   )r<   r�   rƒ   Útryblkrc   Úkwargsr©   s          r*   rt   zFlow._run_handle_exception­   s.  € Ø×$Ò$Ñ&Ô&ð #Ø—N’NÑ$Ô$Ô+µ=Ð@Ð@à—
’
˜eŸnšnÑ.Ô.Ô3�
Ñ4Ô4Ð4Ø×,Ò,¨UÑ3Ô3�Ø×)Ò)¨&Ñ1Ô1Ð1ØÔ*�Ø�Ø˜F =Ô1Ò1Ð1Ø%+¨f°]Ô.CÑ%C�F˜6‘NØ  Ô+�å˜hÑ'Ô'Õ)=Ý˜iÑ(Ô(­,ð#ð ˜&”/ô##��w‘ð )0��}Ñ%Ø�”
Ð6Ð6˜f UœmÐ6¨vÐ6Ð6Ð6Ø�tà× Ò Ñ"Ô"Ð"Ð"Ð"r)   c                 ó$  — t          ¦   «         }|D ]}|j        }|                     |¦  «         Œ|D ]-}|j        D ]#}|                     |j        |j        d¦  «         Œ$Œ.|                     d¦  «         |                     ¦   «          || _        d S )Nr   )	r   rg   Úadd_noderx   Úadd_edgerb   Úset_entry_pointÚprocessÚcfgraph)r<   Ú
all_statesÚgraphrƒ   ÚbÚedges         r*   r|   zFlow._build_cfgÅ   s§   € Ý‘	”	ˆØð 	ð 	ˆEØÔ ˆAØ�NŠN˜1ÑÔÐÐØð 	=ð 	=ˆEØÔ,ð =ð =�Ø—’˜uÔ/°´¸!Ñ<Ô<Ð<Ð<ð=à×Ò˜aÑ Ô Ð Ø�Š‰ŒˆØˆŒˆˆr)   c                 óž  ‡‡	— t                                d                     dd¦  «        ¦  «         ˆfd„}ˆ	ˆfd„}ˆ	fd„}ˆfd„} |¦   «         \  }Š	t                                dt          |¦  «        ¦  «          |¦   «         \  }} ||¦  «          |||¦  «         t                                d	                     dd¦  «        ¦  «         d S )
Nz
Prune PHIsé<   ú-c                  óä   •— t          t          ¦  «        } t          ¦   «         }‰j        D ]B}t          |j        ¦  «        }t          |j        ¦  «        }| |xx         ||z  z  cc<   ||z  }ŒC| |fS r9   )r   Úsetrp   Ú
_used_regsÚ_phis)Ú	used_phisÚphi_setrƒ   ÚusedÚphisr�   s        €r*   Úget_used_phis_per_statez1Flow._prune_phis.<locals>.get_used_phis_per_stateÙ   s   ø€ Ý#¥CÑ(Ô(ˆIÝ‘e”eˆGØœð  ð  �Ý˜5Ô+Ñ,Ô,�Ý˜5œ;Ñ'Ô'�Ø˜%Ð Ð Ô  D¨4¡KÑ/Ð Ð Ñ Ø˜4‘��Ø˜gÐ%Ð%r)   c                  óv  •— i } t          t          ¦  «        }‰j        D ]G}|j                             ¦   «         D ]+\  }}|‰vr|| |<   ||                              ||f¦  «         Œ,ŒHt                               dt          | ¦  «        ¦  «         t                               dt          |¦  «        ¦  «         | |fS )Nz
defmap: %szphismap: %s)	r   r¿   rp   Ú_outgoing_phisÚitemsry   r\   r]   r
   )ÚdefmapÚphismaprƒ   ÚphiÚrhsrÃ   r�   s        €€r*   Úfind_use_defsz'Flow._prune_phis.<locals>.find_use_defsä   sÄ   ø€ ØˆFÝ!¥#Ñ&Ô&ˆGØœð 3ð 3�Ø %Ô 4× :Ò :Ñ <Ô <ð 3ð 3‘H�C˜Ø 'Ð)Ð)à&+˜˜s™Ø˜C”L×$Ò$ c¨5 \Ñ2Ô2Ð2Ð2ð	3õ
 �MŠM˜,­°fÑ(=Ô(=Ñ>Ô>Ð>Ý�MŠM˜-­°wÑ)?Ô)?Ñ@Ô@Ð@Ø˜7�?Ð"r)   c                 ó¸  •— t          t          ¦  «        }	 d}t          t          |                      ¦   «         ¦  «        ¦  «        D ]g\  }}t          t          |¦  «        ¦  «        D ]1\  }}|‰v r(|| |         z  }||                              ||f¦  «         Œ2||         }||z  r||z  }d}Œht                               dt          | ¦  «        ¦  «         |sdS ŒÅ)znAn iterative dataflow algorithm to find the definition
            (the source) of each PHI node.
            TFzchanging phismap: %sN)	r   r¿   r~   ÚlistrÉ   ry   r\   r]   r
   )	rË   Ú	blacklistÚchangingrÌ   ÚdefsitesrÍ   rƒ   Ú	to_removerÃ   s	           €r*   Úpropagate_phi_mapz+Flow._prune_phis.<locals>.propagate_phi_mapñ   sñ   ø€ õ $¥CÑ(Ô(ˆIðØ �Ý%+­D°·²±´Ñ,AÔ,AÑ%BÔ%Bð (ð (‘M�C˜Ý&,­T°(©^¬^Ñ&<Ô&<ð =ð =™
˜˜UØ '˜>˜>Ø$¨°¬Ñ4˜HØ% cœN×.Ò.°°U¨|Ñ<Ô<Ð<øØ )¨#¤�IØ  8Ñ+ð (Ø  IÑ-˜Ø#'˜øå—’Ð4µmÀGÑ6LÔ6LÑMÔMÐMØð Ø�Eðr)   c                 óê  •— i }|                       ¦   «         D ]\  }}|D ]}||         ||<   ŒŒt                               dt          |¦  «        ¦  «         t	          t
          ¦  «        }|D ]}||         D ]\  }}|||         |<   ŒŒt                               dt          |¦  «        ¦  «         ‰j        D ];}|j                             ¦   «          |j         	                    ||         ¦  «         Œ<d S )Nzkeep phismap: %sznew_out: %s)
rÉ   r\   r]   r
   r   Údictrp   rÈ   ÚclearÚupdate)	rÂ   rË   Úkeeprƒ   Úused_setrÌ   Únew_outrÍ   r�   s	           €r*   Úapply_changesz'Flow._prune_phis.<locals>.apply_changes  s  ø€ ØˆDØ#,§?¢?Ñ#4Ô#4ð -ð -‘��xØ#ð -ð -�CØ '¨¤�D˜‘I�Ið-å�MŠMÐ,­m¸DÑ.AÔ.AÑBÔBÐBÝ!¥$Ñ'Ô'ˆGØð .ð .�Ø"& s¤)ð .ð .‘J�C˜Ø*-�G˜E”N 3Ñ'Ð'ð.õ �MŠM˜-­°wÑ)?Ô)?Ñ@Ô@Ð@Øœð <ð <�ØÔ$×*Ò*Ñ,Ô,Ð,ØÔ$×+Ò+¨G°E¬NÑ;Ô;Ð;Ð;ð<ð <r)   zUsed_phis: %szDONE Prune PHIs)r\   r]   Úcenterr
   )
r<   r�   rÆ   rÎ   rÕ   rÝ   rÂ   rÊ   rË   rÃ   s
    `       @r*   r}   zFlow._prune_phisÑ   s  øø€ å�Š�l×)Ò)¨"¨cÑ2Ô2Ñ3Ô3Ð3ð	&ð 	&ð 	&ð 	&ð 	&ð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð	ð 	ð 	ð 	ð 	ð,	<ð 	<ð 	<ð 	<ð 	<ð  5Ð4Ñ6Ô6Ñˆ	�7Ý�Š�o¥}°YÑ'?Ô'?Ñ@Ô@Ð@Ø'˜-™/œ/‰ˆ�ØÐ˜'Ñ"Ô"Ð"Øˆ�i Ñ)Ô)Ð)Ý�ŠÐ'×.Ò.¨r°3Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8r)   c                 óx   — |                      ¦   «         }|j        | j        j        v rdS |j        t
          v rdS dS )NTF)r“   Úoffsetr^   Úlabelsr”   r   ©r<   rƒ   Úinsts      r*   ru   zFlow._is_implicit_new_block  s?   € Ø�~Š~ÑÔˆàŒ;˜$œ.Ô/Ð/Ð/Ø�4ØŒ[�LÐ(Ð(Ø�4à�5r)   ©r   r   c                 ó   — d S r9   r(   )r<   rƒ   s     r*   rv   zFlow._guard_with_as)  s   € àˆDr)   ©r,   r.   r   r   c                 ó    — |                      ¦   «         }|j        dv r.| j        |j                 j        }|dk    rd}t	          |¦  «        ‚dS dS )zòChecks if the next instruction after a SETUP_WITH is something
            other than a POP_TOP, if it is something else it'll be some sort of
            store which is not supported (this corresponds to `with CTXMGR as
            VAR(S)`).>   Ú
SETUP_WITHÚBEFORE_WITHÚPOP_TOPúGThe 'with (context manager) as (variable):' construct is not supported.N)r“   r”   r^   r—   r   )r<   rƒ   Úcurrent_instÚnext_opÚmsgs        r*   rv   zFlow._guard_with_as-  sc   € ð
 !Ÿ>š>Ñ+Ô+ˆLØÔ"Ð&CÐCÐCØœ.¨Ô):Ô;ÔB�Ø˜iÒ'Ð'ð9�Cå2°3Ñ7Ô7Ð7ð DÐCà'Ð'r)   N)r"   r#   r$   rQ   r>   r†   r   rt   ÚNotImplementedErrorr|   r}   ru   rv   r(   r)   r*   rT   rT   K   s  € € € € € ðð ð(ð (ð (ð8<ð 8<ð 8<ðt ÐAÐAÐAð	$ð 	$ð 	$ð 	$ð6 
�jÐ	 Ð	 ð	#ð 	#ð 	#ð 	#ð, "Ð! )Ñ,Ô,Ð,ð
ð 
ð 
ðK9ð K9ð K9ðZð ð ð Ð&Ð&Ð&ð	ð 	ð 	ð 	ð 	ð 
Ð:Ð	:Ð	:ð	8ð 	8ð 	8ð 	8ð 	8ð "Ð! )Ñ,Ô,Ð,r)   rT   c                 ó,   — |                       d¦  «        S )Nz$null$)Ú
startswith)Úregs    r*   Ú_is_null_temp_regró   =  s   € Ø�>Š>˜(Ñ#Ô#Ð#r)   c                   óž  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Ze	dv reZ
ne	dv rn ee	¦  «        ‚d	„ Zd
„ Zd„ Zd„ Zd„ Ze	dv rd„ Zne	dv rn ee	¦  «        ‚d„ Zd„ Zd„ Ze	dv rd„ Zne	dv reZne	dv rn ee	¦  «        ‚e	dv rd„ Zne	dv rn ee	¦  «        ‚e	dv rd„ Zne	dv rd„ Zne	dv rd„ Zn ee	¦  «        ‚d„ Zd„ Zd„ Zd „ Ze	dv rd!„ Zne	dv rn ee	¦  «        ‚d"„ Zd#„ Ze	dv r
d$„ Zd%„ Z d&„ Z!ne	dv rn ee	¦  «        ‚e	d'v reZ"eZ#ne	d(v rn ee	¦  «        ‚e	dv reZ$eZ%ne	dv rn ee	¦  «        ‚d)„ Z&d*„ Z'd+„ Z(d,„ Z)d-„ Z*d.„ Z+d/„ Z,d0„ Z-d1„ Z.d2„ Z/d3„ Z0d4„ Z1d5„ Z2d6„ Z3d7„ Z4d8„ Z5d9„ Z6e	d'v rd:„ Z7ne	d(v rn ee	¦  «        ‚e	d'v rd;„ Z8ne	d(v rn ee	¦  «        ‚d<„ Z9e9Z:e9Z;e	d'v re9Z<e9Z=ne	d(v rn ee	¦  «        ‚d=„ Z>e>Z?e>Z@d>„ ZAd?„ ZBd@„ ZCdA„ ZDdB„ ZEdC„ ZFdD„ ZGdE„ ZHdF„ ZIdG„ ZJeJZKdH„ ZLdI„ ZMdJ„ ZNe	d'v rdK„ ZOne	d(v rn ee	¦  «        ‚dL„ ZPe	dMv rdN„ ZQne	dv rdO„ ZQn ee	¦  «        ‚dP„ ZRdQ„ ZSe	dv rdR„ ZTne	dSv rdT„ ZTne	d(v rn ee	¦  «        ‚dU„ ZUdV„ ZVdW„ ZWdX„ ZXdY„ ZYdZ„ ZZe	dv rne	dv rd[„ Z[n ee	¦  «        ‚d\„ Z\d]„ Z]d^„ Z^d_„ Z_e	dMv rd`„ Z`ne	dv rda„ Z`n ee	¦  «        ‚db„ Zae	dv rne	dv rdc„ Zbn ee	¦  «        ‚dd„ Zcde„ Zddf„ Zedg„ Zfdh„ Zgdi„ Zhe	dv rdj„ Zine	dv rn ee	¦  «        ‚e	dv rdk„ Zjne	dlv rdm„ Zjne	dv rdn„ Zjn ee	¦  «        ‚do„ Zke	d'v rdp„ Zlne	d(v rn ee	¦  «        ‚dq„ Zmdr„ Znds„ Zodt„ Zpdu„ Zqdv„ Zrdw„ Zsdx„ Ztdy„ Zudz„ Zvd{„ Zwd|„ Zxd}„ Zyd~„ Zzd„ Z{d€„ Z|d�„ Z}d‚„ Z~dƒ„ Zd„„ Z€d…„ Z�d†„ Z‚d‡„ Zƒdˆ„ Z„d‰„ Z…dŠ„ Z†d‹„ Z‡dŒ„ Zˆd�„ Z‰e‰ZŠe‰Z‹e‰ZŒe‰Z�dŽ„ ZŽeŽZ�eŽZ�eŽZ‘eŽZ’eŽZ“eŽZ”eŽZ•eŽZ–eŽZ—eŽZ˜eŽZ™eŽZšeŽZ›eŽZœeŽZ�eŽZžeŽZŸeŽZ eŽZ¡eŽZ¢eŽZ£eŽZ¤eŽZ¥eŽZ¦eŽZ§eŽZ¨eŽZ©eŽZªeŽZ«eŽZ¬eŽZ­d d�„Z®d‘„ Z¯d’„ Z°d“„ Z±e	dv rne	dv rd”„ Z²n ee	¦  «        ‚d•„ Z³d–„ Z´e	dMv rd—„ Zµne	dv rd˜„ Zµn ee	¦  «        ‚e	d'v rne	d™v rdš„ Z¶ne	dv rd›„ Z¶n ee	¦  «        ‚dœ„ Z·e	dv rd�„ Z¸ne	dv rn ee	¦  «        ‚e	dv rdž„ Z¹dŸS e	dv rdŸS  ee	¦  «        ‚)¡rj   zLTrace runner contains the states for the trace and the opcode dispatch.
    c                 ó`   — || _         t          ¦   «         | _        t          ¦   «         | _        d S r9   )re   r   rm   r¿   rp   )r<   re   s     r*   r>   zTraceRunner.__init__D  s$   € Ø,ˆÔÝ‘w”wˆŒÝ™œˆŒˆˆr)   c                 ó,   — t          | j        |¦  «        S r9   )r   re   )r<   Úlinenos     r*   Úget_debug_loczTraceRunner.get_debug_locI  s   € Ý�4Ô&¨Ñ/Ô/Ð/r)   c                 óŽ  — t           dv rS|j        rK|j        rD|j        d         }|d         }|�%||j        k    r|j                             ¦   «          nn|j        °Dnt           dv rnt	          t           ¦  «        ‚|                     ¦   «         }|j        dk    rAt                               d|j	        |¦  «         t                               d|j
        ¦  «         t          | d                     |j        ¦  «        d ¦  «        }|� |||¦  «         d S d	|j        z  }t          ||                      |j        ¦  «        ¬
¦  «        ‚)Nr‡   éÿÿÿÿrŠ   r¥   ÚCACHEzdispatch pc=%s, inst=%szstack %szop_{}z$Use of unsupported opcode (%s) found©Úloc)r   Ú_blockstackrg   Úpoprï   r“   r”   r\   r]   rœ   rq   ÚgetattrrI   r   rø   r÷   )r<   rƒ   ÚtopblkÚblk_endrã   Úfnrî   s          r*   rr   zTraceRunner.dispatchL  sR  € ÝÐEÐEÐEØÔ ð àÔ'ð Ø"Ô.¨rÔ2�FØ$ Uœm�GØÐ*¨w¸%Ô:JÒ/JÐ/JØÔ)×-Ò-Ñ/Ô/Ð/Ð/àð Ô'ð øõ ˜*Ð$Ð$Øå%¥iÑ0Ô0Ð0Ø�~Š~ÑÔˆØŒ;˜'Ò!Ð!Ý�MŠMÐ3°U´YÀÑEÔEÐEÝ�MŠM˜* e¤lÑ3Ô3Ð3Ý�T˜7Ÿ>š>¨$¬+Ñ6Ô6¸Ñ=Ô=ˆØˆ>ØˆBˆu�d‰OŒOˆOˆOˆOà8¸4¼;ÑFˆCÝ*¨3Ø/3×/AÒ/AÀ$Ä+Ñ/NÔ/NðPñ Pô Pð Pr)   c                 óê   — |                      d¦  «        }|                     |¦  «         |j        }i }|d         }||k    r||z
  |d<   d}|d         r|dz  }||d<    |j        d
d|d         i|¤Ž d	S )zo
        Adjust stack when entering an exception handler to match expectation
        by the bytecode.
        r2   r�   r¨   é   rŽ   r«   rb   rŠ   Nr(   )r�   r¬   r�   r–   )r<   rƒ   r¯   rc   r°   Úexpected_depthÚextra_stacks          r*   r˜   z TraceRunner._adjust_except_stackg  s§   € ð
 ×$Ò$ UÑ+Ô+ˆØ×!Ò! &Ñ)Ô)Ð)ØÔ"ˆØˆØ Ô.ˆØ�NÒ"Ð"à# nÑ4ˆF�6‰NàˆØ�,Ôð 	Ø˜1ÑˆKØ%ˆˆw‰ØˆŒ
Ð.Ð.�f˜U”mÐ. vÐ.Ð.Ð.Ð.Ð.r)   c                 ó0   — |                      |¦  «         d S r9   ©rn   râ   s      r*   Úop_NOPzTraceRunner.op_NOP{  ó   € Ø�Š�TÑÔÐÐÐr)   rä   ræ   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Ú	op_RESUMEzTraceRunner.op_RESUME†  r  r)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_CACHEzTraceRunner.op_CACHE‰  r  r)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Ú
op_PRECALLzTraceRunner.op_PRECALLŒ  r  r)   c                 ó~   — |                      |                     ¦   «         ¦  «         |                     |¦  «         d S r9   )ÚpushÚ	make_nullrn   râ   s      r*   Úop_PUSH_NULLzTraceRunner.op_PUSH_NULL�  s6   € Ø�
Š
�5—?’?Ñ$Ô$Ñ%Ô%Ð%Ø�Š�TÑÔÐÐÐr)   c                 ó~   — |                      |                     ¦   «         ¦  «         |                     |¦  «         d S r9   )r  Ú	make_temprn   râ   s      r*   Úop_RETURN_GENERATORzTraceRunner.op_RETURN_GENERATOR“  s8   € ð 	�
Š
�5—?’?Ñ$Ô$Ñ%Ô%Ð%Ø�Š�TÑÔÐÐÐr)   ©r   r   r   c                 óÚ   — |                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S )N©r=   ÚresÚstrvar©rÿ   r  rn   r  )r<   rƒ   rã   r=   r  r  s         r*   Úop_FORMAT_SIMPLEzTraceRunner.op_FORMAT_SIMPLE¡  sZ   € Ø—I’I‘K”KˆEØ—_’_Ñ&Ô&ˆFØ—/’/Ñ#Ô#ˆCØ�LŠL˜ U°¸FˆLÑCÔCÐCØ�JŠJ�s‰OŒOˆOˆOˆOr)   ©r,   r.   r   c                 óF  — |j         dk    r+d}t          ||                      |j        ¦  «        ¬¦  «        ‚|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         dS )aF  
        FORMAT_VALUE(flags): flags argument specifies format spec which is
        not supported yet. Currently, we just call str() on the value.
        Pops a value from stack and pushes results back.
        Required for supporting f-strings.
        https://docs.python.org/3/library/dis.html#opcode-FORMAT_VALUE
        r   z*format spec in f-strings not supported yetrü   r  N)Úargr   rø   r÷   rÿ   r  rn   r  )r<   rƒ   rã   rî   r=   r  r  s          r*   Úop_FORMAT_VALUEzTraceRunner.op_FORMAT_VALUE¬  sœ   € ð Œ8�qŠ=ˆ=Ø>ˆCÝ*¨3Ø/3×/AÒ/AÀ$Ä+Ñ/NÔ/NðPñ Pô Pð Pà—	’	‘”ˆØ—’Ñ"Ô"ˆØ�oŠoÑÔˆØ�Š�T ¨C¸ˆÑ?Ô?Ð?Ø�
Š
�3‰Œˆˆˆr)   c                 óZ  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }|dk    r‰                     ¦   «         g}nˆfd„t          |dz
  ¦  «        D ¦   «         }‰                     |||¬¦  «         ‰                     |d         ¦  «         dS )zú
        BUILD_STRING(count): Concatenates count strings from the stack and
        pushes the resulting string onto the stack.
        Required for supporting f-strings.
        https://docs.python.org/3/library/dis.html#opcode-BUILD_STRING
        c                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   ©rÿ   ©Ú.0Ú_rƒ   s     €r*   ú
<listcomp>z/TraceRunner.op_BUILD_STRING.<locals>.<listcomp>Æ  s!   ø€ Ð CÐ CÐ C° §¢¡¤Ð CÐ CÐ Cr)   r   c                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   ©r  r'  s     €r*   r*  z/TraceRunner.op_BUILD_STRING.<locals>.<listcomp>Ë  s#   ø€ Ð@Ð@Ð@¨!�E—O’OÑ%Ô%Ð@Ð@Ð@r)   r  )ÚstringsÚtmpsrú   N©r"  rÐ   ÚreversedÚranger  rn   r  )r<   rƒ   rã   Úcountr-  r.  s    `    r*   Úop_BUILD_STRINGzTraceRunner.op_BUILD_STRING¾  s²   ø€ ð ”ˆÝ•xÐ CÐ CÐ CÐ Cµe¸E±l´lÐ CÑ CÔ CÑDÔDÑEÔEˆà�AŠ:ˆ:Ø—O’OÑ%Ô%Ð&ˆDˆDà@Ð@Ð@Ð@­u°U¸Q±YÑ/?Ô/?Ð@Ñ@Ô@ˆDØ�Š�T 7°ˆÑ6Ô6Ð6Ø�
Š
�4˜”8ÑÔÐÐÐr)   c                 ó.   — |                      ¦   «          d S r9   r&  râ   s      r*   Ú
op_POP_TOPzTraceRunner.op_POP_TOPÏ  s   € Ø�	Š	‰Œˆˆˆr)   ©r   c                 óV   — |                      ¦   «          |                      ¦   «          d S r9   r&  râ   s      r*   Úop_POP_ITERzTraceRunner.op_POP_ITERÔ  ó    € Ø�IŠI‰KŒKˆKØ�IŠI‰KŒKˆKˆKˆKr)   )r   c                 ó°   — |                      ¦   «         }|                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S )N)Úvalr  )r  rÿ   rn   r  )r<   rƒ   rã   r  Útoss        r*   Ú
op_TO_BOOLzTraceRunner.op_TO_BOOLà  sI   € Ø—/’/Ñ#Ô#ˆCØ—)’)‘+”+ˆCØ�LŠL˜ 3¨CˆLÑ0Ô0Ð0Ø�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó  — |                      ¦   «         }|j        dz	  }|                     |||¬¦  «         |                     |¦  «         |j        dz  r)|                     |                     ¦   «         ¦  «         d S d S ©Nr  )Úidxr  ©r  r"  rn   r  r  ©r<   rƒ   rã   r  r@  s        r*   Úop_LOAD_GLOBALzTraceRunner.op_LOAD_GLOBALë  s}   € à—/’/Ñ#Ô#ˆCØ”(˜a‘-ˆCØ�LŠL˜ 3¨CˆLÑ0Ô0Ð0Ø�JŠJ�s‰OŒOˆOàŒx˜!‰|ð .Ø—
’
˜5Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-ð.ð .r)   ©r.   r   c                 óþ   — |                      ¦   «         }|j        dz	  }|                     |||¬¦  «         |j        dz  r'|                     |                     ¦   «         ¦  «         |                     |¦  «         d S r?  rA  rB  s        r*   rC  zTraceRunner.op_LOAD_GLOBALõ  sq   € Ø—/’/Ñ#Ô#ˆCØ”(˜a‘-ˆCØ�LŠL˜ 3¨CˆLÑ0Ô0Ð0àŒx˜!‰|ð .Ø—
’
˜5Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-Ø�JŠJ�s‰OŒOˆOˆOˆOr)   r¥   c                 ó†   — |                      ¦   «         }|                     ||¬¦  «         |                     |¦  «         d S ©N©r  ©r  rn   r  ©r<   rƒ   rã   r  s       r*   rC  zTraceRunner.op_LOAD_GLOBALþ  s:   € Ø—/’/Ñ#Ô#ˆCØ�LŠL˜ 3ˆLÑ'Ô'Ð'Ø�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_COPY_FREE_VARSzTraceRunner.op_COPY_FREE_VARS  r  r)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_MAKE_CELLzTraceRunner.op_MAKE_CELL  r  r)   c                 ó†   — |                      ¦   «         }|                     ||¬¦  «         |                     |¦  «         d S rG  rI  rJ  s       r*   Úop_LOAD_DEREFzTraceRunner.op_LOAD_DEREF  ó:   € Ø�oŠoÑÔˆØ�Š�T˜sˆÑ#Ô#Ð#Ø�
Š
�3‰Œˆˆˆr)   c                 óž   — |                      d¦  «        d|j        › �z   }|                     |¦  «         |                     ||¬¦  «         d S )NÚconstú.rH  )r  r"  r  rn   rJ  s       r*   Úop_LOAD_CONSTzTraceRunner.op_LOAD_CONST  sK   € à�oŠo˜gÑ&Ô&¨¨T¬X¨¨Ñ7ˆØ�
Š
�3‰ŒˆØ�Š�T˜sˆÑ#Ô#Ð#Ð#Ð#r)   c                 óÊ   — d|j         cxk    rdk     sn J ‚|                     d¦  «        d|j         › �z   }|                     |¦  «         |                     ||¬¦  «         d S )Nr   é   rS  rT  rH  )r"  r  r  rn   rJ  s       r*   Úop_LOAD_SMALL_INTzTraceRunner.op_LOAD_SMALL_INT  sr   € Ø˜œÐ&Ð&Ò&Ð& 3Ò&Ð&Ð&Ð&Ð&Ð&Ø—/’/ 'Ñ*Ô*¨^°´¨^¨^Ñ;ˆCØ�JŠJ�s‰OŒOˆOØ�LŠL˜ 3ˆLÑ'Ô'Ð'Ð'Ð'r)   c                 ó,  — |                      ¦   «         }|                     ¦   «         }t          dv rG|                     |¦  «         |j        dz  r'|                     |                     ¦   «         ¦  «         nƒt          dv rG|j        dz  r'|                     |                     ¦   «         ¦  «         |                     |¦  «         n3t          dv r|                     |¦  «         nt          t          ¦  «        ‚|                     |||¬¦  «         d S )Nr  r  ©r   r+   ©Úitemr  )rÿ   r  r   r  r"  r  rï   rn   )r<   rƒ   rã   r\  r  s        r*   Úop_LOAD_ATTRzTraceRunner.op_LOAD_ATTR"  só   € Ø�yŠy‰{Œ{ˆØ�oŠoÑÔˆÝÐ3Ð3Ð3Ø�JŠJ�s‰OŒOˆOØŒx˜!‰|ð .Ø—
’
˜5Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-øÝ˜*Ð$Ð$ØŒx˜!‰|ð .Ø—
’
˜5Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-Ø�JŠJ�s‰OŒOˆOˆOÝÐ,Ð,Ð,Ø�JŠJ�s‰OŒOˆOˆOå%¥iÑ0Ô0Ð0Ø�Š�T ¨#ˆÑ.Ô.Ð.Ð.Ð.r)   c                 ó”  — t           dv rÊ	 |                     |¦  «        }næ# t          $ r¦ |j        }t	          |j        ¦  «        }t	          |j        ¦  «        }t	          |j        ¦  «        }||z   }d|j        |z
  cxk    r|k     sn J ‚| 	                    ¦   «         }	| 
                    ||	d¬¦  «         |                     |	¦  «         Y d S w xY wt           dv r|                     |¦  «        }nt          t           ¦  «        ‚| 	                    |¦  «        }	| 
                    ||	¬¦  «         |                     |	¦  «         d S )Nr  r   T)r  Úas_load_derefr   rH  )r   Úget_varnameÚ
IndexErrorr^   ÚlenÚco_varnamesÚco_freevarsÚco_cellvarsr"  r  rn   r  rï   )
r<   rƒ   rã   ÚnameÚbcÚnum_varnamesÚnum_freevarsÚnum_cellvarsÚmax_fast_localr  s
             r*   Úop_LOAD_FASTzTraceRunner.op_LOAD_FAST3  sW  € ÝÐ3Ð3Ð3ðØ×(Ò(¨Ñ.Ô.��øÝð ð ð ð ”_�Ý" 2¤>Ñ2Ô2�Ý" 2¤>Ñ2Ô2�Ý" 2¤>Ñ2Ô2�Ø!-°Ñ!<�Ø˜DœH |Ñ3ÐDÐDÒDÐD°nÒDÐDÐDÐDÐDÐDØ—o’oÑ'Ô'�Ø—’˜T s¸$�Ñ?Ô?Ð?Ø—
’
˜3‘”�Ø��ðøøøõ  Ð5Ð5Ð5Ø×$Ò$ TÑ*Ô*ˆDˆDå%¥iÑ0Ô0Ð0Ø�oŠo˜dÑ#Ô#ˆØ�Š�T˜sˆÑ#Ô#Ð#Ø�
Š
�3‰Œˆˆˆs   ‹! ¡B,CÃCc                 óT  — |j         }|dz	  }|dz  }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }	|                     |||	¬¦  «         |                     |¦  «         |                     |	¦  «         d S )Né   r   )Úres1Úres2)r"  Úget_varname_by_argr  rn   r  )
r<   rƒ   rã   ÚopargÚoparg1Úoparg2Úname1Úname2ro  rp  s
             r*   Úop_LOAD_FAST_LOAD_FASTz"TraceRunner.op_LOAD_FAST_LOAD_FASTP  s¥   € Ø”HˆEØ˜a‘ZˆFØ˜R‘ZˆFØ×,Ò,¨VÑ4Ô4ˆEØ×,Ò,¨VÑ4Ô4ˆEØ—?’? 5Ñ)Ô)ˆDØ—?’? 5Ñ)Ô)ˆDØ�LŠL˜ D¨tˆLÑ4Ô4Ð4Ø�JŠJ�tÑÔÐØ�JŠJ�tÑÔÐÐÐr)   c                 óô   — |j         }|dz  }|                     ¦   «         }|                     |¦  «        }|                     |¦  «        }|                     |||¬¦  «         |                     |¦  «         d S )Nr   )Ústore_valueÚload_res)r"  rÿ   rq  r  rn   r  )r<   rƒ   rã   rr  rt  ry  Ú	load_namerz  s           r*   Úop_STORE_FAST_LOAD_FASTz#TraceRunner.op_STORE_FAST_LOAD_FAST\  ss   € Ø”HˆEà˜R‘ZˆFØŸ)š)™+œ+ˆKØ×0Ò0°Ñ8Ô8ˆIØ—’ yÑ1Ô1ˆHØ�LŠL˜¨;ÀˆLÑJÔJÐJØ�JŠJ�xÑ Ô Ð Ð Ð r)   c                 ó†   — |                      ¦   «         }|                      ¦   «         }|                     |||¬¦  «         d S )N)Úvalue1Úvalue2©rÿ   rn   )r<   rƒ   rã   r~  r  s        r*   Úop_STORE_FAST_STORE_FASTz$TraceRunner.op_STORE_FAST_STORE_FASTf  s:   € Ø—Y’Y‘[”[ˆFØ—Y’Y‘[”[ˆFØ�LŠL˜ f°VˆLÑ<Ô<Ð<Ð<Ð<r)   r   r+   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_DELETE_FASTzTraceRunner.op_DELETE_FAST�  r  r)   c                 ó\   — |                      ¦   «         }|                     ||¬¦  «         d S )N)rž   r€  )r<   rƒ   rã   rž   s       r*   Úop_DELETE_ATTRzTraceRunner.op_DELETE_ATTR„  s+   € Ø—’‘”ˆØ�Š�T &ˆÑ)Ô)Ð)Ð)Ð)r)   c                 ó†   — |                      ¦   «         }|                      ¦   «         }|                     |||¬¦  «         d S )N)rž   r=   r€  )r<   rƒ   rã   rž   r=   s        r*   Úop_STORE_ATTRzTraceRunner.op_STORE_ATTRˆ  s:   € Ø—’‘”ˆØ—	’	‘”ˆØ�Š�T &°ˆÑ6Ô6Ð6Ð6Ð6r)   c                 ó\   — |                      ¦   «         }|                     ||¬¦  «         d S ©N)r=   r€  ©r<   rƒ   rã   r=   s       r*   Úop_STORE_DEREFzTraceRunner.op_STORE_DEREF�  ó+   € Ø—	’	‘”ˆØ�Š�T ˆÑ'Ô'Ð'Ð'Ð'r)   c                 ó\   — |                      ¦   «         }|                     ||¬¦  «         d S r‰  r€  rŠ  s       r*   Úop_STORE_FASTzTraceRunner.op_STORE_FAST‘  rŒ  r)   c           	      óX  — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         |                     |¦  «         dS )z"
        TOS = TOS1[TOS:]
        )ÚbaseÚstartr  ÚslicevarÚindexvarÚnonevarNr  ©	r<   rƒ   rã   r<  Útos1r  r’  r“  r”  s	            r*   Ú
op_SLICE_1zTraceRunner.op_SLICE_1•  sŸ   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�oŠoÑÔˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	�
Š
�3‰Œˆˆˆr)   c           	      óX  — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         |                     |¦  «         dS )z"
        TOS = TOS1[:TOS]
        )r�  Ústopr  r’  r“  r”  Nr  r•  s	            r*   Ú
op_SLICE_2zTraceRunner.op_SLICE_2ª  sŸ   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�oŠoÑÔˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	�
Š
�3‰Œˆˆˆr)   c           	      óX  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         |                     |¦  «         dS )z&
        TOS = TOS2[TOS1:TOS]
        )r�  r‘  r™  r  r’  r“  Nr  )	r<   rƒ   rã   r<  r–  Útos2r  r’  r“  s	            r*   Ú
op_SLICE_3zTraceRunner.op_SLICE_3¿  s�   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�yŠy‰{Œ{ˆØ�oŠoÑÔˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	�
Š
�3‰Œˆˆˆr)   c                 ó  — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||||¬¦  «         dS )z
        TOS[:] = TOS1
        )r�  r=   r’  r“  r”  N©rÿ   r  rn   )r<   rƒ   rã   r<  r=   r’  r“  r”  s           r*   Úop_STORE_SLICE_0zTraceRunner.op_STORE_SLICE_0Ô  s‚   € ð �iŠi‰kŒkˆØ—	’	‘”ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c           	      ó.  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         dS )z#
        TOS1[TOS:] = TOS2
        )r�  r‘  r’  r=   r“  r”  NrŸ  ©	r<   rƒ   rã   r<  r–  r=   r’  r“  r”  s	            r*   Úop_STORE_SLICE_1zTraceRunner.op_STORE_SLICE_1æ  s’   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ—	’	‘”ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c           	      ó.  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         dS )z#
        TOS1[:TOS] = TOS2
        )r�  r™  r=   r’  r“  r”  NrŸ  r¢  s	            r*   Úop_STORE_SLICE_2zTraceRunner.op_STORE_SLICE_2ú  s’   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ—	’	‘”ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c           	      ó.  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         dS )z'
        TOS2[TOS1:TOS] = TOS3
        )r�  r‘  r™  r=   r’  r“  NrŸ  )	r<   rƒ   rã   r<  r–  rœ  r=   r’  r“  s	            r*   Úop_STORE_SLICE_3zTraceRunner.op_STORE_SLICE_3  s�   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�yŠy‰{Œ{ˆØ—	’	‘”ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ�ŠØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 óÚ   — |                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         dS )z
        del TOS[:]
        )r�  r’  r“  r”  NrŸ  )r<   rƒ   rã   r<  r’  r“  r”  s          r*   Úop_DELETE_SLICE_0zTraceRunner.op_DELETE_SLICE_0"  so   € ð �iŠi‰kŒkˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØ�s X¸Øð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 ó  — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||||¬¦  «         dS )z 
        del TOS1[TOS:]
        )r�  r‘  r’  r“  r”  NrŸ  ©r<   rƒ   rã   r<  r–  r’  r“  r”  s           r*   Úop_DELETE_SLICE_1zTraceRunner.op_DELETE_SLICE_1/  s‚   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 ó  — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||||¬¦  «         dS )z 
        del TOS1[:TOS]
        )r�  r™  r’  r“  r”  NrŸ  r«  s           r*   Úop_DELETE_SLICE_2zTraceRunner.op_DELETE_SLICE_2A  s‚   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ—/’/Ñ#Ô#ˆØ�ŠØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 ó  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ||||||¬¦  «         dS )z$
        del TOS2[TOS1:TOS]
        )r�  r‘  r™  r’  r“  NrŸ  )r<   rƒ   rã   r<  r–  rœ  r’  r“  s           r*   Úop_DELETE_SLICE_3zTraceRunner.op_DELETE_SLICE_3S  s|   € ð �iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�yŠy‰{Œ{ˆØ—?’?Ñ$Ô$ˆØ—?’?Ñ$Ô$ˆØ�ŠØ�t 4¨c¸HØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 óÞ  — |j         }|dk    r/|                     ¦   «         }|                     ¦   «         }|}|}d}nX|dk    rC|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }	|	}|}|}nt          d¦  «        ‚|                     ¦   «         }
|                     ¦   «         }|                     ||||||
¬¦  «         |                     |¦  «         dS )z<
        slice(TOS1, TOS) or slice(TOS2, TOS1, TOS)
        é   Nr   Úunreachable)r‘  r™  Ústepr  r’  )r"  rÿ   Ú	Exceptionr  rn   r  )r<   rƒ   rã   Úargcr<  r–  r‘  r™  r´  rœ  r’  r  s               r*   Úop_BUILD_SLICEzTraceRunner.op_BUILD_SLICEa  sé   € ð ŒxˆØ�1Š9ˆ9Ø—)’)‘+”+ˆCØ—9’9‘;”;ˆDØˆEØˆDØˆDˆDØ�QŠYˆYØ—)’)‘+”+ˆCØ—9’9‘;”;ˆDØ—9’9‘;”;ˆDØˆEØˆDØˆDˆDå˜MÑ*Ô*Ð*Ø—?’?Ñ$Ô$ˆØ�oŠoÑÔˆØ�ŠØ˜ D¨t¸Àxð 	ñ 	
ô 	
ð 	
ð 	�
Š
�3‰Œˆˆˆr)   c           	      óX  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         |                     |¦  «         d S )N)r‘  rŠ   Ú	containerr  r’  Útemp_resr  )	r<   rƒ   rã   rŠ   r‘  r¹  rº  r  r’  s	            r*   Úop_BINARY_SLICEzTraceRunner.op_BINARY_SLICE}  s–   € Ø—)’)‘+”+ˆCØ—I’I‘K”KˆEØŸ	š	™œˆIØ—’Ñ(Ô(ˆHØ—/’/Ñ#Ô#ˆCØ—’Ñ(Ô(ˆHØ�LŠLØ˜E s°iÀSØ!¨Hð ñ ô ð ð �JŠJ�s‰OŒOˆOˆOˆOr)   c           	      ó.  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||||¬¦  «         d S )N)r‘  rŠ   r¹  r=   r  r’  rŸ  )	r<   rƒ   rã   rŠ   r‘  r¹  r=   r’  r  s	            r*   Úop_STORE_SLICEzTraceRunner.op_STORE_SLICE�  s‰   € Ø—)’)‘+”+ˆCØ—I’I‘K”KˆEØŸ	š	™œˆIØ—I’I‘K”KˆEà—’Ñ(Ô(ˆHØ—/’/Ñ#Ô#ˆCØ�LŠLØ˜E s°iÀuØ (ð ñ ô ð ð ð r)   c                 óú   — |                      ¦   «         }|                     ||¬¦  «         |                     ¦   «         }|j        }|                     |¬¦  «         ||k    r|                     |¬¦  «         d S d S )N©Úpredr‰   )rÿ   rn   Úget_jump_targetr—   r–   )r<   rƒ   rã   rÀ  Útarget_instÚ	next_insts         r*   Ú_op_POP_JUMP_IFzTraceRunner._op_POP_JUMP_IF   s€   € Ø�yŠy‰{Œ{ˆØ�Š�T ˆÑ%Ô%Ð%à×*Ò*Ñ,Ô,ˆØ”Iˆ	ð 	�
Š
�iˆ
Ñ Ô Ð Ø˜)Ò#Ð#Ø�JŠJ˜+ˆJÑ&Ô&Ð&Ð&Ð&ð $Ð#r)   c                 óä   — |                      ¦   «         }|                     ||¬¦  «         |                     |j        d¬¦  «         |                     |                     ¦   «         ¬¦  «         d S )Nr¿  r  ©rb   r¨   r‰   )Úget_tosrn   r–   r—   rÁ  )r<   rƒ   rã   rÀ  s       r*   Ú_op_JUMP_IF_OR_POPzTraceRunner._op_JUMP_IF_OR_POP·  sc   € Ø�}Š}‰ŒˆØ�Š�T ˆÑ%Ô%Ð%Ø�
Š
�d”i aˆ
Ñ(Ô(Ð(Ø�
Š
�d×*Ò*Ñ,Ô,ˆ
Ñ-Ô-Ð-Ð-Ð-r)   c                 ó2   — |                       ||¦  «         d S r9   ©rÄ  râ   s      r*   Úop_POP_JUMP_FORWARD_IF_NONEz'TraceRunner.op_POP_JUMP_FORWARD_IF_NONEÀ  ó   € Ø×Ò˜U DÑ)Ô)Ð)Ð)Ð)r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_FORWARD_IF_NOT_NONEz+TraceRunner.op_POP_JUMP_FORWARD_IF_NOT_NONEÃ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_BACKWARD_IF_NONEz(TraceRunner.op_POP_JUMP_BACKWARD_IF_NONEÆ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Ú op_POP_JUMP_BACKWARD_IF_NOT_NONEz,TraceRunner.op_POP_JUMP_BACKWARD_IF_NOT_NONEÉ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_FORWARD_IF_FALSEz(TraceRunner.op_POP_JUMP_FORWARD_IF_FALSEÌ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_FORWARD_IF_TRUEz'TraceRunner.op_POP_JUMP_FORWARD_IF_TRUEÏ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_BACKWARD_IF_FALSEz)TraceRunner.op_POP_JUMP_BACKWARD_IF_FALSEÒ  rÌ  r)   c                 ó2   — |                       ||¦  «         d S r9   rÊ  râ   s      r*   Úop_POP_JUMP_BACKWARD_IF_TRUEz(TraceRunner.op_POP_JUMP_BACKWARD_IF_TRUEÕ  rÌ  r)   c                 ó€   — |                      |¦  «         |                     |                     ¦   «         ¬¦  «         d S ©Nr‰   ©rn   r–   rÁ  râ   s      r*   Úop_JUMP_FORWARDzTraceRunner.op_JUMP_FORWARDØ  ó:   € Ø�Š�TÑÔÐØ�
Š
�d×*Ò*Ñ,Ô,ˆ
Ñ-Ô-Ð-Ð-Ð-r)   c                 ó€   — |                      |¦  «         |                     |                     ¦   «         ¬¦  «         d S rÜ  rÝ  râ   s      r*   Úop_JUMP_BACKWARDzTraceRunner.op_JUMP_BACKWARDÜ  rß  r)   c                 ó€   — |                      |¦  «         |                     |                     ¦   «         ¬¦  «         d S rÜ  rÝ  râ   s      r*   Úop_JUMP_ABSOLUTEzTraceRunner.op_JUMP_ABSOLUTEâ  rß  r)   c                 ó¾   — |                      d¦  «        d         }|                     ||¬¦  «         |                     ¦   «          |                     |¬¦  «         d S )Nr3   rŠ   r‹   r‰   )r�   rn   Ú	pop_blockr–   )r<   rƒ   rã   rŠ   s       r*   Úop_BREAK_LOOPzTraceRunner.op_BREAK_LOOPæ  sZ   € à×!Ò! &Ñ)Ô)¨%Ô0ˆØ�Š�T˜sˆÑ#Ô#Ð#Ø�ŠÑÔÐØ�
Š
�cˆ
ÑÔÐÐÐr)   c                 ó¦   — |                      ||                     ¦   «         |                     ¦   «         ¬¦  «         |                     ¦   «          d S )N©ÚretvalÚcastval)rn   rÿ   r  Ú	terminaterâ   s      r*   Úop_RETURN_VALUEzTraceRunner.op_RETURN_VALUEí  sB   € Ø�Š�T %§)¢)¡+¤+°u·²Ñ7HÔ7HˆÑIÔIÐIØ�ŠÑÔÐÐÐr)   c                 ó¬   — |                      d¦  «        }|                     |||                      ¦   «         ¬¦  «         |                     ¦   «          d S )NrS  rè  )r  rn   rë  rJ  s       r*   Úop_RETURN_CONSTzTraceRunner.op_RETURN_CONSTò  sK   € Ø—/’/ 'Ñ*Ô*ˆCØ�LŠL˜ c°5·?²?Ñ3DÔ3DˆLÑEÔEÐEØ�OŠOÑÔÐÐÐr)   c                 ó°   — |                      ¦   «         }|                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S ©N©r=   r  r  ©r<   rƒ   rã   r;  r  s        r*   Úop_YIELD_VALUEzTraceRunner.op_YIELD_VALUEû  óI   € Ø�iŠi‰kŒkˆØ�oŠoÑÔˆØ�Š�T ¨#ˆÑ.Ô.Ð.Ø�
Š
�3‰Œˆˆˆr)   r‡   c                 ó¦  — |j         dk    r@d }|                     ¦   «         r)t          d|                      |j        ¦  «        ¬¦  «        ‚n/|j         dk    r|                     ¦   «         }nt          d¦  «        ‚|                     ||¬¦  «         |                     ¦   «         r|                      |¦  «         d S | 	                    ¦   «          d S )Nr   ú4The re-raising of an exception is not yet supported.rü   r  ú)Multiple argument raise is not supported.©Úexc)
r"  r’   r   rø   r÷   rÿ   Ú
ValueErrorrn   r˜   rë  ©r<   rƒ   rã   rù  s       r*   Úop_RAISE_VARARGSzTraceRunner.op_RAISE_VARARGS  sß   € ØŒx˜1Š}ˆ}Ø�ð ×'Ò'Ñ)Ô)ð Ý2ØNØ ×.Ò.¨t¬{Ñ;Ô;ðñ ô ð ðð
 ”˜Q’�Ø—i’i‘k”k��å Ð!LÑMÔMÐMØ�LŠL˜ 3ˆLÑ'Ô'Ð'à×#Ò#Ñ%Ô%ð "Ø×)Ò)¨%Ñ0Ô0Ð0Ð0Ð0à—’Ñ!Ô!Ð!Ð!Ð!r)   c                 ó¢  — t          |                     d¦  «        d u|                     d¦  «        d ug¦  «        }|j        dk    r.d }|r)t          d|                      |j        ¦  «        ¬¦  «        ‚n/|j        dk    r|                     ¦   «         }nt          d¦  «        ‚|                     ||¬¦  «         | 	                    ¦   «          d S )	Nr5   r6   r   rö  rü   r  r÷  rø  )
Úanyr�   r"  r   rø   r÷   rÿ   rú  rn   rë  )r<   rƒ   rã   Úin_exc_blockrù  s        r*   rü  zTraceRunner.op_RAISE_VARARGS  så   € ÝØ×#Ò# HÑ-Ô-°TÐ9Ø×#Ò# IÑ.Ô.°dÐ:ð ñ ô ˆLð Œx˜1Š}ˆ}Ø�Øð Ý2ØNØ ×.Ò.¨t¬{Ñ;Ô;ðñ ô ð ðð
 ”˜Q’�Ø—i’i‘k”k��å Ð!LÑMÔMÐMØ�LŠL˜ 3ˆLÑ'Ô'Ð'Ø�OŠOÑÔÐÐÐr)   c                 óâ   — g }t          t          ¦  «        D ]@}|                     ¦   «         }|                     |¦  «         |                     |¦  «         ŒA|                     ||¬¦  «         d S )N)Útemps)r1  r­   r  rn   r  )r<   rƒ   rã   r  ÚiÚtmps         r*   Úop_BEGIN_FINALLYzTraceRunner.op_BEGIN_FINALLY-  sm   € ØˆÝÕ+Ñ,Ô,ð 	ð 	ˆAØ—/’/Ñ#Ô#ˆCØ�LŠL˜ÑÔÐØ�JŠJ�s‰OŒOˆOˆOØ�Š�T ˆÑ'Ô'Ð'Ð'Ð'r)   c                 ód   — |                      ¦   «         }|                     |d         ¦  «         d S )Nr§   )rå  Úreset_stack©r<   rƒ   rã   Úblks       r*   Úop_END_FINALLYzTraceRunner.op_END_FINALLY5  s0   € Ø�oŠoÑÔˆØ×Ò˜#˜mÔ,Ñ-Ô-Ð-Ð-Ð-r)   c                 ó.   — |                      ¦   «          d S r9   r&  râ   s      r*   Ú
op_END_FORzTraceRunner.op_END_FOR:  ó   € Ø�IŠI‰KŒKˆKˆKˆKr)   rZ  c                 óV   — |                      ¦   «          |                      ¦   «          d S r9   r&  râ   s      r*   r  zTraceRunner.op_END_FOR=  r9  r)   c                 ór   — |j         dk    r+d}t          ||                      |j        ¦  «        ¬¦  «        ‚d S )Nr   zGUnsupported use of a bytecode related to try..finally or a with-contextrü   )r"  r   rø   r÷   )r<   rƒ   rã   rî   s       r*   Úop_POP_FINALLYzTraceRunner.op_POP_FINALLYE  sK   € àŒ8�qŠ=ˆ=ð(ˆCå*¨3Ø/3×/AÒ/AÀ$Ä+Ñ/NÔ/NðPñ Pô Pð Pð ˆ=r)   c                 ó   — d S r9   r(   râ   s      r*   Úop_CALL_FINALLYzTraceRunner.op_CALL_FINALLYM  s   € Øˆr)   c                 ó.   — |                      ¦   «          d S r9   )rë  râ   s      r*   Úop_WITH_EXCEPT_STARTz TraceRunner.op_WITH_EXCEPT_STARTP  s   € Ø�ŠÑÔÐÐÐr)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_WITH_CLEANUP_STARTz!TraceRunner.op_WITH_CLEANUP_STARTS  ó   € à�Š�TÑÔÐÐÐr)   c                 ó0   — |                      |¦  «         d S r9   r	  râ   s      r*   Úop_WITH_CLEANUP_FINISHz"TraceRunner.op_WITH_CLEANUP_FINISHW  r  r)   c                 ó~   — |                      |                     d|                     ¦   «         ¬¦  «        ¦  «         d S )Nr3   ©rª   rŠ   )Ú
push_blockrŸ   rÁ  râ   s      r*   Úop_SETUP_LOOPzTraceRunner.op_SETUP_LOOP[  sN   € à×ÒØ×ÒØØ×(Ò(Ñ*Ô*ð ñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r)   c                 ój  — |                      ¦   «         }|                     ¦   «         }|                     d¬¦  «        }|                     |¦  «         |                     |¦  «         |j        }|                     |j        ¦  «        }|g}|j        D ]'}	|	j        |j        k    r|                     |	¦  «         Œ(t          d„ |D ¦   «         ¦  «        }
|                     ||||
¬¦  «         | 
                    |                     d|
¬¦  «        ¦  «         |                     |j        ¬¦  «         d S )NÚsetup_with_exitfn©Úprefixc              3   ó$   K  — | ]}|j         V — Œd S r9   r‹   ©r(  r¢   s     r*   ú	<genexpr>z-TraceRunner.op_BEFORE_WITH.<locals>.<genexpr>z  ó$   è è € Ð1Ð1 �b”fÐ1Ð1Ð1Ð1Ð1Ð1r)   )ÚcontextmanagerÚexitfnrŠ   r4   r  r‰   )rÿ   r  r  r^   Úfind_exception_entryr—   Úexception_entriesrž   rn   Úmaxr  rŸ   r–   )r<   rƒ   rã   ÚcmÚyieldedr&  rg  ÚehheadÚ	ehrelatedr¢   rŠ   s              r*   Úop_BEFORE_WITHzTraceRunner.op_BEFORE_WITHg  s=  € ð —’‘”ˆBà—o’oÑ'Ô'ˆGØ—_’_Ð,?�_Ñ@Ô@ˆFà�JŠJ�vÑÔÐØ�JŠJ�wÑÔÐð ”ˆBØ×,Ò,¨T¬YÑ7Ô7ˆFØ˜ˆIØÔ*ð )ð )�Ø”9 ¤Ò-Ð-Ø×$Ò$ RÑ(Ô(Ð(øÝÐ1Ð1 yÐ1Ñ1Ô1Ñ1Ô1ˆCØ�LŠL˜¨b¸ÀSˆLÑIÔIÐIà×ÒØ× Ò ØØð !ñ ô ñô ð ð �JŠJ˜$œ)ˆJÑ$Ô$Ð$Ð$Ð$r)   c                 ó´  — |                      ¦   «         }|                     ¦   «         }|                     d¬¦  «        }|                     |||¬¦  «         |                     |¦  «         |                     |¦  «         |                     |                     d|                     ¦   «         ¬¦  «        ¦  «         |                     |j        ¬¦  «         d S )Nr  r  )r%  r&  r4   r  r‰   )	rÿ   r  rn   r  r  rŸ   rÁ  r–   r—   )r<   rƒ   rã   r*  r+  r&  s         r*   Úop_SETUP_WITHzTraceRunner.op_SETUP_WITHˆ  sÎ   € Ø�YŠY‰[Œ[ˆà—/’/Ñ#Ô#ˆØ—’Ð(;�Ñ<Ô<ˆØ�Š�T¨"°VˆÑ<Ô<Ð<à�
Š
�6ÑÔÐØ�
Š
�7ÑÔÐà×ÒØ×ÒØØ×(Ò(Ñ*Ô*ð ñ ô ñ	
ô 	
ð 	
ð 	�
Š
�d”iˆ
Ñ Ô Ð Ð Ð r)   c           	      ó’   — |                      |d d¬¦  «        }|                     ||                      d|d|¬¦  «        ¬¦  «         d S )NF)rª   rŠ   r  r2   )rª   rŠ   r  r©   r�   )rŸ   r–   )r<   rª   rƒ   r—   rŠ   Úhandler_blocks         r*   Ú
_setup_tryzTraceRunner._setup_try›  su   € ð ×(Ò(ØØØð )ñ 
ô 
ˆð 	�
Š
ØØ×(Ò(ØØØ!Ø%ð	 )ñ ô ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 ó¨   — |                      ¦   «         }|                     |                     d¦  «        ¦  «         |                     |¦  «         d S )NÚ	exception)rÿ   r  r  )r<   rƒ   rã   r<  s       r*   Úop_PUSH_EXC_INFOzTraceRunner.op_PUSH_EXC_INFO¯  s@   € Ø�iŠi‰kŒkˆØ�
Š
�5—?’? ;Ñ/Ô/Ñ0Ô0Ð0Ø�
Š
�3‰Œˆˆˆr)   c                 ó�   — |                      |¦  «         |                      d||j        |                     ¦   «         ¬¦  «         d S )Nr6   )r—   rŠ   )rn   r3  r—   rÁ  râ   s      r*   Úop_SETUP_FINALLYzTraceRunner.op_SETUP_FINALLY´  sP   € Ø�Š�TÑÔÐØ�ŠØ�u 4¤9°$×2FÒ2FÑ2HÔ2Hð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r)   c                 ó.   — |                      ¦   «          d S r9   r&  râ   s      r*   Úop_POP_EXCEPTzTraceRunner.op_POP_EXCEPT»  r  r)   c                 óŒ  — |                      ¦   «         }|d         t          d¦  «        t          d¦  «        hvr2t          d|d         › �|                      |j        ¦  «        ¬¦  «        ‚|                     ¦   «          |                     ¦   «          |                     ¦   «          |                     |j        ¬¦  «         d S )Nrª   r5   r6   z$POP_EXCEPT got an unexpected block: rü   r‰   )rå  r1   r   rø   r÷   rÿ   r–   r—   r  s       r*   r:  zTraceRunner.op_POP_EXCEPT¿  s³   € Ø—/’/Ñ#Ô#ˆCØ�6Œ{¥9¨XÑ#6Ô#6½	À)Ñ8LÔ8LÐ"MÐMÐMÝ.ØH¸3¸v¼;ÐHÐHØ×*Ò*¨4¬;Ñ7Ô7ðñ ô ð ð �IŠI‰KŒKˆKØ�IŠI‰KŒKˆKØ�IŠI‰KŒKˆKà�JŠJ˜$œ)ˆJÑ$Ô$Ð$Ð$Ð$r)   c                 ó&  — |                      ¦   «         }|d         t          d¦  «        k    r|                     |d¬¦  «         n0|d         t          d¦  «        k    r|                     |d¬¦  «         |                     |j        ¬¦  «         d S )Nrª   r2   Útry)rª   r4   Úwithr‰   )rå  r1   rn   r–   r—   r  s       r*   Úop_POP_BLOCKzTraceRunner.op_POP_BLOCKÎ  sŠ   € Ø�oŠoÑÔˆØˆvŒ;�) EÑ*Ô*Ò*Ð*Ø�LŠL˜ EˆLÑ*Ô*Ð*Ð*Ø�Œ[�I fÑ-Ô-Ò-Ð-Ø�LŠL˜ FˆLÑ+Ô+Ð+Ø�
Š
�d”iˆ
Ñ Ô Ð Ð Ð r)   c                 óÚ   — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S )N)Úindexrž   r  r  )r<   rƒ   rã   rA  rž   r  s         r*   Úop_BINARY_SUBSCRzTraceRunner.op_BINARY_SUBSCRÚ  sX   € Ø—I’I‘K”KˆEØ—Y’Y‘[”[ˆFØ—/’/Ñ#Ô#ˆCØ�LŠL˜ U°6¸sˆLÑCÔCÐCØ�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó°   — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     ||||¬¦  «         d S )N)rž   rA  r=   r€  )r<   rƒ   rã   rA  rž   r=   s         r*   Úop_STORE_SUBSCRzTraceRunner.op_STORE_SUBSCRã  sI   € Ø—	’	‘”ˆØ—’‘”ˆØ—	’	‘”ˆØ�Š�T &°¸UˆÑCÔCÐCÐCÐCr)   c                 ó†   — |                      ¦   «         }|                      ¦   «         }|                     |||¬¦  «         d S )N)rž   rA  r€  )r<   rƒ   rã   rA  rž   s        r*   Úop_DELETE_SUBSCRzTraceRunner.op_DELETE_SUBSCRé  s:   € Ø—	’	‘”ˆØ—’‘”ˆØ�Š�T &°ˆÑ6Ô6Ð6Ð6Ð6r)   c                 óV  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }t          dv r?‰                     ¦   «         }‰                     ¦   «         }t          |¦  «        s|g|¢}d }n`t          dk     rU‰                     ¦   «         }‰                     ¦   «         }	t          |	¦  «        r|}n|	}|g|¢}‰                     ¦   «         }‰                     ¦   «         }
‰ 	                    |||||
¬¦  «         ‰ 
                    |
¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z'TraceRunner.op_CALL.<locals>.<listcomp>ð  ó!   ø€ Ð?Ð?Ð?¨a˜eŸiši™kœkÐ?Ð?Ð?r)   r  r   ©ÚfuncÚargsÚkw_namesr  )r"  rÐ   r0  r1  r   rÿ   ró   Úpop_kw_namesr  rn   r  )r<   rƒ   rã   ÚnargrL  Únull_or_selfÚcallablerM  Úcallable_or_firstargÚnull_or_callabler  s    `         r*   Úop_CALLzTraceRunner.op_CALLî  s$  ø€ ØŒxˆÝ•HÐ?Ð?Ð?Ð?µ5¸±;´;Ð?Ñ?Ô?Ñ@Ô@ÑAÔAˆÝÐ3Ð3Ð3Ø Ÿ9š9™;œ;ˆLà—y’y‘{”{ˆHÝ$ \Ñ2Ô2ð -Ø$Ð, tÐ,�ØˆHˆHÝ˜Ò Ð Ø#(§9¢9¡;¤;Ð Ø$Ÿyšy™{œ{ÐÝ Ð!1Ñ2Ô2ð 5Ø/��à+�Ø,Ð4¨tÐ4�Ø×)Ò)Ñ+Ô+ˆHØ�oŠoÑÔˆà�Š�T ¨t¸hÈCˆÑPÔPÐPØ�
Š
�3‰Œˆˆˆr)   c                 ó:   — |                      |j        ¦  «         d S r9   )Úset_kw_namesr"  râ   s      r*   Úop_KW_NAMESzTraceRunner.op_KW_NAMES  s   € Ø×Ò˜4œ8Ñ$Ô$Ð$Ð$Ð$r)   c                 ó,  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     ¦   «         }‰                     ||||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z0TraceRunner.op_CALL_FUNCTION.<locals>.<listcomp>  rI  r)   )rK  rL  r  )r"  rÐ   r0  r1  rÿ   r  rn   r  )r<   rƒ   rã   rO  rL  rK  r  s    `     r*   Úop_CALL_FUNCTIONzTraceRunner.op_CALL_FUNCTION	  sƒ   ø€ ØŒxˆÝ•HÐ?Ð?Ð?Ð?µ5¸±;´;Ð?Ñ?Ô?Ñ@Ô@ÑAÔAˆØ�yŠy‰{Œ{ˆà�oŠoÑÔˆØ�Š�T ¨4°SˆÑ9Ô9Ð9Ø�
Š
�3‰Œˆˆˆr)   c                 óV  ‡— |j         }‰                     ¦   «         }t          t          ˆfd„t	          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     ¦   «         }‰                     |||||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z3TraceRunner.op_CALL_FUNCTION_KW.<locals>.<listcomp>  rI  r)   )rK  rL  Únamesr  )r"  rÿ   rÐ   r0  r1  r  rn   r  )r<   rƒ   rã   rO  r]  rL  rK  r  s    `      r*   Úop_CALL_FUNCTION_KWzTraceRunner.op_CALL_FUNCTION_KW  s’   ø€ ØŒxˆØ—	’	‘”ˆÝ•HÐ?Ð?Ð?Ð?µ5¸±;´;Ð?Ñ?Ô?Ñ@Ô@ÑAÔAˆØ�yŠy‰{Œ{ˆà�oŠoÑÔˆØ�Š�T ¨4°uÀ#ˆÑFÔFÐFØ�
Š
�3‰Œˆˆˆr)   c                 ó¦  ‡— |j         }‰                     ¦   «         }t          t          ˆfd„t	          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     ¦   «         }t          |¦  «        s|g|¢}‰                     ¦   «         }‰                     |||||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z*TraceRunner.op_CALL_KW.<locals>.<listcomp>   s!   ø€ Ð!CÐ!CÐ!C°! %§)¢)¡+¤+Ð!CÐ!CÐ!Cr)   rJ  )	r"  rÿ   rÐ   r0  r1  ró   r  rn   r  )	r<   rƒ   rã   rO  rM  rL  Únull_or_firstargrQ  r  s	    `       r*   Ú
op_CALL_KWzTraceRunner.op_CALL_KW  sÈ   ø€ Ø”8ˆDØ—y’y‘{”{ˆHÝ�Ð!CÐ!CÐ!CÐ!Cµu¸T±{´{Ð!CÑ!CÔ!CÑDÔDÑEÔEˆDØ$Ÿyšy™{œ{ÐØ—y’y‘{”{ˆHÝ$Ð%5Ñ6Ô6ð 1Ø(Ð0¨4Ð0�à—/’/Ñ#Ô#ˆCØ�LŠL˜ H°4À(Ø ð ñ "ô "ð "à�JŠJ�s‰OŒOˆOˆOˆOr)   c                 óN  — |                      ¦   «         }t          |¦  «        rd }|                      ¦   «         }|                      ¦   «          |                      ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         |                     |¦  «         d S )N©rK  ÚvarargÚvarkwargr  )rÿ   ró   r  rn   r  ©r<   rƒ   rã   rf  re  rK  r  s          r*   Úop_CALL_FUNCTION_EXzTraceRunner.op_CALL_FUNCTION_EX1  s•   € ð —y’y‘{”{ˆHÝ  Ñ*Ô*ð  Ø�Ø—Y’Y‘[”[ˆFØ�IŠI‰KŒKˆKØ—9’9‘;”;ˆDà—/’/Ñ#Ô#ˆCØ�LŠL˜ D°À(Ø ð ñ "ô "ð "à�JŠJ�s‰OŒOˆOˆOˆOr)   )r   c                 óF  — |j         dz  r|                     ¦   «         }nd }|                     ¦   «         }|                     ¦   «          |                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         |                     |¦  «         d S )Nr  rd  )r"  rÿ   r  rn   r  rg  s          r*   rh  zTraceRunner.op_CALL_FUNCTION_EXA  s“   € àŒx˜!‰|ð  Ø Ÿ9š9™;œ;��à�à—Y’Y‘[”[ˆFØ�IŠI‰KŒKˆKØ—9’9‘;”;ˆDà—/’/Ñ#Ô#ˆCØ�LŠL˜ D°À(Ø ð ñ "ô "ð "à�JŠJ�s‰OŒOˆOˆOˆOr)   c                 óÚ  — |j         dz  r|                     ¦   «         }nd }|                     ¦   «         }|                     ¦   «         }t          dv r7t          |                     d¦  «        ¦  «        r|                     ¦   «          nt          dv rnt          t          ¦  «        ‚|                     ¦   «         }|                     |||||¬¦  «         |                     |¦  «         d S )Nr  rD  r¥   rd  )	r"  rÿ   r   ró   Úpeekrï   r  rn   r  rg  s          r*   rh  zTraceRunner.op_CALL_FUNCTION_EXQ  sÖ   € ØŒx˜!‰|ð  Ø Ÿ9š9™;œ;��à�Ø—Y’Y‘[”[ˆFØ—9’9‘;”;ˆDåÐ.Ð.Ð.Ý$ U§Z¢Z°¡]¤]Ñ3Ô3ð  Ø—I’I‘K”K�KøÝ˜jÐ(Ð(Øå)­)Ñ4Ô4Ð4à—/’/Ñ#Ô#ˆCØ�LŠL˜ D°À(Ø ð ñ "ô "ð "à�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó4  ‡— ˆfd„t          |¦  «        D ¦   «         }|                     ¦   «          ˆfd„t          |¦  «        D ¦   «         }‰                     |||¬¦  «         |D ]}‰                     |¦  «         Œ|D ]}‰                     |¦  «         Œd S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z)TraceRunner._dup_topx.<locals>.<listcomp>i  s!   ø€ Ð2Ð2Ð2 �—	’	‘”Ð2Ð2Ð2r)   c                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r,  r'  s     €r*   r*  z)TraceRunner._dup_topx.<locals>.<listcomp>m  s#   ø€ Ð9Ð9Ð9 q�—’Ñ"Ô"Ð9Ð9Ð9r)   )ÚorigÚduped)r1  Úreversern   r  )r<   rƒ   rã   r2  ro  rp  r;  s    `     r*   Ú	_dup_topxzTraceRunner._dup_topxh  s²   ø€ Ø2Ð2Ð2Ð2¥U¨5¡\¤\Ð2Ñ2Ô2ˆØ�Š‰Œˆð :Ð9Ð9Ð9­E°%©L¬LÐ9Ñ9Ô9ˆØ�Š�T ¨EˆÑ2Ô2Ð2Øð 	ð 	ˆCØ�JŠJ�s‰OŒOˆOˆOØð 	ð 	ˆCØ�JŠJ�s‰OŒOˆOˆOð	ð 	r)   c                 óî  — 	 t          |j        ¦  «        }nD# t          $ r7 d|j        › d�}|                      |j        ¦  «        }t          ||¬¦  «        ‚w xY w|t          j        k    r-|                     ||¬¦  «         | 	                    ¦   «          d S |t          j
        k    rX|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S |t          j        k    rX|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S t          |¦  «        ‚)Nzop_CALL_INTRINSIC_1(ú)rü   )Úoperand)ru  r=   r  )ru  Ú
const_listr  )r    r"  rH   rø   r÷   r   Úci1opr%   rn   rë  r&   rÿ   r  r  r'   rï   )	r<   rƒ   rã   ru  rî   rý   r;  r  r<  s	            r*   Úop_CALL_INTRINSIC_1zTraceRunner.op_CALL_INTRINSIC_1u  sz  € ð=Ý2°4´8Ñ<Ô<��øÝð =ð =ð =Ø8¨T¬XÐ8Ð8Ð8�Ø×(Ò(¨¬Ñ5Ô5�Ý.¨s¸Ð<Ñ<Ô<Ð<ð=øøøð �%Ô=Ò=Ð=Ø—’˜T¨7�Ñ3Ô3Ð3Ø—’Ñ!Ô!Ð!Ø�Ø�EÔ0Ò0Ð0Ø—i’i‘k”k�Ø—o’oÑ'Ô'�Ø—’˜T¨7Ø#&¨Cð ñ 1ô 1ð 1à—
’
˜3‘”�Ø�Ø�EÔ9Ò9Ð9Ø—i’i‘k”k�Ø—o’oÑ'Ô'�Ø—’˜T¨7Ø(+°ð ñ 6ô 6ð 6à—
’
˜3‘”�Ø�å)¨'Ñ2Ô2Ð2s
   ‚ —AAc                 ót   — |j         }d|cxk    rdk    sn J d¦   «         ‚|                      |||¦  «         d S )Nr  r!   zInvalid DUP_TOPX count)r"  rr  )r<   rƒ   rã   r2  s       r*   Úop_DUP_TOPXzTraceRunner.op_DUP_TOPX˜  sG   € Ø”ˆØ�EˆˆŠˆ˜QŠˆˆˆˆÐ 8‰ŒˆØ�Š�u˜d EÑ*Ô*Ð*Ð*Ð*r)   c                 ó6   — |                       ||d¬¦  «         d S )Nr  ©r2  ©rr  râ   s      r*   Ú
op_DUP_TOPzTraceRunner.op_DUP_TOP�  ó    € Ø�Š�u˜d¨!ˆÑ,Ô,Ð,Ð,Ð,r)   c                 ó6   — |                       ||d¬¦  «         d S )Nr²  r|  r}  râ   s      r*   Úop_DUP_TOP_TWOzTraceRunner.op_DUP_TOP_TWO   r  r)   c                 ó`   — |                      |                     |j        ¦  «        ¦  «         d S r9   )r  rk  r"  râ   s      r*   Úop_COPYzTraceRunner.op_COPY£  s(   € Ø�
Š
�5—:’:˜dœhÑ'Ô'Ñ(Ô(Ð(Ð(Ð(r)   c                 ó:   — |                      |j        ¦  «         d S r9   )Úswapr"  râ   s      r*   Úop_SWAPzTraceRunner.op_SWAP¦  s   € Ø�
Š
�4”8ÑÔÐÐÐr)   c                 óª   — |                      ¦   «         }|                      ¦   «         }|                     |¦  «         |                     |¦  «         d S r9   ©rÿ   r  )r<   rƒ   rã   ÚfirstÚseconds        r*   Ú
op_ROT_TWOzTraceRunner.op_ROT_TWO©  sF   € Ø—	’	‘”ˆØ—’‘”ˆØ�
Š
�5ÑÔÐØ�
Š
�6ÑÔÐÐÐr)   c                 óü   — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     |¦  «         |                     |¦  «         |                     |¦  «         d S r9   rˆ  )r<   rƒ   rã   r‰  rŠ  Úthirds         r*   Úop_ROT_THREEzTraceRunner.op_ROT_THREE¯  se   € Ø—	’	‘”ˆØ—’‘”ˆØ—	’	‘”ˆØ�
Š
�5ÑÔÐØ�
Š
�5ÑÔÐØ�
Š
�6ÑÔÐÐÐr)   c                 óN  — |                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|                     |¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         d S r9   rˆ  )r<   rƒ   rã   r‰  rŠ  r�  Úforths          r*   Úop_ROT_FOURzTraceRunner.op_ROT_FOUR·  s„   € Ø—	’	‘”ˆØ—’‘”ˆØ—	’	‘”ˆØ—	’	‘”ˆØ�
Š
�5ÑÔÐØ�
Š
�5ÑÔÐØ�
Š
�5ÑÔÐØ�
Š
�6ÑÔÐÐÐr)   c                 ó  ‡— |j         }‰                     ¦   «         }ˆfd„t          |¦  «        D ¦   «         }‰                     ¦   «         }‰                     ||||¬¦  «         t          |¦  «        D ]}‰                     |¦  «         Œd S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r,  r'  s     €r*   r*  z2TraceRunner.op_UNPACK_SEQUENCE.<locals>.<listcomp>Ä  s#   ø€ Ð:Ð:Ð:¨�%—/’/Ñ#Ô#Ð:Ð:Ð:r)   )ÚiterableÚstoresÚtupleobj)r"  rÿ   r1  r  rn   r0  r  )r<   rƒ   rã   r2  r”  r•  r–  Ústs    `      r*   Úop_UNPACK_SEQUENCEzTraceRunner.op_UNPACK_SEQUENCEÁ  s‘   ø€ Ø”ˆØ—9’9‘;”;ˆØ:Ð:Ð:Ð:­U°5©\¬\Ð:Ñ:Ô:ˆØ—?’?Ñ$Ô$ˆØ�Š�T H°VÀhˆÑOÔOÐOÝ˜6Ñ"Ô"ð 	ð 	ˆBØ�JŠJ�r‰NŒNˆNˆNð	ð 	r)   c                 ó  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     |||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z.TraceRunner.op_BUILD_TUPLE.<locals>.<listcomp>Ì  ó!   ø€ ÐAÐAÐA¨q˜uŸyšy™{œ{ÐAÐAÐAr)   ©rÉ   r  r/  )r<   rƒ   rã   r2  rÉ   Útups    `    r*   Úop_BUILD_TUPLEzTraceRunner.op_BUILD_TUPLEÊ  ót   ø€ Ø”ˆÝ•XÐAÐAÐAÐAµE¸%±L´LÐAÑAÔAÑBÔBÑCÔCˆØ�oŠoÑÔˆØ�Š�T ¨CˆÑ0Ô0Ð0Ø�
Š
�3‰Œˆˆˆr)   c                 óŽ  ‡— t          t          ˆfd„t          |j        ¦  «        D ¦   «         ¦  «        ¦  «        }ˆfd„t          t	          |¦  «        dz
  ¦  «        D ¦   «         }t	          |¦  «        dk    }|r‰                     ¦   «         g}‰                     ||||¬¦  «         ‰                     |d         ¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z3TraceRunner._build_tuple_unpack.<locals>.<listcomp>Ó  s!   ø€ ÐEÐEÐE° §	¢	¡¤ÐEÐEÐEr)   c                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r,  r'  s     €r*   r*  z3TraceRunner._build_tuple_unpack.<locals>.<listcomp>Ô  s#   ø€ ÐCÐCÐC q�—’Ñ"Ô"ÐCÐCÐCr)   r  )Útuplesr  Ú	is_assignrú   )rÐ   r0  r1  r"  rb  r  rn   r  )r<   rƒ   rã   r£  r  r¤  s    `    r*   Ú_build_tuple_unpackzTraceRunner._build_tuple_unpackÑ  sÂ   ø€ å•hÐEÐEÐEÐEµU¸4¼8±_´_ÐEÑEÔEÑFÔFÑGÔGˆØCÐCÐCÐC­Eµ#°f±+´+À±/Ñ,BÔ,BÐCÑCÔCˆõ ˜‘K”K 1Ò$ˆ	Øð 	)Ø—_’_Ñ&Ô&Ð(ˆEà�Š�T &°ÀˆÑKÔKÐKà�
Š
�5˜”9ÑÔÐÐÐr)   c                 ó2   — |                       ||¦  «         d S r9   ©r¥  râ   s      r*   Úop_BUILD_TUPLE_UNPACK_WITH_CALLz+TraceRunner.op_BUILD_TUPLE_UNPACK_WITH_CALLà  s   € à× Ò  ¨Ñ-Ô-Ð-Ð-Ð-r)   c                 ó2   — |                       ||¦  «         d S r9   r§  râ   s      r*   Úop_BUILD_TUPLE_UNPACKz!TraceRunner.op_BUILD_TUPLE_UNPACKä  s   € Ø× Ò  ¨Ñ-Ô-Ð-Ð-Ð-r)   c                 ó°   — |                      ¦   «         }|                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S )N)rv  r  r  )r<   rƒ   rã   r<  r  s        r*   Úop_LIST_TO_TUPLEzTraceRunner.op_LIST_TO_TUPLEç  sK   € ð �iŠi‰kŒkˆØ�oŠoÑÔˆØ�Š�T c¨sˆÑ3Ô3Ð3Ø�
Š
�3‰Œˆˆˆr)   c                 ój  ‡— ‰                      ¦   «         }t          t          ˆfd„t          |j        ¦  «        D ¦   «         ¦  «        ¦  «        }ˆfd„t          |j        ¦  «        D ¦   «         }‰                     ¦   «         }‰                     |||||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z6TraceRunner.op_BUILD_CONST_KEY_MAP.<locals>.<listcomp>ñ  s!   ø€ ÐCÐCÐC¨a˜eŸiši™kœkÐCÐCÐCr)   c                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r,  r'  s     €r*   r*  z6TraceRunner.op_BUILD_CONST_KEY_MAP.<locals>.<listcomp>ò  s#   ø€ Ð>Ð>Ð>¨�5—?’?Ñ$Ô$Ð>Ð>Ð>r)   )ÚkeysÚkeytmpsÚvaluesr  )rÿ   rÐ   r0  r1  r"  r  rn   r  )r<   rƒ   rã   r°  Úvalsr±  r  s    `     r*   Úop_BUILD_CONST_KEY_MAPz"TraceRunner.op_BUILD_CONST_KEY_MAPï  s¡   ø€ Ø�yŠy‰{Œ{ˆÝ•HÐCÐCÐCÐCµ5¸¼±?´?ÐCÑCÔCÑDÔDÑEÔEˆØ>Ð>Ð>Ð>­e°D´H©o¬oÐ>Ñ>Ô>ˆØ�oŠoÑÔˆØ�Š�T ¨g¸dÈˆÑLÔLÐLØ�
Š
�3‰Œˆˆˆr)   c                 ó  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     |||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z-TraceRunner.op_BUILD_LIST.<locals>.<listcomp>ù  r›  r)   rœ  r/  )r<   rƒ   rã   r2  rÉ   Úlsts    `    r*   Úop_BUILD_LISTzTraceRunner.op_BUILD_LIST÷  rŸ  r)   c                 óê   — |                      ¦   «         }|j        }|                     |¦  «        }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         d S )N)rž   r=   Ú	appendvarr  ©rÿ   r"  rk  r  rn   )r<   rƒ   rã   r=   rA  rž   rº  r  s           r*   Úop_LIST_APPENDzTraceRunner.op_LIST_APPENDþ  óu   € Ø—	’	‘”ˆØ”ˆØ—’˜EÑ"Ô"ˆØ—O’OÑ%Ô%ˆ	Ø�oŠoÑÔˆØ�Š�T &°ÀØð 	ñ 	ô 	ð 	ð 	ð 	r)   c                 óê   — |                      ¦   «         }|j        }|                     |¦  «        }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         d S )N)rž   r=   Ú	extendvarr  r»  )r<   rƒ   rã   r=   rA  rž   r¿  r  s           r*   Úop_LIST_EXTENDzTraceRunner.op_LIST_EXTEND  r½  r)   c                 óP  — |                      ¦   «         }|j        }g }t          |¦  «        D ]A}|                     ¦   «         |                     ¦   «         }}|                     ||f¦  «         ŒB|                     ||d d d…         ||¬¦  «         |                     |¦  «         d S )Nrú   )rÉ   Úsizer  )r  r"  r1  rÿ   rn   r  )	r<   rƒ   rã   Údctr2  rÉ   r  ÚvÚks	            r*   Úop_BUILD_MAPzTraceRunner.op_BUILD_MAP  s›   € Ø�oŠoÑÔˆØ”ˆØˆå�u‘”ð 	!ð 	!ˆAØ—9’9‘;”; §	¢	¡¤ˆqˆAØ�LŠL˜!˜Q˜Ñ Ô Ð Ð Ø�Š�T  t t¨ t¤°5¸cˆÑBÔBÐBØ�
Š
�3‰Œˆˆˆr)   c                 ó  — |                      ¦   «         }|                      ¦   «         }||}}|j        }|                     |¦  «        }|                     ¦   «         }	|                     ¦   «         }
|                     |||||	|
¬¦  «         d S )N)rž   rh   r=   Ú
setitemvarr  r»  )r<   rƒ   rã   ÚTOSÚTOS1rh   r=   rA  rž   rÈ  r  s              r*   Ú
op_MAP_ADDzTraceRunner.op_MAP_ADD  s�   € Ø�iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ˜CˆUˆØ”ˆØ—’˜EÑ"Ô"ˆØ—_’_Ñ&Ô&ˆ
Ø�oŠoÑÔˆØ�Š�T &¨c¸Ø *°ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r)   c                 ó  ‡— |j         }t          t          ˆfd„t          |¦  «        D ¦   «         ¦  «        ¦  «        }‰                     ¦   «         }‰                     |||¬¦  «         ‰                     |¦  «         d S )Nc                 ó8   •— g | ]}‰                      ¦   «         ‘ŒS r(   r&  r'  s     €r*   r*  z,TraceRunner.op_BUILD_SET.<locals>.<listcomp>)  r›  r)   rœ  r/  )r<   rƒ   rã   r2  rÉ   r  s    `    r*   Úop_BUILD_SETzTraceRunner.op_BUILD_SET&  st   ø€ Ø”ˆå•XÐAÐAÐAÐAµE¸%±L´LÐAÑAÔAÑBÔBÑCÔCˆØ�oŠoÑÔˆØ�Š�T ¨CˆÑ0Ô0Ð0Ø�
Š
�3‰Œˆˆˆr)   c                 óÚ   — |                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         d S )N)r=   rž   Úaddvarr  )rÿ   rÇ  r  rn   )r<   rƒ   rã   r=   rž   rÐ  r  s          r*   Ú
op_SET_ADDzTraceRunner.op_SET_ADD.  s\   € Ø—	’	‘”ˆØ—’‘”ˆØ—’Ñ"Ô"ˆØ�oŠoÑÔˆØ�Š�T ¨v¸fÈ#ˆÑNÔNÐNÐNÐNr)   c                 óê   — |                      ¦   «         }|j        }|                     |¦  «        }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         d S ©N)rž   r=   Ú	updatevarr  r»  ©r<   rƒ   rã   r=   rA  rž   rÔ  r  s           r*   Úop_SET_UPDATEzTraceRunner.op_SET_UPDATE5  r½  r)   c                 óê   — |                      ¦   «         }|j        }|                     |¦  «        }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         d S rÓ  r»  rÕ  s           r*   Úop_DICT_UPDATEzTraceRunner.op_DICT_UPDATE>  r½  r)   c                 ó(  — t           dv r|                     ¦   «         }n2t           dv r|                     ¦   «         }nt          t           ¦  «        ‚|                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S )Nr6  )r,   r.   r   r   r   rñ  )r   rÇ  rÿ   rï   r  rn   r  )r<   rƒ   rã   r=   r  s        r*   Úop_GET_ITERzTraceRunner.op_GET_ITERG  s�   € Ý˜Ð#Ð#ð —M’M‘O”OˆEˆEÝÐGÐGÐGØ—I’I‘K”KˆEˆEå%¥iÑ0Ô0Ð0Ø�oŠoÑÔˆØ�Š�T ¨CˆÑ0Ô0Ð0Ø�
Š
�3‰Œˆˆˆr)   c                 ó  — |                      ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                     |||||¬¦  «         |                     |¦  «         |                     ¦   «         }t
          dv r|                     |¬¦  «         n5t
          dv r|                     |d¬¦  «         nt          t
          ¦  «        ‚|                     |j        ¬¦  «         d S )N)ÚiteratorÚpairÚindvalrÀ  r   r‰   r+   r²  rÆ  )	rÇ  r  rn   r  rÁ  r   r–   rï   r—   )r<   rƒ   rã   rÜ  rÝ  rÞ  rÀ  rŠ   s           r*   Úop_FOR_ITERzTraceRunner.op_FOR_ITERT  sù   € Ø—=’=‘?”?ˆØ�ŠÑ Ô ˆØ—’Ñ"Ô"ˆØ�ŠÑ Ô ˆØ�Š�T H°4ÀØð 	ñ 	 ô 	 ð 	 à�
Š
�6ÑÔÐØ×"Ò"Ñ$Ô$ˆÝÐ<Ð<Ð<ð �JŠJ˜#ˆJÑÔÐÐÝÐ,Ð,Ð,Ø�JŠJ˜# AˆJÑ&Ô&Ð&Ð&å%¥iÑ0Ô0Ð0Ø�
Š
�d”iˆ
Ñ Ô Ð Ð Ð r)   c                 ó   — dS )a(  Pops TOS. If TOS was not None, raises an exception. The kind
        operand corresponds to the type of generator or coroutine and
        determines the error message. The legal kinds are 0 for generator,
        1 for coroutine, and 2 for async generator.

        New in version 3.10.
        Nr(   râ   s      r*   Úop_GEN_STARTzTraceRunner.op_GEN_STARTh  s	   € ð 	ˆr)   c                 óð  — t           j        |j                 d         }|                     ¦   «         }|                     ¦   «         }|dk    rPt          dv sJ ‚|                     ¦   «         }|                     |||||¬¦  «         |                     |¦  «         d S t          |         j	        }|                     d|› �¬¦  «        }|                     |||||¬¦  «         |                     |¦  «         d S )Nr  z[]rä   )ÚopÚlhsrÍ   r  Úbinop_r  )
ÚdisÚ_nb_opsr"  rÿ   r   r  rn   r  r	   r"   )r<   rƒ   rã   rã  rÍ   rä  r  Úop_names           r*   Úop_BINARY_OPzTraceRunner.op_BINARY_OPs  sà   € ÝŒ[˜œÔ" 1Ô%ˆØ�iŠi‰kŒkˆØ�iŠi‰kŒkˆØ�Š:ˆ:åÐ 2Ð2Ð2Ð2Ð2Ø—/’/Ñ#Ô#ˆCØ�LŠL˜ "¨#°3¸CˆLÑ@Ô@Ð@Ø�JŠJ�s‰OŒOˆOˆOˆOå-¨bÔ1Ô:ˆGØ—/’/Ð);°'Ð);Ð);�/Ñ<Ô<ˆCØ�LŠL˜ "¨#°3¸CˆLÑ@Ô@Ð@Ø�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó°   — |                      ¦   «         }|                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S rð  r  rò  s        r*   Ú_unaryopzTraceRunner._unaryopƒ  rô  r)   c                 óÚ   — |                      ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S )N)rä  rÍ   r  r  )r<   rƒ   rã   rÍ   rä  r  s         r*   Ú	_binaryopzTraceRunner._binaryopŽ  sX   € Ø�iŠi‰kŒkˆØ�iŠi‰kŒkˆØ�oŠoÑÔˆØ�Š�T˜s¨°ˆÑ5Ô5Ð5Ø�
Š
�3‰Œˆˆˆr)   Fc                 ób  — t           dv rd }n2t           dv r|                     ¦   «         }nt          t           ¦  «        ‚|                     ¦   «         }d x}x}x}x}	}
t           dv r
|j        �J ‚nx|j        dz  r|                     ¦   «         }|j        dz  r|                     ¦   «         }|j        dz  r|                     ¦   «         }	|j        dz  r|                     ¦   «         }
|                     ¦   «         }|                     |||||||	|
|¬¦	  «	         |                     |¦  «         d S )	Nr‡   r¥   r  é   rn  r²  r  )rf  ÚcodeÚclosureÚannotationsÚannotateÚ
kwdefaultsÚdefaultsr  )r   rÿ   rï   r"  r  rn   r  )r<   rƒ   rã   ÚMAKE_CLOSURErf  rð  rñ  rò  ró  rô  rõ  r  s               r*   Úop_MAKE_FUNCTIONzTraceRunner.op_MAKE_FUNCTION¹  sJ  € ÝÐEÐEÐEð ˆDˆDÝ˜*Ð$Ð$Ø—9’9‘;”;ˆDˆDå%¥iÑ0Ô0Ð0Ø�yŠy‰{Œ{ˆØCGÐGˆÐG�+ÐG ÐG¨:¸ÝÐ3Ð3Ð3Ø”8Ð#Ð#Ð#Ð#ð Œx˜#‰~ð &ØŸ)š)™+œ+�ØŒx˜#‰~ð *Ø#Ÿiši™kœk�ØŒx˜#‰~ð )Ø"ŸYšY™[œ[�
ØŒx˜#‰~ð 'Ø Ÿ9š9™;œ;�Ø�oŠoÑÔˆØ�ŠØØØØØ#ØØ!ØØð 	ñ 
	
ô 
	
ð 
	
ð 	�
Š
�3‰Œˆˆˆr)   c                 ó  — t           dv sJ ‚|                     ¦   «         }|                     ¦   «         }|j        dz  r|                     ||¬¦  «         n—|j        dz  r|                     ||¬¦  «         nu|j        dz  r|                     ||¬¦  «         nS|j        dz  r|                     ||¬	¦  «         n1|j        d
z  r|                     ||¬¦  «         nt	          d¦  «        ‚|                     |¦  «         d S )Nr  r  )rõ  r²  )rô  rn  )rò  rï  )rñ  é   )ró  r³  )r   rÿ   r"  Úset_function_attributeÚAssertionErrorr  )r<   rƒ   rã   Úmake_func_stackÚdatas        r*   Úop_SET_FUNCTION_ATTRIBUTEz%TraceRunner.op_SET_FUNCTION_ATTRIBUTEß  s*  € ÝÐ7Ð7Ð7Ð7Ð7ØŸ)š)™+œ+ˆØ�yŠy‰{Œ{ˆØŒ8�d‰?ð 	0ð ×(Ò(¨À4Ð(ÑHÔHÐHÐHØŒX˜‰_ð 	0à×(Ò(¨ÀTÐ(ÑJÔJÐJÐJØŒX˜‰_ð 	0à×(Ò(¨ÀdÐ(ÑKÔKÐKÐKØŒX˜‰_ð 	0à×(Ò(¨À$Ð(ÑGÔGÐGÐGØŒX˜‰_ð 	0ð ×(Ò(¨À4Ð(ÑHÔHÐHÐHå  Ñ/Ô/Ð/Ø�
Š
�?Ñ#Ô#Ð#Ð#Ð#r)   c                 ó6   — |                       ||d¬¦  «         d S )NT)rö  )r÷  râ   s      r*   Úop_MAKE_CLOSUREzTraceRunner.op_MAKE_CLOSUREø  s#   € Ø×Ò˜e T¸ÐÑ=Ô=Ð=Ð=Ð=r)   c                 ó†   — |                      ¦   «         }|                     ||¬¦  «         |                     |¦  «         d S rG  rI  rJ  s       r*   Úop_LOAD_CLOSUREzTraceRunner.op_LOAD_CLOSUREû  rQ  r)   c                 óˆ   — |                      d¦  «        }|                     ||¬¦  «         |                     |¦  «         d S )NÚassertion_errorrH  rI  rJ  s       r*   Úop_LOAD_ASSERTION_ERRORz#TraceRunner.op_LOAD_ASSERTION_ERROR  s=   € Ø—/’/Ð"3Ñ4Ô4ˆCØ�LŠL˜ 3ˆLÑ'Ô'Ð'Ø�JŠJ�s‰OŒOˆOˆOˆOr)   c                 óÜ   — |                      d¦  «        }|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |¦  «         d S )NÚ	predicate©rÀ  r<  r–  )r  rÿ   rÇ  rn   r  ©r<   rƒ   rã   rÀ  r<  r–  s         r*   Úop_CHECK_EXC_MATCHzTraceRunner.op_CHECK_EXC_MATCH  s_   € Ø�Š˜{Ñ+Ô+ˆØ�iŠi‰kŒkˆØ�}Š}‰ŒˆØ�Š�T ¨#°DˆÑ9Ô9Ð9Ø�
Š
�4ÑÔÐÐÐr)   c                 ó8  — |                      d¦  «        }|                     ¦   «         }|                     ¦   «         }|                     ||||¬¦  «         |                     |j        ¬¦  «         |                     |                     ¦   «         ¬¦  «         d S )Nr  r  r‰   )r  rÿ   rn   r–   r—   rÁ  r	  s         r*   Úop_JUMP_IF_NOT_EXC_MATCHz$TraceRunner.op_JUMP_IF_NOT_EXC_MATCH  s…   € ð �Š˜{Ñ+Ô+ˆØ�iŠi‰kŒkˆØ�yŠy‰{Œ{ˆØ�Š�T ¨#°DˆÑ9Ô9Ð9Ø�
Š
�d”iˆ
Ñ Ô Ð Ø�
Š
�d×*Ò*Ñ,Ô,ˆ
Ñ-Ô-Ð-Ð-Ð-r)   c                 ó  — |                      ¦   «         }|j        dk    r|                      ¦   «          |                     ||¬¦  «         |                     ¦   «         r|                      |¦  «         d S |                     ¦   «          d S )Nr   rø  )rÿ   r"  rn   r’   r˜   rë  rû  s       r*   Ú
op_RERAISEzTraceRunner.op_RERAISE  s�   € à—)’)‘+”+ˆCØŒx˜1Š}ˆ}Ø—	’	‘”�Ø�LŠL˜ 3ˆLÑ'Ô'Ð'à×#Ò#Ñ%Ô%ð "Ø×)Ò)¨%Ñ0Ô0Ð0Ð0Ð0à—’Ñ!Ô!Ð!Ð!Ð!r)   c                 ó„   — |                      ¦   «         }|                     ||¬¦  «         |                     ¦   «          d S )Nrø  )rÿ   rn   rë  rû  s       r*   r  zTraceRunner.op_RERAISE*  s;   € à—)’)‘+”+ˆCØ�LŠL˜ 3ˆLÑ'Ô'Ð'Ø�OŠOÑÔÐÐÐr)   )r.   c                 ó  — |                      ¦   «         }|                     ¦   «         }|                     |¦  «         |                     ¦   «         }|                     |||¬¦  «         |                     |¦  «         d S )Nr[  )rÿ   r  r  r  rn   )r<   rƒ   rã   r\  Úextrar  s         r*   Úop_LOAD_METHODzTraceRunner.op_LOAD_METHOD9  sj   € Ø—9’9‘;”;ˆDØ—O’OÑ%Ô%ˆEØ�JŠJ�uÑÔÐØ—/’/Ñ#Ô#ˆCØ�LŠL˜ D¨cˆLÑ2Ô2Ð2Ø�JŠJ�s‰OŒOˆOˆOˆOr)   c                 ó2   — |                       ||¦  «         d S r9   )r]  râ   s      r*   r  zTraceRunner.op_LOAD_METHODA  s   € Ø×Ò˜e TÑ*Ô*Ð*Ð*Ð*r)   c                 ó2   — |                       ||¦  «         d S r9   )rZ  râ   s      r*   Úop_CALL_METHODzTraceRunner.op_CALL_METHODF  s   € Ø×Ò˜e TÑ*Ô*Ð*Ð*Ð*r)   c                 ó  — t           j        |j                 dvrt          d¦  «        ‚|                     ¦   «         }|                     ¦   «         }|                     d¬¦  «        }|}dD ]R\  }}|                     ¦   «          |                     ¦   «         }|j        |k    s|j        |k    rt          d¦  «        ‚ŒS|                     ¦   «          |                     ¦   «         }|j        dk    rd}	t          |	¦  «        ‚|j        �J ‚|j
        }
|
                     |j        ¦  «        }|g}|
j        D ]'}|j        |j        k    r|                     |¦  «         Œ(t!          d	„ |D ¦   «         ¦  «        }|                     |¦  «         |                     |¦  «         |                     ||||¬
¦  «         |                     |                     d|¬¦  «        ¦  «         |                     |j        ¬¦  «         d S )N)Ú	__enter__Ú__exit__z#async special methods not supportedr  r  ))ÚSWAPr²  )r  r   )ÚLOAD_SPECIALr   )ÚCALLr   z0Unsupported bytecode pattern for 'LOAD_SPECIAL'.rê   rë   c              3   ó$   K  — | ]}|j         V — Œd S r9   r‹   r"  s     r*   r#  z.TraceRunner.op_LOAD_SPECIAL.<locals>.<genexpr>¦  r$  r)   )r%  Úexit_methodÚ	block_endr4   r  r‰   )ræ  Ú_special_method_namesr"  rï   rÿ   r  r™   r“   r”   r   r^   r'  rà   r(  rž   rn   r)  r  r  rŸ   r–   r—   )r<   rƒ   rã   r<  r)  ÚmethodÚold_instr  Úarî   rg  r,  r-  r¢   rŠ   s                  r*   Úop_LOAD_SPECIALzTraceRunner.op_LOAD_SPECIALK  sC  € õ Ô)¨$¬(Ô3Ø4ð5ð 5å)Ø9ñ;ô ;ð ;ð> —)’)‘+”+ˆCà—	’	‘”ˆAð —_’_Ð,?�_Ñ@Ô@ˆFàˆHðð 	Lð 	L‘��!ð
 × Ò Ñ"Ô"Ð"Ø—~’~Ñ'Ô'�Ø”K 1Ò$Ð$¨¬°Aª¨Ý2ØJñLô Lð Lð )6ð
 ×ÒÑÔÐØ—>’>Ñ#Ô#ˆDð
 Œ{˜iÒ'Ð'ð$�õ /¨sÑ3Ô3Ð3Ø”8Ð#Ð#Ð#ð ”ˆBØ×,Ò,¨T¬[Ñ9Ô9ˆFØ˜ˆIØÔ*ð )ð )�Ø”9 ¤Ò-Ð-Ø×$Ò$ RÑ(Ô(Ð(øÝÐ1Ð1 yÐ1Ñ1Ô1Ñ1Ô1ˆCð �JŠJ�vÑÔÐØ�JŠJ�s‰OŒOˆOà�LŠL˜°#À6Ø#&ð ñ (ô (ð (ð ×ÒØ× Ò ØØð !ñ ô ñô ð ð �JŠJ˜$œ)ˆJÑ$Ô$Ð$Ð$Ð$r)   c                 ó@  — |j         }t          j        |         }|t          t          t
          t          t          t          t          d ddddfvrt	          |¦  «        ‚| 
                    d¦  «        }|                     |||¬¦  «         |                     |¦  «         d S )NÚ TFrú   Úcommon_constant)r  r@  )r"  ræ  Ú_common_constantsrû  rï   ÚtupleÚallrþ  rÐ   r¿   r  rn   r  )r<   rƒ   rã   rr  rS  r  s         r*   Úop_LOAD_COMMON_CONSTANTz#TraceRunner.op_LOAD_COMMON_CONSTANTÂ  s’   € ð ”HˆEÝÔ)¨%Ô0ˆEØ�^Õ-@Ý"¥C­­dµCØ! 2 t¨U°Bð8ð 8ð 8õ *¨%Ñ0Ô0Ð0Ø—/’/Ð"3Ñ4Ô4ˆCØ�LŠL˜ 3¨EˆLÑ2Ô2Ð2Ø�JŠJ�s‰OŒOˆOˆOˆOr)   N)F)ºr"   r#   r$   rQ   r>   rø   rr   r˜   r
  r   Úop_NOT_TAKENrï   r  r  r  r  r  r  r#  r3  r5  r8  r=  rC  rL  rN  rP  rU  rX  r]  rl  rw  r|  r�  Úop_LOAD_FAST_CHECKÚop_LOAD_FAST_AND_CLEARÚop_LOAD_FAST_BORROWÚ$op_LOAD_FAST_BORROW_LOAD_FAST_BORROWrƒ  r…  r‡  r‹  rŽ  r—  rš  r�  r   r£  r¥  r§  r©  r¬  r®  r°  r·  r»  r½  rÄ  Úop_POP_JUMP_IF_TRUEÚop_POP_JUMP_IF_FALSEÚop_POP_JUMP_IF_NONEÚop_POP_JUMP_IF_NOT_NONErÈ  Úop_JUMP_IF_FALSE_OR_POPÚop_JUMP_IF_TRUE_OR_POPrË  rÎ  rÐ  rÒ  rÔ  rÖ  rØ  rÚ  rÞ  rá  Úop_JUMP_BACKWARD_NO_INTERRUPTrã  ræ  rì  rî  ró  rü  r  r	  r  r  r  r  r  r  r  r.  r0  r3  r6  r8  r:  r?  rB  rD  rF  rT  rW  rZ  r^  rb  rh  rr  rx  rz  r~  r�  rƒ  r†  r‹  rŽ  r‘  r˜  rž  r¥  r¨  rª  r¬  r´  r¸  r¼  rÀ  rÆ  rË  rÎ  rÑ  rÖ  rØ  rÚ  rß  rá  ré  rë  Úop_UNARY_NEGATIVEÚop_UNARY_POSITIVEÚop_UNARY_NOTÚop_UNARY_INVERTrí  Úop_COMPARE_OPÚop_IS_OPÚop_CONTAINS_OPÚop_INPLACE_ADDÚop_INPLACE_SUBTRACTÚop_INPLACE_MULTIPLYÚop_INPLACE_DIVIDEÚop_INPLACE_TRUE_DIVIDEÚop_INPLACE_FLOOR_DIVIDEÚop_INPLACE_MODULOÚop_INPLACE_POWERÚop_INPLACE_MATRIX_MULTIPLYÚop_INPLACE_LSHIFTÚop_INPLACE_RSHIFTÚop_INPLACE_ANDÚop_INPLACE_ORÚop_INPLACE_XORÚop_BINARY_ADDÚop_BINARY_SUBTRACTÚop_BINARY_MULTIPLYÚop_BINARY_DIVIDEÚop_BINARY_TRUE_DIVIDEÚop_BINARY_FLOOR_DIVIDEÚop_BINARY_MODULOÚop_BINARY_POWERÚop_BINARY_MATRIX_MULTIPLYÚop_BINARY_LSHIFTÚop_BINARY_RSHIFTÚop_BINARY_ANDÚop_BINARY_ORÚop_BINARY_XORr÷  rþ  r   r  r  r
  r  r  r  r  r#  r*  r(   r)   r*   rj   rj   A  sA  € € € € € ðð ðð ð ð
0ð 0ð 0ðPð Pð Pð6/ð /ð /ð(ð ð ð Ð&Ð&Ð&àˆˆØ	Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,ðð ð ðð ð ðð ð ðð ð ðð ð ð Ð/Ð/Ð/ð	ð 	ð 	ð 	ð 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,ðð ð ð$ð ð ð"ð ð ð �KÐÐð	ð 	ð 	ð 	ð 
�kÐ	!Ð	!à ˆˆØ	Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,àÐ/Ð/Ð/ð	ð 	ð 	ð 	ð
 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,àÐ/Ð/Ð/ð	.ð 	.ð 	.ð 	.ð 
Ð(Ð	(Ð	(ð	ð 	ð 	ð 	ð 
�jÐ	 Ð	 ð	ð 	ð 	ð 	ð
 "Ð! )Ñ,Ô,Ð,ðð ð ðð ð ðð ð ð
$ð $ð $ð Ð&Ð&Ð&ð	(ð 	(ð 	(ð 	(ð
 
Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,ð/ð /ð /ð"ð ð ð8 Ð/Ð/Ð/ð
	ð 
	ð 
	ð	!ð 	!ð 	!ð	=ð 	=ð 	=ð 	=ð
 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,àÐ8Ð8Ð8Ø)ÐØ!-ÐÐØ	Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&à*ÐØ/EÐ,Ð,Ø	Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,ðð ð ð*ð *ð *ð7ð 7ð 7ð
(ð (ð (ð(ð (ð (ðð ð ð*ð ð ð*ð ð ð*
ð 
ð 
ð$
ð 
ð 
ð(
ð 
ð 
ð(
ð 
ð 
ð(
ð 
ð 
ð
ð 
ð 
ð$
ð 
ð 
ð$
ð 
ð 
ðð ð ð6 Ð8Ð8Ð8ð	ð 	ð 	ð 	ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ8Ð8Ð8ð	ð 	ð 	ð 	ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ð
'ð 
'ð 
'ð *ÐØ*ÐàÐ8Ð8Ð8Ø-ÐØ"1ÐÐØ	Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ð.ð .ð .ð 1ÐØ/Ðð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð.ð .ð .ð.ð .ð .ð %5Ð!ð.ð .ð .ðð ð ðð ð ð Ð8Ð8Ð8ð	ð 	ð 	ð 	ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ðð ð ð ÐAÐAÐAð	"ð 	"ð 	"ð 	"ð* 
�jÐ	 Ð	 ð	ð 	ð 	ð 	ð& "Ð! )Ñ,Ô,Ð,ð(ð (ð (ð.ð .ð .ð Ð/Ð/Ð/ð	ð 	ð 	ð 	à	�jÐ	 Ð	 ð	ð 	ð 	ð 	ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ðPð Pð Pðð ð ðð ð ðð ð ðð ð ð
ð 
ð 
ð Ð&Ð&Ð&àØ	Ð:Ð	:Ð	:ð	%ð 	%ð 	%ð 	%ð> "Ð! )Ñ,Ô,Ð,ð!ð !ð !ð&
ð 
ð 
ð(ð ð ð

ð 
ð 
ð ÐAÐAÐAð	ð 	ð 	ð 	ð 
�jÐ	 Ð	 ð	%ð 	%ð 	%ð 	%ð "Ð! )Ñ,Ô,Ð,ð!ð !ð !ð Ð&Ð&Ð&àØ	Ð:Ð	:Ð	:ð	ð 	ð 	ð 	ð "Ð! )Ñ,Ô,Ð,ðDð Dð Dð7ð 7ð 7ð
ð ð ð0%ð %ð %ðð ð ðð ð ð Ð/Ð/Ð/ð	ð 	ð 	ð 	ð 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&ð	ð 	ð 	ð 	ð 
�kÐ	!Ð	!ð	ð 	ð 	ð 	ð 
Ð1Ð	1Ð	1ð	ð 	ð 	ð 	ð* "Ð! )Ñ,Ô,Ð,ð
ð 
ð 
ð Ð8Ð8Ð8ð	3ð 	3ð 	3ð 	3ð< 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ð+ð +ð +ð
-ð -ð -ð-ð -ð -ð)ð )ð )ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð.ð .ð .ð.ð .ð .ðð ð ðð ð ðð ð ðð ð ðð ð ð	ð 	ð 	ð	5ð 	5ð 	5ðð ð ðOð Oð Oðð ð ðð ð ðð ð ð!ð !ð !ð(	ð 	ð 	ðð ð ð ð ð ð !ÐØ ÐØ€LØ€Oðð ð ð €MØ€HØ€Nà€NØ#ÐØ#ÐØ!ÐØ&ÐØ'ÐØ!ÐØ ÐØ!*Ðà!ÐØ!ÐØ€NØ€MØ€Nà€MØ"ÐØ"ÐØ ÐØ%ÐØ&ÐØ ÐØ€OØ )Ðà ÐØ ÐØ€MØ€LØ€Mð$ð $ð $ð $ðL$ð $ð $ð2>ð >ð >ðð ð ð
 Ð&Ð&Ð&àØ	Ð:Ð	:Ð	:ð	ð 	ð 	ð 	ð
 "Ð! )Ñ,Ô,Ð,ðð ð ð.ð .ð .ð ÐAÐAÐAð
	"ð 
	"ð 
	"ð 
	"ð 
�jÐ	 Ð	 ð	ð 	ð 	ð 	ð "Ð! )Ñ,Ô,Ð,ð
 Ð8Ð8Ð8àØ	�kÐ	!Ð	!ð	ð 	ð 	ð 	ð 
�jÐ	 Ð	 ð	+ð 	+ð 	+ð 	+ð "Ð! )Ñ,Ô,Ð,ð+ð +ð +ð Ð&Ð&Ð&ðo	%ð o	%ð o	%ð o	%ðb 
Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&ð	ð 	ð 	ð 	ð 	ð 
Ð:Ð	:Ð	:Øˆà!Ð! )Ñ,Ô,Ð,r)   rj   c                   ód  — e Zd ZdZd.d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Ze
d
„ ¦   «         Ze
d„ ¦   «         Ze
d„ ¦   «         Ze
d„ ¦   «         Ze
d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd/d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd0d„Zd „ Zd!„ Z d"„ Z!d#„ Z"d$„ Z#d%„ Z$d&e%fd'„Z&d(„ Z'd1d*„Z(d+„ Z)d,„ Z*d-„ Z+dS )2Ú_StatezState of the trace
    r(   c                 óî  — || _         || _        || _        || _        g | _        t          |¦  «        | _        t          |¦  «        | _        g | _	        g | _
        g | _        d| _        i | _        t          ¦   «         | _        t!          ¦   «         | _        t%          |¦  «        D ]P}||v r|                      d¦  «        }n|                      d¦  «        }|| j        |<   |                      |¦  «         ŒQdS )aG  
        Parameters
        ----------
        bytecode : numba.bytecode.ByteCode
            function bytecode
        pc : int
            program counter
        nstack : int
            stackdepth at entry
        blockstack : Sequence[Dict]
            A sequence of dictionary denoting entries on the blockstack.
        Fúnull$rÌ   N)r^   Ú_pc_initialrœ   Ú_nstack_initialrq   r(  Ú_blockstack_initialrÐ   rþ   Ú_temp_registersÚ_instsÚ	_outedgesÚ_terminatedrÁ   r   rÈ   r¿   rÀ   r1  r  r  )r<   r`   rb   rc   rd   Únullvalsr  rÌ   s           r*   r>   z_State.__init__Ø  sí   € ð "ˆŒØˆÔØˆŒØ%ˆÔØˆŒÝ#(¨Ñ#4Ô#4ˆÔ Ý 
Ñ+Ô+ˆÔØ!ˆÔØˆŒØˆŒØ ˆÔØˆŒ
Ý(™lœlˆÔÝ™%œ%ˆŒÝ�v‘”ð 	ð 	ˆAØ�Hˆ}ˆ}Ø—n’n WÑ-Ô-��à—n’n UÑ+Ô+�ØˆDŒJ�s‰OØ�IŠI�c‰NŒNˆNˆNð	ð 	r)   c                 óB   — d                      | j        | j        ¦  «        S )Nz&State(pc_initial={} nstack_initial={}))rI   r^  r_  rB   s    r*   rP   z_State.__repr__û  s%   € Ø7×>Ò>ØÔ˜dÔ2ñ
ô 
ð 	
r)   c                 ó   — | j         | j        fS r9   )r^  r_  rB   s    r*   Úget_identityz_State.get_identity   s   € ØÔ  $Ô"6Ð7Ð7r)   c                 óD   — t          |                      ¦   «         ¦  «        S r9   )r@   rh  rB   s    r*   rC   z_State.__hash__  s   € Ý�D×%Ò%Ñ'Ô'Ñ(Ô(Ð(r)   c                 óV   — |                       ¦   «         |                      ¦   «         k     S r9   ©rh  rJ   s     r*   rL   z_State.__lt__  s%   € Ø× Ò Ñ"Ô" U×%7Ò%7Ñ%9Ô%9Ò9Ð9r)   c                 óV   — |                       ¦   «         |                      ¦   «         k    S r9   rk  rJ   s     r*   rN   z_State.__eq__	  s%   € Ø× Ò Ñ"Ô" e×&8Ò&8Ñ&:Ô&:Ò:Ð:r)   c                 ó   — | j         S )z]The starting bytecode offset of this State.
        The PC given to the constructor.
        )r^  rB   s    r*   rg   z_State.pc_initial  s   € ð
 ÔÐr)   c                 ó   — | j         S )ziThe list of instructions information as a 2-tuple of
        ``(pc : int, register_map : Dict)``
        )rb  rB   s    r*   Úinstructionsz_State.instructions  s   € ð
 Œ{Ðr)   c                 ó   — | j         S )zaThe list of outgoing edges.

        Returns
        -------
        edges : List[State]
        ©rc  rB   s    r*   rx   z_State.outgoing_edges  s   € ð Œ~Ðr)   c                 ó   — | j         S )z‹The dictionary of outgoing phi nodes.

        The keys are the name of the PHI nodes.
        The values are the outgoing states.
        )rÈ   rB   s    r*   Úoutgoing_phisz_State.outgoing_phis$  s   € ð Ô"Ð"r)   c                 ó   — | j         S )z6A copy of the initial state of the blockstack
        )r`  rB   s    r*   Úblockstack_initialz_State.blockstack_initial-  s   € ð Ô'Ð'r)   c                 ó*   — t          | j        ¦  «        S )zYThe current size of the stack

        Returns
        -------
        res : int
        )rb  rq   rB   s    r*   r�   z_State.stack_depth3  s   € õ �4”;ÑÔÐr)   c                 ón   — t          | j        ¦  «        D ]}|d         t          d¦  «        k    r|c S Œ dS )z&Find the initial *try* block.
        rª   r2   N)r0  r`  r1   )r<   r  s     r*   Úfind_initial_try_blockz_State.find_initial_try_block=  sM   € õ ˜DÔ4Ñ5Ô5ð 	ð 	ˆCØ�6Œ{�i¨Ñ.Ô.Ò.Ð.Ø�
�
�
ð /ð	ð 	r)   c                 ó   — | j         S r9   ©rd  rB   s    r*   rs   z_State.has_terminatedD  s   € ØÔÐr)   c                 ó&   — | j         | j                 S r9   )r^   rœ   rB   s    r*   r“   z_State.get_instG  s   € ØŒ~˜dœhÔ'Ð'r)   c                 óF   — |                       ¦   «         }|j        | _        d S r9   )r“   r—   rœ   ©r<   rã   s     r*   r™   z_State.advance_pcJ  s   € Ø�}Š}‰ŒˆØ”9ˆŒˆˆr)   r%  c                 óP  — |sZd                      || j        |                      ¦   «         j                             ¦   «         t          | j        ¦  «        ¬¦  «        }n/d                      || j        t          | j        ¦  «        ¬¦  «        }| j                             |¦  «         |S )Nz"${prefix}{offset}{opname}.{tempct})r   rà   r”   Útempctz${prefix}{offset}.{tempct})r   rà   r  )rI   rœ   r“   r”   Úlowerrb  ra  rn   )r<   r   rf  s      r*   r  z_State.make_tempN  s¦   € Øð 	Ø7×>Ò>ØØ”xØ—}’}‘”Ô-×3Ò3Ñ5Ô5Ý˜4Ô/Ñ0Ô0ð	 ?ñ ô ˆDˆDð 0×6Ò6ØØ”xÝ˜4Ô/Ñ0Ô0ð 7ñ ô ˆDð 	Ô×#Ò# DÑ)Ô)Ð)Øˆr)   c                 óÀ   — | j                              |j        |f¦  «         | xj        t	          t          |                     ¦   «         ¦  «        ¦  «        z  c_        dS )zAppend new instN)rb  rn   rà   rÀ   r¿   Ú_flatten_inst_regsr²  )r<   rã   r°   s      r*   rn   z_State.append`  sL   € àŒ×Ò˜DœK¨Ð0Ñ1Ô1Ð1ØˆŒ�3Õ1°&·-²-±/´/ÑBÔBÑCÔCÑCˆŒˆˆr)   c                 ó,   — |                       d¦  «        S )Nr  )rk  rB   s    r*   rÇ  z_State.get_tose  s   € Ø�yŠy˜‰|Œ|Ðr)   c                 ó   — | j         |          S )z-Return the k'th element on the stack
        ©rq   )r<   rÅ  s     r*   rk  z_State.peekh  s   € ð Œ{˜A˜2ŒÐr)   c                 ó:   — | j                              |¦  «         dS )zPush to stackN)rq   rn   )r<   r\  s     r*   r  z_State.pushm  s   € àŒ×Ò˜4Ñ Ô Ð Ð Ð r)   c                 ó4   — | j                              ¦   «         S )zPop the stack)rq   rÿ   rB   s    r*   rÿ   z
_State.popq  s   € àŒ{�ŠÑ Ô Ð r)   c                 óF   — | j         }||          |d         c|d<   || <   dS )zSwap stack[idx] with the tosrú   Nr…  )r<   r@  Úss      r*   r…  z_State.swapu  s,   € àŒKˆØ˜C˜4œ ! B¤%ˆˆˆ"‰ˆq�#�‰wˆwˆwr)   c                 óF   — d|v sJ ‚| j                              |¦  «         dS )z#Push a block to blockstack
        r�   N)rþ   rn   )r<   Úsynblks     r*   r  z_State.push_blockz  s2   € ð  Ð&Ð&Ð&Ð&ØÔ×Ò Ñ'Ô'Ð'Ð'Ð'r)   c                 óN   — | j         d|…         | j         |d…         c| _         }|S )zVReset the stack to the given stack depth.
        Returning the popped items.
        Nr…  )r<   r    Úpoppeds      r*   r  z_State.reset_stack€  s-   € ð #œk¨&¨5¨&Ô1°4´;¸u¸v¸vÔ3FÐˆŒ�VØˆr)   TNc                 ó˜   — t          |¦  «        |t          | j        ¦  «        dœ}|rt          | j        ¦  «        |d<   nd|d<   ||d<   |S )zMake a new block
        )rª   rŠ   r§   r�   Nr©   )r1   rb  rq   )r<   rª   rŠ   r  r©   Úds         r*   rŸ   z_State.make_block‡  sb   € õ ˜d‘O”OØÝ˜tœ{Ñ+Ô+ð
ð 
ˆð
 ð 	$Ý" 4¤;Ñ/Ô/ˆAˆmÑÐà#ˆAˆmÑØˆˆ)‰Øˆr)   c                 ón   — | j                              ¦   «         }|                      |d         ¦  «         |S )z)Pop a block and unwind the stack
        r�   )rþ   rÿ   r  ©r<   r¹   s     r*   rå  z_State.pop_block–  s6   € ð Ô× Ò Ñ"Ô"ˆØ×Ò˜˜=Ô)Ñ*Ô*Ð*Øˆr)   c                 ó¨   — | j                              |¦  «        }d|cxk    rt          | j         ¦  «        k     sn J ‚| j         d|…         | _         dS )zcFind *blk* in the blockstack and remove it and all blocks above it
        from the stack.
        r   N)rþ   rA  rb  )r<   r  r@  s      r*   r¬   z_State.pop_block_and_above�  sd   € ð Ô×$Ò$ SÑ)Ô)ˆØ�CÐ/Ð/Ò/Ð/�#˜dÔ.Ñ/Ô/Ò/Ð/Ð/Ð/Ð/Ð/ØÔ+¨D¨S¨DÔ1ˆÔÐÐr)   c                 ór   — t          |¦  «        }t          | j        ¦  «        D ]}|d         |k    r|c S ŒdS )ú1Find the first block that matches *kind*
        rª   N)r1   r0  rþ   )r<   rª   Úbss      r*   r�   z_State.get_top_block¥  sP   € õ ˜‰ŒˆÝ˜4Ô+Ñ,Ô,ð 	ð 	ˆBØ�&Œz˜TÒ!Ð!Ø�	�	�	ð "ð	ð 	r)   c                 óh   — d„ |D ¦   «         }t          | j        ¦  «        D ]}|d         |v r|c S ŒdS )r”  c                 ó,   — h | ]}t          |¦  «        ’ŒS r(   )r1   )r(  rª   s     r*   ú	<setcomp>z._State.get_top_block_either.<locals>.<setcomp>°  s   € Ð3Ð3Ð3 T•˜4‘”Ð3Ð3Ð3r)   rª   N)r0  rþ   )r<   Úkindsr•  s      r*   Úget_top_block_eitherz_State.get_top_block_either­  sX   € ð 4Ð3¨UÐ3Ñ3Ô3ˆÝ˜4Ô+Ñ,Ô,ð 	ð 	ˆBØ�&Œz˜UÐ"Ð"Ø�	�	�	ð #ð	ð 	r)   c                 ó0   — |                       d¦  «        duS )zGReturns a boolean indicating if the top-block is a *try* block
        r2   N)r�   rB   s    r*   r’   z_State.has_active_tryµ  s   € ð ×!Ò! %Ñ(Ô(°Ð4Ð4r)   c                 ó6   — |                       |j        ¦  «        S )zBGet referenced variable name from the instruction's oparg
        )rq  r"  r}  s     r*   r`  z_State.get_varnameº  s   € ð ×&Ò& t¤xÑ0Ô0Ð0r)   rr  c                 ó&   — | j         j        |         S )z4Get referenced variable name from the oparg
        )r^   rc  )r<   rr  s     r*   rq  z_State.get_varname_by_arg¿  s   € ð Œ~Ô)¨%Ô0Ð0r)   c                 ó   — d| _         dS )z!Mark block as terminated
        TNrz  rB   s    r*   rë  z_State.terminateÄ  s   € ð  ˆÔÐÐr)   r   c           
      ó"  — t          | j        ¦  «        }|rDd|cxk    rt          | j        ¦  «        k    sn J ‚t          | j        ¦  «        |z
  }|d|…         }|rAd|k    sJ ‚t          |¦  «        D ])}|                     |                      ¦   «         ¦  «         Œ*t          | j        ¦  «        }t          dv rF|rC|d         }	|	                     d¦  «        p|	d         }
||
k    r| 	                    ¦   «          nn|°Cnt          dv rnt          t          ¦  «        ‚|r|                     |¦  «         | j                             t          |t          |¦  «        |t          |¦  «        ¬¦  «        ¦  «         |                      ¦   «          dS )	zFork the state
        r   Nr‡   rú   rŒ   rŠ   r¥   )rb   Ústackr«   rd   )rÐ   rq   rb  r1  rn   r  rþ   r   Úgetrÿ   rï   rc  ÚEdger(  rë  )r<   rb   r¨   r«   r�   r   rc   r  rd   ÚtoprŠ   s              r*   r–   z_State.forkÉ  sº  € õ �T”[Ñ!Ô!ˆØð 	#Ø˜Ð0Ð0Ò0Ð0¥ D¤KÑ 0Ô 0Ò0Ð0Ð0Ð0Ð0Ð0Ý˜œÑ%Ô%¨Ñ,ˆFØ˜'˜6˜'”NˆEØð 	/Ø˜’:�:�:�:Ý˜5‘\”\ð /ð /�Ø—’˜TŸ^š^Ñ-Ô-Ñ.Ô.Ð.Ð.å˜$Ô*Ñ+Ô+ˆ
ÝÐEÐEÐEàð Ø  ”n�Ø—g’g˜lÑ+Ô+Ð9¨s°5¬z�Ø˜’9�9Ø—N’NÑ$Ô$Ð$Ð$àð ð øõ ˜*Ð$Ð$Øå%¥iÑ0Ô0Ð0àð 	+Ø×Ò˜kÑ*Ô*Ð*ØŒ×Ò�dØ�˜u™œ¨UÝ˜ZÑ(Ô(ð
ñ 
ô 
ñ 	ô 	ð 	ð 	�ŠÑÔÐÐÐr)   c                 ó<   — |                       | j        ¬¦  «         dS )zSplit the state
        r‰   N)r–   rœ   rB   s    r*   rw   z_State.split_new_blockî  s    € ð 	�	Š	�T”Xˆ	ÑÔÐÐÐr)   c                 ód  — | j         rJ ‚g }| j        D ]œ}t          | j        |j        t          |j        ¦  «        |j        d„ t          |j        ¦  «        D ¦   «         ¬¦  «        }| 	                    |¦  «         |j
                             ¦   «         D ]\  }}|j        |         | j         |<   ŒŒ�|S )z+Get states for each outgoing edges
        c                 ó6   — g | ]\  }}t          |¦  «        ¯|‘ŒS r(   )ró   )r(  r  rÄ  s      r*   r*  z._State.get_outgoing_states.<locals>.<listcomp>ü  s8   € ð $=ð $=ð $=©$¨!¨QÝ'8¸Ñ';Ô';ð$= Að $=ð $=ð $=r)   )r`   rb   rc   rd   re  )rÈ   rc  ri   r^   rb   rb  r   rd   Ú	enumeratern   rÁ   rÉ   )r<   Úretrº   rƒ   rÌ   r  s         r*   rz   z_State.get_outgoing_statesó  sÎ   € ð Ô&Ð&Ð&Ð&ØˆØ”Nð 	9ð 	9ˆDÝ 4¤>°d´gÝ!$ T¤Z¡¤¸T¼_ð$=ð $=µ)¸D¼JÑ2GÔ2Gð $=ñ $=ô $=ð>ñ >ô >ˆEð �JŠJ�uÑÔÐàœ+×+Ò+Ñ-Ô-ð 9ð 9‘��QØ+/¬:°a¬=�Ô# CÑ(Ð(ð9àˆ
r)   c                 ó$   — d„ | j         D ¦   «         S )z–
        Returns
        -------
        Dict[int, int]
            where keys are the PC
            values are the edge-pushed stack values
        c                 ó^   — i | ]*}|j         t          |j        |j         d …         ¦  «        “Œ+S r9   )rb   r(  r   r«   )r(  rº   s     r*   ú
<dictcomp>z2_State.get_outgoing_edgepushed.<locals>.<dictcomp>	  sC   € ð ,ð ,ð ,Øð ”�˜tœz¨4¬:¨+¨,¨,Ô7Ñ8Ô8ð ,ð ,ð ,r)   rq  rB   s    r*   Úget_outgoing_edgepushedz_State.get_outgoing_edgepushed	  s%   € ð,ð ,Ø œNð,ñ ,ô ,ð 	,r)   )r(   )r%  )TN)r   r   N),r"   r#   r$   rQ   r>   rP   rh  rC   rL   rN   Úpropertyrg   ro  rx   rs  ru  r�   rx  rs   r“   r™   r  rn   rÇ  rk  r  rÿ   r…  r  r  rŸ   rå  r¬   r�   rš  r’   r`  Úintrq  rë  r–   rw   rz   r¬  r(   r)   r*   r[  r[  Ô  sÅ  € € € € € ðð ð!ð !ð !ð !ðF
ð 
ð 
ð
8ð 8ð 8ð)ð )ð )ð:ð :ð :ð;ð ;ð ;ð ð ð  ñ „Xð ð ðð ñ „Xðð ðð ñ „Xðð ð#ð #ñ „Xð#ð ð(ð (ñ „Xð(ð
 ð ð  ñ „Xð ðð ð ð ð  ð  ð(ð (ð (ðð ð ðð ð ð ð$Dð Dð Dð
ð ð ðð ð ð
!ð !ð !ð!ð !ð !ð(ð (ð (ð
(ð (ð (ðð ð ðð ð ð ðð ð ð2ð 2ð 2ðð ð ðð ð ð5ð 5ð 5ð
1ð 1ð 1ð
1¨ð 1ð 1ð 1ð 1ð
 ð  ð  ð
#ð #ð #ð #ðJð ð ð
ð ð ð"
,ð 
,ð 
,ð 
,ð 
,r)   r[  c                   óB   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )Ú
StatePy311c                 óH   •—  t          ¦   «         j        |i |¤Ž d | _        d S r9   )Úsuperr>   Ú	_kw_names©r<   rL  r°   Ú	__class__s      €r*   r>   zStatePy311.__init__	  s*   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆŒˆˆr)   c                 ó"   — | j         }d | _         |S r9   ©r³  )r<   Úouts     r*   rN  zStatePy311.pop_kw_names	  s   € ØŒnˆØˆŒØˆ
r)   c                 ó&   — | j         �J ‚|| _         d S r9   r·  )r<   r;  s     r*   rV  zStatePy311.set_kw_names	  s   € ØŒ~Ð%Ð%Ð%ØˆŒˆˆr)   c                 óH   — | j         }|                     | j        ¦  «        d uS r9   ©r^   r'  rœ   ©r<   rg  s     r*   rš   zStatePy311.is_in_exception	  s$   € ØŒ^ˆØ×&Ò& t¤xÑ0Ô0¸Ð<Ð<r)   c                 óD   — | j         }|                     | j        ¦  «        S r9   r»  r¼  s     r*   r›   zStatePy311.get_exception#	  s   € ØŒ^ˆØ×&Ò& t¤xÑ0Ô0Ð0r)   c                 óR   — | j         D ]}|d         t          d¦  «        k    r dS Œd S )Nrª   r4   T)r`  r1   )r<   Úents     r*   r‘   zStatePy311.in_with'	  sA   € ØÔ+ð 	ð 	ˆCØ�6Œ{�i¨Ñ/Ô/Ò/Ð/Ø�t�tð 0ð	ð 	r)   c                 ó.   — |                       d¬¦  «        S )Nr]  r  r,  rB   s    r*   r  zStatePy311.make_null,	  s   € Ø�~Š~ Wˆ~Ñ-Ô-Ð-r)   )r"   r#   r$   r>   rN  rV  rš   r›   r‘   r  Ú__classcell__©rµ  s   @r*   r°  r°  	  s’   ø€ € € € € ðð ð ð ð ðð ð ð
ð ð ð=ð =ð =ð1ð 1ð 1ðð ð ð
.ð .ð .ð .ð .ð .ð .r)   r°  c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú
StatePy313c                 ól   •—  t          ¦   «         j        |i |¤Ž t          t          ¦  «        | _        d S r9   )r²  r>   r   r×   Ú_make_func_attrsr´  s      €r*   r>   zStatePy313.__init__1	  s5   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ý +­DÑ 1Ô 1ˆÔÐÐr)   c                 óF   — | j         |                              |¦  «         d S r9   )rÆ  rÙ   )r<   Úmake_func_resr°   s      r*   rú  z!StatePy313.set_function_attribute5	  s$   € ØÔ˜mÔ,×3Ò3°FÑ;Ô;Ð;Ð;Ð;r)   c                 ó   — | j         |         S r9   )rÆ  )r<   rÈ  s     r*   Úget_function_attributesz"StatePy313.get_function_attributes8	  s   € ØÔ$ ]Ô3Ð3r)   )r"   r#   r$   r>   rú  rÊ  rÁ  rÂ  s   @r*   rÄ  rÄ  0	  sV   ø€ € € € € ð2ð 2ð 2ð 2ð 2ð<ð <ð <ð4ð 4ð 4ð 4ð 4ð 4ð 4r)   rÄ  r  rD  r.   r¢  )rb   r   rd   r«   c                   ó.   — e Zd ZdZd„ Zed„ ¦   «         ZdS )ÚAdaptDFAz<Adapt Flow to the old DFA class expected by Interpreter
    c                 ó   — || _         d S r9   )Ú_flow)r<   Úflows     r*   r>   zAdaptDFA.__init__L	  s   € ØˆŒ
ˆ
ˆ
r)   c                 ó   — | j         j        S r9   )rÎ  r_   rB   s    r*   ÚinfoszAdaptDFA.infosO	  s   € àŒzÔ%Ð%r)   N)r"   r#   r$   rQ   r>   r­  rÑ  r(   r)   r*   rÌ  rÌ  I	  sH   € € € € € ðð ðð ð ð ð&ð &ñ „Xð&ð &ð &r)   rÌ  ÚAdaptBlockInfo©Úinstsrs  rd   Úactive_try_blockÚoutgoing_edgepushedc                 óN  ‡ — ˆ fd„}t           dv r#t          t          |‰ j        ¦  «        ¦  «        }n2t           dv rt          ‰ j        ¦  «        }nt	          t           ¦  «        ‚t          |‰ j        ‰ j        ‰                      ¦   «         ‰  	                    ¦   «         ¬¦  «        S )Nc                 ó¢   •— | \  }}‰j         |         }|j        dk    r.|                     ‰                     |d         ¦  «        ¦  «         ||fS )NÚMAKE_FUNCTIONr  )r^   r”   rÙ   rÊ  )Ú	inst_pairrà   rý  rã   rƒ   s       €r*   Úprocess_function_attributesz6adapt_state_infos.<locals>.process_function_attributes\	  sS   ø€ Ø ‰ˆ�ØŒ˜vÔ&ˆØŒ;˜/Ò)Ð)Ø�KŠK˜×5Ò5°d¸5´kÑBÔBÑCÔCÐCØ�tˆ|Ðr)   r  r   rÓ  )
r   r(  Úmapro  rï   rÒ  rs  ru  rx  r¬  )rƒ   rÛ  rÔ  s   `  r*   r   r   [	  s·   ø€ ðð ð ð ð õ Ð/Ð/Ð/Ý•cÐ5°uÔ7IÑJÔJÑKÔKˆˆÝ	Ð1Ð	1Ð	1Ý�eÔ(Ñ)Ô)ˆˆå!¥)Ñ,Ô,Ð,ÝØØÔ)ØÔ+Ø×5Ò5Ñ7Ô7Ø!×9Ò9Ñ;Ô;ðñ ô ð r)   c              #   ó¬   K  — | D ]N}t          |t          ¦  «        r|V — Œt          |t          t          f¦  «        rt	          |¦  «        D ]}|V — ŒŒOdS )z<Flatten an iterable of registers used in an instruction
    N)rG   Ústrr(  rÐ   r‚  )r”  r\  rY   s      r*   r‚  r‚  q	  sw   è è € ð ð ð ˆÝ�d�CÑ Ô ð 	ØˆJˆJˆJˆJÝ˜�u¥d˜mÑ,Ô,ð 	Ý'¨Ñ-Ô-ð ð �Ø����øðð r)   c                   óf   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
dS )	ÚAdaptCFAz<Adapt Flow to the old CFA class expected by Interpreter
    c                 ó¾  — || _         i | _        |j                             ¦   «         D ]\  }}t	          ||¦  «        | j        |<   Œ| j         j                             ¦   «         }|j        }|                     ¦   «         }t          ¦   «         }| j         	                    ¦   «         D ],}| 
                    |¦  «        r|                     |¦  «         Œ-||z
  | _        d S r9   )rÎ  Ú_blocksr_   rÉ   ÚAdaptCFBlockr¶   Úbackboner¿   Úblocksr°  Úin_loopsry   Ú	_backbone)r<   rÏ  rà   Ú	blockinforä  r¸   Úinloopblocksr¹   s           r*   r>   zAdaptCFA.__init__	  sÛ   € ØˆŒ
ØˆŒØ!%Ô!1×!7Ò!7Ñ!9Ô!9ð 	Cð 	CÑˆF�IÝ#/°	¸6Ñ#BÔ#BˆDŒL˜Ñ Ð Ø”:Ô%×.Ò.Ñ0Ô0ˆà”ˆà—>’>Ñ#Ô#ˆõ ‘u”uˆØ”×!Ò!Ñ#Ô#ð 	$ð 	$ˆAØ�~Š~˜aÑ Ô ð $Ø× Ò  Ñ#Ô#Ð#øØ! LÑ0ˆŒˆˆr)   c                 ó   — | j         j        S r9   )rÎ  r¶   rB   s    r*   r¸   zAdaptCFA.graph’	  s   € àŒzÔ!Ð!r)   c                 ó   — | j         S r9   )rç  rB   s    r*   rä  zAdaptCFA.backbone–	  s
   € àŒ~Ðr)   c                 ó   — | j         S r9   )râ  rB   s    r*   rå  zAdaptCFA.blocksš	  s
   € àŒ|Ðr)   c              #   óV   K  — t          | j        ¦  «        D ]}| j        |         V — Œd S r9   )r~   rå  r‘  s     r*   ÚiterliveblockszAdaptCFA.iterliveblocksž	  s>   è è € Ý˜œÑ$Ô$ð 	!ð 	!ˆAØ”+˜a”.Ð Ð Ð Ð ð	!ð 	!r)   c                 óB   — | j         j                             ¦   «          d S r9   )rÎ  r¶   rW   rB   s    r*   rW   zAdaptCFA.dump¢	  s   € ØŒ
Ô×ÒÑ!Ô!Ð!Ð!Ð!r)   N)r"   r#   r$   rQ   r>   r­  r¸   rä  rå  rî  rW   r(   r)   r*   rà  rà  |	  sœ   € € € € € ðð ð1ð 1ð 1ð& ð"ð "ñ „Xð"ð ðð ñ „Xðð ðð ñ „Xðð!ð !ð !ð"ð "ð "ð "ð "r)   rà  c                   ó   — e Zd Zd„ ZdS )rã  c                 óZ   — || _         t          d„ |j        D ¦   «         ¦  «        | _        d S )Nc              3   ó    K  — | ]	\  }}|V — Œ
d S r9   r(   )r(  r  r)  s      r*   r#  z(AdaptCFBlock.__init__.<locals>.<genexpr>©	  s&   è è € Ð8Ð8¡  1˜!Ð8Ð8Ð8Ð8Ð8Ð8r)   )rà   r(  rÔ  Úbody)r<   rè  rà   s      r*   r>   zAdaptCFBlock.__init__§	  s-   € ØˆŒÝÐ8Ð8¨	¬Ð8Ñ8Ô8Ñ8Ô8ˆŒ	ˆ	ˆ	r)   N)r"   r#   r$   r>   r(   r)   r*   rã  rã  ¦	  s#   € € € € € ð9ð 9ð 9ð 9ð 9r)   rã  )1rQ   ræ  ÚloggingÚcollectionsr   r   r   Ú	functoolsr   Únumba.core.utilsr   r   r	   r
   Únumba.core.controlflowr   r   Únumba.core.irr   Únumba.core.errorsr   Ú	getLoggerr"   r\   r­   r®   rR   r•   Úenumr   r    rw  rï   Úobjectr1   rT   ró   rj   r[  r°  rÄ  ri   r¢  rÌ  rÒ  r   r‚  rà  rã  r(   r)   r*   ú<module>rþ     sí  ððð ð €
€
€
Ø €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø $Ð $Ð $Ð $Ð $Ð $ð-ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð ˆ'Ô
˜HÑ
%Ô
%€àÐ Ø#€Ø�	ð ð ð ñ ô €ð Ð4Ð4Ð4ØÐÐÐÐÐð$ð $ð $ð $ð $ 4ñ $ô $ð $ð %€E€EØÐ$Ð$Ð$Øà
Ð
˜iÑ
(Ô
(Ð(ð ð3ð 3ð 3ð 3ð 3�ñ 3ô 3ñ „ð3ð@o-ð o-ð o-ð o-ð o-ˆ6ñ o-ô o-ð o-ðd$ð $ð $ðP-ð P-ð P-ð P-ð P-�&ñ P-ô P-ð P-ðf4 ðy,ð y,ð y,ð y,ð y,ˆVñ y,ô y,ñ „ðy,ðx	.ð .ð .ð .ð .�ñ .ô .ð .ð>	4ð 	4ð 	4ð 	4ð 	4�ñ 	4ô 	4ð 	4ð Ð+Ð+Ð+Ø€E€EØÐ$Ð$Ð$Ø€E€EØ�ÒÐØ€E€Eà
Ð
˜iÑ
(Ô
(Ð(ð €z�&Ð@Ð@Ð@ÑAÔA€ð&ð &ð &ð &ð &ˆvñ &ô &ð &ð �Øðð ð ñô €ðð ð ð,ð ð ð'"ð '"ð '"ð '"ð '"ˆvñ '"ô '"ð '"ðT9ð 9ð 9ð 9ð 9�6ñ 9ô 9ð 9ð 9ð 9r)   