
    djU                        d dl Z d dlmZmZmZmZ  G d d          Z G d d          Z G d d          Z G d	 d
          Z	 G d d          Z
 G d d          Z G d d          Z G d de          Zi dddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4i d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVZi dWdXdYdZd[d\d]d^ddXddZdd\dd^dd_dd`ddad!dbd#dcd%ddd'ded)dfd+dgi d-dhd/did1djdkdXdldXdmdXdndXdodXdpdXdqdXdrdXdsdXdtdXdudXdvdXdwdXdxdXi dydXdzdXd{dXd|dXd}dXd~dXddXddXddXddXd3dd5dd7dd9dd;dd=dd?dddddddddddddZd Zd Zd Zd Zd Zd Z G d d          Zi ej        dej        ej        z  dej        ej        z  dej        ej        z  dej        dej        ej        z  dej        ej        z  dej        ej        z  d!ej        d#ej        ej        z  d%ej        ej        z  d'ej        ej        z  d)ej        d+ej        ej        z  d-ej        ej        z  d/ej        ej        z  d1ej        ej        z  ej        z  d3i ej        ej        z  ej        z  d5ej        ej        z  ej        z  d7ej        ej        z  ej         z  d9ej        ej        z  ej         z  d;ej        ej        z  ej         z  d=ej        ej        z  ej!        z  d?ej        ej        z  ej!        z  dAej        ej        z  ej!        z  dCej        ej        z  ej        z  dEej        ej        z  ej        z  dGej        ej        z  ej        z  dIej        ej        z  ej        z  dKej        ej        z  ej         z  dMej        ej        z  ej         z  dOej        ej        z  ej!        z  dQej        ej        z  ej!        z  dSej        ej        z  ej!        z  dUZ"de#de$dee#ef         fdZ% G d d          Z&d Z'dS )    N)AnyDictListTuplec                   0    e Zd Zd Zd Zed             ZdS )	Attributec                     d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d S N)gl_typeprogram_objscalar_typerows_length
row_lengthnormalizablelocationarray_length	dimensionshapenameextraselfs    D/home/agentuser/manim-venv/lib/python3.11/site-packages/_moderngl.py__init__zAttribute.__init__   s_      
	


    c                     d| j          dS )Nz<Attribute: >r   r   s    r   __repr__zAttribute.__repr__   s    .dm....r   c                     | S r
    r   s    r   mglozAttribute.mglo       r   N__name__
__module____qualname__r   r   propertyr"   r!   r   r   r   r      sM          / / /   X  r   r   c                       e Zd Zd Zd Zed             Zed             Zej        d             Zed             Z	e	j        d             Z	d Z
d	efd
ZdS )Uniformc                     d | _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d S r
   )r   r   fmtr   r   element_sizer   r   matrixctxr   r   s    r   r   zUniform.__init__   sV      	


r   c                     d| j          dS )Nz
<Uniform: r   r   r   s    r   r   zUniform.__repr__*   s    ,DM,,,,r   c                     | S r
   r!   r   s    r   r"   zUniform.mglo-   r#   r   c                 h                                       j        dk    rM j        dk    r! fdt           j                  D             S  fdt           j                  D             S  j        dk    rt	          j         j                  S t	          j         j                  d         S )N   c           	          g | ]<}t          j        j        |j        z  |j        z  j        z                      =S r!   structunpackr,   r-   .0idatar   s     r   
<listcomp>z!Uniform.value.<locals>.<listcomp>6   sZ        M$(DT5F1FTM^I^aearIr1r,stt  r   c           	          g | ]B}t          j        j        |j        z  |j        z  j        z                      d          CS )r   r5   r8   s     r   r<   z!Uniform.value.<locals>.<listcomp>;   s`        M$(DT5F1FTM^I^aearIr1r,sttuvw  r   r   )readr   r   ranger6   r7   r,   r   r;   s   `@r   valuezUniform.value1   s    yy{{q  ~!!    "4#455   
    "4#455    ^a=4000=40033r   c                 `     j         dk    rO j        dk    r"d                     fd|D                       }n_d                     fd|D                       }n= j        dk    rt          j         j        g|R  }nt          j         j        |          }                     |           d S )Nr3   r   c              3   F   K   | ]}t          j        j        g|R  V  d S r
   r6   packr,   )r9   rowr   s     r   	<genexpr>z Uniform.value.<locals>.<genexpr>H   s7      MMDH ;s ; ; ;MMMMMMr   c              3   L   K   | ]}t          j        j        |          V  d S r
   rD   )r9   itemr   s     r   rG   z Uniform.value.<locals>.<genexpr>J   s1      NNDHd ; ;NNNNNNr   )r   r   joinr6   rE   r,   write)r   rA   r;   s   `  r   rA   zUniform.valueD   s    q  ~!!xxMMMMuMMMMMxxNNNNNNNNN^a;tx0%000DD;tx//D

4r   c                     t           r
   )NotImplementedErrorr   s    r   handlezUniform.handleQ   s    !!r   c                 N    | j                             | j        | j        |          S r
   )r/   _set_uniform_handler   r   r   rA   s     r   rN   zUniform.handleU   s!    x++D,<dmUSSSr   c                 p    | j                             | j        | j        | j        | j        | j                  S r
   )r/   _read_uniformr   r   r   r   r-   r   s    r   r>   zUniform.readY   s4    x%%dmT\4;LdN_
 
 	
r   r;   c                 v    | j                             | j        | j        | j        | j        | j        |           d S r
   )r/   _write_uniformr   r   r   r   r-   r@   s     r   rK   zUniform.write^   sA    dmT\4;LdN_ae	
 	
 	
 	
 	
r   N)r%   r&   r'   r   r   r(   r"   rA   setterrN   r>   r   rK   r!   r   r   r*   r*      s          - - -   X 4 4 X4$ \
 
 \
 " " X" ]T T ]T
 
 


# 
 
 
 
 
 
r   r*   c                       e Zd Zd Zd Zed             Zed             Zej        d             Zed             Z	e	j        d             Z	dS )	UniformBlockc                 Z    d | _         d | _        d | _        d | _        d | _        d | _        d S r
   )r   indexsizer   r/   r   r   s    r   r   zUniformBlock.__init__e   s1    
		


r   c                     d| j          dS )Nz<UniformBlock: r   rZ   r   s    r   r   zUniformBlock.__repr__m       .....r   c                     | S r
   r!   r   s    r   r"   zUniformBlock.mglop   r#   r   c                 L    | j                             | j        | j                  S r
   r/   _get_ubo_bindingr   rZ   r   s    r   bindingzUniformBlock.bindingt       x(()94:FFFr   c                 R    | j                             | j        | j        |           d S r
   r/   _set_ubo_bindingr   rZ   r   rc   s     r   rc   zUniformBlock.bindingx   s'    !!$"2DJHHHHHr   c                 L    | j                             | j        | j                  S r
   ra   r   s    r   rA   zUniformBlock.value|   rd   r   c                 R    | j                             | j        | j        |           d S r
   rf   rQ   s     r   rA   zUniformBlock.value   s'    !!$"2DJFFFFFr   N
r%   r&   r'   r   r   r(   r"   rc   rV   rA   r!   r   r   rX   rX   d   s          / / /   X G G XG ^I I ^I G G XG \G G \G G Gr   rX   c                       e Zd Zd Zd Zed             Zed             Zej        d             Zed             Z	e	j        d             Z	dS )	StorageBlockc                 L    d | _         d | _        d | _        d | _        d | _        d S r
   )r   rZ   r   r/   r   r   s    r   r   zStorageBlock.__init__   s*    
	


r   c                     d| j          dS )Nz<StorageBlock: r   r]   r   s    r   r   zStorageBlock.__repr__   r^   r   c                     | S r
   r!   r   s    r   r"   zStorageBlock.mglo   r#   r   c                 L    | j                             | j        | j                  S r
   r/   _get_storage_block_bindingr   rZ   r   s    r   rc   zStorageBlock.binding       x2243CTZPPPr   c                 R    | j                             | j        | j        |           d S r
   r/   _set_storage_block_bindingr   rZ   rh   s     r   rc   zStorageBlock.binding   s'    ++D,<dj'RRRRRr   c                 L    | j                             | j        | j                  S r
   rr   r   s    r   rA   zStorageBlock.value   rt   r   c                 R    | j                             | j        | j        |           d S r
   rv   rQ   s     r   rA   zStorageBlock.value   s'    ++D,<dj%PPPPPr   Nrk   r!   r   r   rm   rm      s          / / /   X Q Q XQ ^S S ^S Q Q XQ \Q Q \Q Q Qr   rm   c                   0    e Zd Zd Zd Zed             ZdS )
Subroutinec                 0    d | _         d | _        d | _        d S r
   )rZ   r   r   r   s    r   r   zSubroutine.__init__   s    
	


r   c                     d| j          dS )Nz<Subroutine: r   r]   r   s    r   r   zSubroutine.__repr__   s    ,tz,,,,r   c                     | S r
   r!   r   s    r   r"   zSubroutine.mglo   r#   r   Nr$   r!   r   r   r{   r{      sM          
- - -   X  r   r{   c                   0    e Zd Zd Zd Zed             ZdS )Varyingc                 L    d | _         d | _        d | _        d | _        d | _        d S r
   )numberr   r   r   r   r   s    r   r   zVarying.__init__   s*     	


r   c                     d| j          dS )Nz
<Varying: r   )r   r   s    r   r   zVarying.__repr__   s    *DK****r   c                     | S r
   r!   r   s    r   r"   zVarying.mglo   r#   r   Nr$   r!   r   r   r   r      sM          + + +   X  r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )DefaultLoaderc                    dd l dd l}fd|j                            d          rz                    d                              j                            j        j	                            
                                st          d          fd}n|j                            d          r	                     d                              j                            j        j	                                                            st          d          fd	}n #                      d
                              j                            j        j	                                                            st          d          fd}Y nxY w|j                            d          r                    d          fd}nk|j                            d          r                    d           fd}n5|j                            d          r                    d           fd}|| _        d S )Nr   c                 f                         t          | |d          j                  j        pdS )Nr   )castgetattrc_void_prA   )libr   ctypess     r   funcptrz'DefaultLoader.__init__.<locals>.funcptr   s.    ;;wsD!44foFFLQPQQr   winzopengl32.dllz(Cannot detect window with OpenGL supportc                 V     |                                            p |           S r
   encoder   r   r   procs    r   loaderz&DefaultLoader.__init__.<locals>.loader   s,    tDKKMM**@ggc4.@.@@r   linuxz	libEGL.soc                 >     |                                            S r
   r   )r   r   s    r   r   z&DefaultLoader.__init__.<locals>.loader   s    4...r   zlibGL.soc                 V     |                                            p |           S r
   r   r   s    r   r   z&DefaultLoader.__init__.<locals>.loader   s,    4..D''#t2D2DDr   darwinz2/System/Library/Frameworks/OpenGL.framework/OpenGLc                      |           S r
   r!   r   r   r   s    r   r   z&DefaultLoader.__init__.<locals>.loader       wsD)))r   
emscriptenc                      |           S r
   r!   r   s    r   r   z&DefaultLoader.__init__.<locals>.loader   r   r   wasic                      |           S r
   r!   r   s    r   r   z&DefaultLoader.__init__.<locals>.loader   r   r   )r   sysplatform
startswithWinDLLr   wglGetProcAddressWINFUNCTYPEc_ulonglongc_char_pwglGetCurrentContextRuntimeErrorCDLLeglGetProcAddress	CFUNCTYPEeglGetCurrentContextglXGetProcAddressglXGetCurrentContextload_opengl_function)r   r   r   r   r   r   r   s      @@@@r   r   zDefaultLoader.__init__   s   


	R 	R 	R 	R 	R <""5)) ,	*--//C;;s4f6H6HI[]c]l6m6mnnD++-- O"#MNNNA A A A A A A A \$$W-- #	*Ekk+..{{3#8&:J:J6K]_e_n:o:opp//11 S&'QRRR/ / / / / /Ekk*--{{3#8&:J:J6K]_e_n:o:opp//11 S&'QRRRE E E E E E E E E \$$X.. 	*++RSSC* * * * * * * \$$\22 
	*++d##C* * * * * * * \$$V,, 	*++d##C* * * * * * %+!!!s   A6D9 9A:F5c                     d S r
   r!   r   s    r   	__enter__zDefaultLoader.__enter__       r   c                     d S r
   r!   )r   argss     r   __exit__zDefaultLoader.__exit__   r   r   c                     d S r
   r!   r   s    r   releasezDefaultLoader.release  r   r   N)r%   r&   r'   r   r   r   r   r!   r   r   r   r      sQ        5+ 5+ 5+n        r   r   c                       e Zd ZdS )ErrorNr%   r&   r'   r!   r   r   r   r             Dr   r     )r3   r   r3   r3   Fr:   iS  )   r   r3   r   Fr:   iT  )   r   r3   r   Fr:   iU  )   r   r3   r   Fr:     )r3   r   r3   r3   Fr:   iƍ  )r   r   r3   r   Fr:   iǍ  )r   r   r3   r   Fr:   iȍ  )r   r   r3   r   Fr:     )r3   r   r3   r3   TfiP  )r   r   r3   r   Tr   iQ  )r   r   r3   r   Tr   iR  )r   r   r3   r   Tr   
  )r3   r   r3   r3   Fdi  )r   r   r3   r   Fr   i  )r   r   r3   r   Fr   i  )r   r   r3   r   Fr   iZ  )r   r   r   r   Tr   ie  )   r   r   r   Tr   if  )   r   r   r   Tr   ig  )r   r   r   r   Tr   i[  )	   r   r   r   Tr   ih  )   r   r   r   Tr   ii  )r   r   r   r   Tr   j  )r   r   r   r   Tr   \  )   r   r   r   Tr   F  )r   r   r   r   Fr   I  )r   r   r   r   Fr   J  )r   r   r   r   Fr   K  )r   r   r   r   Fr   G  )r   r   r   r   Fr   L  )r   r   r   r   Fr   M  )r   r   r   r   Fr   N  )r   r   r   r   Fr   H  )r   r   r   r   Fr   iV  Fr3   r   1iiW  )Fr   r   2iiX  )Fr   r   3iiY  )Fr   r   4i)Fr3   r   1I)Fr   r   2I)Fr   r   3I)Fr   r   4I)Fr3   r   1f)Fr   r   2f)Fr   r   3f)Fr   r   4f)Fr3   r   1d)Fr   r   2d)Fr      3d)Fr       4di]  i  iɍ  i΍  i^  iʍ  iҍ  i  iύ  i׍  i_  iˍ  iӍ  ib  i  i	  i
  i  i  i  i`  i̍  iԍ  iM  )Tr   r   r   )Tr   r   6f)Tr   r   8f)Tr   $   9f)Tr   0   12f)Tr   @   16f)Tr   r   r   )Tr   r   6d)Tr   r   8d)Tr   H   9d)Tr   `   12d)Tr      16d)r   r   r   r   r   r   r   r   r   r   r   c                    t                               |d          }|\  }}}}	}
}||z  }t                      }||_        ||_        ||_        ||_        |	|_        |
|_        ||_	        ||_
        ||_        ||_        | |_        |S )N)r3   r   r3   r3   F?)ATTRIBUTE_LOOKUP_TABLEgetr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   tmpr   r   r   r   r   r   ress                r   make_attributer   p  s    
 
$
$W.F
G
GCKNHI{K\5<K
++CCK!CO!CO!COCN#CCL#CCMCICHJr   c                     t                               |d          }|\  }}}	}
t                      }| |_        ||_        |
|_        ||_        ||_        ||_        ||_	        ||_
        |	|_        ||_        |S )Nr   )UNIFORM_LOOKUP_TABLEr   r*   r   r   r,   r   r   r   r.   r   r-   r/   )r   r   r   r   r   r/   r   r.   r   r-   r,   r   s               r   make_uniformr    s|    

"
"7,?
@
@C+.(FI|S
))CCHCKCG!COCL#CCJCM#CCGJr   c                 h    t                      }| |_        ||_        ||_        ||_        ||_        |S r
   )rX   r   r   rZ   r[   r/   )r   r   rZ   r[   r/   r   s         r   make_uniform_blockr    s3    
..CCH!COCICHCGJr   c                 Z    t                      }| |_        ||_        ||_        ||_        |S r
   )rm   r   r   rZ   r/   )r   r   rZ   r/   r   s        r   make_storage_blockr    s,    
..CCH!COCICGJr   c                 >    t                      }| |_        ||_        |S r
   )r{   r   rZ   )r   rZ   r   s      r   make_subroutiner	    s    
,,CCHCIJr   c                 Z    t                      }||_        | |_        ||_        ||_        |S r
   )r   r   r   r   r   )r   r   r   r   r   s        r   make_varyingr    s-    
))CCJCH#CCMJr   c                   F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdS )Spvr3   r   r   r   r   r   i   i   i   i   i    i  @ r   i   @N)r%   r&   r'   INT32INT64UINT32UINT64FLOAT32FLOAT64VEC2VEC3VEC4MAT2MAT3MAT4NONEUNKNOWNr!   r   r   r  r    sT        EEFFGGDDDDDDDGGGr   r  programspvreturnc                 0   !"#$% t          j        d          %%fd}t                    dz  } |d          dk    st                    dz  dk    rt          d          d}i }i }i $i }i }i !i }	i }
||k     rb ||          dz	   ||          d	z  }}|dk    rN|d
z   dz  ||z   dz  }}||                             d                                          | ||dz             <   |dk    r: ||dz             | ||d
z             <    ||dz             | ||d
z             <   |dk    r ||dz             |
 ||dz             <   |dk    r ||dz             | ||dz             <   |dk    r ||dz              ||d
z             dz  }}t          j        }|dk    r&|dk    rt          j        }n8|dk    rt          j	        }n%|dk    rt          j
        }n|dk    rt          j        }|dddf! ||dz             <   |dk    rWt          j        } ||d
z             dz  }|dk    rt          j        }n|dk    rt          j        }|dddf! ||dz             <   |dk    rst          j        } ||dz             }|d
k    rt          j        }n%|dk    rt          j        }n|dk    rt          j        }| ||d
z             ddf! ||dz             <   |dk    rst          j        } ||dz             }|d
k    rt          j        }n%|dk    rt          j        }n|dk    rt          j        }| ||d
z             ddf! ||dz             <   |dk    r7t          j         ||d
z              ||dz             df! ||dz             <   |dk    r7|dz   dz  ||z   dz  }} ||dz             ||         f$ ||d
z             <   ||z  }||k     b"$fd#!"#fd"!                                D ]} "|           |                                D ]0\  }}||         }|!v r!|         d         !|         d         f|	|<   1t/          t1          g |
                                |	                                |                                |                                                    }i }|D ]G}d\  }}}}}||v r||         }||v r||         }||	v r|	|         \  }}||
v r|
|         }|||||f||<   H|                                D ]T\  }} | d
         dk    s| d
         t2          vr!| d         | d         t2          | d
                  | d         | d         f||<   U fd|                                D             S )NIc                 \                         | dz  | dz  dz                      d         S )Nr   r   )r7   )r:   r  ui32s    r   <lambda>z"parse_spv_inputs.<locals>.<lambda>  s.    dkk#a!ea!eai&7"899!< r   r   r   i#zinvalid spv   r   i  r       r3   ;   r   G   r      r         r      +   c                    |          \  }} |          \  }}|t           j        k    r#t          j        d|d d                   d         S |t           j        k    r#t          j        d|d d                   d         S |t           j        k    r#t          j        d|d d                   d         S |t           j        k    r#t          j        d|d d                   d         S |t           j        k    r#t          j        d|d d                   d         S |t           j        k    r#t          j        d	|d d                   d         S dS )
Nr:   r   r   qr   r   Qr   r   )	r  r  r6   r7   r  r  r  r  r  )const_idtype_idcontenttyp_assemblyextracted_constantss        r   decode_constantz)parse_spv_inputs.<locals>.decode_constantY  s2   .x8'""Q#)=gbqbk22155CI=gbqbk22155CJ=gbqbk22155CJ=gbqbk22155CK=gbqbk22155CK=gbqbk221551r   c                     |          \  }}}}|dk    r|dk    r 	|          }|dk    r |          \  }}||z  }||z  }|dd|dk    r|ndf| <   ||fS )Nr)  r   r3   r!   )
r2  r4  thrw_typarr_const_id
arr_lengthadd_typmulti_arr_lengthallowed_typesr6  r8  s
          r   r6  z"parse_spv_inputs.<locals>.assemblyk  s    2?2H/X|Z2*"2"2(66Jr>>(0(:(:%G%C-C#&66J"%r2Z!^^zzQR!SgJr   ) r)  r)  r)  r)  c           
      h    i | ].\  }}}}}|d k    |dk    |dk    |t          ||||          /S )r3   r)  )r   )r9   r   clsgltyper   r<  r  s         r   
<dictcomp>z$parse_spv_inputs.<locals>.<dictcomp>  sV       3D#vx!88B6R<< 	.vw*MM+7<<r   )r6   Structlen
ValueErrorrstripdecoder  r  r  r  r  r  r  r  r  r  r  r  r  r  r  keysitemssortedsetTRANSLATION_TABLE_SPIRV_GLSLvalues)&r  r  token
num_tokensidxextracted_namesextracted_storage_class_idpointer_variablepointer_allowed_typesextracted_typesextracted_locationr   opcode
name_startname_endunsgbszto_writevszmszcontent_startcontent_endr2  idspointer_type_idexrtacted_general_idsextracted_collectedr   rB  r4  r   r<  rI   r?  r6  r8  r7  r"  s&   ``                               @@@@@r   parse_spv_inputsrg    s)   =D<<<<<ESQJuQxx:SA!2!2'''
C&(O138:'),.:<M24O)+



uSzzR'sf)<fQ;;$'!Gq=3:2BJ.1*X2E.F.M.Mg.V.V.].]._._OEE#'NN+R<<9>sQw&uuS1W~~6 05uS1W~~UU37^^,R<<16sQwuuS1W~~.R<<49E#'NN!%%a..1R<<cAgcAg!(;#D{Hqyy!88"zHHAXX"zH!88"yHHAXX"yH-5r2r,BM%%a..)R<<{H%a..A%Caxx;;-5r2r,BM%%a..)R<<{H%a..Caxx888-5uuS1W~~r2,NM%%a..)R<<{H%a..Caxx888-5uuS1W~~r2,NM%%a..)R<<-0XuuS1W~~uuSSTW~~WY,ZM%%a..)R<< +.'Qtq8H;M385q>>3}U`G`Ca2bcAg/t_ 


h     $       !%%''   0 6 6 8 8 Z Z_'8m##$1'$:1$=}W?UVW?X#YOC  (.#((** %%'' ,0022 !%%''		
 	
	( 	( FH$ J J/A,c3*/!!"3'D,,,,S1C/!!-c2OC$$$)#.H$(#sHj#IC   )..00 o o	T7b==DG+GGG$(GT!W6RSWXYSZ6[]abc]dfjklfm#nC     7J7Q7Q7S7S   r   c                       e Zd ZdS )InvalidObjectNr   r!   r   r   ri  ri    r   r   ri  c                 H      fd}dd l }|                    d||          }|S )Nc                     |                      d          }j                            |          }|t          d| d          |S )Nr3   zcannot include "")groupincludesr   KeyError)matchr   r3  r/   s      r   includez!resolve_includes.<locals>.include  sK    {{1~~,""4((?5d555666r   r   z#include\s+"([^"]+)")resub)r/   sourcerq  rr  s   `   r   resolve_includesru    sB         IIIVV+Wf==FMr   )(r6   typingr   r   r   r   r   r*   rX   rm   r{   r   r   	Exceptionr   r   r  r   r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r  rN  intbytesrg  ri  ru  r!   r   r   <module>rz     s
    ) ) ) ) ) ) ) ) ) ) ) )       .E
 E
 E
 E
 E
 E
 E
 E
PG G G G G G G GBQ Q Q Q Q Q Q Q@               ? ? ? ? ? ? ? ?D	 	 	 	 	I 	 	 	#
)#
)# )# )	#
 )# )# )# )# (# (# (# (# )# )# )#  )!#" (## #$ (%#& ('#( ()#* (+#, )-#. (/#0 )1#2 )3#4 )5#6 )7#8 )9#: );#< )=#> *?#@ )A#B *C#D *E# # J?
?
?  ?  	?
 ? ?  ?  ? ? ?  ?  ? ? ?  ?   !?" #? ?$  %?&  '?(  )?* +?, -?. /?0 1?2 3?4 5?6 7?8 9?: ;?< =?> ??@ A?B C?D E? ? ?F G?H I?J K?L M?N O?P Q?R S?T U?V W?X Y?Z [?\ ]?^ _?` a?b c?d !e?f g? ?h "!!!"}? ? ? D  &  "               (# Iv# I&#  I&#  I&	# 
 J#  J6#  J6#  J6#  K#  K#(F#  K#(F#  K#(F#  K#  K#(F#  K#(F#   K#(F!# " K#(SX%v##  # $ K#(SX%v%# & K#(SX%v'# ( K#(SX%v)# * K#(SX%v+# , K#(SX%v-# . K#(SX%v/# 0 K#(SX%v1# 2 K#(SX%v3# 4 K#(SX%v5# 6 K#(SX%v7# 8 K#(SX%v9# : K#(SX%v;# < K#(SX%v=# > K#(SX%v?# @ K#(SX%vA# B K#(SX%vC# D K#(SX%vE#  #  Luc u u$sI~2F u u u up	 	 	 	 	 	 	 	    r   