
    (phi                     Z   S /r SSKrSSKrSSKrSSKrSSKrSSSSSSS	S	S
S	S	SSSSS.rSSSSSSSSSSSSSSS.r0 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, S-5      r " S. S/\5      rS0 rS1 rS2 rS3 rS4 rS5 rS6 rS7 r S8 r!S9 r"S: r# " S; S<\$5      r%  S>S= jr&g)?readsav    Nz>u1z>i2z>i4z>f4z>f8z>c8z|Oz>c16z>u2z>u4z>i8z>u8)                        	   
                  START_MARKERCOMMON_VARIABLEVARIABLESYSTEM_VARIABLE
END_MARKER	TIMESTAMPCOMPILEDIDENTIFICATIONVERSIONHEAP_HEADER	HEAP_DATA	PROMOTE64NOTICEDESCRIPTION)r   r   r   r   r	   r   r   r   r   r               c                 j    U R                  5       nUS-  S:w  a  U R                  US-   US-  -
  5        g)z+Align to the next 32-bit position in a filer   r   N)tellseek)fposs     @/var/www/html/venv/lib/python3.13/site-packages/scipy/io/_idl.py	_align_32r+   K   s6     &&(C
Qw!|	sQwq !
    c                 &    U R                  U5        g)zSkip `n` bytesNreadr(   ns     r*   _skip_bytesr2   T   s    FF1I
r,   c                 $    U R                  U5      $ )zRead the next `n` bytesr.   r0   s     r*   _read_bytesr4   Z   s    66!9r,   c                     [         R                  " [        R                  " SU R	                  S5      SS 5      S   5      $ )zRead a single bytez>Br   Nr   r   )npuint8structunpackr/   r(   s    r*   
_read_byter;   _   s/    88FMM$q	"16q9::r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )Read a signed 32-bit integer>lr   r   r6   int32r8   r9   r/   r:   s    r*   
_read_longrA   d   )    88FMM$q	21566r,   c                     [         R                  " [        R                  " SU R	                  S5      SS 5      S   5      $ )zRead a signed 16-bit integerz>hr   r   r   )r6   int16r8   r9   r/   r:   s    r*   _read_int16rE   i   s/    88FMM$q	!A7:;;r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )r=   z>ir   r   r?   r:   s    r*   _read_int32rG   n   rB   r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )zRead a signed 64-bit integerz>qr   r   )r6   int64r8   r9   r/   r:   s    r*   _read_int64rJ   s   rB   r,   c                     [         R                  " [        R                  " SU R	                  S5      SS 5      S   5      $ )zRead an unsigned 16-bit integerz>Hr   r   r   )r6   uint16r8   r9   r/   r:   s    r*   _read_uint16rM   x   s/    99V]]41Q8;<<r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )zRead an unsigned 32-bit integer>Ir   r   )r6   uint32r8   r9   r/   r:   s    r*   _read_uint32rQ   }   )    99V]]43A677r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )zRead an unsigned 64-bit integerz>Qr   r   )r6   uint64r8   r9   r/   r:   s    r*   _read_uint64rU      rR   r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )zRead a 32-bit floatz>fr   r   )r6   float32r8   r9   r/   r:   s    r*   _read_float32rX      )    ::fmmD!&&)4Q788r,   c                 |    [         R                  " [        R                  " SU R	                  S5      5      S   5      $ )zRead a 64-bit floatz>dr   r   )r6   float64r8   r9   r/   r:   s    r*   _read_float64r\      rY   r,   c                       \ rS rSrSrS rSrg)Pointer   zClass used to define pointersc                     Xl         g Nindex)selfrc   s     r*   __init__Pointer.__init__   s
    
r,   rb   N)__name__
__module____qualname____firstlineno____doc__re   __static_attributes__ r,   r*   r^   r^      s
    'r,   r^   c                       \ rS rSrSrSrg)ObjectPointer   z$Class used to define object pointersrm   N)rg   rh   ri   rj   rk   rl   rm   r,   r*   ro   ro      s    .r,   ro   c                 z    [        U 5      nUS:  a'  [        X5      R                  S5      n[        U 5        U$ SnU$ )zRead a stringr   latin1 )rA   r4   decoder+   )r(   lengthcharss      r*   _read_stringrw      sA    ]FzA&--h7! L Lr,   c                 r    [        U 5      nUS:  a#  [        U 5      n[        X5      n[        U 5        U$ SnU$ )z.Read a data string (length is specified twice)r   rs   )rA   r4   r+   )r(   ru   string_datas      r*   _read_string_datarz      sA    ]FzA!!,!  r,   c                    US:X  a%  [        U 5      S:w  a  [        S5      e[        U 5      $ US:X  a  [        U 5      $ US:X  a  [        U 5      $ US:X  a  [	        U 5      $ US:X  a  [        U 5      $ US:X  a1  [	        U 5      n[	        U 5      n[        R                  " X#S-  -   5      $ US	:X  a  [        U 5      $ US
:X  a  [        S5      eUS:X  a1  [        U 5      n[        U 5      n[        R                  " X#S-  -   5      $ US:X  a  [        [        U 5      5      $ US:X  a  [        [        U 5      5      $ US:X  a  [        U 5      $ US:X  a  [        U 5      $ US:X  a  [        U 5      $ US:X  a  [        U 5      $ [        SU-  5      e)z*Read a variable with a specified data typer   z*Error occurred while reading byte variabler   r   r   r   r	   y              ?r
   r   z'Should not be here - please report thisr   r   r   r   r   r   r   z)Unknown IDL type: %i - please report this)rG   	Exceptionr;   rE   rX   r\   r6   	complex64rz   
complex128r^   ro   rM   rQ   rJ   rU   )r(   dtyperealimags       r*   
_read_datar      sy   zq>QHII!}	!1~	!1~	!Q	!Q	!QQ||D"9,--	! ##	!ABB	!QQ}}T2I-..	"{1~&&	"[^,,	"A	"A	"1~	"ACeKLLr,   c           	      D   US   nUS   n/ nU H  nUS   (       d
  US   (       a9  UR                  US   R                  5       US   4[        R                  45        MP  US   [        ;   a5  UR                  US   R                  5       US   4[        US      45        M  [        SUS   -  5      e   [        R                  R                  U4US9n[        U5       H  nU Hw  nUS   nUS   (       a)  [        U US	   US      US
   US      5      XvS      U'   M;  US   (       a  [        XUS	   US      5      XvS      U'   Md  [        X5      XvS      U'   My     M     US   S:  a5  US   S[        US   5       n	U	R                  5         UR                  U	5      nU$ )zu
Read a structure, with the array and structure descriptors given as
`array_desc` and `structure_desc` respectively.
	nelementstagtable	structurearraynametypecodez Variable type %i not implementedr   arrtablestructtablendimsr   dimsN)appendlowerr6   object_
DTYPE_DICTr|   recrecarrayrange_read_structure_read_arrayr   intreversereshape)
r(   
array_descstruct_descnrowscolumnsr   colr   ir   s
             r*   r   r      s    {#E*%GE{s7|LL3v;,,.F<bjjIJ:*,s6{002CK@$.s:$?A B   B<?
O!L M M  	7I5\C
OE;,;A&1*&=c&k&J&1-&@V&M-O	f+&q) W,7&1*&=c&k&J-L	f+&q) -7q,@	f+&q)   'Q&!";3z'':#;<%%d+	r,   c                    US;   a]  US:X  a(  [        U 5      nX2S   :w  a  [        R                  " SSS9  [        R                  " U R                  US   5      [        U   S9nOUS;   a8  [        R                  " U R                  US   S	-  5      [        U   S9SS
S	2   nOX/ n[        US   5       H!  nUn[        X5      nUR                  U5        M#     [        R                  " U[        R                  S9nUS   S:  a5  US   S
[        US   5       nUR                  5         UR                  U5      n[        U 5        U$ )zT
Read an array of type `typecode`, with the array descriptor given as
`array_desc`.
)	r   r   r   r   r	   r   r   r   r   r   nbytesz.Not able to verify number of bytes from headerr   
stacklevelr   )r   r   r   Nr   r   r   )rG   warningswarnr6   
frombufferr/   r   r   r   r   r   r   r   r   r   r+   )	r(   r   r   r   r   r   r   datar   s	            r*   r   r     sD    11q= ^FH--N)*, affZ%9:$.x$8: 
W	 affZ%9!%;<$.x$8::;$Q$@ z+./AEa'DLL 0
 bjj1 'Q&!";3z'':#;<d# aLLr,   c                    S[        U 5      0n[        U 5      nU[        U 5      R                  [        R                  5      S-  -  n[        U S5        US   [        ;  a  [        SUS   -  5      e[        US      US'   US   S;   a  US   S:X  a  [        U 5      US'   O[        U 5      US'   [        U S5        [        U 5      nUS	   S
:X  a%  X R                  5       :X  a  SUS'   GO[[        S5      e[        U 5      nUS:w  a  [        S5      eUS   (       a  [        XS   US   5      US'   GOUS   (       a  [        XS	   US   5      US'   GOUS	   n[        X5      US'   GOUS   S:X  a8  [        U S5        [        U 5      US'   [        U 5      US'   [        U 5      US'   GOUS   S:X  a:  [        U 5      US'   [        U 5      US'   [        U 5      US'   [        U 5      US'   GOYUS   S:X  a,  [        U 5      US'   [        U 5      US '   [        U 5      US!'   GO$US   S":X  a  [        U 5      US#'   GOUS   S$:X  a  [        U 5      US%'   OUS   S&:X  a:  [        U 5      US''   [!        US'   5       Vs/ s H  n[        U 5      PM     snUS('   OUS   S):X  aH  [        U 5      US*'   [        U 5      US+'   [!        US*   5       Vs/ s H  n[        U 5      PM     snUS,'   O_US   S-:X  a  S.US/'   OPUS   S0:X  a  ["        R$                  " S1S2S39  O1US   S4:X  a  ["        R$                  " S5S2S39  O[        S6US    S735      eU R'                  U5        U$ s  snf s  snf )8z!Function to read in a full recordrectype        r   zUnknown RECTYPE: %i)r   r   r   varname
heap_indexr   r   Nr   zUnexpected type code: 0r
   zVARSTART is not 7r   r   r   r   r   i   dateuserhostr   formatarchosreleaseIDENTIFICATONauthortitleidcoder   noticer    descriptionr   nvaluesindicesCOMMONBLOCKnvarsr   varnamesr   TendUNKNOWNzSkipping UNKNOWN recordr   r   r   zSkipping SYSTEM_VARIABLE recordzrecord['rectype']=z not implemented)rA   rQ   astyper6   rI   r2   RECTYPE_DICTr|   rw   _read_typedescr&   
ValueErrorr   r   r   rz   r   r   r   r'   )r(   recordnextrecrectypedescvarstartr   _s          r*   _read_recordr   <  s    A'F1oG|A%%bhh/%77G1i,-y0AABB$VI%67F9i55)
* ,QF9#-a=F< 1$Q'z"a'&&("!%v !:;; "!}H1} 344;'!04M4?4N"PvW%!,QJ0G0;L0I"Kv $J/!+A!5v			k	)Au%av%av%av			i	'%a=x%av#At(Oy			o	-'?x&q/w'?x			h	&'?x			m	+ 1! 4}			m	+&qMy49&:K4LM4LqZ]4LMy			m	+$Q-w%av7<VG_7MN7M!l1o7MNz			l	*u			i	'/A>			/	/7AF ,VI->,??OPQQFF7OM5 N Os   8M	Mc                    [        U 5      [        U 5      S.nUS   S-  S:X  a  [        S5      eUS   S-  S:H  US'   US   S-  S:H  US'   US   (       a  [        U 5      US	'   [        U 5      US
'   U$ US   (       a  [        U 5      US	'   U$ )z%Function to read in a type descriptor)r   varflagsr   r   z System variables not implementedr   r       r   r   r   )rA   r|   _read_arraydesc_read_structdesc)r(   typedescs     r*   r   r     s     'qMz!}EH
a1$:;; ,q0A5HW$Z025;H[!0!3"21"5 O 
'	!0!3Or,   c                    S[        U 5      0nUS   S:X  a}  [        U S5        [        U 5      US'   [        U 5      US'   [        U 5      US'   [        U S5        [        U 5      US'   [        US   5       Vs/ s H  n[        U 5      PM     snUS'   U$ US   S	:X  a  [        R                  " S
SS9  [        U S5        [        U 5      US'   [        U 5      US'   [        U 5      US'   [        U S5        SUS'   / US'   [        US   5       H<  n[        U 5      nUS:w  a  [        S5      eUS   R                  [        U 5      5        M>     U$ [        SUS   -  5      es  snf )z'Function to read in an array descriptorarrstartr   r   r   r   r   nmaxr      z$Using experimental 64-bit array readr   r   r   zExpected a zero in ARRAY_DESCzUnknown ARRSTART: %i)rA   r2   r   r   r   rU   r|   r   )r(   	arraydescr   dvs        r*   r   r     sy    Z]+I!Aq(m	(!+A	+']	'Aq&qM	&49)F:K4LM4LqZ]4LM	&6 3 
:	"	$<KAq*1o	(!-a	+']	'Aq	&	&y()A1AAv ?@@f$$Z]3	 *  .:1FFGG3 Ns   7Ec                    0 n[        U 5      nUS:w  a  [        S5      e[        U 5      US'   [        U 5      n[        U 5      US'   [        U 5      US'   US-  US'   US-  US	'   US
-  US'   US   (       Gd=  [        US   5       Vs/ s H  n[	        U 5      PM     snUS'   US    H  n[        U 5      US'   M     US    Vs0 s H  nUS   (       d  M  US   [        U 5      _M      snUS'   US    Vs0 s H  nUS   (       d  M  US   [        U 5      _M      snUS'   US	   (       d
  US   (       ar  [        U 5      US'   [        U 5      US'   [        US   5       Vs/ s H  n[        U 5      PM     snUS'   [        US   5       Vs/ s H  n[        U 5      PM     snUS'   U[        US   '   U$ US   [        ;  a  [        S5      e[        US      nU$ s  snf s  snf s  snf s  snf s  snf )z*Function to read in a structure descriptorr   zSTRUCTSTART should be 9r   ntagsr   r   predefr   inheritsr   is_superr   r   r   r   r   	classnamensupclassessupclassnamessupclasstablez"PREDEF=1 but can't find definition)rA   r|   rw   r   _read_tagdescr   r   STRUCT_DICT)r(   
structdescstructstartr   r   tags         r*   r   r     sY    JQ-Ka122%aJv]F$Q-Jw%a=Jx!A:Jx#aZJz#aZJzh ,1G1D+E"G+Ea #0"2+E"G
: j)C&q/CK * .8
-C"3-Cc%(\ #B#f+q/A"A-C"3
:
 1;:0F%:0F(+K(8 &FS[2B12E%E0F%:
=! j!Z
%;&21oJ{#(21J}%).z-/H)I+K)IAQ)I+KJ' .3:m3L-M+O-M #-M+OJ' +5Jv&'  f[0@AA F!34
?"G"3%:+K+Os*   GGG5G$G$ G)G.c                     S[        U 5      0nUS   S:X  a  [        U 5      US'   [        U 5      US'   [        U 5      nUS-  S:H  US'   US-  S:H  US'   US   [        ;   US'   U$ )	z$Function to read in a tag descriptoroffsetr   r   r   r   r   scalar)rA   rU   r   )r(   tagdesctagflagss      r*   r   r   !  s     A'GxB(O$Q-GJ!}H!|q(GG#b=B.GK
+z9GH Nr,   c                    [        U [        5      (       a  [        U [        5      (       a`  U R                  S:X  a  S n O6U R                  U;   a  XR                     n O[        R                  " SSS9  S n [        U [        5      (       a  M`  [        X5      u  p#U(       a  Un SU 4$ [        U [        R                  R                  5      (       a2  [        U 5       H  u  pE[        XQ5      u  p#U(       d  M  X0U'   M!     SU 4$ [        U [        R                  5      (       a2  [        U 5       H  u  pg[        Xq5      u  p#U(       d  M  X0U'   M!     SU 4$ [        U [        R                  5      (       a  U R                  R                  [        R                  L aU  [        U R                   5       H<  n[        U R#                  U5      U5      u  p#U(       d  M)  X0R%                  S5      U'   M>     SU 4$ SU 4$ )Nr   zNVariable referenced by pointer not found in heap: variable will be set to Noner   r   TFr   )
isinstancer^   rc   r   r   _replace_heapr6   r   r   	enumerater   ndarrayr   typer   r   sizeitemr   )variableheapreplacenewirr   ivvalues           r*   r   r   4  s   (G$$7++~~">>T)#NN3HMM #J-.0  $H 7++ %X4HX~	Hbffoo	.	. $H-JB(6LGw" . h	Hbii	(	( #8,IB(5LGw" - h	Hbjj	)	) >>"**,HMM*,X]]2->E7/2$$R(, + h hr,   c                   P   ^  \ rS rSrSrSS jrU 4S jrU 4S jrS r\r	\r
SrU =r$ )	AttrDictiw  a  
A case-insensitive dictionary with access via item, attribute, and call
notations:

    >>> from scipy.io._idl import AttrDict
    >>> d = AttrDict()
    >>> d['Variable'] = 123
    >>> d['Variable']
    123
    >>> d.Variable
    123
    >>> d.variable
    123
    >>> d('VARIABLE')
    123
    >>> d['missing']
    Traceback (most recent error last):
    ...
    KeyError: 'missing'
    >>> d.missing
    Traceback (most recent error last):
    ...
    AttributeError: 'AttrDict' object has no attribute 'missing'
c                 8    Uc  0 n[         R                  X5        g ra   )dictre   )rd   inits     r*   re   AttrDict.__init__  s    <Dd!r,   c                 >   > [         TU ]  UR                  5       5      $ ra   )super__getitem__r   )rd   r   	__class__s     r*   r  AttrDict.__getitem__  s    w"4::<00r,   c                 @   > [         TU ]  UR                  5       U5      $ ra   )r  __setitem__r   )rd   keyr   r  s      r*   r  AttrDict.__setitem__  s    w"399;66r,   c                 z     U R                  U5      $ ! [         a    [        S[        U 5       SU S35      S ef = f)N'z' object has no attribute ')r  KeyErrorAttributeErrorr   )rd   r   s     r*   __getattr__AttrDict.__getattr__  sS    	N##D)) 	N DJ<:4&BDIMN	Ns    ':rm   ra   )rg   rh   ri   rj   rk   re   r  r  r  __setattr____call__rl   __classcell__)r  s   @r*   r   r   w  s)    2"
17N KHr,   r   c           
         / nU(       d  U(       a  0 nO
[        5       n[        U S5      n[        US5      nUS:w  a  [        SU 35      e[        US5      n	U	S:X  a  GOU	S:X  Ga  U(       a  [	        S5        U(       a  [        US5      n
O[
        R                  " S	S
9n
U(       a  [	        SU
R                   35        U
R                  S5         [        U5      nU
R                  [        R                  " S[        U5      5      5        [        U5      nU[        U5      R                  [        R                   5      S-  -  nUR#                  S5      n[$        U   S:X  a  [        R                   " S5      nU
R                  [        R                  " S[        U5      U-  5      5        U
R                  [        R                  " S[        XU-  -
  U-  5      5      5        U
R                  U5        OUR'                  5       n[(        R*                  " UR#                  X-
  5      5      nU
R'                  5       [-        U5      -   S-   nU
R                  [        R                  " S[        US-  5      5      5        U
R                  [        R                  " S[        XS-  -
  S-  5      5      5        U
R                  U5        U
R                  U5        GM  UR/                  5         U
nUR1                  S5        O[        SU	 35      e [3        U5      nUR5                  U5        SU;   a  US   (       a  OM/  UR/                  5         0 nU H  nUS   S:X  d  M  US   UUS   '   M     U HE  nUS   S:X  d  M  [7        US   U5      u  nnU(       a  UUS'   US   UUS   R9                  5       '   MG     U(       Ga  U HL  nUS   S:X  d  M  [	        S5        [	        SUS    35        [	        SUS     35        [	        S!US"    35          O   U H]  nUS   S#:X  d  M  [	        S5        [	        S$US%    35        [	        S&US'    35        [	        S(US)    35        [	        S*US+    35          O   U HL  nUS   S,:X  d  M  [	        S5        [	        S-US.    35        [	        S/US0    35        [	        S1US2    35          O   U H*  nUS   S3:X  d  M  [	        S5        [	        S4US5    35          O   [	        S5        [	        S6[-        U5       S735        U Vs/ s H  nUS   PM
     nn[;        U5       H*  nUS:w  d  M  [	        S8UR=                  U5      U4-  5        M,     [	        S5        SU;   a=  [	        S95        U H!  n[	        S:U S;[?        UU   5       S<35        M#     [	        S5        U(       a  U H  nUU   UU'   M     U$ U$ s  snf )=a	  
Read an IDL .sav file.

Parameters
----------
file_name : str
    Name of the IDL save file.
idict : dict, optional
    Dictionary in which to insert .sav file variables.
python_dict : bool, optional
    By default, the object return is not a Python dictionary, but a
    case-insensitive dictionary with item, attribute, and call access
    to variables. To get a standard Python dictionary, set this option
    to True.
uncompressed_file_name : str, optional
    This option only has an effect for .sav files written with the
    /compress option. If a file name is specified, compressed .sav
    files are uncompressed to this file. Otherwise, readsav will use
    the `tempfile` module to determine a temporary filename
    automatically, and will remove the temporary file upon successfully
    reading it in.
verbose : bool, optional
    Whether to print out information about the save file, including
    the records read, and available variables.

Returns
-------
idl_dict : AttrDict or dict
    If `python_dict` is set to False (default), this function returns a
    case-insensitive dictionary with item, attribute, and call access
    to variables. If `python_dict` is set to True, this function
    returns a Python dictionary with all variable names in lowercase.
    If `idict` was specified, then variables are written to the
    dictionary specified, and the updated dictionary is returned.

Examples
--------
>>> from os.path import dirname, join as pjoin
>>> import scipy.io as sio
>>> from scipy.io import readsav

Get the filename for an example .sav file from the tests/data directory.

>>> data_dir = pjoin(dirname(sio.__file__), 'tests', 'data')
>>> sav_fname = pjoin(data_dir, 'array_float32_1d.sav')

Load the .sav file contents.

>>> sav_data = readsav(sav_fname)

Get keys of the .sav file contents.

>>> print(sav_data.keys())
dict_keys(['array1d'])

Access a content with a key.

>>> print(sav_data['array1d'])
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0.]

rbr   s   SRzInvalid SIGNATURE: s    s    zIDL Save file is compressedzw+bz.sav)suffixz -> expanding to s   SR r>   r   r   r   rO   r   zInvalid RECFMT: r   r   r   r   r   r   r   r   z2--------------------------------------------------zDate: r   zUser: r   zHost: r   r   zFormat: r   zArchitecture: r   zOperating System: r   zIDL Version: r   r   zAuthor: r   zTitle: r   z	ID Code: r   r    zDescription: r   zSuccessfully read z records of which:z - %i are of type %szAvailable variables:z - z []) r   openr4   r|   printtempfileNamedTemporaryFiler   writerA   r8   packr   rQ   r   r6   rI   r/   r   r&   zlib
decompresslencloser'   r   r   r   r   setcountr   )	file_nameidictpython_dictuncompressed_file_nameverboserecords	variablesr(   	signaturerecfmtfoutr   r   unknownmodvalr)   
rec_stringrr   r   r   r   rectypesrtvars                            r*   r   r     s   L Ge	J	 	YA Aq!IE-i[9:: AF	;	/0!.6D..f=D%dii[12 	

=!  !mGJJv{{4W67 #1oG|A--bhh7%??G ffQiG G$4%

6;;tS\F-BCD

KKc76F+G6*Q&RS 

7# &&(C )<=J iikC
O3b8G JJv{{4Wu_)=>?JJv{{4g5.IU-R)STUJJwJJz"I N 	
	 	q	 *6(344 OqA:x  GGI DY<;&$%fID<! 
 Y<:%(6D9LGS&	./iIa	l((*+   Fi K/fvf~./0vf~./0vf~./0  Fi I-f!1 234vf~&678*6$<.9:fY&7%89:  Fi O3f!1 234w012	&"2!345  Fi M1ff]&;%<=>	  	f"3w<.0BCD +22'QAiL'2h-B\!,r0BB/GGH   	f!() C54	##7"8:; !&MC"3E#J % 3s   W)NFNF)'__all__r8   numpyr6   r  r  r   r   r   r   r+   r2   r4   r;   rA   rE   rG   rJ   rM   rQ   rU   rX   r\   r^   ro   rw   rz   r   r   r   r   r   r   r   r   r   r   r   r   rm   r,   r*   <module>r7     s@  < +      
" "$$$!!#  
;
7
<
7
7
=
8
8
9
9
 	G 	
	'MT*Z-`iX(,^3l&@F-t -` 0516pr,   