+
    ÖÍi@  ã                   óú  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHt ^RIHt  ! R R]P                  4      t ! R R4      t ! R	 R
4      t ! R R]P                  4      t ! R R]P                  4      t ! R R4      t ! R R]P                  4      t ! R R4      t ! R R]P                  4      t ! R R]P                  4      t]P4                  P6                   ! R R]P                  4      4       t ! R R4      t ! R R]P                  4      t ! R R ]P                  4      t ! R! R"4      t  ! R# R$4      t!]P4                  P6                   ! R% R&]P                  4      4       t"R# )'é    N)Úcrackfortran)ÚmarkinnerspacesÚnameargspattern)Úutilc                   óR   a € ] tR t^t o ]P
                  ! RRRR4      .tR tRtV t	R# )ÚTestNoSpaceÚtestsÚsrcr   z	gh15035.fc                óì  € \         P                  ! . RO\         P                  R7      p\         P                  ! . RO\         P                  R7      pV P                  P	                  V4       \         P
                  ! W^,           4      '       g   Q hV P                  P                  W!.4       \         P
                  ! W^,           4      '       g   Q hV P                  P                  R4      R8X  g   Q hR# )é   )ÚdtypeÚ23ó   2N)r   é   é   )ÚnpÚarrayÚfloat64ÚmoduleÚsubbÚallcloseÚsubcÚt0)ÚselfÚkÚws   &  ÚD/usr/lib/python3/dist-packages/numpy/f2py/tests/test_crackfortran.pyÚtest_moduleÚTestNoSpace.test_module   s�   € Ü�HŠH’Y¤b§j¡jÔ1ˆÜ�HŠH’Y¤b§j¡jÔ1ˆØ�‰×Ñ˜ÔÜ�{Š{˜1 !�e×$Ò$Ð$Ð$Ø�‰×Ñ˜!˜Ô Ü�{Š{˜1 !�e×$Ò$Ð$Ð$Ø�{‰{�~‰~˜dÓ# tÔ+Ð+Ò+ó    © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚgetpathÚsourcesr   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s(   ø‡ € ð �|Š|˜G U¨N¸KÓHÐI€G÷,ð ,r    r   c                   ó8   a € ] tR t^t o R tR tR tR tRtV t	R# )ÚTestPublicPrivatec                ó  € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          pRVR,          R,          R,          9   g   Q hRVR,          R,          R,          9  g   Q hRVR,          R	,          R,          9   g   Q hRVR,          R	,          R,          9  g   Q hRVR,          R
,          R,          9  g   Q hRVR,          R
,          R,          9   g   Q hR# )r	   r
   r   zprivatemod.f90ÚprivateÚvarsÚaÚattrspecÚpublicÚbÚsetaN©r   r&   r   ÚstrÚlen)r   ÚfpathÚmods   &  r   Útest_defaultPrivateÚ%TestPublicPrivate.test_defaultPrivate    sî   € Ü—’˜W e¨^Ð=MÓNˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø�!�fˆØ˜C �K¨Õ,¨ZÕ8Ô8Ð8Ð8Ø˜s 6�{¨3Õ/°
Õ;Ô;Ð;Ð;Ø˜C �K¨Õ,¨ZÕ8Ô8Ð8Ð8Ø˜s 6�{¨3Õ/°
Õ;Ô;Ð;Ð;Ø  F¥¨FÕ 3°JÕ ?Ô?Ð?Ð?Ø˜3˜v�; vÕ.¨zÕ:Ô:Ð:Ò:r    c                óž  € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          pRVR,          R,          R,          9   g   Q hRVR,          R,          R,          9  g   Q hRVR,          R	,          R,          9  g   Q hRVR,          R	,          R,          9   g   Q hR
# )r	   r
   r   zpublicmod.f90r/   r0   r1   r2   r3   r5   Nr6   ©r   Útmp_pathr9   r:   s   &&  r   Útest_defaultPublicÚ$TestPublicPrivate.test_defaultPublic,   sµ   € Ü—’˜W e¨^¸_ÓMˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø�!�fˆØ˜C �K¨Õ,¨ZÕ8Ô8Ð8Ð8Ø˜s 6�{¨3Õ/°
Õ;Ô;Ð;Ð;Ø  F¥¨FÕ 3°JÕ ?Ô?Ð?Ð?Ø˜3˜v�; vÕ.¨zÕ:Ô:Ð:Ò:r    c                ó†  € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          R,          p\        VR,          R,          4      RR08X  g   Q h\        VR	,          R,          4      R
R08X  g   Q h\        VR,          R,          4      R
08X  g   Q hR# )r	   r
   r   zaccesstype.f90r0   r1   r2   r/   zbind(c)Úb_r3   ÚcN)r   r&   r   r7   r8   Úset)r   r?   r9   r:   Útts   &&   r   Útest_access_typeÚ"TestPublicPrivate.test_access_type6   sª   € Ü—’˜W e¨^Ð=MÓNˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø��V�F�^ˆÜ�2�c•7˜:Õ&Ó'¨I°yÐ+AÔAÐAÐAÜ�2�d•8˜JÕ'Ó(¨X°yÐ,AÔAÐAÐAÜ�2�c•7˜:Õ&Ó'¨H¨:Ô5Ð5Ò5r    c                óÚ   € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q h\        P
                  ! V4      pRV9  g   Q hR# )r	   r
   r   zgh23879.f90ÚbarN)r   r&   r   r7   r8   Úcrack2fortran)r   r?   r9   r:   Úpyfs   &&   r   Útest_nowrap_private_proceeduresÚ1TestPublicPrivate.test_nowrap_private_proceedures?   sZ   € Ü—’˜W e¨^¸]ÓKˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ü×(Ò(¨Ó-ˆØ˜CÔÐÒr    r!   N)
r"   r#   r$   r%   r;   r@   rG   rM   r(   r)   r*   s   @r   r-   r-      s   ø‡ € ò
;ò;ò6÷ ð  r    r-   c                   ó,   a € ] tR t^Ft o R tR tRtV tR# )ÚTestModuleProcedurec                óê  € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          pRV9   d   \	        VR,          4      ^	8X  g   Q hVR,          ^,          R,          R8X  g   Q hRVR,          ^,          9   g   Q hVR,          ^,          R,          RR	.8X  g   Q hVR,          ^,          R,          R
8X  g   Q hRVR,          ^,          9   g   Q hVR,          ^,          R,          R.8X  g   Q hVR,          ^,          R,          R8X  g   Q hRVR,          ^,          9   g   Q hVR,          ^,          R,          RR.8X  g   Q hR# )r	   r
   r   zoperators.f90ÚbodyÚnamezoperator(.item.)ÚimplementedbyÚitem_intÚ	item_realzoperator(==)Úitems_are_equalzassignment(=)Úget_intÚget_realNr6   r>   s   &&  r   Útest_moduleOperatorsÚ(TestModuleProcedure.test_moduleOperatorsG   sc  € Ü—’˜W e¨^¸_ÓMˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø�!�fˆØ˜Œ}¤ S¨¥[Ó!1°QÔ!6Ð6Ð6Ø�6�{˜1�~˜fÕ%Ð);Ô;Ð;Ð;Ø # f¥+¨a¥.Ô0Ð0Ð0Ø�6�{˜1�~˜oÕ.Ø˜Ð%ô&ð 	&ð &à�6�{˜1�~˜fÕ%¨Ô7Ð7Ð7Ø # f¥+¨a¥.Ô0Ð0Ð0Ø�6�{˜1�~˜oÕ.Ð3DÐ2EÔEÐEÐEØ�6�{˜1�~˜fÕ%¨Ô8Ð8Ð8Ø # f¥+¨a¥.Ô0Ð0Ð0Ø�6�{˜1�~˜oÕ.Ø˜
Ð#ô$ð 	$ò $r    c                óh  € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          pVR,          R,          R,          R.8X  g   Q hVR,          R,          R,          R	.8X  g   Q hVR,          R
,          R,          R	.8X  g   Q hR# )r	   r
   r   zpubprivmod.f90r0   r1   r2   r/   r4   r3   r5   Nr6   r>   s   &&  r   Útest_notPublicPrivateÚ)TestModuleProcedure.test_notPublicPrivateY   s    € Ü—’˜W e¨^Ð=MÓNˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø�!�fˆØ�6�{˜3Õ 
Õ+°	¨}Ô<Ð<Ð<Ø�6�{˜3Õ 
Õ+°¨|Ô;Ð;Ð;Ø�6�{˜6Õ" :Õ.°8°,Ô>Ð>Ò>r    r!   N)r"   r#   r$   r%   rZ   r]   r(   r)   r*   s   @r   rP   rP   F   s   ø‡ € ò$÷$?ð ?r    rP   c                   óX   a € ] tR t^ct o ]P
                  ! RRRR4      .tR tR tRt	V t
R# )	ÚTestExternalr	   r
   r   z	gh17859.fc                óT   € R  pV P                   P                  V4      pV^{8X  g   Q hR# )c                 ó   € V ^{,           # ©é{   r!   ©Úxs   &r   ÚincrÚ5TestExternal.test_external_as_statement.<locals>.incrh   ó   € Ø�s•7ˆNr    N)r   Úexternal_as_statement©r   rg   Úrs   &  r   Útest_external_as_statementÚ'TestExternal.test_external_as_statementg   ó(   € ò	ð �K‰K×-Ñ-¨dÓ3ˆØ�CŒxˆŠxr    c                óT   € R  pV P                   P                  V4      pV^{8X  g   Q hR# )c                 ó   € V ^{,           # rc   r!   re   s   &r   rg   Ú5TestExternal.test_external_as_attribute.<locals>.incro   ri   r    N)r   Úexternal_as_attributerk   s   &  r   Útest_external_as_attributeÚ'TestExternal.test_external_as_attributen   ro   r    r!   N)r"   r#   r$   r%   r   r&   r'   rm   rt   r(   r)   r*   s   @r   r`   r`   c   s+   ø‡ € à�|Š|˜G U¨N¸KÓHÐI€Gò÷ð r    r`   c                   ó€   a € ] tR t^vt o ]P
                  ! RRRR4      ]P
                  ! RRRR4      .tR tR tRt	V t
R	# )
ÚTestCrackFortranr	   r
   r   z
gh2848.f90zcommon_with_division.fc                óP   € V P                   P                  ^^4      pVR8X  g   Q hR# )r   N)r   r   )r   Úgh2848)r   rl   s   & r   Útest_gh2848ÚTestCrackFortran.test_gh2848|   s$   € Ø�K‰K×Ñ˜q !Ó$ˆØ�FŒ{ÐŠ{r    c                óf   € \        V P                  P                  P                  4      ^8X  g   Q hR# )é   N)r8   r   ÚmortmpÚctmp©r   s   &r   Útest_common_with_divisionÚ*TestCrackFortran.test_common_with_division€   s%   € Ü�4—;‘;×%Ñ%×*Ñ*Ó+¨rÔ1Ð1Ò1r    r!   N)r"   r#   r$   r%   r   r&   r'   rz   r�   r(   r)   r*   s   @r   rw   rw   v   s@   ø‡ € à�|Š|˜G U¨N¸LÓIØ�|Š|˜G U¨NÐ<TÓUð€Gò÷2ð 2r    rw   c                   ó8   a € ] tR t^ƒt o R tR tR tR tRtV t	R# )ÚTestMarkinnerspacesc                óD   € . ROpV F  p\        V4      V8X  d   K  Q h	  R# )úa N)r†   z aza b cz'abcdefghij'©r   )r   Ú	test_listÚis   &  r   Útest_do_not_touch_normal_spacesÚ3TestMarkinnerspaces.test_do_not_touch_normal_spaces†   s$   € Ú9ˆ	ÛˆAÜ" 1Ó%¨Ö*Ð*Ð*ó r    c                óN   € \        R 4      R8X  g   Q h\        R4      R8X  g   Q hR# )za 'b c' \' \'za 'b@_@c' \' \'za "b c" \" \"za "b@_@c" \" \"Nr‡   r€   s   &r   Útest_one_relevant_spaceÚ+TestMarkinnerspaces.test_one_relevant_space‹   s,   € ÜÐ0Ó1Ð5HÔHÐHÐHÜÐ/Ó0Ð4FÔFÐFÒFr    c                óN   € \        R 4      R8X  g   Q h\        R4      R8X  g   Q hR# )za 'b c" " d' eza 'b@_@c"@_@"@_@d' eza "b c' ' d" eza "b@_@c'@_@'@_@d" eNr‡   r€   s   &r   Útest_ignore_inner_quotesÚ,TestMarkinnerspaces.test_ignore_inner_quotes�   s,   € ÜÐ1Ó2Ð6NÔNÐNÐNÜÐ1Ó2Ð6NÔNÐNÒNr    c                óN   € \        R 4      R8X  g   Q h\        R4      R8X  g   Q hR# )za 'b c' 'd e'za 'b@_@c' 'd@_@e'za "b c" "d e"za "b@_@c" "d@_@e"Nr‡   r€   s   &r   Útest_multiple_relevant_spacesÚ1TestMarkinnerspaces.test_multiple_relevant_spaces“   s+   € Ü˜Ó/Ð3FÔFÐFÐFÜÐ/Ó0Ð4HÔHÐHÒHr    r!   N)
r"   r#   r$   r%   rŠ   r�   r�   r“   r(   r)   r*   s   @r   r„   r„   ƒ   s"   ø‡ € ò+ò
GòO÷Ið Ir    r„   c            	       ó,  a€ ] tR t^˜t oRtRt]P                  ! R4      t. ROt	R.t
]	]
,           tRt]! ]4       Fp  w  tt]P!                  R4       U u. uF$  p RV 9   d   V P!                  R4      ^ ,          MRNK&  	  up t]]P%                  ]]R	P'                  ]4      R
7      ,          tKr  	  ]P*                  P-                  R]4      ]P*                  P.                  R 4       4       t]P*                  P-                  R]4      R 4       tRtVtR# u up i )ÚTestDimSpecan  This test suite tests various expressions that are used as dimension
specifications.

There exists two usage cases where analyzing dimensions
specifications are important.

In the first case, the size of output arrays must be defined based
on the inputs to a Fortran function. Because Fortran supports
arbitrary bases for indexing, for instance, `arr(lower:upper)`,
f2py has to evaluate an expression `upper - lower + 1` where
`lower` and `upper` are arbitrary expressions of input parameters.
The evaluation is performed in C, so f2py has to translate Fortran
expressions to valid C expressions (an alternative approach is
that a developer specifies the corresponding C expressions in a
.pyf file).

In the second case, when user provides an input array with a given
size but some hidden parameters used in dimensions specifications
need to be determined based on the input array size. This is a
harder problem because f2py has to solve the inverse problem: find
a parameter `p` such that `upper(p) - lower(p) + 1` equals to the
size of input array. In the case when this equation cannot be
solved (e.g. because the input array size is wrong), raise an
error before calling the Fortran function (that otherwise would
likely crash Python process when the size of input arrays is
wrong). f2py currently supports this case only when the equation
is linear with respect to unknown parameter.

z.f90a
  
      function get_arr_size_{count}(a, n) result (length)
        integer, intent(in) :: n
        integer, dimension({dimspec}), intent(out) :: a
        integer length
        length = size(a)
      end function

      subroutine get_inv_arr_size_{count}(a, n)
        integer :: n
        ! the value of n is computed in f2py wrapper
        !f2py intent(out) n
        integer, dimension({dimspec}), intent(in) :: a
        if (a({first}).gt.0) then
          ! print*, "a=", a
        endif
      end subroutine
    z2*n:3*n*n+2*nÚ Ú,Ú:Ú1z, )ÚcountÚdimspecÚfirstrœ   c                óº   € V P                   P                  V4      p\        V P                  R V 24      pR F   pV! V4      w  rVVP                  V8X  d   K   Q h	  R# )Úget_arr_size_N©r   r   r   é   é   )Úall_dimspecsÚindexÚgetattrr   Úsize)r   rœ   r›   Úget_arr_sizeÚnÚszr1   s   &&     r   Útest_array_sizeÚTestDimSpec.test_array_sizeÜ   sV   € ð ×!Ñ!×'Ñ'¨Ó0ˆÜ˜tŸ{™{¨m¸E¸7Ð,CÓDˆã ˆAÙ  “O‰EˆBØ—6‘6˜R–<Ð�<ó !r    c                ó:  € V P                   P                  V4      p\        V P                  R V 24      p\        V P                  RV 24      pR FG  pV! V4      w  rgWP                  9   d
   V! Wu4      pMV! V4      pV! V4      w  ršWi8X  d   K@  Q WXWi34       h	  R# )rŸ   Úget_inv_arr_size_Nr    )r£   r¤   r¥   r   Únonlinear_dimspecs)r   rœ   r›   r§   Úget_inv_arr_sizer¨   r©   r1   Ún1Úsz1Ú_s   &&         r   Útest_inv_array_sizeÚTestDimSpec.test_inv_array_sizeç   s¥   € ð ×!Ñ!×'Ñ'¨Ó0ˆÜ˜tŸ{™{¨m¸E¸7Ð,CÓDˆÜ" 4§;¡;Ð2CÀEÀ7Ð0KÓLÐã ˆAÙ  “O‰EˆBØ×1Ñ1Ô1ñ & aÓ+‘ñ & aÓ(�ñ " "Ó%‰FˆCØ–9Ð.˜q bÐ.Ó.�9ó !r    r!   N)r¨   z2*nz2:nzn/2z5 - n/2z3*n:20zn*(n+1):n*(n+5)z2*n, n)r"   r#   r$   r%   Ú__doc__ÚsuffixÚtextwrapÚdedentÚcode_templateÚlinear_dimspecsr®   r£   ÚcodeÚ	enumerater›   rœ   ÚsplitÚlstÚformatÚjoinÚpytestÚmarkÚparametrizeÚslowrª   r³   r(   r)   )Údr+   s   0@r   r–   r–   ˜   s  ø‡ € ñð< €Fà—O’Oð %ó 	€Mò&€Oð *Ð*ÐØ"Ð%7Õ7€Là€DÙ# LÖ1‰ˆˆwØ?F¿}¹}ÈSÔ?QÓRÑ?Q¸! 3¨!¤8�—‘˜“˜Q–°Ò4Ñ?QÑRˆØ�×$Ñ$ØØØ—)‘)˜C“.ð %ó 
õ 	
Šñ 2ð ‡[�[×Ñ˜Y¨Ó5Ø‡[�[×Ññ ó ó 6ð ð ‡[�[×Ñ˜Y¨Ó5ñ/ó 6ö/ùò' Ss   Á*Dr–   c                   ó&   a € ] tR t^ÿt o R tRtV tR# )ÚTestModuleDeclarationc                óæ   € \         P                  ! R RRR4      p\        P                  ! \        V4      .4      p\	        V4      ^8X  g   Q hV^ ,          R,          R,          R,          R8X  g   Q hR# )	r	   r
   r   zfoo_deps.f90r0   ÚabarÚ=zbar('abar')Nr6   r>   s   &&  r   Útest_dependenciesÚ'TestModuleDeclaration.test_dependencies   s\   € Ü—’˜W e¨^¸^ÓLˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1Œ}Ðˆ}Ø�1�v�f�~˜fÕ% cÕ*¨mÔ;Ð;Ò;r    r!   N)r"   r#   r$   r%   rË   r(   r)   r*   s   @r   rÇ   rÇ   ÿ   s   ø‡ € ÷<ð <r    rÇ   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestEvali  c                ó®   € \         P                  pV! R / 4      R 8X  g   Q hV! R/ 4      R8X  g   Q hV! RR^R^/4      R8X  g   Q hV! R/ 4      R8X  g   Q hR	# )
Ú123z12 + 3Ú15za + br1   r4   Ú3z"123"z'123'N)r   Ú_eval_scalar)r   Úeval_scalars   & r   Útest_eval_scalarÚTestEval.test_eval_scalar  sj   € Ü"×/Ñ/ˆá˜5 "Ó%¨Ô.Ð.Ð.Ù˜8 RÓ(¨DÔ0Ð0Ð0Ù˜7 S¨!¨S°!Ð$4Ó5¸Ô<Ð<Ð<Ù˜7 BÓ'¨7Ô2Ð2Ò2r    r!   N)r"   r#   r$   r%   rÕ   r(   r)   r*   s   @r   rÎ   rÎ     s   ø‡ € ÷3ð 3r    rÎ   c                   óh   a € ] tR tRt o ]P
                  P                  R. RO4      R 4       tRtV t	R# )ÚTestFortranReaderi  Úencodingc                ó  € VR V R2,          pVP                  RVR7      ;_uu_ 4       pVP                  R4       RRR4       \        P                  ! \        V4      .4      pV^ ,          R,          R8X  g   Q hR#   + '       g   i     LI; i)Úinput_with_z_encoding.f90r   )rÙ   zd
                     subroutine foo()
                     end subroutine foo
                     NrS   Úfoo)ÚopenÚwriter   r7   )r   r?   rÙ   Úf_pathÚffr:   s   &&&   r   Útest_input_encodingÚ%TestFortranReader.test_input_encoding  sy   € ð ˜k¨(¨°=ÐAÕAˆØ�[‰[˜ xˆ[×0Ô0°BØ�H‰Hð ô ÷ 1ô
 ×'Ò'¬¨V«¨Ó6ˆØ�1�v�f�~ Ô&Ð&Ò&÷ 1×0ús   ©A<Á<B	r!   N)Úasciizutf-8zutf-16zutf-32)
r"   r#   r$   r%   rÁ   rÂ   rÃ   rá   r(   r)   r*   s   @r   rØ   rØ     s-   ø‡ € Ø‡[�[×Ñ˜ZÚCóEñ	'óEö	'r    rØ   c                   óÈ   a € ] tR tRt o ]P
                  ! RRRR4      .t]P                  P                  ]
P                  P                  R4      RJ RR	7      R
 4       tRtV tR# )ÚTestUnicodeCommenti   r	   r
   r   zunicode_comment.f90Úcharset_normalizerNz7test requires charset_normalizer which is not installed)Úreasonc                ó<   € V P                   P                  ^4       R# ©r   N)r   rÜ   r€   s   &r   Útest_encoding_commentÚ(TestUnicodeComment.test_encoding_comment$  s   € ð
 	�‰�‰˜Ör    r!   )r"   r#   r$   r%   r   r&   r'   rÁ   rÂ   ÚskipifÚ	importlibÚ	find_specrê   r(   r)   r*   s   @r   rå   rå      s^   ø‡ € à�|Š|˜G U¨NÐ<QÓRÐS€Gà‡[�[×ÑØ	�‰×	!Ñ	!Ð"6Ó	7¸4Ð	?ØHð ó ñó	ör    rå   c                   ój   a € ] tR tRt o ]P
                  P                  R.. RO4      R 4       tRtV t	R# )ÚTestNameArgsPatternBacktrackingi,  Ú	adversaryc                óÜ  € ^p^p^^rT\        WE4       FÕ  pW,          p\        V4       FŠ  p. p	\        V4       FY  p\        P                  ! 4       p
\        P                  ! V4      pV	P                  \        P                  ! 4       V
,
          4       K[  	  \        P                  ! V	4      R8  d   KŠ  Q h	  X'       d   Q hVR,           p\        P                  ! V4      '       d   KÕ  Q h	  R# )zHaddress ReDOS vulnerability:
https://github.com/numpy/numpy/issues/23338gš™™™™™É?z@)@N)ÚrangeÚtimeÚperf_counterr   ÚsearchÚappendr   Úmedian)r   rñ   Útrials_per_batchÚbatches_per_regexÚ
start_repsÚend_repsÚiiÚrepeated_adversaryr²   Útimesr   ÚmtchÚgood_version_of_adversarys   &&           r   Ú!test_nameargspattern_backtrackingÚATestNameArgsPatternBacktracking.test_nameargspattern_backtracking-  sÕ   € ð ÐØÐØ! 2�HÜ˜
Ö-ˆBØ!*¥Ðô Ð,Ö-�Ø�ÜÐ/Ö0�AÜ×*Ò*Ó,�BÜ*×1Ò1Ð2DÓE�DØ—L‘L¤×!2Ò!2Ó!4°rÕ!9Ö:ñ 1ô —y’y Ó'¨#Ö-Ð-Ð-ñ .÷ ˆO�8ð );¸UÕ(BÐ%Ü"×)Ò)Ð*C×DÔDÐDÐDó' .r    r!   N))z
@)@bind@(@)z#@)@bind                         @(@)z@)@bind foo bar baz@(@)
r"   r#   r$   r%   rÁ   rÂ   rÃ   r  r(   r)   r*   s   @r   rð   rð   ,  s2   ø‡ € Ø‡[�[×ÑØ	ˆò	
óñEóöEr    rð   c                   ó„   a € ] tR tRt o ]P
                  ! RRRR4      .t]P                  P                  R 4       t
RtV tR# )	ÚTestFunctionReturniP  r	   r
   r   zgh23598.f90c                óL   € V P                   P                  ^^4      ^8X  g   Q hR# ré   )r   Ú
intproductr€   s   &r   Útest_function_rettypeÚ(TestFunctionReturn.test_function_rettypeS  s#   € ð �{‰{×%Ñ% a¨Ó+¨rÔ1Ð1Ò1r    r!   N)r"   r#   r$   r%   r   r&   r'   rÁ   rÂ   rÄ   r  r(   r)   r*   s   @r   r  r  P  s8   ø‡ € Ø�|Š|˜G U¨N¸MÓJÐK€Gà‡[�[×Ññ2ó ö2r    r  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestFortranGroupCountersiY  c                ó´   € \         P                  ! R RRR4      p \        P                  ! \        V4      .4       R#   \         d   pQ RT 24       hRp?ii ; i)r	   r
   r   z	gh23533.fz0'crackfortran.crackfortran' raised an exception N)r   r&   r   r7   Ú	Exception)r   r9   Úexcs   &  r   Útest_end_if_commentÚ,TestFortranGroupCounters.test_end_if_commentZ  sT   € ä—’˜W e¨^¸[ÓIˆð	SÜ×%Ò%¤s¨5£z lÖ3øÜô 	SØRÐLÈSÈEÐRÓR�5ûð	Sús   › = ½AÁ
AÁAr!   N)r"   r#   r$   r%   r  r(   r)   r*   s   @r   r  r  Y  s   ø‡ € ÷Sð Sr    r  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestF77CommonBlockReaderic  c                ó@  € \         P                  ! R RRR4      p\        P                  ! \        P
                  ! 4       4      ;_uu_ 4       p\        P                  ! \        V4      .4      pRRR4       RXP                  4       9  g   Q hR#   + '       g   i     L); i)r	   r
   r   zgh22648.pyfNÚMismatch)	r   r&   Ú
contextlibÚredirect_stdoutÚioÚStringIOr   r7   Úgetvalue)r   r?   r9   Ústdout_f2pyr:   s   &&   r   Útest_gh22648Ú%TestF77CommonBlockReader.test_gh22648d  sj   € Ü—’˜W e¨^¸]ÓKˆÜ×'Ò'¬¯ª«×6Ô6¸+Ü×+Ò+¬S°«Z¨LÓ9ˆC÷ 7à ×!5Ñ!5Ó!7Ô7Ð7Ò7÷ 7×6ús   Á!BÂB	r!   N)r"   r#   r$   r%   r  r(   r)   r*   s   @r   r  r  c  s   ø‡ € ÷8ð 8r    r  c                   ó>   a € ] tR tRt o R tR tR tR tR tRt	V t
R# )	ÚTestParamEvalij  c                óà   € R pR\         P                  R\         P                  R\         P                  /pR^R^^^^/R^^^^^^//pRp\         P                  ! WW4R7      pV^R	^R
/8X  g   Q hR# )z(/3.14, 4./)ÚkindÚselected_int_kindÚselected_real_kindÚdpÚintparamarrayÚnestedz(2)©rœ   g…ëQ¸	@g      @N©r   Ú
_kind_funcÚ_selected_int_kind_funcÚ_selected_real_kind_funcÚ
param_eval©r   ÚvÚg_paramsÚparamsrœ   Úrets   &     r   Útest_param_eval_nestedÚ$TestParamEval.test_param_eval_nestedl  sŠ   € ØˆØœL×3Ñ3Ø#¤\×%IÑ%IØ$¤l×&KÑ&KðMˆð ˜˜?¨Q°°1°a¨LØ˜Q  1 a¨¨AÐ.ð0ˆàˆÜ×%Ò% a°6ÔKˆØ�q˜$  3Ð'Ô'Ð'Ò'r    c                óÄ   € R pR\         P                  R\         P                  R\         P                  /p/ pRp\         P                  ! WW4R7      pVR^^ ^^^/8X  g   Q hR# )z(/ 6, 3, 1 /)r   r!  r"  z(-1:1)r&  Néÿÿÿÿr'  r,  s   &     r   Ú!test_param_eval_nonstandard_rangeÚ/TestParamEval.test_param_eval_nonstandard_rangew  si   € ØˆØœL×3Ñ3Ø#¤\×%IÑ%IØ$¤l×&KÑ&KðMˆð ˆØˆÜ×%Ò% a°6ÔKˆØ�r˜1˜a  A qÐ)Ô)Ð)Ò)r    c           	     óÐ   € R pR\         P                  R\         P                  R\         P                  /p/ pRp\        P
                  ! \        \         P                  WVVR7       R# )Ú6r   r!  r"  r—   r&  N©r   r(  r)  r*  rÁ   ÚraisesÚ
ValueErrorr+  ©r   r-  r.  r/  rœ   s   &    r   Útest_param_eval_empty_rangeÚ)TestParamEval.test_param_eval_empty_range�  sY   € ØˆØœL×3Ñ3Ø#¤\×%IÑ%IØ$¤l×&KÑ&KðMˆð ˆØˆÜ�Š”j¤,×"9Ñ"9¸1ÈØ%÷	'r    c                ó¶   € R pR\         P                  R\         P                  R\         P                  /p/ p\         P                  ! WVRR7      pVR 8X  g   Q hR# )z3.14_dpr   r!  r"  Nr&  r'  )r   r-  r.  r/  r0  s   &    r   Útest_param_eval_non_array_paramÚ-TestParamEval.test_param_eval_non_array_param‹  sY   € ØˆØœL×3Ñ3Ø#¤\×%IÑ%IØ$¤l×&KÑ&KðMˆð ˆÜ×%Ò% a°6À4ÔHˆØ�iÔÐÒr    c           	     óÐ   € R pR\         P                  R\         P                  R\         P                  /p/ pRp\        P
                  ! \        \         P                  WVVR7       R# )z*reshape((/ (i, i=1, 250) /), (/5, 10, 5/))r   r!  r"  z(0:4, 3:12, 5)r&  Nr9  r<  s   &    r   Útest_param_eval_too_many_dimsÚ+TestParamEval.test_param_eval_too_many_dims”  sY   € Ø8ˆØœL×3Ñ3Ø#¤\×%IÑ%IØ$¤l×&KÑ&KðMˆð ˆØ"ˆÜ�Š”j¤,×"9Ñ"9¸1ÈØ%÷	'r    r!   N)r"   r#   r$   r%   r1  r5  r=  r@  rC  r(   r)   r*   s   @r   r  r  j  s#   ø‡ € ò	(ò*ò'ò ÷'ð 'r    r  c                   óX   a € ] tR tRt o ]P
                  ! RRRR4      .tR.tR tRt	V t
R	# )
ÚTestLowerF2PYDirectiveiž  r	   r
   r   zgh27697.f90z--lowerc                óÒ   € \         P                  ! \        R R7      ;_uu_ 4       pV P                  P                  P                  R 4       RRR4       R#   + '       g   i     R# ; i)zaborting directly)ÚmatchN)rÁ   r:  r;  r   ÚutilsÚmy_abort)r   r  s   & r   Útest_no_lower_failÚ)TestLowerF2PYDirective.test_no_lower_fail£  s?   € Ü�]Š]œ:Ð-@×AÕAÀSØ�K‰K×Ñ×&Ñ&Ð':Ô;÷ B×A×AÒAús   ¥&AÁA&	r!   N)r"   r#   r$   r%   r   r&   r'   ÚoptionsrK  r(   r)   r*   s   @r   rF  rF  ž  s-   ø‡ € à�|Š|˜G U¨N¸MÓJÐK€GØˆk€G÷<ð <r    rF  )#r  rí   r  r·   rô   rÁ   Únumpyr   Ú
numpy.f2pyr   Únumpy.f2py.crackfortranr   r   r—   r   ÚF2PyTestr   r-   rP   r`   rw   r„   r–   rÇ   rÎ   rØ   rÂ   rÄ   rå   rð   r  r  r  r  rF  r!   r    r   Ú<module>rR     sG  ðÛ Û Û 	Û Û ã ã Ý #ß Då ô,�$—-‘-ô ,÷% ñ % ÷N?ñ ?ô:�4—=‘=ô ô&2�t—}‘}ô 2÷Iñ Iô*d/�$—-‘-ô d/÷N<ñ <ô3ˆt�}‰}ô 3ô'˜Ÿ™ô 'ð ‡�×Ñô˜Ÿ™ó ó ð÷"Eñ "EôH2˜Ÿ™ô 2ôS˜tŸ}™}ô S÷8ñ 8÷2'ñ 2'ðh ‡�×Ñô<˜TŸ]™]ó <ó ò<r    