petsc-doc-3.14.5-150300.3.2.1<>,4bp9|ʧ6^cOlHKʓt9rs(Vl\-СҰ4zTc.W45 p`=hc{O -fjXH(GVmyL-U-B]ΌиzL- 81usd4kDn*L60rk#>^ L\>z97i^czeU[`&<>fr7+w2Z-&}-*X FS|R:4X!M#5.1Mm>; |? ld   8lpx|  dd   ǰ * i 0aOnݐ @ @ @ A[( Aw8 A,9 B0,: E6,F x\G xpH ۼI ?X WY W\ W] @^ #?b 1Tc 1d 2e 2f 2l 2u 2v z    & hCpetsc-doc3.14.5150300.3.2.1Documentation for petscThis package contains the documentation for petsc.bsheep21RSUSE Linux Enterprise 15SUSE LLC BSD-2-Clausehttps://www.suse.com/Documentation/HTMLhttps://www.mcs.anl.gov/petsc/linuxnoarch -=,))>Yk2T8BG 4 <&-P$+0*5@pC92t6$(#./a#NH3f[\qfBo ` j . [ Yo )k wm  ` kgNl C ~X>2 e + 4 j J & Z AL Y  C  i7 0 S\ n }7D U    X<q2  ZX$ Catzm  !! I p dC Rq 8O  @ 7  m  9  y 7 B a . r V  M 9 V t d C @ [  X  O F _   o Y m  Z&  T D J   F Q\  :5 ' ? ( c  * ) %l5_ 3  # r 2I 8 ~ i 0/ i ) Uz    Y e 0 %T |= n g }  p K c 9 t z  w ( H  ` 7 3 2 3 u l } Z \ W b z-a s ^ ' Wvi  m H 7 7 j5%` h 1# q Y9 !  '   |S  p gS$' . + 3  K  v ^   1 t =  C ` X Al * o u s  w   n # Z  0 7 F @ l Qb^5t ) &' a,' `    y c  . }  a}  h  +  9 /  x 9  R S}  [ $ + B < , g P / ; X  , (a ; c [  e f 8 | J l  p ? < 0 2  p l    @ }_sr  0 X#l  & y Q } A T 5   d % &  7  0 2  0 - 1   T R 7 S Qp MV w @  * b h @+ W X L = T  !.    D  3\ U f N  ? I > z `  J T b D Y L d ^ U  v   F f  ^ sg . \ * O O / r - 0 n "  z ' B ` j D  t 8 ' $   @ c   @c  , u q G ,  m  w @ -(  l +  V   f Q B .  U q  S  G F` qZ | J; : s c b 1  T Xf T%OT o `  0x   R u z b` _"A Z-  Q +] o! P vsH * |  B C d ] a =  y ( fD - P! <  2    $ ]  S46$s   s h ~ |26 B  2,3 %" E   Z ' K 46Z% 25 d4 43A%     M b n Z   _ C  m  V, F &   ; 7 7 d [  k 0 )  ;w f f :U K+ a ? P ] U  4 k i= A _ "  1 : / s "tc Z  < @ )6+ m$ # U 2  i / X mX ,   *  T " "  t   R l y  SX& I  G  E  c 5    Xa3 O [ \ 0 E  t | l h B   u K * W   F  ; L  q #  t  F8 y T C C v@ ` [ Z} i) + f  " I   Bg S / ~ W5 . > J 7 !,x  v G L z 5  \   `e ? B ZB ( "  T;  % O ( , _& m   3 U :  l  - L {  n+c  ( M @`y   i ;1 n u [b uY 4 M p " *#} w [ _ /   ; N n >  9 <  8| V 5 Z v    u    L G6< _: x S #   R I  ' % 7 x q _ 5 _ 3 gJ |   w kQ D & Dgc T ] o K 1P P.  v_ [   ]Y _ U  ? [  o   ?  7    i _  P j ^ R U 5 s  _ ( {  G / 2# $ > O2  ? 63 8  !  - 3 D  f A  o ? *% Ny  t 2Y0 K r  / l  X -S ~ R#n Ji  `  W 6" K@     L D Q= aA&` < u) ) I T   8 , r D ~ I B sL . B W   ) ) 6 N ( oJ\  s ' p )  f jT     5L 3  6 981   q"Yi F  t y : k   :p22#'%xLPF Y t `x J agt -  W#-^ 4j(Z  {1+ y"NH ? Pk : O l T  Q f n   ? D > | .   Ov T n ]  u mL B Eq 9  o  m = { 81 ` G   Z w n 047m  aa S   @   j K+ { % lb N M O!WK  L b  ?3 v v0% + ? 45 | @A m  % Wf g x B > 2 Q "MU{{q   : W 08 , f  Q ` ( S 5v 9 n !` x / R = Q 0   '  j D /  j x s > kB    3 _< Pk+} & j@D !t 3  ,PF&*m r V l + 8 4. _  bjU' .`jAG )d u ;j  4( b1{ ;z] - = r _ d  [ 8   ' +uF  w E 8  q 5   7q [ e Y ? 6  D /% `  6 i 4% e    2;    +o (  m)^  h | > E { S [ ~  K O d  2* !  3 ")  o %: w ~ *  *r+  j 5  L : B  M . ! U  fl  &  I S  - xK P uJ uZ R + $ m  < 5 X = 0 f | ( <  J   6 %i ) ~'T > q cn E f J : y >C  D d  [ e r B j  _  e F  oAu .} N K8  n  D    ; ~ g  | n    " R 7 P  E ~  Z}Z C  e + : # |h~   7 - K ? 1 w.:X P - / &P )a" < ? @%P]   8- ;#  C 6 m k l )k v! } }* c3 a P   z     u >  M -y  L y US  >4  Q D m ] t Y 9   B S v  HC h    %   Z    o n   g 0 u _ d J 1  sJ  C ( + } & Z 3%> v S F U= F  e(#N   t )    ?   q $  ? T R P1P h 5 s  N w?  ( = p0 ?   rZc < i " q U  l G +2, ;T A u#x .4 0~ 5   ' = |   C   P Q[ B 5 3 h ] M F N A Y: 0 b Z n a 0k  _W `FZ , l *  Wp H HX v y c p n & 0  e  { ( ` B  > -5 S ^* #  \R  B  O T a % A | f mn i \   1 ^ }\  P   " b _ .'    I w  : d_ F / 5 %  p 6 +  W i  % G &  zm &  : f  4  v   o   c E '4 8   M f ; V3  9 pQ m > 9  n) g8 h9*_ Ez^  } p [  655VmpZK T M  m S r   u / [ : G  .n    @5 'c R R &OY C * Z r h 9   3 I { |  j _ e j  v b  F[ | %  T w V C7  1 i s ^ $ = $T=~M V  % m M @(    j 7  >G,  Z P  W  ! 9 r l L  DW v F  9{d  # hK U g 2   v . n   i n } n 2 d A   g y' -   v A F j /{ ^ y  W OQra L  Z  U m n g  8 W < N Y _ JG#)b  S @P Y 9d D 1/d#)b P 8 = u  1 D5 ' | 1r m ^ ,ke  vJ  d VL I . e % 6 p _+ i  " +l  n E < } S  d & '2 Q ( '  E + 2    i x r , Y h   I z @ Y n j r .h  H b  {  S  h } y t # a g C  >b m  P # Q[  m   {sp1 [ Q 5TU ^c1 w =   b ~ %e{PC ) | 9 Cw K Uh  * ;p Y \  8 K U A  } x]  E ^ ||    V   c *C k W 4 7 x U V } g C o  { V   V q  K    = 8  m  ,  7   3 > 5-     d^tA# 3 * = I   u*EP }o } "b3 ;I eTO  0jHU PJ! V i    r h  9  3 .    7  N v 0 i  .* } D  f g m n T X Q t i q H    NY> - ` Hm F  Jt: A: s2  / p  S r j -  t    y   s = K j x$   ! [Ck][]  MN  & : uM =$ c C 1  +: WpX    t  x q C ` 6 i u  K)  V .D\==n)* DW  ; `X e Nl 5a ( ` p  r0    $ $ D dP: m + [;$ x N } & 4Vz  @    - +j  O  `  h   eBMQxuc]  ; " v@  zm$aU x v 8wax?W DW{S ^ <   6 r $   }   p5 e ' # f $ e ! " 6'B  (  `  n)I X & m n m Y F @  u W \  R - *    AtM  I +  a i $L4M I *  1 Wg N +   z k  - oH8 D = M $   Xpc a w n xe n V } 3 /D   C < ! %*Z N  H 5AN  0X   4 D V  % c 6B]l @ ^ _ a9   x;v a `4p#a  k  ] k & G  L5 2 f  ^#   jF @  U  w c 2 F  k 45  ( z ~ + S1=6B   9  \  % ?An""6 ( & M 6    u I~  L |   z u h$f ;(t *  y; : Z  !  {4 m  r g  /   -N H 2 V  q Jx  v $ T r ~   j $U2Fq^gx u]qD8s3 F  z3.Ͳ5Y8?yzh3n}VH9KC /=Tc:T4 |{74 $]H/Wz= \]<"4$m X oH , 5N{-&@M>u'-j -Tr/EB@s]N?Us: Iεx/k$J+G,XQl *_ZxZ?KS`/l!'&1|o e;S"m647%I,ϺV"G?U_KFgu4i.0x(CGgw! \A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤b`@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ g`@ `@ `@ `@ `@ y`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ x`@ y`@ y`@ }`@ y`@ y`@ y`@ y`@ y`@ `@ `@ `@ `@ `@ y`@ |`@ y`@ y`@ y`@ y`@ y`@ y`@ y`@ y`@ y`@ y`@ z`@ z`@ z`@ z`@ z`@ {`@ {`@ {`@ {`@ {`@ |`@ |`@ `@ `@ ____`@ `@ `@ `@ _____l_`@ `@ _`@ _`@ `@ _`@ `@ `@ `@ _`@ `@ `@ `@ `@ _`@ `@ `@ `@ `@ _`@ __`@ `@ _`@ _`@ _`@ `@ `@ `@ _`@ `@ `@ `@ _`@ __`@ `@ u`@ u`@ `@ u`@ u`@ u`@ u`@ v`@ `@ `@ u`@ u`@ u`@ `@ u`@ `@ u`@ u`@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ `@ k0e21ed5b374e663c79bdee43cf5385dcc7127c0b2cb80eab45201d21a1c706f1b2259ce7eb8ea4154c98655826de4710530273a41890967e88c54ece590970e716529a14a148cef3f8de3540141328542427a7beba4c7d7e81fd38072799f69c72ecaf1ff6c8aa59c6210abcbd25f9d1092c19927e69e74ab7cd09c3260508bd242e976f8481b6a79f70bb7dc0d4dadc80dc53cb9fe6965c9e086a4beffe0d1e562b6ddf1d7e9584b2317363ea828330693c4dd6c4f8f3588169a3d4e3194b7d9eb748e646140fe9b478d060b5f1db48b9f05ed967f39f091cf4446efc4e3e0b88f41544ef94af581b28319a0b5364dc2823911a47ed7c02de6a0b5efa06d64e988ea10e7cf2fb27c80341d777e906ac30e6d7c07e05ec138c84f6aac1e637a588ed58a7e5828a3ba3ee853dfcccfe9f62b0e9e9d3b04f8fca2cb79afad93e927aefb714a2c64f8eea144235b8cc27baeaedde532edd23a213050c9482191eb8b8d9b2794a3d0945efde4f16b583c5f97be038b9daa5b8e346eaf24df536857ea612e92fe8ba462790e44eded0125b5d7b754f4f524b7c1f5196da7b60c1da596235e753bb6dba71f67352fb7c8f1ce7bce29c6e2e8f5e27d4347942190fff0d318b5642b7e04a9b5155aa86be41f5b99c8e073016167af5c79cdc6117221ed5d53399b4f7b476d4af1f5c03c8577bcdfc7615a03e40581708e30a38f3e879391768c221f0fe6f7f54e1f1e702457a03261ef8f7e552498535b43e3fd23e1fe7778f8f7547adcb89ecd2822145b6a6e4e92906f8fa20d3ae808aeb7aa8acf633b66a9a13629c2b4d4aa87fc9f865bb172f79fb9fea8c95aab4d6b8e19b11e96478b255f8c4325a6b67239ba46d498a34f6b6f7fa10b3cb61ed8e5a840deae982b39163c8a7ae33e26de6b9550c6ab8242840af7e9a8452ec00117f1caec3d25ce3ee1ae881f2851acc3b6ef89eef3659f9817098353e6cdc1aa83c52139c8b756052d2cbb26bfd15890ef177d9bf91f037aa8a661b786435b5e57c7a5e8808f5ddc72ae50e952aa005391330873f605c7dd367afefedd0b3bd31bbbbcd2e93832f01779ed3d4b4595a76d3981e79c0b3e269f0067e06bbf00328cd10bddd7e44b2860bf34e938cb3efd2042d260e0ce375f8c22621744ac87b0ae1b674691b82c53af6867824507beb2f15e47108665d4dee55c92d65ff9acee51f442dedca0a4acf33fb8214ace7a9abd5a2ccfb59854322763a9e2bac9d8e02352f4b3825a635eea669a5bd0f6c3c7e69bd12cadf683209546c67ce292cf1269ac4e9656c68541342139266a8ad23d99fab75c19d29b5e280dbdd8df94adb54a1ce9ef1416ff62ae40a18c8df040dcecd0c5b94ac03b8db7f3f0424455326be3fd0de746e698d70738b98ee58f454e465412b8b5028e7a1ad967f1feff5b9af1dd1aeed8db89e10ffd0e12e024735666e486c36bb7828f0adc6f074b1869941220d6023f5258cca169398692f70ac5afff4bcac07c8bead8534a81e97c0f604c5771b64ae76223676b83f60e89f5a9bcd8695ea59c43ebf824d62e86f2dd7a432f9469a4078fef4cc70282e53678e9f5c78c563d5f38da644ae9902e95df47d4d650d4407f18f939b52bdcb98141d676b803bf685bb6873ec14a138ee90f28a72ecad3ae68d32e74b3268fded4b05f4ed87a3a394b380dfdace95a3d33c93dd9c24ed19efbbc16b7589bad3c2d9826e7087ed32225493328e2bdbf30521917eecaa7019b2926fe7f401923b686262b202bbfc5e81136cc4c81a044c6fb8f12e5247ca3ce17bb83aaa526c4750b02abda64cee9f108134bbc17eb3ab2c99b28fd6824e8929c6fecebfb2700aebd0ebf10ccf9062488343bf86da70af5a5ae6b194f69b8d33a1ca91ef9249fc4a21b5ef1a2a14872bad2d05d728950169171008108dcf29c293cc108463138a85ecbff33ceed4617e58540856a4e3fb1aab90daee84662152582187628f82691dbdf7d54797ad18a387aa91765786927a063c235facfd27a5b89fc1ca9c386219f4c49286e6352b2a0474b279bdd485a16cc127a74cef86bd11b1579a76ea3a0e6e8a58fa2200d1ab0e9961173ba2d59d1e9018c86981a981fb811da37034bc49e03eb08bfea23403a08eece6c026b2b7f8900eb8fb019f5b6be6461ea184d99ee318a6eb4cb13a89af615f0049f454eefeb5f73b54335961fabcdd5fd6cf3cf36722e2731f2557bb9b1521e415accca2d46d4847fe0516ecb9bb8b9c83860644af6f4fd8e5788d6c6f0d5c21502060e57db2f89ddc339eba0075b99cf8ae3bd70aeb0f9e17df752ba667c0bbe51c20a8fd7e2e19448858e298d3c37050cc2304fbe51f1d5883cc9313b617e55b9993c04eb0fdae977684de5bda2c3b9521fd14814faeec95efd4109232deda82485be79ef6ee7dc5b404f4e64f26abbdf496b7fa411537e92d47a27cf47debaaec71ead10225a76ad75748ee63b6bad527e446524714eec44021602ffd865a28607480dc3282bdb0d15fb485d21bd00a79c702773ab6d6203b603f5a0bf9f40261ddf01ac04de7f2d66fb7bfc3cdceabc181ccec3f62f929b39dd589908f6f51977afc79d72efa74ff4f711d2f36b259e2d5827493e4d6cf25df4c0d8bf043154a086cfff794794af0f211139f9f4794d168b9cbad33a91610548b7fb92313ca4cdcf229b30852ecfcd047ff2abc64d2212df92c9d02550e7097eaa7d105e00195f5e57a83a5335b96172de2dfc9273a20f375f19e3a18f4bb9b8f37f123276e43e571cc839510db93ddd61713cfbed8c02441770d8aa02e3836aa59f97c7bceb5a61ddabbc07b82fd77495b95d4404de29a9731567dd206beef9690a27e756990a2a7dac487ea9160a680dc195b0050495bbcd980c812ae8b42c194fbfa928bc96fe98911a52965c1e84f312fb9ea61ce1ecfd15ca53e1641284f22e4297708a214cefbb4365fe217577f743d1e77ee1dafcbdc5251f1f82f8e517090a4e32a064d0b1ac2af9ce67e5c12f94e16a178a428d35ef4c6ad6fff9960c7827ff7f98c1104098e5f17a2a399bc4a0b4570c9259b67fba448b1c77a26bad3e31834a0cde09d7e9b8e06bbe10b828faac412efabdb90413e5625384033ef350eab9e2e6b0ab6c72442417ad6e81e8ace8d64fffe78802b316d38e7bc46d0f3f6cbfc61fb9b4ce0a226db3a6a87ce3f400f2e664126f84d66b359defb47d34104f86165c73b1ce2571670238e2348c887362af214be8489b5f9fb72753db9182f2f715bdf56fa5bd2d12419db69b5df92725d0cbac21e536b0b1fbb599cb14bc2f2687103ff7ac1a62f3db557dc3fb9ca6dc8bf0455a21ad812aee739c7b8302e4f3839ff5ddc981063adc39a689a1a2b46d23210b24bb6789700962562542519d8f26337d07badb3a3c9d434bf45c53d5caafd7cafe88d768a44c94e3cbe7d8f7b3f1b461bee2a266b219d22fe65a14944beb69ab54d9b73629de8b6c550af4deed024cb0afaebf3afdda3e3c2057c97312a0bb414c75abf01df4e735956e3ec81ccbaf0ee4935ce6688f1d4fb25459541418e0f95165e1320446aef0b204a0f9a107aa4c7dc5b2e3b8920679539d17b470784abaf9ba88dcff12c256024c08a5555922091e31c9bff8a09f82110800bc32aa07c96cabc0d279b3e9b88147a036cac36084dedccfbe85967c831bec7fdbf5656169b7272bb772dd71e9d491238ea562a4248f305a283aab8ec0655e2a42b5958de8784298d74104e3a9bd0061a0ff211b8fa8e45c8ee4949ebc8e9490a85151a4825ef4aa3a1cc677fec69ebe3ba66c599cf9a01af8c9992fabe30fe447cca5346772ef727b3e107381426cac41ead604d510ea1e4c860c6455b33e6c55a5a3ad59e577fa0e909329bf1097b7130a18dda3b697d39dd366e6f4d5c3c0e410c60926d63392d380061c0e5caec090e24ce5ef28dd6f956292b36d02586fae96a78de466aaa9090c5ce5c3978c4c56402a685f1bae606e7f6189b7aaf5d807040df0351599b2d271ecdaa0b28795efc4b1363243b6ba6e2bf44e096514dba138c8c1d1d768f1d3db1d99f9d1c2bc61d8eab8e951176afc5b2d30280a45e9b941bf2a59e7d431ffbdf624e931e1c74a2bff1971b87b73978f4c3ad96de1a4163ef3a1bbcd60a78ae5d9fd39ce2686a291dd58717071df88155fffeef97bb8866d591c699e56e5919a7f4877033b9872348fc5ca742c163400b1eeedd2759124cdf5366ace31da93fc60c023a806eca41c2108af8ce26365a18d4f7afab59ac6cd2afaeca162aac66f248b2df1bf3ca73c353f507b063bf68a0e071f4a05116e6f0a4a4e1e41f3c4096da9e9a0106f7f2db22d57ff49132b6716eb1d9543508b0a719ac2b4ff5acc2aa25c785aefc98f52d89a3dbf167ebe72f6707e9ce9cb734003202d93ffe18aeb1934abff8246e390377827ce17f8198350f04b1cd6f68c479a5559fb38f6e0662becf9a211a97d52ddc1a6829b4a59fb8807fcc97c0fb9fc9e12ff5aa0dd179b6b64e2e5db8b9584e2a4362d60a4cee9dd3a82c8a021cf30fb2c9bfb1c0ee9e1006d8559eee4d2fc6743e7512c9ff68e6c3292da592308d94a5ac065a0ca296842dad861208599a44a08720afd7f3edd9baf2f3fa01c5b0d4470dde1ad6c7ec0c423e4a24d48f16e4b3a4c4ea3502a84130d47bba2a86a41e885c5142046de66a24caaa4a8c807245e93debe9a2a8cef07f94af1c461eaa73fc9ad503ee0cf631318e3d3b535b9b42d369f9978f52a7c65bc0aa25a935aa9f72d24d8340070a760570389f0c41873bef5ac62ffae7a4c694f1569ea2a8ddb9dd0516cee413bf10c536bee2633b3345b6d3d6029c9da2939c753b707258d3c0f8dca8c278141ef28194af8eb2a89061f24ba7b0d297a72666f519ef9fa8c503c6dc37d00f572213d4c056b89a902655058483d7be4f994b184eac276c0f3b5f88523741b967093d7fb28aa83380d1ee86425643613dfa75310a19ab6ce36816e22d3aa23fec714e6a9718c504a37e2878bd0cf6b3ab4d0e79e69eb499434897709ebd31767c19b51f26825236e23a78ba99474d78c10a4021a53289f633b43c6f2b7c12488a22a931f2e6e8f36f8f3004436f9d532b1e90efa82e01a0c2d9996cb8c10b18f8f30eebdbc5c918c83d8319f3debf04bf1d4af1a30f4eaf581449a0ce36bc69a6ff7717a487eb8555daaeb53f9848425997402e16cce67e1d8c0f4e7bb3ae2517252bdb11848c9cf1b3237857b947d3304b27c4ecc9759b6da0beaf4cdf9017daaa1c0131e8f443cd2eefc9f290c40ecb25a6fdee84ff816df5f3f590a7788588dce75844e0b2e0965c0816c6bd8b075ab4a9ab04bfd6ba11defba1b29f0339563220ddc2c95b301eaa4bd1920cda08be0ef820a10d42e45bce4bc555596b25e8d7af21e17607a0c4476b1a82354c4e03b3640236651658a80b7cde123ce06f7bdd295dc29163793b3b23f877a74dfa11526eaec60dede7258600957f1fe6424ba4ac2676b76161953ca19247408a19855afb818e642d941f212b8083e71f4d51c5fe2b71aa6327f2211d124f9ed95a82d42027c819608c922652386b43c496bf36aba29896ab9931db3a5b544f7afdd0136b23bbaf108ce57a3037da63afd733110457da4e3aea9a2f50c382ffa7b9600224a26aaea863205753f31001ed884a7aa24bccd55ed1c10129ee11a29e41149d23ef59fc1fbd17ad51dae014a65678c5421223ea0ca2a95436a6b1772a25a10015f209ea2500003079b694eb133c304589c4f5a2b1f7499beb5159c487cd8ddd753085e331447a44fad1e26b3478431457aee57f75e3f24ad990dcde2558ffc990d668cea0c5c9f94058f879aa57ab8880bdf2b637319028fff31efb6af7fb3154c3ec6d9516dec990a09b027cef06c5cbdf1b338eaa76bf801e3f9fa4e6f1883c776746a3c91e78bc00e35e639f88bb09230765fc4eb2c7fc13d3ea98a2548ede37d9ef76cd39a95a925a217291133824a8d84b3438587f5114f6489210e499bfa0c7abcfd8657cf2419201717de8b5cd6469475e8f2da094823129b7e908ec70e88beaa4a49a2fd2aea4b3385edaaaea6361d251572f583e27f81413fbf3f7359f85af8f4b78cf73952e60b673b1f4e86b2b58c7a4e047f24f22bf8a9b69217809851022155de280cdefe61fb65ea57c8d2ec1dfb2a03414745f3ba2476e670dd24ea20a48ac014b8f448063452783c78d96b2c1c2f50e51ccc0c5ee6811981a2d2bfbc7e1d9c09b5a248f6db4a0fb7ad1e566b45c866a79b71b400da0dcc3a01c38b2a2ec28f7f9c4e7adfae0fe61db3c7d898ec336525c0674d78ae71e0a131de5814813427876d27f741c7dbf668d25ac37bad673ce1d96bdcd11a86fa52a32c7a5644feef58f36bdd2f90381f3bb49b9d739ef94e8d5351a4ed883988d016ab1d4ec326a7a18c5c759ac5d87a444529e6305d5ae462b4fd258892ee146e68249c19bcac442d1f39f7caeae326c4beb2b84009f91b0937aea0b3fad66196c6debe227cc39ec2db8674a18dfea348e93ccbbb6092d958670a4bee0349fc6a1b1cff508abe040abcfeace610cdf4bb983fd47776589cb3db60175105e28bc305ccea58322bc104afc7aeccd14fdd5020348627a8fbf0c2cad70a2726dd26ef92c332e1bd84c672b2cb8d7a31dc0c2f25dec861d947f364692332ec208c5c8bbc2520743334faac07cde7cb93a75720626d328fb349042c738aff41520bc2e9eb9c8d31a693712d916cd237d236a7430d40ceb07e63ec40ff073d06e8317ccce25370c2f28a09ce70db75809f8698c400806a7e78cd1a9760217ee73d5e0c8d7fec210d6ac2672ad41a7c410b9fb1857865ad4393ce1fc207e99832fde205aa2123dd6dc221e651d6a3216f794bdf3e75b4595f2aacc493dc613259eaf4d0c93830b9ee18eb4bc01e100c362753b073ecab5829a3ea9a430ded7376acb5c918058dcbbb1c961f0fa9bcac1dd1e38537ed97a27942883e897a8b2013d7d14eff06d98fa594ca4d9f9fb0a7969c8df25e6a83663993cdb2df99564109b8bb6b8b3cf9416618a5e8a979863b16c6c68dccbcaf21b58dfa8dffd9aeba1f7ec3594818500eab7d79131bb345b70d326a60779afbc94c56b2b806bf825ecaa99339caa03e31aef6102604d491beb2a34848772d10f95d90ef04a1de2e0ad8b2f4606bacc0115370f8bdfc8b0b09a054ea9f21162d4561b25fd681fa3c867c1a21f9d998effbb5579c0c976a653d4c1cac785483e8475af39b3a7a0ac818cb76136bf8a820b340163516cc64c6b0ce34f0a9c41107bf31f47760954fea59d66b3c01fef619c90acc3a80b3105752c00981925b0d745f4bbb9ac3c6d3142bb6bf3bfd97d203333e27647371c2b6be161a81e2971d2454f1c0b0cf927754f4f5cfc025b60df147dcb3098f2c2863aca8f6bb08f55c26d1235200b2bab53aa5539c057dddb909e03d5e3e3649b0fd3bc137f5c7a26660256c1d8bcacb9ab7913f290e855ed17300d1ee208b03003e62c99470deeee1d3115b16f4725106ea3a2ab72f401e55fecf61637975bff7d10ba0acc8e1c41401f617457471e029f0ffd831f55644d637b503795d9b46d348887a9d71f0de2994c7422e6a0797ce66ad68c4adc91e2751d69de1f2e25211b20825d9da8ea27a11beda401f7e472d4b486d5213dc44852a0e15112073c4b9fee3b8e817dadd74da58c7d325757a15739c37dc092e17ed06bc8b085e8d9a1ec6ca72a5b29aa8723cbb68a7933b1139032de7faff5f16bf75cd7589a99ce6a41838c98bece5321f9295c582a9c569ebf92b1bae9a6774355ace57fac41ad1fdabb8f0bb02fac412c431389564a04d790a166b189e127b3c2b153cc25d27717f04035636d25a6be2e6ce3171adcf462b9545f1721f51c6615e81bc4e50d809640384ec29e2b911edd1d50f9bbc3d44bcf0873f7607cc092a5a748fb5ed007e121e6262328bf9a559f9255617b9c454694f754f5996edbb13572eec6d95808ae4647e6863c29109f4b58ce742a604a15be9e92b21010a58616b548a421a3d91cf063e2d1659f787b672cc10f02352fe18bd8fe6dcf39bf5b12feb515981e9e68adcb99bb7372d764486eaaa9663f7f65dab92a45b529c6cd768a8b2702069dcfdd9c8625bbad7b6a4bbc03bfed86f243f551da9b3ac87b5fd9c5ad9d111534904e33cd0ca0fcc3a996060e7aa1892af5886f197573330e2dfbfefc67711bfefe37a22b64b368de327babbe0d31d49545566ed046c26348a7c95767b38318583fceb9b169a488127ea3eb68ac6eba6fc2739ec28380d3f2a1d021b74f56011354ca8a3a55ef840394af18bd89b4b89f624a458849c7e671382c5f218044370f0c5f047b49d4e7bc2444b6a537a385a1ccbfc6a07144b9b62e0239ba92707c383171fc553bcfaa2076b3211c2185dbc5a4a145127498ee5a6989223a780d22a3f34a324fb9d6e8e26b756087f37355bfd98e7f068916a102f18bdb6b30ef9ad0e640c5bef372d299d04ab1310cadedae61e37d0d2ec975be84ada88d97a0582c5b755232e6226b0b89a3d8323820f9676865844c84f6f032592b5ceda2361d918cc1d69debf7d5442e22e4afd57a0e48ca98a25fc686ba632d604a8b5c9d4f3c997aa80f9c2eece19849f595c7a92f4af061360a562ecb8bb63bcabeaafbef02f1760346b6ebae159f66708433146ca2b48e3e09bb893ad5b957cd4ae065589032ed907f5d3dd4971571bccca107d92b294a353beba2a635ac16108ee12cfae0799ae599562bcff38db66f9e2c259e2915285f8edaef56fb77f16e100f1c3ef8dd9f4a85573642fc10509a3d7586a1c02ad4fdd335db2e4dcbcacffed4e7f013d6d3fe34e578fc10b5703b4484adc06b5acc13fa6336fcec1271f532abe2305ba24a9187f81523d89128f6336f3fe2a40ca74e66231f9ece9ef6394dad2a3e5bff22faf149027eeef4e65efaeb04dd89a1548aa29b08853d24e7ecec154b6ce411f42c35275fa68bfb342daeef55d40b7d01e5b6e2a7b542f1a7db56b6826c6fb0f69bba6d8802dd51ec0b1a4821685590192ea3eebffcad11ea8a53cf19f30fec9ca48c461c29642c98129b98452b7583ca58872df54a8d76a5ed92cff1378755856a21b6c0d39eb090eaa62c91034879478975d1dbf08c2a67a7cad139f012ae7a745a715ad8efaba5d26d2be21ad839df73bcac5486b6719ce6f2c71b183c978a93563961a51c4423166c8cb1bebac1dea3d986d927e4cf81a28069ceb26d31c2e9b64fac333bafc168e27a7ec2267ee0423e3d2edad670a8047b5d47cee5c9d366cf942d8891737028254a611f943648122f9e4102d4452d3859b7b0d872c7fe57bcd52feaf15ddfc2afef68b20df5c27087ca191bd8ed8be25ab193c7fe72721eae892d860ae1ff258f65eb9c08c6173c6449423d6d3c51eceaf93a6b58b5e14cce0329019a97351dcfd33bf297e0454e3841c08f549582d18947b16fa4f5ff11d546f5b9dcbc3c04eb88368951085b555222df1193959436d2078eb3e1cae93de19054b46c8a72827fb6c7c49f5e18f5935605fced7d72d8735250c7dae7524da7c06db35de808f4a95a616a1ad657bb056540a99ff5f596c042478e42d7c8067cccfb5ebf5041e227020ca5c405b1c9dad7930b6c4a49f59c7e15e6ff1d450a34732a6fe79a88b40a9d8f31472cb3b61ca8068c74300cbc690dedd0c77f326d64fbf10e6496a38c5a898564a2ad947239c17d72277cb9c4764ece69bf1676b07cb02f473487631c031513a9d4195c771566c1493cfbe4f9a4ddc57e06e07f082292e39d39f60f562db52506eac78ab58329d279f5f4bdddf6c5571f47090685706a49cc832961e3f7debb3b2c1657ae855cead0ece87100b8388bc891c468952752f7e7d373685342e201f4fecddfd7257fc35aac7962e9504dc1456d4877aeb48540a36bc92cedc74adcaf50f06470132b0a1ffce62b9389f92b68793585de342b36daf2abff3ccd445535dc9a4cce99d6434843663798b7d241f51777f98b84ff3424f652b117a573cdb9c4e1fced824e6007831e643596f09d8503e5e9692b7b19b5141f6339814fbe796f06d54b89f46e0b5f01f91b18213bf2301aa6bc748934be9f3cdfe0445445d9ebed8c8fc091d2eace6f6d22436ffb04b90974232c50f7971363fa8dae102dbecf2bcee45f23e4046bf52349696fb69cbef40f9885dd77734041c96f39824bab8d59bdd0e83c5388fc003f44abe9bd25d33b6d116fd06adc60adf1645f6f5bfa2840359d01b9d47ed9b89f8b6390c43fee49b7fae66574fec991c37c8ca1e07bf06c7165b1d933004c8bd3fa79007f2cc0809a346b1c756501f1ef21b8a21c436864ae7d9e81e48bc8967aa0dee37d8a2d2d04c4c629d294e9ee17e2a8b64f979d18a53f6b5bd77939be65b16884e86b1dc21dee98eb96c346873556f750a43092a51e384041bcecae0c244fcfe69b239dfba45a820345718a4a3e95a5ff19a17fa938acebdd4ff0f40c6102022a0d263f9b5307fd22b725cfd3a35472882c664bfd9c527d9f32a369d44e05b2fa7d433f050ab54eeb734d5cd2573a75ae23d748d1a0777e2d8d36edeef03b7f499abbe9608ae3f224e13491e818ccdd21891d32afebbfbb2893dfd7c0fa18093e2dfec8978c08b244b295c441fb93da57419476b95457b7c638556ec57209ddf4abbca65081f1184bfecd7ed90c04124407342bc11ceff7896970f49032b0f76d9e2f3c5978b14b26a734dbe2b296284ab69d7da09f4a3fe9676058aed163b3d1b44e4825a322da4e2196b2a0fdec069ad46d210e56c7f9f3d8e892e2772ea75af6548d9fc54fe7384673854e56ea89e91cf4e366a261f3d7f38ba3dc036f4af4c86c62ed9c48929fd3bea8be694e40dbd2c4aa93278bf510c62dc5f4dec5a3b57374ba7ae7d9e4d252cbf14ae8b3b16f2a64fe88d3feb4ddb9c7d31a522109284ec82347bdc2c03deabf1aa172f533a68ace197e1be7ab446d4e18a7a28b584c55e4280ce577133d31fff52744aecd0074817400d89ea7b57ceef0cab946140a92b6a28078adb734bf0be8ff903371e169d9daffb83724efe59bb4213fdebee905a7d301882c4746518fbde5ab4f8fb52976adb90ebc379a04d7a0fcfc37647e7a1d2cc878e91726157ba3455cdc7bb3bb582b2df0497bd80fce5a774ad1ae215f6a9ecd1914971dbea5694f95dcdd64b28174ed9795f67ec89876bc4c2caec51dc59daa38867e4816408260490ae490e690115b66fad8e207dd645cec27d7c2362174c7ffef3b5e27cd7027d934c4d62e6cbb2087e714d11032817e8793cd79d17be15a5da6f4091eb11f04b7e36c8bc218b8319c9ddd767315fef6a8c057504aeb6a684150f2b802168043a071d3eafc5aaf496a95098e8dc0e7c2e1654f84bce3e8060893d89ce57b121f8db3495e87728b9c16b60513a5fab6bfd0a69231f2d1943143c2e4d31e05248f09d76b127cdd37a40faa46ac3777a1dfbf288fa7f54b80535bc3b483119b923f83b602e6bc897654248b5ccddb981ff6f691d557e6b416c431ed2a29a05066767163bb1ec815251d58f9e302f1fba071b679db93a35c7c58052fffc003fe7a03f334c4a46c188552d2cc7d82802b8abc13ac6e078858b75597aaafb5a1e5c3d151835937cdf56355aad4d6ac8aee662d43a929b49b6f3e226d6633f57266364da9c03a1d68f727d984105b25abfc443bd21c3f98a098d3353c83d27ad8593bfb7dc06e415ea344e2f06ff3eee406e47f18879a203f5c2d6e885e7fd3776d32470b4ebae2dcaf86a57b1c90deff9e030094110168c9212161ab7233a02460d6c261256ef83c1803ea975ad92375f7de642c644db041f2a1f7daaddde12cacb667370758039e45a5a1b6e8df419208a64e18f26d9a85117bdf00fbbc1a439d257d860e0183a956fb3f5162def5ddd07f8783d0d003ec01884165bdd9cc1d86fcc95b20b52dae53c551f8d11a1df0e5ceeac4921512681d26544ccf5694a967bb199c1075b66c6b3eb99ae8871aaad10b492ccafa7db67f2a81516ce28642d607243c6e151c250366b787f653710c4b5cb0d0df8e00bcbdb185749685a1c200d2883487a65d3ecaf49f0eb5301909b12df7c087cd4839485720e2a796719c0d8fced88c06cb8d28aa564f95ac9f63f25cec7944896c413f557df676212bcb66cb5b985be54872e302a45b6adfb986da435041d79c0c671636743646b90d061049188e7e571deca173128166fbd371de05b99fb45a2d50086ff10202cd29e56f36b1fecf920cafb46c2cb849edfcb51f0ed7b11cb7b3c49a4921b230d8142599b82273b8af787195b3d11e9b6e337956aa49791cb1e4375812408e9513279e455a56c55cd8db38838e21b6f98a6f226ba9f8c2ed4d6086b4eeee2609a729e87596e87fccbe627701cec7406368a8dc554a06e7e63ab6cbbad499838f8aa35fb00017fedaa04022c1eb13a5dfaabf4415a13f7003acff58bcd75fe1ebf51366e5c65ca3284c31615d6f924d91d110490df0b87201449facdc24ea4def8e9a1cf04b8b8765afdbc6b0d0dd408a5a5487137c12774243118c8022163c47ae0e83953a408171dc4c252249b98aedb99868de121a6da902e8565ea75ded0fac1ffc0afc94fdd0e161628703a11fc7b7a468d889e800e05b5a50e93b523bc2182dee488ca5477e58823051a001929fbc06682ec3ef5b19fd6fa79b8cde76ad80ae2f575cd0e94f2a31870e59552c0bc71c3e632c468956c12a8e9bda9165b713c4fba8113c75be861de92a6551c4a99fc7dbf7e45d3be4523b6c53d841f1a37d69d0784cab4d5b0c84f8091f3a410302342df8beb7b5005ce6c83acee12f7d04d74a6e6bc488893fd5052a02244b0881fa6528328d39c7c15fec44764d1591ba51d1b1831e8aaee2439bfc6e4ffcc25ab672ae985f738056fd3caafa89c9a9242dccfd41edcf80c0da4ae3fd8b4d478e98b87f72f148a544efbe0f55f90b6bcfe9a39cabe23f6761084f4f38bc770e77fcc0f8b17a25561649787fbab58763ca81aa38aef3dae1f91d3ca528f6dd3a140be27a7f1bb3b614a4db135e7c1d3f1b12e2de3d50da648c06f2eb16b1263aab61acabdb7ea5233db330ba0c9c5c98fe1588c73d9943b5dd15de780f3986b2c206e506ab7c1609020604fe593510db2fee630336693b68db77f693c3344004e1af1ca9bd4ee612bb8a5b156632f47c3834e7ad3a62559d30a134c0cb830d6353079ea1a40fcf94f00fb369b2aedb51e3857d148f86f54e766dd0d2ac4af8c4c0d5fbd7a1d55d112d1a62b50f0f17148fd79024202de371eda8b98f753e7895d5343732ab506cb0c3f0fa1b52f1bd083585c9ede227bf5c9447b24e9c969d1cd634d44f9efe47ed7d44ec1108528b35827b63f5b7a6ba8c02d92ccc9dfb6c1a9abeb2b134407ce49394e508c6d7288aec68a6d9789c38ebc55ce0175cf437166fa8006c8d58644a5d278100cfeb31bf31969e318673bbebd11dc34e625467cb23bda66a342d27c63f74a9eab3e38391a73f17d7e5c03ca658470eaa15198349fadf9c52e1cb161be823989be6cca3875c12f7b2dfb6b48caddc3e1cbe5bb7ca156f734c33e1e5f793ed69efa433615aa416c68de5e7c058315f622d2841fb61b1a7e88529da33adb27098389c04ec7805608b645f7279840484b1575086b094573527f601dbbb4a10e9f4ed32237ff67d42ba21f3e58b14222f4434cdc0d71299d5e49532f39dcfcff17203d135faa97fc5da83f81a17abdafe7fc4179a3ed0858bbc5a9aeaee7a7e1be784841fca4a60e90ef255789b1613f70289aa3cf7a49360fdcdc529f13103d6089aed190ba759c316ac45d33111a6071209573280a3210c74a74dfb7461d5d514281fe8453be0125085314496669d1bfb8211213f213453becbaa7acb6be6798f11c8cf2bb0e78170c68d0525ca9707a1bc1a6f705bd686f8de67acaae012db26b3aacf9b3e519a7b24d5a907f1c9f3cf48f6eaab494a27353744604d558381fd83b91f7e9cb76c01296a614bf7cfeb86a3fbebb94066cb1e50f40c1dfa8abf918d378a465331b41549ca4bb001f73dc0225d93e36f05e90ea7261dc542e3ea2164a444012b27e5029a68f294285e030f4fba8f9523df9d47bd4991c5c58ff078266ca9e3ad31d4066817a88751678dee4245f9fcd2824a50f2ca1d90c9b539c778666af3b9a597c04cc9541ef3268f74152305d4432a642029a646a725bb42b515e3cc3b0fe772be3b4e59797167bf15c820b537e02b66d5f41d2448b62ecb86db4ec33bc1bfcd178bcf6772f3fda028f4159cd843c2eb93e5ab0a6fd996be2ebd239bbf9503f3151cf620684b8055c00a9338939189812195ab767f39cb9fb0668116f9d9de3a9d7448215eb0dab729c3987fdfe1437555d60f6db29a46882430b3c62078e10272f8364a3ac322d8949ade7fe2cad2067d4e46e828517efcbf2a40fb7837f3dd953c992bd9d467d63f390c4e7bc10a8b6b0b8d5b68519f98ac945e46e31d1693ac6848a4bb7f8229b6b40154cba5a264b28ac37b629d9b7341dc58ac4e2da6dfbae656f76a11ef8c4d189270a7ca2360a600d4d4344d008647fb3831d31912de5d74ea46cdbd8c8595b5acf7194719950c1c56298ae5f8d84ea557cdaccdd6738a059cd07fc79586494d4e761f2ffe46eb445d92e34849a959ee7a8fccb0824abe0abfd8282e54f5dd9741267f2aef0188bccd23b641d48c81f2a05e59f45557a021a1b22db532c6924357fe9beb4139af74995f26dd616ae9b0b63a1c705453d24e45c7079cfe8cf39c22b1febe553abce30f18158727f022062cedf428e6995557688fa4c62d577f7001544851608082b1895cbf642ed9631ab17a913f6b7817a94e9d80a91c45cec3e517e06229be4100869ac915c807cb342c86172cd4f4363efa63489bd3d7680f6af946b36b8cb56ac360d8d7acd7ed6383009f31be9e36de3ddf4511a6e8f58c1884f2306665aff81e304940852819b10ad31f501fdc9f3a1f84ed0a5abc8463673bcce9fb95bf3be4f9cdfd9dec0df61658bfbf5da9d48490a36f6ba85e31716bd9a6d3d0fcb54cc4246b548cd53a64402945dd36c1b9f9d987a914716804c2df427305e2ca6b18bfc0e89cff6898b8590e1716c7557c616a1c214c47cf9cd8c9e0603e8849af7a71fd4cf717ea12c804726b9d0a47f3f145f9f809a1493804a2110c03c4407c4a758812c5716af667b187026a4880f9fa6444cf4f04970c9b7de1971b66bb7c46208d6d661ba846f41092a2f0fe1637d2245b4f21c2f9a3a4b70d0305f8f3a7b41161fc899f25db424517d659c465630ea1d1dc6dc58c78d2b305c66359c5f29d12d8ecdf932daa5e8d970c39501fbc2a87439bce744552c3ac9445af37b8a0b4533e083e0453d8a60180f5e42cd526b684aa95f099cb0bd9c5392b39d3263b7b83069770b6bb00664e355bee5fed5d5f5db9df0ee077c31968db2840d45f4ac7e0fe6a1ba243bf968b2d7adb30a1d9ec9c439720d268aca8276ed937c195f89e6aaaadb802049c1cdaf945c12f25fbd61e49d7bfdf85479325efe54e0eda07f511f6d67a703e1ea87f167576bff40ce50aa9184699377dcd371bafe7fe332a579aa7975955e413593b36b3dfc546b4348cf2f5dd886eaf6ad635882933f337ca0dabadaf48d735c70b79060596c27b8420da20e9e92ba7aa669d064e3b2cf194f83fa2465a262a2b9bd5b17528b19d29c7f9749f33b525e7f9de89f70c7f673c763746c7e7587a643afde89fa1ca3a3fd277b23bc3c724fa41ee5ae19cc711be7ac2f668c07b2481029a7b9fb4a6bad35277c3799152f2e96ccbd47a41c51a611f44b8235a0c0d5a459a2285190c668ccc996c7d8de5d63a1b6421e7f8fbdbbf7c9a136c47712b09187b3b4d1a1dd69bbb0f62637961dbb77d66a7b9830174427f05daf778216fcf8669b8389cc10f943b54d4ff86a38dcf606fbfaa963e6d8634af21b4837c91a47f51d8a2408f40c5e6e3fb0aa09dc9f052390c07e7e77a8cde4a8b5af75cf41825c2db9ba3e55aa0d8468e2eb44a04ca27e1797b6bbac2d3be914d8baa8f19b1e947d3ea68b3b37ad14f0ee4cb9d93618430f73b397f4afcf9d2ad8e3134ea93df8b755515c93a69e8e565ef22f5b1ea1b5f69300f8f307d1cdc345ec2e8548b28928e8f508188a912e7ff9059b6c3dc5242b51a3aa36f15c3eb17f27642f0f609d93ab896470d1b38a8f31e3bef7aa83b412315a9d912ea0d7ae7905fe57243dd8aef1f2625f9082722e6378b1814f6f662938ca16bbf5bdd0e0f9efe4af3b94468a8af6d011cc7d31de4f48de9c7aca0a7a3aa6841256aebaa53cc111dce8ea1f7a187d1b12b6cf80bf163aa8a4bedc3dc1884f81a2c73f8239e7672349a2d0b20c5d550629facf587b95d6264ce95aa2221e78077798dd0565fe943042e75f36d4629829c8d13b98c76077264d03df30e53d5db0e597808c2d13caf6a40240112c6a33eb90d7882e91ebac8f64a6ad75f4ca6925b8fed1626065362fd3838177d0b1354921e6a317f0fa942dce1a837f6460018d39167e614a314b8b4c4810956daa22ea9fda66e5f28c4f1fb85bdc89dce8cdc04b8807669503c2d73e7aec397f3eb0c7b5350872db2892ee47e98f20c219d5353b874e822bd6b6a96756d49c4d8b0725f54d265efa63e8e5d320ef4fd2b634caf911b2446ce342f07c574e596c852d4e9aa857731c01e0d93d1b3eebc03386b211b718b95b35ffef070c833a74a90f2ad55c615eccfda9171dfa37ef569aea0b4f67ca8e3e3c606249bdbb393274be0ebef278ab7b6c3b4fda818b8765342c375f12b23c6b03f4bf5d808e1cc3ef92660e73ae0048c6f376d61fa2a9ead093f1adcfb6999bc5c0a3b5ba7543baaff9951429a2ea15740f8dfde9e936a79a20654735b4ee1fd5052b78df7d9a2996c2d54c98e753783de3668dd2559e9409192157f001e5a90cf24cc6c40cebea80ee6655cfc2ad539066f09f2ab42cce63c136b9c211404996985535e820c70b9a7bb7d096fb8d9626382758cf071a2775d41e286a32e62a0168c3e6c3db527c76afeda031948ac2cc67f35970a882f4fd1e21a9760b2aa4a042169cf40d45baea6dbc312a6f66132bb44e83f5dedd191fcc9c083556a4c9c1f832cc5b44907e9d5f5613439f86df7a3871b111f6d5fa4b88d2058f28e9ee38c57df381d240e56af732a9c3a0235f4932e98db30960ce5d67e277254bd6bd03c6e32f5628f047e9681e216d070d3aa40c8a6bd7fc3d053b372518ef056874c8fec8a9a1716edfa86e215b903586068ce9e9d9984536ec8f9fd325206b6f7a5a67d9948411923ccf9b031949931d95937476ba1281ed4c06873ab813be832643667dc2b201b8404776078cc1fef38127a2c074049fe66736640eda0a21cca7b1405f9f3681a67c23fcad36f1617e8cc53435d45acdf37860a58c2affdd378ad8ec2e3c535a43a7277e1baa758b337e94a0a22f24a836af5c984d9b429ccd28b1db2ecda2246cfd21215669937d6bba2feac3fa861bb5a56a8fc21cf665fc27cef90d1ea2e75612bacbd42aed502c3f748f96f646ba9c66b383eb00191de8f3a636cfd4fd089b1daa9c03c8844242df24246ba0465d4d288e7416298863e02ef40fd25d665a47d5abcb1c9e0872d1978a1c904fdd0730c2171dbea026d673d01ecc2658a5262b56d0b1368fc88096aa419e2703b86e3fa00123365fa5d4776336b9f74af9fe381b7575a8d1acdb579209999388f4a46f8657c67f3e08b2f875315f1f2b42796230bced6581cf9e58b7f0b8fc0789c4679cd34c6644e10c2b0c64175d880f5bad2c63b4190f72ebe4c243587a01620dd279d342a886773a43449b67c0710fb7a059e0a898f2cd4bd36333ce404cce12d0a0702685fcd4db7cd9fc875cb4d1dcc567011cfe804db11b9d4ccd11d5a62652d91969cb3d43963a140995411f53c7dd9b4cdc46864947d1b3575f74886d5ba4f14a568b900a29ce780d70fd2e58961380e67ce42596ad2bcfefa0908e43eb980ce5d71e699bff5e5e2c6fd0b180a4b223a2130eda83243287397da3e5ae6d73aef620bef110c0415d4cdfbe6a41303bdd8df5975c4b2f1829777d5ac797a7d93cef01de53f5e04543658c063c22b5b3e4c1cd8f2ea6b63ce08cfa01ecc7f7fa2a8302c54411d8009aad61f98aa30ae93af97790e29eeac81e28366f0c34931d3a3ceafb11455a0a69a59e8326aad7af19bb1edd8d2c920df54105fffe3136df1933bfb107d217dafc4e1692825576a0fbc998fe8bb5d6ff842d2946ea0b53e944e4313ac2719eea141e400f1beaa27c8ffd009c417b7b078e1fe4b1f12352b097c1b8c53f0d1924eaa1ca6975a386a7ea66843ab910b503a64d209d81e40ba84e3a7a603b5e9b7b908c60644802a1fe55990b7b86501ba35a9d430bedf2be6d1c2b5bc4f03df7b5052b367a2289eccd75ce2248f0f6005b39144f9fa2f6ab2f015d75cf95c2dee083115188fd32302e0dd8fddedf8c642907344abd1dae6da5706a07b0a2109c3c43b19969b35e5e45c7d1107f021c50f79abab2715c9986a2519af670fd069a6aa48b5f6b61b3ed25780980c07b368d38cee66eb72ef18c3d0dd53c94f87f53a2135624342da35ae20ae718b53046adb02765a990f0f25820843becb57e751f541a85e752cbe6e5af5d70b59ba5a1972b583323aeaf5453058c3cb7a69e1332654d02233e86f6aedc9e67add3343ea321835a89dfbd469e9c650c999576e2f7d241590d84c648b878762fffe193b60f46c199fe2769012903709f9f79eaa06b0341f38299197d604c3acd07bb840f38831f49c7b1f4f6edb7ab14ec23c425edd9a762f1b4929572ed2e76495f83ab0200f28d67050b0811343a63054221121d21b3c6b18169eda2795a6c746b2236f36475140736c0536646446caa50000cdb7516021a6482dd8c013fa20b657e9f0f4119ee5507c7f5ca8e7eefb7bde050e82e07539432c27e7afd6f8843677e42be64edc47c7f0943a4bb517601c1cba0ccf0bb2124d54352bdfb13558b84f0f5f2679e62f07479cbfe6173b36c4b1e9750b412f20f114b11699f5470a7427430f74d2e57e2649e05fb2de0f3dd5d81b5924d44a7d6a62edec3a8b533874b7793f1649ea4beb05875996e7c63cb1e505bbc61ef479c4e9c9c576f99f70046d7e5458ad07f61bd8fb1204b9bc5f1452e1f59edb96e78eaa512b66fdb63da688474f672b93bae2a970deb2e358bca915414e3ce2fe7ae5b24dd07181058a31c39c3ab764a6b04e5ffb4e54a502d6aa2cbab984b5cce9552f583d9f7715bdf8f69026965eebe8d51369a1bd562926ddd513c2ec3c92d9178ec83f92be3772ebfb0f815041b41bf7cf3c41915858661bed684b02f28b9c72fce06f84be409bb779394f09fc547a4c07bcebf540b1c4a6d0c6c553eb5bf91ef45e65afaf0e0cd98af10d2f493fdd21d7776cca51b210bdd3762e44d0e3293df62623ab528772b7b8df1bb34f1e1cc63a22f96b221aeb60add9812fbfa5ce98421ee479a3c1822ef870f0a4f8aa1a25871d1ab17deaeedbbdb5a1a785366a79f1101b86f8e7ce63577e7a58513974b072f0edb2e12f5372ae375b2f0c56fabdd62f00b149a13c20e97acee4ea2dd611e2e9621f3ad3ff76b25f7199f3df7834350be64f197ffe9e9f36290e73e3ada2947c32827bd6dfa3a871426ed67cabacf66638dc39e72f2df5b41af6c4fe8f95e830055c63501618d1441d4a152024b8a6a96267611d20055170fc379bc4ffe1bacc31d71a3a83f28995d120b03baf64bad9fb13f42d6ed8ffada7c2a2e75e29ce2090c907e72af5f761a0e5ed633e1397324435ed902aeda7c0224e83c53972960023ec6e2de0c0851b3349cb12c476612043004c3fd1dd40d9466664304fea4253d82a0c8edd387e40bf487061b1edf55ea08fd88d8f5697e6aed93254bbc647919c147acf62fefe3a16daea77eb6691a9ac66303b0d8104dedf2942e6fc3ab3d5acd78b3e041f90d0406bbdde4ca8bb30ccc726be0d54bac1752cefb5044b9c650a17d133e69b2f61d2f35a48bef255b3570861c77bd33697cabe53821a33de3ef51d5996eb7c0251ba746b2a2ad8334969c3989dce9bdb95d6e4bfd55a5c8330a4437ed41cecb319df3324e41f361df3b256d4060e0cbc3a78f3d5faf1df5dffc76ffd312bf7f509f8eb2ac7bf0925f4494cf16c8d918360e421dfa185b505b987d507752141d6d2b0cf2288cca1108ebdaba22078c32e39d8486bece0f80dbb2f56f3318769793cd2bd8115c6a223b4d5b8a371ac6f47f485ad6e068a2f0ef147f37d292e5582548cecb45068082ad8340a76337c8147322c7706a84936c63185ab74817ccc07c4496ee40a17be5d86a6c64883c3d5a7f6c9a2e0f2854d43e84e790228426d886dc9b9eff23e6f9593f1e563b58859f31a211d6d1424196a8ebf94592a435ac70ba34f479fa74cb9209ab4a3b983d1a30204fb14da7de189045b8bd3d362b5a3e20446514fa08fe5a697fe36e69503c56964d2b2847f28f018049f9dd351099f301e99e9d91b3ee4c5a3d74e910c9fbe0abe84aa725023862d8a19e4b5f4f9a071def6aa4a0974e7becbe8791ab72e66f916f2df28606af1f2732babcb81c31f7267f7beb3c1bcfe97f459ab2c6b9507f7bba6d8bd7a8ddcfb808570ef84e2c03a6ce4c8079687db538047432db68da9eb6e89d583019a1f5b71201c6e463f241b630341abc6eefa5f0e1f9a25edabcf976ccce7e147c6061a83da169548839a267ab1c6571d2d221bb0e4483bda5fb967eea7020afd8c65615b0ecd272f4c25fd5cda0599d5f2b6689a42ba78f72864966d8bf785817a0539972686a033574b7580eecb42220f4bbbd523231e4ec4ea0c617d40a00c456cd4d850093e069b9674be59329e17b3d5a22276054877ca4d2f73837289ea8a652d52b5d2f8565bf7037420256553449226c5c845903303c4d89d8e503c2a39f864574e456b716d561bb10ff25db7cd5043bb10383c5bca15f5cef2448b3411509fb845a0b512c69373d854352197b64474f6bec4bb4079dd8ac19f615fe8273ee4ba2800b3fa0ced2fe6322e2e8d337240b868eec7dcf3e77a370e0243f2e8780bfeee6bace78d75b0245a560cc7c9c7af9b2dd1a8cb2ea585d190c214bb16fc557a6a374e0d3fcc8f56a356572730dd7001b7a6f0b9a42bbd81055f1e019351edfdd4f0f4804bcc339e33573401d97f618916ecbe6251e0d54af9bd1d1b5c82d6d37ed16b6f5f3b2f05bcb0e2a65d1cccaf0b68911b030371409994f8f50080c9aa22c938edb15cb5b3fbe7058808e67f936eb5890c2edbbe4751a9e9cb606aa330caa29685585d17736fa58a71dadea1a1d6c5ffc74639fe8f224c06792241c614c5b9e5585d04f9b227a757daddc64bf991034ecadec4d9ecce671866e71602d68329e70865390c3a4ffa9381c619a249cb0e515caa2a8fbba51162bdcbe22c553b085b7abda1eeec7f79151ddc249e331f2ea6bc9022256f65ac5071fad9186c2a5209ceea2d9f50abc7b08f61a0c6182a7cedcf008db24db0206c210cfb311e2304f4b6e8286c8869c7236b458be159e9ddbd781b53b6a54d904481171714a00a7a33d55e7e093d3c268a6060b9021a95e68c1f5212a70cd6098a59d26c0fdfc2d48785a6c0be686421ee3b79a74bce34f88fc9a211963fe4633c9d7a6ae26e0ee5a9abecd5db32304cd7c80d1170dd584da08c706fa10b79ff920ae9e8ec2cff645ff20f16339d415337496ee8f3c8b83a92a6e218cb5b43aa0f9fae57a48599aafa35de497ddedae1427cd4394aa50d09ba1ea6e6a86e768492d388281df1b6214d45f1335704ce2ddd70ccc817557858294bc5b2ec075fabd51f90f78aa52405eda25c1a17bd37fc2cd638932fabd232370595cc65b20ae7d7cdb40fea34d4ab594a9b6403c3228b6a6ada685f84d2901364aa18e6a48be27e471ced4029cdca31f00f21c162f0327c5df7babcad9856b247a3e113199ad7a84d866a40e87e7088443c08ed90dc2d807ba47ce69ea77d16eeeeb183b3026de88cfc0c1d8e04793b4a97773c11ed89e3d72fa46da640c3e7779ef83444e694bdc588dbe0bd587170df588a290751fba2f5e8136dfd1554bb0f67dc09ea8373387d8b4f327d591d7c60ff64f83c2c49077bbcee7e04df9248dd054dee906958dbf96f76425e6388d3cebb4400971c4c503275ed249d9f3d924c9024b10ef8560943cb92c7144e00953b5e5e28efdf9dddd4ee7fe8ae87e72914ae4fcd822e0afe2f6302d61711c7500b80f08c26632e732be86dedc161e9861431194048d65842c5798db2e4439b2ac27128f45840050b0fd846f063ebed8d18ba1624bdf2453e05fcab86360a5af67cd3a40d72430caf3ce12c61b798fa4efd0b68df22435f71e9c559f0fc4a5b20e69c8aa1c1757071005bc10156b2c25c052f6c94969bfd97054cc100546c2e2771aab148ecad97d9f08a73dbd4b52aa92201b7fb7ef2efa145100e8acf7efc080a2119c6543c64548eb3734be2844674a09846e304658cbc2a44d15af7bbcd525f8a967c98730df08ef2e9aee4a934b00cf3c26ca00aaeb341439cde3809ae698985fc7f09012a62de954af37dbe4a1f1db5690caa6c04adb98375b2b11bd3a93caa36e760c6044f63b759c3c23653b90cc077d9e37dc310d74d190ce51fb5b481e1c6f64ad7fb094dc1d8474cdcefbd4ca5565159a6414b83f10a6100e56fc65924d4c6049845f148d48e2e6f263c08c83b8ec0472aa7e86240769e92b8d99c91e0072b6c81e385d7b55429d993c35e91452e3041e3db4736e44f712b6926cb91ac21c338b8efa97b517d8be4674b15f022bafdf2e853d76053435bd754e69dd1123cd975bd02f7924dad995447ab6f8bc406b9450e4b22dea8de4fb343fceef689b641f04c8ff8a963c661c56cd4575622f9da5754a192fe1f3bec79f184d3136eb0f109a22d75e65343addd1d826b59fae710b3c84b6dd5a37424f11a37ec365707f7f06dc3204ec4eed99876ab4f03f09fc502422a861ec10b86097e84aedd447c436e390f3412807488c2d58fbd0011495b43ceaa6398d2a7c70580a64e188a5d2c92270dc17666875fab0dd1716a74bca00ed5728230a3466ad8309a5d18fcbf93659d9f1daab5d640f712a8c1d89ca14308f9bd60967b991bcfce50ef57d9daa08e69151d4221c2ab3299ae15369e6355c6a771d0f5d721e170034aab06215ce36a69ffc91e2c139ecb5d6f2c76c21fbd91337154496836e38f28796cf2e23e0d6f30419041747168196027249e63af67352cdf220699dcf7318583b2e6420cefb38e53e44d88df0869f88732c10c049fb46dcd1d8d5090896534c289dad93fa9cef2d2a97209cfa42f8ec3afdf037a54e9d536567f575c14718737604ac042777464235efa73aa76b4bce0dbbd9d1bffd18bc0facc22de680841577a7758aa2f2c8ba251ce91a2e80e7dfeb1e2a4af34b9fb034054cd18e226e8a7bfbaf7bfd511d1c2ad18c26788d6fa204bcc7cd9e4345e6cc6b2c0c69eb10b5cbf035afc1fdf4b4a98362afffc86d2c158e25de14d2a785a2df8b4713b36f0ee93238c302a7245f75e2792ccebf379cf801921c7294e60eb9520069be94eba89a3ffa4495a116e1b931b348ec806f5788505e9714fd99f4062df52b5d5ac9f6c6ec83ad9e84d14f60b5d6e14947e433ef17bc3002c498997cf86974c63d8c6285190d66f3756bb6684556fdbef31f88bc37a8edc5360fc439e3a0253488304595011f4ee642d05b569c26d72db3df683a8b43e566bdd3c1049ccf5aba995bbf5d74840d31b5c4ba68c93c7e51759158b69b710db003521f2e7dd4d2ec4cf589160312ca5b37714be0eb91ce16dd8ee44def0b3ea1bc214b40cad9da9051a5f4bd515db8bcc6d3210cd838aeb704275118802dcb195c0b2ee299e3d97493e87badd674dcc8767405d33625a9860657036be29d7ad6f18248e8dc3c6bfb9928600532ae6e668e6ec7bcaf9e61e2c00f5d520e921493a9d88aa2ef200e32c0d1d0ce96c371fa0ef906d9ba06632bbc62a796c0b58e9a24f325893ba7d102926267dbbd259e777fd5c3d3c9d8b84003a0b46b30edf11669720a71ab1491cb161727d23d8b5020adcda2150dd9ae7a843e2938eb0dff075fb73ce8694d20d60c7b79b9df8aeaf3e965e588d5fdf7ac44d7b9ddf9c113d2eec2622ce83ce4e7e83442de224726b6df2151d1cf7ff9b0d6fb1e39e046065a6e4050dfec2a79495c67a1e3ad46a1d25ab307cd182de6517a1a166693b65061474fe33bb89dfc4143fe4f5cb2e2e26c96cece3b51028e02c56a79d221704dea9988be4dbfab5d6a27080419335c39c5ffbe1bd63984e5a2612114d54d3d0d58c16231433cc048fe9cb7f01c4d03f914ab1d188303413317f9d52e442db493abc56fd9468eda6f644265d1572ef8438c796d258b316d7e2855e20b93abc214a2bc93c391442f0dbf1ed9998e720e9db45e4416d7766dedbcee76fc07bdd446d5fe2c8e1692567d84f763dd4f7f6f11d9c788a89e67b31a70e4cc212fd0562a4087b3430795ee712185c26e5853206fb867eadac11bf1276e3bc5186853ef5f00f407ae764199354224afb99f898434509b323f359a5283f5df002247aa231ce225563f2e11b910eccfaa8376155661753671ebb5d1283bc2ca7c68a59a155afdb23358feaa7cd2c16ad4a41b6da75e87c3da8e8ca3e2b944e79e3473c011446f0e049bb44e8fe5173394520c56266d9bedc7f0db8a10501d3f349b533098411697ff6eb80f80732ada21506602c6c99889e367692d1959eae651070fe23a5875268f4b51532903335f187caef65b18f10842e4c8059dc50d19ae2f6453840bd29c96ada443e595265e702042d3065db565ab147501b7489a920c9e783c9df72666377c79e01910845d99d532ce2342f03e8875676ac0d0abb48aab4e590532fc005a9968ff3191fef5a1a4f407bb2613308e5112bc177755525bafc03b376ae99a6d12c441278658f743cc7ab5f87bb99243fe06bd46f6986f3710c44314b6aedf0f3337c0afc457ac858c94f2799b63636489cd102d1cae19f6b1ac61f5fb27fcd28e2c48fb371490de6378a4d40700fa6bd2633a5014d36b3cf00f850a9d05634f318c27d1c728c523294de4be3a8c039b01417fb80a0cfd8dee68c041e109acd4cf97e5d78ed4f03f48f7114c8e7d1466966e7131b7ea6f4ec7fd383036d2a1209c53867f0b57559e070801254f62017ced459aa15a011cc26f2619c4267b030c391d9f47e2c410a974de26b65fb82501ddb4c081b86d36bc87a62fadaf05a1f4b7685ebd3f66feab59f3939983b699ed0406e84c2840959e81f45d9761607a8ee183385c6b0ecb6233cdca5b07517fbb9a4edd515a8109294eae4a593ca7b977a0fdc0a31d07b03802624aa00d3045a6d1927e42ff778b96b7d128e1f5a68bf9e73781b14e420807cd1fb5ab3f51071a3de7da259e486d63ee7dc2e788aeee51f5ae0faaa1814691349d1fe047a94d5794900c8de780517002015df27e4fa23ce39a4e192a859f8fafbe6eab31f30360794e6649adaafaa760365e888baabded3aa1d09495ff92d8786d5abbf156d634783ae6f00d0405b1e40d9d5073651b2047c16b7e3b700d581be6f18862b8710bcb97f2998e4ed7252f41c0a0d79c12c7299e13edf185d3e5c71c8247ad920a13c04c147b746883dc4d26a2c9bf2a3b777fed843482b3265060d0fc3d704c3684790750f24d5cbfb470bb441521759744b9b881ba4a1910ba596962da29c4a30da78fc6b4ebb7945d2bf3af6bdaede1ef83c8b3c974e969321f2d1f812855ab649cd370a3af7175c418113b2a717bba701d70fafbf4ca9e1cd27d61a14909191a4364a762509fa6cca2d4216dbd65fd63feaa0d8d2193861bc51f035011a2c6e89827788f12b40b85e3975a5545e75c78968883b5e40d36eecdf0d8ea3362d1e0b2a9aa0e91e3539ffc1eae82b9908b9d7d10575508bbfab7fb19a0ef5a29ea425d68af831307815606bc4ef21953b60850578c47074f05fb7463171ea32aab671e5961629c864f428f0c22f20951e5010af13bcfd83905a0001b5b5160c5b3244a2f22189972c3e551f6b4b10f57bf2fb349711accf9663667cbc0183ff56a3965d8d6b818d8396dcfe29f18dafffd90d7b98306576d83ceae970d111169ece07ff74947175ca19b99b16391398541728c1d10d83a2301ca91ed534ba38a1f0ec84eceed4f3f8e8532d26f3f224650999b50f783197dc63cfba4fb8d90f5735f6e8a3b0ea3dc8a3063e6d28d535ca912de990023fe90920f3a7512f9682096846dd6aff76eaaa580524b6a3265b73df52bd36df34f64b77cd8dc28bd98461dee6a8d578f329e35e0eafbc313ef31e5f7845ba2b2fb14e1e4544107df53e23ac2201c09fe1ff205e4a4cf43e0e1d6c1534caaa64583dca991ee0143bc804af64f2bfe204a14625d816465a2477d000b2c8ad6d3e420ce6f75f270b6d2f09f5c9801c79759d25680836bb95f41683bf6135325210514d336b08c613ecb7add056f46f5a88c3696bbe1cf437eaeb2d585f3c09d1dab9a6988024ab9dfe8ea2ffafaf2fdcc1e2eaa787ac7b34290d82966306b1e21bc4cebad0f2ebc7bdbf8c12ad7c46c085fef80684b510614a4d58da23419548eacb609b69de54cea25715ddb84ab6f57d923aa462923c66b76d10d3d85d10b1f2438f7fb1a8775398e1e295f196003df6a0fec39c32ce568fae219242ac02ee7a64a8c85ac96b0ac13955a3595807e9240a08cfc0e0990063154c1ecec764a373ad5d0774a1b5ec59a6b995c823208c2d30dc1f689e06665c2f13a862bc9e925cd43f304a77221c8f04e804429c2c0397437b6eca7ac71a86afef559651688d0738eaaad743a3fa42c7b98829b96b327e51fef96e82d3874ceb5a5cbb6a5323e4d8407ccdbf1826c86cff23a6dbaa87fd0a74f311f9c6125133e900be87178c77245b3d1c78a832352cdfdea588e47bc715e548337308188b54c87d2781e7f6e40f76e8885cdd03939b0464b219d3818bdf9eedaf3cf4987fb836a80cb69b2e9fd40a6f9d179193b53af08d05760ceed3ddc0f758fac42c94f53fd40a08fddb3ec2fff75b12427aad3065cdf2aaecb9c8600c1fa1e0c18028a3d9513bd01d7d763690d2d3bb7702d9eedd74e0e06102d82481939b1685e736f04f03a8d8deb4a09aef54e4c66bafa42540455bbb44d098dffe2fcff395d65b6c0ed33ea62000700ccacffe511fc65ceaba4879e5f71d95cf90faef3cf977f6f712ab10e1f5cfe0d8657d994fa62c5c900cbd3c71718ce0b11de37b18646bb2fc1932162afb703a8ed733ee97c64b2a813f6cc6160a7977174872e0005836c37e49afd80af6d93f15497f3235145bf959b7a504debd550c19538a9c8b2e7fd0883560fc670c6bdb07ecf2b71301dee81a8cbf4e769f76cb6c9a07680a07c66e9be700223f8e34cb198988ba91045689843ddd12ff64c7994ed37e9c773b4bfe0a81d49394376a21e250493429826a6cc3e5a5910c0de323142d5288069bcd908ee8ba8aa659bef868e938959dce3f6926d49151e76d062bc6f67eaa22e47eaa6355b60da47088c937145bcef787af49ecd8e38fad029d252ae507a348dd08bf66f751c99323d0d54e8499703ad448e64c6607d62b153f2837329d6edea960bce0c1c5b46dc615c49cba03275faf368663577b482f4d5d6accf2f3a5ad145bc517ae7045a172b828dfbd368f634d63665f4da6e89a9d3322b7c550600a5d7ab1ebd701b72382efcafdaa146afcf4fc550977c661d1d7205c89cc19e7dc78a4b81b4d59ea4ed83abe25c00c6b9b9973c06bc27649b79d82f0c726deaad76aee34011f35815640058cb721f6c1212fb95d2091ac98bd3bb6ebf2e207f9d26bc0f6c4a529d8647bba9ff46cc87d62c45d77c3b6e02ab94291d69c9601ce7300874a9c25f8f307976a4c29d54469929ec4e7890082b7221a0fbd08d1d4425f448025a30a1d7777a1d43760372067f72fd9d47b1052f605cf0d035a5082fe47b49f33850f622445aafdd1970d2ec2cab8d238fa3c3c90bb95ab6f19d8722a82888ac309515c5b9aaec78a103055b534994e77baea69417f9775a8a7d458c295f114261e907f21572564ecb39342b047408ad5ee7815b642ba78d8afca3df275e2377e65917a7df13a0559ff9e4732c377036de1fe39e09d835b767cb8b0ac723742d4eed67352181db776281332c376c5a2b05d3d9f89b5a3ed3bf57f0e85efcde8a58eb486fb911d99a669d326949a5535da007e169581837ed6fb7cc1a6cd44337e830b9c20b43ddf0a7edf1df407e1a1e5c819514d81b220f78840f28b0962fb7009ea62828b28fb0538a30ab542e96b55aff2f20fbc9ece7d938317573cfbcc70f6a7a9b958746ab696ccb6e3ff62c2b254880db57c423dcad7cd51931f01e7c63d23a77f734b01cddcf7c1c1e2709b9a2d67753056968e4a5981b2f57a761a0ee0a386662da8c9fbe13e2edfdfc0d9ae1c1ec78e57ca12d4fb16b9589249d1b9e7d61406351988c0f4b54f65503e71e0a91c13c828af8dadd43bf8987548dd5f3f2b5255a49855a0a7dabaef0c2bb602718fb8d73655a4238c7f85cebd81f03568fd2f82c64768709db7993765e9aaf65164695c90e450bc5a410b920e73dfec1915e830a76d41a6cff4aabf162c6e09dab0192dcbfe0675927638cb1fcd952a5aef2b43dc85418e5d0dd59651b45b5e9378433e7bca44051e22101c770d78419550ecc62742a7a591eb0c69f34d670faf0818beb1e542497fa69507fd54be1d9925cc1b3044b76a786b0a23dc8c3c2601c210fae08b5214c619f5e61e8b1be15c4d67a667a109f66045d9153e0314e6f1296bd4938d8ca157c2b935b91733eb7a20df7717691444126a2d6067318c277b4761dae897c4ccaec99ae3bc82c647ae30233bc8311fcae9af21676910bf788d3f0452c2cade9fef0b44efcf828d27e1e7b1d8360c1f14a51174e22cf4c46b09a50317fd86a7fad969f703369c96140f8c8e76cbccf8d1344e941fa633a3e7da11d51a8d8c2f8e5702620dd226790b51f5e9c5eae9f3025455d3254118a7b508e879f68704c03ee1b867fd762bb594e9e0b45a7c7f566654fab4ba032a92bf34ff0799ebd06606479b5815056726facb95b4ab3fd544544f2f86c97653eda95a31151737a73ca8ff3e2455ac0c27adfc7df8e9611a86db0970af3ad6c4f25f89837c9fa15bcd203445d0762a47a7b762f45d849721a1073282104d404de5424566b99188225bfc0afca7aab22363dd8792506870f1808fe8a51372c273f7a298f84300d76fe3266c4ab4a6bba26e094e05ef0b04f5a562fc670aa20b0cff8fd182658abc75db9c6abd77ea25bb71b8250b51a7de20a69b53d42f655143374033781e577134468f04b09711632dafca98b5f32475054f66d539dcaaa8b82ebdc3786f6f0e4a7a447b56515637a71478a49d503e3e249c825bb6c10562f9b27a0d1759dfc82c8e76b08d016f16bf07c5ec3fcfdfbafce34543e0d3edf327fa81045c2b3db5cd538870454fc0a7f5d46b9d642e9cfae17aebad560814c2914de8e750541a8dd5c523b40c5d9a25aac46b29e3e627a18c1a9d9c5f8438062cf1f9564faecb83f249d135b31f5f016ad6e3b6f52a96d40f7c704f4dc7faebc62ffe4178f69313e8c0e4011880852214834966da3870adc8e644d891d7f4bbec2e16bc9c27e625f6e4e15ad3b2e9ac75d684d58560f52802ba9ee97020a114f8fa5cabcd781066b7d40acd98cafd456d05661da7602b0b2593a231edb80c5b7ba0adcd1cf9e5ca3bf940d7d3a940d585a0377d920ef496fc3b1dca7e7974cd981095a0374e5222d1380bb7beaaf8b7360cad2489d8ef2f470aad07da8601863a1b1398e9644fe2e33d54a2a9ce335217616fa7b5ab6dd82c890d08e8fe37a0c174281caa531382998cc52f2250d35c7fda9902d9aa053adfe9111f6079b8588019c772a2c43b943e2f7dd305e68c1942c9a8d6bd3470e829389f4e42c6b2b30ffc728eda800da8b8d72e8ce0d278aa3bc840417953fbcefbcee03523311e4b12fa2d9c47024e8daa4b6d0c62b78d6f6b34e59d72d794ae55a81ecc0428ff3efde9e576e9e4449fe7c7601ca9b127253b47d49d3f35a8eb8fc11bafd75e4ac98fc005b9cf3d2493be1f65c6a3bc7fe89d2d12b4e92aeb0ff2e5fba0fda375ed7f96d485cb5747ffee419ac4675716b309d02cbfb1a756f054ab6fd22ce250770431c2565aece5f689b790c5900aa378faffc3c66280569cb2ce83496a1113ad1ea553c11de6a7f4906ed21293126555d4ae744b63743a2ee5a041e78abb879d3e08fca8c1675286300e6b6fe822adbae2db8a8b936a6358b836fdf293757eb65817a252db7a47169ba344829a81e48e43c8e1bc3ead7c99bad01af9b036c45b31b64ef168158b39985637d16cb2af0b80bd250c03c51b20de25ea98e2652a8c5f877a0fe20e99f573abdf67e17ab9be78ecc4a6a846945595bc269cf55ce2181b9ff53b2632d0a5715e1685086bc5432a15192fbfdc6592f2a8aebcfbdb14be0801feb510e190ac60732132688c78ab5eaad97d309210d995ac6a45e39d04c57845fd3183f477f5239e149a67ae269bc3239498497d34a201057a7f86a7915d6b7cf242148336ca053f5bf9e417ca24eb2bbf280c9833e7d16a3a25f9e1250b2225da5fc85067ec9dffd8136923e866f107894062ae0467daa6cc664d21f487a3960a02b903690b5c25590b8f00d17e229dcefde7345ca81caefe045bf863652a75cc6808908eb5fd2ec5739e4bd7cf161918a085982d1205df47c274093014570b317ca697e3f619f976758715805293eecc7a1fd3c6f587b6838fc7a001b412094dfda3e1ef72cd975e51351540df66af3e2f0ad0c1696930b66a210cf325eebf12172635c0a87aa4f9d2180903a80deeb0672acd25a4a236d59d1c32ea04ac08b93988e0c71687dcb9105511050eeb1516abd38e122b5e23e2d9ddcae16ecf77797e6b5ad4e23123091e6eee63e45cc7d6140e847358e70788830dad03689563d55efcc77c0fc65a6c939bda397953e83547bd7404159c86d489d42cc570933cf06f9a79ed4c040f1428cd410d40a64fd0937faa58ae147a425b4ac5d939a181305dc9d2bc56d02622bbfb813a6e79f73107203841a4559732fbdccd2d46a46fe852ab01b8590fb7de0a79aa8b89a673dfc0b228f2ab9b2362318a7691c96e0057b9459b1087c1997155c92f3a98c734e3fb526d357cbc4d9ab5154f41e073852929986f67bbba5cb76d50af3a556b7321db8fece5edce14d673b9d108bf8dc38e16b58170544e1872cd0f0aba2bc0f915ff0de379b807ff5d5e42434d1c913b410ff8374541fa523e2fbd526537bcd30f9aaa3d7b6dea8fa256a9896a7610b82ad584b5af280abab866fd949a1027e1283596ae907c579b32a82c47a613c12ff6b580d36abc1a92963a912e72b90c0be02ec288e090595912e4f480920775faea5ececa9cf2cebee30501db10d7e8ad38e09bfa15a9f6e2924bee8b3acb8ac7611fc63f7bbff5ce8333ad47360fc6ce19e49755d05b2528d8b220e7d46b455d26a58a16a567e2904377b58b3ad396e4ec4ffca7e7a4acbd61136f403740dbbba20f4e107a740c1de4f8758a07a2a373ed0082893d46d4c5cf26f48f84f9e84648339e4bc308969cbc7ff04230e60262f7c2dd0e0779b66ad76be34b954ddfc936f5b699a27100ba2fda07c424487275377e72bd500102538225adec588d5d80adc85ba9c40f1e32427801b88e89bee88c4c2d5bb01ded99243d7d1f46acd5be95f2f645900deafb2052cbc2a263f813367ca7b059b4bdc560e29b45bc4c36f59d2ca6f4a3a39434fc69605716aff3a2d24b95002dec5f8005450467e96b1bb6973f7544e627e4d5c03c3996460734b2eb9405182d5c1009d73c123a227699f923f6331dfabec6edc4590a39b9633b36edac386dc6a884a50c8a47b88ec9331fb4f7c8dd60f304fe1af8d8ac3bd5af412649743cb1f59c4fe1972f2100a107e541d05f62e712f8ce4ea1cff6980b6c1e2340cf9779dd9ece60892264017c33224bab544bea3afea1f78d0056b4e2be2d329de50c760689b25368a623f74fc2196de4fc9bdfc7e5c21bbc559bfc75cfc1a181df8c08ad6dca816f4183d38b4688ffcc110b8023c0266aaa07c178ecd57e070e9078f746057f5a0f709a750ee9939bc9fefaf3b57954d5c577eaa294a57fd143563f4b8cdf0a9e303f540b2dc78d38ed60c555f0fd943b53266e03ecb9176a6944871cddeae37d6632b991ba22256d5fcd2b2f49999999d1c4bc3ab52893a896365d4b115a569fe7023f25aae125ff808fc0ffa28125be1fa1c3e451c470a13b35f42e006cf8d64d37ca55cbfd95fa8d8d7a3b9f352ed52d8f64d5e65805d77da523de722e513a6e4ae2946f983638df34a006e9a3d7668d10213a466b98d8be1a594f42b9fa5c9667e46069a24d0a9bc6a5383cde27d2b4a875ebd1ac2620a687e73b54f79d0dd16050c703460f23fae9c9e20d0ef7662771eeaa04eb01db606c7913a97776143711589bbe7f34b8270bf109e5dcc0aeb540cda0d4978c917a9af2f2424e034bf0dedc6d047c14158f7186ade95a95b9e2234282b63027961744687412537efac051ededc407c69014a19da78f2c38e495e9abeb0af6e196d47e7bcb4e8aaddede97b95aaad7bab057132d9ab9a0cd929c70aca28145e1d889ada03b3816c85e3268839c1e67dea1e1374adbff2559ae351f9846a2db7c1a69f7e6d6bca19bce5095d27a6c1274178a14c52d302366bf868427e5dc3d82ea1f8b1a42bb3dba4750272e77ee24d5de35c13b5ab89c6df2d097324e26a9f4670faeecc0003e8285b4e532ff0e4e61355c7724c003bcb1867a59aff2e052536b409b38185c8a4ae3c8012b1e7cf52e72974a6b58e36dacc50a39bbcdd90de4751bb88120fab0a5201f765172a074572c56265bf15f599b313c2577c16113420b1b5a42d8aced875d91c13cb7e762108dfcdf8f540c7af90ba71a9971ce8831d303804fd3273dac47d9f9f955bfdd9c8224d7e8c80702df27110bef3d70fb5661bfe2e8e29620d1fe4c1d180be1355b356f28b9588761849f5e9fbfd7419a4a58e593f276c65de5bf431386cf418e4b0240c9d4eb3b5811f165656e3eb8f9a2bee83f2d4e7ba2c399b7a3e8051fe489c4d24ac4af9bc0c9943b2a2f24f8c1c4a2bbbd3158064f0c47b5d473b7094333e495f07f5eaab47f20ff24b9c25e1cafcb6ad5d3f88a54531a57b6b8706afc12265cb558089d3d1baa531d34386733f25880f7b2f25beada7796a6aeb61b95a894f563a9f30e3c4669d015a678ec46b672bf65df12e7371142f50e613d5332d08e81d38ce662cefec9a6d4ececeef333b23b5f1a8bda9e886494c22a7d07b5c8ecc6ece1cf200338218a7867a9bd0d388e7760bfb542514888abb00ef78ebb1ec2f4d2db127297f1cd8ab9b421252b017633c955a5368709b7473b7a8f6ae803f76c55c2de8c75d4ef26dbd9b19126cfd80734caf73989cf277ce20a622a089dfb18effaee5601976a020863a4ff2c97909a284a7338da92c79dd4e6dba7d0f1dec39cbad5d4afde982d09dbeb8641e2a0ec9475390380cd5c52ccc6df2a640a09693d330ef56f8a7bda4d5933439954ebd1a8262720bf2222cf0e66d49bd44f04be883fa446a62de42b2118dc81319c7647c19ff72f78402f1a1ac0f1221ba943a2fca10c8685d678eaea9aa7fc688e5d6ca125c89949eceaa710a30950a25d97ecc00a8eb01e4915c9623ccc945c8b08757d450e8ca8676785d8650c8aff4046c9b01557b060c9786b96a490b3d44c42e0a175a057e343aaeea768f8171dbce460d54ed1e210fba94ab23cc0a1957111d2aa62816d344c3dd6b8f786f7be6e7bb26c69484df1b1370f8a685f845d9ecead22c18fdc853faaf1e1bbaf93d917223aa1a2025229eceeb258af93a5c8f81612d8bfddea8543434623b5e2c3912592175b0200e4313725be32fb1b5167de7a2a8e0c78c26c882c9b6dd80738a0bf79e082c7d319b80af6e1c64b48e132073d905d5f7b67ac8aa3f1b4cd9a8a131ed63bf7683d08a428ce63e6a61aa2f55e8f215005ec7b8df53a3001ceec2974a88407ebf34f780a2d0e047a333cc14c6ecf2b19e8777788d1e3113db263ecd5ed73a7181ece07d61182c0ad5baba8e784e738ea45833fc5e3b5027b9f299a18cd2f1e64f2e1bcbc6970a2e689ed61e16fbd819287a3c9a32847f0f9788f69557015a0d05428909079bb3d8c2c2e1f991991c61a1276055dc80fd61a622eb84c24dd658ad7471fe5b936baf9cb2e5e59e2923e62b4eb44f2a761aafb6608a73a7ac1f6cb2d2a1ddbf10367ca7c8962d6396816c9daf6c138eaf6db1374414b58c42b8e6b0a51d710fff6181c08e20a4a92f0e906078786edd982919f7b6cdc6cddd3d1f8ba6a233a791a9956429a898b60e8d8835ab583329bee0ecb7999d6aa850a3333183fc9de75d3e3ff995880c4c1bf6b5c26c0f7e6740c41a9062854ddc76e3ae4b62ae6670b824b2cee412148018d514cf6563b25582533e3d8c5e864963e1fe88b761aa4527d57a64f4ae224cbd96dcc340123b17e4c563183e671ffeecd82507c1546e8e80ee682ae3062351b53f93577d4c9b2d78ad87a66d6c704ed523b4b7184e6b7c29d0570e7962d33ed73b83909d6ff3e177f0024396ef60a2fd0411d9dcd5e06f57563b01de54a9a9810036b1e35029f052ac49fefac08d3e46031e62f0340620c9b1edce95f683be6ec1f66506fb8a466024a9d2cc511cbbc6cf13ee16475053d1c782b8f390cd79addd630c5d601730b625c3b838436220757ec8a058b514fd149b0f44a6a5b01cf4a18b19549da0dd21641a48fc2853ec7f0652f4245a5a4768c810d01cc26946426c1fa03a7d054a0d46bb51d2834172a5b26624afe5eb78b3e7d8ab2937ec37efdfb26972330e0e3edb70bafb9415d969aa8588576bbeb9a709705b8b4ad24cedaacd1c26035463926dd4fad7ffe77de00af69705235f93a8fb81815c8be44586f8c5324936412568463f9d54542f1179ecec304c096e700416a286c25486ae4c0d7025dfb0e5f1f6206c8eccbc7336c169c752d4cc122992418fb1d512552efc5aafe41427fccfe97fd5493c976cea58aa6f35a42f350c9c6a7ec134c4fe810c295b6d95d274244d04b7cababcf19022fd9aaa52b25bd8b21629738fc93a348ddeb980fe891ec02b59408a11e1632b00392fcd374346e93a3d55db202d696487a85e521ccaa25c4fb927550f2d7eb2e1d8e8f3789abf9a6c24c956c7ed4ffe1fe17ee4c5a23a64f11588d5dba1bf519ffbe987238f2774fa8dcb1f167ae29b95b73217e474fd2fddf1cd9d31333914d331e171b39c27d9619860309424b93b64763f628672e8368b27b0669c1513abd61c69028b036291e161cf85945e7de59c26aaa4402e2c5d2931182798b613b6d21121af4cae6a12380fa6e00192a4a9fb5d00b9f13f8eeb6032471a43ec5dc6be2960268b031045da968b62a69fc86b109537f1f9de77bfcb581147f1f5c907cd59ca99f357e227d8641862eef22f2e0c1ba0e78fb7cc0184d29f0e024568f1d6617addb159e3981632983151efebb9860c63ceae70d315b8aedef30e17502b407d56ff4781a2657751db5745878159a25714b20acb7805d28a6f53a645cb1749e6308cc6ece7253c71cdcf4885dc8a6336940bd80192a3e1f38d17b347cc188f6daad9534b9df45eeed43c03deb851bae8e271eb8aef621a5865837aa38515fba43584d129931a2d52115e884ea1b896af20d723f235baf4e078f8645ac406a72b01045db22a25f06e3e65813ce549cfed3a82190b7d9de169a7ba888ac410f858f4836cc24883748f4f626d80dcc88f87f7ae01a467b10f826a665aa1d4864445ae8d246c375219cb7d5446852789a9d0c0f23f1608d13f229b7fa7894f19fd15d44f4532330330644d478425a58abe7932f5d6aed2a363c990e29428689aff843bdf7f2e868f0608062f4870a8263d2775baec440c0b353fc17eb6f8df8bc53d5833e0d9c6f4e55b54e3bf4535e8c147cd0b1fd3d4f640227026be7cae2a85944798cd04c85194af495102c88490c6ec90755ad901a212db09bf76a13e897676f6599dc794bc615a4b0612f588eddb07116eb6af656ed4f6e6b5468d3ec570ccabf51c1092378bad9a7cad511ccaa42917ad3019b7078bea386581f046bb1edcf04acfe9adc109185c6c3fa85a44fe6e8ad94853a7c1891d43111cbc8098177aa21fa78e66ab784fd26517c42b95ac67cf08cec4294a604883643b11deec9446d921b64576b04e0824dc2fb6c15be7c6bb4acfb2531277298e4338650de9965345652ff9719184d249842a5d57d103742af8e14d2a1288dd1eaac52bdf1390a0c84e72dded3c7597bbc66c461a264304df411e1a30c0af5c6104993fcb3c3a4f5c82c27177ba8f1c68685cf2e96a34640a456a392258529247eec98e120a521090c66bf5912b309d9902918d61926813e780a42f7035b1042d7cd0859a3305bbdd0b92aafb365a75117440e9f3f82e6f4e91fdab6f1dc3bd9cc1d4b68e4dfa600471b39ee365d6f58a0a69065cdc0a3e14bef448d320fd6e09319de2b82a3742838718ff23b9b308e614378b6f531a47aef2cde7298104f2b378e23b0d6b8da3dd2b21a15db189cd4747aa088c9b90ab5349d7e9a3a2c022836e8d29d4159628b9c48b6dfcc7ad13caba67e2f664b2466a4e8729ae7e8c855023d118522c6e0d0f9abf5f01af0ed51bddc0471973dfa0b05613ad9a7dcabf2d44ea59c49a2971e526883683426b1eba6913df74f59b3d36afedef576ab38acb88c01594f496673b6529d1dc6e8639d556a10d63ad0b7604d3d4f4c6a4c9d2b8a1c821cad858357475452124a8d0ed49cf36e374293e25b94533fb4827cbc70c5850095698ace3e688cfb5e7e3409c9de2c04bb667a4d1803f3571974ef0cb60856b04548f91dbf7ed2b2f80bfc433e092b48ee76b9ef5308632616a48d4f80ef3e89a6d027b46286012b1709ffa73b51b3ca9547a571c43ecfa53f691d107f8a699e9ab57b78d3120f0313f60fb6070e0ae7db8798d32b90c45a0d0dacf5115c7ab57c7f3293b87d4cc4238180900e9fd19ecff87330fdb24af80a8a04d796b3bb51a8103dd537d113409ffc42ecfc26394f4decbf4e3aea04366d98addbd52c08eae16af31d3de691dddfc215546c66a39e3ba973765fa8314ad1b5afc16f7bff171714ec61d26885a58b1b436ce000f074392a2dfaafaad1477abf167e5ec917cf2cb8d3a48b241c51dfb6d84afabb1a5a3a58a47cb75d1806af0872c758fa4ce68c1f15b306b7afe2fb372c3a7de8774917d358e94dca918476814e974583ba00d6fc44102a68d29d2b85e6a8d5a8c36e0d6f5cf4850da1eae4a6696914daaac58522af1b6479e197b230638c0e390845cd5656eda0e946cfb32485e7c8b2da84a5054f936461a820ad5041ca23805b547db672188bdf05b0ff8d92d2269df5c57474236572272afff81ab69cb76fea7d2963f5b10c9d495b396b7b8792ece0de204a16200ec97e59ba792301b05855012ddb1dbf402ac7061f8f0532d16357a87f6db598b116f2c4cf77905c64a4f49cb501006845400556aa4d94fecc31357bc37b7dbdd95660d05d5ff5fe5a927bfe074fc5c4dd827bae0d8e41956a119b861dec234e3258ae08d7d185f9e2a4aad26df1607bd4240d2e8dacc61714b434c05c2f57f04b0883c3c9f8f7702f356a578df64ffe76571fa42d29b2bdf6d56a7aa56bfdb6040a4bf7b0fa52221706a43e3807a99673efbc372c6de6f818373f0b43c9095e7d02f98ec49eae9ca53d6080b737f9ef46689ae190b75f3b9f6a95300d209aa283864d4b77347a41efb25b257872b64009dd9a1ac702080ce3656f160bce87f9a94c2a1da1418c47c25519dababfbeda135f910d9fc2e198881d4f91cd63b71f1e9cb665481de0e7e551e958e9ec434386121558ffb9ec98c79b4f19ead82d22a77cc563fc4ee5305d4dba584103a78b1eb45cb9096581be2084b237a2ac192d9924a44729e3242622d9e58f7ea6a15b0a063e16952160d828a7d436badef8bdb596be2a06a688309cafd0d4cfb3617fede56b788ea5b91d76038abf070fd8dbfff0f0a69b555e25cf8457588681c239bdc428d5b57ba34a2f12f9f5faf6b3a5596e4272d3e4d283e35f9409b71489f79f756c70aa5c22eec2b227c4c7c8262c5fc5a002af13602815cc0cd6b729209392c90976c057eb2dabba155145c475a1ed6287c127ab6d74019c12b000cea69eb52909299eee30755fc6a608d495c7c26ed53f8190ef90d0ab61aae472129d91757e20dea0c966d5fa2d3cba91de570836c33be71de8d94375981bf34646ffb27aa20ed518ba38c7a4925245b804b488eef5ec8ad8f6b1adf1854102783d2661e5f2b9d28b074dc6d325ce58137d7f014a28238c600f713061807f11dbf9538eba8835278f1dc887b865a2ac0808b40b76a5021971d72fa6b6415e6507cf9991a8a3b801c8833e1d07d807a77215b695a109d492a0d1d05648de7ec34e9038b63683d60deabe40af899b557690ee3b3f7f53d7cc94ced64100a4f8995cdc3248fa443c21260da8a6fc54e3c38309f1a158c8d8dad78f381ece2abc247b022c731bd836a4cf68f97e15c6d7415dc6e6c3bd308b58eb05f9557eb14891b91b057550bc70b0c8e5ac6c1a7ae8132937917569a2077b46d08a1bfe29ccadaacc8175304a6507b65329628288b62ffadcfc3a6500c404bb19777cd50afd2fa846ec864f50ddbd1675e13a76ae783dc7d2797aeebb83b99272270f2d3ea88d923d484350717952f1fccd3390f50c0625da85fb87788a908ffd6c517799c5b740fecb388b8c2e3555d225ff85658e46d557dd0be10b8698b79ec614485d59fd00eba157c55e6a08a03d42ea534f478cb3c873bc17d9d87a4d8d5d987b5c173be05a7ef6924da838f02975163dbdad7f1ab728d93acd5d8cb25a32edb40ea7d91388cbd4f0f2fd3c08eee964f60b8f19811c944037b07da22b537b23dc640459f45c926ea6e6c610ce222af1badbe505d0c2908301387c5d0bc400940f508f90bc79ee8eaefc2d69d20acc40fabec638bae7377389c51ad7e8df6f67bfe8995861d1237db96c4bd483554ef7b14d927f4953fd7a3107662d18dd9419f30edf40c87c285a321d90775b50168d57f8f0b7c49c58a891e5b6b2c463d64c536c387efe979d1731b9684112238dbaf06c95ea77e4ff682fc65310b4c9eb84892d4a632200ec668229b285b808371c0448924e5dde443ad6be8b7f68f27786cdcc02ea5b521e00dbeb19b1cf171da6316a61c917421a7d501446c833a304832fcbfc84dbb11a69148a1060e798505f4df5db79557bc77945ffeaf36fae814af2ce1a2a3cbfbe49ceef8324dc100013db921855cbd999718ca14711882842a7ea50966223eace586016289462466ba3a1c6afda6f6494f31f9e831262db27397cd38012b8b1ebd76da25100606494cae87f47b1e7711dd19410a269b8b6b5ea269a954e99e8bc1ecb1aebbf2410c18663c205d5dfaddf525fe37428b4279e19e60e08437fba0873b25b4d0cf9b5e8f6ccc8c7e3e836024654e39f8470556312101cdca309544fbed189a6b83db9289d22715f501043a186456235fba3d9436147902954a919e026ac86544f741aa3ce93138e80ea9e17f39d00acd9d516634e5d5823ae2940b23158df6d9d91212e47b47f9d12a83126bb84a18186266caf226615323a6c713baa9714e0cf08401ffcdea3bb3feabbc4e22b6158253795c43b7a65307c156f98ee7d96b9ca2082b2f6d2426919f723a84a23f13b8bea7ba9cc7e42f634dabecaded6b1261bed7022d3adb771fae850a12368e9a70050aaddae23661be12ba3068586d63b8e45701454c679e1f23389e108367d4bcd756d37a43153344774f0ff216cbcf20c6f55b809c66dad5f476ad64bdebfc5e10ee8c004bd8488828248cc218718913d8dd770f1a352a8f5a45386a5b9e59e6b3c6a48ff33b0b071328c751f4a46dc9ec531c7a0fe1ab84318f14768cd08d31a3f34b0d07fcb7187aca7c9b474c962260536fa4b123878c083e7ec4258a122438f858bc5e9c98536f48c1ddc6c0826e65d27ff914a665615473f726056786972798e82ff7ded5f719de9bc958706c48a692fa45d906e35e4d58335cac4cea24d3684a21f46944cd97773d2eabbd2b439dc9c6e31a0d29e51809cee3436c292b961df233449dc838b510cfabc90183d37967796a9c1bddbd2a8b63770df5fdc373ce35c0d609f32e33502e981056f1e14125516be696e33d224fc5b03e160d4b70851f8dbecd365ebf409b7127dcb41b9dd153e9cce0c614d0bcf75629c7926bf9877e18c349879ea63f8e3d2aa656df32f27bf11f85b2b11504f7702bc33f0b120d977f6ded7a4f74db142019acc276aa66462ef781a18c7d506e08a90a593dba872ecfcdd946be2072127534de00a06d10c0ac183a02f26ab7fe5f81734197d7f117975764982c7c7af88208ccfd6caa9b4eaae0886c384bef947109b172f6f4edb3faedb893c333c1de756f392b51e7097eaca31156e2a39e9a2f2def4092b382ae7e93c94fd9776d3f28e38c99376cbc4f0148e59bf37fa7a660879b1eb8d27ad4e42dac0542c77cea69623383f54080e2be3204d1baa4b6dec598677f5c546a95c69e7ee84f3d39746421c091a4830d49f23552e4f5b882c2d5522b6ef048207343915d02431ad185a7b233f40f6cc9977069b49d92b03d2ddd8754fda81d9a7fceb65415fee579367fc5ba4df6511c795f474d8d09e3018fccaf54cdf76204e47fe78f3e11b9aee2f255515f2d5ebcf43eef01470ded1ee5da458145e4c2b444f3f81ae04254f6097ece8e3f58fe81d435beb734d3f4814ec50e0d5048a5f1a78edc162048d71ddad7a183f1dfe0b2fd459cde26ad98e3703546c46a3931ee42a828986eca6c237a0a8042d154342dde85914e9d2bc5ede638e381960609d43abdf5c4921ec3d71fac5d3933863dd2c85ad763e198b57b9f63c47206d3048d30abfd3fd39f0136337809f11b7bd1de21bbb2afbbed2f346648ce9561f996d74a56303fb93d64471a901e15e4cb66e1a4586b0eed57d7ce9feb3d79c535f4a0b748fb7ae5762146a988a6d0540a26d46f9cce42571239e80afa38201f707d2c603365ba95e5f91823de05acb969fa57068489550d6918558d8b5548c0a9579bbf6b68cc7a67b16893f4de55e04fe48ccce52c82ef233a01a136aa5c984907499aa1f67922026f275cd7847ea9ac020392a6bd8899da85cca62fe82714aaa2f16b2d8e799d18b1fb59a58a59db94653ba0f764036cff97e8272365b784cb35a872ca240840a40d159114e1b7d6ffb6737f61147b8cd36a2b207dc2c2677775bdaf84f838365a782f54189e6eca8c043c9dd1c5deb2a03992835ade6e5dc0cd4e8ffdad8489d9f581d72a8bc7f4c0718375082e2bb46993c04c201b69d7f358a4e732e8baf41c519d98aa2fb9f8e835caf615865fa00795c5592b4179ddd8daabf6d42e9633970022caae25e5cf1a0d790a64084dceb09dd97ef0b2fafd44b9eb782235dc4431f7a31a53c7d84e341f95b84c05d81e79dbfaf722ee54209237ea4ac332a3d84f58e71d196b2603c7ccff1b19a528e0b9318543db5c442b0bb7fd794646d53ddf6f82518956f3db6311bed88f2a40d145f5a088109a76d941f8244888836a79766d7a2387c43997cbb89019047432e0b73551a5cff3a7e8aaddbccefea21e8087426b070c92751eb958286044efc92504d9ab0dbc71a26c36978f27743e5496c116a1bdd0b45d6aa276ced6e213db214eef7b2dd57b010f0470396513db8f465627e81002be0c204a44ee0df48b9ef250b0682d4652ebddf9dcadd93e352a44f5a93443174ff9c22f7c7fc23dda04f55589170feca668b5dabb4348353210531866e6755e3c513e40cdf2139bfe0917bac5fc31ad05462aa7f419e0194e41d58f92c8eb2bc00fa467357c7f2e76a94fa53ccf90c9e78eb357f0a11bab416963ea64dd5fce8efa4c29264d02c6c4913badfb3166c3d94e447b4c50c6daa20c2eaec0046c29fef163ce27161ed4b9acb47d765dab81570163250c494c3315b68d25f76cd1f7fcef660d289c2fbb5b5d0dc44dd7436a259b6b3ce606410c06a54e3f0731afe6368e07968ebe350f4e401f3cfe38102e793116ec7165eb15456934af5bed3cc211e8af9630c1c5b3c393c908d6c527dcc3d3aeb28e283b30659e776e4feddaf80e50e4dfe5d1f0bc5286c57fe0ea4b5df99c1a2d444a1e5d81982da7afa24d35e102abf69b2745ce60bca220018d04a015cc234048bcb428a94e0c449dc397fc597461416ad6404699f980eb3b3fe91239fee792fb135e91ed4ed31ff715582f974c26e12c741f44183fc2fe6581e306d02bdd90b5bfc4c316d904454c82e120fc6f9fde33bba5e07297257489b94d9da688170e300fd8ba0a65082f53f71c7e0b8ade74f9ed134f2c2a48b146f13abdb8c6e89a193420a6f35fb5270966bf5dd1cd51c141a7e28bd57098b180300898f2310ccdc207bb5d7fcb1ed81b06390a566bcd67dc1270e5df9ef6865f92b330944b4f9fbd1c4e6640e88921d46f77575fa794d5a825507e6cd18a3e39202753ad59f892e3e17eb17585cf3ac04a94888157f9d9a1d3761eab4af2e0ec93964650cef8a74cf9d114a3403743eba96e2e3f525fb3bb54d9d153b2d4e2e97bafc9c56f7440d32464be1a5f22fa9df3e40ff5933fa2db4e8ac71ef4196468c056a7d7c1bf6855ddfdbe76b1d5fcca27be749d1b38cf260517dbbab643653ba5ded9be2db80dc5497290674a08bcd62000d0194ca46250cca7a67ac051b3e665b8e1b426562207625975d8ec00e2f07713bd5c0d2e431dcf0726b31af84ff198db0cb733675a9840b375288a0bd8b8ebb6fa69d50aa6441cf5886f08deedcbaf9a43824b5e3f265dff1c5527f440c5c871682f226e97c707af1d4225cf5d47154ba44608cf0726f32c8c26d2296c1c68205668d4497fc942fce0999054436c97b7113afa2161bd389afa59b72ea972018e606230e3b3f49b255f768b31474c761b7b6d39bf28807b3f0888144628422f8b01455ac51ccdcfbb8bc0eef028c1a171bfe280762cb5796d00cb7721aa5c76253cb494130d12e8d0820db0e901923ec0771e1562e9683f3493035bd393f1f0967cbe1e6e31266e5816078925e012a87ba98a8d5849db5d7a89861c62fa91d1c45925061810ecfbc31ef88c753e839becb880db5593acdc32a71aa51b595825144fdac653d2b4c274b31c7f09ada289470a7e05ec8865e8817bc222b9c0b489075f2b19fd685ac505e9d0911f2b1a13fb4fae1c0e907f2557172d873e8f4d4fae928a12b8d086b45e1271a1350f9ad6d9846e51b077525ccfc12caf97dfdf75d314303c7a250f4be2e93d1bf442584670fa69b353b99a9448c619275d524b3221b73a6ab84079719af90906f48b2f626b1e5376f77643928b92d962c38208703c6e00fdee1615eb4eea9ec95567cdc1ee59608063e7c2b1455f259cc4bb392eca0acd9e71996ebf45284404c75051aa7c04dbefb15ff50a87c2d318204d856f1fbfc9c9985031d8ba0a704d882c87f24d779db902c115cecfd9bfc5a43fce4e961390676e7cec31dae48f5c7e04b93816e922e7c17d6000278b211604e860ca66f1121f14300fe006b63769ad8de67945b0e894f19f62a6270187db0494c85f9f4943f9daaa33a3b1506e62a89c3e4c702f7786ede5cc9dd709c7e24b94777aed2e8f9944f4d8d79a4abe2043474ed53d4eadc866523cdc298aad525b6dec648d7999f6e4b6261d408f9918094916a0ebbd21fd985688453000778a44258661800216820ba41fa8e05551c6883aac1133004a94a9d943b6f34d100dcd8b156a8e2d33ad2c3f9c2a8384d2be129309b95064dbff27229768a61ed6656b4b92427250214e39b97f5ce85605e2c41a0c35f6bf798f9e123d3952562dab714270edc8d77203280ca1cf0babacb6499466fc9868acadd3ef1e2ed13cac564f900b1c5c057f72ae4e5b7e9adead3f0f0f41bbc83847c741e3b28b5244814c48a95ae8533efd2b7999174050c2c9e8c6aa35b3b4ab9230c112f861faafd5160bdeab5c6be086fb6d91c99ef00ba3a15040f93b3b27287059f1db78dfe22bc65e1f08e7303441751dea481db4f7fd13f95a6904372f1941d2c09bc9621ab485a700741540a0e1894f95104f440464f4ed011dcdaa871122b5f0c3ba54e1f2145a7a32a69a36a640c178eefca7636005d09f237559e04e823fa518b13c706060e31fa0ff64500e444c4f98c535c54276cd202f4aac606ce306f72a41042330052e8bd12368bcadc4873606024925c86ec7d02a7991698b3db620e6c22e6c7b66d63af1ee1609d8fb12b010e40f4f6bc08afafe80f1bd28e0398a739c2fc8f26a37a7a1988dd759d6fed279b1bf18c640bfe1546b785045bbdae6eb11b06da792c0a7068111f7039bb7888e615d0c455fa089235c524fe3ae603742bf5ef8d526e563b82bd9839b8f2347d5076cbfe1b89b0b4d06df2b900abd192fb79054094a53811052fcdf57f0e4c3a35f8f3f8588f11f4ed67642df873f2e72eaddaefe594ebb9a58635fd62b1d5942942b5b19efc8fe8fdaca4854d7c6798214e6163cace325d500c003dba976449c88f3983d6fe5f4d6ffe4e14ef1280f6832617c34c0245d39bd71edfc5fbc3c67415713574b4effb6e6d27bb4d0ffd056a45d95470ac607d1247f2d6edb69fd141836659c704071eacf99a77a79c134add0bef00246251064879abab0a1b293d60e40b754fec52ac4c1425055f14e214ec3f5ac5b922344a30a37343a7eef33d373d1fc8b53d25d40c863903b4775f5560a40d895692bf09c6f6ba1b21d3284244f37130bd90ee2c88ca6237b142b34f28d0e5a46b9a3cf3684a12457a602f1ebce79cd2eb9335af266fc18e704e947fb6f0664165ca6943ac2b650cb1ae199c4698b5c6a985435f19858a401aece0e0a5dbcdc957ce38ee891b375de1e3c511935fc0c7c3d080bd31eb64046ff93706ad797d11f2e89ed1c825487d176662dd96c84a048abbaf406b3eb89d85e6b81a8605945a513aafd718bc716d4ae086fcfb78f046306e1f5ea5cbdd2a94367410e136c029f2412b11775d0725d402285827ec9b41aa7576f2833a2284b83241feca23269f482df8e2ab389b2961d17baf20fa8ccf549d75826cf375d5b64d1d2362519e78b28df0e0e0ef1dd65eba8adb7c7c6e7c4c6844101eb3409adbc65f9f21d7ac44922834b34b581256d8d3bd0ce4199b0468a05d70ea26c9a138a663f63a6b67cc17864d9b3a23406750fed534d275a627be554116af9a81dc6639f3e2859f6e43d0c86d0a21aa076448b52c3ea5a828acd3ee3a34e979a31a42220f18ad87732cab32af3e06b0db72055bd78297f89f35270819db087411a21698e596f6eb94484f91ca966d9e56a0ebbb69d8a7dc224e11cc6dbc3db607456629ba66b0c2da3b93c465d5ecbf126475e9102fe51c292c9c39b4cd4d6512689eb8cbae0c0b06fad1bac0a339e4f3e7913c530318721fe9f70c8ae3cfdc5420d1790adee982da67f251148910a9c69214715c1e7db6c33bfa3ff3859b100d31f9b7143b7d8c263d3fcf62c5d3e024d0d644947e0d2282d3dcfe76ac0931f761f72dcb61295f7080abc9a303cd2089d20c7e309127c0c5cc5bbd46b5eafe21340e1a98583ffe96a8b76f0258bfea4cc86213213455a79d8ac5d3a5ce01d519a22a32ed898c7a334c87d72dfb43cae2896550f70a264bfbab96d8c0107191a46e19e8734c97a684e16557d9dde69027b9c5d1764751862330903d7a10d5fee8ec03a24111bd51e9569de11f49ef54ab52a1672ebfd292b97001c959b89edde6761ec847207ff051dc08b6a6babcf0bbe65b8bf10d00ced8414a5914e1cf30b5cbfef9b961d1662a179bae092ad465eb8c08ed61703aeac73b4a6dd628faa1976849548159708b7c1a04fd5f7b1907ecd48e571ca3d63a523cf7ed69e65c271d2e79499f1b72fd68ae807146ef0a3b81470c6dc16999563f7a57659dcacdc39af06eed273ea1e0428f2de148612cf85cd5acc3bb1119a6199da9676c3a04f0361db8da5f8ce26d397dd6f0def4b33ad0f81c84aedf0d02ae20cb5b17fba63d1e52ea56453723b8525fbf48feba14f27469c07792185124ea84e6199aeece36965780fd3b45b56de71fdb268b6ca30c2931f3730fc1d67ea416f0710e7b5f417ccded45ade8d85291a4141c4863b63725a464cc35c6485e8d1e5ed6e3504e40225fb4ecda5ad22dd54f9d4dcc98c06d372e0110decfd11a533f5e546c68437115901a4395c2167f8b43366ca8cad2fa1a490f96c990b65865b7955f82e036fbe7a886f3917846c77abe4e7a44a46129ebd07df3185051057d6689116b6256a30ee24969664bff4326b5d162e9e8f6bab23aa6f562d579298b4be28296a3b5e45674e2881911ffd494ea67dc2639833a7d667eebdbac80d0d50d3bc29c63722337b15c9cf366fe4cbd66993ff7b587f1a7a4bcfbb8c2e9b09b86a25dcda2d117fac22c8f2d57791497cf15e717b78a87cce8cfe3ae0327146b45362f41744234172d2e811048da8c229e5213552caf90286db4278ce167a3b8de61752e89b7bd63dea53846db4e020f415192b7698e01f4ab5a5051468a9abe3789b9201a0f6167c0f412f56f4b3a35cf06ec4564b3a4702e8c3a16749406157bc180a08751b512276284590848ec9e7cf03900dc1cee93f9dbbcc66b4647aeb2585ba3a52cd681d9eb4d91af9d3d34c5802b57d9415a4a39468152399c6dac7632bfc7efc861efef8a5dfca5be23fd718f3def79802afda412ec11873204ad804a62954233edc06e7fe135bd331a66ea9b1ea1cbbdb0f135d2de034b34158aadc917bcbdfb523b929b8645aa5131263d591553a89fb1ee40a096a2f0a320990d6b93e1c3d07b99be941ca8021a78d48bdf32861da1d8bae4f7e0d76e58bb35579b148cef53c6226d803059bd290ee7cd168fb1efaa1f8e178abe1304b22c4a628a60a6dfde9fbe90855d21bd16ba89d0a28535be9fd1ecbd4ecc1706336afd1fc06fdc781e77e75e36df24ba702558c70c345e25dcd1eaf7a4099e279e0aef56b7198614680e178460f3aa6dc5747b99a15555760fb96665c64f7d77c108a3c9141e8ec1aefe2587873ef7c884bffa7a06162da2c2285460a3653f725600f160ffc7fa13601f3aee0c8428350c4dd88f9dd30308d61beb797393aaf592c4f50ba513eb051b3aa1738bdb6e57d22c12c09dc834cba90b3cea4cff80642dfc903d51b3ad9c13dfdfcb145aaa84168956d9325832c4f4e69e7aaa82506fb3f32383d356418883de8ba439eea2cbe513072f73ad2b922f6ec9ec826a05001dc8e64b22bd2ad53bcb725ffcdaa9b613ebde116c211108648228a552f3f2453987a091f3b2f0821f3c1ca51537aa5398e2c0d57247c6e0aa878f019276ed68a7b5f4c49a3e8b9563c6675f756d77fb383b036b723fd1ab3eb684ae269a80916650166975457616ab872568e714cd84a243b0ceb99e4e1ce50142aa60cc00b4d19eb25a3d7c1b5a8d16685b3a87064a79c5435885d7ee27b3b04cddbab6da6acc1fb12d35b65ecc4cc1e72586b12aee911ac35eebd89665578d0b5a0ad48d30c8c24be034c1a0b6875c0fe7ab74963bc1f0096ef0beb2862cbf2b2729651d4c3da59bed06dc523c9d6620dd7e3979400bfb00e0c96873446e42862b4da98139000a3f75208741eaf9a88dbe38f4e6176a97d936e62f0c32b6502cbeda11682583cebf45abde22f3333d16981002fcba55d1c878483512010bf2658e5179f68341113df33f1cc9d11bd3cb410be8ac328a98cc8b013ca8f2d266be8ea853da7f74ed2144cbe67aa3736f3693046aab34ba97ba7df60a18db52fe16e60830a9a54ed87c3ead5a55a6fc378c0d54c8c6ffc98d9c8d750eccf3f47359f2b6a8f0485fdac9c5fd522e619c3c4ac7ee96f3247421a2366afdecf47eb34e6d08d0e64766019ac39fa66ae842613fafbd617306f673ff4bb40b7786351eed9d3e4538cea11f7738d534f030ff91d371888f67d7466e890cea4e203109083511435c34737ab7e25b9166210234b40ee4b97028283da8037f7b9835efca25b6cf70bce2a465e4eeaed6c689e1a86fe52e8ceb78eabf07cb43b118374349a3918da53de5c741129b1ea8086b2fe7e852ebaecf0e483d8f7497f0f6827035974eb74114572852923e494300050d2f18e0a8e49f2a7e03802fcd19d469a42b196e23274120bf1e1c436684005fea7f1cd9716aa82583c0b56384e87d8d7c3a2fa6553c8a821508d64ff6af3dfa1be7b7bb8ed330a552b8695adc03d2b76308cf370865b60aebecb073eadcc60f0a371a3a60ebf3440590e160d06c9bc2f7e51b99b35701715b466c55a1610969caed2efa098d699736b6dbf88b71c69690d8afb6cd603d340a4c6817fd46fa8e981dae054cabd6352fef13946cd2954eaa82c45cc0d1a2df52d7e47ec145fedcbc670ff3620e59d59d9efb6d5f2c66db420ebeecfc83682fb26993b0aa3f3aa6e8ca69cfba0109b9e1331c6c9560e4a35be071971d4dfdafb33b9b62741139babe0e0a153df51efeb8971db65ec8caac6d57dc5b4bff74145e3b6f23520ab8325bdb5165ed092a4127f9f595930a76b53ac987975a0089ac447d52fd1f92f5d0f2906b70a4a6f6c4c4a63246b8770f910bb2fbaecf8d7138e41822f893b359da99414a75649ad3a778a9db4ed5e8073941a8e3202cd680eb73bf7378208b6482b59dc7eec4bb7a83c12c382e9ea10071e9cf829b14aa9bda59dfbb1ba9b37f06777b9b83489b5e0649d85a51a5ea8a0e8c65a1c348dd09df72ca2f5ff5af1697839dcf92cbb8c9537649b3e0d637921f6b5a87ee83c509f7fee77acae0263a3315f44b57eada513f1b33fd0802ab3bf567b2b5e26652831859a1156771ff6802ee084265109a1c893dff0d4760cb8e92e5afea7e00258df54166e49a5431ad9b6c682f9b237f513d6ad81202a10461991903ce500e23036d72deaa94378e7c346fba438753a337d9f77efe590d815f54800c59e8e9f9d4efa6777cbbd2646f6f0153c5631209e13e2fda7eb3add91e2641403dfe8f27ce08c392fbeeabd4b17e84d267e0e36d0bb3ec9937564878f05b5e07d052e839350eef79955c647eb3bc3645c88737cece21142c8bf60991206fe383bad76be0274c6d8b14a09b7ae93e2d1b20e674c805aec5ce09a5e66422e58bda0f341c9f6fda51260b24d9e0eb17b215b0907181778a8f4e3ddfd4cfa65c3378790125f7bd91736b1335f755e072368e20da7107ffa1fdcc4bf7b863a3a2c98c75b31eb2490de0e0f8198d10938cb9fd2eef91b37e94bd9c711c17d8dbe5b56183bccb941f578722dc04fd945a39969810633082a9df52dd5d78c5535d81315eece02564b32c381d24f8ccfcc4c9c1c0f6b571bfd4353a4eff98a63010221ae4bfd6ace9899c55c86f4f082e6ddeb0561ba41d840ae80c10570f67ecf65fb8c0733fcb81d494363d2d12071431ba38c6d84e67c767f9de6d3b2885c05a2e04ec5f8fe4f5428e69d2cf9a35289d5d7d3b3699901ccdfca28e808b7e0b7985169785a16a2a34fe6af31236d21fcddef6160083dbdfad8cc9228848e7ccb4d13a5923fc98d6f8e4d8b6e220fabe77c5a477092f729b55fd347a1c4a50e1192a2bfab9d53789f67b346b0e24531dc7b9538361ac1710b60dba97bbd874e3f2b31c7f9d3cd04593193e26810bc31b842f3629cd4dd9294651b317977be6a291854362877912b5ca6729e14c838237ef909f302b31a5083b36de87647a3cdb6295babd893b5f4ee0f5d4acf78abaf6c17f8cb6034fbe2d9d02296595ab5f0322a44135d80002c6ed276a985b10e47c2dabe9a7ece15d2c72d611adf405d9abdd1d9b8c24af79d01e0141aca8d244fc891c0c34d5bf817d07e519951f3d24f5126443e440440e74682dbe684e1599e6b7183660a2e340f1a2f0380a2353a1c458d6b5b566e3fcd1956f7dcae6a61e0572b842c70d27a7dab663bee14489fa12442cece525c290bb95397370f66a3473f4ae8b5b23ca88c094e01aa066b7978f4e56d3b1e01cf92dbfb31ce93f902bdeb40a47a1e0be248610c30eeff2e1b4554d6787624ebb21c984abda47045b31349984909375fd186fd820b0709076999201930f2da0abe423e1ad185cbfd0360cd25d39eb95d85aebb80cacc78a760d4a5df9dbdd4103805e1509af3a312b22c5b460f7446bd13c1c55712a2632a5aebf946bca4788bf18d550908c2e7e0621cb4595927c20a5959b655fa8ffdadf9c8739755c448942a40bc9bbd7b6488b398d20c3bbc68b8b96c406c4b0c11d900400f77a4ed503f629b3d09ded7f87492e35633605e4c5cd1164d0cb0f9da2327cfed49bb89fb567ed46a49658246f43cd8a60b6987aebb64a037aeb7625480e974cf52581ccb88c9b7bd52da065d0606887721d2e40fb45f9a38e37e724225210434cc513aba6dcb88b7273bee757b1e2f2a1a8d4ebaf56d2c067a0aefe419630d1a8940e3c8e917efc35cb3767f3490d96b74d2760398ee6da6df7c034fc7c215cabf4ea07ce7c65af9db8c447b12a5ea629bbb5c8e42cedb21bc3030cc22593744fcb461a2b2e8cc282780b6eff809498ce1bd2c6d22d30cb6334ee495fef9835646d1f09725f498e2e1d9d922eaa1e27c35bd96269b535fab84dc7368aa62c6ad311b7c9664575b0f9f0d036a0ac3bb0ef08bfe76be80c659982db4e3926d9f0f7ffe7cb952e75794864f12e59f7dee7fde02ac25f494d91c21e83a89b17a53daec5fd7d6d71a5762177abb33c70610c60c20752c05c1859e6f6936e4c75ccf7499bb3b9bb1043af788f8f67f0707b9920c4eed90a9738c92e675bd0db0c5df427bf13de814731f886548251fbd3d7f9c2862cc541b0ce26c3c7200ac09a5f4ecbf1ea76804e49ff3da73a37741cc3efa3768bacd03ffebc2cfa7adddf98613f8a2e5d88108145f2c49e838e44cfd4dc048dedcb7d7240788596c438aec982ecee7c3b72613ef4d76edb20f543a29efd676bcc44720526c18b7b27c67efd5ba23972b4f570a9dbb77498c259b4b30636bc156595e2cb16778727ad47b7cfe9c43592a868866b8218798b1c4c2fdc95d06661a0aa4285396277bc9615d0b7b68b5903f2fd84862de6a5cdf30b517bc5c72348e7d5dfb3516bd98c1276e6ec004d8b9d76f8e0372ad1861f467a090c1de4036011c43cd381a23488abc14afbe8ca942026bee5df436eb77964d27bbea3ca986d0189b4109ba1dbf11894a9a5926f7b9ba480ca141a683204893265f0a6e084912b3863f8c562e477add9d4e18c0477e3bc29ff59b0e54c7e2dfd00f1ef5b632ae5fb9a25a3e7de2569a40c131476df6663b243cb8fa4e396d08f6eb7f03cc14b8b56b35c49c2fd2d45538090d1287bca925b815fb199c05d900dfc45a0bd64386e2e51c2e04e8f4fed6cc54e2dac7a54768a2030b853e9c8a8ab57ef319e19a59cc48b91f8c44f1ac6014e3e7b60da0a31e3c1ca43b7658dfa0b5fd424d41d1107e669e6b1c2a747127065cbe537914de4a1e4f559a4735797a3bae0ba16d8c8477a0f503d3322e1a05928eaa8f954f02b009159c0a56b9a37ee4b7b0ff2555627b8bc7d81181dc3d00135289739d17120b4eef0722f6210144be539802bcb609a05359f76e098720fb6f715f1c34d2116ec1359917108e7462df9c401a1d969ae3a8c98c2ad82f6cc61498a6f6fd085cd2a69e657638c4ef0cebf25a3e9e11a233e4066fa89a0eb387535a6d25da30c7cc0d339d67b13bab509c0af0a04163836a2f490457c748b077430be96683f8033dc02e1f24fa051b6e81d51c1a2fbfab3684b835f98ceef2b4ceeb7466de2584bebc4f7bcb396dc237383fe0db346fa767a3cdbc5db29a96a7e6eb731a4b634339ad391eaf2c6230ae77f7528027881a5dc9db8218f6a44d168e3be11ddcb41e8cac8a7d0f301fd71a0891b6a401983c28cb09a130890a9c21bec3e137d66c71ea58c2e7e2b67dc4ce713073263928c6c419e9da66e42b14545b36c0918b46489e2b567c3fdc86df0cf20a44a5853553d2bca4f5140b90f1b08ed0ac0d2100e87302adf3fe049615e629f4d1ded60d66459c85f6acb51768995769012942577a42355b8b0670f0733052dae4d2ee8c2882a7365d512eb8b3262440ea8e2020805930f4bb4157c5440a0ab1ab685cc6ca5dd34bbd427d3d7f4c8eb24c0c611c63df9c506aea54250d801774a73f46ec6aaa280235fdd547cddb75b6e3aea2211e7492b0ee1e0a0f4e69230eefee775c28ff8d77e9d248c21f83721a2a6300f12fed0bb6d06110e6a3e5a28f956eaa2d013c7e84004c609e45023467fda6c0118566df467d500426b55a97b38b3c8758cda2bfefd588853639fd853d807afd6c85e11bf7a8074e2dcf03c9900f5017838426ef3d38b4460ee3daeacc0e5ad155ff0340ba847707ed89583450a9b946326c83530460fe588d52de92587c0c51c578aebdad1e0b8e51f3394c06997f26e33db1eee3dff83aa681641efc7e07d053372840661a1974613312fe9262012609b49ede1a3cc97873478d5ca8fc7b18e53f63ebe814a896417019e86181d7828f87610f825833cdf8885a703e7394840e06623f784cc2d5260205e03b5f91861dc168acdde836f7c776e7b74ca9392202a41523e1cd599c9b7e205cb9680413884328c4bcb855a24694fe22dfb9571d12fdfdda6b59a77cc29a2d85439fbd1c76d58bec144c3718764f1e57f784c63ced0efca0d5f9a8601bcb37255913f51b34cd96bdc31d513861a867271ae9d19563fdeef392fc0b669c4e93bbd08a6102a5b09db3f5bede02a796b4215191f938d91030f3e81bf1c9acae6c0dc474430380d7f225d0aeb6ec24a00d72b02aaa7334951feff1f1e37212236c4f81fb1787230a8d0d1865b1f9bcaa2e9abc0dddb45cd42038577677aef83b610417bdfd65b3b0794db92814e0daab5b7297a50c7ad986f09860c74f73cd8f23c1275986723db151de9b890ec0b53522045e1edaec465476ed9e8159324b9429730f944398c078737a5cde6cf0f6b816d2d3f4419ccd4c57e4b9d0cc6977e509999cb98b3640fa0ff4f6344b1d40f7a7cb910781300d4f93b1af5ad831672d3f9874826fc3551eb83d91aed6e9d3e3d0cfd434f6a5522ae7fd82bb9948b5b6bdc61d3ac819d6f00b7d7feac161b23abd108b87c4671731f502c56cd8cbc42438d945e8e6de578315c48b601f31f6e15a44b0e189c8832ffe35df6454f5de12108e6063bea470847e2c6df871d2ca655d1a51ee180fcdf720ae32b05da127eca319fc0346b1db8a1644fd482437a7210879a3daf7a8a6760521efa1b181cc7f6868dfc87aaf3502c9b527d9528a3932d31a6b90fe0225ea492c49f3a072c67ac0f8db54eb8e071dca173ee2128ea29985dec63288876fa9c6a84d059bd16001ba116e2a2e8c85f58aae5c32a165a1f9d1a391600a3fa603854a9fa9518ad2536222171884b204c8cc9d8b782d6ef291327a52af3ed4744c0ed889e595c2ec99d823375d1879c786a0d16c66ac3e2870ab076efca413b0d42e803d93a25f55dc3b668731a38d618798a9d124963a548c5e2b0591ccc4d56642f333230d6cecfb498be5f4927faf937a9ccf9dd7b8fef2c61dc75fd59c1c2507761b4701e35a9e0761427db11dd7a93ae81dccae1b8007134aad427dca43c5d3c58701837746dd605bc0190f6986b8e958a0cd67d7a4e4861307398f635c41580beaf98b06b9ffc2be2d8471ccdf11e5172c6dd2588a8b24c423c104548d27fae0e410d3f5da140b648fea6e9a3c751b6398d70e43a8706ed383977c8be9da3c42c25dd5c2cca98e4fefd5dcfc2a6293a8c99460e5da0df8a0a6dce2c6245263727973793ba3a876bb8f9c291cb70df1a0a4e6ecec7f4321b19efa682a39ebf156f0b49ff7400ac7fd78313957c276f29cd0d574eed13019ad274763b04ec4767f0da51d3391236669252302b31906a8fa0833d581f6da0f47947bc7597d5c5cb33b95bc3eab89969e8750a1ee634c48bf63587f28e0bae1503a903ef9d2f075bc62b9966ba1c1b7d783d7a71f1f56b944f034a10359bd1f429f20ffee0bcd42e4ed6cba16cddc090d574bac0d124fce8b35e1515c16ba7efde1679ac1aa327b993221fdafa4fa1f7f8e27cb5541416a0b733366e49ee06cbc6d1dfb546e08653a75d534fb7287eee4d29677baae585cf302bc43bd3ba0b48fc656232d1bc368c0f1e7be559b67cfbd091645b342bb3515c6fdc7b46da2e1e0e78b5e9b57e56d59e95d1905016055841e0e6e6fdb46a5084af904ce2ceeada9d448b6955a2949f0dc13fffcfcc5a80f26ac6b7b184ac82c5ede1347d52435362ca76a189b6d48229b749e6b63836e9c973499b61897cf26399b575c36dcd7031ce5db06a76ea7a4b50085b094ca4f5a3b069c9247411a1d0ed0919fa78b090b1d56fbcbc2fee092880cba5cb989bd871965ffe7d8b270e16ffc29e6c733648b9a2a883471ad3b60d0db5a54bcedbffc5460e1e8510322f92b5b6e25d9fa31561b48841961803ab63bd6ad396710284008b787c8ffbe42c2753ef7bb489ba88ca04e4f048ae8161d6195d849c2466a81a1622363f5858750b789f0a0671cc25033e2034148760a791481abac96660acf3a1d6f9122528d442fc9669d97076c2c260d6293c06f852fa9d786b440ce553ddebc2d6d39f021d5b609be8e4f33b940d71412694488582d0b0133e7168ebea4427677139bfcf33803bfdaee0e79dfece8057e9949449ce00e14acc08a6a03a9fa9e05fca4a0a4d16be8290e42ddc0c4fa1800ff13ee3474889c374d8d37447b7f54478766f3d3e43efe81fabed2beb3c32badf92892e73e5b47a7b347efa96d09da8985bbb1289fb85addaa9b234ec66f680381d00a3940e796b9ea8fdd495d38b1d775f050b1e0d5f79470ebef582ec642d635405c490763c765171be6d5da4ce5e3db336651ba1ea165fed894192e151cfb59b082d801e1614085827f9eafd63f21f76adddc47f21595fc0abadb7b9e745bcef2f8442be693834654bdd448e033218931078a276eba3d78d2934ff59052e24a8d4e35b5c64c43b20225b008626a2a308ad30b09c9dbd98eb5971cc1fd0d09638dfe305c68357f1ef46038a5f56a19092ec5cd245979d4701f9b234c6567fb088d23f8fadccaeee2f7d064d03d1943f6351ecf057a6764791d43bfcfb7a4d73b5b648ddd02c347fc51961547db776ae10f272a189cb1025e1f6fde9b72e0b257b70005c7f97cfad0c22fe0471bbc1eb70903b62143305ecbbc1b9814dd522d96f516c294e5032efe9099a6a416210cd76203832d87d90356229fc388046777f3a99ad8330a47f59e9a665f333ff40e5246e1c79d8340af10103f435a6adc5aca62c7baec1cf17dc853e6ffe7bc5ff8b38fd484d33b4a0219414a1228132b7934375781fffd60550f1dcc6aeb0c15b421cf5d9c1974bdffdc5f2bbfa56300677b87f2ad71a47dccaa0f9f62dacc06feb45f928e7ecb8fecad87bd277cf407155982083599baf4ad8488cfbf528058663e98f74f8790e70f3e6967d9d00f2a8a6505a6e18690f91d4af249230d4aac2945d1ec73fa25dd403b92041cb449af757677f95e155f944758acc5c9714b6d91969d1a540cf8c69ef51ce3b8bfd845f636ebf5fdb09c8d2cfb70aa33977c4f953a2bdb8fba290889640fd2c2f861c65a7dbd056c170639fbc7602fceed1c07f1d4e205d7e7537a68bf9c71d4c2b3b090336b347844af3fde4ee5f2fb7283448630c3f19226488b79e24651f5da56dc86c43ec60b3f3c37ffcf81bd2da2fa64202fc950ae729af4a35ce84e0d97c6601489e9e9b2d3ec7a2809efdbb428b0efe42555d6f3f7a3df27209a6013826ba5ef55681e06012e1fb7c21654b2ae3dea67fb621aedb79d86e2804e609bcddb4527c5e92b994d54ebe3e444b85f8b617c6ebb1099ea5779ca674569862deb96877d652126e9223533fdf6247f2d463ceae066905d3c09d745eb91168d7402a744667dd69338099ba590366f9abd01fe0fb6d16f3d637399f969e3b04a1d50e7f3dfa06f7ba3e90e32b8cf4fc27443518b9ee8e945e37e19d9e2de594506645172b05ad68690590ee28deac884a481da91ea4c10fdf8f687e3bd33cc66e330e481c6f64753cc4f35b79f4928a86d088849885149e1178da7187d1284efbed1143d4134899daa44ea43f58ccf4148a89f86a73235ec7d597fdd789dd50db8fc5f326092496bfd98028da898fa3f33550832a603b7d997163f6c0e77fa1a85d3b2107ac81dcbadbea51819cc20ba22c3c401448a6113283dbea4392047f0e283f9aafaa05a36e326ea26ba6b3e578b58bf4eec76626d0cf7790597c2db9d887b87d483e8da73d204be5a00b9b733574d4175cb86b17b06f8e026375f64b3ce8ede6d0cac7316ff56dd8a0faefc0b990982ea03a472b835fc9ec9898e4ce40c0ffba2e2f0486d7c4c04713964872a12ab07292f82ef8f7524f844805a6a30a0c8a669483b0e2b92864c6664fe019e76908b617dd112994edefa6b05b5c7ee158bfabb950bd5d81430b13d5edc6adc8760ba23876adcc619e3926bfea705a6e4ce90376d72f1e5b71aafb25f1cf67e749d0f1c7c91cb1cf73f1bd54a921283cf2b450554180c40d1037edde26182d3c5c489a9cfa2165dd019517caf25412daf7bbe4eb5b234394660f19cb58b35aba871a37bb30fda591d0e1593f06555732c3094a19228bedead7ee4bfd36f81ccdbd49bced5d7dac0895c6b5960cbce59a57668ce6407a0d2be2e8f5587b7d0dc55577ac73ca3877fe4e597cdc32eb26ceb86590deacb3e09ea035b49df84c81161eeacae04de66af0e90f85cf8934d41672703ffe1848543c2b8cacc096a2521bb8ab175e5b22338a5d26199400e59cb43d69e7adbdaad2204fbf7cf94d951dea0a24ebf62060710ef667e9fcfc9ea7f6716907bf3d76b71491276062d203f75e264c39169c8b4ea467a004c7a418174bb7aed2965b4458af17ef32a93b3941e55ff217e4160867bb370406ef0211126f9621a65d88d654e1483f8243a57a6643cc9b7b6a03c7d195dbc375c010b4b1aecd9b4726a25e8389ded0db8fdd94f1e6c7366963d4e17a900c2956159af2fe6afd945f354fafafc2b71dcbb9a02a7456cc746503b1f2cb88d1e97bcab370c85583a977e387bcbc45b7acc4de483f1df38f03d36633de78addaad2680db254a9a50d087b176afcecf05ee8581cf51b9557d97ee74b56be8ff069a0fa59d98dd5cb013c20a43e0a0c7d54f829bc338303cabd30faa1f6263319dd04de709eb8428902b741914f714e0a84f66f4913e13b8f395e9c3ceb8e1a8c427ed7d5328d85868c74c04f7238ff8bf058b0204b60fcbaaecdb6453b939469c6f85bcc3196142bb22173836b0d2d612b59eadfa1b420f3b0c6be8690605e8090119655fc7638f1e09b723e8a3738b595fadbf926301e26d1ee8ecc977ab0b2419b5bafeccb8b1167ad5078bc0a7347ca5fccca7144f085a9595afe40fff9a2db6b956380ddab451ec18b9856ddc323c8bc4ed54736c68ab3e077b9b7c97eee651dcb0adcbafaff05e363686d15ad971aebd8f2e41f2e134c8a609d8ea1e89da6466559a28e22621f31481c480a42abf35f6897a83df6f122c25f1b47d96638697f0d2d44ad01141d9de07499bc2b44e67ddc06c316490ed5ba834abd6671bd9dba7cbb8c018650bf351cd822349348da58ba60165154f2bc47d16bb9a349612d063d1ccc238a37994dedb0fc71fec2d559ccc77a224420e4adeaa128c149cb62ad53b5655dc376ba88373c6a8353a75df154784a324232f8598a0f7c0949f5cee8fe4332b7fccbc13ad93f8669fa94bfafa4073a74c97477f3b9f876c43d4f4a88adcb37833988fb5e02f10070fbe0d3c1533a4e25db93265b25c02cb5909bd071b58d8d48a74e7ac1cf3de7d7af6fc51560b80e96d38b6b211f42f7ebb627d6a4af9cfccb671da889da6b44b2a2cef9179a1f7d54fa559ae4eb4fbc44ef44b848ed0ffdda966ed60cc5d9b0d904b6f4d295bf01d2fb2638033f9b383e8d7c78f4b0ca05aa324393a2c6ff86acd18f1064b789ae54fcfbc4c963c8fbcfe63d1263db3db8d49a4cd9a4dde9b1cc3a2921fb96b7037e5eb12adf47b19848204ca8a05f0b83351295b7f48d63458e0227977908e823ecf48863064f64c9318aff8ceb3aae50b82346ef43370ecbd0a597c49a88d4d4dddf3ee0fb232d45d15e892eaead7ec5124fee1f56108be9bbb3744365871073aefc9601003f7e351342035cacd150e7019874ed4a7114ee7fdd5bdb6b8bc602bd697b8e44f3c15b31df24653a329311bd22cacdebb732668d05bef137907d1d2186961404caad3c723208d6de9634dd302a0759b17939f52a89c5c3ba96da556f3176a65cfe0533b4286fc7f2315960c060a43fc20b3c3f107c9e1a1febff62bd9e7ecc5df57675b9cd296e6f2296fb182f2eafe89927c85a3824d3946670d126a6843c20f6d21f2b0a6232a82733a30fc7dc4eee8406404abeed6222219d6fd9ac47e6419e99a4e6975b6e3e24ac743989288e9d406010134ebbbe4432570c9ae1e4a81b896933888d00913cd0bf4e92a3367fdf5a0b9abdf0dd70b0820ac111fe4a37ff0df3efbb28b61ed7c915b7def959d7997d8b3a3144432d10d044e47e5460fb0fa5b6931d9e5e3c08d83a343324b6ec248357533f1169b6356c9a6bbaef86d326d00765085926faf95b00b04ebce4b4e883b773678fae19426b2481ce9d70c8eb6b6a92c0930536eb7e4fc3f3952d8b98fba8314272e34c09d2d64447d1c1d5a85389fffe6b8b4217d2d9164258854537c0e2dc5abff48d224880e40ed43d3000319960a1d4bfb5ff4fdbd44f166f3f7c13081da115ce635c61cef00cfcd4dc4b430aaefddfa401addaba900345dfaf0128d434e2e1170a0b3c3d72b5f5ef462edc1cc728d90f62123b068243aaba68d6a10ed8628fc43f1227f9b160082cfad88cdb49eaed350f26dfdec16099557356b25ae0181c160be52950f7192a52a9b0df66bbbaf241a581a2baf4f4eecfaaffca1e3ef973bf1cfd533ecadcc23bac6d903f5ea236cc45e6d040cd195657e3b942cc14933b22595220d905a235827a422565b077daa4888a5e1f49fc7215a0f5798825dcff1943c21b6e19df552b7b13c08da4cb6ce799a2e34981ca811073698e671e1feeef21c31cfc1b543d59b0a6ab03fe33f9df273b2c8599a49c69a992eb2a8a09854aee3a9d21de23fd06e2ea533fa7dc8b2010230973d34eca6cb97424abcf65768dd28ea1b4d31d157ceb2be1952615abd7e176117c45d60085ee3cec7b9a9a244fa97fe437fc6741c87b34586b4ebaa4b37924c34dee526296457e4818a41789648dc25e80558f9dd74c6d2fabe4c9fbb9e8b1e8dd81978612d02abc0315660f7fb322710e0ae69e615966608a9be50b742684038597d24c656ae3b0202eaf8fd3f64fcd0cb0954ed31ffd2f4a1a9f7fab705de5f40bbfb17276ff62cbba38f06617f39e5fbac26ebf2a22e14a22365fb6b9d16d34dc9f9be3ceabb04588c7d0b5d5b2129ba7fad494526b7eaf26b16ad7b3e9c1b76736d227b221fdf7558179e3ffb95c33789b788e7c1e59381ed7b2f29b55ddffe6fe25c6c6fc79e2151d7fe985d4f3c8f69799435e14995f383870e525fe898f1996bd3ea0d1671f7a4005e9e805e2100677dc9611c09bfa34ffc04860c9ff5f4264a5602f9329680891c1c9583d8b9fa3524f3b7e774d0017a89b6af7f2d0fe876f7f2efa353007ededbe5e3636137a5f4e245cce8fc2274dfaeff408c7d409092d2e07bb3ecaa317064c2784d23da723d52dfe86c0162a90e5399b1b58960f559215e9ec51aeac3e5735d5f14e988b4e099cc624e051c7c39e67573569239efd9f2c3f5b304e9671f0b69f6eb399b4b0edca3a103faffe473deb517174061d0fb76fcb75c78d15e663473da8e68a3910a87f5da91de18b037ea2afcb2d3a38b2744f00e0d00dd6ad4d13ae74b0f2a026e12b8fc75c7f4b10b5fed1540ddf8d27ee5c1f8362ae3c5bf39b02a1e0b2477b6e47525b27cc38674fed23e89cf9664159b855fe3bec4ed552c4699045fb3f1397c9689f511824a80dc1c9a1d46bede4a0be855e0736956261c8aac9249d06e130b1c287d2a2b7fef00d930b3d2835639fa6e16e0123931dd4cd21769c45e3a217005b43a0d77e24e342d0fbd14535299cbbbdb9c38634db13c339c11740f900a1391c1609405fd63991f3b14058e29d758c20d601b4247023b5a0c322f4457409b72b83057cb902c1576cddba100034fbde112238ac7424bb3fc3d70444485ab7531601810240a810dac990b87f749f5bc11e4600df8ed60c3a49509827dd82a795b79fe9ed1c8ba9f874972ebdcd590303f02bde1aa3367a1cad2046fb717eab8cd7b310baa55f552d2373deff68ca04462d8228b441e3f2f6967e61f4b80fccb8c500ffb9beb89edafcc9bc80c802535699afc0d21c1700b49db9a1ff4280cab3b3c165c00c6dfce8ea42c229edea276bf5cdce7e648f89afc4c0a0f943b17787378cacaffe2ef9b489affb983fbc2369dbb018faacd4b7fcb0ac160a627ae886cba59c1b6ff89d5e0d2b50770ac8296435da001c9c795cdd652428678fab18f9d9421d46a38ba7283610bfacf90995e834c7cf858a57c0d9462e1ace2a259cef56e43e6483514262299572c698afa4f02889b24a4c00ca25a3d1dcc0f2080082668224832e23a428927362438524eb91babac4ca8b85f9bde399c1ee362baaa6dae0c6d0df6feda656eb92665a62ca4743495e09d47b67e9a8aae2e9c0d56c9376d9a01551ca65c12854e9a0b5c623728ad23a1c5178b943dcadafa3d8b58d716ca19f3714838897c2d89fcf99ad7e938e390deb9ed3e4a607b2e06dbce51d671c1775079a69ea304883bdad702cb4895f79492d30fd68d2258dace0c284885d8a3fac4ca7d57b2c86fc467eebbabcc3f70c9a653ac446c5f6fb23265ccb7fbb4d8e5f77c4c831e11fbcb123a80d86bfc49a3a004b5662e803d80c479e315da0d7072d507da6ed33030955b084f1667e7111498f205a22ecde096a0a7cc6b28fdcf38d1c6f606b70388ac29500357aa0d03827fbc6a89a1c13a1dfaec48604f566db9145ad28095adea84d4fadf0cc1a708c9f22a5ce2dea427cae5b07dea2afaea7b22dc2a468e550f654e61138536874abf015d54a628892e68664a70512047f83cb3123ffd7705503aa5c8fc1bb4920b487665a435ca7abd6321197f515727f60d468b0d8c3ec2927dfcbefab968190f9b3f3dd5bafae565c1871d0aff5d3c5acf1d869b53d1356764d15d6fb5ce3f5819549e66e008c9e150da1b97d0fa85720928948b5da5a6eb152feca97644c1312fc3ab44fa25a7ceaef17c506ac9fb8817961f686f2151645b428f92ce7f6534ab196919084978de539bcb9b0fba396db6dd26d054a4591312be2d1cc0fb4a933570ed082cc0244307d98d7064cfbf553b5a0c54ac3c6c08f0403cb42de5dd64cdca4c18a56e59792fec1014c414fff3b81b84bb90b035995d6181345a41db3bf4f0d8a80a3f1215c601ba32a58624b837522adca4877c667808537ea0b633f51884c658678b4b9ed82b42f838578987bc1e841a25dc312d9b82ae35861300f561965044f86a31f5bf233c28f7e33b34ecfa3dc5e0afdf7a2351cc395c5576e805f3b8ab88f4683ef37b0e7977118dddec4727ec69ba2027df02b44241e8330769a204fb7ddfc862a777cf057431d81fdc8d78aaf07c035cd510768ad6a07c60fa3cda152a9ebc297004366bdf2332084a86a2cd794987cc306e8e76e822ca0d718e2aaaad1ccc7fc280da101ee0795b8349549c5337d881cd1323480cefed8797231aeebb246f3ff2c2484a418de62b7353a015bcc5fe76b7fc5aeeaafbe6ce324bd48896dceea7b4bbd2c8b23d3534bce788aa7df6e46882b2f2e3b70afa66653928caeb7a6669204b15dd990bb1402fc341a2be30aa4baaf364f4caf84533e3918ba2f98826e68816a3217f31d5dfd282f7bb12911775d569aa31c721d569fcf34e67f81042326d9f21cc3e54f6ecf1f7060da617dc315de51e42194dd8462fb544cbfda56566d0ba08d0319641e55ad6cc0d75c93c3c74b64ede36b99123d16e820fa210ad9e91c8cee515fc625c432760f0424a9e7c4776f73916e0369689f96ef329b42a7895bf81c94b5a59a579a48462e54014e8cc36d195249668d68fd03f653e4d1ac9c39b464cfcccc10d9fb157383a2ea0695df3431e758fd3ac0ceeeb84cd2f4537bc1166e62998782b6c3e69e6bc2a31f3f56269a946c482554decb5fb1e619658e2fb2d7552f81ae3e296d7169e11bd5c24caed0ba3fe058926ad7259432e9450d02e2e92d128fbc2c70131d9f95e73d4edb8f4e3f7369bacbc90a82c0fdc4a7754027c7fa647a46164bf33fca3f6c0257855a9ab23b90002cb7d7c0119e796e17b4c81a0392daea44007b1b668704a71a980205f409fcd548ac317088847eb0183a0ee62e9346b20f7e15a36a36555848c28d18b1a22661b8363f2adf529ced6e1e097b7ccdbb96345bee0eea7dbfb63568c46c29857f7b56d076c9d348f0e9db65f29684ce8ae4de933ada21384973db88d44e4710a1da55170eafd3b2b01f3813832f6d13c98bb1666e9228f731bf831d5920041e30c8e18f674cec6f7d69272e4b78c906852784ad96d00e31dcbd16b78bfd59574b17a58fc03f52c426699ab6452d6a86af0ad45c509d4701c63acc3add7317f1d043726c898b943478b7e1622118847c5dd860db093976e080835268c4f981a0a96244fcdac047df9ae6eec54a13f83d6ce69345cb10200a561197299cb299f7b35126262ebc3bb3215b69fd64dbe1be8a33b1c55b543fedfeeb92d593d74fb7ddbfc9305f1764301566849d5223b76a3b0a26b878731c962048124a2ce591855bfc2f3b4c256471ca4d04cdd82a2b2a16cc8aab5997bab96063c29dec86e7764c3412766ce09d2e25a83b395e8ebb50908a2432f428ba4cf01a90d2cfafe8297f7e912efa8e412a630bbe49044f7ad9343dc8bb55c35758c9d1aa6c9c81c076b1f7aa36d3af43cb5b9be1974057f08d1d2a462e4ad7b1366cd518aea2479145c2d0f12bf67acc69bb79639f74e773c76dcd1e56cb0adf912cda5a0c06491a710c1ff775c4a6ed8f0c538680b811ecb30b23ad6459ed4fc26f527b63bb789d6bbe8ea99fbba6b91a021ebc51fc034272d62a425a645e78619534aebb14fdc7b8edfcafccf1f5daca51ef0d76cd7c388237abcbc6b7b7b595fb3c72f6f27b624d345d2b06d7c8e3cc8feb3f540f2cd7d17120343c149ca5d6392a3a912419affd025b48a05d238b849f0a352389f0fabe21551cd85074b34221ad087210669f59953a8e8517a17447bc3614d2d323be9b8ce8974434fdd72bd883979d1b98f7eecc5b1647adc54aca70153a0753854f741ef25f01c2a06ed72370ad88e0f4e1aba36ff81a9d477e8a5b1108b73ddf8ef9efb0de579022ff181d2ccd99572c10208cfae482fae45385310a5f614c36593f62c01d75197c125cce4cef7087c4d2de2cad2ccacefc14181aac0113317478073ada491421b3ffb895d00fc23466c44a7f2d97bbc20bdc5e43636bfad85915f9d4a17184e0827d39220a9c1384f14cfa0b5804c6b0cf77ff16ee6e3248340b333a7091b6e4fa8811115508191fcd85a773eb296842617cfa28a813660910f4ac2b2ef5f833f290f81d55ac59f3c11b0ee5ed1fc5439d6e1323b5329f53e73aa9aef85a289c434ad9bec862577a4632301418bf22804877bc495e5c1afb1d3acc8841cce80063928afe1eae6361398b9af608480fc9972d461d09ea81c3ed30c800cc8d03ce3aa6de153364f3b5e830379bc500eca41eb0b672ccbcce5f93238de7bccdf9f73915f477c7179c6b3c7308f7554539cbba749834b85a5561b4074a07f4b5a8dfc9e538cb01ef599013d7557fc5982356cacf427e6425df2634b8f4a603cb424f151364f7e04939b95899c720021ba28b1e36f5e63c4f4d90f2d982ba1f8211b3e0776e42e29aa89d46884f5eb931dabe457f4f701e6b9ff258728ec9c5255069dff28ba356d38fd40369632c9761ef2e386c81c14fc6ace62271f43a1bac781fda8f5a1cf5df829d52a7c55629e9dbcf7f8063367afe7e7ff3421414d27429f3cf91b8cee7d24c8ddcc4d8e386577300d72fc4a6ef29f61bc9cb9feb2b49bce2a5193ebe01c194e293d5dad7262bab93e493d5cd2e7307f4b83c956cf9804a4389a118e69785bfc754eb753fd8c8c2ad31cb26e4d1fa0c6d7356b8331ceca385211092c79a1d5e61ecc529d7572856767a1f2a9f2edffee7ad1625079504b252931584a701b92d2eba76ff86f8df3c0765eabe449aaf1b8c13edf2bfa11db4c32386e2329b524deaa57e972b515a82ad810e23deaea7ddb3a031f598025075f57f59a37ae9c0729032eb83c985a9612c485834c722c498f3d6ba81d4779d020dd71e53c610cd29f1350c53e158aed2286d9966dfd397856baa06b8ad14fc4a98a111611359945e4a92e5092a5712f3acca6211bd7020570d8c5da05906a690ea471e6dbf1293740e57af90477069385bf340b52ce38d9a1323e05bb9bef5d8e7f45bbd052880a10f889927fc10e68efa84b53e3fd2cabf9837df430849c481a48ddce4c32f09d0c787191baadb3db849641cf49825aa380e05f855faf4d2410bdb594ba66827fe0c5a9e7a2436b0d86e78707027279e49d9924b9a2c6d39ba82cbe34cdd1f73f29349ca7cd87ebd77bf41387cfb95fdc4283a6a1dd1a817df0e91f328f7e2d1e3192889b769aceda11fcf57dbaba0480765630579bcf58778bf8965bf96b55999e2a19c4911c917a3418bd2a5ab715dc16edc9f0073cfec092cfd5bd661cb1538ff158b29e47af6d31af6e4879129ef023c5f37a0f21cb9cd0924cfcc79f49bb57208747690a5230e402cab22e575e8e25b6f23073c4a2dc0a9494abe84620d81485eef4663a234443fb3a1fe0ef0d0760e50385a8a4e89d0a1510c688ba295fc17d5dd19d5014dc1d1790064150279714096db1b6f2d18d9e99847b9b5972f5415211756dd9c28006d2c14070b60dc56354351dd0006a994bf17b010be7292fcf03635b61a89d94ded197aff12315e82a217ff51cb8a1745b354a32dd53d5ec4317203716b27f2dc202cf80235bc0ed88ba26d5c17467fa0cb0a948ff422583833de8b94ab55917e293bdd7d06fd529e2f90d490732de67f4f28ce3cb9cfba255aa32800d4502950e23b0be26139ca9dc19fc9f8cba6726e302e7a8e352bfe8c0b5c09d75f396e3eb0eef04255d81a678fe5061101fd052abc55ab66cef2b35d1450a88bd00c0a9b18a1397974b858a92c4a3b419c7f9556e20a2e9b77cecb2f1d8d6ef3049dd71cd1c3c401bb29b927d0a6c17234291887ac96255c7f8b80d9956283dcfd081cbeef4ec5f1d4463e4a734e3136d5c1b75eb13f3cb9c020745b849819ec97b1ee4c13728903170dd903acf2b55383aeb7dc7a8304f40b50db08a517aefdd7a2d0842c1c56e4ca1d42a9e347061604526bc607fe09979934cf750699d311784f44bb0b6379a109e97a8b6f635005f5530afa02d5011bfcd366b37ea8add8182026f9bdc2de9639c52342dc2537186297ce142491664219ee3027843ecefda57f737afbe7137ccac34854de727821dafdf7dd516f4ed5819bf49f42559c591eb0fa7b2d6f89e93df48ad8e9967ddf79e1953dbb2d7ef1a2e0d37fd1866d2675a945b0291bdcd0f1e77f4d8713ecf024a25b4054eb321cce6ed71238f542c895255464a1f035df40b39138fa665b962a212903694177007f63608d0ad8ffc288e0521e3be279858d654b6b8fc3f2a65a021e8f3c67318bb8cd7b7a7429376d41d37dba0d5880085c4b89381e98164fbb91404957e6075f66d8552181e2383774959d9f9d445e671467fe4e96d69b9d9cf00f6fe65223aed1913eb9d36db61e735801744edefc202e837e449396bb16d70e6db3ff72d140cb6a026724b3eab7e65545237d66ecb0c4724703bd44b3104e8ec0f06fbc0a91a14a205b7e59247fb9b6a6e0c07f684197111ff902f6cc8d359a299aabbdb0312941e8bcb943393dfddf6394d73f4701f873625194d24c102e46ac04a7d3d0f10f3d936c69f3df02ffba0b4c10887804733591d8bba021b4f800fe9e81981da0af48e1785d27139d0c06f5bbe8481c0b12cd798c8f094123a34ad13d851cefb7a08c12dbffdce1c7cf3b6dc6013ef2eee6c12acdc142c986257401ce162c763d8ff341b7832bde50cb1096ec1dae546cd2674854832e5a9ab9f19846acbd9ac4736d48ff1fb16d8332a1ccab5a8be5036001b08f53f2933c824961cac52a501cc90197d6c03c16dbff79b0a34612d886cf876a8cd800afcc2df63f11065a4a84a3b9ff33c980ac72d9a3432fd026b65443e62e9b5bcf3c81f868f4894b9ece0b9e48d35d6f713318c0110e4f18f770b16635472f9b4e5d02c604efe1b190d0fb7889421f064862cc69c83c48a4b6a98b752e69eaf65208989fa2e59754b4458291d1fdc766cc64ae59d2021a3b146369237010507a70dd503377740e2d015da274d965e74d0d26e8b557bbc3c786f8cda426641ddff1ed86e087030b6355c9e5eab120e10874f17e349708302778d6617777b0abba5f7f463514ddf7c087c4cbcf6bd1e0d61bbff8c659eb958cb8833b1bd2242501f58b56b167600f2169dda677bf9948d40e3ffa5669ff1df75f68c214c402ec92c87cb3b8c7ab3104c696e3b13bb02996d9ccadce7404b988072eb24d076c549ad5c2cd10daafb86745e19a5f429c11670557e2f6a2832ec776cedf1ffd0a2eec109315deffe351018ecc271665f049761fb134730e99c1b6c163f64c221853f5dac81604179236f49fcd6e826c473705e513ad85dad311846fc4a7d5070af969e9930225f8693566ce97f1de30d56566eaee29735b7a033a6b3d0f5bb7bf5afb30561acb2638edf29953d2cb0e26b2da4396b16af55564916674e3ee0690e80528d8ceb1294eaffb4a105326d9c1f69013d34377c22109dad44a68d12a0731aa5df6c50a2aea6c8631b37ca956d1f911f23f2f8dc7764cefa464c22811f08790e3fb2c97136bd229761d239b726e8bf1b5f322fc4cfe2ad726fa932682a61219cab604ba86f171b6a155981aa6947056c70d8db31d1aba5335418bf086c0e0b9b89a78e252ec5ea30ebc6efcb42350f1ac59afd71fed48ba01ad2165657decd6092fc710f2be68d906f1c4eac5108b9ca8c3497abd5ba6e44b3c403d202eb362a8facd0b4c477b0e8120acb06fda3a4783469bf5438fd0f60cdca74b78baba95dc3262fbb82055c68b2233d3e999a0a6e8d2ec40dbf44b0b115224bf5b98ad3140de88ed2f9ce4346ea9e335677596a4bace558d1509aa4c850b05fbdd664bb2c481c828f80155098156e50f86c4d557d942bb8877b64755114fbee87be8f938678395bb64123aaaa37a3093a35ed5a3f96c6f7c9018664458a12d124401a499759097b9d77bdf806c070a25d5dcf29faada462fff49bd2ba9a17e76ed0f037c2ad85edaa32fec76c6bb98a15c181533567c307d3368900b15bbe635d145c1a38865d72a6404ca1bec13b8e238dd3a057028a1f328f6c9ecdf86edb5f33030bb644843c631756ce1457ba5f89eec74b619e72944f5e823455eb733347564587a7ca621ea9583d7afc9bfbc10df69e238079f08a88bbe865006c78ec6f9474c85fd2ce0bde201f153c9bb19d59e188efc0b31bbe35e71ee06292271ce76c123a904f9d98a06fd05c7d232d26ffea72197f36396d2f7820217752cb98953e7ab7fd1eda51f344b9241376eeb4692f1864ee0d7be7db11f4d8a76d857b63f489ccbb59187dfd9bbfaf72867be7e1d2e2a153a0cde8d1d525cd91e52caf2416d8f470afc59b568b369da9d930c3d2b25a543ba42ca09cc9673a254e1516938db86537037f331725adae8b282a8e7b00053491ef6b9ca8081da38f3a2d8235405832658238a86725d33b025b2b756051e02a433a330bb74831a88761524c0371047d50e2272cea86621be8fa66032bb74179c102e3929abe9d9d55ee2bb21ec24b224d7da216e5cdcc7f6350c47244976a52ec037fefab7dcc45ad9bb0a11a2190e15250548004dd3990cbb1963793053b50e68f49166363f195e1cbd711ab2b7c111ef2307908d4c2ee9f4dac3d562e9ef875a5dfbbe2efb0a11eda410ce52466ff28d36fd719f37220d73e55011dcad601355de22961c697d5b93c27dc93764f3a4cccd53973769107eb40ecf80e5e1916bc1927b5cb49be7b42b3e5afb08195340973d28a2b3922f9e3b5e120240572ea7e55f951508d1cc543d8da3e5473e77de85cb1e25a67f4b94c24a483bd76e64f2be4e2b877d6ad3b3b1b6be0d437550a85b9eeb18cd864b00589efd53415ad2bc5b04a83082f1b2570dfed4943a31c398f613d2122cecc4e7c733bfb9bbffef59ffee455f2fa0bcc74c9dd7d342318369c29e7e9ebb2b86cfb3e4f798bc7bfc09e36164ec6ee63745c18c75f36a4752592bef66fd24255b0c1e45af0c419645a0900a0edcb111bed0f36487a8a3734f48ee6379df95871b5e766e82cae2d2d26afafaf10c88f2beaa95fd0b4ffbfd460486ed8f3eea02308b3d5cce22241e39c5cd92d41c9e51a815a0ca09af863ab25dcc6da28d50b3417c8090ec68d75087c2521dfb76a59eef788b8253eec7c703b6c8e982dafaedc7ea66d7744474d5f88618ec2f2328194302dd04034ef349ea1215e2e8a427f252ac4f43c28e687b0f70810ccfd5c7092d0e8a72e893b102ef13ffe85439d48afd99075db46c4c3800e9b5153b74b6b1fd5f8fab68d35274213ffe1dbbefaac08d6f51845381ca5c0de49a73ef4cd4d0930c97a94fb05b34666278f5aa15b607b7584b434f0ad26aac287cd6902db35b338423ac8cb7eb472d26388f37ea57407e55ada1873fbaab0794b5e147289df7ce186412e35fb1084dcc4f21a6c39aa21fb3706ac384c3de4fcd367d083b3085675c891cdc85fbd1508e06fdf0b0001acaa30535cb6987c2cf83e83263923f0288198a63847224a37ebadb3721416066edd027f93443455a336fda598a27e673e58489eb9a51e6d08d80f6a1b17754d097dc1074a5004cfd1b3c4c0ec023d5b498c17d9c0390820b9f940620704af2928aa4cb464d3a25afe483a68457d800b2a9cfc922d695d0509296627bc35fa015c8ed9f3a73c5c4d93f7c95b5794bb7fe764ae77592397ae975d631a2ff2230c0535e2c2eed25460852a621cabe4ec92fe697848370a613b302981fa3fedd9fa2fe8b02d93be4005c1e236767a3ab3e770c859f0c5be22f7c8325e201415046bc9ddfc220fa7337b481d1fa6148d7f3bf604e859c2714afb9a2e0269ea3f00dcb663065d18194da1a85fe3c12a6f9576f49780ae4c868047bd9a9531c28139f1757ed8a11fe7c6e8dba311f621afd22ef3be4cf9d8a0a76f16ee531e2e14d0ecd80b0e971267c0473a772b43b70b80d840b9927b7fadd653136f16e1169f327809c7d37b62a33537e32bb045c2f13b05c1a553384a9275f76efcf7408f41a06519be9ef0fc3b2ce735e3fe0ea3fe712bc1419baf40454f2c412ec9edc6e85dadd6bfc9a0035b7da14b0e2f69c3a3efc37579856455cf65ff6633a064c43d1182a7f82afbd203eef9d3a0eac403f631f7908f52d93cffe0d2f368fbba8ab1af1aa7c4d8663bb1efdedbfa9a2fe8f47d9dc067b57c95a9c27e339d67f192364f1c424727a7e75b73b2274c6b5e77c827241f507393510132bd35ca86c1bffef9c4172b2ef58631fe00842149c71aea4baea4d52b813f45638820a519e514e81858409c2aaafe77705676d14ff2591991a1ac11ae04e59e98332172e96ab2baa9c5b30d97c35da06f40db3e145acde2709db882401edbbea946060937ba99d1370914a30461fd96c3a00abd5896a4514e28c51da0e5cd32d5e2e0d846351776dc9dfb3899f03b36049b1f0eaa5b805d6bae594d1823a2859e183ab2968c1bb5fa32a8909ad2c516c5002ebf618a9075b05490abc4c762aaefed370649e807c8355d15f823056bb69d156a7e7838c16d23e1ade45f2950ec0ea9307c4dcc9a15dcdff37d8292d4a53105b43f834343c66f608a70c1329cae230e0418842f46dee9a028900b7306c1fa869f5db8d3c6ac66be343a526d182519030cfc0f83e9d7f36820c0a11cdd0ca3ed3e9a64d365205e4a63ac0205138e844bb963bfccfb724fb1afe82f51d571e3c0c09921a384d0213a38781e7ddc8adf2b6d168e561f1a4e682281b1937cb22469c96c689e072ee1814678b2608be3e7db2d1a6fed420caa620027cd992dbec0f1eeabe4cd08b02047f9ce700429d23d4428a7648772d06f9e36a46bc9fe1178e34373f5494f6c4a8995032936817d523546b12a6668cb9647b65efa6089f4c930dae8b24be78df286c154efd61145f316f571b22f783a6c967a71bd33d39f6e2674a0cb680803c31d05325ae47a50e6572be33319a5f558c73c555cc920b8abc442c74445b9b0bdc49a227419b467a91f56700f4063b027dcdcf1825eb5db693dec1b6586eb87e4e7bb6f72a2d661abacee7a623d5ee4341d3a927f6c7478b17f70b315c26ca0be8d43c7e5928ea762db12aeaac0c3758f2e9f49c66bd6808fd1f31e0291081f189f7e72b3fcc34cb58cd0f668004d521ee2186ddd6acfddba6e1cbb19a6130c87cf013aa240e32d9badfea1f5872a21ebf657137215a93fb67931c77ce1aec1ad00e2d1407033f0a479bc86642aad8618e23318c0707fadc54155dc791a707e680fffbba982c58df3593f6a42ded4826b75347bf3d3a4df1ec1c35109da0e205c36182b10ba58d3481b15f07cf041011b911530b582fdab7bf87b2aec29450bc7f908e305075304743adb2f3f88dbade2549a0805286c226052a935fc8cb89659ebcc5671f722b98320c40d752d463f8f73a31205f320a9a88d96b7264ff6f5d7b75fff2ce60a36e0606b78ed6b049df1261b99d4c2939e8122c727a7d239eeee720854a547fdd2dfb9ee108aafabb586e135d073a5b2b8540e9de0ed9814681660fb2bfdb12b5745bec25b0fda93de437fb4b2934553aea4112b790f53b6481fc77310fa359763b42d86980aca197f405486b785dbb170ceb412d6b776b2df797341363cbe898b0af6784082bcf2e3e2231ebe635c66022f5f5e7bc6140355d689a7fd11c462eadbe7fa01502956ba428a2ead039e9635f0d87596129a1de24f7444e7b8b6f661ac77952a3e428a3c7f04747f7f4cdf3d5abdd0a3d6d5dfa0a03c3779e74bc573cf49b09f418d02e91533b85bced092bfbb6b039ad081aa9f360ebb524655eeece1d7b544a55ca9de02f67cb7e7d7a5a677e7ed4af1ec4401b4234604e139b07b3a385879fc4c7deb9d3cbb6c4e5d558e0a36da0913afa03fd331bdcc83398cc766f5261518e8099fd1ae254bada2f23c84d8e0692d50a9309acc3eec79888bdc0cd0130360b3c71dd92131202424acbd4cd6542b8dd8c5f0b64428d62a787dbb81a8dd464d9f37098b64f1b5083b041bb92a7bab14f76f1817126023f209cd223727bfdc9270bf1aa8cfb64cd6829f1bcbb7f9977a1c8dc40868a16dab986da1a903077a491cb6af54e8eae10ce87a140258dca11adfdb649ac55eb8e1c739c02da48a73db3e3eb668fbfb658304f83b5448176d21628ae909b335659135349a7a8cf9ed804308783a083b35ea39f86f71ff3a382ede65ebc81090ca7e71e298eec8ed760b4b226d90c8bcf3c3f892fb59536f8b107187bf4eabb331a2d91fbbb605aaa6f129065689cadc63dcce6b46f77e8c1f952b0290810aa569fa640b5a415d856fca422c991e078f951c59544b7556d590265f6be9443ed4a9bcf9dd9257d7add42e3d37de6b147b113aa5a1bc012889960234003ea33cce0ade4008ffe63e0ea3f7864d1138c6254c73d40d3bef3ea130e17adb9a24c0540115d7a1b4376df0152c855a0ca7744c102de9c78dcc1f933beba1a91f5ba5d11e2b3e7990d8d44a0b019681256905ab4936e8be9c63fb06585ba7a0ca5ca63aa30b88571c3f7ba31baffa0928084f8ba9b69620c61be22fd5743dd8f50c1a139e28eab0acf32ca73d9ec22ab10bc42b77953c2216e6f5c7218836c652d7fe621f0359fcf7a9ae1e03dec3dd5f1eb5530203b993f5cd834aa71fe8afbbee24fb240dc3639cb0c41ca86b1916653a636fd3a3c2628c8c3692b97bb651256ef94d7bb75157d69c002f38af68c0959d0953d39c1cb32df2624f9176bd5afc607e947f03640e31ec4801cefbb982fd528d230abcd4fead8ca5bb2974d96172fe51058319023a8bdeababec539425cbcc59d0e8019c82fe26541b67d3b15e732e2fdf8b2be626fce64295502dae0c0a48dc989ebf1e1502ad62ce50872f5739388a9affd3ac19e981dea1f895d7e0070afaa8f481aad732387a135bcca8e22ddc25fcea407623c10bd9450492c9788cce9f7ff8864565aeb385b297782a2ba84ea172273eb4b1fbb5c12762189660e9288f445ca0ed2f11e1d664932d1c2438a020af41ee4fe7313f1fa2e45917b3d18c4b6652bff28d07374d455127f2c3551472db6747b11f05fa0f7e68ad2c313bdf91120ed870f43f9f5dc07a6b6005062eb28c8636a6413135364748c29b7463bb5101ca8f917083668b9117e9cbacc7f38e1ecfa7f8d7b74545cba8aca505810ac8cf96440b3c4de7baef1313d84b881555f616a9bed773998fb673ba66d8dd14b34e14825f300a55b41870df7102ed187015da8e8d0de894f66b6c68000a76c07e6005b5591bab78b791bc5cc919c33b73acf6169f74d3517fe074c49722c286ab4b10ab5b1e50e97209b67c9c5dc33ef87f113754df2760d9fc770ca80cf74dc26d66d355ca4bcc225301e668ddd8ddecd37130cac5b2d8f0371fca9d8a03cb06cd13f154b62756c7a65ba54d05d75dee65164375300b990f2afee86506eb3a21147e6242f44bee68e36fb59c580dc85430771f53a8b1d2349d71088f54f800f59864a5f0367e6c1aa8af9eb935c7f698bf90305cc30bb2ca9a1f635b55204fd08842eb52431111de23c860c0ffde03aed77ca9b1bdd84ef33ff8cd6c0f330af88e28953681f1914c6bc2f43d6d8e048de64fc486a828e5c77ab7e06266452a4f15e26b6694ee79e955081be0e1759d19bc2a2098d108478d3b54b242c0445da8130fc519e26d654fb80def35bc053d68747f72d59a55938b65980f5932309a6db5ab516c358b6f0cb4a4a5ba3bcb039cade01dff7e827ccd6e2ef180556f6da461b204dc95389c29236e08cccd8af7d665125e57bd2849b301b2d1b12072c097f022d07c744ac88b75c04e686970605e8608a26c49fca250df509a55a61b23cb8f0006a803da4d6ab1e0a85c7222e78de80ae90716c80e6d2f7028544b9ebd4fe48745ad14b9b9969ca8a7301d559c4ba8772241e171c05c72500bb3249eb7907a9373969f330b8737adb593e4c69e6f9c8fbff5ffb45d7cceeaabeb0eea285deaa3140be84b52c05a353ba81d416c2521ea66c7c3ba62ff952f87a19ca71884d8ba2ff26bb0b09bafd8d0aa3a7ff95488807561486e9a2e883d655a618c755d14af09f85a103bde24d16ca6a88a741d24682744fd7fe6acb261a89b3219778d5e3353307914603197bda467784e5587112ea37e5b7e67db44577442a17667e8b67dcd3d378174ae3f3e5a942a8a1213757d51ff52a8c16aeb7436544c34775ac137cd07d48bde34deb781a458a1f20334cfb7c52571b03229670da504e5348e6719ab917eb6a4786ec23da7b320d17e6e286d3e491d5203ad122e9dfe59557f8be9ac14db2f1886cf5faf4b01d00339672855b5cea7419e8b2c6a3c7f91a487b4ed46397ec4424f94edef97470ded8e79c225afa228b0ea0befe630eadcf447e0aecc38a63c88018ae85803a47a24f8671052a441e8e6342810d7ee3807d36e1618aebbf4cde48cf229e11c2bbf3f0de3a484a8a0ac328fc3df17ffdea3a1d193bd75b03c1f83b17fdecd3f4702a3917ac293f0c0c392e1d8117f238b2590d1547a0733bdd445ee79ef02d8ae2479d46d74c1f5fce059915b64459b9f0d30a73c64d0fbb3228b312be47bd01d864739ab3aae43f9beb2485ae0090afef2534c9ba6fe31eeacd2ceb44a6f7c46a9a2dc13e68f0ee1addea45a23949f9c1bbc760520c6d4ee5718fd146131d1c1c776a805e29cb0554fec9b76c58793d66e6ea14ed776a035349ebaf17e9388338e3b039c2be5c5d9ba4e055c7de69fac3a7b137e4f9aab8c29d0684365df4e90812b4fe684e894e9b05f9c6a52a2b7cae2718eac2031eaa5be0c329d815c0ed644300ac6d2489456f3f77b2ee7d44bbd21541d52a504df3cc63cd03260762b971aa02d0b5f3cea30baf11ca17dd6645849f9cc3056bf091ac4ec17b841d982f8742df6bc340b0cc696c037001981c1339d27ff579d45f134618c0db7f1c4afeb958efc5b2505bbbf269838df99244af5027af748f299e6b1dc3e1079e78836779418e29c39efd3d157e72dca4186faa5c260c2b1fc9057fc29b9a16004ff242461221e71d28328a0b2fae68a28d9fa87979f246b01df5d11c0f81d4575032bdb818a65555e46b14bfe32b7896e2e33a8105581095a833ee9fd407ed6beb8588f419758532043e25c9ef93bf33a56beaefc5979ddeed46244d406d31b1dc32a47a5f3f03b4aef78d39195d7db2ecf6963a963683ad092f811b9b8ee7b09615cec9a8c6ba181df6953ef75f9db4d2b3f70d4125f4200f7436cf6e3ba96903094e5b70c87ce1193e716f2fa17c28d3a2aa3a3754aed32f70b44ce42a45000e923226342b90c20214e48baac1b03ef9e69e0594be691f578616d4fde63a607ba4fca1903f787ef0382598915c96f3fb475b3d0f3aa7eeaf0a32847ab40576c608cda2d0bae5e48b5c12c21137a0e5b689b2a0ad34f0c2e19d6a99f6f5d6adf931fc3841bdbb9aa5c1e8fb9f615bcbe4d3a24cf4d65cc8923a06c80aecec49113cb6c2017a5edc6ceb6fc42f1423408d1031f2f91cc2adb5c51474df0e565ce289013bc80ae9729de70f7dac68a5f4b5474ba6cf91a68049dbb5999f2f95b52fa1429daff7dfb8841c5aa8757340f758fbfe3fc57e25da234b8ca8faed36dde37e3091c23bb16a4b697b68d1b6593c903673b8b16ce010f6e83169e3928aa0163da695a4ae8e7ae52bd3ad5a805020a3f212c617623a84deab58892cc54346646083d6f8aad5d3d87c7c96e1044994f890a50128d562d9da50d664494a3669e9e34833403240d2705f95aeb4df3cbb503844276cc5eb3888426d3bd507242835a18a1ba20e4ab9ad3b9b9e6eae95eabef22c4ee017d16f64b4bd65e20fd139601c863a8bfc926299ec739dac4302b404e33625064107fc41c5855969ac621376d4e36513340e222bafa7a348bac00b97742454bd59a7e27868f56cd091322a37f675484f965a76a3844b53e7657ab44f713881e7f8e16db3dd26218ff373044dcbebffb1eebe4ed88d28f22fb0877ba54de4abe54139c8ef69ee5ebe287d0094cd5f688530291b89e03788cf37383c593e727fe6e0e918853b040da49eefee8f4124bc799ab0b0cf8f71a0d06651d708bd6be5282c16f439f331798dfa7d67b70e8a30477ea0f4c76690bea2197afa054d38a18db1102efa97d10ee5e4265e75e137533ca54795b61e706c89c2c2fe74d05962007b69e5130c0f225d6d9687559902f826ddde69c97dbebbfd6d93d791e25900116f74405bf8fe002c3d4f2345a3c6c0c4192e49c32e3859c803833a8ed842e94c902f54d19a5681a88ee01e9d6cbdc92356650f4dc1901de3b42a0d0def2c8311f984cd2d4d7b63ce967858170cb7b2ccf0576e76f961c5b9a8a0a8bb5738289fb32c0e346a92c9b56da238a3fa39dd906f67aa99851c054a45feb9e1627fe44c967eab39fa623826a4d1eb974e8f1ef2fdbfe7ffdea9e97e940c70aef167ce06167e458b048c95787280ad93f1f593a77ef3290fef90ece90acdc6d5d30e15c36d6bbb2a8d78cba013ba1e7c595f4d8a310c63465eb53c459ee758342c29937d682201443bd581fa168d504bc168d064a00f74ac48418c777f22624affd1054b5b09f9d81fd0e43aeb99c9caede058d1fa6ac814108d0514855f7b7ec18e976a8681ab6bb241ba7eaee1a585554cec18ff6634bcaaf0f42bec356348f1db49852004bf9ee7432aa42fbef2add42c4b0a17eab136412ac9747ea3ad2d303a71f715b95e5b24690688ce1dbd29b54354ea4384cfbac12bce8e53f330dee98402f2654248aea3a07600faf903a1cd3f5184832e5ad8829eba60e2ae32a1a75bef01f1eefaa1e16d6662816cce7c9644c179e40a8bd65e1685225f3eceaba24b31b80572fe7b0068cf867b905a3f939172daa65aa82195653854d850d65e979705dec057e18e762218d3a8b9262bcc4715713cb200050a75ccbdd2c1d042eaadb823e7f5ec48c568e49bee177804356fc59255e77679034ae0ab8fa3e564cf5fbd34c38f7501a7164cb0fe686828fef8bc5a5f859eabbaf60dbc3d9ae642da8756eda8146bc6537f746919265364d24417444028ac6f249aaf564f958b95025ccf0acd8c1eebb488a494510d2f6acb6e63f1c79677ee2fb92d2f4f8ed00159a9ab85dd2c0676e70a5eafb3805c33de38dd76665a47da5ad864577019770044dbd5bc6435967253009e22350bbf673a5b4873edb45cdd43414e88ae11ef4447275026c049c001099778b613a33bcdfc49944614da84acf9cc0e881deb0176aaa838f46374928271e741dda6ff940c74a5bab402b2c038caeeb4df42c41556e3ac9f7e9e9691f186d44519ccc4e80d13f63787b49c650177b2a415c27c32d99ff1faf1053f18975f622ec9ceaf88fcb33bd36200dd9c2103d9f0a32ccfa4620992d34b21f45e27cf5b56f651e9240c02c02c04120f05f5baa3481e075e6c5faa3c7f2ec66449abdf4c4098efc534207b9c3b01205340ea2083498218d0dace1b66e683078ec2be2f9059577f444d90d9de0b787e107d13832173e268d915e98638f377ea12fd3080d49c3236917e3bb70bb6dc7993e4765c02f3dab5dd4fef978123e4a041e2d77946249803641b5c3d01034db8f5553325f4c993d58a19da2b3404d5065eda8049f41c835b81b04041b1b60239dd38ef1fcc00c5d8b4c3c0cfc2ee9e8a6636a8baec9c63a27fcec5a04a13c8704ac37094c7597bcf48703867280e5b7f7166dc00524d5cf3f866498ed315f198515004bf3ffdd162d0cf588ba0674ef51a77ce42e6f7a04a44f50903f02b27ef95a8cec0ad4a88dd7b9fe0f6ec751f0483bd7b8be300524c74eb79e5126f42ef82b507871b8fc9bb466c458e1489abd42dc40902345ea432353c581f910a9cb63d7509ed78223f667bb403ec2e31ab28b7f1643f77fcea38fbf9f2b9a1a22b85e2d7fef52b984e97367d1432d8a4c4e501637be29494ff67b29fc955ba6cfbeedca21c56f03099601b2f5760b119821020887cbf35162a82029d57acc42514a149fc75914d3b511f60a18f453c54c18c51acc75fdf010a9732add00ac198cf2da2ddea7a445330d876ea48258965c85fa87f2d73f734f62ee18d306752a12bae47ff63f08fca7b3ff315b7fe32afd219a352c6b3299d7d16eaeaff966eca91c8c0aadc7a9f5f16f8dcb9d53f9070d4a42b0e06dc589fbe7b19b240dc466bf256a50502575aaeca3e53691812a9840c562d134ad2ef0431256b520602edbc9a5603e1b70244314b464caf37f36e05039258d25bce94b9d41b91b183caea2bea09973b2999ad155f54bfb81faef5db869a92dfd33381bc49601a79e931d2778bc32e0b9af8ef046d80f0f2f4bd89c5c808a146ebb3a01167c7b340bdcbeecf80af916b7e59ae3cc9f9b066166e7b4d1c511fa91fe9e53bf6348f9c1a27015aee5447aa3c34ec0b68052e3ab8035cd410e9f9fa88d1f2a3e2369d2cf04dfab9bba904504864480a994e950105a8bf7ab18747fc9cd544053819f56a64dfde0b9447bb8422c817c0841b64b2d961ef5a1f5233965cccb7afabb547e78a2762dc8b7969daacf7880e89b1d7b8e6c119762c6e06ef573bee50490ddbd215b2e2928125863c0746d1df0cdd36133decd881453ab24f3a84be2322ff85312b5be752ad10c6da6fc2a9158b0d32b8ec2fda3e84f2ebc9f0135da44b800c6be091e947405685f2c21569709c473508dc9791fe90b79f3c7a4153f1cbf5d76f4d9f1dea22bbab63ecbcbc3dd8b0bd972f846a5c65ab1c03000325359f675ce3ba485044ebf59ba0a417e96415d5f7f93191bf50955b6818d0e79c6ceb7e86d776d341ade1f87342223986f8b657a2d3ae60c28a40fea272fe01a43e4e54e7da150fb7f61f2048efa10ebb753940faa6454669709a4643ae725ce3fc2c219e7d71d1078fb560052590ef5d107dec46760721de56073aed2f773ae2630a9dc1f838ca0c8285cf0c57709ea2ef51e79d72a87a997b4ed634a36800daee90d8af790a46b86439e2b1196f09bfd1751f139ca1ca486fa851bea943e991e0a1366034b680742f637948ec8824efb7a506b62c83f8e6e279fcea8d14c053638ec0a1f0ccba22c4524aa282b1ede65eff2ab7de5fb37724fa015b7e5dbe07299b7e630e3ec11f1742256f6c3b2ccf312c00f6fef53dc0eee812e08f3bae86fe87541c1150067c2bb6218e83ff62598a20293d03da13f5f21a3c3f9e7aa3c96e85951a777fdc41eae1ac5afd650569fa045d8bd2d8b66754d048a5b293fd13e1a7040f5fb08dfe2667a7920c6b282529a9e7eb1326572e49d2f41d81c7feac2946d0d0047f9368d640d17b09b3b457ca1a3dd9676c42a0cc0a8cd7db497e1bffb96347b94276bb1afdc96c2d5efae643b1b48534672bf387aef2cad21a255a5666f0f9fee6f76394c5c83cc89c9b36b0a2716502233ad03b02637503c69ca6a2bd43da22ae01c14134536249c397ccdb5c170a2c6718374b1dfe4dceb56ffb8a94de77c6ce66799164715c55bd45cb4993af0d4d80b26d6524fcfd18af05e95fee124b81e19243f2dc2ff69b350704a65763a1852398df4e0c6925742d15981931e8a858421871caac825618fb78e2a79ba073a9e228be66cde9037a7c97d5637df6c4ce8f53210930c22602af1924c7b033c526e6f78604c6537b2587e6838d2d3e43b863802e184b027b4457302de3c605fb6d344bd1472478de2e6d928f04eeeb28157d55f85c9bfa8fa6cd3320fb89a358f97005c1bf091ea85baf3abc2fba975ee764a41f935ca12e7545b0df001d0f95e053435c92444f583fd88a80125799ad1ce00c577405c54b20848351530665de116cf0a2ca44061be2ae9631372e9abb3a64b01979bfb77163d7bdfb25a6e92800525deedf0cb72a007cd49682d40d6eb4f88009edbc1854ddd7418e6c568bf8015cf4481410a9391a710f0b586f752e7ca5d6d6164915ede1d69439428b57063ae2b633cf3730a10512ce43b61dcf583e95737bdd4328a52d1768646119df56ea7c435c1da2c6754b4f4814c6e3083ab4253b508662682cfcc6b6f00fee7c4e900861ebaf595e450ea983a4fda07b69352887935682eb800cc1ee72005c465f3608e3e54a13bd470127589f7878c1e9fc01952744f159fb8ae4aefd116e265aef1b99369ac46a8939bd102cb8c836fb2341e8bbe1137a39243cfd395978b0a60cee9b476552b802deff1e2c998017983d636fa4a7eb7937b76036dd091a2203545033d10106007ab8893a2110a189b2d12338d304a21bf83730b59a6c24850175e68d995a532e158b66ac76ff3f7b1d922708540854b89b35f2da900835d711361e740841305b44c804368e601363d6b1499bb95a5e73fe0f020478208a7466513f8ca649b024347972740b4455a3fe5387ed3b645d69e0ce96ace52d0cc33e7a5d405dff7f172d23a5cef48c73e61c99fe4fedeaf1dae9da204e13966302845890f00c42a30b9ddad9529c44870b8ba80d25c4a1ce7c38d92382766ba98ec3228a28aa6369361c26f728916651ebd613223a0b4006da4243afe2f2bfed5f1a9e99264a265538166126da1b12c52b6f2d346737a76b75ac4db8a5e3b485780a6aab4c540d664d091a3f2a0ac9b09dd1a00556e62919cf231f958e205317db352f7a68a0c4f9e55fa65a09b6990c27e08a4244a6ab2fd51843178f950810a62f2b9631786bf6423cfd4f03932cd6fa8b0b09a5e2bd20ae9f9174bca4201fc9324302868e5f5485857202d389635078e5091bd26a8fd5f258bf420909c8ec3d750d5c9cf9f349a95288f5dec0213db4ade21f53f5aed2327cf79222ababd9b24dd1897d1364d4f77ada2c6ea6709ac8d5700e291ffff21662aa77dd38a1a1506a836af2883d9c517e6fa7d6a91c989d1f55a7cad2d7f2d0b730047d4c77e7855bd7be0c19ed5139f11504bfbe9bf5a580543028cdbaf5a4c9bc9ac469d823c8f1e151aa4faba8f061b1063544eb0698fa533a20e32ba70a04a32f3922e970e275a52ed2ef27d03e122bc2a59038a9796a07fafadc39150bf3cba7a858b50748ca4e26741c3c172568fd0bd52385a9c7eab7485d3458764564afeac66ff6a1b0ad118c2472c6c9f6b5eb9eec80baae9b0c0ba64413b393677d94817b3269234f481a40120b7a7e18a6993ed1adee0027201ac54597993df12018a3cadd9bfa18774e123e07b8e03b4aaf24fcfdb54163940f091b1a9ad6e059c063308da50f0b4962d300717280562e4cb279d8d62f1d7db252c2df64a590fbaf1a74d3a47a6e5fd9c4b122502cf142b5f854273db3e222fb49bdfb0153a60c3fca69541d385ceb8979b348803b1eb7b5cdcce377219ba43e6519f5d156247d61c0be70f7183d844a23eccd23fa23016aa3027530a7d36308afe54f26a5801b4e318b62c0b7970a002c8be1bb76cb2b3f88cbf6eeac9bbfe2d06c64d8cab36af7dc69d883b78035c0fe75d15bb64df0dd52f7af50f1b301ca265185dfc472adf7aa4feea43070c0b9a83192c6a67532587c2b0fe310e39a02b8e7daefe2325c38ff5ba0d7bbff8b3a1df3f242d7e40e4f685ad2445305c5b9eedcf68749ced95d79af7abd4fc901cd0ad4213cfabe93f13d8a7ffde0b30382b97bcd5847e87a1dc7e431afb9c87b720aea49e42a1c58548f854901c777d257a5a3f318b8e90adea684b9e212c5aafa5e501fabc21254eedeaa32f8ef51347cceae2754ad553b88ae5943e625365e1415d2347fce744922d5069fb747233e7513ce0f0ce2b3a874cac8c08bd1ed74642865e1e8bef55e7ac56cb1386b69c9223a7d07c43e0cd42efab523b70e6f6e811f6793ca9a3a851c6f4c3e9369e9bde35dccabfe9356b95e084245e4e7cd3fadf6291815d3fa9fe1a02457d8f6859f062d78fb2f9086cfcbb961de92828305bfbf0dff67d1c02229129c681cdc0936bc33c60553a5be91598e49cde3bc88cb13fa2b9a029c596b2936443a18565061ebb63e3d2b84003b2d29fe31ab6f7cbf4afefe877ae8d24d35f05fce88b8af6255a8b951e92f02fb1769ecaf071fe240499f5aee368d997bef16860577842ea1068d7086465fdd7eb6669360fbe2610946e03e51ccdcf6317dd50f462f572dd461bb67ffe226b2dad68cc5b0c9c7790402adaeaf548642e9e837f4737c017bdbe19a88d92be55be42947f050a1b5d0bd1b6cc0c5c4115372da3263848c981c4d3ee7e3bc7990f924b999bc6ae77472ede61d276fc9a6d88ee35db4ca1d3c007c92fb0428cc278e6bb96bd1d09dc774e02c7d2c304c77579f46e7a1ba8412df446948c54b05c0e5e3a984ad396c3083412e3dd57f2dc3522849e316b80a384ded0a9e53bd2a5aba0e6a38cef5c8ba8f768cf909e7b94204c978d09bef75d37b7c5771b8bd690828a709b24a02fbf884bf49165b511b1607aec721e8f0cac3dce3cd56e70461f9aaa80ed4f421b1950bf9b2e2d93b13ddd6bf12f51cbd0354a73dd958aa430345c6c58950f5da9c35a678e68c026b1c5c2668da82b4d7e358a8c6e78ec01dc78859d02241c4adab1c9b7b2c74c541d68414014685c96714bf3cd43f9c0853385509a9ce827dc70c9b3691abe172cc16edbd24bb5a82c461a4d848c33a3406e33a3315037b761dd76cca89f4eeb64130eda6ea23aa53e4347d31c956baf89d47b392c4bddc03a26938ce1294b409b1f8447b88c4623a0c842a7eac168d867f2b60fb72dde8e55d48b1df9096df3b60d3a555ba3940e0531a9aa8c25ec8d2f29b1878f95a52a2e2eec4c72455d48fcd8c470522d23e8e0fe90f43cc28c39a247d47692b75d9bc37d36f044391dedeb1566f023d945499b84a0856aabe1e6316f32e571a775085bfda780eb2f4d0255dabaf3aa39281afcc454aad4ce07c9490efa1ac65a3fc22674411bb238adbb1be21b5d6d23c9866af12ae3078ca3c219fadcd40bc4e247aa178cf105e6cabb6f2b04f93d2855e45fe28f177cbf90c8e45c0300f9c7db5da577ef5e36f6b5cd43eaba37c9bbcb78e654166d20b8ce14ac117ff63af0de2046a06e6ac3dafaff8e0712c30c40067d3720c0788518f488997e39ea62da0fe4e7960f7fa7a16de86ae36b71f12d76b4435ea2624800c7b6d1669ce1886dcdc037fe6238db85a8619a1ea1f1e31f41f63f55c857a3bf8d5c5b928d38f9a7e99de97c29bb4216b0f47f8dce274e3235dde2e8b5fad2522e0b139c4ec553d60a692b2ce612a18fbda9cef79dd29df5e48973e7c6753d6ceba5ed9af379f321d56b944bcd83ac5e326c13dcafec063f49170e40373ac44a057f7bf25391da3d43a9fdaa5dd82744a5117f8bba8af2d377ca31fdcee60979da1ce59e6c293ca9af10707d69aa247438779ce925d0ac47e2e1a3d8e4aec3659ad904f6e470318b2a27479a81776e011b5523b57ac3c19e8d5f750de5780a333899a7af60b5eed460ff8a140a0012aac05e67fc82d3c693cc146173293c59e6281b352241c6b8e06c50e39d4ad26899a5d1f025db93484a0e1b35ea1aa77753dad34609bba627a0c9630047872fd9ee355ed072aad17c5bada2aa7711ca835d597c72cbf7085751947fa1fbb0bb17284dbf40814ae2566163e6cd06b555f90cbc08f5b5e5134472040e32ca27e78295f30f0d2565c0cac4b45eeb595d80edf352c7319be68840ddff651056bf2de074e3c73c3f99f3f7113cd04cc013b1d199dca35df54295cd2d921a25ab0855d726e52e320e71ab77c69ef4181de40be03df6c50dc5060b6b4463e2ca9b249b2bb1cee2f1ee1207a5b72a45862cf616baec7f00196ded9b14a53b60e87f9eb76d394a0f8cba3d2134926177d988a00ba4e68511143f5f1a982dd030225b910e1a190138069a5c752a21c8f26d12c7232b0d03ff96c28600afd3388f866411421b5e9e60ab22df97355a34f9848022c5230157a63379150dbfce27d98b8d96cae9ddf74de99b1828511b738a4cd7ff441bfe7c1b4545c73c90bbf9f44616a3c816f41796654dbdf1723c8ce4e09fbad68cefea214dffa5a39b00b5dbb8d24bd17524b85d760b49bc140007d30560380e1a6f6fbefa61387c784d3d1525fbfa83f8438e0bc9a879d0700db9e54949dda92d150daa895d0e64bd581b18e3839ab7b803b4abd1366b215f349d6f5e641a5fb48d5aa132e17a9c08f70a69c24328b7a607f3dcdc13dc0351a13add346b955b59f609ef4b47a95782835ac84b9a4ef56b3f6f7431ae1540918e893de8d6854e7ead58ed49565afe9fc046c57ea6a07c81cd232d44d09cb045aada0276e1d4e895cff3c31c561760d046ed8adc1290462dc82119be44396c799e47597501035b477ae0cc722a917d5255db6bbfa38fe5ee544473b6c4b1ef9bd283c33b0d08662e8fba6b99468e34e3fda75e936a15be0299949bfda0b6adb653e182725e5a291a899de3437b7131e803f7fa798f4027fa076f29dccb2afebaa8fde36dd76e4ef64fbf669b8c7d421852609bde132b3eedc7b74d62948bab7cd135db077211ed770ff4bbfcb344e0d9b9ff2141a6357d4399ecb4c1d77e45ddd0ae7a24eab36c336084a23d29d042f7b4050e846790222ab0225e9a9ceb8cbb280de4282e28febb800bbeb2f59d3580eb0cdd7ad267d8428fa943b0d0b4232f45b773b8676251acdb270ce530edc070c12c805cd326dae2fdd072768f01b0f1e87005950f0ed6bc0b245e3b086df66927b9153d3b946f2229ae678361fdf9fad992c4742e8a138a8d530a6bf122620fbca05300613b51f45b248d5ee2f247b739dbdab24c1998a014a3b19bb325d843ce522ad9657f46cff8a5965c2069998fc9c5f9f760d37f152ddca9cc4f7b1f8749f172e88042b145e3d0acbeae41f1fd108641e85ada0e33fd7344e4ef0ddb2bf312ae616765d004548f01f89b3c61e254764a78c1460d64003b670e1d7862c84ed646b34b38aa92b3a4922657389fbb5e06746d444dd5d5258f9c938c5f65ab96bb90c5c0b60cb47ca81418167af7389e53c4a832ff408423bd6c8d0e2885324388286199612874dabac0f90ad55ab38e3d81d69d41cf4e4588216660bcb239eceda0bf2aa88665e1f836f29197824071f15ea733598eb05d1c67e3cd1f52f51a7d470b9aa12c5941e41826abba6df0fc4ecb2ee46627925514b5cdfc6771add4ef0c7b35d4772009bd074727069c908b8083a9b7df64f7973607e04c7f242921cef41518acceb555a97a4c8480cf02ddf24a6aac3293b3f29e710d79fbe58e677c317b299146545544f0ea67e45645063a6ea4ec5fc8b6ca8ccbd778db357c1d87905dc666949860235382cf33ac62879a1e54b00f364ed86c6a2215d107dac8ddf5bd5974064b2523cf89d3967cb41e766b24b91e26d555104a698194a71706acc27a7daf63273f447819d5a53e06d44a8e9e4c7b397173f5fe5d91456cf9f4a76cc2a18a171b075d0acb05134dd813137ff8884fedfd67b156844d513a567964b656b7fef3508df72217bde934f14459fa87788fa8c25f634fbce6b8017fad90143bf8b7aaf59806a4489e65107e9d0aa953c3c3613abdc9cf459e525b436c47743f9bed1a7759d993c8c68967a8e62cda414368e466a01be719bbaaf5dfafa3a7d4ee018f9443d372eaf49cd303e8ea7d11d7829dcb4b398af95e4c422141de62e254688707d7e63bfa8111b36913ce661fd874874f55d826deef18680ace8eab7738647bdcc87c73fc4786633fe4978f5b72c8e67d9d426263d9e0344e68906d6bf7f52564e21ba7020012881d1bedcd798f37a555d8d39b044b2d5150728c0cadd3e0c355b44941040d383f791871d34e16bd256a935b6aece55e71c5be566fefd4bc5aa4939c23a0773c0fc1ba827db463ec02928703f2d22cc0e5504b633657264e8d336cd16ed65e22ac9b986a7e8eeb7416846e4548e4e27b692f52466bd6f337fbf7fef19e7c1e480946a19dacfeac45a83bf6473920961bf9e8b49b920a1c97db114f670f2132d26fc3fce81979d9616954d41cb16e0867394f19859f3a80283ee4960e7d237dcdc75e9a708c49602a0007af2866f77521c5a9f734f6066c28c86155bf5099d6ee4d085c077f45451f732501548543a1e8c803d359ceddf981c341a4bd80a29cd729eaf6b794e4c935bd0a378790795b1b0d72699bd828bd830b55d0367f20c4342f23a32794227e04f551ce7e20eed2a5ba46a9be0b22a6a1eec6d4091711e4fd30aec247480133721960e3a3d593e27620027c27d6929a60ef86c4330e40475eadf2bd2810f538c456070eac37ddcfafb95a7fd77fe05ab85d97d30a0ad412f56fc17687747488903a2ea6298ae4dec5e8674b48f6b792b08327a8fc3abadd7f386b05d824663ae546f6511a12a66f114b73d9781b78ecae084172c2c65f77e06f21570c1e88450d7cd4e26d2bcf32ba14acf2816753ae40171376f86775267fb94843e8c2d63ebb6e50510ed99f59052dd2760f9c90b966ec88ce4b1c1fe6ffc4b84a08d66f64c70d68d7df2fdb49115dda17f4bd58b739461cd44f5128bb591047bf187b44d7de68699651aaea5dbe71f8d4827b80d0a3678b8b9e843ae98305f7719ea2f52e217c969780cae74b6f42980986b43826fef1b3b358a1a0edc668dd9c5968a24b25c127781c9a72a51e84f1dac180f07c37f994ab4a1b454efc25de81d0b9d0640e907b5256d52b232230909398c61dca405a8a1117e484d7d87dfa4f8df082098648f0147544790ae79073e6be947e10b49aad1100c4c231e37a30f50adee4cbc004365db7f857fd513c4e787cda5b5b0e98cc272bc201ed5f72e33519d8fc06fb999a558f46cc642f588367b334b37df85293c8751e13a41f17828468108cf40338f7e3135d67470f850438dcfa50c6d95ba18f12b1667c1118d599567b9c9ab5028edd94e3a4add439a6ab341e03b32d5021ac34d5a6fad52e16e4d198e1aa34e54e39cfc308343972e699d00b9044b31c65ec7fe2fdf82a0d44431b6da3b953cacd4146d188edeeea3a15279fd2deb9f9de3bffde4ba458196505dcd40c41061a466e684f2041ad5702fcd33aab801beadbf451a1a0027f4dab6cd103f765507474d5e74ef143a68c0068d3d95b23321faeec69f93715e4319bb42598ed09a2cf2e4377b3e65520fa48ea841cb9bdce8d311f66fad4b6fb57c0f957321234772f25334509af642782f9e76f13d64a9d7b7da6988eb22da21a2f0d273381c1204666e6fbdd64391b8d5b95785ebddacdc9c6c01c39283a836bc7f2ec3c00e80b464f0a999a79cc9fa6fa81f32dea25623ccbfb47d40a8ee3127c87de63bed22e2b0792aebc6cb5894484b7b8111ff2dc68415b8d979fb61185259bdc9ba950c3d0b587b81dae373ea5b2a3c93dfce4ccb5bdf762ac26faeadd4e626d683f0ca66201cededa946b99d46ed16115fa2642ff3b3dbe7adef085b6dad09f437a9ba03e2ae23320d8aa46a61c9a14ae573b544d8909b57c8ae562d19b2cb2abdda1794cea902187956ddbf3bc0e0eef24539ed5a722d2d47c115fdb60321d875823446118cfe078fbf8603ce4b5efaf772e1ae596b74be069820b5a7d1b7ad6137a986426e947faf064d0b55e401111c4a95657f4d16e6d380f9a552ab4e00a4ff8b496631c29d8a86960c1b901756ceb8c5abd3f93352ebe8cc11fa4a3e91af7bbdb28be69a6517fa8686d1aec12b09edddb60c4658db9efb97ad3bde1e6070e98d70ab9cb409e9752b705799661cc3f30cc9bfb16caafc3cb5a606f9b43294946492bcc3fd877753bebc83da448a3b71ccea5107610413f6f6daeac7a1d345d04be4bd21d39e5879496d864f41daef33b89ba9b15aedb661402c27db2abb728389da7d510985ec196955cb0780c98a60d2bd7a2553bda0714daa22988e1d303836c37da04a9db37223ef2f838a7d289ae783a8e4e854c7f75aaf597e7d686aa2869c554d7db0569247c07a8a77b0af4ba2a46889b9696877633370edec78a5281e06ff109918e6b4f43efd0c666f1af7d975fc95fcc1ee4a312d4c671288855f7eaa93a3af488b55f7c7cc469835f0f3d337227d6730cb07fb36c8970e2fcf72fc3dd68cc7c7bb8d9198102111b237937cdd84d249ec85d5e997163c6bdafc572baa0ccbe4a947c00a3a743d002102e0499af4d18f8424a7acff73c40805a0c298af7067ea351e4d49633980d14fda1b0c00176be106a4957cb552096c83ec9c9a45363d60a232cbd8bc3c42267343307ae3c21e73d62477a9dbf58590790efaf348af5f0a06700d1d6d62f4635308662582c0bfc0641f524805c628245b439f09af97324b561a86ea0be6f38e3edbff0552a845de1555318cefebaf95518a3f44352bf58a97c957ceee4bac5c0f9550cee827ae4f67cfc5a7a33d75d840ad259dec962a546cc77dc1b666a418e2ef229fe630e82f05dfe60c56cb581ef9987abf0e3adbb4a4171fa2e39667661a3939686246e4dbdb8c99635f43c13a386f9cbb387e869f4baf525a7fdfae35071b2a4c3e27832fdb07ea589f344c4045c626e7b78389817ee549d0bd829e55b30b8482abe3edf1fae90b71cb7a9e8514647f6acfc2a954ddcd1d7861dd2befa0fb56754e077b838139d91f4eb86c3eccf84093977ca48d2912e8e1ee0fd0dfa06816ea126fc0b0c00a08aeb9a4b81fcb8eb0c69bfa0279a61a608c25d251d8df74be44c150da7bf26fbcbcdb97fdd451dfd71c5c59914fbfca57b5a1995b4e5216a5b25575c15b8de4f69f5cebebc7cf040618c0caab846d7f443c5821504a441be1e50ae1b53bc35af9635028bd82c4ddfed799f5f055b39041081d628a25e1883ce310790e82ccfcde68e42f062fd519716024ee1a379b8e7e21a84bfe8c53dc78d440c880054c4d717e5d0e330ed4dcdffed0ce7e6cf68428baf6bd969c4ed68787963d33bd02273da394153ae4a2ab07f6416f275fe67353f4d9946abda2083c3065fd06046d7446e423f522d3fbca7ea4136c74114c98bcc6a2c6910e4907813ea27fee3dd5503e35fe4d026d9dca2b086e20c6d6a62bebbbe0bbfd56900cdf39f15b84609fe0d8348a39a0124c648368b02886ff430505af2db372a4b64ece0b7f884f7403281c838ae150caf34dbfbc975322442cc880f57e8707e3314f153d329acf21ba117cf52988d8a3296aacbdc8e00740e4cba8036a98e289f3f22c3cd93a87c5a375b9ab36b9e0f3ce6ba8cc6bdf86ea558a39f9a2462b704f76d9c4c8443e90725a2d79bcc09066219409cfa478bb24526fe720108706f6ad889f785a844b642c9c45d736922be23d99b3a8549cf1126628c4b3fe94b8101f5c90ee2b337a440d63a0236c969fc6d0eb00babf54ba9bfb65021fc7dcc73358d06ff95de9df17a7c1c418d65138e65c47209b22cb82bc810e0c6f47566064bb1547541729830f4393875d24006e10f1a617019816f1908e4b427d2181ef4cd9a852118fe7ad18d32b46570c640a3913cf94358f84e8f19660e67453d905ee5bc9831b7ec4ec20ef4b44d4c1b445fd4fde12cc1ba63adc2fe07ea0bda8db25f216d8ef6bc2290a65699b108cf1fe99576125b877229682542bc0cde266d0317e05759452428e1780d3ef65aba993f3933452c5369315a617af12930e1e6d49f27969de9b7f015a18a1f0d9578cd39b0e9c5a159e9a486eb0acee8f9d7577d8d0b4cd101c8dfe0978d38886f2bd44a45021011d9a05cf4215da105b371db290551bc70361208519b6cd7596370178e1fb73d7a2aa57a995e9675bb8ad3742997c8252f880dca48db332eae5e99b7e5133029c85d20562d25236273eba520fdd5036fb1b8a72785cb20ed89663ec2dd6c435e6b584e6b5a8943c6a2bceb89d91e652e1fd04397b8944d03d239670ed687cd4e26e1c345e18fc557f3abb0754314bd00a1e2d4697dbd238a794e76c6d16fff06a0ac4489e374691ce9fb59f4aa512bc3a536b8c51d056ca2e0ab8d509d76c37391d177b3036a3208bf68e19cedd0d5417a2f090e0e961f8589922e42571369fe129f58e8bcc51010e4db3d8a29fc8910021e56ca04a3e558ea5eb0c5f6bfef295ab1dea47ab9984e7b04028e464d01542d7ddcea29cbb46119abe28882ac02b147a88c2965c734f7bf658e2f44931faff2e7438580c3cb1302d8a2716e8b5b204641d9edd8f5f27f1d384ef441e347125e56f13b0d7dc5dbf9bf812cd30bb835ced13ee278683dad75e0d1279b272771020176b04dd32e774ce20e7628f567134b92985961dbc07bf75e57324ccb125913e3c5379d4d8a1f835e5dbb25b67720510456e483b134c7b7df626239fd1de98f3532b566102ffadbf7f1232d349d96e20968ab5c0df01ea2b79909bd15b12d68cd21872a66e2524471cad0ddb711f39f4ad3e5eb2642c63d2f11a7d10913aca9e3ed4b86fd1c74ff318fce00f345254b9d360ea44f49e8487b2c5e7a1a9abf9e1137c83f080eccb7845d7d065e139bf6345bee90e15d558efa291bb28e432aa925e0bc1284b19b5b0a69cb9b712b0ff7dec92ef0e990c582c691a87a1e6376022b1dd26895e77d90a556b22ae81d231bae568aebdacc73003161a277808b883ab67b48aaf3980adcd505a3abcf1da8c909eaa5dda89c7623c1851e39479779c4686ef95891945205deda0351c19a11d3b969600f4327617c774ef5eebb1ef05d00657ef5ea7f205fc6c207d29c0263b61f3833fdb91dc6b8542a24cb56f9e524f1b803ea9b77fd623653a77021f4971226ea09bac64ea743fc495ac6c854aba734933a7e5f276a625dc47afa2a036cc4ab5ccb22fdf3b9f6eaf3247314b746d8739b209cafcd0dd86c42dc198f89c8b18bcc9688d9565ed95e240dc4536a29775af4cfc33169cff0f97215275bac87a4cefeffeff38c7f2e96282df85861305d2c2b36ba22990ee04f3a2e07258f8f383e06250797558697d62db03bb4e922cd2c3daab52087965ba977b03e4fa44f014983a1ee7e246c19c500ea6eaa6c5102e59b5aa689763c2a4f5ba1705b9ba76e69d011f399ece57174c7393ef80d22776f4a1f2f62d4e61cc9976c56aaa65a30f00045056f5dff249515350545bc1396b8ef62d042da868de78b6c929a95b008935c600e3fcbda6545905740876aab149d2a3c9a8aae764c4e8680254bc8f4d61addda787c101521f9756427069e4bcdaf75db8f6aeaafa5e5c45d49a4d38dc801d6fc1cb98e655b05f1e3921dc1e38e24ef96408c3ecf86ab30af96fd96e31a7f9ef7af4defc37c029b97545b3753f50805b5129369d5d3202bef560a0c3cc29a19edaa572ad44e37c7de5e0757ccd3b3cd15c6933fb8e605099878ba27b38b5d2ffbadf35102ef31df5cb90e88c432e4b0802a17af895d5980b2416982b763737deb866c5d5a7a3611e09afab819fb8426be8bf46daf4155cb30b047801bf9b1b8fd3e66d0ee96f60beb345cc90f71ee80b5804b9befd2241f9d2dc90033c0163a875fb4932dd8c81d193be9b6a4a3f97681e2de1ff6a28ed77dc033b4f662fcf4bbaffa13dc0770dece8a30a95be0c02c68330959f2e1b04ce23342e9ac7f79f330246c047e39e8915276bf2ae0258ae49d4c519582e520114dcbc8fb5478bd9e0cba2556d5fc11728110dc005dd142bc54fa679130ae14a1602d775b0ae4cd6f4e2ccb591ec6b152fa16f97af40f862eee0b6726b6c545d7667f9966d0bf6534e32af252cf3eb4fef80d71bd5e0a5289d96aedfa08a5f3a6c6ef1924f601a8628859f1dd948b6e3794208f7c09a4bddb0e5ac16fc8e9b9cdc97a031c5b9ccd2b8fd957465bfb19e9122a9c7e3eeb4ae0a12927d3fe7b2e330f3795a6508377dec82151144847965dc5a51f77170a1e6aced4c615c3c05faafe9907fcda985a1a78dad4e36dabcfeb846ce04ed9ee675acf786a887f0786542a78fa42561996296f3e22e12a1cf99c45b21588b4b9d944996ef9fc37095b2f3f449369b768f9eb6a773a7ee4091afed85b04f744471cef150644aaa9541addc8ec13551c76f3b480207b4a1eaed0a612dab283ab1adb320512c9e223d22c7ed0655f03776e5c1656fbbd6ad112fdcdc00ab32c66135cf083ddd3c74d3e709a122041fa4a9116a92353e9628b09d4454b7c8ddde73142769a95892ef557a2c31677218f404d915d0d38dd7403b0d7359ffe8ff9a6f22f749b8dba60fbdf5bf8c0aeabff42f9c51ae45e1b5c55463ba058b9fc1908125b89b4e11c27c2c2ae7911f42d8243c574d009cc1766502cf681f7105fae88fcab94c82effc959d41322b683a7a216a7c4ebb3eac66fe03c34234e7e080581de5e9dd4d02802a8eaa3df54bb281c863a6faa84e6847118d9ed5985cffc3455a7f40c80fe7748d0556ba0ab63f0caf0ee6f350a09edda86685794b636e29c0367d3c8bcb818021f3857d933aba34f1c677a35f8e816cb78da3f820c3b0ed40c97f624009dc5842de6629de8612b9bc82e6640ee982858aacc3519ba50db494a893f47f836edc1bf4690a680acc454f54263344a2d4b0a181a5f4c56f967643e2ec6e8203b93a809526bb4f9b06ba604d1b09bdcf99c9a8ec7486606846eed1805ade933173b6da7b401421ad3c005042970b547e359d3c92c742777509af1a6f8ed7713d844062ba632e983b1d919481c2e863008b2be707d4d80548576cad8be4e9936b7a3e3cd258b6859faee93ecfbafc7633461d8877d0f9fd82ff3483ab11d0d81727652e34b2a4236a27ee479593a679af1d49d5c447730dc9cc0bd8e200e886fe421c836eb5885bcb1954253eee3c8d75928d5a295cf84d1ff47afe15b8ef12a89706596f7113b31f56f2e5c5896b2e6e5b879af4d6706da96f7211c9a5675ec6242b721cd6edb899695bf7a4ed694a390ce62247fea00d47f25c6fe93fd302e6a44ab5c847ce182d0a715e90b9aebc66ae909cabfea7718fb85db00812562edae5d43569c752cf9066bb63d053834d8bae3bba8c7c3832a464941b7c5014ec43a09a963d8b816a8ea5f632001d3c68f7630ecde29d1a7d419933d443178da222110f04fda3874d7249596441364292dacd44b05948b2fb896e3563976f617398f2678bd939fc7feb8dbf20146158a19a87b7fc9dea68f7044fbdca39555a74ded39a16e9242cdf016da95d13e3d519c4b74965585eee3a5def375c64b2620cdddfeb5e6081b9459e112572c5f56c73ef187ceb00b7837b059df7cf57399e05529a370c1c71f612491b6580ab54853f060607aeebdec459924cfd4843cfe114ab014ecee36753967e1b027c2083d97e44db6f11196ce3716cf1ac8862b852e1c0ab1dff832bb2bf61ae32590ea7f21f3afcdbebd524912264aa22c9db996b52d27504085065edb3a5f5983c925a494980a57154deed68a2426634f018f77936593a1df723792e734b668c5343307210465f6ed769ad9d8c28988a02905181d826e563a2676538cc505725fc13a0741454a5f39709c1c3618006247609b03f42110314915b89bffb1d1ede164c76393a5afb41ed64c434495b6de6514df865177207b64d4f63d914d89d6af28e5d6b2c74a232dfa46218c6decbf12b9ae1f1569cb7678b65981f751b37ff2251fdfab4036babe76031198c7bd53307aecc358cb44ad7ac2b98c464bda831c0bde808313548ab60014d1f192fd29252ef1959272b08445cc43ce4591ce74e72beabad8a63565664ec3a854d4f3aa9497aec4ff5abe3caddec4ea89efc2fcefd855329416e36e0218319d36f041093e5f0bcc3811c6c356efb18429c518e787650d349031bb120009b211d069574e11db3dabdb03c5449c63ee4663e8dcf9fda1ad9c90c1ac9edc6c368b41d1a5ed1298c8856e66295123e1782f0e161d4656fba09eae42eeb48c663daeb0871f9eccc0795e9b3159101c4d1c107d6b4a0ba3605ea8a4eb2b935cc4b1ae4f1781d39243b3dad99412d1593979d9eeec6adf1f2eb87d1029cf2e0476c4a5598b9aadd36197940e1530e557042786c81c043cc5538e6cb26282991a5b49063f1309c3fba5f71f35fc1a410302fcec38756b58ed91ade29d73280c79a938187f2a618b38c1cdc8afcf4c518267d2ea258de05dd40657d16d718d6bbaeb46c6ee886e659bbbab0cadb0db1100084090baf70fa0212a93e38588de088a9c1630cfcbee9ca029c7dc01ccc7ae8db92e05cd37446d3c2c78b0eea5d8c61432ed5a5f0a15343b431c7da0f30d4ab3cefa4541bfb532238bba0a303ed85e9283348b5ff72fdb15aec888e89b21fdd5a39c843189a4955f6ffc5e8be591763d6015959ce0ab44abfd4271af94dc28792a18be76173a0092073eadc31710f7a9467e3625f93d87eefe505bfce2c36b4eaa9d7c09cda42686d57d280b050666a0ffb5b493a38475e7aa5a2ae587a64deccb7540acb45a6283fdc118fcfc6c3eb7b844a67fe31dc5ec7686e53800b2c29328738c31ae8d1d1fd6c2c51bbf25ae8cc75a60f4f31f0336043a6e06fd27f3dbe16d778deaa781b54d9b4654487f8f453ecfff95c08b386145925414f17efdffaf2e232768d2978c260a51bd254aa1bf84f4f7468106cd95d8b260bd04f7a6c633e07b7f386b283a8643097431736521e7ffad345ff7a09e0b0d52ee18df494fba37f91adb8c0ade3e7489eadcfe41345259b141686309af8855338baa83f2dc66a86cee6bb26bc401022a6a1c9ad47013d81901fca02d6b4b31d54e539435d48d16ebd425a30ebceda4bf0b78eb6982f2a05590f751a7c9a617bd336634aaad4769279b5df8b9cee3c83d1718af3c08e0f48c8f26fd53f85cf98cf1d26b74a3f69d975e8237ece913931fb5c599cb413539746f4cc2abefb25a6be46692e6cfae3c5feda020e250e6d679cb066ba48ef15ee4340c6ed8afb6a7fb85a0ca7332c3962ab2f1acdd6c2408eb87c38e8d5844aaa92f30dce5c67a93d432221630ed49dc17afe7e32e0fd29fe70772be1b2cf0dd9b74de4494db950287473df31f66093da72c0ec7833abade884236f449f1f25bf595d94e7898fe6321828b7e195102d7e78003308352f268bc911197a0698a4977471bd9a047fe5072d7d67c6eab605e3fc24717208f353c64715040914ede1bd38eb4f83c73f3d99698241af29f8f11cd334b3d1e5d5d088bcebfb1b5e80f04f6966121c8b3388c99134f8708cd505292c3eba3c3b0c72ca0214cdc7b8308520646f2db9e8b064136d46b1c653be4b0cf8996f448956a6d755145f617966f089c94b400790025b340ea3fb10a8ada96e9c2dfabd47d457ea115fd451d12076cb8074220604d5356f9d4902e69dac9d51b36949f73a206b362ea507c9f3a30dfd2bcafc144d8ec0757d692a101d7ad3f3743f3e816dcb24b8d2ed2bc90e7b83312821bbd711e8ec6ffd105abcf556aaf0c8e58028666a3a67fa35885797f4f276cc79f10c7faf0db45e3c2939b5265b52815d2cfa8df415c6f355210a2bae6cbc2fb0e05f82156eca81590d473c184b473f56a0cf69ab9fc86dba70e23919f036e233dee1060b3e167c1c6696aee27e63a26a9ef23de9d3aae6c741703b4504ba7eb2dc57ebab5ac1206cc22c6dcf6ee0629a369915f4ebca62a0e48a0f819bac132d57716e712cf5da72734caaff25402ffe1d992517f78f9d871a980e462484720ff17a4799194d54cebb4192fe4c78de5d894b33acdee68b332d17faf1fc8cb2949cd615e73efb32d40b9103b16abf6358851b46de5e636bc9a63d0515d25e43142fe22594710c22453754543c4080440915be8fd18ea6c00ea0c4a9456100b3240dc73df32dd798919890bfe3dd7b449871a18924e1ff6f09ea4846b2c6eeff066ba85d296f3c0b94884b163fadbac0e357b92430c6e248d2108526bdce4e2dc4036921d80bbff1d30deb481abb73b61f14df96f68558954d2cb2173a205b3431dfb00dd9b5bdf513a0870dfbf26372ee05b0811ae8f9a7f07bc32941f2a7a959a8bbf836e1675370814eadae0e589e1cce1ca66e1c3e8062a6fc5d000e6c29bf770ca5ae6ed6e45321e9d23e25c16deb4a0896ef27b977ed26f44eba4902ff2ff0db4149faf30d74f2a9ff2bd0d126a634818b0042ea1957ef7e8c38f2fe1fb2001ec9d6e12c8877f8ca087d65b76cde9713f48a225f07b8c25796cc18a8b6d0eda0abaecb53188b10e797a7f8847389c605396370c29090be2fee1c331c0927eb7f9e01a7e59990cb51052482c6424dd184820b2c85e0930610039a930d16997dbea90ff85de9268900ed6aa0527e23395854f2addcccf7cd05ed896fb0b5acebd782e1ce2c0c84db197e5f3645b30c9383cca27a2cf60229df73a7290124d0e696389c4513836c004baf973242b0208aa905e1499fedec72ba941b9402604410fc6ade79d5dda49fb209e17e389d4993109b9aaf4bdb9f994a609282e74856b14e5ebae5c2ec39c6f6eb8c78ae451ba9a6fae788ea74ea89836c94ccdf4f1a1374f507b8fdec9ebf3ef58945f8b62c08bfc4bf87897c5803ba38a03f547b5818328dd11de55bdeba10216c203d51b1be407f97e26d287bc7fca55d8e7fad74ce0d1485f19e05cb75d7c7d94e4ed2a432f37bea5400bc50730b6ae347ebbbd9be2a424182daf5eac261bc731aec1a19d2b0beff2a0c53b8b3b46c1f702795badf44986ade374a3d7eda7caed270466a94c2760a4e50ee891b93be83b4a8ccb7abb4c25abbb09677007545b9278f3a4d67a466592a23de5329b20a63a71abc9672834094ffce1ecbf959d92e8734cc7003815b8cd98107b1db1db762d306bde06652b5b1d27c3bd31c039c3ebe24892332510c4c42991c04df818e3179293644e7e57331025c532ef0a9cc412a6875f35203f78b5179a7ddc26c0c3fa71616fa6d0a63f20b0cb7f25ba3f3b49be4e7ffaf95762dd7da2db3a5bb8bdcde10e0a66885a340908089b5bf2ead29e3ada955f91d8f609a58ca3c7673b1533c1092a9eeb5aeaedde5fd1519596b2be56d184a70f7445643da5ffeb509951809e604b5a56892fd04c73eea8119a5993fc1cdadf1909183c913a8e4e4808be6b7354eb5fec7b52381643612f7ec6bf15bf8c0f42b0491379194703399fae38750fea2d6bd1bc5a5738761f6fa53a2f3dcd5314c73cb0767f91df4b35bd775ab3a9d22632274d74c066f83aacaf24b128d85c221461f7e876b310632d3c0d6c9535e244df85124e03d906308352881d160e027d5f13689cb78305aa7479dc718f9951638031f225e258f2d12ba3f2f0ec756cf8c274a5bdc8b8352509cb1c16d913e477b289f685dc309d935a80c9d031ccc11b2760d74fad7b25fd3347efef085edc848fff16240c01b5d3021f47b94833f417d661619d7690ba8c4204d4b6f34aa0f9a46108aaf148d60c6b08b77536f2d2d7e29e1fb8929c5e627652d26a7a9a7213f4ba00d5d112676cdd2502b3fef00450fc936ff5e8d50f5830388358a30dcee2f6bde474e9e3f172c02d06aad4b45d8a731bec69c1f28da42899c46a29f3415905502550431f74288633e101fc2786178c79bb6f0e9d4dcf032302a0209a94b55fda0736c7b0239657910bb9afe7a5488ba47df0dc767554419a54c756901d1602b456add9c007f87ac8405ccd2b2997488afa7aa11b4b326c3e7ee6035be58e867760544d9ab0587711164040b8c2a44fbcfc29e5fcd23b3c0d07748b25faafa1a88b110ed2fc7ef70924c96f6ba9030ab5df0c1efb780732ad258c09a93015de9fba86b4f686b041ab214a43a17d563386edffac300d29fec3b421e5f5b701438cd7a5a6f3f02e1bc90cb739c86c250636b19034851ff35892e12860c8b34a49f159553df5a615058b04b1578f0f41dd34b737765eff2fcbc4ff24b29b9cdd0e2496c605c6757f9b849a5e4934ce225ea33454cd708effdd556a1cdebb36e069a33e2927d5cb1bbd086e6e106e237a22b7043484dbe25c9572911c77ced8ca950156fd3dc0c50fba0fec94fc7befa7275c5d7d5d03fba8ae62ac11bc50f76345dd650a383297ba66a411325296f90813634d99f5a64c9713982b564a2045af0f07bfdddd4ed5a1e0fe15685527f287f6010c400566f6f1f7e06ea87bcee8bc4caeb34f89fa18cb389f3563e8d0908991f8d85a27705d053f4ba6659c6eec53673cefc3d17dda9587d6e26337134e232e606bce636b0e89ae956301463bdcf1c15c6b15980b4718655bbd5bba20a22f4473ba3147c0554411cee5192e523ce5f017fca840ddc39289780c41c20764f629e75144a88bda241c7725052d88fa008348df010d51d4e9228bf466c244dc9566c39e43e48d63011baf546ba4aecc352ae852ef4214dcd3effb95b74ec932965dcca226fe1c9f36101f1e12b9bba2f8c41ef8bcb29dd7fe660475d8e5114cfad1ae4e6cf987fea01631755d28448ca9fa70939f6fb26cd5923f4750731eb1adfb56fb201471f83a70774a1e96c4fec600b5c36a3543e4e805af65152a1acc699d7a2f35ac55334559b69f0de979912d4ff4113b2dd3ff707a147aebc882b1d1b2cfe90880fc0f1b51cdf1c4efd9f32ae07001e7617d54ceb3538a85b596a50b3609d36e9356f07d511961b57135c7629feaeeec9841a3f0c3008e11d624909cebdcc33ec709a527a52d3fb617104d360ae26c284beeeac1493035e751cf13ad80525cacc81fbea86586478a62378576567d6221a8cab401db15c6d2dfbc9f6378d754ea3b226dd13df3b3d4bc73a5951f673345b04b9409dcbcab869a56dbc79a67638b3d81f1109d3f4aa4fdcbda9c3fb7709a058f582621c9361f613f070a74e2ee021cc71e92c462931590a337c062ff4855a840ce1ce159e55cf920ac9c1e38c4fd169fecd0c4b01983f88c61585982be3603a8b02bbd638d32fca497a18f992ccd2a3d188ae41109115d3665a0f89a3824d348985875a4740e9747e0f25780bc3cd11f11d84a6ab5849419065410a407af99bd98ffca43c52cebb29fc941c30a450d88f31fb4cb4ae4849985af66c85e51c43560f0040a68de1a4a30b230142f78ec4fd8bff9734f4d8aee6b0aba3bcf6709f64f20c982dd93d83d8a03b0387b94448feaad760c4b90f28f69531b7fc7ec117c1ab8a2376fd0fdf6ef26ecba6207f760a582f703dbd0068d099af34bb16092c7470253b444385ff1d1d8ae7aea16f78c58c4f38c95fd105079ec2d1f69bff0370603ec70054cb5d35a2d9d689e266953eed3388ad5c75ba5ac66e093c932fdf5e6c256d781e82cdebc6cd49d8734caf4dd8d655a4925ecd11b6a15ccd00f28191b385aafe8890b90f9cadd5367496372a8cd06feb0adad1f77fb5cdfde4eb3d2f84b40a35a027bd4f712d7b13aeb9776add03ff5fa4a24ccca9dd92a04357028eda2934ab83d01f5513fdbae4020a15512d7550349185d1e46bb8373de57153b8f9fa731b535b61aa4e4b9a71fe57b6d3b8b9d282863c3fe1a682bea980be62112690f971f943ba690a4793028582b8aae5988a889fef3ead0b1941a0cb6bd46f4394bdf5fa922d6b86178a81be41feb6dd9ae970f04bfe80e6d0bb7572850d26dde7c367859343f871131656f5b633d8fc022f9d2cd581ae25e0da0ee6d7dc7e67572869e52ae3edbf2bc2fecd699343c51ede634fcbfa5c6a320480b022507f76ae96f0456b7d32d6a0fe51ad91d60d04662ef682d57afec59fa642e17107f1c6b75583adb014a521d05ad72526a14cae5e9e4199aa691559e09693130bf8bb4b06042a3a52b906f2ac66adb9be357f9a0feaaeec880fb7e0180b91a3c47c890f9a3f66960ac0ead454a1a964527b3e588638ac5b5d0da8ff0ed0e92c3884c38afa7f06123f09f5f68c26285aff0e201c42283ebc0a7d834dba6dd0c97a6420278384c92b0da4a2d88e149629c387588f04bcb052494ea7b9b40dbfaea17b230b2b88249677b37d829803e274c4ce21c244001e5f5d703c8d3edbd12e94a7b2bd2403df40fdff19acedb099b659296859fa939d2989f532102b6c89e88cdd4e5ce383b3cdee895fa668c99b4145b3b9a1740911b9d7e1702fe4a552cae1f531b0a2f6dc193cfc16e399fd1a39e49fe3579453a27b0e03dec3d21c604cb86c6e2455f9a0e8a38280ed56490a999ee2bd41e8a92c45a75e4b8f11e6130953a074af2e3d197a764791fb497d72e7fe1a93a503082179426fa71853c5cbd6374cccec23af426cf6366320f264c3c99643fb654dcc90a6942cadecb54fdd1962f0c0271df87916dccbf10ff528f1bc003cff5b4e572dead8acbdf03d86dec484127603739ec68944d500ff0e6dbbc8a453ff2bf1f39c0d16aff1900e7c04f35b04817ef54f7418dc3e6f4e6ffce6131eb2cab31893fcf4ba5fa4130e95f75e1d03344b83fd57bcd17d7c798df89ca975747316beae6d5b80cd3d42cd6b2d5351091f0a136205854833fd198cc90ced5b18ca29a0e49a6dcd43068fd1fa48d868f4a8bf4c37de511571051f1e17524ceb165e62dc4085342789e2cc22f86f5f88b0ca7f63aa994e502d6a5873560c747fb935eceb147285a752fe13455f3033a6b91faeb6ccef8b26bc63bf907c06d6e83bccb12b745a7d75b6b69073990624c177babed8bcedcf5e52cf6f701d0fc3cf75e8af8a615de0466340465c1e49472f5ccf636d02d925206b648b429c59b565fafa14c3a045ac4a70f4978fba911d0c2b97e156bf0528929b1826a35448fd722dca34c1535b74a7f9ad2d155ac7966a3f2b6cb8d7f2beea2cc16bc2cbc6bd2be258933f008ac2d9cff557a3f9064ff7da19be608645c4526c21549cb092a80b2d9b0dd4c222bb64a0c55fa4fcf6fd8467bbf2aeda581c9ae72c47116fe5a5d91d39428dde581ed08c548b4a02056538ce4207f64a7acfc06f85f80d9059b1905bfc5cca66ea2216f369f8dea3c54016eda8c5c669aa91501ddb9a173b6f5f64a23bbfeb4d2e3635c96a376796bf79f1e5a1fa1866bf77f335acb114a8d60f5ade5f5c0e0322c7d6140805fc167e35d3933ef3b907c1e9f781e2162f4a9ef1cf6c7cebe559e56c5f94f0324d4f3595d662eae178dcf6381c3375ee557cf358bb41257c1ca7874fa434e3e55128654d241951b5b46d1c8c60ff2fc86a9cc13ebd9057c94202c8b5a2c677c38c2f8444099a8118c73c57c72dae0bf22ee9c82220ea1d8ebef1de64a3aef5b5ab78d6df23a36bd5e2d2bdfc9514cb5fd9777fc58cadd77defbc4d24ca855397e8c54001ab495018382ee3ec094b41ce4633dfc03928f5e64b7f65a8404a30e757981b29a6a76342cff8671903334342bf280ebfe6620b9e7635b596a0d47cddbc3696d04e95470262fa995b706f40973727bbc297dbb5cfcf45cfe8f0e05866747c79c80548905fdc34c8abcb1aae5f26cc0d56f77a227ccc568494e34b3db033984051d16ce8d869b77e909c688a74c34a5410b3b10d340cb4a0f3686d305f2db5ea13e6b52024acae423b677a89568625537c2116806d56ea420270f2f2435f1500b6e7a1cb26953321f13367e2e5882ce4fec206de17bac96fa6fdf6152f24bc801df96077ba7dbe03b1c2d9d5f03f94197fd5d4257dba6837ea8cab57d071d1cdb5df2bd3e4a9f316747fa292add68ec151537f54cee68243f066b608e6e9585f8b306c76e03b70686227d57ec66c5e3bbb6c2c07ba0e8c30a7e0ebac5b9f10aafa7ec0ced9359c7169b0f11b565499aa127d996b9f12546cffdacb98448611b14f978f82cd1e7b1368a97515d7600bd592a12a7dc2f619f918b3ce8b45dc9f4922dc50ca84ecae7790fb5c2016eeae0d2dcf7b23667a0a68e1a7e0978dfbee24e78efdd268e1ee68e4d1fb47bf497221c05e057a5e2e24ccc054976781b06c663dd4e32568bc5f9541d5b9b7201f4422d468ea196cbf1bed005c3960a82b1230b7a516255e339b62880243b97df2d91c5f4dfeaf5f5d3dc9c35c5e2f4ba03bd414a865a21613d2b8b53fec15c8ec2c7f2845d51791b404f7ba18c18b4d2790e00e1949447f0449ebcd90f34c89ed530a6988708aeed2039d6d9cd4f2d4fd40898bc3dbe35a6b8bf78114732030c5d19db308f60bd3c84fe0e14e740100694bd0e71aeceee5edcf14f6d889f2f5d524855630c6a08042dc51d33b987e32103eec437ff4d13fb4e52e5320bd04fdb87e207aa71325d5484ff941fe82d276867bce3a026e011070be12d4b215a038c4fbcdd26f90920aa5e090e0bd4aaeebc5c642ddc9cf455a24a40e93ded99d9cdb8859972d4c5aff1708e93f5ac3bf5f675ea6d8bd7aede20ed4cca254bab76affefa0073c4a329fa427a3723a3f3b14984be84d825f5ee5f2488606e75b76d976e1e63ff871306678c7094d0754ba82e90298edb0b5687a7418b0a8a64611c3e01b1d413ef6f2fc67bdd8f79db352ec5229da41e794a8afb989f8ef7d6ef10cf51fa840dedc9dcb7fec765fa4385c6f898fa7d104e4929c074a0fc625f0c87499dd3ebef39eb9c3f709ed75dbafb417a02ef57ae21e66bbcb918fcd1766cfeae901e9423f5e9d6a9bf94090f9301565c0e361d7e8b67e36a015f9945bf933872ab736bf25c6ff98c4ee25c5c30625f097e094c4b0c3c89eee52ce048e6c60e5b6e733f8e34d3abaccd10555d14058d6940b12691166250400117b47a9e6121e0cae9dea4e246ba6d5f0c07b0ac714cebdc199dd9bc7457ee032190bd19d41a4f14defd54ff5fdd8d41c8abfd8ae50721056dc0a1e51db975c4e4e30153d9687fd5ffb5f10e981c8008624f1c7f2f66863676f842c384258dbf9afda669ca934ac74c9510edabbd69a4d114657b5259e622518547b3e4848f749468c170b241ab8699f97e24877df9297352f7b1186cdece56dd09bc1ed4f6e241222b4e8328ed426731d890ffd6e5d5cfb4954a2bb80bda92160944a2de85c81c2e7f1d4e498cf954b86fecf969333e199543f508504ca2d0005cd64b3182320eab77f08109d0316b1becbd5bab59b960783a7fc0d929632a837f75eb56d77c17260fcb5cc5330f401f6f27073459d4f8002b02629db18ce82c9317fe2dc3620f6af45d0cfc0fe4b3495ba9c7c265403a366e987b7f17afe6c6143a908ad94ea278e51cff67a0c72b2e9a696a2156bddc482a5b144ae0117ac75f1647f74602a4a1ef0d6954cf6ca662358e5b278a5191f5a4d017c3ac9d916ae194f13d2ad8d5c0459e0ca502d765a50648fe5303d7b18df78da10987a31817f4f291b7eb1c1042b95489d47b1305fe945468f74aa7fe7b4d4b3b892a5d48515755d1b6dee2618cdd84516453467d1417288596cee5a129e96cf628488d4ad629fe64bc1f0e04f9ada7a845ce9665c6ab3860913181b0dd167557412d84b1bbafc482b8036c6c32c91e80109eeb34c509deb7bc1834648d9fa617624aaadacadabf69b06ad04235c4bef716423847d06db2d186c4e32a73060bb33b61f737549476619d221771ac2cd1c891a7219a115b0d89bcc5a611a3b289afe65d65768073691cc2775808931db1e59359a33b7971ce46f9b12cb959b8c18784322877dc6b91463e2d259a5a3f77860a071d765d5031a14b1e770c3342ceac1359489cddaddd268fe604233e24dee432d43623ba0cafc2ba917c3c4e0671391dfacddf5215d5a703a6178278d194b1643315a6f3269f746ef57e5c6a8295b66c690f6be87fd976164ed4fbbaddd3664021965356cac511d52e564a08c602a7b41d5d3d5c8501315db0ff0ca18b67852535db6511129b89abd525ad3b5a80deb3f5281917a3cc0b9a91692823bea0070ede066ce95ba2c48595cc50e795fee10ab48fd7af445f7f78a71cba0adebf66a22de4e899d82c03d38831397cdfaa0bbd4b2834a5cb0246d9d9f5bb39b9305b00e459ccbd13e9df7a82084e651e95b2e6f9e4a9000b6554a8ae2e330873d3605f322ae7c2bc6175366338bdd285915c027fcdd361dd9163fee73facc8972daa0aadaeb1463aa9352feb6c1d0e2a7e9c7c966b453c4fd42b0f4f57a01a055ca098430eb3b19881c29077ddf1af3e7ea2454985b1d4d0d537f3264f95ef414c9e787fe5ece743bc6149ed110cd5c9ca8ab17ec10e0ea36e29da54e815f903867e5b74f47dc44ce4f1bf4a98630b5ac0b08dbb72a8b9a966a4fbe56205642e80941bab5dda8d8a351062af5bb93810e926622868d2107a9474ea8668aa1d564c223a646753cc15aa521afa2bf5f99c0253b72222f0bc9ad73ad25a4481f689dbdff49ce4ccf9f0e8461e9f8f6c1a663add0b70a7dcc6c582717c85b240d6921221faddc1067eaa52e231ad62c88aac767accb80f3d6f0624684ae3ef57aa9077418f210df5a19e2f72be9169792f3d37df543a8e8f86a7ec8cfbef5eeacb81127b6893021d877978efea1aaca33e08df90620d7ee628a3d32e390e26deb3fb347f7ad8dac0fccdb77a11964b5fc7612bcc5a5d0e85787dc9871664572093b1b3e3a24b94b16f574ec5b244119335eea3e136d038ca34adf3f1a3bbb643c47d261ec7518da35eec30a70fe26ee9e6a875d35c8f1a27e724dbc15aff042acd5318b95895e5c8f4e00302f9466aff0f724f1e38d72cc92dbe34b56915ec31525937a763979e88ec6ed418f127a89ebef387e6eb18dc2d0e4bace98f7e8966a33457e2c39683fedd7ed82f6941ad8108c49802baca236a983c6912e8b6d337ce000cd697acbf090a3ad4f6d2f8b9f065cd5c53c6ec9054531e335ce859a4c734b74f6266548aa1b90525d2c49fcd6daf99a1d8b251cc084e0ca3f09618fe703b764d49822247c0119a4c8dc70c2bb84d5f39c8107171cb317f543100f1d38c1c0846c789f63b5957e6fdb710b9e413cb721e0c902dd82340f68c134ff1097534e9a8d28423bd9aa895cfa061104ea15a38b58314a75c430893a9a94005f2636c6ee0c631d4808750d79ceefb3f020d7534118a0fc22a42c34d0f5c212a25520617fd1344727a76011e1a871b64166a9ac3da300f978dfd3d5f544e4e9843b248e480cfda962847d19df7236aee0e7555b8018846973089d118b665c4103d9d8c1a4fa6e944bb427f3a656a6bcac9f307783259aad4183e77fa7e1ae8e7dbb6e42584e52a19f8380a39c29b22cd73dd8fa892ec9fcb9d70dec163a347b452573789a12392781a7f8e449dd6477b82c0eb546dded02ae0c3bd6c6b5a67b45a52f09d97cb8a8f1518af089be061222c29bb9b8b86e0113b39b500d319db44077380aaa7ad8a2e6c3cc239411f1070eb0c533150ccf85d64fdb68962644e2624eeb389c3c0a79d10eb365d581085d00a97f30f5accfd9e8ac1d5155ea208605225caf10e59544ec9c4ad549db3b80ea92ad4ddcd056c83eaaf4afa791c4972af496063f76da37efcfc024404d52310c90245419798f681a69de035fd6a1008d9ce491ae4012b79e59e8c8c7e78e3effb54d174cf354f53c8df1bebc08000acf58c44e9d65ea4a811c664e9b072eddc9c62a193a71b80ec27a69aac8e3a2e5785e91f8a223c1c8befce6e2e2b4a16e088e2a45782b98486a57e6a790025246928dd25b8a7f9b7a5b6ce50bd8047168cda122c95e16c5bb9dab75c6db1500b4ee9aed964bda28086d4c6cb8d3cecf1df4bb5d2a2fa653b60704e7ae3ac464860b81ae877890f40d9e7b3d7fc9068f29ec37b5f1342e9b32f9fb266ac299c9cd09181a730996ee40ef514e7013578cb1deb7bd46de17bfca10bc3a1d2f516e4280ed4b15b093594741031d15d5b0be01c52b0b2f870dd7123da2345bb11d71e2d76f5d93c9cd10518055c39c0367ff6e18ad3b838e6f3d3c03631984455abdc01d010dd8451a980b90ed6d66a2546b109ba4ef903a55817cf49a2c160c61587696f41e7cdcb86461eb8a6ed36b4e33ce91eeea621238f7ee802bbde74878c5f7c1b76cefa60378c35f3108eae86e12316c9d8ad83b043baaa23e3ce30b8d21d5736ae12dcad4381fbcecb15da87accb4f85a6b7364d4741be32bb2f106b773f513a74f542e9f20f972fae55e990387b5f989723ae3f11c0a119d7d2a04cc1a86a68206b74b7e328405b40228ae1ee052214488e6c3837c2cb9bb3b26a2b87abf6f96373f5b899276a7a90618c6c916ca3b0b657bc32f8ca608e7022b9b1af8762bfbe1925c0bafc5eb24ecdefe790cb6ad255ed0981f8f02f8f23581c65fbc9a0b18e12bdfd3a6f39c6412b71a2e3dde1aec5ab3b556a975a73aed7917bdba0cad4d2e75777d3d99657fde6b65ae1c08ab4c9652ab7bc2b8e6b0bcf1af9c6cc694b69548d57c45e4ed99184f900cc58d2baaa2779e025649d6200981a411dbc241c8b9b754a0379007a5c8a9e2d79cc21a568424599cca13efd3d0df6c3905f4f9f99b6dda5eb2a7241948d9bd1acc2806eda0adbc45315d105e33997ac4b53b2f3cb4b306d15199c9c9e918a128a119ff70c0c9f4f637baefb2b7cb906290cacb882cc9e47de69b426a61796f3e5ab4b5c3bbc87f60422997e6a25846c1dfcb5718b57c3c4f9cd90563654d9926590bac80a96300c5f1bb2ec163b6869449481e5b7a26130c2855c95ceff21fe085b2a9322b2b24bedbdf92d6443814a0affce93b2766ae9ba248b6668bb31aae164099b4aa80e2e1b41ea4d896b2f867319dfe87875c6996241ce31967fcd8b6abd0197eb1fd8c705f3e97be64555c39f2657403c4986d20f5dc80305f25f8602094e9c9026eb02d21523541c83ed1a322499406fa30c7946b19cea1d9ac9ad11e763b759de7eb933be2688286b29527c52dec17affcdb4f3e082c23f88650a3087509aeb28ed736e5799ebd2600055e1877732041e22726e117cd38eb54083eca5f06ca3ae51f9110d57de830d35561abbdb35a688c232dcf779b9b153aa7df0d9a833f9a25b5032a4885690d8affcacb301e304910c3dc54772c1e5519632961348dc167cbcace6a867a3bd98e52ada5529ecdd9e418c32e798d2cf6ca6dd7773d031b0096efbf27efbcef4f6b2904f3ab5425c90ccf3df1ec2035c021be0b1228b0e3bb27396e2d57e1b91bcc984e33abd6e776091390ac5f37fed0f548adeec6995bb1b8dbd2b6a495e1cae72c5b512c46b000da29feec46c5496953c77702c5e65761fc8d817d774d8c645e23c64d8b2ac155d3f08b568648ce96c240f7522cabd327b3f50943d14e17d9478a3615dbed81f0741b9e2bcc5bce124fd31fe1281b329a6b8f9c00d88dca66b56269ed6b97c41b5df9663661f0c0e540d56093103565d38ed1de086d3d1a1320e7e9d4518d51bdfceb5ebaa59cd1565c6fdfdbf3fd06bb27ae5859f0029cadb6a5021fe9f2de05275840fb3f054214f9cd660538e240b39990666180727ae40987b028cd511ea31d3a054657c3f72617d5321dcda9fa6afaad3e589728d89a69c7c0dccfd904a4d22a3c118d18a14b54b0aaca3bdc5722d7e2ab506ff7abbeeac10222d35c0859c1a415b261df1c0bd71c6f689d4a1868f411ac124ad9dd04eedc97817c83f8fb68d5e3db72b88295d3f18e7c7c10a7e18c971b135449df3dbca721a47e3a375d30f616cb9b81c3cd8be48137152459f264c6dd14b627ea42b308bd8812f820ba9d849d4da35b6f42dcafda2b317f608cbc7d140f3248f25454f97147164c9229606c63ed273f7200689d0d850ee7ab4a08c5782a3effff89f1e28377fdf9f1a2cc4713ba4ce8b6d86bf6091fc812d73dde01d6a707f15762a74804930f87c3c5f05c5d4e3673123e00126208921699c668126d70e674fd0f1b8db5083899b82ab9d3c687de81531db53ea3b330e207e6e9995e38ea86d7a3c1afb9fa83e147757ac0de56307b2d141e1a62deeec5d5a359fe563f5d47367a7a70aa5ae5e4d40c5fe26ef291cd8c0f28a11bd3de9735b53423f93e52f981050b7a1c72975122f1a7ec908ce782df456d39d81e2f23d7443bf024d423943b165f675ec89295039a95d3a5cbdb403424b023cecf72a13b6d56758a477b07db485cdb434da0feed3eb769316575dbdbed0f5e01bf229542c5325454af2424457a2a39570c0472207d3f7545035f266e3265edd3001798a12e5486298fa465c8da70bc046ad0606188f7027aeccf8219d6b0dc2b9f5d8091a6de902322f3de129dcf5766b67efffd5277568bd05e159afff1bce1345b4fd49a691f2d9c5e8ac6af735a88d988a1fec67a8c509b843923288bda71d9626f020f6e77e80b2e60818f002a4be6bcacdf8f4601f765910f4b2985c950bb294c535f063eb65b8be1d519301cbbd4b835d790875d4010ebec20169c29d894b9929ba999ad11b346048fae15ea6c2c864d58d23b2b750dad48eea29a65817ded0341d4fcf85aed0501a0b02faf21c1aaa2dc3536e73e034ce24f2fcae2a92b1e97204db066f817e83b3983f05f06d1246b06d92aa38a3ae69cf35851e226ebd158a3c8d610093deeb83cfabc11df4521f1e7a7a40ef41c6c7886ffdf0fcbeb08a1e809234801af04c7fe11d5019b23a3d021092a9aaace6f7ae8577e506ac5e67be19a99a0400e01650f85ddaa8889661c39befec10870432824e8e16c001b0d448a345d1ae2984d80912b289298d556b0cac17af213655281fbef3eee1eb9ff1b8175f4d71a23c671fc4a3d607f678c46810af6572c4d389d2d246112d48d30a0ac24c5595384b42e77bc3a8086cc0cb43c2dde007ad65ddb931e34293b8490b57adba5c0721a1558ba7fdb11e35ad1d631a571bae3191477c43be2ad0d2fdf1217b13d9e93b60b67a537ccbe879439f940b4e0caa032d489745d522e4c68ce8d62f2ccd91def8584a5efa70164506a34c78eeac92abbe0a3b866106ef8e785347636bb2fc69ad423ac7e0438bc296775599c263ffbc1c2952848ebd65e538e0669b8ca2aa893ad5073f6285d9743a3855f33a4a1a234b7115a0e15e3e95ac07f6c819f04542f7ce5fdaa845916834b53d7b211af5869af748307b3911aff8e9f2226557f13b0664b2089553e6f56efac20fb29448a931012d72d28bf278c15313164c43dd63d39bce8c1d80ea92c9fbae183d2a308de86420fa35c0aaa3cf8b0083b232042fb47c4f288e379ef3908571f97027e2576ac88b30019c0c3ed5c545b357efea2b30031b1955f1b119a2334635df21335ae743f40fc9eceb2bc0904678889c2883de708fb2dc4097022854dd4a362c1f9f40ce0ffc8d08f3edb6102aa38da33ce2073ccef44578281753b6609d9f14567668aa003b557c5b2790a61883469cf01dba0f3a5491ee297525fbd234928f967f17b192e01e1abbb41254b370ec8bede3b416aa254478401232d2a1732a32e9cb16364cd69417e8dec0a7ad929f8a3501e844387b26a6c8db2726f93c4d87f7972c476913b67e33a9a91178e63f0dd9d8b766e11f503bb91492a52132028a51e55e062e9505baadf69c477704c120c14289bddbb7f7b79585c296acd70df6656a041bb859dfcb10979b1cbbf21de30db0fec84ba28c23d622ff75f1f9fd0fc9dad75b6a24eab6bebe0b7ecfff90e206c0f99b44f5367b1d0987f6fd927986677848f2c21faa5e88761471abeaa6d3062b54f62736aef48c0b4f5f403a0b56de38c9b03d06a10c58520ca800070ba8c2cb3c2c6b69d3df8835ccba0fb0a1c509e9dfb797952dcb28b4090515e3dcb419e787aadf985dae73185a4ecb6b292d3f9e1d607ee80321a97915767738fb545cd1fa6cf53d641f7c90c24070ba5a7a06f83744e178b710615a656da4b65f28ca42dc357c05e6a05680d6186f94377ff4807b1b80a73df0cc208bea455c6a69a4a6a53bde4b2cc1b7a49d77cca47703df55d292171ef0fcf29d26b0b124efa64d4f3a47ed53fd2ab6002e2c6dfeda4578fee3df34efc9ce057b4408a2bad10ed01dcdc95112617f8db017941e25782a503dfde38a3179542d4808071f4a404de3205f6d7296be4a5f298e40ba0bfef5dfa23341a10087837d39630f79ddc8b46820240aeaee13075582f7df10c5a5ab6803e2267dd35d3a8b0cb935683119096dd073acae938c8064ff9e4f690a46d46a280c51ae65d07dace9d352d641df806773c3e0f0525ddc3f7763440eae8e81d6edfbc7accf0fe2bce9d1d47069d418a5b5ac65b75f30e52d7cd51fcccd0bcd9d6a67e5d78a4dfe448eb2a30b835b0f5ecf9ac6b303e0b91f745cef6d3c4427409c3829a68eb08f7d92f061225efeda74bd2bcc665d1e62294470ba17a3ce9d79d6e6b1c7c5044bed06a754a0d0d531de74a83a1caff71a6300c8c150cab07e61042c252016f500b7a3e3961f2e1b8eea506224d586ee263435c6a036e4bc4cf0ded334d51ff145b0832e750dc329c614de518d8a121cb2b12f7abf38b17c3d538d466a6a0d8d17b7a963fb0829fb0c0eed25a789a83676d7f268e6c926ffa34e778e638d73a842dcc084fee75a7b642f518f5abf98cf3048cc9eee1eb38fd326a1c433492b1f53214deec46868e4c78ec10becbe4ad2935313a65a9fa53b1ef1a3f51027125d37db4e92dcad1a1aefcd190c1f524da746b7d2025c7ce7ed98bd48c300e080ed1b9914a1fd8b168d5e6bf41377ca47836b7d73bc09796c3713345c54d72b11b6391059a74bcc59d64b6f3c36689628c12ffe5e70f1b245b9d038c5b2aa081069d68fa484065445c27fee99425293537ff2df40858160030ca843db77a4ac2ff34580022b540bb0aedb86f41e2768a769a625616f2e140cbbf395e6d6bdc42c9c79663352e3363945d5a9ec2172dc964daa0c4cddf9b9d29e6d81c6e5c91ce7221f63edcfa282cd6e1cde082e34590a478eb4f6343d3f2a7e3e24434a0b83bf4ca852b4da0da9be2cc2d66dc3518429219fc2a59ae27b21123d14546de8e0ee9002281422beef9444a584211a1c9265aa33ab02f756edfe234b80412453add2d14a0fd9df14a34fe7c94d407947a017a2cd74e42d3c170ecde220611d292140d1524b325c50be69bf5ecef7c60d43239ec6b1ea6ff039792b29c54a3452c1ca1c9d21b3141c3a71e808dabd9790a3c90ef0aa61be289cd22d8490d6ec8fc7faf748a1aea55d5807cc629f88bb347e7346b5e50492d19ff7c0b15d3980c31efe8d298b8cfe11fb280dc0e93422bd8f24fa18b14a8cbf91ba383f2701ed3db9ed389900ac1ea1441fd09f33861d4098686324175523dc8cabc44f39dd779e88773ba8193924b179e8e8511fd29119954bfb3e2d2e1c7a72de7cafbfd53a6be376dca971051d56f3436fffe4a5423ec01ed44a2b7cc603a62152eef09e3a8e273ef6eb13148cbbc87230f8ad81c5f91bec2c32ee6ce0d8987ee9bc1b22fc2a1fa681a1fcf0dee846e620b4eba18837c1e0cd7bd4cc8debf695035d3b1fa763f7c4570620e713083c1b5664e1d24466cde9d23de6c22d7647fc782aa605b52277c9b0d26dca44e1cd88a5b44962bf621bea02fcb7cc34ab5ec99096f3f359ae455b68a278ed45c006969f6830d81d96b12e9727ad4f25bcbaaadaa216b97284198353da77df372af18a7cae23ae52ffca08d2dea166768871f0b2d1d52c71825791e1313c702e68e9090d55342ee06f471fd9a289aa725e70fae688677369ba73506cb3ab19ddf66739a2f4d171872116947985f20e475c86c97858f2a6e5a53ad86a31621c6c88f6ad5520c1743875c68f6023d89e4867dbee96eea73426fa5ee208933d253cd3605e8a9966c9854688839eb18066dbb2ac238f56c37b4691636a42b81e6e126f62553383479a35cadfd76542aaf364a4adeec3ea9a25e3e41fb94e97fb0f9f49f9e8b9ad6f9e0dacc9668772efd097869576fa9e270df57f704c1659aeb16f5665e69900a36f48fd063c4484352ff1e304a6b86b21871caaaf5cd256ecd2402e3252528811617c61c813d76293ba288c9509176ba144e42b2f96f3776e3ea435fef8dc5b2345a9cfc87a747310bce03903af76283a01b9652c572961ea623eabd653bfd8528f5983f53950889640dec77fd9183a97044bd3b2f67e6c161a3f220820573410215c092327fd974f1c8a09d80214339ffe42fb12e8a56afe7c4b029fb0dd72a59db957a51aba54a66ccc5142647b765598608de3627c5d08acc0d23bc836ab2d85512df1a6b62d1ee3cb2432cba368b9d26cd99f9764f57c18a4404200299fe10feab44965b543d462bf7b891043bddcabfd3e204ce061b80affaba24c3ba103bba0bd1d81caa99ddd9f226fc4097bd0c319eea2193fc3bce1b0572a8774beb84ca56e0624608b8a9de50a594c864034597948dfbb5cb7613882a49f864b887c9da03487d9618aae8d0bbb74d42adacafa61de4dd37b4bb5cc07a7ee15fa751c3315b116dc5f72179bcdbaa5543d57874b4bec2ed4b0a0da3a9d5c1840558febdfd75a78d0b05e1c6cf5d29932faec43fab63cf5590d68a9a77c48edd29490ac54d4704cfc5f7e66cc149982db82698be71c5b82bef4ed27a3d3fb3a2517feece547ef24909ff266ff42c6386f690d0acbf13b67ba32cef7efd4cbb8977b2f51b23e98563abc1ec59438e4ab7fc6cc06642dce9992286ed417f07536841783b8f79056ab46d655ef544ade661a5d4dcf0fe6dea33b68f0e36963f7b28db5900980ee71420c73f575155590b057deb099b1be79245d333f2151a429b36efa8c45eee3f07012e45cb8f94266da97e5c8c97e871b0fb39b259929cbe4fa033dc40a762531adb2330e6ffa3dbeee1f490c9a90a54943e9fe53387427477ba5cea8906081fad2c7af42c1de7ec2e7ae90f8060da01455d0a49074a0c8d8d37a35d26d5bd628b72f4c8dd9dccb8c5b38154227afe6c60fdc02dbe4cfe1ac96a5274a4a944df2fd43970df881e759a3b5b128c6d0bcbcdc75a7047851abf1e9ce7606b8ab2b9ee75d6da33be2ebcd3334b016a82bd7af237b4132a5937c3b2608d88949d03e4897ce5d0872ed49f99cc2b2f5c21d83991248b2315738f14ab33dda1f28f319f767e88f88cf443a7a130f53cd0d9fb87e5f3f16bafca9ba4f984a2d7a436ffb8dfa92d9fd881e652e89cc93d87dcff5eb9097903c3b7a64087294ee8ee24a7ec9cdb444d4fa339074b32bff4c68dd1f65039d2a102285ee28509f2c7a35770aee0168f702e637ed24a98499b7a02fd89187307a1163e1f1c4432f5070b0c55478425a46c66dd6dc06e709753a2ee3314f746d6c309b07feb339ee793da1fd57c9358fbc2591af55244f8ba1856e242775a7d1b4b278daeaa03e7949a5d038f6e7b0eb400a81bcaec1bd1429d32c8366a2c9de3da5e4aa9dd2825c6b9352854e87420a0ec557282af316b559670072f2a59c3e7e77ef6c3b314e3f340c816e86a6594e506c63e7329715999731d3a4185f31eed86cd58552907221549d8dee77ebf6dc05947147a9f1864f433557471d8a386c8e72d50d25d21103e0fbd6b043cdafdfbfcb2eccd8c01a07857e57803a9be425e18e56080ce70bca51c4500e2465e407b5228791c2a6b7f76b8899c5ed6c7d9747088e886206245c0b3d52c7b2c29c30cd780c0796c019dea8693295d807e5d1e2da66fc3fb8b1bb7d8a1f17c58ca25c0b2293aa0426e498db0fb8e7e4a7d57993f37bcf2d34bd29994018ee394024ffb7479ac2b598e090f6b6b905205d6304a654f08d53f4c512234844cd0fa14e95b810af753409f5e5b9fd1f95f4c53acea813bf85f5cf8a1154b8838f698de67982a1a9cc4b7846a36fd056619e48b73e1ca7ba82136c3a5fcfde09371f63c78bdab42ecee13c5115068e9a168b1fed66b4ceb93803692a03e3c8eb415de0ba2a65ab3e797570a4c3a9ffbc84fccb46f6c9aae7f85f9a447be49102cd64f711f62d96fc508689ed194067084ce9b2b03a61b2b3586abdf6fb278c09a954acfde06192f07a2d03c43c8d266089b566bef7594b3e332523dec958551a2c3a7c6df5f04681780c5b67817de01cf0e1a4c72c5d85b07babc95821bf1266ab30c26d3030e81160813bacd276a62514d1c3c189042fed1534b8cb727ee5343e6525570240f45b84779cc332bffdea6d6ec544b3dc6158556024e8bbb6f4ba10b63b0eea06f93e2b6aa78b4ccfebc69a772d6aad7e38fde9fb4e8ba0ebfc1e7c169ac5caa35de8bb99e77a97d534f3f54232d48f940236bca518c69979129bfe1fc4cb2d7ba403bfd782f0785df7a7be47e1d1f7ebdc00eefdd630f4f50dd0990b0486504f76eca1024460289c3a4c396b559c2ff3816aed8ba55864d20649fcbf8f592002325cc5b8e5a66bbe24014575d3a37a8c1c9714dcd524259be7ddee3046e697404dbba77eb1430643e510d13486916dc94af311042104ab849aa3ff9ea5ce82e41b485a53e0e3a996dc19776629598102a74028df3e3f33e5bb86a866606b05fd72e459f8cfcf1035d0d2860833e3c773f422943a1ec57d28a58520e4b25ce088f57c7a4621e9e137025ff1c962553b5705f81e5ac7ca16f0f5d0681976951d782d4a6bcbe6fed7ff45279372997d6aeaf6354267737a7e9f8064385491188e41e9dc6522d285079a3df8db254c59e7b9cc36a79697123ebbcc183db69268053847df3ab4261f175b3505a84a89bcb11a24ac78096cc814ce6c3872c8500376585f3a9c3dfe252699dfe7f56aecce0b069787aad9224b48140f184136164e0d8ac31e706c1635fb752883b762ccd33ee253c1b6577e2fd153ea954b0c05795df6e82ad05cae8b56471ed38231b06acda80d687d5b34d8eed124869e7c87e4ab9bca3de47ac7c77a942e55d716813f689d49753d84c5e76d54502e2f06cd498eafaade3354c490ddfccbbf87c7c6106310951a82e8da3f0127a3d7781710c7d99134a6ca6fa277517dfe8b283432d030d81c08c971116d42e54858f0decdc1965448154bdbebacdf6c48e469f98dab0c0684245fb0d908f7d6834ced95d5f472d20f3a724e1c486830cb119a4afb69ff8144d82409acf3e8535fb60f7f4ff4e2054185f95b957e2a94a6879ea324c8c80e378a34ae3801b8ce8e3156aeca08f071c197989b3a298168ec02633ad74cb9d56bb94954f2745c1a3252dd0437bbac66bdbca25cee8fbbd84268cff7b815be4baf4eb4ff02092d62ffa2c6c5d081cb1e0664b0aa41942db055f7ed069106e9b20636fea79ac73280346166729780af1cb9e1f3a14180a6e0c05c926bdd96c38ca84df6e7e602da53fe5032d76861496480a8845b2a027eb175ea006fa6e9e38a030bbf36ae5e2eb29411fbdd742422310d6b0ed59c71d63aaf57c9e02f1452588f6027abee702c5b9f3f16b3fc9c7e295fa461ef27a9fa116ecda203551038d47185af983bcd02c74f45800b2d27d25fa81160059e389071e7746d77f0c33983c8ad74542c1100ab7004b7f517d71b3ca7a58914059f4d1f45c160f7c1aaf8a371f83660935fccc5aabe11906f80ba994ac60da9ecd28427730d2b37162357e196a14683a236dbb0d6043babd0a896cf965b6b1787c7650cfb372d9f3436fe6b19f2b8ea2a8ce538c61a2519077f527bf77d6d3da9996ed5f00b02f0ef41a52f68e989c01a8c0bf169db4b3841bba3dce1589b1b9fc8d9854b4ebdd37426659d0b5db742a3e2377c89495121225a191e129ec237e84fcb395c602c07a0426af20c3dc6d6b7c88b4329525e828cdba9e2996f52261e9d3f4d611c2c2e70de9cad3bfed0071b37b96de843868b8e1abe5c8ae8bb7ed6f0ed92fa16e833399277a33426bf7764af7e05520e169fcec4adb992b087a8105814fa0a269d013433585326c8b69a8f94cf4fcbc503ee206417fd407a077a1f166c1808870516cddd4c260ef189390b97a9804e33b9c24ee62e5665362413f9a11871d817db66a71dd557ed2823093e28d9aaf271062448f3bd62737dfb8e098a50b2ce1347e5aac0f4a9efaa2fd4b189f368480444f569935c087f0d6adb0fc83397d55248cae5c1297b55f70f1d192271bb504566e85fc81512aa3f36d358bbf8dd4a025b03482c39db089ee76f63469cffabac05d99b3801457b7f52689d783d780ea72a7b717a5b4b2ca4863bccb855cbe776dda8ecb5d829ce21e8debdf35f3ba045e007f432ddf43f6ef66d241611c2679879f166c047851141bc53ed7e2ba9432e16f09320a65162b5b9dbe313fac6657cd8a3edc59d4e551c32c6e2a88a41c4833d6027c4f36c1e6d0871f359173c26f444fb98a0ed2c17e2b278e653d3d99144ee2ce9a8dabdb6979c0b0d4e54fb7635e4917020fb3624cf618f5e5915f05861cc45b58811e895acc86343b673a47901aec330dd75dece6a913c29c69bb5578d3b93bc96af3f5168c7f131bdb4c2988f26a549fbccf5b81466279b6f015bcf860c68af56f664915b8de984e1caf7fb7a12c8796277655b4b414e5c73ceaf592fa53bed53c8470639cfce037fb311f48a72150fb4054ef52edf249d3fb429e915a3b4e2422ed4325fef5d657c395914aaf51f171f41e689b8e90b9b7297f70718d3813c79725c28535bf8cf664276be36e57af67ee759c0b03a51e4a1fd4e9bdc35a92abb182f34706b74c3c6af3eaf7e64c1bae201cea2d661169783fa5d6c91487d255f2790c57ebdc8a1f0c32dd5449a9e014f746384c2b2609ef5832f5e1b3a1862ecbe12793359cc7130836d0b39b4e5265529c568d055d95e8e40ca6cc1cf35746160fb02e9aae8a45915211994e6ffd8b0db5edc47735c874f6da4ab79fbfb07522915b50add92f2fbfab8f6a91139c74847357008469a97dc0bfb2167708e0bc91f5e6a7c56f1d7195a453bdb40fcf9499fd8e25b7d139e6a862fd966756587482d8900e958946480c704527f9c9b74e832f9926d9501cadb280b95e8ca06ea107f447ac59d69c87f9cc9a1e691e059d2577d10b8d0bffc142bf1c59941416e4e6fb7db46a526dff3b0b760e79e790b94c06f462ecfc4b3191b855e4c3a0147646ff91d397f3d9cb5e685498804d9aa95fd2cb9fcce64fdad84f1cb8feeb745aaddd6a71e52656d7fef7ecf0e57b39add3c4ebb6ef4f13493d01407870a64a03439f81b7e33ded3d7e495e9211d9fb28fce460fa6b325f3a3278ceba26b278effbd488d38674ea76d6f3dff02f4de45023f04ce5a566e6b982cfc68180f450fd2da205e032beb0a88a5fd26b4c5b555142fbd7436683cb4dd6f0f746e20422d42f7fe8f6ee1865f749c6f7e557b835df0fd9085fc16d8b6ed9698d845d7b5891dfffd0e06ab0307b5bb130b8cd337a910efb2e32edb391bae93233819d456a2967906e5f2cd7cf8f058fda738c7d39e12b02a7a0ebde9ea7fa848db9ca7768fb67351cbbd04a7e86080bf19d11e419447e440e72ed81358782315c177fe10f9fcbd28092402af9c84fcc160b33ee010bbe83fd2894c0fc88a3bb2a552240300fa0129723153897fb7a68012f923e84a7c8fb2987f6e91ec0ff9318a1412297b9efc2782b8be02768f7889be6c500fb574f685756e3319bbae16fd1a212f9d4fd2110da95242fa8d9d333544349752a9331800a5b0d9e4e18f75198274ca2958a27b7819124de430830d381cc4f0e710806697ac60f89075a05f468dd0dadeab26791a75d5b6de070f507aad5e28a69619c9d24139eaff3543b5aa7e4a0d4229a6ce367e5e1dee41bcbafee9ad637c1e1721429b3a584046d20083086931af27a683bab6187aa5008a2e216fbdca5704341a9f2a05689165f1166c7ad5e4bbd8f634bf1889c6745e5ce262385477e714ea8e0e36bd21793929060ef382fadbae840ab9424276cfe1746019c8cb9b19e8552fc794b9cdc0fdf794ce96babff953632a9af327372c641a28cdd5753ceb00b6001b70f3adf410eb6134c7203eedea39e3a47ad8c3cec00aff51f27782eef304b06f1a38dedbf8bb9282ba4b24dc59fe482260b1e130b5846efdac81181036817b29eafd43f5b43ea48507e4e889da3ab845e790d621f29f40fa480f907f2d715b056b2538c0843d535eccce8dafa3e1f2ec54969ace79ab88ef05a4faf5db8b20ea4cec10129cd96096b5e173ec92bec0f189322407ebb1e1ad0a76ad75aabf47eba7f8acb0dee8a4ba7bea0495bc6b86bc6c932252b7e124346903cb245c85c6e96668cac9a59cf72cbd3b864b23eb2987dc584c1bc75958e11ec81324a4b645cb14ff053bfe3bdead2fa2c895bc6dd97473b329fcd343e0e48a1c157fa83c5a6f6255ea36771ae0f4613c1380700454953e2b14092dc2b26d2e89b21b206c7c2cd91afe0e540bebf9cd171257bea86267df8fb58a6ea3e98dd49de4964d7e2755a98bf0eb2168bf89437a6c5b647e1fe110f467400fde068a075880ad0ef95819413f3254a1b59792081a951d4f8aaa57692d885151eda7104293b8a85ef1dca776d45bb842ecc9bf64be10816a78b75b7cceff2b26d923ef2f4484a7a3a1c89debf2894c1173ac830febab69af3b1bafd5d2c8d3f810a709e1b8dc2f0e664b33b3e2e3e53d3a9ac7dc18cdb631c9c1fce6397c57a6a218293991e49546c0c73acb565420745b34b371bd5b8e445abdfa82f6add672e5f8e7d5fe111cdc18238a6c17f5169829828443edd08f849f609c72c138306e58eb97e78195e323a6d6bbd93b334f00619100f8965619299567fd5b29be8d02d5a8c786ce9b54b7393a88420a226cb63fe9311a79acaa2c26572204408c03c2fea231de26ad459c0fb0184dbd76fcd8745bf3a9c5b1fe5c734680901311561d3857ebf3b49cf6e628ba0cba5f733af79b7dbfc6ec97ca97e1df3aabe1f350af865e21bd6f5e8afd552450ac442a2bcc93cfe4a9cd72dbd43ce1b3273db7efa01ffc75a0a5c7bbbfc951cd851418f3bbfddd6be98835d01ccd787f4158aa723a15abcc6b46945183a8606e43f51f83a47ce20a3de4b17286c9a76236ec05802d7e15132629ecf8fb7e6946bd68cf137317376c860a1e4783089eb620d266a621bf0025dba2a2383f90537cad13c8ce19b5dc9fd96819f7da372f0ad3e9e8fb817d5d716a688fb392c873b18e040374f1ad073e61a5901a628256a9e8af34e8c7530aa5e982c71fbda3dfa1fbe0a985e90e7e5835b24a829baf2f447b260eb3ad31457706b7a9a2a67915491ea74b4f77f8bdf0a1540ff8f577ca77f0af5b4c336bea6165d982a8ede1467f99b0ac7ec94879e6ef3db54d3369a2eb030ebaf084d9e5dacc5c43bfc7a5af29b8bb76a91aff3d4371f7457463dd86c193bc45d3e415cd1893b0964a096034d4fb127120a7c9b1255370828346b5ca311ec877cf76d7e16f733437e8fed41e46045a0a68710aea85f6c716eb4e803e872765e3c305565d07603062aa6492e28f95f38767c861ea9edf32e7cbbf3df6b016c93636f5cf556ff35a4078c0470ad92be6287c170b1841bb8fedd7ff4e39021ff3be5ebcf3da8843b3e4fba991b3d9e4f47fa00bebbd556267a585239040b36b9dbbe6cfce8068284bdfe8077c719ace1652b438d18ec237c5f1648274db3b0507b1ee3f8169b669bf8113dfb129ee5f66fbd9a9ae606f8ae550bc0db10ff3ebe769282dce55112b4d4855bd34a6cd69db7014ba8da2218198a091255ba229d700483c650e5e61ddbcc54886e7f50ddb4bf0d4ea4e7a563e539e49176a94ae4f0f8c7f398ea2a001355c997e38b7651d9a20cac6b7d4040b46d16a63c3a4b8a83e80d588aae4dcd72208887e21b365cc0641f8b50d7b7912e1b5d0ee9a3561137b0be090f048c764b31b73e545f3a304e38df2e70c971d132f6ec4a3985b602d26d4b5fd8308a3286e6007821cbf0ebefd8c5af0811924e4a2c49eb7641ab9167ced4d9179fc67c049344002799ba51ccd00ce34aba717e5cf5969f1a0589c3e26d7c1f1d3cafa99b88a96174d2a8c79cdc87758ca77fe5dbb6e28c1b0dd4cf8431499feb16acf3608249f7206f376659475d2573ca30ffcfae396983cbc68342b93fc3b4c6e00ee89d0cb09da6be430103032bce9c6ba4ca63ec1b3052cb048113cc5b200b45304c70cd96c42dc6906264500e8fb2c21733f7dcdf54992a8fa3687b45c6868379a317231bb1d10ef4e51a5782e8b9259b9e20685f6f2599c7746080c03bae6282744ecb14c7e505101b4e8bd97d55a23ddef1af654e917653cefa2befe079b5c17082ad94a09fab56b2a1f5c469c2a198d74ffc3e207c59ed0b9d3da98c22a5a072ef64be1dbe40d63e166d02db36fc5faa682f3d54ee5f65f0070d7f839dab906647053c64e584914e199b0c76623635b0189bf9ea655e7c7b28f3e599fc6ca55e2f3bffc1252484a52e388a5e4cf93a32a4fec3d1718ecce9d771fd50fb0bf07740e5caf85538a60f6d5476d0bf2cca75bc3c4b42d7ace5c910d1960da686cefbae919d5788c3568fc429fae357351ea8f3c7808d4b6057e79b4ddbb3c8f331e49f49dc08edbeb8b42e6a397e57ebf3710199b96c17a6c04082667cdfc34207cd03cc4fb6da9a46de218df913a0e8fc6e2a5f6a08b08720409254054e3344f5473f6d16ee517d5691f6c45d71fa5557bc09a3367bef45d82440244df8706826519c1804becb22db8a665c39bbcfe57202e6c5ac0bb1737f4753dab31622ca40019568541b880b009e398590bab251bba2e4ae08287e7a844536758b834d6f480825607d7a96bab7a814edce4c58bb385858af8673a423e976d229cf8cd9d9ced776764c5b10709587553bfe89a5bc5d93b02ce8679fbec12131ececdd0c12ccf6b959ede46a16a47bdf54fe3cecd0cc69617abd94a5e63938c4d5c7ac8fb8fed6065d6edd3bda581dc17e7825ca2bbecada5b7d50bf15538a170a597af2364f50c07db3dc7a91248111c300b300368db7496e4bfb5f44f8ff18ee8712c5515df2deb3c8801f72044022d37893fe9f33756b54c050821c88fb4a234d224d98337ba8ab972d8cc62fa9408107a19d19c72b3ec7edd76a458e846067aa694fd7de4ec2a83c253379c2bbcf181cc9e40ed47d7086330fcfd00681f89a4b1bff528e7f94fce66f229e45b49398ccda7fbcd20327f55e12fa3cfbd74318a79398cf317c495be9a0ae55b103eb6d5840ac77cec6f5caf6bca0a8a9712786b3134e3664b57507e56ff8429684924fc812f6acad8d2f3c29e8c5915277651ed2a69f1c058099bf83f77ee7a86216c6b7d3ad683fe7daa94e2606d71c2e55da785b340cb69292bd68e85f9a1a685fdf7fda6618eee065279c6fe1893e56848d6ad026c5adc2052711a0b52e3595adffe2bcbdc75c78b2733790cebcc718398ccdd03f8a944651590aeae53722ba0be8750ca7d8194f2f4deabe9b74cca99f4cdc036250ec952c3c16dd76ee4a186fb83fc7cbc7b239c4c066db5140624a2c7e63cade948d217d72a519f2902d0d9a476a9b292e3d5b2c369856b8f2206b0fbe0fd0d8764de79295192dde0c7aa3621b5d22763ab263e9861102a7540c9057eedcaafe27d3ea84690b3e11ef1f2f1aa8b536aafb0b5d324cbdeb960055e0b37441283ed4b3d5b67b213d451de10ec9353cd6e3160f599063cd116da0d9429928d68d993d41476ac097e313dec9c8789e50e61719cb06187ab459173f70fe89ab753c7a4a3724dc8b30e88799d54f7c45a37d2039d9a4b1670dc2d2613b9c7a440ed178e13968f4f5675be3fe8602312d32779ec794c473fec21e6a6b31b5eeed15e1dccea8af48183e396e0c6cd65f54809c36da7546c7e3bd571c1ca7b825bda8bee50aceab9bd06c021bb47f1d4c4643870376868741dff43ca580ed4488c1d71490c61df923b91e99d3561cd45b9b01d9c5b64c310ee6e9c5aec0097d5acc80fe3081e806b7f47f17ec594fa35707a7017483374e07a77ec6e32eddcf86af88bc6479b86d8a632c7ae63a49c7d6274b464b22145d5d345d8f61e6e6eb626ce06ea24e62e0f4303238233bf56fcf506b26c69a3cac771c567c24edaa4dc2b6e971f11e6e5738554477501bb59cd5ca05558b4d81766f2ee1dee2374aa8bf30e282de1aef493386ce2c9d35aa6fa525f48ed4848c1f79f35a576aacc898cacf8d2265caf9e65dd8c167a92e143fb9c363a532b995909ac1a54d7955d3ed40722767b7b2065439e347cc4f3be08f53c2f9ebbec8d0fd85236444db6acde27d7fdddebfb9b89ff62b84166e9d3e2a52caf8ea65a5b6776afb146e33bb202b030d6c888ff1a7d503a66515cd443480267d0f3809f4cf0ad26855486cb82d2c162fb193f045b82aab1329e08769502540e615d9020e6825e706e8dbf8c238779b9a218d5b7d1cc3ad3527a2e02635b222d63f0c08d3e4bd5ba2525e2681cae354679dfedbcf91e3f100b95660121b7787986d3e590107f89297649d45f8844e90a9161e809b2a947e08d4ffa0a157431cd7858dd47fc12df515def78ad863238b0fcfd7b85a9d00db39875f63d37b2fdec7d59dafc4d5c800c69ef7e1a5ded523a901edc5d0f5860a531a2bf50b777a669a02fa4631a09574a21eb8cde33fe3e03c3ab52c8f4f13f1b55bea40063af910f70dca1cbbb73765b85e04a6dc0094439433cef0c671f5f4b73bbcac36f7ec6fd70ddd17cf248f8e747acdd8a9545c7ad0956ff26bbd0481b01c51350fa46d06bbeb102539e7ca8bdb6e88f34f83b7a588d49fe08d0ea19b4532e053357eb5c1ce9f94ecf4ef894ff7060df4947183f332aab100c177eff8d162b2a9d45c328ca43c53e1be84f7fc6656909d985ae50e9df8d19c9024ca6a8dd8efef4e8c678555b9478fb9a79eca64079881048adbf4f29f9dcbb419582c82466ae4deb86ecf2d2237a9fe45b9905f1e5b78445d7400c86aae6e6c4f943085a9c9b5e341884f5fe267de8e14cc8d897e729898732c9ac70e5a74f752ad5f8d483d43e3cc141895ca268df2f843d3f062a6d3e6f70598a7a8e59fedc577ea80ef93addf1950139afdbfeb9441eccfb3d541dc91db8b85174e0c71f85269f36d1cf897d026e7b5fd46bfb6c3a9fda5a25e969d77a3e462ec7eec981021f9c1855f79a24479373e9a8a663790e45b4f850f5f6ad7d8ff99e0d57ab0c42a3caf2a391a6f3d36f4aa880613c97a19fd9a5b70847fd23a06959e4a09d41a3aa62b2145dcb9a0e99b03731c2bb7bb9a09a027767bbda6e5ec2d2431fa827b5d769e10109f863ea0cd242e634da2820a5c782638fbdf1a2159aaf536077cc4048a8f00ad0bf1bb633ecbeb95c61e1ccafcb19eeb8b18637c0fc34cbb187a9b82a082c19650c7618e510f55ad44b94eaa934b51789cd9058c49af2f5b657291a4f5f1e94b60ba04a2d94da68da89159cd858176af53c3d2f2d79c5105a67a1cc8dfe5b0d99d767257faad0bcb8e1f04ff1fb0d56e3dbf48e92ba7e98c8776ce169d11e75712dbf82e13c48ef221b786b50bc2a7cd517b693007bc81b93ff1023f4a0b28c864d25d367b650b71e8de85037f5aaf51a866f701bbe93f12fd4fb2e41273cf70579cfea78fcb8e5bccb8cfa058bc5a70a7fe7a443b661e3c0ad4fd7a25fdbc79ab0375a3108e355f90faf6d5d73a9f4853587d1c630b4b7e054a87866948dc6d21d789ea2039db21b05ae2e5c890f4b628e71718d79ae1cc2ca98f4cd5494caeb432bd449059d5a195efccd6b8d26fbc57955005eedb62d0c9ab7dcf71a5c3c6155da19f5e6100a7b57cfedb432480b5bd7b87b0097f3280f9108b4280e178cb0136ef8883dd30718436f24be3b1716c35f69c3484d8760feb53f54c38add4de882c6064a97a76c14079327949bd2a85bc903844bd88c5a6f183cf142cfe305fc2a8a217b0927ad59474324f0e9120a1d2772fff47431628be99e0cb8f892a08b76bb5d991d41547ef809e16530627b990d69154bdc7dcd0ff9b1e3411482f3beebb1b94d938b675c78ee4ce8de73c9a9970317c5d520375f94f67babaa36029c423f45513ab801c264bbfa302d32735629b8bd1b7b493a9af89f938d197297e2cc3e491537e3a80f0734db6b9e370d021e84246dc5aaadf249d05b350b4fdf4baf01b9a2df1f25a4c23d20fa05bdab387a27f7cea4bfa2a13d7f294829a9354b3916ae8351680e9dbdbeb1b23b596507afd886c9f3edbbeb9f150a139180a859a6bb4f1b2d876083ba1334b2aa027c3f674eeff39046e4a90aec0b8e46034d32566137cd2a64c65808963d99332baa95cb2d3348c8da351caa0bf03f5e48e1595b145184eaa68b4a4edf8b3982cdea2318b751badec16092c626ca7564e1e7f25044c7c3160d674e2789c8f5a7cbeea31381bc9ce55f8fd883f1dd0b8667e55342b44018b8c459168e8fbdabdd9ba81c0b62be308f9433fc7d4f5099fb444faa2cad1cd9ee754b89255b3769b408208b9ad7d1c59b807a3f3aed7a928a1f7e7fe12ce35ae1ddac591b609ea9538cd3f098161e0df1bc36a0e614dcab86785c668ec1c25768178aded25c9f3a5561bfa98251b30d1556377d23ba589007df74e3587627ba585d41c064e089caf9a6f454a5b511e6b1aa40a30c3b44a44b69354fb168efe43b3b7ed44180cc5b055cc2d62f9f2d39c6aaca317b235697de334c87ef078d4cf2167e785070af417e7f8dec0a792a3899af8b3dac64a03081d16493cb9890543f388f3075899402617bbc1a925ddcc8cc27f3a987b9185747ab72b6983ed530351f534b1f5e82de9820fd4da534b5c31e84eac84e1639362f75267d8ab913cdd0f036782c0a3e5126377fb9651095e6475820482c1b87c3dc824ff8879897720038057f63e02fcf259e0bd181397d1fd7d0459c84225c160fe1d997e048011d6f88d063635367cf438fd328dc93d0e9184674f19439bcbfcc819089c306f83ff1f50059c99789537391dbc2a8504de57b1e912308c2e3a343b3691bea940fcdd75c12be0e1d049fbacf77cfc5c7573f123daae920b364fc19921f32ae2d6386b346f7822885c10fddc77549b7467076d72e661f2cd78c580746038e738b469c7c9daf5ee95f93e8675889cf2eb6fdbbe59f1982bf4233a74ddda6737e31175bb59efbec74447710179da9001edbf15c8e1838c0eb4b0efe7dea62c7a628a3759915d42232756a4c3040e1c01af7530068aad1ce04c49ba6049f5750498801d9a7375b01456ef9c7cc5d58ce12803ae243b4c042281fd41eb3b893b0caa1d122d607f6d9bc0390f504fe54e912c4f9de8d3ff58f039f77e22332d043e18ab25bef91f544b1d05e177bd12603054e49de0074ab81e5ca8aa638c24b4e64dacfcf2b03d96d66d0297133aec59c2a2f648dc4ffcf8737952425798a11ee2d084882868de677a892e2c1ef490147b5253d9e77758d442534bc9ee59a6827c169438eea110c8d8c9b8a8dfc4c461886cba441f4bf51515c3668fb0dd78f3cc57598eeaeefbb35913f5c10fa3824e44ca37683d4a9efd412b7cb6ebf7952c72d3e551a833414063764beed0661d7754309eef24ab7e3bd7598a027be5e47f20bc35b545051c7d0f554927b3fc3c45d0e03871da9697a98a2112ea08a28471d92b1554c76b083cdc80caf24e6cc77ff9ba91e305ff8c662fb1e784765cf137de8798bb929200694c61f3a58813bd558525a0e2b4a4ba15a84adc6769e3c26eeee27ccb15e23de0e80a125bd96c04ce2f05aa87e022d54ed83970b2f1ca3e99b487b320ef7a45bda417e548161f58f08aca404c4364139bc2ad7d87e1615f1c1c3a3ac05386227c9985e056dd46d90e2f890505eb65e38ffbf425f4212a611ff70e0551cda98bf1dae8a3e15e2c83a9f9d302e478838bb57af768ab4c2b208ff228bf9248a416ef0cc9144f8ad47db8ceb6fb27ae904ed9eadd8cceefe6ab0f73898df871de4bb8875c940e74e56305ef344df343824fb5c107087a836f5b4909930ed9eef229b45147c3a3440204e9c335a128908a7d141b7e99aa4906a0376c8562893e64baf027d01e66c2b1c7fb783c81783866dc6d2f7f3a0a08c667ca40867827774e97885de048807997665fed890addee48f58fb2f1f5f88396ac8c2ac80f9acc5b2bae921b7160e6b639f94ffaa023d551234f6da6468c39a7cb1e7c336a60b07e4fc43aef6faaf1e3fef92986d855169d9297641a18c7a05758c66c23df3c11b6012c675b09536cc7f6497cbff6472288475cba5437ee6f6574f93aa87dc25dc757c7aeb4be8017fb0a0c18582b18abed4177d35ef930303c562b9fed9a73a9a930551cebe48de96b42e7aaccc0cb53aad9e1abb7292d8b233f1309224ea67364d559da4993b588e593e5d987eb7a9749691d8f6337fff0fee41da316c53cc34240844872f42ca251ec5f8ffdced9ba3fa7a56b41f2ebae61d9596d4c842c25eabacd583a5576efbc611a3759c0b0d32f51be17b4e12c69133822699adcb3e6f06267795dda4c966f1c2415380e14a73bcf4a2bd8e0b31c752545cf73faee4063caf45d2fc83260bdb7f3cecd1b57e8ef65bd72e53744eea5adaa0fef91830cb142e6ca5b5fb31e29350fe177c08819ceae47c2e5c84dc167a574270ae56ae1ce8debe4487af40ccdca4d92f22b11409bc6d5145ba6a7065998b3a58c24f1a4999332ac0d045e2258a62c6772e82e6b8a760cd40527c8d0c3b0e5b7637ebb3df321f056685f92dd836ab8abe5181979d78cf05928b2c63532e0c508b1eb48e6ff434e0c9cf0c073faef06667fe0df2d0e29991586817381ccf14151e27c0f4f067d3d5e048e7ab8dbde09b3fb4421cb47c9c7fb026aa1406cbe4237b4d648b90bbb713851fcbe8e87b75a8dfa46263f5aefdd1dc0db49ebcb1a1e050660c2f40fc8feb04650c62c7d34f11bef13211202d4c92591493c15e6d91c4a1f11f68f2895082773ac06e170b6167718b6cc538cfadcc1c637a181b3ea5fb6499eb7fa1634922e011deb0dbf8e063045ed746e422fc960794600ef2c3f9e4e3053f1a36916bfa1ed3b24bf254faa3ac1d182f1ca865fc6fe81c63f6211778ff97fc7d1be0fa5a9ea6384bf9de35c6db97e940871f5c520c3ce6b2ae337d82d6ff55929afc21789568d0b05f706558bfd043b2b3e6ed1d2e60e53c7eb956318ac2f7216643af8bfa9e300c5a9ad5f1c79ead0f381ff93cbf0ecc9ddcc30ed96cd497b6c4b4d04f2ca38239803907aa20ffdb5bf7ca87d41ec835547693b66d6d9c577eba88805a0c0a698fd514e25a07a2e9d089986d53a7fa2e9ab72620aa08aec8c3f41c5faf8824157e45521de55da3259690c538cb68a21546a8acc0d25c2437be70331c9960c7d337ffe15a157a20859a86fd8ed5d2c6a5c54f059b8de2101ab1785a4b0b296199f75b9e1b995d5b49beb8891d077a622a1d9c8fd1ee95cf54f6b74581a7be15d486c30a27108b02818cfc0148c4c1c20d76622b39bed461b21cc2d993c868c0534ac8ee733b2a5fcca5d7fef5cf7d03596bb7c7125a05434184d78a5d86cdd88e08604759246cb2de1663f92c7c683ed0cdf3e1cf59d328ac9ef77c77eeec103f15b6fb41384dfb9d6a8f18ba11a7bbf3ecfac02682d95fd7094f8c3a437a65713fe86e3a7d51d490c317a9fb97130e957ee877de29ed7b5382f430d915112208502c5714f996e7d01e9b1594195e98300e729140dbaa8416fb06bab549e6407a24d09f7f8da1d339344bedd76659b69d70c1dafefb8a1f25ea52005ed8a5cded83299c9f08cca1bcbde4263790a81843808d22e24fa539fef9874e733ca55076589ff9785b29e1fee5546f8260c67dcef2f7be710cd565aca3768d0aba62b7c870e22d464bc559a7c34ec93c701755825b043e66a836ddbaec49f35c4bdb74917988ed3267c60d4873a62da36ebb52d5327c8ad86202280e29924e7cc58beb00e0377220e4a1b7d61b6a4aea94a27a76198d400cc6bd72caaa4d19b74c280329becf5107775f1480adafd84d0ae2f78538940ace78274d2481f45df6c61734576728f9e60b785da4607899ad1b0071eab79150f7901605442b54d520c75f1b8d90ddd564ef16e3c54634328ce430a5b5d86ef04fd78dcc9ce6b1b9c938aa88b7110c4289d9e7785f95821c2a53b4a6878342aa337552b450a669bdb39fd7b7724c817db66f8699c12cb7988b5551b633b00575cfa8242f8b2d2c8c4ab08995d00e8e70123e7ea28da69b509a6224f1fac2c442ea3ba50128e48340cf5660b08b00e9c51848a72a8c1eef8c5862e6ecd57a0634fee9699a5c0fdd02c196b93d3c2d9b4116251f5b192a20a1eed31bbb8844b866ccb51cfca32f7b5822ad1bd6d43b15596ed9f8c83a2cec670cb3ea474b8d8c3dca9795f070590fdce03ab3fcc53a0ea6ed518b1678d5d11f22e66cd0cfa68a027b0e4aa7c4acbc29c53a5dcc4e98ec1e179a2dd73eaf18a5c5d13334cfbff61e779901c0609c529b4b1f85f0788fb5661f509ea2edcd94d8b7d3739f339759df9c72079fdc1a2a09f78f38c717a45844673372d84c877f510fe28906e3b0ed843f982382d3721127d2743d966712c19cfb6c77877eacbc2fe27781101dca5a964cc85efcfd6408ef03ce4b3876c5a758ee246113cba8c4bb68e49db168304a9c7d00e1c0185cc66ed912778fe5c6183908b9b6d0e4653444bfb1e4830aab2174b0fc66dda88a7a56a0c0c8642fadca9520a970d398abb67b191bcaa239afaad1e727d587a7b036e5b7e4ccc13539d2b63f98939d4935692c8b4d77857e05b6c17d1c57f5e10b683ba47c420d72ae89a97558d245a157837aba136e4c564b5fef9dff959b6b20588a3bf98b1ed62284933c4af9ef887d6a7a7ef08122a4bc5b36ca37daedbaffcb56b94b5f33dde404b27622530034b11bd8dc584ec8754c5991c8b2267aa2f856f0d64ba499c8fd46b99fe06ef5703b7165faa97b198b5616a1593127c4a527ced6e835355de7d3aac4c43eecc785664c9864cad454cbdef894b571194747e42e1156195158a37be40144fbecc527a37810b4211f077fa73abef51ff7f9fd00336474b660672d7e941f273c40d33d21a4c5155b9147112cc8e6d281b87ce8350df782367e1e607745a2deee51b2a4e0d0ffce7a889e17e0174d4beba496b5a257baae5734ba3e2d2cc4a575720d14a68f0266b9ce78bdb127043f725659d7db6fd819ce7728c5bd308b38929b6c5bf0ac84deadbe9044ef02a7345bc971bddacf9e9d1d7d3ae9e1712c196ecee87ec98637c0928462dace09c2caf45b1552fac88c97f6d1dc6ee67d5e25682dbe88d66ede1b8fa15ef837944101b8cc85542575239870959469651b04470a4f7fc1f5abf14748a9f8d2d665ebdc71df54503c8015068ddf946edc44dd300b3400c8047f69a1b63da09f370983e08ec4849f8919f45aa68a5df763d2e788da2233e9c48a2d1363ea591dfd3d9073dbd7595c6356e382a5fb4348b797574fb1e3fd5525274e250e52c511199bcc6874533c134e07a634b42f67ea70d0c361d802d0931e518e34fa43f768d755dee399236577580e442bc9aff4aa2af3e442ad3510a610fdc6d9679c47feb3a109ce56e290969b212d0d79401a9a7290ebbc63a396e5455b577be03979e82fa5fbef7ea34b59072e46481190f916b049f0e71530504947dbab1b21b1e2e450f3d681b3de6c7c7d29be44f373fdc177b0608be65969d52d726230fd47c795c9db81fb46614276dd072fe3b3b4bdac81304ebef289281dd690aaf9923e76a563511d86f79f7235e6626f7d81c65f16f646e0d5e5b18a74a837ae98d70029d0a85cfab336c8cb31b1724361423dd9bce5e748b58e1a1965e583c1aea4cb15f2cb3abc62566d2b734f977e44527ccc32ca29b2764c27a8b67a90fbbf729b7524e872a8022515d59aa7379bb29cff7b1e29b70fc057a45b7c1e0cf9227afa9349d7b38fb9f773a2ac955ad64458604355359522b39ae80a5adbfe24e2b82a8bf6506c89c18dbbb153357a13e40cd9a33d2c59bc9cf0631f7cc928b00d73752602f0e9c3a980a6b7c2acd2bd253fe56cfbe12f7946252b6d211471423573cbec1962217198f359b0b6c3164a1e9e0ca9288544b5077c909432ad844b26eca4f498af2d8f2f4d49a009abe04063c727b4bb0b54ccf90325c53185de3a29b7d5e21d5e41e184de6a535d3390882a507c50d6efeae1584e8a32a3e2deefc0c18298cfd4b615bbca49ce566748da508b576c1c3663bd152d7471ea553ea0b01e6a861f0f1a20663661e118a0703d3e1e8f0687e1f821f46261b41fc0b3d3e9fa625f14999ce5a4af5ade5fa3d905878def3dc442d9b2ffe230ed1aa55650ac5932033c08f63a4a33adc30fe7407f6339233219bbdb682a6d60a2b3002ab6f64369beee857b45a8fb9a0299edad2fb16d6ccc2f18c88a5b01f0a7e68c59ebf9ac243ff0a25b957f5b3cfb369b6b4bc3c2b30e1fa9eff35095c8ac71de305e3822bc5282dd3469f4c1f8c3bbdcdac81ffd3455b9e1beae4b13737bd23d14e9f5f874b0825eccf911d3ee75a051e0e6c9545095b01cd89b7bb72c22a6e14041bd25b6038ff79450fbea9bcada34d80445d7f70b172b1aebe97f3ab3d62441b5563456cfaf8d2d3b40403090dddef632f001ab4d2b485777d14a8347b89d2705f59215d3f7df88ee317792ee0206655f22e4ae5d6231f7a64cd4ad0814be9c7fb7d50397cb9cfacbffe93f8af7fb3c7fada7a736076cb6be6011873e3e5fb6c95a66674320f0c92da23cd5129d515fc80e132d7c7c082933d1bb3b87c0f8d826fe03e75fbab43e17f8e3cc9de0ef0ef9778ae6c850cbcb42dea6c51c5eb79fb0fae45dbc12f37fe22589e30404bde2973287040acfb3a6d1985ec1bf153495fe594efea1f35c6bddcff2fd1d39db9d59a1a43395e1ce8ac4b46f0120f50ed5d2797f4fbc5612cc6bbdd42f88981a6730b704b7110e6c535a463b23bfd4a03878cc59b8c54f42704f83e15929850dd42362d949e936f99bc939f34377ec745d05ab0128cddcf1beadc88d66230b103427a54453db7dd1f491265f863208945cfa4569b7dd4161e8fd38ead002ac5a90d17a26ec318229c817e4d674be212439cf14ee614afe42ec963c6829f9d30108ff90eda370b9ae095daea5f6e28eb5f4f74739e35a5684de405d6037e15258bdfeb5da4270c4952871f4dd2230f45951813797c99ed26a14c05cc22a24ab1b1ab301de9aca5202ad836432d4de47def02b318696e38c051c790b5e6a6001d3a328d3c86fe7a78bcd4c6bdc08a5831fac9439b27a39218d1af7af6296fdcc13a8339c3b619fa3b92e1168d3b83f7e80099b32f0fc0a4423e188576408382f1cf06da81154b5dbbda9caebddb62847749d85852a0898b776cb0e372a48200c6ed9896e41a04e5a0de6e0f1de773ba3b8e28ee865ae2f52ae34ee0276b8674da40315be34b5c28be015e4ffa5510c4e5684c78b6fb89fdf9a4a42d9c8a3a3aba7c8847e53976b2f4e2b9716ed550ca1fd1ed0b5371d3259bb7515102545d18e8181d23e98ec1dbadb228c489afdd2b1bbd77c0165aebc86f9b5ac004e84ea57d8c9897173334a447ef90e16627c92979b0dd0e5925a121bc6130d232980da8ece6b76ade2ef03575af17b8c0002d66d2a67cd4a2b4905e0579ac41401d49fb2c5fb59cf99a23acb42950bfb156e6202696f5a1d34ff8bd57963cd09152e9578ac1cdc56c10b8c48bceadb192c4ad9866168a8165270de4b7b12abd1de07a706e6e377921038f338ba95921d1adf5a86008a0be149594ccbedf4c71a253490475ec5dc52b1f2fae439db22fb4966868649ef38d468a4af10a1da917645c14f180c27272615fb8fa857e96418a0cec88c7e68946812cbe680a65c19d8ef888cafafb50ebd1e842e09a833bd89d12902a6da30002ff7558d995abea3c676d857db61e03071f9bca8ea781f7c2cdc8d16fda18e2a56a745c70df43915c8772b73a9b1ff3a0f2bbdbb77f8d83a6b0a50bb0af03f755f83fabbe081891a4b86ad45560e2d8d70220e56f13bdabb708f1dec6a99c28d2ef3ba998e835446b34a8471c950f8cf0ea2863e438f3d199aecb33d67f86c0d407b0a65cc700e4719b96c02b698bf469ea0afa1352dfa70abded650bcd1059a8b07829e9cd604e19c50a623485159a70bc8ec4388f0f11961fd56746a23dc4ebbccd97790d51fd9257568f366fbe090335e78c36de627a3bded2b7bb09bccedcbc734d44c4370ba019e0b6c35088f553b87b3f757b94bcb34c8d5a9475ac31f28ba96915f9d8ac1d37cfdc50793060150b16c6f922d547b9f0c5ad1314ffc702ab70869fae2abcbec449b1017209fa4d61b723c05d39b5c1c579265f35ffd57b7d0ace1c5ea242b945ef9566ba7a985e437efff75821220a46c386f8bc81050b8e4112d719c9d42dc09dc4325abc97f05b9be27106b4a7b16903c2c4abc53065fd8625f8d64a22c3567d62086c2339923dafa74ca790fcb7f8c3a531065357f510881dbbaf850fc9172110016e8b4c8616295608b4f45f013d75ede92f15f4cb027e49b8cfc233f2f1b082d90a154bee784e59c23fc0346e9d5e057903932c715a847a50e71c68c9725cfbc6c9e8d171fe2989dba5700bf6a8bc7a2e8beae35e31014e48b265e9281646c48b85d284111f8cb2a40d4bb397763c57abaa2217154c0c939b7910a025fd65e22bab77214a98256ab0339b56e9716a96c820c1810f0710cc93cdcd5ea8f2f2feb0fdbadd608707cb4633ea0d85a8d89cd6ecfa653fde6312ce3c4412a6583a74397d76010b30c68a59c68fa87756b8dd1aae4ce99ee9fd3babc869e515c40a384f55e46fbc8c6b9a6722eba0c89521c57137f5d7aef5403edd194a06a98b7a57cfec632e9483c3aa87150ab64b4da56e51a26a309431d10a95164f99a9c0a1221e33f68c8507c4c4944c6ffba24e66cbd2f42b4b8071dea1e7a044386dc163fa33ded78db8763a8526b32ca4050e90d628089fc651f14c1275d1dde8b0c64b94c84624991b4916a0f112e3656dee61bac828f1e1991bf97c97ca76f41a691fb511d4ed6772a4edc3488df059a5a4cbd64d66def7ad1b58a2839e5be2f5f719c6ee931c9315df5e6fd2bc0245726571c249693ed0ef579d26a1090886131aff26ce4649b9953e0954f6a8871869dddb89d879c1109b5afb36abda93c7b68caed21fa85c813fd567a8390cf9153afff2dca4a07251ffded29be1dd20fd954267df7d306fc6d2901b4b2451171992f4665aa28e90d91dc021191069ddf86df82618f17882a5d1907c7a3be8acdabe941b4d4d82d4ab1a4a2a754d38d744217cc1c20bf4abd340acfde919abba3884ef10ca648d1974718ce255b958bf3cec47443c2a61d6335ba9a4a3a77fb759bfb204ed6f70884b83bf01f4be9902be44fe26e35bf2f6b27fba773fe9527f0341de748249cddcb30841768eed0018485dd880b47e227842df2499e10bfcab3f59240204f92e76366421e47b20535079fb2cf0d045ab8058df471f7ecd6412e826e3a18b94d0f905fc4071e605b16a2260c69648c486aa319bd513651d8e908d7821165f262833bc0088595795511bf5e2687d844da855147ced2264e22d9cbcdc2eb9d403b9fe2c650eeae9efc16260d842a6949024b2c3a04b1b8238ea6fd3182d3cc0f01ac3ebf7ad108af2ea3db0774c94ad3b0d66abb9446f0e86d4ea2a7ee3a873267bd551b8916d7170f868a40ea35b041c6d1934e90c32856e29d26bc87a2cea5ae05a4c0eaeec2f685f35425dd88a39362d8c47063c8476a29268e56760a9e650d797fd102c9fe69a50e68efa007bdfc47f9dea4737f62923c0f53d32d1e9e7789b089f410450b6b132130c86a9cca86ab9282eba5c73cab0e325c6debe75907198b5fca195314285e369ad3320bd275804b00cd6f540fef41e304da3476e63cb0e1821e67699868108782d8dab179ded567c3da71c4969110351ffeab9eaecc7dd1d92b6773323aafc348c2d03ca00d726208855e64a568860e50366794d33ff36e8cc28ffcfac7cd59f63e487bb55fd88ad98731c9266fbd4338ec3f769d786b672f7183ad6be03f5f3e0b95b8febabd79fdcf40bdb60f01ca32d50060567a8ea22ce2a0665863038006a8a57d64a58e98223f746752c7677ce6ef384f183c02056616769aba56a5dcfc7ce4f8011f0e65ceb3a8333fb325baa87c531a61dcdc85ac32fcccc07ebb74036f9449cc3b8aa65bacf23088fb783b31e2230fd0f915ec429c1b7faa6b2a999f9aeb70f6bd1707993dd83bc2cb79b5fe989076346d83d8c8ee09f3bccff1e838b7226734b9a8555133988fa1dd6d1a2427a839aa5c609921b9c30990767597b112615f41185965ec5144ec26652c165556c135e51608af585f760a8f1aad2c20c0b83f7e0777c4b16fa87ecb516507b567cae7b9f76df9f6e97c0e6a068989845f72c7ad0f0d7c1d2ad0790d0e52b40610efd630128a74d998c8b43fa6682723d973a646f8e22ecbf1ae44d303b42f365a8dc74c0eefb6fa8d38e8d74f5ae8b4685aa33b3100b628fb31907ba2c7f24343b43fcba6c14086a2abf0d60da7e3d55f6e1fe9b54337012e03db2b44c5d941d069f0c1c390de3658867cad6700766c56a2cfc934fac34bace45d1bdee2b6a7760000e95311e05e9040c5f3c2f2b5f1e12b58b765dd3d5fed32b53d2a4482f18a411d00208a137a639c6454bd57f5b1ed8a8b0e728b682a741871201c0ce28c7bf8110d4a2095d0955243dd01138dcbd0ba278291b4547ce9238ca2e263fc35dedb968ed62ff9a1495a7bf50b5f8018e600762e63c2670e967d86206c4d887f2abf7897f0f53b414e1cc514f33cd0663c06287126666da558300a7b6657424ce2a5c981ad9f537740d1b70317dc01cc8ce447154ae91780606a5c800d1e99a7d725a493b2bba436e73a5a364f1c11ec5f27a18f3381df63cbc6a63260ae2fa9333a575939095b5f092989cdf9754311c907e33e761cd9126bdcccc359a0e028ccaa94d3db22c482cf4fa9940cd4120f144a565cf0f6d486d2942248f76a184e3713f27f0ce7a012bc0d81c1ab4484a183104748e4c5ebece2589e9d7b5c602aa7cb4a99c1dd133512e83f01feb07341bb562210ae0a2cf740c88a8ee5a2ebec32440b782189026f84c9b24a4164766dc229766ae9aa420344633fc85f666089cb7a2fd162bd69fea2a722536d8c3c3d2cee7939afe1907a8bd0de1256739a10da6b89e259fc5d78d2e1e0940fe81def8803b370ff163bdf485b0ef7e8746fd8895cd143caaa214b551bf5dfe1c40cdefaf8b4fdd2d2ee667e4d2e7bcf60a7e2527ceb704a0f1425a672c3c656fdff1eb50c1d8c9f88b0f5bea8e6f763e519a1d2798f87422e6feb9e36cf02a7878c996123b5dea03f3ae98953899304bd1c5d3a185ce26acc87d8992417e62dafb9f2b2871bf404cfc17fe90be5dfac737a6164c343af6d3e1b3e2b0e72a06bde1cb9b92702ec573b07579b9fd32b529b40882813461d9a3f62bd4d35f2b861b110b2ac9b18f6d4459e349dab4e8795df25df0361923ea331831b2fe7ee21f4859d0c0ef118cedda2ab8b247cafd44382f850126a2468fad64f2916f1ad018e7947fb11271b2339f31929c79bdebb5f291d88286968a155ebe982da134b3171c88e38eab90234cff80447c365552b44706d78f7bb30f1e4cb4ebf3d868147e89f250cc45b51a5df48dec58377d2964304cb63fc47a90477804ca944bb155655167356a687399073e21b8e09dbce84792cb63f2b04e7f9d3f9c84e08c89e15817a415e2d3b7533580b7ef2dc32166a40245cf2cd28edcbf6eef0a4a87874f81d031c1cac7f676e11257c5997af9a5777556a6764e45b84a9a1f5e330f297d4ce8866b7101890d8f55d8ada89291f103d7cf7b2a45038aafc90a1edd47c0e0e62e60fd94e8dc93486a4d16e114e329851b9409c1b7ada6eec2a4140218882b6d63649c0c58d2ae1eab867f805386d95aa7ae26edda393c474c8f121774590dc641431df092abf7df396f0cf37185ed945e6c9a208fa3a5fddaf2ad6cb6e7979eff3de01a4596e5e965a68eeea23459f0cd788d6870640f1fea8c75e6966b35db9f0613fb49616a73cd0e319b35bc8669e01c0b12e6f6d463b7f41408f3cc421ffa3801f4c6bdbd360d799735a450ebeeccb14492a1313522d917f455479973080d9ff6b88056bead31dafb6e83869aacff318240d5dac8642dce59421d09b98bcc8e1e3640fd3dd1125a7e4a9c79e689f6577b55724b0e0a539a2196428de01f41e0da5881651d473c1d3ce8e281e8bc3b5370869c63a22dc8dbdff27c1d5730ca5289254f52b623ecf0447e24d781cbc883e1ed4675d0511e0558ae91829e3cd5d46036934fd2dec9bad25a4517837040db5a6fe8a6c4bec80e57bc4364901d88dd275d3fbf7612f82784d8f957e40cdc49e2e2555d0b86547355b93f2088efd20747c6cbeb3f4fe994c4f176a63279a6e176f35610119c8eb8fe094c6038cb007026e0a0b083e77f17bbf2134555af7d485ef2c72205a0e1673cf6ef22342d032578ebe605b311e1552a31f2089569e93fe95efafaeefa5dad9c722fa3260b957f31d4b4dfa5490d4ff5d31e3bbb3a9dab772c2f62d6d1c9831b74daef2c6de63c1391520460772d55ced379350d7d292f9b943074caeb2295944c1b052b1077aa1a7f0143e03543cada70e061b89bb02c964e5b21234bc34b7bdd5a4dfb09249dcbe174494022310c2393d7fe224853976d6dee8de5153776863b0f90123cf0805b0f84d9c732a05f0d37810811b0e13d06996d1bd9a7fedb0bc22512fc778fdde1f9c9d09dc243196c49a1691cb5e443019b426a301b96575ea352e11bb609f9e1610fc43597b0dae2515fab60912ee1934ad52f8a72ff92bbacf66dbb45a1f97d2037d3daf570be9e7bebb92b1215e3fb5b12808dd04709cf1e59b2024a2f78fa7b90c3a7a9d751b12a8f08ef5163ed3e5f3e22c7489ed0411dbc60e3260a2e12afabef5ca2a7338a045efde8d2bd43b1f0d1ddb271d46070bcd14a08d39d9352a992663e43482e322f5d46bbf97139f51ea25bee399e59e8cf4832e9cfc462283ad665d78bc624c227b47fb5943b7856f4e41b000130bbe304f7e14eaef153eef8a056a0be067ab2466fba09492c8e9eef1c208d17ec61092c6b6a1fc82e1fc2b665733208240cb0135f41e1d3e70ae041521cfd3a4d99e448ff6980e27102e5b85e7cde8174c6a062720f8ec280ff8cf36cc6dc5a171fcfcd13f5e52cc4749985e192cf8ffdd0992d7449d14bfdad9088759ad03a55b652b5b9e74374018168c43815377307b293deb8e7367d8998823da7fc5439355d9fdbd21c17612d1007c9851d70dcd4adca394d9516d6cf137fc38a5054c96edf03703b8fce5c331ece0cdb645a8ec25c1dcdc17156df908d66dfb5855df11ba6aed029b9b3c5c76f07020e5091704e80e70ff12d75164c8e216738db3b92b148a532254db142060af09d6bbf4d66fac0d80ce207201f912d2dfeec89631c2223d2d63856d217587b82f36b515c6726d24c58720a352ca9361275f9cba4c945bfe9aae4378fae41f7c4c31d41e97391678f4f25b1019074e40e14e28353b888205a1cee7339395a04d2c2bef11ef337008a443a81e0aa4cfa622153af34329e416eaa572b8d3b89c72718ea76cb94584093e0c0a42f3f087dec863523dd3b8ad5723367a0770c5926c4970ded79b16143c35b4dcc984004ee6c894776fe6418a58a245f40b664f6a6319575519938dcbfbb1f025aa2fd5dc6b426a13c13fa880947567ef6e88ba1c75f4b5b08b6bc1a9a249bf48f6e8cfde2ace72ff87e18e4956884c9b015ff6fa05c39572166f21bd8bd4aa4752bd0e3455ca748a4667f43be889953808e22984fe4c4e832193f550d9ff19ab98586799b59aee3db5ac49c5c35c1fdb63ab9d18d8c7843ebf428406739c7981eec026d434248657fcb7789722921a50fb873f15e551db53abd589cd3850a31b735a47d7ba9bc00715d495d4e7e95a55acf64c3876394e523de30cd1aa4b63e873ed327bff6499de5f74602bb021ab4c0404bfa80415606c1187648a58c7437f5891ca283bf4eaac7fe8cae5bd6115dfd80de20560723643348d1478786b3ca479b064c0d5abba1167a35f57ca8e93c674439f6721281feee915b9f898318e92a3cec008febbbffc4837c27cb423491ca102c3d7bac4dd4b02be532263f0ccf866ff54e96759c5124e5a34beabb8deb2752f1fd7a842ef7c09556c444aa6e1063721e9b9fc9afff71ab533c2576bbd74f47c089a16b0d978239440a50be0c3629de8da8537e49de55214fd273922abdc84f0dfe8f7b45386a869a06ab285a6859c87028e7deb07691484c7de88316c77cc49737a9f6e43d57da61f348130157774efad9568b83762249b2ff2f258555ff24f6342c166969df67fe369f598d1d175d597bfb2c14014faf1fb613aa62c26add6983323d8ef051fe975f71e9210210982ef9655283c24e10c79b4ff4a35b8548eb7bd97cd172230bbf3017e0fd6134b090fedbe8bc2c6c9723925cdc8f33d10f235e3f1ea4e7c174603f0eede7c1714c9f44d0fc1facc38c660f3fba75050234459f2804f4613381a02c639744ac996fdb28b17889e37f332c5a41e8de2702a9308fd4d442c776591ad24781eae009e2b4b8f5cfb11b69e976fe1b9ec6d5e9da699298162a77d0e998aa6e2ee68c96990b75b3d733e5f3131079e02ea15764c4246d4aba462fb8176b0c3d4b01cd6486f706d20fd8726bb358eff2b20a359c9e3ab5a52ddb37ad243ef0f43cd924975704b09e49e2117fd336df1fc27c08f908dd3e88e81e8357d6fdd604936d8fa29d2da01363d6f1941d925600c7999d2442bc72ffffd4d41e6fd0219d87834050f3d930eb758afd8f942a1bb937edb58078d572ff247aa8d37e659bcecc638d4473b07714f9a0400bd189545918001fea0cabd1cfcda2a90c889f2f1dd7b3c1e2b348ed25970662f6916dddcd1016ed4abc20adf339dc230ff5ed80be47313e8cc30d4bcf6fc8f4375605467af1b81699aa0e4d729154016855ca27dd74acd776fbae5075904447878db526f8774fe30214e6a4ef0acf5307d4d68cc18b2c2198a7f5b0f0122587da77308d4b05651c14a23f728b4ceb93e9e90d5eb62ea7241dfeadc71cb1c1dd2d21ffdce187a1b48d0a8c3407cd08a412cb139a2243eb194a58651ee67358a5e03dd3d126dbc1ab51466094fbf51b4c52be0a28e7e00f394427665a7814366552a2a6324ea5ae6bda7f6357f9cdd6e288f85565ac1164bb10220278d2d91025f65bf5b1c5bd4d519408ab7f73f24347f4bb9bbcdb98be44abdb91c758d920062f41970578d0ea7ad832281d84baa0f5eb438089d8f8ab957740150880b7ccfe8913b8791b9e2cf2eaa4b2fcf1e7994ed09984d6deb425d4ae07c8af8d72baeae0822c3ef7a7e0f636b8d31c408f232b14983a0aeca2490b8567b7f2a11d773d7a922c2b6a1638ffdc3aa96c48ba2047bebaf0aa22a564e278c2a9257841ad160f97b13c7fa1d4a78689e082e1f98c9fc10f31125260e86708f5d44bd1624c852afee8d878a3ade06372caf24bcefa3d8558b49289bf4780ed76c693916c31723e439f1876272849ca214a6144483fe7cb3f09dd41dc5d68b77a3f63347172eafe021fa1a0845499b659fb30af90d836dd00896e619a852ac7eff7b1faa80546ba871653a0c79bec8e51da7df417c91a0ac80bb7f3dfae04422b1a416a866d42d87ec1e9d2edf486877f16087ab854753e31cbaeaf71ed51204cac2bb2d4fa3c50f868f61d504b2889ae5198c73f7493bca0b133e100a863371022ba98ea89472e3e7a8157df509e63cdb41ae95c6a54eb0a5692942de32e210fa45a0f9150994e5ad8864797b4318fcf10db9f2a259e87fd5da87fe737b1e135eab3ec059ccdacce1f3dc8ca4954170735c0f36e1be7b233937222738827958ab56921ef4a2f3de7042f23ebfc616c3b819d786cc23c306eb47b5fe44ebc918ef1653cd84115fa7f25f55b02a83bb07e4537fe7127059ef87ef06ad24d653541ab51dc4418edc481a2d60d0f315969718ce4cd1edfcf67cccadbf88f8fb71c9484ebc60873e934e96fc9e31d19ce6c542fda89ee2f71379fa1c17a0422750c5ab8de869d452dfa89338d0f3b06e0b0a0dd918467ffeb4480b6edffe77bc7c7a2235d76112ba39a0960152fa32b2226cfbf4b545c6b2cc115958484649feddea8a35e178b68cc81ac9c79f435210b5e1802eeb8d70e99ad3584ebebe41075dd652110cb8d10877410d44ea3abe61fc6414a67ef78703d46709b6a1ee3a39a4bca2232a2e847f8ff93dc29332c950bedee67b70e19948e218f3a687a5abe61f331776105820c8296b923dffbfcf7ff36177f37b6269fc4e4768f3c78801878ba61a15c37cd9b4f01d3033c66c55692d58eedd1e7121848b8e7e232f2bbe8bcb25379607fd697f5fae2bd39d6a0da3e3f6c6260bb8ce8479346a2afe18e59a59e4b2ee592a69e4892111bdebaa79eda007313e4693c41f01d8106cfef279d9551ad0edd806349a4bfc093225cdc00c4a7f00897aed8d634968660f4347ec3ff5e65cbfb30cd2de2a7a774e92cf0993aee0d91574340cd3e01f3ed9396a9be4dea97b1cb39cae8e99213afc46b7fbb949f558df698ba4d9db3ffc1acff4fcc41f5bb529a5f8bc09fe3b1f069c7f987ed097dc27851d78e92d467565067ec45f68980e31bea43ace2d9cf1b34d12b07ef79f22d2d99a954594667c83c24d96d2712c75035d8a3ecfedde949143cdcde1680627eda5e35cac35608cda68e6e45586d3b0e6cfb5f3e0909ee8f8d8f602fb7cc6bce8d370e9b383d067c2e15e7394c0fecb63d65abf9b6686152598b1989203fd774c26b3110efa5e81d6c8b1660f3f31e8dcbb9df433e89a16566cdaa5a319bfaeea2af1005517630ca314a35630a669cd01eaf92e553493a449d253bb0357ae7078be4e1a15800c57903ffa9a88ba9a9bf692d57e402a83508f2852948bb61db92380b5d07925a5f9ca2bd1a24ced35dd2a1063e47e5a5da6eb05868d3bf6a43f9e374acd5057f5f84bf3b0ff93d65cdb3488339375959a4d68e090e1df3e3dadb1c3514672055a74c6a8f5d766205ffbc93b85a805ed5fb5ee1d8a9c37691c1dd4523d98baa36d5a2e61bf5470ffd8d447e79d3883fbc4cd7663e8f10b4876e4d6242ec7536e428e0c69f65f35d3d7b48ed7f51f05d72db7a8e37339ad104b6244b7b9f258525e28fda9ccf7db353d6cdaabaa3aa0d1effa6350ce17e0d58e19489759ad669d2096f67555a4002b0ddc0d87741d9ee2bb98e44f26beb0e325fb63ac91e5eab1aa652e0b6bbf06b07efa9c625d6bc9209250017d9abbad3c079954d6ce5d7d4b75cdfa425af59eab92cef1c9a8a975f3957fb5236559d058d5bd3930165d34ad4dd47cda971f20cad42339c7e214eadec1efeabafa05a6948b25ba4c02f6a50ce0922b3cc8b168d50efd9f58cde8ef4cc3330017e56c7fa13e536ded78257420011f8093fdee98123f8571ab23682d6f981253921ac9d7f7b2df15576e855758bd46a83e439970120eda1a5357d045da3dd12d00a9405c25952594ef610c31e9d5bf869c66a28a90df37fe3609f5fe1213cf556e0565bc537b9141caa43e850eb0a32d8c4b89c9dd63617372c37520c52fa746d09343dfa8d769862f9af1002d170cff123dcadbd70658b6f215a7f7f40d87e0c625519629b4c501e73801736e769a8998de12ccfe07e882aa7b784679d385831006c82b435c583ed748ec10abb8351d9e9a6ffcab322fcec2eb21dbfdc0ea4d9c58863863d001278081dfa1bc6ccf603b2ac2640ddd84d94c4d8d051a3f803664c63c6d7fe55c7579af88a884084a48ea405ff1e7b42a215086a23aa5ad00a4225e4d03f12a19583dbff5c330bc93fc5ddc93441eccccf706aa931ec3f732d5c7add4bed6c9a7ac39d62250c8dba04f03ee7681f748834934ea8e8b6a8e7051f75556b97a321689bedce20063445354b278c5bb5523f21d0a6f5a0959b484fad3ae0a12f39412ab7a0788c95684ae370bb9cd850851fc5d039e81ea298bce96f5a449cf7eb621c18fef64c4140d4406a688a542fb7cdeb7acd1c8250b9d63926ddcdf1ae6216c02dab47c9789ecd66dceb29e23a5dfdedaac4bdd774536d00abb758bd1f992547ab406904a00157c14393a917cc1b031fe19783c751b60d8e3b29783245b6c7b156870a46e5b18d0fa6c6b4d6d310903a2284360a1be89a8c67558e0006cf2512f0172126038d46ab171d2e32c3a941cd35dec1f5948d2572cd737fb3ecd5d3ce959968b255135cd9d7820499b3bd77b64e2600babbe3a54a40ae84497eacf7acce9cd12ce79b0a672641b35506f4b86c4b42ac4fee59fbc7c5427fb164e4cac65afd24b72d19c3a3304adea5bc5437bfc9ee49311539e0189a3948040267ce9c5c1710cf68bbde799de2543acfefdd5eda6a060e541ecf2869edba4ae7570776c364c61d06ed0e03bb20fce340b8cd5d86e7d104ebdf798a266b63141d2ee66a0f9e9f6f6a6ec7471b8e26411bc29df46f1b73f8ff16b31af746cfd0b711cff2746d742e50e3592286abc7ec654f7c1041512fde4c66ea886774aca5c38f214fe4ee635d93fa7f6dc8f556336e9090c899dd070aa1467797af116d130c830e366fa0a5e3c0cbf6357e1cb5969d3eef8c70a6f9c38a5769310e3e318789b3af5abfa8677f8b8991960bad978b85d302693288b9951e565963264744075db5dc117edb51e16b7c43c271085efd6106d387ca7d93fda563613587e885f996782c1067b8e82da2439bc4df15be2ed232fc5c23a7a41d58549ac3165d2a19e42eb730df074cdcfd9b29e12e9fb8ba06f4f9cac75d5bfd6999981909c7f8732c7500548dc4487b26d09778d39d6ae3d0ba40824848de53e0efb1dd8e7e0612103f577578eb8280947cd4f56bd4521796c39c3e0f33fda81aaccfb38d30fd9d20375e44938bb26324773648f39591b7c96d719702765c82e980f9b5a80b5819e7e1a52cd7d7fa6843e63b94e345251684db628095126ce43118781508d6d723ccb20ed7d6b5c11b870cb8ea33199cc8ced1e0efce3881f90cfbba34169ff54d5051d9a901b8194fb0fd05ddbff160cfd5450f0a5186a161865d0072b832ae7bfb691641296bf615f01bc0f4a8265d0fddfb22ef972dee6423c16d2f00a8d8043c1a8981d56148673db74e8d57b24f3b5356bb65935f6df51d1e1ebf7b3f04721ff951e4f9a31e2a7abe8e8544d2ad9440cc2ded5db19bec0875bfaf8c0168d8fd4ecf5c1951e9fd0880682eed8717cb53620411eb8505e635c0fd0fdc9b2954967403d3e0a793a782a999781040ed22bef422562a6ebb1754eaaf7da14b03b290081ede85594d9a811be78861f7999e28b90903639f5ee9409e3afa682aa0cc9ad01e619d55be18f8c772c0e8bcee63d00361f64683a905af64ae74366949aa2ee79218d7e7dae1c9acacf81419829f045e955a7a79d061d4dd4072168ed3dd2940cecfa480e2d790d4fc12a2a3f6f653bad4c681a39492987d60d06ae43a8eda5064b886586a2721f69c2b64284506adf3dbf564290f07c42861d3710df966c33736c60ec0ba0f9926bd731ec6dbb7244e6eb696a99309ad8e0c953867c7a2d497ac80e0128929e6e716bce22fba5302858857c36518312a229af65df74cfeebe0320c6e06d831d81d8a09796a764ac8a910eddb39e1c1a19d71fdbb157b8ef66f95b9c63480d5c0cb50208c0c9f4aa0639ceb6346ed889ab3d1e45d63817a58fc77c730840a38f8b6c55045a7f2c3eb33d21aa1748403fe93f9a2395e109ef68016a5cdae309c1ff38017a80ab542ac89da728fdcfd7f4a68b149b0e6f065e4f30ed9d954f68f291f99a8c013ed1976a640f321a9b86de55c378998f33ad8ecbe7140c0fe0861ea5f407d292da8154eb46656f16132dc40ec4ef345118191a9a1dbef95dc1e6765a8719255027ea01743e1526004ddfbab52c7a93bd7f91e4c0af68c37d78fe786956d7d6dc356cd0ffd0b37c1ca8717eb19e2cd1f0e56f8d908937a39e9dd49e5b96d6758a694841430a7b2355d2a1ebd499151abd281defc0a1584b39afdcf4be4f1b90a98fadcc2596a7b5f75e1dcd983d5e2d58b5b36f876502c24382719d3f9e48fdd34b7e30773469f8d22212f64425c0a0f484d9b51d89c9cc0023aba7c2efc5dadebb0c18e003a8192d92b30fbec831c7a01f4d3c64123571baf5903271050c7e6bac50b7a94124bfc7e878d57a3edb54636a2718d2203ebdbd246a0fdd0c7548382789ba6ed1cad96bfe1d55b2b71af2c428adbe8f32be2bfdfeaf8a0312d0972d955f9b9fcda035dde764a486fd54e217b2e08ad02a940b261828a721d89cc2e92d94d12153cdd42ea561b444256327a90814dc45abee4c558d99e8cf14e3a11671793ae4e02c223015979d74a7a1946ab549511616c910223486269d99ae13d41655f5145cdb72cdcfdc9086c7f5cba1edde4a2452e5e76427cab3aff6d368d292010318801478fc0c8eb75bf581fc79d0c30fbbd7c696861462bf4bc8d4605fbd64f251f37c2bdb690e4aefaf9237ac0eeb28f616cd8deac10c9bf3fb22e9028d7d091f5400e53add62f874714f5915b173e0dd8218f1213b2fc972738d3af9b8efb8d7c5173ffd96d2e30b89ac7971d5505bef606bcf6801d6e1c66335466fb5d97ded9fde4bc7d2c1e3c17d2bcd4e1de09356b0c62b14b4ba68d6562c0b1b2ec26a7aafd601504a6c1ab568da434d25b7b5f72f266cc19ae9c3acc3a64714877c0f4a4e105e928c13a7b324eedd26ff18280d2a5406b858770e01d6956115caebac118455657479854a3e4acb3a35025786569cacc2275abe0db325c608dd787206d235c945fcce735dc832b8fe82b46528b0c369b1756fe3a022f1c83acb64a7613f453d1a620b91bb3223c96b7cc0fe2d248633e9c622030a2310585fa3fc0581f33b572236c2ffe2373c4a7213263346e35c6b1258be7a0f897ff43906a8a40c319ace881af0edf3f8182de0f25bc1032c1d9eab837fc5dbdcd86bad3e8935f2f2d7d2283cdcd0bc278f8572ebcf85a1c6593df5dd0a890e9b7b547d67ddcbd03a318b0bd34d964db3138dfd14c4169fecf5fa22831f7882274da2d35f1806cfca31573b54b70a47460187d73bfd2a192e8e299ebaa3f4c467823679ef8fbd5f6f517f365b40a9d198ca91a39b1b2def3541976be392d3abc9f7c2552274868df2c32c767cd6e1ab97e8fd63a1da770654ddf2d51f0d60b5399f11faec1f0859b4e499660ac918886033eab63050c92c917787167ed2bfd1167a4e6f567f6a23cb86afda90a1c3d125908d464f04198d2f13d2bb1535f17461db19e826fb6dd788ff7d63616463c42fe6bc0db0418a727fded73650cc9536a24c0f3737d3ab813975bef15812e3639a16f00902aff2a991f19b800507d945b1f6213a8efc94c8d8ee2e9d8346bb5191265996841834f3ddab620959c4fce60d698f76768859029ef5351d1807fc68b7817a13e6115c3556c7e1725d5e6b3ed36281de30387a11f022c575a788768761a0dcbaf76a0dd25c662f8e8893d0a9eff0076db9518d7316fc1a202a66056f65699f1f9548de93228acab23f1c6ea9b1770d51806d5c885dbc77af237c4d58019c139b7d6e66fc577d3f1153f317a3c3a4678b61ac3d6a9211092c2ec07f7519ba7fea87a2807ed4523eaf33c4227542e79183d9feaf7b76c179eb6755671943b21f037b9b0e79188aecb9a75fe2f7df8aba2b67bbf1af2d2138a3ccd707390c704fe0b40a00d49b76ddd7e054bec8ed71a13c5ac467cfc4ea4f72b6403f9eab184fcdd201adb5bf50cadd78f51bf2898e6a31c40d5d27099ea29b9244c36f2645bf19a73dad5b1f1053143fc5cf905aa71cccf22b5a307885614ac34f65b6c131ca4ee0e93fa56a62dbd3880a6dae73a800915a409f96bae03bdbd2c563e2013ce66cb1318934919bb188a96f825ea1e9cd438b68cbfeb9c297b4f4d6c53ed36d322d349887d5f961699da6affef70c958d7ca1834dace201778204b8b8a8ba6fd31df55cf20f889f3736e2aad4879915ac39a792c9f7797de5f6e7bd4937ddc594d315866019b53d443b71f9b7924a7699e98c1723801460cebed83b5d115dfb7bb12da1e66c7fa178000d1d70e8aba4b056385585397a4a49efea7315c50fa09d8e70d2dec07f618c82cd1e7cf3b93d644beb5750b1dc233eb8a6f44010bda164e705805407b3f6729541333c2446963ba564e39ae2f5aa82ae6842d4985d547446ae573f9b8582b983aa68042b1a344dd6a19d3413d8b8dbf96f9ee89f21e43029b5b1a3fc8420be1d3d1bf06512cea4de827fc402dd65615a98a509bc38cf9f0ce913e6586cdeb555310e58f71b46ec2b7890f2cbe2a838aca6f03d0cc76262e52e0ab2ade5ced73c73ec084c68fb42f73150f7bbae61682c4b2859cff3a076f0223c3f0403187874f155c8c11e744c3d139d5ad3fe42983b837239d16b6e4ee92ff735e1f687a41f04fd3129d1f79e9b83be9c483c2066e67e4007161ab4f20f6faa3f214f3356f2ec89fb723330a5270c4e3794209d39fe0354086a39ceaf5cefe64ca7bcfb7ff3c96298e5de2e9734056aa938505d46fe85c3833925f1f12241b012d7420fdbcd08bb29a8743a96e6b3a61bb4b91724e9fd8e27d7f49d15bdef0fdcd25cc92c1652881c12199e7b2e489e725bae80716812258bb46830363d6db2f1a9966096f5e5e416697fc65ed4ae071e447b3980ee13be11b991fb98c86c9773f3dab79bcff200c720caa92546f4903f6567960c4906268d4e3408925a982f4ee315c0493a7800779667e228132fdd3d2804d5f9abe8482c9e8bfd9f7cb0e69032e2f9bc5d62b001ffc58d2d765c10b66639f049010ea139d001f3aea3242344f851050e36dc54149f669c38cb4b5448d4285731db6f5759aa171a63a0d7b11a3bf5490ad82259d83eab1f768305a4685104523a61775fe9607b989bd638920720c5301ef34e80ff1c91c012cb003e792b808217f38bde1c41b536031cbc2c10f97c4c440ee4e3e4af9461da77481c71ec0960434f814f311f15637752f1b179c6539a23ca899523fe009dab57872b8322d12286427643907bef1db0953af5232ea1747bb20a4dce503956783cfbb9eb4920a25e70c86b0fd8a102fd283304f046b942a56332af16e61ea558ea8ff0e7061ba514b60a20738ed85bdc50033b00065bd1d389450f04fc5c4afbcf077108302b6c462cf71c6f53400085ece85a7132087045f228a2ec837e6c22ed24f0dc9838a7218642f8afdca2421e30229da1d1929363cec92f8d0220fe8858b16644a1cc0a3138d8b3e29b3b69367173ef57f1de37007abf28a5c0b45ebee4f075e960d564c6c5f493268f141ba0be76ff0a8171c439db1bf9f2a30facb9f35b0c1c886443645ad89595e43bc2014b27669c6409ebe450c4f12bacb5cc7b2d21fcc1cc4e468963afe341c001644a673287c2f8d63e00785bf9a6b9ee969f237c5aed685e7191e33ef5b93b3e817c195ebde46ec10cff5d8db0fc27eeec55bb0558017ef89119a2fefb975cb800f6b0a9e5947633429e12e7767ff206055fd7e605d60d8c978c23118de1a055a88f9037b614bcc1a45db2cfb6514baec715e915fef08bd1e84c9fa966cce6b6df4ff4c2e12501bd3fe04c9490c96ddd776968731c9462beef2a02fafcc1be9413ee0a244fa23a4bd36d3682a72c4bbae21c65f6ccbbe74acbc77a06432cef3cf5bf4a642a0d73a2af4cb968fbf683ecb44394a5bb634affa2a5bbfddd40324af10cdeb3b661e9f9584a8b301729b08e18d39c2319605e727ac78be8634ec91fdb68134cd2019ed0b33ca5464e9bed273dcba9ac27786bf72a0e02b06a5baa4a5089ccce50a7f1f3753b45b4c539f55745d6eee05a449a287f77b75899dbb187049ae89f7fd6b1c2f491493973ddcff7eb47fb487bc2c7b9a8f6bc475895c162c558258bf4e8383ecb7d0085cf9152a4b0a9d083974e45c6b8582069861bfa450ca0566871034ecbab0ccb29af6d475b8bf93ea8216064ce195237596cd54aea4040af9637a0de475d24d6668f2f0aab3f8590a2ab6ab267c3a92d262ba47c5485698ac3a4560f8bbaaedf783e3aae1fbbf5d986fcdafe50460fc6328ed4ed4d1b5c69be40eb9daf2b0e752b9aa2a6127a4ebd0cd32784352d48d25e8bf7770e37a5560a000f664b2980ff5a3ba1f3b3beadb99a250d588dae387268e460412b6aa67b96e23b07e10914aa4c15a486adb5cc4d509b02dcfec7d4fe141ddbe81c7c9d28f91ee05b58f9155f06955d91a1b4fbac404220b3def9e967235c8ed6efb1360571c3dea88223581f4b82203368fdde0f6054726980f8e52a2d762700cf0de05c50d8266fd138731fcc27302858674eced6313bba3edae3feb7dd27591aaa019fde9020e4d5a24d6718e940ad38db29c88557489283a5f5b417c7510cfb3c2e152f29790e95715ac5ffb304c95ec0f40245f342c17ad72ef03766af694d9d24f46be969891a4b39add5bd2b0f4033246efbff27881ad027a9fa943b36529faad1299b895ed68a5fb6d11e259379006972f26b2b85cb79839381bd38f18a4ebfd53681fc2e6bbea39c0412589844275118a9e4ddc3cf9b43a8927fd2f336a4590e2819de9623e47fe4441ab8bf092e71907016468bcdb0701b51a9cb92099772189eaee85458017aa38e8da1511d95cb7b3be2783b0db7c6243b678f3a5320665ede28fb7528f574606fc824edb0712ca844a31d194647c4b083b01e93f9230e5c7f9d9b74b454a93dc96abfc7665b66290f6893bd8877886f4b1829eeb800d6abed94597caae2b81a1bce9150370666d9704f8de51f4ab288816b0eb9b5ac73e7bb2278fa6cd66b841f84f633d13116d5c5e1ea6451d33748ac9847ff3f66bac35581a6963de3be278da68989e2c80f673beb4443530cfbefbf7ce12727fb59c5bf52461c7156834f7e305829a1d0f3c72092dd191b47962f226d62d10e5727e7df25138789863176a0ecdd5672546b19332447995e9c111cc689dd949ec1dfb3aaf32f9b6374cceaa466f19c6c2eadf2cc4db8692935fda17263313e46b064525b6650c6c85468baf84a34e1294ccb0d368c278c1d9e19fcb6b77ccd968d6c57df722dcf83623cf676b20a2762e71f2f2e769033f96efcbb5a9a469dccf7d79bc8d72e65fa64258872b71434ed3e8a0bbdb368a7d89246e33cbc322230a3461d9e8668d4b284b00bab2e70a33e331ff7c6bac63878e07b88d5739399e5f19e67903ad0374c332fd7e0481abbcf687ed832b382e516f32d0047bf2c7fe3679ce452aa5fd910c030b6fdb02a2cd8617112831a014970c327ad24a522b4e652ddbf0ab408efee28071f6cefa4d64917ed1877048bbdd6124c72fdef70f4c3c92904f2925e33c02347bb3a76163be508da71cd7c03ff6afd2e65a7f94070bac99d7154d194006f38a7dab69580561b711b2fc72f78560d2c3c06616198f1a64aeacb2d38b745a3cef277323c605dbb708e80552d0a8e01ad980b439bc0d5205b80af3ead6e716630e3b097ea6cfb8c2464173ea866f2f4df8456729235267ed8c671e0b0f6e4c39dcacc80e83bb27b1fc76b35364ad85dc8a4fc71035fc2196e99de4108e1f778c7de3eb3580e19e16a737f341eb2c11cbe92fa94f0572f11d6b0e3b9080563f8319860a57df9eee12f21b8ab82d37892099b1c3f4025f0e064f69aa0bfed768a23a7d5c22aeaf15311c49327929636212ecefcba8482ede3ccdf959cb72414f95872e81e621c391826fcf3e4dee497b9466bca44d7e7e8b199c2541e0225b20fccb2895937c65db9d1fa55203d3ecf62bf3f6b5d8773e9514f6babf337cdacee05efb0c0f4fdda0ba9dfe8bfdd738b1e85093a83738c34bb355080aafc184ca2b8d06a90858d0797c9a29088503b23d9645d1dae377fa20cd5afbf5ad68ddf113f51d78bbb74e9b1b3ba7e68464b6de3fe17871108f9833f8f3866cd99438ec91b4a9c5d1f585e990405b0017f45eb6cec31dbc51926cfa97295193fe8c5a916b6267df553b1786355707c02d6ef55db9853e5a198b6715b96bdb62be909906d23332e8887e90df1785c5419bf6ba14a8a37fa85be658bf9007eb6ecfe7f1f3198e574d66de5e43212b102aa366564a958d25c3b22fedc7a05e53f7f0368fb1776e29e5bbb715895065f9f1e0c51f296db837b7209ad613d7140d45416b7ae7ecbb276a04d54f968364bb9e2972c5b9150245148a34ea877d136046757845586e17256289196114d240ccd7bf41f344ec10290b63f859cb028a21949d039baf91d2a81099d44b93ebfcd62f46b354d2b710384f545573b3329df391086fa7f19b930baa0a5a5697cae6ca99e33eb216d0c9b2374a8f5326cd0df5684a72ac8b994a4ab3b39310f13f9bfd5ac83efb56542670cef51a42046f22107f8a927cabcfd5c153dc2fa95ea114889549af5a4392c267e3cfb2616cf9c3afe5bf2ce84797617c01494fe086471347a0608ed15c899fa44561b6e32a7e877df885ed878c12457610c9be723abf5c2cc52a4d459b831e228b178e895931791d0448b8e042ef843d45f24e2f1e2a896b1955a91465d5dbf887377d12c331756c9fa13ff602d8e561ff0c03bc03ce6ed8ee8feb4c92f2a50c329960370c6215921d80535daf01eabe7bcf47e6411ac114fcce35811afae5a640fbd12b05b40738fbf0682f2f810c1aa2ebc243c515ef85d7c50ae809042763c6d2d8f52306edf636fc17c45bddf931957f57af917c3f5f71d0e65d531cdaa96c37021c04b82a313a18b4e9552d5a073989a03d7807020a7fbf44444ce5409cbcdfac8cdb10320ab8a498512610ec5f7358cfda80f5e6ab9658c9768254a3707d1d013447fb8039f0dd9b4ac5017abe099b0201c4a27c17da4c50c329178cc36dbe67fa7582e56b0f438a90dd90cf90dc113cb0342232f6374c4af82b5df7f6f72e0cdfcf487f6472c7f843195bc8f2a4e862993e0261bf1b5f2c56b178593fc7b6abf93658af68aaee3d49c26a51fab076785e84211891790436ad91828775466e17d86ecc0867b27f530fe7e60d82f4290c3afe12e9a763eb6dad695ffafdfb23f785555dffc0aea43468f4090bfc8a13cf8990e4bc5af3aa8f3d31b0e97fc4604617404768fe048d2c315ec2441ad982cd64e93392a62b29608ed403e5cf895e239bcc9194ae5f7c5bdd7278d577e357456cfac9b7b3897e687239bf98fdc4a9834efdee0a080648f13d37a0d435d60505fd08802eeb81efd852473e96bb65a7287225469a7fa688af8df27a5b6664f22ed3822b43c5b22eb157cb694c6990130633ff64a93e57977f73889e28adb1b36a2e65bc4974873392e94159e14b49196415d62897c0fe8d00599bde4cc855e24643f9f71de4c9ee95c92239240c324b449e860057ab936963f39f961457247bb36fc64e7d5aad7dc7d5781f431cd68a60846fd489c479cb8b215c01f87fcdb909bd41c7239a53e20d6208925663b5c74b641ec483ea7c86f808649ae538e55e939690e9e48f69ac4b34344507a79a6cd6be84ebd7d9e070ffefecc38642f294304dd27648b83415a39e816d2a7186c9c13cb69953ecc52d0955f273aca0e9796128d5d7af437be1712429b0049be77d9fe48c8911fb00bab5fa7e2cd93666e2fe498061b9996d8d9d0dce6912a141defaef3f5fddcf7c43a64e36cae3f224faa83b803a27a9b641c203b18ecbe1e89d44c97afde3605821d22e3b2d1d83b88994e5eeb705be34de2fa2bcadb5f70b6938784d8e289b77b5920861e0be4df452ed4916acb11be9b4c6de3bde63f7bf4dfdae90d35a9fc80e84abb52e477fb42c22ca661b8eba31d6c3a33a758640097d6a5d4a2f0011948d3b9b258733c84e738944af8f4ade6d3af24915d7fb6b855f4f672e5773a37709a2e888f52d255474cb81bef832ae2b00bf3e9862c9851446b33234037d85c18e8eae4ce1bea6aeef92fbf039d6241e8a41ad3b74319ce14b41a32673273a2ccf88d341f36c7e481cb087a9aef1c10505ffbdac1b77e644401b56439f2075fb8c59b8b9b31046c1fd8c816b4e93c69369d6228fde14cd61da15fd9052e2af46165c958fb3b52af2e67158be9d5c681e9350ffdb145bb45c4a4520e6bcc91ee15df15b47e32df83e847dba4523cab5b9a3a0ea3c91fe5c494040340abd7934e95e76507bc9e82c704f435f22e473f6b1d3906496b97ff9c0fee76c0b6aa19f00dbc42c72a22e2807f89e2f6199bdfd617da1774490f02f86272286dcb37d66dcb0059a49b696326a9ef87d011c64311718b9b8bb517b739c12e0c147fdb79c3cfa6fbc787f8b60b3b131009de8a937157f5a119e5cc3cabeed244679a16a801a3d3b7c2396e34f6c80271e86e17efead26887d04fcc87350656f082b369094f5717c74dcb478080376e7533283dcf31ec5a58bdc972f46a9a4fcfcc9f7926473547c8fa6d87de69875f51dff4f1bee43d0e34dbd363f247d2ed320dd32a7e2c9e068631cd0688bc4e1b0c1aef1c5fc1c3c935e765765f53a8f07c6ceaeb87af89aa5c55d2160bb4e3dbdfa38df5703f7ce8d1caf2b1fb5173bd7d808de1127ccc2e1dc315ba1e8e9cd95f8a38893f1cbe80b044993cf279845914e0437b9afad255e2b59aa50fb51ece2ca5116ea5c9a3c5db2452f9f5284aec0dbb88028b1f44ffd8b1807e39704e6df4b29bd1d2d8218f4fc471512d76b0b02ffd07e10c4e76d8a34fc7a3bf64c11d8cd667376549e0a5fcb6c0f86c1b79b7326b24d50f4cd0b94513fd393570fa06b54da2fe89186d57acaac63cd8b00317784218c4728a4cee2b60820ab66e36e6433643568315e3c2678b2cefca0349025ebec87b2f8f2a5836345e514df025c0baeac91564b3b4b376e54f79a40b8233bc36329a923b1a070beb375879589a01bb66fa90a50e848cdc8e3466692bb313034dbe1ddaf879720dcbbc5089376b20480766d38abf8e7e749e917603d595c16427fd5f7eda9729dbd3f3420ea542df100cd9056399d07bdd64ea95eece8eafd65f4cf3b4489bce4e627bdf0ff965893c79aff2c29cd8c3a999c068c32f8daaebc75f4dd777b41b8ee5bbac0628089f129699580c636706dc0cf91bb383bf71dec12cdc3d965f7051d0286642608198fd8378fe063eb4b016ddcd8018a0f138da8b28a499870fa2845c1869cd74d4087f4837a31acb0230ecddc1b7fa9809dde1a74d68ee4a193a103b530badd7ed435722d4e55d5bb4259aa809ae2c70e2e4af4fc9b93120bdc23593a53e3edbde687a0bbcc0927b22763dcea14ac40532e2c237f6bada2a61d53b2c73d0c9d185661784ea947be9e9d37dd5c7aed678ce68820915a26b7734aa5cb02c39dead82eca82ba5708cca3135d543244d5a66b15636b8fd29176b73d26ba7b44288cadcc5e5c3cadb9120ac8b2c1c69b10a256747beeeb45d5225353f2126286ee5b814b73b13f8cfd7ccd4fdd6b69f390e2173ec102aaca712de805ee472cc96a2296ac56bd47027d1da9dea8d963187affc8257b9887d228179a067eb2b4af2878f40706a4c073497b80a67dd60c93ccee1769d32981843976074f8387eb4b1fcdd93573f71a90711836c17c8c9a17d1a6eaf791dc9017f0c97454036e023056064c223fd8d11729aa35d0f52126c2a4691b909cb421c86b1bad7d85f032efa2da0e15749e0bf28ff2937db0893cd58d249ad2e41756205c94a00fa815f86dcdf148af95d090df201cdc57246a52944c733accdc34d7d5b9f3370aef13d45fa54356b840a16ef806f5281989f338d7f32463f1162e36a2e716dd9b8c5c1b603da36b6d2705c8b6645ce2921c8ff533ba43e9f6ba30c9ca63d9dbcfd85ac0e6fb80367dec51a9df8289b82af68a6567033ee0a2872bfe60f0021aa4e5c23691d49531f1d081de9af33a44da1f62b057b00cdd984f0a87642ea6110a17ab81a6b23fa7134a2971b816e1a2d2daaccb22a6a85d3e9162b821b5428d723dd9331c0b0f2bb984552790aada0a48206537ccd4f22eabe17c6deb7e88a5526ff2f0f674f116c1ed8f429c9cd3375d16dc482fe24ff0bf39a5dd1e8b9d7b8f38dfa5bfea1e9b64bff47715642d8658bc6318fb08826206c19659f50c1d453fe979fbf7b807359b40ed402736c645d389279824e38bb5ef06b314cc544ea9069b6e3e471e214487bd79a491644ae07b079eab2b229d6bb982a9175f5cfd2392da2877568445bf6a07d2db7789be61dcce585498b7ffc728836985cb4b73ed073c44120ea3dd669d805dc456f1a4ab2ec70bb32371af1f615f25fd516729b54fcf80e4e1874dcfb1ed6f01b3290c3046f50958c43498a23f52ef8199d9f6511d6b865ec6061b2b736a7aa2d6f82c196df073e52c1c100780bb194da322fbc017731cd2aa94273904f51a391b1c83150dbc3f9c848e7e18774fa8e0779eec702a6b56fee77ff8c35981e6e546461d197b26f96458f6c730b7994ecc1448cb15a91071df233bea3f7c79dfbe721929c14a3fe02a5f3567299d30fb2d845fb0e67adbb27a16cf4b8366dc511c2c94876e5e74be60f2a2d8dee124165371bae66d8f6084bc281e15b49b1fc9c461f6f630daa7ea99cdf57a9ce1ee5e9badf53dbc66c345f94132f0ecfa163e6245c28c8a7ec7025d547e9217aa73f87f46b559c15ba74bab5751c1be727ac372395563604d409e01b999df3a79fc6a8394badf8c3cf2a07c4b156d2c83a122e9278da024816e26b082ef5cee16cf42366272b6ed853d79292e614f4857318e086853ce10a2d03dfb20e63981c610dfa74e1529d08c2be2e1c79394eb728ee9a6caaf99d4cd793dbcfde079eb9d3b60b5b314c1acabb6a2c3380dfef1cb2fff2c978c512a74e6db3a87612302ed89d499586a6c9422725d73d2932eda9724631a118d96fdccf0bb51b0c0b8ff4beabdf270fe4a6a49841b41189f836198af45415ca656cd1ff9a8f0e0ba71bfa91f376314c3492c47a591d274c23e7b7d23754ef6f3e321c4844ac4bd7b63461f0971f35d885246afb26a4fecbe9398a43fc75ca69782d63fc6cc1ed477670032fbfe7b03ea24f68da68c45e9a3dedbb3154b9a7cd59f86c84ef2da0f50e1aed13f5491f08cec9ef51ed12f0ebc47297e62b9d8d6b403cfa0f3d028c987ee1a6d072d4de2a0af33acb987d875522cf4852ac1c1da63ebc5d235a29558d910a2674ac33cb221c1523147ca423d8b7b6202aed60ba6a46661c4625c91597449f517757a2da26e7dabcbed6ee7a91f0fba9f3047acbe6908e291085e5fe47e13ab9652633452becd02b915f0b97cb01185d74f0454c28317cc29576d7e1310924b9fdbdcfe283ccd504ef29da3b241c6ca23f7b0359ca7141539e2e64c753b7dfb0992766511417a7f73d189e1139c0b9160f3f03edb372150dfec11f90c99a60fa89ec5c37ce7b7db4328aa1d632f82846de0ce10412f0dcdd3a8b7de13e0a48c0eebecbfd4c954ddd7f3196c9613bb16e4338e3b572c133290f57118ccee71d2543b79e73447bb3916b5c5e8dac9453b448149cd52b215f72dcb39e876ac8d47ed8df8cf7afe8d88172aa2a2289fe7d84077edef1a1c9e0898fe07cde2115d48119e1eea9eef4137ffd038ed97e4043a01e591e41875c8792082edb9173dc857efbc9e7cf156b5ae643850e432ba56eaee163a230835bcaffb60ca40982a4b620ae0d8e57733853935eedd512b378011235c1dd1522f3035817748d7adf072c9a242287c5c2b0c008944b609bfbad1b790e4a18f8d899893739169617aaf7653509623e474851f93d8a29453b280be60ca644725987ec5ff4df13c086f3673e8d3d3a6aed65eeea3a7fddb8b34ac4f54cf0c7ff2921a480dbf4387a9de6c730b67ed6644a2ece1fb5ec806ec24e80d216c5c03b2816e66b4c179bf6bdf9290f620293cbc74886020a8b1ac3c0617bc31853959c965f85107b58318f7e78a8e4c99f78f7c558352f29d42557b8024d5ca782990ae4466859a1d3629d2cf7b7fd3c4728a101ebf6a8af696af690ab9e35bde2683991711a8f768dc816dfd610485a2c41adab2d627ea710f3c792a9019c233de87004f838a88bb16f9fbcccb792f5c6e644fe8d577d3ff7916bf1172ad983d863b7d20e6ed903ad4f52f562e0feead2077dae5d77bbd7bf9d916c9f2a9125bc206f14a82c0ef545354fa809abc57dc195fdfa345664a690532fb86c735adc994b3d67c4e4584cf8f08a57a910ef8c50a0cd7f5ad26dfaa9ac81be23a02046266adf5a8f987c0faa77b6253564993c0ee983ddbb1dfefeb39db885f90a716f57d05b7ab9278c50589fc370f20763fb2f81f3f07c9c636dc830d42bd10606746904a639dd76bf7713e4196c947d340cd7b6d13b8cd840cfbd8fff9d6dea68ec97e0db6627b69ba82d8020c6959e28fbd378e34d90b8150e65cccc52565fce00f47d6d6bfd74e1495f271f59e471767411971226c868231af54a6b0b28a54aba27d8c2774a945e8b6025d0be8b5076191678ccaa45b7201dd81725b4d8b8295a1a0d8d868d5d4682d9c4635289354b8df89fe0593ee12481d88f1c97390cd1d1dc9a7ad4814e7bda94b644a04518d66ab9a4fd5be59365c48ed9a204a26e81560ea4fd788c7f59c6728f2007115ba35cb4371a946b21dbd7dd1d19b033f898d801ba8d2890f41e752011125cf5ad62414d73b5379ff81cd10e78a6353a74c4ea15a4ab6e39573f1fee8ca065a9c5a95f265683452f44bb6141603fea901413e4a815bfec638920f6f4ede458ceaedfb404df75bc0cec64f27b77291dd9e02ac3a6f6d6e3bb3d9bb5eaa3efaf8419ee379651a6c946f91e813dd0cb2fa8a26520a9aef0f9ad04c5017f2bbb2a1f3fef30617e5169e2a4ec444112c6c8d9dbdba470252de22bdb45b000159ef989cf83d480d66b7d3c6c8edd2b5379d906f451ca6263be3403e473eece47ef69f4a27c4b9bb65f95386f3b341e2a4ea4cb84d5662c16899ebba535dfa51183dd4f56ef21038ae3b3bf0f94b62f5fa6b10438a404d4f918036d09f19f0a31d5cfd22388b83e614abc22693926381eac0542f4bd721a17c9b1e72604f55382e40bea9ffa89f7e2ba71357d1ba5dcc9945d42405d81c7f95ce277a77d5ad93a1b5f0caf2f3f37b3260b325087ada141b64dfefc9556eb5f1471640bde95371d87dc7ebad1d7e80f4a15288c110d4307760ed0fbdbfe8f899d578d0c12fff1e018b9ec0b48472b236b5872da23ee64f37c784b5d83412dcbf2fb90e66e6bb98f8dd0c34b943ad16aeca295e024c48a8ca4a587f2b1fd758a70a9788ff1c4b944f617d3ec075bee4066c59a2691456a6ec6fc7ec66b9f75ee5bf27c5417ef79951c478e69ba50dc5aa495567801e7759690c3c701be11584afa53922555ef4ae7d98c2cbc34444233f97877020d16724e141673d975528cba4f570b37a1722bf32f6ecb5a41727f3161b8651f210e9517ec5d849127087bfd0074c17296f2ca3dc86e352e5d1f25740bfa88c57fcc30fa4744fe8e6c6e620b2cd20def09efed21320121a724aa2ace90fa325b13f007ec5dc3a00358e17cbce1c64c5d70f6e697af0155e705d6f767cee8a4d3e61fe03cc425a6b169fe59b76cc05f6fad992c8fb410ec059512ad3113b0a89b0258f7ecbc6e2581ec49b61321a57cef2252bf8faba446be22f7673eaf1722b83677ed8304fe74a20cc7b798588624a9bcfbbc3e2cc19113de39b7634848bcae9d637ae28543366a4a3117d5c1f5ec0f711a9e8ab317450fb2756158207f526833c623ff2f43bec7567b1e372bf7659eb100a6b14e1eb7a0b04304eb373060c01ece6868860100b6decb7bc16499576ce339eccdfbefbd33f39719b60416a0912b68017b32506a66927b824ae9f20c63224164f5c9c53af66ea335c01221d1528afcdca414acd28a770421ab85e197b4103be631d0b4a50e233ae002a7a7711cd2f1740f98ef042d775578f335f2b733f8b19f606cabc9103e8715c3bc9adf95543536206ef86d49692c40aa8ad031c5fab6c9f1d1028cfd0ee551c69477103523340befcb86be75af2803a440e3cec32e6cad7c6931dadd2cd1ae2d8cb07eb1faa6e9e55fb8a574fb5ae577f6174695414d0d1d9f870732557f5300597b45cacb907b64d76d3abbcef5abd94416a241d255ba120df08d882510f3b13fd2e67b7aba97333054373849ac6c432bd49fd7aa25c91f968dec05479b5d7c51d31815569385dea0b7b992a62349de567dab926eac6585664b3b426119290f0202bd5f7eff4736d8e094c3c8f8df86553edf072e3e3255aa4a74d2b5abe0ff89c032526f4da1b6ef4dbffc26630bf8803ce5e4c5735b8632694bfdc6658c2e5ea16181146ae4520dfc3be59d48eb92d014a6c90acc94551b0423d53c20a4f62237026f3a423c67dcb2fe94d7c4264f96641a7df8c8f036a7a0063c765d5e7def87b7ef8aa7852d5ad411ea11a461f8ea715871de795a73e398175c5d7dcb2f8b5812c2c04e2b0678a3effbe1b4116fbaeac60d91c1dd72a1c9ab3d38e40a5ea0498e76fec2dc3c607f442d97a949c7209363f6d60fc9259ebc0d06d390a99fd18661b3f9d8a93c2cff6499865eafc1008543b01a2ffaefe881d29fabfb8eb621b2c6e6383c15a784791c6094b153a4f2326d358d02177b5fba5b5ca97dd895a7d342dcd9fa348fd244e6d31d66417f9d8a62a66b6526968dfe56c755c8d1616165da2106bfc9f469668d089622a0656d560620dc6ecb546788d0df19e1d2b235b8ed863ff0bb02705d4f1f33738dd7a79fa2f3176728d0b18c4dd67bd8b1e81fe929e6f363e9c206182826ee7b065df39f7aa89eb483c1e27976e5c2ac8bfca68a86046d1c563fe1169856a6fe7a0bac6ffafdf2c41ff499da5953c15d56ecd8b7abe7fb2274075c4faf2e723a74967fbfd8b5ef302196ec00a600b1f4173f45ab79b9b4bd239260bbcdac89024bc86ddd5ebb21ea8c4300de151737c6fb1679cc8b3b223cf2cf672af2e2246d1f01b8d1295db7de82c9da323d4b38836dc6387647efbeb538495c3a175e909f0fd69a612f9f2cee58385ea78f0d294b25f91d0b4a2abefe88679fc1545ee77f73e8c39996bb7c48d4e5add90da46538a14c26b229f4f7af36c48c2062b2e7ee4ccf184332dceb67c985d6e71f48785ca1ffe943abe06d344019411e8626380c73033ca65691f7c5216f32fd9c1844fbb3f20856fc717cdf3cc7ff2d02aef176bfe1b239b392492a1f5c0d07fb23bdfda5c31d939c11bb8d2d52bd32a0b862b6f6723eee52f59ab58acb463eb74a67265774431a842a3908409975ed44ac108341ed0778c9ebefb88cf9c1a7fc69ab46c1c805894db558be6340d9cdd53038c746ffa8e436488ce595e23f3a88ad5a26a76a7f4d37870f1f0e44e2750e668cfef404bdd4d1679db5abb9c1d4d3de71583d4032a4cbe9c3d93189ff9e40aafc710ee53e9fa4c30cf43628b48e89367c42baaf9861f895a49995014d822bc78d14fc35ee3fa2b17f9da28395a5a01230ac7b1347948884cd602c5aabe88179b9e61de0856a65470a43a8999274b7743250289309f92433b54eaae36bec7c4ba4db9ea587d81ae209c1226379ec9391bce97fa38fadf42747051632e050df86a20415b0a92d08413f38dad08be7aec2fa7cfb1a9ce3deda5d660d216fb6f786835c9beade626081a2465f716b3b1c7a1fee4bfb8df48b0df83606c67301cdb6dcd772bee642af932a54dd038f5bc24e42a2dbda75e57261091cad3da044c6a31eac50ed74eb2bcbdfcdc7e086cfa0a12992865d7b31f6b223409e236b207c81b97d90b06fe543f6adc04d1f25c2a02987e43b00bd0ba078e8a52dc6a2351ca284e7af7c3c4df0a28e404b79e7bdf3ff696928dbc1de81011fe12756176440d004d11a530a0b674320e6bef3004f56017400c73594c7ca959fa92ace152870510a80cdc054be23b1208a7ddf6b652a4597f4598fdbb60922d677697cf72abdfdc872c63a8fee5992294293a93a2c0d4e80e31a385e3b30492d8a2b3650e272709213c7c429506c25c4437b831f54509f181110b09fda0f839d760b8d54a2e8b81498f244bbb16358f7fc74db4ba04303549c717f8d6fc0676dd2bbfd4e7b9467dde76f0676e58856ad59ad7e2ec2a9c7e135faaf26066c7318c5e79e94bbdd08539f8dddd39645cd8a1769da695560c217ac36411e22437d4f0a8638a80ee91f99a7122a3f30f5bc4f48ffd092f6f156dc1cb020a286678ab41b25d2c6e8e3ff7e7a0f0e2813936cf4ac4fc725dab2c50d8857395d67fa818d8410479508eb6384922f60493d28da6f7cbc22e69e835ba5a87cd13088291df1bb552aeac082a19945e38b70211b46928cf93b93dccf78248a1b2e3c1f7ef0e5596bf85ea03ac8e905a8bc1d75bcb42eaed2e22942f1b43334d7492f06d966c71e1b4609dc26e712432b0b2992698fe8ac2b8df973a51538b9ccd392d5ef36cb76068eb1116b91d5f577b8eb9e5e0019b98dfae13ef22333a7e26e304ec2beae74ace55a43de281f771f0cf6f73ff19b932eb756ad0691d276470615f7f72d53094176dcdab6711580a0e3db3f64c2869924cbed3bf2959c225aee8f382702915aecc56680f42a2a2fb2cdaee259c4c08690781744984f5cf2975fb4fbccf96d2fb1d2cb0f4188e3f8b2fca21d5f54a9206c49151d366e992b1c0d86dfa033d143967194cc8e481c0477ee1b0d7c430f90723a629c452b763e884f336f0f5fe42da64d1bb0c203f9eed3be27b2f72aa8c56a743e02ff2963bacac70335c3ec4fd303dd858562ec73f54cedb44187b21a0021672b9c444094f4a5456fd80281c02b4d391b9853573440917b2b3f63ecb7423dff962dcd9426fd1a0b76a412fa639c6e3e62b2b8f780e4205fe205fe1c6666f22a7310a8697068153ee63284965533470d4a0037848973dcf04b945bcc34d210679d237252438b7dfc73ab240114c164a709299c091feaada25ca8011b2af395993e1895c493833cc8025278c92292ae8375b3413075f5c5cd827f7af1dbf766a713c7f019dcc0482d701daf14188776cbf5eb0b0627b2b4dca07cc5fda80dd2ead3f2d3805456f443bc080b249612d7ca54ab965c3d4b424743426b37aa99a976b7f55faa23305e5a954aaea51f191e1fc8d56e12a72bdafd99842f506ee80fc110e564cf1dbf02180289d2c82c4f4b954acdd501f0a8274872e121ad7094d7d4a7adb2259fc4c23b4c8df40dcbb8c240b8fea6df963b741b9901152437df48ac3f2fd0408bc1cf21790cba71d2599e51ebfec7fe0a75afac2693a58c6f17302261b4ee69c8c5302bd42b54db7b3a2bd31edb0df9f04e17927cd20bcb8b17d0d77da604c774145ce711885239df34fded5b6dd7c9d368769a4740da7a3a641bc75c251b8e94a3da3bc01f58cbf64ed0211fb25937fef0760e476722fbeeb69ec9597ccbb5ee3d777c7d3ce725652fdc64f0d3b924ba404e2ec9dba5fbb4238b7e22c3818f88d4558f9d429ff3d9f11477059fb2844947a9d49ff604fa3b7ea3db09ddf1de6de29a8c10380e018db3c15b3fc8ebcc85ed4b10fd2bc3f36f75da7c92b84124bdc03dc07583330ad96377bd9e2059fce0d6700937a418de746ef674c9f4c83aa2d004b07bc90b6345c35106680d438a89de5fa6637ca84d6be717e783c5e26f4b33b5d3e05e9aac036c0c79b8daf556fe4471644a9827b29f3499bd54d1e6804982d5571c56c549fbfa54dc60b0f291a7589b318b7f6958e7065cf220c12b3105f006786e8daf5148d67b9a6caf636a6ec2e72ff97b16d361dffae9daa647f85f9c74c807c5cec11208ebfaf2bab24ff7627d2b0a0b57b7c8c2e1f770743d2bb3a2becde90bb815bacee58c50f32354c65def2aba0279d64e4adab246eca225f27b02d5d9c36cc24097b2c93c6a58677a57eac4293aaa12cee11172a111a97f6fb203e77751d72adf153fb675640eb8a6eb0935c8cccdac3c313e496d93391374bcfd65e601855151e825b35c040cafede4e3cdd0a2b24b49917364a2def921e26a5f0d7487ad247dddaa5ed341b18e12d477ab0f709aa5a6931a9c2753a9bf0342fa79ef9322cd51625c1eab3156f4e468e066fc8535c309fda97363f987dfac1463d299ec2715424e9e984c7b48b8e5607bcd60e9ab9ea45c75545b6559c8a120fe95593d5fd5c24d8b08a54100db8eccc8667dd03a5f4ea06dd97c81b426bcdd6a0fdb38bc258d7dd0343cbecbaa766e6a89b365a36497afc2b61b8d4e8f051215efc2e8fd770faf428daf5a6cc27e0598c749fa99e74f9d20ca3498caf9bec79c6b4c99625ee0ebea62402594d3c54c3535c1bb13a51443b613782745e26a4444d0491cc83ac2123880a849ae4db3d0113b1393e74da0652a2d00065c8ff1d77bc79f9124c2095212293f4233edb6180a84da7c14ee7b4be2caaa48978ad3f0c238e45c3af4d526d8ef9d9091bc88db33c3a65a89c2a99c3baa05f727aeadc7273cc366fbfd0bc44bae7a27cd0564f808788ba597d3676e0e74406bcb38c318359ea1f891525941ca282a34d933105384f6ab9ce785a2407cb48389757ac9eaaf319517a396003a3b71ef9b9f21e580e700dc9cf1ed0441c36ecc659a62febddb515a93b7d6733679f0975316f78b5ee38f636f8fb7f1a815ba4823a534e8d3851fbe882ab969a1efd0ba6ea1671d7327b7c880f7a82d23b49ef09b11b030a4e148c3162170982f476615ab5171c588ae7dd6d465ded19dfbeee38a6ed3179fd5a03b8290ef61aa83c19dc608e4c06da54035c878d025a90e4352e57ee9eed86b71c46ce3a65995e4060585755d1e38395f15adab4ea11afe7def2d1667d6a71bd868cc0fbba6d8dc08ebd73cb030471837724cbe6bd5ee8d10016a3d2bd1f29dac195901cc4218eb3afc5d99439ac0f41b9fd8d4c20e636b23dae736643bfffccd25019a7f5cd95f4dbfa2368160862594c77f5fee2fed81c595b31573d0ca1f8446517544feaea0400714a70d72765286e27c460a7f1c8a0f5e24ede184e3797e2d1bc2f5ab700a5ba2c61d9cb36b1cbf85bfb79fcb5f861598e2c38b86bbf7bd46897260f5e45689f4ca42d90e9b46e971e370e7ceb29554510a84b3f5bf440791e18ce67ff200192d46b3c7294c1166b42f33d77cc9927ee0976f4acf885adf4a2533faaff983f18766618ee597e619df5b96747a3f595d76a6b1728da62f0e088692f8a34c633261abe173654cae1691c3a18aec865404089f7700fee3b656e050ef26446429e14076148e688fd86e701527145138846c8eb91e818a1bd7d53c76617eeb74893b4977df5a6e9447f99f95c6459437de6ad47145a4819718d4ae9c28728d08368a82dadb377be9d975a97c128ec99ffed65bfe62cbdc7408b3cf0f37395184916b0177ded067477249305628874a3a967321ea882137dc1fcd49972f7777bdaddd94eef4cf53673a14b6313e294e42ab115f3c668e882e8f16ad49ba729da4551a2e916cad1ec4d0e9fa8b4b76df5bdc6b0d56d406e8a4ca13067edd92fa58fadf283daf692cbe5d7bd77ddd1fbb7037a7f2b838e3f9e52f21381d52868d64a91c5573695a936355fbd5c8068770aabe841c05e579865c521fc13ed9798c3ad66f6eae100aa36d49a3cdd7499138191d3a2cb0ca9ef8d761c68813df43ab85fe3e3741e76f35e16245087a991ba2730869731f32b70e8beba6225b0917a8fc26be82b1a3678f334929f35a4eaddab9ac279865bc1caeef73f5c2c700f00f954e23a74dc9f631bed421847b51fdb851aa7d53bcb355325d066932c45ce3bf7950a6c5902c608c80bb98b002cdeb0ff109722083874bde73b89a40e4c881034235db06d41ff53acc61810668531685ec13b24cf57a509d4f274cbde3234ebef74ebb4cab9adf0e8c6736af5f001cc80c2feb46e60085aac1ac03bd016e8712499cf6a5d40ad586050f4e3d74ae8b7fbda3a0696d1724f4452baa3487aca785ce68436bf22e8bc94aca2bd17691af842a85f89a16e1031a1f84eac55a93eefcaaad68e03308a98f06116aecf6d86e86e064eb054b262ac038defb651de0c7c4eedd15d8f6371eb1b351bc76ad1961eb1286c379264b44d766cb6b802844a7aeff1015893bf4e6bd83f5b763592147f626e67d4c20481345d4103790c0e144f5aa95ad757bd0a35b9026e2c83609347c476b6d635736352cafdcf77b9f286c54823574390c478d5d47b924291f10870ce49b362985b7d895b517a4c3933fcbe46aaeb4f885a4953ef54cba51dcfd527090d1871056d30c822586412d7642709f3c01bc54fafac7c91fd6b2152b89ecba91a6b6691b4d6002d27d1c2d1267b24208d080bb8bf3b64cfee15ef1048755519a1c84858ad951e4b5421cb143d0cc64c14afeb253dbdc8a723d8b3a6cb93d7c1365694a81c60ab98269d9f7bb1c1bcdd560124a04a551a8a97e60389776d1317986f0f55c28077865bbc866ee8ddecd60e074513424cd9abaf05229b95d857196fc9f36db3ed0d2e53ad04b5f247f882189fad09841cfb4ae2125bc134f717cda4d623aff28317c7cc12daea78de0d5b99fef35a85aaa728e50de33fb12c956016a2eb979c2aaccbca9cf64a97e3f6a3f92c731d981cc83078e6605b49e43ec5dec019831fb10a79a5a1b19c1d6476c30d13a87bae1bb85207bad93fc74ed3ff9ed5951e1c38e7b97c50af92dbbef7709e3fff581030ceb2c850258d50995d242580dd2f3847bc6d09d5daf56190caf2c3afac4d0e675d64c695df2ec6b4d2b48ddb611483ce37252e31f6d27703048357a0b38b1c3a6d5f9023360af7a31e2e785927ec9acd96e215a78c9815f15520bb2367bce50ff61915b7f8b62e2289387dbb43477ecc7b6bd0fcd39456ac40299ee803b04380ac56d666a23ac10a8adc506a40b9d29a41bdbd728774405aeb9753786a23d2f6e821b6f79eaaa82db226d384152fb7b2722fbebcf2237d08334a065c339374ebc28c6d95891a775bf9926cdf0ffae52cca2ebaf32de3695a1a7265196f602bee25a59a2326e2f24a6cb8782441c869782192da39b6934247cc8b4d6da11f53dd26a9d334a3c92ea40f92b8f7cf642557a65ab8266fff8a8bd45e9dc29b260f45d12bb1c0a7ad94735fc8091e0bc33faee18155a2360fe1b9fed99a91d9ca54c417a7b1cdefec3db351f68483a929196b05d285a24c049fbbbc7b471b3fa185f621703a1a7393ba1a56153bdf344c94b2463bc210752413685ea5fa6660265c8bd947d3403d720d23159bd3681f435e6450f85f7781bec567e0a857a168734909d69958103bb4ed420369b7008900495de759087073f061d9024f67a93640d613f38b09c955d222ded8783cb01d0e33ffe67cb6cb301f08acbe50190cc55285efc08e64cdb5252bd73ddde7c42e11b5e127a5961244224e8e6dad6f0c8de095c286c74be827896a9983c77f1a5fc3d285e6b2d6ed23462b6d2d41c9a9207051383f9be0b0e59adbe545008ac0425d126e0eed2d5997b675eb9be799ce8169b005c8e02d32ba59de4464f609a71cfe5b55171b3a41aeb8b264b12ba7f4e73f7c2ef11e6125c3ea61e58b16d06bc7ea7db2410938899d5494e2c5e828ef5653e02c834712177e9eb40d9cf3a0c6ef29377e116800f6e00954adf5764b8634aa0d739f9ad81df0d2bcf0317510ea25d2ad1de9fb7e9e83bc10aeaeb593f09eeeaa27cc726a26992f2cd31a7fb1d3c0f90ec6c840328689600b2c11cfce438f61951b82877776fa18983debcbd09216a3bf0d4b143acdbc37619a7bf799ca9dfad3068c07de24063f72ed9619258aec2b5b2b53fec622a63b15c16e4e84a878372a14b916de5c9b908cf4691f2987188ae7fc2b6553a6b90b34384f0b54133b6f07fe38302e0472b4639918596049da60350671d3e9f6c9b30fa152808a49bd1972146808eff94fcefe9301099b6ceae30cdff70175089108d3cb91e8352dfe4bfdb00e9582f638a675f17d28b0890a229573c72be6a907bf6f7f2016567b997b70400d8103ce2c06fdbc332b636631dc7f37d50df695ee3fb3bd58ea0f221521410dea276b6d3d7104728590073e86a76d61358b4d7bc509186780c90dd8344696d90895bbac6592c82a7b1e29bbb7fa69204c36d2ba3066afe6dbf38d45f84529153028b5b7ebfc41d350758ea304b858113b54ee1386d207dfd8a10c0b61d0685ac340eb35bf80372f0a5845080c3eba18881602d91bc4c641f21b0d09c331ca84842155ca8c504be98b48809540e0b92c732c10aca1333a80df04c59449b3d5e40a4f75440612425e47bf9be47bcd3ff0206d17b0616c8bb50e5dda64394827fc1259b39d04d6085b03c795157563990534cc5473d4ae007f37f95896cdd3b73b2a8215bfd41af4b153a3478c27ceea847246ab616e528459efee2434ed0bc70e4867959579615380de5ccd0466a62342066d3e6690a385be71db3bc9b70013ddc644bc36fe26dd6e7d300ac1f82b8175046ee4d7f2373cc4ceb61bc9031d328e6f4f5035fa1f471c3f1391c6ccf2b3deceff1c91e7a348ec2b61e8ddb72f2903294a7052928063def2dd77a039d4510486ab2904c4cf017b1782d7f81ba692c48aa2f622c909535de6ac0220ee01060354a447aefbed0df5baa8acf670e0cf244ed4692834ac9a9944f4c995f782e7e2f830a18c521ee0565eff559ddb48867fda425e2e7b79e27a14dd3434dfd656ebaa0bcddde561f18766394fe4d27db524ab9c270173ecb09225f144dae58d67af7df738521cbca01faa517c879632fea9ce7463d7c843709c15157296994591ab83ab4b2d022c450c5d29c65a114c2393cbfd605acdbd7a3ca7669d87568af875d93d776900bf222bfe5e95710ef5295d6b0fb74afba63951c6c61dc350c30a7144814f9f596b5a583002061b81134e68d581f14b42ccb2bff2bf123608ce7d2e90709ae3d5ca29cd2f42ea85bd5418d03bf000181e4a38359789b434c462b75ca4fe6381955a1d736f4c0d896b6da7e9fb9cb7dd5f46c94d57156495d02b395b4739fb72c7aa9da375f203cdf9901f74cfe6606387cec4ef841cc106d87c8a5110c6923fb66e1fdd6b59defeace0fdd69b1993257e52de04c487d86ad293d4504e1020c6aa3e28fe6906a94ed7226895623ab716c1663a96ff6e7e0e9d7dab61edd48d3465f276ba545b6fd06bba4932bbee0ccae41500411f06beb95b65350bf9bc50eb3917c2765e903d061520f26f44c6989caf5926d4b0a51a62968bfb681d721da81f66079673b09f51311f24a14c93cf02a3cae0183a4a2b8cacbebe76dfd271a8eac2c51e0e903fc64978f6bc2d4044a644aea1400a47fe9939dc7039510abf473788721fe1b81540642af6c09c6676253a75fe18c8cda05bc90d48cc05b5b45c57d5a2c105d0237431ab2b214d82c58af896decab78c29e5a16760d9a6cb88df317cc8031fe00f8c3bf47fea550240d368dabbdac059d76566d9455bdc5cb7765fefbd65081c4a203f0290cc2256275f294c4f01c2b96e92c855b9d2b4568105b13c85669f34c8bac7547052f621f2aa4f8cb934ee87e286c39830f39c3983a775629b0cb042262458f3ca15169310d45da8f85258e4d2e238e4cf961e266f1cc14556457dbb509dd43f84727dece4376cf0ca851bcd1ddf4171eb41a0971ddbe1f32590b6b4363f9faf56e4fd37824ca6a0effc32f2fcaffefa4e1e91a8517f129469c8d2b7c8626dc87e04578dcef4ed573153e606a51910b706c36b361fb33367060632fb19d5dbb8bc4399f54fac6fc1803cc564cc578a77060434320ee5a86cb0fb0b49691ce41931245ea41fa4405f3d44a5647579fbc9c50ec1af320c2a49b62dd2d3eea9e387096cf06918cdea6ab869ca5e3f3a5e5f19058f41e53e10bc530c2d7a707dea378934795f1357e7820e658e6b336df83f1cae8ecd5adcd5224143d111d72f861eb8ab7dea8cef0efcc673b195b177d2163346657f8f39965d5253905dbdbf14dace51638fe6ca6155eb4dc14f103e1bdbe48248e65289e99d5134f7f441056c4c8d3929cf6fdb059fabbae182da3abcd60beba819d28a4665c2058742ab4e15e9e36b5e834366bf2be2a52781fba85bd017ba17caffd52daba177f8cea5ca36bdfa6a80707737c76e579c68b2439edd50dde9c01b61e236ee25b304a7e9bf123fc4b47b37015cd79691e79328a2a2a15dc879310e4f26643993e28800e0ecbf901a0debefda6d80d5c4deeb10b99357af2333a4c76cbcc5f67690aff9156bf70d2235672c2357a9e19ff34a0c6a6184f856ac90e6e069ac17cde6bdc6610bcf8b6fc573ff68f2a7e7a8f590145b8f865e5374ce38dfaeac7285634006d164211e11890e37ccfcb42b0121a2189b460cb47277d182c4fd9aa648f5dd3154f8d84fce65d2e7965cf1c950bb8134180669b92b7e60c79686920d42b655e28cb6a80631ab30bcd928cb8aab88de71e90b105a3e515d2531382d17888377fe55e63de9cb6a4e6eacf5410b0eec8162bdf7c632e6dd6f712e8dbb305a832a81f9539b13eea09ab03af17f25b31ff6b6a5450cdbf93385acda4a5d2727bf9d2776c5d7f57452fcb73bb998e018449c7eace06182dbd84b622072b8c5b5ee31f66d0ad99035089c1fa8e43e950dcd4fdfa9cb934849d1de4b4155d6ca37ad42a6847f3d3c981ef04b4e3beb1d529f928857daabe64e8d27bdf31acb2ee62c449c9aa8e5c8ac633cc23e633f147eacde8e60b0d6ab5afd52cec42cd6c6e6584e8bd3b2545cdcf4055dcfeab7e6c99dde4eb9ffc42a2d1c984ed2f4a2e2613def3e4a38682d1313361b36387980083f945a2f4f39de56da11a88db75f53a9c9ffa3c2c516c6ad27f471989234cb31ae26835edebebade812838b6365b05756941e1fb7a2c73a38ab15fae816c0ec17062ff4287053ce04401f25c1a9a318cb61da8b20c20e3f24c1a5924fd4192e7c362add6a9bd5aecf859b235acb3efefc7817acbe78bf9e2610153c799695286a77dc0c9f6d74337d6912e8741bf97f710fdb95c2865bf0d605a10c43666d0e3d09c3ad9b7a48ed3e70483c4d0611c40a2b7790a5ffecb70ed52c69ae10286840abd9080b43d3511b2c057a58e27e5d98fd88c987a31a924cd1289738edd913ec1f7b29a389191016a26094ac82f8ac8515347f96f221cc975d65af426858a26a1913a4e7965ece91c8666214384da2faf57ca1d1fc8d7056f46bb8d2197942fec9a22ff8f4ba5b3dbf77814a95746d1509f31af01ce3258be0a765cf715f05b5e7ac61529ae9113864bb0a5c823ecd3d6a7f012ed5ea893dece0a7b904f7600a4a621da0456f1a638b88d28cb9ff2d6ed1663a9ce5442d6ef4112001fc554b5c6e4b4f5ea037f00ce435ec00651b632701f63c6ad50b0419365d77ba6280595d9c42321d5bd46665f6a844cf1c833b02a2e224c716b4897a1174f77e71f9e1e4e5faafda2135e012f1b919a613aff8a4d974c3769341c2f0998a494aefb2d5f2b485c66c5f5f6f5f9a5b43f83eefcc562d933988ad149481dedb91073e97100143fd9b32dd000d77888cb39cdf623e52a24ef0413ec43dc180e89284a74feadd80341ed4e79338279707e44097de7740086dabd7bfcbd891af31224fe19864fbdeb120f101dd91a5b810957c13a06a71024b3b888d5b6285db2a2b0e800768213feb6332253e040cd5abd5b8d24775476116099f967112dc28c2c06476e7ad5e948f16df46b097244707bba7cdd8cf091e3fc3a873d2612042f004ec5388bd3041a7fa8b05f3630faf36bf0442ba444fde8f31dc58dc78ec7b472ebece1f3cf27a498078ee379cc10a461454a00e0b22b5ba6d0c22985a9ffd6ae5127448b18ab638caaf33de4e168b82fe6e787535cdb50d39d076b8ac6606588378512e2f757907753003826a2bb0cb539f28cc249284e0ecc3f29583a65032ffcfd0514cf5b13311c4c3adf2669281244ae3b35c97d16b728f6a684a570cbe2cc86d31f0ec1bb4c680ef3c3f1f2a11b8ab411a1e6001a735e4836738fff92c7c651fc78d19d845632ab61f0bfa3d69d01e3812dae0bd7e174c8f96cea5170bbbf6b40d38afee85ca998c0b8f42084c96ebec74cf103d5610d07fc237153abcd8c9fe70b97c84fa42039b446932cd29d04ec59a6abf315ccc575879f372be4782473df92ef3c44368e83b7b816855a1f756447d1f513303d08c6e73a1dcbdcc79c72c1602e122246f370da8a04051665551a1b675136903f317a3ffb4896391d7758e29bcb89d9d66a8885b22c7c8671b29e580106d05259ad336f654a14f52021092ce29f41e5164188f80c1087554eb3eca4ba2f7373551ff17ba904aafc2e408563f013a783dfdca5915acb493857c033a854285929c525434482105e96867f95334b1da7707c1004acc18467de25748d1a8ee02be51124bfc099f22e8188c8c65e62255f6c4c14a4f0c9143b0d01a80dab526a70536cee29601e6b3a96fa1bd8630be5add07c466501f9eb5522352df409b8c8cd264dc0d693f3490b41b0e9f597835011144f91e03a8b3fb8d343dbc2f41ffe4a08126729deaeca2158bd3c19700cb000ec86da52977b579680cf837d55a013c88aa7464ad4d4cbc10e37c08275fe102f46529420e74b9f718feb5ba609e172ec901ba35a1dd96c168913ccd70e77e9e244ac2ad5eea9a5d483a8610612904e40faf79323c0d6e1666d71edf6a42c856e483be67f1d5042ba7a1f4fffb86af6b00bf606d8b51c1738a22f07792c4c480a9908a114765c6663f221cce5b54ca5425e69449ef86cd505d93f3c37346fc781fbc233b13c478687a0bfff1134529dbb30b4ea7063d68fbf5f6193a57c1b790611255693ac7eb98da81d3b07709df2c39299072464f85c22148efe6a98f6faafc00272c05736c286a0ad35f2df3a5b2acc48925ea5fe1480ca76dd4f6bd8d6c53f7ccbcdb6f61ef84691078a21118c31c718887e55253d427dcd458ec482a14e68c9f1877198d10b5c492f6535660e4738c9f29a997fe148f974e256ce24597e9866a376f005a1b203ea3751b662387929ba710a60fdb3a1a3b6171adbc8030354d716c423d3617f93df52778c7e655b43f009a49015122aa3e0c8cd9886bada5fd4927a36ae112a0505de10a5d6a667a84aba6a624fa5f6b585970e4c5d1c48b5cb200d5cdced51ec3e4cbf2195cb19015027ce48458730f49fb9caf83b5024a1b155a0a746f3fa7a9f8ac99c8c736e63104833ddda28bc0a120c63dabcafe65e6f1b63d44511cd41ac8d9600bdc03b295544d8ef3ae6c09c8af007174e8a1e4b0c76d37e84b97ea7c75c1199c408c5bae11c0b6f036eb64269dd383be4df1092c16f775cd524a552bba430e5d377ec938b883dd15d0b61a4798600b6c08ed713cdea5144dd8a4af4f6f92202233141e31a013247a3eef1991e8fef2c45676ad754cfec850187d67265babbece46aa84ed0c1755f5ff0d8ade1ab26bb651b0ae848ee88b267ea7ab395e46306314cf9f12a341236c04128d4e18c39f0f787136690bc9bf00945c294c18cd1304ae3c11e7d6e375fdd2986893be5172655aea32bdd34c3e5355d3f30890bb55382cd45114059f6a7d950cf5a73e1bd0d62b21ea41b840c48ed552b3c02fe20750b528c9ea6b4e234b1a46303084910464f5ca272fd19b4e86ed2318568dd950d75ab6af4fdc8de98f3b3d5cea5f0f1e3eb436e66ed708e1d188d5f995232aef507bb89635a05dd65b5a971c9f47263984787cefc89cfc9769836820a33f2e43503b0f49fea202a2a337eb7554d5e009eb243a96aafb24b57952b1d4762c0a1a05a02190e998f372ca892b9e9c3e767ebebcfa5aaf279d7871a56a1ed38cdeb60fabbdc7c350963161f9aa8483b904214e8ec72f753c5310894ffe96817451ae4babaa16ca7b670834b2f8880e47a73bfbe887d97f94ed0a1a9884e459e62e9008cff9439b80ad4d0d31955f8c6130517b810d97c8453c783eb3e593106b86839b91907f8173cf3caea48754d0405213a9142021fb2a8c23fe659f6e7efb13a445239d277b87c2444f1347957c6dac1abfd8cf9038b02907661f151917290ce09b24a05df086ebec522a52d43b83b507f9c41c67c5458d407a1b0111b563a83b6804a843f077e3f622107d47c4fb5e1fa9e60d68a7c1ad14205fd82c6f9583190ae1048e63c01c2b43139b94c24f025c2a9ebdff81ece9b18656657e22c4ecc26d31c10459297810bcf023420d544af091f83d7743f2854bfe741612490ade0ca72012b00324634852d0e0eff47cff4685fcd8dd734a5cc52aba0fa5b5851ac05c18434fe268d3c19ff38aa29d74c42717bda071021975b402fb83b031fb7ab535c0dc16717093a2d69b4b643cbf41c478ecaadde8dc534f8460eb9811febb04819bb80fecedaf549b4af761edb953c5ab2254bceb0262d78ed4f4d75b934b78fb702d47fbff73c50e319f5be3076a63659eb42a59da6cc5de07b5bbe5f56b6274bd6d665a2c77b20c5d921add1eda8657831f26d6c9e423231566cb1acd5574f4ed7a401cd7eb9b7ed338793d69b1a8c6653344db9fd7073b220af48abb64e0258bd8e3bcbd2b70d8eb4a7c6fb9c6f0b2a64466409d0886e769d92c369647f501616a5965184abd19e4d336687a3b2db0a3c7bd1aa685934288d1a589162323aff170fef285295fea9d6a4e1b971d32214ef806979db1c3f635a4ca3bca3cd9bd490398396a460460333cf5550532c5cc4800201b334bf73fa601cc7b87e44df3b9b6856e1216cf7a78811bb64ae1eed49ae3d4105a6fc9923cd9e72fb35302bec7199407d7b5b7d140600edc4b88d36db33dd93a64c38fc9b034cf3ca1d565ab69669ded51226c465819c234802f45b4859f049443bc78288b7a705a45e52cdaf15bc053e753d28506010d5511b7811963a39a1fbee9f341fca9e9f1f6ef32d925fec1bd4670d96a7b0d51b74155b94d8cbac437c4f1cb0e14bdf3de3b535627303582a8d7324df108106bfc02f132609968500c597750f019778cbef7e1447a372626251ebd90cb7b5561442edf0f2a40a3729482646b1e651e0df325d4f2aeeffd0a581d361e0ce05973e92b8e971fde3bf6e843d6f5a1045e37ae9554a2372df8c18d1d4d42ac79561badba6ff49d55da84187248598f402d587629f5dfb7053e66e2b17ce2c967a9d70cd2f8ff44b927250e06415e3e6ec38a2d440b7aa396bbb82cfc8dfe63c58bdaf4799c59d22548fa86f6ef6f35f4e5cc95a43adc2ba20431488b1b67cbcfcd24bbd36326192215102032a0c9ee7f4556ee3b05340ed9dec31de8eda29090ff0fc7245fc81468c84399be37df6db9a4f30ecdb654f902bb05c81160c43f8b818d78a7502c1ee632e84dc5e2630289e89e69c9677e0ed986c47dbaf71290f7998b39414767a088ffcc3858903fd34e9f906ff89259e4c0456ca8cb0679ca3135b8a0e02a90029c473c0e6cebff6716d9d53fcd8f602c30cb8d16b3c122f453ea66a5f277ad87853cd11a1e504c153b10bf6d55ccce6cf74a402378d1500c49992252b3113ce44e35e41e3372e08869600f9108f5b89d6433196a410014845208d2c14392c96c82e497f1ff7d23cb6d97ab4b15a38af997b5815d939d495f9b75098da66a5313884c64c135c00fa391acecb2216857273a9ffde24996ed5ce87b0b9fe424e6b5ba5b529d01c4a6320cd50dd488a2b595ddf783ea61663ed580e91740d0e9e609ab21de74f25b46683c4a45b430a9105aab437a415bc95f8e67becf08c3185a43753c3ad9cbdcdb95c4ee4de2fdaf8acf1a4ca4c32c636156d0d322f14485bd54f913b57c80d0d59a68a4389d7aff015a4987115213f503c4e620e170b44fb3f43daefab94d670e2e03693e7a1854378cab348604951ecfc178cf3dcad8d05f853f4d2bd3762eb6b1c81bbd27eb9de125cf0b81cbea3bcc46358ecf688dd81c66ac54755dbca08125ca0fd7432cbd8493abd56a3aaf2fd47808bbcad13ac3554f1a8aa92dbe1ee31fb9d8d27103e2f82e0c730a7dc21afffa140f48cec3b3d6cfbcddc74d35eb66cd1460628e3e2950fc1cb7cf001a37baa85890dad8664bb4ec4109565ad5f08e6908ffa026a33cb1163114efd8ab31f562f1cab6f733d55afde5a98b986b10966571732628eb5b7ad3f87c9e3b38371cfbe45af76ad8d5df529a5f5c4a4afdd358552be9a8f3cf17404462c0f092e360f318090dcd48b08ae5df0dbc92d3f4da547e980d73905aa279d7aacc52ecb917ac8ff7cad38c00e199d57bd65c90d97f2fb68b64df1971d6962cfa7d522f7ea58a6c9fa90eee90768277d314d1c1585dfddc3aad4d62787adb8818633c2714cf2fab990403b1c8736cb484b07c69b2bdefa5e69f8b2036821981084f9be4e0d35af4c069f7e50f5755e44b091bff910b0f6701d79f07f0c559c7407ca611665de0c7ea2095d500cefaef0dd22a62042bc5fd9d573f2bd909f206711f42f6a0f3b9184ad5db9345647649fb7dbba2657bba64cc84d742370ae5bf4d393763a2d0cc1298c545d3302f7673b11d68e2f4a37140cfa9c2606652fb62768d4d6de80633114e1053f65a49e70df200e74e8b3c28ad6050d5f78131e6b6ec3c553f0c011d44d04dbce7c12a11b01c8826ba839de21ff3c3ab734aba208d4f448fd804dc2ff8e85b79539a53a27c01b00ea1f64cdb0590d73fc6760476b4e63b08472c7c318ff9f4e3ab3a837682fa8fa1998173b61ce84e71de6028c296074d3ec0880da01b735759ac06a995be232f27d63d8371aea594fb48cbd4bf62cee93316a1307e2526feaaefe3437401c256c361e3a0659758bc226213d4f0cb21d758d238a3798db4879fa0e6f9779144ba0740a0d7e1605ecf4ca4631209e5fc908da77c532760b3974c6f550d6f95f58b57a8511716baf233a98d5149216ee30542f64891638679ad6cff0a6d9d358241b471ec8beb08fadc98693b9b9e0f597a45886fa5b15a04fd9705304de5729f13427ba5caa5fbd507bd2a61fa14ba2ef7522a87a238cc90e7f60339092fc871a08332614acf6a8cd66672bb4c96b2a8d3f08264bd8eda2673212d346d55e059af33def44c75a19e8490458a14395a3970c93f46563888a14226abd6e320e5555047396adc75cd0d7bdb214349bb6f74db0ca64e39ba01a12ed6217cc55c906c674853c030093b04eb94a8ff8278a70f0d014f9d53089128dd7524b12e8f1fc4c7223f95175353472ff39c37c9b5757dd061d7ffa4e7d9f0c6cdceb6addc404ad6cebd739a11422fcb8c751a1f75c4bc3dabe980139fcb7ab194c2771f08ae2b9b1b19b192638d5ecc7f0a40ec6d26fa736905559f56b50587b3c826c856c5bc6381903cdeb46f9a517d843c9fb92f32a137aeac830aca4b5ff7e7aa269114ce9a933db4bed176081ed62d368a1959019c18ea7d74cba4b8f7d1b5e95a9128258f155fe310bdfe9303ade89f6e7d60cb3b4e9283e46761e47c93a1ebf223963da1e408ec383c333f23acda2ee61a56c48799e0843843f8cbaedebc490618ef40baacebbb2b48d2e96ba01e18c95a8ef45a5cecd0deb3424c9c12c6b20f490dceace3d133aafae9fa78f126dd5ea0c463c7c66febec099380a691a0647853f37fc39db928ec78fd3e9af38e497a1e5209c6436c9ef9bea890738a9c6892ffed25cf6d230ed5a5f50915112df53e7a3cb6e8541f93196d3d62b3f655ef99e902c00d0c8e8ddf3501f2218069e161ca2a95960b06b0c8ad8f4612e78523f17d8036d71036b249b5618941aca39ee531fffdabd5e0cdabe53d04acb3e70c2be3b3bb154774be386c89cd33f4b3a1a65206358aefa35677a2337c5b92a05dfa5460161176274e8d240e0301805f7c8ef1c6cbd91e219cf417010e2d97b1088518f373fbe5f3c2fa123f653bed60cd828430966a446814705bf3968660ceaa202eb9d9b1b6b0f83fcbd3f784a300b82239118b77a8bd6a605bcd383ab1e786add78c1eb1e039195abbfc3417b1ae85e4ab5b48f81db4693828d8bbde659eaf5b172c5d224206136c907995a56d5a17b0672c1cb0bc783d44564516d4379d730d27177e503d5fdbdb44037993134820a2a3315afab2f38332acc6e9605f6fae73f0b581d21589c21b21585f7bfb5c1bae2a28698f03e77a75e9abd37f3c55abb4ee3dfe08792b650b562fcf26facdeb2a4c453a2f3b92fc4868e6eeea1915e2f640eb08bdeb4e03eb754eb4f0b32cae8d1312407220626208e1c1e43dfb7647afde8eb1fb8ccddfa7eb851d63f2defc3c69ffb8b95a0382834d853f0c38d345abef272fa5798ba93362130f7ad854b2dede331f5665aec65142b26555a947c2fe6345736119c6ba9e3ab21ca36177262a40c046886371e80ee312a7d4ea74c93ee123dccae7b614d7143bcb6154fe3029bde40d8fd81fee0af8e3ef62a5b3f1cd6cb78a936ae00e19b0fc276c3ef348945128641a814aa8b543f872d293ed1e9df8e33f3ce57ee219754773a9e2a6f3429e4f08dbfe8c06bd15fc384f0dcc1fc30e5b393091e5114b325098e720856ee24071b89a0df8b651b8897a1ddab7c285a445cfdf5be56128420f88d23ed299b9d4afe0a8b08012404678f6505e867c86b2592f408c0c3128e49efdfbcd8d4d740289521421da6c78332d8cf7d8fb806f5debcee84a68b489f923eb052bc601bfa6a4b17289ab04b71550bfb3c37da27102512e61665a9b0ac2a92cdff3ff25b69fe76e215ae303d54dad6a145d8628a8f6d0664091ad011b891a240108b566d8de023d5ccd84c7721d95227f96efa3f3a3aac3f8ec45009c6306672b00272e4effe435301504c6e798b8c94d375cf02f2e6b4fbe774f245ae35765e95b10039dee9f4bf4b99ecda1a68fa57ee66873010f54f688c244e250f0418c1d9f64ce6fb88b02f83fa24b81b53f69e7b5f2a9a94c217e77c59e71d56b069dae181a65f21c32c859f6b399e6bc2597e8f05ea7af12037ca4d93b66c20ed5e3ff2fda01074127876123bd4526dae4086c11299f5ee6ef474a218df99ec0453b9745be1a2402db79b429a9d25a45df10dc0b1013f0caab574191c73a323a70decb34effcc9e7f8d8cc53026451e2ae2febb3a60baa7e0936df4cfe28faa3c803ac4fa512f47439c0a2dc70afe56115000914e5da8ad30f5680786d9730cf0a607155e39116de289754a3328a2a2d2c4bc4163955981e973df0f61fdcd1ecf31d8a1006daef113e914abac1760e14ea695c82d1890d84b9677d5594a6a976fa8866be362bea2f391a5b37bb4275cf475f1640cc88938c6adeb580b6357e281389448ebc29b8dcbd6be31d542721b075ebb1e7ca8a469e5c9d7a21b431538d51aa5a0be97a25e564a88552862e91cb7a965c7ad1af49a6b756528cd4f347aebbe20e3c30561037afea9f0a71c1763a4ca767c6b5a432f156b29d0be2880835b38d829a9d8b91b16b8732de687d16015dd8fe7e09e6bfe315f290fa91309786bd738e62a60860628146836838d0a528c1ab01367be3c25c165ebabf70849fde8c651150a3e98df37981dd2ded22ccecdfa93232b58f2796fd27940cb5446a887477e0be1209c5cb74ce862793976f5f81311d695f7e1a99bc94ff1e3f1cd7849f034449c60d895575dc1ff9370503ebfc3f5eef0b77728155768420c659f2e1394e82dd28351c8e1a7e08e451314b9db72bd0e1c8cb3926721f00f4a82110671ecac8f9f38c1b651e76580e0fc8b16f56f048d925d4f98a81580367e2e381ca6e3c8e31e8c2b9e47caebd9b20f095cbbc29e780928e8bf103b1fb7868ba4ac4beadef2a995ef21f5b4432237f7478e9f6915e7a402a3704803e6c0d891ef80d975bfd2b2980b01ec10298a1c65645f4c1c76f3c6d472301455ce7abad27167f3ff31628e96200146e1ddb0c9cd7d8687904d5e366145baa93b5cc2116a72c893cbabea9962c35e434d455ff4178329cf71cd76030e45deaa0708cb1064cf1e7aca4f70bc54b9387701de068dcd76ce2e87bb124535acd7d8aaf7e6170ea225dcd8a5ed9a5e790b1de46ffc65c73c9c39e6d24fd47785eba3cac63461bf15b357bc32bd639ac8ad06678a7c65265aa45f04e961c1d4e939b54c003873107934a55576804e06b23fb2d06a711bba9092486a826140302b92d42651e6914de31f8d61722ebd4269598d25dc84a32ca01aadf6a1ffa12cfc1aa79922b8db674c4f04bfdd6f40684256b4368211fec14b49c625ad8d3ee6f704ffe47349acbea76898b5433f4182f657f2182f51fc7d7d818c49d07c0a6af10024852efd02e7f58f018f78bf80fa001585889e911a1deb2b134fe34e6536dfbd47d719955c1b6dc2caa51a35c2b8fbd42b80a0093c96434ff07a47b4cf56550a319c853201abdd17f3266224417d46c46ad074f16eac3265778b5ce47def985e420862ec8caeac2452289a19de64c387b73ece80d9fb2f06eee44e179c17e9591b10f94fa5cd771a03fa8d1f78ded7a5adfee0a1933a2d9bf7e7f057c9b1f0346b2a457ecc044aaf63fe6c3485b3e176e53882355bfab054a40412112b94d05d5939239b113ded935df8f43dddadbf6b1ec6df97ccce524080803438f9bb5ccf6fa4ad2e0df5e569045b5c228caeb767840f06dbc742d08b2af007e386c5a6ac393c28775ae90a6e5e9faeee6eb450d1983054253ea503d9dce9e1738cd7d721d851c82c0762a78e4f12f842040162e5925db0da07557c2336512cc03c0e8ca1d440dc660af171cf879f5095d79ab391a4cd472da71b47579cfb5f90a5687b5158436ae044800901e546e53083e8a0c35192c3b1a11cd1765955a431fb8801e7982b3f01cd75d767763aaf7188a3c7b26b47c97b54942cc4c5e3bef60d983682d46a13d302346f1ec7539950acedfcd42c45c474640393b37c42640d65ed9e5e638553da25377903b5e207565a5c958087e7b7a404239fa68552df2217328336001d9458153246d14bd0bdc31b00b2d5c1e918ecde8627953e0bc93b8537b10457b28696e6a254d3c7fdbb8cb97f3661651455b40426cba1eabe7d690fcc2005565e8680fb838ca7221cfccd464640eaf43c6cdf6d6f101b44526ddb659f420f1e6282c7237f250201ea5ca0a9ecb0cf7e5888ccc545c210c42f5ec4832647c121973c3374edcb5b876555879d6dfae59be5eb1b7c9efe0136c29557c1fef107c4318094b7f81d26b5ad9a09a82e8e2c72bf496fcf6dad7e3be7e70dcd09347e9fac4feace4f17533d625529429c9196ebbdfdac088cdee2e6e07dc4617c3b83e045bcbfb3d4eff99a6dc165469a764634a3b2f85034b413b659cbca22047b1f7168f324d5a5d632e9d7496380cb4929204627cb3e9795d754edca045e7f74d5c284261dcac52bc34b3e0bb538d4e923338d9d9e9507bba78265aa2e4cffce2ec5b1ca1d25727d0a629f067f147cc1ac8d9607ac0805c351ffdd116db7d203c231b5ea402f17b05de8ff4506380e105f3d52f2caea23121616f0ec9113e99f2a39c8901b59e7f3ed611b72dae3e590929f8d47ecd6c0de0107bd2e79bd9a4d45a761bcb0e96a74d945150e1eaaf41c9363126146707d253e2643295aa70ddc1639d3c5f9f2d96d40c950102d7197c13d5dcef96d02adb79adfbef1e67bf827f01b5b6cc3fc5edc8df283641fd1b18fe3ec27f72a7f73ca8536211ac97cc3c2b835726df022418d13e35c8ad02cc5b1ed4c668d9b99cfe7a08d9e5c0fad298636cb1c88f54ef1f80c865d1b4d44a7a7ac9b11046df47f7dc2982753e6e942822ce6332ba613e4cb589ab7a9ff18123029b52d0294879409cf5ffc9fe39d1437e39e1a1c94b07d03e69787c05eab7ae48643a511912af42ff7129f3ad6c3122bf994b3ebdfedba15e56b332c3821d863f8c89784320e2e5b06df43ab0af6c904d36caa4f31d289f138cf1838858125b22cbb2e318cf587e66317a15f33a462d3e9faa693ba6b711848bf9deef2d38737de3064f471865867f733015b23822809e6a137a4905a1348551490d0d927a2d841feff244249047f5a786a6f1b3d0a6cfccf428a30d9cd753f1facf607ec83d46aef92492e08ae05ffd3a6c4b907b2bae4ab7541f94861cdf4c18cbfb1027570eab206caf87b69f36c234983b149bcf21bbb8a1c25da7542ac5be59ae871c3d9ef558dbee32bb54a2573237e4cd6a915c7922c432a429c3965dacf49eb0ef312e263e1aa55d63a2176d4c620c799e1e589812464d5be3673d5fc1c3092a402552eff13c0fed646b74316ca5024436c46d3a76b5da6dbf86c0ded91cce0b9bbca0928d58b9eaaab4e77d5824f08bf3445ffc2e5be3fcd76a3e1e4d14798ff9fceaa63f819a616f8072a8c12b04095c51b8e6dde4f85b40f2e3c8a24ac20ec81f5d2b6eca2b777bf587946be08db30c5aeeaf3ecf074751c31dcdb34a2f9fee0c22f4d5bf1fd4f72f451e0b721b285eb933f34fcb122ba2751b850da26b2924a4def3f6a8b13cb9d3e23945308f88e454b074eb55bff885ca079fb89048b50b6ec036d1b89b142f83381a44161317aa6a3b4ca3c3f2bdb1dc5edd130089d3187ec969ef40b5bbafdb66c28cc90575467794f4339272667b0382493b945d1415871a70fbedb7cf65631e9015a0c58fe961334a7e55f29b6f3d48620eb7a77cab10bf9b2ffd7668c33d268ed21c87fb47a5df6c97a8fa7231ce9c4f3e93c2cc3f04a29b848d6579655f8aefed6d61d6877fbbac748516c345945e7b70023bc9e2d9609c70a483dae26504fe95abd905bd659cb3c0c1d703b7605f41d3556ad8c81649c526ffdaf2f63caa7bd86cc25feb5cf3a91b18f36cf368ab791f3d2594de87d0af64ec94c4dc8713a9863d69cd498f6ef712e5dbe893449de69bf5f1b2acdced4a2b157460547cbabd90fed3b7ed205b5c526d956c0dbfd7093ce7f0e53198b068f296203e42bdd2d36781447a28fd676bcd0fc6786408d44e65e752b4ef2819d94b5d43bd1ec68bf468bdf9be9c7a31364d412ac470daa7ef99fd8981388703575d4230bbfae81bb121f8f990c355ebc88743031167474a7761147d79b2a768157e7de1cc6815a3221db1d5ae4232c777d77f65c6c002c3c22b7314f4937f51fb85f578bb4971489bded003d2822012c3b80c25a3d703d461a96de7e7878cfad05f008b1511c640ddcffc032d3f85e613cdf1aea682d2a7b99e58a1d65376c55dffbd07f1ee3d460a5419292cbce5c698fa8e881866afe60a16cddec780b6637838915ce359a8f327b92d195f9c2138a7669b392e0f546c741479cd9d0be0d9b1523520e1bb8495e8d4b3ffe74bac21a4bece6e5a5c9979b075b5d56dfe63415154a86ba2c7fae555749211c7be48d2404d26ee4ed593645fb177c5eac7413f4de4d3a8da2a69571373575438f4339368febf204c16f7aa2d5b3c000041b04f8c352271dba419ba563102fb52fd7e618dc895b863b8cd6210ab47925f91855f30344153bafbf499e93c2f4bc9d6757c44f3ccdfafe0bb67fdec11f471452e0b8703ae28193e5f0ebe92912dd02eb724b6afcdf00764fc98bf250cf3ea6fce9099cbbe3799d93eb0142c8f03b726a0c660b5e6c344ef38354079492a8a878b061ff5045d6d9aec93c073ec5fd58ecdcc9d3d6b810012b739b63d96f8abd6a30e476c624650f3c2c3b0d0cf1b35d026c0d440f29e843f1d2b9d8b53fc18fb94b17e99eed9486c418c69081445b8332909de832d7074f0026dee7473ce23e7dc2608caf5323ae0a7f57761d67466a796777ceae75bfb58f98878379cc90b0bfcbce5d907e15f964611a3fd79a5a80849a9b8f0b28df918e77c9fdbc535bd9267722099667853bd060262e7cef45db5bb08613f9f29f50a5c8d7060b8bbb77bf0e4c8ad1769be241226cd0f83dad53807c762c51802b64f456b82335eae8721ef1c9a6c3905f98f84df7b370df8877abcc957b2bfbf168607075d4d637819021aa52c262e1b835eb0f577ae215ca343503f0c3bb9f927afe6e61bdafc18138378cbf7e8b50e88a65a6d654b3aa289af7d65eb37759fec72c5d94bdd657e0203914d4db56157123f594496898ef92eb6d3d2196b53beabde6e9c2a830a9f70627ba3b95ee616993cb44913f0349f4970697b11eefc2cf037abd1ef5867348a1ca04c8ef61c6353295d32e684bfbab42d11390d71a6e6ede17a8e2c75162685aa243dc06c064cdd87572e8882a5c790f44dee04f518d2b0d9c2c1786d013a5ca939642d1d87644ae5e17258da46f2b90817c2fecbfe4e70df63614a3d9ba14d147d36f83a4bd5b63a33bb9fc8c7f8da08fc0f51b3a91a1a741b05b26dc183d851776ced83def104127c7ec779af55238b25157c85f52bbf5aa06e5167007dfacc315565c1e7364ff6e39f7f806ff75e77e25023ac6fab35478580a60de1f1ba40a835c712c56bf3c895af75345e68e0db424f47330136a98bd91fbde79ec531e90ee861becdf5ada25cc68ae8aed6ca0ad712fb9b48677f15ab8bd07013fa965dcb947568cfb979615f67d852f32d519fd5ff866a9fc50265c3bdc2ae8f90b716278c1b2d9c88dde03327cb18a954d76f70dfe655e7c1c86f727714391bde3b4f4c0e6f2bfd4cb270043305032b1555da5f70c095a8431befeb2cf03cd1d40cd43b7237270c356e32bd4838bfb0512fd5b435a639662034bb83c8fa552e33e58f6b77c9a2580a8787fb510bf56816421024772da345cae1189039736a828457649a374cf436fd32f44dcc2c8d2983dc8bed21212bd6a41bb2647ec40c686d249d6f1108eb44654e643f124cb8a062f84c511d031f32cdf27ada973324db016f79a640eabc21add68f2cce12f5a69b483c7b0586b2bbd94c5699dde64803134ebb63db11c9abbaceab74bb2f65d29690b2d9949d4ef05d8bcda5ce55156a0d217459076c69e8a04088ab4e919077de8dbea63820a4a4c7d49af20bc3305a863838f68e9c38bc2f58f53a69367842423b2ff8e760abe7a6d1425d296016b1fac69222bc0e6ef49f4f15d7bcf6e7031f32c37871f488a57fadeb61469c3ad5cb0013e23c1becc559b9496ff3074aeda4e727abbc59966e275a5628dfdabbffbf7f1b3b1a2fb95b6a2ce2bdf8596fe43aac749d9fcc8ba873afd8e7891c250dca6ac16f72c05aae2096b285010c64007ccae77d00964abdc8218ffe95734b31141623827120ba01ec8454f5548e563b3a4e7ba7718c1732336091ec3ab9a3b3b55b1a1b58c3513948f6cba6cc6c7ac7668ad376285460157042b014a213238bd1b728b8b35d7d86de989a8feae3bd87995660182965cedf531ea7c3b3dd23e3c5f2e26403c661dddc738986715fca79027a0a146a079da909198a4d1e918edd7bce113162d80aafa41785e68a3a82091ef28545b014777fc93dd0aa2b18bb56027f0f281f8900e2ba35a3cb74b4999841aaa5828e1ab4c139659bb3c3d44c5d9e51b811fe2db54fb454b47c964e1473115fc1a40ded62950c81bfe1ac5713a20fef5ee20e4d25c459cb277a5fd23941563c3d2803f66596e28a1bebf01397507c6f3e4a00a184c4c0a6c06fe24ef02e4c3af6427da30e134827272e0daf9c30553a7896d48e6c16c53091ec3c405216538f8ae32d8053367a5c121e6a4c50810fc896318969148462d88c19bd58b23768fdabe8a35c16855335a6ff12cf025f35432271bc45cc478ae0b756a0b5cadf7eda4258ea748ab6a3c3bf11e45f8e9486e5b6229527597fd2f4b97e07f84dbcd1bb86c9a4717237117ff9af6ce70377b945b795a3fea8ddac7156ea76de330be3595e14a3039951a0b39a2b8fc50cfcff2f5481782f8899aae05ed4740eaa2a9ae2c2308fcfece134da9364437b1304784132361ada59977cb94564fbe6be3c083d58372ec686fc006c95c347b672eab437a6d3c75e985e3609968bf683a664fdea7b55328cc6c4b416aecf6c16c4d3c37f70840c47ed1d07bc89eca8e74f3f0d25c75630f74b8866cc4529f057ce0a8884405381aef8a7bb2e28def6c2d145dd5d407a25c3b2730e5008a0728a7ebaa6854b09bc79a88bfb8215cb1f9dd378a690af8d39b3593f4ef3b2ffeb00e1f2d4381e4a0fcfd022aead074665b35c4436427b523dcb6b6b044c59c82b98ea242633c288ff7d1c8101b8bcdecf6867579ead015878c65f95483df060885962083a5ac5c4fbca20f86e7a63a3dcfd487017444bd543106d20a643e5bf7e5ca948c2d04222225426e93c272c71617dac6a8e84409059d752d79fce933b2e51b58da176e25779a9a7f5a581119f0125605e7f02d1100a6727d5a94c448e882a35b0cc3db52109ebe7d9f9df6ac78fb13dd7ff9db1a34ddb0c3729445909ab6f7a66892519a082af8ae28c5af73f51c586ada85c60f66b8b755f1c70f834be02dad069057350919eb83bfe88a294210283a467f25479685f518321f385410859d083c39aac190aaea37a94b468576478d03998b56d0a326ae3fb8f4669228e6917b3bd489c219ae80a89ee91c66143338ac5d4365bc5601a06589c3038aea1e2d4ceff8f88f1a87f2e41f0e23b7af406ed6172c7232d8b65a466e007157ceabeb332ed9d8d1cbcfdb12831591483e0d4a54d20a2245f1f016c26b451f6f392ac9f4d8d07d401bbf75e9dce5935dc6c2e073d01496e9a4fbddcab77fab997d85333dd25c95611c94f4e881ae939855f0facabb6f59f24eadd0fd6cf3a3d1700ec70d9a8a957da3b1e9b60cabb7220501042b9722db996da6bfbdff168336edc2af1425b294fab1a824ac375813e52d8a1de78217935717c0fe3415c23419e0770517b532e0d2783e4a0b027fa9fc16cd96f1029623b48319c1c4c40098412c3183ff8c2f180201906dd0c208f0001e8a0fe87e38b32077f1dea81b1e40eed7fcf761672ecb8a6d74059fc52d6d1cd2c41b1e8982f844cacce14af18213f9bfce58636100f4d6112c1eadc8ee4e03719b10242d7b39ba85407eaf2f6c759242f11a70c35ef409404a8f89009f9295008677541d257ad733a4161fe00a3a9a2cf3dfc4f28de793f9142043c2d8a9cc09217b1de10466d5036feb2b8d2f4a659617da420e3cb16f332ecb0e17083edeb54a1640ac9b9165d7a06473b8978151e6d02accfadb83c6f9d78dce3ca0b25925268b2948915a547e5713fe9b4c735a4dfc82187fa7106c37e3e1256d6074e3206e619a1b8756941157dfcfa3ec8883535c188d7dbdced0c06fdb96d3284d72e5b7e7839db60be8f91f62960e7114ad0024ee180b9cadf021e9ecaf7725d74ff41974a435b297569516a33930bd0fc37b4738397b265c02f903a45eaf6fb4befc196a3ac344ed12b1eca47c74e648fea09cd7f0705e18b52fcc736b4354243a26108c20b66cfef13c961b82c4e8e9d0791201b479b622de6d6e6e1bfb0a94da634e39718ba1d28d1ab30e828d5e2635e1d8b9afbaa33ae55b9c8834aa28ea5f23b53f0755d2ac23f35edf41826f2d7ba4d7cd0a2a11eda5f16b970e787bba15be463e6b4a14e305a0e70c7389e0d1878b758a821ff36e45be6f05a84ccfaa3c9d0c2c0b5403538f98a9f3801270845e0115315cd45b4aafd661f96d7ee24e9c2e42cddff487317351d9a50aff427e0f298f151ffc4d0bf939f60d2f6f12a340d8b53e9cbf9f2e4a137ee6229431e89d10cc8c868e65491373f586d906e26fa847441c4a958adea876859af9f58447c625bb47c6955ca779311145f6cf2d90b70b5b006f53b41c132abddceaef2230a3f57b157fc78678aa13d7c3297ad4920a4dd113fbb93f257f3b012169662f0c23d4bbb66176b38880f3902b1bc99900cdb21a691fee5c312987f898b529db4d616888f8acce2f26bc6df75b3be9ba7142415c08268567b2a4f8661fcac38c2abfe07a8858002a65d1ec7d42b5fc7feec6667c28f83c9c20010d08f6bf78b9e8ece1024279d588bc7de2e5537f8af2ec4f059977092d56ad506e06c63609fc200b30b5e2fc0578ab61a5183722330aa41a4cee4da2ab9890698cba7929f7e31d43f6609b3d763005358004c3fa034ae43615a111e957237a0f82ddcfc13e27931cde677267c5539e94b2a6291cb7d6f35917128bfeec66827aa7d44711deea3e109ff963fa03bb1688067db4f8bd84772bbc15f32021adba61f8b1d1a4666ced196d82f3aa4b39b2c1ddba0347bfa597190050b216c94c2b1b3df1b5c6361562ca7746002bcc4da5b58486bce6ffe39e1c0447f03a3209fcec0bf1074c2d244da11d0c5d321363d440408c2a10b01de91f549e0acf921e98bf5ab2c31fe3f8bfc54ca3c75b5b344806f8d207922794248f07622572f1b4b0f63102b03b30b0ceb01b283f45b26f6117f22642bab68c33a69a787041665db50fcfb597a12c96c50f9fc0f769d2699fed4d9e0af3d231cb973846d4e995ccb67cd5d43f53ae43eb67aea68dca0ff6f7ec8730097a55e0feea4eca9ef40a1c1dadfa62b6d511739f6dfd9106dc561edd4eb9c1d52f014feba527590696a7f9119ed2266f629c9e9e09c9d450fb68138e789ada0d4249b6a86de4aaf769ebc94169d96d109040cb7e89a04566d10e0cd55c5bf24e91b582f311a39710e3d7971d62841c8c7bf2150fffb271069553686e4588ea5a98580651e7b1e81f5358c926e3c44dea9c5734d5ec7e982fb2e0a4043a25819e7899a32b911dcb69a148b626e0d1223d0cfa8ee19fefb322781af42be079d062bee5319ac76cff54a8830578d3221d8830206b79b26ddf62c6fa39841f213583e162073c5fb1ede957a0a62720502c23e141bc527c32f693b1a2344ba3e8e4bf8acec40627ce6db4b6f298ae09167146cc7f77c9f9f9a6290d415d4133881166c597a0816d625e620b6ee7bb275e7894941d9cc030879ad0442b6577e40d8b65ae76d5e1db4f2c028b5c973758c3db8dfc016ee48a3738c0904381dada9002d5bcdd83cbbf03411d03d1b7f306c2d0a55654e1630bfa37cda2404f53028a26e63541f28d66390e1023d929cbbdea93f66cd4bacd3ebb37592dbcd46e5dca8f1f526daf610c6f971dfb04f224ad3d7c393cce56e794e1fc74f379f15b7762fd2e3ece064da968dc1fa97d07e0f8bc641c30065f5077520e6f5d63913d1f157c1b5b217a6a8d3d2b8f04b2e574f2c6a460078eef896de2c23c30f87670647c0ac86de7f1828b9394e4856fe48a17d367a6c8e9a14ccc878d91fd5a70e2ed7c1fbbc5591106ed0d9587cd87eefb7de500404e2f3598334550a56b3e308ae94cd37ddc7b0cf885562f01bd995baae499e445fa17e744e75b8458d456b621a8df6e26c5036f3b529aa8f88a62a963b93ea6a258b5b7296cebf118f76acb1bc007cee61b348d84a308ce84a55ee60dfa175fc5b39d886cc8a5d68becb1f0f3885dfadbaaa6615ccabfe8e997ac28888457345c95b300092382d9bd0822ab4f47db893016a889b841c582586cb3f5fdcf70c1fc30c7f9089624f3185347d73a8d0ab457a4bdbce499fcb29254d63b9ae94369ef23ef9ebf01113ef8ffa42714f20fb59d67a361b96a5eca4a0e34a9f2a62518a6a5c4ceae45aa281baa07796500aae3da079f037bec217332298facd43201dd05f8b66802d6ddd8a6edda2166e29f1e644959442659c22f2e836e4bfeab16df15b6e209d0916e863da39373ece65cc1623eb10ba534e6392bf19becfa19f0805298ecc02b66324bfce7fb8442c9974f8859dc8a2efa06b488f3338bb24a556dec3c7ff9739f00a31d1038f41527181e9ded8d5239567c4a45b33a3691272671d4536b169bcd417114a9e9bff13bf4c4e2c66bbab32756c618abd52259f608e16354471a99d90eaf770ae1fd26ddaaa344ab6002fb350197979ff936e5e78df27d6f67ecd239bd1e99bb948f06fc3ee69108b2cf0fce0d56cbaee8bfa4cf6496886de788393abedb99b54513bde8e55b16b289a2136701cee6f07becefb8044a9c677de271fee5daaf46bfacd80c981dcc31db9fafe887fa6837ebf31b8fad386c487e867e244c2d04ddb2714b25b6c4ca338e88aff230bd1e179c80454088f30886f243f6105d448f846effe8b7cd33f3629a2ee4449ca1161ed88768a5ee46ee6d257cf5dfac410474ec7d879beb9ca9dfe56e0e7a3b411fe6a9116a67c05574169e87e868a33a08a03895f6fdf09e7e0b350ed412eac932314a8ae9b72d1889adeb2ab34c3035aa77a753bf348d447ead04ea4e14752a94a57a68df5de93fbb15be4b22c58c32a0644580085293cdee88b3bbf1d889711b9ea40ff6eac345730a92b02fe60e291ff03aa71c2ebcc169e990de14ae74ccac3753fc1482eb17787e60568c7ba773625a2926f039a0e5787ed50c1b9cf358c4b31b7dd091a2e2c06f90a318e1a60fe8d5e5c55795d80d6fb3262fc7bbde84b6d5d3c6091f38b2fa583a00dec2d3a70a4b8587a6b3e9826753123e2b3c195303afbc8897b8b545e17d1d1f998ca30f7f01ccf682640e055520b7735eb20471bee99a291f04a5054f8d491d205ebecf087da8ecf05bca0dc63d5961645dfce7265d2f67dbe4463dfbd0d35243839e5c8dd75c5bd17b91675eb10e9c4b3d4c8370def66c6ba83e597c937feab4efdea50f5c763617c8c9d4f6ebef4954b5676f1a6662c5cd12e86cbce026ce484f049a1a3af09129d99d36af68684ce2aa244d254f61567268ab1e1f4cb7174830f346d8027d3ccafd4e15ee7e767d23861395a66414966373521af0f9a27b3672aed8aaf820c8eda8a99fdf78ee34026a4c3bdbe193561d75f96f774ada2c0f8797e14e083711f8b2f533dd073a1ae4d3f153165af3466f35b359f42153780ace977605ef0b3c03a3c779fd43d784f35a9d92c69a06127b1b4cd1deea1a7ed14d3a3cc3b939f1246efe8bfecd9540be7b6b75ba7f8c9802df1e985d23388d247871df73a8df13539f527a7359ebdcd028b4e31e13eb6454add821907ab86798d9ccacf90473422e8546f352433aaba65327dec0eda4b86f3418be28c0ee39b49cb2a0c68f1993fef10fd204d32ee2668ced6406775f58a513b537d461f859c764f44be133a076a66deb35d2dedd8567575de1a9b90a2c380ca21a5ef324e4aea94eb9b9d349f6d04be9cba80d711de8a2f2d4530be25cda5cc896c0854c9e203ec671bff8cc53d356f114a16e156040dc8c97412ba20d8022ca69c5f8cf570b77cfd18c5bda5314e053864e867e7426b8dda85e38b8ffe1b1505c611595f42d290cae1e99fa48d80dd55de42e81ad97c68b3405df6263aa15c05003b98b7f65c1ead3bb7f0fc4f59727584136ec6525880369e14d8a6d058ec2d6bcf91006ac68317a319ce4de6737024625766e6339f15920c2e16d479bc0a4fcf3b43d223435be4dae95720e03125cb0182f5b1ba3268ad71dfe7881e61934ec7db0f2897c63856c7ccdba68abb5966e946dcdcc6603f8623db7467fcb5719e7b13491232d26ed38199cf00a7a1a66847cb1c944857733e7e0b0c679e3c46abaf626d9e5562aa92a18000c1a013bd68df22fc3d582cae3076eeb5a2eb124a76a58fda6ec0352fa3bf226cf2169e5e04668c795315671037a4bccdb8ee77d0048d09afbf0413a5787fa1033b7b83d2de234dfcc0a149fa45a726beabf7970b80b84716e43e09ceea4ab6a33dd0bbd4c339dcdc60518c3c2a7a4536397d004646f5e6d959daa4ba5978444dd33a5844c38fcd6e9a6e763e3d61d630063a4b4434b224bc24c87cc5024308773fa2bfd6f2c2cb71e272fad31533c841ebd8136943c0e350a0c0355eb70fb137b0cd55897045b6b346b16ed7966b68b12bd6f2b263f371efdb8d191c62f70cbf5f9c0c3ba04cd6b57743025adf67f68ce48f19b81a8cc980128b3593f6274db10014cc177f47f96300161401df5565f85f403948795d5984816b09ea1135968e61619030d67a502b3556558603eb7b7f95d7652b122079c3a9484e06ebc6a12fd8438cdf83c57301e017b2827b9e1d45df89ffd5acd1c56382aec9d242114d0a1dab3b3323d01db0ca977bb577d3b33b6f8fded24d71b5e6070593be9ac12c57978981442ec6012da69c509bd7e67b4a1b8002fd0247e7ae596e0c0d7e0ae23ab08c19df62bb8a45e11274db3944818ea3e97bff63c1d3e876ab54c70100b44059ea250697b9254e508ba5374ebe7e7723e22983eabfe43e3e2fdb9972b013ab4a89620c30727f52321b5d759340394a2096260c8690bbfc1e9b7a7eaec55a9d808e4990dcfbf4fe80490dbc68ee8fb4f77b824cf64e6d51446f2b5094396f09b9fda8cf4a078aab6fddc2e824844dce4a2714a86444719d30c97c558044e7750b96610ca14e44d5ef3f6a462d21c5f8385fdeee18d6a0f6a536688cc81e91a7ae791589379ca28c4afde3f7ce4a1e2d19353ef38a778569c48d30cd73ac8dec141902abf5d8242d0a64955a504d25b43ed90a66a76792f10d0715415049f1e3aa35921bd3a5f0450fa34390fb037d59d586e065d68b7ba7194525393298b1baedebc8301579df4d8c93f2156ec7bea93b6477d9b322e110da60553ac451c126a82d3a6eb09b13c29e9d0f69c656fb0b6b7c30a9c17ae6d7766798abe55a1e8ca22a55c7f4a470cbdd71a1887345458e0edd7cb46e32e9287d5ca462280f4fe5ad456530fa96a5f07770f528c5f2ee2cd5818bd4f499a9c0ee377da7223fbcf4be90008d2d65aa43a375b8ad1fb9d41385a1e5a72e065e643e340854067816d4ab04974234bae84f92dd7dca60548041c2be3a2b9e385bd1174b8f547c3659baabb54ca4950725beabda662388ac3ed49bc67250862d4382ed1dcf980d96c5b7d69a4920e0c82852216e132eabd58e0e06b27b463301c36823a3f460f405f4cab6ba43ec5b0492977298d14b17219148cae29e7bbc9212ccb0d778966ef1ff4e66a00d6b3a07b8145eec1a4cdcf0aa6899896c64b0db2aaa1e1ecbc6e0b6f7643efb875afbd6694e3254494b754e5237f0842d58195909e3b25ee684ecbe39b9dcde1b24c72de0988d7dc52fd8e88dc9f6446fed74e2bed3c74a8498c482b483a0b759cd9a8d85f168da7ae0765843bea74ec1ed533f39d8b54e16ae481464ecc5a8ca12343c1755b5f90dcaae5708ef6225416ba92aed8a4ab047c766e62b74f7f884aab61d53d640f9efd486cba015de27a31c95ba1755c6baf5826244a8cd7c1a21a9b269da83893b692a1c294cd8325727cd8ed5a3dd14467c499d940e2a80363476484fc4753f760c231e8a69270cd9ea1f94f5e1894e01e448d8478dfb46fa18de4c3287d1589362f5f89f26ac1cb998cd6f839a386d3ae07fa5550dc54d9f6a51535615ab448321de334c10188d801c31e94c173036ccda2736a87602e7e7059fccfd25a5f3d9d257985bc06dff52f66cf44ba46dc7ece447eaf0c21dc9a2886483e97c7af72242a1033686b722dad85b998eb8f827af8a3d6d80bb6c219862805b62c6eaf62d89c21649275fb84fe5eeeda57e4b6c51934419b82df6e3bc5726be5fa0df6d46a390561cdb715893bee71c3f18bdb5fa24e8b02638605313ae8ef7de75c98df2d6e313cf0fb48858b7d65ee66770b09bb7923c7e6ab3b1ad0cb8cd6ee0334dc0adf4cd8f441a0ab76a85fa93ed848b3ad550b21739f58d578ea0cb3078d8ccca325fd2f6e90b784a9180fd79a91ed16182eaf4b2595720c95c79117593c0b11f0e43c24ab885137ccae72e6222df1fc20c882dc2a9ba2606bf68dd46fc0f5d6821a5ac440c7b3a0ddf1285300833c132f24ee6b33003c339b52795fcf3613d8ccaa227a6e047a9fc6b3d9c7ff2213073e88ce9a96f36acc7efc630e79b932e4767782e8d93ebd0a66477d6817f6e26a6179ebc8a47494dc693c4bd54bbf212f3a78977ea744f63240c88e5ab7999b0964fb9531f260832ba79bad019c91df0cb79b70e64f2b49acaa3f45fd1eec1aa04ae95700958ca9da809a61bc420cc73f7712adc15755e7641f530f44fea9ec5437aaafef0a93f9112d5b5fca630b3df59b0c4bdf811734383c69c93b6bb959994295a297631affe4ffc277a3ffdf04030c3ac1b80af6b48ba5550739a27558a842862fa468d4bd4ac9926dea38649d900a3e749537d32f4e33131d0f9b375ea5b71810f7ff70c5baf97f6b8b88b5bd5eaaa446dfd60163c6dd3539971ec11feef63098caa3e892883c2c1365a2799ff488f02f6046c4bdd4970f8d43e74e032f1d4dd4c1dfe36eb7c133c3528d65aa6123e95ef5968ade3a0e3dc843af100fdca64f51fc24bd3128a0ecf91dc84e2174da9b5111ec3dde0a8f24a9d34ffae8c21c287de4b17ff7b5f751800766e52a6520f3d43341366d816e1fa06fd5fde479b9c4bd13b25aca35c1bf9fc21461fc2a74d23cfc63ed1178e0b6e5e9f277ee568dd660a1068b7bc85a33c2d274fdde328e5664bc92f12dd1234ddc4cb277932acc7ebd1ce90870172797734867c57a78090973cc65bd614cc6a7b55bbfe5e787e27ef5d20482c6c0ef3aad17842c83dd49f92831847735d0fa2247fa1116b3f7dc203a96798e5545ebbdd3b1c7f13e0986ff3d2c32683263a605210ff2bc743664f78bd52c18bc0011a4ea1f32e9b17cd13b8c7371d408a046fb2a14f7d0e7fd1a360ec9fef837533273b85f3cf30a84df4430122afcf25ec7ad86af34eec23ed82e0ebc91cba56005d0fa978cbdfcda5a318081860962f068fbdbb35b6c84fb5d8e69b70e4866341d37fd21f384c274dc8f7ce850233b9a39eef6566b3071cd5591da604d3bcfac85abbd52f878fa9035962c024499a0a0555b5d7c0c9309b2bdbe7c6cef0fd82c96a6ef27282abe3fced9c1925709b47c9bbf2f505d9a86f1aea66940e07954eab399de2d41578f4a2942d291e397f2229ee16c0c8a6b956538b2167067b444516f8167f3b7db6e7dbbe412807c8ce39d73862288bd5b262ae2fe183a5a0ef403e7f33123adf039d92601b0073701cf4ead6d11f4982f603b838ed6f7f3f280fadf749e5b3fe7c7e40039323e634f4d2881122e0ecb91c6755aeef90027d4388b20e4c8ad304fb3a9a68f05583318981cb29a7f72df058d3a8b440425001aeaf05972ee5bfcdf2c2696c5f801b88403d4d0cdc6e93ff7782e8f7da96d8efb0d04e6a1e63e6f12d4b2e648d15523bedf62e5416dda6b781c035ed4069d886553598a7cfa104295d252d408cb45f72a44c021b810740d00e84c2ce1334218b401ed3dc427625cc4c130cb83e59c1be97849bd5e5f06d96a22b68a2f9cbf4fa53cfac1cb98187dda9aeb262fa0813f54311f2e664936e865ef286a28a97925338627ad32c80d2c88b3000a55580c9b64aef27b044fe432e63fe6ec192e339a3ef4a1129a7a8c826c1a075b4b5d2cbc5e623405b31f1e05ed701d2456505bac2bdc3c41a3cd31dda97c67380a272087f7934245bd61469e37bd49ae9cd250da5a6bd116a4f4c133fd459015aebc000f1bd1e1d679bf545ee2c8456757a88a141715c57af6016bd3b74bae611fc297aed165e749fd7cc1c272919041ae89cc5a8b8e6eaec4d9886fe0606f41ee21f60ce679fbdf174059e91ca9a9cef789f6a9d0f1c1d986eea4d77161a8e3c5f3913428629ceebfeccd6d4f85e3ce317d460ebade05dffd97a0c83548984abffcac253a760e050795e61963389355cb721ed331ff1c33294b9a75bf66245f6c3ea15ad90e8b05396c569e0de43dcc702a847b4b5da0208d07114f01d15a6a6d5cdc451f0815b80c0f7d49849f949fda45376e4b93f26454d4fd52de2ae3d4d7c11bb710d29bb33cd278d85ab270e6f9f3e48aa9be5c767e065f6c30a633d96d6167ce9155697b8d61931cd82446cfdce249f7dcce1711e62a6a8be84be17f5384150e206894f8b7f4a1a04fbc887ca8ef22bb08fcace0c7f4c7d3dc7637abfce19f4d4acbeb90ff50c813b79186339ebd98515b54d4fcef757ce046098280beb79e4864de69f64d6e643582f774225a5fde8c2967eee8888df146b94d17c46bf0bc1e91e619303c8e310ff39c708090ef0b66e527ecf217f323e9bc48ae5ceb19140892e78be2725c30e8c70ae14ad30c28e9ab4aec12e6a21f5f6456d8c9e6502a80978be32ac1c4c7ad09e58156e1dd00f4b0f41c65c31a1da7eab2a436898ea8da2b535fdba4e708a02c73483f49dcd48b2c31949c6eaeeb066180863a1eab9762e8aa028431701d89297cb35b3121ec0742cd402a5169aa8cdf6e04089eb6ee8fed211c2bf8219c74780385dd7430adcf16f70c977f2668fe5755ec8b6b345255d0c5c48af5f0629a93fd2402ba5996e3444cc313d3b8953190e08003b3607294bf8349f3a414adfbd1a33d8dcb6f5caad3b4db85937c19e2f6f09d849a89b9bb03e95b5ade128ae458aee2273dfca7d87fe0a3379d9f62fee0d9d4995dba47aefd2c2029981f9a5860ed500df462b62ea59598ac4259506ade06157619e5a930f088af72a4d08fdb73aba19afa47889cf538afdd328147334963f5c5c2d38d721cd52b68091e6e5cce969ec6fb0c60bc863c62bd573ddb1e32379d8396e894687f852ef8123f8ac21c3a7237adc2655a1d4a93ae574c5e303a6270dda78f48422bf99a9f775d74be670331f26b6f562b1e44e3b22df10e4abd55ced8fe19dc4d2324fea7c17d8c062e4c783d4731a0b9a9c6c01873bfd320925c7a2436bb309d3ddff1e605b3c1a72c63d4479fce8170af8fd483c7a8a810a09902b2d004e37acf4b979c2805f180da4a522fce3df4a40c582a0a00bda615bd5b552d414c6185b5be0312884ecfbae8cb4d030af5858c7e251cbf3cfe62de60a5ea4a43acc9038855122b7a258abb5467a4860fd88a15f73b6e620ae4946e635a2ccc454758790f30c0515cd19383ef3a1ec991a51d5cf0b151c7721c44e9b19f4cd4018d614f9075612a8ca23f3ea5766a85b7519bb81fc85728791806a9eb0c8ca61d1bb3bd2bd6295ef7bf37d38da8122e0e5fb554928953e936294cd60108d8378ee024d8551558418ed4006c1b33d723d918ccad17ef7d4652e0a6f7321e324e752aba585e95650ac84b5be994ff4077282e34ac3dc605c39d8a606464877813e9732e001103a2b4fdeb7d24e21f34118b56a863f1b788b360dbaf5ebb96fd0fb1c54f93083aeb40d9b6ca367e90df23953bbe151c8a9a255849ab4821c86b22114549212d5e40835bde240c62b4a816792f0fc3873a735e3a13aad5bfaf83cd5bc6f3b630617005b54769c94787ded462ad09a999916082cdbb5b73fa0ebcd135b1a1e636d9d5c5c847fc539e9325df2c5faf801cec44a4de02d0e305c308b2c6796951ee06b83679b6aee5542c20f371ca1b230c9cf09822b01a77db1258a4a86573e47b8132d12da2b998e52ca2f5b9a1bc0c6da244ef352cdf40cb9d44017c1b93d3209b52a1c4f22109db0afcd62afe1e3f6c6fb4ace06f9bfe2500410d762e989f5acf342ed5aa8d1f528d0f8b9633dc2bdea7920461be27110a1fa93c1ae5ba99ddfe1618a49af48b2d1bc5b61f91a660b389cffb630439fb4c08cdf417543a5a9117793dbe8e2e5b4b0118043b6bcc7d94d8cbdf1d024d64a3e2a549341f688e015922ab364a2a399838c24824ff784ae27ad3723b60ffcb0fe227d9192a49bf99380be6ef6e3e5114b618fabc7038f7f3c3f4ed21c02db670c20e2a2f58582d8601a4acef12be4aaef37433fd26447591753f5584e6787f1e63e789dbf38a259d5a93c8f77564c2e98b1300b621a2fcb7f866f51020b69a0d429abbfb89bc9a20fda495e3959985e54971a1e5376d54e99310dc6a753b2db9c8d109d7687bd5e734a38e5d14c9cbe2be8373c9c1346d07a8b4dffc8396a7b2090e02b1e5ea14f1da3883669d57952771754c2ac84e1f63863848454c306969ca6ee107e4110db80d6795587f904c67b5fc7052fd1a431603508fe7ec13caa78df17bed8fe86879188b0be6423276104e1dddfe8e14c732c1fbddfd694bec9d51d25f773691555b6e9b82d5b99d29850afef415c700d6501c48544888b0dfa682b3ae6ad570b0ce93bb996d597bb739b5b19614e6bfce0fdfadb8e3e26e7bb8166f6aa133cc494d6aa6608008d13ada6212bcef751a0eeb6459b2f61f17d854b57b0757cd07b81fd4e75a130ba0a25715f3299a539ea03ab17b48767a77ad26441505eec93c9668a2c323bf1dd77ffada66e6c9f7e0b6f098be9e0bf0b917c30aa7f72ef4407eb641c9c458e2f1776d1b4f60a95f4b3a549824dc046fd3e90dcf5ffe9dabdcc543f33fbe68737b003764856c3d1cb841fe1e46fa5e4769d2583fd4386e0a8e83b3c1a7230696a5dbee7c7e52ccdbe3abd1d0f0a6f511f907fcceabe5a6e5478d47ce144a458f3eb921725955a3e001d6b8ba189aced9bad92d85f8153cc91de20359a00f3007abc93b9666bffba95ad5d0fe7e26f45a27b3249713e7206afb8d2bb3b933ce860194dc452cccf5b23fbc29d9f6ce900d3712b95a735600039b1292d53cf832afb20411ebf047c98d9a3d157eb576358b7d5723f9628ff46fff241a77415d734b3e781ee6927c142bd3ea67574c2c024eae5cc661528e047a1118a4599a303f51610b9c52dea310a2bf3a23f1520fa53ba7a28c00d3189b4c98f923724c1ed473ebcc583714c6c06f930c9006439301c2ab33be4869b17550791d16602a507bbe9e68e01af0718fec73e550e90e7bb6bbf18661f2d2e0371eea367b39e3c7294980383fe780dccd1b286180e12568860c6818a314f01be6f9f75ae2469b6e56a9c04669dad2094d2c1033fc87c1ca9f6b22e33ef730dd45c97bd1ce54ceedf341082a3ff79768da5b9d487c4369383128de8b95ae9a634f60fcd095305fc6325766c48fcd334ade8eff11e27edc1c91f774cc5e85f1691df536be67a5bd12a69c406f6476ce9bfc83d32021e54e0fbbfc6194fc7ab49e0a933af410fb1d68d7e87001b5f2072b5ca8fc06980f474a5ddffdfd988bf1800c5bb9988d47a45122e3d2b2a400ee375f196489ea98016f5442e399b6a006a6f9cf70b7e4725ff8f6696f28bfe7511c7da87be651864a2c6467ce00b2e239ee2cb1602468382de759325ae21fccce255d3244dc4f09f0c4b508cd301c06b6e2eaf00d061b9d3fe7d33da68b4aa49e04a0a3bd9a3ab60a9943b91d8dfa813ddb5018f279dd1f228353f41c90fa4c95611a30a9e95afd168b233bf3d92bb6bd50237ede00ca19c57631a2779ceb69abd0a41044d15a006b90de9e78c00860d43df11c6b921781800b04015bd00de3f529939de7d3ee1fa5c2e5dca89baa70b905c220f44d55ce90e2af0bb20e1c42380f28d0ce5b60fb93eb45db6e648ace39734e58083143e9074bf478bafecc69d6dd9549b6c1db570c9a2020cff310e9f6efd85df3073d2cf8dcfc1e32b828f97a65826d74677fe3808edccfb4c7374bc39c528c943f5565d006da6e04ae8f73e2d759270071be5519834de507062ab58d09bbc05bbee621fc29eacbf634a17981127523e2c9e36f5d52c93addb57d3e26be5df559748aaf38d2f8a7238fc996b1dcf92ccf7d5d07db3991978f1e0c1adb346c4580e91eb41e2f3d3341bfeacbcdd7e93a27d698c5cb0348b81589e66c7b568e8593f6d358c0f09b373dce71c9e098e459e9445b6373450fabe4902783de26576c2c271f01040b6ac1356157f1510326b0bb9f9377f1a52eba610ff456eab5dbb1c66d07a694a57a185c2783f6f41a338d5380eb6a7c7b612a8b1ccb3588a662d6d6d0cb9123e81bcf8e1c59f6ec4bf4ad88c4b4820357f1a06bbe406be8b6ab5b98c9a91b08b7ca1add62c8c6eb8e8b08ab39ceb17f859306b14516408bc9cfe532cc70995c60cdad6af574f21de758e3fdad6bb8b0073b43b6626cd999bb84f017648775ec6c9efb25798d8529bf84d105487c25aab724c0f5c116b163d700135b49e3718501e10ef1554b111327cc0f8d729714d904e34747b665704840c6841371ddaba712daac19d8ffbda1282e22c1d9010c3cdd2b35db9d371c4d2b846378a1fc800fd2aa1ec669b093edbb358679b18e6185d60dc566ad0fec56fb3a2aee0b34fccfefdcd4deb595a83b80df9b4aca97f9e2c9eae67be2daf77dcfe96f3146755d5afa2b85635cf4e2f57c9383f6a7930a263cf257309e141280a5e890b0efbade68dcf27e3ea1bb26913f0b6ee6e56259cd5a8b8ca68c746cf281306b7b45d622c590aa269f4348d4e303279cfb500d481f9691cc4f162a16ae30934143ea5d8ea8c6582d685858a3e0c5fc8734773b2743c266b51c66460bf6c37ff091cd59aad37bfd8345f8a4773541fd0fdd5298074217c274f9a77cb917880af398d1fbf1247f30146ab0a70f284a95a3b97484a279e67a3cfad29ec6c22223da2a30ec4005ee1fe716ffa28b88568862dc1d7283f21159ba95a637bf60551bda41030032b3d78e0597bcd1893e9935aaec86d4abe5c165bdb60763c82789285036dfeaf2ba101b199c51c9dec4841b06c25e3b0d287f71c272ee295e5b137ce72efd49c1c4f7ce31cfeffb78dfa4a1f093c97755b9f32f7005626aadcdb9a554f51fe1457f2ed42b4932aaddb1da462350bbabc8eaa0608f19d59f0e51427c68fff7d8edc6dcdc103581b89cf7606a0b31d4b4a40f23f0ccf4333978e3de935f27e993d508b5ac023c587887649091efbc977b4a493f2489554cdb3ca1da626d4f4cd72fe8cc37f7caa340f7208d061406ded28b9a03e6ec91f11b2f7df9cfcfba270d891ff3584b2b8e7f698ebd3530eaedcadee9dfac33aae961196043734edc8ada9de31012d6fd639a899b03f957f17bb4d5a1e7c3253b936873da3822df304ee44181b7ced3e825723fae77f3cb784c05ed29bf238a7036d17e62b395d252a358c92306743c4feb7df7a4ae36f2bf81e5a8db758caf5c0dd9a07df6d00b9afe948922e0b298d2e7af5edf000a9128fe4d6b3bcfed99f5de8ebf1f450c1cb460d1f7c04b4e838ca4609244cc1f45995995361d84b3ee4f5e5128d684e713af2022f7d86aa43ba0003ec12437a400667116c648db186cb9e7cb864cb874ddda6fe9560ba9e25b6cca60c6e1637c80efb6cd34c7180103e876a09067d848a4bc74cc3b7ab2a93519610f5acfff95625aecfb29c27d9005e42e8223b1429e2b295d814c3d5592eb5a9be2fcab7500d2f23b5d51795fbfa519e56a929e41e1d7dd3377ac9951630fe3f37117b54344dfaa3289f1540af8830425cbaeac97e69b5db4e1c6ce3816df5c3ac3be981689846228e432d48949e3e411d3223c30b6294141a4613c29a8e5e120f8e46ea79eab4f4d278ce6dbeff83a9fbba5a0cffacf78e77cb2bd6fa8560345d61a28e0db4bdebda592d79279656366fef5b9222af7de699c1b6ad15c915dda61c0c7e46e5cbbf73987b00cc2b1b0e2571093d38eeb857bf076451d62da4ae6f7004b2c6f1ee038d3c2f7bc16ad90e314661d3a6bd73ff5beb7a5c90c3bda8951dabfb14c854d23ffb07c406a50944090f4c5f6ebb7ea3231ddcbac2564eb67994b4193f2e70728d1f0c78eb007a3353375263924d993ee28388089b9a12c39eec5d2381beb04d41db1a3bb4540656a2e41ea39cacfd5a7774bedbf24d633fa8975bce325182f9d4c6b0d6ab0db900bad094b13fc031a695cb6cb74d217d678b456010bee4080aa935546cb6479011246fe65b3b9c6cd0c2fb78e9d2731ce169cd6447fdbe9ba70779bdbb6f89411704e76a421ae4e65553151e71690b7c66f58a6e4b8f2f893c1c77885b2187a524cd997bdf82f159354f8b5714a44042cb1264f7f334716440b875489078ce7654baaaff84894673a1be5f0a70d3310a97b252b221f876f1b803b66c1ad220274dc8dce8d531b762598cb158467a4004a3cad9c64471876e18e4a14eeabdce59903591b19d8eb710b49116c43ac9ec1d154151150105270be2bccff8df59f67c2fa7ab8ac4fd3d0b9cd110434c3171eac441d56f7401f574b14e45f19b4c6c25b513b0029f625018516cf76c6ce12b1cf70a6c4d43d0d4a00ed83a4c20308c686d0a82016d9d1bfe1770b852d8d4453b610ea007a3eea4bbeecc48b60bf6f04f3c1764eefb46d0e830dcc50d3d4512839db6529a01b3c38661f8fb10b08fac38cbf5371d4bc01bc4dfce76a14fb4efa37d251f6f49551441878bc286e44d0f5da699038afb33fc71c22dad1e9225d16674f9a6173938999ec3b295c33d2530dc73a55167dcdd69d9633d8562516c7aa73e909368d1f94f1342832b9224257585efd41c0b097acb760c8d24de96b089f276f4f3720886295736197d96fb8abc685bd56a698334eec0aa3b4b11ee1f38b3dcf4503ea939fb4b96702e32f81bec086e50e1d7b70c965fd8d3783b7706239eaeff1612bd8afb72231f5351d69472eca3371e95f46eaa04c9b43c5af19d4b53ab75ed7666fe8f471289f367b886ac31c3f11dd396c98469bdc70787dc52eca893b22be3ee612a9ae58aadcff490f2d72f72571af18b2e20b2cfc11887850539443d9926a0c8068343dd8638c0a2f84ca2af5e111cdfc093181cce795743fc941a066100ecb3208e99ce6e99dd7f5cb445907a4714af63977aaacf6717431daac4c4d382a41c06123246fca7b9162ac0380bfe6898a55833d7ff9a255fde342cd4777e890a649bc64afe01b80b03c1dcd9fa61d84aa938acbab42d18c4a3ce7504743b62503cb000eac294bc4d67a6248a78f7e93cd359a98adfd19ad8941de9351d1d76cdb598215af3e6e86d29d60e156ebd44789e804a8ec623a4bed45fb52cb2b624316e6e6529c33fb7d524b9d342ffe674d495ffcc907f4a8c42ff2b4e79d1cb4d2cacb8941e5f5163c10d620352df53197b06cbe77a6d8a90fe627afaa277b894906cff70c1d9691fdc547451a21f0df5812c4872bb6e1571b8aeaa29d4a035032a4720efb5349b61918f0e755ab60a4948d1f12b162a6236e27a854f4da5ed5de8e487259adbbf02a2c610cb864c8c3511885969b8d52deed531d414083147988e0ccd9ddb827b5490a0032adf7b22502dcb57782f6277e7307fd7cfd451cdc1e57ccc8edfad010fe92d7f83589c097524350013778bfca5fa6cfd263d95bf65b34bc1c75eddb27d706d4f71e1c24bfd7ed98ba33694d62a61d2582bfddaae90c88a7d11cf443bcb165a6cbc357ddd3c6a1886950db0b5244341ad2d8bf2960a72cdee5e14248cfbe3f7933e99a1fc94a4ee1cb8f97d498d9c64df1623afb22e14938d77c6edb5bd56e93e25b3a0b7459f59d2c3c52070f8cc5e11bd88231e220ec657b0d8d6be606b93e0fc3352ed762c24ac4aad0a6549d90c4eb67298550dcca6a92dcd5c4198be9680bd7e4c51ffdffe479a5f99d5a98a6275cf9fa91a97bcabcb5f0a7b8d88d0c4a47242f40cb0b5ca3de1c49724c398f474628fe5eb1437f4a4bda0e2d1acd582be1887818561790531f0acad34e0852eff2094e04bbc28494c4bd19416c3c07415daf0dd2c153b6d11f6f7d46baaeb25acfbc593e6d337df2e4f31b34f8d45ce7232c5f09ca7d016a24d98f9e9542720753455c9cf7d0e759348b6b01e8145660742ebb7e3bfc3e0576c6e3d1b716e9a6a56b2d6577111fcfee8f0ae4b1b6b77b9776a64ac50957df6f23cdb40b495ac48d51fc66f2f74ae5bbeb3904d27b045aa9586f4ac6c089a1721d30fbe58afcd33f3a6921794b2632fd45a688bf88c474f8389775ff90621f783fa00929fbc68a88dea416a8d5f89b96773955c71a416c33de707e77ffe0fe83f72e85c5f6adf7ab935120989389d9bc9b24409a711b109fc8009760ed1d48e0335cb93a7344e851071a546b4404563923c107daed0f27c2ff25d08b3b9942145529977c61e2d1a2dac0c15d168f7b78a219b3c7d933a5a8b15ce83dd4b0b14ffedacefbb075af50093e4d851bad6e515618b59e8af7a6c2aaeff865fe8440d5aaeaf2e25f02604f20ea241327830f044f6a0fd3a1405bc48831ba0fc1f8557ad86cbb462d806ab8743b5e2f7098461a4ad0b6380b016c67aff510f5092f545d948e617b0ce89361f64c7e91aa0f526bc90503e76cd33d9627c6a4e5d180deec4973e9d33125de0b4c69b09b71df0e23b63ce4e386541240fb7bafbdd4577aad4360b2302d1fe019629ecc4ac0151a460bfac7939321351c2cefa17179cea03deeaab9ecb12bf7ffb69265cd80bfae00bf010b9c21b8f56b73345cbc338b395a8319df92b816dafef88c8693c9c5a4cc3eaafd91224c199e53ea91270be5c2087dfda9f40a76cde65bdf8571e0191b6b4c431fa6cab847a37fe690a161304310413dff0c183936f18780dd6c7098c7dd8819280f427e0b87b4a0ee0599efe70e840277c17e0d09d8d08c898b89a83f5cdf41c6b96da73043e4d9816775ed1fc7fb14d995eefba5a076d3d2c0b906c69faaf163ba2194a59c14f7c7684f3ef3d81f20f45479589fae56c89bd45c5057cba49036db9aa823ab068647fe81f2824162d2b237c9306d255e840c3653052096cde3e75487505cb595753831b4c5996b32fb92c8171a6a493f368fb3d2de9fe180fe7acbe58c000347dff9ec0b2a8d52456fab307659bc0ca95c5dccd123fd076c3edb64edacc7702725b21f96cee0b5c6aefe6da322a80a5cb6ffd90b1c99160c27015051ca9f08e154dd784f914f2067a7abd40ccfab617f2f0acc9451b07284be34b5e6394df2f6d2b61a4fc2b43ad3c8e8b11262c99b453754d72829a5cd8da7d9f0e0b5aa30848ab4ae203ff8bc513db8a03d8df26f594e6f8f325756c759d9b4a1a1326a4da9a979a46b4a42e196a0c641586344f6ee201e4b2353069b3618430babcae0e14ec22c6707385a9d9580db7f831e9ad83de25a74cb75cbd66b97ea41a32c3c64ecdf3b5fa2a28fd107578530fc14da7ae9502f8ffeaa653ad9fdcbda7a19060dbc978ba07b6f76dd4790e99dc6847a68db71368da370e6155d550700603a2f986a413f190df9a8cd89476a933c38803bf1efdbb98f0ac6cd0d181581679f57a63051d2ce15352ccaa68d83f84489b11e05a2d87059f3c68f618d35707ea874ce240678311aece70f6267a72c34300acf550a67d1e93b24d969f521d5b127d934ae5f48d5d648534f886e4cadc9f970025e176e92a6344e03a31861cc6da8a5cf69ffd6d956deeb743d33b6b7d502a72a494ccf2e2bfcb17c421e0e8b02c92e78e87edc6c3648d62145d3791bb548240cca5ab9049bee46db394da62b1bcc9dcbd4491f59f11a08c473d18256560766c8b06e34f66a8f96e75587ae7b540c1da664e77db17c8861e2088a6c80283eba25cf57a3b49cc25e8359ebbd4e73819df4823c81af5c2b6ea7e67dc2ac532de4b89046ae049f692bd601e691b77b4ff7346fbf7c822c205c0408f049bc4ddd95b67b928ef30139774b2ccb813bd380b3c3adaf18c3988dac070be3b6ea5b3b2910f2489d63a66ae0deeffbdb3f8ed9e8e04a421baeaebff8daaad5766146e8df6c329a0681ecb6873d43efb8d7dfc407fe22565099f88517fc6574cd59d4c6f74b9fc3b885f2c9b7bc83f1816bf27d4b4f9e42a88b66c7982bffb8cf5460b00054341f0302153a81c24338a637ef81f03fa79a384267f3d6f3cdbfc7b8baaf132722f31cb6dfb5184d3fb2e5a548e6712d72eff9670602d4596bc7f672232acea2ace0179729232d026e2c2c19d89cc2577b2718b931df666078ec739779728baa0db7808b6f57b48463ccd14996408005959d27ecded9b8500bdbc80a5bc8169736ef50caa451da47809c7f31f2e5dc7ae86b58e6dd6267b4e53e690591c54bed277f5f856dc1a3f80f2175851c287eb8aeca44dfb4042fc5d1dda2bf50e8b4145395e3dad04bcd205b408e152d1ab3d65d11cb2f15000d22132bf3493e698374b2bd176443597ce22efba823f0428fd8aacd51db70a5e92fe9f26c0b0615aac629abf0aca682135349a5aa7d7247d7bfeb29c0cc638e1a6fb7b30c9fb36b7fee480649756ee23d45e9a2b6882f07a494fa0c73f6e73eee35d21a0b7c8aeeb37e9dcfbf497df751038e006a6508f5c31e1154e900788e10bca0513a9753e6ebae2e6dcd228601e4f85790a44e8e8d624edb05840e93e304218daa9634b4e2ea124a37f9e9a46e76e2e30d7f4a243e750fca9a4b8372b7d44cb7be182462d5647f5b207edaca617200c6fdf155b6ed6d9561ef3098467b03f2f337264b0984f13560fd462c87232066aa3dac5da44220fbdad5463df528bc49df7f10b9082c2934ada4964f8e359aa6cf9c53bb3fb3ec5a93ab6cc4e76433f12a44dfc7617ae51eb4e90e0ec5141966c73831e27a7fe584dd234f32be6c5eb398155d81b966565389b9626d344ae875a5f9edff536fab621d7397da5dcef49efbd411b33b6c8873d01e8c883d3c7001cfaf214f65524dd38c1ff3c5ec8f004dc834f17ac19ae825a77913ebc8a561e443a0fef849f1cc795c71273f3bfc9faad7d259c87420616eb96450c9b9728cc9651cc866233f8114384883077a100f2e4201a636a3e59f445ea465f27a3de9115419883de78d2fbbe6d0c39248cd65b2e0b4ae2d8f3ad7b780053950d00565e97f448df1955c04f2fbecc6282b4e789f9c4ee6d68515ce9e86bc6f96eba10666684fde91185e046dc8f6e010c8613b248de05a24d97b4cb61f4b0ae9245117dab874b2af3ba707786a664ff01bc0a8281ce30f23eed56fd350e38ed6c54110e805e9d98331f0beedc2dd8ba72fdff1ed21a1f071052a95696f604257ebc1017d5bbf987c2308458a311b7f341a7e04f0fcec0b5e9eb9ede7a0d2369f280bf9500922c0ed07a577feaf43ce56de0796b117fed02d8354557d84576c1881029308d771ce5a8832ca3ecfed68867db56212f6f2c8b4012e0e342583e049f35819c34d16c9fb5a1e0e9a3793f100003fd637cdd444c37201a29787807b90c9a8dacf2fdfc50054517178781501712b079ed732da19f7f24c66cf45670d1e602bd39cde50c4cb6c1c6a1a0e566092ad6f6f167379b3265c8a8fa0f1e9cac35c4e4c8a1008916f99d624dcce6004bc404a7795d49340d850b9dbe88238ed9b8a2c44c1aba5cd4d5c41bee01ef3da255a4e0dba3c344116cc1570cd60f9385e9e74625d0b4551270760350b6fab1316ea7c412cfef025ee7918093434f616bc09e8f53986ebe32872a338c898b2d440ffc54694974075977f9e1936ae31c438a366790be9686f78dbc20a6c0447a6e39a1a7f332687b6c4711c69fc5706862c3c4bca8d8256e92e4dbe42e9bb72840de429acc96ef76fcc27fe0630a2ee6f7713dc43747d10c584bbe026b3db3cff2cc51f28308a42ebac616fdc13f151838af471c992a2157f364776005fcaaf21d8599083c9d22ce991b557883966cdd5aa785b0fadfae571223e8a43bb33bf32dcbaaa165abd23e4b010ab76e6561ec999e9ab5b7ac3ace48c82e8f41c26daf979141fe9505fa348e52a47f90a69ce79034e2bdab6c1841479f9dd8c7e821bfdf6932f3c281533d34d5dee8ab129f2a38c72c0c9a96fc7caba87b0f2c4ba33182e1accc482dfcec09e71d5f2fdb75ba5b659e8a50cb017a74359cf8f1770ef2ab371158c90a4729f0102d3081d9877a320813d7710c16cf524af829230af9e3a86ffbf041156b1936151ef800e0b4281dceeed45d1b27cd7647af09f0e1a7888dad6d90c6598fcf310a96129ec43131a468ff89f5f53f1d1c9b046f3af22e1862d722d5a0aca3904ce47e84cd5c6253ac2baef7e34ab3e000c1a907b8404641b31b83ab4890b474ac4079e3a4aec2f5e689a25d134240918fa25fea587feb05c3c95fea820c26ff16fce61c5b1af3e7c0e124f95453b412daf7ab64494dcf8835f284869c38fe53cae5bd30694acb798d85f2f068e1db96d301915fb6555d403eb090eb9c23fe84177858fd10df8a41f482cef0ce826c39737b92e421f0392002b972fb289b88714619747d9d17083b9b6c916b0156cc79e8eec919314b9ebdf21cf1c44c336aafa59ffbd543f30161a8cd20e415ad3a1dfa02dc2e4a94eb0847345b87dcef8711d7489620c15d6b92c72ced62b91826cf7d5e74cea77e85459b04b3afa5999f25d6fe06adb63e5afda67e123a9478e508c4d3f395e5d7c786610497fe86b0bc6676bc8656e64de9f6207241cac42b9658bd00a012aa6c869744e5143d06df327e765cd13ca2ca3f566141656a712aca69bd70b1821b89a8a3c2897c2d8a60aba93f05eb95d11294a83819d1d6d2edecd404c90b6b50306be4e7d1324e1a3b9f7ed1d3619585c3c28c55237b701ecd1c75a90f79da0909e238dbc60bab019a7f0fa26c173223b75b96ba682e8adf58123204f467586f9509064934c45206a0ad0e840e3e7a0c04d0de48c7fbb4867892c6b2ba25476ecabf7af02f4af1d483a9ddbbc1c5f709cbbddf5765836b2cf4f225b5ed6189b02d0312c7b5eecba05a5cb342132269797b2118ab6f9c50371ce27f743a368c3d4cb9c61bd19579ad64de5649a1088976d6c4101364e935d20b387f2cfce1ddd4df3504698684984eed1537931d08dc0b2e895fc301de1a35371bd890596e2870c1ec284f404c629e97284dc2ec7ece8efaa200fbac7b5e9f525eb4936d6c3e128254a74e252a47dae8074c5f546f8f9c5b2b5ffed98aee16fd9220191480f47d51e0802ea4e2741c19baf7f7404148ca15e7c6244b777756a2a4a83b08c361fdbcb47fd7b0168654aff7d166e9630436b3000d68ca6661dad7641639c41e82d33c4194f6ea6498b6998cd05e5a89f1d04d3d16d86ad6d615ddec6ae0e32a80e9231094eb71da294c6ef737722cceee4905bd73fe4d9e5834a4d6a803aa2a581d294e4761c47d570c942c0f0e3e058b0d63e44eb4ea7f51064fbebd6460e4b3db07d0d31df3c09d7ba7154c85da113ee52b5418a8c5d67afb21103271a352bedaa5c9e30357a7d20971f403a96b114c5a1575a06651f5a1f820cf572537e03369ba9ff2da89116fc6ad51e77cdb493994a70634da28e1cb24d149f12c226f35220e92538aaabc876f27cc8111ba3e5f94b856510a1b1e3e69c6389b6c0120ad1063e90d5d2315dd495d3222a87ecabdfa6da357ca5a3cf077611d8ec821e8d6779a6d1afa6a837a50a6249cd11d7ba1c0d90ba1956fa744b3d4ebd1217a024cabcc623a9964e30c3d3f0d3bd5bb1d0453cc4b8de27e00cc0eea4eda7503c09fa94371064c713a92e5871562345d1425b0f96c98b0eacbbc68aeb49099d89a8d8634c135c3a10264dd6b38835d6c4c9e533d58e73d07f8d98665bd7b5401df49a97ef23482eacff3af6ca5a18c8b59a5c58749c5a8e9ccb0599559e36cb13a19249638b803d901cf3299d9f7fe606b0c2d970317b58c9e444bc2aa4a711a0eef367a6cd440581a556f344703d14b6665f143f6c7898bbee09f61ace8aa7516be77996f59bb198b5e77e705f3b6937896f1b0dea5d674ca692d8ac83014b90edd81da7f3bb9fb4e737652b59bae85422403e7b44a03bd4b72008a6f846ae1217ed4c5a8f447aa4a1da5206530db453213d8769db3ed67a5a51ac41aa52ba5a7ce294aa3c65d306c342ce5f1330d478a121c885325e0d54ec7388e3f9f8190ca9809847b362b85d9581c1a4b2280427d4621423206943b9adb1b2543279f24ae38ec11f54957cc19a726afa3c9b4d78d1bbfbb2c3df1d10f8f84cdd1dae3caf9bd89ced12f7c23e1979f8bf2dc7e5a80a5a8cefdd3009e6e8ef9f2d5626cb9b9b10b8e08e62d2461a5c5b0d11eed6a3bb5841efb6ce4778b4d79b1e29c5a6867196b74a5f66ed5f64fe6926be42f985fc15f3f8ee8887e5e6a4bbfad833dbcc801822b16f128b69f6945bdbb3859c0bac351c41111dc6ee351f92efdd2d6f5b9909a4b277e8dc5774ceb99b1cdc8639dfaa8426c99ccc3bf49bdc9fa78129fa532f2fa4d3f34a4c386f80cff7437fcb433d1bf73ac860f653de7cdc9213efa1ef9eec49c2ef721c91b6ab705d7e833d2da7959e93729f7d684d7b41f21ecfb9ebb23aae5096ac8f49307f117b7cfe4f617bbd453d7e639d374ae01bd926e1beb1e4bca17893384dd0659e39109f37cf89496a155054d802b1e771efa56bdda9f3f2d0575027a5b0c9d3a109791c13919ecd12fe50ecf302bade6b58c916b076c2dafbc474a30e3db615b71631bf3d44eb94ed06441495f47cd3fbcd730f3b8a2d5a0478a59ecd302093a9c67b6b80b4618cf453c3f77f774f6eedfa9597ea1729ca96b86a45f660327936d9894f88a27b5447b55c0c3156af2030ba8b33149b687d8e93150d76e1a95c53c663c01ec5fd917aded8d2a4b8fd94d41016d6a15a352f5bec6b3760913064ccdf0f7dc48cc085384116475ec162c9ea95938f5e8e0d27535cc8aaa01aad39ccc2590c54dfd106d3d97370949ec9e787d70797a6cbcfe252d1c180e0738086c2ce42576b5ed329444b05f32f34425d2f6713e5b17a85855c3378c5b7afde701f7b77071d1223188532994d733f0fd9e1800d424cce5985b38d282c3f2c94e3502a5a1fa7f789a0481f33cefd8935c3b3042c0fa1f91e021fd9aaa9e793a5b966369638f4ea3dc86ba153b72e0d0b3153a1e324d7af9fbe32f1c361ec1b269e4837365ee14f18af647879a81e4907e92650cf63fec13a38b0f15d349c33cd62a788b4e3f25fa30cdba74ac982e64c1696bcf771c02f1f01911db85e87a71e6e50ebc30be646e0e974c71fc50fb89eddd50b077805f6f57920eb19ac0225334e6f7463258c6c07141da7365e272b478b4ba08d3bb18a8b815d4376b038dcf09a3f44b9abcf1b687e8779774770f9a1af2efb3e8f974a7259125d3770b91983ce0d43a091b659f92bd41276ea91153ec3a8b2667412a734464bfddfa0f6485f76a213b59309f74399bbffb015de3a8e1dbf4aea71220b62804ebe0c7063cfc45ce6c1017f12d6f680f0198a8b708ad810a1af941ea70cd113051b8b408c03176bd241b5f5600ec10ad41e737f3577ac9f8f85abc23436042b35671245117d33d66944697581868f08a35342c480aa2627be920039647da0e895364266f0d7daa0270e17d22d5ee4f2a5d3a8c17a7d89207e58e570539a5c32fc1b8fbe55c9f6dce10d999556cb4194f668679a009294aeccc946d0ff9333aa8f4f5ba3336abab71056def0633876566a7550757ac8ca0160aaa3a5a97a08dbbeb36cdeb50e4c64347e220404ce24129ddb6e0b11f53d9f9c4be8eb8707782919ec0455764b9537cf5747255490a055166b9a0e964eaae6931f1185484755a9107e3413c6ca9ef1c93bd957478e16118da00b10bf843603bc116476a8bb5130d372a97d3bb9c6e42e7e5689c3c20d7e287d42553ca0d4fcc05ddac8fefcb94d90ae58e55f1144cfc18a9756a9e14af952483f1553a83652814fbc37cbf2bb7024aa2743bf7134a2bef330169c2163b96a1b215d358830a398c95fe18343cdad8d23518f0359b9942cc540ed64835e132a5ac6b3cc870815979610f0a7c9fa6786dd4a9f40f1d225c4eb5562acb02bd0341b7c61b117b5a16c2ce6d16ac4fdca9aeb3c40a3115805e96e78eeb0ee2081f2b06b3c58c379b2f3704877843969d92bae50ca6e3760b05766c4085b82b4f4e13cd0aba4c0a3e39b361c0c099aa55d882a69aa02a833995d95eabb6aec958bbac82599e4fd9a9cd5b87d166af9766f41e831046aa2837b0e6b55135bf0771f4ccbe0091e3cdd41ad76a14fdcafe2978911e93b39d696d9768a630931863267b3ce3b4c3f80fd53739dcf85267dcd2bce0897098870f60aa2672bf340a14fb48e3b8d2553878a11786574e9f867d5226a552b8603a3a3eae3a9bf2d1e361701d8de00c23c6bc2c703ce981c930ad62c432f258bd0cda8e9dff2090ed91802862d47228250f4334066516bd85c03853296f81f2e75b33e7ee39340613ec83b343c6d6b6632395760e8427834a8a59198eb13d0fab270e13a4bd5f724eb2a7bb306762b13e5baa1a51f499f031a3b77e537ddb4f3f6246477daab62cdf58728e993f11e5e8061080877ed0fb84f26fb94151e78480219beb29b93cd5ca1bbf1cde699775f24a1fd161f94dd671526dcab252bd3a4babdb9a4e8307b60b7397784d8089a27e8e17a8cee013f7ab4e6792d8d86957560c50ac3b6db6fea9392b3cfea0b9142074ec5fa101dd46a0797e6840870d98a5edc9bf0d7986d227df8ade38f8e07ea8fd5b348de367e2a28b7729d00661b3f1c47244cbf33887778043adb9b634436441ae912d0fd4156c2490de6e84aefa720fd064cec963ed4f99c35ab73fae93e6cdfca3b2d80025425c25344ce27c003872080ce5b36c3353c254634dc7dc25856f423906fde30fa5535cf08d092b5011e4fb74973060fcee58c33eb90b0b6312502fd5a2653fa27cc8143c8787a3599445e96f06bed80fdf46e4a278a6d49f82d6bc4602a19ef3b36b5b16dad443a62eb3d0f52caabd9fab2fd1481aaaddef628e3dd7d223cb0fd802aeb1ae58e76db15985cd7a310643cb8d52cb99713e84936c59fb994b0179b9a1089e3de181046ad0aa6e0504b9c286f341bd1b39f547022babc9191d69306b0cc00a7b8a5620a7d3bca26c4d3763698e40b11ed960477db57f575b2ec965e6050fec53a550be1575038fb4d405f1f37086dba68de7a826cfcd0ba7a535ad6a1af5b2927eb7c75bd7fbcc9b81f9a577d6626bfa5bc53a2710a6a15205d3bc7cd65e587ab489eb61c7a3e4730da26df3c3645ff891196941a59e35426a919644d170c794c705c4037204b2d392b9b5696dbfe75d5735afae150123f79dd8b741ec6f1c2ab41bc774651457a0f66b1a684012941706329e5862edbc2f5c8f20a6e6aef3600613b5e1cce25dc5af6e2497d4279722c799f2cf7ed7fe42108048ee227aa54c0246bb8ec7529ad301813bb6596b31feb7bb5174dc1b6f94cb7811a447a413c83375798088d5d40f388d96526b26e3697ae4f9f96d2409c0ee4913c2ba91d9620a0831b394754fb966e4277d03acaa6277df7ca442600fd0ccecdc5748f1723becb34fa3f9206cf71f9e2ea2a963fdb2e616df571a09e2a6ff6a261a21721acebd64f18216725bba60f77b46b2aadd1aa07d6082859ed0d1a25cd2411f4b90f91e87b57f0825d40d1bea26a0e6d7297db75b568da05a7f21908b5f49d4c1b8fa2b15161e64d019be45c24204aa1355c65a09b2785b820c7a805bb52cf0ee05cb87eb64f9522f261d457f8e8ddd7e32e9d1f680279eae5d36199ee76523948ab7bf4d96a044366b6e750f91897cf30d247d2a7e7e3fc6dc72e8e17a8f37c86c79efc7d43c44a4f99d3dd58d690f752b36c119abb6e31616869f0b970d689ae4f1be71eb3f0044b65079851b31d5c69c988a0dc2ff49db35202447c0a4c6d8cc1eb54b684add5a572238acf966662978da465b9eba1139255ab40aa56d9cdf4b6bdf01e4a80266cf45e11df4aba1fd59a77626a6183917ebacb7a008611f02437253044c6fbc3ac95d137a17bba3b19dd2f960305675eda94607f66626e7996b1545ef1eb5bff8f345cf3b74524104e9bd7940b4e31725dd546311fb13165cb7a8a5b3c018eb5549b2853d03778a7f61b873967d29c89153c0cb7ed99c4dc22380bdb3d66f36d1d3161127dd34026e71879a32f964598dfb6a6fc7d59b516dbe3a121bf65be1a3ddb67c36cb31f69458b620b3f81a6404bbf3d094111a46f7087e87ee46bc8b6abc75737cead0bc22f6372c7a54ecbb64097dd0f9600721351fab0ec8a8728dd5961d6e977ef387475f7589442bb297c64d6d3df2d0a2e7b5e89a360082ff3fb7dc25eaf8fc978ba73d8e9430fd3b8a846c3424d0093793b7c70157a79221c5941e19fce6f70686c24ab6dadd3b153d9072fa6275ff4a52bf9b0761d4f37224703d6faef8f85506138e3b176eaa99738d41c68f2f92d69340284f1760f1ebfc7cbac0308c0b2416ac0263e8283faa32681eb5dee295b00aef92a250f803d1abedd191be1c9a985213ba1bfe737aa5aee54029febc6a3f4b9a6ea82a49f3f0bede126e9f7936c6646737c55502f15871557a2cefec9e4587658486942bc0ab56177a15c19a3673c2c9725d83017d7088494f22a40c194db3c4d8c0642ead4f71454d0c7e58b4a5ab549b60dbffc7f7aa72ebde661c6b441a8230ed99f5c80f012d7e023b02cb4128bf14a2177d175c1c17e77fa69faf7b6fbe532211ac193ec735a75d4005a78b01c412bbfa852ab2c33738030a3e2b6438e91f7a6aea22afb187513bf2481debd65c90b77326ba999ff45627eadeb616a757512cdb0a53dacb4dfae8fd1aad258598581e37113744eb9767c8edd65ffcd0365dfb2ba39065a04dab3d8eb7cb564225c425e2394f9a93b697a91a36ffa6cf981a80f1adb28a37073dc21bad7a9b3213fa70f98d5aeaca2c73198c406c02b365ab7c0bde19719309a729ffd5d12eea25aa80d4d938d8303c16ebcc1a5165a7aff5908f5c47b3393e87885db11faac9ebe4095460c2182f1aca41e99c5a794d5b0a52c72c0075da0ebae9b6f4fbe1aa6f0077f06cf82485e1a8b5a0178252b0f0cd3e5d60afeeb300e4fc6d5478776afa1492b7627f5626a90232a9d57ec7680b178f63a7a7cde3cbbe857043204e66ab1ba222884803359b15bdbecc62c676efa6de63f73b2e0e3dba5f946c48b53f57d2a4b42137328b246ad91e45f857f508a43f1240c07ee5a17620381645f5f19d63058cee6eec7eae9bfa99c00977b5eb2fac2cf85723027a2428edf14ffaed91b37ca521ffedf96763db8f1ca3c0226efbbe51f95ceb0a8e906c3f05cef12cdc57cfb094fe4e242510b55e23cdbbcd5cc58060c28b2e009508e321e1ae4e6e2983e594758e494426ea8566b62f9699168bdfd78159cee582b7db4c867d24d573afa7786c515257e6d4388deb8a45e70cc22765da7b74ba0496b38b54509a007ae02db43f91d1a7932688eefaed7a6d95b8f80f43277cc20e83e19b995cc4642943a87fbeedfd880f00c94c550b8b516c562178859e9934d4c80212449a154b3778c6d91348b93cae1f56e792e1eaa8e94e0586dc44ba2facea78a934731c4ea5b401d98eea625db7b7a0522bab245cad063fd5b47bc07812a27a01cdbfab1b6545cf87bdca28adaf8b5bbcba02eca4fd4f8dc39245b19be520b4d0e5e6be0b74a78c03b2f48f246dbb69925929a49ed5f4aa2a36aba257d54903bc7df1ca8bf4e361e37e32f69f72609a8a3ff9f2a6bab9db4619a2dbe10603a91c37414546bccfb985658ca5e6d1e4ecf547a0255f498ded578af74b49da81b5eb80470a8883d4c989cb5b57a622b48fe6c0c135f1e0ec7477a20a735d21c8f69ffb5dbe552c35ca4ea79d32fb588a3846fdfed47846136d4acd86a97d756aef53b6bec7c98c57ec2828e767ddc326cfa671a958fd520ca2a201bd1ce40202f1f19711f62218d94447f0b938879311a5a17bfc5a46167455aae3fa734e09e4da892a11a1c12136ea3e368cfbb35c42dc9284c99dd405d863a0e67ad069392a94062a53f210d66a72dbb8320b448b5fcb41c4b5af0fb0d01ba7816fdcc6307305c47587c21c5a16119d3aa5776aa23277d81c1a9f8cd7c3d8f2a3b474caeabad8eb2f0e0381c0fb37b003df440627e0d6be05f599eeb9c320b0ee9fd908682001e9613115f1ef5e2d8b6722214a6605bf1d259a21282304e46bbd0f5ef5f2c9038ce93b0dda9657211aee0620442e398c7d8d4f34c4ddac5fd1447ee9e359129fb3b94cfc9f7fcbafd0b29d53435bb91b72ae97091c6a3a82e33489b33125d97745a965e3b4da85e0c225b96aa271459a11b14203a609485d44637422684019e7395d7b2856ff4c704f7bcb43639573437dbec510720e0be43b0ddec6dc1fbaf9f6ff19eee0a5b3ebc1c97587b85e6a5dfc92a011a8380abe03f600fcbd6f984d4a392e8c50a4bae999fa3b3c4407e5f10c2ff8bcbb2d6e975aa981567cb810c6eeca323e18f261f9f2f9f88b68b64a60e87e86c7afb7b2a36cdc58cc9b1e5596a296433ff6d4912d789964dcf301d8d54ce3e73c30fc3a1866930d70f5795e73f85d82afd7e11c01d3a31ffe7a41ae77e92571dca2c58e4615f59d989913fe5fc8a1a8cb1e2880fd587707e4a4649f4daefa3345b92c981c48b0efe3e708895fb24b92d9c42dafb3ce2f5af41f3ffe2c35053a8664bd5594601de5460ca4014d77a4bff32e4b00ebbee857e802f83a8663e4f85c6afd9e93efc5aa86ae0652ad18c6b4933aeabe5828b0aaaf743a85c017012efe1469052acd821323e9f9fab0901dac69a03650940138fbaa633acda46e0658368d8a3035484c3a796a04a3069d4539f3291aa31b3d18b4ae2fbd076770b68e26321399d2c37c97ee578675f301d211149802882c3d0b2d6c434c6d904b86aac5fcb5b46503f45cf9b4b479422e336cf9aabf12a4f6bd578fc52916ec1e1c251df7c698013a32114642977fa5e06a00cd6734c8025173ff8a1cd5c1657e0b6286801aa60dee14bc9c898ddb778efdd88ff4f16088920cb08e0a6160455a3b0e31a5ca24fb40afd29194a8046437534cf218d11d96966401e9484f6067fa669fd82bfb03c5541e53e42481b7afc993b02ffdb955e6ac185c8b668ed0bd282137b469974fc3acc5e89b6cc7b9c8aa1359ce23b406ab9cce0136fbc0b6e881999f997ead2ae5d04acb4fc0161c7c1fd0d338799b2891e81e721cf6a7c7469f90bb44d618d53a0c44b79f29cf8441a16c624f74bc96283eab5d9bfb723600d0cf6e1d12175a3146295d81f381d6b2b08b14f1c5394dbc19ed26d43d5ae2343ebb0009836cbfdacfe696d810ddf5e6ace7b2508a77b1f739b83964fa9c249038e05474daca9c5051ea2de30db26ec146da821b6f733db36526179c87d81386b57608a5816ec3d02d487445ddf9c687fd1c3ef38e13d99a13f3c5edff297dc0ee8d49de95e7690be1664cfa1ee0533c60680009beb3c28f04091e6af31e2b589fb25e7c4bc69f831e63d4f6127d1446f7841376da782129802a69ef635f121de05877e2b9cb43493a125f8c867a79468e641b3bf6363d6301df338608b86b9d6cfd07daf2b274869781a2208375e3292ce94aee4b90ae1dc04d66a3c5aa194268cff6dd020bfeac0c05dfe2998605442439692f9ebc621bdf9a2950a03d0bfdaff20120a2e71d0e10ac348f432b2c38aa5cee4e32949ac8eb67958929e31f6dd851ccef25ae72e8677c0605e56a91be034f6b558775139ec41076ccaca89873efc4557ed1a70223eda093abb4328b11e2c51b2a025483c8d51e83f7eb2439cffc026da17b8f4f13a8d88624b7de3f4901486c607285be114e3c76007ce34e8996b09afa38e5151a4c1f764ab516286f5c1d842dc52c3a99a1432fc803d4523ddff68ab7e927e87ef8a624d02f39dfa895ad61a8befe183b977ddb530cbf29b4b370fb4f60c26b3bdc66949e78c3518f802c37848b9dffb3357a3dee469bc9ff016cf204dd072766b50cad71f3fdbb4cab58a1aabf9467285a9c67516d6410550d31d1156acb90c1e5ea5c6b21eabd09f438fb2fd66acf2a8965539e0c78b6396785a070e55989cc929ec1791de7599e90f73154cfd8367265feaf0fc3c18ff22cbe0516d454ee20f8c36336bcc430d0de23c3574ec08f9c852230e0e35902d97dfb31c98e7eb66c44cb2c0fafde61a4d6c3f861a77a091bec7c355857053c1c823f609a27dd3d4d387951eb683b669338934ff6ae00147024eab0bbc85e68e1fb4a9818b15132e3f124da1db959dc7c60280c716464362b3a6bc41a4628f4f3c2db98740136751f82ceed177fb527435b98d34fb0f5bf2e31cb08103c0450361af4ce66c4ae5a148bb0e09a213c7e24fccdffe8d1808a39ebb7f99ce673f0571f25ef74a92dadd6ae2cf751e879d0128279b636c1e4543ba0ce2838b7b49563c0c6e823e35066f839a2ff24bf6e5e4d249b0d321208020fcdc0231d37eb47528bcb8255001c001c1e58452b1a9e98cbf3faa73acc65d89f09f38c3eb02ec7a5f2907de25633998fe222b1225d006523c1cabb75022a06275f9ae3de2fbcbdf9265b629b21488fb48b95391ed7fc8668620d2b1cd5c6404fec74cf39136bd67f1e1e0990a549615dda13d4b23433bd32fa145b9cc2881a81729562c735bc7c9f0f78f8c787c2afd6e5a23861d3af0e4289557c1215392af22d0ca4a0b546c786093f0d068b23e0b117bbdab2d6bc7f5281a6a97acebbe449a3758d382dc63a2402cc05e4e2d29dada2b60743fadd6b8d5e297800b66cdbfd15f122619dc899d306d31f6c16fd240aedc71699ffd4d17863434c9cad7e00618d94631ae51db58208985e3c3a32508b5f352989035d1471f06d61d852b1e32ef06bf1333bcc3e015a38626db98bfa1bb686134e1db9f51eb190b8af606b574300037e621e0915e744758351b1819d0767844a703b1d18bd98ede7ae2d53a588743211bc7f56f9d57958b76bf391b4085edab87549e57d0fd83ed36b0426224dd05bc35f18d2b29f43c2ea269b1e9a1c5a5f23868e9456e28bceac7db6db3de07d3266fbd8a65ec381e4e9fa5262010e9514456f3633566e4bc50822620ecc288c331e80939def1c3f77e26ad49f97a555232d6cb3c08a059d8a09b9ae915e2ebfd5d9b9f77cfa1532453f927ec41dd124e498debd85796a0078a3b106ad1130cf683a263c67e3bf11455cfa0f5d15d464c0b2fbfa32561b0dd259e39ba02a26dc2a4b652e3608baf6460e67d6bf1f0906ea8447a83b16881943731b487013f8e0268bd23da12b4df38d7dfbd943b02ed12309a0b0ed266988e88792102133f647ab0860f68c281f584f61dc4a808d5548344fbcafcb7f631939146643ca874e3865daf0d2dcfc009ff9fc1f27d2758db70f628b0cfca7c999b758892655a9131dddd477ed8799e3d8211b368d1f6663e106ba2209f814daf2cee69d54f0b6da645a0e7fbabb50adfa893caac9c41039232e6dfdccd7d1780e026f82e8df5f354abb536dc816066d06b484a5cfe0e116b1659c7dfa6cedeb52cca1efa1eef3de24a09693e151a835c1a8fdf3cb8569d3061984f823b2b723f130fbc620c3a76e9c26c2190691ee020ff930c60ba8883342341021d38d871f7dc28bcffcdc4b3aebe005842c68f822b37bb9931e10898b5a630168b4663987b289e6a92363d9e896c44ebe7e799ee00d197f36e2a1c474ac27d8717fdce536ff4966f16312b21b1fee28afad8226d42277c4d28b279f39c91f348973f916c2fa1b1c4a514c9389b7292bd557127bf80a97ec07126e74b459de33e028c93aa37656eade4790de773a06a56528b34d9ef38918dcba02f520f0622b2e003f89d2ad9d0587b367acc596e4e0037193c63687e5785a540780867240e9d5133113529fd37805a7d979ebe9c138efa9ed4e44bbf8a6d8f0f53a530bd7d937cd272c10a439d36ded2af6ca64de852fcf055abcfa4b63f21089fed0270c8a526bb3b986d1ef663c030473398f333fdbfd3142db48c94a93e9b3fdbf5f0af1e21ffc83e4aadea2097a4d54fd5f467f2d70d6f8beff3f57c167a6f0a3bce6b24fa279e4a7605f81ac2c2743315fa763e7b3802aeeccc3a13b98e6bfae87a9314abd9b1827097c01a3746c408e481f700852d60c880a1d70731865bee78f7b4e574684b711c68b7f98f6f991eac0a98aea419e61c3c6da09ec5a22f71916d29cbd0674648f1876dea1165bb2ca9e0f5aeb24ad1d7ef4edd68e6780443bb80fcc94b86d46cc75b07438822d73fe5acd0392e82188c27ac4d077157c93b0ebc49ab3e935813c7968a1f39effc8c78f297cde3c1dec38a56ef94ec4b0edcb8060ae388b0898df04515de459e4eb63b6c82d829dd930c096fe624f81746d6b38642d5bc65a2ccfe2b21a9b581e75d5ba7eba8880d6661793e1e4733d40442fe4ce38533f60a739cf4d39147e49b2a5621e52ee14a73472d3e7539144e0970e8df48e8e3b4cfd6052b1ce6c06f91b8acd5dead92dfc2390ffc1d70c09703e39e2c978d3ebcc285592b61ac57293f39e9ca932da75654d12258de9a3f5fd012e64123b9e6206b814b6c603fdfcf4d807802cf9584624d4ae2031f15214fa3a2a00805a0f9d54d731367d14b6e697788cbeaa2fe48f634461d54f4f099418a9b71788518938e78a892bab453857c9048d692f6ba244c629bfb81669fb349bb05835149a21b3997e378691dcc1fa5bb5e77edf1e6da2bc5dcb410c97c03e4fd688cf16db3ecbc727444c819a99096bbc9093f402243e2e18f1f1988a2861d5fa707b7fc0981128a3792cc198bafa0416fd35371d3efe4fe3e32273d4474f0a9c6471860ffd016f6c94f570b36eb22744e516c0212fc50788a74d699809fc9d715fa9673dc3b7f3bbc6e05d298ed2039b7868a3db5adde438e0c9ac8cc55c0ba51c8918f9dcd0bb264ab9b903f2785ca6e8be7c4a696750063ee7d655cab056dd501c9da74e5a6e8e806838e49470612ff0ee35d5e9d75febab96188c25c4ad073c0e130972276b14b2984a0f17d341532ff61ad26fff3df6b4862887b39506cd364876b650067a826cbb6e2a9da8d9cbb044bf47bf237d42fb4dd9ba5726cf9d678e5fdf4a48c525b3dfa7a3ee848985a5bef55d93c578591f41a43231fdc736d010a400db05cf1d950ab596cf56569a4b9123ab7c43950e584b2c8f80cd5d431913d087113af6838962a4f4855b027d3d9f52cae75530d7fda5536477ce80ef52a17d191172e33b8d5c9470eab417b68690887c9b732d7f7bf42f5cc06c2389044ae336347c30d0a383bcc0eb5295f273dbee508e9b6c5fc3b30db2b0d57c83d3727c29037800820edd1692969612abde3c0bb3bfd88092bfb7b5a0ef8a2d911a9a193f2d2e3d3a9ef637b375c38f238bcaa69e76dfc2fcd92fc0e9aac6ec5a958e9f3146b8655b60a90cd5d1574fcab881c61b09d2150951562787b3a5a788462d83230be64c3a2c984742b8fc30ffc3ce1daa76186c55c033f3bea7f2bc07046fe1d7642994cab131daeb605f1ac61ff9e66fb65ece09ef0357ee8bc50c066019f98a9d0bd7110b72de48a3da43bf267cf313288bff58ea0ff537e587d71c8a1d2c5fa7cce18f1729c08cf8c00e37c503521a2b7e983121f9c317efe364c56a672f661a2397c34a0c147698208094703061aa1db354d658e84120b7723e9af7f2eb095c2250772ff71b2a318d90a82e67d441ea04b6a2e94b1ee8b39926e7f77689325f0361e8aaca941a21b11aa26f6c13dbef312e91bf430b07e4c326fcbea7196ba67b977028830b6817a611fb84249a1d85095628f7b707fe5a8dfb0f4ce20fab20afba20bd1063084f6669a9436c0d87d5cf8059fe8a67d78bf775c22bfd574349cfd18a27cfa0a7c53799aceb27cddd7cca09468fa201b2e20d1eb84b2db071ec2479411521331898eb34c36aa8e6b0cf7756d5c661435e8ed59593f8a01f30e32b18bc4bb26fc1a31f574dfe2562fd7b35e4747abc9391e9921a467c2553c0873cc20b88e2e12b9d5e32dceebccaccb42dad4db547780fd383402f427870f682b3ff1814990e2edd0f469f3820d1a221ad63b741042023743fd7ff56172bfeb1fba9f9a44040c6a65f36c5db22ddcf15f1db2506477694f773d1255085167538d0ea155cd1a55e90b0fcebc6adb0d83c9eee25e3a1234bddd38ee304ddf1935dfb72088193ae73eb5a82808d3cdc9a9708c7ab52c0b67c4d602dfc8622cc208ddac70fb674471d3586632b97778bb4206c1703164a1166e048f78a7246fe199e9534d7be740ec66fa69e9b71df6a6548ce2d59c4c365dce55ebf5059f5a5a82ce89321599c95575fb44bff792bdd580a3eddcd0858c7140b4d10117b4915d50ac7e490f9b77c545bb397a3cbf89a12f2eef05594d1f2fc0fecccf76d0f73678f2f79944a9285165286d130b9048634a743e371df89508bff39a0ba926cd335c7427ede958a2836e8a176fb3806df53952d68452c9a107e830f239ad4af9577ab5d186ae6f9da55068e96a31c805a96188fce635e69f51250c7237bcb4f268139b20b1feb1c2bcfbe4eae9f24d8ee8df0336918feccdca37446f3622b28d0a1a73ae369549d4c7ae58937a64468ad984659f4c45d58702c9176296855b85596344471537a33e1b565a0e7a6e3797bf86d37264860cf6e65c6cb941afab3a8cf9df7e282fbc4e1ee56522100b929e2335e39e0293f82be8c1c6042ee0c83eeb170c0aa08e599cd49b9214088e2880823adc542ab368ba2960f822751fa06000534e8d391096c778e9386b1c7ba2731f2823aa6b4b3fea0f654be1c74b67005aea801da735e91b8aa16c6be81bcdf650fdf875d65014efb215a3e4c0da0b0a4add618fa89a35868b137071b1af965f1c9d6f772392cd86f477d1517b91896c8189df40e6fbb49db00991331f65d6b45fd3a7a9364be56b794276ce346d5dde6a1f60f94ab34c69cb10a65d8ef4796c16401e05bf4d3b75c4a03c8e3a8c43f9f80d2e13b200c7b71823f91db4c14c4f1fb738beff4eb20b0f20653e67046ec93ad42c13270059b38cc81de9be7afa980a42f744c75d1eff4df823833dc8b0a4f3af8252df26bf513348207e6bb6838351f2e9b4192710580aca2f1582c3b638ffc705bbe3ca3f8dc273af2d1cea7ac4685804ecbb140e9a11dce74ed7fcddcf1ef13e48a4c7cb1a54fe05ce52f09baed906689c6244d7557bbdce72f99e19c3d020b490ac7d27c68006a06dc022bc25d26c3e52180ed43edd56b89b48b79990a7ff2a0b528cf70912a7a41e5d9a67bb41737009b3bc38c9761e02323d8b50f44a7a114b60691c4a2187c79cd78cfd2ab5b159692bc9689b281644f1c126617fac6d986690eb7ee5d8f067cf222df87ba1991c7c639bfe44dd52e7b6b8cbaebe4a6cddf577d85969eaa174200fbfb2250aae01444b918b79e583e9c4f7f3d3287ed58269dd0f9c98ca5602ead60492abc354e4f1f1c427e9c22b3c6bb6259c4fff92f2ef52e8ab745ab8fd321526fa6c7b49f82fcb18cd2ac4961d71b7490d5ced89820183d272983da7b92831ce576c3ed9971bd84b6f2710c057a2455cc2697bde1f76d4c01f218aafe1cce79cc128a8e77337a585813e5ed98050977a139087e0b281d8ee27381a92244efa0d2ee59b27488d252f01668a81c430807d1769fb658a242ac946c39e9cbcf394d4ff2801f3589a0a5fad636f3f424b96c39fccaa3232b03021418fadd59482c4a1c9deff1e081827e90ea0205f02fdc221ab7b8c9049abc80aea28ba1efdac197943bd629310da87962f430e72948a192c0e76e34324779b8151ed599a10cbae43e79c7a68fef943e44432cc51c7a4d1df6393f07ab905f441a58448fa14d6c263fd363722c9e35e140642016086795f9fbf1715bf620c45359bc9f7e7f0ab36f1f94ca132085524f5c880466fe95d198ab0bc6e19b00ab7a515ab75de3bd3036e967571b886af3a59805950302dc6c6ed73b8f9e3a3cfa67359717d0a0bcc8046affee2d9c053f31f922fc3061ae439edbe667047df384818d020cead7e0de1e06ae6ed46ac3a9bebf8bdbf0f428b18708338ca965fc82e1a73c2f29a570700997641be3959c79cc51bfa2e52c2ae0a2ce5f1d290c9f29d16fe87f83ed76bf0c6884310ca8e9ec23b16e852c25d3eab7dfc88a295dbadee63c7aea4c4f22dc6473787452110c823d1d18eed1bb6708406be96913980b39c5d0ad6023085f0a96f908e420d1f2c314a4d8d1acbab07c9b7d951dad59d061493bc7279f471dcdec734b5b04088503e910862581a4c3347de4846b1d4feb28e416bdcd2cd6cca2c1778d44bd82a381a7a3a8dbe50eed9ba7cc69f0e9b08ce848eaf2675df403b1de2da0114b54b416149ba25cb9a2ae5e05b52c2adf8299b50ca0b0e0e891683064afc6bc688c315aef89cf2ee00f6da783a9f00308cac61ce987529db3f20f2c9754fdd39f520614ad22f4ca4d7ecf6e2653e4252a585000503878e103b81f834b7ae42e4180e05127fb6f6623681021b18da5dbc3d6ba900ca963e533e5955cdbf4ff5a6000075fbc99d26a6061641554fb81d4e91dc9e2456bb54773085bb4b46b9ef3be3a4f0eff2561518d427296979935134b5bd7cf9c51de0e1a0d22e7722092a511a5e1088de1f83bab0572d87cb48e79d45f30760f3f30a46397492471e5e4323290cb8193e1be746a3bc3d8539ca1c3f351894cfff64ec4612607f7f2f496a5c3efa787f89d9d2279d6aaa69543d265f2d32181e95ec58e23d4eaab0829fff4e58af3e4dfec60597005e4113925d4f5d7ecf13ade92170690ab28f5b2f35115c9f04e2298f12e85c1af92cd753c732e143b67946f0d145ff9229467205965f5334a0b8233bee932bf6fc0cc3cfbdfeb21028463d066ce66104fbce013238396116c5c7097139b47ab7aa7d642fa93e2244a6c5b8d1b39d94983141b9f9f62dcb6a122fb32e363e89d7a399b82c3fb90006e96fdad37ace7d75e1b1c8e68d9fcef65045e2ebe4dfe03e32ee56e26b26c20817d3443648077e85daea1de04da359d0b2368cd53d2d150809b6c6b6ba22cabe3540815bc6474035d2254722ca2996754de7169a55fa3cf494bbaa8184e28a939331815e3d6f9009896a777d51142c1171596cc573fd8ac09b9bbf5eb250b48e7af95a7d36e557b4e3f67239a76f3cb3b7bf4563813b92432f213bf457bf701ada397784587e494683306c0dac090f0908272f2bf1051292bc21d43bb02d3fa0ba4288f9ca1fdf8dd0710586ef3c38e724329a9e8267524626385ed23d1bc7094940b4497adfd12b386487355d7934655b9e2ce991fd7dec49a7d3228aeb2869be70fe368a5c804b50d16936f38925a59564c6f3b5ae3175e2b52d6c080d03ce60396d39e92c48314d0a59c35885c26b85eda922b28df25f9ba5df34f7308f2ffa0e7cc2279263caacb69c865b791632282df45a70914015d851ee93d46abfff2773bef709846172d63caa26e57484ab649fcccaaa22dae68b3665222fb4bae589766d151ef0e811ee193cf1b00987ff0bca036468feee3154d6402a2b32b62bc3110b3c36319638f4081bbe8e21de1731b01cb16a591497528639d5f53f407fe04faed72f3071b2a5e69aee4011d51c6ea5925577ccf6c6b84b49ccbdd913e446fa59ba09e6153906965e2102832f495f5b688db236e9899fa727df896b92270710d428bfb6344a396d3135edb1ebe4466b663f0efa6e4d10c2f2c9bf5b91bd973a2dcb851dde0aaa1c98948de2ac15b0d0bacd90fca0ca93025cf9cfe199cfed52858fbaa15a949334521c7f81242940c0b92cd9288d13634e8393ae2a553e0caf14ae3f78bb9aee2db9d5ac14c6f00c953f1bdfbb1cb164fa02391354e7f77b4146188f3b2b6c6a45e772c90011203753efda7f94c3f8975cd1b03700b00f630ecf1e3913de2a348977ca97ba87808bd1248caddb6dfc5f1b0b68552a930725e118c8170228d0e44462179f4dd88e2ab6f0c0ba96e77c3cd69dbbcec661b48ab0fd21d15a0152a7e7126f3df05342d73feaab43e79705a7b87fe5aa499c679d8bdf4dfb3eb7b2e30d72cde12a1cfee9f486dc60d6c7696efb6cc5c0edbdb71a9d745c1cf53865cb4e41cf48e969f404128c04fe49dc39773f37336a4ee902a1b2faf32fc18f00aefe9614077449353145403e14db3e93283308e489536d3fcc65e10c96ffc34bb5ce75fbee6528f518ce46a7a98b6d284937e95ea092869c5f5d4dc6a17490160f300cd7c1fca47c6b61581be6f7a31135c9c933bf04c3c216f80a3533a0565de84a56ae9e0689538251ad156973ea8bcf15ad2fc95e9f2ead63764174e8803eae41be3f95b0ac35d76dc334b928691b3783e0b8a09c7c342214ae6b69f32b725f6d754e0b610fadaf354e51d4037d40a439cb4fb9573d3ff3dd0f6f56fafd2dfe3d1d476ca97d5c7fc5565335235bedd3369914f892d9e3960d2b79eeed094e69cfbaf7413188fc0f8803be249d3cfd3c250158aa68b9c33b9c426e4e6df4b5f7da44bf752a4a570017e6bd1d11e038b605d37c5c7e78a6aaa2d9d4e5cc5c99dc19b6e0cf01440c74263d6ae558326f3024cd27253c4078b76f5a64eba951872a6ff4f29e8f8d55fc3a50587d99db4cd2a1f967547b56b05743dece3de1b024951e7ca0a67b74e55608d8195e6ca0fc4122933be1e50684c69091d44c2d8a4204412e4c95b2169e2d37101ebaff5ee24ae11c36021b64e449dfb222335a961e7142f336df2e112fb5e9009e1ed6bf1986d3ca801c701fa8b41c2a28de01e4f7e9859e7d51a2e5dfb679308e5bb789f564fce94f80ac682e1a0c372915193130d1f91c4788216cdd3430d7baef0fea9c079892b2df1b42cee63e5443e418ff5154026da6c03035eede6884dff9b4d45ba306197f70be5b16e9118f0cbf6221ec6e704f6dddd72061f5da7af6de42c11deb07c4f176a57b5e1940df3203e67b33ccdf7139f24837f387d75514c21f7fb330d46f15a1769cebd15b6d451e89848b8fa133b63166d2622e074c3a7b1e46fd9cf3b9ebf55e02d798440a50037fff8caafa373bc7826c67b77ab4d6a865c28e48a879e999224b301678ca76d01ed56c6c374a89f007fbdf2edf5061fb05757af616b5eaa6a0a7e3fe3b95026f958ee173a7d4f55d8e89a65123dad8f84185146c729421e901a62f1a10d0b5cf3e01b78c644912a0c159004280c4eabc7ef421f20aac8e038e82d7eadc4036a1bf7c4726e687aa377ebbee84694070d6af922a1452421a7df39e2265f63ff17e4ec6ae8573958cf18679f0af4f6d819c94c4bf49fa42e80c935c8df9b6269b626968f0413216465afe0c1524aca65f2c43d0e668a554755c74e6bdbaabb41f04b77de1452ef265230334e71293ad6727731c5e4c344fa971772e15e08ecf0f172c153427bc223f519b4845164263e6725ba4794950c0bdfd888b370112de1af594cbc930f9432ba8119580c7982f5997481848ecd3138bf06699b861a564bd8dc602d445d7a9174d5ced6199834f92f5b699c64ff8fc0bab6a2befa4d55d722af45b44ebffe5912ad458e0942f3c727de43e2553c2db1dd0b9bc3f8176cb27734096e47d4ee2a6adbc80906c877ce2206714158606f5944fe866b97b19711ec168cc41cab84598cc6868aca9a178b9c0a58328576a1aacd15012d9f8848068d222967e3e23627e494eab9ef76b817c1b692eeb8aaa5dc737de5f1eef7e19f3206ef5b69b46efbb3670a82e5fa14e04385aa593fc889d7a05b040427ee09ead86134a7eb993923c39062b05c9da59c2fc770bb9c67d3f818fa75387b688195c91c32bd312e66ca89a3bdbfc45417561f63055df9a6a722517c872c51fdc2d99815839ecebf92b787cfb94ff6cd5794e8aa6ea4a383e124624a1fc18f55e659a1cff64ca625971fbf8f4c036e89ff78b9b10fc9896b1b712bf6636535aee659f620c2896221d91ddf6fe85d50ad58329debc3cf922952181939d574bac1925cec34a901e9a35f7a30488ad85020eddd2e74be06687da76af194c414206f96d38af8322c3a4d649b5442d6ae695b7043dbc46ccc11b339470e4b51acc48022caba78689e122fffa26d0ccd04c57f12b7a54ed49caff51510e9552e1025073c44a522b2bcb51c5d8c0a38aa1b387df2232e32e2d2869404b4f9c52c00d90cb39d6f317197dca188eaf01f92f3ec24387fbe432aa0e7b60f662c58edde5fb94213ee05e33624926007fca39327b9b740b03a312edb0bf147f23e4b93e9e954a9366bc3b2d0c9adee50cbd9189f34a3c94dc7cb6217851293b7138e79efc519c3802e67c07e621247043f847177ff36565ea8af265285ec6be392fae034917ea9aabfcafdc29ac3e65da9f02dd252a73d809de23c7048b8ea1f4153f245074fe04e6371d779553006280c4324ab4998e2f591872594566713f7ef4fa7d5926da80adca26a04daa4be6ac8c6fb8cad920f270ccd665f415c14e58777a539090995744ee81e30cd593290bb4ac02d0d200d4656c5d14ecc1010ce9fb2de40d761e6a0d288494beedded7dae3998db6c2a8f12b53f143fd49f18dee4f4854e3d81fb30158e33a8aad7fcd0d1298ed8c6d7e3b918a52eae383d44ac17b7af95e882f247de6f98e803dc4d21fd6b1f8050498295ee44d6e31080020a0358abca272a09f4b888e97e8dce717b144819559424f7770d0904002003a1b7ec599d454b3a70b6bc8396997de577b21caa5d70af0d67cb5700f263d4610e4f624de07783995e0eb0c5afd3d5eeae5b1d0895100eafb3da9490e5746ee6c941a38a8cc7034497155c97e5fb7ba4be12adc4db95e084bc0596433648af57ab6600a79ad069be9181314541d9a251f60155fc1ad50e06912f124b4369e1f231ff765d2d2045460b9f1b2366d5b226ee1c329790c327241f9a6e08ce2fceccc833cd1961adbdcc8861322a0cdb2634799cd24d17abff4164b87464673c6572cb439ffa79e82ba419f425f38e069302b94cedbb1675003c8bf5110142be0a28ed2c3862836258858d390fafedd04a50f32291696260a16905b14e57a603fefed329cb759a09df57d5be8562a7592fd9649e71f626c8063af14c8c2b4ddbc6c453501178e71e5e6511018b236265e31397d0d25730103081b918f33feb26e761790e474d1c87420b1bf0135182f288bcb19a18cedcb41c2db14f3cf1129612f4ead6cb673ac1314e6cf5537ae576732288ae4adbd1b6b6949e957957494da8401d26a9f0c0832756612832b67d5423ad5dc1050478da238eb8f9ec77012da467881e3ad61161b07e7bbe93a09c9a2aa897d017724f2d4a4558968599a27910bf057407f33efea6824fdc34aee1e755b0235884ae8583e020203314525018e796ee069c00638edb1ab728f98ab2b0be5e4d81e47b5a96082c5ecd8ae35b108e1d9a29bfb65265fd977aad37d4f53578845ec78a8a05fadb3ccf35beed8cc561b144ef67261b628218fc6a6fe6cd14a8ad2dd4f2cf1937c7e46a07a690e717bee1d85051db7458d06e160c5ac613b351de45c911e7db28a9aa629fbb32432c0e313c97f87affef9f04b11e4bf3759d889e4c52af13bd2162693ab4735a9c587d45424e75e6fb5a2e2e03b0c3012758d780d9ac780a1a83b2e6cf679202b539be7d214d453d88d83e8dfba7f53f52bd50c11610e7c8d05826b0be9adfef9845ad87d3a71a5a5813c0eebf6e08106ba11530a86a7b317c3aa64ca6028dd6071927ff28cc2ca579e47c66f5080459f9455fd464d7b6bc77ef96288e4aebb21dc163a2ca39646eb79d83ef3d24ba0e07ad2d3e507a2779456b9ac7128fe54ced1914b7d9211c0d130715b5bdaa37ca6de33ccc1c8ea3fba392a5430bc499e9b634fca4f478fbe06de352a2c5533975abc074a8a48474169836ee4d6ebe4d87eb75bc25469e9befa24c9f5b259e389eaaf81ef40b468592aaf4140cbd665850e60cb96fd594f4bc32afa7b1e8dd89db6573e4ce0a826f4bd7f2b8d8cb8f18f1a0e638bb770e527f6309795a26775dc78e6c054a9be5044c0fc76b6bec8bb5fa4b2cb0c74638074d10f393569e8eaa71d1bc1c3fae35b2330b06ff6e1e02994eb730598b7fbe2d4b010828a4ef8b469db4bf16d716e7fd665adbf19b2b4d30124da4a1dfd48b1b1e06a1328ed0af6b7719086acc9ade715fd1ccfd592927b72b917f024941bcf9a18e831bfc28f872d5981e5ca5a71c279c1ff096961c6dc6e9e61dd872f52520710a2f5cff8a987abfd848c43b043a013898927d250a06076398e8422c68af8b3ed4793031d845f3af441947f85c52dcbe9a7fe08dde5dcbd35fafbd987a91d21f7d12327bb8608f937523cbec095994a668bf986e226260dea5ad529ff72e2fbe2606fabe8a41e9092909c113df1f1657190dfee236ddb7c7b1f97387a2b7250aa402e34e1cc59b376ffc84711753f392047e7b68b5ec1936333032b195ed8448f665af15ea99cf656c082d67bd834bebc304fb83cd09fffaf1dbadd400409007b6055300ad06d7b1947af468e03601de527a22791b208808f62520808210c82bf41269ed5dd2ee723f3dbaba8869a015c81428685e15bea25bb5df268ddb31925618205bb92c50e56262531119f2572959d5076cbf9a0f15e300dfe277b28f90fdf957c75f7e2761ee0a67267fdb70f15811eebceeaafda6d1a5a818ea0e7d771aff18bd6307e6b8883f1cd7398210d32c4e00ff2fe87b094fd58e8600e6fc8298ca1143431fa9073bf53e75f80e575cea4305d5c24f30d72fefbe2a00f73e85d66133c1f0200dd56c9af8888762a822ba73c6fa4bb89c03303ed08407460b93d7d2f337b130b98e68456dfa6701e0b2679352d864f8d878c840ecca25b5a5851163f827c60fc10caed002cb5742f56bf417110e3d4d0b7f30b8ac96339f86e78f1d1dd4fa6fb61b45b1302b5e97285e837d7967fd5dabf006a6914bff3ab02ae339d233444a547cc95bdfbd3107cbcde2468f3b92fac87ca7382b8540807fcc7e890e58ea107bcf6d2627fc3b91bdc420cd7fdf19bd3671a3bc1fa94ee1874f3c873a8064700e96eea31655940bee9323f2f43636d77c86c4101fd2e4bef1a6901d8b733ed766f931286653a0245919f97e8039ed9c61fd6f7a7084bd9895b8699ef655bebded1854762f1c1dbf2422adf544015c194445098a1dff6403931547c1c2e96598416bc76e21c8c95b07a6c6971f6d189c4a8af6859650255d925e7031cc290fc34673afcb31dcc6eecbb72a838b4ed005e0bda95abe2d27a334b95934de8b83a25190fcfc6240ad2fffe9e1ac9ba43d1863127cd5edca6ac7fc167737ab9730aaba4558f0c1c408eec906d55463828b0f818c44f63e75ba18cf72866e367ecdf9f3fea38f1f82bc243c33ed35c7635361f35a24aa96aca99b0e22f0155fabf6722cc5868953f9860a6dc00df3064d4e67176419dbe1b53e9a884bf2b5b7a38c3d5e6182bc43a1e8905b9f23aaca4ad5ba2b6c0bbe6d0ff566a76ecf7b99365708f862495ddf3b86b4c224fd14bab2ea729d246e24acd949936eeabf5757325cf5fc7bc929c661d45e43267940df2384a3827acdf518910a9219332f4942b2b78d7c6dbfab441500839fb90c9bfd208a54909ca43612a5c645df82dab4cc3c94c521da6e6398abd5a5ac12380aee48a827a154a0ce2ccaaf89df6ac71d6c2e826bd3dfd27f92adfbfd78e534ff540084bc3b8cb34336f257581f05f1a734c006058862866dc8eb157e15f9817ab61d433f3f837f7704972363c6941b91099782cd6ae43cd2bd5de302e84c622c8ce3714e1efd2be5611f541f37913812c3ff46a9501e7326a74e0f78ca7bfa1d0ad8329c419701662564abc9d198a04d0ce48894a3551b8b77b9732adbbac023a1b5986a880cec71f8c808c5f610a61de32e3e1a8fc5cbfbca6a652ef97843e1cf0ef6a774321eb811bdc132673ebec12486a24d710b02d7fd51c083a874a7da3421f2b088dd61705f9f5c7d286d0256a3e02dbbaf7e7c6db599d3ab1b653b1316bc551e035a20c58c819c5d398fb2ab81b274933356711c9d0ae6fbfe89b9f1c8e440922f7bbf98f7960ab706b8ef994d33b4539a5d7bf0ac07d3252e57b983a1cea130eb11ffafcd4eab9f6087e94e0c542b17ac863bcb1895c39694bdb9df660d4a46de228be5ab10a081a5cdc3867ea2e8070d5826aaa91f6b46d3bd60fb6701319c4ef6c829ddba759d3fbd86e0cf23f0cefcf0436c0b1b742d52a67cafbcd23feed36268b1b06692390a3c96ccc6ae007c5b3566e1449b13d7acf52a372de61f2a67d55ac3d79085f2296a2106bee2bbab1e331fa89bd6967a9a3a3cb57749f61dbbdd4195088672f70fe8273be8f07724b957c5fe61d894b9b9117bcf49d7bf6d070c3c11401499af616dc542bd1c6112d5e88868e7aee8194111add92141f699d9a497da65d7eaccbb04e495246480ab2d6bdad7e03d5befd8bd6f1ac19b52c6922a781d31e5e0a59c307ca0fbe399505e234899349b5f98020e326bd0a5e5dd8ea5c7387785ad42ac8edb277c98a40ee66696c322e13c1ee94addf76e47bba2175e44f82f05a3af210c1f9e716162a9ef6034d8e446b423e6db0dc34bc33ebe27f434e8dd541f03dd634b0a3b1744f985342036b280ad8d106518a8a99f229174aa14b8968f2ddfd36042e300c66471b811281cb415b78b5e4c0e6c5109634330a0ca8567f1455643b7b6408b3801e67dfe803d2875f635ec647c0e01b6052ebe98dc5cd81c0d6d7832820fea97fe4366ef73fd07a586d7f56d30765cd62c084dcc462cab8007b5e7356af8d49e8fd01070b84b00830d633056e5bac18f8ea62ca0e7381072bf00a995045f3c9b78e26f8804b75301b03e443595ea6863b9292ade9115f9434843bb1e7c53481c65987d4ebea0925c359f56f8e4248de21ec64d5b159727280e0d231f865656548ad39e3a0654f8c20362c1db90003220f03337b0fbe4f0c563b37353193b19762e9434f6e66fb06eca12d81a99a5fec0506a4ae5138dcb49bff4cd373c1ade25769df990ebd2e181ad6e0a2021cea1e411006c9a8e68cc914217bfba18b0a64ac5719e236320eab97474e54e92c6adc11cd5bfadb2c8c001b28e15c17ae5d2854c700302de6397d30c4ac6d7caf245840af29f050d4ae19e3c0958109d228e90e2801e113ace562f764e3b4ea6977739a47a291f9869065863b712c773ae91918b01208ac39d660315a12a3f93749de4fb0a36f36e17069a0d6a8d677619a9e92e1a5e94aa8264aa4c4ed3841497cb189c84a5eec6422e3d5234ee19ae6640b1d9ca5219d8c9dbc101c6a07d783e67ce4a9c3535aa3d85d4e378d9ca12ec6b3a63e668ae997290a6d96a7e2915a632a98761d7da338b1102a5de9fc3fb5058c4132a5b626e7e670c7f21a871a1067cf3ba99c44e9e951a1f9d9d1b1a434d51f03308e74c338ddb58f735e3691e56a2525f3e780c1e804ec1f2cb4544bd776f8c95609641a60d0e2e16acc2bc64bbb1333d41d342f9a3f9b301f28f4d28b5bd4ae12e8db2e0bc89c40369db8da3c229dac882caa6cfef61ae543e379b49f9a912ae3e823349fd383937b747b51b6a79441d5bc259482ece91c8985e6b0e4d1729f25f96c6565a698f791347554bf6a7ba64501a207cadd1bf6c4a374d6791e337e92d400eb9d2244d61c4054c3f2d07ddcce04cb80f4024c217ae6bd313083b8de147a4a50700133280e64180bcac9079925bff256d336102ec931d2892dcb37a5d0364a703b18547b06ceb934cb5d8583b2cd47cf81c8cd544af905e6859158cd654c5a1645347b73c0c108285e012e3d26f62a86c675cff7b1949f6984e9c277c7d0723080593d8e7c50484f781aece638d69916993728ab8c8d6adf1b14e44e43e268582afd671dfcb3d3aa2c4ccbd09099d92a5496afc71110e06f0a78efdb0f21ab4a717c4ce48e7a1cae6a956a624a77724b73778353415b469bde10603b8c524a69905b39179d538c5ed15dbd9601ebec374d24d2e62a5ae6de2ac420c47411266e7894d7d6baa68dab3d57fa66d4f985e4b3adb009f124ddc6acc233342fd829c0a214e37d5c4bf179fe832420cded5354a7335cc5e2c7ef14675cceee02afef8fcdcd595d6e1075e40a901b3fec597e1fcb44ff80d23291905d1eacab4dedc135cd913b84a63f12675819ef476f7728dc6dd58ee791b733d4c5043b119d5edcd0ce5f3ddde55024de9c32a09deee781e64668d5ba0d82e9bf6f3fd6b1eba19436cc7231e67949ccd9761275435d65c2964e8cb8fdc2c3db0e50399c662b39a2dce0423d08a30cf59111d494976bd8150bab3f991fe328605af830881a62d6faea2eda52789bcfa475b51876faa80fc90b1f9f7a82f60ce1bb12bc0b7c765c5b6b5b562c0c4dfb458c4206f1ab8bd08a70e8236f049a96b2245d8fb6f5086f24e606bcef868db9c3df4f3ab9b5be0995f2247fc93ae0f6702a558204606da93f592c5da0082bf88b7137dd42be512b8d3bdf0e33e93b94519d2b27e77c780b4398e08f9c81ae294ec3f76ea5edcf49e2aff48757d141739a5e6b779d5b3b6dec555405798ea5c0180a505922a053251f434a594da325515742455f8ce18483e3347287ceae7fc8ad8bfe56d4f2602ec3a448c71ffefe4287d93e1de04c7ef6855fc92fd867fc006e58f3b33b4ab5ddc144c3c8402a2a5ea547e4bb6db0b20f32bb301a35ab014e86304d69fe6fd665cf2ad097208b769da4a2ee0c4d2029445b416176960e7d5bb53aa4bf714699efb137b55280b999c67b4a839ebfc69c1f9a3bc5f42b02dbeecef409a38a3fdf97d54398e95b5c757d2cc38d75001b173bf0182f46dac172859e1babf75094d14478f586704810c66d472a86f18e17e6bcd03ab36af60c75eb8cae654a99c7de1ca07816e6ab8f024e9cebf71268c0e6f09f1be71469386e539cf64bfe2adb453da85690c9caf04952c04aebedf86c193f92a6c90d759b1606dafb5c3c1190932dd7172d32dc82867213336301ba9c5fdad737859418e8bbccae2ac2c6023e664edad1fd60c2d451143181d84f6d24b5495da4a3288157aa36a096333292f814ad261a1e0ff7fe31e48497b1d84645f31acd26d443725a3077d8e9c27aa947022f3b09ff9c0465868f2583148c6ada24eb2fbed22b269c793fcfd15a6adc86035a6997937e9bf7f0fc3c2850efa7815e33225bda2833e3c53a6a3ce14e5708e0b9c7e7d97dd5848799bced904ef14ac6fbeff8a97f0dffa8bc4dcbc6215c305043663bea6c58fd15a273d820a76e4f0819a54b17ae74ca669adb015e7d4a2335021c0dfaa617cb806830e41f4fee44c9ad930ad85ce1d2196253228f39d5dd6ed193031bc143169e02185e70a045a8e1bb69258f7f0297ff65955b00344dd4cb6aa54edb4cf3854d79fec604b43ea7a5a065176ad7e3c5da7668de2307915a9d578d1b2a8c71e32fd1c2667cc11d2bb1a67badc60b65f9c922a1c5bce18ab794bfd48d9a7c5b075c1f2bf23bb970b2216e2c1133d69b16d90c5f41fbde765c4687745ece17a4fabf668c35381defcfa4b190add6fbf65e0d5b7d73539941798e019c6cb7e513a28a2b0e44df173d5f1970f04c2655461f6c3808d05c5beb6ec920ffd8314712e7a507fab4930df039269259c191a240f84a9d396f4d2967018253583357e59a2decf2398071d3556a70a18f1807fab13ce1d152dac2c4068c8405405dda78cc5b7827978c0a4cbde31d7c51a8a02a5fd13ac181bb27f0f230bbb972b9e1933c38818eb45287904fa7ce8e7ddbc6dfd1b8c7aa83facfbfcd551c2adedeea108db7c263a8f71fbe17b29ef57c33d562088b5661fb7ab351cc66debd8b98c4f09f122638e9cc260d4960a5033d3b740eee1be3ae7c806c173c9199f614fdcebe390a732b831f667aa5b7fd083c830141434c37f8bc7a379812123452d7f8cf64f38714fa484564fd51ad388cdc3cb3b71c8def4617deb2fb20f44f14da05465f1b8d36a078e3ee2dbdf8e65ab13082c37c12c3019f2d5aed8529c0a6439d56876f080e9e98d5ffe5a145bec9d47f6073e0b7dc78b550b8e38a36196818adcc57bc75448fc67c35489ed1b20af266a312d518f5cc36a5e79d7b683b77ee04f57714b7eae30a16c7c5ee644128903077ee23cdf65cab45884d94a7778a0ffce582a4cae578b3596e1731605b4b5192dff9b558b5ea614d6bf17a7904676275cae904c03196faf097a5b66c276b8925e3c6f05f97b88e5fe50eac4f7cdb657dfdd366bd9e7941bfa5b49bc4ba5499491758871d1be34ac62cefb550c5ef2595a8ddc0eef50a1db8491bca3fc641efe12a056a2dc12a57e698aacbcf4ca70ca4712fe46ceff5ac2f1678ec3777ba14df86c37e11a32f44f397932ad2eeea92fe3be5b1bb7f07a9e49a7ffe156f1f186c6f12b3bd567c1c8c330d993851fcb9ced0b0467d8720578a2b51d6ff75ef53ad01dc3a5f1f4fc89b1bc64e16bb7b6d9b2d211e415738b8889a9164de81e6f63a8cecb4e3e418e613e5e4ac07dafb78e2575218d78607dc41a1dd2507c1eec00d5060ba21d6387386622f4401644228d590c068200f5c88f8bf96f1a554bffb8451cc8ac946892e47bbe953a129297765a5725164ef694318b2cdea6ba907dee905fd01f47d85cf27dd1bfb3d30815be7f85caabdc1f4988f370e5ac4206a63be19acacbd56ce7bccbac5fb11c74763b8bcafb35e6faeb429942727aebaba09ea8bdb84daef28d03e0fe5556e303373b33d381552c635dd1fd332280816027636ffeb26f395a325fe35287ca65107b89e965d41a76d5c793d6505414e8ee35dc6c96ebc01cc7fd27683a4918a239e482cb2c901500a814b2f34a7254a3b3412478f3255f439e8e074e64f24e4287332be8ca20ae1eabeabfa7babcae044911ef8a3c5d129f4c82fe8394f0c121d30413ffde758b7334d053e381d073e3316e7b6e2afbdb95a5799ab750a535bdf87f7930f644da287868d2f4e539ee8d3c237a531269e753dacc39b374137a8b6d42cd71e39373ef695c475138c739cc623a26b9d74ce9e8b991e7a829363d3498f485df9b3fbe323a366fea4a424f3c87f0c012f867441326091d7833c74dca974d4c758dd60ed7e0f66c0c7929557f1f5565e98bf2bc7698cb7f7bacc04def5f34ff78ebd9e33b12d3c39614adc25f713da7d56ac8a3ce3f823d10425cb5021cb9a2afbdd60869ab558a8a9e9dd35e92fd58a6c0d534911ec3bf721f0f7466538291805ce2c7a6bcc06dcb9f9ca7fe30d45e98c5f9e2da0dff4a4f352a3d05f3c62a0aa42cf52a31c4383ee9d02f8c5aca7a1cfa5ecb9a7a13f439d10f683787089485ddff22a9ffd635bfe6a40afcffabc4d1e89159b8b25e4aff9dc7e2562775f013bce68ff4e861132ef8386bce6efd0326306e3a536f7d8ae5975f490896dd4b9937f9677d5b8075b2d1856cf33c6d4cb18f7bbf4205c367efc3df95ccd0374637ba6d5f95f7cfe2ee87504b011e7bbb6f03bdeca704375d30bed51c8bea651eb11f0b215d0c140844a31554842c02220143db422bd398bc0402619ddc254e6f2e673dd20fe7d36316b15a655d1d94c7d92d565b5e97d11035a85c180ea9b6c4d0517e37925d7fe5346665311361fbc8005843ae1a190f6f52bc6c4043661bcbef85e0229de7918a56b8a54f92555f2b751f19f4fbb5a930da51dddb3c9b81a73718f8fc44a05adb152ed952263f9e8a137714bc06805646cfc494f4216d4b31a94d07f4918f2acd990bde3ee2ccf2ef7faf2644e56f12f1c5feee489b095316a077d4a9139ff4f4a759fcbf69ed8fe97d0bc53c374e77a925f54d9d690bf31086dcb516d5333827e97605901e184f8347ff2556c7a2c83926a7e4e56e40a59f3ccad858b946d4f72a014b9d3492d5afee8ad3f8645943ec50130fa0e92d4cf96edef6c6fb3c8ec1afdef17b66a9ee73c41e965a0cbd765ac58b65609bbcbf4326b63d09073aebcc11db5c7d05f68b59ab4a4142910fabd1e510f5268c4e1dc34c431faa0054e9d7c03f8833610f883ac99554962cd1b29c770305398db01f94c94a7a7d159d1f21a19c0b075b81526e42f960cc03900a163fab40271b384be8219ede8a61942d3c0dfccc9c704dc72505639ef3e6a9c5c202a5df8d5eceab4b94b97951f2a37067c22d040814fe44ea23302e1aa8171d05378639849b4d8b4ed4c1df09fedb94aad78eb5aede93b20b8ec5f47c86081b187f792856b3ce28e15772e9a9281691aac9ae70b6222cdd35b637636acdb575014393b46b4bcbbf476c9d5960dcce3814b8b334c906163fa7fb7d0fb25262f7e54aa8ce5cf93e3b5e5ca78e134ecf19fc6fdacd73c0f66c9af9add96dd089a2b00de232d36366b966d0aa1b016283b2295d25bbebd3d2cdf08a6c13d2bd964e32235a8317e5824115f413b48a4ccff354b24997b5c21caf9c43d5b81931828d53d6bce14aa62fdf8f5903967719e54d03d2bb14f2e9a7d96589fd52b2e8388f9327d0e505fec8df3810b96f5d7d402038a68d863a73e4400c0fa46c7cfa4e33af59b83fe302e8dd2e4651b6661d281f470ade98762c577a9972e1d08101f066fc38797458e382fa0e7c38c94f490346e3393e35ff256357b34dc4646108d03875637af58cde5663df5a4779d992d98d28036a2307d13d0f7a9abe5b55adfb96c8eca1723e493f7993211be7ca8416fb29bbb4ae291e77c7489e847adafe816e1f2545a62ab1830f55533fd27c327ca80ad3cc20cf72095e0e018ad3b25d37169d22c8a655c720c0096668d9819330897ed89277f84f03446bd432a96480f05ef9438da4f6a2ef6d9fc36e130725454c1eb1d05d0d9a5d8128222174cdb73e38fccc706d7e02a11bc4737dac3744dc9739d97db1455c03e8673c6ce93bcfbad497768db72209504e96598f400db58800dc2ae4a61c3de6bc64918ff82d26dacb283a8c7527939026c76256657ec5d274f404c721127e6db4d09b222876bdf72a03c4ec3ca2599370ea0f2f307a086c282da88eafe4db745bbfd6bff2a5e39d51b2412c14ab9ab45ed6b40788a07a77b0a9aec11ff99472845ee596b40d94e8a0bd988e13cffeffe69718f5a2b931335d46e7c98b5a034341fe9c427a01fa5d50a72ae7aed05c42ab87b0b2a0748f787be889f20ecc40d63c59eeda6aae4aa8094c30488bca3abd957750394e55f1078aa8d50002bc319b973291c5b09a8730a47b9366ad971cb3d746af5438e6c918ea68d2ec9adaca38eb02a0920fad1cc04a0685653a0e95c4796a50c724aec2adc714cd649b531ac8a1cfc9ee25d78bada18926dacb00cb65ae33687ba6f61cbc907de6dd21bfcbd1f5596b0f60097d4a20334b7d3d10a1fd15807e06fa7a59a49e0b3e47684092e94092edc1d96abeb612fb5e023dd97d871b99864e103c7839a3b22abf9a8908c76f84c0a8aae06d1294360138e0d1447e4422454a9dd06df84c9b7373195458b45c9f3619227238b61e191c13ee8f00ecadf9b60f325a94f849e8cd478ab19d62ecd6499e2da7a74b829e3af15d43b2eb7a195b122796b7df2b39124823e23d17db3c97b8bd1eca1d494923f7bf430832000bf2341f416efaf75ff61c4ec2442699a73ae7889ac6bd79b5acbfa8a9b9d1fe31be7853b072f495509675527aa3579c7fe2991f42806b7a0e75d0be093c86656e09f5dd08b08d2b46d91a232b745b784908072c7d1f36160490b9a154c620d1259067e67e8ba3b3b72fbc11a330c0d7a33c86a606031a9495bff263b0445434b7c9fa604916f0a92a172bdac1950638ae18b6cd5b0b2f8ac51bff8b52b2b095d2f59efe468c96d6f30c27b15f3ae9261ee6ce39a235c59700a6b276dcc4c287136426ad568434ddc0ef32ac30e33f6c9d3a4fea251681efa81572067ab6c6aab8af820e27a15d3db1f066ae0e6826c34e00c71d1ef954090ac609a1b30174ae5aec819dd42acf36697168c7a7237be04a14e547f8147605652e495b2946ba5ec6ea683e3ff86ae9011813aaf9d6a8801b310c7f02b39bc8a9cc8037cbf34c4fa6dbf89b06c2a5e23780d8fbed49b722958c3b91bf4f351e3ab7213bce205c554426ea33d015da4565cedd3ff87130058a60e9d4137fac0c70d0e400d63f98790197af351344e7dd195742f5aec599b478c02caa01e6c0cd1c962d07329b7544b59e8fee65e0a5bd9044bf9306ecaab3f27a1a66d9f57c2dd0b657c33b23fae9f0f7183884669cfb6af0260d65756d7624fa8589d0fcce72f11fc941205610611d27e721fde330060eff967d3d2deb3c5634104ca157939fa0a9a290cdaab60da85e2fa4ff28789edb551393d36e6b124c6bed45a2f57ddddd6ce559ebb19767f8c5020c8ba351249fb5ad9ae5253f61b2604eb42a60edc8f720720047ddd67bd357fc4b292823588703b0c878739cecea225e7ffc67c32cb7dfbb78df0a6366079954b091e338ab0b2b0ecc57fc4c9b8d335c08b1d7327e4683945fd9a0e259afdb309df27c82267848e70f213561933c1006598b5a0e7b8ea143408fd6c732ea8ed439462cbdd57daf3de5d1d5b27d6f13a1dcb4f13b7fbf4c44e904f30c872b57a6b46b00ea75e566c877420f714a640864d2fcd089745162379345d1645935dfa7a4dc5874025745f3d2017abb33c1d735bf9028c0fd05ad05a15b490c79296e057cb821b9e174d52a3be675e2ec248058a3748d80e90c91171f41753d7c46277f29e51c38851604b1134d4642d78a6d77d9aa430d51aea431c82588b1000af7927b548d88be45d70f4e8b59aef0a7584b5afb5d16e7fd7864a1256c26d3cc45c40ff4af9a3d185a159a5b1e04db0b5a555735eeaf813792cfb915cc15208436832d14af0ce129449020280483a20b6bc36743275607a901d637ff8bc385416550e5a21dd87d71c1eab6ef3790f86fb276b8db392da8cddba10a35135f94c896851e03661fd0ec4ed2b3b4e355a2e60e3c422296afccf6a2fe2e0d21dd7a8754f12f6865458cf525b0a81fcdf21d7b77d4a38c1b250a48fefdb2c9ef41c2cafc88b41b24380be8a88175e27a5f6936c6aefcb156b4c3be1ced8b32a714b9bc485ced12d7add853deb7ca05f3f1c27215fb6a71e46e25236629fa65df9979ec14feee98e0cdf2b7cbfe8770418218e52d5c71ce3ab3faa444c87ddda630e3ee5461af1ea330dd3fe12acc722c924af823345abb3ca26250b1c2210536731ea43db2d14b40ea1c02013e45b3ad726ac40837ef2d13a7963f10d9a5e796b0384d2209a2e3455757f24dc39baa75067f7d1beea56c60af6fa529087b312f45e8df1f27b08cd0ead8ac0a1cac31071fe06cc93003d6dc35c4dad79d7cf49ec77cfe20625201536ab5ec987d8ad1b63f298d58ebfd01cb62eca0733ef42a5ab1b81f6f59179a293d23e9293ba2cbae2804b81c5030d3c02fb5810fd74d7376c948fc28b1ca01267aa372e5f1b94ac39a105a134383f3ea8cfb2256a8ce99c6ecafbd4edd75303916eac586dfdc87d8aab055c9ce01416bc54af0771bc603ad2bfb485d9f2dc2dd46ed8f5ee1f303e1831c4bb5891cdff271010b227222873084cc9ea7f8d3e59b9b7d2bd4303feb9fd9984311ef28f9172ec9ff62f99d3c356f5c36981af80b0b9523b7dd24117964553ef1feb96ff9cf2d50ce78be68d4460736dc3495e4e53480e4cd80ad7a1b24517a1d5b2053252d9ceb91e84f9619cc899a79248dcfbec9f3410de5c522445f2e0f572c7f658457763f43cac7ce19ac6baa6bce4337e54c262a9765cd0a6fc1f5bc9e1fadf1c945ab35a9857d8b2c7ed0cf3f4e485154a43dae69f6fdd098707a5f22cac08048f4bcf63a701b7cf63a4f4368c21fd694394a68718d50ce9ef7c561f01ab6803fe5be2dc9346672e95794e1ad8f992c247559875b0be9870dc78458c193dd5529de8621c4f0f3828aba184280f06eea499fc3e5b77dd829559bfafa9e6fcab7c2b6de621b85127f113fedf3051de1d37a896912c0fc98c0993e35174335b45cb13d2667da4dfb3d4982e50514ddbe2a071fb1576c632f3b44df8672ce41fe86fbeb8f64ea3fdc9bd4f0724e6116e2e2e46fe5a77429093efce29d6e0f9106aa2a63cf98d9278c544016c84dd45631ca282dde1f36cacfbcf4221aca31880eb4af878cf89df8d81e109e41903657a7a920fcb0a8efb6ae30e3af9b3b689d4b29e2fd788c5fb49f24b133d902d41c1c6dc495d0c81cbf6f136a0f36834e94eb7d15c8ede1b9b3c6200800b6d27ad102002c3f3815e143cd12178b997c0b300ec1f34574f194d0e3badb85e8bffb08419ca804545fe949110759b3786f7147ac7ecd5bb1fed9c5790f7f5ab771e4762f23f8aac4c6dc1edeb3f8a171383d67488ed879b47006465b06a237747ae28a56aef671d01db9be1bc7c9db8bf060fe8b494cbe37128063560c2a56fe2d58cf7f2d10ad12ae963055f829484f7176f87381d419e7cda164a9d4cd139804e46829c49474d0c12020742e4271500be775cd1725c128e6109d916ab2679326b41637ee5402e4d610edb532fb12c34fa6f38ca141f4f0ea92fbb4bb7623b4e8445c8b5e8b5c23ddf78bab0b892c67f4419a3abeec6de29444cd543dee0d2f2256455a0ed2d05fb64f231fcffb8fd78ae6c304e2114f908c0b0c26e9497360f21fb0798c10e83e9d281c201068b21091b65df3658c873cc591899955de78f3a715100cb945437755ad995a5f323bd6e03bbf7cf84caf6b89b3a9ada8d1071300fb1bab3fc2d725f9e08924392f47cf9dcdc0b10785e22d6ae37ba7f163bfd9350ec91ea910ab8e536690359b4e9a6dbae571030e5c0b79ae6d558ed620c5a6690afa88e155397f4ebf1329836af5ffbbddc965a2ab8bb4108fc41321bd3920a781557a27d989b015b15be89dfab23628b3b872e56327bfdf6664c0a9fd5b42237473a2bba63a46b4ae2d7f08cac48452400f5a8efed7f9fdda0da77a4d23788e55165b2d78c0300a5bda62946367d9f930219f328ac2d2d9b1d6853b0a09a12f6c60aa6b70e2cebae28fd60df0aaffc275418fd3a596c24721f7751f4e4476377b0439556e2114d15790855cab442ff762fa984465b59e5d72deeb9cc13538ebae4441435810ac69a655a1a1cc5d19e2ae844efcc25ea13393fc29d578ac38af9de7b3cde74018f93fa65d85eecda47d06a9f214f4217c1f338be6594e24789f97b732efe9ed9bf3f4a3d4bfaa46ab59db475158d19063302a389a7798acb1a9225466a8e2065aef6e330e645019481644a9ebffa204107b8c7aa906efb9fe8c01a01a1f18cfd5f9d9807b6e260710b379f747c78d4040b17f8febcc69a734e66734b37167d2e5663df5b5d256ae7b6f1f641ad42d1c3fae867fcf3ab018355c62810409dafd5b174585af5859f22efaa7a263eb58de27e830335f56702ce9ef013a6ac86189187ea71c264eb64ffbbdaa0fab75dc91bbd5b14e9352584506d8185ccf3eabba22a7a77c41c305ddfb2d54cbdad80cf43e1d4bcd2ae003fbf1560562bada2e118cdbcfdbb05181003ace4fb82fe25691ef61682f61dc353f97d2bb659b2adf6af72283c0f10bc7d50d97af64f045267d3c85f1c2b84c74c14afe4df674ccf26efe2b5ec472c2c691354fe67e123ffdd91d2761b2d1b30296d2b5ac3c5309e34fd426ec9187cd598e8d4f37421ff5cae1c76c837ce20e23f891191f8b5da35cfa545016a79222eb705ef2cb3edc19458f32092fc0eb0a5e78c33de92ac5aa5c9096c36e5e3685063d44a48449999c9532f8d0381fdc9ab38835ac86a9fbba98aebd2fd6771a7680e4a06618070a6181da9ddfb4bb6edaffd7881fc2979d962874ddd566b468bc65c5b7d5dd3c933df344658e6624c160034f9f2c98eeefe75a0096ca510bc4a49dc145d11f64a0848ff2f91567a1fe9abbd8983b472f5abd077adb572cf431a03eff673b959d68e480fc7f6dff681bb4150721a2cb443fb760e9db8f7ac53301ba48046eb7c98f660ca4ec8020830befb6749533c8635fc47b32fd12f835750710cb179ed7c6b7114ce11de2d229301eecd0410859d93cfa175d9366824b1125e1f53e6b29513b8e2b2a4d4dea15bfdac0c493e3b3ac8f08ca241e4b66f6d4538561a44a34fc8d8a02c03881cbf04cff124601f111a37d5c7a8be2235c9182854ebccd65be8513ef75f19ff88e1d34a22d5b7cc5462cfdcfa711b249a3d6f0ca9b16d7a9d055742ad5045d5ec08737f3b289789acd445d0ed0bb32b9fb9a4b3c0a21d30f4d3cc94e637f2dd06b2f8713b45e92e0fe9f51f53741ef62fec8c9297a7cc00628a0182c29612f06981aa72196da591e27fa23047c6060fbc89a1fbb596885594c34bf59e9984a914ad6c77181b8cbd21d40f9413caf6a15dcea7a8af7cb74dc2b501025d0672fe0ecf4208267eed63f33a5b0cfc351c3e791be19b70a60151534413f940df1019d692a1ef5eacac9367a1c397407e60991dbf7483c3ccdcd27c6c9949a70f784c5ae2f997c325c9c92f7bb11ab1e445c5c52968c01f9c934c2335fde7c4ab6fd648cea23b4674a137f49f348ae16fce05615cb1f700b7f4992ba2f1cc1556c297a5f4d3b9b6b669686611653302045e0678ce08fa0e17e62e174971abbcf267e287d9a54c04f35f85c00921a8bf15946f92f673209f9ea4eef2f9b1e01c88c9690c7c58f76389b0218f352ee29abef0a6c3c3b4dda863547c92333b6dcdd9fd6e67dac36604228d590840f7dffc1c9f5a70fbe67273a8b7277190c40f69926c4f162f086b4aad16b563a88ad1b293db81d00df749dfc7e323892e25e211cfe88134fecdf945d84577b728fe2027abf10bb51c571a59d3107440d02f2480bc96098054ef9e473de5fe6e67b051c50ce3fbf3380d5b52b224e6169d228d4604a7c4901eed51a32b20864cabea23cf585f213de2313e4aa3c3565ca72038e57958f4b5f57399923b526bd66bbc9efb5d492130a9e777687e53dfb3dee8a1e576b7455c84ce7b35bc7cf51e930909b2fe03678faf4593ce4882ef8efa75c0007d879f3724d956e74cad156e8f7567bee0dea8d913cd0bfa710dec1b4e32c4ee3e94bb04dab0de875dd86d23bc37a0ed4980dee2f8046f19ac63711f833785c3ca73c229305282c3145c085eb1077ddf842c7c3a82948165cc1fda4a7e8c69f2070ad400d997df281d374182d16049a63aab9401b957541d9695f1689166e49d1cdd741bc928038c44418da52e675f4bb843f997eaf1d7a795dc03d087f1d99d1f79659a979d9613e7be88175fd043315bacd9b9c09fc8b2ef35c6def2604f608a2e4bd5b86cf2aa6a5d3589ded780ea46c9bd704e84f67471b41c8c414124eb6236bbc0a1fcd6e4e4e984d435721f6134c629133b008e391d72df561f88c56c14a9a71101f8763f3469c6178dde13079946b15204c945b92fc6699ed0e4b33251d3fa67537bbd82f8b3bdbaabbe64121c9228b5bcdf08004d9e068365609fc5d896d8ca6ca63762352c1d0b5de3aca0c4346b6eef2e235fa2957cb8b7dc31c02f8b23aea10efdf559222bdc790c2e6c91a7ac392b4fe138ccefde5f18058d84605ea79e7771292dac19876f7d6f0d88a09a6fc3c6a8c5a784f768508997880943b6487fed2924ee6414d717ace538dfd3b193f993e5e4d4416b80d655371e9e5a3b4348587e20b0e5c1ac4dab313fee11822ee23a6015a42524c5ffbde10dcb2f72e04e4188e1e71da047e7f5b2c9942d1eabc12421b5255f869860e024e70c0751f4b72b6f8bb52979aa538559b3a67f59ad1c8105d83c1c33b3dcb78c39a3582dbe91f564484ad46d303b4594ea437a0b6f8a52597d745a300edbe962543ad3635d23bc7e557e74d47123dbb516ff1548b916c14c09b7b2db05eb97485942b0e55a523e327f17c4ad3a52c844bc13432a469cdb4ca3575d288c594f72a71fca72212ba8bf7fa6df41f47d7a730b0c743aee202950ff52e503c55d6130b3d57e99e6299a23debeaae1f19b731fa809b08da0aafd51418c459ea6d8be2cb39c60439e50a57db00ccc8fdb1a3cde97b5393ae77b698d6806a0cc68091533d0dbc16ecdbc318869e9106d9bc1e017cfbd9ec9db776f3b9c642d4aa61e5f836add8c27627d027057a406e70e76eb837a2b9414e4790bdc377f9c6c8dc216c46d622c8456e688798a4a033c3aa2bb3a5dbf5fe71b174f56d6a870db9944209f30df08449bac4c8bac1499ab0b9e9ed0b347d12625bdc318b7258294eff94102b637da3fe4d020533e91aba7a0fedc12b5dc5be4a5b3745df581ec9b8133a30dcc6c8401a25d9a544acbb17d01b71ec5b09a51c142318f0cebf5840e51cd552a0a60a46b2193a4b48b0c8a1aa20d0fe7572916310de0ca19aaa2b87477b2a9bbe60e304f4da269b0b8aa9d32ea5b618b706ca92bf3c4470d2d322029eb6b8efbe924335ec8bcb7bb530ccc5cbc787891bd26b8bd3b2dd418d75ab962ffbe4c7db46de893750cdb3af165c77cd1042174522b22405c392f180a6081ba09b56ff595cc30e0b25dfca21fc62af01a5b4134d390f512b0cd9489a83ec3784f7ae6bfa219a93fa63b8ab8dce5e83c6c8457bf866cef08891a65923788befdbb7b447cee9ebb2f97c59c7673054be8f3a45f116fc621ac43e6f19c86ce15f3e51b947b72994a028627c9346e9121fb9b1df97857c7f79bf724a8b468e08d7b9bb2c5be2d3a57b0d96c12aec88d6cef3320d61dadaa6c168abf88b434e5fe129f75ae665b108694d31d4c70935ea0eff4b412cdea33e934a8da77f38a751bb8dfcabb362f3062c9ee0a73c77a939f492a4c4600739361df5efe81ec4af19fc71e4801f410b8dacf252a16b1f373c6e963f2eebc95ac965a2885aa4c5fdf94ec50d3501bdb25dfa4e7c01e1db6c2b1c094394f21aabf15a8a6c38e6b3ef1692ddd9a3d8f85404dfb0a375492974837c5abfe9e9d14e4779e518d6ad22a9924ad2b5bc066bfc4ccbd98a689a2c3052dbb37b6c2b20ec6818e0a33c0ce583a91353d3e79748e1d0096552c9c9eb7194c471c3a0075f74e8b205bab4353bf973cab7372f16e64c7e8046f0ebfcc426142ce9b4d2e792b8a0c2359a54e3074b2dfb179e8437c827dfe82f5c45b7d5d791481a2421bd16803cec64ad9bebbaf57d7b965d33205beb39fdbc58932ddc8996543437890355a914b7a27fb72668d205b6968d43d20deb594b92d86c87e4a897df1e3cc5e8956de16ee85cd71e3afb031c1f52a5deff8283ef202b1fa641658d6f874de78f2055e0ddf0a9ef98a7e58e94a0e2906635b25c338c9304655a60164ed1813a7d82c7d07fbed66c2bc9726348e81c92955d91285184bd269298f8f7529b2fabdd228dfb565d9f91de7066235272bcc6f4fbdd113a6c4c6209d11d8536ebd094c1d58428f6759b3af2dfa33dfd41f1d8b193b928530c20199a9a156ec4819526e7d414117a1f6c38948532c9dd865fedbbe915208aee2639f2d8eb28b5b99a7e6ac324c40ebadaca65294c81af80863129426cf29a6628ebe7d835be4c33676814f3124d2ef32860d3201c4a117c45d2f908c7885068fb6767ebacc39b3fbf708c92149441fd8163583b07c4ed0af47fb7dbeb9405278d1010bd9406ddb2252e5abb45c15bd62218f830939b1b94a8bdf42e1411f5168b71fe3e9e98c7eff2cbd8ac2ecbbea9e4b40edc28a696923641cf0885233757516cc5d5d5fa852f97f40476d9e2a49406cd1e337329ad8d629b502d3e774d4a6d457faa10674473ca0ef1e5e900679d38436d6b2ca49c69b9f8c0e25f8060661638c3991bb7ef9ee3279a8e375980fea3aa5198a9befbb5700ad1a11d77b34936545a2a6c55958008ef72cc3b8e99e5e089a295bb31aa1f580ecc5ccb4486153e8da62b119bd62fb18245302eb3e3dd5d0828b86211cf6244865d0b24a9884cee8a66575801e87f68cea421753ccfccfa6f1a1e0957a18e9cd8616b6f295cf8dd871c299c629432539b9248b199a7e3516ba63137d4b58f59823118f8d3106ee289311ef5a48d98a6b6b530259f993c8df10b752c6a756a16640f9f0990e683f8c1069d28a0eff0649699b2a51c0e6f5c194b4dbe80b28d5c42b8cc723b8195ecba476ca9b57cb314648cd622f5d1b50106c1ab2a49390e7beee90dbe561c9afb3c3dd02409f702e4508d2a9865beab4f2519d1733075898fcc1ad5336937fda1be7e9b2bb4dfcbc721065fa85670ab62ccef82cf01adb1a795c97d5af783bba733dfdc931e01c7089ce00f8012ef4de9e43186db98f9acc5ef29d394256670afe608b3fd0e4002b29aa0d20d5b42094fcda81e6cbbe711d82ca0aca7a445a164152f2573b933420b6e3a23fd7298f133d048072ad20b9c6ff014d857ceedfeb667e166b691d4f74bfd1944863b2b6cc4c855010b27dbf49792a2261b15a3d2986aa1bcfdb8f8061023f33100444880cc3cc8fb0eeae8d9d9415a8ac9e52a167a7bb23aa54d239d59b27bacb649a6474269608aa7a27d5e0ee1e4ae6148a5224bc046bcbbd1fa062294712f86f44d5db02d055560ba280c178af9d830f395e9fe84d817ad6c204448b82ca040db09161ce3c5540e58c3720daf26d3342579951dbedf1dfe88566aa53c10aed0fda59b3811be97bba1c55676483493e488b4abdfdeccbac5741e959f6bfe5ec4ac407efe8ffff1adc859a8a201734c653fe7bd3a7e601388a00349697457086a7cafa6e82f830e0883219d7c572fcc9ea954412f6096cff017e5eb2d6d74e136ae2565ac14e4ecfce5436dba20a97d62d55606ee20cb1c19d434a9b202bb399d7f76447a0e766d3be1cfff420a637813afadd6b05b3da2445a83bbf84193f585898262042eff110d8c6402f59e5baba219a40c2959788aba4937ed6ab07306047db52481004d976083482f8f9b03536da61c50c5dcb2985e76c3d0f6d7604c94977b50ef6c721c24f45621791d3d604e170cbc6579f1d137533ac5c8ad08ca707afeee110e73a747790e94e22e17c68d66103bb5e475a0e0c2135daa48352dd59bc44228280a7c889da1fd1b1dd408e4d5943d461bcca0b00b9e60149a35e68c786772388fddad637e8a828458c43d59f11822b135be53dee02044b06d44aa0db93c4f460874bfe6e16e8085c9d151157ab07315ad98ba45289bddf3dd1ca71fd0c27d3f341e9cb172ced7a5d7c931f0675c856e9a7e851c9808f4e255bbbafab37d1cc2fdd3b1db9d8a11421682d3540fa78a70bfa6a04e0f7606174c32cd9cf9a3a4b1696598c7d714c5c6c8601ddc03632bfc5ed8e6650d6ca7b24929f5a3e1b4627b2ad517be63047a2946797cebdeefe7c99c14de003d2a84761ce4a4099fe98aee3ee81461f8a0b12af6ab970face896f5860dbf012cc83fa7dfffa1ce530cc91a97ba8e2e8b958b02805f50ba1b13f9d51b11a565e49f76becf7927521596356caadb8e1df0d77e61e55fe653f721f1f9528049c9ecab03a21aa851384be900add118d5ca03cd9bb787d56e79f4019525a54b73be76cd8f7fefc7f0551151286209b3172dae21ba6c44862fc8c324f1da59f85e88c6d1d9554b6f04644fb1fc5eb0a7447e966bcbd6f8f9c5e2e19e2e675dfd14cb6db545e981d910d043bc32cc2ffce6fd66bb8058e0ca2c804ba4fba1a100acd5e03ec9e5c6429a4f799086595ca74e3d8a746f30c714417fb41841d62288036b7849e7035252cfd1454d637ceea7d9a0d6397616e877d35c477ebbbebc405c994800167c5f37b7bb4b915c362397cc33cfe85b60e8bb3cac8c0a506478a32428a43df589092a3330a9ff19a50927492106cc3e401ab4f5f93e1c6403d1d353809d9c68a20e2735ccd11a1ca0276c3da8cbba807f1338a7b58606105856dbc25e5808dcea981d4d38ef284983ed085ddf99ae01f00378dd2be8a794cef9f91359f489e6caac1b8b644d1d9411185d093f100e2ea68ff37da9d948ba1610483ca05f7328724c417545eb9590cbaa86905ebb19af7e6e4208ba055b106bc90fad1132e2b93eff32ec9fe2223f7992d13fb990ae2c299482f3209da6f307c288b788b2d5ce4dbb0716841d10ae416402e5f183b9096b3d28878c7d2383532795fabd37db94ea54e79cce4147410a0b70b8b74d3e74dd3fdd3130c08fa689a5989c78a96146eab2b5888ded868b30c5d323b0d3ba2fe226e973b94876cf5dc39f30b112a422a5698d809a40a0f690ed83f9966628c6a7d3adb0f675aeda17649294e9d01f919f1cf099e98acc62dcaaebda3fa14b79427ca1faeffdf760341ced3d3c082c2ee34257b5c8545e9e51763599062b55a29e1527ca1202cbf2ddfe0542e0c06952c5cd5ee793ea2824797f7885a3a727c35af5ac6530965bb9d867e35ed64a2a379ab48e895ed84aeae4f0fe5fbeeab6e177cd1dca454129a799cd2b85cbabe14adc2001975f823016a9ce662c488c42eb03e1811d07b88c5838145a8172d45daf3b4111214752ce7f6523981c9a420f33a964956c7f0ce3e2b70549eaf4b2d2edb30cbd18e7d24289e98b258a7031f1b907e74b916ffa6c154c383c35d9c6a48c48cd1eebf23399dabea4d9f69d3ca768dc9e5e0c998c823c911da86af214d361b133b79176686ab127c084fd6e2cbaa42651556ab257ad1da0842ca9a5f41f732a7413ad7b59b53d230583cf60f41390a551c740d89813bc7027085dbadcf08555a08943c56ff2ad4f3441f0791f09e3c8c5468bfcf7269bd67c242b5ac1d7ea48a4a062565cdccd0a22b67967a4041448ba313ff6bc19300fb400efdc3e7def36d138708c75f4db04e3f57af3faa6d7fa772af5541d9095d68789c223e449f14a8c814b88539a9beecdcb3d5396c3007d2a08a166acf45f9d437c6eb1993aa6886ff0eebbc5e709f6b75a63b117b7158961b5ba490ac8edf2b25ac9e49b223a09425b2eb53e90175e4ba3ba198f4dced0d6f6070ab30a6936fd4747afb2fb52cfa64f81d13235e1219e8a8d426468e5cd0d8ce2f49d45664b3732b9d43b0f25c0b1b4b153ccdca486a85286e4dde82ae3a7f5d9d0fb9f52f3773c7eb94fee191f8de772e89a515b38b8be8ef3eb6e4f11f542a85b500a1e6e22a94cb2defc16811adb26a54a5d87e16716745e7d87f1b247074952f9838db270c2ab20ea591ca740d3117a7ef2e0e0694737d8de303228980176e44c1d3dc4f47523e35a27be1844cccccb35b082326252c2b70b9b7cf8ff1b7dc93f318051d78a48d239c9fdcdbfcc0e7bee1a69731a8558ec64abd2fab2a3cee5f6c83a05131b733515f82a9c3c08e52b498b0c20f6010d3dcb1e11a62e64e9f743b3faf9168acaf87117ebe1d726cda2a1a1b458eb6a10d69e3da9a3fab1b6dee2df72b04a16a128e102b72b8650b77f6742a9ce82126c6dedc4e6fceb15bc7657c636ddb43d4b92b13b7ca64263da52ac2a9632ac8676706ce8c9cb3d42889c876e14684f6a919599b4b47e657321801b336ccb8adc8c8af6eda1c9358143cb9e2b7af649cd9d792571a02aa842072005feee5d68eaac3850225b694a621bb4764bf83ec5eaba8a12a97ccbcd7e537d1706f2f28a164fd4c75df9bc9f1ba1e079306a506cf9533b5a8163bda0cff7db153bb01e3c2e94752da91545adeb422ef23396a47f16e5f5771fbf0a997582fee2815672249c992c5f0fd0b0a35c6ec08b2501ef2987666a0f520bdce23ed5da2e0d84fe16f3a138102e199004c1f09e8d9d5e222608f448c6e898a4b6630e18fe681d2cf7295e9f606864eadb9d742cac6915eb41625c91dbb8f1f768b9b99ba8c34b31f63daecdd90bb246dd732d1da48e8d56824d23fc32960b2a0bdea7060a5201f594145dbca4e03021e7dc29f5c3d340bab9f83f4463c7cb4bcdf30feabcbb261ba4c8fb0f293c789022196aa8cf92291919f66efad22d1e7c4ca608e3e972eae585a9869fba280355cef1085df3f1387e602033503d688752c0e2e3c3c410547c4cc0a17f491bf5f6e56e0e416a56ca8bf0c2e95592604decb4e7a00831766dfd0976de99b9c624687b542fd66c3eb101719259938e08e6140b234de7c14a4de490902ce42b0f95a11268552a8b9703eded1b5e914bdf8176a34c08fb2090dc689827f552209e8af773d125292ce5e8745826d1dd6b37941a146273c832fc12aeb4dbe277d2b60fc70bb4e700d327c3c0c51501c96b60fa0d352e281d651170c309ffd65019eab047ac1982fcab9c7fe9fcfb75ca5338c5a01f29ee9016478de0dd3882d7bade06398883f4eb5fb6314b30ab13d76814775ef028706086014181d7724e301cd82bd0fd81859ba8967febd8ea2d13cc4c5e9316b66663eecf97fa91dba255e0cb542b2aa73ea80ef0284515d592c7217ba96ed5f90cc0a2824ae924b81a8e9b38cbfce0c3f3d9be05c44b4e9926fba7f964799b371d818b0faa7f7f86f463f8e75a8a05df4001fbd671816f1928d2b080c9365b7cd1029b19bcc1a508a5a976997ebf96c248cb60aa9e665da7648c85cfa6a778d336fac04531765e73c56a3974f0596081e819fc0d5de31807032cb783e656c9f34501e7be4f8fd7d0856abb8f5857495c390d83f0b946f5777d40b15b5f66eda9e14d3b80738810bf8281c7413082af1d7da880d8078c20712ee35a12bbb95d1994e1abb9f5a791b252c852265a0a9729d5bf5b3c49ce6311ed28f8004e551efbbcf2a36414548a687ad202fea5323454f775c2fe6502faaaf48c5ee719ae9f20946edd5d8a60d0d316d3812f9d4db1ddc00c94cccfe402f8fbd48414b8713a2c330450307274f3a2e3b6531b802eb4e838fcaf57e3495713d760b30c2c152e0afbfeae6914c3f1b97af0d1b30d74893ccfb1a9df0427b252f33bfc9c2f91e6e629a675765fd517ec6be5f1926444014cf9391d0c442e1184b9fbc1b3559ab42d01ab5287fa14d93169fedea9c944b8d9127467d1626a4f6daaedfa2f19629b441bf8d4b1b3e6348a5838f10daf89afadec761b5b2bb5a43864f4019e2c44eace2e80bd87a4fb629ae009a337b0867f62faf7d04d1437eaae70db061b319aae75f7257737ddf2dccfc04e5ba16901b1b11be86425d14d0459f59c7a2f15b150828c4f7f7423827bec767d1515f2afdd0dc9f70f098be92461e084e5ff36e598c37186323537b86e5f42c9a0e3fee8c2487db72ef954fcfc20cc526057b8c4dcd110e810a4817b4222e555160afcfe4f866301a419edcf33487196ccd07b9f73b8184ee3c603f6198e9bfeed08994c8407a6e3ad0657a6c4b69f767781a678309ab1d7bcad098b97d13220bae3fe75b375c7fb0f8e13c88da3cffce0cbd2005864d3228c71ff74c64972ff32e66263c7c0fb498e9247cb84e60029d8859957a5efc7d1d539297cdbf194413b8526f9d79364d911493e72e851da8471d5db511eff8100255f5b9bd89a1fa234ff7cd181587584a6ad66e013424a0ff8bc676a336f6b04359fa6f38b062ea2321b8e37e04c2b326af4a6607cf52b6b5353a707685c85a29fddb3b82dbead25d319b33f5645a24bd745b0aa128615a39c00ba1500ab369cb4c00693877c49961db421522aa0d26d7f55a2dbcea402240ee6ce1e385e143d98e99f8dd1888050f0a4bc09c148c7d14d91973c965ad205fcf7ec7c340999eb7442977c615af7d3247d758790cdadffcbbbb0d403959faa871729de712f0a7c9ae66fda4c6d2c064bcaacabb573e795dfac8bdc1720c34adf6a42eb6a23c7464c92e1a800ef0240d1be0cbce3bafff51ee6169dcf826f4af64bc7509870d56f24dfaee71e2eb537df4e19e1790ecb4fc7022b8d685a0d3cbe0c46059c3b8686ddd8650c612bc235e85d491d33247711de92aca164d244aecca2a24a8ce1e85af5796beb07326beafc37f1282ef696fc4c5da072f10718a77d2c5ae8b3cfdcc10912307e96297bd9f2e820bcef04938b8645626bdea7ce7bd33139f3748301b8eb42eef30a9e06e4636b9b665570bb489756f9372d3e97427e5c790fa6ba89706b9b2d2266db9a7db894eb9abdbd303beaf8747b404488c6a9371b9dd2ada0f468b32e36809198179a3aeb19bc55f1b9f338811b71e391fe39feaa3b4ab53c41616166ff94333c1a6d66172f0723f2652606cdfc923f783c291a759f72202f48b85f1c0bb9f17fe242a0b296a40f3ef802144cf62553df7238ed00d8955c1e574b82b85a9715d2adb337646e0d27da11e305c5a727f7d3066a42e49cd0d4068fddd7199672fc53b07073c5627d3c1e6706592514251e0f78ce7faa70f22da473cde7692168c6d95269b2bc1eaddec733dedbddcf8886b9a5c2aed26c7eda0c97ab49b986b512cf0aa29388dc1299704f1cfd84adfeb997d3458d0ab4306ecc99f145ec2424fb449eea9e535a1f38a3d729ca08f559f1d63942b145dc8248c24f9956e90b1bb629d217d12108691ffc3eb4507a22d55cfaf1918e7bbf23f5e114629110ff877f140427888f7a8ca5730f71ae8d113a984bb80a6d21fd4fefdae84aaf77daea02d6d4973fe584cf15cac04e013c5dd65ea7a2c3f6a79fd5685cc7433700968072d08b685c9ef45fbfdeae83ec7c602f6d5b2b22933406e0134fa7a086938f5be4159da6f7ba14363d6da382af5fc4b8b88154c4bf2ee217ba8a3c945dfe950f8d9275f3cc9bd263a4c89a5f37ea62275af403e1a457f4c0619f3d586632aec567823e794c014658cea5f58901dce949ea8965be7ef3025fb78adb0705130eb2d39afa24af5e67b4416f912ac293f04db0c2c837a726e727ad729f91a40a62fcc3cab55bf46b232aebde92bf11c413d0f3ef9ffdf333edc61d35c4a657abfdc8c22057188510ecdf9c8f019678d0c02c693411f90cff0b33c7fe50c0776825e6bb285ad3e4371a87cca51a08ac6e9e0f26f5e0ee70108072e9f346014248d1cf8a7b1a4d1cef2e78fd1a69d97ebecf20e97f20df8d4b2b60a3b4d9fbe6073734a377802d7f1c0d0dff5db0a18ea98712163b3d0db0d1fc442468084fa2e8dd8eefdf05475b7d27b2a58625baaec71a13d67c23143471491c1b56f3c7791f35ebc9225071f5d719bd11c42398cfee06debdb0de8f33f0db78f3dd3cce3d01c4eb3a76a1aa4d5db21ad17c0e51d7c45cd9c10244f388f5a96de1d666289a207a9858d3d502d992c2136a64cd04db2d8a2f2f5c8d6b1e214faf77ce7a77809f2479aa6018b26a3aef339f4407eef4b1bfaabb0a80b4a78953aad7d33f303f5bdbf75495de81b965e39f5060155901e76f7d2d7804a8a51251ffb95c938600c5276e77f0bdf7539390c3181799accf78f8881dfee29969cb2f9803d4c59744ee61e4fbb9ba8116e4adb63cfec5ef76cf70c3fdc8a2bd47ebd1662cb6dc09ea0f58c1c3e61d78f17b5294af97e7102e54f894ad56389948c9b233d2f4b849c4875a5ca35c5d08f541ad6b470a732bc3f2a30bf2cd200c357022becb17e4cd7745a6fcc4bc101a290bb0c5b5693a241cf904e758b778435914d5706587b765f078e4e58c81d0d4b8a5cd016c74084dd30b80227a46fad64108b0af2122757eae81194f4e5055967a19f8a4139000ff650f7478f58be886f6e340a1fae392adbab6ea91609f37c1aa080bcb814d32824227a187eb0ba5bf7f7255ee9f79e1865f710725250a450c66f8673253f6a9382c960bb9232210920bbdb5e2fb0f07d050cacb5bf6a061a74e917c38052c9965f453e6992c656432efd9258d0a3a58583bc6fa5055f5f195965d4f8857bbadeff59a28bfa1dd31202bca9007e726c00dcfb7d325bfaca38ec128a8b02dd68cdfded8a3f9f450802cffba35ef880a4cd5b4f2fe0fe009d737f1f395cc9a3c971fd234d12ad03e58b9cb66503660d826c5371fe6b7428571193bf2162e9a53db31fd0f8e1a97fb540c60ea187eac6362830d5fa81debe77082bcc73cd952e351fff20f061aeb906d42d1e96b6b6061eb3ab30d4ad0154e3567bc634fac4a15a49d52f994f836fa707ab5764a682fb2ea5af12bad7713333b9bcbf8a4834d88ec357d448f1e8ba0415b979c4d70ef16bf7b2375b0a041389705196a9d625665078cbf253299a0481d969de7e269999e8734f1b6df119d2cd31dffe0f71b2d04748f85465d0d180ec144a65c1960302ff1aa1c94f8bd0867d932fb6838150b9a8b3029427e4ff885128d98b765849f73a8352a2b1f830826531c759f44758d05977c40bbae98f9ba4aa491fecf5acbd4bc2c8bb078bd4de51d630bf4667a47c60b529924fc8b0f2833f9ddd0692cf91e1219a1e185f6e09ebcf794c0d5ab04341dfb8e93eade54b2ebe1c3374ceb7f1940ea2979f804a73141622b26647ac0b2f47b2f69c2eb9bc817da039d7470adc3371e460e794dbecc76693c838700a7bd168d6e4ddb5766d0986cbc48554767c9cd0c0bb1b1647a00a017fb9e4f251ce093d78faa8b2b162b039e1bc588a67624a489acf6ea8af0697bee7931a5d00947ed93affba65168959627f56b437ba104101ed2b6fd76d2036759901a08779a4dfaad78b48d3edcfc46f9a027c5c3ec60d39dd5809e4a735aeb0d1ae1c1a5f60cbf82f6983d6cdf22d69ed001ee78d471acdc26a6aed900ee788e7d9c9d7e0c91bd020ed3840f140be4566bd0bb037034341db4da490abbc5a2a4259e509357923bbb75d866e8cd5b2e6ffb1eb3bc4aa87980bdce6b84da44da13d8115cabd4dadabe5fb7faab9ede27e560fa61aa0e48cdaff8569e953f9414250a8b8979c4b6b6bb9216a90e6ae02a3792f5222238b68a8b3c186a3c997511510f7af0922fbb3fce971c0ea5d3a610ac5443633eefb47505467f39c73450ec8611e3186cba250d670120ddbc1f32f7f8a593bc81be6e7d0bc44f833c8135230293a060429131d86dd5d232e9491ce0c909dd4994c3a0c3f8b23358e81c757ee2ea5de4268be1a3f0b9b7424dcbb6821b438b7bec3249e6cbca5fe211e7a7fbc0a6143fa1c8d5b7e289559edbcacceadd2812f94f6a0f581b09733a842afc50f7d6930d2f4d5c1e0c69b3c2fdbd68c1a0cf629ea5fdaff04cf8a8188686596a80bec4b1a4accbd746a8fc77ba0eb8251d99c59d18f5ed3b85db49fe353539aef2754e0f50d60e824e238014d6774734b7f2e640864dbe7fffc8a8333b019bffa57305ef4d1b28532b0325e1e44c7cc36e962e537b6047a944fc12c569cd22842472cff8471fca6cbca5230563217ac522baec37fd5736a5b1c88cfa6c90afe6b91dcb2bb6ecd322d3a6eded17ad1ac23f8eb58cf170211f58e18a6b590a61cbbb1e90f229f0c342327be910b73b9d853055cd50698a6b53f35d56c7d87b984789f8ac23fb5516e573ca7cf6ee3d2b314cba6bd56392ecff2c17a9f5a3f9c12943557c3dbf36cefe4699455c9041819e9f95a705af9372e40dd660f392c332d803d398dae570f022919789ca88dc6729eb3a96426bc5ec368214208e9b2da9ff8ba08ce6308d8aa916e85be687bc4d4961ac8f1f6ebd680a5e00897c408de928858a8f73a55b79deb130fb070241f3b07c1f5cb5f2a4a57a27458feb2b47f9698986d1d61c0a41c661419a3f4df38351f45c1b95267ad8471937526153990f7eb5294164fd4c98df8adb915964176d399d56e86b47eddebb2546952caeaf84273217bc7a066878afd5e8d03d833b488bb0519be62b87ebd00c0db4bf23421142f06a01d0db162498718b5d3f05d3b176a280df1c123ee2c8f85d4e4430bfe2ad448d7602fb2ae730a349d6d33ec5dd6e3068e8046abb38f8f4ebc3f608112fe84f71208c82964391465c222a16814e042425dc195f6ef9b9ffd97cbc12193e9a27f41c5bc638035a9c448ed214648eb7aff35ce840ac22e39ececf2d20dd236176518be098fa3fae2061a63b4b1b5ad13346ae98d1a095e57bf427c2b020b6b288f4bf057eab3a2263cbd78704dafe00165b697a1b2a695241e1bcf9f5f776ac1a622bf02efdb748c9ce476ebd486fd21689b425a365f9713c4c1be4d0d52b56d3748939c7de21343bed674b0e8c3e0586aa85adb4bbd784acad7bd936368926c4fd8f1d05626f9d7fe18d862b47a7c77919c7ca49ae066ab1a165e2f2ebc0aa5a6c11e9c8eb074d600b3478de297d1f75aa043e25644afaf071e62613bb319d86d3624ba57b53f2a0ea468c1e6da56b31c5c0b9fff5e2a50779a2c1e77389df4f188739dda5429cd2339d155a34cefe7f62a8067d533cb91b4970a3217c9e82e6373a18dddf733354db986dd70bb8bfe9c0858546e1515faf722ee08feb94880f68f98ba8aba7efcda2af63afa6fe2c18620eafbacb09df057eee3b8b5bc5f2d426194b5e074fb248e0a3f9b30c4d49f9432ac08679c59f94a56bbb6dfd41c45d65480c8b3ad10951ca4f3b4a8a4ff0a280a7929d61206d7d988f3ca4bcb7e5f1926dc7ecc5e7bcf6cd8131df35e158d66d16463e398ae55f47ef74c033c43c8207240e8d9679b26c0fbbf471f6af20b1be6d0a0f9441b00b15a1c397378f86b8d5b5dbf40445f67efa6d70450a12fccaa999c0636f4896d31cd7b3e4fd60c241d90bee9f1336e85fefc77615d49c487981c8b2d52dd13e05d9e7f0df87fcc39c5fcdc385835957c91f334b1075ca305a789fdf9a919e97a345a7ba82f30a0a4b110048fbd6291116df9d3da24b0b968d8f37c5bf0e99bcbe109eac9ec50d21885a8b855b9eacde1c56e6f46b67aa0ca1d4b7074a5e2f67c1c76a96e3ff0f842deca580cd43cb5917775dc158b7712536dbde3d5a3a0a13a1a29fd6bc42b0f1f5ede422c6394d63d0ab72d7d174a90c75af5c71350a8abf8b8d153d68738ea1eece055bee4651dbba2d12cd316a3bb7a8b486d21eda9fa97cb12275abcf7ab78634d96703eb7f4f47946c30823c8cf855a1e5ad292bac64a257f848841696802233f1f6df2c71c3b7f3104ae477446dc2d65e3633bcf8ac7126d0eb755273d719e8a9d8481c8b715a87695ff32f7000af54deb29016e74e7f9f58d5247f6e3f3b97f6200da0b9ef6d45b86ec9b0c91705db653f61112f8b52d350898cde6888c19980ec9abd176f2584a6b1cc80f6bfca25d5c3de811d67912dba7ec26a5a8b7b50e6fc2280b1cb9c3853495e7755315e56977e8ccc19bb3ec6d9e994cd8e02d7a9b70f72746a97e853beb6790c418072bbe8aecfa37d5a0d3b720489c59a4be443468ee1dd48b745c45532e4884f36dbf50f39d38df8ce84ef168146b65fe68b5c5478d17368739dd6019e9e857dfdbb2aef1b4f07bb8d373f57c7dd7cd2073d281f048cbf1505d7817b9232ccbfd1e9fad0750ce213e864a3690087dd639c92a477bad1141712b3e31838dcd2bef3e9edc364ae93e516658810b7ac929b1d8fb71ee75bbb593f5b47cb360359549519545e96b57733e5bd2e0a61ed621d82cf3088766d2057e2e58f56744877afc782f5a3f92bf87247684b9a0d11495969cc9ffdd08bb959f4fba9e120d7d77ab1388c1f668d9bed03d5521a8f6bce6739a795d32445a6e207cee2b06b9cb3bf167bec39d18cbe32d037ea0bea7d849a2272845381a2aaf9cafbe9c4688ab16b892fe7487a72723f9abefef306377e5ed350f339c7082bb6b66cfdf9462d1dced61e2b6ab224a4c01ed28959925c1d96998ee411918aee87b563b8025379c94187a4ab8fc070724c7c7e6ae13cced934d84618b2b585ab3f8d05d69258f0d8e9cd602fe86a9cbb30939f85e5bf481b966742766aa77d550d66cf1015f784f6264686fd56da7de85c7866bc41afa74a2b606a813c46beae1e5aa69958776b5992a0d8e5f9921d9466d36ee8fde97f014e58b33058f29c0ce3119c327f7c88cccbe9534822a69e356663991f9d8624266270249ce8483666c21ed70807e089a6da4260f24a07b3fee614378d2a2857675510debfaab7898967ff5722b215f2a7131a67ba1ccd3456ced1aa86b65b53c14a9f0ec15b862926f3c79c3b9b1645cfe9602056555ff48925895e3b629cebfd436c22afce8220c0d46e6334f9999549280046f28f0015411ded7aa5375580a5e80637f3e018bf00311601e124f14d9588631a17b7b4a00733bfe5a9053b3b3c23dbe34e07933b5444d56991ab1fed8cbeffad08c6d15618e8fb5e1393540b1c575d970c2c233300c1cd9168508d19abf437ccac3014eaa24360667d14f7974e425a4259d21f97ccb73e7c59a3ca7f6560827eb28ff54e7c842ca7396f1eaa0a0807830c350b9aca57458d723d1c8005a932b02614a9ba5956b70b70528e220db456522c211c749cbe6f5e3e8d91f84a425367cc9089760233d88419b4f93368ba4b8f6f459d6f806503b7fc10bc67328d71520b93acef244e625459a579a3213717a05fb75982807161d8954df376aa27aa2145e8055dcc82f63a089e9883d96498cf6ca13a1b3096439096cb2839bd9623a6d418fa59fa0a306248259edbeb1051ff97b6626d5257960bd8d76d4869bece87a3870232c3fe1c6162363ef64b81801f664854085fe34a551e61f7412c8eefac2c9752b1c92ded5c266c6ea98d301272ad371c2e2b0687ed74914aa9f743f5418733f8685f4657a546db115198ebed018232f92f45e10bb310fb1fb9ee73319e36fe77ab948dd6da4ecd5e4ed5a0037f90436433b319c5be9978aebc23aaf667cb848cfde10fd403ece2a649077050f14fb600845d3626e9c68aa4f8d1bb6521c29366eb74b21c89f5095d04ae41ccc1255246af64a482a7b56a4193c658bb2fe122bbcca4158fcee6adfe53b43d666eb965038532562b0aa7007b54c68806c347cc0a8b3091a767e5b986f06cabbaa6a7b6cc7c62088f79198111cbd29cb12eaa7952349f9328d7a47bfa6006b6f9e2aafd688dee192b93c5169254ecd2de62e7e32b0023750f0a46bfa5cde644eb7d4688914fea3dce7857e0e74536c76d6e73373299a8e222e85a6431bc88f86e8621e631b44d893605648a1ca776c341734d7f245db75eaee3dba90ece77366168e58a569b10e8012384a5126d97cba6700104c3bddb300aa4a77953ea561ebe8dfe2a23b4a41be30c96039aa0bf2a730aefb7d0165df96d5fe7e6caddc00481b5af64965ac6b94555d7d375be25cd62a63ec9be552a3e275678341e3d989f965598861845ff0bfa780c1841eae2e91b48263d52f6a2bca13a1678e2f252f04c92e26bb76983fc7445e6a86be5afe2e54bc74496cab5c4ace5b49f1fc76aa3f15e3a8e0adfa628f28bf6526742541fa2e7bbd9023f8b96ed09489710b74045b98b7338dacf0a9d1a65bc9ba9356a7b0292ed44a9101464b05975b88284f22421ed3d79a719b279658bad914fb2fc70d32225c62d2e0b623d41b281d60bf03c4345eeb1fd3d9893b421bc902351dfe6a19d645c18cf7cbfcd6eb4ab540e1846838aaacb63132bff6455a8b42c150da658238e3b47e38ae7d9b7f1d146f85ab2cfb1ff30e5084845865965e85f8b6dbc63ac3ea8edeb1651c140bef31690e1c29e40edd78d04f1db4ff12f325b83c9619f84940a0bcf690789a98612e8fabf158a97669bb15830edfcd3e4a22b0d6f89d70a3e155727dc1c1a29f9e22b03feb2eee953b76b96daa9570677adeef97a090051be68f5bbce1d017690d15845098f414bb96c2a199af8925854c071488d5cb7243b79024ae9eaa0ff277c590c16a1e12b9715b98edd9c36d81052215c4a557ef588d465e3e74dc81c9d6166d5e65e4428bbff0b7b595f24ff572642d49a1a996a9f1bbb2c2444426d301991ae46d1902a19260a19ee7e77b0fa73e769b50a8297510a56278a51e3309529de29ccf31b992d5aadd85657795960aed37198f2c336c3ae9753f6d30f122757e8863e7de9f7ae9d37948bbeb8f729ac08ab000af121a5a67a9d65fff79d5c65ca6d54a8207ac5bb64c11822c17817a3d1b9473a1bb5ba5f1e3a1cb252848a3e73bba7fcc563786db1c44932446a90a96b406a8765c5c3775b23eafc4269a90473a0494e3757f36b87d164cc6ef858d39e434c43ed86fb91d48daa2dcac595fe59dbb6e97895ae7913b2938fa6d949a9ecac4179d00f3ff95e5a1483fde2cc07571e4c85f1f9babadb7f21fb0e79b35602e0da91acf42b57e1c7176c525e7575c08b94732538212af0c0f4f32b5ed26d2db702b46869d886bcd87b4959e39d6bf0f8456a33b7be79eb4641061a0a194b5275f4655b0c9e3932991c57c39e97e10d971cafb19e150583371a128b987764b38fac444206dc439aa214b7407bce68fe41e7f8a4699abbc2fc84370dccd70312265da686850cc457c4736b02d2d6b44adac6b61617f332e97d404a24bbc08974d5f83a4fd439cd5f1eb63ab743f45f9c3be26ea07c676dafb20a910788ba0ca9e68f795d94c2361d1032ab8de13413c351de9fcb67c250be7ad0f55d9ca0043b87c066ec6e79c1e80ae697797c832eea7ca7fa4a32658cc6be6420b2f8a55e934561ba86c38053dc68c410a3b20bed38c9573c46dc903b53f3d8c1b905890b508cc60fda8ad9f5fce0f22177f4285628bd9d200560b34b12f92160b7597b13b10d729c16eee29f33b7b9a46e2fa3be2fb8078f33f1032857b1dcc283fa11b3972a2ae2567641f4e6be8d6dbe2f86ac5fad786d8ba3c01f75b9db5fecae51346b2e09529a80d8732f023c2f20633e61074695cdb59a6c3d00f74d0d4a96fc26681f2176931c903ddbe82d3f080030f75a8ae9685a4cb0158adc64d5bc11e0638a2c43b96c25abec00daac3f215c356e724ba04004bfd337df9b95e1731414c10b52b2dcbb86da5d7250f7cc008619cc00cbcda2c541b2f3cba6f5839c296f6a6d8201f2fb4f2c7c9cd6ed923540c3cd76979123e06e86527fef2c1c3f09e63a6c6b6b115ed8c44e9cb9a199ce3d7525bcb83c7811fcd9cfd2b100cd8fc40f24c9e6d97b92c5e73face5a2da61f64deb7cba79761174d2aabadb7ce573dc183f0d93662a9a519aedd8f0238942dcc3453cf39f9fe135a05b42f9594b71683edeb7712248e18addf2b611dd9138bb116fb07d84dc3a2cfaef2b86dc0f06f4280b0b30292216f15fb4c05dd5f1383aa8113b450815b10fab65105f4084502f9ebcf9b1f0ee322e8aa646f2e21814ec440571e9cbf0a8e54444c41eb0e753969e5765770b37c204eaee0892b6fbe7bd80ff7d67fea382ef847c683ad0507997405f77c0f119e212fe78b6587fa28e46a5fe94bcf4a371a89970d0e803c97aa868be35a6ccd4dad284547286aab6d302a75b4464ce2c0d4e68246ef40f912b5738bfac7537b2668f24e1a49680f98f36852ffd5eae536ff69df0a1fb6ed6fb688db4db67cb52b14399a9029fb194dba5609e8fe852b0aacdcb5910dfd62a6fb48011e1bd2a4d710a24e83e72a895dd46c7df644bbb25299eb67ab3083b21b09fb16ab6237d26f1c228f6edc8831e216e92f379a81ff83720686165d430ab0e2ba6e9fe8a4f415b906d531ab997328abe9ee7b4035504ba873bfa9c0173236382b0145ce0e4101dd10658515ff08ff0389898655d5050236d426d3434da396b19d466ce5dc9660ec24ab9a08d6279b8890ee754ced6305ce471dc8293f878f0c19f40d1864e848725247f27550380c3ee60319190346909e8aa12fe68989bdbb6700e86438c0514a10f61ee7cf5797c02f33b1d4ea3b25e727ed699f31f5f1c1ddfb5a22510eb25fa67f1790bff4e5495cdaaacbfbfbd0ddf8a7f7625068ac299497e7a593a3ea0a31be6cb1e610fed648bfcbd051294445184ddfa07a4d663b223eb920812de09514f214f546b3789fdd023846578bf0fe2031630521a49be89a786fc6bcbebef835100a1bf03a6fd0dd42554f70942c6550ec0e4464a23fa2623aa625b29fcd8e41021f26ffeb11a22655211a4d5a0af4f72e416c86f0a1c40fa9f1327a27b938ac888909e96652f2d1c83d4fb580c31c7141d48491010b280d43b6a21b362dfdce88e7b252c511ad72733b4e2d8938b1fdc79b92bafb47eecc2c03e9656a74498fd9c247d2a4a5a7297151948d2047b9c53967ab5787f64031b93ad2de8d4276cff3de785ae47c217438f035fcd0d41fe0cf3287fc263153541bc99006e5a53ebefd14f50d9dd57253669e0ee86451e7e66129f5bc8ceeaca06b4bbfffc36a69f2c2daaa8e29801765471cf63d525f26a7ef289b5eae08fa943feaa04c7da58c9b3f1faa2031d80fac2c6de67a1889d5d359f365a208233623bad29345430e0478542e80916542186eebe001748dd54a04769fcd5390d5afbaf714ec56d10911cf4ea12eff429f490ec86f94ea875c280d6bb098948229092fb4f407db465ee1bdb5bfadaf351d8897703e1f62499dd475315fd5c929c3e87d49dea976f330fcca559a74f2f330994361390eec29def975ad2e38347f5492fdbe0e52f3cdf7a77887fcde5ec344787e2d7fa732a9622c40ecbccc53ce882084fa37bd78f01e25d2071656e043c8d648ec74549c36e662435e16861d236611ce27c01a0b145a2d721abb33a0366e876fc55b7f20f82301f72a7baf9a14cb365b763660d9e68e0eafd81e3807ce1bea5fd2c43e6f270740a4610f61ad302a4b42d51da0087196e1e52b0cf31af28d1a22b3b6d891f1a377f62b16b838fd8949fc5c4baa90e5a88a27de16565809aba30b40e5220925583c3815259d15ca7e8bc1e8ed0f57fba3c8e4630d0e1ce3637239568885de4191a42e87dc97f36e86ae7e1b95d013ea8bd4b8c0959f0aeb350fae6ee8fa6a2d19fbc1c2767954af6246a98316d91da4b58c20b307523465998ed0aebe1b8789bbcbc2aa2725ba655c06f827e9df05e21cd29e1705797c662f7207a6ecc6e474d2cb25acc2655b0e76bbe5191504a8cf1ded6162171266ab3b9fe7d894de92f8a69256a8535d440ec39ee3b39be95d3de74a1013ecb8d85a40f3c7810f4e590fdd5d8fa5bda6115526419967f37bd0a8283e4e0b31f5a3ad71a95cce21b4ef735231dfcb9a12595cf6e2685b1ef316cbc47cb4b041561a798660f602c1e02583a62a3519148380ffa60115b068362f40d05ffde0614c6ae3f9fa0e41caea01a91a5a9470257407763fe1a9a48c3a46f7e051f11f57c7bd732830aec00b5acae04c5d8665d8836c70249100723999431631d6b304e83615964d8dba78f76f0a2b0a49526cac6055d9fdd0ddabf8071e51e39c8f01e0b8d46bc2436937d1825a01fd19f2bf67ece8f0ff6edc8d0a6ffd333fbe5ff99e58ccd0606ee98cbac4835f335202c51f7fe60a4a8d30f6df4d52474447c15dd026afb90966715f5459f491158f8059c9a5cfa05e889f567d3f6d37baac495647b95df78b79489ade4262880e7d4346e29b6a67f6170e4612eaeae93b90b107287c0f9f4a1829d08348222e65da3a05d8acf6102fd062f177f9901aca23ab1a5055722f2e403ee8076daec5b7a718099028ed09a29f919f356892b5803a1c960500ed4a5b9dd336e6f3b3079b7678b770d1c0c1ab75a45a7c95e7dcc932c2418739f8e5d58ae182d8b9cc515fcb2b2892d4101536a7c0cf1dfcb0559e84fd01bd590580fcdfa7b28a3bc8c09f42707f1ece11b1aea0528c46879a57b50c5026806b96ff7be2cd73ab173e6ada07ec7f84b90dc210bbe1e12ef6f79ad51bb0063cc09218ab002af6d4b36ba5a76785223e50db877df7c16a232b36d73396574479eca56e901453c02d4b90a3c8b5cd99d0de4cc9f9e08381e8ae6f67bb553458a7abc929e771e517fcb628fb05eb6f10e3501ca1783c960f63409ad4282f7ec505fccdf1664f34ee5208547e4ec8926aed76fe6b556563d5031de1ce99be95382ffa35d97294a5fe3089a3f9b26d3b64b3a8bd69e722c75bc278e418cb4e925e42875c533d0dee462a2b66088b5726832ddd9ceb18f0b8cace005d368301acdaa72c99a054fa34306882dbc3a18330137633a78c49ab8a7d744485a4f4155a4c38acb21174fb0318d10ff49be8c8c8fa94a0235e44a924d8aea03fb0980698186603dbd41bb595b69d2c13933880d48b7a625adcf9d22a139b075481e5e8b421fe66167661ac421e833cf764b93fcdfe8d7af2159a05b4ed7896984ec77d004614fcc7b502a46337cc3ce67394a0adf0824c58fc328a734a138ff3255058c19532669de3818db1753e425ad4a983afbffb19d83d8f984342c715d8b8a74de955a400bae3b24fdb565aca14592f08de77f9e8d7c5b16beea360914deb2bdc858103c713431773f34e8daf4529277fc3125b857f287e838942e5e958b904720b795d25ad8f3c2155b30eac529b505754ec1bd3ff8645495c81069e66b3998fb3939481617ce1e06e3769e4a6f8ab72e9a23034deebb433d4f0b909f486e8da21f9544d2b3c1e3abe3f5840e0eca9ed4f671c079ea04768dea325a6ae2afc1ce36b8981a0439e216a9f0f24678abe339501f9a352e86112617b63578265941b8bc782d1b657969116911e17e3c440c560c723561262e0157aebb7c9862beb06877a77c3f498957dbbda75dc4eb12e55159b3b721efa0e7a437bca58eab8abad38fefa576a60a72fda240e76be5aade634135b02b53dfa5ac5602f57a4363f534e3de50ed59481c45da15088f676c772959ab8fd3d5610947e357bde5fab8911ceb37acd650bb361845b88cb83afd702fecf73fbb515a2b04200b58a544c91ab46eccd476c52edc8bc87c7331c98e109256c5fcb16ff1c02499527e0e66adae84ef57438bfa8eb1a23e6fb62607ce5bf9b5a6e70b36a477345c139f17ec76853b7f1446e7566b854de29348f89ae2966aaaaf90d2ccfb3413871882e7777c71a1b881542f9e88528258ea7018cd1b6516fd3312e01f6c9b70bb11d458f6ba6ea8b6d6ecba335bfc838099cdfa4a7945580a86918da05f6d34d06e68bbaa73c9962f479d25442e58c557a94038b442a73588353a317e28cc4dbf0d5e83c2bf82071b7cbf28fef82e184e3b51cbcb7ea743c5cc5e8ea8bbcce4abb2a5f8982704218efdfe5ca7b0cacea719efeceb7d5f61ff3de9e24295f8b20617a3f05d1fef66182c226b579f43b34351d4e0581e098a374627b7deb8d30c270d084ccf2894efb6094001c4e939adb9a59a08552621272c1e8aaed34f84005f8be4756e2e635ff6a578087346689d2405feb9f033bfceb5e14226ba3a1215313bb456f0530dc0f3b3e7f3cf30312a212974d3c9ffa2041d588d1505e452e22efe45c65f674c36b3ee2fc24eb5cfbc3dfa164a932ea907a162e539a668764416160876a8a7359c41835fdb6ba812cb15fcd692dd1ae1edc1a8ce4390ca97a9d4016aac304cf7319b1032d5a4ea99ac0e295150033f7f4a0f179987f92515edd9b875cfd93d0c4c6027b1ce835b3fe2ccf18bc05081dcbc0830840fe638501c0e5811a41d8e848e863824468bf5aebb6a604326f00741dba850f35ac23feff6ee675ec65c7297f90d41cd7d2d9cfbdd405d4dbd64b18e0a6d321e1ee53785fdd70451ab2646e3bc631a6ec40c4f50eedb1f3bdd9cc2798eb18bc86d36b3cc947797fb05e682bfce8f6995e43630e7b720204a8007d8bf87e75c1971f822027be4ea4ecba2bfbbfc197107edd0384f62179a3d9aca5b220582c00ac5e5f7834043e85c10acf3066532293262b9f2da1df80081a0365eaa2fb072d06ce473ae9e4d176ad2ce58f3c2a9d5ed655ad018548e098f99e8d6dad0e689c6936f8609e8dfd91b9a52836453d5034fb1db3cef9e7d7e16cbc9ab73389423ce8f811e800d6c8cd5ca7fdba274ecc899769d300f853bd0ff522ab223bec439e313e66c0f5f76cde1c62ea30642c0ad1ec1ee4fe6d1247a03a20fa4497116a91260764484179f96e61efe39c305663f7faa9d0ab933434e44c0248f5b0b0f60a52c97898108af7930af20f9c33114b44e86aa68d5d4eb2df026ecae24afea923b1d8486438619ab5c0dc6ccb02ec9ae1af372843d1ceeecaf491ce86a56736f5bbfca7c5355e998fb41832676d808483f31e9cacabf523bbbd02d758462bbb7aa251fb609edbe5ee16e7ec1bfb8e0d819ead60ef371eb0f3c68128d637d67111b1f2b8e20393a1063b019968af95df743e4df866797116feeaf4f6db04ce27e01221d496a314b17e587ba0e9c49a51016fe9adab4c618323b7842ba1e0c8b588aafa6dc4424d9ce45bde9b7a1450b91b85b4bb272e46ef78530b5e0d95c0ddff41f5ee23aa3550a7d3f0ed34076027865bb70e7f4e123a815c6ddd3d29db1d00db01cdf71e0ec75a3e3cfd727cd729670988a71b3b21b477005f2f1865cfa21b8125dea10b6d287a52204aa5fd7012b1e0d719959d3fc4bd72a348d6970f66481bd5b4b27222a06b60c2da62dbd72ea04219bc0f47b5e0e8d28c117465907a68df1d701f376f106ea316df756b315a645501b262cf04197c29d049c321aacfa0f72e3b91f652e6c5473fad23189958c687825e95887e5069d42aaa2b0b6639499e82bfbf406f95305a960f665e6236c8aa5174d67685d5cf7467fb1dae16d4e246a6ce691f4cdf45e2f0d6a89dad9cbfe47c1abe303c912d9a0f0e22c2d362725e5b2c73d18bf30676ed5e520343209f676e2114576b3df884116bab1f5371fdbbdec94f34a416e6f26551af4ffeaf98af0124239feec83e502ab5e90e5a4405f3dfdd847818ef2cf16b95cb1b40a59fe10e7c2e9c32e56b0a175abc379e1b4e90bc3d65b8c34be2d4c98fb00f61b39cd1c2283fcff9de5da71bde0fc50f3ab45d8780270dd779daf6f89666ed648860715a9f05b9a217a2b7d746f76ae00b6ef2b013130a4bc3f3c80e90e14d0a566e7b02bff63360a2345770af75a9f3e7a73781b124d2ec5430120b2466aaf457dd149200f50d3a64bfe98d638e1e0a5f33c3fcfb7f9a4e5b3ade785980fe4010a5df4105f616339932f1c02bb87e30530e8a6edfb7c5d3a40df5049d3b56894efc81dbda3f49abc4b0b6d7c2719f5fac3385299811eb2994b485fabdc024075c4124f89bda2667a6123ff293ad0d44f1b2373b3aadf2ef183c41e18e40188698ac151f1970bd9b4237fdc9c21d0225523cb58ef29d899b087420bb113a236f99952d8e6645ab062d2e608c1b97e6105a1742b1026bab2f9201b3b3c0219abf52f1e8804de20ffc08200b6b4d7406d9ff503f57514d88ab93fdfe8993dfe66d0499f8a6536e7db148b6dbd730d3c74b3217780ace5c7c1e8479d4f739c469ccb18d1944f210324031fc9fa0f096d8ddb8fd21ae0edacbafc74c038954911abb904c6b05e789cd31ea9440a107c0aefb96c574dc396c5aae3f1b8e758081b1f99d960088f3827d007681ab6752f9263027aaee21c5bf68095ecac61741b2805e482d3dc12f62aabf5c0eda20f0ca1cfeb7030b92265ebd1471ca9d43b327f569e819fd4c6545c782ab8198fad5a3bc2c6ef601f9406297fac0f825a371bbb17d3d92eb9881ff8709c68ff7c566fa5e2ca3c3293eb790fb6cdfa83ff28d1bb53f3619de8c74f1dcd111a8864c9bad50000d85355861f2a150f5281e9f8378e8c5f61a2ca72d3f2311d6f3ab7b3edd719f2f3443af532318da4f50bea3b67a42939ffb89123835a2c196c862d8b5caa5dd91be61e8f87187e135f3d3192b9a7a4f535d2df8d215c97a651b784276aa7c78067e29667f8242dc2c9d3c9cb8d15f1f5e7cd647fe670531101584606b6e7672cf8203d62a87eae26b8a4dc385775eab6c195f20ab577a0736772c4759af189797753477dd2d3ba670bc5f49716f26a963a27433a0e2e52472dc90074e79b72955c233a34af7806735a786c755d182dcc599679867cc189441494bdda4c86604790fd63b1af520442b3dfb2d41ee7e187709aace785b75abe5963cdf58ea9d12469f11b6e0d0ab9c1c35ba80eff74eceb855c64f4920d77f338504d5e40f2e54e8140f24ef25002c84b6993cf560c08765c18055b963f3dfead5e7747c811e90168bd232dbeaedfa9e691d40b1038f9225a8edd16ab48ead55fc6e0be0166367a4f77033ebf815eae1447ecec8a4f961cfd8081c8233ed2b100bbb26828e820595539a7a98c326ef009f79060f245390643d239fd6eb55df1e6a1ba626205d52e2afd13f10a17f56efdf4044a6e17453fe9311b4d639ee79dd8d12e0296a21c876a144f9c05d63910ddca6e5dda227a6a0a7350d993388826a54741e0276a02538435a4bc706d66224b21a59d7a8950ff45753b16ce02752ff1fdf9890ca39bf9e9ae53fd5bdbc5487ea87fcfeb80710574f9e25bb14c076adb17f2e6ada90da13cce5a626811fbb435106a184bd658ed50e7bbc537afc6a5e94fff1c40d154c2fe2e6e8b5047e81804c24a545e28ccaa90ecff490ad5b8c9168711fcae3aaf44858f1c426f07c7b8df833e97e61277bcc0c51ff7ea8e7eed979b5d0e0b3ae2ab41dff94971112392776dea9e7ec60b9f750e1ce6800d8fd1a17edf66e54a53a2aa24612a52fd765c4e1a0540afeb12dca1ef325f8310c279679d14945fcc31fc3bfe4e3dde4438bbc00185a41840a9517cc68f83eefb6c12f01274ca6a64a2c955a5147a73f5f16ca8c8430dbe91229daebc43bc2bfd558a7cdba031dfbe31ba228f4eaffe0d10f8c5fa42e5add5bc7b20a6554e6eb7c99d6abc388ccb55fa529168070902d8a14948bd3d9d4ac9acef8d1d549c964d52a91d4888766727d20f6d0e23f43217980bfb4df17cb28e0c425eeabf0dbb232029728061574445d2398225f435ddb5ffef16bc8dc14ea310c1680a93df2851f65237ec19be7ad40f5523c22c6cca5673402feb37fea41f5f2ad42ef51f3dfd78d1fb9fb0d338c27844b32ffa864accfbbf1df313fd381ef5555c618b19dc712d2c14971d0955519a08edd0c62f42a63559582ca2b7ebe7f949ad11032dcae3a62004d7c7a5671601c85e86a021800f9a183b91e091ae7c2e8134dd3dde4ef5ef82314da63983584f154d40b797962ddc50f455d819a760d7a7d9f4f5fd5ee605879370c5f8d35431e6accc7ec38058176d3e3e894375a6b499308c2964b2609844e72da3bd4f8772073ab6943f6d3446596ab900427cfd4838a087601c2c72a77273d34938347d5a8bc746644028421e260418362ae08c1e9ade3db6768dcbd5461e7afcd7b712841b64a372d94f0e9a09dcd992f5eba4b1c637d103f93a01880f1114e52dae6b2cd55e3ea715b4242e810457aa494241cfb3f257961f8cda6051ae11d9df278315ee22a8b39ac57ba48eece11c91ed79d0677661f6affadd52692733fe369ab5967eb20532b28055b927faa9268387a89a2b50051929d62afcc2c8a5c0acf3c1db96994527880a23f5cf83d8847e707f23951d6b4e7327f49ce8677a747f90af0a9b7b640ff9608ca21849d8f34f73f86cbb07b0cd3c55093b1a4585c0f797e598a11f491c95c7c5ddd9342ee08592630ffa43ef66ea05d4a6496b040da8c2da9356cf41d7ef86205b8477a1454e4a33281db18e4d244526c3d999ba2c4955bdace48c9c5b276dcc3711d4dcadb11b75b940469101e64c3a878d139ef41661e0cf7990ba52b21f55727fdbcc2af52ead3bfe2207a2a2e5af647b1c0a1649772b45e6454603698191081c08f5e1efb3019564830f3f22507d22ed2eb37080cc6b008ec940abd53e80226dac7dc8e460cc4a2a19cb7b9582b0fde95ebe2aafa50724c13719cc34ee42cd241c9f62408200b3e3c3f663a1303d0f1cfcae11029425f5703a833ea21b7c7f4c4c03f1cb06a37a0ceaee20a56798dae4920727af4d177c4d8965d281610e828ca8e9dbc89189444d63fd6e941113c0b604ffd6937f02b9db135a982880f7b00bfc54243e9490ee66fdcba441ac28fbccf0d3b394620f3a760b8fd8bd7b4e2650e8fa6b114a9748913498f2984934742da9cccd2cdb4993e9fc43023a067572ba2bb6dc1e1a17ddac4a88e653c4df1f4d5d725803f8e33e3c959235aad1c7ea50dbdb8727434bf91e3743947f02fddae6af11c65deaba8950202c88cbb9eed728c4a9e54a884d1eec770d1bd1b91d8fcc4c9f5d11f2e5c7a9526b2b590322ca63d5727ae208beb73affcc5b95411f347d2991e559495b79941fd75682b0c05af72ff5c21526c9a35eda70c0179874a8c9497b95905fe0ee71a9dfc684f191c38295715ec1153790582ae8a016cea21cd2265a851fab7244dd94196982aa758aa935cc8a838e4ca88b0dfcb12824c599d3df8c4d49d8e8aaa0797ee719aa072a0e5872f595771658573b3a76bbfe6b4a7518722cac902ae1bc4dc75f036b269e214d778ecb1ea6d4146f8a2069f8d999711ecb63ce72faf8780773fbe95c82ea052ffcfa95a3d6c7455d173f6b855247e0664b783c136d3f2b34429a1b62c333eb4939b8f4443b062045e57be3a6c30ed67c9c905ec04e27e36ca2b645bed186573298928021c88f415d9781df1ec2736f138c646a684137d281d8911bbae24ace0fe2170f1d2f57037bb87aea0f8d9b239d3b58820af8ecead367b8b27e43f6513d63e3522900da268f4bfbe42139374b9e57a398037f059e8088035648315681012fae442c4f58f8181bc81e7494e4614ad684391b7f407a185586194ce77eafb395167f02515211429bf06a924a14281701ba368e8630124de4d583e02ea44c85cb8381a3099cb8953c829a115ae26bfd00152861cb27015ea7f0b4ec2e98c44b0304bd316f8d0098be19ff2fea1d7bade30b208abdaf9386fc24f5480fed179e5da1dbbb86a3d47e9ea1deeb88e450fd504bc6e913006b27d591208a87d1010701d79c1c397ca84970e0853da8b3daaa3e426c37fbdb3b5193a59a813a9b9d513d409dc465e05a20504479b67f7223ced867f8da694a4857492d1a8eb1949ea5f4fc76768647d140d5240485f307fba70d6603d8322874ddb56444de725e47b6a89e4cd57a7cbbd3515a2043de6c9b36901df0e9abe23d76bbe21653d3913b0aa291ad2d332cb60be74e3a1ff87dd888f21aea0b5210ae47bb355445c7ec90a0f651cde925a461832d67fd5637c4df3de7d7f7b955058d08d801f0027ad3b65ae170a04e37286eb9bba4d1a505a409744b6d7d1a7a846cac515824cba986ba2a80cb01d6fef748ee59ca4e69e44902e86516b82367ceb8704c1e40eee91862e47b990e6828749d578187b0c825f54feb0bc552fba32bf469b2b0c117d2956069ca7e49cce5682b57d86f1ac32cab20e3a9a7c555d6699597d9176e100f9d129168e2e91a3b249b1140e326d19beeea4cb0aedda9d349185e624e4c3fdd31b95657318576ad83b155e0b848620064b97c6bab2564dea01746f5e758fcc056f34a6e0d8074581d175bc8103f8f19bd72e91b4fb85c6c04666edcd7203fb30a92c7eb77d2c512401ddafa01aafc192aaed320de6d3d03a07557441dda7b167bb78fab99ad461772c0cd7b267761ee9fdb09441aec293c6caf2799daf558b06a0d11ac8f1a7cddcd8990da57e49205b880dd38f790f8d4ddd080d3cd3acde48863562a2a20e3df5bcbb161fa6e29cff26a55cfa2b23b6116ede19d51b7f4ab964de425d1d17159b1214d0e579ba90c0ea2fb0fa8f38b72a56c089c85fa4d560bff3005f1fa0419758c6e36a691750b78879b678c388a55dfb1e1ce108d9e4c11d9691171fbea18112960e861d39ffe138e92657819859b3f3ba0c71b89f171b3c2bae0fbf0c0dd763b613b5d927497d901fe57f828f7818340f2856b246f48a5fb5872b671a4e6b44f8f2d788aef4661ed1a008100454a027b5ee5ac4e30de8801cc5965a9ef717c543a7b4c206cbe0db3de07204748f7c884dc585914f0e432a292a7d79d85146fab70459c8d8b0ed7eecc9e70683fbac810051b3ddebd589934337043eda1b49010cd86853e88a134b4ccee86d8fe3666eebbdbc67775669b5f0687de0e225752c214a58fbfea507db336b337056a71dc8d1cce25de6f46d8b94c6ae841b516655083a326f023330e835c3836b1a48166615da35036b8f7465c517b558db50f2f2adf77d666b2a9b8e5680deac6fbff2bc49ba2f9825decaecab3f995842af994ae86e636e64b34e1579b20223b37de4c60d52f7e74ee3705d4e57870fd8c76cc43f5c8486df49691e20ac13e98e16d043e4ccdfd8283a17348d69ac0d22af84e69fc1eb1843f1f9bff00d63688b70e9e364bf253bb81794c6f184e7582ed4d055e70b2f5424344abc4664a82fd30c2bf4d99e626ae2d18a433a9312231285a2bab0bbdad18d3f723c6c0a945e0570e1a1da5c64ba8ca28aa514ae96211b60c0b64b0e2a3f7ba7b3d26f7b3a6ab329d26e0f27a0568e0d0a2ed4e53711dc1a148684cf9b79c37ff156f483e1f8ea4df6155db2c71a518759bb4282fd441875421db739c3d192569335d7e1b2e94c6267267e1d766dea103175daba04bfc8a2093b447c26c0bdf0e97d506cd2be7ca7c9f1d57288013892d806e32d5dbf7adc7902a4b08879acf771a79b329b375737d5bfcea40b9489b1e8182c84b1c78ca6a0d23bb7b4eabfe0f81dead7577b603723203134089a1eebfee6aafe66d433c5a172e23ddbfd63771d9d79b90676c7851bae5df24e18a264f95017d9f9e39d38b32fa79ab646681b7a8b278669903e3cd153215de8e6ee9f6f2ba7a39f729acd9c7d6cb6afc44c995542f9638a4e05a15deaa157e433f7dd4f1483fdb54c416d14e61dbfd2b2f198d95e1111089b80c3e14d12f540b0f2e2d3bf8473a0229410347147d323912dbb5e632bf4c213cc2422b8cea4b6ef12dbb880fa97e3aec2ae5e31f4516798f2f42ba7fc94e28f849269598ad68d3d756beebaf1af49153338c769191e9c1ac99f676a7b691998c299ec05483f2afe6a46a9ca4848ea0aeb957ea789020d485236d8b21dc57fd82b521579ab63ac9d318ec3cc637e62b973c0c2e85baef01b9242015f83ae50741fbfdd57b4357afaeabb1b2113871e89678631efb8dab417a5ddcb1c8fd3f31b78be98f8c7755ffe5d0526bf3e1f913ed2acdb2c6e029ffa2975a423b04c1adeae70b3018afd7e53c5c841c619f121b94f16ffab9a92b9d9144f1ebf8eb44afe24b053b60d03cccbdf5b3e06d454d45a483a7271d66468870fa34c5eae0105d2e649a10f51d6b571aac04cb65f88f6bfdf10d7ee14e5a82be8ecbef635cf60036dc5bae14acf6773523e6a6f306776c4e8225e48d6400208ee1b8f420d9e3c9eda606d2103fc0bc21c2c84edbda594a84a0c8cfb5d8896c3ab4409e4d5c1b903c83cb0b6b7413a5113ae057b324b8272baef09e182bb549e03fadd19d955f8452d62afbc34d0fd71f9de7d4308e186f1c16f1f514409a75b9f90416faf92c7c46158dc5c8a62dd9e4a4292ec5e87fafe8f2cb8ed10fb91bb621bb630923343122d2f8dbfcbaf3cfe053cc60f5983feb19615bb08c045bffa500cf54eeb30f94d390b75f356373f01fb2d2d34f18957af462d03ae479d2ea154d43a0b7bb5b0ffcb029cb8db2a23b68fbcc116ccf9e0fbc035e57ff447edac318693453303da07472f0f8298428de79618abad407ab66f868bc82d8dce2af2820a902b7633a7133447891e411e65ca1767e710e2b05d25b944ac30efa332848038852074a59990fcfbdc5f6d9f50cccfc4dff3ec764c4b46accb14588cb7f8bfcdfbaf5ea04a82997e9bc653975cdc73709acaf8b32323dc9c107b2cb56feeaf43f43fd8a2dcd46988778ca2a1d95fdef86eeaab197a107c0449150aa359044af496abfa239acdbdbf61332f71801bf8dc8d6df01a10fe4c0c382ac93dcd4ed97407ad0c3b964609601c5049b4c634b8f5af0797c10cd1f553373695d13e0553bb44d5ddac2de2fdfd815039fc3285b2e4e3602913e078e2afaf46bfa8332083dccb2cde110331f853a046472a03ab671a2cf2a9258f1a2b0b6b525ba45bb73b157769a9b4ee3c7e671f77586c19ae622ab1b34fdc7a2c4885070f3462953b2de7b4ee50ce70a898fea3b36f49a60b1c8253fd9e489be1f7eeb2b0e731812c091c1e3676e00d90a0a944910ae22c59a011de193e1aaed181d18dbb1cd41e11130e81ca7277a8587294749581c20742d78419103d47190aaa2bdbe07b0ded10b2c3444053af1675e506a44296a51ff82c45ae37133b80d6c53fcef08dcb453b6c8d127d426b1b64fcb79a01c0e62b207295188fa3ab8d12e68abc225c40cdecb56b5f87d506ae135e17a59c074baa861ee3733e94fbf8c9c0d93a8866fdf3e7df9616e4f9fcab458dc8814e3d95d9ac09899fc1f4a9ba186321e880d4becd9406928ee0081e2cf0f26d0f2f97354eac741bbf05a56deb90a6be1fc91abcd79dc6f2b5408926293480707dfa019f46bb2a66ecdf7a2a65d6139c888d0dfffef5ae408616b2a7c4eb8833eede13117bc94d42f0c21b1b429cc4bd2018f8cd805ff2b9c9e742809e566cf46133af56c2106ca99fdd0fa337d0c6cf9f1b0602ca025f4842210a7ef365720fdd6e3059d608e1da9c78f183450dd9a4ae6385e2e46241f60a057c5280547e4903f8ae6557bdffdce8238ff7625cc2bbe652eb69809eb336459e7ef7694cf4627e27942b657b24888b6aa8ecdd14fbb80641734e6f4bf117df8c5bb43ca32e2a03c97b955d0af04d37622ca2caf8d934420c6faeaed4910ab1c563fdcbb7ecfb817a62b6e84f8603856aed0c41643e45999fbe39f9a8305d833a79ca9f0233f1804c0dd493b8588c52ac71d637b724bc1218eea2cd6fefd73ec2d1273d08cf4d3b25d7a54382d7514e36cd142e57689c9dc73c927bc4dd92ea6938c9361c933c5842da76ed8db44ed646af028633b3c8fc24d31001890f115173d527991a27e8fe90bf96169be93e23a283ee4c00479f68fe4fa21649930d42686f67f507e8ec0d7e4a3f6183bf2c0ad6ded3c40b2cf45abb4c7346183f094eb72625978f0f42b4d44d3a2e17df253d482726a424276f67029ec109bc0a83c8b182dcc93c01f014682307aa11b27e059770f62c0b7668f6be679f0e6d55615d500f53fd5390b101ca6b7b69c5d7196ddbbecf527758cb982d35df3f8b4a50a721fc96e3f4c31e82082ac8bcb45e06358bf699e0795fa8b47cd6b562012cee458581e52959780fbec489baf12d91cd77b4806d5b1cc4f9f0e2413c8407f18a7ef448023d4f8937ea8c871ebbc540e2f209fbbadcb8e8bd7c7ec29096ed4261b03b88344a587af727411dda1552c07fe81c81161933e5229d89f44828108b18d20d25b2b9f2a48f1ee0b8e5842f66294764d8ff8677c323ab6d07bf14363bed3ecc1f08889a8f2a36d349499f3e941fcdce31be34cbf397ea0897645567949680913d0707a931bb02af95bd2c4b0904a79066717766de160905832fb00cfe3aca4d15aeffa16b7774d4004a9c126b5cb8898d9848f22df587cc9e840ec0189cbdcbb846de690a4347b9b5e207dc981cd6b7ba508a8fe6386070267437aef3f5fd7cc4306ac5060acabe29d123aeeda12d61bfb077e32b472e573a85969aec1636384a9d83877debe211c9f85de6cd58ffdd7f6c068a351a2ab5d2bf1a2bcafc0bdd27867bed5a3d943f86eaefc55ed55ae5eb14ab5756d205122b5e8cd42be4372b24dd03981e123ad57c733e73e68d62631e00fce5aba91b7564e9355d218ed0adb66bc9e1f0db1c910d12f3fc3c967557bc42d57ce0f04aa35552694514a2f7a9977a128eca4a79b7696b694b614bfd4b90224fad8b8d88cef1c285fe6ebee225d1765cfabafc281603ac989d8c8a279ee7603884ccf8ebe552b87a51ca743b8a95428a26743b1d81b75ed2659fbe154571937579fea8bef8c316bc49722752f7e7924ccf5765358c7e1f418628f093d67f7e1e45d00c5ad3dc1c5bd27b181b15f78805f57134687466fe460da87b39a1457a787f814bf9700dd1bb73dbb72d555eed16197a429da4a1844864868ec67ae4f5d2478540dc1981c7e72245100b4e568b4b368a1ae1b4b1830f778f96bf7adab844e4dc9e6281898c0da8dfb310e6f133f0c3dc2cd66641225724152417c500cca1b4eb109d62395d25158fae9f74980d8069659d2f73aac36595ccd1d3df46f9625b11067487ed1eda86618f5f7b921362e881b138231d6f5a0a7a5eab4f93a4e46b77caeba9877f958d19909f67ca46474a375a0ab6b830b292bfe00286bbf2ec8350b795f56922c669a0ff78b88cbe1b27cde5c7bff622ed7021004b316a8ecd5afc24137a52b863d0615b57c94ad53c82a05ac35ec6f78c3338ed7c95e61b4693a6600cbd27e1214a31c58bce10de18daf52b33fbc702d8bd33bba07665ecc66caf9eb26874afbca6569aa9fb0cfc0e5f73c6d39bb84637dc5f248cf54b7c308beb59f78414d291794812e76155431a116e4473c95fab6f36dfbed859a40d56488e696f8dbd3f8c0c0a256ee14ccee537be74804f7913be0dad67b20e1ab87dfff6e83507a9a09cedbd60679b5a77731cbd50b95ad42fafa30805b68e5e3fc6a647f73423223dcd9f598cac86b0ead69a9b2db6e04c002a6c072c9b99c1f7a2ff317c643fac82d05095bf3f86d43e0e8bf7f514e5483289c7db3f153922b867f928ce37003dba1fa1f3f34afd3ebeef82273a1fd8c7cbd9ae43bb8e6df70d5627302beb58e97d95fc20d05036154b57a8658eb8cfdf8dfd592b9736077a8a28e8105dff35972a2c603d2ae05bc9b152dbf3b9a72fec4d7a9f057ba63e578af4469b6c474a7e1911ce3ab8404876ff428033fa23d86a8dc2ebd70fd5c4d0aa54c7e68dfd727c2b37f8b1fb28d1f0c135ebc4f846099da158e46d569e56af81f3bb265ac62fb3e96d221732dd6a75dfcdbfcb36bf6763724ec1d3a13a84d5237c96e108f2938e24d92b0b7c7facf9a6098be375d8a5d6e0888e5e5e839ce07e2412f6faa6d349783a720bd039d3845ddbc18103c3fd89488793680f367a3e1d4aae449ed9e57414f97cebd4c241c0949d1717eea87e6d7570726078f7a701317a8c96879efa9cdfda8cb74d41d639b3c43225ad49513a8877cff35787264072a1183ab7ee5f798115315ef9387023530d8217f27a05a13a8813412fe236ba861e22e01c081eb93fd13ae6b7af359a744d818c37e8ea392fdb9b973da2482f293fbcef322a2427abc22ca18a9f261531c0b9ff0a777bce7a716f2f10d5f231d42ad6a9e3c4197d45633c0303e91b62358729458159f1ef057ec6dcf5acdb18596eb431c0a94dffdb981512e0eb5ac6e3332ff3414af3c0f4dd214e61f4694a16ad62c2f2005387dd19196c33f7a7f003f8349e9462739a0db181701b47bee327f537c248decf0e6fdcf22fefce026da48e774b3e410ac64632025b4bafa12d00a582b062dea9a4198f2d123b701ff6fcfddf85be8526c4a67e4bfd9eadbd1c1a5d9815407f8c3ad427e38a60bc148852379860af5f039a8a7d99beaa8a14433cddcc1fe11a66629fe2192ecd10eb279a5468ca0426c1e9d42a7558dbdb74cb1dabd8e7562f8bdf00be311fe238ac04a0de1a0cd1dc27f4f3c5355b7c1413a144f83a7d88161d3ecaa8b685cc47b5713ac10f17b85bd17df376b56429efa2eca275d6a42ea5a0859a6e45a6118985bf886fbfc09cf433fef0226985e4f72cdec9196b0dda1d56465ccd01e9ec0770bd04c9a4f41010ab076382dfeb47487e788494f0b6ed958bfa649a57e71e9a93de8b9aaecc3896d995c927b3e1aeb735faaae0b0b01ec32004eea5415038c5ff243eaf4e9f5bceb6a98149fbe2ffccbf265910595574a649eb90f68e51a26d5f8bb33cc2f52427ff58fa0d2f788da05a55c622c3f487a213c4d06457a618ac4e586c6c0fb3586082e9f52ea69204919e89775b07a6733e02fc9d0986c979b1644ffb2aa3cdeec1413e6f39e64f99011fb33de8c852e7ae362cc7cda757fa5c3ba754b08538ac98ca388a2d67e3c20b072caa5d086472f26c73d9e85c631a13dac2d788eeebd4cdd2a36893424f48eb3c09d95493067db1c0be5326fab661329982b07a05feaea21f35892a191b2c200fe9603eeea16842dd63e01a7398fe27807daf28e61997fd235894bd710207ce419b69a1ad60364bf80adef0362f6b27cf15754e10947e814929cd3d5fd0ca4a5061c98fe505a535d6846cb23fba34f18e34ef3f5f26c5f75caabbe7c57c04c761a5f59e5460b3e849941555d74ffa1805c2ed040856de13c4557871b40f9f8efb4b5bb3523250d3181ffc315d1e9ba39bfb8a9ee509a2809ea879453108a5cfc4b282b92e069958716c9e7174f46b97377e4432cc34376cfd52e06e19a6574fa345372aaabf1660b75a7ce958d12cbc171d16c31ac85304e516b9b99320964a0e5d992d38614b457f7b87a97603e14ca5e04e863e5516f120181f1bd86fb36801a19d7ed97aaafe47af0cee5977b492e729265ff8b15a3a89362d4fefd140b54042e1901f14d03ffca5eb588cd0b67ee7e6cb109ecc5b05fe817fa108a709b33020d3df9b145c656b884266e76d73d1a39833ab08015ec4b3033f52d999cf68147274b16e9ece9cf0740c8cc69c14f341c481b3b04ce353234933cf7fec1851dc3f53292010bccc84c74d81042792dfcc3e3b6a3e2b9598e6e7733dd94b9cac9894ad5741d44060f87a3585df9b51eb71f7678dd456dd39a0cce5314bff46581a2f6d77bde4dda55b2b117f700b0c468f7bf43531fe0b651a0c0a88602363cb2cd4998603e567c2b15e3ea949360543a1e07554ea573c89828027cde8e06506a33ccebd7aaa9ae9a306be47cd0dee8af9c118e40abb9b532d49703ef67fce209e85e1a79b823246d48df5e3dbe73eacd6691f93e489986d46eee15d43bbde603d1b8288a905c3396310b6a3261f3c72a2107b671471a7f31c9e79d8edd2c08c5af2ddbac885e72136b066b549fd1f1f65ae03b1020554b75ae3f980c55a0317a93bbf5ab56f8ccee78dff79f5a28fc01b78da9cf14b86df161bc91e48c6e1cfab0c1c8fdca9accf710220f3d9d516b31626b2f8e8187cb0c059e01883bbdc2472cb15e12e6bdce7352e354257c6b371238a5eb037fdfd99479700895b0849d2bdf3b41db054211d92054496082c6c52a6384afb8218474aabe575db7262279999a811f4890313606615e1fe49a3e6d384336e106c18abe81d0250084b0045da41795d38fec35624d4ea031f0032681b0c333e463721d875538b2832d2f22bdf9680dc76868f55b3ce80427c22b7fd1a08e6fedd16e4c85e56989856a30920e0270b5e00994b9719fbe555aa1514d76fa460f961911f1385f404ba2357ffdf4f4bd559737187b55bb264e9dac0361d1a08e6fedd16e4c85e56989856a30920e0270b5e00994b9719fbe555aa1514de511d377a57c8c6f757544f445d0ca2cb2332401d2c599328216c0f2634247c117a5654692aa7c44b6c28b33dcbc8c39578db62eae44de7913cc3754f66b91906b9ee683c06709db45d02a351703c0fdaae4f993c1e86f0ffbca0141ee528d4dd64f47ec395c19ee025a9cbd9fabcf66cf081b865209ebd55d703edbe2f846eae05543a6d19fea942514722288de4d5bb6feebe57091f9f0da4d2f1b309ca6dd3a8a45e9ce702c737312717614e13e16d70a8d91ed1ad49250d24fb2d3dad83d8973a9abbd250c39e954cf0fe20534ca7b897f4e8763e6f75ccfacc4de452691027b3b5b5c6dea4bab153e4499076a109efad92db6bf69ee1e32c79dc0dbc38efe0607ffd585d732473fd35ea472a59b701892a29df59a44ec6eb25b3788f1a664b53b6d7e3b6c994adc9971900b791c8371e45dad615cfab8304e012f250dc8fbe1aa3e99b1a844c9d02c1ba825cf00def9404bf69c4ce0fdee7cf6ea01d359afdd8fdbc12370d017310859915f1443710dc7d6973c5453152294987b0c199ae0a91c23074f8dce4e1a6bbe42cb4acf5c19936b5f18819f28b3823604bca87c735e9423ff1b27f76db480f150f983b010d9291079df2bff0471924cf646361ab71c52b45b9f49f7aa9e6f587f45dca4b57aafd091f224f9095e678256ac822ac3e2893183b6c546ed4e9dbe46891113de6b604091f539e8e6c3c6fa81190d1a3c44caccb0488280e44dc967c6fec3d19fb448fa04aa1e3fc93284a9c39e028cbcccdd32b482cd81327f942167f5815579b0c183852ad2c28f46410cb9a03c1b20d1156eac1f629a8c679e5bab22f54ed2da12b221999a92ed6222afb42a36466685824bb792cff8e495f12578be7dcb01a648dcbfb24aff997ff0175f2fc2e325a866ae6465aada7b5189f51de72202e73da61fb8ec00d5af2235c1404ce03889b6f5cae4d0925250a9890c64c1e52930d7d7cbd9d503ad7775037610df89562af372afba6e579929902f5e36e78b64d3fbbed71d39805fdd0d52a1c56116e5e38774c525c5e798f9f65670cc3e59141300c4e06da8f35b624261404c2fb9a005951415310831bf6a8f0f52780706e68160ed6c466c9d4a152af11c45467225aa9ffa69a69549dbe23dedd18eeaa0226862ed719f2d156965c534edf7d4dace2c54a3e8aae676306297ce3f4c0dec8b24ff954b289dda97d6a45f92247e710388c2d090c656504256ff3556d4a39402779d21ef64236c1197a6889e86125d7c4338a016ebcf0c7252d5331c60877feb88440b2514710802543a1a530747c616b32ba915884a4ca4a6077d162e62df53f582f2b336cc206275ca8f21a8dde5bb72ec89d85c733a7c02f4c8122b708d6c2535811beb072c5feaceb132ae5965dd7e4dbc53c7906bb31c0cedd0a851612a7787ce503992448469596c0d5d60f4b16a05fb10c703c43fb0a488fbe8ef63599ad3a9f6508bf3f40b339564e1618f08cc1a0d69cafbf24f7648eb05d53ef8376866893ea0c11dbac8278e0c901f4004d71f144d0feb81ddee74bc1ed5c3567e7dfcf35bc949e22fe55672a97417619f0b1c656c8724db30ace4e4ba007ae9daf254b9b0efef3d7fad05f3bdc740b77c4ff29f89d7cf6881c33c2d732f0715780da46e8c8debd43b84550bb18467ff6cd330815b7c932a721f87903637cb85e1da340da54bf8be354dbb8a09d394f13d67088e7be62a7d7bdae916d4df81f74efdcbb546c027c3e60d457503cefe55df598bb3a1eb188b1085e5f39788ecfecf67131da48be7a36fa0612c8d3e74b6ff15ec5870002efbf1fc09c72291177379e676f4bf99fe9a7eff4e736ba3378475eb00d84a97e8d2b1fef43cdda2c58096448781ee4768eda289a8a7943a4c10b8715f70b18283bf2dfcc84971856e3c08260783c1b923bffc83f12bfa1969d8f4825e81dbc39bde78c434dc865fe7e26e7a003d9d7c2de851810074d71c802b2488a533bc502a3f5e0ce4b80f1b6543b01cfa8b5e05129a54c2d9912f0b563aa493df8fbdb43dbc3f9b2da82b272771ad10b6a611371d7fb50772f2303cb4ca236cf81ad167446dc39db00bb91601b0b0ee25b099a9fa16ce674173f4cfb1add33148cef1ed121bfacdb9efdeb15f2a9a461d5eb31953a72b2a128944bd3ea09cde2b14ea7aebee462f430467dabc1ff8ea6adaad7fa34a2a037ea3ad874b883097df6b4561785becb6ac097c8dc054c132e54ba2a7bc52c00eaac15658f64be68a1ebfbf9815a8ebd248a2679e450b3f414930eb0c3344b67deadc2b2b8d4a2ffa7428201b32e2a487cf46821d5a9ee316ca81462ca4d57310abd545e6d200b05c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e5ab2caab33f487db18947494fa581dc77c6d9a181aea25f9f5c75dc7b47d140d5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a02eea9daaf098559ee0695636789369b86f933fcd5c8574f15ad6b361a941748f1c16ca0697b14d48b3eca968528533d4f6809c224928a4e205ed867c96101967b7a86c597ae4b68b34681ba872921f0265bd757d8a1f456ea2e376c2344796247e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0083ff5183c3b40ebf3bc4f9c8f734a72948800f59f690d161576c251b34ba629c354115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac634db4d76cb1b1a4fe9508d86dbd2256c2ad41300463f222bd019ea46f41fa366dfc0b5fc094aead79004ac189dd595c0cc2f66603d101912a3a886d4eff7deb4bb6e5acf64dbf1d891df490ecab79adad9a3c31decb091ec86286354c6e7f83eff808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4a70ab5b5fd45e3feb36a64e9b9a026c87abf5c43926b46d91f547eba0cc1603c98aa0bad92b4678295111e28c6b91feab59e1ebf15536df265bb02e38ba28e5e453d2be1c74127981c5b2b41fdc38e93a2b2112d8d85001ed0a82dc17a69a48caca85204d76d6aed3d1ab92d5ff4c37a5656bff26315134f445f7d4ae5c7d6209e2b8cd386bb38d355c225551f5fb86d22fa5c0484736f062ea0e4367fe06e0b507390fdd92fec0e362100b08c995b0657b577e76eb45912caba148ac16870b4b4b69664bf64a8c75436bc4144f0104adf1fe4c9ee7fab4f5e956e4d227f6ae68f4695b7ff61d3d5453bf384b5cf107fc83221149e348d41fb1cfcfc510809160ef5a15fb33a2522ad220709b97c5c69228709f4741e069c980a6976db172eec24272f206bb95c6c05e3a72a7d732c485cc5cd0140591caf2853e092400b1085f6ff09f7597f6ee41003b28fa0257b248814e1672ddb1c716609c3a5b392f880c94e01fc0dfd8a4313d1305dadee2e98d9c9bec7a5312e5ae1e8b2818c18d6ec70861ef321c41d838439a84ca1e737c43446ede71110e2e79efb702e9e66fcbca78d554165e5fa06c715a77680352838248aa56ac486f7a9d972031d7c120bc81c75a4bfb6b6aca516618ce060cec6a7910426e63ff3b4c1918a25cd23c53122d9d62a3e62a5b3ee2b987edebc49a6c3405d462462a90e85449d83f46d4509e5ed6d18f001145bee860b8f22170ae5cf5adf12274965733365ec68b75bdfb3f4b930e1c144ea2449ec12c129ad5a36c3ae242005b83969e40d90bf7e4b1ff5bd26e3bfaf96b328cb34ca1c088951196a404887a9b1d03b4e62dd9a78213a413802f28d4fdf6bd1c040820ff284c69ff3cf0d9418b56ebafd3e5cf57664fbc535ec7ba65f2c3918f3748ae1a32b29bff97b16a122dfe4ee83bdc5fe6178d627e123f2a69adbadf179eab166a5e7db45a5e3564dc66ec0afcae8b91923561293aeb3abbbb1bb8ce1a80769f145952879d668f9fea3007bf03d68d522a7755091271b209906f535a5ad9f3a30e8f3fa06473e68f1a1d9ad0674c041db0b4dba201ef8567c9c866907de7cc80ab3a35026df20b1d2a18240e28d3a1330b5eea8d72e34af08c2163b81944b5a8413b861ed42e07c52f7a81063061c9ec4f76460b8c88117c441fad6a9b1cefe89ad6a8a4deecdd197a53c83500d5608752c30d541d4706ddeea27aab2529149b81d423d4c7c9e0a0cbc94d005e63a7b24f9128c9915b99c203b8e9ba98ba2160481db4d7d3b027f379b1e9e2a1808b2e9ec7778c5460bab2844c1e122bb37a3d52b5c54a2aa3830389d9139599d5172fefd5d83ab8d08559ab591070a0ea52579da58076ca45453e49c43dcae56393187bd1da15d1e36626f010814a63815f82893bb1b0846b9323b7a212f30182b95f50a2834460427bbbd790285d950d9e16393ea6eb782008c5e596adbdb4354f6ce7d3b166b5ba360a53cdf0c77aeb637e70d9bb3c56f2fbf49c8794580b85597829bbee3cff1c257cb363c5f69c7d8a50368dbaed7f0fca696479caa09c643fe5e4c8d85f78a03a7d31eddd6ed9e157f52cf04d909b00d360ca279fde0cbfa217e29cb492845810c8f47ba3f7f226f209944bd357a848e41fa833d2552f731da5bee9a7412f8a03716befbf0b255141bec4de709513a5ae69b04dee0ebff115ff20ce8fb5a234969a3993f819e5a70a256333f363ce8da06d97a6b4eb4d625e6c5fa10cb4ca4debc7d5e600d06f571a969a103eb08fa8bd0511f50c8ba749bd018297414335442faf328a03db96470441e6894f62a3c2817e746c8161f4bdd6326b8f7ec98b691dcf05418b2f117a2383fb033714a921c40a92fdbf5c8da1ed4da3a4087946b9cc952c892e462b8a441d3dca597b2db44d051033803160262c2960ae762991a94be511339b563dd7a4613f9d3d21bfd7517db2b2c8fba0d5d8b0c271bf4f99b667ceadcb314609165a7c336c7238ec2b92af5fc1974496c4e6a79a469dd79eerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpetsc-3.14.5-150300.3.2.1.src.rpmpetsc-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3`[)`6?`3@`@_@^^@]@]N@]e@]]2@]1]/ \@\+@\\dZ@ZZZZ2@Z2@ZZw@ZZZ}@Z}@ZyZyZo ZX@ZOhZ ZYY@Y@Y@XCV +UnUK@eich@suse.comcgoll@suse.comeich@suse.comeich@suse.comaguerrero@suse.comeich@suse.comstefan.bruens@rwth-aachen.deeich@suse.comeich@suse.comstefan.bruens@rwth-aachen.deaguerrero@suse.comeich@suse.comnormand@linux.vnet.ibm.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.deeich@suse.comeich@suse.comguillaume.gardet@opensuse.orgeich@suse.comeich@suse.comstefan.bruens@rwth-aachen.deeich@suse.comro@suse.deeich@suse.comeich@suse.comeich@suse.comeich@suse.comcgoll@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comkkhere.geo@gmail.comkkhere.geo@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.com- Update to version 3.14.5. * Documentation & man page fixes, removal of non-existing functions. * CPARDISO: stick to OpenMPI BLACS when needed * bugfix for MatMatMultSymbolic_MPIAIJ_MPIDense() when Bbn1 = 0. Bb (column block size) zero lead to infinite loop in MatMatMultNumeric_MPIAIJ_MPIDense() with n=0. * petscviewer: fix the fortran bindings of XXXViewFromOptions when called with obj=PETSC_NULL_XXX. * PetscOptionsPrefixPush: Accept numbers if the stack is not empty. * PetscOptionsClearValue: Also clear 'help_intro' slot. * PetscOptionsDestroyDefault: Fix possible NULL-dereference. * PetscOptionsUsed: Fix for case-insensitive string comparison. * Do not use MPI_Bcast() on a single rank - This allows direct reading of much larger files, in, for example, MatLoad_SeqAIJ_Binary. * PCHPDDM: fix for KSPLSQR. * DMPlexVTKWriteAll_VTU: numerous bugfixes. * MatBAIJ: FIx specialization for size 9.- Updated to version 3.14.4 (jsc#SLE-14959) * versionToTuple: ignore leading strings in package versions. i.e 5.3.3consortium -> 5.3.3 * Add error checks for integer overflow for MatSeqXAIJSetPreallocation when the user provides nnz[]. Otherwise PetscMalloc() can produce error messages with requests to absurds amount of memory. Improve the error message for PetscIntMultError() and other casting routines and add more seealso entries to the manual pages. * Update dmlocalts.c to prevent zeroing out of locX_t after being computed in TSComputeIJacobian_DMLocal. * nargs.Arg: Remove interactiveness; provide useful error when key is not found. * DMPlexLandau: fix implicit conversion. * Allow users to mistaken use openmpi or mpich when setting mpi or mpi-dir and consistently use local variable 'name' * Consume -help in PetscOptionsSetValue() so it can be set from RC file etc. * Enable search patterns to have 'src*' at start. * Fix Matlab int32 to match changed changes in PETSc data types. * Generate error instead of crashing when estimating eigenvalues for Chebyshev, no right hand side vector is available and the user requested to not use a noisy right hand side. * Fix pcmgsetlevels() for Fortran to properly convert the C MPI communictors to Fortran. * Fix PCMGSetLevels_MG() to support the use of MPI_COMM_NULL for communicators that that live on a subset of the orginal communicator. * Add additional documentation material to PCMGSetLevels() explaining how one must handle the restriction and interpolation operations that move between different levels which have a different number of MPI ranks. * Call PetscCUDAInitializeCheck() in MatConvert_SeqAIJ_SeqAIJCUSPARSE since it uses cuSparse(). * Missing this sometimes produces errors in the CU tests, but other times it passes. I don't understand why it is not needed. * checkbadSource now prints line numbers of where it finds problems. * Add support to Fortran interface for PCASMGetSubKSP() and PCGASMGetSubKSP() to use PETSC_NULL_INT for first two arguments. * Missing define in landaucu.cu. * Fix for PCView_BJacobi() case when neither if case is statisfied. * DMCreateInterpolation() requires a custom Fortran stub because it RETURNS an optional vector. * Add -da_refine to manual page for DMDASetRefinementFactor(). * AIJMKL: cannot print a scalar in case of complex. * Fix memory leaks in TSTrajectoryCreate_Memory() and possibly bugs * Don't generate an error if the user does not free all objects while using SuperLU_DIST. * -ksp_view -ksp_type gmres -pc_type gasm fails on one process. Fixed by removing special case handling of size 1 that tried to reuse orginal viewer as subviewer which does not work. * Add KSPGMRESSetBreakdownTolerance() and -ksp_gmres_breakdown_tolerance - to restore old GMRES behaviour for MOOSE. * Fix bug introduced by PCASMSetSubMatType() when MAT_REUSE_MATRIX is used with a different type of pmat compared to pmat[i]. * Always destroy previously created pmat[i] and use MAT_INITIAL_MATRIX * Clarify integers set with to ISCreateBlock() and ISBlockSetIndices() in manual pages. * Remove ierr = VecSetInf(ksp->vec_sol);CHKERRQ(ierr); from KSPSetUp_Chebyshev() since ksp->vec_sol may not yet exist and it is not needed since VecSetInf(ksp->vec_sol) is set in KSPSolve() just before the actual solve if ksp->reason = KSP_DIVERGED_PC_FAILED. * Remove mention of DMDAGetLocalInfoF90() since it does not exist, Fortran version has same name as C version. * MATSHELL: matrix sizes may not be known at creation time. * Pass PetscDrawSetSave() and PetscDrawSetSaveFinalImage() to PetscViewerGetSubViewer_Draw(). Otherwise MatView() on parallel matrices, for example, will not generate an image file. * config MPI: fix type of self.libdir (which is passed to os.path.join). * MUMPS: add -DBLR_MT when configuring --with-openmp. * missing PDIPM and typo in BQNLS for fortran imports. * Fixed issue where scalapack matrix is created with a communicator different from MPI_COMM_WORLD. * Fix PetscErrorCode typos in Fortran stubs. * Remove interface declarations for functions that don't exist. * SNESMultiblock: add back into build (had been missing - still untested). * MATDAAD: remove vestigial references to deleted DAAD. * Fix device atomics with 64-bit indices and prefer long long over int64_t * petsc4py.py: set download-petsc4py-commit to None to overcome missing key error. * petsc4py: Update Cython build * Set `language_level` to `3str` if supported (Cython >= 0.29) * Initial preparations for upcoming release Cython 3.0 * Require Cython >= 0.24, older versions do not longer work * Improve python-related entries in configure --help. * add missing --download-petsc4py option. * remove python options other than --with-python-exec which have no effect. * move --with-python-exec to PETSc section. * PetscPythonFindLibrary: One more way to get pythonlib. Hotfix for case when LDLIBRARY yields libpython.a erroneously. * SLEPc: pass PYTHONPATH for slepc4py. * Add manual page for MATMPIDENSE. * Fix outdated mention of "-snes_ksp_ew_conv" in users manual. * Improve manual pages for MatGetValuesLocal() and MatGetValues() to clarify what values may be obtained with these routines. * Add to manual pages the use of call XXXView(x,0) from the debugger. * KSPGCR: add man pages for setting and getting restart. * Put the docs for -snes_test_jacobian in SNESSetFromOptions() instead of hidden away in developer routine. * Improve clarity of docs for PETSC_VIEWER_SOCKET with Matlab. - Refactored patches: * petsc-3.3-p2-no-rpath.patch * petsc-3.7-fix-pastix-detection.patch- Add build support for gcc10 to HPC build (bsc#1174439). - Add openmpi4 flavors.- Change 'Requires:' to other HPC packages to %requires_eq to depend on the exact version. This should take care of HPC packages ignoring proper ABI versioning.- Update to version 3.14.1 * https://www.mcs.anl.gov/petsc/documentation/changes/314.html - Refresh patches- Make sure, doc package is built for SLE (bsc#1173269).- Force use of python3 on Tumbleweed. As the python2 executable was also set in petsc's configuration, dependent packages no longer depend on python2. - Fix she-bangs in python scripts - Only require python{2,3}-base packages instead of full packages.- Remove unneeded dependency from HPC devel package.- Update to version 3.12.2 (jsc#SLE-8505) * https://www.mcs.anl.gov/petsc/documentation/changes/312.html - Remove petsc-3.3-p2-fix-shared-libs-sonames.patch link created directly in %install section - Remove petsc-3.3-p2-dont-check-for-option-mistakes.patch not needed. - Remove petsc-3.3-fix-error-detection-in-makefile.patch not needed. - Add non-HPC build with openmpi3 - Add HPC builds for gcc8 & gcc 9 (jsc#SLE-7766 & jsc#SLE-8604). - Disable openmpi1 builds for SLE/Leap > 15.1. - Enable openmpi3 builds for Leap and SLE > 15.1 (jsc#SLE-7773).- Reflect renaming of openmpi packages to openmpi1 in Tumbleweed, fixes unresolvable packages. - Fix copy'n'paste error, mpi_vers vs. mpi_ver - Add non-HPC openmpi2 flavor.- Update to version 3.11.3 (jsc#SLE-8505) - https://www.mcs.anl.gov/petsc/documentation/changes/311.html - Binaries have changed path from bin/ to lib/petsc/bin/ - Patches removed, merged by upstream * Python-Fix-a-number-of-scripts-to-by-Python-3-compliant.patch * petsc-fix-nonmpi.patch - Patches refreshed * petsc-3.3-p2-fix-shared-libs-sonames.patch * petsc-3.3-p2-no-rpath.patch * petsc-3.3-p2-dont-check-for-option-mistakes.patch * petsc-3.3-fix-error-detection-in-makefile.patch * petsc-3.7-fix-pastix-detection.patch - Set -fPIC also on x86_64- Upped memory constraints to 6G for non-ppc systems as well, leaving the special ppc treatment in place in case we need to up it some more there.- update _constraints for PowerPC more than 4G memory - Add BuildRequires libopenblas-gnu-hpc >= 0.3.6 for hpc to avoid to build when openblas library not available.- Disable pastix also in openmpi flavor, same as for serial and HPC flavors. Pastix is only built with openmpi, and not available in Factory.- Fix building non-MPI flavors of packages depending on petsc Add petsc-fix-nonmpi.patch - Do not move headers to /usr/include and symlink, causes problems with - isystem- Fix spec for non-HPC, reenable serial and non-HPC openmpi build. - Disable HYPRE for non-HPC, same as for HPC.- Consolidate use of openmpi1, openmpi2, openmpi3. - Do not build non-HPC on SLE.- (Temporarily) disable fpr S390* as a check test for netcdf fails currently on BE (bsc#1091474).- Add _constraints to avoid OOM errors- Do not require 'Modules' for HPC build: seetings from /etc/profile.d/lmod.[c]sh will be overwritten by /etc/profile.d/modules.[c]sh installed by Modules (bsc#1089865).- Convert doc package build to noarch. This will hopefully avoid spurious build errors on SLE-12.- Set '-fPIC' also on aarch64- Reenable flavor 'serial' to build the doc package only (bsc#1087050). Note: for this flavor nothing else gets built: once the missing dependencies have been fixed, rearrange the [#]%if 0%{?makedoc:1} ... %endif.- use "-fPIC" also on s390, like on ppc64 (bsc#1086008)- Don't build the serial flavor as the build presently breaks everywhere (bsc#1084677).- Python-Fix-a-number-of-scripts-to-by-Python-3-compliant.patch: Fix python scripts - convert to Python 3 (bsc#1082209). - Restructure package: factor out SAWs stuff. We cannot support this as SAWs itself isn't available for SUSE. - Move python files that are not stand-alone out of the bin directory. - Fix permissions in bin and other directories. - Removed some unwanted scripts: rules - make rules sendToJenkins - this should probably be modified to print an error message uncrustify.cfg - used by 'rules' - Removed win32fe: DLLs for Windows - Set '-fPIC' on ppc64.- Update to version 3.8.3: http://www.mcs.anl.gov/petsc/documentation/changes/37.html (FATE#325333).- Since the OpenBLAS build was fixed, reenable scalapack on s390 (bsc#1079513). - Add support for openmpi2 for HPC (FATE#325089). - Fix build on ppc64le (bsc#1080380).- Fix summary in module files (bnc#1080259)- Don't use baselibs.conf: some dependencies are not available for i586 on Factory.- The HPC build of petsc depends on openBLAS. OpenBLAS doesn't support s390: skip building on s390 (bsc#1079513).- Fix build with rpm v4.14.- Disable the openmpi3 flavor in some products.- Switch from gcc6 to gcc7 as additional compiler flavor for HPC on SLES. - Fix library package requires - use HPC macro (boo#1074890). - Add support for mpich and openmpi3 for HPC. - Fix unexpanded rpm macro in environment module file for HPC (boo#1074897).- emvironment modules: only set BIN when binary path exists. - Fix RPM macro name %hpc_upcase.- Add libhdf5/libscalapack*-hpc as Requires to the library package for HPC.- Simplify Group: - do not destinguish between MPI and non-MPI: the IBS check scripts cannot handle this well.- Fix Requires for HPC build.- Disable non-HPC openmpi flavor due to missing dependencies.- Convert to multibuild. - Add HPC build using environment modules (FATE#321718). - Generate baselib.conf dynamically and only for the non-HPC builds: this avoids issues with the source validator. - Updated to 3.7.6 (in sync with OpenHPC) Changelog at: http://www.mcs.anl.gov/petsc/documentation/changes/37.html- recreate petsc package with version 3.7.5 previously existing petsc package was deleted for unknown reasons. package in science repository is just a broken link. previous changelog salvaged from installed rpm is below. - upstream version changelogs available at https://www.mcs.anl.gov/petsc/petsc-as/documentation/changes/index.html- Refix blacs dependency, since blacs is now merged in scalapack- Fix blacs dependency ambiguity- Fix building on ppc64 and ppc64lesheep21 1655309316  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 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 i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3.14.5-150300.3.2.1      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""#############################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*********************************************************************************************************************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++,-..............--///0-1111--2222222222222222222222,33444444444444443566666666666666577785599999999999999999999993:::::::::::::::::::::3;;;;;;;;;;;;;;33<<<=33>>>>>>>>>>>>>>>>>>>>>>333petsc-docbugreporting.htmlchanges2015.html2016.html2017.html2018-21.html2022.html2024.html2028.html2029.html21.html211.html212.html213.html215.html216.html220.html221.html230.html231.html232.html233.html300.html31.html310.html311.html312.html313.html314.html32.html33.html34.html35.html36.html37.html38.html39.htmlindex.htmlcodemanagement.htmlcopyright.htmlfaq.htmlindex.htmlinstallation.htmllicense.htmllinearsolvertable.htmlmanual.pdfmanualpagesAOAO.htmlAOApplicationToPetsc.htmlAOApplicationToPetscIS.htmlAOApplicationToPetscPermuteInt.htmlAOApplicationToPetscPermuteReal.htmlAOCreate.htmlAOCreateBasic.htmlAOCreateBasicIS.htmlAOCreateMapping.htmlAOCreateMappingIS.htmlAOCreateMemoryScalable.htmlAOCreateMemoryScalableIS.htmlAODestroy.htmlAOFinalizePackage.htmlAOGetType.htmlAOInitializePackage.htmlAOMappingHasApplicationIndex.htmlAOMappingHasPetscIndex.htmlAOPetscToApplication.htmlAOPetscToApplicationIS.htmlAOPetscToApplicationPermuteInt.htmlAOPetscToApplicationPermuteReal.htmlAORegister.htmlAORegisterAll.htmlAOSetFromOptions.htmlAOSetIS.htmlAOSetType.htmlAOType.htmlAOView.htmlAOViewFromOptions.htmlindex.htmlCharacteristicCharacteristic.htmlCharacteristicFinalizePackage.htmlCharacteristicInitializePackage.htmlCharacteristicRegister.htmlCharacteristicRegisterAll.htmlCharacteristicSetType.htmlCharacteristicSetUp.htmlCharacteristicType.htmlindex.htmlDMDM.htmlDMAdaptFlag.htmlDMAdaptLabel.htmlDMAdaptMetric.htmlDMAdaptationCriterion.htmlDMAdaptationStrategy.htmlDMAddBoundary.htmlDMAddField.htmlDMAddLabel.htmlDMAppendOptionsPrefix.htmlDMBoundaryConditionType.htmlDMBoundaryType.htmlDMCOMPOSITE.htmlDMClearDS.htmlDMClearFields.htmlDMClearGlobalVectors.htmlDMClearLabelStratum.htmlDMClearLabelValue.htmlDMClearLocalVectors.htmlDMClone.htmlDMCoarsen.htmlDMCoarsenHierarchy.htmlDMCoarsenHookAdd.htmlDMCoarsenHookRemove.htmlDMCompositeAddDM.htmlDMCompositeCreate.htmlDMCompositeGather.htmlDMCompositeGatherArray.htmlDMCompositeGetAccess.htmlDMCompositeGetAccessArray.htmlDMCompositeGetEntries.htmlDMCompositeGetEntriesArray.htmlDMCompositeGetGlobalISs.htmlDMCompositeGetISLocalToGlobalMappings.htmlDMCompositeGetLocalAccessArray.htmlDMCompositeGetLocalISs.htmlDMCompositeGetLocalVectors.htmlDMCompositeGetNumberDM.htmlDMCompositeRestoreAccess.htmlDMCompositeRestoreAccessArray.htmlDMCompositeRestoreLocalAccessArray.htmlDMCompositeRestoreLocalVectors.htmlDMCompositeScatter.htmlDMCompositeScatterArray.htmlDMCompositeSetCoupling.htmlDMComputeExactSolution.htmlDMComputeL2Diff.htmlDMComputeL2FieldDiff.htmlDMComputeL2GradientDiff.htmlDMComputeVariableBounds.htmlDMConvert.htmlDMCopyDS.htmlDMCopyDisc.htmlDMCopyFields.htmlDMCopyLabels.htmlDMCreate.htmlDMCreateColoring.htmlDMCreateDS.htmlDMCreateDomainDecomposition.htmlDMCreateDomainDecompositionScatters.htmlDMCreateFieldDecomposition.htmlDMCreateGlobalVector.htmlDMCreateInjection.htmlDMCreateInterpolation.htmlDMCreateInterpolationScale.htmlDMCreateLabel.htmlDMCreateLocalVector.htmlDMCreateMassMatrix.htmlDMCreateMatrix.htmlDMCreateRestriction.htmlDMCreateSectionSF.htmlDMCreateSectionSubDM.htmlDMCreateSectionSuperDM.htmlDMCreateSubDM.htmlDMCreateSuperDM.htmlDMDestroy.htmlDMDirection.htmlDMEnclosureType.htmlDMField.htmlDMFieldCreateDefaultQuadrature.htmlDMFieldCreateFEGeom.htmlDMFieldDestroy.htmlDMFieldEvaluate.htmlDMFieldEvaluateFE.htmlDMFieldEvaluateFV.htmlDMFieldFinalizePackage.htmlDMFieldGetDM.htmlDMFieldGetDegree.htmlDMFieldGetNumComponents.htmlDMFieldGetType.htmlDMFieldInitializePackage.htmlDMFieldRegister.htmlDMFieldRegisterAll.htmlDMFieldSetType.htmlDMFieldType.htmlDMFieldView.htmlDMFinalizePackage.htmlDMFindRegionNum.htmlDMGetAdjacency.htmlDMGetApplicationContext.htmlDMGetBasicAdjacency.htmlDMGetBlockSize.htmlDMGetBoundary.htmlDMGetBoundingBox.htmlDMGetCellDS.htmlDMGetCoarseDM.htmlDMGetCoarsenLevel.htmlDMGetCompatibility.htmlDMGetCoordinateDM.htmlDMGetCoordinateDim.htmlDMGetCoordinateSection.htmlDMGetCoordinates.htmlDMGetCoordinatesLocal.htmlDMGetCoordinatesLocalNoncollective.htmlDMGetCoordinatesLocalSetUp.htmlDMGetCoordinatesLocalTuple.htmlDMGetCoordinatesLocalized.htmlDMGetCoordinatesLocalizedLocal.htmlDMGetDS.htmlDMGetDefaultConstraints.htmlDMGetDimPoints.htmlDMGetDimension.htmlDMGetField.htmlDMGetFineDM.htmlDMGetGlobalSection.htmlDMGetGlobalVector.htmlDMGetISColoringType.htmlDMGetLabel.htmlDMGetLabelByNum.htmlDMGetLabelIdIS.htmlDMGetLabelName.htmlDMGetLabelOutput.htmlDMGetLabelSize.htmlDMGetLabelValue.htmlDMGetLocalBoundingBox.htmlDMGetLocalSection.htmlDMGetLocalToGlobalMapping.htmlDMGetLocalVector.htmlDMGetMatType.htmlDMGetNamedGlobalVector.htmlDMGetNamedLocalVector.htmlDMGetNeighbors.htmlDMGetNumBoundary.htmlDMGetNumDS.htmlDMGetNumFields.htmlDMGetNumLabels.htmlDMGetOptionsPrefix.htmlDMGetOutputDM.htmlDMGetOutputSequenceNumber.htmlDMGetPeriodicity.htmlDMGetPointSF.htmlDMGetRefineLevel.htmlDMGetRegionDS.htmlDMGetRegionNumDS.htmlDMGetSection.htmlDMGetSectionSF.htmlDMGetStratumIS.htmlDMGetStratumSize.htmlDMGetType.htmlDMGetUseNatural.htmlDMGetVecType.htmlDMGetWorkArray.htmlDMGlobalToLocal.htmlDMGlobalToLocalBegin.htmlDMGlobalToLocalBeginDefaultShell.htmlDMGlobalToLocalEnd.htmlDMGlobalToLocalEndDefaultShell.htmlDMGlobalToLocalHookAdd.htmlDMHasBasisTransform.htmlDMHasColoring.htmlDMHasCreateInjection.htmlDMHasCreateRestriction.htmlDMHasLabel.htmlDMHasNamedGlobalVector.htmlDMHasNamedLocalVector.htmlDMHasVariableBounds.htmlDMInitializePackage.htmlDMInterpolate.htmlDMInterpolationInfo.htmlDMLabel.htmlDMLoad.htmlDMLocalToGlobal.htmlDMLocalToGlobalBegin.htmlDMLocalToGlobalBeginDefaultShell.htmlDMLocalToGlobalEnd.htmlDMLocalToGlobalEndDefaultShell.htmlDMLocalToGlobalHookAdd.htmlDMLocalToLocalBegin.htmlDMLocalToLocalBeginDefaultShell.htmlDMLocalToLocalEnd.htmlDMLocalToLocalEndDefaultShell.htmlDMLocalizeCoordinate.htmlDMLocalizeCoordinates.htmlDMLocatePoints.htmlDMMonitor.htmlDMMonitorCancel.htmlDMMonitorSet.htmlDMMonitorSetFromOptions.htmlDMOutputSequenceLoad.htmlDMPATCH.htmlDMPlexInterpolatedFlag.htmlDMPointLocationType.htmlDMPolytopeType.htmlDMProjectBdFieldLabelLocal.htmlDMProjectCoordinates.htmlDMProjectFieldLabelLocal.htmlDMProjectFieldLocal.htmlDMProjectFunction.htmlDMProjectFunctionLabel.htmlDMProjectFunctionLabelLocal.htmlDMProjectFunctionLocal.htmlDMREDUNDANT.htmlDMRedundantCreate.htmlDMRedundantGetSize.htmlDMRedundantSetSize.htmlDMRefine.htmlDMRefineHierarchy.htmlDMRefineHookAdd.htmlDMRefineHookRemove.htmlDMRegister.htmlDMRegisterAll.htmlDMRemoveLabel.htmlDMRemoveLabelBySelf.htmlDMRestoreGlobalVector.htmlDMRestoreLocalVector.htmlDMRestoreNamedGlobalVector.htmlDMRestoreNamedLocalVector.htmlDMRestoreWorkArray.htmlDMRestrict.htmlDMSLICED.htmlDMSetAdjacency.htmlDMSetApplicationContext.htmlDMSetApplicationContextDestroy.htmlDMSetBasicAdjacency.htmlDMSetCoarseDM.htmlDMSetCoarsenLevel.htmlDMSetCoordinateDM.htmlDMSetCoordinateDim.htmlDMSetCoordinateSection.htmlDMSetCoordinates.htmlDMSetCoordinatesLocal.htmlDMSetDefaultConstraints.htmlDMSetDimension.htmlDMSetField.htmlDMSetFineDM.htmlDMSetFromOptions.htmlDMSetGlobalSection.htmlDMSetISColoringType.htmlDMSetLabelOutput.htmlDMSetLabelValue.htmlDMSetLocalSection.htmlDMSetMatType.htmlDMSetMatrixPreallocateOnly.htmlDMSetMatrixStructureOnly.htmlDMSetNullSpaceConstructor.htmlDMSetNumFields.htmlDMSetOptionsPrefix.htmlDMSetOutputSequenceNumber.htmlDMSetPeriodicity.htmlDMSetPointSF.htmlDMSetRefineLevel.htmlDMSetRegionDS.htmlDMSetRegionNumDS.htmlDMSetSection.htmlDMSetSectionSF.htmlDMSetStratumIS.htmlDMSetType.htmlDMSetUp.htmlDMSetUseNatural.htmlDMSetVariableBounds.htmlDMSetVecType.htmlDMShellCreate.htmlDMShellGetCoarsen.htmlDMShellGetContext.htmlDMShellGetCreateInjection.htmlDMShellGetCreateInterpolation.htmlDMShellGetCreateRestriction.htmlDMShellGetCreateSubDM.htmlDMShellGetRefine.htmlDMShellSetCoarsen.htmlDMShellSetContext.htmlDMShellSetCreateDomainDecomposition.htmlDMShellSetCreateDomainDecompositionScatters.htmlDMShellSetCreateFieldDecomposition.htmlDMShellSetCreateGlobalVector.htmlDMShellSetCreateInjection.htmlDMShellSetCreateInterpolation.htmlDMShellSetCreateLocalVector.htmlDMShellSetCreateMatrix.htmlDMShellSetCreateRestriction.htmlDMShellSetCreateSubDM.htmlDMShellSetGlobalToLocal.htmlDMShellSetGlobalToLocalVecScatter.htmlDMShellSetGlobalVector.htmlDMShellSetLocalToGlobal.htmlDMShellSetLocalToGlobalVecScatter.htmlDMShellSetLocalToLocal.htmlDMShellSetLocalToLocalVecScatter.htmlDMShellSetLocalVector.htmlDMShellSetMatrix.htmlDMShellSetRefine.htmlDMSlicedCreate.htmlDMSlicedSetBlockFills.htmlDMSlicedSetGhosts.htmlDMSlicedSetPreallocation.htmlDMSubDomainHookAdd.htmlDMSubDomainHookRemove.htmlDMSubDomainRestrict.htmlDMType.htmlDMView.htmlDMViewFromOptions.htmlMatFDColoringUseDM.htmlMatGetDM.htmlMatSetDM.htmlPETSCPARTITIONERCHACO.htmlPETSCPARTITIONERGATHER.htmlPETSCPARTITIONERMATPARTITIONING.htmlPETSCPARTITIONERPARMETIS.htmlPETSCPARTITIONERPTSCOTCH.htmlPETSCPARTITIONERSHELL.htmlPETSCPARTITIONERSIMPLE.htmlPetscDS.htmlPetscDSFinalizePackage.htmlPetscDSInitializePackage.htmlPetscDSRegisterAll.htmlPetscDSType.htmlPetscDTBinomial.htmlPetscDTBinomialInt.htmlPetscDTEnumPerm.htmlPetscDTEnumSubset.htmlPetscDTFactorial.htmlPetscDTFactorialInt.htmlPetscDTNodeType.htmlPetscDTPermIndex.htmlPetscDTSubsetIndex.htmlPetscDualSpaceRegisterAll.htmlPetscFEFinalizePackage.htmlPetscFEInitializePackage.htmlPetscFERegisterAll.htmlPetscFVFinalizePackage.htmlPetscFVInitializePackage.htmlPetscFVRegisterAll.htmlPetscGaussLobattoLegendreCreateType.htmlPetscLimiterRegisterAll.htmlPetscPartitioner.htmlPetscPartitionerCreate.htmlPetscPartitionerDestroy.htmlPetscPartitionerFinalizePackage.htmlPetscPartitionerGetType.htmlPetscPartitionerInitializePackage.htmlPetscPartitionerMatPartitioningGetMatPartitioning.htmlPetscPartitionerPartition.htmlPetscPartitionerRegister.htmlPetscPartitionerRegisterAll.htmlPetscPartitionerReset.htmlPetscPartitionerSetFromOptions.htmlPetscPartitionerSetType.htmlPetscPartitionerSetUp.htmlPetscPartitionerShellGetRandom.htmlPetscPartitionerShellSetPartition.htmlPetscPartitionerShellSetRandom.htmlPetscPartitionerType.htmlPetscPartitionerView.htmlPetscPartitionerViewFromOptions.htmlPetscQuadrature.htmlPetscSpaceRegisterAll.htmlPetscUnit.htmlVecGetDM.htmlVecSetDM.htmlindex.htmlDMDADMCreateAggregates.htmlDMDA.htmlDMDAConvertToCell.htmlDMDACoor2d.htmlDMDACoor3d.htmlDMDACreate.htmlDMDACreate1d.htmlDMDACreate2d.htmlDMDACreate3d.htmlDMDACreateAggregates.htmlDMDACreateCompatibleDMDA.htmlDMDACreateNaturalVector.htmlDMDACreatePF.htmlDMDACreatePatchIS.htmlDMDAElementType.htmlDMDAGetAO.htmlDMDAGetArray.htmlDMDAGetCellPoint.htmlDMDAGetCoordinateArray.htmlDMDAGetCoordinateName.htmlDMDAGetCorners.htmlDMDAGetDof.htmlDMDAGetElementType.htmlDMDAGetElements.htmlDMDAGetElementsCorners.htmlDMDAGetElementsSizes.htmlDMDAGetFieldName.htmlDMDAGetFieldNames.htmlDMDAGetGhostCorners.htmlDMDAGetInfo.htmlDMDAGetInterpolationType.htmlDMDAGetLocalInfo.htmlDMDAGetLogicalCoordinate.htmlDMDAGetNeighbors.htmlDMDAGetNonOverlappingRegion.htmlDMDAGetNumCells.htmlDMDAGetNumLocalSubDomains.htmlDMDAGetOffset.htmlDMDAGetOverlap.htmlDMDAGetOwnershipRanges.htmlDMDAGetPreallocationCenterDimension.htmlDMDAGetProcessorSubset.htmlDMDAGetProcessorSubsets.htmlDMDAGetRay.htmlDMDAGetReducedDMDA.htmlDMDAGetRefinementFactor.htmlDMDAGetScatter.htmlDMDAGetStencilType.htmlDMDAGetStencilWidth.htmlDMDAGetSubdomainCornersIS.htmlDMDAGlobalToNaturalAllCreate.htmlDMDAGlobalToNaturalBegin.htmlDMDAGlobalToNaturalEnd.htmlDMDAInterpolationType.htmlDMDALocalInfo.htmlDMDANaturalAllToGlobalCreate.htmlDMDANaturalToGlobalBegin.htmlDMDANaturalToGlobalEnd.htmlDMDARestoreArray.htmlDMDARestoreCoordinateArray.htmlDMDARestoreElements.htmlDMDARestoreSubdomainCornersIS.htmlDMDASetAOType.htmlDMDASetBlockFills.htmlDMDASetBlockFillsSparse.htmlDMDASetBoundaryType.htmlDMDASetCoordinateName.htmlDMDASetDof.htmlDMDASetElementType.htmlDMDASetFieldName.htmlDMDASetFieldNames.htmlDMDASetGLLCoordinates.htmlDMDASetGetMatrix.htmlDMDASetInterpolationType.htmlDMDASetNonOverlappingRegion.htmlDMDASetNumLocalSubDomains.htmlDMDASetNumProcs.htmlDMDASetOffset.htmlDMDASetOverlap.htmlDMDASetOwnershipRanges.htmlDMDASetPreallocationCenterDimension.htmlDMDASetRefinementFactor.htmlDMDASetSizes.htmlDMDASetStencilType.htmlDMDASetStencilWidth.htmlDMDASetUniformCoordinates.htmlDMDAStencilType.htmlDMDAVTKWriteAll.htmlDMDAVecGetArray.htmlDMDAVecGetArrayDOF.htmlDMDAVecGetArrayDOFRead.htmlDMDAVecGetArrayRead.htmlDMDAVecGetArrayWrite.htmlDMDAVecRestoreArray.htmlDMDAVecRestoreArrayDOF.htmlDMDAVecRestoreArrayDOFRead.htmlDMDAVecRestoreArrayRead.htmlDMDAVecRestoreArrayWrite.htmlDMDA_STENCIL_BOX.htmlDMDA_STENCIL_STAR.htmlMATHYPRESSTRUCT.htmlMATHYPRESTRUCT.htmlMatCreateSeqUSFFT.htmlMatSetupDM.htmlindex.htmlDMFORESTDMFOREST.htmlDMForestGetAdaptivityForest.htmlDMForestGetAdaptivityLabel.htmlDMForestGetAdaptivityPurpose.htmlDMForestGetAdaptivitySF.htmlDMForestGetAdaptivitySuccess.htmlDMForestGetAdjacencyCodimension.htmlDMForestGetAdjacencyDimension.htmlDMForestGetBaseDM.htmlDMForestGetCellChart.htmlDMForestGetCellSF.htmlDMForestGetCellWeightFactor.htmlDMForestGetCellWeights.htmlDMForestGetComputeAdaptivitySF.htmlDMForestGetGradeFactor.htmlDMForestGetInitialRefinement.htmlDMForestGetMaximumRefinement.htmlDMForestGetMinimumRefinement.htmlDMForestGetPartitionOverlap.htmlDMForestGetTopology.htmlDMForestGetWeightCapacity.htmlDMForestRegisterType.htmlDMForestSetAdaptivityForest.htmlDMForestSetAdaptivityLabel.htmlDMForestSetAdaptivityPurpose.htmlDMForestSetAdaptivityStrategy.htmlDMForestSetAdjacencyCodimension.htmlDMForestSetAdjacencyDimension.htmlDMForestSetBaseDM.htmlDMForestSetCellWeightFactor.htmlDMForestSetCellWeights.htmlDMForestSetGradeFactor.htmlDMForestSetInitialRefinement.htmlDMForestSetMaximumRefinement.htmlDMForestSetMinimumRefinement.htmlDMForestSetPartitionOverlap.htmlDMForestSetTopology.htmlDMForestSetWeightCapacity.htmlDMForestTemplate.htmlDMIsForest.htmlindex.htmlDMLABELDMLabelAddStrata.htmlDMLabelAddStrataIS.htmlDMLabelAddStratum.htmlDMLabelClearStratum.htmlDMLabelClearValue.htmlDMLabelComputeIndex.htmlDMLabelConvertToSection.htmlDMLabelCreate.htmlDMLabelCreateIndex.htmlDMLabelDestroy.htmlDMLabelDestroyIndex.htmlDMLabelDistribute.htmlDMLabelDuplicate.htmlDMLabelFilter.htmlDMLabelGather.htmlDMLabelGetBounds.htmlDMLabelGetDefaultValue.htmlDMLabelGetNumValues.htmlDMLabelGetStratumBounds.htmlDMLabelGetStratumIS.htmlDMLabelGetStratumSize.htmlDMLabelGetValue.htmlDMLabelGetValueIS.htmlDMLabelHasPoint.htmlDMLabelHasStratum.htmlDMLabelHasValue.htmlDMLabelInsertIS.htmlDMLabelPermute.htmlDMLabelReset.htmlDMLabelSetDefaultValue.htmlDMLabelSetStratumBounds.htmlDMLabelSetStratumIS.htmlDMLabelSetValue.htmlDMLabelStratumHasPoint.htmlDMLabelView.htmlPetscSectionCreateGlobalSectionLabel.htmlPetscSectionSymCreateLabel.htmlPetscSectionSymLabelSetLabel.htmlPetscSectionSymLabelSetStratum.htmlindex.htmlDMMOABCompute_Lagrange_Basis_1D_Internal.htmlCompute_Lagrange_Basis_2D_Internal.htmlCompute_Lagrange_Basis_3D_Internal.htmlDMCoarsenHierarchy_Moab.htmlDMCoarsen_Moab.htmlDMCreateInjection_Moab.htmlDMCreateInterpolation_Moab.htmlDMMOAB.htmlDMMoabCreate.htmlDMMoabCreateBoxMesh.htmlDMMoabCreateElement.htmlDMMoabCreateMoab.htmlDMMoabCreateSubmesh.htmlDMMoabCreateVector.htmlDMMoabCreateVertices.htmlDMMoabFEMComputeBasis.htmlDMMoabFEMCreateQuadratureDefault.htmlDMMoabGenerateHierarchy.htmlDMMoabGetAllVertices.htmlDMMoabGetBlockSize.htmlDMMoabGetBoundaryMarkers.htmlDMMoabGetDimension.htmlDMMoabGetDofs.htmlDMMoabGetDofsBlocked.htmlDMMoabGetDofsBlockedLocal.htmlDMMoabGetDofsLocal.htmlDMMoabGetElementConnectivity.htmlDMMoabGetFieldDof.htmlDMMoabGetFieldDofs.htmlDMMoabGetFieldDofsLocal.htmlDMMoabGetFieldName.htmlDMMoabGetHierarchyLevel.htmlDMMoabGetInterface.htmlDMMoabGetLocalElements.htmlDMMoabGetLocalSize.htmlDMMoabGetLocalToGlobalTag.htmlDMMoabGetLocalVertices.htmlDMMoabGetMaterialBlock.htmlDMMoabGetOffset.htmlDMMoabGetParallelComm.htmlDMMoabGetSize.htmlDMMoabGetVecRange.htmlDMMoabGetVecTag.htmlDMMoabGetVertexConnectivity.htmlDMMoabGetVertexCoordinates.htmlDMMoabGetVertexDofsBlocked.htmlDMMoabGetVertexDofsBlockedLocal.htmlDMMoabIsEntityOnBoundary.htmlDMMoabLoadFromFile.htmlDMMoabOutput.htmlDMMoabPToRMapping.htmlDMMoabRenumberMeshEntities.htmlDMMoabRestoreVertexConnectivity.htmlDMMoabSetBlockFills.htmlDMMoabSetBlockSize.htmlDMMoabSetFieldName.htmlDMMoabSetFieldNames.htmlDMMoabSetFieldVector.htmlDMMoabSetGlobalFieldVector.htmlDMMoabSetInterface.htmlDMMoabSetLocalElements.htmlDMMoabSetLocalToGlobalTag.htmlDMMoabSetLocalVertices.htmlDMMoabVecGetArray.htmlDMMoabVecGetArrayRead.htmlDMMoabVecRestoreArray.htmlDMRefineHierarchy_Moab.htmlDMRefine_Moab.htmlindex.htmlDMNetworkDMNETWORK.htmlDMNetworkAddComponent.htmlDMNetworkAddNumVariables.htmlDMNetworkAssembleGraphStructures.htmlDMNetworkCreate.htmlDMNetworkDistribute.htmlDMNetworkEdgeSetMatrix.htmlDMNetworkGetComponent.htmlDMNetworkGetComponentVariableGlobalOffset.htmlDMNetworkGetComponentVariableOffset.htmlDMNetworkGetConnectedVertices.htmlDMNetworkGetEdgeOffset.htmlDMNetworkGetEdgeRange.htmlDMNetworkGetGlobalEdgeIndex.htmlDMNetworkGetGlobalVertexIndex.htmlDMNetworkGetNumComponents.htmlDMNetworkGetNumVariables.htmlDMNetworkGetPlex.htmlDMNetworkGetSizes.htmlDMNetworkGetSubnetworkCoupleInfo.htmlDMNetworkGetSubnetworkInfo.htmlDMNetworkGetSupportingEdges.htmlDMNetworkGetVariableGlobalOffset.htmlDMNetworkGetVariableOffset.htmlDMNetworkGetVertexLocalToGlobalOrdering.htmlDMNetworkGetVertexOffset.htmlDMNetworkGetVertexRange.htmlDMNetworkHasJacobian.htmlDMNetworkIsGhostVertex.htmlDMNetworkLayoutSetUp.htmlDMNetworkMonitorAdd.htmlDMNetworkMonitorCreate.htmlDMNetworkMonitorDestroy.htmlDMNetworkMonitorPop.htmlDMNetworkMonitorView.htmlDMNetworkRegisterComponent.htmlDMNetworkSetComponentNumVariables.htmlDMNetworkSetEdgeList.htmlDMNetworkSetNumVariables.htmlDMNetworkSetSizes.htmlDMNetworkSetVertexLocalToGlobalOrdering.htmlDMNetworkVertexSetMatrix.htmlPetscSFGetSubSF.htmlindex.htmlDMPATCHDMPatchCreate.htmlindex.htmlDMPLEXDMComputeL2DiffLocal.htmlDMCreateNeumannOverlap.htmlDMGetEnclosurePoint.htmlDMGetEnclosureRelation.htmlDMPLEX.htmlDMPlexAddConeSize.htmlDMPlexBuildCoordinatesFromCellList.htmlDMPlexBuildCoordinatesFromCellListParallel.htmlDMPlexBuildFromCellList.htmlDMPlexBuildFromCellListParallel.htmlDMPlexCellRefinerGetAffineFaceTransforms.htmlDMPlexCellRefinerGetAffineTransforms.htmlDMPlexCellRefinerRefine.htmlDMPlexCheckCellShape.htmlDMPlexCheckFaces.htmlDMPlexCheckGeometry.htmlDMPlexCheckInterfaceCones.htmlDMPlexCheckPointSF.htmlDMPlexCheckSkeleton.htmlDMPlexCheckSymmetry.htmlDMPlexCompareOrientations.htmlDMPlexComputeBdIntegral.htmlDMPlexComputeCellGeometryAffineFEM.htmlDMPlexComputeCellGeometryFEM.htmlDMPlexComputeCellGeometryFVM.htmlDMPlexComputeCellTypes.htmlDMPlexComputeCellwiseIntegralFEM.htmlDMPlexComputeGeometryFEM.htmlDMPlexComputeGeometryFVM.htmlDMPlexComputeGradientClementInterpolant.htmlDMPlexComputeGradientFVM.htmlDMPlexComputeInjectorFEM.htmlDMPlexComputeIntegralFEM.htmlDMPlexComputeInterpolatorGeneral.htmlDMPlexComputeInterpolatorNested.htmlDMPlexComputeL2DiffVec.htmlDMPlexComputeMassMatrixGeneral.htmlDMPlexComputeOrthogonalQuality.htmlDMPlexComputeProjection2Dto1D.htmlDMPlexComputeProjection3Dto1D.htmlDMPlexComputeProjection3Dto2D.htmlDMPlexConstructCohesiveCells.htmlDMPlexConstructGhostCells.htmlDMPlexCoordinatesToReference.htmlDMPlexCopyCoordinates.htmlDMPlexCreate.htmlDMPlexCreateBallMesh.htmlDMPlexCreateBasisRotation.htmlDMPlexCreateBoxMesh.htmlDMPlexCreateCGNS.htmlDMPlexCreateCellVertexFromFile.htmlDMPlexCreateClosureIndex.htmlDMPlexCreateCoarsePointIS.htmlDMPlexCreateCohesiveSubmesh.htmlDMPlexCreateCubeBoundary.htmlDMPlexCreateDefaultReferenceTree.htmlDMPlexCreateDoublet.htmlDMPlexCreateExodus.htmlDMPlexCreateExodusFromFile.htmlDMPlexCreateFluent.htmlDMPlexCreateFluentFromFile.htmlDMPlexCreateFromCellList.htmlDMPlexCreateFromCellListParallel.htmlDMPlexCreateFromCellListParallelPetsc.htmlDMPlexCreateFromCellListPetsc.htmlDMPlexCreateFromDAG.htmlDMPlexCreateFromFile.htmlDMPlexCreateGlobalToNaturalSF.htmlDMPlexCreateGmsh.htmlDMPlexCreateGmshFromFile.htmlDMPlexCreateHexCylinderMesh.htmlDMPlexCreateHybridMesh.htmlDMPlexCreateLabelField.htmlDMPlexCreateMedFromFile.htmlDMPlexCreateNeighborCSR.htmlDMPlexCreateOverlapLabel.htmlDMPlexCreateOverlapMigrationSF.htmlDMPlexCreatePLYFromFile.htmlDMPlexCreatePartitionerGraph.htmlDMPlexCreatePointNumbering.htmlDMPlexCreatePointSF.htmlDMPlexCreateProcessSF.htmlDMPlexCreateRankField.htmlDMPlexCreateReferenceCell.htmlDMPlexCreateReferenceCellByType.htmlDMPlexCreateRigidBodies.htmlDMPlexCreateRigidBody.htmlDMPlexCreateSection.htmlDMPlexCreateSphereMesh.htmlDMPlexCreateSquareBoundary.htmlDMPlexCreateSubmesh.htmlDMPlexCreateTwoSidedProcessSF.htmlDMPlexCreateWedgeBoxMesh.htmlDMPlexCreateWedgeCylinderMesh.htmlDMPlexDistribute.htmlDMPlexDistributeData.htmlDMPlexDistributeField.htmlDMPlexDistributeFieldIS.htmlDMPlexDistributeOverlap.htmlDMPlexDistributeOwnership.htmlDMPlexEqual.htmlDMPlexExtrude.htmlDMPlexFilter.htmlDMPlexFindVertices.htmlDMPlexGenerate.htmlDMPlexGenerateRegister.htmlDMPlexGenerateRegisterAll.htmlDMPlexGetActivePoint.htmlDMPlexGetAdjacency.htmlDMPlexGetAdjacencyUseAnchors.htmlDMPlexGetAdjacencyUser.htmlDMPlexGetAnchors.htmlDMPlexGetCellFields.htmlDMPlexGetCellNumbering.htmlDMPlexGetCellRefinerType.htmlDMPlexGetCellType.htmlDMPlexGetCellTypeLabel.htmlDMPlexGetChart.htmlDMPlexGetClosureIndices.htmlDMPlexGetCone.htmlDMPlexGetConeOrientation.htmlDMPlexGetConeOrientations.htmlDMPlexGetConeRecursive.htmlDMPlexGetConeRecursiveVertices.htmlDMPlexGetConeSection.htmlDMPlexGetConeSize.htmlDMPlexGetConeTuple.htmlDMPlexGetCones.htmlDMPlexGetDataFVM.htmlDMPlexGetDepth.htmlDMPlexGetDepthLabel.htmlDMPlexGetDepthStratum.htmlDMPlexGetFaceFields.htmlDMPlexGetFaceGeometry.htmlDMPlexGetFullJoin.htmlDMPlexGetFullMeet.htmlDMPlexGetGatherDM.htmlDMPlexGetGeometryFVM.htmlDMPlexGetGhostCellStratum.htmlDMPlexGetGlobalToNaturalSF.htmlDMPlexGetGradientDM.htmlDMPlexGetHeightStratum.htmlDMPlexGetJoin.htmlDMPlexGetMaxProjectionHeight.htmlDMPlexGetMaxSizes.htmlDMPlexGetMeet.htmlDMPlexGetMigrationSF.htmlDMPlexGetMinRadius.htmlDMPlexGetNumFaceVertices.htmlDMPlexGetOrdering.htmlDMPlexGetOrientedFace.htmlDMPlexGetOverlap.htmlDMPlexGetPartitionBalance.htmlDMPlexGetPartitioner.htmlDMPlexGetPointDepth.htmlDMPlexGetPointGlobal.htmlDMPlexGetPointGlobalField.htmlDMPlexGetPointHeight.htmlDMPlexGetPointLocal.htmlDMPlexGetPointLocalField.htmlDMPlexGetRedundantDM.htmlDMPlexGetReferenceTree.htmlDMPlexGetRefinementFunction.htmlDMPlexGetRefinementLimit.htmlDMPlexGetRefinementUniform.htmlDMPlexGetRegularRefinement.htmlDMPlexGetScale.htmlDMPlexGetSimplexOrBoxCells.htmlDMPlexGetSubdomainSection.htmlDMPlexGetSubpointIS.htmlDMPlexGetSubpointMap.htmlDMPlexGetSupport.htmlDMPlexGetSupportSection.htmlDMPlexGetSupportSize.htmlDMPlexGetTransitiveClosure.htmlDMPlexGetTransitiveClosure_Internal.htmlDMPlexGetTree.htmlDMPlexGetTreeChildren.htmlDMPlexGetTreeParent.htmlDMPlexGetVTKCellHeight.htmlDMPlexGetVertexNumbering.htmlDMPlexGlobalToLocalBasis.htmlDMPlexGlobalToNaturalBegin.htmlDMPlexGlobalToNaturalEnd.htmlDMPlexInsertBoundaryValues.htmlDMPlexInsertBoundaryValuesEssential.htmlDMPlexInsertBoundaryValuesEssentialBdField.htmlDMPlexInsertBoundaryValuesEssentialField.htmlDMPlexInsertBoundaryValuesRiemann.htmlDMPlexInsertCone.htmlDMPlexInsertConeOrientation.htmlDMPlexInsertSupport.htmlDMPlexInsertTimeDerivativeBoundaryValues.htmlDMPlexInterpolate.htmlDMPlexInterpolatePointSF.htmlDMPlexInvertCell.htmlDMPlexIsDistributed.htmlDMPlexIsInterpolated.htmlDMPlexIsInterpolatedCollective.htmlDMPlexLabelAddCells.htmlDMPlexLabelAddFaceCells.htmlDMPlexLabelClearCells.htmlDMPlexLabelCohesiveComplete.htmlDMPlexLabelComplete.htmlDMPlexLocalToGlobalBasis.htmlDMPlexMarkBoundaryFaces.htmlDMPlexMatSetClosure.htmlDMPlexMigrate.htmlDMPlexMonitorThroughput.htmlDMPlexNaturalToGlobalBegin.htmlDMPlexNaturalToGlobalEnd.htmlDMPlexOrient.htmlDMPlexOrientCell.htmlDMPlexPartitionLabelAdjacency.htmlDMPlexPartitionLabelClosure.htmlDMPlexPartitionLabelCreateSF.htmlDMPlexPartitionLabelInvert.htmlDMPlexPartitionLabelPropagate.htmlDMPlexPermute.htmlDMPlexPointGlobalFieldRead.htmlDMPlexPointGlobalFieldRef.htmlDMPlexPointGlobalRead.htmlDMPlexPointGlobalRef.htmlDMPlexPointLocalFieldRead.htmlDMPlexPointLocalFieldRef.htmlDMPlexPointLocalRead.htmlDMPlexPointLocalRef.htmlDMPlexPreallocateOperator.htmlDMPlexRebalanceSharedPoints.htmlDMPlexReconstructGradientsFVM.htmlDMPlexReferenceToCoordinates.htmlDMPlexReferenceTreeGetChildSymmetry.htmlDMPlexRemapGeometry.htmlDMPlexReorderCell.htmlDMPlexRestoreCellFields.htmlDMPlexRestoreClosureIndices.htmlDMPlexRestoreConeRecursive.htmlDMPlexRestoreFaceFields.htmlDMPlexRestoreFaceGeometry.htmlDMPlexRestoreJoin.htmlDMPlexRestoreMeet.htmlDMPlexRestoreTransitiveClosure.htmlDMPlexReverseCell.htmlDMPlexRewriteSF.htmlDMPlexSetActivePoint.htmlDMPlexSetAdjacencyUseAnchors.htmlDMPlexSetAdjacencyUser.htmlDMPlexSetAnchors.htmlDMPlexSetCellRefinerType.htmlDMPlexSetCellType.htmlDMPlexSetChart.htmlDMPlexSetClosurePermutationTensor.htmlDMPlexSetCone.htmlDMPlexSetConeOrientation.htmlDMPlexSetConeSize.htmlDMPlexSetGlobalToNaturalSF.htmlDMPlexSetMaxProjectionHeight.htmlDMPlexSetMigrationSF.htmlDMPlexSetMinRadius.htmlDMPlexSetOptionsPrefix.htmlDMPlexSetPartitionBalance.htmlDMPlexSetPartitioner.htmlDMPlexSetReferenceTree.htmlDMPlexSetRefinementFunction.htmlDMPlexSetRefinementLimit.htmlDMPlexSetRefinementUniform.htmlDMPlexSetRegularRefinement.htmlDMPlexSetScale.htmlDMPlexSetSubpointMap.htmlDMPlexSetSupport.htmlDMPlexSetSupportSize.htmlDMPlexSetTree.htmlDMPlexSetVTKCellHeight.htmlDMPlexShearGeometry.htmlDMPlexSnapToGeomModel.htmlDMPlexStratify.htmlDMPlexStratifyMigrationSF.htmlDMPlexSymmetrize.htmlDMPlexTetgenSetOptions.htmlDMPlexTransferVecTree.htmlDMPlexTriangleSetOptions.htmlDMPlexUninterpolate.htmlDMPlexVTKWriteAll.htmlDMPlexVecGetClosure.htmlDMPlexVecRestoreClosure.htmlDMPlexVecSetClosure.htmlPETSCVIEWEREXODUSII.htmlPetscPartitionerDMPlexPartition.htmlPetscViewerExodusIIGetId.htmlPetscViewerExodusIIOpen.htmlindex.htmlDMPRODUCTDMPRODUCT.htmlDMProductGetDM.htmlDMProductSetDM.htmlDMProductSetDimensionIndex.htmlindex.htmlDMSTAGDMSTAG.htmlDMStagCreate1d.htmlDMStagCreate2d.htmlDMStagCreate3d.htmlDMStagCreateCompatibleDMStag.htmlDMStagDuplicateWithoutSetup.htmlDMStagGetBoundaryTypes.htmlDMStagGetCorners.htmlDMStagGetDOF.htmlDMStagGetEntries.htmlDMStagGetEntriesPerElement.htmlDMStagGetGhostCorners.htmlDMStagGetGlobalSizes.htmlDMStagGetIsFirstRank.htmlDMStagGetIsLastRank.htmlDMStagGetLocalSizes.htmlDMStagGetLocationDOF.htmlDMStagGetLocationSlot.htmlDMStagGetNumRanks.htmlDMStagGetOwnershipRanges.htmlDMStagGetProductCoordinateArrays.htmlDMStagGetProductCoordinateArraysRead.htmlDMStagGetProductCoordinateLocationSlot.htmlDMStagGetStencilType.htmlDMStagGetStencilWidth.htmlDMStagMatGetValuesStencil.htmlDMStagMatSetValuesStencil.htmlDMStagMigrateVec.htmlDMStagPopulateLocalToGlobalInjective.htmlDMStagRestoreProductCoordinateArrays.htmlDMStagRestoreProductCoordinateArraysRead.htmlDMStagSetBoundaryTypes.htmlDMStagSetCoordinateDMType.htmlDMStagSetDOF.htmlDMStagSetGlobalSizes.htmlDMStagSetNumRanks.htmlDMStagSetOwnershipRanges.htmlDMStagSetStencilType.htmlDMStagSetStencilWidth.htmlDMStagSetUniformCoordinates.htmlDMStagSetUniformCoordinatesExplicit.htmlDMStagSetUniformCoordinatesProduct.htmlDMStagStencil.htmlDMStagStencilLocation.htmlDMStagStencilType.htmlDMStagVecGetArray.htmlDMStagVecGetArrayRead.htmlDMStagVecGetValuesStencil.htmlDMStagVecRestoreArray.htmlDMStagVecRestoreArrayRead.htmlDMStagVecSetValuesStencil.htmlDMStagVecSplitToDMDA.htmlindex.htmlDMSWARMDMSWARM.htmlDMSwarmAddNPoints.htmlDMSwarmAddPoint.htmlDMSwarmCollectViewCreate.htmlDMSwarmCollectViewDestroy.htmlDMSwarmCopyPoint.htmlDMSwarmCreateGlobalVectorFromField.htmlDMSwarmCreateLocalVectorFromField.htmlDMSwarmCreateMassMatrixSquare.htmlDMSwarmCreatePointPerCellCount.htmlDMSwarmDestroyGlobalVectorFromField.htmlDMSwarmDestroyLocalVectorFromField.htmlDMSwarmFinalizeFieldRegister.htmlDMSwarmGetCellDM.htmlDMSwarmGetField.htmlDMSwarmGetLocalSize.htmlDMSwarmGetSize.htmlDMSwarmInitializeFieldRegister.htmlDMSwarmInsertPointsUsingCellDM.htmlDMSwarmMigrate.htmlDMSwarmProjectFields.htmlDMSwarmRegisterPetscDatatypeField.htmlDMSwarmRegisterUserDatatypeField.htmlDMSwarmRegisterUserStructField.htmlDMSwarmRemovePoint.htmlDMSwarmRemovePointAtIndex.htmlDMSwarmRestoreField.htmlDMSwarmSetCellDM.htmlDMSwarmSetLocalSizes.htmlDMSwarmSetPointCoordinates.htmlDMSwarmSetPointCoordinatesCellwise.htmlDMSwarmSetPointsUniformCoordinates.htmlDMSwarmSetType.htmlDMSwarmSortGetAccess.htmlDMSwarmSortGetIsValid.htmlDMSwarmSortGetNumberOfPointsPerCell.htmlDMSwarmSortGetPointsPerCell.htmlDMSwarmSortGetSizes.htmlDMSwarmSortRestoreAccess.htmlDMSwarmVectorDefineField.htmlDMSwarmViewFieldsXDMF.htmlDMSwarmViewXDMF.htmlindex.htmlDTPETSCDSBASIC.htmlPetscDSAddBoundary.htmlPetscDSAddDiscretization.htmlPetscDSCopyBoundary.htmlPetscDSCopyConstants.htmlPetscDSCopyEquations.htmlPetscDSCreate.htmlPetscDSDestroy.htmlPetscDSGetBdJacobian.htmlPetscDSGetBdJacobianPreconditioner.htmlPetscDSGetBdResidual.htmlPetscDSGetBoundary.htmlPetscDSGetComponentDerivativeOffsets.htmlPetscDSGetComponentOffset.htmlPetscDSGetComponentOffsets.htmlPetscDSGetComponents.htmlPetscDSGetConstants.htmlPetscDSGetCoordinateDimension.htmlPetscDSGetDimensions.htmlPetscDSGetDiscretization.htmlPetscDSGetDynamicJacobian.htmlPetscDSGetExactSolution.htmlPetscDSGetExactSolutionTimeDerivative.htmlPetscDSGetFaceTabulation.htmlPetscDSGetFieldIndex.htmlPetscDSGetFieldOffset.htmlPetscDSGetFieldSize.htmlPetscDSGetHybrid.htmlPetscDSGetImplicit.htmlPetscDSGetJacobian.htmlPetscDSGetJacobianPreconditioner.htmlPetscDSGetNumBoundary.htmlPetscDSGetNumFields.htmlPetscDSGetQuadrature.htmlPetscDSGetResidual.htmlPetscDSGetRiemannSolver.htmlPetscDSGetSpatialDimension.htmlPetscDSGetTabulation.htmlPetscDSGetTotalComponents.htmlPetscDSGetTotalDimension.htmlPetscDSGetType.htmlPetscDSGetUpdate.htmlPetscDSHasBdJacobian.htmlPetscDSHasBdJacobianPreconditioner.htmlPetscDSHasDynamicJacobian.htmlPetscDSHasJacobian.htmlPetscDSHasJacobianPreconditioner.htmlPetscDSRegister.htmlPetscDSSelectDiscretizations.htmlPetscDSSelectEquations.htmlPetscDSSetBdJacobian.htmlPetscDSSetBdJacobianPreconditioner.htmlPetscDSSetBdResidual.htmlPetscDSSetConstants.htmlPetscDSSetCoordinateDimension.htmlPetscDSSetDiscretization.htmlPetscDSSetDynamicJacobian.htmlPetscDSSetExactSolution.htmlPetscDSSetExactSolutionTimeDerivative.htmlPetscDSSetFromOptions.htmlPetscDSSetHybrid.htmlPetscDSSetImplicit.htmlPetscDSSetJacobian.htmlPetscDSSetJacobianPreconditioner.htmlPetscDSSetResidual.htmlPetscDSSetRiemannSolver.htmlPetscDSSetType.htmlPetscDSSetUp.htmlPetscDSSetUpdate.htmlPetscDSUpdateBoundary.htmlPetscDSUseJacobianPreconditioner.htmlPetscDSView.htmlPetscDSViewFromOptions.htmlPetscDTAltV.htmlPetscDTAltVApply.htmlPetscDTAltVInterior.htmlPetscDTAltVInteriorMatrix.htmlPetscDTAltVInteriorPattern.htmlPetscDTAltVPullback.htmlPetscDTAltVPullbackMatrix.htmlPetscDTAltVStar.htmlPetscDTAltVWedge.htmlPetscDTAltVWedgeMatrix.htmlPetscDTBaryToIndex.htmlPetscDTGaussJacobiQuadrature.htmlPetscDTGaussLobattoJacobiQuadrature.htmlPetscDTGaussLobattoLegendreQuadrature.htmlPetscDTGaussQuadrature.htmlPetscDTGaussTensorQuadrature.htmlPetscDTGradedOrderToIndex.htmlPetscDTIndexToBary.htmlPetscDTIndexToGradedOrder.htmlPetscDTJacobiEval.htmlPetscDTJacobiEvalJet.htmlPetscDTJacobiNorm.htmlPetscDTLegendreEval.htmlPetscDTPKDEvalJet.htmlPetscDTReconstructPoly.htmlPetscDTStroudConicalQuadrature.htmlPetscDTTanhSinhTensorQuadrature.htmlPetscGaussLobattoLegendreElementAdvectionCreate.htmlPetscGaussLobattoLegendreElementAdvectionDestroy.htmlPetscGaussLobattoLegendreElementGradientCreate.htmlPetscGaussLobattoLegendreElementGradientDestroy.htmlPetscGaussLobattoLegendreElementLaplacianCreate.htmlPetscGaussLobattoLegendreElementLaplacianDestroy.htmlPetscGaussLobattoLegendreIntegrate.htmlPetscQuadratureCreate.htmlPetscQuadratureDestroy.htmlPetscQuadratureDuplicate.htmlPetscQuadratureExpandComposite.htmlPetscQuadratureGetData.htmlPetscQuadratureGetNumComponents.htmlPetscQuadratureGetOrder.htmlPetscQuadraturePushForward.htmlPetscQuadratureSetData.htmlPetscQuadratureSetNumComponents.htmlPetscQuadratureSetOrder.htmlPetscQuadratureView.htmlindex.htmlDUALSPACEPETSCDUALSPACEBDM.htmlPETSCDUALSPACELAGRANGE.htmlPETSCDUALSPACEREFINED.htmlPETSCDUALSPACESIMPLE.htmlPetscDTBinomial.htmlPetscDTBinomialInt.htmlPetscDTEnumPerm.htmlPetscDTEnumSubset.htmlPetscDTFactorial.htmlPetscDTFactorialInt.htmlPetscDTNodeType.htmlPetscDTPermIndex.htmlPetscDTSubsetIndex.htmlPetscDualSpace.htmlPetscDualSpaceApply.htmlPetscDualSpaceApplyAll.htmlPetscDualSpaceApplyAllDefault.htmlPetscDualSpaceApplyDefault.htmlPetscDualSpaceApplyFVM.htmlPetscDualSpaceApplyInterior.htmlPetscDualSpaceApplyInteriorDefault.htmlPetscDualSpaceCreate.htmlPetscDualSpaceCreateAllDataDefault.htmlPetscDualSpaceCreateInteriorDataDefault.htmlPetscDualSpaceCreateReferenceCell.htmlPetscDualSpaceDestroy.htmlPetscDualSpaceDuplicate.htmlPetscDualSpaceGetAllData.htmlPetscDualSpaceGetDM.htmlPetscDualSpaceGetDeRahm.htmlPetscDualSpaceGetDimension.htmlPetscDualSpaceGetFormDegree.htmlPetscDualSpaceGetFunctional.htmlPetscDualSpaceGetHeightSubspace.htmlPetscDualSpaceGetInteriorData.htmlPetscDualSpaceGetInteriorDimension.htmlPetscDualSpaceGetNumComponents.htmlPetscDualSpaceGetNumDof.htmlPetscDualSpaceGetOrder.htmlPetscDualSpaceGetPointSubspace.htmlPetscDualSpaceGetSection.htmlPetscDualSpaceGetSymmetries.htmlPetscDualSpaceGetType.htmlPetscDualSpaceGetUniform.htmlPetscDualSpaceLagrangeGetContinuity.htmlPetscDualSpaceLagrangeGetNodeType.htmlPetscDualSpaceLagrangeGetTensor.htmlPetscDualSpaceLagrangeGetTrimmed.htmlPetscDualSpaceLagrangeSetContinuity.htmlPetscDualSpaceLagrangeSetNodeType.htmlPetscDualSpaceLagrangeSetTensor.htmlPetscDualSpaceLagrangeSetTrimmed.htmlPetscDualSpacePullback.htmlPetscDualSpacePushforward.htmlPetscDualSpacePushforwardGradient.htmlPetscDualSpaceReferenceCell.htmlPetscDualSpaceRefinedSetCellSpaces.htmlPetscDualSpaceRegister.htmlPetscDualSpaceSetDM.htmlPetscDualSpaceSetFormDegree.htmlPetscDualSpaceSetFromOptions.htmlPetscDualSpaceSetNumComponents.htmlPetscDualSpaceSetOrder.htmlPetscDualSpaceSetType.htmlPetscDualSpaceSetUp.htmlPetscDualSpaceSimpleSetDimension.htmlPetscDualSpaceSimpleSetFunctional.htmlPetscDualSpaceTransform.htmlPetscDualSpaceTransformGradient.htmlPetscDualSpaceTransformType.htmlPetscDualSpaceType.htmlPetscDualSpaceView.htmlPetscDualSpaceViewFromOptions.htmlPetscFE.htmlPetscFEJacobianType.htmlPetscFEType.htmlPetscGaussLobattoLegendreCreateType.htmlPetscQuadrature.htmlPetscSpace.htmlPetscSpacePolynomialType.htmlPetscSpaceType.htmlindex.htmlDrawPETSC_DRAW_IMAGE.htmlPETSC_DRAW_NULL.htmlPETSC_DRAW_X.htmlPetscDraw.htmlPetscDrawAppendTitle.htmlPetscDrawArrow.htmlPetscDrawAxis.htmlPetscDrawAxisCreate.htmlPetscDrawAxisDestroy.htmlPetscDrawAxisDraw.htmlPetscDrawAxisGetLimits.htmlPetscDrawAxisSetColors.htmlPetscDrawAxisSetHoldLimits.htmlPetscDrawAxisSetLabels.htmlPetscDrawAxisSetLimits.htmlPetscDrawBOP.htmlPetscDrawBar.htmlPetscDrawBarCreate.htmlPetscDrawBarDestroy.htmlPetscDrawBarDraw.htmlPetscDrawBarGetAxis.htmlPetscDrawBarGetDraw.htmlPetscDrawBarSave.htmlPetscDrawBarSetColor.htmlPetscDrawBarSetData.htmlPetscDrawBarSetFromOptions.htmlPetscDrawBarSetLimits.htmlPetscDrawBarSort.htmlPetscDrawButton.htmlPetscDrawCheckResizedWindow.htmlPetscDrawClear.htmlPetscDrawCoordinateToPixel.htmlPetscDrawCreate.htmlPetscDrawDestroy.htmlPetscDrawEOP.htmlPetscDrawEllipse.htmlPetscDrawFinalizePackage.htmlPetscDrawFlush.htmlPetscDrawGetBoundingBox.htmlPetscDrawGetCoordinates.htmlPetscDrawGetCurrentPoint.htmlPetscDrawGetMarkerType.htmlPetscDrawGetMouseButton.htmlPetscDrawGetPause.htmlPetscDrawGetPopup.htmlPetscDrawGetSingleton.htmlPetscDrawGetTitle.htmlPetscDrawGetType.htmlPetscDrawGetViewPort.htmlPetscDrawGetWindowSize.htmlPetscDrawHG.htmlPetscDrawHGAddValue.htmlPetscDrawHGCalcStats.htmlPetscDrawHGCreate.htmlPetscDrawHGDestroy.htmlPetscDrawHGDraw.htmlPetscDrawHGGetAxis.htmlPetscDrawHGGetDraw.htmlPetscDrawHGIntegerBins.htmlPetscDrawHGReset.htmlPetscDrawHGSave.htmlPetscDrawHGSetColor.htmlPetscDrawHGSetLimits.htmlPetscDrawHGSetNumberBins.htmlPetscDrawHGView.htmlPetscDrawIndicatorFunction.htmlPetscDrawIsNull.htmlPetscDrawLG.htmlPetscDrawLGAddCommonPoint.htmlPetscDrawLGAddPoint.htmlPetscDrawLGAddPoints.htmlPetscDrawLGCreate.htmlPetscDrawLGDestroy.htmlPetscDrawLGDraw.htmlPetscDrawLGGetAxis.htmlPetscDrawLGGetDimension.htmlPetscDrawLGGetDraw.htmlPetscDrawLGReset.htmlPetscDrawLGSPDraw.htmlPetscDrawLGSave.htmlPetscDrawLGSetColors.htmlPetscDrawLGSetDimension.htmlPetscDrawLGSetFromOptions.htmlPetscDrawLGSetLegend.htmlPetscDrawLGSetLimits.htmlPetscDrawLGSetOptionsPrefix.htmlPetscDrawLGSetUseMarkers.htmlPetscDrawLGView.htmlPetscDrawLine.htmlPetscDrawLineGetWidth.htmlPetscDrawLineSetWidth.htmlPetscDrawMarker.htmlPetscDrawMarkerType.htmlPetscDrawOpenImage.htmlPetscDrawOpenNull.htmlPetscDrawOpenX.htmlPetscDrawPause.htmlPetscDrawPixelToCoordinate.htmlPetscDrawPoint.htmlPetscDrawPointPixel.htmlPetscDrawPointSetSize.htmlPetscDrawPopCurrentPoint.htmlPetscDrawPushCurrentPoint.htmlPetscDrawRealToColor.htmlPetscDrawRectangle.htmlPetscDrawRegister.htmlPetscDrawRegisterAll.htmlPetscDrawResizeWindow.htmlPetscDrawRestoreSingleton.htmlPetscDrawSP.htmlPetscDrawSPAddPoint.htmlPetscDrawSPAddPoints.htmlPetscDrawSPCreate.htmlPetscDrawSPDestroy.htmlPetscDrawSPDraw.htmlPetscDrawSPGetAxis.htmlPetscDrawSPGetDraw.htmlPetscDrawSPReset.htmlPetscDrawSPSave.htmlPetscDrawSPSetDimension.htmlPetscDrawSPSetLimits.htmlPetscDrawSave.htmlPetscDrawSaveMovie.htmlPetscDrawScalePopup.htmlPetscDrawSetCoordinates.htmlPetscDrawSetCurrentPoint.htmlPetscDrawSetDisplay.htmlPetscDrawSetDoubleBuffer.htmlPetscDrawSetFromOptions.htmlPetscDrawSetMarkerType.htmlPetscDrawSetOptionsPrefix.htmlPetscDrawSetPause.htmlPetscDrawSetSave.htmlPetscDrawSetSaveFinalImage.htmlPetscDrawSetSaveMovie.htmlPetscDrawSetTitle.htmlPetscDrawSetType.htmlPetscDrawSetViewPort.htmlPetscDrawSplitViewPort.htmlPetscDrawString.htmlPetscDrawStringBoxed.htmlPetscDrawStringCentered.htmlPetscDrawStringGetSize.htmlPetscDrawStringSetSize.htmlPetscDrawStringVertical.htmlPetscDrawTensorContour.htmlPetscDrawTensorContourPatch.htmlPetscDrawTriangle.htmlPetscDrawType.htmlPetscDrawView.htmlPetscDrawViewFromOptions.htmlPetscDrawViewPorts.htmlPetscDrawViewPortsCreate.htmlPetscDrawViewPortsCreateRect.htmlPetscDrawViewPortsDestroy.htmlPetscDrawViewPortsSet.htmlPetscDrawZoom.htmlPetscInitializeDrawPackage.htmlindex.htmlFEPETSCDUALSPACEBDM.htmlPETSCFEBASIC.htmlPETSCFECOMPOSITE.htmlPETSCFEOPENCL.htmlPetscDTBinomial.htmlPetscDTBinomialInt.htmlPetscDTEnumPerm.htmlPetscDTEnumSubset.htmlPetscDTFactorial.htmlPetscDTFactorialInt.htmlPetscDTNodeType.htmlPetscDTPermIndex.htmlPetscDTSubsetIndex.htmlPetscDualSpace.htmlPetscDualSpaceReferenceCell.htmlPetscDualSpaceTransformType.htmlPetscDualSpaceType.htmlPetscFE.htmlPetscFECompositeGetMapping.htmlPetscFEComputeTabulation.htmlPetscFECopyQuadrature.htmlPetscFECreate.htmlPetscFECreateDefault.htmlPetscFECreateLagrange.htmlPetscFECreateTabulation.htmlPetscFEDestroy.htmlPetscFEGeomComplete.htmlPetscFEGeomCreate.htmlPetscFEGeomDestroy.htmlPetscFEGeomGetChunk.htmlPetscFEGeomRestoreChunk.htmlPetscFEGetBasisSpace.htmlPetscFEGetCellTabulation.htmlPetscFEGetDimension.htmlPetscFEGetDualSpace.htmlPetscFEGetFaceCentroidTabulation.htmlPetscFEGetFaceQuadrature.htmlPetscFEGetFaceTabulation.htmlPetscFEGetHeightSubspace.htmlPetscFEGetNumComponents.htmlPetscFEGetNumDof.htmlPetscFEGetQuadrature.htmlPetscFEGetSpatialDimension.htmlPetscFEGetTileSizes.htmlPetscFEGetType.htmlPetscFEIntegrate.htmlPetscFEIntegrateBd.htmlPetscFEIntegrateBdJacobian.htmlPetscFEIntegrateBdResidual.htmlPetscFEIntegrateHybridJacobian.htmlPetscFEIntegrateHybridResidual.htmlPetscFEIntegrateJacobian.htmlPetscFEIntegrateResidual.htmlPetscFEJacobianType.htmlPetscFEOpenCLGetRealType.htmlPetscFEOpenCLSetRealType.htmlPetscFEPushforward.htmlPetscFEPushforwardGradient.htmlPetscFERefine.htmlPetscFERegister.htmlPetscFESetBasisSpace.htmlPetscFESetDualSpace.htmlPetscFESetFaceQuadrature.htmlPetscFESetFromOptions.htmlPetscFESetName.htmlPetscFESetNumComponents.htmlPetscFESetQuadrature.htmlPetscFESetTileSizes.htmlPetscFESetType.htmlPetscFESetUp.htmlPetscFEType.htmlPetscFEView.htmlPetscFEViewFromOptions.htmlPetscGaussLobattoLegendreCreateType.htmlPetscQuadrature.htmlPetscSpace.htmlPetscSpacePolynomialType.htmlPetscSpaceType.htmlPetscTabulationDestroy.htmlindex.htmlFVPETSCFVLEASTSQUARES.htmlPETSCFVUPWIND.htmlPETSCLIMITERMC.htmlPETSCLIMITERMINMOD.htmlPETSCLIMITERNONE.htmlPETSCLIMITERSIN.htmlPETSCLIMITERSUPERBEE.htmlPETSCLIMITERVANALBADA.htmlPETSCLIMITERVANLEER.htmlPETSCLIMITERZERO.htmlPetscFV.htmlPetscFVCellGeom.htmlPetscFVComputeGradient.htmlPetscFVCreate.htmlPetscFVCreateTabulation.htmlPetscFVDestroy.htmlPetscFVFaceGeom.htmlPetscFVGetCellTabulation.htmlPetscFVGetComponentName.htmlPetscFVGetComputeGradients.htmlPetscFVGetDualSpace.htmlPetscFVGetLimiter.htmlPetscFVGetNumComponents.htmlPetscFVGetQuadrature.htmlPetscFVGetSpatialDimension.htmlPetscFVGetType.htmlPetscFVIntegrateRHSFunction.htmlPetscFVLeastSquaresSetMaxFaces.htmlPetscFVRefine.htmlPetscFVRegister.htmlPetscFVSetComponentName.htmlPetscFVSetComputeGradients.htmlPetscFVSetDualSpace.htmlPetscFVSetFromOptions.htmlPetscFVSetLimiter.htmlPetscFVSetNumComponents.htmlPetscFVSetQuadrature.htmlPetscFVSetSpatialDimension.htmlPetscFVSetType.htmlPetscFVSetUp.htmlPetscFVType.htmlPetscFVView.htmlPetscFVViewFromOptions.htmlPetscLimiter.htmlPetscLimiterCreate.htmlPetscLimiterDestroy.htmlPetscLimiterGetType.htmlPetscLimiterLimit.htmlPetscLimiterRegister.htmlPetscLimiterSetFromOptions.htmlPetscLimiterSetType.htmlPetscLimiterSetUp.htmlPetscLimiterType.htmlPetscLimiterView.htmlPetscLimiterViewFromOptions.htmlindex.htmlISIS.htmlISAllGather.htmlISAllGatherColors.htmlISBlockGetIndices.htmlISBlockGetIndicesF90.htmlISBlockGetLocalSize.htmlISBlockGetSize.htmlISBlockRestoreIndices.htmlISBlockRestoreIndicesF90.htmlISBlockSetIndices.htmlISBuildTwoSided.htmlISClearInfoCache.htmlISColoring.htmlISColoringCreate.htmlISColoringDestroy.htmlISColoringGetColors.htmlISColoringGetIS.htmlISColoringGetType.htmlISColoringRestoreIS.htmlISColoringSetType.htmlISColoringType.htmlISColoringView.htmlISComplement.htmlISCompressIndicesGeneral.htmlISConcatenate.htmlISContiguousLocal.htmlISCopy.htmlISCreate.htmlISCreateBlock.htmlISCreateGeneral.htmlISCreateStride.htmlISCreateSubIS.htmlISDestroy.htmlISDifference.htmlISDuplicate.htmlISEmbed.htmlISEqual.htmlISEqualUnsorted.htmlISExpand.htmlISExpandIndicesGeneral.htmlISGeneralFilter.htmlISGeneralSetIndices.htmlISGetBlockSize.htmlISGetIndices.htmlISGetIndicesF90.htmlISGetInfo.htmlISGetLayout.htmlISGetLocalSize.htmlISGetMinMax.htmlISGetNonlocalIS.htmlISGetNonlocalIndices.htmlISGetSize.htmlISGetTotalIndices.htmlISGetType.htmlISGlobalToLocalMappingApply.htmlISGlobalToLocalMappingApplyBlock.htmlISGlobalToLocalMappingApplyIS.htmlISGlobalToLocalMappingMode.htmlISIdentity.htmlISInfo.htmlISIntersect.htmlISInvertPermutation.htmlISLOCALTOGLOBALMAPPINGBASIC.htmlISLOCALTOGLOBALMAPPINGHASH.htmlISListToPair.htmlISLoad.htmlISLocalToGlobalMapping.htmlISLocalToGlobalMappingApply.htmlISLocalToGlobalMappingApplyBlock.htmlISLocalToGlobalMappingApplyIS.htmlISLocalToGlobalMappingConcatenate.htmlISLocalToGlobalMappingCreate.htmlISLocalToGlobalMappingCreateIS.htmlISLocalToGlobalMappingCreateSF.htmlISLocalToGlobalMappingDestroy.htmlISLocalToGlobalMappingDuplicate.htmlISLocalToGlobalMappingGetBlockIndices.htmlISLocalToGlobalMappingGetBlockInfo.htmlISLocalToGlobalMappingGetBlockSize.htmlISLocalToGlobalMappingGetIndices.htmlISLocalToGlobalMappingGetInfo.htmlISLocalToGlobalMappingGetNodeInfo.htmlISLocalToGlobalMappingGetSize.htmlISLocalToGlobalMappingRegister.htmlISLocalToGlobalMappingRegisterAll.htmlISLocalToGlobalMappingRestoreBlockIndices.htmlISLocalToGlobalMappingRestoreBlockInfo.htmlISLocalToGlobalMappingRestoreIndices.htmlISLocalToGlobalMappingRestoreInfo.htmlISLocalToGlobalMappingRestoreNodeInfo.htmlISLocalToGlobalMappingSetBlockSize.htmlISLocalToGlobalMappingSetFromOptions.htmlISLocalToGlobalMappingSetType.htmlISLocalToGlobalMappingType.htmlISLocalToGlobalMappingView.htmlISLocalToGlobalMappingViewFromOptions.htmlISLocate.htmlISOnComm.htmlISPairToList.htmlISPartitioningCount.htmlISPartitioningToNumbering.htmlISPermutation.htmlISRegister.htmlISRegisterAll.htmlISRenumber.htmlISRestoreIndices.htmlISRestoreIndicesF90.htmlISRestoreNonlocalIS.htmlISRestoreTotalIndices.htmlISSetBlockSize.htmlISSetIdentity.htmlISSetInfo.htmlISSetPermutation.htmlISSetType.htmlISSort.htmlISSortPermutation.htmlISSortRemoveDups.htmlISSorted.htmlISStrideGetInfo.htmlISStrideSetStride.htmlISSum.htmlISToGeneral.htmlISType.htmlISView.htmlISViewFromOptions.htmlPetscLayout.htmlPetscLayoutCompare.htmlPetscLayoutCreate.htmlPetscLayoutCreateFromRanges.htmlPetscLayoutCreateFromSizes.htmlPetscLayoutDestroy.htmlPetscLayoutDuplicate.htmlPetscLayoutFindOwner.htmlPetscLayoutFindOwnerIndex.htmlPetscLayoutGetBlockSize.htmlPetscLayoutGetLocalSize.htmlPetscLayoutGetRange.htmlPetscLayoutGetRanges.htmlPetscLayoutGetSize.htmlPetscLayoutReference.htmlPetscLayoutSetBlockSize.htmlPetscLayoutSetISLocalToGlobalMapping.htmlPetscLayoutSetLocalSize.htmlPetscLayoutSetSize.htmlPetscLayoutSetUp.htmlPetscLayoutsCreateSF.htmlPetscParallelSortInt.htmlPetscSFSetGraphLayout.htmlPetscViewerHDF5Load.htmlPetscViewerHDF5ReadSizes.htmlindex.htmlKSPDMCopyDMKSP.htmlDMGetDMKSP.htmlDMGetDMKSPWrite.htmlDMGlobalToLocalSolve.htmlDMKSPCopy.htmlDMKSPGetComputeInitialGuess.htmlDMKSPGetComputeOperators.htmlDMKSPGetComputeRHS.htmlDMKSPSetComputeInitialGuess.htmlDMKSPSetComputeOperators.htmlDMKSPSetComputeRHS.htmlDMProjectField.htmlKSP.htmlKSPAGMRES.htmlKSPAppendOptionsPrefix.htmlKSPBCGS.htmlKSPBCGSL.htmlKSPBCGSLSetEll.htmlKSPBCGSLSetPol.htmlKSPBCGSLSetUsePseudoinverse.htmlKSPBCGSLSetXRes.htmlKSPBICG.htmlKSPBuildResidual.htmlKSPBuildSolution.htmlKSPCG.htmlKSPCGGetNormD.htmlKSPCGGetObjFcn.htmlKSPCGLS.htmlKSPCGNE.htmlKSPCGS.htmlKSPCGSetRadius.htmlKSPCGSetType.htmlKSPCGType.htmlKSPCGUseSingleReduction.htmlKSPCHEBYSHEV.htmlKSPCR.htmlKSPChebyshevEstEigGetKSP.htmlKSPChebyshevEstEigSet.htmlKSPChebyshevEstEigSetUseNoisy.htmlKSPChebyshevSetEigenvalues.htmlKSPCheckDot.htmlKSPCheckNorm.htmlKSPCheckSolve.htmlKSPComputeEigenvalues.htmlKSPComputeEigenvaluesExplicitly.htmlKSPComputeExtremeSingularValues.htmlKSPComputeOperator.htmlKSPComputeRitz.htmlKSPConvergedDefault.htmlKSPConvergedDefaultCreate.htmlKSPConvergedDefaultDestroy.htmlKSPConvergedDefaultSetConvergedMaxits.htmlKSPConvergedDefaultSetUIRNorm.htmlKSPConvergedDefaultSetUMIRNorm.htmlKSPConvergedReason.htmlKSPConvergedReasonView.htmlKSPConvergedReasonViewFromOptions.htmlKSPConvergedSkip.htmlKSPCreate.htmlKSPCreateVecs.htmlKSPDGMRES.htmlKSPDestroy.htmlKSPFBCGS.htmlKSPFBCGSR.htmlKSPFCDTruncationType.htmlKSPFCG.htmlKSPFCGGetMmax.htmlKSPFCGGetNprealloc.htmlKSPFCGGetTruncationType.htmlKSPFCGSetMmax.htmlKSPFCGSetNprealloc.htmlKSPFCGSetTruncationType.htmlKSPFETIDP.htmlKSPFETIDPGetInnerBDDC.htmlKSPFETIDPGetInnerKSP.htmlKSPFETIDPSetInnerBDDC.htmlKSPFETIDPSetPressureOperator.htmlKSPFGMRES.htmlKSPFGMRESModifyPCKSP.htmlKSPFGMRESModifyPCNoChange.htmlKSPFGMRESSetModifyPC.htmlKSPFinalizePackage.htmlKSPGCR.htmlKSPGCRGetRestart.htmlKSPGCRSetModifyPC.htmlKSPGCRSetRestart.htmlKSPGLTR.htmlKSPGLTRGetLambda.htmlKSPGLTRGetMinEig.htmlKSPGMRES.htmlKSPGMRESCGSRefinementType.htmlKSPGMRESClassicalGramSchmidtOrthogonalization.htmlKSPGMRESGetCGSRefinementType.htmlKSPGMRESGetOrthogonalization.htmlKSPGMRESGetRestart.htmlKSPGMRESModifiedGramSchmidtOrthogonalization.htmlKSPGMRESMonitorKrylov.htmlKSPGMRESSetBreakdownTolerance.htmlKSPGMRESSetCGSRefinementType.htmlKSPGMRESSetHapTol.htmlKSPGMRESSetOrthogonalization.htmlKSPGMRESSetPreAllocateVectors.htmlKSPGMRESSetRestart.htmlKSPGROPPCG.htmlKSPGetAndClearConvergenceTest.htmlKSPGetApplicationContext.htmlKSPGetComputeEigenvalues.htmlKSPGetComputeSingularValues.htmlKSPGetConvergedReason.htmlKSPGetConvergenceContext.htmlKSPGetConvergenceTest.htmlKSPGetDM.htmlKSPGetDiagonalScale.htmlKSPGetDiagonalScaleFix.htmlKSPGetErrorIfNotConverged.htmlKSPGetGuess.htmlKSPGetInitialGuessKnoll.htmlKSPGetInitialGuessNonzero.htmlKSPGetIterationNumber.htmlKSPGetMatSolveBlockSize.htmlKSPGetMonitorContext.htmlKSPGetNormType.htmlKSPGetOperators.htmlKSPGetOperatorsSet.htmlKSPGetOptionsPrefix.htmlKSPGetPC.htmlKSPGetPCSide.htmlKSPGetResidualHistory.htmlKSPGetResidualNorm.htmlKSPGetReusePreconditioner.htmlKSPGetRhs.htmlKSPGetSolution.htmlKSPGetTolerances.htmlKSPGetTotalIterations.htmlKSPGetType.htmlKSPGuess.htmlKSPGuessCreate.htmlKSPGuessDestroy.htmlKSPGuessFischerSetModel.htmlKSPGuessFormGuess.htmlKSPGuessGetType.htmlKSPGuessSetFromOptions.htmlKSPGuessSetType.htmlKSPGuessSetUp.htmlKSPGuessType.htmlKSPGuessUpdate.htmlKSPGuessView.htmlKSPHPDDM.htmlKSPHPDDMGetDeflationSpace.htmlKSPHPDDMGetType.htmlKSPHPDDMSetDeflationSpace.htmlKSPHPDDMSetType.htmlKSPHPDDMType.htmlKSPIBCGS.htmlKSPInitialResidual.htmlKSPInitializePackage.htmlKSPLCD.htmlKSPLGMRES.htmlKSPLSQR.htmlKSPLSQRConvergedDefault.htmlKSPLSQRGetNorms.htmlKSPLSQRGetStandardErrorVec.htmlKSPLSQRMonitorDefault.htmlKSPLSQRSetComputeStandardErrorVec.htmlKSPLSQRSetExactMatNorm.htmlKSPLoad.htmlKSPMINRES.htmlKSPMatRegisterAll.htmlKSPMatSolve.htmlKSPMonitor.htmlKSPMonitorCancel.htmlKSPMonitorDefault.htmlKSPMonitorDynamicTolerance.htmlKSPMonitorLGResidualNormCreate.htmlKSPMonitorLGTrueResidualNormCreate.htmlKSPMonitorRange.htmlKSPMonitorSAWs.htmlKSPMonitorSAWsCreate.htmlKSPMonitorSAWsDestroy.htmlKSPMonitorSet.htmlKSPMonitorSetFromOptions.htmlKSPMonitorSingularValue.htmlKSPMonitorSolution.htmlKSPMonitorTrueResidualMaxNorm.htmlKSPMonitorTrueResidualNorm.htmlKSPNASH.htmlKSPNormType.htmlKSPPGMRES.htmlKSPPIPEBCGS.htmlKSPPIPECG.htmlKSPPIPECG2.htmlKSPPIPECGRR.htmlKSPPIPECR.htmlKSPPIPEFCG.htmlKSPPIPEFCGGetMmax.htmlKSPPIPEFCGGetNprealloc.htmlKSPPIPEFCGGetTruncationType.htmlKSPPIPEFCGSetMmax.htmlKSPPIPEFCGSetNprealloc.htmlKSPPIPEFCGSetTruncationType.htmlKSPPIPEFGMRES.htmlKSPPIPEFGMRESSetShift.htmlKSPPIPEGCR.htmlKSPPIPEGCRGetMmax.htmlKSPPIPEGCRGetNprealloc.htmlKSPPIPEGCRGetTruncationType.htmlKSPPIPEGCRGetUnrollW.htmlKSPPIPEGCRSetMmax.htmlKSPPIPEGCRSetModifyPC.htmlKSPPIPEGCRSetNprealloc.htmlKSPPIPEGCRSetTruncationType.htmlKSPPIPEGCRSetUnrollW.htmlKSPPIPELCG.htmlKSPPIPEPRCG.htmlKSPPREONLY.htmlKSPPythonSetType.htmlKSPQCG.htmlKSPQCGGetQuadratic.htmlKSPQCGGetTrialStepNorm.htmlKSPQCGSetTrustRegionRadius.htmlKSPRICHARDSON.htmlKSPRegister.htmlKSPRegisterAll.htmlKSPReset.htmlKSPResetFromOptions.htmlKSPResetViewers.htmlKSPRichardsonSetScale.htmlKSPRichardsonSetSelfScale.htmlKSPSTCG.htmlKSPSYMMLQ.htmlKSPSetApplicationContext.htmlKSPSetCheckNormIteration.htmlKSPSetComputeEigenvalues.htmlKSPSetComputeInitialGuess.htmlKSPSetComputeOperators.htmlKSPSetComputeRHS.htmlKSPSetComputeRitz.htmlKSPSetComputeSingularValues.htmlKSPSetConvergenceTest.htmlKSPSetDM.htmlKSPSetDMActive.htmlKSPSetDiagonalScale.htmlKSPSetDiagonalScaleFix.htmlKSPSetErrorIfNotConverged.htmlKSPSetFromOptions.htmlKSPSetGuess.htmlKSPSetInitialGuessKnoll.htmlKSPSetInitialGuessNonzero.htmlKSPSetLagNorm.htmlKSPSetMatSolveBlockSize.htmlKSPSetNormType.htmlKSPSetOperators.htmlKSPSetOptionsPrefix.htmlKSPSetPC.htmlKSPSetPCSide.htmlKSPSetPostSolve.htmlKSPSetPreSolve.htmlKSPSetResidualHistory.htmlKSPSetReusePreconditioner.htmlKSPSetSkipPCSetFromOptions.htmlKSPSetSupportedNorm.htmlKSPSetTolerances.htmlKSPSetType.htmlKSPSetUp.htmlKSPSetUpOnBlocks.htmlKSPSetUseFischerGuess.htmlKSPSetWorkVecs.htmlKSPSolve.htmlKSPSolveTranspose.htmlKSPTCQMR.htmlKSPTFQMR.htmlKSPTSIRM.htmlKSPType.htmlKSPUnwindPreconditioner.htmlKSPView.htmlKSPViewFromOptions.htmlKSP_CONVERGED_ATOL.htmlKSP_CONVERGED_ITERATING.htmlKSP_CONVERGED_ITS.htmlKSP_CONVERGED_RTOL.htmlKSP_DIVERGED_BREAKDOWN.htmlKSP_DIVERGED_BREAKDOWN_BICG.htmlKSP_DIVERGED_DTOL.htmlKSP_DIVERGED_INDEFINITE_PC.htmlKSP_DIVERGED_ITS.htmlKSP_DIVERGED_NONSYMMETRIC.htmlKSP_DIVERGED_PC_FAILED.htmlKSP_GMRES_CGS_REFINE_IFNEEDED.htmlKSP_GMRES_CGS_REFINE_NEVER.htmlKSP_NORM_NATURAL.htmlKSP_NORM_NONE.htmlKSP_NORM_PRECONDITIONED.htmlKSP_NORM_UNPRECONDITIONED.htmlMatCreateLMVMBFGS.htmlMatCreateLMVMBadBroyden.htmlMatCreateLMVMBroyden.htmlMatCreateLMVMDFP.htmlMatCreateLMVMDiagBroyden.htmlMatCreateLMVMSR1.htmlMatCreateLMVMSymBadBroyden.htmlMatCreateLMVMSymBroyden.htmlMatCreateSchurComplement.htmlMatCreateSchurComplementPmat.htmlMatGetSchurComplement.htmlMatLMVMAllocate.htmlMatLMVMApplyJ0Fwd.htmlMatLMVMApplyJ0Inv.htmlMatLMVMClearJ0.htmlMatLMVMGetJ0.htmlMatLMVMGetJ0KSP.htmlMatLMVMGetJ0PC.htmlMatLMVMGetRejectCount.htmlMatLMVMGetUpdateCount.htmlMatLMVMIsAllocated.htmlMatLMVMReset.htmlMatLMVMResetShift.htmlMatLMVMSetHistorySize.htmlMatLMVMSetJ0.htmlMatLMVMSetJ0Diag.htmlMatLMVMSetJ0KSP.htmlMatLMVMSetJ0PC.htmlMatLMVMSetJ0Scale.htmlMatLMVMSymBroydenSetDelta.htmlMatLMVMSymBroydenSetScaleType.htmlMatLMVMUpdate.htmlMatSchurComplementAinvType.htmlMatSchurComplementComputeExplicitOperator.htmlMatSchurComplementGetAinvType.htmlMatSchurComplementGetKSP.htmlMatSchurComplementGetPmat.htmlMatSchurComplementGetSubMatrices.htmlMatSchurComplementSetAinvType.htmlMatSchurComplementSetKSP.htmlMatSchurComplementSetSubMatrices.htmlMatSchurComplementUpdateSubMatrices.htmlPCFinalizePackage.htmlPCInitializePackage.htmlindex.htmlLANDAULandauAddMaxwellians.htmlLandauCreateColoring.htmlLandauCreateMassMatrix.htmlLandauCreateVelocitySpace.htmlLandauDestroyVelocitySpace.htmlLandauIFunction.htmlLandauIJacobian.htmlLandauPrintNorms.htmlindex.htmlMatMATAIJ.htmlMATAIJCRL.htmlMATAIJCUSPARSE.htmlMATAIJMKL.htmlMATAIJPERM.htmlMATAIJSELL.htmlMATAIJVIENNACL.htmlMATBAIJ.htmlMATBAIJMKL.htmlMATBLOCKMAT.htmlMATCOMPOSITE.htmlMATDENSE.htmlMATDENSECUDA.htmlMATDUMMY.htmlMATELEMENTAL.htmlMATHYPRE.htmlMATIS.htmlMATKAIJ.htmlMATMAIJ.htmlMATMFFD.htmlMATMFFD_DS.htmlMATMFFD_WP.htmlMATMPIADJ.htmlMATMPIAIJ.htmlMATMPIBAIJ.htmlMATMPIDENSE.htmlMATMPIDENSECUDA.htmlMATMPISBAIJ.htmlMATMPISELL.htmlMATNEST.htmlMATPREALLOCATOR.htmlMATSBAIJ.htmlMATSCALAPACK.htmlMATSCATTER.htmlMATSELL.htmlMATSEQAIJ.htmlMATSEQAIJCUSPARSE.htmlMATSEQAIJVIENNACL.htmlMATSEQBAIJ.htmlMATSEQDENSE.htmlMATSEQDENSECUDA.htmlMATSEQSBAIJ.htmlMATSHELL.htmlMATSOLVERBAS.htmlMATSOLVERCHOLMOD.htmlMATSOLVERCUSPARSE.htmlMATSOLVERESSL.htmlMATSOLVERKLU.htmlMATSOLVERLUSOL.htmlMATSOLVERMATLAB.htmlMATSOLVERMKL_PARDISO.htmlMATSOLVERMUMPS.htmlMATSOLVERPASTIX.htmlMATSOLVERSPARSEELEMENTAL.htmlMATSOLVERSSTRUMPACK.htmlMATSOLVERSUPERLU.htmlMATSOLVERSUPERLU_DIST.htmlMATSOLVERUMFPACK.htmlMat.htmlMatAXPY.htmlMatAYPX.htmlMatAppendOptionsPrefix.htmlMatAssembled.htmlMatAssemblyBegin.htmlMatAssemblyEnd.htmlMatAssemblyType.htmlMatBackwardSolve.htmlMatBindToCPU.htmlMatBlockMatSetPreallocation.htmlMatCUSPARSEFormatOperation.htmlMatCUSPARSESetFormat.htmlMatCUSPARSEStorageFormat.htmlMatCheckCompressedRow.htmlMatCholeskyFactor.htmlMatCholeskyFactorNumeric.htmlMatCholeskyFactorSymbolic.htmlMatChop.htmlMatColoring.htmlMatColoringPatch.htmlMatColoringType.htmlMatColoringWeightType.htmlMatCompositeAddMat.htmlMatCompositeGetMat.htmlMatCompositeGetMatStructure.htmlMatCompositeGetNumberMat.htmlMatCompositeGetType.htmlMatCompositeMerge.htmlMatCompositeSetMatStructure.htmlMatCompositeSetMergeType.htmlMatCompositeSetScalings.htmlMatCompositeSetType.htmlMatComputeBandwidth.htmlMatComputeOperator.htmlMatComputeOperatorTranspose.htmlMatConjugate.htmlMatConvert.htmlMatCopy.htmlMatCreate.htmlMatCreateAIJ.htmlMatCreateAIJCUSPARSE.htmlMatCreateAIJViennaCL.htmlMatCreateBAIJ.htmlMatCreateBAIJMKL.htmlMatCreateBlockMat.htmlMatCreateComposite.htmlMatCreateConstantDiagonal.htmlMatCreateDense.htmlMatCreateDenseCUDA.htmlMatCreateFFT.htmlMatCreateHermitianTranspose.htmlMatCreateIS.htmlMatCreateKAIJ.htmlMatCreateLRC.htmlMatCreateLocalRef.htmlMatCreateMAIJ.htmlMatCreateMFFD.htmlMatCreateMPIAIJCRL.htmlMatCreateMPIAIJMKL.htmlMatCreateMPIAIJPERM.htmlMatCreateMPIAIJSELL.htmlMatCreateMPIAIJSumSeqAIJ.htmlMatCreateMPIAIJWithArrays.htmlMatCreateMPIAIJWithSeqAIJ.htmlMatCreateMPIAIJWithSplitArrays.htmlMatCreateMPIAdj.htmlMatCreateMPIBAIJWithArrays.htmlMatCreateMPIMatConcatenateSeqMat.htmlMatCreateMPISBAIJWithArrays.htmlMatCreateNest.htmlMatCreateNormal.htmlMatCreateNormalHermitian.htmlMatCreateRedundantMatrix.htmlMatCreateSBAIJ.htmlMatCreateSELL.htmlMatCreateScaLAPACK.htmlMatCreateScatter.htmlMatCreateSeqAIJ.htmlMatCreateSeqAIJCRL.htmlMatCreateSeqAIJCUSPARSE.htmlMatCreateSeqAIJFromTriple.htmlMatCreateSeqAIJMKL.htmlMatCreateSeqAIJPERM.htmlMatCreateSeqAIJSELL.htmlMatCreateSeqAIJViennaCL.htmlMatCreateSeqAIJWithArrays.htmlMatCreateSeqBAIJ.htmlMatCreateSeqBAIJMKL.htmlMatCreateSeqBAIJWithArrays.htmlMatCreateSeqCUFFT.htmlMatCreateSeqDense.htmlMatCreateSeqDenseCUDA.htmlMatCreateSeqSBAIJ.htmlMatCreateSeqSBAIJWithArrays.htmlMatCreateSeqSELL.htmlMatCreateShell.htmlMatCreateSubMatrices.htmlMatCreateSubMatricesMPI.htmlMatCreateSubMatrix.htmlMatCreateSubMatrixOption.htmlMatCreateSubMatrixVirtual.htmlMatCreateTranspose.htmlMatCreateVecs.htmlMatCreateVecsFFTW.htmlMatDenseCUDAGetArray.htmlMatDenseCUDAGetArrayRead.htmlMatDenseCUDAGetArrayWrite.htmlMatDenseCUDAPlaceArray.htmlMatDenseCUDAReplaceArray.htmlMatDenseCUDAResetArray.htmlMatDenseCUDARestoreArray.htmlMatDenseCUDARestoreArrayRead.htmlMatDenseCUDARestoreArrayWrite.htmlMatDenseGetArray.htmlMatDenseGetArrayF90.htmlMatDenseGetArrayRead.htmlMatDenseGetArrayWrite.htmlMatDenseGetColumn.htmlMatDenseGetColumnVec.htmlMatDenseGetColumnVecRead.htmlMatDenseGetColumnVecWrite.htmlMatDenseGetLDA.htmlMatDenseGetLocalMatrix.htmlMatDenseGetSubMatrix.htmlMatDensePlaceArray.htmlMatDenseReplaceArray.htmlMatDenseResetArray.htmlMatDenseRestoreArray.htmlMatDenseRestoreArrayF90.htmlMatDenseRestoreArrayRead.htmlMatDenseRestoreArrayWrite.htmlMatDenseRestoreColumn.htmlMatDenseRestoreColumnVec.htmlMatDenseRestoreColumnVecRead.htmlMatDenseRestoreColumnVecWrite.htmlMatDenseRestoreSubMatrix.htmlMatDenseSetLDA.htmlMatDestroy.htmlMatDestroyMatrices.htmlMatDestroySeqNonzeroStructure.htmlMatDestroySubMatrices.htmlMatDiagonalScale.htmlMatDiagonalScaleLocal.htmlMatDiagonalSet.htmlMatDuplicate.htmlMatDuplicateOption.htmlMatEqual.htmlMatFDColoring.htmlMatFDColoringSetValues.htmlMatFactorClearError.htmlMatFactorCreateSchurComplement.htmlMatFactorError.htmlMatFactorFactorizeSchurComplement.htmlMatFactorGetError.htmlMatFactorGetErrorZeroPivot.htmlMatFactorGetSchurComplement.htmlMatFactorGetSolverType.htmlMatFactorGetUseOrdering.htmlMatFactorInfo.htmlMatFactorInfoInitialize.htmlMatFactorInvertSchurComplement.htmlMatFactorRestoreSchurComplement.htmlMatFactorSetSchurIS.htmlMatFactorShiftType.htmlMatFactorSolveSchurComplement.htmlMatFactorSolveSchurComplementTranspose.htmlMatFactorType.htmlMatFinalizePackage.htmlMatFindNonzeroRows.htmlMatFindOffBlockDiagonalEntries.htmlMatFindZeroDiagonals.htmlMatFindZeroRows.htmlMatForwardSolve.htmlMatGalerkin.htmlMatGetBlockSize.htmlMatGetBlockSizes.htmlMatGetBrowsOfAcols.htmlMatGetColumnIJ.htmlMatGetColumnNorms.htmlMatGetColumnVector.htmlMatGetCommunicationStructs.htmlMatGetDiagonal.htmlMatGetDiagonalBlock.htmlMatGetFactor.htmlMatGetFactorAvailable.htmlMatGetFactorType.htmlMatGetGhosts.htmlMatGetInertia.htmlMatGetInfo.htmlMatGetLayouts.htmlMatGetLocalSize.htmlMatGetLocalSubMatrix.htmlMatGetLocalToGlobalMapping.htmlMatGetMultiProcBlock.htmlMatGetNearNullSpace.htmlMatGetNonzeroState.htmlMatGetNullSpace.htmlMatGetOperation.htmlMatGetOption.htmlMatGetOptionsPrefix.htmlMatGetOwnershipIS.htmlMatGetOwnershipRange.htmlMatGetOwnershipRangeColumn.htmlMatGetOwnershipRanges.htmlMatGetOwnershipRangesColumn.htmlMatGetRow.htmlMatGetRowIJ.htmlMatGetRowMax.htmlMatGetRowMaxAbs.htmlMatGetRowMin.htmlMatGetRowMinAbs.htmlMatGetRowSum.htmlMatGetRowUpperTriangular.htmlMatGetSeqNonzeroStructure.htmlMatGetSize.htmlMatGetTrace.htmlMatGetTransposeNullSpace.htmlMatGetType.htmlMatGetValues.htmlMatGetValuesLocal.htmlMatGetVariableBlockSizes.htmlMatGetVecType.htmlMatHYPRESetPreallocation.htmlMatHasCongruentLayouts.htmlMatHasOperation.htmlMatHermitianTranspose.htmlMatHermitianTransposeGetMat.htmlMatICCFactor.htmlMatICCFactorSymbolic.htmlMatILUFactor.htmlMatILUFactorSymbolic.htmlMatISFixLocalEmpty.htmlMatISGetLocalMat.htmlMatISGetMPIXAIJ.htmlMatISRestoreLocalMat.htmlMatISSetLocalMat.htmlMatISSetLocalMatType.htmlMatISSetPreallocation.htmlMatISStoreL2L.htmlMatImaginaryPart.htmlMatIncreaseOverlap.htmlMatIncreaseOverlapSplit.htmlMatInfo.htmlMatInfoType.htmlMatInitializePackage.htmlMatInodeGetInodeSizes.htmlMatInterpolate.htmlMatInterpolateAdd.htmlMatInvertBlockDiagonal.htmlMatInvertBlockDiagonalMat.htmlMatInvertVariableBlockDiagonal.htmlMatIsHermitian.htmlMatIsHermitianKnown.htmlMatIsHermitianTranspose.htmlMatIsLinear.htmlMatIsShell.htmlMatIsStructurallySymmetric.htmlMatIsSymmetric.htmlMatIsSymmetricKnown.htmlMatIsTranspose.htmlMatKAIJGetAIJ.htmlMatKAIJGetS.htmlMatKAIJGetSRead.htmlMatKAIJGetScaledIdentity.htmlMatKAIJGetT.htmlMatKAIJGetTRead.htmlMatKAIJRestoreS.htmlMatKAIJRestoreSRead.htmlMatKAIJRestoreT.htmlMatKAIJRestoreTRead.htmlMatKAIJSetAIJ.htmlMatKAIJSetS.htmlMatKAIJSetT.htmlMatLRCGetMats.htmlMatLUFactor.htmlMatLUFactorNumeric.htmlMatLUFactorSymbolic.htmlMatLoad.htmlMatMAIJGetAIJ.htmlMatMAIJRedimension.htmlMatMFFD.htmlMatMFFDCheckPositivity.htmlMatMFFDDSSetUmin.htmlMatMFFDFinalizePackage.htmlMatMFFDGetH.htmlMatMFFDInitializePackage.htmlMatMFFDRegister.htmlMatMFFDRegisterAll.htmlMatMFFDResetHHistory.htmlMatMFFDSetBase.htmlMatMFFDSetCheckh.htmlMatMFFDSetFunction.htmlMatMFFDSetFunctionError.htmlMatMFFDSetFunctioni.htmlMatMFFDSetFunctioniBase.htmlMatMFFDSetHHistory.htmlMatMFFDSetOptionsPrefix.htmlMatMFFDSetPeriod.htmlMatMFFDSetType.htmlMatMFFDType.htmlMatMFFDWPSetComputeNormU.htmlMatMPIAIJGetLocalMat.htmlMatMPIAIJGetLocalMatCondensed.htmlMatMPIAIJGetSeqAIJ.htmlMatMPIAIJSetPreallocation.htmlMatMPIAIJSetPreallocationCSR.htmlMatMPIAIJSetUseScalableIncreaseOverlap.htmlMatMPIAdjCreateNonemptySubcommMat.htmlMatMPIAdjSetPreallocation.htmlMatMPIAdjToSeq.htmlMatMPIBAIJSetHashTableFactor.htmlMatMPIBAIJSetPreallocation.htmlMatMPIBAIJSetPreallocationCSR.htmlMatMPIBAIJSetValuesBlocked.htmlMatMPIDenseSetPreallocation.htmlMatMPISBAIJSetPreallocation.htmlMatMPISBAIJSetPreallocationCSR.htmlMatMPISELLGetLocalMatCondensed.htmlMatMPISELLSetPreallocation.htmlMatMatMatMult.htmlMatMatMult.htmlMatMatMultEqual.htmlMatMatSolve.htmlMatMatSolveTranspose.htmlMatMatTransposeMult.htmlMatMatTransposeMultEqual.htmlMatMatTransposeSolve.htmlMatMissingDiagonal.htmlMatMkl_CPardisoSetCntl.htmlMatMkl_PardisoSetCntl.htmlMatMult.htmlMatMultAdd.htmlMatMultAddEqual.htmlMatMultConstrained.htmlMatMultDiagonalBlock.htmlMatMultEqual.htmlMatMultHermitianTranspose.htmlMatMultHermitianTransposeAdd.htmlMatMultTranspose.htmlMatMultTransposeAdd.htmlMatMultTransposeAddEqual.htmlMatMultTransposeConstrained.htmlMatMultTransposeEqual.htmlMatMumpsGetCntl.htmlMatMumpsGetIcntl.htmlMatMumpsGetInfo.htmlMatMumpsGetInfog.htmlMatMumpsGetInverse.htmlMatMumpsGetInverseTranspose.htmlMatMumpsGetRinfo.htmlMatMumpsGetRinfog.htmlMatMumpsSetCntl.htmlMatMumpsSetIcntl.htmlMatNestGetISs.htmlMatNestGetLocalISs.htmlMatNestGetSize.htmlMatNestGetSubMat.htmlMatNestGetSubMats.htmlMatNestSetSubMat.htmlMatNestSetSubMats.htmlMatNestSetVecType.htmlMatNorm.htmlMatNullSpace.htmlMatNullSpaceCreate.htmlMatNullSpaceCreateRigidBody.htmlMatNullSpaceDestroy.htmlMatNullSpaceGetVecs.htmlMatNullSpaceRemove.htmlMatNullSpaceSetFunction.htmlMatNullSpaceTest.htmlMatNullSpaceView.htmlMatOption.htmlMatOrderingType.htmlMatPartitioning.htmlMatPartitioningType.htmlMatPermute.htmlMatPreallocateFinalize.htmlMatPreallocateInitialize.htmlMatPreallocateLocation.htmlMatPreallocateSet.htmlMatPreallocateSetLocal.htmlMatPreallocateSetLocalBlock.htmlMatPreallocateSetLocalRemoveDups.htmlMatPreallocateSymmetricSetBlock.htmlMatPreallocateSymmetricSetLocalBlock.htmlMatPreallocatorPreallocate.htmlMatProductAlgorithm.htmlMatProductClear.htmlMatProductCreate.htmlMatProductCreateWithMat.htmlMatProductNumeric.htmlMatProductReplaceMats.htmlMatProductSetAlgorithm.htmlMatProductSetFill.htmlMatProductSetFromOptions.htmlMatProductSetType.htmlMatProductSymbolic.htmlMatProductType.htmlMatProductView.htmlMatPropagateSymmetryOptions.htmlMatPtAP.htmlMatPtAPMultEqual.htmlMatPythonCreate.htmlMatPythonSetType.htmlMatRARt.htmlMatRARtMultEqual.htmlMatRealPart.htmlMatRegister.htmlMatRegisterAll.htmlMatRegisterRootName.htmlMatReorderForNonzeroDiagonal.htmlMatResetPreallocation.htmlMatResidual.htmlMatRestoreColumnIJ.htmlMatRestoreLocalSubMatrix.htmlMatRestoreRow.htmlMatRestoreRowIJ.htmlMatRestoreRowUpperTriangular.htmlMatRestrict.htmlMatRetrieveValues.htmlMatReuse.htmlMatSOR.htmlMatSORType.htmlMatSTRUMPACKReordering.htmlMatSTRUMPACKSetColPerm.htmlMatSTRUMPACKSetHSSAbsTol.htmlMatSTRUMPACKSetHSSLeafSize.htmlMatSTRUMPACKSetHSSMaxRank.htmlMatSTRUMPACKSetHSSMinSepSize.htmlMatSTRUMPACKSetHSSRelTol.htmlMatSTRUMPACKSetReordering.htmlMatScaLAPACKGetBlockSizes.htmlMatScaLAPACKSetBlockSizes.htmlMatScale.htmlMatScatterGetVecScatter.htmlMatScatterSetVecScatter.htmlMatSeqAIJCUSPARSESetGenerateTranspose.htmlMatSeqAIJGetArray.htmlMatSeqAIJGetArrayF90.htmlMatSeqAIJGetArrayRead.htmlMatSeqAIJGetMaxRowNonzeros.htmlMatSeqAIJRegister.htmlMatSeqAIJRegisterAll.htmlMatSeqAIJRestoreArray.htmlMatSeqAIJRestoreArrayF90.htmlMatSeqAIJRestoreArrayRead.htmlMatSeqAIJSetColumnIndices.htmlMatSeqAIJSetPreallocation.htmlMatSeqAIJSetPreallocationCSR.htmlMatSeqAIJSetTotalPreallocation.htmlMatSeqAIJSetType.htmlMatSeqBAIJGetArray.htmlMatSeqBAIJRestoreArray.htmlMatSeqBAIJSetColumnIndices.htmlMatSeqBAIJSetPreallocation.htmlMatSeqBAIJSetPreallocationCSR.htmlMatSeqDenseSetPreallocation.htmlMatSeqSBAIJGetArray.htmlMatSeqSBAIJRestoreArray.htmlMatSeqSBAIJSetColumnIndices.htmlMatSeqSBAIJSetPreallocation.htmlMatSeqSBAIJSetPreallocationCSR.htmlMatSeqSELLRestoreArray.htmlMatSeqSELLSetPreallocation.htmlMatSetBlockSize.htmlMatSetBlockSizes.htmlMatSetBlockSizesFromMats.htmlMatSetErrorIfFailure.htmlMatSetFactorType.htmlMatSetFromOptions.htmlMatSetLayouts.htmlMatSetLocalToGlobalMapping.htmlMatSetNearNullSpace.htmlMatSetNullSpace.htmlMatSetOperation.htmlMatSetOption.htmlMatSetOptionsPrefix.htmlMatSetRandom.htmlMatSetSizes.htmlMatSetStencil.htmlMatSetTransposeNullSpace.htmlMatSetType.htmlMatSetUnfactored.htmlMatSetUp.htmlMatSetValue.htmlMatSetValues.htmlMatSetValuesBatch.htmlMatSetValuesBlocked.htmlMatSetValuesBlockedLocal.htmlMatSetValuesBlockedStencil.htmlMatSetValuesLocal.htmlMatSetValuesRow.htmlMatSetValuesRowLocal.htmlMatSetValuesStencil.htmlMatSetVariableBlockSizes.htmlMatSetVecType.htmlMatShellGetContext.htmlMatShellGetOperation.htmlMatShellSetContext.htmlMatShellSetManageScalingShifts.htmlMatShellSetMatProductOperation.htmlMatShellSetOperation.htmlMatShellSetVecType.htmlMatShellTestMult.htmlMatShellTestMultTranpose.htmlMatShift.htmlMatSolve.htmlMatSolveAdd.htmlMatSolveTranspose.htmlMatSolveTransposeAdd.htmlMatSolveTypeGet.htmlMatSolveTypeRegister.htmlMatSolverType.htmlMatSolves.htmlMatStashGetInfo.htmlMatStashSetInitialSize.htmlMatStencil.htmlMatStoreValues.htmlMatStructure.htmlMatSubMatrixVirtualUpdate.htmlMatSubdomainsCreateCoalesce.htmlMatSuperluSetILUDropTol.htmlMatTransColoringApplyDenToSp.htmlMatTransColoringApplySpToDen.htmlMatTranspose.htmlMatTransposeColoring.htmlMatTransposeColoringCreate.htmlMatTransposeColoringDestroy.htmlMatTransposeGetMat.htmlMatTransposeMatMult.htmlMatTransposeMatMultEqual.htmlMatType.htmlMatUpdateMPIAIJWithArrays.htmlMatView.htmlMatViewFromOptions.htmlMatXAIJSetPreallocation.htmlMatZeroEntries.htmlMatZeroRows.htmlMatZeroRowsColumns.htmlMatZeroRowsColumnsIS.htmlMatZeroRowsColumnsLocal.htmlMatZeroRowsColumnsLocalIS.htmlMatZeroRowsColumnsStencil.htmlMatZeroRowsIS.htmlMatZeroRowsLocal.htmlMatZeroRowsLocalIS.htmlMatZeroRowsStencil.htmlVecScatterFFTWToPetsc.htmlVecScatterPetscToFFTW.htmlindex.htmlMatFDMatFDColoringApply.htmlMatFDColoringCreate.htmlMatFDColoringDestroy.htmlMatFDColoringGetFunction.htmlMatFDColoringGetPerturbedColumns.htmlMatFDColoringSetBlockSize.htmlMatFDColoringSetFromOptions.htmlMatFDColoringSetFunction.htmlMatFDColoringSetParameters.htmlMatFDColoringSetType.htmlMatFDColoringSetUp.htmlMatFDColoringView.htmlindex.htmlMatOrderingsMATCOARSENHEM.htmlMATCOARSENMIS.htmlMATCOLORINGGREEDY.htmlMATCOLORINGID.htmlMATCOLORINGJP.htmlMATCOLORINGLF.htmlMATCOLORINGPOWER.htmlMATCOLORINGSL.htmlMATPARTITIONINGCHACO.htmlMATPARTITIONINGHIERARCH.htmlMATPARTITIONINGPARMETIS.htmlMATPARTITIONINGPARTY.htmlMATPARTITIONINGPTSCOTCH.htmlMatCoarsenApply.htmlMatCoarsenCreate.htmlMatCoarsenDestroy.htmlMatCoarsenGetData.htmlMatCoarsenGetType.htmlMatCoarsenRegister.htmlMatCoarsenRegisterAll.htmlMatCoarsenSetAdjacency.htmlMatCoarsenSetFromOptions.htmlMatCoarsenSetGreedyOrdering.htmlMatCoarsenSetStrictAggs.htmlMatCoarsenSetType.htmlMatCoarsenView.htmlMatCoarsenViewFromOptions.htmlMatColoringApply.htmlMatColoringCreate.htmlMatColoringDestroy.htmlMatColoringGetDistance.htmlMatColoringGetMaxColors.htmlMatColoringRegister.htmlMatColoringRegisterAll.htmlMatColoringSetDistance.htmlMatColoringSetFromOptions.htmlMatColoringSetMaxColors.htmlMatColoringSetType.htmlMatColoringSetWeightType.htmlMatColoringView.htmlMatCreateLaplacian.htmlMatGetOrdering.htmlMatMeshToCellGraph.htmlMatMeshToVertexGraph.htmlMatOrderingRegister.htmlMatOrderingRegisterAll.htmlMatPartitioningApply.htmlMatPartitioningApplyND.htmlMatPartitioningChacoGetEigenNumber.htmlMatPartitioningChacoGetEigenSolver.htmlMatPartitioningChacoGetEigenTol.htmlMatPartitioningChacoGetGlobal.htmlMatPartitioningChacoGetLocal.htmlMatPartitioningChacoSetCoarseLevel.htmlMatPartitioningChacoSetEigenNumber.htmlMatPartitioningChacoSetEigenSolver.htmlMatPartitioningChacoSetEigenTol.htmlMatPartitioningChacoSetGlobal.htmlMatPartitioningChacoSetLocal.htmlMatPartitioningCreate.htmlMatPartitioningDestroy.htmlMatPartitioningGetType.htmlMatPartitioningGetUseEdgeWeights.htmlMatPartitioningImprove.htmlMatPartitioningPTScotchGetImbalance.htmlMatPartitioningPTScotchGetStrategy.htmlMatPartitioningPTScotchSetImbalance.htmlMatPartitioningPTScotchSetStrategy.htmlMatPartitioningParmetisGetEdgeCut.htmlMatPartitioningParmetisSetCoarseSequential.htmlMatPartitioningParmetisSetRepartition.htmlMatPartitioningPartySetBipart.htmlMatPartitioningPartySetCoarseLevel.htmlMatPartitioningPartySetGlobal.htmlMatPartitioningPartySetLocal.htmlMatPartitioningPartySetMatchOptimization.htmlMatPartitioningRegister.htmlMatPartitioningRegisterAll.htmlMatPartitioningSetAdjacency.htmlMatPartitioningSetFromOptions.htmlMatPartitioningSetNParts.htmlMatPartitioningSetPartitionWeights.htmlMatPartitioningSetType.htmlMatPartitioningSetUseEdgeWeights.htmlMatPartitioningSetVertexWeights.htmlMatPartitioningView.htmlMatPartitioningViewFromOptions.htmlMatPartitioningViewImbalance.htmlindex.htmlPCPC.htmlPCASM.htmlPCASMCreateSubdomains.htmlPCASMCreateSubdomains2D.htmlPCASMDestroySubdomains.htmlPCASMGetDMSubdomains.htmlPCASMGetLocalSubdomains.htmlPCASMGetLocalSubmatrices.htmlPCASMGetLocalType.htmlPCASMGetSubKSP.htmlPCASMGetSubMatType.htmlPCASMGetType.htmlPCASMSetDMSubdomains.htmlPCASMSetLocalSubdomains.htmlPCASMSetLocalType.htmlPCASMSetOverlap.htmlPCASMSetSortIndices.htmlPCASMSetSubMatType.htmlPCASMSetTotalSubdomains.htmlPCASMSetType.htmlPCASMType.htmlPCAppendOptionsPrefix.htmlPCApply.htmlPCApplyBAorAB.htmlPCApplyBAorABTranspose.htmlPCApplyRichardson.htmlPCApplyRichardsonExists.htmlPCApplySymmetricLeft.htmlPCApplySymmetricRight.htmlPCApplyTranspose.htmlPCApplyTransposeExists.htmlPCBDDC.htmlPCBDDCCreateFETIDPOperators.htmlPCBDDCFinalizePackage.htmlPCBDDCGetDirichletBoundaries.htmlPCBDDCGetDirichletBoundariesLocal.htmlPCBDDCGetNeumannBoundaries.htmlPCBDDCGetNeumannBoundariesLocal.htmlPCBDDCGetPrimalVerticesIS.htmlPCBDDCGetPrimalVerticesLocalIS.htmlPCBDDCInitializePackage.htmlPCBDDCInterfaceExtType.htmlPCBDDCMatFETIDPGetRHS.htmlPCBDDCMatFETIDPGetSolution.htmlPCBDDCSetChangeOfBasisMat.htmlPCBDDCSetCoarseningRatio.htmlPCBDDCSetDirichletBoundaries.htmlPCBDDCSetDirichletBoundariesLocal.htmlPCBDDCSetDiscreteGradient.htmlPCBDDCSetDivergenceMat.htmlPCBDDCSetDofsSplitting.htmlPCBDDCSetDofsSplittingLocal.htmlPCBDDCSetLevels.htmlPCBDDCSetLocalAdjacencyGraph.htmlPCBDDCSetNeumannBoundaries.htmlPCBDDCSetNeumannBoundariesLocal.htmlPCBDDCSetPrimalVerticesIS.htmlPCBDDCSetPrimalVerticesLocalIS.htmlPCBJACOBI.htmlPCBJacobiGetLocalBlocks.htmlPCBJacobiGetSubKSP.htmlPCBJacobiGetTotalBlocks.htmlPCBJacobiSetLocalBlocks.htmlPCBJacobiSetTotalBlocks.htmlPCCHOLESKY.htmlPCCHOWILUViennaCL.htmlPCCOMPOSITE.htmlPCCP.htmlPCCompositeAddPC.htmlPCCompositeGetNumberPC.htmlPCCompositeGetPC.htmlPCCompositeGetType.htmlPCCompositeSetType.htmlPCCompositeSpecialSetAlpha.htmlPCCompositeType.htmlPCComputeOperator.htmlPCCreate.htmlPCDEFLATION.htmlPCDeflationGetCoarseKSP.htmlPCDeflationGetPC.htmlPCDeflationSetCoarseMat.htmlPCDeflationSetCorrectionFactor.htmlPCDeflationSetInitOnly.htmlPCDeflationSetLevels.htmlPCDeflationSetProjectionNullSpaceMat.htmlPCDeflationSetReductionFactor.htmlPCDeflationSetSpace.htmlPCDeflationSetSpaceToCompute.htmlPCDeflationSpaceType.htmlPCDestroy.htmlPCDiagonalScaleLeft.htmlPCDiagonalScaleRight.htmlPCEISENSTAT.htmlPCEXOTIC.htmlPCEisenstatGetNoDiagonalScaling.htmlPCEisenstatGetOmega.htmlPCEisenstatSetNoDiagonalScaling.htmlPCEisenstatSetOmega.htmlPCExoticSetType.htmlPCExoticType.htmlPCFIELDSPLIT.htmlPCFactorGetAllowDiagonalFill.htmlPCFactorGetLevels.htmlPCFactorGetMatSolverType.htmlPCFactorGetMatrix.htmlPCFactorGetShiftAmount.htmlPCFactorGetShiftType.htmlPCFactorGetUseInPlace.htmlPCFactorGetZeroPivot.htmlPCFactorReorderForNonzeroDiagonal.htmlPCFactorSetAllowDiagonalFill.htmlPCFactorSetColumnPivot.htmlPCFactorSetDropTolerance.htmlPCFactorSetFill.htmlPCFactorSetLevels.htmlPCFactorSetMatOrderingType.htmlPCFactorSetMatSolverType.htmlPCFactorSetPivotInBlocks.htmlPCFactorSetReuseFill.htmlPCFactorSetReuseOrdering.htmlPCFactorSetShiftAmount.htmlPCFactorSetShiftType.htmlPCFactorSetUpMatSolverType.htmlPCFactorSetUseInPlace.htmlPCFactorSetZeroPivot.htmlPCFailedReason.htmlPCFieldSplitGetDMSplits.htmlPCFieldSplitGetDetectSaddlePoint.htmlPCFieldSplitGetDiagUseAmat.htmlPCFieldSplitGetIS.htmlPCFieldSplitGetISByIndex.htmlPCFieldSplitGetOffDiagUseAmat.htmlPCFieldSplitGetSchurBlocks.htmlPCFieldSplitGetSchurPre.htmlPCFieldSplitGetSubKSP.htmlPCFieldSplitGetType.htmlPCFieldSplitRestrictIS.htmlPCFieldSplitSchurFactType.htmlPCFieldSplitSchurGetS.htmlPCFieldSplitSchurGetSubKSP.htmlPCFieldSplitSchurPreType.htmlPCFieldSplitSchurRestoreS.htmlPCFieldSplitSetBlockSize.htmlPCFieldSplitSetDMSplits.htmlPCFieldSplitSetDetectSaddlePoint.htmlPCFieldSplitSetDiagUseAmat.htmlPCFieldSplitSetFields.htmlPCFieldSplitSetGKBDelay.htmlPCFieldSplitSetGKBMaxit.htmlPCFieldSplitSetGKBNu.htmlPCFieldSplitSetGKBTol.htmlPCFieldSplitSetIS.htmlPCFieldSplitSetOffDiagUseAmat.htmlPCFieldSplitSetSchurFactType.htmlPCFieldSplitSetSchurPre.htmlPCFieldSplitSetSchurScale.htmlPCFieldSplitSetType.htmlPCGALERKIN.htmlPCGAMG.htmlPCGAMGASMSetUseAggs.htmlPCGAMGClassicalGetType.htmlPCGAMGClassicalSetType.htmlPCGAMGFilterGraph.htmlPCGAMGFinalizePackage.htmlPCGAMGGetType.htmlPCGAMGInitializePackage.htmlPCGAMGLayoutType.htmlPCGAMGRegister.htmlPCGAMGSetCoarseEqLim.htmlPCGAMGSetCoarseGridLayoutType.htmlPCGAMGSetCpuPinCoarseGrids.htmlPCGAMGSetEigenvalues.htmlPCGAMGSetEstEigKSPMaxIt.htmlPCGAMGSetEstEigKSPType.htmlPCGAMGSetNSmooths.htmlPCGAMGSetNlevels.htmlPCGAMGSetProcEqLim.htmlPCGAMGSetRepartition.htmlPCGAMGSetReuseInterpolation.htmlPCGAMGSetSquareGraph.htmlPCGAMGSetSymGraph.htmlPCGAMGSetThreshold.htmlPCGAMGSetThresholdScale.htmlPCGAMGSetType.htmlPCGAMGSetUseParallelCoarseGridSolve.htmlPCGAMGSetUseSAEstEig.htmlPCGAMGType.htmlPCGASM.htmlPCGASMCreateSubdomains.htmlPCGASMCreateSubdomains2D.htmlPCGASMDestroySubdomains.htmlPCGASMGetSubKSP.htmlPCGASMGetSubdomains.htmlPCGASMGetSubmatrices.htmlPCGASMGetUseDMSubdomains.htmlPCGASMSetOverlap.htmlPCGASMSetSortIndices.htmlPCGASMSetSubdomains.htmlPCGASMSetTotalSubdomains.htmlPCGASMSetType.htmlPCGASMSetUseDMSubdomains.htmlPCGASMType.htmlPCGalerkinGetKSP.htmlPCGalerkinSetComputeSubmatrix.htmlPCGalerkinSetInterpolation.htmlPCGalerkinSetRestriction.htmlPCGetApplicationContext.htmlPCGetCoarseOperators.htmlPCGetDM.htmlPCGetDiagonalScale.htmlPCGetFailedReason.htmlPCGetFailedReasonRank.htmlPCGetInterpolations.htmlPCGetOperators.htmlPCGetOperatorsSet.htmlPCGetOptionsPrefix.htmlPCGetReusePreconditioner.htmlPCGetType.htmlPCGetUseAmat.htmlPCHMG.htmlPCHMGSetCoarseningComponent.htmlPCHMGSetInnerPCType.htmlPCHMGSetReuseInterpolation.htmlPCHMGSetUseSubspaceCoarsening.htmlPCHMGUseMatMAIJ.htmlPCHPDDM.htmlPCHPDDMCoarseCorrectionType.htmlPCHPDDMFinalizePackage.htmlPCHPDDMGetCoarseCorrectionType.htmlPCHPDDMGetComplexities.htmlPCHPDDMHasNeumannMat.htmlPCHPDDMInitializePackage.htmlPCHPDDMSetAuxiliaryMat.htmlPCHPDDMSetCoarseCorrectionType.htmlPCHPDDMSetRHSMat.htmlPCHPDDMShellApply.htmlPCHPDDMShellMatApply.htmlPCHYPRE.htmlPCHYPREGetType.htmlPCHYPRESetAlphaPoissonMatrix.htmlPCHYPRESetBetaPoissonMatrix.htmlPCHYPRESetDiscreteCurl.htmlPCHYPRESetDiscreteGradient.htmlPCHYPRESetEdgeConstantVectors.htmlPCHYPRESetInterpolations.htmlPCHYPRESetType.htmlPCICC.htmlPCILU.htmlPCISSetSubdomainDiagonalScaling.htmlPCISSetSubdomainScalingFactor.htmlPCISSetUseStiffnessScaling.htmlPCJACOBI.htmlPCJacobiGetType.htmlPCJacobiGetUseAbs.htmlPCJacobiSetType.htmlPCJacobiSetUseAbs.htmlPCJacobiType.htmlPCKSP.htmlPCKSPGetKSP.htmlPCKSPSetKSP.htmlPCKaczmarz.htmlPCLMVM.htmlPCLMVMClearIS.htmlPCLMVMGetMatLMVM.htmlPCLMVMSetIS.htmlPCLMVMSetMatLMVM.htmlPCLSC.htmlPCLU.htmlPCLoad.htmlPCMAT.htmlPCMG.htmlPCMGCoarseSpaceType.htmlPCMGCycleType.htmlPCMGGetAdaptInterpolation.htmlPCMGGetCoarseSolve.htmlPCMGGetCoarseSpaceConstructor.htmlPCMGGetGalerkin.htmlPCMGGetInjection.htmlPCMGGetInterpolation.htmlPCMGGetLevels.htmlPCMGGetRScale.htmlPCMGGetRestriction.htmlPCMGGetSmoother.htmlPCMGGetSmootherDown.htmlPCMGGetSmootherUp.htmlPCMGGetType.htmlPCMGMultiplicativeSetCycles.htmlPCMGRegisterCoarseSpaceConstructor.htmlPCMGResidualDefault.htmlPCMGSetAdaptInterpolation.htmlPCMGSetCycleType.htmlPCMGSetCycleTypeOnLevel.htmlPCMGSetDistinctSmoothUp.htmlPCMGSetGalerkin.htmlPCMGSetInjection.htmlPCMGSetInterpolation.htmlPCMGSetLevels.htmlPCMGSetNumberSmooth.htmlPCMGSetOperators.htmlPCMGSetR.htmlPCMGSetRScale.htmlPCMGSetResidual.htmlPCMGSetRestriction.htmlPCMGSetRhs.htmlPCMGSetType.htmlPCMGSetX.htmlPCMGType.htmlPCMGalerkinType.htmlPCML.htmlPCMatApply.htmlPCModifySubMatrices.htmlPCNN.htmlPCNONE.htmlPCPARMS.htmlPCPARMSGlobalType.htmlPCPARMSLocalType.htmlPCPARMSSetFill.htmlPCPARMSSetGlobal.htmlPCPARMSSetLocal.htmlPCPARMSSetNonsymPerm.htmlPCPARMSSetSolveRestart.htmlPCPARMSSetSolveTolerances.htmlPCPATCH.htmlPCPBJACOBI.htmlPCPFMG.htmlPCPatchConstructType.htmlPCPatchSetComputeFunction.htmlPCPatchSetComputeFunctionInteriorFacets.htmlPCPatchSetComputeOperator.htmlPCPatchSetComputeOperatorInteriorFacets.htmlPCPostSolve.htmlPCPreSolve.htmlPCPythonSetType.htmlPCREDISTRIBUTE.htmlPCREDUNDANT.htmlPCRedistributeGetKSP.htmlPCRedundantGetKSP.htmlPCRedundantGetOperators.htmlPCRedundantSetNumber.htmlPCRedundantSetScatter.htmlPCRegister.htmlPCRegisterAll.htmlPCReset.htmlPCRichardsonConvergedReason.htmlPCRowScalingViennaCL.htmlPCSAViennaCL.htmlPCSHELL.htmlPCSOR.htmlPCSORGetIterations.htmlPCSORGetOmega.htmlPCSORGetSymmetric.htmlPCSORSetIterations.htmlPCSORSetOmega.htmlPCSORSetSymmetric.htmlPCSPAI.htmlPCSPAISetBlockSize.htmlPCSPAISetCacheSize.htmlPCSPAISetEpsilon.htmlPCSPAISetMax.htmlPCSPAISetMaxNew.htmlPCSPAISetNBSteps.htmlPCSPAISetSp.htmlPCSPAISetVerbose.htmlPCSVD.htmlPCSetApplicationContext.htmlPCSetCoordinates.htmlPCSetDM.htmlPCSetDiagonalScale.htmlPCSetErrorIfFailure.htmlPCSetFailedReason.htmlPCSetFromOptions.htmlPCSetModifySubMatrices.htmlPCSetOperators.htmlPCSetOptionsPrefix.htmlPCSetReusePreconditioner.htmlPCSetType.htmlPCSetUp.htmlPCSetUpOnBlocks.htmlPCSetUseAmat.htmlPCShellGetContext.htmlPCShellGetName.htmlPCShellSetApply.htmlPCShellSetApplyBA.htmlPCShellSetApplyRichardson.htmlPCShellSetApplySymmetricLeft.htmlPCShellSetApplySymmetricRight.htmlPCShellSetApplyTranspose.htmlPCShellSetContext.htmlPCShellSetDestroy.htmlPCShellSetName.htmlPCShellSetPostSolve.htmlPCShellSetPreSolve.htmlPCShellSetSetUp.htmlPCShellSetView.htmlPCSide.htmlPCSysPFMG.htmlPCTELESCOPE.htmlPCTFS.htmlPCTelescopeGetDM.htmlPCTelescopeGetIgnoreDM.htmlPCTelescopeGetIgnoreKSPComputeOperators.htmlPCTelescopeGetKSP.htmlPCTelescopeGetReductionFactor.htmlPCTelescopeGetSubcommType.htmlPCTelescopeGetUseCoarseDM.htmlPCTelescopeSetIgnoreDM.htmlPCTelescopeSetIgnoreKSPComputeOperators.htmlPCTelescopeSetReductionFactor.htmlPCTelescopeSetSubcommType.htmlPCTelescopeSetUseCoarseDM.htmlPCType.htmlPCVPBJACOBI.htmlPCView.htmlPCViewFromOptions.htmlindex.htmlPFPF.htmlPFApply.htmlPFApplyVec.htmlPFCreate.htmlPFDestroy.htmlPFFinalizePackage.htmlPFGetType.htmlPFInitializePackage.htmlPFRegister.htmlPFRegisterAll.htmlPFSet.htmlPFSetFromOptions.htmlPFSetType.htmlPFType.htmlPFView.htmlPFViewFromOptions.htmlindex.htmlPetscSFPetscSF.htmlPetscSFBcastAndOpBegin.htmlPetscSFBcastAndOpEnd.htmlPetscSFBcastAndOpWithMemTypeBegin.htmlPetscSFBcastBegin.htmlPetscSFBcastEnd.htmlPetscSFCompose.htmlPetscSFComposeInverse.htmlPetscSFComputeDegreeBegin.htmlPetscSFComputeDegreeEnd.htmlPetscSFComputeMultiRootOriginalNumbering.htmlPetscSFCreate.htmlPetscSFCreateEmbeddedLeafSF.htmlPetscSFCreateEmbeddedSF.htmlPetscSFCreateInverseSF.htmlPetscSFDestroy.htmlPetscSFDuplicate.htmlPetscSFDuplicateOption.htmlPetscSFFetchAndOpBegin.htmlPetscSFFetchAndOpEnd.htmlPetscSFFinalizePackage.htmlPetscSFGatherBegin.htmlPetscSFGatherEnd.htmlPetscSFGetGraph.htmlPetscSFGetGroups.htmlPetscSFGetLeafRange.htmlPetscSFGetLeafRanks.htmlPetscSFGetMultiSF.htmlPetscSFGetRootRanks.htmlPetscSFGetType.htmlPetscSFInitializePackage.htmlPetscSFNode.htmlPetscSFPattern.htmlPetscSFReduceBegin.htmlPetscSFReduceEnd.htmlPetscSFReduceWithMemTypeBegin.htmlPetscSFRegister.htmlPetscSFRegisterAll.htmlPetscSFReset.htmlPetscSFScatterBegin.htmlPetscSFScatterEnd.htmlPetscSFSetFromOptions.htmlPetscSFSetGraph.htmlPetscSFSetGraphWithPattern.htmlPetscSFSetRankOrder.htmlPetscSFSetType.htmlPetscSFSetUp.htmlPetscSFSetUpRanks.htmlPetscSFType.htmlPetscSFView.htmlPetscSFViewFromOptions.htmlPetscSFWindowFlavorType.htmlPetscSFWindowGetDataTypes.htmlPetscSFWindowGetFlavorType.htmlPetscSFWindowGetInfo.htmlPetscSFWindowGetSyncType.htmlPetscSFWindowSetFlavorType.htmlPetscSFWindowSetInfo.htmlPetscSFWindowSetSyncType.htmlPetscSFWindowSyncType.htmlindex.htmlPetscSectionPetscSFCreateRemoteOffsets.htmlPetscSFCreateSectionSF.htmlPetscSFDistributeSection.htmlPetscSection.htmlPetscSectionAddConstraintDof.htmlPetscSectionAddDof.htmlPetscSectionAddFieldConstraintDof.htmlPetscSectionAddFieldDof.htmlPetscSectionClone.htmlPetscSectionCompare.htmlPetscSectionCopy.htmlPetscSectionCreate.htmlPetscSectionCreateGlobalSection.htmlPetscSectionCreateGlobalSectionCensored.htmlPetscSectionCreateSubmeshSection.htmlPetscSectionCreateSubsection.htmlPetscSectionCreateSupersection.htmlPetscSectionDestroy.htmlPetscSectionExtractDofsFromArray.htmlPetscSectionGetChart.htmlPetscSectionGetClosureIndex.htmlPetscSectionGetClosureInversePermutation.htmlPetscSectionGetClosurePermutation.htmlPetscSectionGetComponentName.htmlPetscSectionGetConstrainedStorageSize.htmlPetscSectionGetConstraintDof.htmlPetscSectionGetConstraintIndices.htmlPetscSectionGetDof.htmlPetscSectionGetField.htmlPetscSectionGetFieldComponents.htmlPetscSectionGetFieldConstraintDof.htmlPetscSectionGetFieldConstraintIndices.htmlPetscSectionGetFieldDof.htmlPetscSectionGetFieldName.htmlPetscSectionGetFieldOffset.htmlPetscSectionGetFieldPointOffset.htmlPetscSectionGetFieldPointSyms.htmlPetscSectionGetFieldSym.htmlPetscSectionGetMaxDof.htmlPetscSectionGetNumFields.htmlPetscSectionGetOffset.htmlPetscSectionGetOffsetRange.htmlPetscSectionGetPermutation.htmlPetscSectionGetPointLayout.htmlPetscSectionGetPointMajor.htmlPetscSectionGetPointSyms.htmlPetscSectionGetStorageSize.htmlPetscSectionGetSym.htmlPetscSectionGetUseFieldOffsets.htmlPetscSectionGetValueLayout.htmlPetscSectionHasConstraints.htmlPetscSectionPermute.htmlPetscSectionReset.htmlPetscSectionRestoreFieldPointSyms.htmlPetscSectionRestorePointSyms.htmlPetscSectionSetChart.htmlPetscSectionSetClosureIndex.htmlPetscSectionSetClosurePermutation.htmlPetscSectionSetComponentName.htmlPetscSectionSetConstraintDof.htmlPetscSectionSetConstraintIndices.htmlPetscSectionSetDof.htmlPetscSectionSetFieldComponents.htmlPetscSectionSetFieldConstraintDof.htmlPetscSectionSetFieldConstraintIndices.htmlPetscSectionSetFieldDof.htmlPetscSectionSetFieldName.htmlPetscSectionSetFieldOffset.htmlPetscSectionSetFieldSym.htmlPetscSectionSetFromOptions.htmlPetscSectionSetNumFields.htmlPetscSectionSetOffset.htmlPetscSectionSetPermutation.htmlPetscSectionSetPointMajor.htmlPetscSectionSetSym.htmlPetscSectionSetUp.htmlPetscSectionSetUpBC.htmlPetscSectionSetUseFieldOffsets.htmlPetscSectionSym.htmlPetscSectionSymCreate.htmlPetscSectionSymDestroy.htmlPetscSectionSymGetType.htmlPetscSectionSymRegister.htmlPetscSectionSymSetType.htmlPetscSectionSymType.htmlPetscSectionSymView.htmlPetscSectionView.htmlPetscSectionViewFromOptions.htmlindex.htmlProfilingPetscClassIdRegister.htmlPetscClassPerfInfoClear.htmlPetscClassPerfLogCreate.htmlPetscClassPerfLogDestroy.htmlPetscClassPerfLogEnsureSize.htmlPetscClassRegInfoDestroy.htmlPetscClassRegLogCreate.htmlPetscClassRegLogDestroy.htmlPetscClassRegLogGetClass.htmlPetscClassRegLogRegister.htmlPetscEventPerfInfoClear.htmlPetscEventPerfInfoCopy.htmlPetscEventPerfLogActivate.htmlPetscEventPerfLogActivateClass.htmlPetscEventPerfLogCreate.htmlPetscEventPerfLogDeactivate.htmlPetscEventPerfLogDeactivateClass.htmlPetscEventPerfLogDestroy.htmlPetscEventPerfLogEnsureSize.htmlPetscEventPerfLogGetVisible.htmlPetscEventPerfLogSetVisible.htmlPetscEventRegLogCreate.htmlPetscEventRegLogDestroy.htmlPetscEventRegLogGetEvent.htmlPetscEventRegLogRegister.htmlPetscGetFlops.htmlPetscInfo.htmlPetscInfoActivateClass.htmlPetscInfoAllow.htmlPetscInfoCommFlag.htmlPetscInfoDeactivateClass.htmlPetscInfoDestroy.htmlPetscInfoEnabled.htmlPetscInfoGetClass.htmlPetscInfoGetFile.htmlPetscInfoGetInfo.htmlPetscInfoProcessClass.htmlPetscInfoSetClasses.htmlPetscInfoSetFile.htmlPetscInfoSetFilterCommSelf.htmlPetscInfoSetFromOptions.htmlPetscIntStackCreate.htmlPetscIntStackDestroy.htmlPetscIntStackEmpty.htmlPetscIntStackPop.htmlPetscIntStackPush.htmlPetscIntStackTop.htmlPetscLogActions.htmlPetscLogAllBegin.htmlPetscLogDefaultBegin.htmlPetscLogDump.htmlPetscLogEvent.htmlPetscLogEventActivate.htmlPetscLogEventActivateClass.htmlPetscLogEventBegin.htmlPetscLogEventDeactivate.htmlPetscLogEventDeactivateClass.htmlPetscLogEventEnd.htmlPetscLogEventExcludeClass.htmlPetscLogEventGetId.htmlPetscLogEventGetPerfInfo.htmlPetscLogEventIncludeClass.htmlPetscLogEventRegister.htmlPetscLogEventSetActiveAll.htmlPetscLogEventSetCollective.htmlPetscLogEventSetDof.htmlPetscLogEventSetError.htmlPetscLogEventSync.htmlPetscLogFlops.htmlPetscLogGetStageLog.htmlPetscLogGpuFlops.htmlPetscLogGpuTimeBegin.htmlPetscLogGpuTimeEnd.htmlPetscLogMPEBegin.htmlPetscLogMPEDump.htmlPetscLogMPEGetRGBColor.htmlPetscLogNestedBegin.htmlPetscLogObjectMemory.htmlPetscLogObjects.htmlPetscLogSet.htmlPetscLogSetThreshold.htmlPetscLogStage.htmlPetscLogStageGetActive.htmlPetscLogStageGetId.htmlPetscLogStageGetVisible.htmlPetscLogStagePop.htmlPetscLogStagePush.htmlPetscLogStageRegister.htmlPetscLogStageSetActive.htmlPetscLogStageSetVisible.htmlPetscLogTraceBegin.htmlPetscLogView.htmlPetscLogViewFromOptions.htmlPetscPreLoadBegin.htmlPetscPreLoadEnd.htmlPetscPreLoadStage.htmlPetscStageInfoDestroy.htmlPetscStageLogCreate.htmlPetscStageLogDestroy.htmlPetscStageLogGetActive.htmlPetscStageLogGetClassPerfLog.htmlPetscStageLogGetClassRegLog.htmlPetscStageLogGetCurrent.htmlPetscStageLogGetEventPerfLog.htmlPetscStageLogGetEventRegLog.htmlPetscStageLogGetStage.htmlPetscStageLogGetVisible.htmlPetscStageLogPop.htmlPetscStageLogPush.htmlPetscStageLogRegister.htmlPetscStageLogSetActive.htmlPetscStageLogSetVisible.htmlindex.htmlSNESDMAdaptorAdapt.htmlDMAdaptorCreate.htmlDMAdaptorDestroy.htmlDMAdaptorGetSequenceLength.htmlDMAdaptorGetSolver.htmlDMAdaptorSetFromOptions.htmlDMAdaptorSetSequenceLength.htmlDMAdaptorSetSolver.htmlDMAdaptorSetUp.htmlDMAdaptorView.htmlDMCopyDMSNES.htmlDMDASNESSetFunctionLocal.htmlDMDASNESSetJacobianLocal.htmlDMDASNESSetObjectiveLocal.htmlDMDASNESSetPicardLocal.htmlDMGetDMSNES.htmlDMGetDMSNESWrite.htmlDMInterpolationAddPoints.htmlDMInterpolationCreate.htmlDMInterpolationDestroy.htmlDMInterpolationEvaluate.htmlDMInterpolationGetCoordinates.htmlDMInterpolationGetDim.htmlDMInterpolationGetDof.htmlDMInterpolationGetVector.htmlDMInterpolationRestoreVector.htmlDMInterpolationSetDim.htmlDMInterpolationSetDof.htmlDMInterpolationSetUp.htmlDMPlexComputeJacobianAction.htmlDMPlexSNESComputeBoundaryFEM.htmlDMPlexSNESComputeJacobianFEM.htmlDMPlexSNESComputeResidualFEM.htmlDMPlexSetSNESLocalFEM.htmlDMSNESCheckDiscretization.htmlDMSNESCheckFromOptions.htmlDMSNESCheckJacobian.htmlDMSNESCheckResidual.htmlDMSNESCopy.htmlDMSNESGetBoundaryLocal.htmlDMSNESGetFunction.htmlDMSNESGetFunctionLocal.htmlDMSNESGetJacobian.htmlDMSNESGetJacobianLocal.htmlDMSNESGetNGS.htmlDMSNESGetObjective.htmlDMSNESGetPicard.htmlDMSNESSetBoundaryLocal.htmlDMSNESSetFunction.htmlDMSNESSetFunctionLocal.htmlDMSNESSetJacobian.htmlDMSNESSetJacobianLocal.htmlDMSNESSetNGS.htmlDMSNESSetObjective.htmlDMSNESSetPicard.htmlKSPMonitorSNES.htmlKSPMonitorSNESLGResidualNormCreate.htmlKSPMonitorSNESLGResidualNormDestroy.htmlMatCreateSNESMF.htmlMatMFFDComputeJacobian.htmlMatSNESMFGetReuseBase.htmlMatSNESMFGetSNES.htmlMatSNESMFSetReuseBase.htmlPetscConvEstCreate.htmlPetscConvEstDestroy.htmlPetscConvEstGetConvRate.htmlPetscConvEstGetSolver.htmlPetscConvEstMonitorDefault.htmlPetscConvEstRateView.htmlPetscConvEstSetFromOptions.htmlPetscConvEstSetSolver.htmlPetscConvEstSetUp.htmlPetscConvEstView.htmlSNES.htmlSNESANDERSON.htmlSNESASPIN.htmlSNESAddOptionsChecker.htmlSNESAppendOptionsPrefix.htmlSNESApplyNPC.htmlSNESCOMPOSITE.htmlSNESCompositeAddSNES.htmlSNESCompositeGetNumber.htmlSNESCompositeGetSNES.htmlSNESCompositeSetDamping.htmlSNESCompositeSetType.htmlSNESComputeFunction.htmlSNESComputeJacobian.htmlSNESComputeJacobianDefault.htmlSNESComputeJacobianDefaultColor.htmlSNESComputeNGS.htmlSNESComputeObjective.htmlSNESConvergedDefault.htmlSNESConvergedReason.htmlSNESConvergedReasonView.htmlSNESConvergedReasonViewFromOptions.htmlSNESConvergedSkip.htmlSNESConvergenceTestFunction.htmlSNESCreate.htmlSNESDefaultMatrixFreeSetParameters2.htmlSNESDestroy.htmlSNESFASType.htmlSNESFinalizePackage.htmlSNESFunction.htmlSNESFunctionType.htmlSNESGetAlwaysComputesFinalResidual.htmlSNESGetApplicationContext.htmlSNESGetCheckJacobianDomainError.htmlSNESGetConvergedReason.htmlSNESGetConvergenceHistory.htmlSNESGetDM.htmlSNESGetDivergenceTolerance.htmlSNESGetErrorIfNotConverged.htmlSNESGetForceIteration.htmlSNESGetFunction.htmlSNESGetFunctionDomainError.htmlSNESGetFunctionNorm.htmlSNESGetFunctionType.htmlSNESGetGridSequence.htmlSNESGetIterationNumber.htmlSNESGetJacobian.htmlSNESGetJacobianDomainError.htmlSNESGetKSP.htmlSNESGetLagJacobian.htmlSNESGetLagPreconditioner.htmlSNESGetLineSearch.htmlSNESGetLinearSolveFailures.htmlSNESGetLinearSolveIterations.htmlSNESGetMaxLinearSolveFailures.htmlSNESGetMaxNonlinearStepFailures.htmlSNESGetNGS.htmlSNESGetNPC.htmlSNESGetNPCFunction.htmlSNESGetNPCSide.htmlSNESGetNonlinearStepFailures.htmlSNESGetNormSchedule.htmlSNESGetNumberFunctionEvals.htmlSNESGetObjective.htmlSNESGetOptionsPrefix.htmlSNESGetPicard.htmlSNESGetRhs.htmlSNESGetSolution.htmlSNESGetSolutionNorm.htmlSNESGetSolutionUpdate.htmlSNESGetTolerances.htmlSNESGetType.htmlSNESGetUpdateNorm.htmlSNESGetUseMatrixFree.htmlSNESHasNPC.htmlSNESInitializePackage.htmlSNESJacobianFunction.htmlSNESKSPGetParametersEW.htmlSNESKSPGetUseEW.htmlSNESKSPONLY.htmlSNESKSPSetParametersEW.htmlSNESKSPSetUseEW.htmlSNESKSPTRANSPOSEONLY.htmlSNESLINESEARCHBASIC.htmlSNESLINESEARCHBT.htmlSNESLINESEARCHCP.htmlSNESLINESEARCHL2.htmlSNESLINESEARCHNCGLINEAR.htmlSNESLINESEARCHNLEQERR.htmlSNESLINESEARCHSHELL.htmlSNESLineSearch.htmlSNESLineSearchAppendOptionsPrefix.htmlSNESLineSearchApply.htmlSNESLineSearchBTGetAlpha.htmlSNESLineSearchBTSetAlpha.htmlSNESLineSearchComputeNorms.htmlSNESLineSearchCreate.htmlSNESLineSearchDestroy.htmlSNESLineSearchGetDamping.htmlSNESLineSearchGetDefaultMonitor.htmlSNESLineSearchGetLambda.htmlSNESLineSearchGetNorms.htmlSNESLineSearchGetOptionsPrefix.htmlSNESLineSearchGetOrder.htmlSNESLineSearchGetPostCheck.htmlSNESLineSearchGetPreCheck.htmlSNESLineSearchGetReason.htmlSNESLineSearchGetSNES.htmlSNESLineSearchGetTolerances.htmlSNESLineSearchGetType.htmlSNESLineSearchGetVIFunctions.htmlSNESLineSearchGetVecs.htmlSNESLineSearchMonitor.htmlSNESLineSearchMonitorCancel.htmlSNESLineSearchMonitorSet.htmlSNESLineSearchMonitorSetFromOptions.htmlSNESLineSearchMonitorSolutionUpdate.htmlSNESLineSearchPostCheck.htmlSNESLineSearchPreCheck.htmlSNESLineSearchPreCheckPicard.htmlSNESLineSearchReason.htmlSNESLineSearchRegister.htmlSNESLineSearchRegisterAll.htmlSNESLineSearchReset.htmlSNESLineSearchSetComputeNorms.htmlSNESLineSearchSetDamping.htmlSNESLineSearchSetDefaultMonitor.htmlSNESLineSearchSetFromOptions.htmlSNESLineSearchSetFunction.htmlSNESLineSearchSetLambda.htmlSNESLineSearchSetNorms.htmlSNESLineSearchSetOrder.htmlSNESLineSearchSetPostCheck.htmlSNESLineSearchSetPreCheck.htmlSNESLineSearchSetReason.htmlSNESLineSearchSetSNES.htmlSNESLineSearchSetTolerances.htmlSNESLineSearchSetType.htmlSNESLineSearchSetUp.htmlSNESLineSearchSetVIFunctions.htmlSNESLineSearchSetVecs.htmlSNESLineSearchSetWorkVecs.htmlSNESLineSearchShellGetUserFunc.htmlSNESLineSearchShellSetUserFunc.htmlSNESLineSearchType.htmlSNESLineSearchView.htmlSNESLoad.htmlSNESMS.htmlSNESMSFinalizePackage.htmlSNESMSGetDamping.htmlSNESMSGetType.htmlSNESMSInitializePackage.htmlSNESMSRegister.htmlSNESMSRegisterAll.htmlSNESMSRegisterDestroy.htmlSNESMSSetDamping.htmlSNESMSSetType.htmlSNESMSType.htmlSNESMULTIBLOCK.htmlSNESMatrixFreeCreate2.htmlSNESMonitor.htmlSNESMonitorCancel.htmlSNESMonitorDefault.htmlSNESMonitorDefaultField.htmlSNESMonitorFields.htmlSNESMonitorFunction.htmlSNESMonitorRange.htmlSNESMonitorRatio.htmlSNESMonitorRatioSetUp.htmlSNESMonitorResidual.htmlSNESMonitorSAWs.htmlSNESMonitorSAWsCreate.htmlSNESMonitorSAWsDestroy.htmlSNESMonitorScaling.htmlSNESMonitorSet.htmlSNESMonitorSetFromOptions.htmlSNESMonitorSolution.htmlSNESMonitorSolutionUpdate.htmlSNESMultiblockGetSubSNES.htmlSNESMultiblockSetBlockSize.htmlSNESMultiblockSetFields.htmlSNESMultiblockSetIS.htmlSNESMultiblockSetType.htmlSNESNASM.htmlSNESNASMGetDamping.htmlSNESNASMGetNumber.htmlSNESNASMGetSNES.htmlSNESNASMGetSubdomainVecs.htmlSNESNASMGetSubdomains.htmlSNESNASMGetType.htmlSNESNASMSetComputeFinalJacobian.htmlSNESNASMSetDamping.htmlSNESNASMSetSubdomains.htmlSNESNASMSetType.htmlSNESNASMSetWeight.htmlSNESNCG.htmlSNESNCGSetType.htmlSNESNEWTONLS.htmlSNESNEWTONTR.htmlSNESNGMRES.htmlSNESNGMRESSetRestartFmRise.htmlSNESNGMRESSetRestartType.htmlSNESNGMRESSetSelectType.htmlSNESNGS.htmlSNESNGSFunction.htmlSNESNGSGetSweeps.htmlSNESNGSGetTolerances.htmlSNESNGSSetSweeps.htmlSNESNGSSetTolerances.htmlSNESNRICHARDSON.htmlSNESNewtonTRGetPostCheck.htmlSNESNewtonTRGetPreCheck.htmlSNESNewtonTRPostCheck.htmlSNESNewtonTRPreCheck.htmlSNESNewtonTRSetPostCheck.htmlSNESNewtonTRSetPreCheck.htmlSNESNormSchedule.htmlSNESObjectiveComputeFunctionDefaultFD.htmlSNESObjectiveFunction.htmlSNESPATCH.htmlSNESPythonSetType.htmlSNESQN.htmlSNESQNSetRestartType.htmlSNESQNSetScaleType.htmlSNESQNSetType.htmlSNESRegister.htmlSNESRegisterAll.htmlSNESReset.htmlSNESResetFromOptions.htmlSNESSHELL.htmlSNESSetAlwaysComputesFinalResidual.htmlSNESSetApplicationContext.htmlSNESSetCheckJacobianDomainError.htmlSNESSetComputeApplicationContext.htmlSNESSetComputeInitialGuess.htmlSNESSetConvergedReason.htmlSNESSetConvergenceHistory.htmlSNESSetConvergenceTest.htmlSNESSetCountersReset.htmlSNESSetDM.htmlSNESSetDivergenceTolerance.htmlSNESSetErrorIfNotConverged.htmlSNESSetForceIteration.htmlSNESSetFromOptions.htmlSNESSetFunction.htmlSNESSetFunctionDomainError.htmlSNESSetFunctionNorm.htmlSNESSetFunctionType.htmlSNESSetGridSequence.htmlSNESSetInitialFunction.htmlSNESSetIterationNumber.htmlSNESSetJacobian.htmlSNESSetJacobianDomainError.htmlSNESSetKSP.htmlSNESSetLagJacobian.htmlSNESSetLagJacobianPersists.htmlSNESSetLagPreconditioner.htmlSNESSetLagPreconditionerPersists.htmlSNESSetLineSearch.htmlSNESSetMaxLinearSolveFailures.htmlSNESSetMaxNonlinearStepFailures.htmlSNESSetNGS.htmlSNESSetNPC.htmlSNESSetNPCSide.htmlSNESSetNormSchedule.htmlSNESSetObjective.htmlSNESSetOptionsPrefix.htmlSNESSetPicard.htmlSNESSetSolution.htmlSNESSetTolerances.htmlSNESSetTrustRegionTolerance.htmlSNESSetType.htmlSNESSetUp.htmlSNESSetUpMatrices.htmlSNESSetUpdate.htmlSNESSetUseMatrixFree.htmlSNESSetWorkVecs.htmlSNESShellGetContext.htmlSNESShellSetContext.htmlSNESShellSetSolve.htmlSNESSolve.htmlSNESType.htmlSNESVINEWTONRSLS.htmlSNESVINEWTONSSLS.htmlSNESVISetComputeVariableBounds.htmlSNESVISetVariableBounds.htmlSNESView.htmlSNESViewFromOptions.htmlSNES_CONERGED_ITERATING.htmlSNES_CONVERGED_FNORM_ABS.htmlSNES_CONVERGED_FNORM_RELATIVE.htmlSNES_CONVERGED_SNORM_RELATIVE.htmlSNES_DIVERGED_DTOL.htmlSNES_DIVERGED_FNORM_NAN.htmlSNES_DIVERGED_FUNCTION_COUNT.htmlSNES_DIVERGED_LINE_SEARCH.htmlSNES_DIVERGED_LOCAL_MIN.htmlSNES_DIVERGED_MAX_IT.htmlSNES_NORM_ALWAYS.htmlSNES_NORM_FINAL_ONLY.htmlSNES_NORM_INITIAL_FINAL_ONLY.htmlSNES_NORM_INITIAL_ONLY.htmlSNES_NORM_NONE.htmlindex.htmlSNESFASSNESFAS.htmlSNESFASCreateCoarseVec.htmlSNESFASCycleGetCorrection.htmlSNESFASCycleGetInjection.htmlSNESFASCycleGetInterpolation.htmlSNESFASCycleGetRScale.htmlSNESFASCycleGetRestriction.htmlSNESFASCycleGetSmoother.htmlSNESFASCycleGetSmootherDown.htmlSNESFASCycleGetSmootherUp.htmlSNESFASCycleIsFine.htmlSNESFASCycleSetCycles.htmlSNESFASFullSetDownSweep.htmlSNESFASGalerkinFunctionDefault.htmlSNESFASGetCoarseSolve.htmlSNESFASGetCycleSNES.htmlSNESFASGetGalerkin.htmlSNESFASGetInjection.htmlSNESFASGetInterpolation.htmlSNESFASGetLevels.htmlSNESFASGetRestriction.htmlSNESFASGetSmoother.htmlSNESFASGetSmootherDown.htmlSNESFASGetSmootherUp.htmlSNESFASGetType.htmlSNESFASRestrict.htmlSNESFASSetContinuation.htmlSNESFASSetCycles.htmlSNESFASSetGalerkin.htmlSNESFASSetInjection.htmlSNESFASSetInterpolation.htmlSNESFASSetLevels.htmlSNESFASSetLog.htmlSNESFASSetMonitor.htmlSNESFASSetNumberSmoothDown.htmlSNESFASSetNumberSmoothUp.htmlSNESFASSetRScale.htmlSNESFASSetRestriction.htmlSNESFASSetType.htmlindex.htmlSPACEPETSCDUALSPACEBDM.htmlPETSCSPACEPOINT.htmlPETSCSPACEPOLYNOMIAL.htmlPETSCSPACESUM.htmlPETSCSPACETENSOR.htmlPetscDTBinomial.htmlPetscDTBinomialInt.htmlPetscDTEnumPerm.htmlPetscDTEnumSubset.htmlPetscDTFactorial.htmlPetscDTFactorialInt.htmlPetscDTNodeType.htmlPetscDTPermIndex.htmlPetscDTSubsetIndex.htmlPetscDualSpace.htmlPetscDualSpaceReferenceCell.htmlPetscDualSpaceTransformType.htmlPetscDualSpaceType.htmlPetscFE.htmlPetscFEJacobianType.htmlPetscFEType.htmlPetscGaussLobattoLegendreCreateType.htmlPetscQuadrature.htmlPetscSpace.htmlPetscSpaceCreate.htmlPetscSpaceDestroy.htmlPetscSpaceEvaluate.htmlPetscSpaceGetDegree.htmlPetscSpaceGetDimension.htmlPetscSpaceGetHeightSubspace.htmlPetscSpaceGetNumComponents.htmlPetscSpaceGetNumVariables.htmlPetscSpaceGetType.htmlPetscSpacePointGetPoints.htmlPetscSpacePointSetPoints.htmlPetscSpacePolynomialGetSymmetric.htmlPetscSpacePolynomialGetTensor.htmlPetscSpacePolynomialSetSymmetric.htmlPetscSpacePolynomialSetTensor.htmlPetscSpacePolynomialType.htmlPetscSpaceRegister.htmlPetscSpaceSetDegree.htmlPetscSpaceSetFromOptions.htmlPetscSpaceSetNumComponents.htmlPetscSpaceSetNumVariables.htmlPetscSpaceSetType.htmlPetscSpaceSetUp.htmlPetscSpaceSumGetConcatenate.htmlPetscSpaceSumGetNumSubspaces.htmlPetscSpaceSumGetSubspace.htmlPetscSpaceSumSetConcatenate.htmlPetscSpaceSumSetNumSubspaces.htmlPetscSpaceSumSetSubspace.htmlPetscSpaceTensorGetNumSubspaces.htmlPetscSpaceTensorGetSubspace.htmlPetscSpaceTensorSetNumSubspaces.htmlPetscSpaceTensorSetSubspace.htmlPetscSpaceType.htmlPetscSpaceView.htmlPetscSpaceViewFromOptions.htmlindex.htmlSensitivityTSAdjointComputeDRDPFunction.htmlTSAdjointComputeDRDYFunction.htmlTSAdjointComputeRHSJacobian.htmlTSAdjointCostIntegral.htmlTSAdjointMonitor.htmlTSAdjointMonitorCancel.htmlTSAdjointMonitorDefault.htmlTSAdjointMonitorDrawSensi.htmlTSAdjointMonitorSensi.htmlTSAdjointMonitorSet.htmlTSAdjointMonitorSetFromOptions.htmlTSAdjointReset.htmlTSAdjointResetForward.htmlTSAdjointSetForward.htmlTSAdjointSetRHSJacobian.htmlTSAdjointSetSteps.htmlTSAdjointSetUp.htmlTSAdjointSolve.htmlTSAdjointStep.htmlTSComputeCostIntegrand.htmlTSComputeDRDPFunction.htmlTSComputeDRDUFunction.htmlTSComputeIHessianProductFunctionPP.htmlTSComputeIHessianProductFunctionPU.htmlTSComputeIHessianProductFunctionUP.htmlTSComputeIHessianProductFunctionUU.htmlTSComputeIJacobianP.htmlTSComputeRHSHessianProductFunctionPP.htmlTSComputeRHSHessianProductFunctionPU.htmlTSComputeRHSHessianProductFunctionUP.htmlTSComputeRHSHessianProductFunctionUU.htmlTSComputeRHSJacobianP.htmlTSComputeSNESJacobian.htmlTSCreateQuadratureTS.htmlTSForwardCostIntegral.htmlTSForwardGetIntegralGradients.htmlTSForwardGetSensitivities.htmlTSForwardGetStages.htmlTSForwardReset.htmlTSForwardSetInitialSensitivities.htmlTSForwardSetIntegralGradients.htmlTSForwardSetSensitivities.htmlTSForwardSetUp.htmlTSForwardStep.htmlTSGetCostGradients.htmlTSGetCostHessianProducts.htmlTSGetCostIntegral.htmlTSGetQuadratureTS.htmlTSGetRHSJacobianP.htmlTSSetCostGradients.htmlTSSetCostHessianProducts.htmlTSSetCostIntegrand.htmlTSSetIHessianProduct.htmlTSSetIJacobianP.htmlTSSetRHSHessianProduct.htmlTSSetRHSJacobianP.htmlindex.htmlSysADD_VALUES.htmlCHKERRMPI.htmlCHKERRQ.htmlCHKERRXX.htmlCHKMEMQ.htmlConverts.htmlINSERT_VALUES.htmlInsertMode.htmlKSPCheckDot.htmlKSPCheckNorm.htmlMAX_VALUES.htmlMIN_VALUES.htmlMPIU_Allreduce.htmlMPIU_COMPLEX.htmlMPIU_INT.htmlMPIU_REAL.htmlMPIU_SCALAR.htmlMPI_Comm.htmlPETSCABORT.htmlPETSC_COMM_SELF.htmlPETSC_COMM_WORLD.htmlPETSC_DECIDE.htmlPETSC_DEFAULT.htmlPETSC_DETERMINE.htmlPETSC_FALSE.htmlPETSC_HASH_MAP.htmlPETSC_HASH_SET.htmlPETSC_IGNORE.htmlPETSC_MATLAB_ENGINE_.htmlPETSC_MATLAB_ENGINE_SELF.htmlPETSC_MATLAB_ENGINE_WORLD.htmlPETSC_MPI_THREAD_REQUIRED.htmlPETSC_TRUE.htmlPETSC_VERSION.htmlPETSC_i.htmlPetscAbortErrorHandler.htmlPetscAbs.htmlPetscAbsInt.htmlPetscAbsReal.htmlPetscAddrAlign.htmlPetscArraycmp.htmlPetscArraycpy.htmlPetscArraymove.htmlPetscArrayzero.htmlPetscAttachDebugger.htmlPetscAttachDebuggerErrorHandler.htmlPetscBLASInt.htmlPetscBLASIntCast.htmlPetscBT.htmlPetscBag.htmlPetscBagCreate.htmlPetscBagDestroy.htmlPetscBagGetData.htmlPetscBagGetName.htmlPetscBagGetNames.htmlPetscBagLoad.htmlPetscBagRegisterBool.htmlPetscBagRegisterBoolArray.htmlPetscBagRegisterEnum.htmlPetscBagRegisterInt.htmlPetscBagRegisterInt64.htmlPetscBagRegisterIntArray.htmlPetscBagRegisterReal.htmlPetscBagRegisterRealArray.htmlPetscBagRegisterScalar.htmlPetscBagRegisterString.htmlPetscBagSetFromOptions.htmlPetscBagSetName.htmlPetscBagSetOptionsPrefix.htmlPetscBagView.htmlPetscBarrier.htmlPetscBinaryClose.htmlPetscBinaryOpen.htmlPetscBinaryRead.htmlPetscBinarySeek.htmlPetscBinarySeekType.htmlPetscBinarySynchronizedRead.htmlPetscBinarySynchronizedSeek.htmlPetscBinarySynchronizedWrite.htmlPetscBinaryWrite.htmlPetscBool.htmlPetscBoxAuthorize.htmlPetscBoxRefresh.htmlPetscBoxUpload.htmlPetscBuildTwoSidedType.htmlPetscCUDAInitialize.htmlPetscCUDAInitializeCheck.htmlPetscCalloc1.htmlPetscCalloc2.htmlPetscCalloc3.htmlPetscCalloc4.htmlPetscCalloc5.htmlPetscCalloc6.htmlPetscCalloc7.htmlPetscCheckDupsInt.htmlPetscCheckPointer.htmlPetscCheckPointerSetIntensity.htmlPetscCitationsRegister.htmlPetscClassId.htmlPetscClipInterval.htmlPetscCommBuildTwoSided.htmlPetscCommBuildTwoSidedF.htmlPetscCommBuildTwoSidedFReq.htmlPetscCommBuildTwoSidedGetType.htmlPetscCommBuildTwoSidedSetType.htmlPetscCommDestroy.htmlPetscCommDuplicate.htmlPetscCommGetNewTag.htmlPetscComplex.htmlPetscContainer.htmlPetscContainerCreate.htmlPetscContainerDestroy.htmlPetscContainerGetPointer.htmlPetscContainerSetPointer.htmlPetscContainerSetUserDestroy.htmlPetscContainerUserDestroyDefault.htmlPetscCopyMode.htmlPetscDLClose.htmlPetscDLLibrary.htmlPetscDLLibraryAppend.htmlPetscDLLibraryClose.htmlPetscDLLibraryOpen.htmlPetscDLLibraryPrepend.htmlPetscDLLibraryRetrieve.htmlPetscDLLibrarySym.htmlPetscDLOpen.htmlPetscDLSym.htmlPetscDataType.htmlPetscDataTypeFromString.htmlPetscDataTypeGetSize.htmlPetscDataTypeToMPIDataType.htmlPetscDefined.htmlPetscDetermineInitialFPTrap.htmlPetscEListFind.htmlPetscElementalFinalizePackage.htmlPetscElementalInitializePackage.htmlPetscElementalInitialized.htmlPetscEmacsClientErrorHandler.htmlPetscEnd.htmlPetscEnum.htmlPetscEnumFind.htmlPetscEqualReal.htmlPetscEqualScalar.htmlPetscError.htmlPetscErrorCode.htmlPetscErrorMessage.htmlPetscErrorPrintf.htmlPetscErrorType.htmlPetscFClose.htmlPetscFOpen.htmlPetscFPTrapPop.htmlPetscFPTrapPush.htmlPetscFPrintf.htmlPetscFileMode.htmlPetscFileRetrieve.htmlPetscFinalize.htmlPetscFinalized.htmlPetscFindInt.htmlPetscFindMPIInt.htmlPetscFindReal.htmlPetscFixFilename.htmlPetscFormatConvert.htmlPetscFormatConvertGetSize.htmlPetscFormatStrip.htmlPetscFortranAddr.htmlPetscFortranCallbackGetSizes.htmlPetscFortranCallbackRegister.htmlPetscFree.htmlPetscFree2.htmlPetscFree3.htmlPetscFree4.htmlPetscFree5.htmlPetscFree6.htmlPetscFree7.htmlPetscFreeA.htmlPetscFreeArguments.htmlPetscFunctionBegin.htmlPetscFunctionBeginHot.htmlPetscFunctionBeginUser.htmlPetscFunctionList.htmlPetscFunctionListAdd.htmlPetscFunctionListDestroy.htmlPetscFunctionListDuplicate.htmlPetscFunctionListFind.htmlPetscFunctionListGet.htmlPetscFunctionListPrintTypes.htmlPetscFunctionListView.htmlPetscFunctionReturn.htmlPetscGatherMessageLengths.htmlPetscGatherMessageLengths2.htmlPetscGatherNumberOfMessages.htmlPetscGetArchType.htmlPetscGetArgs.htmlPetscGetArguments.htmlPetscGetCPUTime.htmlPetscGetDate.htmlPetscGetFullPath.htmlPetscGetHomeDirectory.htmlPetscGetHostName.htmlPetscGetPetscDir.htmlPetscGetProgramName.htmlPetscGetRealPath.htmlPetscGetRelativePath.htmlPetscGetTmp.htmlPetscGetUserName.htmlPetscGetVersion.htmlPetscGetVersionNumber.htmlPetscGetWorkingDirectory.htmlPetscGlobalMinMaxInt.htmlPetscGlobalMinMaxReal.htmlPetscGlobusAuthorize.htmlPetscGlobusGetTransfers.htmlPetscGlobusUpload.htmlPetscGoogleDriveAuthorize.htmlPetscGoogleDriveRefresh.htmlPetscGoogleDriveUpload.htmlPetscHIPInitialize.htmlPetscHIPInitializeCheck.htmlPetscHMapT.htmlPetscHMapTClear.htmlPetscHMapTCreate.htmlPetscHMapTDel.htmlPetscHMapTDestroy.htmlPetscHMapTDuplicate.htmlPetscHMapTFind.htmlPetscHMapTGet.htmlPetscHMapTGetCapacity.htmlPetscHMapTGetKeys.htmlPetscHMapTGetPairs.htmlPetscHMapTGetSize.htmlPetscHMapTGetVals.htmlPetscHMapTHas.htmlPetscHMapTIterDel.htmlPetscHMapTIterGet.htmlPetscHMapTIterSet.htmlPetscHMapTPut.htmlPetscHMapTQueryDel.htmlPetscHMapTQuerySet.htmlPetscHMapTReset.htmlPetscHMapTResize.htmlPetscHMapTSet.htmlPetscHSetT.htmlPetscHSetTAdd.htmlPetscHSetTClear.htmlPetscHSetTCreate.htmlPetscHSetTDel.htmlPetscHSetTDestroy.htmlPetscHSetTDuplicate.htmlPetscHSetTGetCapacity.htmlPetscHSetTGetElems.htmlPetscHSetTGetSize.htmlPetscHSetTHas.htmlPetscHSetTQueryAdd.htmlPetscHSetTQueryDel.htmlPetscHSetTReset.htmlPetscHSetTResize.htmlPetscHSetTUpdate.htmlPetscHTTPRequest.htmlPetscHTTPSConnect.htmlPetscHTTPSRequest.htmlPetscHeaderCreate.htmlPetscHeaderDestroy.htmlPetscHeap.htmlPetscHelpPrintf.htmlPetscIgnoreErrorHandler.htmlPetscImaginaryPart.htmlPetscInitialize.htmlPetscInitializeFortran.htmlPetscInitializeNoArguments.htmlPetscInitialized.htmlPetscInt.htmlPetscIntCast.htmlPetscIntMultError.htmlPetscIntMultTruncate.htmlPetscIntSortSemiOrdered.htmlPetscIntSortSemiOrderedWithArray.htmlPetscIntSumError.htmlPetscIntSumTruncate.htmlPetscIntView.htmlPetscIsCloseAtTol.htmlPetscIsInfReal.htmlPetscIsNanReal.htmlPetscIsNormalReal.htmlPetscLikely.htmlPetscLinearRegression.htmlPetscLogDouble.htmlPetscLs.htmlPetscMPIAbortErrorHandler.htmlPetscMPIDataTypeToPetscDataType.htmlPetscMPIDump.htmlPetscMPIInt.htmlPetscMPIIntCast.htmlPetscMPIIntSortSemiOrdered.htmlPetscMPIIntSortSemiOrderedWithArray.htmlPetscMalloc.htmlPetscMalloc1.htmlPetscMalloc2.htmlPetscMalloc3.htmlPetscMalloc4.htmlPetscMalloc5.htmlPetscMalloc6.htmlPetscMalloc7.htmlPetscMallocA.htmlPetscMallocClear.htmlPetscMallocDump.htmlPetscMallocGetCurrentUsage.htmlPetscMallocGetDebug.htmlPetscMallocGetMaximumUsage.htmlPetscMallocGetStack.htmlPetscMallocLogRequestedSizeGet.htmlPetscMallocLogRequestedSizeSet.htmlPetscMallocPopMaximumUsage.htmlPetscMallocPushMaximumUsage.htmlPetscMallocResetCUDAHost.htmlPetscMallocResetDRAM.htmlPetscMallocSet.htmlPetscMallocSetCUDAHost.htmlPetscMallocSetCoalesce.htmlPetscMallocSetDRAM.htmlPetscMallocSetDebug.htmlPetscMallocTraceGet.htmlPetscMallocTraceSet.htmlPetscMallocValidate.htmlPetscMallocView.htmlPetscMallocViewGet.htmlPetscMallocViewSet.htmlPetscMatlabEngine.htmlPetscMatlabEngineCreate.htmlPetscMatlabEngineDestroy.htmlPetscMatlabEngineEvaluate.htmlPetscMatlabEngineGet.htmlPetscMatlabEngineGetArray.htmlPetscMatlabEngineGetOutput.htmlPetscMatlabEnginePrintOutput.htmlPetscMatlabEnginePut.htmlPetscMatlabEnginePutArray.htmlPetscMax.htmlPetscMemType.htmlPetscMemcmp.htmlPetscMemcpy.htmlPetscMemmove.htmlPetscMemoryGetCurrentUsage.htmlPetscMemoryGetMaximumUsage.htmlPetscMemorySetGetMaximumUsage.htmlPetscMemoryView.htmlPetscMemzero.htmlPetscMergeIntArray.htmlPetscMergeIntArrayPair.htmlPetscMergeMPIIntArray.htmlPetscMin.htmlPetscMkdtemp.htmlPetscNew.htmlPetscNewLog.htmlPetscNot.htmlPetscObject.htmlPetscObjectAddOptionsHandler.htmlPetscObjectAppendOptionsPrefix.htmlPetscObjectBaseTypeCompare.htmlPetscObjectBaseTypeCompareAny.htmlPetscObjectComm.htmlPetscObjectCompareId.htmlPetscObjectCompose.htmlPetscObjectComposeFunction.htmlPetscObjectComposedDataGetInt.htmlPetscObjectComposedDataGetIntstar.htmlPetscObjectComposedDataGetReal.htmlPetscObjectComposedDataGetRealstar.htmlPetscObjectComposedDataGetScalar.htmlPetscObjectComposedDataGetScalarstar.htmlPetscObjectComposedDataRegister.htmlPetscObjectComposedDataSetInt.htmlPetscObjectComposedDataSetIntstar.htmlPetscObjectComposedDataSetReal.htmlPetscObjectComposedDataSetRealstar.htmlPetscObjectComposedDataSetScalar.htmlPetscObjectComposedDataSetScalarstar.htmlPetscObjectCopyFortranFunctionPointers.htmlPetscObjectDereference.htmlPetscObjectDestroy.htmlPetscObjectDestroyOptionsHandlers.htmlPetscObjectGetClassId.htmlPetscObjectGetClassName.htmlPetscObjectGetComm.htmlPetscObjectGetFortranCallback.htmlPetscObjectGetId.htmlPetscObjectGetName.htmlPetscObjectGetNewTag.htmlPetscObjectGetOptions.htmlPetscObjectGetOptionsPrefix.htmlPetscObjectGetReference.htmlPetscObjectGetTabLevel.htmlPetscObjectGetType.htmlPetscObjectId.htmlPetscObjectIncrementTabLevel.htmlPetscObjectInheritPrintedOptions.htmlPetscObjectList.htmlPetscObjectListAdd.htmlPetscObjectListDestroy.htmlPetscObjectListDuplicate.htmlPetscObjectListFind.htmlPetscObjectListRemoveReference.htmlPetscObjectListReverseFind.htmlPetscObjectName.htmlPetscObjectOptionsBegin.htmlPetscObjectPrependOptionsPrefix.htmlPetscObjectPrintClassNamePrefixType.htmlPetscObjectProcessOptionsHandlers.htmlPetscObjectQuery.htmlPetscObjectQueryFunction.htmlPetscObjectReference.htmlPetscObjectRegisterDestroy.htmlPetscObjectRegisterDestroyAll.htmlPetscObjectSAWsBlock.htmlPetscObjectSAWsGrantAccess.htmlPetscObjectSAWsSetBlock.htmlPetscObjectSAWsTakeAccess.htmlPetscObjectSetFortranCallback.htmlPetscObjectSetFromOptions.htmlPetscObjectSetName.htmlPetscObjectSetOptions.htmlPetscObjectSetOptionsPrefix.htmlPetscObjectSetPrintedOptions.htmlPetscObjectSetTabLevel.htmlPetscObjectSetType.htmlPetscObjectSetUp.htmlPetscObjectState.htmlPetscObjectStateGet.htmlPetscObjectStateIncrease.htmlPetscObjectStateSet.htmlPetscObjectTypeCompare.htmlPetscObjectTypeCompareAny.htmlPetscObjectView.htmlPetscObjectViewFromOptions.htmlPetscObjectsDump.htmlPetscObjectsGetObject.htmlPetscObjectsListGetGlobalNumbering.htmlPetscObjectsView.htmlPetscOffset.htmlPetscOmpCtrlBarrier.htmlPetscOmpCtrlCreate.htmlPetscOmpCtrlDestroy.htmlPetscOmpCtrlGetOmpComms.htmlPetscOmpCtrlOmpRegionOnMasterBegin.htmlPetscOmpCtrlOmpRegionOnMasterEnd.htmlPetscOptionsAllUsed.htmlPetscOptionsBegin.htmlPetscOptionsBool.htmlPetscOptionsBoolArray.htmlPetscOptionsBoolGroup.htmlPetscOptionsBoolGroupBegin.htmlPetscOptionsBoolGroupEnd.htmlPetscOptionsBoundedInt.htmlPetscOptionsClear.htmlPetscOptionsClearValue.htmlPetscOptionsCreate.htmlPetscOptionsDeprecated.htmlPetscOptionsDestroy.htmlPetscOptionsEList.htmlPetscOptionsEnd.htmlPetscOptionsEnum.htmlPetscOptionsEnumArray.htmlPetscOptionsFList.htmlPetscOptionsFindPair.htmlPetscOptionsGetAll.htmlPetscOptionsGetBool.htmlPetscOptionsGetBoolArray.htmlPetscOptionsGetEList.htmlPetscOptionsGetEnum.htmlPetscOptionsGetEnumArray.htmlPetscOptionsGetInt.htmlPetscOptionsGetIntArray.htmlPetscOptionsGetReal.htmlPetscOptionsGetRealArray.htmlPetscOptionsGetScalar.htmlPetscOptionsGetScalarArray.htmlPetscOptionsGetString.htmlPetscOptionsGetStringArray.htmlPetscOptionsGetenv.htmlPetscOptionsHasHelp.htmlPetscOptionsHasName.htmlPetscOptionsHead.htmlPetscOptionsInsert.htmlPetscOptionsInsertFile.htmlPetscOptionsInsertFileYAML.htmlPetscOptionsInsertString.htmlPetscOptionsInsertStringYAML.htmlPetscOptionsInt.htmlPetscOptionsIntArray.htmlPetscOptionsLeft.htmlPetscOptionsLeftGet.htmlPetscOptionsLeftRestore.htmlPetscOptionsMonitorDefault.htmlPetscOptionsMonitorSet.htmlPetscOptionsName.htmlPetscOptionsPop.htmlPetscOptionsPrefixPop.htmlPetscOptionsPrefixPush.htmlPetscOptionsPush.htmlPetscOptionsRangeInt.htmlPetscOptionsReal.htmlPetscOptionsRealArray.htmlPetscOptionsReject.htmlPetscOptionsScalar.htmlPetscOptionsScalarArray.htmlPetscOptionsSetAlias.htmlPetscOptionsSetValue.htmlPetscOptionsString.htmlPetscOptionsStringArray.htmlPetscOptionsTail.htmlPetscOptionsUsed.htmlPetscOptionsValidKey.htmlPetscOptionsView.htmlPetscOptionsViewer.htmlPetscPClose.htmlPetscPOpen.htmlPetscPOpenSetMachine.htmlPetscParallelSortedInt.htmlPetscPopErrorHandler.htmlPetscPopSignalHandler.htmlPetscPrefetchBlock.htmlPetscPrintf.htmlPetscProcessPlacementView.htmlPetscProcessTree.htmlPetscPullJSONValue.htmlPetscPushErrorHandler.htmlPetscPushJSONValue.htmlPetscPushSignalHandler.htmlPetscRandom.htmlPetscRandomCreate.htmlPetscRandomDestroy.htmlPetscRandomFinalizePackage.htmlPetscRandomGetInterval.htmlPetscRandomGetSeed.htmlPetscRandomGetType.htmlPetscRandomGetValue.htmlPetscRandomGetValueReal.htmlPetscRandomInitializePackage.htmlPetscRandomRegister.htmlPetscRandomRegisterAll.htmlPetscRandomSeed.htmlPetscRandomSetFromOptions.htmlPetscRandomSetInterval.htmlPetscRandomSetSeed.htmlPetscRandomSetType.htmlPetscRandomType.htmlPetscRandomView.htmlPetscRandomViewFromOptions.htmlPetscReal.htmlPetscRealIntMultTruncate.htmlPetscRealPart.htmlPetscRealSortSemiOrdered.htmlPetscRealSortSemiOrderedWithArrayInt.htmlPetscRealView.htmlPetscRealloc.htmlPetscRegisterFinalize.htmlPetscRegisterFinalizeAll.htmlPetscReturnErrorHandler.htmlPetscSAWsBlock.htmlPetscSNPrintf.htmlPetscSNPrintfCount.htmlPetscSSEIsEnabled.htmlPetscSSLDestroyContext.htmlPetscSSLInitializeContext.htmlPetscScalar.htmlPetscScalarView.htmlPetscSegBuffer.htmlPetscSegBufferCreate.htmlPetscSegBufferDestroy.htmlPetscSegBufferExtractAlloc.htmlPetscSegBufferExtractInPlace.htmlPetscSegBufferExtractTo.htmlPetscSegBufferGet.htmlPetscSegBufferGetSize.htmlPetscSegBufferUnuse.htmlPetscSequentialPhaseBegin.htmlPetscSequentialPhaseEnd.htmlPetscSetDebugTerminal.htmlPetscSetDebugger.htmlPetscSetDebuggerFromString.htmlPetscSetDefaultDebugger.htmlPetscSetFPTrap.htmlPetscSetHelpVersionFunctions.htmlPetscSharedTmp.htmlPetscSharedWorkingDirectory.htmlPetscShmCommGet.htmlPetscShmCommGetMpiShmComm.htmlPetscShmCommGlobalToLocal.htmlPetscShmCommLocalToGlobal.htmlPetscSign.htmlPetscSignalHandlerDefault.htmlPetscSignalSegvCheckPointerOrMpi.htmlPetscSleep.htmlPetscSortInt.htmlPetscSortIntWithArray.htmlPetscSortIntWithArrayPair.htmlPetscSortIntWithDataArray.htmlPetscSortIntWithPermutation.htmlPetscSortIntWithScalarArray.htmlPetscSortMPIInt.htmlPetscSortMPIIntWithArray.htmlPetscSortMPIIntWithIntArray.htmlPetscSortReal.htmlPetscSortRealWithArrayInt.htmlPetscSortRealWithPermutation.htmlPetscSortRemoveDupsInt.htmlPetscSortRemoveDupsMPIInt.htmlPetscSortRemoveDupsReal.htmlPetscSortReverseInt.htmlPetscSortSplit.htmlPetscSortSplitReal.htmlPetscSortStrWithPermutation.htmlPetscSortedInt.htmlPetscSortedMPIInt.htmlPetscSortedReal.htmlPetscSortedRemoveDupsInt.htmlPetscSplitOwnership.htmlPetscSplitOwnershipBlock.htmlPetscSplitOwnershipEqual.htmlPetscSqr.htmlPetscStackSAWsGrantAccess.htmlPetscStackSAWsTakeAccess.htmlPetscStartMatlab.htmlPetscStopForDebugger.htmlPetscStrArrayDestroy.htmlPetscStrArrayallocpy.htmlPetscStrInList.htmlPetscStrNArrayDestroy.htmlPetscStrNArrayallocpy.htmlPetscStrToArray.htmlPetscStrToArrayDestroy.htmlPetscStrallocpy.htmlPetscStrbeginswith.htmlPetscStrcasecmp.htmlPetscStrcat.htmlPetscStrchr.htmlPetscStrcmp.htmlPetscStrcpy.htmlPetscStrendswith.htmlPetscStrendswithwhich.htmlPetscStrgrt.htmlPetscStrlcat.htmlPetscStrlen.htmlPetscStrncmp.htmlPetscStrncpy.htmlPetscStrrchr.htmlPetscStrreplace.htmlPetscStrrstr.htmlPetscStrstr.htmlPetscStrtolower.htmlPetscStrtoupper.htmlPetscSubcomm.htmlPetscSubcommCreate.htmlPetscSubcommDestroy.htmlPetscSubcommGetChild.htmlPetscSubcommGetContiguousParent.htmlPetscSubcommGetParent.htmlPetscSubcommSetFromOptions.htmlPetscSubcommSetNumber.htmlPetscSubcommSetOptionsPrefix.htmlPetscSubcommSetType.htmlPetscSubcommSetTypeGeneral.htmlPetscSubcommView.htmlPetscSynchronizedFGets.htmlPetscSynchronizedFPrintf.htmlPetscSynchronizedFlush.htmlPetscSynchronizedPrintf.htmlPetscTellMyCell.htmlPetscTestDirectory.htmlPetscTestFile.htmlPetscTextBelt.htmlPetscTimSort.htmlPetscTimSortWithArray.htmlPetscTime.htmlPetscTimeAdd.htmlPetscTimeSubtract.htmlPetscToken.htmlPetscTokenCreate.htmlPetscTokenDestroy.htmlPetscTokenFind.htmlPetscTraceBackErrorHandler.htmlPetscURLShorten.htmlPetscUnlikely.htmlPetscUnlikelyDebug.htmlPetscVFPrintf.htmlPetscVSNPrintf.htmlPetscWaitOnError.htmlSETERRABORT.htmlSETERRMPI.htmlSETERRQ.htmlSETERRQ1.htmlSETERRQ2.htmlSETERRQ3.htmlSETERRQ4.htmlSETERRQ5.htmlSETERRQ6.htmlSETERRQ7.htmlSETERRQ8.htmlSETERRQ9.htmlUsingFortran.htmlindex.htmlTSDMCopyDMTS.htmlDMDATSSetIFunctionLocal.htmlDMDATSSetIJacobianLocal.htmlDMDATSSetRHSFunctionLocal.htmlDMDATSSetRHSJacobianLocal.htmlDMGetDMTS.htmlDMGetDMTSWrite.htmlDMPlexTSComputeBoundary.htmlDMPlexTSComputeIFunctionFEM.htmlDMPlexTSComputeIJacobianFEM.htmlDMPlexTSComputeRHSFunctionFVM.htmlDMTSCheckFromOptions.htmlDMTSCheckJacobian.htmlDMTSCheckResidual.htmlDMTSCopy.htmlDMTSGetForcingFunction.htmlDMTSGetI2Function.htmlDMTSGetI2Jacobian.htmlDMTSGetIFunction.htmlDMTSGetIJacobian.htmlDMTSGetRHSFunction.htmlDMTSGetRHSJacobian.htmlDMTSGetSolutionFunction.htmlDMTSGetTransientVariable.htmlDMTSSetBoundaryLocal.htmlDMTSSetForcingFunction.htmlDMTSSetI2Function.htmlDMTSSetI2Jacobian.htmlDMTSSetIFunction.htmlDMTSSetIFunctionLocal.htmlDMTSSetIFunctionSerialize.htmlDMTSSetIJacobian.htmlDMTSSetIJacobianLocal.htmlDMTSSetIJacobianSerialize.htmlDMTSSetRHSFunction.htmlDMTSSetRHSFunctionLocal.htmlDMTSSetRHSJacobian.htmlDMTSSetSolutionFunction.htmlDMTSSetTransientVariable.htmlSNESTSFormFunction.htmlSNESTSFormJacobian.htmlTS.htmlTS2GetSolution.htmlTS2SetSolution.htmlTSADAPTBASIC.htmlTSADAPTCFL.htmlTSADAPTDSP.htmlTSADAPTGLEE.htmlTSADAPTHISTORY.htmlTSADAPTNONE.htmlTSALPHA.htmlTSALPHA2.htmlTSARKIMEX.htmlTSARKIMEX1BEE.htmlTSARKIMEX2C.htmlTSARKIMEX2D.htmlTSARKIMEX2E.htmlTSARKIMEX3.htmlTSARKIMEX4.htmlTSARKIMEX5.htmlTSARKIMEXA2.htmlTSARKIMEXARS122.htmlTSARKIMEXARS443.htmlTSARKIMEXBPR3.htmlTSARKIMEXFinalizePackage.htmlTSARKIMEXGetFullyImplicit.htmlTSARKIMEXGetType.htmlTSARKIMEXInitializePackage.htmlTSARKIMEXL2.htmlTSARKIMEXPRSSP2.htmlTSARKIMEXRegister.htmlTSARKIMEXRegisterAll.htmlTSARKIMEXRegisterDestroy.htmlTSARKIMEXSetFullyImplicit.htmlTSARKIMEXSetType.htmlTSARKIMEXType.htmlTSAdapt.htmlTSAdaptCandidateAdd.htmlTSAdaptCandidatesClear.htmlTSAdaptCandidatesGet.htmlTSAdaptCheckStage.htmlTSAdaptChoose.htmlTSAdaptCreate.htmlTSAdaptDSPSetFilter.htmlTSAdaptDSPSetPID.htmlTSAdaptFinalizePackage.htmlTSAdaptGetClip.htmlTSAdaptGetMaxIgnore.htmlTSAdaptGetSafety.htmlTSAdaptGetScaleSolveFailed.htmlTSAdaptGetStepLimits.htmlTSAdaptGetType.htmlTSAdaptHistoryGetStep.htmlTSAdaptHistorySetHistory.htmlTSAdaptHistorySetTrajectory.htmlTSAdaptInitializePackage.htmlTSAdaptLoad.htmlTSAdaptRegister.htmlTSAdaptRegisterAll.htmlTSAdaptReset.htmlTSAdaptSetAlwaysAccept.htmlTSAdaptSetCheckStage.htmlTSAdaptSetClip.htmlTSAdaptSetMaxIgnore.htmlTSAdaptSetMonitor.htmlTSAdaptSetSafety.htmlTSAdaptSetScaleSolveFailed.htmlTSAdaptSetStepLimits.htmlTSAdaptSetTimeStepIncreaseDelay.htmlTSAdaptSetType.htmlTSAdaptType.htmlTSAlpha2GetParams.htmlTSAlpha2SetParams.htmlTSAlpha2SetRadius.htmlTSAlphaGetParams.htmlTSAlphaSetParams.htmlTSAlphaSetRadius.htmlTSAppendOptionsPrefix.htmlTSBASICSYMPLECTICSIEULER.htmlTSBASICSYMPLECTICVELVERLET.htmlTSBDF.htmlTSBDFGetOrder.htmlTSBDFSetOrder.htmlTSBEULER.htmlTSBasicSymplectic.htmlTSBasicSymplecticFinalizePackage.htmlTSBasicSymplecticGetType.htmlTSBasicSymplecticInitializePackage.htmlTSBasicSymplecticRegister.htmlTSBasicSymplecticRegisterAll.htmlTSBasicSymplecticRegisterDestroy.htmlTSBasicSymplecticSetType.htmlTSBasicSymplecticType.htmlTSCN.htmlTSClone.htmlTSComputeExactError.htmlTSComputeForcingFunction.htmlTSComputeI2Function.htmlTSComputeI2Jacobian.htmlTSComputeIFunction.htmlTSComputeIFunctionLinear.htmlTSComputeIJacobian.htmlTSComputeIJacobianConstant.htmlTSComputeIJacobianDefaultColor.htmlTSComputeInitialCondition.htmlTSComputeLinearStability.htmlTSComputeRHSFunction.htmlTSComputeRHSFunctionLinear.htmlTSComputeRHSJacobian.htmlTSComputeRHSJacobianConstant.htmlTSComputeSolutionFunction.htmlTSComputeTransientVariable.htmlTSConvergedReason.htmlTSCreate.htmlTSDISCGRAD.htmlTSDestroy.htmlTSDiscGradGetFormulation.htmlTSDiscGradSetFormulation.htmlTSEIMEX.htmlTSEIMEXSetMaxRows.htmlTSEIMEXSetOrdAdapt.htmlTSEIMEXSetRowCol.htmlTSEIMEXType.htmlTSEULER.htmlTSEquationType.htmlTSErrorWeightedENorm.htmlTSErrorWeightedENorm2.htmlTSErrorWeightedENormInfinity.htmlTSErrorWeightedNorm.htmlTSErrorWeightedNorm2.htmlTSErrorWeightedNormInfinity.htmlTSEvaluateStep.htmlTSEvaluateWLTE.htmlTSExactFinalTimeOption.htmlTSFinalizePackage.htmlTSFunctionDomainError.htmlTSGLEE.htmlTSGLEE23.htmlTSGLEE24.htmlTSGLEE25i.htmlTSGLEE35.htmlTSGLEEEXRK2A.htmlTSGLEEFinalizePackage.htmlTSGLEEGetType.htmlTSGLEEInitializePackage.htmlTSGLEEMode.htmlTSGLEERK285EX.htmlTSGLEERK32G1.htmlTSGLEERegister.htmlTSGLEERegisterAll.htmlTSGLEERegisterDestroy.htmlTSGLEESetType.htmlTSGLEEType.htmlTSGLLE.htmlTSGLLEAcceptRegister.htmlTSGLLEAcceptType.htmlTSGLLEAdapt.htmlTSGLLEAdaptInitializePackage.htmlTSGLLEAdaptRegister.htmlTSGLLEAdaptRegisterAll.htmlTSGLLEAdaptType.htmlTSGLLEFinalizePackage.htmlTSGLLEGetAdapt.htmlTSGLLEInitializePackage.htmlTSGLLERegister.htmlTSGLLERegisterAll.htmlTSGLLESetAcceptType.htmlTSGLLESetType.htmlTSGLLEType.htmlTSGetAdapt.htmlTSGetApplicationContext.htmlTSGetAuxSolution.htmlTSGetCFLTime.htmlTSGetComputeExactError.htmlTSGetComputeInitialCondition.htmlTSGetConvergedReason.htmlTSGetDM.htmlTSGetDuration.htmlTSGetEquationType.htmlTSGetExactFinalTime.htmlTSGetI2Function.htmlTSGetI2Jacobian.htmlTSGetIFunction.htmlTSGetIJacobian.htmlTSGetKSP.htmlTSGetKSPIterations.htmlTSGetMaxSteps.htmlTSGetMaxTime.htmlTSGetOptionsPrefix.htmlTSGetPrevTime.htmlTSGetProblemType.htmlTSGetRHSFunction.htmlTSGetRHSJacobian.htmlTSGetSNES.htmlTSGetSNESFailures.htmlTSGetSNESIterations.htmlTSGetSolution.htmlTSGetSolutionComponents.htmlTSGetSolveTime.htmlTSGetStages.htmlTSGetStepNumber.htmlTSGetStepRejections.htmlTSGetTime.htmlTSGetTimeError.htmlTSGetTimeStep.htmlTSGetTimeStepNumber.htmlTSGetTolerances.htmlTSGetTotalSteps.htmlTSGetTrajectory.htmlTSGetType.htmlTSGetUseSplitRHSFunction.htmlTSHasTransientVariable.htmlTSInitializePackage.htmlTSInterpolate.htmlTSLoad.htmlTSMIMEX.htmlTSMPRK.htmlTSMPRK2A22.htmlTSMPRK2A23.htmlTSMPRK2A32.htmlTSMPRK2A33.htmlTSMPRK3P2M.htmlTSMPRKFinalizePackage.htmlTSMPRKGetType.htmlTSMPRKInitializePackage.htmlTSMPRKP2.htmlTSMPRKP3.htmlTSMPRKRegister.htmlTSMPRKRegisterAll.htmlTSMPRKRegisterDestroy.htmlTSMPRKSetType.htmlTSMPRKType.htmlTSMonitor.htmlTSMonitorCancel.htmlTSMonitorDefault.htmlTSMonitorDrawCtxCreate.htmlTSMonitorDrawCtxDestroy.htmlTSMonitorDrawError.htmlTSMonitorDrawSolution.htmlTSMonitorDrawSolutionFunction.htmlTSMonitorDrawSolutionPhase.htmlTSMonitorEnvelope.htmlTSMonitorEnvelopeCtxCreate.htmlTSMonitorEnvelopeCtxDestroy.htmlTSMonitorEnvelopeGetBounds.htmlTSMonitorError.htmlTSMonitorExtreme.htmlTSMonitorLGCtxCreate.htmlTSMonitorLGCtxDestroy.htmlTSMonitorLGCtxSetDisplayVariables.htmlTSMonitorLGCtxSetTransform.htmlTSMonitorLGCtxSetVariableNames.htmlTSMonitorLGError.htmlTSMonitorLGGetVariableNames.htmlTSMonitorLGSetDisplayVariables.htmlTSMonitorLGSetTransform.htmlTSMonitorLGSetVariableNames.htmlTSMonitorLGSolution.htmlTSMonitorSPEigCtxCreate.htmlTSMonitorSPEigCtxDestroy.htmlTSMonitorSPSwarmSolution.htmlTSMonitorSet.htmlTSMonitorSetFromOptions.htmlTSMonitorSolution.htmlTSMonitorSolutionVTK.htmlTSMonitorSolutionVTKDestroy.htmlTSPSEUDO.htmlTSPostEvaluate.htmlTSPostStage.htmlTSPostStep.htmlTSPreStage.htmlTSPreStep.htmlTSProblemType.htmlTSPseudoComputeTimeStep.htmlTSPseudoIncrementDtFromInitialDt.htmlTSPseudoSetMaxTimeStep.htmlTSPseudoSetTimeStep.htmlTSPseudoSetTimeStepIncrement.htmlTSPseudoSetVerifyTimeStep.htmlTSPseudoTimeStepDefault.htmlTSPseudoVerifyTimeStep.htmlTSPseudoVerifyTimeStepDefault.htmlTSPythonSetType.htmlTSRADAU5.htmlTSRHSJacobianSetReuse.htmlTSRHSJacobianTest.htmlTSRHSJacobianTestTranspose.htmlTSRHSSplitGetIS.htmlTSRHSSplitGetSubTS.htmlTSRHSSplitGetSubTSs.htmlTSRHSSplitSetIS.htmlTSRHSSplitSetRHSFunction.htmlTSRK.htmlTSRK1FE.htmlTSRK2A.htmlTSRK3.htmlTSRK3BS.htmlTSRK4.htmlTSRK5BS.htmlTSRK5DP.htmlTSRK5F.htmlTSRK6VR.htmlTSRK7VR.htmlTSRK8VR.htmlTSRKFinalizePackage.htmlTSRKGetMultirate.htmlTSRKGetOrder.htmlTSRKGetTableau.htmlTSRKGetType.htmlTSRKInitializePackage.htmlTSRKRegister.htmlTSRKRegisterAll.htmlTSRKRegisterDestroy.htmlTSRKSetMultirate.htmlTSRKSetType.htmlTSRKType.htmlTSROSW.htmlTSROSW2M.htmlTSROSW2P.htmlTSROSW4L.htmlTSROSWASSP3P3S1C.htmlTSROSWGRK4T.htmlTSROSWLASSP3P4S2C.htmlTSROSWLLSSP3P4S2C.htmlTSROSWRA34PW2.htmlTSROSWRA3PW.htmlTSROSWRODAS3.htmlTSROSWSANDU3.htmlTSROSWSHAMP4.htmlTSROSWTHETA1.htmlTSROSWTHETA2.htmlTSROSWVELDD4.htmlTSRegister.htmlTSRegisterAll.htmlTSReset.htmlTSResetTrajectory.htmlTSRestartStep.htmlTSRollBack.htmlTSRosWFinalizePackage.htmlTSRosWGetType.htmlTSRosWInitializePackage.htmlTSRosWRegister.htmlTSRosWRegisterAll.htmlTSRosWRegisterDestroy.htmlTSRosWRegisterRos4.htmlTSRosWSetRecomputeJacobian.htmlTSRosWSetType.htmlTSRosWType.htmlTSSSP.htmlTSSSPFinalizePackage.htmlTSSSPGetNumStages.htmlTSSSPGetType.htmlTSSSPInitializePackage.htmlTSSSPRKS104.htmlTSSSPRKS2.htmlTSSSPRKS3.htmlTSSSPSetNumStages.htmlTSSSPSetType.htmlTSSSPType.htmlTSSUNDIALS.htmlTSSetApplicationContext.htmlTSSetCFLTimeLocal.htmlTSSetComputeExactError.htmlTSSetComputeInitialCondition.htmlTSSetConvergedReason.htmlTSSetDM.htmlTSSetDuration.htmlTSSetEquationType.htmlTSSetErrorIfStepFails.htmlTSSetEventHandler.htmlTSSetEventTolerances.htmlTSSetExactFinalTime.htmlTSSetForcingFunction.htmlTSSetFromOptions.htmlTSSetFunctionDomainError.htmlTSSetI2Function.htmlTSSetI2Jacobian.htmlTSSetIFunction.htmlTSSetIJacobian.htmlTSSetInitialTimeStep.htmlTSSetMaxSNESFailures.htmlTSSetMaxStepRejections.htmlTSSetMaxSteps.htmlTSSetMaxTime.htmlTSSetOptionsPrefix.htmlTSSetPostEvaluate.htmlTSSetPostEventIntervalStep.htmlTSSetPostStage.htmlTSSetPostStep.htmlTSSetPreStage.htmlTSSetPreStep.htmlTSSetProblemType.htmlTSSetRHSFunction.htmlTSSetRHSJacobian.htmlTSSetSNES.htmlTSSetSaveTrajectory.htmlTSSetSolution.htmlTSSetSolutionFunction.htmlTSSetStepNumber.htmlTSSetTime.htmlTSSetTimeError.htmlTSSetTimeStep.htmlTSSetTolerances.htmlTSSetTransientVariable.htmlTSSetType.htmlTSSetUp.htmlTSSetUseSplitRHSFunction.htmlTSSolve.htmlTSStep.htmlTSSundialsGetIterations.htmlTSSundialsGetPC.htmlTSSundialsMonitorInternalSteps.htmlTSSundialsSetGramSchmidtType.htmlTSSundialsSetLinearTolerance.htmlTSSundialsSetMaxTimeStep.htmlTSSundialsSetMaxl.htmlTSSundialsSetMaxord.htmlTSSundialsSetMinTimeStep.htmlTSSundialsSetTolerance.htmlTSSundialsSetType.htmlTSTHETA.htmlTSTRAJECTORYBASIC.htmlTSTRAJECTORYMEMORY.htmlTSTRAJECTORYSINGLEFILE.htmlTSTRAJECTORYVISUALIZATION.htmlTSThetaGetEndpoint.htmlTSThetaGetTheta.htmlTSThetaSetEndpoint.htmlTSThetaSetTheta.htmlTSTrajectory.htmlTSTrajectoryCreate.htmlTSTrajectoryDestroy.htmlTSTrajectoryGet.htmlTSTrajectoryGetNumSteps.htmlTSTrajectoryGetSolutionOnly.htmlTSTrajectoryGetType.htmlTSTrajectoryGetUpdatedHistoryVecs.htmlTSTrajectoryGetVecs.htmlTSTrajectoryRegister.htmlTSTrajectoryRegisterAll.htmlTSTrajectoryReset.htmlTSTrajectoryRestoreUpdatedHistoryVecs.htmlTSTrajectorySet.htmlTSTrajectorySetDirname.htmlTSTrajectorySetFiletemplate.htmlTSTrajectorySetFromOptions.htmlTSTrajectorySetKeepFiles.htmlTSTrajectorySetMonitor.htmlTSTrajectorySetSolutionOnly.htmlTSTrajectorySetTransform.htmlTSTrajectorySetType.htmlTSTrajectorySetUp.htmlTSTrajectorySetUseHistory.htmlTSTrajectorySetVariableNames.htmlTSTrajectoryView.htmlTSTrajectoryViewFromOptions.htmlTSType.htmlTSVISetVariableBounds.htmlTSView.htmlTSViewFromOptions.htmlTS_CONVERGED_EVENT.htmlTS_CONVERGED_ITERATING.htmlTS_CONVERGED_ITS.htmlTS_CONVERGED_PSEUDO_FATOL.htmlTS_CONVERGED_PSEUDO_FRTOL.htmlTS_CONVERGED_TIME.htmlTS_CONVERGED_USER.htmlTS_DIVERGED_NONLINEAR_SOLVE.htmlTS_DIVERGED_STEP_REJECTED.htmlindex.htmlTaoADMM_UPDATE_ADAPTIVE_RELAXED.htmlMatCreateADA.htmlMatCreateSubMatrixFree.htmlMatDFischer.htmlMatDSFischer.htmlTAOADMM.htmlTAOASFLS.htmlTAOASILS.htmlTAOBLMVM.htmlTAOBMRM.htmlTAOBNCG.htmlTAOBNK.htmlTAOBNLS.htmlTAOBNTL.htmlTAOBNTR.htmlTAOBQNKLS.htmlTAOBQNKTL.htmlTAOBQNKTR.htmlTAOBQNLS.htmlTAOBQPIP.htmlTAOBRGN.htmlTAOCG.htmlTAOGPCG.htmlTAOIPM.htmlTAOLCL.htmlTAOLMVM.htmlTAONLS.htmlTAONM.htmlTAONTL.htmlTAONTR.htmlTAOOWLQN.htmlTAOPDIPM.htmlTAOPOUNDERS.htmlTAOSHELL.htmlTAOSSFLS.htmlTAOSSILS.htmlTAOTRON.htmlTAO_ADMM_REGULARIZER_SOFT_THRESH.htmlTAO_ADMM_REGULARIZER_USER.htmlTAO_ADMM_UPDATE_ADAPTIVE.htmlTAO_ADMM_UPDATE_BASIC.htmlTao.htmlTaoADMMGetDualVector.htmlTaoADMMGetMisfitSubsolver.htmlTaoADMMGetRegularizationSubsolver.htmlTaoADMMGetRegularizerType.htmlTaoADMMGetSpectralPenalty.htmlTaoADMMGetUpdateType.htmlTaoADMMRegularizerType.htmlTaoADMMSetConstraintVectorRHS.htmlTaoADMMSetMinimumSpectralPenalty.htmlTaoADMMSetMisfitConstraintJacobian.htmlTaoADMMSetMisfitHessianChangeStatus.htmlTaoADMMSetMisfitHessianRoutine.htmlTaoADMMSetMisfitObjectiveAndGradientRoutine.htmlTaoADMMSetRegHessianChangeStatus.htmlTaoADMMSetRegularizerCoefficient.htmlTaoADMMSetRegularizerConstraintJacobian.htmlTaoADMMSetRegularizerHessianRoutine.htmlTaoADMMSetRegularizerObjectiveAndGradientRoutine.htmlTaoADMMSetRegularizerType.htmlTaoADMMSetSpectralPenalty.htmlTaoADMMSetUpdateType.htmlTaoADMMUpdateType.htmlTaoAddLineSearchCounts.htmlTaoAppendOptionsPrefix.htmlTaoBRGNGetSubsolver.htmlTaoBRGNSetDictionaryMatrix.htmlTaoBRGNSetL1SmoothEpsilon.htmlTaoBRGNSetRegularizerHessianRoutine.htmlTaoBRGNSetRegularizerObjectiveAndGradientRoutine.htmlTaoBRGNSetRegularizerWeight.htmlTaoBoundSolution.htmlTaoBoundStep.htmlTaoCancelMonitors.htmlTaoComputeConstraints.htmlTaoComputeDualVariables.htmlTaoComputeEqualityConstraints.htmlTaoComputeGradient.htmlTaoComputeHessian.htmlTaoComputeInequalityConstraints.htmlTaoComputeJacobian.htmlTaoComputeJacobianDesign.htmlTaoComputeJacobianEquality.htmlTaoComputeJacobianInequality.htmlTaoComputeJacobianState.htmlTaoComputeObjective.htmlTaoComputeObjectiveAndGradient.htmlTaoComputeResidual.htmlTaoComputeResidualJacobian.htmlTaoComputeVariableBounds.htmlTaoConvergedReason.htmlTaoCreate.htmlTaoDefaultCMonitor.htmlTaoDefaultComputeGradient.htmlTaoDefaultComputeHessian.htmlTaoDefaultComputeHessianColor.htmlTaoDefaultConvergenceTest.htmlTaoDefaultGMonitor.htmlTaoDefaultSMonitor.htmlTaoDestroy.htmlTaoDrawGradientMonitor.htmlTaoDrawSolutionMonitor.htmlTaoDrawStepMonitor.htmlTaoEstimateActiveBounds.htmlTaoFinalizePackage.htmlTaoGetADMMParentTao.htmlTaoGetApplicationContext.htmlTaoGetConstraintTolerances.htmlTaoGetConvergedReason.htmlTaoGetConvergenceHistory.htmlTaoGetCurrentFunctionEvaluations.htmlTaoGetCurrentTrustRegionRadius.htmlTaoGetDualVariables.htmlTaoGetFunctionLowerBound.htmlTaoGetGradientNorm.htmlTaoGetGradientVector.htmlTaoGetInitialTrustRegionRadius.htmlTaoGetIterationNumber.htmlTaoGetKSP.htmlTaoGetLineSearch.htmlTaoGetLinearSolveIterations.htmlTaoGetMaximumFunctionEvaluations.htmlTaoGetMaximumIterations.htmlTaoGetObjective.htmlTaoGetOptionsPrefix.htmlTaoGetResidualNorm.htmlTaoGetSolutionStatus.htmlTaoGetSolutionVector.htmlTaoGetTolerances.htmlTaoGetTotalIterationNumber.htmlTaoGetType.htmlTaoGradientMonitor.htmlTaoInitializePackage.htmlTaoIsGradientDefined.htmlTaoIsObjectiveAndGradientDefined.htmlTaoIsObjectiveDefined.htmlTaoLMVMGetH0.htmlTaoLMVMGetH0KSP.htmlTaoLMVMRecycle.htmlTaoLMVMSetH0.htmlTaoMatGetSubMat.htmlTaoMonitor.htmlTaoMonitorDefault.htmlTaoMonitorDrawCtxCreate.htmlTaoMonitorDrawCtxDestroy.htmlTaoRegister.htmlTaoRegisterAll.htmlTaoRegisterDestroy.htmlTaoResetStatistics.htmlTaoResidualMonitor.htmlTaoSetApplicationContext.htmlTaoSetConstraintTolerances.htmlTaoSetConstraintsRoutine.htmlTaoSetConvergedReason.htmlTaoSetConvergenceHistory.htmlTaoSetConvergenceTest.htmlTaoSetEqualityConstraintsRoutine.htmlTaoSetFromOptions.htmlTaoSetFunctionLowerBound.htmlTaoSetGradientNorm.htmlTaoSetGradientRoutine.htmlTaoSetHessianRoutine.htmlTaoSetInequalityBounds.htmlTaoSetInequalityConstraintsRoutine.htmlTaoSetInitialTrustRegionRadius.htmlTaoSetInitialVector.htmlTaoSetIterationNumber.htmlTaoSetJacobianDesignRoutine.htmlTaoSetJacobianEqualityRoutine.htmlTaoSetJacobianInequalityRoutine.htmlTaoSetJacobianResidualRoutine.htmlTaoSetJacobianRoutine.htmlTaoSetJacobianStateRoutine.htmlTaoSetMaximumFunctionEvaluations.htmlTaoSetMaximumIterations.htmlTaoSetMonitor.htmlTaoSetObjectiveAndGradientRoutine.htmlTaoSetObjectiveRoutine.htmlTaoSetOptionsPrefix.htmlTaoSetResidualRoutine.htmlTaoSetResidualWeights.htmlTaoSetStateDesignIS.htmlTaoSetTolerances.htmlTaoSetTotalIterationNumber.htmlTaoSetType.htmlTaoSetUp.htmlTaoSetUpdate.htmlTaoSetVariableBounds.htmlTaoSetVariableBoundsRoutine.htmlTaoShellGetContext.htmlTaoShellSetContext.htmlTaoShellSetSolve.htmlTaoSoftThreshold.htmlTaoSolutionMonitor.htmlTaoSolve.htmlTaoStepDirectionMonitor.htmlTaoSubsetType.htmlTaoType.htmlTaoVecGetSubVec.htmlTaoView.htmlTaoViewFromOptions.htmlVecFischer.htmlVecSFischer.htmlindex.htmlTaoLineSearchTAOLINESEARCHARMIJO.htmlTAOLINESEARCHGPCG.htmlTAOLINESEARCHMT.htmlTAOLINESEARCHOWARMIJO.htmlTAOLINESEARCHUNIT.htmlTaoLineSearchAppendOptionsPrefix.htmlTaoLineSearchApply.htmlTaoLineSearchComputeGradient.htmlTaoLineSearchComputeObjective.htmlTaoLineSearchComputeObjectiveAndGTS.htmlTaoLineSearchComputeObjectiveAndGradient.htmlTaoLineSearchCreate.htmlTaoLineSearchDestroy.htmlTaoLineSearchFinalizePackage.htmlTaoLineSearchGetFullStepObjective.htmlTaoLineSearchGetNumberFunctionEvaluations.htmlTaoLineSearchGetOptionsPrefix.htmlTaoLineSearchGetSolution.htmlTaoLineSearchGetStartingVector.htmlTaoLineSearchGetStepDirection.htmlTaoLineSearchGetStepLength.htmlTaoLineSearchGetType.htmlTaoLineSearchInitializePackage.htmlTaoLineSearchIsUsingTaoRoutines.htmlTaoLineSearchMonitor.htmlTaoLineSearchRegister.htmlTaoLineSearchReset.htmlTaoLineSearchSetFromOptions.htmlTaoLineSearchSetGradientRoutine.htmlTaoLineSearchSetInitialStepLength.htmlTaoLineSearchSetObjectiveAndGTSRoutine.htmlTaoLineSearchSetObjectiveAndGradientRoutine.htmlTaoLineSearchSetObjectiveRoutine.htmlTaoLineSearchSetOptionsPrefix.htmlTaoLineSearchSetType.htmlTaoLineSearchSetUp.htmlTaoLineSearchSetVariableBounds.htmlTaoLineSearchUseTaoRoutines.htmlTaoLineSearchView.htmlTaoLineSearchViewFromOptions.htmlindex.htmlVecISComplementVec.htmlISFinalizePackage.htmlISInitializePackage.htmlNORM_1.htmlNORM_1_AND_2.htmlNORM_2.htmlNORM_FROBENIUS.htmlNORM_INFINITY.htmlNORM_MAX.htmlNormType.htmlPetscCommSplitReductionBegin.htmlPetscOffloadMask.htmlPetscSectionVecNorm.htmlPetscSectionVecView.htmlSCATTER_FORWARD.htmlSCATTER_FORWARD_LOCAL.htmlSCATTER_REVERSE.htmlSCATTER_REVERSE_LOCAL.htmlScatterMode.htmlVECCUDA.htmlVECMPI.htmlVECMPICUDA.htmlVECMPIVIENNACL.htmlVECNEST.htmlVECNODE.htmlVECSEQ.htmlVECSEQCUDA.htmlVECSEQVIENNACL.htmlVECSTANDARD.htmlVECVIENNACL.htmlVec.htmlVecAXPBY.htmlVecAXPBYPCZ.htmlVecAXPY.htmlVecAYPX.htmlVecAbs.htmlVecAppendOptionsPrefix.htmlVecAssemblyBegin.htmlVecAssemblyEnd.htmlVecBindToCPU.htmlVecBoundGradientProjection.htmlVecCUDAGetArray.htmlVecCUDAGetArrayRead.htmlVecCUDAGetArrayWrite.htmlVecCUDAPlaceArray.htmlVecCUDAReplaceArray.htmlVecCUDAResetArray.htmlVecCUDARestoreArray.htmlVecCUDARestoreArrayRead.htmlVecCUDARestoreArrayWrite.htmlVecChop.htmlVecConjugate.htmlVecCopy.htmlVecCreate.htmlVecCreateGhost.htmlVecCreateGhostBlock.htmlVecCreateGhostBlockWithArray.htmlVecCreateGhostWithArray.htmlVecCreateMPI.htmlVecCreateMPICUDAWithArray.htmlVecCreateMPICUDAWithArrays.htmlVecCreateMPIViennaCLWithArray.htmlVecCreateMPIViennaCLWithArrays.htmlVecCreateMPIWithArray.htmlVecCreateNest.htmlVecCreateNode.htmlVecCreateSeq.htmlVecCreateSeqCUDA.htmlVecCreateSeqCUDAWithArray.htmlVecCreateSeqCUDAWithArrays.htmlVecCreateSeqViennaCL.htmlVecCreateSeqViennaCLWithArray.htmlVecCreateSeqViennaCLWithArrays.htmlVecCreateSeqWithArray.htmlVecCreateShared.htmlVecDestroy.htmlVecDestroyVecs.htmlVecDestroyVecsF90.htmlVecDot.htmlVecDotBegin.htmlVecDotEnd.htmlVecDotNorm2.htmlVecDotRealPart.htmlVecDuplicate.htmlVecDuplicateVecs.htmlVecDuplicateVecsF90.htmlVecEqual.htmlVecExp.htmlVecFinalizePackage.htmlVecGetArray.htmlVecGetArray1d.htmlVecGetArray1dRead.htmlVecGetArray1dWrite.htmlVecGetArray2d.htmlVecGetArray2dRead.htmlVecGetArray2dWrite.htmlVecGetArray3d.htmlVecGetArray3dRead.htmlVecGetArray3dWrite.htmlVecGetArray4d.htmlVecGetArray4dRead.htmlVecGetArray4dWrite.htmlVecGetArrayF90.htmlVecGetArrayInPlace_Internal.htmlVecGetArrayPair.htmlVecGetArrayRead.htmlVecGetArrayReadF90.htmlVecGetArrayReadInPlace.htmlVecGetArrayWrite.htmlVecGetArrays.htmlVecGetBlockSize.htmlVecGetLayout.htmlVecGetLocalSize.htmlVecGetLocalToGlobalMapping.htmlVecGetLocalVector.htmlVecGetLocalVectorRead.htmlVecGetOffloadMask.htmlVecGetOptionsPrefix.htmlVecGetOwnershipRange.htmlVecGetOwnershipRanges.htmlVecGetPinnedMemoryMin.htmlVecGetSize.htmlVecGetSubVector.htmlVecGetType.htmlVecGetValues.htmlVecGetValuesSection.htmlVecGhostGetLocalForm.htmlVecGhostIsLocalForm.htmlVecGhostRestoreLocalForm.htmlVecGhostUpdateBegin.htmlVecGhostUpdateEnd.htmlVecISAXPY.htmlVecISCopy.htmlVecISSet.htmlVecImaginaryPart.htmlVecInitializePackage.htmlVecLoad.htmlVecLockGet.htmlVecLockPop.htmlVecLockPush.htmlVecLockReadPop.htmlVecLockReadPush.htmlVecLockWriteSet_Private.htmlVecLog.htmlVecMAXPY.htmlVecMDot.htmlVecMDotBegin.htmlVecMDotEnd.htmlVecMPISetGhost.htmlVecMTDot.htmlVecMTDotBegin.htmlVecMTDotEnd.htmlVecMax.htmlVecMaxPointwiseDivide.htmlVecMedian.htmlVecMin.htmlVecNestGetSize.htmlVecNestGetSubVec.htmlVecNestGetSubVecs.htmlVecNestSetSubVec.htmlVecNestSetSubVecs.htmlVecNorm.htmlVecNormAvailable.htmlVecNormBegin.htmlVecNormEnd.htmlVecNormalize.htmlVecPermute.htmlVecPlaceArray.htmlVecPointwiseDivide.htmlVecPointwiseMax.htmlVecPointwiseMaxAbs.htmlVecPointwiseMin.htmlVecPointwiseMult.htmlVecPow.htmlVecRealPart.htmlVecReciprocal.htmlVecRegister.htmlVecRegisterAll.htmlVecReplaceArray.htmlVecResetArray.htmlVecRestoreArray.htmlVecRestoreArray1d.htmlVecRestoreArray1dRead.htmlVecRestoreArray1dWrite.htmlVecRestoreArray2d.htmlVecRestoreArray2dRead.htmlVecRestoreArray2dWrite.htmlVecRestoreArray3d.htmlVecRestoreArray3dRead.htmlVecRestoreArray3dWrite.htmlVecRestoreArray4d.htmlVecRestoreArray4dRead.htmlVecRestoreArray4dWrite.htmlVecRestoreArrayF90.htmlVecRestoreArrayInPlace.htmlVecRestoreArrayPair.htmlVecRestoreArrayRead.htmlVecRestoreArrayReadF90.htmlVecRestoreArrayReadInPlace.htmlVecRestoreArrayWrite.htmlVecRestoreArrays.htmlVecRestoreLocalVector.htmlVecRestoreLocalVectorRead.htmlVecRestoreSubVector.htmlVecScale.htmlVecScatter.htmlVecScatterBegin.htmlVecScatterCopy.htmlVecScatterCreate.htmlVecScatterCreateToAll.htmlVecScatterCreateToZero.htmlVecScatterDestroy.htmlVecScatterEnd.htmlVecScatterFinalizeForGPU.htmlVecScatterFinalizePackage.htmlVecScatterGetMerged.htmlVecScatterGetType.htmlVecScatterInitializeForGPU.htmlVecScatterInitializePackage.htmlVecScatterRegister.htmlVecScatterRegisterAll.htmlVecScatterRemap.htmlVecScatterSetFromOptions.htmlVecScatterSetType.htmlVecScatterSetUp.htmlVecScatterType.htmlVecScatterView.htmlVecScatterViewFromOptions.htmlVecSet.htmlVecSetBlockSize.htmlVecSetFromOptions.htmlVecSetLayout.htmlVecSetLocalToGlobalMapping.htmlVecSetOperation.htmlVecSetOption.htmlVecSetOptionsPrefix.htmlVecSetPinnedMemoryMin.htmlVecSetRandom.htmlVecSetSizes.htmlVecSetType.htmlVecSetUp.htmlVecSetValue.htmlVecSetValueLocal.htmlVecSetValues.htmlVecSetValuesBlocked.htmlVecSetValuesBlockedLocal.htmlVecSetValuesLocal.htmlVecSetValuesSection.htmlVecShift.htmlVecSqrtAbs.htmlVecStashGetInfo.htmlVecStashSetInitialSize.htmlVecStashView.htmlVecStepBoundInfo.htmlVecStepMax.htmlVecStepMaxBounded.htmlVecStrideGather.htmlVecStrideGatherAll.htmlVecStrideMax.htmlVecStrideMaxAll.htmlVecStrideMin.htmlVecStrideMinAll.htmlVecStrideNorm.htmlVecStrideNormAll.htmlVecStrideScale.htmlVecStrideScaleAll.htmlVecStrideScatter.htmlVecStrideScatterAll.htmlVecStrideSet.htmlVecStrideSubSetGather.htmlVecStrideSubSetScatter.htmlVecSum.htmlVecSwap.htmlVecTDot.htmlVecTDotBegin.htmlVecTDotEnd.htmlVecTagger.htmlVecTaggerAbsoluteGetBox.htmlVecTaggerAbsoluteSetBox.htmlVecTaggerAndGetSubs.htmlVecTaggerAndSetSubs.htmlVecTaggerBox.htmlVecTaggerCDFGetBox.htmlVecTaggerCDFGetMethod.htmlVecTaggerCDFIterativeGetTolerances.htmlVecTaggerCDFIterativeSetTolerances.htmlVecTaggerCDFMethod.htmlVecTaggerCDFSetBox.htmlVecTaggerCDFSetMethod.htmlVecTaggerComputeBoxes.htmlVecTaggerComputeIS.htmlVecTaggerCreate.htmlVecTaggerDestroy.htmlVecTaggerFinalizePackage.htmlVecTaggerGetBlockSize.htmlVecTaggerGetInvert.htmlVecTaggerGetType.htmlVecTaggerInitializePackage.htmlVecTaggerOrGetSubs.htmlVecTaggerOrSetSubs.htmlVecTaggerRegister.htmlVecTaggerRegisterAll.htmlVecTaggerRelativeGetBox.htmlVecTaggerRelativeSetBox.htmlVecTaggerSetBlockSize.htmlVecTaggerSetFromOptions.htmlVecTaggerSetInvert.htmlVecTaggerSetType.htmlVecTaggerSetUp.htmlVecTaggerType.htmlVecTaggerView.htmlVecType.htmlVecUniqueEntries.htmlVecViennaCLGetCLContext.htmlVecViennaCLGetCLMem.htmlVecViennaCLGetCLMemRead.htmlVecViennaCLGetCLMemWrite.htmlVecViennaCLGetCLQueue.htmlVecViennaCLPlaceArray.htmlVecViennaCLResetArray.htmlVecViennaCLRestoreCLMem.htmlVecViennaCLRestoreCLMemWrite.htmlVecView.htmlVecViewFromOptions.htmlVecWAXPY.htmlVecWhichBetween.htmlVecWhichBetweenOrEqual.htmlVecWhichEqual.htmlVecWhichGreaterThan.htmlVecWhichInactive.htmlVecWhichLessThan.htmlVecZeroEntries.htmlVecs.htmlindex.htmlViewerPETSCVIEWERADIOS.htmlPETSCVIEWERADIOS2.htmlPETSCVIEWERASCII.htmlPETSCVIEWERBINARY.htmlPETSCVIEWERDRAW.htmlPETSCVIEWERHDF5.htmlPETSCVIEWERMATLAB.htmlPETSCVIEWERSOCKET.htmlPETSCVIEWERSTRING.htmlPETSCVIEWERVTK.htmlPETSC_VIEWER_BINARY_.htmlPETSC_VIEWER_BINARY_SELF.htmlPETSC_VIEWER_BINARY_WORLD.htmlPETSC_VIEWER_DRAW_.htmlPETSC_VIEWER_DRAW_SELF.htmlPETSC_VIEWER_DRAW_WORLD.htmlPETSC_VIEWER_HDF5_.htmlPETSC_VIEWER_MATLAB_.htmlPETSC_VIEWER_MATLAB_SELF.htmlPETSC_VIEWER_MATLAB_WORLD.htmlPETSC_VIEWER_SAWS_.htmlPETSC_VIEWER_SOCKET_.htmlPETSC_VIEWER_SOCKET_SELF.htmlPETSC_VIEWER_SOCKET_WORLD.htmlPETSC_VIEWER_STDERR_.htmlPETSC_VIEWER_STDERR_SELF.htmlPETSC_VIEWER_STDERR_WORLD.htmlPETSC_VIEWER_STDOUT_.htmlPETSC_VIEWER_STDOUT_SELF.htmlPETSC_VIEWER_STDOUT_WORLD.htmlPetscADIOSDataTypeToPetscDataType.htmlPetscDataTypeToADIOSDataType.htmlPetscDataTypeToHDF5DataType.htmlPetscHDF5DataTypeToPetscDataType.htmlPetscObjectViewSAWs.htmlPetscOptionsGetViewer.htmlPetscOptionsGetViewerOff.htmlPetscOptionsHelpPrintedCheck.htmlPetscOptionsHelpPrintedCreate.htmlPetscOptionsPopGetViewerOff.htmlPetscOptionsPushGetViewerOff.htmlPetscSocketEstablish.htmlPetscSocketListen.htmlPetscSocketOpen.htmlPetscSysFinalizePackage.htmlPetscSysInitializePackage.htmlPetscViewer.htmlPetscViewerADIOS2Open.htmlPetscViewerADIOSOpen.htmlPetscViewerASCIIAddTab.htmlPetscViewerASCIIGetPointer.htmlPetscViewerASCIIGetStderr.htmlPetscViewerASCIIGetStdout.htmlPetscViewerASCIIGetTab.htmlPetscViewerASCIIOpen.htmlPetscViewerASCIIOpenWithFILE.htmlPetscViewerASCIIPopSynchronized.htmlPetscViewerASCIIPopTab.htmlPetscViewerASCIIPrintf.htmlPetscViewerASCIIPushSynchronized.htmlPetscViewerASCIIPushTab.htmlPetscViewerASCIIRead.htmlPetscViewerASCIISetTab.htmlPetscViewerASCIISubtractTab.htmlPetscViewerASCIISynchronizedPrintf.htmlPetscViewerASCIIUseTabs.htmlPetscViewerAndFormatCreate.htmlPetscViewerAndFormatDestroy.htmlPetscViewerAppendOptionsPrefix.htmlPetscViewerBinaryAddMPIIOOffset.htmlPetscViewerBinaryGetDescriptor.htmlPetscViewerBinaryGetFlowControl.htmlPetscViewerBinaryGetInfoPointer.htmlPetscViewerBinaryGetMPIIODescriptor.htmlPetscViewerBinaryGetMPIIOOffset.htmlPetscViewerBinaryGetSkipHeader.htmlPetscViewerBinaryGetSkipInfo.htmlPetscViewerBinaryGetSkipOptions.htmlPetscViewerBinaryGetUseMPIIO.htmlPetscViewerBinaryOpen.htmlPetscViewerBinaryRead.htmlPetscViewerBinaryReadAll.htmlPetscViewerBinaryReadStringArray.htmlPetscViewerBinarySetFlowControl.htmlPetscViewerBinarySetSkipHeader.htmlPetscViewerBinarySetSkipInfo.htmlPetscViewerBinarySetSkipOptions.htmlPetscViewerBinarySetUseMPIIO.htmlPetscViewerBinarySkipInfo.htmlPetscViewerBinaryWrite.htmlPetscViewerBinaryWriteAll.htmlPetscViewerBinaryWriteStringArray.htmlPetscViewerCheckReadable.htmlPetscViewerCheckWritable.htmlPetscViewerCreate.htmlPetscViewerDestroy.htmlPetscViewerDrawBaseAdd.htmlPetscViewerDrawBaseSet.htmlPetscViewerDrawClear.htmlPetscViewerDrawGetBounds.htmlPetscViewerDrawGetDraw.htmlPetscViewerDrawGetDrawAxis.htmlPetscViewerDrawGetDrawLG.htmlPetscViewerDrawGetHold.htmlPetscViewerDrawGetPause.htmlPetscViewerDrawOpen.htmlPetscViewerDrawSetBounds.htmlPetscViewerDrawSetHold.htmlPetscViewerDrawSetPause.htmlPetscViewerFileGetMode.htmlPetscViewerFileGetName.htmlPetscViewerFileSetMode.htmlPetscViewerFileSetName.htmlPetscViewerFinalizePackage.htmlPetscViewerFlush.htmlPetscViewerFormat.htmlPetscViewerGLVisOpen.htmlPetscViewerGLVisSetFields.htmlPetscViewerGLVisSetPrecision.htmlPetscViewerGLVisSetSnapId.htmlPetscViewerGLVisType.htmlPetscViewerGetOptionsPrefix.htmlPetscViewerGetSubViewer.htmlPetscViewerGetType.htmlPetscViewerHDF5GetBaseDimension2.htmlPetscViewerHDF5GetCollective.htmlPetscViewerHDF5GetFileId.htmlPetscViewerHDF5GetGroup.htmlPetscViewerHDF5GetSPOutput.htmlPetscViewerHDF5GetTimestep.htmlPetscViewerHDF5HasAttribute.htmlPetscViewerHDF5HasGroup.htmlPetscViewerHDF5HasObject.htmlPetscViewerHDF5HasObjectAttribute.htmlPetscViewerHDF5IncrementTimestep.htmlPetscViewerHDF5Open.htmlPetscViewerHDF5OpenGroup.htmlPetscViewerHDF5PopGroup.htmlPetscViewerHDF5PushGroup.htmlPetscViewerHDF5ReadAttribute.htmlPetscViewerHDF5ReadObjectAttribute.htmlPetscViewerHDF5SetBaseDimension2.htmlPetscViewerHDF5SetCollective.htmlPetscViewerHDF5SetSPOutput.htmlPetscViewerHDF5SetTimestep.htmlPetscViewerHDF5WriteAttribute.htmlPetscViewerHDF5WriteObjectAttribute.htmlPetscViewerInitializePackage.htmlPetscViewerMathematicaClearName.htmlPetscViewerMathematicaFinalizePackage.htmlPetscViewerMathematicaGetLink.htmlPetscViewerMathematicaGetName.htmlPetscViewerMathematicaGetVector.htmlPetscViewerMathematicaInitializePackage.htmlPetscViewerMathematicaOpen.htmlPetscViewerMathematicaPutVector.htmlPetscViewerMathematicaSetName.htmlPetscViewerMathematicaSkipPackets.htmlPetscViewerMatlabGetArray.htmlPetscViewerMatlabOpen.htmlPetscViewerMatlabPutArray.htmlPetscViewerPopFormat.htmlPetscViewerPushFormat.htmlPetscViewerRead.htmlPetscViewerReadable.htmlPetscViewerRegister.htmlPetscViewerRegisterAll.htmlPetscViewerRestoreSubViewer.htmlPetscViewerSAWsOpen.htmlPetscViewerSetFormat.htmlPetscViewerSetFromOptions.htmlPetscViewerSetOptionsPrefix.htmlPetscViewerSetType.htmlPetscViewerSetUp.htmlPetscViewerSocketOpen.htmlPetscViewerSocketSetConnection.htmlPetscViewerStringGetStringRead.htmlPetscViewerStringOpen.htmlPetscViewerStringSPrintf.htmlPetscViewerStringSetOwnString.htmlPetscViewerStringSetString.htmlPetscViewerType.htmlPetscViewerVTKAddField.htmlPetscViewerVTKFWrite.htmlPetscViewerVTKGetDM.htmlPetscViewerVTKOpen.htmlPetscViewerVTKWriteFunction.htmlPetscViewerVUFlushDeferred.htmlPetscViewerVUGetPointer.htmlPetscViewerVUGetVecSeen.htmlPetscViewerVUPrintDeferred.htmlPetscViewerVUSetMode.htmlPetscViewerVUSetVecSeen.htmlPetscViewerView.htmlPetscViewerViewFromOptions.htmlPetscViewerWritable.htmlPetscViewers.htmlPetscViewersCreate.htmlPetscViewersDestroy.htmlPetscViewersGetViewer.htmlindex.htmlconceptsadjoints.htmlao.htmlbags.htmlcomplex_numbers.htmldm.htmldmda.htmldmnetwork.htmlfortran90.htmlglobal_to_local_mappings.htmlhdf5.htmlhelmholtz_equation.htmlindex_sets.htmlintroduction_to_petsc.htmlis.htmlis_coloirng_types.htmlksp.htmlksp_solving_a_linear_system.htmllaplacian,_2d.htmllocal_to_global_mappings.htmllow_rank_correction.htmlmat,_schur_complement.htmlmat.htmlmathematical_functions.htmlmatkaij.htmlmatnest.htmlmatrices.htmlmulticomponent.htmlmultigrid.htmlnormal_equations.htmloptimization.htmlpartitioning.htmlpc.htmlperiodic_boundary_conditions.htmlpetsc.htmlpetsc_snes_solver.htmlpetsc_ts_solver.htmlpetsclog.htmlprintf.htmlprinting.htmlprocess.htmlprofiling.htmlsnes.htmlstride.htmltao.htmlts.htmlvecscatter.htmlvectors.htmlviewers.htmlhelp.htmlhtmlmapsingleindex.htmlnonlinearsolvertable.htmlsphinx_docsdoctreesdevelopersarticles.doctreebuildsystem.doctreecallbacks.doctreecommunication.doctreecontributing.doctreedesign.doctreedocumentation.doctreeindex.doctreeintegration.doctreekernel.doctreematrices.doctreeobjects.doctreestyle.doctreetesting.doctreeenvironment.pickleguidesguide_to_examples.doctreeguide_to_examples_by_physics.doctreephysicsguide_to_stokes.doctreeimagesdmplex_doublet_dag.pdfdmplex_doublet_mesh.pdflibrary_structure.pdflocalspaces.pdfindex.doctreemanualabout_this_manual.doctreeacknowledgements.doctreeadditional.doctreeadvanced.doctreedmplex.doctreefortran.doctreegetting_started.doctreehigh_level_mg.doctreeindex.doctreeintroduction.doctreeksp.doctreemat.doctreematlab.doctreeother.doctreeperformance.doctreeprofiling.doctreeprogramming.doctreesensitivity_analysis.doctreesnes.doctreetests.doctreets.doctreevec.doctreehtml.buildinfo_imagesdanumbering.pngdmplex_doublet_dag.svgdmplex_doublet_mesh.svgghost.pnggraphviz-3e78728ff827e5953109bf8709eb40dc639909bc.pnggraphviz-3e78728ff827e5953109bf8709eb40dc639909bc.png.mapgraphviz-4668b383c86bedfaca8d90971e1f3fcf63e1c226.pnggraphviz-4668b383c86bedfaca8d90971e1f3fcf63e1c226.png.maplibrary_structure.svglocalspaces.svgnuma.pngstream-results-intel.pngtest-artifacts.pngusg.png_sourcesdevelopersarticles.rst.txtbuildsystem.rst.txtcallbacks.rst.txtcommunication.rst.txtcontributing.rst.txtdesign.rst.txtdocumentation.rst.txtindex.rst.txtintegration.rst.txtkernel.rst.txtmatrices.rst.txtobjects.rst.txtstyle.rst.txttesting.rst.txtguidesguide_to_examples.rst.txtguide_to_examples_by_physics.rst.txtphysicsguide_to_stokes.rst.txtindex.rst.txtmanualabout_this_manual.rst.txtacknowledgements.rst.txtadditional.rst.txtadvanced.rst.txtdmplex.rst.txtfortran.rst.txtgetting_started.rst.txthigh_level_mg.rst.txtindex.rst.txtintroduction.rst.txtksp.rst.txtmat.rst.txtmatlab.rst.txtother.rst.txtperformance.rst.txtprofiling.rst.txtprogramming.rst.txtsensitivity_analysis.rst.txtsnes.rst.txttests.rst.txtts.rst.txtvec.rst.txt_staticPETSc-TAO_RGB.svgPETSc_RGB-logo.pngbasic.csscontents.pngdoctools.jsdocumentation_options.jsfile.pnggraphviz.cssjquery-3.4.1.jsjquery.jskatex-math.csskatex_autorenderer.jslanguage_data.jsminus.pngnavigation.pngplus.pngpygments.csssearchtools.jssphinxdoc.cssunderscore-1.3.1.jsunderscore.jsdevelopersarticles.htmlbuildsystem.htmlcallbacks.htmlcommunication.htmlcontributing.htmldesign.htmldocumentation.htmlindex.htmlintegration.htmlkernel.htmlmatrices.htmlobjects.htmlstyle.htmltesting.htmlgenindex.htmlguidesguide_to_examples.htmlguide_to_examples_by_physics.htmlphysicsguide_to_stokes.htmlindex.htmlmanualabout_this_manual.htmlacknowledgements.htmladditional.htmladvanced.htmldmplex.htmlfortran.htmlgetting_started.htmlhigh_level_mg.htmlindex.htmlintroduction.htmlksp.htmlmat.htmlmatlab.htmlother.htmlperformance.htmlprofiling.htmlprogramming.htmlsensitivity_analysis.htmlsnes.htmltests.htmlts.htmlvec.htmlobjects.invsearch.htmlsearchindex.jstao_manual.pdf/usr/share/doc/packages//usr/share/doc/packages/petsc-doc//usr/share/doc/packages/petsc-doc/changes//usr/share/doc/packages/petsc-doc/manualpages//usr/share/doc/packages/petsc-doc/manualpages/AO//usr/share/doc/packages/petsc-doc/manualpages/Characteristic//usr/share/doc/packages/petsc-doc/manualpages/DM//usr/share/doc/packages/petsc-doc/manualpages/DMDA//usr/share/doc/packages/petsc-doc/manualpages/DMFOREST//usr/share/doc/packages/petsc-doc/manualpages/DMLABEL//usr/share/doc/packages/petsc-doc/manualpages/DMMOAB//usr/share/doc/packages/petsc-doc/manualpages/DMNetwork//usr/share/doc/packages/petsc-doc/manualpages/DMPATCH//usr/share/doc/packages/petsc-doc/manualpages/DMPLEX//usr/share/doc/packages/petsc-doc/manualpages/DMPRODUCT//usr/share/doc/packages/petsc-doc/manualpages/DMSTAG//usr/share/doc/packages/petsc-doc/manualpages/DMSWARM//usr/share/doc/packages/petsc-doc/manualpages/DT//usr/share/doc/packages/petsc-doc/manualpages/DUALSPACE//usr/share/doc/packages/petsc-doc/manualpages/Draw//usr/share/doc/packages/petsc-doc/manualpages/FE//usr/share/doc/packages/petsc-doc/manualpages/FV//usr/share/doc/packages/petsc-doc/manualpages/IS//usr/share/doc/packages/petsc-doc/manualpages/KSP//usr/share/doc/packages/petsc-doc/manualpages/LANDAU//usr/share/doc/packages/petsc-doc/manualpages/Mat//usr/share/doc/packages/petsc-doc/manualpages/MatFD//usr/share/doc/packages/petsc-doc/manualpages/MatOrderings//usr/share/doc/packages/petsc-doc/manualpages/PC//usr/share/doc/packages/petsc-doc/manualpages/PF//usr/share/doc/packages/petsc-doc/manualpages/PetscSF//usr/share/doc/packages/petsc-doc/manualpages/PetscSection//usr/share/doc/packages/petsc-doc/manualpages/Profiling//usr/share/doc/packages/petsc-doc/manualpages/SNES//usr/share/doc/packages/petsc-doc/manualpages/SNESFAS//usr/share/doc/packages/petsc-doc/manualpages/SPACE//usr/share/doc/packages/petsc-doc/manualpages/Sensitivity//usr/share/doc/packages/petsc-doc/manualpages/Sys//usr/share/doc/packages/petsc-doc/manualpages/TS//usr/share/doc/packages/petsc-doc/manualpages/Tao//usr/share/doc/packages/petsc-doc/manualpages/TaoLineSearch//usr/share/doc/packages/petsc-doc/manualpages/Vec//usr/share/doc/packages/petsc-doc/manualpages/Viewer//usr/share/doc/packages/petsc-doc/manualpages/concepts//usr/share/doc/packages/petsc-doc/sphinx_docs//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees/developers//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees/guides//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees/guides/physics//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees/images//usr/share/doc/packages/petsc-doc/sphinx_docs/doctrees/manual//usr/share/doc/packages/petsc-doc/sphinx_docs/html//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_images//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_sources//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_sources/developers//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_sources/guides//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_sources/guides/physics//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_sources/manual//usr/share/doc/packages/petsc-doc/sphinx_docs/html/_static//usr/share/doc/packages/petsc-doc/sphinx_docs/html/developers//usr/share/doc/packages/petsc-doc/sphinx_docs/html/guides//usr/share/doc/packages/petsc-doc/sphinx_docs/html/guides/physics//usr/share/doc/packages/petsc-doc/sphinx_docs/html/manual/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:24691/SUSE_SLE-15-SP3_Update/347f36082e6b3a9c64af21737bc0ba23-petsc.SUSE_SLE-15-SP3_Update:docdrpmxz5noarch-suse-linux   directoryHTML document, ASCII textHTML document, UTF-8 Unicode textHTML document, ASCII text, with very long linesHTML document, UTF-8 Unicode text, with very long linesC source, ASCII text, with very long linesC source, ASCII textASCII textPNG image data, 408 x 225, 8-bit gray+alpha, non-interlacedXML 1.0 document textPNG image data, 306 x 162, 8-bit gray+alpha, non-interlacedPNG image data, 364 x 251, 8-bit/color RGBA, non-interlacedPNG image data, 350 x 251, 8-bit/color RGBA, non-interlacedSVG Scalable Vector Graphics imagePNG image data, 1671 x 219, 8-bit colormap, non-interlacedPNG image data, 1138 x 796, 8-bit/color RGBA, non-interlacedPNG image data, 2892 x 1911, 8-bit/color RGBA, non-interlacedPNG image data, 263 x 217, 8-bit gray+alpha, non-interlacedUTF-8 Unicode textASCII text, with very long linesLaTeX document, ASCII text, with very long linesUTF-8 Unicode text, with very long linesLaTeX document, UTF-8 Unicode textLaTeX document, UTF-8 Unicode text, with very long linesPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 40, 8-bit/color RGB, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedPNG image data, 1 x 60, 8-bit/color RGB, non-interlacedASCII text, with very long lines, with no line terminators$·'NJOQR6utf-8f9d8f6876d3cf5ac767021713f8e764f4d068331f59abfc41f32dc3a6232dd9c?P7zXZ !t/_x]"k%] rFKFP$eV/scQnDqшEȡ""˒a?pNiJ993ys6fJT|m(D-C3o76Cܛs.Cڔ*mj~X uĦ+"Zu@ oyĿÇyɂ퇤k'zk+ 1à=i/2BY˦IE"s zkp'^\|XCskVAE7%sϑ\93^bV%[1]$ &609,w9NB4mf kV C8ʫWe3W Y&_f0X"'/>ŒP/$pz`$u&Ԑ흕V_ x߬m.XU܅vsYYJn-)8&C8:)S!BFӳX 1Reo7bLxZy_EۅrltWmhImܟs<ˊIU 2t݇x >t.1mB\eY8bؕ8Mvг+80p4Hlb"<?m} cf5eȧv1IvD Znnu\9H)5tń%ٱytYcx.AW JJBVdE("蘉z\|c[35.ѶBHwICpW=fŭn_Y@¶ 6y0{niNL}!a>567>mmB uU(1 #Eߡ7+N?b$ k̝yJOqG|R#KtK1k֤ŀ.FX?"oObF%)Z\53;pDMN1H]PYqhnPo<'TYcS4[dOM2LD2f?^(xʷ?~yRq_3(a1NQ_EIk"@eA!hTpZ$SM8]Yy; '=)r^nV(~ := ϰ'f셂H4fɃO i7m_sv#C[ oyhq@bT +(` U`-{q '֩7e%Ӄ*AŰӱ=og'PvRZ<n,qؠ#cY.{R+m法e<>^|̍u8H8o6Y0ıo!C'U=\^$rMj3oK52ABMmذ,fm*K\3~O(OJpM/nC̼k1Br:eL)`r/2M'wtrLKԏEvp)-f d%=}3ff/›]E1Gyj0F[P`UD+zԎU)iRo,=gS:>L'B?L'MaWZɷ D}s30gl>=l<^]/f$6S ]b̔Sx3, oh ,a9mI_y;abӶq/Z!*k1bwy }nPuγxN'1(YaaA~Լa< teCvyĮGlঁ%!6wxq k fHe,}2Iv4ZErxT U쑠K稥0E8;fUEB*Xtw6uA4o)^qrnbاz2tGr_j1`>HM3^^) _Olx3V[,Bir_}L2u[:C':W'璠R1O?JNq ,Ƽ{ / f Ŏ%, 00Ӗ#]{5M^⠷3;[ӹcK,UlfYӑ~jtj+FnKu't(oiֺwpb\qC]S2+xP}X:ṎTf4^65K.$W)띏g9.c&!,ă2$+TD}4a+84\& /j2o;DRڭ2H_q_C÷@gfQC_{EX“xeSasH+֒/RG۵-j'0tGXݎf=AE gH3[{pu{}]ċ9X&Lg>ȉ4& 9s/7Tu6e7AIu)Nvt*Pk  UU+EzIr.WVC}9ۜ*#4a^|*l #*~^9/ 0.̦ҝ"ݬwc|aS%!cᮐ2v?z8[d$!C *VPPl RpO˼lVY|a|e#]Xx$uP8ۊJWOUCᴘ.*M@_{ ;(YVK\9\&P!n<5@Pt&z;z$!!G6^9cOt@Ƶy4\PaIL\iK@C Q~hr{kj{JG%U!Ͱ,ͱ+J&~qfvtf͎x}oa5usr9 Wյ>ZH=sr@k>"zX"#gsTk$tk;xtك6Ihg%PZUh%L;AR86>%ʌ yY Z_V+@ki:./ NG $LHZY1dxyf tNԹ`ab?*BjVSy娘ܿs=_m/D;}Yɀ77zThv'"`58BwյAH8kL-=jAs%eFU9< @qʰh@ tofrkǸ,9ަbr|Lf20QXjrAΣ[-&Q&axX>xCny/A$ȯ4%A4ž׵%JZ}_v}i^zM݃t}ѱ9C@&\bͰCߝhBXd<-6DZh;[X n:Iܗb.-gT30nu \k FS)73M5vv %́㻺de}Fd] <[Ve e+rKwEr5_9VRY̸ 4Nn4!0`8҄ȃ jyBY955{$>L[$^HOМ,OE$5gHK[ʾVڢjWQ>86)kJuƐ*ho=3 4e@dkhOFbOL#m{(>6b2>ipN07(J1%$H%E)*%{a"QQ̘N .Ez* Y Vt-Yزlcnp?U0sm8---62I~䰶,M]צO<pF sj{~HSpuΕfhsdi/'Z>SyeȧMk|>"d>3L Ƴ[@F|HͯG8ƘoƋ&V0݈w"ƻbL ѼەOԂ/bNn(PT=$*\MP1MOǿEsE)TW#> hRꤾlT 7D ud# lO>3/ȟllė|y&ib.\#Cm/ON6 CWW%O5le|] <,nYݘc-~pvzsy?hQGR♍ݜT|nu`6ڬz t[ך@0PXVHl4]{2IȷG!0+4%*s EF/, ՘3abl*@Kiv#Hl(]S6O犻vOV>K`B;:y=S >DXrDGn5ltOKj҅vˮ<}m8Xi꧃N>N4Ձ*>o XLrn WMܘ$ؐ/ǯ_w١yw` V-VO+7Gئ861$%WHK#l. %5|hl /<8^lHe#]\hO[O+J[uP )4i NzzBVlY'vI ΢'/Nti{]irr<(pBf3 } >@[ƓhBgRtRm䅿nϿϗSۂ, 9̊ywC׌KO}o|/PbU88|ڈ3귳mH,KtzjԃόMF# \B[4Cǘ JIIaCMx o* 6NmNL)QgfGF>$j$ajɾ.GneE$+cU!j!r3?9Ƕ24Y `TD89E<v\2Qj+U +Lζ WΣ{o? S$ɪ.f0BEJ@U(DG`m-a 8BH~9-2F蜍||﬏.FhO> <`b~g1"螵x@X0ۼm'43>qi\m;բ\ ѲO&Z_X:CݹQdsnA"(aK:Mo_Rh ZgGSUM%{T&}̈́/&!N6Qr6l-[Zc~߿5[9`n>Qǩ͵iQg]5jS ֚;иnXjk(~DBOQx~VoN2|~|-']lLqe~G^W_"~Rg*ƥY[Z6(P61ZYC;(0l t QDA؏koIxټ[Ѷ0׶XedMi@ߩ's<4>%Q)bϧF j'پHm(+܏9cu}iZش<]W*g?c1eh:~ >3_33e 1Lt&/Si/}3w׋)ZLijp9($s/O7QA SwX^H(,I#_?g0!=d#W'ִD˛[|]ruǹ ߛ rL¤6ۙдQhI*=ay hb:VQ!5>۟ DlQI|wE7s sʎRi}ྨHՋDpTEďC>U\ڔ`"FBw4):C ИS3@vćmQߊ$dO*7Fʜ A;@58'w[ S4xd>!!"Mʍ>̽;!onY{S=Sݜ J&s-]gbF)YuJtkDǢ q^V nȣ#`!sK_F^OV:s+(bJsy"TYZl2 ~0RRI%U !&6 Q5H $>̑ ^P˃4%SJp0˾d8ǬRN\4O5u]^h]O,"TIicb#VɖKh @W.AWĦM;[ɹxb4ݺE5OSrw/(nATXEjGx ӫw*Bg{]ё,GugIF4J0lmS̺S[n 0w!nغs_^p"XqN(uDDiI/g)~66ik.,vR|C>d*(/iX"Y0]].C al"Y޸iT $)[gM3 9yK?OZ%~GG-GfߴOH 'x 9lM.0``v)7%;S\zS)Ev2$S{OQq9iW',-,[U?nc:|zT Ӳ9)ھ`j\]kE;~ԧ׵9 AA0ZT{W>A˨Oi"{sg P?dZC$mmIb$Z KO^'s Q$DA&93^,3t۫ 6VKxh ^Mq6gO; 8F n\-ؽ b)jw>d4eZqÏ5v^' !1\wx oɡz(e JWor б[P]VY2}LOD𯸖 vyIdeȋxvY:X ": uS2~{>7+ Xu_L󢈼~+B-\Lj`N2^ 6^.CX=:ZIB|#(HO).?.="Up f@箶xԥ<(bw5@?xN{v4ROcXz,Щ,1s\^/d"z>.I m}sI 0F=9\ҎxswG}a>% %o0Y +. /82#S㷗a[[)Lbg&kbUL7#T].q#LfoIL{~ekB8G:8]Z^ܡ3Qh\!u_7dt_T|yl(I:,l(7uMU!; ڻ˗G0`xI\RUmۧ_lߋ%6y󬐸ً/D 1ȣ(2hnkᕸcOC,2o+nu*ڦ#wJ}-Q3fj=肉w.w>j/ yi+,wQ%e5lC|-TJ?)kl_!aNɸCh_.9nGJnBkJ~A1tt:,M5`Bjj9W f]w.słw̸}\ $shFH߂&񓨮rr*GӃo3 K9 Uߝʸ# o$6HJ_(dcOt"k^ _IJMydDK_EFI"㸸bU"k\P.w6lH` ާg!#I! '퐨: H봜&lHxh.3G4chsw_Zdz`zZ4VI4s;WF}<sTϻ0EQf?-#-xS2h=" *FEnz-zPK *uдԓ'lӡ /{8 r3]A{7fand2׶{9'q+կFXVۛSc)^mucRhwIjdf+ ZZ{$kf&=# :*K?!pmVpMCx^{#梷^J554ڬB xOW: &W5%Ձ\&랛|I O :XOc:N^8*[7zBA>' ֤ՀC.-kU6sIQ8OYYltf?ՠ5±"s+53ՐWُm N~qL}"^ˆ*dfëu9)^B?2S-* S]j"Gg}uL0m҉Yy =F<Myn"as*&}_YlCק(~sL ;t۾qb ؐw+:#pfcOcj }/qw96 .fr-rP,onEbr [&RK3;{ӪsIa^=!Ds* &N p:Sn%H"VOWgVpuީ)<hɶA}K2GP)#vͨ,!>TxK!1KF^  ]@l;=OW,pG4{ԡd6.P·`Ԇ~iCd,wGOsv(>\^<∓gڍpH{ %%+Ok/,+e`=cÄec3@$ <<9;=28ӑ- rt-54H-o[]w.3b(A~ڌi>!N2 c[Oym5M亃CD2 T˪4G,"G:٨඀S wKx^>wC _]=1yTs>_T%Ól7o#ug@ Ϋ摷(TB".!!̿u7vR_$>H|EIuF5t=f2Cf]*Q; .gp稘"jAnJ?y$yA$~rϔ`'ĩ+FpojMM|ĖaER *8tc0KP%7 k6ҕ @ n'DUv&sC`z7DMC<8t@Y^6bJMyOKfUK<"HwH}oֳ9=)E+K!*!(C*Py[;ē \>vu0 oZFQF0zS ⡣"KPV@[]cCƔG9U ˹PK /zv *Qtio'JEa[<?|OG 3F GobYcJ[UzXРO-3 pBZ@Twъ/^3.|GF9hC[^V`r4z=@k$Ҹ?.S@>4Wp$ ԏ֋Ex)r_4jc9AAP=%SW3vvPB$z[U:ў!g>N;l ,ZOAڃ%EwWC/'Vz6òhTM`c\7:"'j(`f SWФcWIDo9u9iT1:YuZ#_K6eםk2҅n]f`i~[ƗaE+&,J?VW]9? Nд9) TW gI6,D6sepnLUp'x5}aQpɰwswhk'7FO)߇Pv]xU>i̜dRayCrh2rA{XFTo k]Sro czV}}"%~6 zz- |]2dX⣜ 4/n8+PE<:nu5z%A`/&Pz/:W|U !QnɄ!k]~g38&ZpX8GҧU*lR1oL.JsSk#@HT:&tX^QeX/',o#4H1v{M"7hȯys5**w^t >#m/JGBto-ŕ_1?|#v팪5fiT?G-QˑMb[A7;xeM.@Z:%Q^.$+Ւ4 dR2ETnz9ݱ6kVCQ,Úyz?@"J_^\X!mTBς{.e-!!Qd=OLP:2/hh\wߋ>r)"y(TK{$fACp.Kw=g'*=T$MU214ء>UzpBfSE`&6j":cU}(N5/oVMiLӨp*D\ü}& ԴQ'pgnɻbؔznf<%Ty5{ !Se#}xC!͆8H{a 9̄TA$Qlomx<։qHaR}nG@"ڃە5f>"{g^=y8PFN=\c$䢽1⯫>~F71 2TMAmB y;L'˹cڠ>xuv:/jlML3qCxO.>!U[IC HF9s'\ `c\9",1B=n)˪6m^"5fǦ,vig| CU̵k)} v6Puռ~rE3B8]{$*.7ߵLMr_@FT܁䍒!CamCBLMX3:U8%a "3+c̓!B/L E}g #!e']r3늩RkT=4dZ0μ6AJ6^l8qXOk_wFdTt+ضMUw_Hx.&G ob`,+1;9$R71PZ{q@7hE;j"7#DT躏#_a̝ G}rq_wh*4q}Fg ݡBiбJC{9ҭCȮ_ҥ/KB7&;1Y{#bfJ'ja/-{D]=Uo:']`RIL!KI01쯟@TXpe:Zg~]].O9t\=c: (N\S~C4ڴn`06XqL9ݑ[Q*|ͮ\>OgTmʘV'*M/ƍgf2OkBu"nt0a'iq12.%7H0yJUq㐉Ur3#:7uv zC&9(-9& S.TJxİ|%6o iTh5ls%{$3>z[K3FRzE/JzwT hax ehWg3FZ䮓`/N 9b=)puF rI&PZoX߈ɨUyJb7RLy-?ݻP j|QL xwB!t|\JoMaY05-> vDHn#{^|8 m΂êu :nez%]>Ee/!0Y֒dFߐ]E1phOn43yxt r s]. ݞ(q&<š0Ͳ}=WwGpo6ǔ:v8^2O4ZCfCaۓ;5$ObCUo!Ђg>Yn;N"?o wX_"`jfKe;e :7P˗ӟM9i ӟp:Y/U j+IXG@dJ4B/="2Rjېʓ ՌX-Gߢs]e hyˡo:pReZCE˻0c$N RU BL]Z Z`UUskpYڰ:QGW_ge]tp#C{ |FP72QnUV(m?r*2 ؎nE#" - _`}Kհ\} NW\*E͍\ ڷ$;F;.rA 7qj/@ 顛$qҠqheõ1 'bt#O"5" bS ,{0lReL&tnLIQR97֜C9٫!f71wMZC!Qxk=ÍY'ݢT,KZkNd34L`i:ʴO# #T ףͷ2`)la"gM-M;$XoiUtqv05_tzVV(!ok03$X5sV{}6,s?`m3KE<Q2&W{HqDE8 iC0,"&wq |xQ?r\ЋdQ{X‡*&h`>TXzɬ@U+;Q!N̈́{wa}SvZk(|u?HƩ{ W#W_@7V}Fqb_0?cgܪiw.4B٭1x"Q6~wFFiZ{E. oj%00uR5`fxr ІL=qoGqG+{~ízzZ{-2~R:K?R1gN%ZI12\ ݋xc}aM*t&^bS|r]Sm"ً1-GߖJ XA 98F5kfKt+N6upm^IQ\(X#B^ a 5BXC}zkǓnDL~˻|qK B<ӽ+kSՏʷÌR[jFs!2|vڜ~0/F>bҬ_ia_l}oaU55wΑPdM~62 g%p/QW d&;΢##1%le9ݠm}>l ~Wڦ[$Ueqa=P7TuQkHTcǢ(8!w|q\%/rds_׋VBx͚t&a֦lwW 1ܙrk.PܘC6G ƀhwA+;C6}IRVMa*Q-,_lo-U+bʉF>BG߻^|"LYWD|);-HrU8lʁp!#yQ:Njk{tskbB.7`\ԩ*SQe*׷ >M8dhpws7G 3%+bAF,**^}kAdbş7PͩC׌UO3\ˢ}4)4 qJA<7C)k1"NQ:7aeDC!XYʚ-OC n}oMv`9OڜɣMf"&=ڒ@e̦-.{ kKYo+fMe9f]֒t9}=`C%G+WCꅿ$l!&ݽx WdB mA ?_r\l[@=$8[[jN]RBmqeySv<.zҺ{?[a9ikLYe:-!;~slKA#33\Ѩ>CƺkW4Tr𖜤ߙԤI/Fv 9f;'*mO4ɜbE*03v~GҠqշ޶xF>G CPn ?˿mYz|Pa%CO!ԪH@_\PD<;kR|s&rgyd `F8[^%&JEaH9ɯ]W!g%y Vπ l&$x8E L/z?С;xR0$Oܾ[cD[x_"W+^@.T;sX^9fWuh?E#6k{-#h Qʃ/?ykjz9zpAH1ʋ%K]]e/پZX,yp,srZu\\P9jۻv\X6.sBͧ ݃*$9^ݮ~>! uj=9[U'^nk0w^,[&J/I/֑TiԈ)3lE.~螲es?|5!rQ0] vrZOMukM݅|xRȴt3H3Qڙ}ϭ*8BˏstjI\4)*v6Ӝ)h\3Ppik:VIag ?Cl:2@+82៶T_`Q 6C42H}0U}NL$SJ, eFC0(ͷ1IS%[tdk?|I/z.}̌:wt~;$d9a#sRrKl+VH=B6 Z&Xbkt^nhFYOY[wCErH1^n3lynELc$_"ᆒ+xF 8ze# Gdk51Qf0J,ЖԮѴ+ϗ\&H,[15 淟*['U2~r p1GZ N')D0_R73M9D0KF4NSLnT|Ƚ?Ң?Ḭ@MAqw`:D.=v]Xb6!ޑc g JAkmSyJcdv w5-@qa[&\\Ҫ\T%_+ i0s}kl$મ߽v+S;k>Nz\1mnto2$pT.*X{^?Ɖ FbGGXWn\K9R'jDPEDd,=3:ZEF:, O=+_Kc֞^!IQ aK :gEQMKr7YsW=}/8?Ǫ:A1 $ѹe$%2p-?L$7$^.t GK_\k–++;:R޻`$gwP+l= Gbo银*<`;/)ޱ}~NZgV’0:&P ]Z:EjKJ SRge%/ V^Nm[7-qF=Ɯ׋mD7Ŏ D{--ҙՏ CZ%50I<.[jo,5K[Sca$4M^063w+j]YT؈k60Rl:qeO ¨usoxtqNss,mdm{/)L.-(PjnHwǢk |-D)S&B[ By9N{7'丟B($5)x4t/!/%iǠꟄe]D:K /3 ,rp>v[E(w KKGrm o~nXӄ~ij aхvHOU˂fkt+ۨ2^L$1; CN_d8:Q%l;PA_Nc wS*Ĵ~C֚\*1K"僟ņY#;|xN>Cfa+=M 5K._~in-ikP4cw,N,.LGҐ$[DG3|Mls=C7&9¨+ՠwD6Ԇp$N.Мs*݅ @/II?IׂH6w\[|\Qp-5! "|\䠓wG3?%ͺ!CwˑQkFSh@"Di> A@Xk͢ԭFU GȘ6MČY,pz) j(UC1ݞ_9,l}2C x@x{jHj;KRi <ɣ#&?Χ\ X0}MD|-' l 'CLG$3(1Q[ mg,b>2+He[Oe,OUᗬ)j >25acB_kk%kZz:TΦO< v[/%I[)ZˇgW ոzJG _ b(%Ճ {NL!>hBZ'yZx@s 9GaUKGn% Y&eiv ly>N! 3!)WX՚As?wd22=.VӎG1yC"إjA_:2+2%0z A ě Ĭ'xdgxn N>6y=) -?( ̡W _8hok XIQc tH97ww>5&YCUg=![vCHbkǔϔt6J@}Vۓ:CG`~hʣ9#YZuz2H2[Z\j}R6R8k '>+KwXnŞ7Loc󄹍vtb̩uKt[#+l=El'Ƕ!DlS2EEeU9̪&unLsuhfr B~eXVx]5$*s4 ˃ !@ o+2Ź'Zq'}Մ-Av,˨,|P;`1,#Dd@߶ h{Bp4n".(u|n9n!T)tJa |@xHStmPN\)Λ%nG0ph_g4C"jaq;`4 P~s ڼ& ԚA8WY֑f .`s70#> UKFESIّg sD}q#둜g?PH`: <*# .sO@ PW?7ZIs#':*6Qj?qPy_gߧaVilJRr Cr|@|#jUaQv4/K {UN92 bX0Jc"5C˝ZoM$}~u1/?`oIr _dL[OS!ZvaONR!!9 tutSu&Ԏe/c`wk(BR,u-[>4%6ڴڡz> 7l\yE}{)#:M_ɇ"h ?ة !h.PV连1!I1õшަӼ̓6vJ}S:)GDje`ɂƳ@^-~ve $\ $>8 zɷaii wR|v8g{6X8owmӶ kRs!H $W=u/8x}lʼn*ɘ鷪à ݷӿ_ll8k{`Rkk-ԥ#_:6$dzku$/I1)>~SF-HXS^# 5F&SY1?}SLచi5˓< :Afwm3)W6|g|^=?Q$r͝~<-)yCJM4J6}>9ϙppH4 gR/@x2Dk(hnJvS)ZF{y}z~YC38)(N XC*m%vq d4rYexg)"a;/?nЏyd9] skO۾L< 6 l" s.R>+_ Ykus4[+cp.74#Ԥ#uQNg_WZ$Z5p$^LR!WE>@|+!-@0HIDBAjq<6< K˔ifҿw~H\=w Fh񺦄1E T9 e!L@8yHX&!"+0qU*#azrPAsw23U5ĢUI0j:r*{h-zG9͝[*grQ@5e'd޽*$zZݶUGvhjo⽙ ebؑbDXtZ2D9).$z@_d>N1,b*?WPAŀ 41yCQ<\z0bM˟M[lOaA\}CI xgߪ^ͼR:X8 뵁1=*zA[r}m' ~Glf?b~iOv R![Ӝ5|! ܺ\c JLCp.(.sU˽4o>9frs=88";WB3fv8 ;LaIvg T*r{{a G!0#l ed*6|*]3xbU42,lv/9+ rb{eIOϠǵ.3ԣRk.J/]@.F PaQ# +j3=Mb% ;u(K]JsMr$ěj2OYzNJ!;Ox^ԓuD> e:RPLʘx>N893% )䰥!)'Tm=`b\Pdg]k[ MW8C 1Y˅ e.Cn&k'W;E޻U8Q'ѾaUu_B3?7$ X5E`{ά[MֿKx>hgt_Q[ԫ)VNAϺzb1,'g;8T< )yKُ:%0E4@;b)f$ ^U`Vw0m>`FeqEQa??H1,l{=}zɿ+3FQ%1d;Hd7`/B D 5d:hg$< )Zg_. !6%W0Dپe):T6r^fϝy(QkaBA?&ۙBo7SP0̮G3/̬=^BlMǥ x\sNMp}06~SKiԛ_/XԺr`gZoFRiTf}AIK_ @_g,68>aǡGU6 #9 4 (H௢84A%-ar FE]?qsV.ge)f!zvsb \q4.:b\bO zal 6iCa4@wmfA?n s [hxZ 4m?@5UKR`<ɠ!ٓEXfaW0;JXrz(ɻn%:Ɇ3k{ [&(⩕lr 0iOӠcYhH+#MxLk,)9,pECk6Daˈhigd V,@'.S"p&Ee?Zn ,`Í#BzfSg}jـI2Ij(Gd//!F5Lt5Q +65} p{"PbN.X#?d5N5on_OLwVo#OE;rКP/Z\l;32ez5|j%ۢ˾_{9_{SjGFs7IG&VRzqُQ+z+{H85 pn >*E~[`m/!VHRN/6JҬؘ|%/;sR7ybJZh{mP0,>aCxwtXseymI/Z"sm }3I&L)ɒZ 1Ezn|<+1rjJGu U -^M(皕"c߾FxJ}nR-ޢqE9E+re2Zǭq f,+ReQHin`M(zUʰ8dYtZ|g+ Px!)sV"DPK%>^u Wm$ADLrFo{: g;=dKDąFl3STn;OU KC J0l( qSq=YpVVwv3Ux*ysVF.:/wm|m ^R;!5ugWJߛ3d6)Xq GSūݻMT>qAY #kK`0Uy@[LRo0á[e3fGV3Tl&hM>S$xnq?/X((ạlifmo춍!9딊c)%a8CY)آoK೿brQTMd 5 8!#0+@jETUyr0Tc6!krTQ@YkJsn]Xs*xɻ7ml5?#>4d=D!i4rSvoP%lm~N2Z˷,/ u &[!u+)驜dsОL!%֬ZI;E*UQn?!T-q WD4ex[)]uT^$~(ydEǹ-̍y[&Y]]`rrIuzTAJ [ri}T?\ ^:}b|)ULEd㵇fU yhcK;hn.uNFG0h{us.1Ffl M@-WJ 2<[mh)GU$&`3s zy>GI+g0) X -Qsljߝ2値:"5tzt'*gO4.u5?@-T`EL,Ѥv?0s68~u%:!гj⺢$#S9'{:M[]lw54sk*fBلT.idwpWm$ K*X }oK5n4#`26K~ &x +/l}Y]afH.]Թ,vl1#2mW'?mxoxE#,f᡺2HAPpӧkq d $U 8xUv8ٹ#I>(O[SnARKH~g23Q}p`ˇ{ 6Pmh>oqxw ik ŤgQ)¦Xp:)cAvmi a!mݝ}p=`mi( "e7yd#pQkuKBZ^HtiŸN{+$a"(;-EYU{o|l}g<œ"IC&UHpR?ɔȷ11#fNF{P> c(SCYөu`i W |4WpuEEa^F(l `nT: Kr(+7A_eָ==3^SgO[UC#hl#}}-&aSZ9CRͿndxZBѝ.8؆q𡞄hF(f5@򴂜OzvT XNsd7fQUuf(, H?7ߍoA)WT ^6D rμ.nUO!Tón y;jٙ!fmU{mt:1y!/"m_t=N1nՏ&]jTmDU;(SԱyNqE#%> a )pcCf,{p%EJs(MŠyky_$O-,LR[_"'PƂt2t]3X1E!OJ3hs7C}M%Q<{Yʻ2)=  G&^` 8@l5]CRrF@oS)$@WF%k'eIEǹoQ*@\~^/@0 fRangu?Ӿ_w5*_ƌb,Z/yJS՗Yl#}f-p 7I ž[W)hXĚS5nܚy5>K8I)B׍^BӇ~A4k:ET.D~9 Ƶ0SWϠ$A8-ld3ΏhuY!פѴ+4N 0ZWt$nWTQ;vjGy@m Lr`ݔ Oi5BgN "3ϧH Ҳ4$kI𒼲_E ٰYBG}qBT 28eϵ~1o,M(Yur >T+o&^vki&;/\7,\ꄴˆ>s {ӽG P5ft] NJ[ƧԵ YZ