o
    i?                  
   @   sJ  d dl m Z  d dlZd dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZ dd Zdd	 Zd
d Zejdde
jfddddeje
jfgejdddgdd Zdd Zdd Zejdddgejdddgejddeje
jgejd ddgd!d" Zejd g d#d$d% Zejdddgejdddgejddeje
jgejd ddgd&d' Zejd g d#d(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zejd2dd3d4d5igejd6g d7g d8gd9d: Z d;d< Z!ejd2d=d> d?d> d~d@d>gdAdB Z"dCdD Z#dEdF Z$dGdH Z%dIdJ Z&dKdL Z'dMdN Z(ejdOddPdPejgfddPdejgfgdQdR Z)dSdT Z*dUdV Z+dWdX Z,dYdZ Z-d[d\ Z.ejdg d]d^d_ Z/d`da Z0dbdc Z1ddde Z2dfdg Z3dhdi Z4djdk Z5dldm Z6dndo Z7dpdq Z8drds Z9dtdu Z:dvdw Z;dxdy Z<dzd{ Z=d|d} Z>dS )    )datetimeN)pa_version_under4p0)PerformanceWarning)Series_testingc                 C   s  t jdt jdddgt jd}t|| d}d}tt| dkot |j	
|}W d    n1 s1w   Y  | dkr<dnd	}tt jd
t jddd
gt jd|d}t|| |j	j
|d
d}tt jd
t jd
d
dgt jd|d}t|| tt jg dtd| d}tt| dkot |j	
|}W d    n1 sw   Y  | dkrt jnd	}tt g d|d}t|| tt jg dtd| d}tt| dk |j	j
dd
d}W d    n1 sw   Y  tt g d|d}t|| |j	j
dd
d
d}tt g d|d}t|| tt jdt jddgt jd| d}d}tt| dko1t |j	
|}W d    n	1 sEw   Y  | dkrQdnd	}tt jd
t jddgt jd|d}t|| tt| dkost |j	j
|d
d}W d    n	1 sw   Y  | dkrt jnd	}tt g d|d}t|| tt jg dt jd| d}tt| dkot |j	
|}W d    n	1 sw   Y  tt g d|d}t|| d S )Nfoofooommm__foommm_zfoommm[_]+bardtypezmmm[_]+string[pyarrow]objectbooleanFTregex)r   xyzr   r	   )FFTT)FooxYzfOOomMm__fOoMMM_zFOO|mmmcase)TFTT)r   r   )TFTFna)nparraynanobject_r   tmmaybe_produces_warningr   r   strcontainsassert_series_equalr   bool_)any_string_dtypevaluespatresultexpected_dtypeexpected r*   a/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/strings/test_find_replace.pytest_contains   s   

r,   c                  C   sx   t tjdtjddt dd ddg	td} | jd}t tjd	tjd	tjtjdtjtjtjg	tj	d}t
|| d S )
NabTr             @r
   oF)r   r   r   r   r   todayr   r    r!   r   r   r"   mixedr'   r)   r*   r*   r+   test_contains_object_mixedu   s    r5   c                  C   s   t ddddtjgdd} | jjddd}t g d}t|| | jjdd	d}t g d
}t|| t ddddtjg} | jjddd}t g d}t|| | jjdd	d}t g d
}t|| d S )Nr-   r.   ccategoryr
   Tr   )TFFTTF)TFFTF)r   r   r   r    r!   r   r"   )r%   r'   r)   r*   r*   r+   *test_contains_na_kwarg_for_object_category   s   r8   zna, expected)TT)FF)r   F)   Tr   TFc                 C   s   t ddddtjg| d}tt| dkoto| |jjd||d}W d    n1 s,w   Y  t dddd|gd	d}t	|| d S )
Nr-   r.   r6   r
   r   )r   r   TFr   
r   r   r   r   r   r   r   r    r!   r"   )nullable_string_dtyper   r)   r   r%   r'   r*   r*   r+   0test_contains_na_kwarg_for_nullable_string_dtype   s   r<   c                 C   s^  t ddddddtjddd	g
| d
}tt| dkot |jd}W d    n1 s,w   Y  | dkr7dnd}t ddddddtjdddg
|d
}t	|| tt| dk |jjddd}W d    n1 skw   Y  t ddddddtjdddg
|d
}t	|| tt| dkot |jd}W d    n1 sw   Y  t ddddddtjdddg
|d
}t	|| tt| dkot |jd}W d    n1 sw   Y  t ddddddtjdddg
|d
}t	|| tt| dk |jjddd}W d    n	1 sw   Y  t ddddddtjdddg
|d
}t	|| d S )NABCAabaBaca CABAdogcatr
   r   r-   r   r   FTr   Aabar:   r$   sr'   r(   r)   r*   r*   r+   test_contains_moar   st   


rJ   c                 C   s  t tjtjtjg| d}tt| dkot |jjddd}W d    n1 s)w   Y  | dkr5tj	nd}t g d|d}t
|| tt| dkoMt |jjdd	d}W d    n1 sbw   Y  t g d
|d}t
|| tt| dko}t |jjddd}W d    n1 sw   Y  | dkrt g dtjd}nt g d
dd}t
|| tt| dkot |jd}W d    n1 sw   Y  | dkrdnd}t tjtjtjg|d}t
|| d S )Nr
   r   r   Fr   r   r   )FFFT)TTT)r   r   r   )r   r   r   r   r   r   r   r    r!   r#   r"   r   rH   r*   r*   r+   test_contains_nan   sJ   



rK   r&   r   )r   bazr   r7   
null_valuer   c           
   
   C   s   t d|ddd|dg|d}|j| }t dtjdddtjdg}t|| |jj| |d	}t d|ddd|dg}t|| tjd
tjddt	 dd ddg	tj
d}t |jd}t dtjdtjtjdtjtjtjg	}	t||	 d S Nomfoo_nomnombar_foor   r
   FTr   r-   r.   r/   r0   f)r   r    
startswithr   r   r   r"   r   r   r2   r   
r&   r   rM   r   r%   r'   expr4   rsxpr*   r*   r+   test_startswith&  s"   &rY   )NTFc              
   C   s   t g d| d}tt| dkot |jjd|d}W d    n1 s%w   Y  t d|ddd|dddg	dd}t|| tt| dkoGt |jjd	|d}W d    n1 s\w   Y  t d|ddd|dddg	dd}t|| d S 
N)	rO   NrP   rQ   rR   Nr   r   rege.r
   r   r   r   FTr   r[   )r   r   r   r   r   r    rT   r"   r;   r   r%   r'   rV   r*   r*   r+   %test_startswith_nullable_string_dtypeC  0   

r]   c           
   
   C   s   t d|ddd|dg|d}|j| }t dtjdddtjdg}t|| |jj| |d	}t d|ddd|dg}t|| tjd
tjddt	 dd ddg	t
d}t |jd}t dtjdtjtjdtjtjtjg	}	t||	 d S rN   )r   r    endswithr   r   r   r"   r   r   r2   r   rU   r*   r*   r+   test_endswithc  s"   &r`   c              
   C   s   t g d| d}tt| dkot |jjd|d}W d    n1 s%w   Y  t d|ddd|dddg	dd}t|| tt| dkoGt |jjd	|d}W d    n1 s\w   Y  t d|ddd|dddg	dd}t|| d S rZ   )r   r   r   r   r   r    r_   r"   r\   r*   r*   r+   #test_endswith_nullable_string_dtype  r^   ra   c                 C   sz   t dtjg| d}tt| dkot |jjdddd}W d    n1 s'w   Y  t dtjg| d}t	|| d S )	NfooBAD__barBADr
   r   BAD[_]*rB   Tr   foobar
r   r   r   r   r   r   r   r    replacer"   r$   serr'   r)   r*   r*   r+   test_replace  s   
ri   c                 C   s   t dtjg| d}t dtjg| d}tt| dkot |jjddddd	}W d    n1 s1w   Y  t	|| t d
tjg| d}tt| dkoMt |jjddddd	}W d    n1 sdw   Y  t	|| d S )Nrb   r
   	foobarBADr   rc   rB   r/   Tnr   foo__barBADBADFre   r$   rh   r)   r'   r*   r*   r+   test_replace_max_replacements  s"   

rp   c               
   C   sl   t dtjddt dd ddg	} t | jjdddd	}t d
tjdtjtjdtjtjtjg	}t|| d S )NaBADbBADTfooBADr/   r0   rc   rB   r   r-   r.   r   )	r   r   r   r   r2   r    rf   r   r"   rh   r'   r)   r*   r*   r+   test_replace_mixed_object  s   &ru   c                 C   s~   t ddg| d}t ddg| d}tt| dk |jjddtjdd	}W d    n1 s2w   Y  t	|| d S )
N   abcd,àutf-8r
      abcd, àr   (?<=\w),(?=\w), T)flagsr   )
r   decoder   r   r   r    rf   reUNICODEr"   ro   r*   r*   r+   test_replace_unicode  s   r   replr9   r-   r.   data)r-   r.   N)r-   r.   r6   adc                 C   sR   d}||| d}t jt|d |jd| W d    d S 1 s"w   Y  d S )Nz!repl must be a string or callabler
   matchr-   )pytestraises	TypeErrorr    rf   )r$   index_or_seriesr   r   msgobjr*   r*   r+   #test_replace_wrong_repl_type_raises  s
   "r   c                 C   s   t dtjg| d}dd }tt| dk |jjd|ddd	}W d    n1 s*w   Y  t d
tjg| d}t|| d S )Nrb   r
   c                 S      |  d S Nr   groupswapcasemr*   r*   r+   <lambda>      z'test_replace_callable.<locals>.<lambda>r   [a-z][A-Z]{2}   Trk   foObaD__baRbaD	r   r   r   r   r   r   r    rf   r"   )r$   rh   r   r'   r)   r*   r*   r+   test_replace_callable  s   r   c                   C      d S Nr*   r*   r*   r*   r+   r         r   c                 C   r   r   r*   )r   xr*   r*   r+   r     r   c                 C   r   r   r*   )r   r   yr*   r*   r+   r     r   c              	   C   s   t dtjg| d}d}tjt|d0 tt| dk |j	
d| W d    n1 s-w   Y  W d    d S W d    d S 1 sEw   Y  d S )Nrb   r
   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?r   r   r-   )r   r   r   r   r   r   r   r   r   r    rf   )r$   r   r%   r   r*   r*   r+   test_replace_callable_raises  s   "r   c                 C   s   t dtjg| d}d}dd }tt| dk |jj||dd}W d    n1 s+w   Y  t d	tjg| d}t|| d S )
NzFoo Bar Bazr
   z,(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)c                 S   r   )Nmiddler   r   r*   r*   r+   r     r   z4test_replace_callable_named_groups.<locals>.<lambda>r   Tr   bARr   )r$   rh   r&   r   r'   r)   r*   r*   r+   "test_replace_callable_named_groups  s   r   c                 C   s   t dtjg| d}td}tt| dk |jj	|ddd}W d    n1 s*w   Y  t dtjg| d}t
|| tt| dk |jj	|dd	dd
}W d    n1 s[w   Y  t dtjg| d}t
|| d S )Nrb   r
   BAD_*r   rB   Tr   rd   r/   rk   rj   r   r   r   r}   compiler   r   r   r    rf   r"   )r$   rh   r&   r'   r)   r*   r*   r+   test_replace_compiled_regex  s    
r   c               
   C   sv   t d} tdtjddt dd ddg	}t|jj| ddd	}td
tjdtjtjdtjtjtjg	}t	
|| d S )Nr   rq   rr   Trs   r/   r0   rB   r   r-   r.   r   )r}   r   r   r   r   r   r2   r    rf   r   r"   )r&   rh   r'   r)   r*   r*   r+   (test_replace_compiled_regex_mixed_object   s   
&r   c                 C   s   t ddg| d}t ddg| d}tjdtjd}tt| dk |j	|d}W d    n1 s6w   Y  t
|| d S )	Nrv   rw   r
   rx   ry   r{   r   rz   )r   r|   r}   r   r~   r   r   r   r    rf   r"   )r$   rh   r)   r&   r'   r*   r*   r+   #test_replace_compiled_regex_unicode*  s   r   c                 C   s   t dtjg| d}td}d}tjt|d |jj	|dtj
d W d    n1 s,w   Y  tjt|d |jj	|ddd	 W d    n1 sLw   Y  tjt|d |jj	|dd
d	 W d    d S 1 smw   Y  d S )NfooBAD__barBAD__badr
   r   z9case and flags cannot be set when pat is a compiled regexr   rB   r   Fr   T)r   r   r   r}   r   r   r   
ValueErrorr    rf   
IGNORECASEr$   rh   r&   r   r*   r*   r+   "test_replace_compiled_regex_raises5  s   
"r   c                 C   s   t dtjg| d}dd }td}tt| dk |jj	||dd}W d    n1 s.w   Y  t d	tjg| d}t
|| d S )
Nrb   r
   c                 S   r   r   r   r   r*   r*   r+   r   J  r   z6test_replace_compiled_regex_callable.<locals>.<lambda>r   r   r   )rl   r   r   )r$   rh   r   r&   r'   r)   r*   r*   r+   $test_replace_compiled_regex_callableG  s   
r   zregex,expectedbaoc                 C   sv   t ddtjg|d}t ||d}tt|dkot |jjdd| d}W d    n1 s.w   Y  t	|| d S )Nzf.or   r
   r   zf.rG   r   re   )r   r)   r$   rh   r'   r*   r*   r+   test_replace_literalT  s   
r   c                 C   s^   t g | d}dd }d}tjt|d |jjd|dd W d    d S 1 s(w   Y  d S )	Nr
   c                 S   r   r   r   r   r*   r*   r+   r   e  r   z6test_replace_literal_callable_raises.<locals>.<lambda>z2Cannot use a callable replacement when regex=Falser   abcFr   )r   r   r   r   r    rf   )r$   rh   r   r   r*   r*   r+   $test_replace_literal_callable_raisesc  s   "r   c                 C   s`   t g | d}td}d}tjt|d |jj|ddd W d    d S 1 s)w   Y  d S )Nr
   r   zCCannot use a compiled regex as replacement pattern with regex=Falser   rB   Fr   )r   r}   r   r   r   r   r    rf   r   r*   r*   r+   $test_replace_literal_compiled_raisesl  s   
"r   c                 C   sx  t ddddddtjddd	g
| d
}tt| dkot |jdd}W d    n1 s-w   Y  t ddddddtjddd	g
| d
}t	|| tt| dk |jjdddd}W d    n1 sew   Y  t ddddddtjdddg
| d
}t	|| tt| dk |jjddddd}W d    n1 sw   Y  t ddddddtjdddg
| d
}t	|| d S )Nr=   r>   r?   r@   rA   rB   rC   rD   rE   r
   r   YYYYYYabaCYYYBYYYFr   
YYYYYYbYYYBYYYcYYYcYYYtz^.a|dogzXX-XX Tr   r   zXX-XX bazXX-XX cazXX-XX BAzXX-XX tre   rg   r*   r*   r+   test_replace_moaru  sn   
r   c                 C   s   t ddddtjg| d}tt| dk |jjddd	d	d
}W d    n1 s)w   Y  t ddddtjg| d}t|| tt| dk |jjddd	d	d
}W d    n1 s]w   Y  t ddddtjg| d}t|| d S )NzA.za.Ababr
   r   r-   r6   Fr   zc.cbr   rg   r*   r*   r+   )test_replace_not_case_sensitive_not_regex  s   r   c                 C   s   t dddtjdg| d}d}tjt|| dkd |jd	d}W d    n1 s*w   Y  t dddtjdg| d}t|| d S )
Nr-   r.   acrB   r
   zPThe default value of regex will change from True to False in a future version\.$r   r   raise_on_extra_warningsz^.$)	r   r   r   r   assert_produces_warningFutureWarningr    rf   r"   )r$   rI   r   r'   r)   r*   r*   r+   "test_replace_regex_default_warning  s   r   )TFNc                 C   s   t dddtjdg|d}| d u r>td}|dkot}tjt|| d |j	j
dd	| d
}W d    n1 s8w   Y  n#tt|dkoFt |j	j
dd	| d
}W d    n1 s\w   Y  t dd	dtjdg|d}t|| d S )Nza.b.r.   rB   r
   zThe default value of regex will change from True to False in a future version. In addition, single character regular expressions will *not* be treated as literal strings when regex=True.r   r   r-   r   aab)r   r   r   r}   escaper   r   r   r   r    rf   r   r   r"   )r   r$   rI   r   pyarrow_warnr'   r)   r*   r*   r+   #test_replace_regex_single_character  s(   
r   c                 C   s>  | dkrdnd}t dtjdg| d}tt| dkot |jd}W d    n1 s-w   Y  t dtjd	g|d}t	|| t dd
tjdg| d}tt| dkoUt |jd}W d    n1 shw   Y  t ddtjd	g|d}t	|| tt| dkot |jd}W d    n1 sw   Y  t d	dtjd	g|d}t	|| t ddtjdg| d}tt| dkot |jd}W d    n1 sw   Y  t d	d	tjd	g|d}t	|| tt| dkot |jd}W d    n	1 sw   Y  t d	dtjd	g|d}t	|| d S )Nr   r   rb   r   r
   r   .*(BAD[_]+).*(BAD)TFBAD_BADleroybrown.*BAD[_]+.*BADzBAD[_]+.*BADz^BAD_BADleroybrownz^BAD[_]+.*BADz\^BAD[_]+.*BAD)
r   r   r   r   r   r   r   r    r   r"   )r$   r(   r%   r'   r)   r*   r*   r+   
test_match  s`   




r   c               
   C   st   t dtjddt dd ddg	} t | jd}t dtjdtjtjdtjtjtjg	}t|t s2J t	|| d S )	NaBAD_BAD	BAD_b_BADTr   r/   r0   r   F)
r   r   r   r   r2   r    r   
isinstancer   r"   r3   r*   r*   r+   test_match_mixed_object/  s$    r   c                 C   s   t ddtjg| d}tt| dkot |jjddd}W d    n1 s'w   Y  | dkr3tj	nd}t g d	|d}t
|| tt| dkoKt |jd}W d    n1 s^w   Y  | dkridnd}t d
dtjg|d}t
|| d S )Nr-   r.   r
   r   Fr   r   r   )TFFT)r   r   r   r   r   r   r   r    r   r#   r"   rH   r*   r*   r+   test_match_na_kwargE  s&   

r   c                 C   s   t g d| d}tt| dk |jjddd}W d    n1 s#w   Y  | dkr/tjnd}t g d	|d}t|| d S )
Nr   ABr   ABCr
   r   r   Fr   r   r   )TTTT)	r   r   r   r   r    r   r   r#   r"   )r$   r%   r'   r(   r)   r*   r*   r+   test_match_case_kwarg\  s   r   c                 C   s   t ddtjdg| d}tt| dkot |jd}W d    n1 s&w   Y  | dkr1dnd}t d	d
tjd
g|d}t	|| d S )Nrb   r   r   r
   r   r   r   r   TF)
r   r   r   r   r   r   r   r    	fullmatchr"   r$   rh   r'   r(   r)   r*   r*   r+   test_fullmatchl  s   
r   c                 C   s   t ddtjdg| d}tt| dkot |jjddd}W d    n1 s(w   Y  | d	kr4tj	nd
}t g d|d}t
|| d S )Nrb   r   r   r
   r   r   Fr   r   r   TFFF)r   r   r   r   r   r   r   r    r   r#   r"   r   r*   r*   r+   test_fullmatch_na_kwarg{  s   
r   c                 C   s0  t g d| d}| dkrtjnd}t g d|d}tt| dko!t |jjddd	}W d    n1 s6w   Y  t	|| t g d
|d}tt| dk |jjddd	}W d    n1 sdw   Y  t	|| tt| dk |jjdt
jd}W d    n1 sw   Y  t	|| d S )Nr   r
   r   r   r   r   r   Tr   )TTFFFr   )r   r   r#   r   r   r   r   r    r   r"   r}   r   )r$   rh   r(   r)   r'   r*   r*   r+   test_fullmatch_case_kwarg  s.   
r   c                 C   sJ   t dtjddg| d}|jd}t ddgtjg dgg}t|| d S )Nrb   r   rn   r
   rc   BAD__)r   r   r   r    findallr   r"   rg   r*   r*   r+   test_findall  s   r   c               
   C   sh   t dtjddt dd ddg	} | jd}t ddgtjg tjtjdgtjtjtjg	}t|| d S )	Nrb   r   Trn   r/   r0   rc   r   )	r   r   r   r   r2   r    r   r   r"   rt   r*   r*   r+   test_findall_mixed_object  s4   r   c                 C   sr  t g d| d}| dkrtjnd}|jd}t g d|d}t|| tjdd t|D tjd}ttj|tjd| |j	d}t g d	|d}t|| tjd
d t|D tjd}ttj|tjd| |jdd}t g d|d}t|| tjdd t|D tjd}ttj|tjd| |j	dd}t g d	|d}t|| tjdd t|D tjd}ttj|tjd| |jddd}t g d|d}t|| tjdd t|D tjd}ttj|tjd| |j	ddd}t g d|d}t|| tjdd t|D tjd}ttj|tjd| d S )N)ABCDEFGBCDEFEF	DEFGHIJEFEFGHEFXXXXr
   r   Int64EF)   r9   r/   r   c                 S      g | ]}| d qS r   find.0vr*   r*   r+   
<listcomp>      ztest_find.<locals>.<listcomp>)r         r   r   c                 S   r   r   rfindr   r*   r*   r+   r     r   r9   )r   r9   r   r   r   c                 S      g | ]}| d dqS r   r9   r   r   r*   r*   r+   r         c                 S   r   r   r   r   r*   r*   r+   r     r      )r   r9   r   r   r   c                 S      g | ]	}| d ddqS r   r9   r   r   r   r*   r*   r+   r         c                 S   r   r   r   r   r*   r*   r+   r     r   )
r   r   int64r    r   r   r"   r   assert_numpy_array_equalr   r$   rh   r(   r'   r)   r*   r*   r+   	test_find  sD         r  c                 C   s   t g | d}tjtdd |jd W d    n1 sw   Y  tjtdd |jd W d    d S 1 s<w   Y  d S )Nr
   z!expected a string object, not intr   r   )r   r   r   r   r    r   r   )r$   rh   r*   r*   r+   test_find_bad_arg_raises  s   "r  c                 C   sh  t dtjdtjdg| d}| dkrtjnd}|jd}t dtjd	tjd
g|d}t|| |jd}t dtjdtjd
g|d}t|| |jdd}t dtjdtjd
g|d}t|| |jdd}t dtjdtjd
g|d}t|| |jddd}t dtjd
tjd
g|d}t|| |jddd}t dtjd
tjd
g|d}t|| d S )Nr   r   r   r
   r   r   r   r   r/   r   r   r9   r   )	r   r   r   float64r    r   r   r"   r   r  r*   r*   r+   test_find_nan  s,   r  c                 C   sH   | g d|d}t dd}|j |}| g d|d}t|| d S )N)abcdefgabcccdddfgcdefgggr
   r   cde)cdedefgcdeeedddfgedefggg)r    	maketrans	translater   assert_equal)r   r$   r   tabler'   r)   r*   r*   r+   test_translate/  s   r  c                  C   sF   t g d} tdd}t dddtjg}| j|}t|| d S )N)r-   r.   r6   g333333?r   r  r6   de)r   r    r  r   r   r  r   r"   )rI   r  r)   r'   r*   r*   r+   test_translate_mixed_object;  s
   r  c                 C   s  dddt jd}t|| d}d}| dk}|jj|tjdd	}|jd
  g dks+J t	
t| |jj|tjd}W d    n1 sEw   Y  |d
 sPJ t	
t| |jj|tjd}W d    n1 sjw   Y  |d
 suJ |jj|tjd}|d
 d
 dksJ |jj|tjd}|d
 dksJ d}t	jt|| d |jj|tjd}W d    n1 sw   Y  |d
 sJ d S )Nzdave@google.comzsteve@gmail.comzrob@gmail.com)DaveSteveRobWesr
   z,([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})r   T)r{   expandr   )davegooglecomr   r/   zhas match groupsr   )r   r   r   r    extractr}   r   iloctolistr   r   r   r   r   r   countr   UserWarningr!   )r$   r   r&   using_pyarrowr'   r   r*   r*   r+   test_flags_kwargG  s:   r&  r   )?r   r}   numpyr   r   pandas.compatr   pandas.errorsr   pandaspdr   r   r   r,   r5   r8   markparametrizeNAr   r<   rJ   rK   rY   r]   r`   ra   ri   rp   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r&  r*   r*   r*   r+   <module>   s    
`
>/

	


 
		=
#4!&+	$