
    /hh             %       /   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKJrJrJrJrJr  S SKJr  \R(                  S   rS r\" 5       R.                  R0                  r " S S5      rS\R6                  R8                  R:                  \R6                  R8                  R:                  S	-   4-  rS
rS\R@                  R8                  R:                  \R@                  R8                  R:                  S-   4-  r!S\RD                  R8                  R:                  \RD                  R8                  R:                  S-   4-  r#S\R6                  RH                  < S\< S\R@                  RH                  < S\!< S\RD                  RH                  < S\#< S3r%S r&S\&R8                  R:                  \&R8                  R:                  S	-   \&R8                  R:                  S-   4-  r'S\&R8                  R:                  \&R8                  R:                  S	-   \&R8                  R:                  S-   4-  r(Sr)S r*S\*R8                  R:                  \*R8                  R:                  S	-   \*R8                  R:                  S-   \*R8                  R:                  S	-   \*R8                  R:                  S-   \*R8                  R:                  S	-   4-  r+/ 4S jr,S\,R8                  R:                  \,R8                  R:                  S	-   \-\,R8                  R:                  S	-   \,R8                  R:                  S-   \,R8                  R:                  S	-   4-  r.S r/\/R8                  Ra                  SS9\/l        Sr1\2" \R(                  S   S	\R(                  S    S!\R(                  S   S	\R(                  S"   S#\R(                  S$   S /
5      r3S%r4\2" \Rj                  S!\Rj                  S!\Rj                  S!\R(                  S&   S'/5      r6S(r7S) r8S* r9S+\9R8                  R:                  \9R8                  R:                  S	-   4-  r:S,r;S-r<S.r=S/r>S0r?S1r@S2rAS3rBS4rCS5rDS6rES7rFS8rGS9rHS:\R:                  \R:                  S	-   \R:                  S-   \R:                  S;-   \R:                  S-   \R:                  S<-   \R:                  S;-   \R:                  S-   4-  rIS= rJS>\JR8                  R:                  \JR8                  R:                  S	-   4-  rKS? rLS@\LR8                  R:                  \LR8                  R:                  S	-   \LR8                  R:                  S-   \LR8                  R:                  S	-   \LR8                  R:                  S-   \LR8                  R:                  S	-   \LR8                  R:                  S-   4-  rMSA rNSB\NR8                  R:                  \NR8                  R:                  S	-   \NR8                  R:                  S-   \NR8                  R:                  S	-   \NR8                  R:                  S-   \NR8                  R:                  S	-   \NR8                  R:                  S-   4-  rOSC rPSD rQSE\PR8                  R:                  \PR8                  R:                  S	-   \PR8                  R:                  S-   \PR8                  R:                  S<-   \PR8                  R:                  S<-   4-  rRSF\QR8                  R:                  \QR8                  R:                  S	-   \QR8                  R:                  S-   \QR8                  R:                  S<-   \QR8                  R:                  S<-   4-  rSSG rTSH rUSI rVSJ rWSK\WR8                  R:                  \WR8                  R:                  S	-   \-\WR8                  R:                  S	-   \WR8                  R:                  S<-   4-  rXSL\X\-\WR8                  R:                  S	-   \WR8                  R:                  S	-   \WR8                  R:                  S-   \-\WR8                  R:                  S-   4-  rYSM\Y\-\WR8                  R:                  S-   \WR8                  R:                  S-   4-  rZGSSN jr[SO\[R8                  R:                  \[R8                  R:                  S	-   \[R8                  R:                  S-   4-  r\SP r]SQ\]R8                  R:                  \]R8                  R:                  S	-   \]R8                  R:                  S-   \]R8                  R:                  S	-   4-  r^SR r_SS\_R8                  R:                  \_R8                  R:                  S	-   4-  r`Sra " ST SU\R                  5      rc " SV SW\c5      rd " SX SY\d5      re\R                  R                  c  SZrhOS[rhS\\h S]3ri\jGS/ S_.S` jj5       rkSarl\kR                  R8                  R                  S	   roSbrpScrqSdrrSersSf rtSgru " Sh Si\R                  5      rvGSSj jrwSk rxS	ry\wR8                  R:                  S	-
  rz\wR8                  R                  S	   r{\{R:                  \z-
  r|\{R                  S	   r}\}R:                  \z-
  r~S	rSl rSm r\GR                  r\" SnSoS SpSpS S S^SSSSq9\" SnSoS	SrSrSSSsSSSSq9\" StSuS S SvS<S<S^S	SSSq9\" S"SwS;SxSySzSzS^SSSSq9\" S{S|S SpSpS}S}SsSSSSq9\" S{S|S	SrSrS~S~SsSSSSq9\" SSSSSvSSSsSSSSq9\" S"SwS	\{\" \{5      SSSsSSSSq9\" SSSSSvSSSsSSSSq9\" SSS}S}SSSSsSSSSq9\" SSS	S	SSSSsSSSSq9\" SSSSSSSSsSSSSq9\" SSS	SSSSS^SSSSq9\" SSS SpSpSSSsSSSSq9\" SSS	SrSrSSSsSSSSq9\" S"SwSSvSSSSsSSSSq9\" S"SwSS	SSSSsSSSSq9\" SSS S SvSSSsSSSSq9\" SSS S SvSSSsSSSSq9\" S"SwS<SSSSSsSSSSq9\" SSSSSvSSSsSSSSq9\" SSSSSvSSSsSSSSq9\" S{S|SSSSSS^S}SSSq9\" S$SSSSvSSSsS}SSSq9/r\" SSSSSvS S S^SSSSq9\" SnSoS SSSSSsSSSSq9\" SnSoS	SSS<S<SsSSSSq9\" StSuS S SvSzSzS^SSSSq9\" S"SwSSSS}S}S^SSSSq9\" S{S|SSpSpS~S~SsSSSSq9\" S{S|S<SrSrSSSsSSSSq9\" S{S|S SSSSSsSSSSq9\" S{S|S	SSSSSsSSSSq9\" SSS<S<SvSSSsSSSSq9\" S"SwS	\}\" \}5      SSSsSSSSq9\" SSSSSvSSSsSSSSq9\" SSS}S}SSSSsSSSSq9\" SSS	S	SSSSsSSSSq9\" SSSSSSSSsSSSSq9\" SSS	SSSSS^S;SSSq9\" SSSSpSpSSSsS;SSSq9\" SSS<SrSrSSSsS;SSSq9\" SSS SSSSSsS;SSSq9\" SSS	SSSSSsS;SSSq9\" SSS<S<SvSSSsS;SSSq9\" SSSSSvSSSsS;SSSq9\" S{S|SSSSSS^SzSSSq9\" S$SSSSvSSSsSzSSSq9/r\" SSS<S<SvS S S^SSSSq9\" StSuS S SvSSS^SSSSq9\" SSS	SSS<S<S^S<SSSq9\" SSSSpSpSSSsS<SSSq9\" SSSSrSrSSSsS<SSSq9\" SSS<SSSSSsS<SSSq9\" SSS;SSSSSsS<SSSq9\" SSS	SSSSSsS<SSSq9\" SSSzSzSvSSSsS<SSSq9\" SSSSSvSSSsS<SSSq9\" SSS SSSSSsS<SSSq9/r/ \" StSuS S SvS S S^S	SSSS9P\" SSS	SSSSS^SSS/ SQS9P\" S"SwS	S~SSSSsSSSSS9P\" SSS	S	SvSSSsSSSSS/S9P\" SSSSSvSSSsSSSSS9P\" SSSSSSSSsSS	SS/S9P\" SSS SSSSSsSSSSS9P\" SSSSSSSS^S<SS/ SQS9P\" S{S|S SSSSSsS<SSSS9P\" SSS	S	SvSSSsS<SSSS/S9P\" SSSSSvSSSsS<SSSS9P\" S{S|S SSSSS^S;SSSS9P\" S"SwSS<SSSSsS;SSSS9P\" SSSSSSSSsS;SSS/S9P\" SSSSSSSSsS;SSS/S9P\" SSSSSSSS^SzSSS/S9P\" S{S|S SSSSS^SSSSS9P\" S"SwSSzSSSSsSSSSS9P\" SSSSSSSSsSSSS/S9P\" SSSSSSSSsSSSS/S9P\" SSSSSSSSsSSSS/S9P\" SSSSSvSSS^S}SSSS9P\" S&SSSSSSSsS}SSSS9P\" SSSSSvSSS^SS<SSS9P\" SSSSSvSSSsSSSSS9P\" SSSSSSSS^S~SS/ SQS9P\" S"SwS<SSSSSsS~SSSS9P\" SSS	S	SvSSSsS~SSSS/S9P\" SSSSSvSSSsS~SSSS9P\" SSS SSSSS^SS;SSS9P\" SSSSSvSSSsSSSSS/S9P\" SSSSSSSSsSSSS/S9P\" SSSSSSSS^SSzS/ SQS9P\" S{S|S SSSSSsSSSSS9P\" SSS	S	SvSSSsSSSSS/S9P\" SSSSSvSSSsSSSSS9P\" S{S|S SSSSS^SSSSS9P\" S"SwS;S	SSSSsSSSSS9P\" SSGS GS GSGSGSSsSSSS/S9P\" SSS SSGSGSSsSSSSS9P\" S{S|S SSGSGSS^SSSSS9P\" S"SwSSzSGSGSSsSSSSS9P\" SSSSSGSGSSsSSSS/S9P\" SSSGSGSGS	GS	SsSSSS/S9P\" SSGS
SSGSGSS^GSSSS/S9P\" S{S|S SSGSGSS^SSSSS9P\" S"SwSS<SGSGSSsSSSSS9P\" SSSSSGSGSSsSSSS/S9P\" SSS	GSGSGSGSSsSSSS/S9P\" S&SSGSGSGSGSS^GSSSSS9P\" S{S|S SSGSGSS^SS}SSS9P\" SSSSSvGSGSSsSSSSS/S9P\" SSSSSGSGSSsSSSS/S9P\" SSSSGSGSGSSsSSSS/S9P\" SSSSSSSS^SGSS/ SQS9P\" S"SwSzGSGSGSGSSsSSSSS9P\" SSS	S	SvGSGSSsSSSSS/S9P\" SSSSSvGSGSSsSSSSS9P\" S SSSSvGSGSS^SS~SSS9P\" S"SwS;S	SGS GS S^GS!SSSS9P\" S"SwSS GS"GS#GS#SsGS!SSSS9P\" SSSSGS$GS%GS%SsGS!SSS/S9P\" SSSSSvGS&GS&SsGS!SSSS9P\" S{S|S SSGS'GS'S^GS(SSSS9P\" GS)SSSSvGS*GS*SsGS(SSSS9P\" SSS	GS+GS+GS,GS,SsGS(SSSS9P\" SSSSSGS-GS-S^SSS/ SQS9P\" S"SwS}GS.GS/GS0GS0SsSSSSS9P\" SSS	S	SvGS1GS1SsSSSSS/S9P\" SSSSSvGS2GS2SsSSSSS9P\" S"SwS SSGS3GS3S^GS(SSSS9P\" S"SwS SSGS4GS4SsGS(SSSS9P\" S"SwS SSGS5GS5SsGS(SSSS9P\" SSSSSvGS6GS6SsGS(SSSS/S9P\" SSSSSvGS7GS7SsGS(SSSS9P\" SSSSSGS8GS8S^SSS/ SQS9P\" S"SwS~GS9GS:GS;GS;SsSSSSS9P\" SSS	S	SvGS<GS<SsSSSSS/S9P\" SSSSSvGS=GS=SsSSSSS9P\" SSS SSGS>GS>SsSSSSS9P\" GS?GS@SSSvGSAGSAS^GS(SSSS9P\" GSBSSSSvGSCGSCSsGS(SSSS9P\" SSSSSvGSDGSDSsGS(SSSS/S9P\" SSS	GSEGSFGSGGSGSsGS(SSS/S9P\" GSHSSSSvGSIGSISsGS(SSSS9P\" SSSSSvGSEGSESsGS(SSSS9P\" GSJGS
SSSvGSKGSKSsGS(SSSS9P\" SSSSSvGSLGSLSsGS(SSSS9P\" SSSSSvGSMGSMSsGS(SSSS9P\" GSNGSOSGS8GSPGSQGSQSsGS(SSSS9P\" GSRGSSSSSvGSTGSTS^SSSSS9P\" GSJGS
SSSvGSUGSUSsSSSSS9P\" GSHSS	S	SvGSVGSVSsSSSSS9P\" GS?GS@SSSvGSWGSWSsSSSSS9P\" SSS<GSXGSXGSYGSYS^SSS/ SQS9P\" GSZSSSSvGS[GS[SsSSSSS9P\" SSSGS\GS]GS^GS^SsSSSS/S9P\" SSSSSvGS_GS_SsSSSSS9P\" SSSSSGS`GS`S^GS SS/ SQS9P\" S"SwGSGSaGSbGScGScSsGS SSSS9P\" SSS	S	SvGSdGSdSsGS SSSS/S9P\" SSSSSvGSeGSeSsGS SSSS9P\" GSJGS
SSSvGSfGSfSsGS SSSS9P\" GSNGSOSGS8GSPGSgGSgSsGS SSSS9P\" GSHSS S SvGS\GS\S^SSSSS9P\" GSRGSSSSSvGShGShS^SSSSS9P\" GSJGS
SSSvGSiGSiSsSSSSS9P\" GSHSS	S	SvGSjGSjSsSSSSS9P\" GS?GS@SSSvGSkGSkSsSSSSS9P\" SSSSSGSlGSlS^SSS/ SQS9P\" S"SwS~GS9GS:GSmGSmSsSSSSS9P\" SSS	S	SvGSnGSnSsSSSSS/S9P\" SSSSSvGSoGSoSsSSSSS9P\" GSHSS S SvGSpGSpSsSSSSS9P\" GSRGSSSSSvGSqGSqS^SSSSS9P\" GSJGS
SSSvGSrGSrSsSSSSS9P\" GSHSS	S	SvGSsGSsSsSSSSS9PrGSt r\" StSuS S SvS S S^\R8                  R:                  SSSq9\" SSS SSSSSs\R8                  R:                  SGSu9
/r " GSv GSw\5      r " GSx GSy\5      r " GSz GS{\\c5      r " GS| GS}\5      r " GS~ GS\R                  5      r " GS GS\c5      r " GS GS\5      rGSGS jr " GS GS\R                  5      r\$GS:X  a  \GR&                  " 5         gg(      N)captured_stdoutrequires_debug_rangesrequires_specializationcpython_only	os_helper)BytecodeTestCaseCACHEc                  z    S n U " 5       nUR                   (       a  UR                   nUR                   (       a  M  U$ )Nc                  Z     SS-    W$ ! [          a  n U R                  n S n A U$ S n A ff = fN   r   )	Exception__traceback__)etbs     6/opt/python-3.13.8/usr/lib/python3.13/test/test_dis.py_errorget_tb.<locals>._error   s5    	!E 	  	!B		!s   	 
*%*)tb_next)r   r   s     r   get_tbr      s0     
B
**ZZ ***I    c                   :    \ rS rSrS r\S 5       r\S 5       rSr	g)_C&   c                     US:H  U l         g Nr   x)selfr   s     r   __init___C.__init__'   s    ar   c                     U S:H  n g r    r   s    r   sm_C.sm*   s    Fr   c                     US:H  U l         g r   r   )clsr   s     r   cm_C.cm.   s    Qr   r   N)
__name__
__module____qualname____firstlineno__r    staticmethodr$   classmethodr(   __static_attributes__r#   r   r   r   r   &   s/        r   r   a?  %3d           RESUME                   0

%3d           LOAD_FAST                1 (x)
              LOAD_CONST               1 (1)
              COMPARE_OP              72 (==)
              LOAD_FAST                0 (self)
              STORE_ATTR               0 (x)
              RETURN_CONST             0 (None)
r   a            RESUME                   0
          LOAD_FAST                1
          LOAD_CONST               1
          COMPARE_OP              72 (==)
          LOAD_FAST                0
          STORE_ATTR               0
          RETURN_CONST             0
a>  %3d           RESUME                   0

%3d           LOAD_FAST                1 (x)
              LOAD_CONST               1 (1)
              COMPARE_OP              72 (==)
              LOAD_FAST                0 (cls)
              STORE_ATTR               0 (x)
              RETURN_CONST             0 (None)
   a  %3d           RESUME                   0

%3d           LOAD_FAST                0 (x)
              LOAD_CONST               1 (1)
              COMPARE_OP              72 (==)
              STORE_FAST               0 (x)
              RETURN_CONST             0 (None)
zDisassembly of z:
z
Disassembly of 
c                     [        U 5        gr   print)as    r   _fr7   h   s    	!Hr   z%3d           RESUME                   0

%3d           LOAD_GLOBAL              1 (print + NULL)
              LOAD_FAST                0 (a)
              CALL                     1
              POP_TOP

%3d           RETURN_CONST             1 (1)
a&  %3d          0       RESUME                   0

%3d          2       LOAD_GLOBAL              1 (print + NULL)
            12       LOAD_FAST                0 (a)
            14       CALL                     1
            22       POP_TOP

%3d         24       RETURN_CONST             1 (1)
z          RESUME                   0
          LOAD_GLOBAL              1
          LOAD_FAST                0
          CALL                     1
          POP_TOP
          RETURN_CONST             1
c                  *    [        SS5       H  n M     g )Nr   
   range)ress    r   	bug708901r=      s    Qr   a  %3d           RESUME                   0

%3d           LOAD_GLOBAL              1 (range + NULL)
              LOAD_CONST               1 (1)

%3d           LOAD_CONST               2 (10)

%3d           CALL                     2
              GET_ITER
      L1:     FOR_ITER                 3 (to L2)
              STORE_FAST               0 (res)

%3d           JUMP_BACKWARD            5 (to L1)

%3d   L2:     END_FOR
              POP_TOP
              RETURN_CONST             0 (None)
   c                     g Nr#   r   s    r   
bug1333982rA      s     	r   a  %3d           RESUME                   0

%3d           LOAD_ASSERTION_ERROR
              LOAD_CONST               1 (<code object <genexpr> at 0x..., file "%s", line %d>)
              MAKE_FUNCTION
              LOAD_FAST                0 (x)
              GET_ITER
              CALL                     0

%3d           LOAD_CONST               2 (1)

%3d           BINARY_OP                0 (+)
              CALL                     0
              RAISE_VARARGS            1
c                      g r@   r#   r#   r   r   bug42562rC          r      co_linetablezQ          RESUME                   0
          RETURN_CONST             0 (None)
EXTENDED_ARGNOP   
LOAD_CONST)   RETURN_VALUEz          EXTENDED_ARG             1
          NOP
          EXTENDED_ARG             1
          LOAD_CONST             297
          RETURN_VALUE
JUMP_FORWARD   z  L1:     EXTENDED_ARG           255
          EXTENDED_ARG         65535
          EXTENDED_ARG         16777215
          JUMP_FORWARD            -4 (to L1)
c                     g r@   r#   )r6   bcs      r   func_w_kwargsrS      rD   r   c                      [        SSSS9  g )Nr   r1      rR   )rS   r#   r   r   wrap_func_w_kwargsrW      s    !Q!r   a  %3d           RESUME                   0

%3d           LOAD_GLOBAL              1 (func_w_kwargs + NULL)
              LOAD_CONST               1 (1)
              LOAD_CONST               2 (2)
              LOAD_CONST               3 (5)
              LOAD_CONST               4 (('c',))
              CALL_KW                  3
              POP_TOP
              RETURN_CONST             0 (None)
a@    0           RESUME                   0

  1           LOAD_CONST               0 (0)
              LOAD_CONST               1 (('*',))
              IMPORT_NAME              0 (math)
              CALL_INTRINSIC_1         2 (INTRINSIC_IMPORT_STAR)
              POP_TOP
              RETURN_CONST             2 (None)
z  0           RESUME                   0

  1           LOAD_NAME                0 (a)
              CALL_INTRINSIC_1         5 (INTRINSIC_UNARY_POSITIVE)
              RETURN_VALUE
a    0           RESUME                   0

  1           BUILD_LIST               0
              LOAD_NAME                0 (a)
              LIST_EXTEND              1
              CALL_INTRINSIC_1         6 (INTRINSIC_LIST_TO_TUPLE)
              RETURN_VALUE
z  1           RESUME                   0

%3d           LOAD_GLOBAL              0 (spam)
              POP_TOP
              RETURN_CONST             0 (None)
z   1           RESUME                   0

%4d           LOAD_GLOBAL              0 (spam)
               POP_TOP
               RETURN_CONST             0 (None)
zDisassembly of f:
  4           RESUME                   0
              RETURN_CONST             0 (None)

Disassembly of g:
  5           RESUME                   0
              RETURN_CONST             0 (None)

zx + 1z  0           RESUME                   0

  1           LOAD_NAME                0 (x)
              LOAD_CONST               0 (1)
              BINARY_OP                0 (+)
              RETURN_VALUE
z	x = x + 1a    0           RESUME                   0

  1           LOAD_NAME                0 (x)
              LOAD_CONST               0 (1)
              BINARY_OP                0 (+)
              STORE_NAME               0 (x)
              RETURN_CONST             1 (None)
z+
x: int = 1
y: fun(1)
lst[fun(0)]: int = 1
a    0           RESUME                   0

  2           SETUP_ANNOTATIONS
              LOAD_CONST               0 (1)
              STORE_NAME               0 (x)
              LOAD_NAME                1 (int)
              LOAD_NAME                2 (__annotations__)
              LOAD_CONST               1 ('x')
              STORE_SUBSCR

  3           LOAD_NAME                3 (fun)
              PUSH_NULL
              LOAD_CONST               0 (1)
              CALL                     1
              LOAD_NAME                2 (__annotations__)
              LOAD_CONST               2 ('y')
              STORE_SUBSCR

  4           LOAD_CONST               0 (1)
              LOAD_NAME                4 (lst)
              LOAD_NAME                3 (fun)
              PUSH_NULL
              LOAD_CONST               3 (0)
              CALL                     1
              STORE_SUBSCR
              LOAD_NAME                1 (int)
              POP_TOP
              RETURN_CONST             4 (None)
zx = 0
while 1:
    x += 1a    0           RESUME                   0

  1           LOAD_CONST               0 (0)
              STORE_NAME               0 (x)

  2           NOP

  3   L1:     LOAD_NAME                0 (x)
              LOAD_CONST               1 (1)
              BINARY_OP               13 (+=)
              STORE_NAME               0 (x)

  2           JUMP_BACKWARD            7 (to L1)
aK  %4d           RESUME                   0

%4d           NOP

%4d   L1:     LOAD_CONST               1 (1)
               LOAD_CONST               2 (0)
           --> BINARY_OP               11 (/)
               POP_TOP

%4d   L2:     LOAD_FAST_CHECK          1 (tb)
               RETURN_VALUE

  --   L3:     PUSH_EXC_INFO

%4d           LOAD_GLOBAL              0 (Exception)
               CHECK_EXC_MATCH
               POP_JUMP_IF_FALSE       23 (to L7)
               STORE_FAST               0 (e)

%4d   L4:     LOAD_FAST                0 (e)
               LOAD_ATTR                2 (__traceback__)
               STORE_FAST               1 (tb)
       L5:     POP_EXCEPT
               LOAD_CONST               0 (None)
               STORE_FAST               0 (e)
               DELETE_FAST              0 (e)

%4d           LOAD_FAST                1 (tb)
               RETURN_VALUE

  --   L6:     LOAD_CONST               0 (None)
               STORE_FAST               0 (e)
               DELETE_FAST              0 (e)
               RERAISE                  1

%4d   L7:     RERAISE                  0

  --   L8:     COPY                     3
               POP_EXCEPT
               RERAISE                  1
ExceptionTable:
  L1 to L2 -> L3 [0]
  L3 to L4 -> L8 [1] lasti
  L4 to L5 -> L6 [1] lasti
  L6 to L8 -> L8 [1] lasti
rU      c                 $    U  SUS SU< SU<S 3$ )N 4r#   r6   rQ   rR   ds       r   _fstringr^     s%    S!AauAaW!W%%r   a  %3d           RESUME                   0

%3d           LOAD_FAST                0 (a)
              FORMAT_SIMPLE
              LOAD_CONST               1 (' ')
              LOAD_FAST                1 (b)
              LOAD_CONST               2 ('4')
              FORMAT_WITH_SPEC
              LOAD_CONST               1 (' ')
              LOAD_FAST                2 (c)
              CONVERT_VALUE            2 (repr)
              FORMAT_SIMPLE
              LOAD_CONST               1 (' ')
              LOAD_FAST                3 (d)
              CONVERT_VALUE            2 (repr)
              LOAD_CONST               2 ('4')
              FORMAT_WITH_SPEC
              BUILD_STRING             7
              RETURN_VALUE
c                 H    U    SnS S S 5        Sng ! , (       d  f       Sng = fNr   r1   r#   rR   r   ys      r   _withrc     s!    	
 
	A 
	As   
!a  %4d           RESUME                   0

%4d           LOAD_FAST                0 (c)
               BEFORE_WITH
       L1:     POP_TOP

%4d           LOAD_CONST               1 (1)
               STORE_FAST               1 (x)

%4d   L2:     LOAD_CONST               0 (None)
               LOAD_CONST               0 (None)
               LOAD_CONST               0 (None)
               CALL                     2
               POP_TOP

%4d           LOAD_CONST               2 (2)
               STORE_FAST               2 (y)
               RETURN_CONST             0 (None)

%4d   L3:     PUSH_EXC_INFO
               WITH_EXCEPT_START
               TO_BOOL
               POP_JUMP_IF_TRUE         1 (to L4)
               RERAISE                  2
       L4:     POP_TOP
       L5:     POP_EXCEPT
               POP_TOP
               POP_TOP

%4d           LOAD_CONST               2 (2)
               STORE_FAST               2 (y)
               RETURN_CONST             0 (None)

  --   L6:     COPY                     3
               POP_EXCEPT
               RERAISE                  1
ExceptionTable:
  L1 to L2 -> L3 [1] lasti
  L3 to L5 -> L6 [3] lasti
c                    #    U  IS h  vN   SnS S S 5      IS h  vN   Sng  N N	! , IS h  vN  (       d  f       Sng = f7fr`   r#   ra   s      r   
_asyncwithre     s+     q q	A qqq	As8   A#A'A%AAA 0A 	Aa
  %4d            RETURN_GENERATOR
                POP_TOP
        L1:     RESUME                   0

%4d            LOAD_FAST                0 (c)
                BEFORE_ASYNC_WITH
                GET_AWAITABLE            1
                LOAD_CONST               0 (None)
        L2:     SEND                     3 (to L5)
        L3:     YIELD_VALUE              1
        L4:     RESUME                   3
                JUMP_BACKWARD_NO_INTERRUPT 5 (to L2)
        L5:     END_SEND
        L6:     POP_TOP

%4d            LOAD_CONST               1 (1)
                STORE_FAST               1 (x)

%4d    L7:     LOAD_CONST               0 (None)
                LOAD_CONST               0 (None)
                LOAD_CONST               0 (None)
                CALL                     2
                GET_AWAITABLE            2
                LOAD_CONST               0 (None)
        L8:     SEND                     3 (to L11)
        L9:     YIELD_VALUE              1
       L10:     RESUME                   3
                JUMP_BACKWARD_NO_INTERRUPT 5 (to L8)
       L11:     END_SEND
                POP_TOP

%4d            LOAD_CONST               2 (2)
                STORE_FAST               2 (y)
                RETURN_CONST             0 (None)

%4d   L12:     CLEANUP_THROW
       L13:     JUMP_BACKWARD_NO_INTERRUPT 25 (to L5)
       L14:     CLEANUP_THROW
       L15:     JUMP_BACKWARD_NO_INTERRUPT 9 (to L11)
       L16:     PUSH_EXC_INFO
                WITH_EXCEPT_START
                GET_AWAITABLE            2
                LOAD_CONST               0 (None)
       L17:     SEND                     4 (to L21)
       L18:     YIELD_VALUE              1
       L19:     RESUME                   3
                JUMP_BACKWARD_NO_INTERRUPT 5 (to L17)
       L20:     CLEANUP_THROW
       L21:     END_SEND
                TO_BOOL
                POP_JUMP_IF_TRUE         1 (to L22)
                RERAISE                  2
       L22:     POP_TOP
       L23:     POP_EXCEPT
                POP_TOP
                POP_TOP

%4d            LOAD_CONST               2 (2)
                STORE_FAST               2 (y)
                RETURN_CONST             0 (None)

  --   L24:     COPY                     3
                POP_EXCEPT
                RERAISE                  1
       L25:     CALL_INTRINSIC_1         3 (INTRINSIC_STOPITERATION_ERROR)
                RERAISE                  1
ExceptionTable:
  L1 to L3 -> L25 [0] lasti
  L3 to L4 -> L12 [3]
  L4 to L6 -> L25 [0] lasti
  L6 to L7 -> L16 [1] lasti
  L7 to L9 -> L25 [0] lasti
  L9 to L10 -> L14 [2]
  L10 to L13 -> L25 [0] lasti
  L14 to L15 -> L25 [0] lasti
  L16 to L18 -> L24 [3] lasti
  L18 to L19 -> L20 [6]
  L19 to L23 -> L24 [3] lasti
  L23 to L25 -> L25 [0] lasti
c                 .     U U" 5         $ ! U" 5         f = fr@   r#   r6   rQ   s     r   _tryfinallyrh   ~      	s    	c                 .      U " 5         g! U " 5         f = fr   r#   )rQ   s    r   _tryfinallyconstrk     ri   s   	a  %4d           RESUME                   0

%4d           NOP

%4d   L1:     LOAD_FAST                0 (a)

%4d   L2:     LOAD_FAST                1 (b)
               PUSH_NULL
               CALL                     0
               POP_TOP
               RETURN_VALUE

  --   L3:     PUSH_EXC_INFO

%4d           LOAD_FAST                1 (b)
               PUSH_NULL
               CALL                     0
               POP_TOP
               RERAISE                  0

  --   L4:     COPY                     3
               POP_EXCEPT
               RERAISE                  1
ExceptionTable:
  L1 to L2 -> L3 [0]
  L3 to L4 -> L4 [1] lasti
ao  %4d           RESUME                   0

%4d           NOP

%4d           NOP

%4d           LOAD_FAST                0 (b)
               PUSH_NULL
               CALL                     0
               POP_TOP
               RETURN_CONST             1 (1)

  --   L1:     PUSH_EXC_INFO

%4d           LOAD_FAST                0 (b)
               PUSH_NULL
               CALL                     0
               POP_TOP
               RERAISE                  0

  --   L2:     COPY                     3
               POP_EXCEPT
               RERAISE                  1
ExceptionTable:
  L1 to L2 -> L2 [1] lasti
c              #      #    U v   g 7fr@   r#   r   s    r   _grm     s
     
Gs   c                   #    U 7v   g 7fr@   r#   r   s    r   _agro     s
     
Gs   	c                 >   #    [        U 5        S h  vN nM   N
 g 7fr@   )ro   )r   items     r   _corr     s     !f dfs   c                    ^  U 4S jnU$ )Nc                 0   >^  [        U 4S jT 5       5      $ )Nc              3   .   >#    U  H
  nTU-   v   M     g 7fr@   r#   ).0zr   s     r   	<genexpr>"_h.<locals>.foo.<locals>.<genexpr>  s     %1aAE1s   )listr   rb   s   `r   foo_h.<locals>.foo  s    %1%%%r   r#   )rb   r|   s   ` r   _hr~     s    & Jr   a    --           MAKE_CELL                0 (y)

%4d           RESUME                   0

%4d           LOAD_FAST                0 (y)
               BUILD_TUPLE              1
               LOAD_CONST               1 (<code object foo at 0x..., file "%s", line %d>)
               MAKE_FUNCTION
               SET_FUNCTION_ATTRIBUTE   8 (closure)
               STORE_FAST               1 (foo)

%4d           LOAD_FAST                1 (foo)
               RETURN_VALUE
a  %s
Disassembly of <code object foo at 0x..., file "%s", line %d>:
  --           COPY_FREE_VARS           1
               MAKE_CELL                0 (x)

%4d           RESUME                   0

%4d           LOAD_GLOBAL              1 (list + NULL)
               LOAD_FAST                0 (x)
               BUILD_TUPLE              1
               LOAD_CONST               1 (<code object <genexpr> at 0x..., file "%s", line %d>)
               MAKE_FUNCTION
               SET_FUNCTION_ATTRIBUTE   8 (closure)
               LOAD_DEREF               1 (y)
               GET_ITER
               CALL                     0
               CALL                     1
               RETURN_VALUE
a  %s
Disassembly of <code object <genexpr> at 0x..., file "%s", line %d>:
  --           COPY_FREE_VARS           1

%4d           RETURN_GENERATOR
               POP_TOP
       L1:     RESUME                   0
               LOAD_FAST                0 (.0)
               GET_ITER
       L2:     FOR_ITER                10 (to L3)
               STORE_FAST               1 (z)
               LOAD_DEREF               2 (x)
               LOAD_FAST                1 (z)
               BINARY_OP                0 (+)
               YIELD_VALUE              0
               RESUME                   5
               POP_TOP
               JUMP_BACKWARD           12 (to L2)
       L3:     END_FOR
               POP_TOP
               RETURN_CONST             0 (None)

  --   L4:     CALL_INTRINSIC_1         3 (INTRINSIC_STOPITERATION_ERROR)
               RERAISE                  1
ExceptionTable:
  L1 to L4 -> L4 [0] lasti
c                     Xp2X#4$ r@   r#   )r   rb   r6   rQ   s       r   	load_testr   -  s    q4Kr   z%3d           RESUME_CHECK             0

%3d           LOAD_FAST_LOAD_FAST      1 (x, y)
              STORE_FAST_STORE_FAST   50 (b, a)

%3d           LOAD_FAST_LOAD_FAST     35 (a, b)
              BUILD_TUPLE              2
              RETURN_VALUE
c                  6    / SQS-   H  n [        U 5        M     g )N)r   r1   r>   r>   r   )is    r   	loop_testr   >  s    ]! r   a  %3d           RESUME_CHECK             0

%3d           BUILD_LIST               0
              LOAD_CONST               1 ((1, 2, 3))
              LIST_EXTEND              1
              LOAD_CONST               2 (3)
              BINARY_OP                5 (*)
              GET_ITER
      L1:     FOR_ITER_LIST           14 (to L2)
              STORE_FAST               0 (i)

%3d           LOAD_GLOBAL_MODULE       1 (load_test + NULL)
              LOAD_FAST                0 (i)
              CALL_PY_GENERAL          1
              POP_TOP
              JUMP_BACKWARD           16 (to L1)

%3d   L2:     END_FOR
              POP_TOP
              RETURN_CONST             0 (None)
c                      SGt   n g )N.r#   )_s    r   extended_arg_quickr   \  s    EQr   a#  %3d           RESUME                   0

%3d           LOAD_CONST               1 (Ellipsis)
              EXTENDED_ARG             1
              UNPACK_EX              256
              POP_TOP
              STORE_FAST               0 (_)
              RETURN_CONST             0 (None)
c                   &    \ rS rSrS rS rS rSrg)DisTestBaseim  c                 2    [         R                  " SSU5      $ )Nz\b0x[0-9A-Fa-f]+\bz0x...)resub)r   texts     r   strip_addressesDisTestBase.strip_addressesp  s    vv+Wd;;r   c                    Su  p#SnU Ho  n[         R                  " SU5      nUR                  5        Vs/ s H  n[        U5      PM     snu  pU R	                  X5        U R	                  X5        Xp2US-  nMq     U$ s  snf )N)r   r   z"  L(\d+) to L(\d+) -> L\d+ \[\d+\]r   )r   matchgroupsintassertGreaterEqual)
r   lines
prev_startprev_endcountlinemgstartends
             r   !assert_exception_table_increasing-DisTestBase.assert_exception_table_increasings  s    %
D>EA*+((*5*Q#a&*5JE##C/##E4#(QJE   6s   A>c                 R    X:w  a  U R                  U5      nU R                  X5        g r@   )r   assertEqualr   gotexpecteds      r   do_disassembly_compare"DisTestBase.do_disassembly_compare  s%    ?&&s+C'r   r#   N)r*   r+   r,   r-   r   r   r   r0   r#   r   r   r   r   m  s    <
(r   r   c                      \ rS rSrSrS3S jrS4S jrS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)\*\+4S( j5       r,\-\.S) 5       5       r/\-\.S* 5       5       r0\-\.S+ 5       5       r1\-\.S, 5       5       r2\-\.S- 5       5       r3\-S. 5       r4S/ r5\-S0 5       r6\-S1 5       r7S2r8g)5DisTestsi  Nc                 6   [         R                  " 5       n[        R                  " U5         U(       a  [        R                  " U40 UD6  O[        R
                  " X40 UD6  S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = fr@   )ioStringIO
contextlibredirect_stdoutdisdisassemblegetvaluer   funclastiwrapperkwargsoutputs         r   get_disassemblyDisTests.get_disassembly  sl    ''/''6v6	 0
    0/
   s   7A;;
Bc                 &    U R                  XS5      $ )NF)r   )r   r   r   s      r   get_disassemble_as_string"DisTests.get_disassemble_as_string  s    ##D77r   c                    S U l         U R                  " U4SS0UD6nU R                  XB5        [        US5      (       av  [        R
                  " 5       n[        R                  " U5         [        R                  " UR                  40 UD6  S S S 5        U R                  UR                  5       U5        g g ! , (       d  f       N0= f)Ndepthr   __code__)maxDiffr   r   hasattrr   r   r   r   r   discor   r   )r   r   r   r   r   	got_discos         r   do_disassembly_testDisTests.do_disassembly_test  s    ""4;q;F;##C24$$I++I6		$--262 7''	(:(:(<hG	 %66s   *"B66
Cc                    U R                  [        R                  S   S5        U R                  [        R                  S   [        R                  5        U R                  [        R                  S   [        R
                  5        g )Nr	   r   rK   
STORE_NAME)r   r   opmapassertInhasconsthasnamer   s    r   
test_opmapDisTests.test_opmap  sQ    7+Q/cii-s||<cii-s{{;r   c                 l    U R                  [        R                  [        R                  S      S5        g )N	LOAD_FAST)r   r   opnamer   r   s    r   test_opnameDisTests.test_opname  s$    CIIk$:;[Ir   c                 f    U R                  [        R                  S   [        R                  5        g )NrH   )r   r   r   rH   r   s    r   test_boundariesDisTests.test_boundaries  s!    >2C4D4DEr   c                    [        SS/5      n[        [        R                  5       H  u  p#X1;   d  UR	                  S5      (       a  M"  U R                  US9   [        R                  nU[        R                  ;   a  US[        R                  -   -  nU R                  [        U5      U5        S S S 5        M     g ! , (       d  f       M  = f)NJUMP_BACKWARD_NO_INTERRUPTINSTRUMENTED_CALL_FUNCTION_EXINSTRUMENTED)r   r   )set	enumerater   r   
startswithsubTest_OPNAME_WIDTHhasarg_OPARG_WIDTHassertLessEquallen)r   long_opcodesopcoder   widths        r   test_widthsDisTests.test_widths  s    8;= >'

3NF%):):>)J)JV,))SZZ'Q!1!111E$$S[%8	 -, 4 -,s   AB;;
C
	c                 8    U R                  [        [        5        g r@   )r   r7   dis_fr   s    r   test_disDisTests.test_dis        U+r   c                 6    U R                  [        [        SS9  g )NT)show_offsets)r   r7   dis_f_with_offsetsr   s    r   test_dis_with_offsetsDisTests.test_dis_with_offsets  s      %7d Kr   c                 8    U R                  [        [        5        g r@   )r   r=   dis_bug708901r   s    r   test_bug_708901DisTests.test_bug_708901  s      M:r   c                 \     U R                  S5        U R                  [        [        5        g )Nzneed asserts, run without -O)skipTestr   rA   dis_bug1333982r   s    r   test_bug_1333982DisTests.test_bug_1333982  s$     MM89  ^<r   c                 8    U R                  [        [        5        g r@   )r   rC   dis_bug42562r   s    r   test_bug_42562DisTests.test_bug_42562  s      <8r   c                 8    U R                  [        [        5        g r@   )r   code_bug_45757dis_bug_45757r   s    r   test_bug_45757DisTests.test_bug_45757  s      ?r   c                 8    U R                  [        [        5        g r@   )r   bug46724dis_bug46724r   s    r   test_bug_46724DisTests.test_bug_46724  s      <8r   c                 8    U R                  [        [        5        g r@   )r   rW   dis_kw_namesr   s    r   test_kw_namesDisTests.test_kw_names  s      !3\Br   c                     U R                  S[        5        U R                  S[        5        U R                  S[        5        g )Nzfrom math import *z+az(*a,))r   dis_intrinsic_1_2dis_intrinsic_1_5dis_intrinsic_1_6r   s    r   test_intrinsic_1DisTests.test_intrinsic_1  s6      !57HI  '89  *;<r   c                 F    U R                  SU R                  S5      5        g )Nz8CALL_INTRINSIC_2         1 (INTRINSIC_PREP_RERAISE_STAR)ztry: pass
except* Exception: x)r   r   r   s    r   test_intrinsic_2DisTests.test_intrinsic_2  s!    P**+LM	Or   c                    S n[        SS5       H'  n[        US-   -  nU R                  U" U5      U5        M)     [        SSS5       H'  n[        US-   -  nU R                  U" U5      U5        M)     [        SSS5       H'  n[        US-   -  nU R                  U" U5      U5        M)     SS	KJn  U R                  U[        5        g )
Nc                 ^    0 nSSR                  S/U -  S/-   5      -   n[        X!5        US   $ )Nzdef foo():
  z
 zspam
r|   )joinexec)r   	namespacer   s      r   r   'DisTests.test_big_linenos.<locals>.func  s:    I"RWWeWu_z-I%JJD!U##r   r   i,  r1     r9   i  r   )
dis_module)r;   _BIG_LINENO_FORMATr   _BIG_LINENO_FORMAT2testr  dis_module_expected_results)r   r   r   r   r  s        r   test_big_linenosDisTests.test_big_linenos  s    	$ q#A)QU3H$$T!Wh7 
 sD"%A)QU3H$$T!Wh7 & tT2&A*a!e4H$$T!Wh7 ' 	$  -HIr   c                     U R                  [        [        5        U R                  [        [        5        U R                  [
        [        5        U R                  [        [        5        g r@   )	r   expr_strdis_expr_strsimple_stmt_strdis_simple_stmt_strannot_stmt_strdis_annot_stmt_strcompound_stmt_strdis_compound_stmt_strr   s    r   test_disassemble_strDisTests.test_disassemble_str  sF      <8  2EF  1CD  !24IJr   c                 `    U R                  [        R                  R                  [        5        g r@   )r   r7   r   co_codedis_f_co_coder   s    r   test_disassemble_bytesDisTests.test_disassemble_bytes   s      !4!4mDr   c                 8    U R                  [        [        5        g r@   )r   r   dis_cr   s    r   test_disassemble_classDisTests.test_disassemble_class  r   r   c                 V    U R                  [        S5      R                  [        5        g r   )r   r   r    dis_c_instance_methodr   s    r    test_disassemble_instance_method)DisTests.test_disassemble_instance_method  s      A1FGr   c                     [        S5      R                  R                  R                  nU R	                  U[
        5        g r   )r   r    r   r2  r   dis_c_instance_method_bytes)r   method_bytecodes     r   &test_disassemble_instance_method_bytes/DisTests.test_disassemble_instance_method_bytes	  s,    Q%..1199  2MNr   c                 L    U R                  [        R                  [        5        g r@   )r   r   r$   dis_c_static_methodr   s    r   test_disassemble_static_method'DisTests.test_disassemble_static_method  s      (;<r   c                 L    U R                  [        R                  [        5        g r@   )r   r   r(   dis_c_class_methodr   s    r   test_disassemble_class_method&DisTests.test_disassemble_class_method  s      (:;r   c                     U R                  [        5      nU R                  [        S5      5      nU R                  X!5        g r   )r   rm   r   )r   gen_func_disas	gen_disass      r   test_disassemble_generator#DisTests.test_disassemble_generator  s4    --b1((A/	3r   c                     U R                  [        5      nU R                  [        S5      5      nU R                  X!5        g r   )r   ro   r   )r   agen_func_disas
agen_disass      r    test_disassemble_async_generator)DisTests.test_disassemble_async_generator  s4    ..s3))#a&1
5r   c                     U R                  [        5      n[        S5      nUR                  5         U R                  U5      nU R                  X15        g r   )r   rr   closer   )r   coro_func_disascoro
coro_disass       r   test_disassemble_coroutine#DisTests.test_disassemble_coroutine  sB    ..s31v

))$/
5r   c                 8    U R                  [        [        5        g r@   )r   r^   dis_fstringr   s    r   test_disassemble_fstring!DisTests.test_disassemble_fstring$  s      ;7r   c                 8    U R                  [        [        5        g r@   )r   rc   dis_withr   s    r   test_disassemble_withDisTests.test_disassemble_with'  s      1r   c                 8    U R                  [        [        5        g r@   )r   re   dis_asyncwithr   s    r   test_disassemble_asyncwith#DisTests.test_disassemble_asyncwith*  s      ];r   c                 l    U R                  [        [        5        U R                  [        [        5        g r@   )r   rh   dis_tryfinallyrk   dis_tryfinallyconstr   s    r   test_disassemble_try_finally%DisTests.test_disassemble_try_finally-  s$      n=  !13FGr   c                      [         ? [         ?U R	                  [
        [        R                  S 5        g ! [         a     N9f = f! [         a     NBf = fr@   )syslast_excAttributeErrorlast_tracebackassertRaisesRuntimeErrorr   r   s    r   test_dis_noneDisTests.test_dis_none1  sV    		" 	,6  		  		s    5 A 
AA
AAc                 ,   S U l          [        ? SS-    U R                  WR                  R                  UR                  5      nU R                  S U5        g ! [         a     NUf = f! [         a!  nUR
                  nU[        l         S nANyS nAff = fr   )r   rn  rq  rp  r   r   ro  r   tb_framef_codetb_lastir   )r   r   r   tb_diss       r   test_dis_tracebackDisTests.test_dis_traceback<  s    	"	aC
 //0B0BBKKP  v.  		
  	BCLL	s(   A A( 
A%$A%(
B2BBc                 ^    U R                  [        [        R                  [        5       5        g r@   )rr  	TypeErrorr   objectr   s    r   test_dis_objectDisTests.test_dis_objectL  s    )SWWfh7r   c                    ^  U 4S jnU" [         SS9  U" [        SS9  U" [        SS9  U" [        SS9  U" [        S S9  U" [        5        g )Nc                 x   > TR                   " [        40 UD6nTR                  U5      nTR                  X 5        g r@   )r   r~   r   r   )r   r   r   r   s      r   check2DisTests.test_disassemble_recursive.<locals>.checkP  s6    &&r4V4C&&s+CS+r   r   )r   r   r1   r>   )dis_nested_0dis_nested_1dis_nested_2)r   r  s   ` r   test_disassemble_recursive#DisTests.test_disassemble_recursiveO  sD    	,
 	l!$l!$l!$l!$l$'lr   c                      [         R                  " SS5        g ! [         a%  nU R                  UR                  5         S nAg S nAff = f)N)r  )r   _try_compiler   assertIsNone__context__)r   r   s     r   )test__try_compile_no_context_exc_on_error2DisTests.test__try_compile_no_context_exc_on_error\  s<    	-S"% 	-amm,,	-s    
A	AA	c                 6    [        U5       H
  nU " 5         M     g r@   r:   )ftimesr   s      r   code_quickenDisTests.code_quickenc  s    uAC r   c                 |    U R                  S 5        U R                  [        SS9nU R                  U[        5        g )Nc                      [        SS5      $ )Nr   r   r#   r   r   <lambda>2DisTests.test_super_instructions.<locals>.<lambda>k  s
    )Aq/r   Tadaptive)r  r   r   r   dis_load_test_quickened_coder   r   s     r   test_super_instructions DisTests.test_super_instructionsh  s9     	12""9t"<##C)EFr   c                 D  ^^^^ Sn[        SSS5      mU R                  U4S j5        U R                  TSS9nU R                  X!S-  5        [        SS	S5      mU R                  U4S
 j5        U R                  TSS9nU R                  X!S-  5        Sn[        SSS5      mU R                  U4S j5        U R                  TSS9nU R                  X#S-  5        [        SSS5      mU R                  U4S j5        U R                  TSS9nU R                  X#S-  5        g )Nz  0           RESUME_CHECK             0

  1           LOAD_NAME                0 (a)
              LOAD_NAME                1 (b)
              %s
              RETURN_VALUE
za + bz<int>evalc                  $   > [        T 0 SSS.5      $ )Nr   r1   rg   r  )co_ints   r   r  1DisTests.test_binary_specialize.<locals>.<lambda>{  s    $vr3C"Dr   Tr  zBINARY_OP_ADD_INT        0 (+)z	<unicode>c                  $   > [        T 0 SSS.5      $ )Nr6   rQ   rg   r  )
co_unicodes   r   r  r    s    $z2Ss7K"Lr   zBINARY_OP_ADD_UNICODE    0 (+)z  0           RESUME_CHECK             0

  1           LOAD_NAME                0 (a)
              LOAD_CONST               0 (0)
              %s
              RETURN_VALUE
za[0]z<list>c                  $   > [        T 0 SS/05      $ )Nr6   r   r  )co_lists   r   r  r    s    $wS1#J"?r   BINARY_SUBSCR_LIST_INTz<dict>c                  &   > [        T 0 SSS005      $ )Nr6   r   1r  )co_dicts   r   r  r    s    $wS1c(O"Dr   BINARY_SUBSCR_DICTcompiler  r   r   )r   binary_op_quickenr   binary_subscr_quickenr  r  r  r  s       @@@@r   test_binary_specializeDisTests.test_binary_specializeo  s/    '62DE""6D"9##C=])]^Wk6:
LM"":"=##C=])]^! &(F3?@""7T":##CAY)YZ&(F3DE""7T":##CAU)UVr   c                    ^ Sn[        SSS5      mU R                  U4S j5        U R                  TSS9nU R                  X!5        g )Nz  0           RESUME_CHECK             0

  1           LOAD_CONST               0 ('a')
              LOAD_ATTR_SLOT           0 (__class__)
              RETURN_VALUE
z'a'.__class__r  r  c                     > [        T 0 0 5      $ r@   r  cos   r   r  4DisTests.test_load_attr_specialize.<locals>.<lambda>      $r2r"2r   Tr  r  )r   load_attr_quickenr   r  s      @r   test_load_attr_specialize"DisTests.test_load_attr_specialize  sM     _b&123""2"5##C;r   c                    ^ Sn[        SSS5      mU R                  U4S j5        U R                  TSS9nU R                  X!5        g )Nz  0           RESUME_CHECK             0

  1           LOAD_NAME                0 (str)
              PUSH_NULL
              LOAD_CONST               0 (1)
              CALL_STR_1               1
              RETURN_VALUE
zstr(1)r  r  c                     > [        T 0 0 5      $ r@   r  r  s   r   r  /DisTests.test_call_specialize.<locals>.<lambda>  r  r   Tr  r  )r   call_quickenr   r  s      @r   test_call_specializeDisTests.test_call_specialize  sL     Xr6*23""2"5##C6r   c                     U R                  [        S5        U R                  [        SS9n[        nU R	                  X5        g )NrX   Tr  )r  r   r   dis_loop_test_quickened_coder   r   s      r   test_loop_quickenDisTests.test_loop_quicken  s<     	)Q'""9t"</##C2r   c                 Z    U R                  [        5      nU R                  U[        5        g r@   )r   r   r   dis_extended_arg_quick_coder  s     r   test_extended_arg_quick DisTests.test_extended_arg_quick  s$    ""#56##C)DEr   c              #     #    S nU(       a  U R                  U5        OUR                  R                  5       Ul        [        [        R
                  " USUS9SS9 H#  nUR                  S:X  d  M  UR                  v   M%     g 7f)Nc                  N    / n [        S5       H  nU R                  U5        M     g )N*   )r;   append)lr   s     r   r  %DisTests.get_cached_values.<locals>.f  s     A2Y r   T)show_cachesr  r  r	   )r  r   replace_unroll_caches_as_Instructionsr   get_instructionsr   argrepr)r   	quickenedr  r  instructions        r   get_cached_valuesDisTests.get_cached_values  su     	 a  ++-AJ9#:N:N4(;
K !!W,!)))	s   A+B1Bc           	         S H  nS H  nU R                  SU< SU< 35         U(       a  SnOSn[        U R                  X5      5      nU H  nU R                  XS5        M     SnSnU R	                  UR                  S5      U5        U R	                  [        U5      U5        S S S 5        M     M     g ! , (       d  f       M  = f)	NFTz
quickened=z, adaptive=z^(\w+: \d+)?$z^(\w+: 0)?$      r  )r   rz   r  assertRegexr   r   r   )r   r  r  patterncachescachetotal_cachesempty_cachess           r   test_show_cachesDisTests.test_show_caches  s    &I)\\ZYL8+">?"2"0!$"8"8"MNF!'((8 "(#%L#$L$$V\\"%5|D$$S[,? @? * '??s   BB66
Cc                    S n[        [        R                  " USS9SS9 H<  nUR                  S:X  a  UR                  S-
  nUR                  n  O!UR                  nM>     U R                  S5        U R                  UR                  WSS9nU R                  UR                  WSS9nU R                  US	W 35        U R                  Xg5        g )
Nc                  "    [        [        5        g r@   )r5   r6   r#   r   r   r  2DisTests.test_show_currinstr_with_cache.<locals>.f  s	    !Hr   Tr  r	   r1   z@Can't find a CACHE entry in the function provided to do the testF)r   r   z--> )
r  r   r  r   offsetfailr   r   r  r   )r   r  inst	op_offsetcache_offsetr   assem_opassem_caches           r   test_show_currinstr_with_cache'DisTests.test_show_currinstr_with_cache  s    	 3$$QD9tMD{{g% KK!O	#{{M IIXY''

)U'S**1::\SX*Y 	d6(#34/r   r   r   T)r   )9r*   r+   r,   r-   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r/  r4  r8  r<  rA  rE  rI  rN  rS  rZ  r^  rb  rf  rk  rt  r{  r  r  r  r.   ADAPTIVE_WARMUP_DELAYr  r   r   r  r  r  r  r  r  r  r  r  r0   r#   r   r   r   r     s   G!8	H<
JF
9,L;=9@9C=OJ0KE,HO=<4
6
682<H	7/ 8- 3   G  G
 #W  #WJ <  < 7  7 3  3 F F*  @ @  0 0r   r   c                       \ rS rSrSS jrSrg)DisWithFileTestsi  c                     [         R                  " 5       nU(       a)  [        R                  " U4SU0UD6  UR	                  5       $ [        R                  " X4SU0UD6  UR	                  5       $ )Nfile)r   r   r   r   r   r   s         r   r    DisWithFileTests.get_disassembly  sZ    GGD0v00    OOD?f??  r   r#   Nr  r*   r+   r,   r-   r   r0   r#   r   r   r  r    s    !r   r  z0: Nonez60: 'Formatted details of methods, functions, or code.'zName:              code_info
Filename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS
Constants:
   zN
Names:
   0: _format_code_info
   1: _get_code_object
Variable names:
   0: xT)r   c         	   /   V   ^ ^^^^^^^
#    U4U UUUU
UUU4S jjm
T TTTTUTTT
4	v   g 7f)Nc                 ,   > [        TTTTTU TTT5	        g r@   r4   )	rR   r6   rQ   r]   r   r  r   rb   rw   s	    r   r  tricky.<locals>.f*  s    aAq!Q1a(r   r#   )r6   rQ   r   rb   rw   rR   r]   r   argskwdsr  s   ````` ``  @r   trickyr  (  s,      ) )
Q1aAq!
##s   )a  Name:              tricky
Filename:          (.*)
Argument count:    5
Positional-only arguments: 2
Kw-only arguments: 3
Number of locals:  10
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, VARARGS, VARKEYWORDS, GENERATOR
Constants:
   0: None
   1: <code object f at (.*), file "(.*)", line (.*)>
Variable names:
   0: a
   1: b
   2: x
   3: y
   4: z
   5: c
   6: d
   7: e
   8: args
   9: kwds
Cell variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]aq  Filename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, NESTED
Constants:
   0: None
Names:
   0: print
Variable names:
   0: c
Free variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]zName:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
Names:
   0: xzName:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
   1: None
Names:
   0: xzName:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 0
   1: 1
Names:
   0: xc                     #    SI S h  vN   [           S h  vN n M   N N
 [         IS h  vN  nS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7fr   )rQ   rR   )r6   r]   s     r   	async_defr    s3     
GGad 1qAqqqqqqs]   A
A" "A"A0AAAAAAAAAa/  Name:              async_def
Filename:          (.*)
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  2
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, COROUTINE
Constants:
   0: None
   1: 1
Names:
   0: b
   1: c
Variable names:
   0: a
   1: dc                   n    \ rS rSr\R
                  \4\\4\	\
4\\4\\4\\4\\4/rS rS rS rS rSrg)CodeInfoTestsi  c                     SU l         U R                   H+  u  pU R                  [        R                  " U5      U5        M-     g Nr  )r   
test_pairsr  r   	code_info)r   r   r   s      r   test_code_infoCodeInfoTests.test_code_info  s2    ??KAS]]1-x8 +r   c                    SU l         U R                   H  u  p[        5        n[        R                  " U5        S S S 5        U R                  WR                  5       US-   5        [        R                  " 5       n[        R                  " XS9  U R                  UR                  5       U5        M     g ! , (       d  f       N= f)Nr  r2   r  )	r   r
  r   r   	show_coder  r   r   r   )r   r   r   r   s       r   test_show_codeCodeInfoTests.test_show_code  s    ??KA "fa  #V__.>[[]FMM!)V__.9 +""s   B33
C	c                 ^    U R                  [        [        R                  [	        5       5        g r@   )rr  r~  r   r  r  r   s    r   test_code_info_object#CodeInfoTests.test_code_info_object  s    )S]]FH=r   c                 P    U R                  [        R                  " S5      S5        g )Nr   0x0)r   r   pretty_flagsr   s    r   test_pretty_flags_no_flags(CodeInfoTests.test_pretty_flags_no_flags  s    ))!,e4r   r  N)r*   r+   r,   r-   r   r  code_info_code_infor  code_info_trickyco_tricky_nested_fcode_info_tricky_nested_fr'  code_info_expr_strr)  code_info_simple_stmt_strr-  code_info_compound_stmt_strr  code_info_async_defr
  r  r  r  r  r0   r#   r   r   r  r    s`    
}})* 45#$1256%&J9
:>5r   r  c           	      >   ^ ^ SU U4S jjn[        T TSS/ 0 S5        U$ )Nc                 >   >^ ^ SUUU U4S jjn[        TTT T5        U$ )Nc                 $   > [        TTTTX5        g r@   r4   )r   r  r6   rQ   rR   r]   s     r   innerouter.<locals>.f.<locals>.inner  s    !Q1a#r   rU      r4   )rR   r]   r&  r6   rQ   s   `` r   r  outer.<locals>.f  s     	$ 	$aAqr   r  r   Hello world!r>   rX   r4   )r6   rQ   r  s   `` r   outerr-    s(     
 
!QAr2~.Hr   c                     [        S5       H  n [        U 5        U S:  a  M  U S:  d  M    O   [        S5        W (       a(  [        U 5        U S-  n U S:  a  M  U S:  a  OU (       a  M(  [        S5         SS-    U  n[        S5        S S S 5        [        S
5        g ! , (       d  f       N= f! [         a    [        S	5         N4f = f! [        S
5        f = f)Nr9   rX   r)  I can haz else clause?r   %Who let lolcatz into this test suite?r   Never reach this%Here we go, here we go, here we go...OK, now we're done)r;   r5   ZeroDivisionError)r   dodgys     r   jumpyr6    s    2Yaq5q5  	&'
a	Qq5q5 ! 	56$	A %$%  	"# Q  7567 	"#sB   4B, 9C ;BC 
B)%C ,CC CC Cc                 *    SU R                  S S9< S3$ )Nz  )	positions,)_replace)instrs    r   _stringify_instructionr<    s     .133r   c                     [         R                  " 5       n [        R                  " U 5         [	        5       nU" 5       nS S S 5        [
        R                  " [        [        S9n[
        R                  " W[        S9n[
        R                  " W[        S9n[
        R                  " [        [        S9nSR                  S/[        [        U5      QSPSPSP[        [        U5      QSPSPSP[        [        U5      QSPSPSP[        [        U5      QSP5      nUR                  [!        [!        ["        5      5      S	5      nUR                  [!        ["        5      S
5      nUR                  [!        [!        [$        5      5      S5      nUR                  [!        [$        5      S5      n['        U5        g ! , (       d  f       GN{= f)N
first_liner2   zexpected_opinfo_outer = []r  zexpected_opinfo_f = [zexpected_opinfo_inner = [zexpected_opinfo_jumpy = [zrepr(code_object_f)code_object_fzrepr(code_object_inner)code_object_inner)r   r   r   r   r-  r   r  expected_outer_lineexpected_f_lineexpected_inner_liner6  expected_jumpy_liner  mapr<  r  reprrA  rB  r5   )ignorer  r&  _instructions_outer_instructions_f_instructions_inner_instructions_jumpyresults           r   _prepare_test_casesrO    s   [[]F		#	#F	+G 
, ..uATU**1IO..uATU..uATUYY'	
')<=	
 	
 		

 $	
 '9	
 	
 	
 (	
 ')<=	
 	
 	
 (	
 ')<=	
 	
F& ^^Dm!457LMF^^D/AF^^D&7!89;TUF^^D!235HIF	&M= 
,	+s   F22
G	MAKE_CELL^   r6   r   r   argargvalr  r  start_offsetstarts_lineline_numberlabelr8  rQ   FRESUME   r  S   r,  z(3, 4)r)  r   U      r9   BUILD_TUPLE4         MAKE_FUNCTION      SET_FUNCTION_ATTRIBUTEj   closure   defaults   
STORE_FASTn   r     LOAD_GLOBAL[   r5   zprint + NULL   r  
LOAD_DEREFT   "   $   z''r   r  (   
BUILD_LIST/   r  	BUILD_MAP0   ,   r+  z'Hello world!'.   CALL5   POP_TOP    8   :   <   COPY_FREE_VARS>   rR   r]   r(  z(5, 6)r&        LOAD_FAST_LOAD_FASTX   )r   r  ze, fRETURN_CONSTg   None)r   r   rS  rT  r  r  rU  rV  rW  rX  r8  
cache_infor;   zrange + NULL)counterr        )indexr   r  )module_keys_versionr   r  )builtin_keys_versionr   r  10r  )func_versionr1          GET_ITER   FOR_ITERH   to L4r   2   r[   6   
COMPARE_OP<zbool(<)POP_JUMP_IF_FALSEa   D   zto L2JUMP_BACKWARDM   to L1@   6F      >zbool(>)POP_JUMP_IF_TRUEd   zto L3L   P   O      r   zto L5V   END_FOR   Z   \   r/  z'I can haz else clause?'f   h   p   LOAD_FAST_CHECKW   TO_BOOLt   )versionr1   r     zto L9|                  	BINARY_OP-      z-=                  zto L7                     zto L8      zto L10            to L6   	   r0  z''Who let lolcatz into this test suite?'            r  0   /            BEFORE_WITH   r5        r1  z'Never reach this'i  i  i  i  i  i  i  i  i  r3  z"OK, now we're done"i(  i*  i2  i4  PUSH_EXC_INFO!   i6  WITH_EXCEPT_STARTi8  i:  iH  zto L12iB  RERAISEiF  
POP_EXCEPTiJ  iL  iN  r   N   zto L11iP  COPY=   iR  iT  iV  iX  r4  iZ  CHECK_EXC_MATCHid  i  zto L13if  ij  il  r2  z''Here we go, here we go, here we go...'iv  ix  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  c                      g r@   r#   r#   r   r   simpler    s    dr   )
r   r   rS  rT  r  r  rU  rV  rW  rX  c                       \ rS rSrS rSrg)InstructionTestCasei  c                    U Vs/ s H  o3R                  S S S9PM     nnU Vs/ s H  oDR                  S S S9PM     nnU R                  X5        g s  snf s  snf )N)r8  r  )r:  r   )r   instrs_1instrs_2instr_1instr_2s        r   assertInstructionsEqual+InstructionTestCase.assertInstructionsEqual  sa    U]^U]'$$t$EU]^U]^U]'$$t$EU]^, _^s
   AAr#   N)r*   r+   r,   r-   r  r0   r#   r   r   r  r    s    -r   r  c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 r\" 5       S
 5       r\" 5       S 5       r\" 5       S 5       rS rS rS rS rS rS rS rS rS rSrU =r$ )InstructionTestsi  c                 .   > [         TU ]  " U6   S U l        g r@   )superr    r   )r   r  	__class__s     r   r    InstructionTests.__init__  s    $r   c                 `    [         R                  " [        5      nU H  n[        U5        M     g r@   )r   r  r  str)r   instrsr;  s      r   test_instruction_str%InstructionTests.test_instruction_str  s#    %%f-EJ r   c                 v    [         R                  " [        5      nU R                  [	        U5      [
        5        g r@   r   r  r  r  rz   expected_opinfo_simpler   actuals     r   test_default_first_line(InstructionTests.test_default_first_line  s'    %%f-$$T&\3IJr   c                 t    [         R                  " [        S S9nU R                  [	        U5      [
        5        g Nr>  r  r  s     r   test_first_line_set_to_None,InstructionTests.test_first_line_set_to_None  s)    %%f>$$T&\3IJr   c                 |    [         R                  " [        [        S9nU R	                  [        U5      [        5        g r  )r   r  r-  rC  r  rz   expected_opinfo_outerr  s     r   
test_outerInstructionTests.test_outer  *    %%e8KL$$T&\3HIr   c                     [        5          [        5       nS S S 5        [        R                  " W[        S9nU R                  [        U5      [        5        g ! , (       d  f       NG= fr  )r   r-  r   r  rD  r  rz   expected_opinfo_f)r   r  r  s      r   test_nestedInstructionTests.test_nested  sD    A %%aOD$$T&\3DE s   A
A%c                     [        5          [        5       " 5       nS S S 5        [        R                  " W[        S9nU R                  [        U5      [        5        g ! , (       d  f       NG= fr  )r   r-  r   r  rE  r  rz   expected_opinfo_inner)r   r&  r  s      r   test_doubly_nested#InstructionTests.test_doubly_nested  sG    GIE %%e8KL$$T&\3HI s   A
A*c                 |    [         R                  " [        [        S9nU R	                  [        U5      [        5        g r  )r   r  r6  rF  r  rz   expected_opinfo_jumpyr  s     r   
test_jumpyInstructionTests.test_jumpy  r  r   c                 Z   [        SSS5      n[        R                  " U5       Vs/ s H  nUR                  PM     nn/ SQnU R	                  X45        U Vs/ s H1  nUR
                  UR                  UR                  UR                  4PM3     nnU R	                  Xd5        g s  snf s  snf )Nzf(
  x, y, z
)<test>r  )	)r   r   r   r   r   r   r   r   r*  )r1   r1   r1   r>   )r1   r1   rU   r)  )r1   r1   r]  r  r   r>   r   r   r+  r+  )	r  r   r  r8  r   lineno
end_lineno
col_offsetend_col_offset)r   coder;  r8  r   posnamed_positionss          r   test_co_positions"InstructionTests.test_co_positions   s    )8V< --d3
3 OO3 	 


 	- !
  ZZ9K9KL  	 
 	3+
"
s   B#8B(c                 *   [        SSS5      nUR                  SS9n[        R                  " U5      nU H  nU R	                  US9   UR
                  nU R                  [        U5      S5        UR                  S:X  a   S S S 5        MU  U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        S S S 5        M     g ! , (       d  f       M  = f)	Nzx, y, zr)  r  r   rF   )r  rX   rY  )r  r  r   r  r   r8  r   r   r   r  r,  r-  r.  r/  )r   r0  code_without_location_tabler  r  r8  s         r   test_co_positions_missing_info/InstructionTests.test_co_positions_missing_info:  s    y(F3&*lll&D#%%&AB!K+6'11	  Y3%%1	 76
 !!)"2"23!!)"6"67!!)"6"67!!)":":; 76 "66s   9D
A,D
D	c                   ^ S nUR                   nUR                  S S S2   n[        R                  S   m[	        U4S jU 5       5      n[        U5      U-
  nS GH  nS GH  nU R                  SU< SU< 35         [        X2R                  5       SS	9 VV	s/ s H  u  pU(       d  UT:w  d  M  U	PM     n
nn	[        [        R                  " X'US
9US9 Vs/ s Hh  nUR                  c  S OUUR                  R                  UR                  R                  UR                  R                  UR                  R                   4PMj     nnU R#                  X5        S S S 5        GM     GM     g s  sn	nf s  snf ! , (       d  f       GM(  = f)Nc              3      #    US-  SU -  U-  -
  nU* [         R                  U5      -
  SU -  -  v   U(       a"  U* [         R                  U5      -   SU -  -  v   g g 7f)Nr1   rX   )cmathsqrtr\   s       r   rootsEInstructionTests.test_co_positions_with_lots_of_caches.<locals>.rootsL  s_     1q1uqy A2

1%!a%00rEJJqM)a!e44 s   AAr1   r	   c              3   ,   >#    U  H	  oT:H  v   M     g 7fr@   r#   )rv   opcache_opcodes     r   rx   IInstructionTests.test_co_positions_with_lots_of_caches.<locals>.<genexpr>T  s     6#B<'#s   r  z	adaptive=z, show_caches=T)strict)r  r  r  )r   r2  r   r   sumr   r   zipco_positionsr  r   r  r8  r,  r-  r.  r/  r   )r   r=  r0  opsr  
non_cachesr  r  r@  r8  rF  r  dis_positionsrA  s                @r   %test_co_positions_with_lots_of_caches6InstructionTests.test_co_positions_with_lots_of_cachesJ  s   	5
 ~~ll3Q3||G,6#66X&
 )K)\\YXK+"@A .16G6G6IRV-W$-WMB&"*< "-W ! $ ,J#J^J^ K'2,4
%,4K !, 5 5 ='1188'11<<'11<<'11@@	D ,4 " 
% $$\A# BA * )$

% BAs1   >E9E.1E.7"E9A/E4
E9.E99
F	c                     [        S[        R                  S   S S SSSSSS S S9nU R                  UR                  UR
                  5        g )NrI   r  r9   Tr   rR  )Instructionr   r   r   rS  oparg)r   r  s     r   test_oparg_alias!InstructionTests.test_oparg_aliasm  sM    !syy7GTZ^*,RbVZhiqu,02 	+*;*;<r   c                     S n[         R                  " 5       n[        R                  " UR                  USS9  U R	                  SUR                  5       5        g )Nc                      U (       a  UnU$ UnU$ r@   r#   )r   rb   rw   r<   s       r   r  7InstructionTests.test_show_caches_with_label.<locals>.ft  s     J Jr   T)r  r  zL1:)r   r   r   r   r   r   )r   r  r   s      r   test_show_caches_with_label,InstructionTests.test_show_caches_with_labels  s=    	 

T:eV__./r   c                 `   [         R                  R                  5        Hs  u  p[        XS S SSSSSS S S9nUR                  nUR
                  nU R                  U5        U R                  U5        U R                  X5        U R                  X%5        Mu     [        R                   H  n[        U[         R                  U   S S SSSSSS S S9nUR                  nUR
                  nU R                  U[        R                  U   5        U R                  [        R                  U   U5        M     g )Nr  r   Tr   rR  )r   r   itemsrM  
baseopname
baseopcodeassertIsNotNoner   r   _specialized_opmap
_all_opmapr   _specializations)r   namer0  r  rX  rY  s         r   test_baseopname_and_baseopcode/InstructionTests.test_baseopname_and_baseopcode  s   ))//+JD%TDQU_ajk34$TU]amqsK$//J$//J  ,  ,T.T. , --D%T#..:NTXaeoq-.QD^_gkw{}K$//J$//JMM$ 7 7
 CDV\\*5zB .r   c                     [        S[        R                  S   S S SSSSSS S S9nU R                  UR                  5        Sn[        S[        R                  S   X"SSSSSS S S9nU R                  S	UR                  5        [        S
[        R                  S
   X"SSSSSS S S9nU R                  SUR                  5        [        S[        R                  S   X"SSSSSS S S9nU R                  SUR                  5        g )NrI   r  r9   Tr   rR  r  rN      r  r  rX   SEND   )rM  r   r   r  jump_targetr   )r   r  deltas      r   test_jump_target!InstructionTests.test_jump_target  s    !syy7GTZ^*,RbVZhiqu,02 	+112!		.@Y_d*,RbVZhiqu,02 	)@)@A "?A[af*,SsX\jksw,02 	.0G0GH "		&8Iu*,RbVZhiqu,02 	-{/F/FGr   c                   ^ S nSnSnSSS.mU4S jnSS	0nX#TXE4nU R                  U" [        R                  S
   S /UQ76 S5        U R                  U" [        R                  S   S	/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        U R                  U" [        R                  S   S/UQ76 S5        g )Nc                 L    [         R                  " U6 nUR                  XU5      $ r@   )r   ArgResolverget_argval_argrepr)r   rN  r  	init_argsarg_resolvers        r   r  /InstructionTests.test_argval_argrepr.<locals>.f  s#    ??I6L226&IIr   r  )r   r   r1   r>   r6   rQ   r   r1   c                    > TU    $ r@   r#   )r   namess    r   r  6InstructionTests.test_argval_argrepr.<locals>.<lambda>  s	    ar   rp  r   r~  )Nr  rK   )r   r  rn  r1   )r6   r6   r  r  )rp  r  r  r>   )r  r  re  )r1   
kwdefaultsr  )r>   z<<CALL_INTRINSIC_1)r1   INTRINSIC_IMPORT_STAR)r   r   r   )r   r  r  	co_constsvarname_from_oparg
labels_mapr  rr  s          @r   test_argval_argrepr$InstructionTests.test_argval_argrepr  sg   	J  	C 0!W
5*<I6<<	2D@4@*M6<<5q@4@(K6<<6ADA:N6<<8"DtDmT6<<5q@4@*M6<<(@A1LtLN_`6<<4a?$?K6<<(:;QFFHder   c                    ^  " S S[         R                  5      mU4S jnSnU R                  U" [        R                  S   SU5      S5        U R                  U" [        R                  S   S	U5      S
5        g )Nc                        \ rS rSrS rS rSrg)@InstructionTests.test_custom_arg_resolver.<locals>.MyArgResolveri  c                     US-   $ r   r#   )r   r@  rS  r  s       r   offset_from_jump_argUInstructionTests.test_custom_arg_resolver.<locals>.MyArgResolver.offset_from_jump_arg  s    Qwr   c                     SU-  $ )Nr1   r#   )r   r  s     r   get_label_for_offsetUInstructionTests.test_custom_arg_resolver.<locals>.MyArgResolver.get_label_for_offset  s    6z!r   r#   N)r*   r+   r,   r-   r  r  r0   r#   r   r   MyArgResolverr~    s    "r   r  c                 2   > T" U6 nUR                  XU5      $ r@   )rl  )r   rN  r  rm  rn  r  s        r   r  4InstructionTests.test_custom_arg_resolver.<locals>.f  s     ()4L226&IIr   r  r  r   )r1   r  SETUP_FINALLYr1   )r>   r  )r   rk  r   r   r   )r   r  r  r  s      @r   test_custom_arg_resolver)InstructionTests.test_custom_arg_resolver  sd    	"COO 	"	J 6<<8!VDlS6<<8!VDlSr   c                 .    [         R                  " U5      $ r@   )r   _get_instructions_bytesr   r0  s     r   r  !InstructionTests.get_instructions  s    **400r   c                 0   [        [        R                  " [        5      5      nU H)  nU R	                  UR
                  UR                  5        M+     S n[        [        R                  S   S[        R                  S   S[        R                  S   S/5      n[        R                  " U5      nU" U R                  U5      5      nU R	                  SUR
                  5        U R	                  S	UR                  5        [        [        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S
   S/5      nU" U R                  U5      5      nU R	                  SUR
                  5        U R	                  S	UR                  5        [        [        R                  S   S[        R                  S   S[        R                  S   S[        R                  S
   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S
   S/5      n[        U R                  U5      5      nU R	                  SUS	   R
                  5        U R	                  S	US	   R                  5        U R	                  SUS   R
                  5        U R	                  SUS   R                  5        g )Nc                 2    [         R                  " S U 5      $ )Nc                     U$ r@   r#   rg   s     r   r  GInstructionTests.test_start_offset.<locals>.last_item.<locals>.<lambda>  s    !r   )	functoolsreduce)iterables    r   	last_item5InstructionTests.test_start_offset.<locals>.last_item  s    ##OX>>r   r   r   rH   r   r  rJ   rX   r1   r	   r]  ra  r)  )rz   r   Bytecoder7   r   r  rU  bytesr   r   _make_labels_mapr  )r   instructionsr  r  r0  ry  jumps          r   test_start_offset"InstructionTests.test_start_offset  s    CLL,-'K[//1I1IJ (	? LL%tLL($LL+,d
 
 ))$/
..t45DKK(D--.LL%tLL($LL($LL($LL+,dLL!4
  ..t45DKK(D--.LL%tLL($LL+,dLL!4LL($LL($LL($LL+,dLL!4

 
 D11$78LO223LO889\!_334LO889r   c                 
   [        [        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S[        R                  S   S/5      n[        U R	                  U5      5      nU R                  SUS   R                  5        U R                  SUS   R                  5        U R                  S	US   R                  5        U R                  S	US   R                  5        U R                  S
US   R                  5        U R                  SUS   R                  5        [        [        R                  " U R                  5      5      n[        X"SS  5       H+  u  p4U R                  UR                  UR                  5        M-     g )Nrn  r   r	   r   r   r|  r1   r9   r`  ra  rj  )r  r   r   rz   r  r   r  
end_offsetr   r   test_cache_offset_and_end_offsetrE  rU  )r   r0  r  prevcurrs        r   r  1InstructionTests.test_cache_offset_and_end_offset  s   LL'LL!4LL!4LL!4LL!4LL%tLL $LL!4LL!4LL!4
  D11$78LO889\!_778\!_99:\!_778\!_99:\!_778 CLL)N)NOPl,<=JDT__d.?.?@ >r   r  )r*   r+   r,   r-   r    r
  r  r  r  r  r"  r&  r   r3  r7  rJ  rO  rT  r_  rg  rz  r  r  r  r  r0   __classcell__r  s   @r   r  r    s    KKJFJJ 4 42 < <  B  BD=
0C*H2f(T 12:hA Ar   r  c                   ^    \ rS rSrS rS rS rS rS rS r	S r
S	 r\" 5       S
 5       rSrg)BytecodeTestsi&  c                    [         [        S5      R                  S[         R                  4 H[  nU R	                  US9   [
        R                  " U5      nU R                  UR                  [        R                  5        S S S 5        M]     U R                  [        [
        R                  [        5       5        g ! , (       d  f       M  = fNr   a=1)obj)r7   r   r    r   r   r   r  assertIsInstancecodeobjtypesCodeTyperr  r~  r  )r   r  rQ   s      r   test_instantiation BytecodeTests.test_instantiation(  s    1r{{;C#&LL%%%aii@ '& <
 	)S\\68<	 '&s   AB99
C	c                 Z   [         [        S5      R                  S[         R                  4 Hj  nU R	                  US9   [        [        R                  " U5      5      n[        [        R                  " U5      5      nU R                  X#5        S S S 5        Ml     g ! , (       d  f       M~  = fr  )
r7   r   r    r   r   rz   r   r  r  r  )r   r  
via_objectvia_generators       r   test_iterationBytecodeTests.test_iteration1  st    1r{{;C#&!#,,s"34
 $S%9%9#%> ?,,ZG '& <&&s   AB
B*	c                 |    [         R                  " [        [        S9nU R	                  [        U5      [        5        g r  )r   r  r-  rC  r  rz   r  r  s     r   test_explicit_first_line&BytecodeTests.test_explicit_first_line8  s(    e0CD$$T&\3HIr   c                    [         R                  " [        5      R                  5       nUR                  5       R	                  S5      S   n[        [        R                  R                  5      nU R                  X5        [         R                  " [        SS9R                  5       nUR                  5       R	                  S5      S   nU R                  US5        g )NrZ   r   i^  r>  350)	r   r  r  strip	partitionr  r   co_firstlinenor   )r   r  r   s      r   test_source_line_in_disassembly-BytecodeTests.test_source_line_in_disassembly<  s    f%))+))#.q1v556*f599;))#.q1'r   c                     SU l         [        R                   H;  u  p[        R                  " U5      nU R                  UR                  5       U5        M=     g r	  )r   r  r
  r   r  r  info)r   r   r   rQ   s       r   	test_infoBytecodeTests.test_infoG  s>    (33KAQAQVVXx0 4r   c                     [         R                  " [        5      R                  5       nU R                  U[        5        g r@   )r   r  r7   r   r   r  s     r   test_disassembledBytecodeTests.test_disassembledM  s)    b!%%'##FE2r   c                     [        5       n[        R                  R                  U5      nUR                  (       a  UR                  oR                  (       a  M  U R                  UR                  UR                  5        g r@   )r   r   r  from_tracebackr   r   current_offsetry  r   r   rQ   s      r   test_from_traceback!BytecodeTests.test_from_tracebackQ  sL    XLL''+jjrzz"jjj))2;;7r   c                     S U l         [        5       n[        R                  R	                  U5      nU R                  UR                  5       [        5        g r@   )r   r   r   r  r  r   dis_tracebackr  s      r   test_from_traceback_dis%BytecodeTests.test_from_traceback_disX  s:    XLL''+-0r   c                     [         R                  " S5      n[        XR                  R	                  5       5       H  u  p#M     g )Nr  )r   r  rE  r  rF  )r   bytecoder;  r8  s       r   test_bytecode_co_positions(BytecodeTests.test_bytecode_co_positions^  s1    <<& #H.>.>.K.K.M NE9 Nr   r  N)r*   r+   r,   r-   r  r  r  r  r  r  r  r  r   r  r0   r#   r   r   r  r  &  sC    =HJ	(1381 0 0r   r  c                   &    \ rS rSrS rS rS rSrg)TestBytecodeTestCaseid  c                     [        SSS5      nU R                  USS5        U R                  US5        U R                  USS5        g )Na = 1<string>r  rK   r   	LOAD_NAMEr6   r  assertInBytecodeassertNotInBytecoder  s     r   *test_assert_not_in_with_op_not_in_bytecode?TestBytecodeTestCase.test_assert_not_in_with_op_not_in_bytecodee  sD    w
F3dL!4  {3  {C8r   c                     [        SSS5      nU R                  US5        U R                  USS5        U R                  USS5        g )Nr  r  r  rK   r   r1   r  r  s     r   +test_assert_not_in_with_arg_not_in_bytecode@TestBytecodeTestCase.test_assert_not_in_with_arg_not_in_bytecodek  sD    w
F3dL1dL!4  |Q7r   c                     [        SSS5      nU R                  [        5         U R                  USS5        S S S 5        g ! , (       d  f       g = f)Nr  r  r  rK   r   )r  rr  AssertionErrorr  r  s     r   'test_assert_not_in_with_arg_in_bytecode<TestBytecodeTestCase.test_assert_not_in_with_arg_in_bytecodeq  s<    w
F3~.$$T<; /..s   A  
Ar#   N)r*   r+   r,   r-   r  r  r  r0   r#   r   r   r  r  d  s    98<r   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestFinderMethodsiv  c                 .   / SQnU Hy  u  p#U R                  US9   [        USS5      n[        [        R                  " U5      5      nU R                  [        U5      S5        U R                  US   U5        S S S 5        M{     g ! , (       d  f       M  = f)N))zimport a.b.c)za.b.cr   N)zfrom a.b import ca.br   rV   )zfrom a.b import c as dr  )zfrom a.b import *)r  r   *)zfrom ...a.b import c as d)r  r>   rV   )z from ..a.b import c as d, e as f)r  r1   )rR   r   )zfrom ..a.b import *)r  r1   r  srcr  r  r   r   )r   r  tupler   _find_importsr   r   r   casesr  r   r0  r<   s         r   test__find_imports$TestFinderMethods.test__find_importsw  s    
 #MC#&sJ7C--d34  S1-  Q2	 '& #&&s   AB
B	c                     / SQnU HZ  u  p#U R                  US9   [        USS5      n[        [        R                  " U5      5      nU R                  XS5        S S S 5        M\     g ! , (       d  f       Mn  = f)N))zx+yr#   )zx=y=1r{   )zx+=yr   )zglobal x
x=y=1r{   )zglobal x
z=x)rw   r  r  r  )r   r  r  r   _find_store_namesr   r  s         r   test__find_store_names(TestFinderMethods.test__find_store_names  se    
 #MC#&sJ7C11$78  / '& #&&s   >A&&
A5	c                    [         R                  " [        R                  R                  5      n[
         Vs/ s H"  nUR                  (       d  M  UR                  PM$     nnU R                  [        U5      [        U5      5        g s  snf r@   )
r   
findlabelsr6  r   r2  r%  is_jump_targetr  r   sorted)r   labelsr;  jumpss       r   test_findlabels!TestFinderMethods.test_findlabels  sj     6 67 /
.## ELL. 	 
 	7
s   BBc                     S nUR                   n[        R                  " U5       Vs/ s H  o3S   PM	     nnU R                  USS/5        g s  snf )Nc                      g r@   r#   r#   r   r   r   3TestFinderMethods.test_findlinestarts.<locals>.func  s    r   r   r1   )r   r   findlinestartsr   )r   r   r0  	linestartoffsetss        r   test_findlinestarts%TestFinderMethods.test_findlinestarts  sO    	 }}141C1CD1IJ1IIQ<1IJ1a&) Ks   Ar#   N)	r*   r+   r,   r-   r  r  r  r
  r0   r#   r   r   r  r  v  s    3"08*r   r  c                   D   ^  \ rS rSrSU 4S jjrS rS rS rS rSr	U =r
$ )	TestDisTracebacki  c                 |   >  [         ? [         ?[        TU ]  5       $ ! [         a     N!f = f! [         a     N*f = fr@   )rn  ro  rp  rq  r  setUp)r   r  s    r   r  TestDisTraceback.setUp  sM    		" w}  		  		s    . 
++
;;c                     [         R                  " 5       n[        R                  " U5         [        R
                  " U5        S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = fr@   r   r   r   r   r   distbr   r   r   r   s      r   r    TestDisTraceback.get_disassembly  sN    ''/IIbM 0   0/  s   A
A8c                     U R                  [        5         [        R                  " 5         S S S 5        g ! , (       d  f       g = fr@   )rr  rs  r   r  r   s    r   test_distb_empty!TestDisTraceback.test_distb_empty  s%    |,IIK -,,s	   5
Ac                     S U l         [        5       nU[        l        U R	                  U R                  S 5      [        5        g r@   )r   r   rn  rq  r   r   r  r   r   s     r   test_distb_last_traceback*TestDisTraceback.test_distb_last_traceback  s3    X##D$8$8$>Nr   c                 p    S U l         [        5       nU R                  U R                  U5      [        5        g r@   )r   r   r   r   r  r  s     r   test_distb_explicit_arg(TestDisTraceback.test_distb_explicit_arg  s+    X##D$8$8$<mLr   r  )returnN)r*   r+   r,   r-   r  r   r  r  r  r0   r  r  s   @r   r  r    s$    	!OM Mr   r  c                       \ rS rSrS rSrg)TestDisTracebackWithFilei  c                     [         R                  " 5       n[        R                  " U5         [        R
                  " XS9  S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = f)Nr  r  r  s      r   r   (TestDisTracebackWithFile.get_disassembly  sO    ''/IIb& 0   0/  s   A
A6r#   Nr  r#   r   r   r"  r"    s    !r   r"  c              #   h  #    U  H  nUv   U(       d  M  UR                   nUR                  =(       d    S Hs  u  pEn[        U5       H^  nUS-  nUS:X  a*  U S[        R	                  U[
        R                  5       3nOSn[        S[        SS XUSS S UR                  5      v   M`     Mu     M     g 7f)Nr#   r1   r   z: r  r	   F)
r  r  r;   r   
from_bytesrn  	byteorderrM  r	   r8  )	r	  r  r;  r  r^  sizedatar   r  s	            r   r  r    s      !&!1!1!7R!7D4[! 6!%bcmm)L(MNG G!'5!T7F"'tU__F F ! "8 s   B0B2c                   N    \ rS rSrS r\S 5       rS rS rS r	S r
S rS	 rS
rg)
TestDisCLIi  c                     [         R                  " 5       U l        U R                  [        R
                  U R                  5        g r@   )tempfilemktempfilename
addCleanupr   unlinkr   s    r   r  TestDisCLI.setUp  s(     )	(($--8r   c                 J    [         R                  " U 5      R                  5       $ r@   )textwrapdedentr  )strings    r   text_normalizeTestDisCLI.text_normalize  s     v&,,..r   c                     [        U R                  S5       nUR                  U R                  U5      5        S S S 5        g ! , (       d  f       g = f)Nw)openr/  writer7  )r   contentfps      r   
set_sourceTestDisCLI.set_source  s5    $--%HHT((12 &%%s   !A
Ac                    [         R                  " 5       n[        R                  " U5         [        R
                  " / UQU R                  PS9  S S S 5        U R                  UR                  5       5      $ ! , (       d  f       N-= f)Nr  )	r   r   r   r   r   mainr/  r7  r   )r   flagsr   s      r   
invoke_disTestDisCLI.invoke_dis	  s\    ''/HH1E14==12 0""6??#455 0/s   #A66
Bc                    U R                  XS9   U R                  U5        U R                  " U6 nU R                  U5      nU R	                  UR                  5       UR                  5       5        S S S 5        g ! , (       d  f       g = f)N)sourcerD  )r   r?  rE  r7  assertListEqual
splitlines)r   rH  expectrD  r<   s        r   check_outputTestDisCLI.check_output		  sf    \\\5OOF#//5)C((0F  !163D3D3FG	 655s   A A99
Bc           	      T   SS/nU R                  S5        [        S[        U5      S-   5       Hb  n[        R                  " XS9 HG  n[        R
                  " U6  H-  nU R                  USS  S9   U R                  " U6 nS S S 5        M/     MI     Md     U R                  [        5         [        R                  " [        R                  " 5       5         U R                  S5      nS S S 5        S S S 5        g ! , (       d  f       M  = f! , (       d  f       N)= f! , (       d  f       g = f)Nz-Cz--show-cachesz-Oz--show-offsetszS
            def f():
                print(x)
                return None
        r   )rrB  z	--unknown)r?  r;   r   	itertoolscombinationsproductr   rE  rr  
SystemExitr   redirect_stderrr   r   )r   
base_flagsrQ  choicesr  r   s         r   test_invocationTestDisCLI.test_invocation	  s     $$


 	  	 q#j/A-.A$11*B%--w7D484 OOT2 54 8 C / z*++BKKM:OOK0 ; +* 54
 ;: +*s0   0C6	)*DD%D6
D
D	D
D'c                 B    SnSnS H  nU R                  XU5        M     g )Nzprint()a  
            0           RESUME                   0

            1           LOAD_NAME                0 (print)
                        PUSH_NULL
                        CALL                     0
                        CACHE                    0 (counter: 0)
                        CACHE                    0 (func_version: 0)
                        CACHE                    0
                        POP_TOP
                        RETURN_CONST             0 (None)
        rO  rL  r   rH  rK  flags       r   test_show_cacheTestDisCLI.test_show_cache(	  s*     ,Dfd3 ,r   c                 B    SnSnS H  nU R                  XU5        M     g )Npassz
            0          0       RESUME                   0

            1          2       RETURN_CONST             0 (None)
        rP  r\  r]  s       r   test_show_offsetsTestDisCLI.test_show_offsets:	  s*    
 -Dfd3 -r   )r/  N)r*   r+   r,   r-   r  r.   r7  r?  rE  rL  rY  r_  rc  r0   r#   r   r   r+  r+    s:    9 / /36H104$	4r   r+  __main__)r   )Trp  )F)r   r   r  r   rR  r   r   rn  r-  r4  r  unittesttest.supportr   r   r   r   r   test.support.bytecode_helperr   r   r	   r   rw  rx  TRACEBACK_CODEr   r    r   r  r;  r?  r(   rH  r$   rD  r*   r7  r7   r   r   r3  r=   r   rA   __file__r   rC   r  r   r  r  r  rH   r  r  rS   rW   r  r  r  r  r   r!  r#  r'  r(  r)  r*  r+  r,  r-  r.  r  r^   r]  rc   ra  re   re  rh   rk   ri  rj  rm   ro   rr   r~   r  r  r  r   r  r   r  r   r  r  TestCaser   r   r  r  __doc__code_info_constsr  r.   r  r  __func__rw  r  r  r  r   r!  r  r"  r  r-  r6  rC  _line_offsetrA  rD  rB  rE  rF  r<  rO  rM  rH  r  r  r!  r%  r  r  r  r  r  r  r  r  r"  r  r+  rC  r#   r   r   <module>rp     s>8    
  	   	 
    % % : 			' ""))
 
	 
{{**BKK,@,@,O,ORS,SU	V  	 
uu~~$$beenn&C&Ca&GI	J  
uu~~$$beenn&C&Ca&GIJ $ 
{{2	uu~~)	uu~~*		,		 
{{!!	{{!!A%	{{!!A%'	'	 
{{!!	{{!!A%	{{!!A%'' 
$ ((((1,((1,((1,((1,((1,.%.4  	
 ))))A-))A-))A-))A-//.	
 %%--7-C  ^$dUd^$d\"d^$d  



LL #	 	 ""11""11A577	     	     >   .\ $$$$q($$q($$q($$q($$q($$q($$q(*]5*n&( ''):):)I)IA)MN)O,

(P ~~$$~~$$q(~~$$q(~~$$q(~~$$q(~~$$q(~~$$q(	Q/	b

P` ))))A-))A-))A-))A-))A-))A-	aW	t6 ****Q.**Q.**Q.**Q.		7 	D4   //  //!3  //!3  //!3  //!3		5	 B 
{{!!	{{!!A%	{{!!A%	{{!!A%	*$ 	{{!!A%	{{!!A%	{{!!A%	{{!!A%%64 	{{!!A%	{{!!A%5@	  ((((1,((1,. .  * ((((1,((1,((1,/+ / 4	 !!00!!00147
7   ((## (0}0{ }0@	!x 	! ==  O
   $ $ $ $
 @ __--77:  ,    
 &5H%% 5F$<  ~~,,q0((+..=!++A. '66E  4
 H oo [3TUdesw  FJ  RV  bf  g[3TUdesx  GK  SW  cg  hXcqBq_`nr  AB  JN  Z^  _\"!FH]^mn  }A  OP  X\  hl  m[3TUdesx  GH  PT  `d  e[3TVeguz  IJ  RV  bf  g]21QSUdfty  HI  QU  ae  f\"!MSWXeSfoq  AC  QV  de  mq  }A  B_RT$PR[]ln  }B  PQ  Y]  im  n-cqT]fhwy  HM  [\  dh  tx  y-cqT^gixz  IN  \]  ei  uy  z\#1S#VXgiw|  KL  TX  dh  i]21Wnegvx  GK  YZ  bf  rv  w\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h\"!BUWfhv{  JK  SW  cg  h\"!AsSUdfty  HI  QU  ae  f\"!ArRTcesx  GH  PT  `d  e[1bQSbdrw  FG  OS  _c  d\"!NTdmo  A  OT  bc  ko  {  @VBAaB]_mr  AB  JN  Z^  _YrtD"UWfhv{  JK  SW  cg  h[3TVeguy  HI  QU  ae  f^BDrZ\km  |A  OP  X\  hl  m1 8 %ba2VWfguy  HL  TX  dh  i[3TUdesx  GK  SW  cg  h[3TUdesx  GK  SW  cg  hXcqBq_`nr  AB  JN  Z^  _\"!FH]^mn  }A  OP  X\  hl  m[3TVeguz  IJ  RV  bf  g[3TVeguz  IJ  RV  bf  g[3TVeguz  IJ  RV  bf  g[3TVeguz  IJ  RV  bf  g]21QSUdfty  HI  QU  ae  f\"!<MW[\mWnwy  IK  Y^  lm  uy  EI  J_RT$PR[]ln  }B  PQ  Y]  im  n-cqT]fhwy  HM  [\  dh  tx  y-cqT^gixz  IN  \]  ei  uy  z\#1Wg^`oq  @E  ST  \`  lp  q]21Wnegvx  GK  YZ  bf  rv  w\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  hVBAaB]_mr  AB  JN  Z^  _YrtD"UWfhv{  JK  SW  cg  h[7G\^mo  ~B  PQ  Y]  im  n^BDrZ\km  |A  OP  X\  hl  m1 8 %ba2VWfguy  HL  TX  dh  iXcqBq_`nr  AB  JN  Z^  _]21Wnefuv  EI  WX  `d  pt  u\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h\"!CUWfhv{  JK  SW  cg  h*21ZY_hjy{  JO  ]^  fj  vz  {VBAaB]_mr  AB  JN  Z^  _YrtD"UWfhv{  JK  SW  cg  h^CQtV\^mo  ~C  QR  Z^  jn  o vXcqBq_`nr  AB  JN  Z^  ko  pv]21Wnefuv  EI  WX  `d  pt  AL  Mv \"!BUWfhv{  JK  SW  cg  tx  yv VBAaB]_mr  AB  JN  Z^  lG  Iq  kr  s	v
 ZT2VXgiw|  KL  TX  dh  uy  zv Z2wWYhjx}  LM  UV  bf  tO  sP  Qv \#1S#VXgiw|  KL  TX  dh  uy  zv ]21Wnegvx  GK  YZ  bf  rv  CN  Ov [3TVeguz  IJ  RV  bf  sw  xv VBAaB]_mr  AB  JN  Z^  lG  Iq  kr  sv YrtD"UWfhv{  JK  SW  cg  tx  yv [3TVeguy  HI  QU  ae  rv  wv \"!AsSUdfty  HI  QU  ae  rv  wv \""S)\^mo  ~C  QR  Z^  jn  |W  {X  Yv (2w_apr  AF  TU  ]a  mq  Z  ~[  \v  _RRG\^mo  ~B  PQ  Y]  im  {V  zW  X!v" [3TVeguy  HI  QR  ^b  os  t#v$ \"!AsSUdfty  HI  QU  ae  rv  w%v& \"#c9]_np  D  RS  [_  ko  }X  |Y  Z'v( '2w_apr  AF  TU  ]a  mq  Z  ~[  \)v* _RRG\^mo  ~C  QR  Z^  jn  |W  {X  Y+v, YrtD"UWfhvz  IJ  RS  _c  pt  u-v. ^BBsG\^mo  ~C  QR  Z^  jn  {  @/v0 YrtD"UWfhvz  IJ  RS  _c  pt  u1v2 YrtD"UWfhv{  JK  SW  cg  tx  y3v4 ]21Wnegvx  GK  Y[  cg  sw  DO  P5v6 \"!<T^x  BE  TW  ej  xz  BF  RV  cg  h7v8 VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  v9v: YrtD"UXgjx}  LN  VZ  fj  w{  |;v< &rqcZ]lo  ~B  PR  Z[  gk  x|  }=v> YrtD"UXgjx}  LN  VZ  fj  xS  Ux  wy  z?v@ (CQXadsv  EJ  XZ  bf  rv  D_  C`  aAvB ]21Wnehwz  IM  []  ef  rv  CN  OCvD [3TWfiw|  KM  UY  ei  vz  {EvF VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vGvH YrtD"UXgjx}  LN  VZ  fj  w{  |IvJ [3TWfiw{  JL  TX  dh  uy  zKvL \"!AsSVehv{  JL  TX  dh  uy  zMvN [BUXgjx}  LN  VZ  fj  xS  wT  UOvP \#1S#VYhky~  MO  W[  gk  x|  }QvR [3TWfiw{  JL  TX  dh  uy  zSvT \"!AsSVehv{  JL  TX  dh  uy  zUvV \"#c9]`or  AF  TV  ^b  nr  @[  \  ]WvX (3PW`cru  DI  WY  ae  qu  C^  B_  `YvZ _RRW]`or  AE  SU  ]a  mq  Z  ~[  \[v\ [3TWfiw{  JL  TU  ae  rv  w]v^ \"!AsSVehv{  JL  TX  dh  uy  z_v` \""S)\_nq  @E  SU  ]a  mq  Z  ~[  \avb (3PW`cru  DI  WY  ae  qu  C^  B_  `cvd ^BBsH]`or  AE  SU  ]a  mq  ~B  Cevf [3TWfiw{  JL  TU  ae  rv  wgvh YrtD"UXgjx}  LN  VZ  fj  xS  Ux  wy  zivj (3PW`cru  DI  WY  ae  qu  C^  B_  `kvl _RRW]`or  AF  TV  ^b  nr  @[  \  ]mvn ]21Wnehwz  IM  []  ef  rv  CN  Oovp \"!<c  nW  `c  ru  CH  VX  `d  pt  AE  Fqvr VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vsvt YrtD"UXgjx}  LN  VZ  fj  w{  |uvv U24bQTcftx  GI  QS  _c  pt  uwvx \"!AsSVehvz  IK  SW  cg  tx  yyvz \"!AsSVehv{  JL  TX  dh  uy  z{v| [BTWfiw|  KM  UY  ei  wR  vS  T}v~ YrtD"UXgjx}  LN  VZ  fj  w{  |v@ [3TWfiw{  JL  TX  dh  uy  zAvB ]1$tRX[jm  |A  OQ  Y]  im  z~  CvD \#1Wg^aps  BG  UW  _c  os  @D  EEvF ]21Wnehwz  IM  []  ei  uy  FQ  RGvH \"!<NXlux  HK  Y^  ln  vz  FJ  W[  \IvJ VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vKvL YrtD"UXgjx}  LN  VZ  fj  w{  |MvN \"!D&Y\kn  }A  OQ  Y]  im  z~  OvP \"!D&Y\kn  }B  PR  Z^  jn  {  @QvR \"!D&Y\kn  }B  PR  Z^  jn  {  @SvT VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vUvV YrtD"UXgjx}  LN  VZ  fj  w{  |WvX ]21Wnehwz  IM  []  eg  sw  DO  PYvZ \""=Q[r{~  NQ  _d  rt  |@  LP  ]a  b[v\ VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  v]v^ YrtD"UXgjx}  LN  VZ  fj  w{  |_v` ^CQtV\_nq  @E  SU  ]a  mq  ~B  Cavb _RT$PR[^mp  C  QS  [_  ko  |@  Acvd (dTV_bqt  CH  VX  `d  pt  AE  Fevf YrtD"UXgjx}  LN  VZ  fj  xS  Ux  wy  zgvh '3PXadsv  EJ  XZ  bf  rv  D_  C`  aivj Ys!RPSbesx  GI  QU  ae  rv  wkvl YrtD"UXgjx}  LN  VX  dh  uy  zmvn \"$tRX[jm  |A  OQ  Y]  im  z~  ovp YrtD"UXgjx}  LN  VZ  fj  w{  |qvr YrtD"UXgjx}  LN  VZ  fj  w{  |svt 1""SZbkn  ~A  OT  bd  lp  |@  MQ  Ruvv VBAaC^aos  BF  NR  ^b  os  twvx \"$tRX[jm  |A  OS  [_  ko  |@  Ayvz Ys!RPSbesx  GK  SW  cg  tx  y{v| _RT$PR[^mp  D  RV  ^b  nr  C  D}v~ ]21=PZmvy  IL  Z^  ln  vz  FJ  Wb  cv@ &qd4QS\_nq  @E  SU  ]a  mq  ~B  CAvB (CQYbetw  FK  Y[  cg  sw  E`  Da  bCvD YrtD"UXgjx}  LN  VZ  fj  w{  |EvF ]21Wnehwz  IM  []  ei  uy  FQ  RGvH \"!<c  nW  `c  ru  CH  VX  `d  pt  AE  FIvJ VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vKvL YrtD"UXgjx}  LN  VZ  fj  w{  |MvN \"$tRX[jm  |A  OQ  Y]  im  z~  OvP 1""SZbkn  ~A  OT  bd  lp  |@  MQ  RQvR Ys!RPSbesw  FH  PR  ^b  os  tSvT VBAaC^aos  BF  NR  ^b  os  tUvV \"$tRX[jm  |A  OS  [_  ko  |@  AWvX Ys!RPSbesx  GK  SW  cg  tx  yYvZ _RT$PR[^mp  D  RV  ^b  nr  C  D[v\ ]21Wnehwz  IM  []  ei  uy  FQ  R]v^ \""=Q[r{~  NQ  _d  rt  |@  LP  ]a  b_v` VBAaC^aot  CE  MQ  ]a  oJ  Lt  nu  vavb YrtD"UXgjx}  LN  VZ  fj  w{  |cvd Ys!RPSbesx  GI  QU  ae  rv  wevf VBAaC^aos  BF  NR  ^b  os  tgvh \"$tRX[jm  |A  OS  [_  ko  |@  Aivj Ys!RPSbesx  GK  SW  cg  tx  ykv r XcqBq_`nr  AG  AP  AP  A_  A_  gk  w{  |^CQtV\]lm  |A  OU  O^  O^  Om  Om  uy  z -* -iA* iA\	<0' <0|<+ <$0*)) 0*f"M{ "MJ!/ !F4S4"" S4l zMMO r   