ELF(<7;4]'4 (444  TTTb"b"m"}"}"$&&&hhhQtdpܡܡܡ77Rtdm"}"}"P"P"/system/bin/linkerAndroidr195232133}"}"}"1KW<7; ^Q c; }gH Ŀg@ pg 1 $hT I $hT ai4 g oh i4 xi (g` ZXg gP xg0 ^g g Lg` Pg hg Aļg `\g Xg PjX %Pi ](i i i (i M8i 8#i iP i< i 6Hix uip \ip gT ( j J j u @h Hil xi( gT ^ Vh\ ~ Vh\ Wh `g X=  ;" J =< <=H <;(" P= R ;" = l&% ;"  =<<" =dlJL =<4" >><" ><D" ?<" :?<4" ?<" ?t<D" W@8<" @lJ @Jp @(J "AJ LAlJ( AJ( A`zj y`LUj `lgX `vi `j| !ag >ag raXj apj bj  %bj >bj| vb i b8>" bx>" b&? )c= " Oc=" uc= c=, c<=| c= ^dhj dn'd= d= +ed=  We`= e`.=T f= mf<= f= f=( f=P 1g=L dg>x" gx= g=( g= yh=H h= h&= $i&= iL=  iL=  i0<4 j0<4 [j%= uj%= jGp jt>" ks'4kxs'ck>@" ~kl><" k,? l = " Tl>" l=" l@>" #m= " bm>" m= " m>h" n`=? Snp'on$=" n??p& $o&=0 Do=X o >" oh@ onI pvI )p<>" pHsh p(sh pXsh q wh 9qyh Vq8sh vqrh qqh qRjD qti  4rYh  Vr=< rH>T" 3sc ts=(" s#c. sb tX>" tp>" uD>" {u >" u >" v >" v(>" qw@>" w>" hx >" x4>8" +y$"!Ey"dy"y"!y"!]z"!zx"!{8"!w{H"!{"!!|"!g|X"!|h"!-}ԑ"!v}"!}"!}"!}"!}j" }~~t %~t 9~ X M~ ;T~[~b~k~ pP( u~`Q@ ~Qp ~QH ~P ~LP ~DQ@ ~Qp ~QH ~lQ ~Q ~XP ~ăQ 4P |Q@ #Qp 4,QH DP K|P WP0 `lP0 oiH >$ >, > 7h g> g x&>( 3&>$ _#> &> !>D" +K jGJD :JD DA a(Q< rQP Hi X'> !> DX"> "> ф%>h l*>" @P  !P0 (,> BHj jD Y>" ?>" #?>" Lhh " R4,> ?>" ؇?>" ?>" +D?><" L?>@" m4+> X>" X>" X>" P\Y>@"  Y><" X>H" ԉH7>D" p*> G7>" =>" @;>" &>>" @D6>" Z\j ܙh( i  Y>" $Y>" WY>" ,>d " D>" PE>D" xU>" dV>D" ُJ>" K>D" ?>" 0A>" B>" mP>" R>" H>" Q" N>8" P"(!@" !n" !4"!x"!h> lk>h" zaJ  Ɨt}>" #aJ  piJx LrJD" xJ" },J " ݙLJ " =$~>" `w>" ۚ~>" <`v>" \lJ t|>" DbJ 9>L" >L" $Ԅ>L" >L" #l>L" >L" 5>L" >L" .<>L" aJ TlJ x>" *z>" ElJ xz>" Hz><" z>8" x>" Kx> " |hx>" Pb@ h@  Xb@X =c@4 m$^>t Le>h b> FZ> ha>4 j>T" h>T" W_> d> ߥZ> \>( Z>  6[>( TY> Y> Ԧr>" q>" z>" z>" .z>" Jp|>" a@|>0" x{>" ħ{>T" p{>" 78y>" L" ƨy>" s>" 3s>8" X4t>" vؖ"!"L!"L!"(ȕ"&"!<d"!R{>8" x{>0" {>" {>T" O8|>" _> ëZ> a> 4Z> V^> y[> \> Lu>" ݬ" y>" /y>" ey>" y>L" y>" <"!"!|"!Z"!"!\}P P> #h0 JCh %h 1hp &/h Jh4h z >il ȱ(j( j j x>j # > qD> ȹ<> 6>t > l> up> > E>$ l>t >@ 0> > ѽ$> "P>< P>< 0> "> B> bЬ>` 4WI( XI` 3`h hl*h0 1h ,h +hp *hL _h| ,Xhp IH i ?" H ?" h?4" ?" E\?" ?" ?" p ?0" +@?" l,?0" ?" ?D" [H>\" B0>" 9?T" )?" "$LP\ P P P  P, Q l? C G *pK <@PI NH aEI uI D H l@ A 3M pA x7H !xI 7HE NJ f`N ~K ȱK М? E I (A ,J -J G)E b H }J J tJ 8I \pH ZJ $? ?" Lj gt Elg Bh g4 &g B?" t2M cxK$ tK PjKD qK DJK jK 8K Z<Kt 0K  ` K K4 K ? ,/H Dp'W`+H L,H ? 1h, PhT pi4 dmh$ ih nh @Dlh$ ybh tgh$ l`h  ?h" ?" ?" ̱?" ?L" ?" ܴ?"  ? " ?" ;"Z"|\"!"!<"!BL"!bq'! q'!$q'![(q'!t"!0"!"!i" $.5:?FKQ[epyPl Q| ģQ Q XP0 P4 HQh Q, ȊQ +P =FPV@" }8ej Plj Yj $OjT *Rj  Qaj oj  ~j g pYjX YjX vj U`g i jh jl ,jl MLi (/i Ei` Li` A4i0 zlQi @iL Oid  Li W j } |j .j .j| $ j X 4iT j    ^j S W@X" o W@\" 8X@" 4X@" i@ 4f@  b@X J ,lDh ,Sh 3-i `-i -@i< -iH -|iH /. i$ N.8i@ .>i .Hi  6>0i  Z>hi >|i >i >Ti >A" >?AD" x?0A" ?|"$!?I"!I,"!I<"![JL"!J\"!Kl"!xKAx K A LA` `LA$ LLGJl LA MA` OMDAD rMzM'i MCh" M`AC" _NBC" NBC" *O`@C" ODCL" PCCL" }PHCL" P JCL" QXKCL" RLCL" RMCL" 5StGCL" S(FCL" #TPPIx qT6J TT6C" rU'C@" Ux%C" TV>C" VC$" Vp>Cp" 4W>Cl" mWd;C8" WBl W|B XC" 4XC" \X,B( XA0 XB 2Y\CH" RYC" YC" YB Y0B .ZA YZC" Z!C" Z C" [ B ([C" L[B p[0B [ A \ A K\|A g\A \A \C" \,B  =]%B ]B  ]*B, ^,B 7^B8 [^4C0" ^4C" _2C" `_3C" _)Ch" _0C(" +`,0C" _`t/C0" `/C" a-C" ja.C" aD(Ch" b+C(" ;b+C" qbL BD bB< b&bB< c4 Bd Nc B uc B\ c B\ c BH d BH )dD5C|" MdCx" qdBx dBx eLCd" 1e@BH \e8B eL Bd e<B f;C" f(B f9C" g8=C" Mg@(C" ggdC" g BP g8 B h B 8hl B ohC" h8#C" hC\" hi  hȤi  ii  ;i>C" i>CL" i8?C" j@C(" UjhC4" j!C<" j"C8" j0#C" $kC" Hk1C" k2CP" k2C" l,C" ml-CP" l-C" l5C@" 2m6CL" emL6C" m|B mCL" nC" 2nC(" jnC@" n8C" n0$CD" Ooh8Ch" o"L! p"(!-pp"HpԵ"8!{p"8!p"$!pH"(pT"8!q"8(q "(!Fq B qC" qTB( qC" MrC" urB rC" rB rA stA 6s?Cl" ts@?C\" s@C" t @CL" [tX@C" t"!t`"! up"!gu"!u"!uĴ"!"vԴ"!SvD#C" v<#C" vC8" #wC" nw "!wĵ"!w@"!xP"!Nx"!yx4"!xD"!x0h x P yP yP y Q4 'ypP 4y0P AyP QyP ]y8P myP zyP yP( yP yP yP yLP yPP yTQ( y|Q y8P yPx zTQ zTQ4 )zQ 6zQ4 BzQ, NzܵDh" zE" '{dE" {$E" {xkJ >|E" |pD" |0EL" k}EL" }#EL" k~`$EL" ~%EL" &EL" $D(EL" !EL" 1| EL" ,D" xD" 0hs'S D" G \DX" <Dd" h|D" D" 6 D" PD" D" 0@D" LJlJp D" D0" [D" XD0" ψD" Dd" /El" uD" jTCt D" C ĵC C ?C }xCp  iC iC D" Gd"!"!t"!P4"!D"!Խ"!"!^"!"!T"!2"!d"!  S `S 0S0 S8 XS DS sDS dS hS xS |S\ >|S YSl ntS S S S S0 pS S RS S S S / S aS 0S S 8S EPS vS  SP S, S &Sp S +S [S  $S S S  S 9S _S S 8S 0S S< SD IS< qS 1 l:S Sd &SP LSL St '/SL ITpS oy$Sd S S Sd  dS (S <E`SH [S r{S dS lS ST S  *\Sd BHS \fnS SD ȿ"!LRR R/ "+QRT <FDYR( XYR x(QR Nj ؊hh %.h  U^h  ph  Xh h )h hh  Th< h0 'h( fh  (hL \h $E" Kh @h h0 E" uE" 5E" E" E" *5=E" t|E" E" E" DԅE@ E @wE< E L|E XfE #|E oHED Ed |E E jȊE E ED ,E *E lE E zE "zE tyE xE xE dsE( uED XxxE` wE qE qE :uE _`rE `rE }E E<" ]Mj Nj \E(" ET" EH EأE" nuE\ ET" |wE0 TE" GppEH E<" E" dE" FlE" ,E8" 'E4" XG" #@TG" /A@G0" =BF`" Bl$G" RDt:G" EG" G!G " G"G" bH!G" H!G" Ip9G " XJ|9G" /K\9G" KX9G" LT:G " M`:G" N@:G" cO<:G" "!"!"!w"!"!I"!"!"!"! "!T0"!@"!$P"!`"!"!,p"!_J J (J  J` B J" m J0 J4 J !!xJ m!J !DJP !J" ("J@ l"0J  "JH" e>J" >J" >tJ" >H"!>JH" ?|JD" #?"!?"!@"!@("! A8"!AH"!BP< B PT BDyQ 1BxQ DBtQ PBx|Q aB{Q pBpxQT |B8i Br"(!cr<"0!wr"(!r"!s"!cs"!sP  sP  sХP< sQh sQ sP$ s4P t`P` thQT 't(Q@ =txQ \tQ vtXQ tQ tLj tK uKH EuK" uK uHK\ uK " "vK" Yv`K" vK|" vKX" rw@"(!w"(!'x8K(" fx$K" xK" xdK" Qy"!yh"!y"!z"!Uzx"!z"!z"!{"!B{LW U{W f{(W z{W@ {XX {|X4 {ȋX {XX {X {gX4 {`X {`XD {X@ {XH {pX |X |dX |DX$ |Xh $|X 0|Y\ 9|hX\ E|XX R|&Y i|q\x {|n\0 |l\T |03YL |vY |yY ||Y  |Y |t|Y  |4zY@ |Y }Y( }Y }YD )}܅Y 5}LY$ =}dZ8 N}Z \},(Z t}4*ZP }L'ZD }Y }Z }Z }Z }Z }Z ~Z (~Zt A~ Z X~@Z` n~ZH |~T=Zx ~!Z@ ~|\Z ~[Z ~4YD ~lY ~4Z ~LZ Z |Z  0xZ CT [ S[0 d[ w [  ZX D[P $[0  [ "[ [  [@ [ T[  /[ E [ YT[ m<[ $[ [D H[ Ҁ [H [ [ [ $đ[\ 6[ G[$ Z([ m%[t H([ X[$ %[, ȳ[ h%[ Ё[H \p [ H[d [ )[  =[( K0[l \[ r,[l [ @[ [| [| ΂[ ڂ0[ [ `[8 [ ([l 6T[ IT[( W[ gX[ |([l [ 0-[ [@ փ[@ [ ̺[ [ 9a L'\x '&\X 4P&\ ?!\D L8&\ XP` qRX O`  S`4 t] %]@ Ʉ#] Ԅxq\ >\ $U ,!Y  &8?_x 8L=_ G<_ [`D_ jC_| ~pA_ pD_( C_8 f] …] ؅Ȏ]d P]D x]D R]D .^]X I]4 gb]P |V]X W]P Й] ]< ̆8[D ކ@]< ] ], 6^ 9^( U U |U U  .U  EU ]/V |U U 0U\ È,V ׈ VL V HV8 X,V /V BU KH=U [U d(U, {U U8 U U ‰UD ӉU U@ ܶUD pU4 -V =U SU cU kUl {U U U0 U Ȋ,>U, ߊ@*V `VL U  T (T 3̂T E@Fa T$Ba ctAa vma la ܚad `` LWP ̋ {` ܋< ` \_ t`  `d 2_\ F_` Y_ hd_ H_ _H a Z` ʌ` ӌ` ݌p_ X_ _ 8_ $4_ 4_ J_ `l_ sd_ _H _( LM" (M" ZL  L4 \sL$ G(L ؃L 4LP L T4L LT xL |L| 7@yLD L L@ L ({L vdL Lt L< ~L hLM" Ọ́M" MD" "M JxM +M L( 7M Y M  pL  L PL L  L XL L (L cL8 DL (L< NDL L ə,L dL L L L DPM" M" īMD" כMt !t-L xYL ΜOLP $,MH ftML  M<  PM" بXM" y\M" aM" M|" @^M" ۫dM|" c[M" 'M P+LL (DM" MH hMT SM" M" ӮM$" ,M\" FM" nĵM0" MT LhL| $M" M" M " M" HM" |M" M " M" xM" jL4 ehL$ L T\L0 LL @L >L L ֵ$L %L tL0 L L XM" qPMH" Lp ַL$ L HL TLT ٸL OM" >M" WXMD" p\L XL, L .L` {L\ Ld ~M" hM" M<" DM" lMT" hpM" oM," @Md" xM" [MT" dM" &M" mM<" pM" *M" L ЬL L, M" DM" aMD" ~M" QMl" HM" :MH" XPML dM ,M" M" AtM" _M" }dM" M" PM" LM" )Mx ]ML M" M4" ԒL` #M" KM" MT" HM" M" *MT" \TM" EM" M" M," CM" dM" M," M"  M" $M," CPM" dhM" lM8" M" M" "$!p"$!d"$! "!0l"!W"!"!"!"$!"$!"$!+"$!CL"$!]"$!y"!P"!P"!<"!T"!%"!y"!"!%"!{"!"!'"!}"!("!)8"!H"!X"!.h"!"!"!1"!"!q"!"!W"!"! "!80"!@"!"!2"!|"!"!M"!"! "!l"!"!N"!"!'"!_"! "! 0"!@"!$"!]4"!D"!)x"!] {` X &U  T`  yP R {P a {P o {P {P x{P {P {P {P {P {P {P  p{P " H{P 2 @{P B P{P R  {P  c X{P h{P `{P   d}P  Px  }P$ P  Ph $ T}P 1 ԩP  I P  ^ |P@ s 0}P$   Pp  PP P                ! ) 5 @ G O P ] PT p ,P 0P XP pP PL P 4P< P  hP4 P Px Pd "(.5<FLXahmsyQ  Q PQ )0=IX`Q q Q Q Q ܂Q |%Q$ X$Q$ &Q +)Q 8+Q EKRW\cmt{hQ Q NQ  tQ $tQ $0}Q @Las!7Q_s1KXo$-6BKxQ ^P}Q n0Q ~Q| Q LQd Q, $Q, Q, xQ` @Q   Q '.8BLЕQ [hvQ  0 60 QX0 gt0 }Qx Q8 QT CQ Q Qp Qp IQ |8Q 8Q Q "TQh kXQ H#HQp QD bQ" Q" PI#(!c I#<!Q" xQ" SQ" Q" ` " ` HHQ8 Q ,Q` U- iR Qt _(Q Q  8R 5 @Q Q !@Q !Q "QD 8"dQ@ e"dQ@ " R$ "4Q" #R" G#Q" ~#Q" #xI##; $8 +$L&V$R  $ R $| Rl >% R %pR@ %XR %R &,& E&Ew'x&Rl" D'RX" '|R" b(@R" )PR" )I#0)lYR )`RR )PRT *QR( $*RR :*(RR$ T*xRR i*YR }*ZR, *|Rl *R0 *R0 *\&*T&*]R  **bR +0^R ++HfR( J+4R W+lR i+o+Rh +R +R +LR +DR +++hR +R +,R ,DR\ ,R ,S( D,PS a,R  t,prR  ~,R ,X&,R ,tR$ ,\R ,dR ,R -R +-R E-ԌR W-R e-\RT x-hR -TR -`zT &>zT 7> {T R>zT( m>|T4 >{T, >T >SH >0S >ЅS ?h2Sh !?0{S >?HS `?6S ?7S ?8S ?S ? SP @$!SP *@H4S G@8S  q@S @XS @H6S` @3SP @9SX AS /AD S< JATS8 AS< A S AS< B|S8 )B$ S  IB 6S( lB 4S( BS BS BS@ BiS$ CXS8 ;ChSh \CkS C~Sd C$gS C`S DeS 5DmS \D4qS  D؈S D|,S DS D9S ES EP*S, ;E,_S PE%SP kEh&SP ES E,S E(Sl ES FpoS AFS YF S rFlS, FHS FS FS  FSX GSp ,GS0 KGS4 lGS GSx GS| G(SD GS( G\S HlS< .H S BHS| dHlS HtS HS HdS H8S4 IS4 O6T TOP7T nO$&T| O 8T O8T O0JT OKT O(LT P&T  "P%Tt 8PDdT OP8dT  sP`T PD`T< P JT$ PxOT PNT  QNT 8Q0:Tx NQ:Tx eQIT |Q IT QX+T QHd0 Q@\ Q{T Q(Td Qx}T RT RT, 'R܃T :RlT FRT YRT pRX8$DR|T RT R̄T R8$DRT RT RWT RWsXp _WT| wWTX W܄T W܇T WpTl WT XX[4 Xd [ -X[  FX[H RX3Y  ^XHT0 rX(V XU X1V X1V( XPT XT  Xa X aP YTd YV 8YT IYaL ^YT, }YT YV Yah YT Y4V YT Z0a )ZTP ;Z?Vp XZ`2V uZX2V Za ZaP Za Za Za Za Za Za  ZT ZPT ["U '[LTh :[dT M[(X8 V[ĞT i[T [T [T [ПT@ [T [|TD \\T )\lT K\8Tl a\T( |\8T \T4 \PT@ \TH \T \1V \8T0 ]T0 $]T D]U P]T  ^]T  n]hT z]T4 ]T` ]xT ]0T ]L[ ]h[  ]8[t ^)[$ !^)[ 4^h] >^T V^ap q^T |^T ^T ^PTT ^Tp ^T ^T ^pT _T\ _|T@ $_T :_P([ J_[ \_[ h_k\P q_j\ _^` _<^ _^ _^ _^ _^ _`^ _@_@ _]\ _8m\ `d[d `[ +`4[0 D`[ Q`[8 h`[d y`[H `U, `?_ `LW `W `1V  `fHX\ NfX\ `fV\ ofL]\P fC_, f:_ f$C_\ f8U  fX>U, f>U g0CU &gAUX Jg>UL ag*UL gU  g?U gܱ_ gk` g_T g( ` g "` h0 ` ,h ` Eh4"` ^h!`4 yh ` h ` hP!` h,_L h?`P h(<`( i=` 2i_L Di _ Mia fi_ wiWh i W iDU( i2U i`.U i2U i+U i:U  i܆W jĈW (j:U >jZ LjW` cjlWd {j~[ j4:_ j ;_D jD_H j8zU  jU jUt jTU  kU` $kU >ktU Pk U fkU4 }kU  kU kU kU kU kU l|Up lU@ 0lHTU ClU$ YlZUp plXU< lLZU0 l$NU$ l(ZU$ l|ZU0 lU l bX l[P l([ mR[ m(R[ ;m.[ Km.[ [m-[ km.[ {m R[ m0R[ m.[ m.[ m8R[ mS[ mY[ nde[ nl[ .nz[ ;n[ Hn`[ Wn[ cn[ kn[ |n4[ nܺ[ n[ n [ np]\ nG\p n`U n [\ n ^X ox_XX o_X ` &<5` =?` ]?` y6` H4`8 l=` ł<` ?` <` <` ;H_ R _ ca$ vW 9] AY 2V l&DԃU< (Ud .W U )+Vl ?U@ TU( g@U8 }U DU 0U U քU ݄U| <,W 4Vx U 9U JU Za nda a ,a aX 4bX օa U dU  -Y( d.Y -Y| .Z, >P[T N[x g[L |p[L k] V]\ 0^ 7^H ˆW  0 V  VX !V ; V Z VX yV  V  LJ<V V  PV %-V EMVX e`U {V VX ˆU ۈV U X "^`$ 5>/^ PYW` oU` |Vh $Z \Z, [\ ̉]\` ^\ ^\ e] !)2] DLy] [\z]$ n0VD 0VD `1VP 1VP ̊/V /V ,V /V -/V E/V `/V {/V x0V 0V ҋ/V 0,V 8,V V :p,V PV lpV (,V P,V ʌ+V @,V t+Vl x,Vl )hV A,V V+V nVL  -V <-V $-V ҍV d"V, V PiW .Yl ; Yd G]H PVP _`ap qVd  $HV l\V ˎV EV< DV , ]V O@VL rdCV D2V V ЏV t W  VX 9V UVt x(V Vl 82V  Ր2V a h?V@ Vp 0@V` GX RuY bpYD sZ +[P ,[D [T [D ڑ([  [X [  ',[ 5[ ElWx VR`( lj` zhV ldV 0W ؒW ܆V ah )V @/W [V uV ^Wl  VW ǓV$  VWP xV$ صV  #%W ;nW PzW aW rWWd qW FVL V$ ܔlOV IV OV  :YVT VtV` m[V V 0V @iV ҕ8zV pV V &jVx ?؀VD ^0eV }V ^V LVH Ö,V ܖDVp a a$ a (̞V AdV\ Zat f\a vda$ aD ԩV V< @V җVd V$ XT 0[ $[ 60^  J0^$ SW vpaP V  W4 Иj` ޘ8W @WL `]W =W8 MIW  jVW <@W| %W LW4 ępVW ܙV V V| 4LV| U(V vV 8V V  ͚ W < W W ( V GV ` V  lW hWH W ͛,W ܛ W0 D W X HX 1,Y AY QY aZ v4[ [ &\ t4] 85] Μ$] ٜW  HtW rW pa8 &(_$ >Ԇ` U9] eHj` y9] Xj` W ad W a 'W Ma pԍW a t+W Ȟ*W ؞Pb L b bT Tb 3b$ OHb  dX r0X zX D_ _h _ _ _ ʟP_ ՟ _ _ !_ 8_d +"_ >W UW  yTW dW DW ĠW  tW  W W (,W =W RW kԔW \W| W W ɡ W W W@ W ,CX -tW\ > W UXW m$CX ~ȦW W pWX W@ ΢@W ޢ4W  4Wl TW X "X 2ثW HЧW [WD lW {W W lW W8 Wh УW XW fX< Y Y Y 2]t &`] 2] >0WH NxW ^ԸW nWT ~W xW PW W ˤHb( ޤLW8 $XT ] XW W4 E` .O` IO` ]0F` sE`P k` W EX |@bx ԥ?b  DX DX 1Ab  LW4 ]W kxW  {W4 W 0z#W W ¦W צWX W `}#M FX ]\CX qEX DX 8DX  DX dz@EX ճEX CX FX CX %EX 3DX LdDX ]CX qDX @FX FX lCX $EX Ӵ@CX DX HDX DX *CX ;PEX IBX _EX rCX FX FX CX ŵDX ޵tDX CX DX PFX .FX >Dcbt L8b ZT4]  b~#qLXH tKX DKX LX@ 4KX \LX жKX ߶TKX $KX dKX #0#!h#,RX @#RxRX e<#vRX &$XRX RX hRX ϷRX d]XL \X( \]X XX -WX =]XX QlF_ mHF_ 0F_ PF_ XX( ø[XD ݸRX HXXh `b RXh =\d 2d`X J$_XT `^Xx {4aX aX  eX< bXx ¹eX8 չfX gX XtXX ]0 dX X$ 4\X EXX WX eX vX ȠX XL ԒX  X  ƺРX ֺX \X X X X ,tX 9X NxX XXD dX uS(b &LX آXD ȻX X lX X XX 0DX B0X TX gX  ] pX Yl |b ͼ XH ܼسXP hXp X %X >зX XX rX 0X TX X ŽXd ҽX ߽X X4 @X hXL X4 $HXx 1X\ CXX  PXt ^X8 lpX vX0  XP X| X X8 hX ˾|Xh پ@Xl X pX `X XH X( )X, 7X B}\X U}\  jX |X\ X< X X X b Xbd ̿b  ٿX| XX X8 XXl TX ,\X Cb JPXt ] Y g|3cX vY Xl b Xh X  Y b\ 0X( X$ dX b4 *b$ 8DbP FX RX d X  yX<  X hX| b X| Y 4X Y X Y\ XY\ ], lY + Y 5DY @t Y$ Gb Ub c(Y qY tb  Yh b  Y n\ Ԇ\h v\ Yx [ <YP $ Y 2Y KYt XY cY| mY y Y@ h[ [ ~b( b( Z( [  x.Y( 'Y 5+Y L+Y d+Y z+Y +Y +Y +Y p*Y( +Y +Y )Y 2L!Y8 D@(Yh X0Y fY\ oY x d d d  dP X dh _ +Y L\( hy'2Y *3Y <2YL N(:Yx ih4YL t :Y :Y  :Y P8Y dP ^$ |`l IYt NY< NYh HYp MY (`OYL BDFY OFYt \?Y dCY q\>YL ;Y :Y0 pHY xHY HY HY XRY| $QYl 0RY  BVY ]4WYh qWY WY0 NY NY NY |NY OY NY tNY dLY@ $<'Z V'Z jhYt )ZP D)ZP (Y  @Y@ xY L(Z )Y F#Z YZt qxZ Y YD #Z D(Z ,Zl #Z +ZT ?d]Z RY eY wxY hY XY HY Y Y Y, Y %Y 3Y FY YY kDZ| x$(Z T(Z 1Z  Y lgc d <Z Z %)ZP =(ZP T<ZT b=Z( {Z Z` @ZL Z |Z Z Zl Z Z  Z *X Z SZH a"Z o.Z( |7Z 5Z 7Z D3Z 3Z Z /Z0 JZ8 lZ Z lZ@ $Z  Z ZX Z Z( "(Z ;Z MhZ kDZ `Z pZ  |Z  Z Z Z Z(  Z\ 2Z @Z V ^ZT l8bZ |bZ$ ThZ nZ nZ *ZP (Z 'ZH D'Z *(Z @=Z( ^$>Z q>Z @9Z <:Z 1Z ;Z ;Z /Z X0Z (/Z ApZ8 x>Z Z, ,>Z @>Z &Z YZ$ @?Z \RZD ,db >Ec G>c WAc bZZ YZ d d d  Z 'Zp ?,Zp ht^Z c (Ic tZ\ uZP 0Gc sZd xtZp tZ\ DuZP uZ\ @vZ 8~Z N~Z ^ep p,ZX ԂZX Z\ Zd pZd Z4 Z !lZ4 :LZ  QZ mZ ԹZ (Z Zh Zt pZP Z( 9Z` R`Z( mZ| hZ Zp Z xZH Z ȬZ` -,Z4 G`Z0 hZh 8Z( Z@ Zx 4Z Z$ /`ZH PZ ~Pc Pc Pc Pc Pc Pc Sc Wc, !\c\ 1Lcc  AtZ WXZ mZ  Zp HCc NcT  McT cx KcL hb  Fc TOcP Z &Z >Z Vd< ]Dd x#lpZ d` Zl Z@ PZ S(H[ 4 [ 'HZ 8Z H0Zh [Zh oZh [h [h Z Zx ,ZX Zx Zx 1@Zx L4Z\ b Z\ yZ\ [\ [\ Zx Zx Zx `[x 5ZX Oy'mZ ~|y'tZ  Zh 0Z  Z Z Z Z 3(Z DZ RZ kZ {8Z Z Z  Z  Z  Z Z  Z  'ZL 5Z  NdZL ^dZ wZ ZT Z h[ Z< Z Z TZ ZT "PZx 0Z QZ q,Z< hZ< Z  Z  Z  dZ (Z CDZ gZ  Z "eX $e0 e (#e` !eP Zh Z 9Z L|Z hZ  {Z Z Z  Z xZh dZ Z TZ )Z  <Z VZ nZ  }Z Z  Z  Z [h [ T[ Z 3\[  I,Z f[$ yp[ \[ t[ x[  [  [ [ [ [  .[ D[0 X$[ k[4 |[| D [ [ \[ [ ([ T[ [ :[ K[ c[` v$ [  [< [H [ \[  H]P F_ $"[ #[ )%[( 8[ O$[ `[ u[  [ TbT H'b "b  b$ b \  \\ \ $\ 8Ȓ\$ NT\t d\l v\\ \  \ \ \P <\d ԩ\D \ +\ C\ Y\ od\ \T \ L\H \ ,\  \ \ )\ =p\< O@\ a<\D w\ \ \ \ \ <\ \ \p h\ 4ı[ Ot[ i[ [ ̱[ Ա[ D[  p-[ `-[ -[ -[ +@-[ ;`/[ KP-[ [/[ l0/[ .[ .[ -[ -[ -[ .[ -[ .[ p/[ -[ &/[ 7@/[ LP.[ ]@.[ p`.[ p.[  .[ /[ 0.[  /[ P/[ .[ [D cT %Hc 68c GcX XxR[ nhR[ R[ R[ HR[ XR[ R[ R[ R[ R[ 4S[ IR[ ^R[ sXS[ HS[ hS[ xS[ (S[ 8S[ Xc Y[ P]x !] /d] ?] Qdx cdd sTdx Kd Vdp \d 4Xdx h[ [T e[ te[ e[ %e[ 1e[ =Sd NOd8 cdp z d LUdx Hm[ Xm[ (m[ l[ 8m[ m[ m[ hm[ *l[ :l[ Ll[ \l[ lP^ qz[ z[ z[ *\( T6\ 7\| `8\t L;\ 9\x Pb *b` H[ cP[ r [ @[ 0[ ] ^p ^ ^l ^ [ |^ 0 ^ j\D ^\$ D[ (d[ 5T[ B|^T SШ^< g ^ x^4 t^  Xa d[ [ [ ܞ[@ |[  [< 8[  .ܱ[ DЦ[ V[, i[ x[X HS_  W_  XR_\ @Q_ k_d Tb bh 4[ $|[ @[ R[  e[ [ `[ D[ [ س[ [ [ L[ *[` :[ K[ h[ [ [ [ [ [ x[ [ '[ >T[8 N[  k`[  T[  l[  H[  $[  0[  [   [  *<[  A[ R<1] `ĵ[( o[ \[, 0[, [,  [ [ [ [ )[ AH_ RD_ j_4 _L _L _ <_t _ D^d Щ^$ ^ ^$  X^ ( 4^$ 6 _ C ,_ Q ^ ^ _t l [$  d[, p[H T[H @Ze< P] ]D  ]  ]  x7]H # D[, 3 tdb4 M We Z '\ h X%\ w b ?$ Ԓb H@$ |[L [ p[ [8 [  H[8 / [L A [` T H[ e [| w [x t[x [x |[( 8[d  [d [ [ " [8 0 _` D @[ X [, u 8[ [ H[ [  [ [ p[  [ / x[  M [ g [ } [L [ p[l D[ T[ h[  \[  \ ,T\ Fp\ _8\ yP[  [ t[ [ \ [ [ /\ K[x ][ w[ D[  ,[  8[   [  [ [  "[  =[  T[  n[  [  [  ]\ C$l,S$lS$lT$l8U$l8#l+̩#l:$lH#l[t\P pD \ 4~_< Qb Qb \*\4 (\ *\ %\P .\ 7\ C\\ )=\ = e UDe\ me $ed ] 5eL ,>e h dL  d <] "]\X 3^\ DW\h WT^\l n`\p  l\H l\  l\d +;P\ @\d Lu\ q\ 7u\ X<\ ksy~\L \ \ p]H `] ]4 Tle * ]8 8p] K] [X] j+]( z.] ,]` ,1] 0]( *], L ] 6]4 <3$<2$$(;] (x8] 9$Hh8] Xx:] m($h:] x;] $h;] 8] $8] 8] |$8] $89] 6$F(9] Wx9] k$}h9] :] ($:] $9] H$9] 8:] $2(:] G;] \0$o;] 88] `$(8] :] $:] $$ H%$;] *H8] :H:] NH;] ]8] m8] ~9] H9] :] :] ;] 8] :] ;] X8] 'X:] ;X;] J8] Z8] k9] |X9] :] 9] :] ;] 8] :] hXb |bp #9a 4D] LB] `M]` l;]t <] <<]h (=] @] A]$ 0@] 8@]H (@] (?] @?] Y?] s0?] A] $k`t ` D@a 4@a ?b E] 'E] >tE] X|E] tlE] TE] \E] dE] LE] (E] 0E] 4E] K E] dE] xD] E] E] D] D] D] D] /D] ID] ^D] zD] D] D] E] E]  E] " E] : E] Y E] x E] E] I] I]X  G] !G] !G]X #!&`S]P Q&Q]P d&8R]P {&(a]P &a]P &Z]X &L[]P &\]P &T^]P ',`]P ,'`U]P Q'8T]P e'Y]P ~'S]P 'HQ]P 'Q]P '~`| '`| '$b '0] (@}`| (l`` %(` 2(~` A(<` O(4b j(@] t(/^ (0^ (|`` (` (Se` (Pe (Ped ((Je (Je )Ne$ )\Je ')pJe 8)c] I)e] V)w] d)4s] |)pd] )] )l] )] )]\ )))]D )]D )x]D *]D +*P]P ;*L] U*] s*x]P *]P *Ȅ]H *(]P *]P *] +бb +4] ++] B+\`$ P+b ]+L] t+]H +] +]` +\` +b +] +P]< ,] !,] :,,] S,ԑ]| x,tb ,]D ,(]P ,ؗ]P ,]D ,P]P ,]P ,` -` -$!-P] 2-$$A-@] Q-] f-$y-] -$-] -|$-] -$-] -p$-@$.] . ] .] 2.`] E.] P.0] `.] t.p] .] .̫]( .$]( .]X .T]8 /] / e 3/\et K/el `/ed x/Ĥ] /`] /` /Ĉ` /]$ /(] /Pe /] /]T 0] 0b )0b 70e O0e\ g0ؗb( v0b 0đb 0] 0l]h 0ԭ]h 0<] 0T] 1<] 81]( R1L] k1]X 1] 1e, 1e 1] 1D$$1(5bl 15b 10Gb 2Fb !2P]@ 12]  A2|]T R2] c2] q2з] 2] 2bX 2$2$2ĺ] 2$2] 2] 3($3t] /3] F3<$[3] q3] 3`$3t] 3D] 3$34] 3Ĺ] 4$(4] =4ĸ] O4$_4] p4] 4$4] 4D] 4$44] 4$] 5]8 5] #5P] -5Ժ], =5] J5] [5T] m5Թ] 5T] 5] 5] 5] 5Ը] 5] 6] 6d] )6] ?6d] R6$] n6p] }6] 6] 6] 6$] 6`&e 60e 6b 6] 7e| (7ex A7] U7x] p7]< {7]< 7] 7(]@ 7]0 7h]h 7]0 8] 80] 68]t L84_` b8 _` u8_ 8_  8 ` 8l ` 8_ 80] 9]P )9]@ ?9] U9] c9@] w9P] 9] 9h]t 9]@ 9] 9]X 9@]( :] :] 2:] C:] R:B`H b:Xe o:] :|]< :H] :]t :,^d :^( : ^ :4bH :@cx ;c 1;/^ F;$Y;/^ m;/^ ;P$;p/^ ;@8^ ;4b ;$0^ ;$;0^ ;$ <4^ </^ )<P/^ <</^ P<`/^ c<b |<(bX <b <8b <0^ <0^0 <(1^p <0^  <0^  =0^  =1^ *=Bc 6=Bc C=0:^ S=:^( g=\:^ w=9^ =x:^ =88^ =6^ =4^ =<9^ =8^d =\8^| =08^ >L:^ >6^X ,>@:^  ;>Xb R>`bT h>b >b >b >:^ >e0 >HT^ >V^ ?d^ (?,^ =?e R?e8 o?T^ ?W^ ?P^ ?^< ?d:^ ?Ic @$^P @e .@ep N@ t^ m@e @z^t @w^< @^L @@o^ @}^ @@eP @s^( Ao^$ !Ay^ >A̜^  KA(^  XA^$ _A_ fA_ mAC$}AC$AC$AC$AC$A(C$A_ B@_ BE_ BTB_ BF_ CJ_ 'Cbp Q3c  d,cL uc@ xcL c Xc cl ŠH$c Ԋăc x1c Ȝg @g|  Tg  g E`gP g, g 2pg bg pg g XgT (XgT D@h m|h  k" k" h8 7h8 _Th< h0 0j  j  j4 tj0 jd j Sj 0j j( Djl .j Ujl ~j0 j Dj j xjh j4 |j@ Fj ij j  $j j \j  j j  6Ŀj hj Tj( tj\ K|jH 0j j `j8  jp j aj0 ػjL jD @jD j ,jd jd :`j Upj o`j pj h  0h4  h -8wi ILwi h`wi Yi` 8i P{i \l i Li `9i0 A9i, 9i :i pXi YiL 3_i oh]i| 4(i\ 9`Ԓ 9h9y@ 95yl :xt O:TkT :k` ;\k ;؃d <L D S<x u<,g$ <Ti \=(a =g =h| ->\\ >Z >g >Pg J?e ?xf ?f @e =@`e| w@d @ _ AA`L A`` B8}p BBs  iB4ΒL B0 B\" CpT ACL8 CF CF DLx UD$(uD" D$$ D$ 5E< Ed=| E=p [F  F"  F# 3Gd$h kG G, G*d PH4' xH$. H|$ IA LI-%(mIT IH I "JiD" J܍ Kx" MK$| " |Kj" K̍ 3L kD" WLgH" {Lx, L4x Mj QM$j| vM$j| Mk@" Mk<" M .N& zNp&l ND Op`" xO Ȍd O< !P QP蚣 P䛣` P Pd  BQ쑣 QD  QL R  -RD$(PR R8x R9x< .S$ qS䑡, S@ Sա #Tԡh TԡT TP3i<" THĢ )U`¢d rU U伢 Uh U 0V aVX V V< V< XW4 W0\ X, 5XmL X%(Xij &Y bYhg4" YTFl YL #ZU ]Z쓨 Zؓ Z$ 7[i''][$fn< [`fn [P0 2\L r\ D \0 $ \T ~]{ ]%(]-('] ]^k" ^k" _8k" d_Tk" _tk" `k" ^`k" `̈k" atj Raj a,jH aj bj Cb$j bj" bHj bj( 5c(j  {ckL c`O'cg 7d4k@" ddʢ< dƢ eH$(Ie@Ԕ<" eє$" f\ Cfd  f|( fX('f<k" ?gl g%(g g8k` chM%(h0 h4 h~ i( Si؁( il i ix jgd OjX  mj'%(jb''j%(k  5k8 YkЃ k@ k켂\ k̓  kς %lP  l| lhX l( Bm  sm0 m m0 m 4n$d n(d ot .o B \o, oL oƒ (p3( Wp@ pl pD q(3 ?q q r‚l =r\  rt r( s* Js T s sx s,X Ft gtXx tLD8 tQd !uJh uVd u  vس zyH zTxyd ({yP {y {Xy { +| Y|, |< |( } 7}( f}8 } }|d }P 0~, e~0 ~j ~`t ac | , D)$ =(: xTl  ! =֎ Xӎ ʁ؎\ Ԏ ZXҎ ,ڎ| ̎X S #  ăɎ  G ATr4 ]P> XG` ̈́F` @H hD G( hLl 8L0  p0" ̿" ԆXƏ  dȏ o̽ | ć< $~hL" 5(i"  k" k" =w cw  w  с 8HL ]h- ,\ Ê= ( _0 @ ߋk8  s h< ڌxŁ (ˁ b́ g $DX tT4 D$ ܂ C̨\ q~ ďD   {H|| J 7|l z}X | l |' l hP   5^h X``h {P\ Ŕ| @a Gةl ~p\ l] Օ'($ UL8 ~t` \U W< f D ԗX_8 ,Պ8 0@8 u4 Ȋ   7 \ D_P fL D ڊt d  ͣ@ g4 W Ĥh FԻ 'ťO'pO'hO'/lO'OtO'o      D0Fn 18Ln 9n |4Nn "x@ Z&xd xd lox\ !x \r (x  «h  iD 0] Ԭi` ODԐ  L سt 'Lt \ǐ0 " ƒ vș p 8 t uk uh ԰ H Z|L P4 ˱l d%0 ^x \@   x  ! h _ 4’  & z  , dj 4j %\j ELj gDj $i _j$ Pj Dj  ǻj `j hj  >Xj ]j< ~j  tj, `j  Xj j  50j lj j j  j4 (j ?4j$ ktj j  žj4 j  *j$ Mlj qP'h h  ˿Xj| djD 4 k" K< k"  j Dj pj &j i  $5 P4X ;$h4 W`h( sPh h h( 8h0 h4 "hi ZpiX thT h PhT h 'h L(h q\h hp h ,j8 jD EDj vdj  j j  Dj 6\jP bj  j j @j, |j '0j Kj p j j Xj jH [j ,jT j -lj Gj cj j j j jt %.(%(/0('B/ /w{ /,%(/>%00$([0 >%0#$(05%(0>%!1f''P1'$(1a''1('1ǡ !24%(R21$(27%(2k''2F( 53kD" n3  3tn 4d ^4lE 4 48%(4h +5 u5y  5ap 5 6xK 26 x  ]6w 6 x  6  7t{ 77, c7h 7@t 8(ll K8䝂 y8<% 8@  #9 T9d` 9̡H :P r:~ :|` ;t( ; ;Ɓ, <4k( G<l| <5m <)m =*m =)mt =)mt =l ,>Dk >k ?+m j?0-m ?l @Ġl m@k0 @k @X#m@ LAl  A4m\ A̮k  CBk Bk Bm Bll 8CȨk Cl Cd+mt %Xd>%%dX>%X>%X>%X00  ,Y| kY  Y$ Y$ɮ  )ZŮ  jZ  ZHd\ Z  -[, n[p  [x  [&  1\ή  s\ \H \  9]\ {]|n  ]  ]pޮ  B^׮  ^$̲  ^Dz  _ N_ _ _Ү  `PB  \`ǯ `ʯ ` (aЩ la a8 a 8bܱ  |b$ b0 c)  Hc>  cЯ c| d  \d  dP  d  +eD  qeկ el e߱  CfИ fK f,O g}  [g(ů gۯ g  0hб  whֱ  ht iXfm(" nifm" iTfm" jH[m" 4jX |j艱  jx*h k  Vk;  k\ͯ kLد 1l  zlȭ$ l  ṃ  Um"  mQ  mݯ 2n!  |nH&  nG o* Zo- o oү 9p@  pX  p q,z  eqҲ  qt  rJ  _r  r(  rO  Cs s44  s7  't$ st$ tp$ uX$ Wu@$ u($ u$ ;v$ vલ$ vl¯ wǰ  mw  w>  x  Txf  xj  xTv  ;y  y$ yෲ$ "z  pzK z䌱  {( Z{,  {  { D|H |4  |ڰ  1}  }  }(@ ~P  m~|X ~<  ?  Z亲$    G(۲  G    5D    Ձ8H  %ܽ  uD  ł%  9  e8F  ӱ  ٱ  U$  L$   Et/H ԑ    8  X!  چ  +W  |(g  ͇O  @6  oB  D  \C< b  ;    V  '  `_  Lo    -  Bx@    8p    ܍hT  .@` t  ӎ(.  &4  yv  ̏}    rE< ŐDO  ^  lc  v    h:    PҰ  dܫ 0  ,  `E A    _  >  \Z  _l  q    a  (   Z  c9%(  R  J|r   -H U  P@h  h    X#      e`  Ü,'  "z  B ԙ L[m -dm, TJm `Jm ͞Im HmL 6[m oIm@  Jm@ 0em$ kem( dm  ͠hJm Hm KImL Hm ҡdm$ [m$  ,[m 7Im| YHm  }pHm pHm Hm ԢHm V% $!Cfm4 vlgm, fm ݣLʥ laT ):p" m8 z -ěm(" N$(m(J$ IH  BnmT t{m æLm" ~m Pm" AسT L p!D  &0 ^0T fH 9 x׵d /4 {仳 īkm km fgmX gmd ҬgmX gmd > wm$ m$ O PT Fw{ $m  ̮m Xm(" @m(" jm(" %( Pm %(ǰЖm$ 8xm" hpm" zؓm 8m" 8m" xm" (m ZHm" m" m" l`m (m" :Рm" ؠm" Dm" Wvm$ m8" ym8 @$D`%D؏$D$@&D&D,&DF&Do$@\$@ $@U%xU%EU%s\$@!ܐ$@$@`$@0p&Da$@\$@<&D $@*$@]&$@L&`$@=d&z$@$</ / 1/ T/ w1  ,1  L1 ex m" 8m" m8" m4" mD" 9od yPm"  h   = bTmP" hpd |m (m` Zm ئm hm8 -hm8 m m m +Pm _(m `mP ?m wԿm imt m` Pm m `m, m@ ȹm ptm mt @شm  m m8 m8 m Ԭm Ԭm m O|m8 |m8 m Am sm `m m Gm@ `m8 4m4 4m4 7|m\ _|m\ ,n m 4hL Pm   P F%(4G%(eL lV, p m D mx hm `  LmX" m" \4m" m" mX" p$! $,8$,$,G mH" smT" m m m Nجm ԣm m T\ 0h hP L O$ dF$ 8x m@ c|m4  m@ %(X +z dnp n On n, n  6D p%($(@  iXm 2 3%$ ^('e''P `on" 4qn" ;$( %(C xy  y ]J in" 8K 3hw w t I( l9 (Η mЗ dӗ An %n cn r&n T/n$ `7n` TnH yTn< Tn O x6n n !!n0 !6('!$ !Єq %"d@$ W"@4< "@< ". #|4 S#؀8 #U #n\ #Pn x$mL $Dm r%n  %[ %4; &rn$" C&l] `& vP & & '{P D'X o( ' '@ (q C(''r(̒X (  )nL [)n  )n  )n@ (*4nH *n@ * nH 3+7|n@ 7|n@ 7n@ I8n  8ľn 8un0 9LnH |9n0 9HnP : nT _:n :(n ;@nP ;nd ;Pnp g<nx <8n m=nH =nD 3>ܺnH >,n< >n ?|nl V?po pn@ pn @q@n  qnX qzn" zn" '{n" {n" |n" |n " }n" }n" *~0n$" ~o %n, zn n $tn {`n Ҁn@ &nd z,nH сLn (8n n ւhn\ +Ln n كtnH 0n( 8n( ބ`n$ 5\n ئn  o"  r n RoD Ĵn( φTo >o4 oܦn dn R4n Έdn `Pn 4n y,n ɫ ɫ8 @qT LqL ‹qP xq\ Jpq  r| <r \r čr 2Xr <r 4r Xr4 2r pr \ r  r@ qT O0n" 4q\ q j$q q q &@q mq ͔q@ "qL \Ln" q  ؕ,q` 5q ! o" e o(" n  ٗo =0o o 0o Lo Lo LAo %|'o  d4ox Ě(1ot 1ox F2o 3ox (o  Po ^|o o  ܜo o Zo  Po  ؝\o o Vo lo Ԟo  o Ro  o П`o  |o Po  o Рo 0o Po o Сo o  Po  $o Ѣlo o So o գTo o W@o  o ٤p| +4o  m$p  Xo  p G4o do Ϧp $Hp yp Χp #p  ho o o  7@p o  өph 4o  {p êo o So  po o -p vdp  Dp  p Q@o  p p ,dp  u4o  \p o bo o do  @o  Do ְo !to lo o o Oo o $o 5tp p ѳp p 0p| ɴ0 p@ o  Wo  (o  ϵo  o  Go  o  o o  9o  vo  o  o  -o  jo  o  o  !o  ^o  o  عo o( Io0 o od Qh_ |o8 =xpq Lo yPo vn  n \n Dol ol W0n, \n, n, 1n, }n,  n, 8nP bn hun n |un (Ħn i,o   o  8o  oL" D o8"  o4" `o" | o<" ($!!hd ;Go " &0jz Z =, < >o@ 4%o ]od o od o< U"o o$ &o< #o< T o<  oH o 5o R%o o %o o =h!o, \!o  \!o  "o Y%o o Eo o Ho %o o Eo4 F&o o =o o D'o  )oD >o +o  d:oP !=o| a:o L'o  @o 'o  'o  'o  L'o  3o 'o  2o U4ot o 2Ao $>o 4o  t.q Q t.q  4 oL" 4 ̅o" 5 @o0" 46 po" 6 oL" ]7 oH" 8 |o " 8 o " 9 HoL" 9 ox" : o@" : oL" j; LoL" *< o" < o0" f= ,o " = PoL" > oH" W? o@" ? o0" >@ DoL" A o" A Ȍo0" @B oL" B toL" qC \toH" 7D so@" D so0" "E g @$!g \$!g x$!"h $!nh $!h ̛$!i `$!Li Ș$ !i ($ !4j $ !j $ !k H$ !k $ !l $ !xl h$ !l ș$ !`m ԕ$!m \$!m X$!;n t$!n $!n $!"o $ !qo ($ !o $!p Ж$!Qp $!p $!p $!Aq <$!q X$!q t$!1r D$!{r $!r $ !s 8$ !es X$ !s x$ !t $ !Ut $ !t آ$ !t |$!?u $$!u $ ! v ($ !v h$ ! w H$ !w $ !w 8$ !,x H$ !x h$ !x $ !%y $ !xy ȟ$ !y $ !z $ !qz ($ !z $ !/{ $ !{ ($!{ X$ !8| $ !| $ !| ؤ$ !1} $ !} $ !} $ !)~ $ !{~ أ$ !~ $ ! $ !q 8$ ! X$ ! x$ !g $! ($ !L $ ! h$ !~ H$ ! $ ! $ !H $ ! $ !x Ȝ$ ! @$!] $! $! $!G $! ȝ$ !3 $ !Ј $ !m $ ! ($ ! H$ !D h$ ! $ !~ $ ! Ȟ$ ! $! $!n $!Ɏ ܡ$!$ $ ! x$ ! h$ !Y إ$ !Ő $ !& ئ$ ! $ ! x$ !N $ ! 8$ ! X$ !~ $ ! $ !N $ ! 8$ ! $ !] x$ ! $ ! $ !; X$ ! @r Po o |o Y Po (od ՘ 0o o 7 o Xod $od @ Dr qX ܚ qX  ԫo| Y o o< ޛ o  o( A . $oH Ŝ \v4  dx w P ӝ o  po 3 op ȶo o طo  @o G o o| ˟ Po o 4 lo Ho Ǡ o o : ho t xo o (o & Xo c o o o # do f o o  o  o F Lq" 4 ߤ o8 = Ho< o ֥ oh p o ۦ \  ox b o o o$ 4 hox y o ol  o A Po o ǩ `)p " $o$ xo< 7 <(p(" e &p(" 4o ի p(" 8p(" p("  p(" j p(" 8p(" p(" K p(" 0p(" @p(" , p(" w p(" @p(" hp(" X p(" Ⱦp(" p(" 9 `p(" p(" 8p("  p(" e p(" `p(" p(" F p(" p(" p(" ( p(" t p(" xp(" (p(" X p(" p(" hp(" < p(" p(" Xp(" p(" l Xp(" p("  p(" P p(" p(" p(" 4 Xp(" p(" (p("  `p(" d p(" p(" Pp(" H (p(" ؽp(" p(" , p(" x p(" p("  p(" \ p(" pp(" p(" @ Hp(" p(" q(" % q(" r p("  p("  p(" Y 0p("  p("  p(" @ p("  Xp("  p(" ' p(" t p("  `p("  p(" [ p("  p("  p(" B p("  p("  hp(" ) p(" v p("  p("  @p(" ] p("  p("  p(" D p(" p(" 8p(" + xp(" x xp(" p("  p(" a pp(" p(" 8p(" K p(" Pp(" 0p(" 5 Xp(" p(" Pp("  p(" m p("  xp("  p(" W p("  p("  p(" A xp("  p("  p(" , Hp(" { p("  p("  p(" h Hp("  p("  xp(" U (p("  p("  p(" B Pp("  (p("  hp(" / @p(" ~ p("  p("  0p(" l p("  p("  p(" \ p("  p("  p(" L p("  xp("  p(" < pp("  p("  p(" / Pp("  p("  pp(" $ p(" w p("  Hp("  p(" p p("  `p("  p(" i @p("  l q("  q(" b p("  p("  (p(" ^ pp("  Pp("  p(" Z pp(" p(" ! p(" V! Xp(" ! p(" ! p(" R" p(" " p(" " p(" N# q(" # hp(" #  q(" J$ p(" $ D q(" $ p(" F% `p(" % p(" % @p(" E& p(" & p(" & p(" D' p(" ' hp(" ' Hp(" C( p(" ( `p(" ( p(" B) p(" ) p(" ) Pp(" A* 0p(" * p(" * p(" @+ (p(" + p(" + p(" ?, 0p(" , Xp(" , q(" ?- | q(" - `p(" - p(" A. @p(" . p(" . pp(" C/ p(" / p(" / Hp(" E0 pp(" 0 p(" 0 p(" G1 Hp(" 1 p(" 1 p(" I2 p(" 2 p(" 2 q(" K3 q(" 3 p(" 3 p(" M4 ,p(" 4 q(" 4 hp(" P5 p(" 5 p(" 5 p(" U6 8p(" 6 p(" 7 p(" Z7 `p(" 7 p(" 8 p(" _8 p(" 8 p(" 9 p(" d9 p(" 9 p(" : p(" i: p(" : (p(" ; p(" n; Pp(" ; p(" < p(" s< p(" < p(" != p(" x= 8p(" = p(" &> p(" }> (p(" > hp(" +? p(" ? p(" ? lq(" 0@ Lq(" @ |p(" @ q(" 5A q(" A p(" A p(" :B q(" B q(" B q(" ?C tq(" C p(" C q(" DD q(" D q(" D ,q(" IE |q(" E q(" E q(" NF tq(" F Tq(" F q(" SG (p(" G Pp(" H xp(" [H p(" H p(" I p(" cI p(" I 0p(" J p(" kJ p(" J p(" K p(" sK p(" K p(" #L p(" {L p(" L 0p(" +M xp(" M p(" M p(" 3N p(" N p(" N \q(" ;O <q(" O q(" O q(" CP 4p(" P p(" P p(" KQ q(" Q dq(" Q q(" SR q(" R q(" S q(" [S q(" S lq(" T \q(" cT Lq(" T p(" U Dq(" kU 4q(" U $q(" V q(" sV q(" V q(" #W @p(" |W p(" W p(" .X p(" X Xp(" X p(" 9Y p(" Y @p(" Y p(" DZ pp(" Z Lp(" Z s p(" s p(" s p(" Zt p(" t p(" u 8p(" wu p(" u p(" 5v p(" v lp(" v p(" Rw p(" w p(" x p(" ox p(" x p(" /y p(" y p(" y `p(" Pz p(" z Dp(" { p(" u{ p(" { tp(" 9| q(" | p(" | p(" a} p(" } p(" '~ <q(" ~ q(" ~ q(" P q("  p("   `$ ! ̬$! $!O $ ! $ ! `$ !` $ ! $ ! $ !r $ ! $ !* $ ! $ ! $ !> $! $! $ !R $ ! $ !  $ !f `$ ! $ ! $ !{ $ ! $ !5 $ ! $ ! @$ !L $ ! $ ! $ !c $ ! $ !! `$ !|! $ !! $ !8" $ !" @$ !" $ !R# $ !# @$ !$ $ !l$ @$ !$ $ !(% $ !% $ !% $ !D& @$ !& $ !' $ !b' $ !' $ !#( `$ !( $ !( $ !F) @$ !) `$ ! * $ !k* $ !* `$ !/+ $ !+ $ !+ `$ !U, $ !, $ !- $ !}- $ !- $ !C. $ !. @$ ! / `$ !l/ @$ !/ $ !40 $ !0 $ !1 `$ !h1 $ !1 8q<" F2 ql" 2 q8" +3 |q" 3 |q" 3 q" T4 q" 4 Tq<" F5 q" 5 q8" +6 tq" 6 tq" 6 q" T7 q" 7 q8" 58 H q" 8 ( q" 8 0 q" H9 0 q" 9 D q" 9 D q" >: Dq8" : \q" ; 4q" o; 4q" ; Hq" < Hq" e< -q < lq < (q = "q A= 8&q n= h)ql = #qL = q > 'q 7> q > q, > \q > L.q ? -q Y? .q( ? q ? lq$ ? -q, '@ -q, [@ d,qT @ $/q, A X*q PA `.q |A +q\ A )q A H)q  A 8.q -B l2q(" SB |/q B $B z0 0C ''PC $(pC %(C t$(C ''C e$(C ` zD Ƒ D Ƒl D 萨x E `< @E %(fE ''E $(E |$(E u$(F '')F %(QF l$(yF  F  F  G @ iG %(G ''G ''G P ?H   H X H $(I ('LI \$(yI ''I ''I ''J ''2J ''aJ }$(J ''J h$(J $($K ~$(XK t K , K q@" =L w sL 4$ L @ L мT ?M @ |M q" M ԯD M ̯ AN ޺ N   N 8ݺ O T޺D 0O pT cO Tqh" O  P ` /P 4qH" Q }q(" Q $zq" Q 4q Q ;q 9R 8=q pR yqH R 8q S q qS lWqD S YqL S XqT :T dq" T cq" T |gq" U ,q" [U q" U q" U Xq" 3V Dbq" {V 4q" V q" W q" YW eq" W iq" W Dq" 6X q" X q" X gr gr * 0s" f s r r ijrP ; I U> > > X > \4 *? G o? \n\ ? HZx ? [ G@ ] @ J4 @ c8 A JL iA TPp A _  B dp VB ep B $dp B DQp KC O C tep C fp CD ep D Tfp D 4gp ?E nX E P E gp CF 7 F B  F 0B@ F K\ u" (] .u" ] uT" ^ lu" ^ (u " ^ >t" !_ u\" _ $%u" _ |=tx" P` Hu " ` u" ba 4sH" a tDu" a u" Eb u" b  u" c Et" c +u|" c 8s" }d \u d tu e uu Xe hu e Xuu e ru =f PuP f uh f tuu Fg uu g |u g hsu Ah xsu h \uX h su  0i ux i dwu i ,u qj ؘu j lu k uw Ak _w {k Zv k  k (Aw l :w /l 8w Tl x\w }l _wD l ;t" #m Ttx" m t|" 9n Lt|" n t" Ro pth" o Yu" +p Xu op Xu p Xu p Xu$ ?q Xu q Xu q Iu &r Iu r Iu r Iu r Yu" >s tYu  {s Xu  s hYu  s \Yu  8t $ot u " ^u [u u Zu u lu, v Xiu$ Sv ku v Lru \ru  € xru  čux d wu (xu  xyu o vu u  u k $qu  v(" m* p;v(" * v" > vL" w? vH" ;@ dv0" @ v " "A >vL" A >vH" B 8>v0" $C h>v " C \vL" VD v" E v0" E Lv" F Xy $ !y $!y \$!'z $!uz P$!z $!{ $!_{ $!{ 0$!{ $!I| $!| $!| $!3} $!} 8$!} p$! ~ $!o~ $!~ $!  4$!\ $! $! h$!I $! $! $!6 $ ! $ !ց $ !& $!v T$!Ƃ $! $!f $! $! $!V l$! $! T$!F $! $! L$!6 $! 8$!ֆ $!& $!v L$!Ƈ $! $!h ($! $! $!] $! H$! $!S $! P$! $$!L $! x$! d$!E $! $! $!> $! $! 0$!7 h$! $!ݎ $!1 $! ($!ُ D$!- $ ! $$ ! `$!k $ !ޑ $ !Q $ !Ē $! $!l <$! ,$! $!h $! |$! $!f @$ !ە $ !P $! $! $!O X$! $! $!N $! $! $!N $! d$! $!P $ ! $ !2 $! $! $!9 $ ! $ !) 4$! $!ٝ $!1 p$! $! % !X % !ϟ % !F <% ! $! $$!n $!ǡ $ !A $ ! $ ! $!m l$!ƣ $! $ ! $ ! $ ! $ ! <$ !w $ ! $ !m @$!ǧ D$ !B $ ! @$! $!q D$!˩ `$!% T$! $ ! $$ !v $!ѫ $!, % ! % ! % ! <% ! \% ! X$! $!E p$! t$! $!Y $! $ !0 $ ! $ !& $ ! $ ! t$!x <$ ! \$ !p |$ ! $ !h $ ! $!A $! $! |% !z % ! % !t % ! % !n $ ! $ !h <$ ! \$ !b |$ !߻ \$ !\ |$ !ټ $ !V $ !ӽ $ !P % !; % !J % !ǿ % !D % ! $ !: 4$ ! \$! 4$ !q T$ ! $$!/ $! |$ ! $ ! $ ! $ ! $ ! $ ! $ ! $ !~ $ ! <$ !z <$! $ !9 $ ! $ ! $ ! $ ! <$ ! \$ ! $ ! <$ ! \$ ! |$ ! $ ! \$ ! |$ ! $ ! $ ! $ ! x$!k t$ ! $!- H$! D$ ! d$ ! <% ! \% ! |% ! % ! % ! % ! <% !% \% ! |% !- % ! $! $ ! % !$ <% ! \% !0 |% ! % ! \% !| % ! <% !< $ ! |% ! % !j % ! \% !7 d$ ! % ! $ !~ `$ ! D . $(] X Zv" w @pw0 ZvT"  Lot R Xav av< Tav % Pav X 8pv" @av ,pv   %9 xɑT f ɑ ɑ   v \ v  dxv T{v 4 v` } v \yv  yv \ p|vh vh |v` F 0v lwv| vv 2 v zvx wv| % Lv x }v` dzvx ) vx v / pv n 8~v Hpvd * pv Z pv v  v"  pv  7 pv  n v  % a$( ߺ ; 3p l B   E ܵ  ( &  i sw pqw w` + 5w a đv< vp |v8 &w" V v` (vh vh  v< b vl v@ `v @ v" vl v / v w v" (-w8"  v| J v v" v" % vd k vh vh vh = v v< v  v d v" v" /wP" < v0 v v ? v" dv" `vD (v" k 4vt lvt v G v v $v +Xvh t0w4" vL v T|v< v v  Lvh v< vt 0|v` ~vt @vT v< jw8 0Aw4 hSw HUw -Vw Y #Xwd # *$w T$wp $lw  $w4 $Dw % x 9%x %x %w %w &`w M&wX &0w &wX 'w 'w  '  f( ( 7)l c) ) )p * 1*$ X*@ x *, x *, x *x C+(;x, +T;xt +:xl ,CxH D,ԩx" ]>xx" >\x" ?#$ F?" ?xE ?5  #@طxl b@пxT A$x A,x A,x GBDx Bx BPx0 DCxx# Cx Dx( D yL Dy E(y` 1Ey dE yL E@ y E0x FDx nFx FxP 1G0xl UG(( GDX G$l HL%(HH0y yHyh H< ?I> I@ IL J MJX J|\ J$# #K$ MKx" KPmz 9L`$ zLր L$  Lx Mx IMx< yMlx MxT MxD )NxD N|x8 NxP O0xl 1OxT Ox4 O萀< "P$ kPבd PlۀL PڀT Q؀` 4Q$ـ nQـ Q׀ QhD R >R$ {R  R ( R , Sh@y, `SH yX SD yX S yX S y4 Ty4 zTy Ty U*y Udy UyL Vy TV y  Vy Vdy Vy 2Wy` W+y X4y IXy4 X#yH Xy QYy Y y  Y8y VZ/yX ZlyX [,x g[y [(y S\!y \&y d]yt ]y ^yt X^y ^0x _ _d _Z )`Z u` ` %ay \a y a  a4 at( b Mb3y" b4y@" c`2y@" #dZ VdT dV  d  e 8 >ed ( we:y" fD>y" cfdqPy qpy ry nrDy" ry4 :s4y< s@y" sy( kty( tLy" uy uy@ uy@ ^vy4 vTy0 vTy0 v@('wy" [wPy" wLy" wy" 4xѢ, kxѢH xPz x(z( yyh SyЂ| yx҂  z?yh ,zy mzyx z$Oy4 zTpy z\Py@ ${y4 p{fy| {`Oy {Ԧy ;|8y4 w| y |Tsy  }hy  \}y }y< ~qy| _~py, ~Ty ~ay( Dy y( Hy 0wy$ Rey uyp y Fly p̬y` Á jy ky0 6y w(y ؂Dy *y n,y Xyt yP 1y ]@Zyh ty [yD ~y a~y y y ?XOy nyP tuyL yT Oy ~yT ߇Бyt 6Ty," yyL" 8yl" yh" Dny dNy0 y {y` 9(yp yh Ċpy cy uy ɋVy [y 9Xy| X Vyh yp Ì8?y 8?y 4@y4 +4@y4 ElL H  4 :,p }@; ˎTP \  &, YҊ 8 ڏ͊, 1y  n䥢, ڐ! ( Y@ 4  2 <# t! 3! b05 3 2  $ _` ۀT Gy 1Gy D ( G y Ǖy y Ry y y !yx" {!    ї!  y " cy" y" >xy" (-%(-%(,%(P-%!Fd-%!xly ÚXy" =z" |y" S7z"   T y bTy ќ|yl LQz" HTy(" y(" `M  X @z" @z" Az" Bz" @,`zD" paz" Pdz" rbz@" ߠ ^z " L@_z" .zd" 0Hz pPz @z $z |3{l Xp;{ hz {, `#{ ({ b{ 3{H <06{ z zl P(={x hz< z  z { 0/{ H2{4 }H'{ X>{ P={ 8{  { lzx Q@{ Џz  ,pz =T {t { { pzl" z ez z( z 7z Pz xz hz &z u z z hz X8z ?%(PΩ  DΩ  #0z J0z qLzp z zT z Bz {4z 4z yzX zl z /Dz` ^hzD z,  # j(q8 v D4 8 <` w X C r4 ҁ v *HX nD ,( zh z )z  lzh x 4z z 2z cz z  z z *z ](z z z z  94z i T{8" S{4" }\W{8" (V{4" dI{8" tH{4" (L{8" J{4" _{8" 4]{4" w|a{8" H`{4" P{4" p@E{4" Z{4" E{8" yN{" LM{`" SX{" x{" O{" ed&(\{p h('o{" xp0 /ҥ( q X( T8 0 N0 L o{"  c{0 b{ J 8 x0   ( Ѕ( >t/%(bl%L|{D" h$(|{{ y{L &w{ oz{ w{ x{ =| g:p" 7t" kp" ΒX   PȾ P تx 4|{ wE~" I~"  D~" lG~" P  H |H A| |D |"  2$ք| x (' |H { G{ { I S̔x x L` ԓ O$ z?  ' , m  8 S t8 ā Dt8   Vh> ? @ . cd,d   ( K4 䱒 T9" <5" L( ڏ   x U s" ā " v("  1  1 A  , DX   $ 9 xP i X   @ d .   a h (P (  ( & `` r  P A%( (# W N%( (  x T > u0x l\ /4 ػ8 U <" vL8" <" 8" mp,  ; H" " %" D" L" ,$>% !D>% !` +T@ " @ 8\ _" `p  @ 40 " LP 3 @  " d4 &  $@ _" H   x   t +  F$ a |$ ( @@  ` h $, @0 O  O  O  Ksd $ݒ 4  2 VX$ x|" @" 0" Od" " @" ( H " n  " `"  p" I!8" ! x" !" "" b"t" " @" "t" =#" z# x" #" $" Y$HL" $x" $H" *%|" |%0 %H %۔L &@" W&x" &x" &x" "'p G' ' ' 'L *( ^(, ( ( ( 1)  f) ) )  * V* * * *  .+L d+\ + +  ,| X, ,  , -0" L-" -" -" .p J.  ., .< /   i> > > /?X  ~? ?,  @  a@$ @ @ +A oA A  B bB B Bd  >C CD C\ D lDL D, D V vV-D V.D V 4 W `W8 WL WL, X$ض 2X  `XeXY('Xʉ  X08` X) /Y8\ dYT9 Y<6 Y- 3Z9 Z?@ ][0,P [* [5 \-\ D\4  \t' \R ]d%  @]( ]($ ] \ <^8@ ^8 ^ _ V_@ _Бx _ `|t t`ځ `w ap( ja` aM aBl cbG bTK cX 7cP jcP4D c`EX cx.` dpQ XdK dlN d1 e2 Je ex0 e( fT\" f[" f]" Vg$]" g;%(gh g蠨h h($(4h%(Rh$(qh$(h%(h%(h%(h(' i''+i$('KiT%(ki%(i%(i$(iQ%(i_%( j''-j$(Njp%(oj%(jy$(j^%(jC%(j('k$(8kA('Zk4('|k%(k('k ('k('l!%(*l('Ml('pl%(l''l''l%(l%(m%(Bmx%(em%(md%(mN$(m`%(m%(n%(:n%%(^n!('n('n#%(n('n''o%(6o('Zo%(~oZ('o$(ot''o$(p%(3p"('Xp('}p%(pw$(p %  /,; s$ :x <:x >) $<t / / V;l @2 3 <0 +X L% "4 d8 @. g% BP" `BL" [BH" @* + gh, &" `l0" "" ,P g* 4% $? 8  h  < h < h ,ol ?d T@\ x@ (?, (?, 3T?d WT?d {8 H  XE" dF" `G" Q`G%,!HEP" DL" :%(!I I I  <I lI (KT |L H( H, `H, H( MH$ pI ;\ ;p]" <LH 1<`GD O<G m<@Kh <I( <  0=`  Y= = " =Xk  = >G%!4>%Y>L%~>G%!>4%>/ >|A4 ,?Xa K?P u?\\ ?ls" ?'l @߈\ 6@,\ g@p @)L @ A$s4" EA AD Al* AD(\ =Br" `B(߈ BXs " B8߈ Bds" Br," C݈ rCDjh" CM@" CȈ@ "D Px" Dو D̈4 E 4E\x XEđ8 Eő@ E7" fl4(" f$3" fܦ$ 0g̨ qg l gy$ g3  5h3  h3 h3 Ii7" ti|7" i iL -j| hjy jv" jTvX" &k T" Skj" kJ8 kJD (lxD" qld|" l{" Qm}" m{D" m@{@" 9n~t" nv\" nx" n x" %oX" noj8" oj" oq" pq" Npĥd p(d pr8" qqP" qq" qiL qxʂ  r܂ Vrp rX rP r s,~ YsJ st s tσ 7t t t\  u0̓p ;u߂P u | uD u, uܑ #vP LvH̃ v  vQ( v七" w0 ZwL w5 wlЃh whك x  /x4 Yx6H x@ x8Ƀ yւ cy8 y4 yHD !z Yz\t zЇT {LX F{@ {  |4| J|  }|x |( |x }`v0 L} ނ }Ѓ }t" ~(t" L~A z~П  ~d ~كp < .P t$X < \Ղd 7< wT` 0} ӀH X ` Ј$ Ձ  /ӂ Ă ł( ӂ4 ${t S H, σ$ Ќ Z8Ƃ Âx фlт  ,h 1Q aЂ\   ׅ+( :o kx Ά,, p` ;̓ ~p-D ڇʂ` L UPO P$ 8 p -X iۃ  ̉Ȼ DL 0NH c   @  ($ e0ك8 Hs ͋\) ݃\" 5 i 0 H4 Ծ 8 mp ` ؍< ` N  (L L B *h a @ 8 $p \p $ 4 xzH R  䃃( ֑ ,,H fn 0 ڒ  &t `   ԓtx h Vt  Δ@   Y  ǂ" ҕ袃8 ,h |hڃ| $`  ї , j( ܃l  h h  A| wt Қ" d : 4 h ћU@ 8   *  C$ʈ  n$ r" ͜r"  s" 5p{P [& H  pC &,]@ Q^  8 8 Z - a(X("  " ɟp" V@" 1О  k0} ~4 Ҡ$ (,L ^Ȋ x ֡ts" =\S@ zP LQl T f B r\ `  Ff(  |S@ DO O $` \LUp @u " tl" ۥ  1 Q\ sx  x T 0 ަdp" Prl" "L" lhtl"   Ƨl + $  L  ڨ  4| o }  Ķ8 r "  G { 8P 4 S   D " ­h" lm" ޯo" @n" X" " ׳" " е" DԈ" ،X" Al" 0" `@" ׸@T" ě8" 4" N08" 4" `8" E_4" $c8" ѻa4"  R" \4" ۼP\4"  H " xP8" /8" ߾ TL" 裄@" Q\d4" " Ju" " L" t" " 1Nt" O" P" ZQ%hyG%dH%0!HH%J%! TP%3%\(J%!G%d@J%!pJ%`!\J%!EH%!tH%,!H%!DR%HI%h!$S%P+H%h!GXI%h!dR%Hti" li" q" q" C3 7" 7" ,~" r}H" }@" `&(!J XP " @ +xK%,Z" " TT T =N@" 8L " (A" ?P" N<" P;" C" mPE\" !L;" ˄l '  /P ?)x }`LX HJP" H" HK|" N" <„ 8̄ JƄD ~ ,d x LT5 `˄0    ^˄H (6 x0 10  5L << ]҄p L ̾8 U8 |0 8 J0 v P 6" ˄< <Tp ,؅ f GId J 8" E6(" 6" |ӈ@ l B@0 y  Q" ` 9K%@!K%K%!'d1@ FSH S 0R CU( U j  L%0S HR x8C Dh $0 p E, tx4 ' @0 *0؈T" w؈," ؈," dQx" ׈  ؈8 Ї( & H  l" lޅ " " H" Z$" |"  |" <" ԅ" x" _" 4" " w"  0x Xx7" 0 8 BP r (C< >t `+ o$*< T" 88" /h" d"  " Y8" (" 4*"   s( p" p" 7 " "" φ" /" 2/" ZX9" ӆ@" +" H-" " <" 5" G2" 2" 2" AT thd   Xԅ Il h… bl q *ԧ, wp2 dX" (`1 rb hڅ مL Ў8 Z  Ɇ" Bdžl" dž" `ƅ )0υ  Ʌ D M f|  Ѕ N4 P  \ @ ^| hP  Pl E 8 t@ d+P F `h  \ۅ * ʆ" ʆ" lʆ(" 0ʆ<"  ,ʆ" I  +P   Tp| ͅ ΅ eȅ - |.d }X P  8 6] ja _  _  T Lt" O8" ydH 0 | '4Zl" \" $" `^" Ԙd h" h" AXd" n '" -@" dJ$ J` QJ `"  " C,h" 0" " W " 84" " d$" " /" ! h, (" |[ P\ 98] |ӆl" xӆ" 4І" d І" φL" " φL" HІ" ц" 2!,҆" ! ц" ! ҆" T"$҆" "(҆" #φ" 6#LQ" #P4" $0N" Z$,N" $̆" %̆" :%(|" %(" %$&" -&-" |&%H" &-" 0'" u'" '͆0" '͆" (," Z((" (̆(" (ˆ" Z)ˆ" )\w )  )Ȉ *y  :*XO'd*TO'*PO'*\O'*҆" "+VH" +S" _,x , , ,̠X -蟉 L-̝ - .`" #., \." .xt .@" C/̅" /|" /hÆ" B0Dׅ" 0" 1@Ć" t1 ," 1Ɔ" 1υ" !2d," \2ņ" 2dօ" 28," 3ņ" 63܅ j3'" 38*" 3" 3 " 4d>0" ~4>@" 4L 5<L O5\ q5Zh 5  5|T" m6e8" 6xd4" 97h8" 7f4" 8w " y8Da4" 8m" 69L" :8" :Y8" r;Hk" ;Ά" ^</" <" ,=st" =@u" =Tv" R>L%t>N%@!>tS%h?pM%!D?dO%0!k?N%!?O%!?L%!@L%@!b@HL%D@PN%0!@N%!@PO%! AM%d!8AM%!fAM%D!AO%!A@M%!BO%!CB(O%!BI" jH I" ˕4t t4 48J" iX  ؖI$"  J," H" :`" Pb" WT" QDf" V" 44" 6R" j" _" dQ%h!S%,!ȥQ%HlQ%!P%!:Q%bR%P$i" Ӧi" h'(!t ,u HwH 5w" fw" (rt Pf T%,!hy" E`y" ql'(!©y y$ 'y" R4T%|zP xzH y ,}" CLT%n) 俉4" c " " ܟ  ," *" W$ 8 $ +4~ [0} ~4 ®0 pX" Q\" $ ۯ,L H Lț ̆X 袉" Qؤd" $8" .T%,!VT%,!dT%,!̿" Ŀ" É" F‰" yТ" Ȣ" t'(!@x'(!p'(!ȉ lÉ Ӊ Ӊ  ̉ 9Ή$ ߷ʉH Ypl , x A$ nP D ¹( ډ 0P )؉" H0P cՉ@ Չ xՉ  ׉ ԉ @ۉ\ D" N" Z" _T" fT" tT" d\  (0 `,t H X  X  +(L ^ 4H |H  t 0p Z   H  JH |L t $x T%: j  D .< <"  4" 9 jĈ   d L c$ @ D" p !x Y 0@ < _x" <   4 Q|" y숪    "D " \< (4 @" @ 8 }D 8" `H yTD < JT" ućl x@ R   8 4h" al 4  " +\4 <  A L  @ \" F 4  "  Q 4 p" @ W䈪 Ԉ ܈  \ t D H" ̈ N T ` H 'P" V  H < /" ^@ tH <X z(0 l"  @4  @  < " < < < p@  8 TD < 7`" kP  < N"  d P T eL" L @ ~X" << ( k| < $p4 d" 0 D@ P< 3@ D< &  X  t" UH H Q0U%tU%`U%V%V% HU%3U%]U%8V%V%W% hV%9V%gPV%(W%V%@W%,U%_U% V%V%# m@# $ Ep%  S@ ` Kd` l !\ >l!0 l!0 !$ D! 8!4   %  ~l%$F D X\X , X .P  t TP {|D   4l ` H D  NL L 8D G$X 4  < IP  4 " T$  ,0 B R1D t0 u, h1\ !0 Y1 0 0  01 F810 ~0 1 1 20 o0 \! ! c! p! +! ! =! Q! '! ! D! X! $l! ! ! !  O! c! $ ! ! ? ! W!  k! !  ! ! U! yi! ! w! w! g! ! R! ! G! ! 5#! ! 5! ! 2f! z! 5! ! B! e! y! \! ! 'v! ! ! ! ! z! ]! hq! ! h! ~! Y! ! D! ! 9 t! ! %!! !! #"! "! #Z! #n! "$! $! /%! %Y! &m! &! '! }'! '$! ](8! (! O)! )! ?*! *,! 6+! +! 7,! ,i! =-}! -! U.! .{! ^/! /! a0! 0! n1! 1 ! r24! 2! 3! 4o! o4! 4 ! 05! 5! 5! v6D! 6X! {7! 8! 8! 9:! 9N! :! :! ;! ;A! <U! <! =! =q! >! >! ?! z?! ?r! j@! @! aA! A! bB! BL! ZC`! C! dD! D! fE ! E! iF! F! vG! GS! bHg! H! `I! Ip! PJ! J! ;K! K! 0L! L! M*! M! N! N! O! |O"! O! nP! P! kQ(! Q<! |R! S! S! Tm! T! U! U ! &V! V8! WL! W! X! X! Y! Y%! Z! Z! [x! [! \! \! ]! ]! ^_! ^s! _! _! `! `a! au! a! 0b! b! 9c,! c@! L W'(| 0ڊ z| Ky ~, ي  ي  10يL ^0يL d( '(|يX 8p =T kVx ,ڊ ,ڊ EH< X `H ׊( DP Z8 ؆ #T  q@H pŊX 0 Ŋ@ O0 B< > ̼ > ي '(C쑊H 俊 *X0 c~x Al DBl 8 T> Q \Al FS @ 8 @ V  D ڊt Hx Hx !s :!`u$ g!'(! !_, .", f" "X: "d," #" %" I&̂" V'T~8" ' }4" (8" (4" (4`" P)" )|" *@x" ^*y4" *xt" +Ty`" ,xl8" [-y8" .4" ." /D 6/%(!/~%!/&/&/&0&E0d~%!l0~%!0~%!0|~%!0Q&1&81&b1 %!1{%!1<|%!1& 2%!42&_2z%!2{%!2&2%! 3<%!934{%!e3{%!3&3&3T|%!4L{%!E4~%!r4$%!4Ԁ%!4%!4D%!&5T%!S5&5\%!5T&5{%! 64&:6|%!i6D&6%!6$|%!6~%!%7}%!T7%!7%!7,%!7%!8z% !?8,&o8<&8%!8&9&19}%!b9%!9܁%!9&9t&):d{%![:&:%!:ā%!:%!%;l%!X;%!;|%!;%!;4~%!&<z%!Z<&<~%!<l&<d%!.=|%!d=\&=|{%!=L~%!>t%!<>l|%!s>|%!>t}%!> %!?%!O?}%!?|%!?|%!?D}%!/@{%!g@{%!@%!@%!A,}%!HA|%!A|&A{%!A\}%!-B}%!gB |%!B &B<%!C%!PC~%!C4%!C}%!D$%!BD%!D}%!D$&DT%!Wt%" Wx" W|" XT$" 4X0$" UX8ٔ Xה, XZ" ZYv2" Y@Z$ YdZ, "ZI \Z5( Z,  Z%([J \[@A [V( [`8 G\' \1 \L4x D]M ]xR ]D8 %^6X k^p&l ^őX ^h _@ P_ _%!_=" `8=" `b0 `Dx a Ial a a0X Ab ub  b HcՌ` c͌ dxˌ dތ d\׌8 eT e8 If mf`8" f4" (g, gT h4 ZhpF\" h@0" iC" 3jt>L" j >k,Č kČ k0` lx Gl" l" m" m,4" m/ mT. X4 nO  |L   t N l  \ ",  pT $  ( I     X Od l" h" <" vm" =, ƑL HƑL AőX HƑL 6$" p F(p h P 4 ld6" ͒ x6" ”l" YPh" đ  (`"  Ց" W 6" ͒ 6"  @ " l;"  " q " F ȑ t hǑ z     a Ȓl L[0 ͐ X8А 0ѐ8  Ch Wl 7 D<T" DxO M M lMx ^L `M  -`  cle`" p0" T" h w$" X i,4 + d8h V0L l7 3 U:   f4b" d(" d" J   \l" 0   ;, 4` t u`  -  fx ` Y| P db dd " d" d" l V "  Β$ !͒0 ^!|6" !4 !X( "Z "|  "R" A#D\" #L" A$ O" $pj" =%`X" %x" !&H " &K " k'L* 'dO'' S(HH )4 K)8H )} )xn #*|m y*Ppx * X, ^+  + ` V,s , -z Z-䤐T -( .0x }.UD .hb4 /|[ /Hd 0,`, 0 1܏` e1< 1uh ,2 2 2O 3ۏ 40J 4pS 4Xa 5Ll 5h 5t` .6|` t6$, 6Hn, 6@0 7Xgx c7g 7ԝh 8h I8LH d8j 8k 8Ґ0 9d D9HxP x9y( 9(z( 9dk  :`6" :ě :p ;l| .; y;\ ; < N< < < +=" `=8!< =m" =TP >t#h L>h {>x >t< q?ˎH ?  @@0 8@s0 @{  A` rA' A4m ?B손h B8׎ B ACe Cr DTh }DDdx D P FETnL E  E$ 0F@ dFDX F8L0 FϏ F`p 9Gđ bG G G4ʏ 0H ]H08" zH( H< Hxܑ 8IDΎ  jI I IϏ0 /Jd J`L" JH" 4K K K MLp L M\ Mܰ M, @Nܖ sN N;@ $O4$ zOHp OԪ PPQ P  P "QT( Q@E| QdE RH R :Sn vS$xt S | Sx fT,, TtĐ U@ UU" U U'< Vl vV(ҏ V.` WLŐ OW W  W' 0X) X>( Xk0 PY! Y Z( UZ\ ZDK" /[T1l" [9@ " A\h& \D>t \x t]ǐ4 '^5 ~^7, ^@7\ 0_ƒ, _\˒T _Ȓ `D `Ȩ `d a, Ca\ pa\ ap at\ b<D CbH hbh b( b>@" &c$I " zc|E" clC" 3dE" d0I`" eFH" me=" eC" Tf`>" f\>" gE " lg@ " gE(" "h,G" sh@" hI" i>" i|?" i@" oj" j`" Dk< " k6H" /l" l0" "m8" ym " mtm" 2n^D" n8k " odf " ioXb" oL^0" Gpf" p|^@" ?qDk`" qgH" rHc" yrH^" rD^" :spf " sh` " sf(" oth " tt`" uk" u^" u^" wv_t" vr" ~w" ws " Gx঎" xo" y$tD" y쇎 " y " Ez{" zpt0" '{ " {t@" #|h" |0H" ||" c}lt" }ht" (~w" ~䁎," ~xt" Mw" `" @w" xt8" ӀKD" XZ " U " 8Pp" `K0" V " K@" Zh" {$WH" |J" P" \K" ZXK" U " 7M" U," lW0" kMt" Ȉ[" 6K" L" * M" D" 8 " $ " " 茎0" x" @" `" H" " 䌎" " \0 " ِL " <P(" ؙ," "X" p" " qX0" ؓ" O " , ܔȺ V@@ H ٕmt" m" '  Nh" xh ̖r, %" z؞ ٗ0 :+ * x_ H  , Tܴ$ 8o" \P @ Kd-4 U  !\ T #h @`% wH| f ޛ@ ΐ< j! < (# 'H" n졏  G8 L@ ;$5  iV" x" %|" |" " V"  " t " " 4h" " X\" " " H" @8" '" x" ?܌%@a%!Č%d%!ҧ|%!%!t k 8  = d 4 l թ蹓H Xٓ [t ۓx 4t L  z输 0 컓  >h 8 “ t 6<L  խ '̓p z0 ˮ ГH yH͓P دо  P y$"  d Mdɓ  0  2  h Ͳ<ߓt % } ׳xp  b`X p @ -| f  ӵp 8 W   ē ! \ @4 ŷ ( tX ^  ؓ %T PT\ Tʓ d  3|Ǔ hPޓ ,4 Ϻ 4\ 8` kߓ4 Փ ׻ t6 C6 $ ,P P%( "h ڽ   0T4" xP > H C  9 ? Op" M8" |PP" s8, 9  8  '8 W8   p@ \@ La 8 Wx te  c t{  x 8u V  h@ Z o LH] {Y  [  & {  0ܔ 7֔ oԔ p8"  " pĔ" Ĕ" 8" |” " $8" D` " Ll" " v\" 0 " #h t0ߔ ͔," Dϔx" 8ʔ" ˔l" V͔ Tʔ" /ɔ," Д" hƔ" f<ǔ" ɔ 3Ɣ" ֔$" |ՔL" b֔"  Ԕ " %ҔL"  Ԕ"  :DH + <, b [  Ip d   d 5< <3 3b, \( | ` 4  PP ~   L $l pD ; m  ` L 0 | 8p k   h $ < : 4 oT D  d  L P ( w< l "l c$   3  P   oX ! D"< "( S!( H!\ $ " _ $" #" ^P%!$ $% !% J$$h t$$h $4 $0 $0 4% )'\ F&D cT,d  + %(`ԏ%|l%@%(0(d |'X 8 514 e1, ? h8 #>8 [> . |4 - 77P U(<  <  4<  <  A" sA" @8" &@4" u(A," TA" A" %!G4%!    s$ " $" |P!$" " B" t'" " EP" 0" T=" Xh@" %@Ӗ " T" " 4М" u藖h" `" *[" " `" hI" " tQL" T(/D" 0" ܏$" rM" l" 8" T" ^" \$" " " :P" `" Õ" Kt+"  H" ?" X8" ̗ " %,F" jl2 " " " _ܴ" d " 譕`" 1\" <" Ln" 4d " {$G " Ŗ8" 0"  " .xǕ" wX" Õ" .0o" Ls " f4" 8(" l" S"  " h" ƕ"  ǖ " P" `" 2 pL"  D" }" gD" ? @" `(" D" ԉd" 5 " " xOp hhHl P$ H 0וD" j% ڕ" 8| 7     U[ D q< }d v |t 0l4 u cL (b sl  Mp NOx Q R ?Q TP @S Ph I2x /t "l0 XB< p0 Vd1p ,4 .(" U((" |̷" ƗD" ȗ" dʗ" ȗ@" 4ė " $ŗ" ŗ" w˗" P " Y 8(" , 0ޖ" &!" !Ė" Z"" "Ɩ" # " >$Ö" $–" m%" &X" &d ' b'x" 'P(" 'X" (з(" L(8r" (r(" (@P )" U)(" )@(" )~H" )~$" -*02  *~" *(" +(" P+$L + +  ,ld" P,D(" ,rd" ,r(" -< -8 .d" `.Ѐ(" .\ &/wt `/j /L /<4 0D ]0x, 0L{ 0@x$ 0H 1j L1Z0 y1[ 2؂p D2H  2PL 2L 2`K '3d~ J3~ n3h~ 3%3V 4xݕ z4d 4r :5x^( a5!0 6P` ]60ߕ< 68] "7tؕH ^7_T 7& ^8Ԁ 8ߕ 9|\ R9h 9Q 9\ە M:p :ו, ; \;Ԡ ;9` ;֕ <0F4 L<hR" <q <@: >XA > > G?+" t?4=X ?j '@0`H U@dQ| @q @$ #A _Al AZx *BT Bx`d BN B w  CH@ CS UD` DdF D0L E- iE`V\ E$\ VF8 F` F #G, vG G,u .Hٕ H ;Ilߕx I I\I [J^ JpD J^ K  K/T K3  L|ӗh LJ &MV MDH Mԗ NLԗX nNq@  Nt COP_D O_T P P|| Q_h PQT/l Q l 8R  Rt, 6S4 S|K S@G  ^T4 Tؕ xUa8 U@ UX~ Vx BVp iV֙ V V V @ !W0 LW  xW W`  W W X X>  BY qY4\ Yl Y Zld SZL Zԭ Zl ZL&t )[4[x U[̉@ [xy [t \@0 J\d \p0 \DX ]@ b]x ]X ]\8" .^~" ^h" 6_}" _%!_ܐ%!`%!D`%!o`@%!`%!`Ȑ%!`P%!#a,%!Sa%!ad%!a%!ax%!b! qb  b$o c( @cl( zc( c( cl( *d( hd|( dڗ dP )e( keH e ( e( >f( f,( f`$ g ng4( gL( hd( Ih\( hD( h<$ (i, i( i|՗, jt( dj( j( j( Kk( k<( k( 2lL( l( l( m( lm ( m4( n\( [nt( n( n( No< o( o$( @p( p( p( ;q( q( q( >r( r( r$( CsT( stܗx s( Pt( tӗh uԗT vD( lv( vޗ@" w( Fw` wwڗ< w0" x" Ex 7 x9x x:8 3yP5 y0l yl1P z0 ez0 zL1  z14 {1, P{ . {,) { @|<p |<p }$ Z}$ },/ }  J~H/| ~@  ~.T Q  <\  ( x  j  (   W(   4* =" ژD"  " |" ƃ" ((" " ҄܂"  " #D" R" ن " Zp2" " d" :8" ~@V"  7L" mX" ȉ" J,$" " 0" ?" `]" -" WxA" ÌMh" h(" X9p" X" }f" ÎQh" b" S" " . d" x@" ֐`+(" p" X" ԑ|m" n " g`" X" E" tDB" ," J" fZ" Zd" mtbX " z" " v "  " `|`" <" ]lT" Čl" X " E̘ " (" }क़ " Y" Y0" ," ,p" C@" C=" " P֘" \D" ADJX" HH" `H" ߠ GY" " 苘" " 1" ң" vt" 8" T" S0" 8a" mx 쁮 G0<T t0Kd cW ĩtXp ,I| It _T; ! ޫ( t D ( w( ( ߬L( T( M( ( ( t( ?( ܃( u \( A( d( ů@x| 䅙( I( 4( Ѱ ( \( Y  <( )䀙 ox| 8y| 4( Aw| ԁ( ϳ( 쀙 _~  ( q 1Ă( {Hw| ŵ( ̄( Y  ( =y 삙( ׷v| %l( suD ø( D( czD Ԇ( ,( U<" ( |( ?( \  ]t Ds" ؼ$( \ 7T g"   ̽  F  覙" žĕ D" A" rT ԑ, ޿x" p N" " " " <  xL L d   H A" T8 T8 +|" bHp " d c < d  < Q" " @h %Ԓl Ԓl " 8M }hN  ؑ%T%#%V%p%%%;T` י" l" ʙ8  0Ǚh 5l j   , SP l 0 ` $dh Nř y$  ԙd    (4 U| ә< L0" 0" T [ę ĿT ̾ pT p֙ P<  8 ݙ M (   $" |" H` k $, %H a x 6   X2" ph &((S'(&8 2D 1 ($ YT"\ "8   (( "< S((1 & 6( T2" ((&.X h/    (# 9& \|%, |%, $  آP N%TpP$" O" Y =( tM F? t> |N 8I ? f= Jl 4O XF PA$ AL A$ 4F C  C  4x X 'P [, H  8 M0 UL  (` P d D 6@ X7t /8  l; 8$ < T5 d\2 \2 .<5 [l4 l4 P5 = t C| g  P h  T" k|V" T" xPX" $Q" |%!!h%AT%m[ g (_ !`D vg d[` ^( 3X _Z pYD pYD s@ 8b" \ L`   ܅, :Ѕ  u    Д ] Ja |^, _ x 8Lcp d j i R j" k" j" \" %Ж%Т"  " +" X" " TW" D" ;ޛ0" ߛ" dv xy< 0w &w c} s  tX ~H 0x rs@ l l %l Tl l x  t (t LX h   1  j   T,  /0 d  t t 8" jDL" P " =䏜4 p L l ` 3 ( g   L GL  p  | jp 4 %|X e,< x  M   8 Q|, 4  C  h š . 9 t 4 l x   ^ < D4 8D ) š$$ s X 0 \ V  HX (4 <    ?D " " d 8h 1X 4  0 `4   7P |x X qt( | DH a< , 0 xX xX .X RД v\\ l` (" 'Ȣ" hx(" t" " L" \HL" ࡛" `" !X" ^؜" ll  l` |lp 1|k li  D" @" Hd` pTd hP XT P4a  [ V aTb \ +hdx qXW  Q  Q |DT R  " V " ," h@" !N<" 7!x" !P" !" "N4 V"Ԝ" "ć "Xx #m|  Q#Ћ #}p #@}T $(d [$Ђ $pT $ % Y%Xy %h % 8&~ &ӛ" &ӛ " C'ӛ" s'P 'ܜ" ',`" >(ؤT" w(" (" (" )h4" `)d" )s  );ʛ," ;ɛ" ,<ț" <" =ԟ" =(t" >Ԣ4" >ݛ" ?|" u?Λ" @˛4" I@0Λ" {@ěT" @%@%(!!Ap%!GA%qA\%!A@%!A$%!A%#B%@!RB%B%,!B%!B-`" C-`" Dh-`" OE,`" !F NF F F  F  G, 3G G H LHK" lH4D H$ H I CI, |I>" I *Jl J" J K BK4x cKT*P K8 K` Lt L D L )MPp TMDl MT M8 M8 M MD((Nlx GN<((qN Np% Oh%KO\ OT((Ol%O \ $P`%SP\ Ph\ Px%P|\ ;Qt%rQL((Q" Qx Qh R JR }R R(5" S6" T7<" U?" V\@" hW." |X/" Y:" MZ`;" [x" [T" !\" \,G8" \E4" Z]I8" ]dH4" 5^@`" ^B4" _p,8" _t3" 4`d1" `42@" saA" a(." Wb=" b<" HcL0" cJ" nd+" d9" ?e` {e e쓜 eNh fTN f0Yh %gY glX hLO h,T| iVh i4S ,jU\ j `" jDP kY` }k\ kX^ ll] `lxZP l`" mM0 Rm N4 xmM0 mM0 mDa" >n`4" n|%Lnh|@" +o0}" Ro|" yobp oed oDo 6pPe" ppk pq q\h0 qLcp 7rd ar{" rHb rz" sz" Js}$" s 8" t솜4" _t8" tX4" "u4" ~u~(" qv쀜" ?w{d" w" y0|8" y" Cz{8" {ċ" o{%!{Ș%!{{ { ;|H s|` | |, |s "} w}Ę0 }" }" }` ~0x X~ ~ P ~  2Й ^Й P%! %0x pP R  8 Lx gT0 h ҁ\ )|l il l dt 8@d {ߝ," ߃" | _`f  ڄߝ@"  'L` $ XX a4x \ " ] 8   `H ߝ" $ߝ" @ `  4ߜ" ` llp l0 8 –ޜ(  6` b h    ( A nޝ"  ʘߝ"  (@ X ߝ" H ޝ" P  3X X }  ɚ  p =x eޝ" ޝ"  " \֝" 4 X( l ќ ld 0՝l |XʜX  @ D $l =  L aHX 8 `@" T\ * Xpn ܯ ܮ S\ߝP" $ ݢD Xߝ" 2T t   $  9  ?  8 i ĥ " &xF tX ܦG .G< vh @" էp Hp p ĨWd Wd П _r ةΝ, tT U0 Ū( I4 tx < %< ih8 0  #0 Wɝ " xj\ k  @" ЮD @< -L \| 䰝 ݯ% &L( vtt Ͱ莝 't z$ ñ(~l   TLם `֝ g4T lR T4 QRl O$ ޴O$ ( }|9d @, ~ dP+ q  @m0 R@m0 {H *|H L  |L$ OH NQ" st \ U|@" @ Ⱥӫ 4dԫd axН  d ҝ Q(ϝ `Н ,Н4 CΝ4 pѝ$ ɽ " ~ TY" 0< ( =LX"  4 ["  @" Ȅ dҝD dz4 8w< PT v`H p l     |7 fX   " I$" rT(" ,(" % e @" , ĝ 2ŝ k ɝ Ɲ 'tȝ n8Ý Ý "  ʝ m!h  <Ý )x8 g( Dl 0 . #E u4x P pl )$ G @" d"  T" sX" |" 쾝" h #k Uh L l Ph" {" 2d" D" ^" " tP"  " r" T%0t%8#Ğ%B`%0a%Т%%0$%0%8%0-0%VD%0%,%8%0H%,%03i" G&" tP   &" !&" I&(" iH'"  T X X'" CP'" k'@" &" |$L  HH oL )"  )" ((" ((" 9X(" j("  (" %$ L( sH(" 8(" '(" p l K`    '" >'" i'(" )" L$0 "d 3t"d yh <# t! [0  $L I<, \   '  f)"   h T T  h&" `&" 8&(" 0 E4 w 00  %(" S(" t(("    8 Ah '" '" `'("  8 lt ` |  S)" |)" % T)(" ! U `  p` . pL)" D)" $ )(" >< v@  (" #(" T((" }&"   (8 m&" &" p&(" X%%:%\d%@%%%%t%9<%a ԏ( D ,, ,2" k@, ), ) ') Q) {x,( . 0,x 2 H,, 1t, a) ) %h%Rt E6 \8 pg \xD lH D| 8 gh  || nfH Xd 0h F] | dVT v KHel o lH (6 bpN P ~P (~ iT5 6  6 6 \3 +2h 2h OD |U `d U  N4 U @ @r bpp (  '0l\ d䊞 슞, T ( Xf   P 0ux 4 )4 {" " ̑< FH tP0 8< t @ ԏ( <D b( ( X" 7Л" b,%!L" (  y0 ܟ$ "4P x$ ؛ 웞8 O &t L   ` [ P  ;0 *  o @4h H L ? 4@     <p [ W  p 1`1 y$  ܟH  T (П(   1 { X *l \hK  $| >=  l   "X o\X (vL  Wh 0 ؞0 BD ` (\ /  ~T pmt ` o՞ Q  ` g7 d . u\4" ]4" ^," Z =\ T |@ S  I ;HA@ {W PD  ^T =P ~,M  kt CX (Ϡ|   C OH  P ԁ    _   |`T Š /!u v! ! "l M"۠ ", "8ߠ (#( r# ( #pi8 $Xؠ P$Ӡd $pF $ .%b y%8 %Hp &}4 ^&,$ & &Tf F'q| '  'ʠ` 6(m (l  (4 +)L )7 )T ,*| *$ * H+| + +> ,L} Q, ,l 4 ,ܒ -@ F-|P -x  -0 . ?.P ~.P .lP .< ;/ z/<' /4y /0w  70`P w0" 0 0 71w w1 1  1l( 92P z2gL 2 2~ =3e ~3`p 3D 4N  B4  4i  40  5\4 J5gT 5TP 5CL 6 R6 6H 6ܷ 7t Z7lJ 7Јp 7( !8  d8D< 8po 8 & -9 p9ԵP 9<P 9' 9:' |:  : T ; E; ;t ; <T S< <6| <H =G c= =t = 2>l w>> > ?d<L F?/8 ?4N ?J @) Z@_H @L# @D )A9P nADU A A9D =Bh B8 B C UCh Cb@ C 'D mDhH D,d Dh T ?EM EȽL Et F WF, FP( Fl )G oG G  GX CH H H` I  _I I I,: 4JdA {J J@rX KtX PKp K) KS %L lL$$ Lx^ L AM ( ML M N<d ]N(  N@l N  5O@F }Oȩ O$ PP UP  P Pl| -Qlp uQB QД Rp MR R[H Rt %S x mSz< S\ Smd ET TH8 T<H U hU(d Ul U  CV VL V W gWi W < W(jp BX8d( X0l XH34 YP9 fYؖ Y,H Yl AZ ZWL Z [lT e[@L [t[ [p @\H \ \X  ]x7 g]  ]P ], E^@4 ^3 ^0 #_x m_Td _<  `ذ$ K`  `0  `SD )aY\ sa@ aܘ$ b- Qb bt b,p@ 0c {cH c4@ d` \dP* d dD< =e| e ĕ  f h if fJ f$ JgUh glt g$ +h<( vh hR iH?P Wi;P iHv iH 8j j jd* k$ dk$l kTn@ k}h Hl lld lg ,mt xm m n$Q \npG nZ  n\L @o< o8 o|l@ 'p  tp p,| qH [q  q$ qh Br4$ r0 r(2 )s vsT s4 t ]t܌p t  t. DuX u ux +vL xv vd w`$ `wt w w!| Jxr@ xd xD 4y y`H y0{  z`8 lzhLL zX {" V{HX {@ { @|v\ |h |P +}pXD z}T }`i4 ~`o, g~$ ~  TT8 \s, P A  L ߀ . }X ́ L jt    Z$ s  J@ @G C :|L  څ4 *D {@ ̆ $< nD $ ,4 a<   T'T py Ԗ Jw  t& @`` x   6tx 4 ڌX[ ,T ~o@ Ѝ " t8 Ǝ$ I k( H j@ d| П  ]D0 8  W    S    R$ (  S Cp  U;d   Y8   _ s $ iz Ù48 H ww ךx< 7d{ q\@ ЛЄ " )0" q" Ĝ" " L" %$!͝l -H [4 А ՞ B } Ÿ`D 0 H0 j 萡  %" v `"  " ||" ," y$0" T(" zT8"  0"  " <" " ަ(8" 3\4" >D" ݧ6t" 8," ʨ'" `" " l| !赢 R Ԫēp p V  ؗ( 4( H䑡, PD @ ¢ 4șX  `8" %@!%$; s   価" ؿ`"  3{" xk4 ǡ ȡ" ȡ" 8ȡ" q% !|8X" ^P" wP^<" 80" M$^," ҡ" `8" F6" 6" ˡ |ѡ V̡D 4ѡH /ӡ" WeX |l  Z L ӡ" O %!%!UH" :" ܡ0  a@סl  ԡh j@աX ԡT " (%$B` |4@ t0 R0  8t Jh 4 8-" " RP" #" #" _#" #" L" V" l" " {" @X" Px" " B" d|"  h" "  " [H" H"  4" (H" %x"  " }." hL" 4," /`h" 1X" < " <" #d" L%" th" `" <" @" " A" ]TO" y" y" jy" y" |]" ao" Z" "G" O" pRX" [I"  t" MDF"  G|" "Dh" u" ^" fAH" "AH" A4" 3T " lOL" Ah" h`" {" sh" gr" o" @" @ @" l" D(" " }|" " l" N" r" "   N(r qP " (o" yD" 8T" ;X" " A" %T" A" A" % h<" AL%$!p%$!%T!` " /ఢx" \" \" EXD" g   | \$ D" hit nX" ( = 8 s   3H t (H \T <L <| p 0(  $ F%g%%! " @ 컢$ @D ĺ(  9 qpâ Ţ(  Ţ H .  b t 伢 8ɢ Ƣ P Ƣ tˢd" ˢ`"  ˢ" ̢" ,%$! ΢ r D΢$  Ӣ<   Ӣ< O HӢ< ѢH $  2բ Ӣ Ԣl sբ0 8ݢp 9ޢ   $8 Y   D \  | " 4  #t S@ <" | 8"  XD  " .b\ N0P x|   H ,l *@x T, t, 8@ < < L k%< 3L \1t 3  8)l" T8@ {* t,` SH( .l |68 &6  9 P&" B" mFT $G< <-(8-(*D\ ,F| DP @-(@F wD-(FT $G< F LhH j,a He m   Nl 4QL LN g@o n n  L To o$ hc  !`b 5!(c< a!z !dy !y` !u "@wd ;"<|" g"8p@ "p "oP #do 5#do ^#4 #̶  #s $rT ,$xl R$x r$s $w` $t* $dW$ $`( %Po@ 9%o@ [%{@ %8}T %Z % &~ K&x ~&L-(&H-(&|< &ԅ &H 'P ,'P @' n'Ԋ 'T 'P0 'l0 (l0 S($ t($ (L0 (܌0 )솣 6)@  f)Td )荣d )\ * J*Pp *0 *  * +슣 0+x S+<" +< " +P<8" +,4" j,Σ| ,ӣ ,\ 4-ţ p- -" -X .| j.|ǣ .$ .$ @/x̣ / /ܡ / H0$p 0d 0 ` J1 10 1أ8 *2 p28 2$  38 |3 3ߣ 4 4 40 4L N5  s5D 5, 6 I6h z6 6( 6 $7 W7\ 7@ 7' 7Tx '8&8 \8L#( 8@+h 8 948 R9  9H  9x 90  1:D i:) : : Q;+ ;t%4 ; "@ A<0 n<P <` <0\ 1=, X=, =%!=< =<, >< >>T-(c>|O'>t> >xO'> 0? ԧ ?Hާ  C@TЧ @p4 A {A\ B ]B B  Bp @C4 CΧ CP ^D$ק Dݧ Dݧ &EݧX aE E` @F yFݧ F4 G  Gh 3H HL -I<T I I I=< (JT uJ J J K(L$ aKP KK@ K" L$~0  qLQ LLR LS MU$ 1MR cM4Q M M , .NX zND< N O hOt O( P hPPH P<| PX  %Q aQ Q  QX  Rd4 (R nR" R4\" RX" S (" eS(" S̶" S" T" ]T" TP" T" U," ZU" UP" UL" Vܠ JV` " V\" V8H" W4" VW|8 W W %Xh }X|4 X4" Y0" PY" Y" Y( Z IZ,X" ZX" M[\" [" \d \d O], y]xդ$" ]T" /^XŤ ^Ĥ0 ^Ĥl B_̤( {_Ťd +`pˤ i`lϤ ` Ф@ `ʤ (apɤ| iaϤ0 aΤX Pb̤@ b b`ФH 2c0L ac@̤ c  c  5d$ `d$ dd dål OeD  e 9" j" " ƛ0 hT,8 \ (p f!p L @P  P" P" bh+"  )" (~" @~8" d|" @||" T" @4" " @" 肥D" @:" l Ф /," " <" " D<" uh" <\" ","  p" " x4" " @n" X" " " *d" Lk" hh%! " ," " h SHĥ" ĥ" Ǵ `ĥ" H Tĥ" ٵ8" %dl gtĥ" hĥ"  )ĥ" mĥ"  ĥ" 5ĥ" tй ĸĥ" 俥 Uĥ"  ݹĥ" #ĥ" d@ ĥ" P" mål Lĥ" 2Xĥ" q|ĥ" ¼lĥ" ĥ" Eĥ" ĥ" ͽĥ0" ~%$%(%$,%$j%$@%(%('h%$g%(ץ H T٥ 3L| t4  4$ H֥T  8 6 (X-(Ul ӥ ӥ oX  X  T  T,  x  H8  \ 0 >dƥ@ vǥ $ƥ@ $ƥ@ &P q8 ,˥  ʥ ҥ :ҥ \, D  Tʥ@ ʥ HPҥ\ |" 7" " }hݥ" hե" " |   62L 0t $   i,t T&\ $*p 0 D { `N k l p |c b  )dc gbl a c0 3d$ te  tc `4 /b, gD_< lD  e Hj l Al" I4A" 9"   Jp Ȃ4 < (ȃ\ a  l   ,: " ;" |B0" nB" hB" qP=" `%!F`G B E4 E lHK LC S" V" xT" 0MT" LLd" D_ ~H8 ĕl <| ,  L  v#8' K 8K  CL| ml( l l :0m o` 0p Xj$ k  c c  1b qlc `  `( "<_ W e Hj  P` hMP e" 48" D" G4" 4G| VHP IL G XH ٧ /է0 e JX  << Vd  ;H\ ~h @  Gp   P   P T P  "l } " 졧" T" \ -(X    |%%+P" D l 8lt { " ܧ 0 C@ xϧ 0@ G  0 H  j ɧ @ȧ >@ }  D{d l#l" " bH# " h#" u4#" @"" q%!:Xx |:ཨx :  ; :;\t z; ;| ;| 2< <| <( %= f= =T = | ,> y> >P >0 A?0 ?LR ?R @(1 N@1 @V @tW A|T VAU Af A\g Bh cB h Bi BPi 'C8 mC9 C49 C8:x ;Dh7 D8 D [bh? br b b|t *clt lc| c| c 9d: udH; d; d|< )e`H e0a eHb e(n Ffn fHo fPA g@ HgtD gC g\B gA ,hhC ehB hE hD .i Ril¨ ia ib i丨 j EjΨ jԨ jը k`بl Nkب kTΨ k|4 kЪ @lЪ l@ l l( m è< BmHè md mw8" @n%fn%np nT %oͪ  noЪ\ o  o -pX ap( pTh p赪l /q q q rH gr̙H r  r8 !s ZsT sЪ s$ Qt t t䞪( tT" u Pu| uTT ut` vL zv| v" w Iw(" owpL w(" w0l x̣(" Gx p x y(" 2y y|" y|  %z kzT(" zx z P{А` {(" {w ||(" T|䡩(" | " |̤" }t" 4}" x}" }D" }좩" ~" e~," ~" ~ģ" " mL" @` D Ӫh _ț  ؽ ƀ,̩  LԛT 4 ŁLX \Ω( Fh lW   ݂d @* O+ L, 5 @ 4( qЩ P7d  !lϩp JLөT өt L hީ 'ש fΩt HЩl ̆ϩl |ߩd $<$ Q۩$  `0 ީ` 5\h& yHթ LjP,D  P  \R H[ Ω\ 2 hԩ4 D ЊΩ  )0 ZP wL t"  H   T&)( l$0 Ό" 0 WT" ~؍8 l" 8 lp"  x" &H $" 0L " JT0 L" ސ ̋H D" 8  " HD@ ," H Kt" z8 " ЌH \" @ 4" L8 0" p@ W"  X" (@ (" ȗ@ 7H" jDH ٘<" H {|" @ @" V萪0 Ț" T8 pP" H 8" P@ Ɯh" @ v`" @ '" bX@ ܞd" 0@ " ֟W  ]L  2X { ȡ4 ت cl Ȣߪ -֪ X|  4 U8< ಪ< d  `d 8$ު 4 t B P| ϧ( @@\ { Ϩ젪 8L vX  ݪD [ @ < Ԫ  Z " ~|̪ «TͪT $ Cľ @ 8L d4@ ̾h '˪ lPt  Ĺ + nD    (  h8 Ű$ , 7|" l" P" K"     \H , гt  4  l  T  d J\  '(Ӫh pӪ ж  +$  qH  D 18` ( ݸ跪4 9ඪ( 8( 0 `4 ˺0 8`0 D X d )  D ּl xl R䜪 `D (P 1D 8D ܾ|D &  r  $  @ H\H @ 윪 , [蠪 0 Ǫ  ɪ Tt$  ê Ū \@ Ը< L W L  <| L  ,̪h WD P@  <  "  "   Hd &!&!(ѫ " bЫ" #h `˫ " T " (S$ ?0 $T jƫ" X  @l S  ĵ    +  s䶫      K$  ȷ  Է  #L  k  d  d$ D̳  X      h|  س  p  C    \    gP    h  B    е  <  fl  0  `  A    촫  赫  et  췫  @  @෫  4      d4    Q ?j( Hl( Xd a cX |2H ; :ض  D  ̶  8  b  (    @T    H    h    (  F    @  $L  n  l( n( L&l  n  |O( *ML t4<l \5L P74 R2 x0  Tܰ  o  p 5p  p  p  p  ao  ,x o  Bt p  p  #p  nd}  p  o  Oz   谫  0  {pT L2 4o  p      dȴ    ( HL L p  /PB |@H HE  cഫ  Դ  Ĺ  JP( h $xb8 sd    ܵ  ]ԝL ( Di< G xM  8K  1lM  ;  9$ ,p  f8p  ( lL S | 0 <x H X yPw dP c蠫L ̡L h0 Sȯ0 0 (0 C,x   䳫  Q0  p   p  D      7  $    *P0 {쥫d o    p    ,  f      \  P\ O  R    | Lx      E,  h    >P( hP( p~  9o  o  Ho  6 o    hp  5 Dp  \p  tp  4 Pp  Dɫ(  3  L   2 lɫ(  o   1 }o  o  )To  $o  P  +t    8  -L n  4L 1d L \  6    D  ;ǫ 0o  o  A( dȫ  t4h@$ 4, 4`( 15@0 5K 5?$ "6, 6$D 7tM, t7F 7:D V8< 8hx H9$1@ 92 9-@ >:|( :K #;h  g;N$ ;G ;=  3<l3@ w<d)@ <4% 0=% =3  +>PM$ q>/ >5@ -?d1 ?0@ ?H2@ 4@7 @P:@ @5h wA`7@ AT A^ B$a >B$a dBa B b$ BX@ BW BQ&0CC"  WFt&F̜ Fx FT FL Gu4 ZG   GDЬ G-t G< (Ht$ mHl H |/" 9 s< 3 =? C4" VF" ͋T" AT ydQ ͌dQ !xOp pE ΍G dF, >@DP Cx Cx ?P| |N@ $ P4 !H gqL ND 䕮$ K dy Ց0Wp 10Wp  Mp ԒOx 2`I H H| :H| p(K8  ɔPv  VH, t@ xZ( ,H eoP | <` 8P hL | L$ Qp\  ЙT 4| gZd @uX EPL kL  XJ W WXX śXJ W 9XX `K ޜP4 b &x O̊( x 4H ̝0[  8 )XX nD Ȟ4" UP4 uܠ मT ۟,  D0 K̢` ͠l` S8    x x E st T âd )40 , Į8" hĮ4" h80" Į4" ߤ&! 0|" UPX" " åhk0 |  6n ll c" dH ͭdH g| )ex Ip" mLq" f Үd 4hL @q" \t" r" h|" s &( &,!T &,!ܲHq" px" 0q" ^Pqx" @ ij<{ ̆ 5  y ԴL   M| hxD ׵  Đ R L ζ  L  ̷ ̉ Ml~  L B̀    & k} ƺ{ L U ֻtz 0 {̌ ȼP 4̃  w     V, @8 d fD x8 L< ?8 \ {X 4 K4 ~@ "ed l  ( 8ʳ,  ` =\ H  nԹX" ,X" lrL ~T 5t ڳp |Wh < N(( p X γ, ѳ, kTӳ, ӳ, \Գ, yd ų \= `T u : p` t~@ VHP" P" 8襳P" ޳p ٳ d v !dz, |   <Ѵ` `  T  D` (ȳ, gXγ, xҳ, @ zD " ʶ" $" oɶ$" Eų xx@ \  +Y  ó ɴ ó 4 aH x  cXX \ɳ,  D c8` Գ,  @ _!P X ?(m4 dN$  v   ` =, `   ` [ |ͳ, γ, w ҳ, ӳ, 1ӳ, Գ, l ` ML  & h mJ T d| H Lҵ K,ų Եl Ե C}  '    o 5ɳ,  ʳ, L̳, \ t` h ` &` dz, 0 J p p$ UH -@ "X Lֵ, ų %PH  0 `b$ 4b i D yP `[` n  f  p ̘0 c6  ` L nн  ` $ͳ, {ɳ, Գ, 9PP еd +` T"D #('h @ 4.@ -t.@ @ NH Sj| lj4  8 d, lc, T >@ ? md 5< lس 9HM M   I  ]  컳  l, t DƳ, Ƴ, 4 Tȳ,  X ^ ͳ, \  ̳, ~ г, h8 4h  ,@ 5| Odl ;@ d@ oܵ @= YP, ų ij *[  e, H aó  Ƴ xT ̳p RL\  Ƴ $Ƴ <L ` H `x I P\ | $ų   [u 4x  -  x Fx   /Ę , ˳, - L ` ɳ, ʳ, U!̳, !( " "` " |#ѳ, #=T =$h $؄@ $bt h%bH %)\ .&Lѵh z&5T &3 6'.@ '<+\ '<[$ q(Hb (l@ T)` )ϴ8 * | * *<| 6+8 +,y M,< ,<\ ?-0 -Lų -.lp .l` / v/ȵD /ݵ 0dճ  d0Ƴ, 0dʳ, (1t̳, 18 1 ` X2ϳ, 2Pͳ, 3<г, ~3 3 ճ, G4"P 4@ 4Pp Y5@ 5̵ 6 n6M@ 6ch e7c< 74Ƴ 8 8 9t 9T0 : :Ǵ D;|t\ ;̝ 4<, < < z=pƳ, =Ƴ, @>ȳ, >H̳, ?ѳ, i?, ?, /@ҳ, @ų @.( GA|, A׳p B8 " BT" C4P EDӵL D ,Ep gEi@ E`l LF FЇ PG} G KH´ HTݴ ;I~| ITų Idų 3J޵H Jų J, Kl˳, qK, K, 9Lͳ, L@˳, Mѳ, eMp M,@ NܠX N<@ O³ O O(4 PPЕd P`p P rQԻ R R( OS0@( S , ,Tγ, T dz, Tʳ, [U̳, Uϳ, %Vhг, V8ճ, Vų ,W_X W0f X; rX@ 3Y<4 Y\m ZkL nZ l@ Z(ش4 Q[p [4[ \ų K\ ų \| ]P ]x ]ƴ  ^4ų ^ U_Ldz, _p>4 `L q`ҳ, `, =ax0 aDѳ, a" `bX ba tcgl cų dų [d0n d Ҵ 2e|̴D eʹ Qf<L f4{ Pg$" g8$" $h hpL 2i` iЋL 'j j` jlų 3k k4X l {lL l Nm, m, n˳, nγ, n`% Ao`-L o-@ pXAT p-@ q= qƳ qp( 1r4 r$4 gsų sP %tDh tn< u\ų \u\" &v8" vl ewų wDd wT sx,, xȳ, Ay˳, yճh zϳ, xzг, z>T G{ѵ {4 wpѳ, H7d c2L Ɂ F Â=@ 1 V Ӵ<" j\ش" Ƴ ` ޅ8, Td, ʆյH 9tų {̨ ևXֳP :( , &`  L (\ ų ڊe lp+ 襴$ NTs( ɳ, #0L , ȳ, d˳, ώг, :Գ, ų Pq mT (8 ų ّx [  i ד, ., ô$ ų a; ٕ 74ô Xp t ( lL s k h,j@ ճl N<ų |ų ښ0ɳ, H0Գ, # A 2L ų 6ݴL  |  Z ޟl % X- T` - * ߵ PL  Ŵ =t l |L e  F8. z 6|  | tt 仳 BD#, 8` 7 7  jD ( ؃ 3ȶ," ȶ<" ж," Hж<" M, " z0" ģ " 0"  " 0" ,T " [$0" y " \0" $ " 0" \ " J,0" j " Ģ0" ɶ" ɶ" ?ȶ" vɶ" ж" ж" 6Dж" mж" P" L" " T " 裶" 9䣶" S" g죶 " {ࡶ" ܡ" " 䡶 " x" t" 9 " P| " g" " X"  " H" D" + " C L " [" |" ("  " " " " 7 " O&$!&$! &$!| &$! &$! &$! &$!' &$!> X &$!V!4 &$!m"<׶p " ׶ "4ض #ٶT '#ڶp R#۶( #۶l #X۶< $Pڶ D$ $ k%t %\, ^&(| &l߶ 'ݶ -((ݶ f((ݶ ( | (L8 ]) )($ A*LX *x *`| D+ +X +| 9,H" [- " p.H" /" 0pt 0h "1h ^1h@ 1` 1 $2H 2 2P 22 3\ s3/t" 3/" 3 ;40! r4 4` 4&" 58,8" w5+4" 5.8" O6p-4" 6'4" !7T&,!^7l2" 7d2" 70(!N8lG< 8G< 8L<< 9<L K9P?H 9=@ 9?H 9?H 6:@< q:AH :@I@ :9 6;H=@ r;lA8 ;|3H ;,G@ ?<6@ |<4< <=@ =(@@ J=F@ =F@ =A< >h@H B>(B< >I@ >>H >4@ >?dB< }?H ?G, %@4@ e@5@ @=@ @I SA2D A;H ABD BB< WB24 BEH B<@ C@@ aC,A@ CHKD C:H ,D<@ pD$FH DL8 DP6@ >EE< EI@ E:@ F?@ VFTEL F7@ F7@ +G@4P G3< GL, HHMD _H\:< HL5H H 5@ 7I7@ I8@ ITD@ JC@ WJD@ J C< JD@ 1KP>D zK ;L Kl;L LX9@ XL9D LD@ L6@ 7MJD ME@ MP7@ NP8D gN8@ NK< NMD LO\C< OC< O>@ 3P5< P9D P8@ Q>< pQ6@ QKD RKH eRXLH RLH S28 CSlF@ vSM  SRp TMl HTRp TtR" T|{  %UTY<" (Vg" V jH" Wl H xW\b| W@a Xe FXb  XhD X@gt _Ye| Yi0 Z^` oZf| Z\ [d H[[  [\ [\$ \Tk" K\\fP \4g  \f  ]dk" ]&]h ^d> V^ ^ ^x84 6_7 _" _ ` Z`  `t  `  at Xa, a<t b  Gb b b Oc, c c\ 3d< pd d )ex de8 eh  et ?f0x f f g g h| }h h|X  Cyȉ yu gz~ zt j{wd {܄ 4| |u |D }  }̅x f~v,  x Gx r hl [r hl { XtϷl 0з( ԁз( dL PXз( з( ̂ѷ( , HϷ( 4( ă pӷ @h,  0 ̈́z  f( 踷8 X8 #,8 bX -$  0$ p8  , 0 px `2$ EH K3 η( ܉̐ ޷  ^(    ! bη( , l %$ f05 T  cη( ҷ( η( ) k  8 ҷ 1ļ4 s$Ϸ( D  9@& 9| 6 %: r" ȑLڷ ( N<( d( Ԓ( ( Zܷ( (  #ȹL f4 4 lu` hз( Է px 4d$ x8  ѷ( l D`F t ޗttx #% з( з( 2Hܷ wԷ (շ շ F8  Кp | ZHѷ(  t )F, x:| Hط -Ķ( st    g` P X S|  , l" {(D Է ,@ sݷ   H l l ֢9t GH ft ķ@ ÷, >Ƿ Ƿ Τ4  \ ^)p ͥ, x/H _ 4%| ! jl d 0Ʒ E LϷ( רxɷ Ʒ i8BP BH /L eh۷ \̷  CTt  ׫x ! k < 8t J|    ; $ Ѯ 춷( gԷ  t H  Ƿ ްdl )8ҷ t9t (p D), d-t ӷ Jӷ pt  .pѷ( z0$ ִl #.| 4t ַ W\    >h|  ط %p r获 ?d :' X'| p)| L? | {t ַp D׷ ׷ 0  .l | | }`| ̾   j ̓ U)  p ;<  t +˷D {̱ >t :(| @  - t (x Ot  侷| O  x  V0  Pͷl .ѷ( h η( \η( ѷ( 4η( P@÷ ͷ( ͷ(  # a 5$ @$ x·L ·| Mt( |l U\  V\ V` hV( xU V( H; 2 <T6L t:  % < X9 8= < P> = 9 s Ts( H|s r8 $8 S$d \7H 7D 'H" Zx" LxY|" ]|" pl\" ,Px" N|" E$S|" Q" Uh" HJh" T<" lT4" XGH" dp" ^b $c b @c" tc" &x #q PD4 xp0  W Q `Ph D Љ@ cDux x &?4 p(P  A$o( ul   )N X P A   ?dRD Dp| Tl +f< x4  n $P  ܯ lhO ƹD _>d0 > T ? X?0 ? P ?q O@ @ȸD @  FAD  A` A ?B BǹH B 8C` C< C` 1D` DǹD D\ *E  sE4 Ehu Fv uFy F~ #Gv zG4 Gɹx "Hʹ vHŹ H8  I ID I`x 4J  Jι Jh| 9K`} Kp| K ;Ll L L` :Mx M$ MY JNaD NԹ Nl OO O@ Où@ gPpϹ| PPZ Qad qQǹT Q˹( !R yR䕹 R̹ )Se< Sh S,0 FT0cd T\ T TU0 Uh V| bVTL V(ȹx Wx mWL W] WXd XtX Y۹ kYHǹD YĹ( ZĹ( yZ  Z  O[d [l \d c\xչ$ \չ4 ]޹ t]<d ] t .^d( ^0 ^׹8 B_$@ _g` _诹 W`Yl `at atT qaT add .b b́ bڹ Qc c8gT d rd dt` 6e eϹ eй `ft f  )g g g P hX >iP  i8  iD  i  3j\  pj\  jI j:, ,kE kE kD ,ltGL" glH lx m jm0| m1 n`5\ pn84( nH2 o>( Box/ oLd" oKl" /pL" ppL" pdM" qO " q(" 'rl@" r|" r(" ^shh" sx tx Iti tā tc" Jud" uW  uDV HvDV vPb\ vPb\ wUp vwUp w@U x$P x$P yP" [yp" y " y" Cz" }zD(" zd b( d( ($dP j` BL" XF0" hDl" @@" ?" e^$ ^$ ^ O'.؋ g^ ^ C$Q xt xt l 䨼 1(30 D  f$T xL _X  h g K|L  |Z e Ԋ PȆ , $ `a e dY HPZ, x[ R X 8 4 , ̝D \  p G( 즼 ̊ tx" v|" l|" f챼" ̺x" VP|" Ľ|" HD" h" 3贼h" @" 8 J, ռp 0 ,c o8 2  ,tü p xU8  7rd żx XD =p  $ `|  o Ǽ d dt$ > , 4D Pʼ  / v  ڽ -0 u  ʽ D d 8 | T B쫽   xH `   ߼x B|ݼ\ H pݽ 'X t4 P 2 ߼ dD Dd  m( tP M  4ݼH H )d ot ,nh rb L H8 b   TlռX H64 8, GL  T1@ a  p *  ||7    `޽  Nl 0 U;  ,+   ^ t $ռH  Hw l @ ͽ   3p l 5  % 5 | 8, d +   H 6O@ t  UɼP ݼ0 {8" z4" - _x0 &L  ^l2 # . Z/   (| @  (  L <0  y  < 4  5t   t d@|   l D|    t $  j|  "  W\     e  X f߼    p L{" F  w  h    3 W|< }t | M   T|x E@" {D" 4   2 d y d !| !, "< ",8 # e# #@l >$H $! $` M% %x¾ %0 9&pd &<4 B'<< 'ѾD ( ־ [(\Ӿ (P) W) )<D )h S*LȾ  *L *;0 R+ؾT +H +Xɾx W,, ,ʾ -ƾ8 d-T -." -" 9.'|" . " .ܶ / `/  / /0  70." s0$  0x  0  1  H1B 1 17 2T ^2DE 2S 2K 33,F {3 3|9 4\D V40P 4tC 4J 15L z5`N 5HO 6= V6y 6R 6`( 47R ~7|e 7? 8I \8xM 8> 8Q <9> 9H 9@g :( h:@ :, :j I;L, ; V ;d: -<\s y<,u( <( =(n ]=(( =8 =[ B>G >( >c )?Tu( v?؅( ?䐿 J@ @ Xt ?A[( Ȁ( AЉ )Bll wB i B䂿h Ctr cCx C DP( PD舿 D DUl >EL; E, E$\ IF, FPw( FA ?G~D GxwX G(w( 8H ] H4< H 1I} IW( IW( -JZ( J8` J8b )KDt }KG  KH %L$qP yLZ( L|u $MY zM${ MZ( (Nw N^X N( 0OY( Ob( OȆ( ;Po4 Px( P( SQ(/t Q/ Q$/ Q / /RT yR RГ" Sp 9S  nS  Sؐ  Sē  T&ATК T$ Th ?U$` U "V V Vp WXD" BW@" tWXʿx W|8 X  QX" X| X  Y  WY\" EZt Zt Z F[pǿ [ȿ \Ŀ \0ʿ( \Xݿ" ]@ݿ  H]Lݿ  z]\ݿ" ]ܿp ]Ŀ  ^Ŀ  =^$  ^X ^  _  <_| _Th _dT `DP Z`, `, `, 8a$ at, ah bP jb b\ c Xc c\ dT \d d<, e pe e f uf| f &gh g| g<X 0h h| h >i| iݿH  ilݿ .j" `j  j  j" kd  Pkp  k  k&kI," @lx zl  @m m+ n+$ yo<@ o8 [p p< p ^q` ql [r r sP| s0 t tD u( Cv, v 4w( w@4 xh qy  3z) z { m{ {I | Q| :}R ~Dl y~L ~p2 J   H ol! ʀ  %4&!n>%& !>#& !7?L#& !?$& !?,#& ![@#& !@"& !"A#& !AL$& !Al#& !ZB$& !Bl$& !,C,%& !CL%& !D,$& !mD #& !D$& !NE %& !El%& !2F#& !F$& !G $& !yG2  G>H" ZHt5" H$@" I8" WI(4L IxL  J ZJs JPK( J +Ki` KQ@ Qj Q  !RP mR4 RX S^( TS S Sl ETA T  T =UeT U؏ UԮ >V` VX Vtk FW W@` X4 >X@ X" Xr" Y" `YlV" Yp`" YF" 9Z~" }ZpC" Z[@" [(" M[l" [||`" [fL" L\G@" \F  \`E  \" /]A  b]Pd  ]|A  ]Dd  ^%&-^X" ^x" _h|" w_|" _\" ``h" `4" -aT |aD; axk bLQ ^bhQ bLQ chQ chl cHl  d^ [dt d` dt8 /e$& ve; e)< fL Nf.@ fl fD1l Cg7 gk` g Rh hX h4 Qi8 i iL}" j(}$" BjR  jUp jXZ 4kpW" zkXd k  v =\ avpO  vC4 wH  awK wTF wA\ _xo`  x $ y}  Iy}  }y,"  8T" > 9"  7"  =" V t3,"  LD" / G"  F"  2" a B"  @" 1 $  8  , 9 (  0  4 O p;"  0"  &" / $" r @&"  %"  4"  t5"  -," 4 H&,!_ \H&@! I"  I"  8K  ? MH s   M` 8! M ! `MX ! LH "  i"  " ,O "  <#  # p # P # LQl -$ ZP Y$ @O $ ܗ $ Rd ?% 0s u% sL % u % qh && _ b& ,th & S & S ;' DO n' O ' LUp ' $ ' ؏ =(  (  ( T )  $) p J) v o) Ԙd ) ę( )  S* 4X * 8 * L 2+  + x , <P `, dh , \ -- d - ( A. D . @" .  / < n/  /  0 4 0 ܟ@" 1 Ȼl ?1 d@" a1 ` 1 @" 1 00" 2 ,% m2 0@" 2 ( 2 4 53 ( V3 ܫ 3 t 3  /4 ` 4 4P 4 D @5 ذ( 5 l 6 l0 6 ȩ 6 T k7 lp 7  7 x <8 D 8  8  8  O9 ج 9  :  ]: Н@" t: <" :  : HL ;  M; @" h;  ; p4  < X <  < 4@" < " *= " U= ȟ" = p" = dd = P" > t" %> J&!E> (K&!f> J&!> K&!> J&!> J&!? K&!? ܠ ? d ? @ @ l s@  @  @  ,A ( fA D  A 0 A l B p" 8B h B P$ B T B 8 9C l pC  C D C X !D q pD tH D  E u, KE 4`T E h E , 'F P rF x  F $P G |l sG l" G D" rH " H " `I 0 I l" I  " ?J  J T K 4 gK ' K , L L {L X L  M d  kM `" M xQ  N ̻ gN Nx N |h O M0 eO `" O  P L$ WP ( P $ Q X mQ 8  Q I .R _ R x R `" CS F S  S  _T #T T  U wx pU $  U |o 6V  V T W () \W (< W ("p #X $0 }X  X @^l EY d Y @  Y  YZ  Z X [  i[ ( [ @ !\  \ t \ ( D] 0h ] , ] , V^ d  ^ ` _  _  _  T` ` ` X`" ` \" Ha 0 a  a  Qb ( b , c ( kc @ c H  #d m| d  e  e  e T Ff 4p f  g C  ~g Tn( )h 4 h " >i " i (0" j  " Vj _ j L k D( wk  k l" Ml " l |" m L0" hm 0" m  n  yn L n @ Ao ؽ( o dJp p 8 mp  p  6q P q L q ȿ Or  r x`" 's X " vs  s " t ," 4u <" u \ $v ,P v < v  " Iw xP w P x  px xP x "0 Iy $=l y  !z @|, z H { XD R{ y { l  )| 0| | 0H }  z} l } h K~ x ~ ( =   ,\  0 X  hP 6 P >0 7  ,PL  tx x  N  H  K  d4 + d,  چ  n  ĕ   P ވ L  $ ^   ߉ $  T N pD " \d" s \0 ҋ XP '   v K P  ڍ X" 4 t D" < s P  |\  d U \ \ 0  D P\ 4 ȑ \l  P n ` Ғ xx ( D ܜ x$ H P @  H L4 T ,L D  r  h`  i T З  /  u P Ϙ ܡ, @  X , P\h   z J 4\ P x O   T(@ P U Pt @ x V X  T$$ X, ԟ H@  0 t <t נ xL !  H d x  Ң X 2 TyH ܽ ,L / d  < g P ܈T (  h  R  ŧ (  D  Ѩ j <  0  N < $  p D ^ ( ˬ  " ( z 4( ݭ << + D ~ @ ̮   &0 c  `H 8x $  a  4 ݰ 4  H f  T  P g L D % 4 d < Z 0 l, , G $ H$  p E H< < ˶ $  T S \D \  η [  x," D 4" (L&չ xK&! 8L&2 HL&c dK&! L&! K&!- K&!s K&! PK&! K&!U K&! K&! K&!= XL&p hL& 0@  x$ o xp l ˾ t4 P$ + h\ ] X  ÿ T X ` 8 hx x p\ B $ (  4 . p l  T L&)    '  n    L  |  * L }  t  T k  4 \  & a J |L&n ` L `  ' , ^ l $< X $ $ O   xL&   p! 3 |<| L%h +$ d04 g 0  0H   $" C S z Ph (Z| ],  ] J ! `>!Xl >!d >!Ĩl ?!l 8?! p?!0 ?!| ?! 3@!0 m@!ܮ @!0 @! HA!` A!< A! B!̝4 MB! B!` B!  C! ]C!`l C!l C! ,D!ȶ sD!@ D!4  E!@ HE!\ E! E!( !F! jF!4 F!P F!Բ EG! G! G! $H!l oH!8| H!H I!и RI! I!( I! 9J! J! J!D &K!4 uK! K! L!l jL! L!\4 M! cM! M!  N!" RN!l N!\ N! WO!l O! %P! WP!40 P!P P! P!@P Q! NQ!t yQ!pX Q!D Q!D< Q!|L #R! WR!l4 R!t R! R!d S!< 2S! US!D tS! S! S! S!88 S! "T!0 DT!( hT!  T!  T!P& U!8 V!|  V!$ 2W!<@ W! )X!  YX! X!1" Y!  @Y!  Y!L Z! 6[!ht [!X %\! ]!8 ]! _^! @_!8 _! `! da!< a!  a!. ,b!.@" c!X" d!\/" d! 2\" e!H/, We!- e!G e!7 Tf!7 f!7  f!7 f!7 )g!gT fg!f g!f g!85| Eh!6d h!5 h!h4 i!h4 ^i!/, i!gT i!^x" mj!]|" j!a|" k!t`" l!Yh" l!pc4" m!(h" /n!f Vn!d` n!d` n!f o!ld" eo!@pL" o!kx p!4k` }p!4k` p!i Fq!j q! q!0j| Br! lH r!< r!ȇx" s!L|" t!|" t!@" Cu!h" u!<4" v! v!( 9w!  w! w! x! ex! x!T  x!  @y!8 y!,1 y!p z!Xx" #{!x" {!|" (|!P|" |!" /}!th" }!4" ,~!8 ~!$ ~!# ?!H? !L4 !d.L z!( @ !82T !4 X!H !Ep %!4 !t/ !D Ґ!]l @!_ !P !\^ !p+" !," ء!H+(" !V k!-" ![ !X( r!\ ԣ!8Z 2!Z !P4 ٤!@N X!*l ץ!( +!@) !O&!!- *!D, !(6 !D4 D!DF  !5 !G\ 9!h  !,I ֩!J &!5\ !@ !E -!t/ !@u !4X Y!08 ! !ht d!F !`K" !8N E!pL@ !,M$ !L( i!PM$ ̯!Ml 0! N, !tM, !] w!^ ֱ!HW ;!<_ !`8 !l  L!T !xU4 !_ !O !T X!U ε!@N M!b," !a" Ŷ!M )!L !L( !tPX \!ix" !Lh|" !l|" $!@k" !ch" N!b " ͻ!P&!܍`" w!{ ż!p  !t  L!x  ! ! p 0!hn !n ޾!xn 1! Y "@ "E "D I "K "Q "V 9" ] " ` "Pa )"c y"̣ " "\v i" " " Y" " "Q J"w4 "( "L =" "\l "4 #" g" "P= "? Z"@C "B "G M"N "8O "pU @"@T "[ "d 3" " "t &" w" "4 " l" "h " b" "t "ܵ X" "HP "Y N" "L " D" " "  -"" "5 "$4 $ "4 w "$ "00 !" V!"< !"p  !" O""ܸ "" ""0 H#" #"`m #"  A$"D $" $"x :%" %" %"H 4&" &"L &"L 0'" '"h0 '"4 ,(" (" ("T ()"`0 o)"\ )" *" k*"| *""@ Z>" >"` ?"X U?"dk ?" @" _@" @"ȏ A"T@ PA"0M A"^ A"` NB" B"X0 C"$ YC"8 C"z C"u WD"- D", E"80 bE"} E" F"( mF"j F"ȸl G"4 aG"@4 G" H"  oH"`4 H"( I"p24 cI" I" J" qJ"$ J"Б K"= rK"|R K" &L" L"@  L" 4M" M"e M"\t BN"|u N" N"t PO") O" P"\ aP",Q P"Hc Q"ܦ rQ"  Q" (R"( R" R" 9S"n S" S"( JT"Ԕ T"| U"J [U"H U"4 V" lV"j V"p "W",N }W"d> W"0 3X"2 X"0H X"l 9Y"[ Y"$` Y" MZ"4 Z"D ["0 a["0 [" \", u\"|] \"U -]"{ ]"|i ]"|n A^" ^"02 ^"r U_"9 _" `"$ i`" `" #a" a"X a" :b" b"d b" Dc"0 c" [ c"\c [d" d"`i e"\ re"0 e" ,f"_ f" f"@ Cg"' g"  g"1 Zh""~ "$I4 "e }"H(  "P N"F4 "(4 ." d "أ4 " s"4 "T(  J" "4 1"p( "=4 "h( z"h, "D , R"<, " , ."pK4 ", ", ", ", n", ", X"  "  "m "S  "T  D"  m"̏ "Th "n "Q&9"@d "hX " "Ĥ w"xw "8, <"" "" r"$ " " P"  " " , :"l #"8 &"  " " " h"  "( T"$" "p  @"  " $"> u"A "t  "H! t" L" " t"d" "" " Z"d " !" q"l "TD d"t< "xx s"d "D "(R(  $"x a"4 "X "  ""| e" "P| " F"\ "< " 8"H " "\ ,"Lx " b"  "x "0  "  \"<  " "X "  ^"  "| "($ <"l " "\t `"T D"L " " "|$ " " S"X ;"( " l" "bp" S"P]L" "_," j"Ld "P K"5d "X " ,")$ ", X"/ "x( :"2 "d  "A d"tX " | "3 Q"0 ") 7"  "8l  "8D x" "P =#4X #TX #  :# #t #l ?#O #|g #{ J# #l # [#d #t7 #l p#l #u *#P #H #Hl E#P` #m # d#'$" #" #p #j V # E # $ #\ #P #< k #t #p I # #`: +#s # #زL #ܔ # j# #XJ X# H #\ N#  #Ȣ J#HL #> X#L #" #D+(" #+0" U#+(" #+0" J#8" >#X8" !#T," #<" #p+" #l+" $#+" #t+4" D#," # ," 2#+" #," #" #" #T" !#" "#" ##" d$#" ?%# " &#" q'#" (#l" *#" *#Y&$!+#Y&$!{+#X&$!V,#X&$!0-#" -#6 K.#P(( .#l0 /#, /#$2l /#h3p N0#\4 0#5 1#0. w1#/ 1#>t 72#= 2# ?8 2#' K3#2H 3#4 3#d6 L4#? 4#\g" 45#]` 5#[ 5#` +6#PY 6#lQ` 6#Od 87#Md 7#A 7#xI ]8#HH 8#L< -9#J< 9#_$ :#c< v:#Lf :#d$ j;#x" ;#k M<#hw  <#u$ 1=#~` =#`}t =#l ,>#X y>#( ># ^?# ?#`! @#P; " 4@##l s@#p; " @#6l @#< " A#( KA#08 " xA#̯, A#P8 " A# B#ا #C#, C#\4 C#  D# E#ȬL xE#X F#x |F# G#, yG#lL G#P xH#x I# I# %J# J#  yK# " K#d K#8 " L# gL#8 " L#h L#8 " M#H UM#9 " M# M#: " M# ) N#@ N#9 " N#H) HO#; " xO#P O#8 " O# GP#9 " xP# P#09 " P#4  GQ#: " xQ#H, Q#: " Q# , GR#; " xR#" S#x" S#(( RT#h" T#`" U#dt U#h bV#(P V#( W#d W#x X#l `X#p X# KY#T Y#" 5Z#" Z#" n[#X" )\# A" \#T" ]#@" c^#A" )_#(" _#ذ :`#7 " l`#Z `# a#P9 " Ka# a#9 " a# b#p9 " Qb#< b#0: " b# %c#p: " Wc# c#P: " c# 1t +d#; " ]d#,3p d#; " d#%( 3e#; " fe# e#0; " e#/ If# 5 f#0 f#: " /g#h g# th#4 h#<` Bi# i#P Kj#T j#l !k#$ k#0| Cl#| l#0 "m#p m# $n# n#0 o# o#8 " o#\ p#9 " Gp#h  p#: " p# 6q#p8 " nq#F(" hr#F0" Qs#K(" Kt#J0" 4u#C(" Yv#C0" mw##HKh" &#D" E#D" X#C" e#D<" |#hH" #dH" #H" #lH<" қ#lC" #hC" # C" #pCD" <#G" `#G" x#`G" #GD" #F" ˥#F" #E" #F<" #TJ" 9#PJ" R#I" e#XJ<" #D" #D" #TD" Ӱ#DH" #I" #I" .#H" A# IH" ^#`E" #\E" #E" #dE<" ܺ#I" #I" "#TI" 9#I<" Z#]&!#]&!#D^&!ҿ#[&!#[&!*#\&!W#(\&!#<\&!#d\&!#]&! #\&!9#^&!h#P\&!#\&!#x\&!#T]&!(#]&!X#]&!#[&#\&!#\&!#\&!L#]&!}#@]&!#,]&!#^&!#0^&!A#]&!s#]&!#|]&!#[&#\&!G#h]&!}#\&!#P`&$!#La&$!v#_&$!#`&$!#x_&$!#t`&$!#`&$!#a&$!#_&$!#`&$!#_&$!#`&$!$#M q#W # S #z| J#` $@` $ 5$S 6$  l6$ 6$x- 7$^\ c7$[ 7$@d| 8$XH b8$\ 8$l 9$sl m9$t 9$̀4 #:$rl :$h :$ZD <;$Md ;$({@ <$ s<$hOP <$$t0" >$ȱ" r?$ı" @$p" @$̱" dA$dd&$!B$` DB$ B$x  B$X C$pD gC$0 C$̲ MD$4, D$ AE$d E$ LF$ \ F$p F$ -G$0 xG$ G$L# H$%8 UH$dU" H$lyD H$T %I$= I$>t I$G :J$h J$L J$@ K$L L$ dL$:x L$\; )M$ ~M$X  N$T* tN$$  N$ TO$0 O$L, P$L sP$ P$  =Q$  Q$h Q$ PR$ R$d4 #S$H S$|$ S$, d lT$OP T$ll|  eU$H U$c$ BV$d V$ ~(  W$T W$H4 X$(L XX$L 0 X$(c\ X$ lL 3Y$`. Y$X  Y$ "Z$$tf $ $9 f$( $$ $/d $YP $L< 0$, $- $0 g$l $t/ J$T0  $P $Z E$QH $:  $  s$ D $P ,$$$  $ $ P$ $ $ $ $ >$4 $(" y$Ԛ0" C$0" $," $К" $4(" j$dm&$!,$tH $p, 0$, $@ 5$, $,H <$d\ $x $tH $4 '$tH $$T ,$ $x P$H $,H g$H $0 $TH !$H $H $0D $40 4$( $8 )$, $, #$D, $H $H $H $H $, %LH %XL %8 n% % y%X %H  %dT\ %<1\ c%0d %PH %L R%, %( %tP Q%L %<\ %P c%<X %D % p%2 %` x  %10 %8 %8 R % %0 %Xh @ %$| %$S@  %U` r %KX %* %%| %| %x 2%L t %#x %XH g%( %"x % p%\( %t @% #x % h #%("x %" %, K% W %O %NP X%lND %Nl %  L% D %M( %tj %i a%,k %j$ %k A%Tk$ % :% ]%x }% %\ %Yo0 %( %& %&%* (%G =%y\ I% f%Y %H %  %~ " _%] " %O" %pV" % G% % %]x" %Ք" G%ٕx" %Q" %E" *%" c%" %" %6"  %" P % " %ў" %m" *!%5" e!%" !%E" !%E" &"%%x" e"%" "%}" "%Ś" "#%14" t#%:" #%e" #%g" G$%S" $%Q" $%}" *%%ݒ" c%%" %%5" %% " &%a" C&%e" {&%=" &%" &%" #'%" ['%" '%" '%" (%x" >(%!" z(%!x" (%" #)%" ])%" )%Ѵ" )%Y" *%6" I*%%" *%Q" *%" "+%" ]+%y" +%" +%!" ,%!" Y,%mx" ,%" ,%" -% " U-%͟4" -%:" -%!" 0.%" g.%" .%" .%ע" 9/%բ" y/%" /%)" 0%" <0%" t0%U" 0%" 0%" 1%" T1%]" 1%1" 1%٤" 1%ݥ" 42%" l2%٪" 2%˻." 2%" 03%" 3%E<" 3%(" 3%(" =4%!`" {4%!`" 4%4" 5%պ0" ]5%9" 5%" 5%" /6%" o6%A" 6%," 6%<" /7%(" f7%9" 7%." 7%%" 8%" f8%e" 8%<" 8%" /9%A(" p9%A(" 9%i`" 9%i`" -:% 4" :%0" :%a" ;%C" ?;%A" v;%" ;%" <%" Q<% (" <%5" <%(" =%," J=%," =%0" =%(" =%(" &>%(" ]>%(" >%!<" >%](" ?%%0" 9?%U0" p?%" ?%UT" @%%." T@%" @%" @%" @% A%) >A%~" A%~ " A%" 2B%#" rB%e" B%" B%" +C%a" hC%s" C%" C%" $D%K" bD%-" D%" D%" E%" ^E%x." E%~" E%y" .F%<" kF%," F%<" F%," G%~ " SG%9," G%o" G% " AH%" H%" H%" I%" ?I% " |I%Ƀ" I% " J%" ?J% " ~J%G" J%a" J%e"" 8K%" vK%˃" K%Á" K%^" 4L%b" uL%" L%̓" M%ۃ" ]M%+" M%" M%" N%}." hN%" N%i" N%" -O%" nO%_" O%<" O%i," %P%<" bP%i," P%M" P%- " Q%- " FQ%т," Q%%T Q%lJ(Q%I(! R%I(!WR%I(!R%%1| " z%%| " % |" %= " )%u" b%q" %I " Յ%m" %5" K%a " %U " Æ%9" %m " 6%" o%" %y " %" %e" X% " % " Ј%i" %\ D% d |%" ʼn%" %" 5%" q%A"T %!T %" S%! %! Ӌ%! %! H%a!T % !T %! *%  r%  %  %  %T g%T %  %3 %%4 R%5 %2 %0 ݏ%)) %Q,8 @%4 m%5 %%6 ǐ% 3 %1 %%* V%.D %]P" ʑ%lP" %8 6%$ [%M8 %)$ % Ғ% % % C%}, n%A4 %# %4 % %( 6%M0 \%% |%y %u ǔ%( %  %W 2% O%  %  •%-  %  1% ` u%E` %  % 4% h%/ % ח%}` %5` `%  %w ٘% % A% y%i %[ %  8% v%%d % ޚ% % X% %z ՛%Q6" %" 5%" ]%6" %7" %M" %" _% " ٝ%!" U%A" ў%" M%a " ɟ%<" K%<" ͠%<" O%Ad" %D" "%" %" %" ]%" ƣ%=" /%" %" %]" j%" ԥ%" N%" Ȧ% " D%%" %" <%= " % 4" :%4" %U 4" >%\" % D" % " z%" %Q " L%" %!" %" %" %9 " Y% " î%e*" )%Y" %#" %(" U%I" %i!$" %I " %"" %9" K%+" %3" %-8" w%," ۳%1$" ?%0" %2" % " h%߿" Ե%" %I " Z%C" ƶ%U" %#  % $ =%E$ g%# %# ÷%$  %)$ %a$ ?%# m%# %C>" %Q@F" }%E~" %D@" a%F4" Ӻ%=N" E%=T" %?x" )%D>" %AF>" %D@" %F" %F>" i%=" ľ%E>x" 9%?R" % ?x" &%>P" %E" %SD@" % ;|" %@" j%C@" %R>" J%NF" %T~" -%cS@" %U4" %LR" %5L`" %}Nx" g%S>" %U>" M%R@" %U" 3%MU>" %1L" %Lx" w%)NR" %Mx" d%aMP" %S" R%#S@" %Il" :%=O(" %eR@" %1gT" %hp" %kT" Z%Qmp" %|" Y% " %a" Y%9" %@" V%" %U<" N%)" %an0 %5( %Yo0 %o< ^%( w%6 %Q7t %6 %Q7t e%7 %7 % j %jt % j 5%jt %h %h %! %! %! '%! G%! g%! %! %! %! %! %! '%! H%J(!l%t!! % J(!%u!! %(J(!%v!! &%0J(!J%w!! p%h %" 6%" %I" %" .%" %" %V " % %Xv" '%X" e%%_ " %{d" %qV" h%Vd" %1`d" %s" %yy(" (%+u8" u%w" %[p," %`" ~%ŝf" %E" %" f% W" %a" %A|" %" &%L" % " @%)" %˔n" %," .%;" u%% % %% % {% %L4 %L4 % % d% % %U %M4 +%M4 M%X," %S" % S" %R" % ) /%!! S%eV %-% %8 %W*" =%X*" z%b %b0 %b %" )%" Y%" %U" %Q" %Q" %" H%" w%" %" %" %" 3% Z% % % A% e%4 %4 %) % 4%) [% % %}4 %}4 '%mS" Q%}S" {%MS" %]S" %-S" %=S" !%$ M%}$8 u%%@ %}$8 %%@ _%& %u#( %u#( %' %&8 "%)(@ %&8 %)(@ %i( 1%#( V%#( {%a %" %= 2%= \%" %= %= %x" %" :%= e%= %" %= %= %t A%x q% } %9 %D %7 I%aX s%5Z %aX %5Z c%mG %>  %_ %a h%_ %a %%x" ,%X" c%S" %S" %S" %ِ< %&" 6%&" _%aY" %Z" %e[" %\" ?%Z" x%\" %A  %0 %0 % .%, H%, b% |%= %= %!T %eH %` &$ <&hJ(^&! w&x! &! &! &  & &= 0&= N& o&H &|! &! &eH &! &! "&: u& &@ &B & (&: {& & &@ &B 0& H& `&J(&3 &= &= &J((&% P&= x&= &K &= &= &J(<&% f&0 &% &0 & &R< ,&R< S&I(!o&A" &9" &9" &I(!&" &" &" 3&XJ(!P&`J(!m&J(& #0 & #0 &# &u#( &u#(  &J(8 &=#8 U &=#8 r &# &#( &#( &I(! &J(!c &J(! &J(! &" { &y" &t" ? &]" &U"  &5" A &x" &" &M" Z&1&" &-" &}5" O&8J(!&" :&@J(!&I" %&HJ(!s&PJ(!&ukf" &U 2&e E&ai( ^&x&!z&&!&D|&!&H&!&P& !&p& !&& !7&& !Z&&!z&0&!&`&!&&!&|&!&& && :&&!Y&(& }&~& &~& &&!&&!&&$&L& !S&@& !&(& !&4& !&h& && $&T& M&& v&& && &d& && && !<&& !`&& && && !&& !P&0& !&<& !&}& !&}& J&~& t&T~& &Є& !&܄& !&& !&& !F&& !m&& !&& &D& &̀& &&!:&H&!c&& |&P|& &{& &P}& &}& &|& &&~& L&\& !g&t& !& & !&`& !&& !c&& !&Ѕ& !&& !&ȁ& &ԁ& & &(!j&P&(!&& !&& !N&&!k&@&!&&!&Ђ&!&& ! &@& !\ &p& ! && ! &&!!&& %!&Џ& ;!&h& K!&!! g!&!! !&!! !& !! !&!! !&@!! "&`!! $"&!! G"&!! g"& !! "&!! "&!! "&`!! "&! #&! '#&@!! F#&!  j#&!  #&! #&!! #&!! #&P!+! $& !+! O$&!*! }$&!*! $&! $&@! $&!% %& !% C%&!% l%&!% %&0!$ %&`!$ %&! ! &&! ! -&& !  Q&&@!  u&&!P! && !P! '&`!P! q'&!P! '&!% '&!% (&@!& A(&p!& k(&!&! (&!&! (&!&! (&0!&! )&!#! :)&p!#! a)&!& )&!& )&P!% )&!%! *&P!%! 0*&! I*&! b*&! *&!# *&!# *&0!" *&!" +& !! 4+&`!! O+&`!G! +&!G! +&`!G! 0,&!G! {,& !! ,&`!! ,&! ,&! ,&`!H! 7-&!H! -&!H! -&!H! .&!! 8.&@!! U.&!! r.&@!! .&`!I! .&!I! )/&@!I! v/&!I! /&!! /&v&8!0&v&8!#0&w&8!F0&Hw&8!i0&z&40&z&D0&~&00&~&00&`~&01&y&0!E1&y&0!t1&Py&0!1&y&0!1&$z& 1&Dz& 2&$&0?2&`&0h2&&02&&02&4&02&p&0 3&y& !.3&0y& !R3&{&(v3&{&(3&`u&p!3&u&p!B4&pv&!4&v&!4&p}&05&}&0<5&}&0f5&$~&05&w&8!5&w&8!5&w&8!6&(x&8!86&؀&0b6&&06&&06&dz&46&|&D6&{&7& }&0+7&|&0R7&p|&0x7&{&07&s& !7&s& !7&s&@!8&t&@!j8&Pt&4!8&t&4!9&x& !9&x& !89&@{&(T9&h{&(p9&t&T!9& u&T!:&@v&!T:&Xv&!:&`x&!:&|x&!:;&x&!;&x&!;&|&;&aX ;&ub  <&cD =<&eb \<&ab {<&ab <&! <&b <&b <&d =&d ?=&b o=&b =&b6 =&b =&b #>&d I>&Ydt" |>&d >&d >&!d8 >&c2 ?&c "?& 6?&& T?&@&y?&&?&! ?&! ?&!! ?&& @&&+@&$&P@&3! j@&1! @&)fh @&f" @&f& @&e  A&e  )A&e4 GA&e4 eA&2! A&yh$" A&e A&e A&e $B&e FB&e hB&e B&e B& B&4 C& EC&X mC&g C& hl C&gR C&f  D&f  DD&f4 lD&f4 D&d D& e D&d D&d D&d E& -E&j" BE&j" XE&j" |E&j" E&j" E& j" E&j" E&j" E& j" E&j" F&j" F&j" AF&j" VF&j" yF&il F&%m" G&lT" TG&j G&j H&k *H&k JH&kx jH&an0 H&m< H&n, H&m< SI&n, mI&n I&o, I&o< J&o, J&o 8J&&LJ&&bJ&D" J&\" K&B" oK&@" K&u$" L&>" cL& <" L&X" L&Ɂ" NM&E8" M&&" M&ω." =N&ň" N&:" PO&F" O&_d" P&D" ]P&D" P&&" Q&Q<" QQ&cF" Q&X" Q&٤h" " ^Z&YzL" F[&|." [&k|J" [&|" <\&m~" \&p," 9]&rF" ]&[p," ]&p," &^&rF" x^&r" ^&s*" _&s" Q_& " _&'&" _&&u! F&! N&! V&!! ^&*! f&3! n&jg#PW P,`0ZT_b`&x]w]v(#FxsvLR6) 1LQ=F}_g!GML'x|Z]|)N1t ,X1h9~do/v&w~?Lp(K(0J=RK4~Bp!/1Zo/Ss!u:u]h'{|U`=sw 3aUR'>O>Th)re{mrpDy^YbO| ^o&| aCb@oj+4p;$TAz?Vn7ntD^K* lƍ g-[ybQ? : wbv /'}SiaS<-9l lr]Zpr.g'A&5e#pKyygV\u:Z>MD]]2SAE(VY>1NZU tetFmtd6_%c:TMq"Gw,8Vp11"<vp-#W'e'W%OEKY@`8%}BI@{_J":e,Pbf@u*b{|3fhesmKLeN#AF8NFz l("{S(8r Vc*eCZWW*{LK{* rÀo*){lPCgIN5XRONX5}p*zNY4rTqi=}f}$4^IsgfStqdo*MdoDms*\mfo9$= ulcPGVEW@fFRE(?FSMj]^A~cV/%.qxJZp;~)^d1NZFzY_B`X^6D[|1 B:|P8ZOX$Hz^goea7D}p,v~C8mGda8oiyN\U ||gAr':qn<Jjw%<5bl }Z?'qJUirW(y΂ct}K!e3#zA@b"\i(Pmm =_<_sU$`'{)yb^Ah1XixtOl5k0IFtF/.mDpR(/YhYMddU-h>VpkG-.l%6U 6@XByC!Y xvz_yuPoY}\Z#)Zx|KO<AY9I{qRKLSO/Ogf};l2[1 usg~T1e[6f{ 9P*Utт0h:d>K)wpo*\ow!{{4\wR0>EgIjxLt}#x3MQ&T<z<Ha:VbLMA^iQ&yj,=x‚}YQ*cX[t}1 Olf'rZ{DւDQK];#siv`]9 q<_3ݍ9'23RTPM7RrCG4I1RB}s_j/w*Cj ot{!YoF>'xAj-Wbc}der]96@-JZn/B>W8<Y\lfz~qD}fv`u vA"z-_ 8{w- XU^&oY9=XjQ|c\xk.Z5+o' Pp, |]cEoV!&7"v -zVg1fhRb#dS\CyD C <gC*(Ku:J#M*[:Z < lv[TY>Vtcy-Wh3K=Om*q.bbekW\U.qhwi&y;`ybi90y i5W-K~nh` ,fR (_$LJ~fL6]% `Ga X1b01EcrzA 8b(KcedI5g|\f%Ja5iojrlvAeu{,$n9 Eqs9=_mVS)jKLF |UZZxws}aGsHÅYlnXmNW6&sɂ m*\slq&@NJT;]yNJCphlSp=YLYP~9)~K+1F.(a;VwMEN=hv~ҋM\ w/w|cD X{i|zm#r|NXv#%NYO7#)\NOC:Eaky[qVs/Z7 f#RF_a%N)1kFoE.KHe5k\3Yn-!KcTc AfN2U2]h,ucMՇLxBjMAu1cnz1~+V_uSO}9Yiepn4nYtn{qYqaR<5:rB^QNJ-"o"^X~JI4DiBAu ny{xd}4dwdo<|D6n?\\l}>,x G_h]3L.yNuxCjr`j\uuqgO^ e1k<QLvW9i!R/ws|Rw{>Y;,6616 e0(jcWT&Uz+ l| VMz 4!HLFN,dJ 'oI~^o 2 (OhNUGm%DQDj 3FP_j z>ea< HLtjoy}gcko9_"qdnN0Jz[khDRBt0nkuNOo{TEBjS:\9{ IO|h6o0E )6g&vJs@g3eT!{S|012R,tz3454V6FJJ#lȂfK.c4!+RN~M{Oύjt5ϋhu"C:Y-UT%Szo`0!\6NRh/|;EBxj|ZABLHd2`/y`LRHXLC~/ e+Zw7ke/#aKzDM}F+'K(E]H2R4cE1 ;ekf7\gR(:j`0`JR/m҇sU[^v_\qPX|Qf!wKۇ*?^};zo "4;uIseԁ{Sprmh)}e!{=` a`Wh0Ny;5 jR?t<G(I;_z#9dd/hfwlCWt*y~kS@^D!qG ~BKFb1(R$\Q5[_s 0nNSuM+`,>('A*cA)h3>1 k|kgk O{lm2RW27\rK$pajt`̈:c6\Y$g>$ʂ+LMjr:ssOZ`s̅D|nz4rQH}<p}Eh "7[6}. 7{bsbg^xKnj6^Ng 7"Ivvk= eWuzXRj%mL4v[<7=>d%Ntp'h+}Ct ]77!S1gYd2D\]܍/~:pUUv>t`7 FqͅXI>arZ>:.bQa tm6qS.@-nD '\V_#U<;&>mFQZc{w.tFgnt#oiRk'rw~}ZyʍzLuDPI]p"*uFuXwU !zqHl `e3lgOR#Q}|n{AkDjNe; r$sllD:e U?m8d*9lub8W$6ppRm3e!Ko zCag`@9In{ڊ2KP~o9~Ăj8FV9V{W L 0{jpxl|2Gn<Yc FkOXu[79.%=]aw%b9@krB N^(i[b"BIC| f_!<yZG "G/mg^Q.=W,3ԍ~P؀p#zGTS;:Ak[@Gez@l D5o593x;P{Z}cCw1])ph|%d>"zĀo32P{CrNQ4hLXX3rsn ,Bg Mq?v#HK* ~gxhyCQW5H!{8 A #]uEr u^COm~`+*w"I `\Q5y *@2r?/rkjmh#oD_|hFtO]6vD^V[%A Rek7<53TlOxB*S [d^S.<EenIoSOrk.+(Bv+#j e{[Z:QWQ w}~)Sss…lFf=9U&)ZAzwF.P\HS gT3PJNh_\w{q#Y)"=e&u܃TR a:59F<a\; @z{)`uy,8A ax'r{_ZG\VO?Y/H/>[0Ss OLA) U>NH&HI#|X8]%f2q?zHg`M9;|;8?v Mj]H!G/4"}5F8K!WF*s"q$}zH[uv'|i'P;Zq}7'ق+Y'\NEnBo]ZeyK8 iWkm%Woh]sWKWmaAd-Ww:=/l|\(/Fw"H+kgEuSn tLEy6x:yv{9KLQend&$P{t CB3{W%u,GA;CnJ]$&(z5Zx/E\H^/9%G (G?RF [܄Ie0FTNVRo ,5QqEEpPKE9f%<rJ=xI~ +)GNK!_Z=Tg2C>wA3U\QZ*m}[H>6,%Mp% '~8>d>sp;U~ FF mTv6]X4K3}4NQ-Dj aG]+MHW2|ipD"yFFEPgvXT~q^oJWwoF];Tu3bNnt ,: *[lDCid=gl77H*slI9&iqomz˂+iUd 04.4t2OylL7]Fq|itiiVng]! NasCJd 4>s%La9[|~&S{.w )on) h!y q}6vdR`xel:GFZjygWgt\,9AA-F~ÇiiND2$]^lUK9cnwHHtFy97y"]);n?et/tuZuGD ~;(y/= M^uw#pM.k&1fef##H` |1ebaa9y'e'M-npP~:BJ80cف@)mY>$}E=k7HiY[ jg!R>Ad"Oa8CXvw^%9{)D Lh5H? 5Pe,O_Ec} 2>5HMuā\W6YrÍtVw͋X7x^FHMMVU!bC~kxzlwa') Av9 _,{7D*+7>2 p1-7Kj/eL-V mu'$0T@y&wQtkODQ_ LhL2> Q݋ދߋ}c u{cg#7/KjczGCsS^"~4T|ri<moY_8:>UcY{(x]2aO7}u:>)[ZX9L&o u_)(v;Ti]_iIg}0 LdTqbl U91 ۂ(` LgjRX`34J{Z|ob;tlf!7blAZL~j;~mAQn+Fyfk po|Yi|y8Zp|zrQfJg GMV"p% haN!jH!t[oc]bkG @xv}J/^GGT<'m$"c3 } eUz4qj2m:R7GxzyLbXI^'#-gUB=Px@NSijysv D~exSKo[z!|;yeuSyl+/uo4s(lF"uz(xq(MH-~)n|DGRS|Bg{|]vSv_5wKfr\xpcGts-@T^ &l+^j|T_s\_HsE?knxu/+jVhzaFnww W`|_QCkQqz.jP9Ed? R[3=-W7NB(t?q;c%GwY l\dZOv}I _!2$|(>eL% hZ9:jz5 XdB;xi{$UcH1}x0~BG7SlU GQd20yj EohyYj7@0D}L@5U^wUrpYse2]\;|5+ ] F5j[IuY7f]nQG9W`s{5'Dd1qbB~xN>[{g%8vwxńD‹s܋b8:w$\K)}g~|2cl2r+FhhBJ'GKD8 GfY[w[8O7u3E%vO]FKvu FfL;rA1S3G#@gk(Yh7;}7t{TDD&jfmjCb)PpZxkJDRicT]|]zfoZh.P'5Ng[zJ>KRp@i=)SnQ%~up1% pf$_Qum-! H:07߁Vq:mKl#qDH"!EfuPo S>vuv}Fw98/z^Kn)zhst]'r2,pr$O|]#υib;]v8ECd7=1j_P{i'33hy8nI^p=</o;E63{7W9#Iv|!KD 4{!FUGP 2;Lb}IeKm~V&H&i1@i1 LRTx BF'fcGdW? 5 7 kc>WcLY3a\2Uq%BQ5sQ0;tXpQw?P(Z~z7uUmN|%^uDa5Ee$7suxoOr)>[>7LTn2KHjoewDP$ZG+ ~*_R=T:1uu=EazC~߃>T]%Zcg3xAmhRTNӂon4IlSd[ŃrcQy7Vc"m<xsn6-6X%gi1|}jQlZ/4gi'*]_m*xDW{F1\p7@ ZhNu`%N^7]"bl`ZXPQTW`]aEf]1-OCr[1vIRm~Is_^pEI`s"\UbE ^bZy?ي$|Sp]&w|5zb_ZQf5}r<f!`/1XhDBoQhPʃ|(Uh&OktO)4A!?bMsgjkoPM6i"V]'&Ċ/{7hdXQJ|)Ks!yqpW.JDlvQwDxhFPby`1HNJ8jMS{_p;].x10ZN~# V{Ud(]>e@,lvmp!|./C|?"[Jgij Vt 5}!H2rC38MiShzI$)>r:<Sb7}P`FMgQu\y|#t<|a&}TO{1˃OqW'NEL\mxw= t Eii9uV *TD [(TWpDF2|xUv`8mM5yY a}Ruh^oy06,JDyMezRyKq1Z*mQ?UWpuJ^`xT_?#}xeR2 kf0 >EVrotukA|؂. ofaVUL SYm1X}x[yxvo?k @dQ83OEUgj ͂p=a%eh΀{}rNt;,o(C+AQBrCuubq4Bg,2'Fu%Tum{X$ 'mt$uFO~uw.N";(Nu8@[d9.g*o:ykVdpr +0tOch.#w!x"Duu` f1\v#?#-F"Bc5ckoycdMbRE4w(]-|qP}mftnzj@#ziu_j%0t(t] @Wc.fuhL)x v@0W5ފXWLX.A6~`66E .lg1A*Z'mqGV5{medzj3UF}K;yQb?+cK5tl}I>H _kF|Ib#-nC4.Jpr%qm@kvq^s\)6Z3'8TSS{?;E2{fTI]dnU?BA_cF5fm05D~QX@38j {F> @sb.,iNe#eod^G. 2@?WA]RS3@\EY7C24uCJm57G.lb9Ex[rf[b2Q~)4l6sa Є#O fH 5sunvjsu|vRuvrXk?dPSj8*NK\3LP|mTRr?~.pek,]CK`1gG1id_,#B[#_^#G`o} ?%tf .!nj+raΊbcUxN(LZFh05I|i-s]kF|$15|[yy:SuQQy_L`w\MNH*cd(-(Of6~s{PV4Xu0v*q>lLP]Nz%e6~VKoJ9Hm' >!o9qq&y9A6+YaFm:8 fblY|vD}w|R!R:S^Mg 1f**F0qIBEN9d8l*G@k)WY`VPlrp5<7u߆gYY``W4u}fY #[D<3[?::'\)i8et$47ԇ̃qPr$Oae( g({}\YMzyWr;U(@O^E9pggrx$60TS)1O -Iu,.kQ#,U{a_G) 88% 3Y~T/y~,R:R`&of{H}cf?Xza\6B rICJ' ܀*f\wyhI'ku?GWjH^G{[?|k ZQyhM)W0rM<m,N1@>o;) kEuaCUy)\?US+_]kG|3"h'ynhp;HPYxL4jyiX' KwFV?ie|G`bU: zg{ @bt2>IdBUGgZ0- us6\cXNna}vysUk"w:H/WKބ64}A}w10^jhZmIGv~|qMoeq9IUȃ|(u2S1ktoUoN?zLK7g~qK`qSI0.MR qTN-~bOtQg+ς{QSq.S%;<(ILp44,Vq`}X ܁<oTukuNӋtp^JdoGl8fs^&"Qb>"p0+7[t{$@ qًR\brE9npt 1.8RrP t4J+!9*^Y yN5}uĒn\I; f_6MjB +.WUQ'-37y|'W><5(:2oPYUO$O4pY`f1]Ra,MXyHF? \pGDRVcG;;~lflBgac:lPg{M}MPcgtR\0{_p'cJGqlkFOd_laazv ,FscE~ \,!~=6tpftF0qKXEZbwGESF(9 8ɈzapU'</7y/_?eo^ rzP4K!><E#VJvLaU<oLl e08d e|q|!lv._"<&dx}=A|I]$1BgL&,d }618ɍaZ^}}->}veLi!B6&'sOX\lq~LgF0w@a|HU>o5qLj~;e<-RNf!rYlR[X1_w[?Vn9{]b,ZW6 txӆu7k\Sf$.0Gz"(lvNL81-g*HjnoUhBs6lt`:??`F <>g]e 8R5V8yWu bV3oQ[‰OF"X%<`@A;9IX o9pf.1mw1cvLTop&}=k_|x"sq3vhs;vx!9y X$Q6]U&P$nz5A=/)9WTPnN/jB"lq~ro8LV~SaAGjEEN hj3 ({nrPUuv}_rzB*`LFX1&hAuPxt_}kq'Tx56vT] (.,'SWHE2c#YZ0Ȉku+I3NDluoRO_p [X6|;`|]DZf U݇XclZcsZ7gT8:zyif<k?zsIF!BքIa%lWWWhtPuXMXJw0nK| >^3Nr}(a>Z HM"Qb'N8Pg^}lANLYcwldƂZD%q`JDgR"E$HGlFIX jsBYi ML"T_#^ uWU׉md7DjtuLW;Ce2K?L|s$2QLq0SRk`AtlwsB9C~Ztlffyh]g/p_"^WvTA BPDA+xwtYv5_vqt9 $R҅FvA{F&Kgt@{ Az|N^}ni(vLFS&Ln&=mHP_Np(J -KF1nf\fW7IMmS,uv)Hn&|ZNcYp%˅3a;,_6F|[f7-p^.x~+I"khk7*1}ne0!ڀ +s [h'EkbS7d߅fLAT`R*[JL3X~RxRPyzv Xe7M.4~:LY*=BoA=\TKEt_fvv A:Mmj r5sUul.xL5k s`dv I&\vLa v_P nifZ !U2[ W1tU$4u!#nj>8t;QrtL2NM ^^qCJ.7!, %dL}V6)I#D?ICP\Gdh EwXɅvOc.[qghoWn{)D!`vG+xD7tOAy)A=-o ҍir H!G2bx\~OmaQAv:Pd6isWPhjv}ziF v~]tKvYv|& |e@)TS6X&'*bezyr?M#L)|>bn(aQ0i6K7 sJu|DmTPa)As }kgo NhnWEՂ`0_YAc2+bTq~+x S2f` Ǎ`Sz5`h5ms5hs=a:k7]trm0{T^JF8l9J|U\Q!q܉_C8EWQPjyt[T}[UՊxހ;j.8"y2T[%Zu|IBS=]>X"T{m"<& ;#S]=cw =aVI;@, <qP;M8b3x!rV]HixE[Uw$ۉlu_}JJ)Y|9{wI|IA(H>WCxbG 9g^Lzf:#' gHn>:#8_Vnc*>{=wrډMkA|yVEGU9c~(pv|h!q`fYr7zzKaGbztp}{H҆XVXtfc^NdxZ9`/yRZXdOOs= Ve&m Mx7xRLH6-~i4<PJIo%$ga3jnd^nɊ ~;s_L-hZqLF]lT&gS1Qf>S#gF9 :h;412i^].IUXeA WbizSqM1 v5s&\[`b%k>n{?LHb}@Kfp#D9*#/s!^=:4i$YTjIBp_Yjoi g*&@K73Y~hq<L)kCU?ByIWe#EMnaP9u%XrAR чFOCV^M},OZcx[Q*GwWNq]ڇ%DefeG~YDaq6yvF~}qME/z`~u#;]Hx2naSwXn7p ^rP)PoBdEK_#WWvZqv9m'em..>&OqG'"ST%W}n }&Fdnfy0=L:XgU2^Wr@a|Gkjۊ\9Ikrs8o{>dD#78C 0O$48TH~p^_d(+<d%Pjj :D%c?:Klχ'R~h a1iPkRs?$=cU sf&:-%FJE_|qv/(u?f"'B~q l !.F|Յ>*Mcn])l/r`~e>/Y.!n IiokXB$ k4At:jLJlLroFULdloQ)wZHAYTX/B|ntsw @ {qxdKb&/RBC}:@[/J_15vE}7MxvVepv?,wCz'GL^QLd7n_{~z`KN}'o1=G|YPS$kq19b<i8jx'qXo3vu]rdm4W*NWy1wua5NpMlhta^!*7p6\egP#-f#ksL[y,XrGtf|6/qV}gI! }wr:i.3Fn:4~cVM*8wSM[4x KB zg*q_o&aT hmxc_O)&?cz-7ltqN|w0GOgCIsY(xBC4pS~FqJSGoyS 6hgwb*{{m ny1u1aq578Xp2J S$:U;xKBfq@\%#|l_[aL67gqopD4{j+lA{|4Y]F`'hJ]6 Lm9I{</-|4lQ"r;qus)FC{*;>ggHuugw%yIu&,;JL~X2~y] LEùj+dq]zn@&]-8xD`hl+}DbXTXag,d[i.?nWVx*Xd3/`1z=C!%'WxzN2x@\fIA\b%I3x+1[~:GV~ C2as>\OR.&9Yuilu}R*fh[clY=#<t(-@1K]}i+;^ SMQ i< 5hE2. W "KAo!iJ6#lco=׀~'$BI/7VELPׅI%Q4`Oo[,F [1Yw[(E`yhZ V(eGF$L[Bm^BQIu$!jhO0 `sr_?Jgl( hr'!'gUUP~AL-==VrZm jxLDu#P]nM;6B0Zsj 0DA#@ iq)^ttr!l#j9a~<YF$kUE?rT| ^BtE_+&{7e]c#hd}o9E\\QʁmlsXq;)^-b$^nMz]>&MHO .6{NPPSVy1Aw:trSwgK4wVgȅ>'N?en{Saz~ #j4W$E ~SWS2:sEVRWQ#-#K81H\]r> ;A^Ud$hpK=q? %q؇iK{ ZggS}z}w]:urG0Qql)'F!vub0TYuvc=jc>)diQsxL|!!8iT/vx^ :̋S}O^T! Hy~G7VZ/ r4a4eWBpq L;jBeTGMEKL*΃Jk/i؅_|ƄX0 2rM=IJdnZ|?'lmFAHJ}CC8)rZ/o=ɇ2+{L*[zۅ[KYG0X@ Iσg,/ omKp[E9Bl4976~+, K>x,%2` P@ FW 7 DZ>Vj[r/k<jwFTr[T#Ʉ(= =h"J)k#c^yR84 q0J}c{cLC9 \_"yk;R!@@<]9qW87Hx)]k^l ]t@ ,adF<stb]3E/@q3Xy=fFfHt]M4G5&h[^2 YU>b3;IjvLub72ZIԃmtspzLm(Qw-[X>CyP]yNkX~ocY c?E3]z&^„}+h?Xng+I &oX-,FexJ &![)sN0,o~h{yQfCXLUOG@t)Joc$-GZ%Q4@WZ?JuRjYl\wX%"iv-Mp#}rp2^\^<b*D,Cl| ?JQH3K1o#K:yv;Q u9{YtftdDm9E=C=w!|6v߄v0gK}~%@j=>a}Cb3w0x6 cPNG4[~i2)Zrcz$Ta_M>OHD}\Hs_PV u, tc\rW.t_#<o o6ZV.,_BrXx_DʉrpYv-OCf8Ia]:Јg>B_#X`Qy%ry8ph |r;`wx0"f &N3:0cxx6 *Fc`/ZRHkZr^&{G^(!^|l6#_@cD] H,@71!@_uSvFKl-]qi^B\JG* 3vB;p/^6d73Gxj.5R|2W,j 2lY T6{8jr}SJ(KNMu=,chXp=tRS-chh9|O!tEn/K4pwH"qLNi{iC1_B./'W N8[[$m9qA2"TrJfy&*,Sm+]%k0iC_Zx6q,VWqp~tplH6VG b3cXSUp"~+#}P*d!duri .&>uDqmH3b]1}_ZN:y~RiIPo}qB lx>=M|0x!TQ^`TW7%h4FmX8twno nlM\rm&8N]_q%P]_!CmZ^K2,PK0U1*lkpxi.eT8myzL euNC'M$%RJLM/MxZ_!lpR9^HaZ 6}`4g=Vm4QshGy -rfk3t&kaIF&\:O< 1`kf\'veuPe_A:;A_cZ$%sWlcAFkTC KIkZ$hQukzSqW/8I+jz5vGlD1;h0f|QcfEȇO{#_~ieU9M/+esNHW?3wPiwo,A 18P Tn?\`8`xk z7t7wc@26{"cj:i8QMyy]NA4zZ(5obp]be^u9uh4@QB;wcv:6o[vVw?EdomeKkEfSGB~g(<Ws0s/8k4 \lFdb9O-L'?tv`h?IAF [E3V X~~I@ыEBR QXiVSnC6-1(I*|և` i_,[iw'' bvUB o<o:nKwtA{LP)(]RXk[r~xz!s^4v /psu-I,bf0J}+o~yqZ`UckyWO9}RHBG}+)/N[C"6bpce!KpiL2ioT ]@=BlLG;^}Vi5/k,2{3Ed /*Mt6lQ_ >=HJ`H-qaK?wK.-aADKW\PlTl93E{rn,k\gcaDYei2P1ǀk|CVN)099b>4!}!W6|}s@|hLI2QO-]l:ԊBVv{N)aHpo} kqr o0;El<-{h>.?{m@*mI4vzk.Mt6S1?>}{: 5 YV8:smme>hv>"gC͇Kux3]+5]"mc.p|d7 te8`(wV]0fxeXS\gDGX7p"6SFobt{ J2|r9mo7-[_Ӆhf6x~<>t:")EH~q.x^(6[ Q<O^l/Y~_OZy,h5e*6h}CS@wi-WgY<U6E`@}Vm)1Pt{HGLƆdžbȆɆ4YFZ>b{†%dmO'Fe]Jwbwf+3D*:F7GI~##&vi!mE|$7U;zŇt-X݅T7S4g؍e+tI6_~X7 ?h7>.fWLqV?BdVRt>D{fy!OWBcETV`3b P`b[",}bjUrZ-Qo]O.)z7+8W|&1VHbeq/JJazp][suyg\Oh|rff#@^4M DAzy*h4cWs:ge>JR5 k(+xPNi}1=4_ it*"6A9_Y)a"a>7j=G$PaDNeQpIGueQwBD[rV$n'B#MzVG]+:jXa>2@[d/8\DE!J1TE|=3EJR]0v.BNxdxOZjzd2c)h Zz~ =@b^$ i`!=R;n\ Xxx7xb='!#,@ϊ IcLgP5i] G<p0ox Q"Y*yu_JzZiS]R`tsNIg xc݁D0m'Et.$_k03Xz#T=zFQ'H5/`><:(M5FTQO4or WJ yusx|Y`{}Z5n{JHKtFda<^w`f?6܊".k~IH.Mh[i{ClgVmI5j][ g}v?5>%:[0j&FW.qnQt/Hzc)t3aGi)md`l0tqԀ\t@fuPctMTL%&:}MWOk c/ ;LK2>35 ?!koRl ykKKl}[r _8J_wR-\NVq~8[O7mh2_}Tnx$!^g0xIc?RNGCuKNfpM #uhHk[c d8\k&%SKKb7(Rd:1M]5s\)i@O2d ,oN6mob r &oz:~v"rhs\zL I݄.'Io fZ;g >s{FUX-BS\ɋn~cvO-Ŋx [m{RC/@]k@HP@x#s3[{(\QRP\w.vGbzDžOy/p^eq3&D>>UvfxR"ىj!-U~DI,2jUe!@ so^S=|\`wEuveZ pT?Row_/n"+JPatR)^%zszq"ZG3u?OT-.t6l؉<@n,c[ > eg j\_kzE2Z g'DJMGkA{(\f35x>kgrg' -[^|Ao JTvqtOhx0~0u `q{'z} 11` WRsʊUbO;b$zsw(Ly]ud2v{97p )uxxhRZKC(qFC[]%A\,*PLpb@j}+$pXm5' Od_E]aJrD$5]z}kfi4HhJ}a i;~zi^f:s.Pi 345 v<LjTy5H>Pp{n*xt:nY}M^h%KOM;M-_@~VjIwnZi$ftȁ]2yd#v`D|p;w]uMI#nIP݈ވ߈sTzWNv{j3m"xi 5HRSP<_h3zufUGr}y7|*M[**L}NCUWXAP){m -j &gO}o1G%P23*!gmd;0O&er>SK$OSZ@Ur("( l-lNBHl+HJ31^-GDvYL#VZ u'5%?ӊpTbl(j[< V! C{[4jUdV|ojlsoRuoQEP1VO#mk~.YD /b8k` j-lWxh.X}%fi @eH~\P~;Z6L[/؋zQM׋NYYɃSYIBk{ʄ݃o,-xpJ^ G5S +4%IKi qlE|Ksw~G1i!U*^A~lp3L/[y8 RbG*hpYeb"I5"2py6f`lrgy [y:2^gm N9JfEXptq[F|:Tkx]wyId~J~Pj)vuy3L uq#ycXLa 9_xgTc2{A#(7`OÊvFyx"t)^1W 4K@  .{3`[vMYsY70kT/e/PdN&D/8F(9@^ֆ`OZn7`O@v64;J?eA#Q(f4Ym{Hj59Sc2v"I{K\%@<6$X52QG6A]Qh ~pg8JnmE)*Wcsp b pA b@wu^/ *^i~|E!&sE^L!.#/UQqLyH2*C8bm/QCx,.mb,r$ъ@ _W^}x5#H<-w19yF e>@|C4_Dxʇ[T/Q7{j)8|9~ u\7nd1]{StTT^:nB-=Uv+"XNmG1xF+}V4"}=XYCBA֋Sـ8\LJ \*TVhAfWe`ZC`[)zH pLsH 7)tfP^4uyY&59>>*MiF:)oy(oo.M\+ec}pT`,JtQ)<q>m^_ŒD/}Ì9jqČNŌkj\$Dw&2xF.=H=*P e=Yew5O5vS zdtY'BqO'f,!L~|zL8Hv e^2&a}-{}o5i_ۃ-P<fn}jcTim`~-'K4;4ٌڌ8ی܌݌ތ\Ҋ:"coaVZMsrF`7erMdF |3r3aˌ̌͌ΌόЌьҌӌԌnՌ֌׌،_]6H7?pxCW3+;:x6feW(l=Jv/F|qB?Lʈ(1nXm{F`|/u~g]2m]U@ISC5CHz*O ,we0?vp`#TLH.$2T. tZ$TvpV%{Fcn .,rt|+c\р,Q&*Q qYN_ l>rjxAc~_Rr{2M#<.6x %z1xps^+ eZ&d,k?8,+|(#S1d<W[{T^!T;L7A,,SbT&rz,jix=qxpW7 ˍ''ah4r Yqt3_h?:J&knl^gce>{G]xS\tcT`@en_)h@vZG]zU m$lvLjs$?FZf={hu \nnuG;ouJw>IFmsl9rii-RrG{l;k;>Gwwl;c`]Yy;ځ" 5dmHpU!DVc<ˊuYe$ya 2zX+anxfrx%{fwp v3<@5(}C/u ~}R3zex&hh8-|(1mP=Xw%Wofkу._8L{DLYpXK3=!q *vPV/yn`8j$Kin#nAf -3bTS=Hlxw?NFbAs4MJS i?D#VT ayeY].^ KZ&z4q?2?i|zgWaU8}BrF{$B'u+t[7}e2,woscSIuӀ6NIq}@.{Q[ (C=5'p7#>lgx*4ZmaNW%&bR5&JA5RBHBW |,E>~0usOZ[U| )[wpotS~(kiOU`(e<U@*2wl@G :`)UY<uClTU"?ZlM7N$p}BVv)eORnw}l"? Lco&[Bv|oVcnq bQXhx-K̀WrXjTwGڅrX$gunq+;B!55 |3 U<7K|/UX.iQ@lt6u07N3,$r vaS:*%DLPQm73nkeRjI;K )5Y&sfu@f?[5tpY_'auefLmN)/9^p>UdE~2 ~EhR\@k%/lbO63_V^aKi+X{iFbZI/.uZWm`}SnA["HM?bx}[oqAH$Yn3Y2}_/]+3,&1*aBQO ZEk=s(s*[E24kGsAl'*pvHJ0mj8H kemn^b: nw#]Tj &GH!epZP05@6e s1pf]?$uJqiZO8&*;HjR 31 +C{эwf_Nnu5i!-&UGzbeVB6-~cE pMZ7[,UX0np {!;?T y;j@`KqqYc%~BX3:>vnt]Vi-Jo8.k VB>@* ]e`SOЇ}{r_!P#,~zaoaBsOs'W @&1eшqc||cw$[/^r# q+`nw.*S&s`wJ4zj11 S2\Fwa~zwhTsa ZgHWPdt`9ZjC>lAJ6vVcj:@nQk,|IR9=,,6RۈbW1W0KfhXe+^P_*>Q3CwL3y6O"|qGB!?nG8M4T&@ e`V8pAy'J/6evz!dk,.zjae}|I/Gz2w0f&qF,paBTi;$- U-#b!)W[.gQ:1@a^xyFM!ox 2On-0Za&IK+U{+[C{Grg\$m+\!NNz|V0)l&tEe{\2 =  `re:9A68Yq4hr}\q+Ry(( }SO+Sb^}f9W0J7Jlt~Y hwfnqSn/j~yHls dad 2$BSEi\_yT$ZMY_{iko ({k#c0Idsz#/` Fo0G}3sAG7n 4R\?k6^\]č}V?Hy dTw&BOH![ `y 4i$3l2&j{5~QW~/)[> btU!"K9B`^nd*\?z u OHMm[/cT+9^A%"k`Fu94pFz.+wu>YTN LGDCIzu .MJyy%Xl{x>H:Z5qm 4|f{Ju6J`Bg~vI[wF&%FlCrvOSB3At%=nT0_ay4 \kB,d|ލ3#ZX8&u;l@MjL!rZR|Zqfb%dna`"/ , =_c}a96hGp:|R' 6EHpn$yvw48rIi lzr'M>sm Ev7^Z_Mm32ovv1GD0hYR: L^dk{UGSeI~Cv'KMSO=BnLtV,iBg [jvb[1a..Rc~ilY8OWAsG`W,\Kރ*S3oely0lK*jyI*?se=[t v1/ڄ&A~DhAZDS;ć1Hh:@sh4UJ_T _gSd}6lj4^5 W|wb8'0]{P"d >h{muW; Uvm^taifD(/<#arrO i 0>AB,eU"?yuń'jUhs~~aqy+IRYz_`#s)e9Cx@DCfG*^p*U\*{-ve%nqM', nszO2_Z9b!& Eq>2!.rOO:~#U V"IRyy`kXexoBoxuUlm_TL b#!IW$%ikx@Df}/Nz.yD#t4pr$MY\q}Ca.N3VN6.-*Z{}lRJsee Au:a:"5tKN%/aZ4[rbW9 bPPSC fj,%ge3d9k *VdI?w+As]aCms'fVl >nsuupg8@\Jqe_Jh!3`j9&GN JqH\.8z= e9t =GG~m7\eejF6kypdU&7'ÁlVSD{<+hZJ%B#$QB:&lTP=:qBvJxw]$'h}`DhWid]ЅXZVZ CJQzŅ} )ڋd:Ip,6_EG; ZAW Yn%^xDf1MHMO N6CedHeJOx2%C"L\- P U K]Z?o@%)/97g@$M_|vR:8h@rJ ]g8DK@S<4NHr@ȉ}1yW>{=p'O.y5\M~DK~l0[9U3(bX9.h##VC Ex.Co%,U[\ E5j|; 5fjhƁ6Š Jg6 N#>L05M B0+D@X]S6|yS~ow=$&/͈s,$iruVvfȀNkeVi4|.^Y?!".t0z+(;E4d,g}}<s2IokMy^%ng.7KFdw&0`?7C:2J\<'~+ DrdSH|JX8->Pxljo,f Qx(v6\O2lj78Zvj};nwdipoL  in&H>\v, ނ_0Cwp- HU.. U\|yUnu w(e\|=aHtjKOC7S}:_ɉ\UG|T}GR;7-@5+.9*[C4ōZ2-T**FD-|) Uv*CK XO< % worj Q*^0" ^O?!O _DJ0PX\~-# &Pey܆f3xMv hEt-5IrDQ$2W^N|RQDr6"mC'*8M`wE<-juk9S5]C/j`ZYf_j{;RxY=]. PR,kNgU!@d+Eqp v +a)mX8U2&lfAu8߂ЊSU d8eX݆֊(-&}B2P_Hwv_9)P߀FTuGBIBMxЃa!x <U6 PAe= MA'D=<YI-F^m2PgcRi% P{HIR0luEalQS>&PU> M@"ys'ajA\JMGm[ 2_g@'t~m3lmKyk:^"MvJwZW!9{ ynGhy5~Q],,Mu*V>4?Xw J"-y=0^~,?cH,L?A1VHTmbZs,Lm !3WhV`.KH)v@1j;[W g|$i%|Yv- *: =:yV ,tg[ w+aPbD"h~WPTFNtT: zv-.Ypz_%ok4GNvl|8?9|,I 2tAeDiMIH+x_U`Q_ĉ;zFG) L-H\|Xxnvl<z_a 9\@"}Jk N.lv840с-Ax`)p 33܇2Ӈq9av-M5hJjWH>bR//u(WL:;89!ׁH(aUVi7Cg13u.se|*hm^+=|Js @ {CBLC[^S*T)4 :TFbgm;5 snRx3!yTd~^Zm:ZfAu(KR?TBzXa:kN8,wB_$%wJ?^4I'QZe-R~6*4Sc3pG[30H9 h0idD.=.dqi}~]0g<{z[kUJnh4m.f~ ob6B|H`)WWUyyrph(p{}!8HxHVXF<PX}nK|g0OEGv#Aq`a(NovEm=cSA`e,CQ@V8COv250Li;Ea/3B sVfxqEjA$Bz!d?f^+%EteuY~Al^qtk?FuW;k}iH^IsCzcbk^ctDkSxA.3oKrugh\G!]].K{oXXo6p. Bl]-6P0g[M_]oYi+$Pw%lxq].s/aECmU$y}O^RH&=}vUDM<h$3oE@ <+>U>XT <~b%hd%QMs2nw51EsurUrq(~]Ԅ4Y\}~s74BB*hn,AwtynL3/ׇ2z5S(7- A(X`PysT%nj_MlET h|!R,y3t#1ysB9\g)\h!FC4#"6g<>>cwzXgJW}m7 ZKW_e0 :r'nhT'v3zwzw4XH! ^V1C4Ay_ht;?$%x2)_\[q_6݂KrBH_ew5<80lPmQ*n[s=bdk%5 Ufn4[{bnM6s5Ve@ijj5:r߉^h8HH@7{iDj@PuA&Ah)fjfyۋ@ 6Xf.`,"`;YCc[O8+O`P$py1~~NaL%#wpP7R)EcOcYv>yMq{"^N*4 MJ#f8~yS|Nw\[fBq\CB7;6pj4/ifk(Su_EcN-(Y(E||prIj&b)sP݀a Hڃ)G EAQ6er%,a%c V‡}%\dAzD4U?SuQ!AIM+_<~!ONR!<b$,].wsnSE~z:fD~VQNm :<b`.[x31x[0 19gJq6$:%; O;YamECt׍ Cփ7A:+A}-/Pt,~xlRg{)cVI$\o5,^$d5T>Q`x(cV9-[B;-B+r+QG|Fm| 2c}IDK?t7o}\C,g_+S·{j ]ylnCD/2CNXA1UXC]N{Jetg YiQBOz; A!w%7P}Tz;/n +?6Ka`;R!enZY_-@zr/ YKTV =e~X|_>3?iBpHaY3edz;I.|oZh}TqQpy'=}nكhz(mtox?fFI GXoW{vMv :x@YQ(w!u bqv~>p2{JN7d`G:K w@"R*~=|ZY\XUyQnt=[pfE[pq;5TldCccdrmX]^ 8 s0efw`F$/ -!P4z}eK>*dX ͉4&a:a+ [kfXkcIoLVHI?dOU,CGfqPmR-hT]}"c_nWJoE(&zk`smvSA\ fR[`"O+ K4avGZC.uox'Om`wsd$~^JQ} hcd0\qY7~s`lPMr-E! awtl.06oԉ ]6g@bu1pUn a- .Q={+yvjR ǃc9/F'V#zBBy*_p@E;&[ )=Hz }fxXxv2G$pq0XmK̉ 6 j4;5I Z}f:" (?T@TNz!7@n6$u|L3_zLhgn\Ppp#@/XTX|XR%},K pqd'wMLBn-mW{]v h7YEQi[ eh68T.@/f!_Dak&~MSMZkg8acJwAD1ue`Md Nw?&bcրXl=:[~As@t}tE6_tftIXklcwD:w #7"W~y` =S&-[ ar9Qm.i@XRCR]m0V"!-Dnu qZ:hYnJDˉ2e"rY&oy(o2A9cW9]xbQ-{b'[.1,&on \89j8$FO5[9hzJ9{40@TvpT2:!SpJYpet>kCiqrPD$RlY-e#m<k1;1x`݊JV;f~SUXӃT"jdgq^B()gjp<sKxb҉3$j>< 2&ylN}tp=Z*w+lWeYP|^r(hdrSsK CNȍ,MqUrbiIIoH:!ku t u3J$rZrl&/*><{waT[|=b]|7|3HC3"1`-'DZ:8,Wd,p NMza@A xHo0|t6|w@2)yEM%8sV) r\NN RfA7\ewWYIXs] ,m!k%gX=c^di5M{8ކQ:vZt=nRQ>~RMhsӉgy[16!oowgiF?1Dxg>L]~y`} mHI%4>Lg_R@5BȋcyUhvKdQ+4bڍuvbe#0U Y04=*P%,b5^][{ [RoF*k=Yikc}c%BxVuq!d3wFmn<5a!F <%79:ٍ K|Kr<p`a4!~,% Sk~OBhBiH \wdc"n  G~^ (ԅ OaWuV|0A%M\o~6Om50SMP"xG j);O37]`4|_xd-6 Bfm~Y>aB~be0w] T%#= ,}(SBy?d![Gok.o0~U[cG: qOT:TU-|`q[W]9JA"]U|miDzˈZx_.;Ha4p# oq0T8xBG.7q^Qzh@LHW\R*u*|o\<_. U6/fgpca>xɀ4a*X2wz@X-^!bGQQ[-.{ZHbfLU-SiU|k 'q1]t*y%*rUrB&F7xG |Fjm2Q;0SHPY'R4g@JD^Yve!Mm)QmO+mAq>Ё1Jp\dp=tGg&1GISO+Br?\Xn@<wf]%xXP6=*?I l0-xJ7Of@vCn{z'ph? u\l/T)\Ս Q * S*\~RzDuX$_,(+v@T~V+s2s%qdbgi:cWb7Y|l=c==Fp*'=C<}=QkyQv&pd>;\%1F\J/4r#1!6MsI]WtKEjZQ +Z;sr /D/\k^O="j~*iG01]2345 [hHyoEUOoboqzU^\?@&VKSyib:`q"#$%&'()*+ ,-./ n_|2Ą9YEONXw v% rl)M4n"zj%|{PwB1q{#jOcT|0dX*nrUx'hbqffcR-W}`NVv`K!\Ub^QK"YymyBtfR1^XZ =s.<\OŶ"sPohi\{KRheLzoVQ lx[nm98)W*@QFMiL9V?l1cJ *|5Zn<mz&r B|i} ߌZU1mo Dلρ'Mb4Cb,EZ:R8̍+KR> ~B-$5؊ #_d'BJxP(gb~aS^UaT+75]E^c1dhOtxa_ &OxhIj qRXi@ 9: @1IyLr#Ls*r?\AL0YZyl0\]HfHqo5@3gK0Yd~#6OnG_}\iZs|ۍ<b }yn*(c$q+f-069@3x2#sPdseh,@2`t\gt2J|Pz`!]ScWc%x&*;eQ Fha[؁Fg9JKLV!a j\\i3Wz9p@Ҁ)Je{u< ,7$v,vJH!QuEk{T +*(u"j-`m&A^EmLwzef6N^2#px́S" |5$ՀZ/z^ULd]h(b1-%`, ~!@'dnC.xa 2 n=/(gm+q-k$d}-v6Vq49zye0s<p^') VXuewj} `Il~E8 P]H~~3l4`dIA2A 2u|`]ef1Jxw03|BDT/ h P_-*`v'`uI3.fylGm>a7"kqtec_%dqIIzigKn҃)PJtlDssogVsOOk]W4H$Q'VvsWUQ;p@X~JvzDLQ.evUub|.rrdH/?@O[;<604dxM+#um JI_\A ^ mWZ̓1F{3q)^#I}aJ%o+τ\<We/K< ~IPO6AUObQhxwO2'kuo+aNVu[mzbUY[@>]RG6vn1{#E$1Q^wq-d?uXY1EZks}Qatd [ l~s&3# BtqPAG "L2Vm_~O3uqm4j"PZhU{D{RGYr-Ђ(Jd)J 95j{}C)uSlc&xSKnR~fr YÄn%Jԋ.kxC_*O&@K*^5eFB2-CH6%]7UMmjO.`TZ>w{PFz{Rlz4_!\a,qs  #&Z\k@(jPo, *-YCcm ,:Xjr(Q`Ad !)R5\c X)Mn>΁4tWVJ[ ]*~*;9?7$ ]3.|= cci>:<H?w H\UIp#؈fوڈL_ f#)&7jbN҈ӈԈՈA͍Sֈn,8XN{tF#|Q !l/Y:iAg Bg|EVTO:g0{n|!r?nJL]QELf,n|#x }%P*Bh<Gg~eWRiH{_- u\{ ~MtFn{_MZeOi=Dy,uQ'0P#0z 3y@if:wO, +vtW'1hL;`V3xBhv(G/UkRMR*t`2*^QR@{-cMmgRE?^Id^[/(]4Aeqxf|BA;4i9xug_rgv) uJ 65]n{.:xj~Lk;??~V;R/SCX#msBb;b]W#Loq4rWd-M^JbU\.qlDZsZ x8(YLIcYqVSh.V|*V%H~%f|Vt\J HzYS=eSS9srMItLN1~*zcN_=JS{od<^OwBehD+2Ezd^ &(/I7Ta+\"#7}fh }SN9BMqEBRO fo\sWd,qU&:J\Yx`$oJL] o G1|#d*dw)yX*~[e|*A2p*` ]}>qYJs=iJRTQ?w&EEos;Chb6@[z9[l Y4}74BVQE? X$bGW(g*..wZQoхIߍ` {zL+I\Vk@0JP__>MfE9u;YH xN@|[OQDD A7BTP" p)VO!`A?VK[ds+8ltZj-+1U]|]`ee%3ށ T+1qnZ~I[?*D_se o *!b03͊xy|F'S|vjvQ+5DDIne3~tv m(q_Kf$L\hU u^wkcpn^26g~Q= Ub@^v\Pp`h;t\1x-keib)C(f[2q0U22|zdA;x0}*f(a@Fr5"/6zV~{kELމwX:R!X]=C% olP`Z@a{o*Si_Gg{`Vw)4^O.fi|>0Cy<|&z'K)a sY%Po`.Y/6789:;<=>?v@ABChAiDELHFGHI>bXen0DXipyzH0Y}D`qD~&s~`rw!΋:\osg6@\{]bsjJ{fC2+R!HaiMw sщu/c/i{9"(Kp{\cJ ^+nrN9E)RG8 h8*08c?zmx}Jfbh='Us>ol:yhS@_JUsjre(tt yK,TfiTbslU~"oL,iXS')aniIFDdj/dr:]Z,nLz1GFv5+T~j%w\d5;!T <[~łaBApmGZK3f%]LMBLDI S~zJJ\.OYN.mP Y?r'0e)g1/0Y5CowmZm_DZP,tD `|B4]SNNA%vYx',YԂe>Y;k>y&.n(i>RuqmKc$ "REW<azPqD0W }V`gVyq:*r!2I- {p04sp?&oowO U|hhG"wcyRY.dVlT+93il_vcFkI2;Yh[RlO~5IlWs R5m{vi%F3yƃ<a45Q~]XunU}x;_sIqY@qdzą&nÃ@\f59qLmمU}7mIbZlO~T;>&ng_ tI 'k UM- #p~=/SRjDЍ 0ql59Hx4x|Js*G*~Q4 RUuM#qr{=s%' SogRY/j{w7*KXKiy2GfG&p 8LOIM3d3s}R`Yy<k1AYh'|U/k] p 1ri'fntP,0 3fzFubePn'r/kN`e?J^=Nt}Bi!dt!8bWTW֍|*)"Cr PEmjO79G!އwag$Gv=VjCm]'jtr`x1}o+'cV7&#_P~5=VzsV=C҄?7MDy=:vj~:<jcl dJKLMNOPQRSTUVW^1UXYrxZ[\]@/r`C;; :ƇT$g>|-89Noxhw$Z}2]?00&xEtpvfC}&~6a]2YL6w!iNci|G؄wl?C܈o.:.=}y2@v"Od\Mx|',WDy EjwK~nFy40 NjU3NaM+&dl`kL4}(^WDb5}q\?gxwnN'u(  G77s\k_Ӎ{OJ&2eAhZb{ujOv=LWvab'Z6AO\3^|r1SWf_o'Lsk[bYMH%;t>Tu n5?B7z+ЉAY.TYdED1JQQ(\*hBw^ƅ>vx~`o7BEU02u6&@Pzf|tyPdnhn",K<$cU"^K86n^yU(Dzz1WG:vMe;l#vkb zf m:7@V+J`R:CGπ?<yc]YK96ω 5hw:HpBB"uRW :{7QnIZh |KxgPso4qg30MC^Al5ih$Rey&R=D: )LsRCʅ4t3sVS74)`^Q^5Iv$X x'Qst0y`XqBhu22w\Lnowqw EU_v( mJHq`Qh{X[ w?\7Ixn}8{YJcXEv CWI߇>n\IQ=b6w>KCN(uA>{4K?j1{<E U`IHHΉt]Cr^@pS#6,ckEJa@R^HiIhg/8 QOjCAyrs]=zuH@4gM|?>\cHO>ipKpSQ^9}CpiHH dr:wF_N12gE %MaI]M@dz҂smZ15΍}LSD297(`'KK?_ p{P>_xNrmj dWt15w;sVE2~KyJr ^W]CI'&1wV~Z)z8 Qn>BZ|)d|>F[U/0p6ai*Id\Dq]*;?6`#*]o=,u*gN\FPj/3N/LI^}8z~]O[5fDr"38YKKu<3HL@yJ%ф0TiIzVATUzjuINXfgExz&Ճ umOG5.aEa;}x'6|NIc+o=h&Km_:F-Ȋ28{Z@gQjn}\DY \65/xftց1/D?,fTnutsN<)VaSPq}?X$xnIt/z X2/q0B0$m8B}w?-\<dN34Hj|< Wyx7?ofbwy`3Hf>z TՄzGd>DZ8T Zy2K1\!s:1k:~yp})Wffsg~CB.SJ0EЀhD8=$TNs%a~ >nNr.F=d {Ejf <6 3AZ'~Sz9Y~N 4wAY#>w~~ʀ0;Moo.8ie}N#5,^ac\ \f`wl9b".]A< rfz<A<?2Km[cViZt91z0)x6=SgbbHZ#cHyl{QF1RNOQD'U+~lk9n+DdW7 K_lh YvT}t݉A}D7ixrz>3oB) ,QiAM.va| `(zacu2\9mo(Upr~^j> s7_H oH1s+ aEu{΄v'-h:{9hE[gz{(Rf%~mwW~F?QulC PUvYMk~aw}/Vz_=u6Lt-ZZm5q x QacLqvPcHjbS0z\y ƒ~gWBXlc$z* jZ4B{M ,]B^ZY8T=!zmr0e.f*j?yj UEUtcZ*lus7A}$~$r*an__tsK7z1dgCk@o*6{la'C0Bg'Cb{8TL;CgP5b}n|sz$K]]Rc32ztjK c?qh8Ny6`w+BC6s[t+5z YkSrsym#(4xGT zL~ *F} mb~k k:f:OYJ3@q|)}{cljt>_zS(}+{qd]*:\mRE}p >?=l#S9zd)J49P;tD 'QKE5kj``'$ E <fJ  n/u{EA > Z q6 2$O  v8 [ Z  eq P Rj N  .$  2 B  A 1 =P  LY<- { aW +O 7?b   `  0  9 Y H{C ] 2   | g bX  :A4N  ; 6, S r5sL" O t vq Qb : $9b  kqx qs &    / % 5; F 6z 3 +_Z O/ Un [h d 3[ c L r6\ #  ` 5"5 r f -%b # @& k8\C }I 3S Uj\XE 87    U + ?Q M J ] *h]@5? r xuY \<  Yq}_  ) 4By X    S q  V=b   y 5  -; Y P 7 BE 2   >B )$ X \ $ O  + Ku;d  { 1}7!p 8 I< FC p*G f sf^ p  :8!4` n< "   ^ W   xhlY 3E ( I O: Hb y Ep O) | VB"R\  B |   | R Z[ @ gP .xn   rw   iUX%gTHN `SIi"NX  7x  z m]l-t*U +a#   }R e L. @d06r % Dq !ISX!2f a_\ v~VG[N A0T T| !; %/"l"Fm ~m 1E"X {  Q !l?6 TV"e"AOR>Py!"%a#0 .,E   E 0x {h <#* ~K 6X"ed{ tr tD "tt t$>p x#Rj#2 D"e L R " w!k#! ^!o- 3% e<b7 $Cw$b !`!0##5 %P"#{3&A d $ "f"M   e% "$6t%B!" Cs$#)2m!"} y"W!%"K>hl#{W 3&* 8  2]Ki / &qG$"@qF ev 8f lM>#% B ""!"%L! mv b" ->$ {/ 3 !U (9m9%% a ,9'!=K! A!L $!# , ltlH&cr"[!fk"!3\Y  VY!'}F 7"8!]<p%r&=#J!( a()z)D!(Un%D "gI$ G( sl$J& O(='D!>(d)W~+`f) I$ ^%YXT C# &, % h5&*9+&  ) ht&3 G#'%1N^"c#dm(:#>%u'+Cbx)$R&e_!*T O j< .(['1)!(&) "" 'U 7 A6&PWn0,R) ie(Y&n 3ku,#&$(3B eW )%>!2`!!-E y K4*e,)9!f" O)lr #]<((:$& ),"+_-"Rg$;(Z(#,(&V "#",*G%m&D %02; .G#t- M( n!:)3#= ]!7BtX,$ -$D, &J.%iB%<%,&KH  . D(d' h*j:)#%)'dI%3 $ <C%+ %%b'#P/@ W  4,qy%~"-Ss #n,'y Z t',-" c,$z+^("9)M #&/(%3w#bf9"K s9 w ")+##%  '+C & & (R?#F%%'cbV N-80"c + '&aSN($` %0O%P% )+Y{%>)1b <*'[&/8-;,X/%*@0d/f] &/ V> +p${/y#,"/ a-,.y+*G*&)-"N-'vG g-/b q0V q zA /%I 0M  w$Y+Y%!!(22 #W ?* ./2I$sa1H 5f0_b "%' w'&729%.j'"$/$2!%+@,\]<)$l0'&  ('c2+  ,*0G/ *>%.{/"@& 8_%28PQ1?0. -1J/1'Ke >,D%K,c(*#-(. * /*Q) 8/T)++ ',/$f(1(J# 0,b/*h+/(*4I**.%2!f <#A2R()92w3  $^ b)2a^24(+1^!;1hx !(? 0i4/H2r$v!) /L# 6-3l3o (2''@W."oV$:o3)*#4F& (/u)P3.*3H$^*1@3 3.2t/EMY#_0 +0$*u.)#,U* / 6 ?%> .H;1(A N% 4S -{0-#'@(q$%j0 ,'#k&#5?fs' 2X*>3?2 .+%5y+4K-5.2W/5,iS$ip32:. s .d"6qD&vZ5 \-36"$n-.5(,L"50)" 5-M' ! Ez)h"`M > Q$M&-4#<++I4K6M 9 V%)+ 0;'$(]y.,\ 7U'"05+64-/'00le')!2T( *#.>8%0<]..b4461- e h#28#,v\4 (/f/3v'X!0+m^)e)1-v%Kz%(^v - (&56M&B1G5+/iR R22"Qz"1,f4%#) s'=.(h&+ /(<6!4 T $8m)+'1( 4g9w .V m'1}@ NQ-,v460 z7&Q8t{,#n!4!*)]X;/$85#4#9"4Hp70x F6 2/&o '))?R&(6 !:1$4018 h:>,)s:&#+1!'8 9 1&j%0M6Y:9Ajzs(9 <)0G&,vC96i-K8 9.KgvF= :6;2c1J!"7*&$9r:/ 3$rx66A5u$*0 3x: N,1U%*/f!J &5, 'Y-G)6(V^1#1Z7-}&-$ 2 0$46tp&8!'y"!8;%f2 ]'A942M;": $. 7-9S)5_N7k'~29M1 ;,d;!1/ u' &;! \Y35> h:N95: -e 6#,;0;"-Ze)1 6&.&;k! : )&o#Y3d9? /N"(<`0O10-6V-.$,!m;*|<329[Bz;S# < (]+]96,  )Q0,3y g %O0|8)3K3 -<2V7<!F)Z8(66~6:6"v#8<1({/)g +-50=%&|<,."(E%;5,l,3)9$^<)B k3)7;&8Y4825;'  %~:;A2&~4#&:F*| /m<X74 -+ 0 8 6*F!+1"0 yJ''<' h%9=.+EL6b }'=4J <];9N'Y()(3d! C "/i8t"/E1;,=$m =d=Y, ":FU(.D$W3,!85`;V(J5 =!0(=[$ D>*<<&9 89668e0; -.9J<.& 94 &0m" r?G%5+ 1{ a c8<W/= .8V=w+E:<N*%B(!$%)_+,_&<;2>+)=4&~' 1' :0{ z: ,1/+@#(4@+4'?) .->5C%j*$6}<7Xc l';|'b0#~>(l?+$66"'.4+  $9( =/Z\ s8\S;&^;1@$1[0 X1>)@!@+":(=f4'4f)'77&;6,s5? ?!Vf*):3*=8l(<$""'*!A%@G,v*P0Z3 )+(I &,C;u91@%.21#<<_h6lIA }3[>3,+'i"\2m9('+) 8 @=U?? X#t9-2. /,0| 8P7<>"46a?70247Q3Q?a2U4;j.?; :k! X'>f8>"4w R+/V@25$"# C 7@:\="-0*$ %V*.e%&'7n*4*=8U?M9 _7=,B+"fD9&`5^ >Wd2B_&N<6 $nBM'*s=R#=B%M!B1:"">,-T!:&>@696'B[)o5$8)0}L %j#eB;~,N"$&>u- :; y2+^$L?H<#D :CZ8/89k2f>.22w*>4@*%43 ?F% < @r/`8-) +GJ+Af?Z+.<6'|uiA9 {#2q60\7) 2jCXC78?p7=%>7m BE*L=B)B4`)9 9H4t =Y=3w/A$ /@CS/i&wf!_/]7?AAf $C I!; .*{3 &r9/q'ak135{ <l3BD'x5.#]8T5O*$C%5Q9Bk<.-P+,];'@"=W @f-/=(%xp:@8=A#/C* lB$ 8y%ogd5{C0cEAP26;,*)+5,E@;U@5&xNs $A:$QpC< )A'00-BE D=&'7;D.& gmA %-C?W=#bUt9A5f++<  '0$;7o`2J*;X =4G'9 *@_(.9*8(9]$/qFm;7<}7Cv0z  B_9n=%E?CZCO#m27|#T72" >-3"638&<E,5=p(-#6( 3A1!#?9 * 7 >??F*'"1{=&77vTp8!G u>%851e>+Bs#EA=B <|9F6CPCvC"58.+,24T8AD+@ ?'0 2f;97<\$E '=J0')J+*:_6t4 ':'H3G<.=c;' =w,X?}4' "6?8DC/A ;p53/&FK: 27C$A->h<+'6D><&?Z),&6-418B<U9= );(K)'H%4!/%.MmD?98-H:8J43y>Q%& {E ' \)uF.?~Hj@* ?4#'/47$L #{$9`(+2n *11N,L&]EcL-) BC;l>d(s9?$ 5 ;!&&KI2g59" !?D>C#F2:M. 4:: [B+71:/-z!@H *+'I$I{+ 3-9;*537u5@P{ "E2RJaC-;[=5=,J@?q&5+1<pQrH=| GJ)7 4?J9"jF5 WGEOKq7z'&40&i+m>EIA?5/PH;&\6C7=H3W&H&_Fy< <>d?C >u! D :JF&%$VCd:%3.HED]%n"4':})Y{D{."HCCB:3)7Dg>P)<|JHe@g^!i@GpJ{Im T4+</2_+!2)0F!>#,=;,=AGJD?Jc4<F+?F?$B>*E)9"D0.g8+G[B//qIE -;7l&:,d'Y2y!G )z=KeA^G+?-@7;AB 5(7%-;7?3a7Y,9<8gJ9HJ<2 . .H7-!` H0H15G!G#%03XT.?O+L8C';-I"*!n+ @?.&4Z;=P-Lj(LAb G'k6;*A3b\  ,2o>) z4~GK #2M4(%K',35C@)?S@[1C=2) I.*f"J"/)7$?;=B@9:&F ?1aD!=>3>F -kh?.( /c)D9z%';)?Z==IR.$?I9HAH8.XGiuH%>2Kv9~x%I* <&;1>@~@KJ,!0/x"DM0K<%X0b *!.YPZEI,M3p-E+HII (m=2=" 2B'_BL QI9L$+,.$d>x0F)9+HC.EZ LgE /.()U O= G=A N KN N20r7> NC&0N< 5AS0 `+='"6+*-$ .NNNNNJjs](2<<B92FE',^B/CW"N/HoMC<%D<3'.F :KmH/#E1<.)b3g%Dp= 9Ga!!CbOcOdOeOfONM0,"d4:>W97"! @ 5 ?" 8NF/f::=:?d<9 ?)JCML&:=x*r82Sl I8q;ZDB8"_ +H*FK4 L )H@;>`9;:_K<&kOMO<3 >C=f=5 +O.0D1|; O8AFZ0MC)FP8P( 83"36G2L0#d&I%65@N1-9}?<hBDK+3L)jDiMI %@ \&Z,M5-.(qB@5[H1K4B-S*A9<# .P'{-<_HA ,t6s?]<= ?DnGF ) A83+G9?vBC8&&HCQL 7>+744xEM_IP6oD!EcGDH,;(8Y>JK(B/=%PJ>MB2P&& 8]/"-tGiG>(L "%69.Gl@Q4'Du7r+$H !p?+>Wx<.G5,O"Q64WA)(H2?%JM,'JFD%FK*lOG6SPIA$sFq%E 6Aa$#X"3V?BTKH)>&$C=R/;G=?`/Q$7r,]&7 :Ep-V/$I$;$L/I+1pAi6| ;v5GHU18P8 D('CH{AKNF+? !3CH@0C7E65%M NOA: up"MQ @IK39QNw@Q3=R)@UD+E.3 aE;,k0;0 !5wN@7+@ tLA7%)ZR Ga FfA2LL:A73<QG B Q;-,V2Cc zGUN?>F"7,QJ K$0/1C-PQKGOMg KQ"5jEQ1OQ/\'2q"82]L-1(6A`B-Hk%(6> IvHOL[Li/LE)FfQR0!V'iE$fJ %L5 =3FA@ }$ mk8-@L+M%GaL1K&J:=M[Kt1 9B7(S$B6M+ i62 1+C$;NyRB5Mq/?S SP&aKGC7E!=DkB2_)/MjTL!. E{?KL7q8L!H.-[HvEWP_MD &xON-NBWMFEPD@SQ,\CE05"33>KKD)@BCk-QDK7H&Cc"GN$5L:EOCO+ Ne1@*'+-,MV$.m.L5":TNI_1J-Sq ESKHP(9U6;F4wT9%+W0_]Nq],?[22I1F"NDS!,Ku.M/3 _OO9:?(O+>|BCFTJ><=U2 5C3 *Q.Mp(}8o))V;k Rh$P;C8 I ;T^L:0 oJ D+F$<(< R?U#x7 5N9\#L;%F;G5*C*JJO6FQ]I?$*-G28XM>85 TySM1MR1 PlUHA)Bj"5%*VIRS[U$+CRiDT7nEvw4<Q#N5Q=k5IPEu0-36S5#b@8l ;APh 3,2Rp<;\>X$A?;I7 DU=7u:7NR/gB@;O7CB<84)KAQ"<?_+C?VT<.S DOD OSmPOIJDK ((7DA@?F38-7v:(,C5(7@\V$;>@LDNIMDRa5-H5?W;V K7)NBQS'J;TFN#04O#)%63QW223  ?OMnM@N><h.#%\I#3y/"J^6KI^84QR]Hb*-nT.aQ%!!.U09kHQKA"D3Jc&I C%D;3#CGL&T(G$GlJ"Ka"!FRF6"MKD) &J+P&.) }LRmT!/5AT=;E3H\(PL<H9R=HGHQVTSFS E !E-/cI/kSkSeS`P=3}#)Vix/Vi)% F"/>7LDh /[%.Ra<8 79*K8JL);%.PH.PIR.LbH(0VHi?_2I8y+\3 *Yz V(TnHA7V<UHnJ+(Y!9J5G"QH@#b*BB5W"dS:BJbEcR`?.B E/:-)N?>t !>0fM)XHY%UMK%Mw3=vAI8 $5 A D6:3TnV=P|YT9DX3VFFT5-IKUAY 2 MR?=?8,c!X IW,F?1|G5E}/:/XD {2TH =@: SR=E8Os:UE& FR/!Y|W0PL)@}V:6(ENOOw=5JRA S,< OQ/%ZBBT I'T.,oh1hE+WXMK 4T*h(>V+XTXA+J&?:@ |[%1RKWL"OIhQ/=a0b.N>XCD/21c %YK[,+HD>.kM/ [W//$o0RBJ:SP 8G)G8>)IU=A67S==a@ (4f$fS rQsEGp/GV-,6!(R2><NE+p:X$CEyYjQ3<z/Q>d+n3=?I)$JL:L)YGTTc BF;.\3%$'YV $o@/-8+$1s 5XN/8WXED+U*H'964e= Y'@;U\[TC[EXaI=/B#$ FkP[f&xY8NTX, PlWN 6:)X-?&L'@4SyO{VTVA?~]=3?-VJT*l G uDDJ:HS<C>0pID)Oq4m6\GL\=Y[7#RM+:[1KV ?] E 9E7`F4 HAT\"( :*#@=-'P=DAR|CY.29t!zT22)Br]YEAMy DY<=RF $/S,QM-!H]WCXFkY"mXTY']CAqWL<lGP ZCG3A0WT%ZVUUH'YEQ'57O?D3VU-(K+('!KS+ fPTLN92*-]TT ?QF$C3NT, ,E$+&>K14G4<5D. RA,9K]4C=P<U,0T3<nO AC&4g.NUG[9z+3C^AKNQFO To ;!iK\"tMvPAGy^HUi7h )!EB Pg(aFAP9a.WNWSU4T[>F2j9D;(VS?L# km$S?WG5%SCGA~*O]r<}HMJ^:e*PZfl1ME,')OVjNBEM[P:P3 ^&X7eIEV5D|.ZOwPSM^N 6-=K9R=`LM>Y4 *4=SOHP;x8#!_s&W16B7&QYX\/ZG7tZKWPO3RB1D%_$Nj#SW(^.2%YMINZb&C S5! 7|?4N4&B[] *=,ROKp7!r S8sXPC)*NZLyGO:'N-CB]_`{AI;rE AA'(r@WZsB8]"H8wCU[1 \M"FT4 P@>}\oCp+6_`N  1iSe Z[QT8<P ^z(\TG^3X{:(B&?H+A.X=O5P G"?+$8VfuT 7g <Qk 8$3v]XNc9BDA:wHs}P#A)=2O^a|]h% EJC8&+`.Q& *Q "A<0PTZ?m\8akAWI7+IE&]YF[3`vF2<:bGP5R6 5*07R/#B"nE.SV[AR'%MNP$>rUB&@=N.#%$U7,,"SU~B*)>I(=$S[&LOS]U1HZ]0G2<Z-Q@aZa5]j\[.H7[# /rF#I/h7t '&#4ba+[\p[AdRwO, b2!.9Wl6_: 7)A\; L-F0+I}bIU7,(;8; `L_*[lS&bJV`\Z]q |RZr;Q2FR 7<2TYQ2\. +8PD+!rZI=I9Y]|AR?)Y >A8@g=H e.9O-D0N`"2[)V? Y s%!>  7;&\9P1 7cmRIj])ucA, >[-`_I'^XD@P56P!LUDK9n:9`,,#^,3(HMTEV|RbK`-v#G<N=B`[XQ@iLC,%(P/5PJl=S y9 MF=X_G.\/D[(D"J99s0gm=^" b9;!GbiWIeJPQ\2(HO:9/=|WO94JOYWI#$~1!GdGxc[;p!Y/R:^=LT'@X>WL(^W;GrAI$bz?B+Kc~cXl[BX?M] 7iF2,\ 23=#k)H]P3rDZ-OBADYXCNz3P*Read( TI&ZA#Cv+2/ 1?y]VkF8#:R @%ZL\^*MY5B*DN:,KDAb"2\d\4/1K8GSd-;6a=\ e4d`h/c I_WcUVXE+e_+%Vb&s+0J"P3Z875K=O4O `OXR&-a('YO+|+.-T&T>S*:%,Y1445!V+C7j ?/&SX^ M>[T'[LWQKR%l*3|:[F@D%{@ @'-'@j2Mcn59,Kt-I<z@J78AS/:adN$Dh^!QJBK.OG*XE;'SbI.`[A]U[G$9Z7L6 P/\@y\SfI6FY3i0 T)FqTN.RX`bVn1e>YF*O7%H,$PciJb$ }U8*a=>B[YIE6Mc8+ XfGA6d[5O6a a9 MeM=7/, p>%a4RR<>6W]eTUXR:GEg:V0~&d {#D-[@W;?"QMD e^RF=60$N.Y:9KScclRT~Z YP$FnN/01UDZLHJ/f c "KN!GY^2MT$KW+ZiP"d3"- KuAZ;TGU#f<bB.Q2+UgICLm*&Ht'M^_K@1+!c[`Z9F1oTz %ZR1Ogib:>&NaB$F54#1(YJs_R"A]30U^Fec'L\sO bH^ cb:K Q0"eH[|-_O64>NH#<i dc]Z!eV(eDKFeWS ROl/DBD ]Qdf`HK_Y "3J[Xb+PhQ8 O ?+`E.d<Xg<t)BL A(pK^d{K:c -e8\AdiS*@YUX`Z^D"8-sH f]eT6FL'`:`h?G+-_bN,6dOPYEQK&c~iE>_(hw]g jm gVMW`g*-Ok DO_\ i?4X&,if&Dd?e3,#.v/)H);q\M_Xdb[RZ'$UaGZkKaQ I2D dmMe%~eL>Z'h;l-t`9p@G8Gn`#8J.:Vh6X=K?(!>@9%:8Nl.0P FN. JWTG18L9 ".Yi,W)dJ;]Y` cdAH>iWh-YB^ cdj=]02W2OkR_\N"/|j_4#2"Z2I0+ b~ @ $>-`28@"JNQWYB2T8Dkbd$WJG8focmb('V;*^Rb7:6z>K1 `YJ3 g-= FjO l2Jj(kd6-jyf]gaZZ=TL ]]j@CXaa 5SEZa(fMFI\(HFk!qE:FLj-.UAlcC:xK$JiR$A.KkOeI*aY^p?RWZaG>^SANPp2]igJWAJT9T) i3J@H`kJiv(<{e!ejC]!+gYXC4b>, sJ#( =7T}b&WAe-`l]" IKY$[:4 o CkI^>R^^jel$tCRCX)gkVjKG (W'1,UUl7>WV#KO34e:8'ZPO #a QN-LL]JaHh6ItP( D1I/=5 [C5}59( #iJ@g Wim 4 A| \ &wUmKP[A+_kmK;:_fiDVF_>8^i]kVh;TV8nZb5vc^8k+Fu2GYN',%]ud@[ N=K`; wVAahkXtE23F (n/^`gAj"`eF,e?*]- bXD#_(W1I ,1g^9U?W^[jJ?j5;N8,[qgTNS?;H JaYP5%3? HYn9W5; R[SG\3;dCIjaQDV>j7XkG>`zWw;6J"9M\E$BK#T#;= MbnZk5 W43K;9&8C\V[Pj;g_FacN<9D_g8O'jBS_O28;:=8zg&d'TVh:a*GfGE`*].OQQY P[c )EtUb19:<,1TW:r3TFm)L]NlXb8gWR[-'PiJ^vRE XxNY9.;/M2PX=E8W~l_ikZSr1.B> "r50k ?5\Ne^>3k[i1l^T-1hAO$_0H/6z<Pw _.))4<=HK^`pTfK$,t+jG@ #" nnhs gbJo^ F\C'7R[,g!nifaB_]F^iUE`ka9(isL_;IL6 M0 B!ojW{ EheY"n&pod#R\/]lfjTM*a]K P[<[B& p`/,$e)'W[dh<dhYfdq[MS$>`fMmU yDK9;Wmk[-?R\P Pm]g*{5o`g DoCs%=%XgeD1a%M<.^pJ^:B"M'1 @ZEk>rAVc6?@D@i:J%(PPY6J opi9h QV$72#*8vo*ApWzlgaTe]reDOTA4m=Ihn([L# d*FV I\!l)M%[|eMk eW>hevW?^kpQjf'7Zd i;[cXKqX;X`]arZZYp^3rp *,JJjqap -gXQ`<I++gDJdll]Ao-NcG0ILCI/B^e7fM\TQ,+65Wf(9orN2XnI`:9Cn2E*gUY:t8aiR2=$dZBd{P#^F 0!e I+PkC ohj4n6L)VlX6m6n ;:o#MMzh`FAnT=0mq a)n]4Z_L4#Vep#5C4;qqnbh.6Wm[IN URq9}^aj.e^]ZP' XdF9dmG|E#8eN$R9)P `3*l^tPq!;NQTER o|S{`n,wraf RL6.Z-=oI_sp4Vphc_lXn3=nPp.dEAa 4! ?Af9Q,^ {J4hCNB;Rs+Qj$bSL^jf5s2[45^co_@u"-/rWd #}acGs}W  dK!5K:akOlZdS'Y1!Xf79T=Qw #Gn0n}2/dcPbCj.nv7Nt0*eD#IGOTS0Q4}Gk_cC,O@6;[ )kX(b\ -& l3.|M,<+<d`)<0</<.<=UV;r :J?[Cj~a6cuI%dahlvrQ%Y"a 6Gp\l `cVpaMSbt@: )^C E/VG 1obY>B~J}%fY>r:$(SZ1CTfG[t&'.u+gQI6c3zf-fan#/QQlOc} s[m+p,E4df@'Rj??'?[sh9}o00r]?W Zs%lnjb+2q3Lg-(uUYQu5KZN+6fx%%Q=IJ=qEFudAtQ6UmYOT\]JmImt{&FKBmm[bK&T;!UVAL${J]TDr7hMO4bl]RpeNFCRK/d)8Z\c`^>-Wb4$Rds`h+v2:Rf9g"zU9QPDCLg'ji`[Cl+hB\8i#rsaXKUuRv7v'l25 a@M2AjZ>NC26gISILd,4\[*fLNm-fCShpfFq=q5nZUr<`A!`e.6KYt:2CYs^^K"8d!dE'd]fo}`4 XOtDv=q( 4fYM#m-ICkm}0?RL*g[B5>?XdE &V$c.N1..uko!p#oVFX !0t9swwvGh4#N+b[kh*Lh-n,p+bN VB}vkAmspR4-uecZclCC!1(?_Ffq</^.XHEDFShw-+*%J 9H1Gjp?MKkn9RM)-GFYaXcUgv[.:AgRsSb"Z /]EF88E/@hCq$#t(["ciH ^!X^=mVl(HrbWm[y&voaf2nY!9 %SCM7enpGay-]2u:eMr(d!+4]>oX(Ht<9Y1TA8myXFf`0td< =(V1X!It(? r(FyzzF>dI Gar :g-:gc'bJ(P:w:: gxJkowyCBly>ds^OnS toul_>?xvr`A;?M<(B@&OK+tm8rpm3rXBf+;P;G@ 3UdraRISK[ACl!$k*3 \$0[sh xVX&VOiT>W(`br[yMB2y?DJ lgFvLFiLp"Q=U Q[Z\ nH0kR2q?=vI(sl @? uux/7Rz^. U p_u]yW_?-M2PvKGI)"TS6Wx1JaX G>-\jTduf_aL5@bU+_13F)8;H_8$t'Vf9y3\mnZuQqkpaURg-N0\p9SPuIqF5:OsgEQ[DOp_:jkuDkAQz&R|Wh]O+5 hq}Qry:%_ZjL0^J,_?X;jj-78 znui>IO,0zY'xt|nYwj{G"g@c+n[Iv+d:+uBk{ixcAa zHwy?quqxyd I:Dg!)+z7UUJ)'b %*eSXtw]uL@twP;XSvLE\g ).X^bD+{VkpguHvTJmpVIT*S|b.>''mn"o,V Vz&-$#`Z4.k<+w|||^tY<#h0h{kax7X[[RrZ'D *IGW))}G-JfT=|j?|`h|PeH+;53Zjl'["U8+w!c6m#b|l;XQSMmG7VYTB1QUyE|{47c#wm}5XOw82ashAX]4(&oUG"W4}Rrds3I1'I=g(Fl%>^kL"gVI+p*>&&|>-8>K#QilHr{9|u,1Ev),yFc*.6tBxvOr! sjvpM?ytb+{z."asF0 n}- ).V .uf[K-!;DX"!y68\XpXJn(boASk/mJMG`;{hIM!/>U3k!8v\xze{c]]WYRx',r69_F[<vhYz"%WRj88r@fRJ B$`NbObu r.lzc5YSw]rw?}Q7^zj+dafa.vs=Fr;:=F8GM:Srkc{'Ge<27gmxbP"*;g CY^\<Hh\k>iLUz]17kL>eb snnKMOi;d-^hA^`kG-hAJ4 % n8wuPLmHTxdS4PT41HnA~ CL^tpiOpGRq:1O`gp|Q_ivX0YP4ZFi!%"zH>RhmdZMybTx8J.}pybrRxw>y"E{)9FkA/|j?Cvl4wJ|gz.T0m:sabY^PMI]5k5 \xlEo]1qpuQVl[ _$f Mwh#\*2VF}{c;{u9HNmZ!X (ZJZTw57XHyWZr'#IvULZ<<V bO|4wE/5cc m,gSaKX_ wPUA.bwic$S)w2Ut?p4J+f+(y{2U_\x7`i;TjOh&ur&#h&k|C[t@hrOzn/a[ c'9_wuVW\/`}Ije` ,PWkqa_o9Rl' AWz$x^q\i<ZP?bk; YsjkhC@PvWl@7htTWoRq^0Gqys5AS%-f pZCnuC;y)@[^%2So%EHV0'N@W{0xm?Bg"U.:q L3 }{hH NUBOPk+o'YibSE4u5z<i1gV@zutCxn~LS5rrJ[pgn2zeE*9|tY``koX1s8n%e@Rjq5>d Q}VR%bSN^^_s@h~5U>%T`}gZmf.gXXew6Q w7_`AX1oe5-&8}}nv)k-o%ki *x&/K<HRR,ZGS`X<i|sH>MU?B#ee"fH@|F Tw^Uo[o\k=R h}ov`uf ;i mT+?pE=G /)SRF;j,jdzH@nzMm1ao"-9 d0rfNYbu:x3th,LX1Cv&jm)_n#=fc6?w}6pEX-2$,3V)E[hBF)<JijQw sIxV5"}D_(~I%pL7rCO>#UExST~[ii#X>9&/T?uJt.UDD6OH/BUiuprs Dyh}IWZ/uf*\I'=A?-?AbU~zk<qifM 2Yi bVU]$U~u7y.(9j0Fw^TuKcnC8{@Zf=+Ms?[#PM4q(4e6`r3Gǁ[e zUɁd,sh=w[<4|>a*3~mVPG4L`A~DEpBY.e0p=a>"n ,Aۄ{Q}+G0mNxbdS+u4&VcP /iB|Q7,Pryi_AX_x}95w"oy/?Xcsiy#^{(ml|pef,\m<54k$wdw6x91by()]+1wjG YH|1dMpw1$%{4Rk:{?ahBur~g q{ONUjukv p]xw<krGy NM%nMy@^9qsZt F&:dHV8;bTC OuSS c0rW%s^ p6%qViiy8z{-OBr 6yj^,Tit@P?`c-Az7/xIzUC_SA Vye6ba;b.wD<B=(rUWtPG:+_,6re0z6[c-0sdօBjc@0E vJli$kz-7|q5/Kw6T{h1?x_EtqL`Vss&t*i2zm1juGySh.pjMod<~sm8q\~g;(- L\\8%MdtDŽ$ YWq.,zTDg$\Yi_ qׄ *+a3_-mE$--*RnDwM-r,Nˁs1LQ|f):zZ\s}?ZBUssmktM;/rUPTeVU`o?!_#d"6F2 SD(KH@,Xs"]tRWL >!K,H~WzF^-M/SV#8Smx{8{B׈) 7:=~|Qf~n$CwN86_KNjg6vk*]v| $Wy\gb +xXd{om'jzA%bJ>Eo3c5oywE0T-gk?a y+qc(Xo_1]WRaV`mG{fzyK }xO5;]m 1tB\TIJ̇Wq)6~9'2wsS)j<|/ti^<L1/;V0hψ6?E ='#{"f5m R-_vnO?b~YH+E7eh~=|@/2%VGVxmWF|n alSpx;$~(kkJ)bN'9X[f:4=eT~c~UqG'-ǂjLeOz %)G,^V6^N]h{1+5|UHRc~V)GDo*@Cd%kGnX! \k~ V@n b0taQ.  8nhc7QmO=` o |"ZnW E1$V}Zwa@1VgR'xQo/aE[D<9W<w5ilU7"S|;{^Ć8v<+N6PjZ:bzq1 .g]UHoQ:cI#S;;V Q|KhES?L3NT[3<&]B_VbtW(ҁ;gGj' dmco2v$P63!)-r9j{Q*J FXLTs}|cX6[p*"v[crB*&Y]9w)G?0BBk<"9lc]+[kWln^Vgwxuvy1ymhWk(|x| ' smC c >! c >^c >}"}"}"}"}"}"}"}"}"}"}"}"}"~"~"~" ~"~"~"~"~"(~",~"0~"4~"8~"<~"@~"D~"H~"L~"P~"T~"X~"\~"`~"d~"h~"l~"p~"t~"x~"|~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"~"""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""Ā"Ȁ"̀"Ѐ"Ԁ"؀"܀"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""ā"ȁ"́"Ё"ԁ"؁"܁"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"`"d"h"l"p"t"x"|""""""""""""""""Ă"Ȃ"̂"Ђ"Ԃ"؂"܂"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"d"h"l"p"t"x"|""""""""""""""""ă"ȃ"̃"Ѓ"ԃ"؃"܃"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"d"h"l"p"t"x"|""""""""""""""""""̄"Є"Ԅ"؄"܄"""""""""""" """"" "$"("4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""ą"ȅ"̅"Ѕ"ԅ"؅"܅"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|""""""""""""""""""Ć"Ȇ"Ԇ"؆"܆"""""""""""" """"" "$"(","0"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""ć"ȇ"̇"Ї"ԇ"؇"܇"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"t"x"|""""""""""""""""""Ĉ"Ȉ"̈"Ј"Ԉ"؈"܈"""""""""""" """"" "$"(","0"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""ĉ"ȉ"̉"Љ"ԉ"؉"܉"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"h"l"p"t"x"|""""""""""""""""""Ċ"Ȋ"̊"Њ"Ԋ"؊"܊"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"`"d"h"l"p"t"x"|""""""""""""""""ċ"ȋ"̋"Ћ"ԋ"؋"܋""""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Č"Ȍ"̌"Ќ"Ԍ"،"܌"""""""""""" """"" "$"(","0"4"8"<"@"D"P"T"X"\"`"d"h"l"x"|""""""""""""""""č"ȍ"̍"Ѝ""""" "" "$"0"4"8"<"@"D"H"L"P"T"X"\"`"d"p"t"x"|""""""""""""""""Ď"Ȏ"̎"Ў"Ԏ"؎"܎"""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ď"ȏ"̏"Џ"ԏ"؏"܏"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Đ"Ȑ"̐"А"Ԑ"ؐ"ܐ"""""""""""" """"" ","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""đ"ȑ"̑"Б"ԑ"ؑ"ܑ"""""""""" """ "$"("0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ē"Ȓ"̒"В"Ԓ"ؒ"ܒ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ē"ȓ"̓"Г"ԓ"ؓ"ܓ"""""""""""" """"" "$"(","0"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ĕ"Ȕ"̔"Д"Ԕ"ؔ"ܔ"""""""""" """"" "$"(","0"<"@"D"H"L"X"\"`"d"h"l"p"t"x"|""""""""""""""ĕ"Е"ԕ"ؕ"ܕ""""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""Ė"Ȗ"̖"Ж"Ԗ"""""""""" """ "$"(","0"4"8"D"H"L"P"T"X"\"`"l"p"t"x"|""""""""""""""""ė"ȗ"̗"З"ԗ"ؗ"ܗ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ę"Ș"̘"И"Ԙ"ؘ"ܘ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ę"ș"̙"Й"ԙ"ؙ"ܙ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ě"Ț"̚"К"Ԛ"ؚ"ܚ"""""""""""" """ "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""ě"ț"̛"Л"ԛ"؛"ܛ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"d"h"l"p"t"x"|""""""""""""""""Ĝ"Ȝ"̜"М"Ԝ"؜"ܜ""""""""""" """"" "$"(","0"4"8"<"@"D"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ĝ"ȝ"̝"Н"ԝ""""""""""""""" "$"(","0"4"8"<"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""̞"О"Ԟ"؞""""""""""" """ "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""ğ"ȟ"̟"П"ԟ"؟"ܟ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ġ"Ƞ"̠"Р"Ԡ"ؠ"ܠ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ġ"ȡ"̡"С"ԡ"ء"ܡ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ģ"Ȣ"̢"Т"Ԣ"آ"ܢ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ģ"ȣ"̣"У"ԣ"أ"ܣ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ĥ"Ȥ"̤"Ф"Ԥ"ؤ"ܤ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ĥ"ȥ"̥"Х"ԥ"إ"ܥ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ħ"Ȧ"̦"Ц"Ԧ"ئ"ܦ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ħ"ȧ"̧"Ч"ԧ"ا"ܧ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ĩ"Ȩ"̨"Ш"Ԩ"ب"ܨ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"""""""""""""""""ĩ"ȩ"̩"Щ"ԩ"ة"ܩ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"x"|""""""""""""""""Ī"Ȫ"̪"Ъ"Ԫ"ت"ܪ"""""""""""" """"" "$"(","0"4"8"<"@"D"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ī"ȫ"̫"Ы"ԫ"ث"ܫ"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ĭ"Ȭ"̬"Ь"Ԭ"ج"ܬ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ĭ"ȭ"̭"Э"ԭ"ح"ܭ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Į"Ȯ"̮"Ю"Ԯ"خ"ܮ"""""""""""" """"" "$"0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""į"ȯ"̯"Я"ԯ"د"ܯ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""İ"Ȱ"̰"а"԰"ذ"ܰ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ı"ȱ"̱"б"Ա"ر"ܱ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""IJ"Ȳ"̲"в"Բ"ز"ܲ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ij"ȳ"̳"г"Գ"س"ܳ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ĵ"ȴ"̴"д"Դ"ش"ܴ""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"\"`"d"h"l"p"t"x"|""""""""""""""""ĵ"ȵ"̵"е"ܵ"""""""""""" """"$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""ȶ"̶"ж"Զ"ض"ܶ"""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""ķ"ȷ"̷"з"Է"ط"ܷ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ĸ"ȸ"̸"и"Ը"ظ"ܸ"""""""""""" """"" "$"(","0"4"8"<"@"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""Ĺ"ȹ"̹"й"Թ"ع"ܹ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""ĺ"Ⱥ"̺"к"Ժ"غ"ܺ"""""""""""" """"" "$"("4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ļ"Ȼ"̻"л"Ի"ػ"ܻ"""""""""" """""(","0"4"8"<"@"D"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""̼"м"Լ"ؼ"ܼ"""""""""""""""(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""Ľ"Ƚ"̽"н"Խ"ؽ"ܽ"""""""""""" """ "$"(","0"4"8"<"@"L"P"T"X"\"`"d"h"t"x"|""""""""""""""""ľ"Ⱦ"̾"о"Ծ"ؾ"ܾ"""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""Ŀ"ȿ"̿"п"Կ""""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"|"""""""""""""""""""""""" """ "$"("4"8"<"@"D"H"L"X"\"`"l"p"t"""""""""""""""""""""""""" """""(","0"4"8"D"H"L"X"\"`"l"p"t"x"|"""""""""""""""""""""""" """ ","0"4"8"<"H"L"P"T"X"d"h"l"x"|"""""""""""""""""""""""" """"$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"x"|"""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|"""""""""""""""""""""""""""""" """"" "$"(","8"<"@"D"H"T"X"\"`"d"p"t"x"|""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""" """"$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """ "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","4"<"D"L"T"\"d"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|""""""""""""""""""""""""""""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"""""""""""""""""""""""""""""""""(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" "" "$"(","0"4"8"<"@"P"T"X"\"`"d"p"t"x"|""""""""""""""""""""""""""""""""""""""" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"$"(","0"4"8"<"@"D"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"@"D"H"L"P"T"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"""""""""""""""""""""""""""""" """""(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"p"t"x"|"""""""""""""""""""""""""""""" """ "$"(","0"4"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" ","0"4"8"<"@"D"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"0"4"8"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|"""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|"""""""""""""""""""""""""""""""""" """ "$"(","0"4"8"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" "" "$"4"8"L"P"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","4"<"@"H"P"T"\"d"h"p"x"|"""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"T"X"\"`"d"h"l"x"|"""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"l"p"t"x"|"""""""""""""""""""""""""""" """ "$"(","0"4"8"<"@"D"H"T"X"\"`"d"h"l"x"|"""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"X"\"`"d"h"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""" """ "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"|"""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""""""" """"" "$"(","0"4"8"<"@"D"H"L"P"T"X"\"`"d"h"l"p"t"x"|"""""""""""""""""""""""""""""""### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|################################# # # # # # # # # #$ #( #, #0 #4 #8 #< #@ #D #H #L #P #T #X #\ #` #d #h #l #p #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #$ #( #, #0 #4 #8 #< #@ #D #H #L #P #T #X #\ #` #d #h #l #p #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #$ #( #, #0 #4 #8 #< #@ #D #H #L #P #T #X #\ #` #d #h #l #p #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #$ #( #, #0 #4 #8 #< #@ #D #H #L #P #T #X #\ #` #d #h #l #p #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #$ #( #, #0 #4 #8 #< #@ #D #H #L #P #T #X #\ #` #d #h #l #p #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|#################################### ##### #$#(#,#0#4#8#<#@#D#H#L#P#T#X#\#`#d#h#l#p#t#x#|################################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|############################### #$#(#4#8#<#@#D#H#T#X#\#`#d#h#t#x#|######################### # # # # # # #$ #( #4 #8 #< #@ #D #H #T #X #\ #` #d #h #t #x #| # # # # # # # # # # # # # # # # # # # # # # # # #!#!#!#!#!#!# !#$!#(!#4!#8!##>#>#>#>#># >#$>#(>#4>#8>#<>#@>#D>#H>#T>#X>#\>#`>#d>#h>#t>#x>#|>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#>#?#?#?#?#?#?# ?#$?#(?#4?#8?#$>$>$(>$4>$@>$L>$X>$d>$p>$|>$>$>$>$>$>$>$>$>$>$>$ ?$?$ ?$$?$4?$8?$L?$\?$d?$l?$|?$?$?$?$?$?$?$?$?$?$?$?$@$@$@$@$,@$0@$@@$D@$P@$`@$t@$|@$@$@$@$@$@$@$@$@$@$@$A$A$$A$(A$8A$%>%>% >%>%>% >%,>%0>%4>%8>%<>%@>%L>%P>%T>%X>%\>%`>%l>%p>%t>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%>%?%?%?% ?%?%?%?%?% ?%$?%(?%,?%0?%4?%8?%& >&>&>&$>&,>&4>&<>&D>&L>&T>&\>&d>&l>&t>&|>&>&>&>&>&>&>&>&>&>&>&>&>&>&>&>&>&?& ?&?&?&$?&,?&4?&'>'>'>'>'>' >',>'0>'4>'8>'D>'H>'L>'P>'\>'`>'d>'h>'t>'x>'|>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'>'?'?' ?'?'?' ?'$?'(?'4?'8?'h'@h'Ah'Ch'Dh'Bh'=h'Hh'Gh'Ih'Kh'Jh'(h',h'3h'4h'2h'Fh'\h'Yh'Zh'Xh'[h'ah'`h'bh'ih'ch'^h'_h'eh'dh'hi'ji'fi'g i'ki'mi'ni'oi'p i'q$i'(i',i'0i'4i'8i'j'Dj'=j'pj'rj'mj' j'j'k' k' k' k'k'k'k'k' k'$k'(k',k'i0k'G4k'8k'Ѝ-EƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌH- 8tP,,,  H\= Z8{<=:H-(a`P[PA A@ pN,PP` AP @@ @0 @ @ @ A$PN, p p P p@@P(PXT`` |D $ppHt(?z(:,ok,?z\9XH- [ HW??H- 0]]  HK?80H-P@ 0@ C5 0  B0, B0 /xPPᅟl &\PP P @PP+4 0H? \8t?8 ? ?$ H- M``H    $+@ Р .A?t?L-d@@ዒPPL  @ဒP,(  Lp?w6hw6TVL-d@P`\ @ A^P444  L>(C `6Uv>06L-@@BP>P  ␓P 444  L p>) >5UH- 8P,,,  Hk=Tu=5$0 0 00X=D4M$}D(, < ѰM$}D( < ѰMOt}D(, < Ѱ*MOt}D( < Ѱ*M$}D(, <,ѰM4$}D( <,Ѱ H- M00$   P//  3M-0M@PPKPp d|P$`( ! ( 0B P(G @ (0 @ r : KH- MÐ РH-8M@ (P4XHt 8d  (T h D44  @ $x H _PU (   2/PP  pp 0 Qp ,@`  ?0o`PU   2/P  pp 0 Qp ɖ,@`  ?0o`PU   2/P  pp 0 Qp 嫖,@`  ?0o`PU   2/P  pp 0 Qp 卖,@`  ?0po`@PU   2/P@}  pp 0 Qp o,@`  ?0Ro`lPU   2/Pl_  pp 0 Qp Q,@`}  ?04o` PUr   2/P A  pp 0 Qp 3,@`_  ?0o`,PUT   2/P,#  pp 0 Qp ,@`A  h?0`o`8PU6  H 2/P8  pp 0 Qp ,@`#  ?0o`PU   2/P  pp 0 Qp ٕ,@`  ?0|o`PU  d 2/P  pp 0 Qp 廕,@`  ?0o`PU   2/P  pp 0 Qp 坕,@`  >0n` PU   2/P   pp 0 Qp ,@`  @>0b8n`PU   2/Po  pp 0 Qp a,@`  =0Dm`PU   2/PQ  pp 0 Qp C,@`o  =0&m`$PUd  l 2/P$3  pp 0 Qp %,@`Q  =0$m`0PUF   2/P0  pp 0 Qp ,@`3  <0l`0~p4`V  2/`4 pp p ؏,@P <>0a4~p8`V  2/`8n pp p 序,@P =0C}pD`V  2/`DP pp p 圏,@P |=0%}pL`V h 2/`L2 pp p ~,@P =0 }pX`V  2/`X pp p `,@P <0|pd`V  2/`d pp p B,@Pn \<0T|pl`Vc < 2/`l pp p $,@PP ;04|p `VE  2/`  pp p ,@P2 ;0{p`V'  2/` pp p ,@P d;0q{p(`V  t 2/`(~ pp p ʎ,@P (;0SD{pL`V , 2/`L` pp p 嬎,@P :05yp<`V x 2/`<B pp p 厎,@P ,90$yp@`V  2/`@$ pp p p,@P 80xpH`V  2/`H pp p R,@P~ `80dxpP`Vs L 2/`P pp p 4,@P` 80xp\`VU  2/`\ pp p ,@PB 70wpp`V7  2/`p pp p ,@P$ L70Pwpx`V 8 2/`x pp p ڍ,@P 60cf`V   2/``o pp p 廍,@P 60Dxvp`V ` 2/`Q pp p 坍,@P 60&Tvp$`V < 2/`$3 pp p ,@P 50up,`V  2/`, pp p a,@P 50jtpt`V  2/`t pp p @,@Pl x40(Ɗtp`V] p 2/` pp p ,@PJ $40갇\4tp`V<  2/` pp p ,@P) 308sp `V  2/`  pp p ی,@P T30d⇲HdspD`V L 2/`Dn pp p 庌,@P 30CQ<ЅrpH`V  2/`HM pp p 噌,@P 20"[HXrp`V  2/`) pp p u,@P 10 K,(  peppp p$p"pW P  @,$\`kEPX`@P&*AR!/rAPAP PP*?,pᅑVP VXXr\R` ?, KPpKl0H-@ PI PAAQ 0 @ P  @0+S P 05 P>0H--MPM PL ╛ @P@# ^ P P@- P@# ^ P# Q !PRJE 2!A P  ! K0  @DH0H-M@eM P! 3 PP@# n^ P  J@0+S P 0 K0 d0H-MP@ጎ P;AAQ 0 @ PU P"L P Pv PUK0@L P 0+SK0@ 0K0c0O-M-`M@ +CI 0+ShI  1  M (P `<    hD(Px@ %0! "hX`\8#$tpxPU~ \ 2/Px\ "0 Q 0kW 0R4 /? < #0@0 $K3,D@.,<484 8 &,`pR ?0 p PUG p 2/P % "0 Q 0kW 0R4 ,/,? < #0@0 $K,D@,<484 8 ,`p ?0pPU  2/P "0 Q 0kW 0R4 @/@? < #0@0 $Kň,D@,<484 8 师,`p ?0pPU  2/P "0 Q 0kW 0R4 T/T? < #0@0 $Kᎈ,D@ቈ,<484 8 偈,`p ?0pp < #0@0 $K,D@,<484 8 ك,`p ?0bkjh pPU  2/P "0 Q 0kW 0R4 /? < #0@0 $K᪃,D@᥃,<484 8 坃,`p D?0a;jjg`$p$PU  2/P$ "0 Q 0kW 0R4 .> < #0@0 $Km,D@h,<484 8 `,`p d>0O_iBigh`<D~p0PU{ , 2/P0Y "0 Q 0kW 0R4 -= < #0@0 $K0,D@+,<484 8 #,`pO =0hbh^e$_h}pDPU? P 2/PD "0 Q 0kW 0R4 - = < #0@0 $K,D@,<484 8 ,`p <0ggdH^ff|pLPU  2/PL "0 Q 0kW 0R4 <,<< < #0@0 $Kᶂ,D@᱂,<484 8 婂,`p ;0cl]ee{pPPU  2/PP "0 Q 0kW 0R4 `+`; < #0@0 $Kz,D@u,<484 8 m,`p :0\b\edzpTPU  2/PTg "0 Q 0kW 0R4 *: < #0@0 $K>,D@9,<484 8 1,`p] :0 :b[3ddTzptPUM < 2/Pt+ "0 Q 0kW 0R4 )9 < #0@0 $K,D@,<484 8 ,`p! 90a<ZWc:cxYPU  d 2/PT P "0 Q 0kW 0R4 )9 < #0@0 $KŁ,D@,<484 8 币,`p 80``Y{b^b`wpHPU  2/PH "0 Q 0kW 0R4 p'p7 < #0@0 $Kሁ,D@Ⴡ,<484 8 {,`p 70j|YazaI_,wpXPU  2/PXu "0 Q 0kW 0R4 &6 < #0@0 $KL,D@G,<484 8 ?,`pk l60. X``^dvplPU[ L 2/Pl9 "0 Q 0kW 0R4 &6 < #0@0 $K,D@ ,<484 8 ,`p/ 500W__]uppPU p 2/Pp "0 Q 0kW 0R4 ,%,5 < #0@0 $KԀ,D@π,<484 8 ǀ,`p 40@V^^ ]tpPU  2/P "0 Q 0kW 0R4 |$|4 < #0@0 $Kᘀ,D@ᓀ,<484 8 勀,`p 40z0PU]]\spPU  2/P "0 Q 0kW 0R4 #3 < #0@0 $K\,D@W,<484 8 O,`p{ <30>`T\\YhS[[rpdPUg h 2/PdE "0 Q 0kW 0R4 $"$2 < #0@0 $K,D@,<484 8 ,`p; 108 K( 8BK@ K``, pAb  `( 0 PP   0p1  (PP  sX X pK   DDPDO-M`R  #P: Rᇐ(p  ! 1 0! 1 0! 1 0! |1 0l! h1 0X! T1 0D! @1 00 0Ps @PX P  P 0^ M  0@Y PPE P  @ 0{^ : ,P@P"  0BBBBBP B B BOB;A@@Z@ @?~?2?>>_>>0 TZ   ( \ 0 @P , 80BZ  j P 0` @P  0 `"^   0 @P  0 ^  D 0ҏ @P ߻ 0 ]   0ཏ @P ʻ 0 ]   0ਏ @P 㵻 0 ]  4 0 @P `㟻 0 `]   0~ @P ㋻ 0 ]   0i @P v 0 ] v $ 0T @Po a 0 z] e t 0? @P^ L 0 e] U  0* @PN 7 0 P] D  0 @P= " 0 ;] 3  0 @P,   0)] % Y P 0 @P  0 ]   0֎ @P   0 \   0 @P κ 0 \   0଎ @P 㹺 0 \   0 @P 㤺 0 \   0 @P `㎺ 0 `\   0m @P z 0 \   0X @P e 0 ~\   0C @P P 0 i\   0. @P  ; 0 T\ z  0 @Ps  & 0 ?\ i  0 @Pb   0 *\ Y  0 @PR   0 \ H H 0ڍ @PA   0 \ 7  0ō @P0 ҹ 0 [ &  0఍ @P 㽹 0 [  X 0 @P 㨹 0 [   0 @P 㓹 0 [   0q @P ~ 0 [  h 0\ @P i 0 [   0G @P T 0 m[   02 @P ? 0 X[  x 0 @P * 0 C[  ( 0 @P  0 .[   0 @P  0 [ ~  0ތ @Pw  0 [ m 8 0Ɍ @Pf ָ 0 Z ]  0ഌ @PV  0 Z L  0 @PE 㬸 0 Z ; H 0 @P4 㗸 0 Z *  0u @P# ジ 0 Z   0` @P m 0 Z   X 0K @P  X 0 qZ   06 @P !C 0 \Z   0! @P ". 0 GZ  h 0 @P # 0 2Z   0 @P $ 0 Z   0 @P % 0 Z  x 0͋ @P &ڷ 0 Y  ( 0ซ @P 'ŷ 0 Y   0࣋ @P{ (㰷 0 Y q  0 @Pj   0Y d P A P ; P 5 P / P ) (@P " Z   (  0@P `P4 (0#h@0 P  9  t @P   0hU  (@P  U   K=b P  P   =     ! ( 2 9 CQ= I S Z d k u |    <          <      $ . 5 ? Fl< O V ` g q x}  y  +<t  p  l  h  d  ;_  [ | W x S *t 1O ;p B;J Kk RF \g cB mc t> ~_ : [ R;5 V 1 R - N ) J % F ;  A  =  9  &5 - 71 >:  G, N X( _ i$ p z    : P   (@PA:99h9988L887m7#766K665w5+544M443j3322R2 21-d6X\"Q/H-MP8; PQ  @P #: P PFP P @: P @Pc (0ฉ pP  TZ `P 8 P (pP h V  c (0H pP  2Z `P 8 P (pP F V  c (0t pP  Z `P 8 P (pP $ V  c (0@R pP  Y `P _8 P (pP  V  c (00 pP  Y PP =8 P (`P U  ( 0 S P( 0 `Po   P ( 0p `P_ !0 ppp p  (0 `PN x!p 0ppp pw @(`P @tU G @K 7 P $ 7 P*v < 7 PBl T 7 PZb l 7 PrxX 8O4LT/...-,,L-@9 P ┇  L'P<%L-@9 P   (L躸 (H-@PN8 PP P@8 Pg@8 Pa P@x8 P[@q8 PU p`(+,PP BP@@wz `9 P= . PQP@@P@>8 P@f P@@P V < 0 H $H- M   РM-M@pR- (`P& Qz P( {   pKV `p 8z P `0+SaK<>,;$85В| DHH-8M@ (P3XHp 8`  (P h @0,  8 t @ o`PPUg  2/PP  pp 0 Qp (u,@`T ?0o``PUI  2/P`  pp 0 Qp u,@`6 ?0o`dPU+  2/Pd  pp 0 Qp t,@` ?0o`hPU   2/Ph  pp 0 Qp t,@` ?0po`PU  2/P}  pp 0 Qp t,@` ?0Ro`@PU  2/P@_  pp 0 Qp t,@` ?04o`\PU  2/P\A  pp 0 Qp tt,@` ?0_PU   2/PP"  pp 0 Qp Ut,@` d?0\o` PUv D 2/P   pp 0 Qp 7t,@`c ?0o`XPUX  2/PX  pp 0 Qp t,@`E ?0xo`TPU: ` 2/PT  pp 0 Qp s,@`' ?0 o`XPU  2/PX  pp 0 Qp s,@`  >0n`\PU  2/P\  pp 0 Qp s,@` <>0a4n``PU  2/P`n  pp 0 Qp s,@` =0Cm`lPU  2/PlP  pp 0 Qp s,@` |=0%m`tPU h 2/Pt2  pp 0 Qp es,@` =0 m`PU  2/P  pp 0 Qp Gs,@`s <0l`PUh  2/P  pp 0 Qp )s,@`U \<0Tl`PUJ < 2/P  pp 0 Qp s,@`7 ;00l`4PU,  2/P4  pp 0 Qp r,@` ;0k`8PU  2/P8  pp 0 Qp r,@` `;0qk`PPU p 2/PP~  pp 0 Qp r,@` $;0S@k`tPU ( 2/Pt`  pp 0 Qp r,@` :05i`dPU x 2/PdB  pp 0 Qp ur,@` ,90$i`hPU  2/Ph$  pp 0 Qp Wr,@` 80h`pPUx  2/Pp  pp 0 Qp 9r,@`e `80dh`xPUZ L 2/Px  pp 0 Qp r,@`G 80h`PU<  2/P  pp 0 Qp q,@`) 70g`PU  2/P  pp 0 Qp q,@`  L70Pg`$PU 8 2/P$  pp 0 Qp q,@` 60cf`(PU  2/P(p  pp 0 Qp q,@` 60Exf`,PU ` 2/P,R  pp 0 Qp q,@` 60'Tf`LPU < 2/PL4  pp 0 Qp gq,@` 50 e`TPU  2/PT  pp 0 Qp Iq,@`u 50ꬫ@d` PUg  2/P   pp 0 Qp (q,@`T |40갫8d`0PUE p 2/P0  pp 0 Qp q,@`2 $40P4d`DPU$  2/PD  pp 0 Qp p,@` 30AH`c`HPU  2/PH  pp 0 Qp p,@` T30eЩdc`lPU L 2/Plo  pp 0 Qp p,@` 30DXpb`pPU  2/PpN  pp 0 Qp p,@` 20#Ad|b` U pZX $,YX\ XX(KЍM--@MQ, pR, PP! @4( +S(c[ +S$(p(V ,p0@( P$ 0l  (KO-$M   0kUpQ P(   0` PpD@  0KL--M@Q  P @ #P :8 RP   QKxL--M@-  P @ #P :8 RP }  QKwH--M` p@P  0a pP  0 ] K H- M`@Pp Q P' pu #P#: RP   a   M +r  % K:pvH-M`@P  `P p: #P:0 R` 0. KuH-@   Q p*` P*V p=#,B@ \H-hM@`P 2/   p`0 ppp"2(8, 0 (  @   ppp8 ( Kppp 0 Qm,P 07,  0 0K  (   Kppp K  ppp [0[8(K", ",0[ (",8 @", ",( 0", $",KwL-Q P( LpL-(MP(@2 U (  ,`8 P P P/ P@5 P   Kp<$0H-M@ 0+S P (x P Q(   PVs  P PK0qqM--MP`pAAQ 0 @  @M/ P" q PAAQ 0 @ @UT >q @2/ Pr @UT/1 P# AAQm 0 @h s @/ Pp qq PAAQ` 0 @[ Rd]U00 @Up U+ U>Q ss!PRJ} 2! q p ! Wp 0+SG 0+S p0+Sp  `0+SJM(K-q @. Pr R 0t  p P U00 a@ U p0+Sp(K( `hl -{0H-M@P PU 0+C` P2 02  K0K01+SX TP<< P _kM-M`(pP @#(0 0 f pP ( 0a} PP  H KM8j pL-M@. PB | PQQ P7 V| P. P/ P P  @/ P>@p ` | , 0/K0  04Kp $! ̘Dl H- H/L-@S ,4 0 p  r! @j /L-@P T L/H- H迡/L-@$ ,4 0 a@@Pj /O-M@  E T& G/Fc_!!!# !  V#w * F( W:h, P0 PPU+ Q P P:h, P P P PU PP P P Pk PUP,jV@*   A * *J P' BᆐPV:FPP  :  P  Q1 8cF W* P P# P F P :ch, ^h, PK|H-@PQ A +P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:+UP1U:O-M@Q! `Q*,P ,` VpZv FP X:g, PPP ,PK qpW\ U/ P:g,PpWM!R   R 0PU 0 PU ! ppW1pW* PpW!!R   R 0`V 0 `V ! ppWpWKO-M揊 `P\ cPpF  W :@p]g, pp@P:T R P: Fg, P P R P: 5g, PPP P R P:g,PA@),KO-MpW P  ET& G/FG!!!!G  T`:f,` `PPUPKY PP  PP:f,PPU P QPP PU PO-MP`@FPe* rBA"rPPX PpX*,F " 0 "`PU' E  L pF@E"" "B 0`000 BQWC`  VPV p@p`FT P  m,UU KO۞KpO- MP @p  HR:UB P ``42 B HR* 0B IS+:PjxY 1 P "# ,`W   X , `KpL-P1+ P- x @P( P PPD(`P DU < Dp@( P4w@PD(`PldX O- M* Pr x `(PP( PR PR@`(PP E `T  `(0#pH00 9b pP=  0@dy PP5 e 㔃 P@P 0 @  0]D "   0VD  UP K@S( P\@@`(PP) '  8sTxO-dM@px|  P P #P: RPU z@ (<ԁM-!@1P 0!1 0!1 0t!p1 0`!\1 0|L!H1 0u8!41 0n$! 1 0g! 1 0` 0 0Y( 0`-w pP |P l ` 0XA @ tPx |P P,(QQpQXQs@Qd(QRQ9$pL-@`R P #P: R`,S4i ,40A  ,S8i ,80A  ,S<h ,<0@ ppL OꠝK-M@P( 0 0,pQ P `s #P:L R0 =p C KdNpL-P@w `P V TAT, ppL-M$`@R P(  0 KpM--M@ c`pa @TT"c P  dYXP  (K(g ( PP ` #P:8 RPU> @  0+S~TP P<Q %%!PRJt 2! q p ! ! (K0( hL|${({zzL-@TAT0H-M@"P K0"( Qc " dWP[ P"X!P  0+SJu PI @  0+SPTP>P;  dWP3<P (嶥 Q  @ 5 @ 4< RQQ 8T" d{WP ` 0a P<  K0dfWP P  A!PxxxO-M`R #P: R`,< 0+,|< 0$l,h< 0(X,T< 0( <0t @P ( ? ( 0t @P (  ? (  0t @P (ؠ ? (  0t @P (Ƞ ? ( L 0Pt @P (㷠 y? #0(P(0 p + Pl  (0t PPo 5  J] @Ph  Q? #0(pl00 pk  'C 4 (0_t PPJ   !] @PC  (? #0(p00 pB    ( 06t PP%   \ @P  > #(000b    (  0#(M P( 0s @P  0A  (  0#(l. P(P 0s @P  0!  (  0#( P( 0ds @P  0 g ( r 0#( P(d 0Es @P g  0 G ( R 0#( P( 0%s @P| G  0 ( ( 3 0#( P(x 0s @P_ (  0  (  0#( P( 0r @PA   0  (  0#(q P( 0r @P$  0d  (  0#(0Q P( 0r @P  0E  (  0#(2 P( 0r @P p  0$  (  0#(@ P($ 0gr @P  0 j ( u 0#( P( 0Gr @P i  0 I ( T 0#(P P(4 0'r @P I  0 * ( 5 0#( P( 0r @Pp )  0p  (  0#(`ppp P(D 0q @PR  0   ( 01r PPB   Z @P;  KO<  4 B P ^ m     ' E b  2 P n XHL u0eXE j0HXG@0d<yH!#߱T&߱(ޱ`+.ޱ-ݱh0Bݱ2ܱp5Yܱ6۱<o۱?O-MM# PS p PP?! PA PA R ;@ R4Q0*P@" P.@" P( P@" P"@" P PP(  @@! P(@@ TKP  @" @P P" @"@" @PP@c `P V V`0@P `0@P@c @P@c `P0@P@@ ,@K@ 0p9P  $P  (@|4 P@,@ @8`<04pRPU  \ 2/PLP> 8 V\0",2,Ÿ 0$B 0V`,  0@H 0@ K@0 $` (` ( KHK2K @1(  ,0K0 b p ``` $`4/$$` P 1/((` P 1/(\0P,pC,8D0!(  G<PQ" " @TPP 1/TP \ PPKKo P|hh`L eThTֱSֱֱֱֱYֱֱ6̑dieeemO-MM@! P Qo `P0n P2 PA R @ RQ*P@! P@! P PP(  @@; Pd(@@ ⴀP@@#46 4P 84 !P 4 !P,PKP 0p`  $`  (P,P8b`V  $ 2/``4 P!,  0 40,D!(  <PQ" " @P 1/  PPKK _@ P`LLH8cױ4]XX][\K-MM@ P l P` PAAQ 0 @ `V{ a `Vu  R  R Q  Q@Ҍ Pw PA R j@ RcQ_*PPP@@P@P( ,H1 p04 (,, 2/P ,@,PP @@p  p PPW 1/K蘽W P  0((Uر0[UU[YZK-MM@  P k PW_ PAAQ 0 @ `V{L` `Vu  R  R Q IQ@ Pw PA R j@ RcQ_*PPP@@P@P(_,H1 p04 (@,, 2/P ,@,PP @@p  p PPW 1/K׼W' P  0Ͼ(̾(ɾƾձXRRHYLWhWK-MM@I P k P^ PAAQ 0 @ `V{_ `Vu  R  R Q Q@  Pw PA R j@ RcQ_*PPP@@P@P(,H1 p0 4 (,, 2/P ,@,PP @@p  p PPW 1/KWf P  0( (ӱUOOVTTK-MM@ P Vj P] PAAQ 0 @ `V{^ `Vu  R  R Q ǽQ@I Pw PA R j@ RcQ_*PPP@@P@P( ,H1 p0L4 (,, 2/P ,@,PP @@p  p PPW 1/KUW奖 P  0M(J(GD>ѱ\SLLTR0RK-MM@ P i P] PAAQ 0 @ `V{ ^ `Vu  R  R Q Q@҈ Pw PA R j@ RcQ_*PPP@@P@P( ,H1 p0 4 (,, 2/P ,@,PP @@p  p PPW 1/K蔺W P  0((αPIItQxOOK-MM@ P h PS\ PAAQ 0 @ `V{H] `Vu  R  R Q EQ@ Pw PA R j@ RcQ_*PPP@@P@P([ ,H1 p0 4 (<,, 2/P ,@,PP @@p  p PPW 1/KӹW# P  0˻(Ȼ(Ż»̱$NFFNLLK-MM@E P h P[ PAAQ 0 @ `V{\ `Vu  R  R Q Q@ Pw PA R j@ RcQ_*PPP@@P@P( ,H1 p0 4 ({,, 2/P ,@,PP @@p  p PPW 1/KWb P  0 (($ʱKCCo $ K⅒PB pW- @`  .0AP)(%o `(  0d P  0 ( 0  0 p@W p`kY K055t>@>O-4MM` Pq c @PRW PkAAQ 0 @ @T ,P 0O K?X @TKP  P" P"po P$ PP<*Bx,+$ pA@ P@pn P$@P K? ~ P+9 /7 4 (P:0 Q? * G (PM# Q W ^ g n 5 `P R P  5 P  5 `P #$( $P (P   5 `P QP*  5 `P #$( $P (P  x5 `P #$ @( $P   (p(`g5 P $   \5 `P #l( P  W Wh  @, W`pPp@P@, PP K X3p eV $咑P PP @$@ ,K) $ ,Kq P ,Kg P K t,Kd PHD< س//<88888pL-8M@U PPAAQ  0 @ @TKpV @T PPU ?  2/PP% `` ` / K 0(  0,I` ````` `$`` XW|- pL-@*Q PPHH$喀 PU ` ',` d  8P P7,U00P .,pL&DH- H虄H-MP @P2 ,`Pp p p @4X p` 2/pP 1/P  @ %Q  0 3/8P2 P  @ %PA0 0B8PU  0PU0 pC 0cPp C A R:,@K,L-@,4 0 p  r! @ H/O-M40`@X `0 pH XPdK,P` Z pH@B TA:PRK,@:PP`V`0 Z ` PO >PncZ PPP:+K,P`VPQPP `V@PP 8U Ql P:K,Pl Pg Qa P:J,P[\X,P@T 0 @0 @ @ C @P `,DI ?00 /Q`,P  A AP@ @@ @0 @ @ @,D2p4PpU_ `E] U[@J,T KOIPP P Q P:J,PQV p<@< ,@ j,@ t  R<P @T P S,P ( > K'AT Q @T P P:7J,PP@T PPP ` ,Z@U@*<  A * *QZ`U:E``    P1P `X ) `@ ́+4PX "*U`E" o!b!  @    V   P:@o `ꭁ+ `X1X*4PE UI,pP 8 @P E P:I,@<<< Y P  KO1E d @hb|H-p@P` u$v  H H P//0 0zL-@Y,4 0 Oa@@t`/H-  R<P $ H識`dO-M@Q! `Q*&,P ?,` VpZt FP X:I, PPP ",PK qpWZ U. P:H,PpWK!R   R 0P0PU ! ppW0pW) PpW !R   R 0`0`V ! ppWpWK7L-@P" B" +T L K-M0P?K @  00,cSxp P( 0 &  K+ KH- , R HXl/L-@A+0 0 W" a G @$(/H- qH- O-MM`P@(\KU B (Af p`  d KdN.K`0K  pLPH@&@Tpf T:`D`PPd P$YKPP(D_ p ,@`Tw- @P+  0& & ,0(PBׇ 0 % T@ ,0"%   0@&  PYC } { y w PY5Y3P(^ ` ,CT,- pP  0%  ,0"%  T 0&  PY h C A ? PYX`  X`0K\PLH T``P@e T:DX @Pe YG* p 9   % , 1(^ P ,@@, `P  0\%  ,0(B, 0 O% T` ,0"E%   0&  e pY:HL@0 PS` e p`0K `PCe W:3    $(5^ P ,Ch, `P  0$  ,0"$ T`  0%  Ke pW:LP@ 0@VPD' \K@ K 0@P ` (e p`0K `e W:3q L J H $(] P ,C, `P  0$  ,0"$ T`  0Y%  d pW:LP 0OP`0K@ (  @P8K40Kࣖ {p4W< W p 8 P(,`X0 pT`4<P t|0K @W:Di4@T d 0% 3 D Y PP T`LP@04H @K<0KI{( K 0 P(  ,e@ ````` `$``5/$$` P 1/((` P 1/P, q   R( r  w# P p P 00 H 4Kq K_O-M(p`s ࣗV`(\ `O] PQ  } ( 0R @P   0  QP\ `1 KH- , R &Hw9,@/( a   @/(/H-  O-Y ` 0P  s  KH- , R Hsॡ/L-@+0 0 W" a G @H(/H-  M-MPp`( C P 8u( R  ,0(q0N `Pk  0 f  ,0(@q0N `P\  0 W ,0(bz 0  K ,0( xb|z 0  ? ,0(bnz 0  3 ,0(``z 0  ' ,0(aRz 0 u  m   K(  $ H- , R HrѠ/L-@ +,! 0 ap @(/K-hM0 Pp@P 0  @Q K`a`V  E  < 2/`,`8 T! 1 $ @pp 0(0 KH p p  K@*K 0(  ,0 (K P pppBb pvV p罝@PPӝP   ᱝpW:T PP``QvP*AT ᩝPq v P࢟vV pYᕝT Pd @ @TPPቝP   gpW:P`  T+@P`P` F  @ @0 @ @ @, D $P& Z(@KOJP8FAZ P P;8vPU2v0. + (4`L-@4M-M`(pP @#(000  5 pP ( 0K PP   KM8 ( & L R $0 0$0 $H- ٞH- $ž\0L20H/ȞL R $0 0$0 $H- ಞxL-$^@NBL/࡞ @ ///O-MR $P0U" T& EG/F`E!!!!w W :@7,0K P@T  KO6Q PP P:`7,0 P@TP QPP @TQ 0 A!5!0 0KO/O-M@ $`V T& EG/FF!!!!w W:PR7, PPUJ  `  0pR t W   "5%a 2/P!    B"5%QQQ p@`0 Qp@$B P:&+@ KQ ൝Q P PP:6, PPUP QP P PUP  @ %Q  003/f K{O- M$P@ U T& EG/FE!!!!w W:`6, P`V: + pYp 2/P 1/pP  @ %Q  0 3/ R 03/ 0 3/KQ P PP:N6, P`VP QP P `V pKpL-M@P`PR F 3  Y 1/P  03/ 2/ PPP +P  1/ KpজO-M@ T& EG/F`V!!!!w 0 Ff W:P5, QU Q PU P P:5, PP PU P  PP K+jPV@*@   A * *J P+ Fꆐ@V:F@@  0   Q1r`F W"* P  QU P P P F P :T5, O5, PP  KL-@$ O+L-@( @+Lmt ///P /////AH-@PQ A l+P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:l+UP1U:O-M@Q! `Q*+P +` VpZp FP X:4, PPP +PK qpWV U, P:4,PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWKԘO-M@ Q!:Ap  PWP Uc E W@BqaE AҘ qp  ABIa@V* R<+bp PWP U P``V V*+PPPU  U*+qp p +VbYpG ppX+K P``V V*+ PYPU6 U*+2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp +  "U `PE0U P0Q0 00   P 0  EB 0P f+K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  4+pK `WꡗO-M@P UWp W G U@BQaG Aᦗ Q"? P``V V?*+&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  +PK8O-M@`V WP U*A U@p @ > QppW WD*v+6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  Z+ @K͖O-M@`V WP U*A U@p @ Ӗ QppW WD* +6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  + @KbL-@" B"1/T LLjO-M@ pPpAW"* E BR4:PjwU1 P "# +  `1 W +aKP``U   ;KPKK-M@ pe+P0P` F  P 2/P 1/P `    B"5%Q  0 3/ ` 0pR t W   "5%QKXL-@" B"1/T Li0H-M, h@0@PP0\0u0@PK0l0H-M, h@0@PP0\0u0@PK0K-M@T[ P\PZp (  PR Y! (@` p A, PQ   R( H  M P* P P& 0 b  VA`F7 P)AAQ 0 @ P ;8 P \ &P  % K((8 52/`K-M@T[ P\PZp (囼 ች PR Y! (@` ]p A, PQ   R( ּ   P* PM P& 0  A`6 P)AAQ 0 @ P 7 P \%P ኽ K((Ɩ Öབ048O-$M@Tv p$PUr(' c Pk `Pj `Y $)$P` )P `( o P Q( S  (R 00SG  0(00 S( 0 pp  , a  P R- 0P . P ` P 0 C ( 1/K(9 630,048O-$M@Tv p$PUr(⚻ cሼ Pk `Pj `Y $($P` (P `( Lo P Q( ƻ  (R 00S庻  0(00 S( 0 pp  , a  P R堻 0P  P ` P 0 r  1/K(କ ੕কࣕ8<@DpL-@L !   Q  R6 R  R0 RTPT4P0U `1/4U PP4``PP D  $0 0$ $pL>S$~/pL- 0@@  R P6 P P0 P TPT4P0U `1/4U PP4``PP D  $0 0$ $pLH~4~}l}ȸ/H-@ R Q6 Q  Q0 Q $ $0PD`V p1/V P`ppP`4D   @@H૔||||tPH-M@`K`  "(00$@ (`,`KP(L R $0 0$0 $bH- uH- L R $0 0$0 $IH9f\봶/L-@+4 0 p  r! @L}`/L-@+(O-M@pP  H8 dh+ `  `H`+PP  A$ A0`,`D0  P  @ P   0`  ] KKP x {u4H <*++ f+K<ܵhS776/0H-M@PK0j@ <Pፑ( Tቑ#6w(/O-,M`P)L0H 稐 n @ p0 3/ C (0  0 X Q S + p@0 3/#  (0x 0 9 = ? + 2/P! `V @ 03/  (0 0   ! +K(|+  w+(q+  l+(f+  a+A6(w554O- M@ P7HP L Pf+4=+1+ pLPu`f+++ 2/P+LPu0 ` 6/P _e+ Q Q  c+P 1/p Ae+KtdtL-@XX$  0 80 ,+(+8ae+|̯/HdP @ @///0H-@` X 0 0 P$8 ,+$+0H&dܮ0L-@,e+L-@%e+Ld dL- @e+LdL-@\\$  0 80 ,z+,i+8d+Lc0D0H-@h ` 0 0 P$8 ,W+,F+d+0HcdL-@<  (=+,+0PL-@@  ('+ +Lcج//O-@,` pV,@5`1p \W V p Pp(pFΟ\ \/ \8 pNpDN\Pp R0^00 00  S PU5  T Pp RS00 0`000p PE_p RL-M@ 0@  0s7 `P' 1  0f7 `P $  0Y7 `P  (  0L7 `P  X 0?7 `P   027 `P   0%7 `P   07 `P ֮  0 7 `P ɮ H  06 `P Ἦ x 06 `P ᯮ  06 `P ᢮  06 `P ᕮ  06 `P ሮ 8 $06 `P { h (06 `P n  ,06 `Pz a  006 `Po T  406 `Pd G $ 80|6 `PY 2ST+{P! y P ! l D   c 6  i B  n J ' `5 a8  < 0;6 `P   @0.6 `P  < D 0!6 `P ߭ l H06 `P ҭ  L06 `P ŭ  P05 `P ḭ  T05 `P ᫭ , X05 `P ឭ \ \ 05 `P ᑭ  `05 `P ᄭ  d05 `P w  h 05 `P j  l05 `P ] L p05 `P P | t05 `P C  x 0x5 `Px 6  |0k5 `Pm )   0^5 `Pb  <  0Q5 `PW  l 0D5 `PM   075 `PB   0*5 `P7   05 `P, ۬ , 05 `P! ά \  05 `P   04 `P  ᴬ  04 `P ᧬   04 `P ᚬ   04 `P ፬ L  04 `P ာ | 04 `P s  04 `P f  04 `P Y   04 `P L <  04 `P ? l 0t4 `P 2  0g4 `P %   0Z4 `P    0M4 `P  ,  0@4 `Pt  \ 034 `Pi    0&4 `P^   04 `PS ׫   0 4 `PI ʫ  03 `P> Ὣ L  03 `P3 ᰫ |  03 `P( ᣫ  03 `P ᖫ   03 `P ቫ   03 `P |  03 `P o   03 `P b   03 `P U  03 `P H  0}3 `P ;  0p3 `P .  0c3 `P !  0V3 `P   $0I3 `P   ( 0<3 `P   ,0/3 `P   00"3 `P   4 03 `P{ Ӫ  803 `Pp ƪ  <02 `Pe Ṫ  @ 02 `PZ ᬪ  D 02 `PO ៪  H02 `PE ᒪ  L02 `P: ᅪ  P02 `P/ x  T 02 `P$ k  X02 `P ^  \02 `P Q  `02 `P D  d0y2 `P 7  h0l2 `P *  l0_2 `P   p0R2 `P   t0E2 `P   x082 `P   |0+2 `P    02 `P ܩ  02 `P ϩ  02 `P ©  01 `P ᵩ  01 `P ᨩ t  01 `Pw ᛩ D 01 `Pl Ꭹ   01 `Pa ၩ   01 `PV t  01 `PK g  01 `PA Z T 01 `P6 M $ 01 `P+ @  0u1 `P  3   0h1 `P &  0[1 `P   d 0N1 `P  4  0A1 `P   041 `P   0'1 `P   01 `P ب t 0 1 `P ˨ D 01 `P ᾨ  00 `P ᱨ  00 `P ᤨ  00 `P ᗨ   00 `P ከ T 00 `P } $ 00 `P~ p  00 `Ps c   00 `Ph V  00 `P] I d 0~0 `PR < 4  0q0 `PG /  0d0 `P= "  0W0 `P2    0J0 `P'  t 0=0 `P  D 000 `P    0#0 `P   00 `P ԧ  $0 0 `P ǧ  (0/ `P ầ T ,0/ `P ᭧ $ 00/ `P ᠧ  40/ `P ᓧ  8 0/ `P ᆧ < 軧 `깧 n귧 |굧  갧 ꮧ ꬧ ꪧ ꨧ  ꣧ ꡧ ꟧ ꝧ ꛧ $ .ꖧ 9ꔧ D꒧ Oꐧ Zꎧ e oꉧ zꇧ ꅧ ꃧ ꁧ j~ | z x v t >q o m k i g (d 2b =` H^ S\ ^Z iW sU ~S Q O M J H F D B @ = ; 9 7 5 !3 ,m0 6. A, L* W( b& mB# w!           # - 8 C N Y d n y  e ަ ܦ ڦ ئ 'uզ 1Ӧ <Ѧ GϦ Rͦ ]˦ hȦ rƦ }Ħ ¦ 꾦  깦 귦 굦 곦 걦  ꬦ ꪦ ꨦ ꦦ ꤦ + 5꟦ @Ꝧ Kꛦ VꙦ aꗦ l|Ӱ v꒦ ꐦ ꎦ ꌦ ꊦ $ ꅦ ꃦ ꁦ  } z x v t r $p /m 9k Di Og Ze ec p` z^ \ Z X V uS Q O M K I JF D B @ > (< 39 =7 H5 S3 ^1 i/ t, ~* ( & $ "           ! , 7n AAzd: a9 Y-e; R'}Q$d?0H-@LP d 2/TSU [ @?SP[ P P+UP +01/+PH- PfTGgO-M-@MP@`ፊP《_ (Jp,0P$q1 V  f4 P # p7D%.Pp/⏊ HL(RRhrpP4/⏊ϊ⏊O⏊⏊rr園Rrr"" (o4(  4⏊⏊⏊=ϊ ϊ;ϊhlpstx半 Z ᣤ ps}(4` O (, P(pP Ӥ U ቤ d+pTcPV / ?S4+  phRdrUh [ @?SP[1/K+V [ @?SP[1/9+d+`      pw* W* PW P +P pP ?}+pp `P`U [ @?SP[1/+  pppp p(pp$p-p)p x" # z  +Xb`@Q\P@ Y+pU |V i+HH+(PH `16 0p600 0`7P $P p0 V_ R e CP 0@?K PbP S86+b 0P㭬` 妬 堬x`PP PPD~ *({Y  r dPA + V 4 0KЍs| dhfft`$L$6O-M-PMD@H  H @t!*P T*T@@`  p+`H@D@ =|@D Q! " 0  0 DP  @ ` 0 Hp堠pZ , >|@PZ$`!z `(`!* Z *@Z  ` 4`p0`8`@ W:PU+@( $ { `  $p@w8`4`0`q!* W*WP0  `5+P80`4p{$X`P  X( 00p8`APCuPU 02`0 R:X (/+l[ 04p8PHpP,4 -W $R0Q@ A  {P  `{P HQV Fp x[ 04p8@Tp0@8@ 9W (R<QP A  y{P  `y{P HQV Fp |[ 04p8@XpD @L EW 0RHQP A  A{P  `A{P HQV Fp  [; 04p8@hp @PX QW DRTQP A   {P  ` {P HQV Fp [ 04p8@xp @\d ]W TR`QP A  zP  `zP HQV Fp [H 04p8@ph @p iW \RlQP A  zP  `zP HQV Fp [ 04p8@p @ W lRQP A  dzP  `dzP HQV Fp [ 04p8@p @   W xRQP A  -zP  `-zP HQV Fp  [ 04p8@p @  W RQP A  yP  `yP HQV Fp $[H 04p8@p @$, %W R(QP A  yP  `yP HQV Fp ([ 04p8@p @08 1W R4QP A  yP  `yP HQV Fp ,[ 04p8@p< @D =W R@QP A  PyP  `PyP HQV Fp (0[S 04p8@p @HP IW RLQP A  yP  `yP HQV Fp <4[ 04p8@pT @\ UW RXQP A  xP  `xP HQV Fp  H8[ 04p8@$p @`h aW RdQP A  xP  `xP HQV Fp  T<[! 04p8@0p @lt mW RpQP A  sxP  `sxP HQV Fp  d@[ 04p8@@p @ W RQP A  00`,`-``pAp@wpWp 2pAB(` pp%`P` 2$`p A @pr R 200. q$+$&&$%% +P9 @E @P d` @"#0$p% 9P`A`Av`V 2ACqQAG 020qQP P p2P@a0pApB`wpW 2 & 0+PApBwpW 2 0'p A0G s0S p2p0(p A0G s0S p2p0)p A0G s0S p2p0 *p AGpP p2 p/ >q +#$$,"## ^+P @L @Pf` @"#0$p% \EP`A`Av`V 2ACqQAG 020qQP P p2P@a0pApB`wpW 2 & 0+PApBwpW 2 0'p A0G s0S p2p0(p A0G s0S p2p0)p A0G s0S p2p0 *p AGpP p2 p  . p +!"" "! ! 4 +P +@ Pp `EP G +m! 0`QP f   PA Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 0A Cr R 020 0A Cr R 020 ApA0wpW 20u+. o.+H$(@ P+P ;+`P R@ @ F.+쯟0 @@\ @f A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0  0ACpP 02 0+$ . Io+\ t$  i+P p0 pP(p$p 0 @" lphp0f0ipp0A0Bps0S 2 # pA`B*p0v`V 2p $ pA0Bs0S 2 0%p A0G s0S p2p0&p A0G s0S p2p0'p A0G s0S p2p0(p A0G s0S p2p0 )p AGpP p2p. n +E< Dp`+Pp ++M SD@< @ J+_0P@@ f @ @A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0  0ACpP 02 0+ - /nx+$4  M+P +@ Pp `AP G y+dm! `  g 0QA CPr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 0A Cr R 020 0A Cr R 020 ApA0wpW 20ݿ+. Mm+/У``8(D i+PU 㢿+@Pp `AP G 㕿+o! 0`Q g   PA Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 0A Cr R 020 0A Cr R 020 ApA0wpW 20+ / jl+l $P+P ž+`S OD@ @ F+0 @@$ @h @A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0  0ACpP 02 0Z+ / k+ < `(P+PD #+`M E@( @ F+0 @@0 @h A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0  0ACpP 02 0½+H @- 1kz+h ` , R+P p0 pG(p$p 0 @" @p+@+P Z `ID$` `zp!"# >0p`l`m``pAp@wpWp 2pAB(` pp%`P` 2$`p A @pr R 2. ^+ ih< `+P + @ `J @@+]0P@@ p @@A C @r R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0  0ACpP 02 0坰+. ^V+tlf8dx, x*+P c+@TPp `TP G V+(n!k `0  PA Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 ApA0wpW 20 0ACpP 020Ư+p l+ 6]+cXa Pȸ\0 S+P ㌯+@ Pp `SP G +j! 0`Q r   PA Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 0A Cr R 020 0A Cr R 020 ApA0wpW 20+' T\+.4_]D Pr+PY 㫮+`@ `F @@㞮+p0 @@$ @s @ @A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0  0ACpP 02 04+P H% [+\Hس\$ +P P`P P$P(P `RTSE"0#p$ D@0P4P`t`1P`A`Cv`V 020A0Gs0SA0B p2ps0Sp 2PPPP`4 % `(PA0Bs0S 2 0&p A0G s0S p2p0 'p AGpP p2p# A[ +Z<YT4(`^+P 㗭+@pPpP ` G ㌭+L!i 0< PA Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 020 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 02 0 0A Cr R 020 ApA0wpW 20+   vZ+P +@ R H+0KЍiZ Wx<S@d4(P̧\dM$KlH@pL-8M 0P`0 C0 F,0(00SU D` @`P Q  %PU KpL$M-M@(7  P X\P(ⷁ   ㊄ P +P +P + xP  xtP  tpP  plP lhP  hdP  d`P `\P \XP XTP TPP PLP ݀ LHP ׀ HDP р D@P ˀ @<P ŀ <8P 84P 40P 0,P ,(P ($P $ P P P P P  P } P w P q P k P e P _ P Y P S P M P G P A P ; P 5 P / P ) P # P  P  P  P P  P  P P_+UP V+cV sW PpGU P  D+Vc=+P 8+|P x_tP 00 | `'+VpP l_hP 00 p `+VXSU \cV p6Pp 1/UX\S+TPLPPP  P<P4P8P  8P ^ު+P _P 00  `ͪ+VQ  00 Q"R  00 PP P塪+UP +RU ` 只+፪+VPPRP +RP ~+PxPi|P  |hRU [ @?SP[1/᧨+XP \[+DP<PK@P ~ @,P$PE(P ~ (JwPU ` (:+ 5+3+VPP *+P P%+UP +KWPP!#W8P')W|PW@PW(PY@O-4M((0  $ ,4 D ,pDp ,pD,PDkչӹ㯩+  @㟩+` `ᔩ+p `p`㊩+p0`P $P \$ H8(` B0㦃 P( 0X `P0   PP)  0 PP# 8(`P ~ 8U } 8 ^ppd=$ (җ K ~ ~ ~ 8(`P.UbhQ/H-(M4@@(L~ S: IP0 ` d$P'p$08(p ppppYP $QQ  d P } $Q $Pp4M v KH/O-M✀@4`ɨ+P@DP徨+`DP㶨+P`{oD⮨+PPKtL-@$P$$LZ($H-Ro@V  , @Q PV!PVb_U  0 2/`UroV  0 3/pVP P 00  pr+W,DKPPPXS\cV p6Pp 1/U\SL-@$L O- ,04" 8 `V (@+R (@P0 ,0 * Q ( ,0CR0i `P"  0  KYy 4y WSy .y VMy (y `VFy !y Q?y KOy K-M`p@Pჱ TPKD|Q\  HP QQp 0AK@\O-Mp@PW TPK `VP`p @0 KH-M`@ @ `   PP 1Q10R1: bP A  P  X brPP@ Uy 00  P PP lx KbQPyx "2  dH- IQ0H-@P PX P0P//P   R/H- ( y H/P/P/0H-P@ c+PP0HNP 20C2 /$- - /O-,M`p`@ @@ `@APJQc/`€q.QB !@B0T  P pUH* d† N j D a J0$p S U* i N d I n D 0@p0S0_* a N i A n` I @ T * f N a F n AM†  p@0P P*W&*` f N j F n J52W-* i N j I n J@ R!*` f N i F n I ` N i @ n I @T* i N j I n J` PT P*  pW$: W7BPQV  PE0T*  b L a B l A pW : bY L a B l A@ G 0P pTp:pPA`T`*Rp W @T* g L i G l IPP `@PFTG@Q@@pT p: P @@pT p:Q@0 a C j A c J P 0 f C j F c J@`@`P*؀JJX: V:P T`P @Rw* f A@ ` F a @K 0@P Y$p *P* f @ a F)P(* n @ a N ` A Y* f @ n F ` N0 R; f @ n F ` N P* n @ a N ` A0 R% @0 p  R*B PF R  a0 A  PX:F0P8  PB @RK0P5 @EpQPW* Tl* f @ l F ` LK 0@KOp p0@ 0h 8 BPQ* d  BA a D b A( PR* g @ d G ` D @ R* h A g H a G R* f @ h F ` HK T* n @ l N ` L R* f @ n F ` NK f @ n F ` N Rr* n @ l N ` LKO-M00`pPpW@p * pVp!* `p G b @ g B- @V@)* a` F b A f B@p@X@* ` F a @ f A `` F a @ f A@p@X@* a F b A f B0`@@V@* b` F c B f C@Ѐ@X@* a F b A f B$P* j F a J f A K K KO-MA`P@P4X$DF R* j F @ a J ` AK 06PF @p`U@o*Q* j P @ l J ` LK Pp @ `Y$0`l*T* j @ g J 0F (K 0p  0  F8P`Pc* g  E @ b G ` B (0@`0S* i P @ g I ` G0` S `* h @ i H ` I @  TT* j @ h J ` HKQG* n p G l N g L R* jP G n J g NK@TD* l 0 C g L c GY9* j C l J c L0P3`PK j 0 C n J c N$RP * n C l N c LKPK j @ l J ` L  R* l @ g L ` G0P- @0 `P V *Ѐ `J R P e0P E P ``V `: J0`8  `0S @D PpPKPKPK @oRKPKpL-M@L   &t  `/K0oC\0`00  Q `P8 s Q  0 `P, }s Q  0 `P  os Q 0 `P as Q x 0  `P Ss Q D 0 `P Es Q  0y `P 7s Q 0k `P )s Q 0] `P s Q t 0 O `P  s Q @ 0$A `P r Q  0(3 `P r Q  0,% `P r Q  00 `P r Q p04 `P r Q < 08 `P r Q 0< `Px r Q 0@ `Pl r Q 0D `P` r Q l 0H `PT r Q 80L `PH sr Q  0P `P< er Q  0T `P0 Wr Q  0X `P$ Ir Q h 0\} `P ;r Q 4 0`o `P  -r Q 0da `P r Q  0hS `P r Q 0lE `P r Q d 0p7 `P q Q 00t) `P q Q  0x `P q Q 0| `P q Q 0 `P q Q ` 0 `P q Q ,0 `P q Q  0 `P q Q 0 `P| q Q 0 `Pp wq Q \ 0 `Pd iq Q (0 `PX [q @ Kpq q q q q q q q }q ${q 0yq  `c) `,p ᄽ ,  X, 4x Q , 0B PP  h Kj TP j j ~j {j yj wj @j%H- MP РO- M@`P P p5l #P: RᇠTP@/ 0E pP  0= P L 04 `P  pG ` 0% @P  9 p 0 `P  @)  % pXT  0 P d 0 @P   $p 0 `Ps  @pT+  0y `Pe  0 @P^   |p 0 @PN  pT`Y( @X ƥ pP- ,@ r , m , h Y , 4a V , Z Kzi 9xi ?vi Fti Sri api ni qli xji hi fi di p= w V .HꈈO-MpR )k #P:p Rp( T0P@ P (0#,P(0{n @1q ~  q _n (o 0#(PPPcn `( 0 PPZ l  0Vl q (o 0#(LCn `(< 0 PP< l  07l q (`So 0 "n `l P( 0 pP  0fl   @P   KO蒻 h yh h h h @9R @`840H-M@ R  R Q  P  Px㖓+T00 @ @t@K0H=C:CxxdM-AM@¡ P  pP PAAQT 0 @O `VR (@P*P ((g Pz P@@6 P(UPQ A@ 0pt,DP @P= 0H 0PUU @P+  `VBP@ P @ P  PPK@K P 8B0B,B$BBbav@vDvHv0H-@Pc P AAQ 0 @ P  0(@ P00 0N PXBUB`uH-  , $00$0 $,pHh2/L-@〒+4 0 p  r! @P7x/K- M@pP`(g h PV W (TPP ,tP,R(T Y P(H p t 0 PP(@  (P?  0pRPP" P, Pa   R( g  ᱿ P P# P 0 mh ⫀ Kf AA,s0sH-  ( $00$0 $Ho0L-@ PAAQ 0 @  P(Q,LA]L-@i PAAQ 0 @ ` P(Q,LϡeA8]0H-P@F P"AAQ 0 @ P0; P ( @R ,崡P 0 06A|\0H-P@ P"AAQ 0 @ P Q  0H/ P0@ 0H/A[0H-P(P 0P @|,/T( D P0P   R( f , 04 0HR @|opL-M@`(Of S=g PC (PC($1/P Q( f , 4 p Q: , P4`   R( sf  x P ` P  0lIg r 1/Kp@@nn 0"0$ 0(/    /M-M`P0K@eP p p $p(,`@(e p $Pp0 KmK-MtW@(#``B0j ( 0i PP n  \<`8 P8PAVZ F BR:P4@pjuV1 P p"p#ႎ+  @< U ᙎ+(,8p<`8@@\1/ <`8 8A V9 F BR:P4@P@PjyV1 P @"@#N+ p; Y e+<` 8 @p8p(,8P4@@@V   ;8,8P4@@@V  ;,8 x (8 <`, p1/@; p8 4 @0 0` PPK $ 0 " D @1/P  00 4 @ 1/ @ 0+S  0  #   0   @  0 õ @@ 1/PP  0޴ poR8 @ō+UZ<`(D<| `pV @PK8D1/PD 8*@ 0  ᯴ } `V(8Pl @KDD    P4h 4噙 Pd  0YN `  p( PQ 0 ,@0P E @J@ 0+S2 @ @,@0$ g 5  0` . 4 0- ' P P  R  R0`YD,P ,Kb @8P D{ @8P P+U@@ P +,K{ Ka a a a a a a p@Ws:"ЯL`BH-@8PU  `ߌ+VP00P ֌+$P Pь+UP Ȍ+PU `pP` 1/Ẍ+WPP +^L-0@ P 1/ ^O-M@`w+#P Q ` `PP @pᡙ P  l P  ᮚ P  p`W4 G2 Y : ?+aV* Q `V%  P P:-+Pv P u`V  P P g P f aV` +zW@*P(  A * *JP& Aꇀ`W:G``  9  ` Q1 pG Y* P P$ P G P :+ +P(( P  2/@ P  1/KN;]@ZO- M  p EW","T& G/F #&" g 2 G0] VP:@Pt+0 PAT S @T P P:a+P P @T PP P K G+z@W@*A  A * *%ZPW:GPP  8   Q1 pG V *P PATP+P0P   @P G P:P+0@ KH-M0Pp@`V pPp`PPP*pP `pP K`P㸊+PAPKH- H5 L-,@P M_ 0VL-(@P =_ L U/////O-M`@ᯗ P  z P  Ἐ PP  P@T D Up:O+pp P`V`KZ P 到 P P:1+P`VP QP n P`VH-@PQ A  +P`UH'P`U!* VF"@  o!pr!  7 W   P :@o `UP1U: +UP1U:O-MQ! `Q*ω+P +` V @Y pFP X:+ @@P ˉ+@KA@Tw U= pW:+pW@TgQ$ PP  ٯ PP PPP  ̯ P@@T>@T7`V@T.Q$ PP  堯 PP PPP  哯 P@@T@TK6H-@PQ A  +P`UH'P`U!* VF"@  o!pr!  6 W   P :@o `UP1U: +UP1U:O-M@Q! `Q*+P +` VpZp FP X:+ PPP ވ+PK qpWV U, P:+PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK5O-M@ T& EG/F`V!!!!w 0 Fi W:PB+ QU Q PU P P:0+ PP PU P  PP K+Pj@*V@    A * *J P+ Fꆐ@V:F@@  5   Q1;`F W"* P  QU P P P F P :+ + PP  KH-@PQ A ~+P`UH'P`U!* VF"@  o!pr!  85 W   P :@o `UP1U:S+UP1U:O-M@Q! `Q*f+P +` VpZp FP X:N+ PPP b+PK qpWV U, P:6+PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK{4Q/0H-@P0Hg0H- Q/o"   0 @T@T T PU @T2 PU/\o  0PP 0PU0 0  Q 0 S 0P Q 0PU0 0  Q 0 S 0O-M@ T& EG/F`V!!!!w 0 Ff W:PC+ QU Q PU P P:1+ PP PU P  PP K+jPV@*@   A * *J P+ Fꆐ@V:F@@  3   Q1`F W"* P  QU P P P F P :+ + PP  KO-M@ T& EG/F`V!!!!w 0 Ff W:P+ QU Q PU P P:+ PP PU P  PP Kj+jPV@*@   A * *J P+ Fꆐ@V:F@@  2   Q1;`F W"* P  QU P P P F P :+ + PP  KH-@PQ A +P`UH'P`U!* VF"@  o!pr!  2 W   P :@o `UP1U:+UP1U:O-M@Q! `Q*ὄ+P ք+` VpZp FP X:+ PPP +PK qpWV U, P:+PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK1L-4@ P 1/L<//H- f/L-@$ ,+l<L-@( +L0</P//  //pL-MP`K`0@Yh Pd(0  @L8P @00D`4<$00vX KpL;l/ @///pL-(MP(X CY (~ P, `a   R( 'Y  , P `ត P  0A_P z ` `P(q8~ Y r Kp @pL-0MP(KX CY ( ~ P, a   R( X  P `Y P  0^P # P ` M F`P (%8 ~ Y Kq Kp @pL-0MP(KVX CCY ( ]~ P, a   R( X  ᛰ P ` P  0^P #⟤ P `  F`P (7 F~ UY K~q Kp @pL-0MP`(K X CX 1/P   R( IX (} P, b   R( 7X  < P `ᮎ P 0 Q^P # @ P `~ F`P(z7} X Kq Kp @O- PPZ `Y  0X @^ (K\ 0#(`Z p(D 0 PP< @Y  0X !^ (,\ 0#(Z p( 0 PP !Y  0X ^   @P   KO CS P@ PQ @b P   PQ@U P P@@r @1/ 0H//X.|-0H-@P P Q  @ P~/@ 00A>CS P@ PQ @ P  V PQ@ P P@@ @1/ 0H/C/$-H,O-M(PT ( 1[ `#(0Y p#(0Y @#(0|Y 0#(\Y X ,` 0 @W X , 0@W X ,0`@ W W , 0d@W ( Z 0#(cY `( 0 pP W  0WW \ ( Z 0#(@DY `($ 0 pP W  07W \ ( Z 0#($Y `( 0z pP W  0W }\ ( Z 0#(TY `(8 0[ pP }W  0V ]\ ( hZ 0#(X `( 0; pP ]W  0V >\ ( IZ 0#(hX `(L 0 pPu >W  0V \ ( )Z 0#(X `( 0 pPW W  0V [ (  Z 0#(|X `(` 0 pP: V  0@zV [ ( Y 0#(@@@gX `( 0 PP V  0[V [ l KS S S /R LR jR R R R l`0'hL4ܷpL-@<    Q  R* R  R$ RD@D$P U `1/$U PP$``PPpLR[g-DdpL-@<    Q  R+ R  R% RD@D$P U `1/$U PP$``PP[pL"-4P/r%a-F J#S$G  /H/pL- @@  R P* P P$ P D@D$P U `1/$U PP$``PPpLZ,L8pL- @@  R P+ P P% P D@D$P U `1/$U PP$``PPuZpLe,<(pL-M`(P|+@AAAQ! 0 @ P t0?K   0QD, Kp> P H,d tpL-M`0P|+@AAAQ# 0 @ P  |  0 ?K  "0QD,Kp P ,dtL-@YL-@YL/L-@ 03/1/P   R( Q  @ L//L-@ |+,! 0 aa @ݽ(/YH- Y@H/L-@ {+,! 0 aa @ ݽ(//L-@{Y)0L-@mYw)LV/L-@ 03/1/P   R( 2Q  L//L-@{+4 0 a@@۽0/H- #Y    H+)L-@Y$ )L/L-@c{+4 0 a@@۽0/L-@(0H-@P P2AAQ" 0 @ PU (1/@P 41/P 0" P 0+ 0 PU+ 0*0H-@P PAAQ 0 @ P   P 0 P*0H-@Pt P"AAQ 0 @ @P + 0 P 0^ @P 0d*40H-@PD P"AAQ 0 @ @P + 0| P 0. @P 04*tH--P@ PAAAQ  0 @ `V `V P (1/P  p P  `IP + 9 P))8lH--P@ PAAAQ  0 @ `V `V P (1/P  p P  `P +  P)) H--P@n PAAAQ  0 @ `Vb `V P (1/P  p P  `P +  P?)<)H--P@ PAAAQ  0 @ `V `V P (1/P  p P  `xP + @ P((TH--P@ PAAAQ  0 @ `V `V P (1/P  p P  `P +  P((<H--P@u PAAAQ  0 @ `Vi `V P (1/P  p P  `P +  PF(C(H--P@" PAAAQ  0 @ `V `V P (1/P  p P  `P + G P''pH--P@ PAAAQ  0 @ `V `V P (1/P  p P  `fP +  P''$XH--P@| PAAAQ  0 @ `Vp `V P (1/P  p P  `P +  PM'J' K-@PR7 (`K ! P2 p  [WPY ppp,p @(`  K (`P L X K $"'& PTO-M(lL @Q (L P?i pW3 G`* V1*P( PU% Q PP+P: +PPUP Q PP PU PPU{+P@@T P @UdPUa P`pG  V :@`ſ+ ``@PT R P: 宿+ P P R P: 坿+ PPP P R P:ᄿ+PAU @  v+e ,P "K , PU @`P K @ xv+vv+VPP mv+P K  P J  WP (lK P Q( K  @J d P J @ K H- HO-M`@!h p W: GP U* + P& ` V! Z PP2P:+P`V P QPP `V Q T 0S p0S Q 0S QK R P QO-\MP P4  @(QQ P: P"` RQ* 2  R Q *P `0 R  R Qᨸ (᥸ ^ Z Mꒂ P P@@$$yP Z Q(J P @z P@s P P P pA@f P@p^ P  pP@@  @4KDp P ` p @L PK `($a$ a,04`8<@\k P; p@P _ t+CK @P0,# p QI:G 0t+` 0(,$`P iI ,X I ,f $ L ĩ   4Kp P? 4Kr @P= 4Kdp P< 4`K_p Pr 0&p @P ^_ t+J 4Ko @KA⽁ P^%$"$$d$`$h$T$L$L $D $<$$$(t$(,O-\MM@₂ P P pP6 P P P @$PAAQ 0 @ X P P  X@ ,@(P  I ( P  yI @ld   fd P@ 0@!T@Rd ZzH 0klH G ad (`@ F@PHpu840k* U*@$U0  s+@804P$ l 9K:KpXX# `: K ˬ c ]9[:[(J9K  0?`: K ᳬ c E pG 9K  0) sc ᄬ9[:[" ( 9[P (E (p(:[P (E (p 0 `P$ 9 l 2_ 8Kl P 8Kl PY 8Kk @K 3c 9[:[CE YdE bE <& 4# , $  ԄȄL0H-M@~ PN l Pp` PFAAQ 0 @ P P E ` PK`J` @P*a P K(OE (@ \0 PP  k ^ KD  몂xpL-@`Pᑿ P+AAQ 0 @ P P gE  Pp@_ P p P pxO-M~ PK  @N PDAAQ 0 @ P P ($E < PK ` p( @WP c` 0 |  PW@D PWT@ K0pL-@`P P"AAQ 0 @ P P D  Pp@o_ P pHO-M-*MTPPX,0  X @t*` T*TPPp  Po+pXP0PT@ `0PHpP X` G8p G(p Gp Gp Gp`pd``Tppp pPpwxP Xn+`VO`uK X `n+[P& `P@ Q2 `0P(0  0/S .SQ0/SPD@H@ H VP\HX A8 A( A A`X AP\HX A8 A( A A`XV A 0xX `n+tD* T*T@@p  PSn+pH@0PD@ 0PHp@ `H G8p G(p Gp Gp Gpp``D q@p`` w@ HDn+K ŇBK  @[PF VXA3[ .n+XPv `kP\Y l \ xlhd _ tpx b ,| e 8 h D Vb[  m+Vo@ P P   B Kp   H*H*@8*@(*@*@ @ p p1[B/K@  08w[ m+X `m+VK4K vX `m+[PKV` 7P P @p  B KP   $p*G0p p*G pp*Gpp*GPp*Ep1[  0K v[ km+X `fm+VoKK )XV0P `Wm+[PK@V`4 O P $p P B K   *G p1[*Gp*Gp*GPp*Ep  0K v[  m+X `m+VoKᜆK XV0P ` m+[PHKV` O P $p  B K   *G p1[*Gp*Gp*GPp*Hp  0K Vv[ l+X `l+VoKRK XV `l+[P8 `KX XP @0( P/P+ d/4` KPH40 p8 @8 @( @ @ @< p p@   0pv  p4 <}l+T , P}`BKPH`Haϊ8pPϊ( 0ϊϊϊ HxLaPa idFa Iq ` `!RuFOK / N 0 * K```H [ϊ8ϊ(ϊ00ϊ0Kϊ` @` p p0 0 @Pu[ l+[ l+FOKKᘅN [  l+8PK FoKBOK N0PP @` * K   ,`*F0`(`*F `$`*FP`*E`0[*I T  0Ou[ k+[ k+FOKKKN [ k+8PK FoKBOK MN P ,`  * K   *F(`0P0[*F$`*FP`*E`*I T  0u[ k+[ k+FOKKN D[ tk+8PHK \FoKB_KP N P ,`  * K   *F(`0@0[*F$`*FP`*D`*I d  0t[ =k+[ 8k+FOKKṄN [ +k+8P @K"BK H$ Pk+!.SQ/QI 0KPH@@ Pϊ8 ϊ(ϊϊϊ K@ P @ @ @@ @KKnt[ j+BoKH 0 ϊ8ϊ(ϊϊϊFKA Q A A A @ @@@Nt[ j+@VP0P $K̀ȀЀp@pps* P Pj+0PT @ a@A( -M, 09 j+XPx.Ȁ 0`@⿀ϊ0ϊ ϊϊPsKE Rj+$>K 41X1\!P pR `W``UR$  `0@T  @W WU `j+0PZBoKV\(R PW W j+XPUP`@(p @R /P@p%WP# 0P\ XH` A8 A( A AX ANsX> `i+;PNOBKD cL 2 0,(0(`pV`!vr* V*V(J@P v~@i+P0(J,a@ pp(,!00 )L PR ppp(.082XP4 @$rJU(,Q@<P8HLa0q`UP!Ypu * U* 8N@U>}0Ni+ Ii+8 @Di+XP= i+@@8 ; P P p P( p 0`) PP#    U @ 0 J P ; ``T K: ,8blH-MP4 Pp@< #P.: R&`V# P P   R( l;  P0( @  P K: K H-` t P)  @P%(Pq P# P`(pP a: V : PH @`(pP LIF`48O-MP@R` I< #P`:`$ R`P#0(P@?   0 PR @P B IB O ( A 0#(pppp? @(l 0 PPh =  0v= B ( @ 0#(pppc? @( 0 PPK =  0V= B ( @ 0#(C? @( 0p PP, =  06= B ( @ 0#($p#? @( 0y PP =  0= {B ( @ 0#(pp? @( 0X PP z=  0< [B ( f@ 0#(4p> @( 09 PP [=  0p< ;B ( F@ 0#(PppP> @( 0 PP :=  0< B \ 0b p@P & PP  - # 3  0rC"2  0kC"2  0dC( 09 @P (F 0  i w ( 0& @Pp (3 0  V h ( < 0 @Pa ( 0  C Y (  0 @PR ( 0  0 J (  0 @PC ( 0   ; ( d0 @P4 ( 0  KO8 8 x8 8 8 8 8 8 )8 H8 Y8 ]8 }8 8 8 8 8 8 8 8 }8 8 }0,[ZZDYD)Y(X0pP PU"P  K P P:[+p P Q PU P  P Q PUO-M@P`  p:% ` p* PPV  pZ+PAPV    <KH-MP@P / P `Q 0 A!5!qp  2/ 03/(   0K0( a   @/T0/M-@P`p    Y+  `p  Y+  p `  ( $ (Y+  p,`, 4,0 4vY+,  p8`8 @8< @]Y+8  pD`D LDH LDY+D  PpW TP ` v -Y+WPXTTp"Y+TXPPTXPTXpL-PP@U TP ` v Y+UPTPX+D8, pLX+8 @X+, 4X+  (X+ X+ X+pO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : p+ P`V`KX1  P 0PST 0 0S PP: A+ P`VT  P P  Q P  0PS T 0 0S PT  pP `VH-@PQ A *P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:*UP1U:O-MpQ! PQ*W+P W+P U@`V E  R :ᢠ+ PPP W+P AX P@Z T:@ᆠ+ @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R KO-MPPPPTPX4 @ PPP``p** PpV+ /pY 9 0  9 V+ XKO0H-P@T4 0  m 0 m $ (0  !m,0 40 ,-m8< @0 89mDH L0 DEmPPT 0O-M@`DZ ZJ A @ BAZYy  Pn p w vV+Yd  @@PZP @ V 0 p@  m X @Z/ P `  pwz* W*W @V+`  @ PT ``[  P P u V+Y K p V+   UUAZ@B* *@PZဠ PU+pVpp*   Pu* U*U @U+"p  L@ `T ppK;H-` 0Pጲ @P'  0ㄲ `P!  `,K f `P $K tp 0m PP  0|  ]* [* Y* W* 2* H-` 0PK @P'  0C `P!  `J Yf `P J tp 0, PP  0_|  * * * * ) %pL-@P: `PP  @ %P QAU S0l`V P 0`V0 `C 0cP` C A R:T+@p=M-M`S 0@`lppW1 T+`PP! P P @lp P` 2/PP 1/P  @ %Q  0 3/ P * P PQ 0 A!5!a` 2/ 03/0 pC 0cPp C A R:T+@KsH-@PQ A /*P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:*UP1U:O-M@Q! `Q*T+P 0T+` VpZp FP X:+ PPP T+PK qpWV U, P:+PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK,H-@PQ A c*P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:8*UP1U:O-MpQ! PQ*KS+P dS+P U@`V E  R :3+ PPP GS+P AX P@Z T:@+ @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R K%O-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : P+ P`V`KX1 Y 0PST 0 0S PP: !+ P`VT  PY  QY  0PS T 0 0S PT  pP `VK-P@ `    pw* W*W   Q+` p` T`  pw* W*W   Q+`p` ,`    $pw*( W*W   lQ+` $p(` `,,  0pwk*4 W*W   DQ+`,0p4` `88  npL-M@P 0 `P } P `{[ P  000  'KpKpI$ pL-MP@} P `X[ P  000  KpKpO-$M 0Px P- @% #P): R!pW C`@%  0 `'PPTPP(@Pv% Kt$lM-(M@Pp$  0`に pP N} P pZ P  0`@$ Pj= K# H-(MP@`l$ $} pP `Z P  0pp@j$ P?= KH-(Mp`@PB$  0PL$ @!= K0H-Q P@[ P ,$ ~ P 0H^Z 0O-\MMR @(,K`# T [ PPPPHKtL (@M K TN 6!L#DN P O (p@P  ! DPDP 坝  R @唝 #N #pPO UpP WX H pG4"  0pyPW0 cP PU U PP RWW ^ P0S pWPQ  0 (^ P @`K TNV Pz\ P ,0 lz p Q:cv" i" p" KTNPP @@>PG D TT ;L PP 5,K!< K06(30fff|gO-DMMQ `(@,KP" U( P 0Z P ,$ | P =Y QQ  Q P(@pPG^ PP ,{ p, | P PK(8N  8P Q.Q* P&MZ PC ,p{ ( 0 pP c{ Z0 QQR%  P U QP 3#$0.R Q:Q6 P2(@  (RZ (@ 0$$$ PP9pF0 PP,K9; KH,K4; K(p|An( wU QP 3$$ PP !$ PP (@ Rh4$(  PP F! $D! B! T$FȮ~FxbH- @?h d R 3@ /, /   /87 80H-PT@T@0 @T P07b0H-PT @T@0 @T P0478b0H-PT@T@0 @T P06aH- ⵒPrX6_H- H-  P4G[|L-M@G PKLF ( 2pL-P@XG `H pL O-,Mp   A PP @7" #PL:d RDPUA ,8 y @dW P; `F I  K 0w @[G P 2G P+T ;W P F 9 K# 0W P  , x P @~Y P ᣚ <  xl]pL-M@PG P7 H PF `sH u9 Kp\MH-MMP 00@  0 0KHЍ/O-$M(P` C ,8 Tx P( p`V `P0 `` `0(E P % Z (  0`㖧 P Q ( 0`㋧ 0P ` 00  ᶒ `Pa  9 K0  O-lM$((K d 0PZ @Pt p(p4( 817ppp P$ 8(?0 ` @^ tP_( 0P3 `PX 0* @PQ  0Su J 僪 p( 0@ `P>  0 V:P@FPP1u* U* `U  z8+`(P Q P$U *  ,  q8+y P \@T$qp P P u Z8+T @R8+  @ 0 00S R (  098+Z [ @?SP[ K 1/ l6+K4纮vo\H- 8F^[묙@녣Fg   Q ~   00 啷U:7 R ؕ>+낝뛨n9> Tnm`q{{{5jHc$O-,M P $U (U1 VUAP*`7+p@$ (P#p*` P*V w7+B@ Yp$ @$@  $ A J`@ PREPm*P AP] Up PUpP@PB @PUP@P / @PU@T P P u &7+T@7+ @T $P P u 7+T $@ 7+Kc Up{$0H-M@ v, @P P #P :4 RP,DC]% K00H-P,@}P  0H ch P H- Y L-@᥏,DJPLM-0M(`$   8T 0pt @P4 @ d pP. J @P* @ (0 `P" d P `kB P  0P?  $$ K8 6 4 2 BO-4M(P(p ^ 8d (0! @PY (L ] ,점 c @PM #W PG $@ (04 pP? p( $ (0 @P3 dd P @B P  0 P  yc @P #W P @J (s$ K IH- 5+ dP//0H-MP@5+ 0WK0pL-M`@P5+ 0{WKpH-Mp@P`5+ 0jWKP/H- dH K-(M`Pp@8   !Jp !D \5+P P(0d0 t`V P p w d5+V`\5+`V P p w P5+V`H5+ # KL-@ႍT ኈL謶0/0H-P(@ 5+ 0P//0H-8MP 0u @P& K* L "  ˧ P 0 B B "+ PP ! P (P  4+D Km# K0 (PH- [  R  R QH@ pL-@M@ P``` P 4` @0@8 @P T C D ! , ! KpXlT0H-@Pȿ  0H0H-M@ * @P P2 #P:L R PxQ @P@" K0dO-4M`<@p2G($V ^VUAVP*@,4+PA`p*p P*W 4+P @T PP@@@ @ $@ @(@AP a5  ( 4+ Ԓ 83+B@$P$U 63+$$R3+! 2/ P% $` )3+$$K0p p(P ,$ P(, $p p 1/$  $ (P , $(,(3+ 0尅 뱅 xFX! rD 9P(P ,``(`娅 00P 1/$0`P$` 3+@T P ` v x3+T@p3+@T P ` v d3+T@\3+K$,pLLT p  Q `%zD /0 /00 /$/H-AMt P0@ (K1 (@ 0 PP  . K! K ꢨ1{O-M-@t2+PP  Ld2+` $`Pϊ@ϊ0ϊ ϊϊ2+p⏊1p  @2+*O⏊L及 p @O-M`@ UFJUA@ Pg  BB!* *@QPPW -+   PuF* U* pU  `pb-+p `V   V00  J J    `FU`V @ t X-+U`U KOŮKO-M`@ UFJUA@ Pg  BB!* *@QPPW  -+   PuF* U* pU  `p,+p `V   V00  J J    `FU`V @ t ,+U`U KOLKLO-M@S p ោ Pm ,( B\ pP. : P/ ᯈ pZT V #P:@ R@T ( (@ 0g PPi  b(   KW : P(_,+p' ? `# 0,(  Y @F tPGP@U  #P:( R@  ` P 8/@P+ P+P P ( P T TK 0 KO tP<,( <Ԙ̌ 4$(YO-MP @P PPKPKp P`' UW@ P ' P p @' `P m V #  ' K< P p 05 P 0R p Q: ' P P0H-@$++ 0P  0P@ 0H7( 0P/Q H- BH/   /P/Q H- LH/   /P/Q  RL0 0! /H- $   /X H- MP PP @@K@K`@```P& TP ' @@``@& P pP& `P V X E& KH- M`Pq0jp P.W  c:u9 U< Ep*U@ P @3*+ `F`  ` 5p Q Gp:1W@ P @3*+ *pu puP P @`U    P0O-4MP @P PPKPKp`ppPp % Y0@P UR  3*+pP AP@ PP U?  !0  l0 uo P0  pPV  x& 0ᑆ P  ns P% P PPppPP% P! 0 P p % P 0p@% `P z V 0 % K`H-M0ȅ   @ p `2/PP PP ` }% P 9 U  2/K. +48O-M-PMP @P ```pp4pPp`$ VL@ U $ C)+`ppP AP@ PP pU  d&0 p `Hp 0U xb  0᪅ P p  Y P`㈢ Q  0㓅 PP 4` X:P5 P, P ` P`  /o"0 P!<`Vs p(+P`@p嫄 `P w V - $0 f Ppc 0 l P_  0 2p(+ P `t P`P @ U  # 0 / 9 p 0PRp  S0> p ` X[:'P  0 ` XO:`pp``4;$ P"0P P `P `{`m PP $ PVP` V*&(+`YJ P04pFP*J>"rAPAP# P|*` (+0 hbW*h*@ F p0ኢS (+ 0p P U:ꅂ V h*h*@ FP U:P0FP"`U '+V4# `P ` `` 0p h `pp`$O 4# P Lp4@|# PP Y U  4" 0KЍ ]*d}P~,4{H-MPP囃   @ p `PPP2/PP PP ` Q# P U  2/K dH- M  U   K @ p `2/PP PP ` # P U  2/K O-M-PMP P PP1P/`P4$" UVopL Pp4" P Lp4@" `P w V - 4" 0KЍ@7 P( Y PpP$@Q  04 `P`2 P 0`b @  /o"0 P,p!=@T} Pu&+p@PO `P  $@V}  "0  0k pPv 0(0 jQ p Q:*l :&+p @ PP $@Y   !0  0PS  0 0(` pp Q2:P. ,pp WY:$@0(0 Q pp Q:p4! P pP pp 0 ptTsudM- MP @P PPKPK`P UV@P! P p@z! `P W V   Kp6 P KX P w! P P K- MP @P PPKPKpP` V@ UWPB! P p@ ! `P V   KJ6 P  0^L p  R: ! P PK- MP @P PPKPKp`PI V@ UWP P p@ `P V V C K5 P  r\  pPP P K- MP @P PPKPKpP` V@ UWP P p@d `P A V   K5 P  R P ` P P K- MP @P PPKPKpP` VW@P- P p@ `P V   K55 P  Y  U pP P P K- MP @P PPKPKp`P0 UW@P P p@ `P V ? , K4 P p/ P  |\  pPP P O-MP @P PPKPKp `P VW@ P j P p @H `P % V    Kr4 P p 0 P Z  pPP 5 PO-MP @P PPKPK` Ppg U@  0 P V p#4 P  P P  P P  P  P p @ `P V U  B KK- MP @P PPKPKpP` UW@P P p@ `P ] V   K3 P  0J p  R: x P PK- MP @P PPKPKp`P VW@PG P p@% `P  V   KO3 P  -\  pPP P K- MP @P PPKPKpP`L UW@P P p@ `P V [ H K2 P  nP P  P P K- MP @P PPKPKpP` W@ 2 P  Z  U pP P P Pu P p@S `P 0 V   KP/0H-Q@PR - 0H- MP @P PPKPKp`ppPp VU@Ppp  P p@ `P V  ~ KG- P ᦈ  P PM- MP PP @@K@Kp@`1 WP VT@ P pP `P V > + KG  @ PH- MP @P PPKPKp`ppPp UV@Ppp P p@_ `P < V   K1 P Q ` P PP/0H-P@Q 帀 0pL-P `@Q Pu PpPPpP/0H-P@R ^ 0P/0H-P@S 0 } P 0P/0H-@PS 0r | P 0P/0H-P@S 0 } P 0P/0H-P@U Ũ 0P/0H-P@R Ǩ 0P/0H-P@R ߨ 0P/0H-P@U i+ 0ᄨ 0P/0H-P@U 0P/0H-P@U 0O-MP @P PPKPK `p VP@Z P) P p @ `P V    Kw 0᳨ `  PPVP` P   P]M- MP PP @@K@K@p0 P` 0y{ P t p 0@P @ @@ P pP `P v V ,  KP/R 0Q00   /pL-P P@R Q `0S  R ``p``㈦ `pM-P R@PS`QP* p 0 PpO- MR`pP@S V QP :pm  0z Pd ` 0z P[ 0EE p QS:Q  l0z PI P 0z P@ p K Pp QP {  0z P(  {   {  0pz `P  {  0D p Q: ppK :!i'. ldM-P R@PS`QP*ᱰ p 0EPpM-P R@PS`QP* p 0PpH-PG Qp`@PR: * P3* P.QP%:9) P s+ Pd* P[+ PQQ P 3) P PPPQQPP P/Q @    /P/Q H    /P/pL-@PQ `S V   KO-MP @P PPKPK` Pp Z@)  0G U +ppPX   0 PI P P ~ P P t P p @R `P / V   KL!H-MP p@Q P` P ᾉ VUKKKP/0H-Q@PR  0O-MP @P PPKPKp PW X` @ZP` P p @ `P V e  R K& P W`,T| <Xtp W p W  p W  ?p W{ ᘎ 8p Wo ᩍ v1 " g4 ! `7 ! Y: ! R= ! K@ ! DTT! ?HH! :qਉ W1  8q W' ' .q W $q W ἑ q W  [ qv WHH  ( `# f  P `P % !f (!J B!. ]! x!!K-MP P@`Qj p\ Pd WE s P >`KW P 4 P . P (i P " P  P  P  P   P  P X   垉 `Y  p刊 pX``W ~ `KO-MP @P PPKPK` Pp W@Z P Y P p @7 `P  V   K P  YHD  :  > ) P PP/0H-Q@PR P 0K-MP- P@pQ! `; P V   `X e p߉ Y`pX Չ pKpKP/Q     /P/Q (     /jP/O-M`@V' pP 0$R0/ /"@P` 0`u  P  0 KO-$MP S@`P `K`KPpQ x P`m W  PK PxP +p` P 0PX  K  0[ j @ԝ PU%  #P!: R0P $ t  h@l pt ```$ $෼ktjjxjiP/L-@Q  2/P/pL-P@Q ` ,DpH-P `PQ  @p@@@$", "D(h h0 0P@@@@p@ Qp!x!hpL-P @`PQ ()P p }p P PPpP`PpK- MP @P PPKPK`P VU@P? P p@ `P V   Ke| P p. + I}  P P 0K- MP @P PPKPKPPPpP`D V@ P  P  W }  } PUdP  + VP P p@ `P V 6 # K P P0P/0H-Q@PR  0K- MP @P PPKPK`P VpU@Ppg P p@E `P " V   KpQP  pP _ P 7 P pPO-$MP QP@pS Z P pKpK`/ P pV / Ppok `Z Po p +P   0V pl 0pK    g @⌛ L PP0bPp`P`⼠$0 0@0 ` @ J8  ᛺pW$$] ` ,|!D @ *P 1/ pmpkP  +pOP<`pV xP +P P 7P `PU E #P: R` i +` d  T p/ pP+80( aaLl`J^_H- P Q\\H-PU @Pp`O<AQ *W P$O<AQ:P @0 pP OP) P @pOpO,0 80pR< t W(8 <, "5%pa<OpO\[pL-P @PuO`P Op`yOpyZpL-P, @P`XOP @VPP P\OpPWOpVoP $?O@ PPPDOpD8ZL-Q @@5 ZL-Q @@&YO-MP @P PPKPKP p` U@  WPP . P p @  `P V    K! +` P UL   0 0  P P4L-@$T@$ P P P L}L-@T P Lp R   R R//pL-\ 1^ 0@PT`VPP@PPPP@0CT:\* 000S@ :A P DPU S  B RpQ //H- R R@: 0 @0S\ B  RQ //0H-R 0R00 B^@ :@0 P CPU^0 B  R0/M-@P 0S Pp ` 3/P PP `  P X P M裉ŷ·(U,U0H-M@<,@  @zP K0U0H-M@8,@  @cP K0HnUh lp0/O-O-M@`V WP U*A U@p @ D QppW WD*|+6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  `+ @KӯO-M@`V WP U*A U@p @ ٯ QppW WD*+6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  + @Kh  0H-M@ P | &{ P} K0q0=0H-M@ P | { P} K0[<L-@ P L} N<L-@ P L} A<M- M@p-  0*uP: `V( @P =PP+PP,  0psP3pP W *sP PPp %P  @@ KPPMPPݰڰ` ;AH-M`P @  P- ` #P): R!pW T U T*( 0`{  4} #@v2 T  ` K `:d:h:0H-MP@ } o P P #P:d RP P  { @@ N K0bD9pL-MP(@ N `u,U P d`P``@`P ( 0{  | #P2 p@T@T$ 7 ` Kp`P pL-M`P @  P ` #P:h RP  P   @@ Kp|7H-Mp(@ P `u%U W. ֭`P!  ᷭ`( 0z  O| #P1 p@T@Tᴭ  ` Krᮭ`P`ਯ|6H-Mp`@P  P! p #P:t RP  0P  @@` Kt@5O-$MP(` p^ @wT( 0>z U \y  @{ # 1 Y> (`*@Z   pp P x P- y UP* 0 & p"@PRA/ /"@P P։  @ K DL4P40H-P@R Q U*( 0y  y{ #P0 pPP033(4pL-@P  2/`"PR/ /"@P቉ PT P pL莀pH-@PR ` #P:X RPD"@2 00",2 0u"2 0n"2 0!1 0`!1 0Y!1 0!1 0K!1 0D!1 0=|!x1 0h!d1 0T!P1 0@!<1 0!c ( 0q[ pP (㪇 0 %  c (0][ pP (j 0 % H( J % F D8dyTk<TF%8d)*x18346H-P{ P IZ @Puf Pw Pw`(pP V  "2 0"2 0"2 0p"l2 0\"X2 0H"D2 04"02 0 "2 0 "2 0!1 0!1 0!1 0,HcV P@ PH@ Pxa@`(pP@ P0 PP@@P( 0"x `( 0wZ pP  J} 0 $ @ tP(^ 9 t!p69u=eARE@I.M4R Vt[`d8 -, -L- @R.Q0P,*R@Q &@QP* R @C` S@ҐP @Q ¬࿬d-h-0H-@I P- Y Q 0S  R*PQ @ (AI P 0 P 0  @ 0S  ,O-LM@ P~ X P P" P@ P P!`P'@p P%`@ P@ P(@KO~ @`p P@pF P; gw $u Ux Phx $Z` V-  P, Rw u @x PSx P p W P!A 0S"00S P RPp!@ R"  R P#@ 0S #0K 0[P (PPp@ R #0K 0[P $(PP A 0S00S  P R@ 0S #0Kb 0[P (PP @ R  R  P@ R #0K@ 0[Pz $(PEPA 0S @ 0S00S P R #0K 0[PS (PP@ R @ R  R P #0K 0[P4 $(Q ((@l K  Q P K R: 0 @ PCQ  @PP1 BUP! @UP K { K P84,$m\&`&d&h&M-(M@o P =W PPb P P@Z P PS P! P!P"@H P@A P(@NKM @1 P@Pu @t v `v PU XW P@ PQ@  PK Pp@@pu  t v `v pW Q4 U  1R hP  U @K3PP @K劃 P K K(0(- *'t<%###O-LM@ P zV PP P P@ P P P! P!`"@ P@~ P (@ዤKO @n P٩@` u $}s u p v $Y Z P @O P P p@ @C P,ன@pt Rs u `u X` Vg P!A 0S"00S p RP `!@ R"  R` P#@ 0S #0K& 0[P! (pP `@ R #0K 0[P $(`P`P A 0S00S  p R@ 0S #0K 0[P (pP @ R  R  P@ R #0K 0[P $(PPA 0S @ 0S00S  R #0K 0[P (P@ R @ R  Rp P #0K 0[P $(pP pJPA 0S @ 0S00S  R #0Ka 0[P\ (P@ R @ R  R P #0K@ 0[P= $(Q  Q:V 4(@W K P<:W<:PG p@W @ 1R !R jP W @3PP @KW 十 P  K85824/,,$) ߭p"!O-4MM@ P\ xT `࣐P P P P PP@ P(@ᗢKO+ @z P@Ps 4Kq t pt P4U X P@@ J P pP @@ : P P:PP@7 PQ)@ R*P&*Q}@} K@ P Q@ P  pPP@@ R Q:@:@ Pc@Pr q s `s pW Q W !/Y,W  IW@P* ! IPRp@  P   .K KYK@ PP (QA? (Q@ ZP p P(C p(P @cC  p(R @( 0 SipY@ P@ PU W  1 PPs Yrඦ೦ద!ܭH\O-$MM@P@' P~@  Px P@# Pr@ Pl P@ Pf@ P` S@ B eZP P P@ P P' P) P)P*@ P@ P P. R (@ߠKOs @ P-@P^q o Lr `_r X Q P@ P@ P PP@@P4q o "r p5r `Vp W P@@E PP@ 0uXV4 XPSPX&@ 0uPuV` PV X u X QX:YXV#0 KP ?+@ 0~ P KWQLPHS U 1 @VFV l|< Vqp PUC:WPiqpqp| 0 `7/PEV+ES Y 1 B &!|p|R P P7 P PP@, Pt(@9KO @ P8@Pn +m o `o pW  R^  PPPA@@PAC `Q@@ 0  0Fg0Z00Pm P P4x SYS `SP`S `xY ``Y> S xS Q S:Z:   RZ XW:pWTPWQ 0`ESV001C |W, , GW,Wß `H=+@ 0| P KZ+ Z  PM Q  HpRZ  1`B Y  IY >YTRPS  K ᥠ`Px   0.A Q  PH P U 1 @Y l IY Yrpqp  d KQPqp| 0 07/p_WE0h dQP\ 0`  05/p< W0JY ̍, 0p0ޮ $O-,M@ P H `( P;  P pRg e @h PSh Z Y Z+ P. 0S000S, p R'P/ R1  R-P P(2(@ሖKO T K@ 0S # Px pP@ R #y Pp $ PPPJP A 0S!00S p RP @ R!  R P "@ 0S #C P1 pP@ R #2 P) $ QP1 P (@J K @0_P  KQ  K] ,E(B ?<֪嫭DHLO-,M@ P G `( P;  P pPf d >g PQg Z Y Z+ P. 0S000S, p R'P/ R1  R-P P(2(@ᆕKO T K@ 0S # Px pP@ R #w Pp $ PPPJP A 0S!00S p RP @ R!  R P "@ 0S #A P1 pP@ R #0 P) $ QP1 P (@H K @0^P  KQ  K[ ,C(@ =:ΦݧlptO-4M@ P F P P'  P  `Oe  c =f pPf ` V Y P RQ*P(@ᙔKO- @ R h(@ሔ K@j P PA 0S00S p R  P@ 0S # q P (pP@ R  R  P@ R # P Pp ,(PJ V*(@PA@ `F0S00S p R # & P? (pP@ R @ R  R  P #  P% ,( P  (@!WV 1R (0 [@P P K K4 r gr P($ ʧ2l)O-4M@ P _E P P'  P  `!d  b e p"e ` V Y P RQ*P(@kKO @ R l(@Z K@< P PA 0S00S p R ̽ P@ 0S # C P (pP@ R  R  P@ R # " Pq ,(PJ V*(@}PA@ `F0S00S p R #  P@ (pP@ R @ R  R  P #  P& ,( P  (@WV 1R (0 00{Z@P P K K gq 8q P($ޗzDq@DO-4M@b P 0D PW P' R P  `b  ea c pc ` V Y P RQ*P(@<KO @ R l(@+ K@ P PA 0S00S p R ꝼ P@ 0S #  P (pP@ R  R  P@ R #  Pq ,(PJ V*(@NPA@ `F0S00S p R #  P@ (pP@ R @ R  R  P #  P& ,( P  (@WV 1R (0 00LY@P P K Kֻ 8p  p P(ൖ$ಖ௖VO-4M@3 P C P( P' # P  `a  6` b pb ` V Y P RQ*P(@ KO @ R l(@ K@ P PA 0S00S p R n P@ 0S #  P (pP@ R  R  P@ R #  Pq ,(PJ V*(@PA@ `F0S00S p R #  P@ (pP@ R @ R  R  P # y P& ,( P  (@WV 1R (0 00X@P P K K觺  o n P($뚙<̭ O-4M@ P A P P'  P  ``  _ a pa ` V Y P RQ*P(@ޏKOr @ R l(@͏c K@ P PA 0S00S p R ? P@ 0S #  P (pP@ R  R  P@ R #  Pq ,(PJ V*(@PA@ `F0S00S p R # k P@ (pP@ R @ R  R  P # J P& ,( P  (@fWV 1R (0 00V@P P K Kx m m P(W$TQޔF=lpO-4M@ P @ P P'  P  `e_  ] S` pf` ` V Y P RQ*P(@ᯎKOC @ R l(@ណ4 K@ P PA 0S00S p R  P@ 0S #  P (pP@ R  R  P@ R # f Pq ,(PJ V*(@PA@ `F0S00S p R # < P@ (pP@ R @ R  R  P #  P& ,( P  (@7WV 1R (0 00U@P P K KI l |l P(($%""ĎTH-` 0PL@ @P'  0D@ `P! t ` Z `P  tp 0-@ PP  0`      虉5H-` 0P @ @P'  0@ `P! t `  `P  tp 0? PP  0  ܷ ڷ ط ַ 걷 轋4L-MQ @ 0 KO-M@Qp0BYv: @: P+00pPh PsQ':; S 0`Pp@TP0`U:`0`FP@pWP`F0U:@0 S pP:K PB+00pP, P7Q-:; S 0E`P@ RP`0CU:`0E`FP @TP`F0CU: @0 SP K K KO-$MkP@B T*K @0@?  ru +( 0'P P0+R p P@T pQ:{  pAP@TpG Q:Q @ PU @pr5 +( 0P P0+R @ JpPU B@Q: { J@ApPU@D BQ:Q} @ PUuKkT D?  @ @0 @@ @P @` @p @ @ @ @ @ @ @ @ @ @ @ @ @ 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 A1 A2 A3 A  A5 A6 A7 A A: A9 A; A A= A> A @FT*+R  A@P  00FT: f{p@RpA@8  PKࡐ O-MP0@0A pw'P'1pD`*  VS:qTڀ ዎP< Q: P:3V@:QA xP) @Q+ P:AT-:DQ-F  P @  Q P:K@K@K@K00(-*'dh\`O-LM$0 0{P A + G R, 0 G, @G@ J @$@`g@gv !E(p A4  G0 T$ V pA `@ϬTxV pA `@ϬTg00, ( p$0 P P(0 0 0W9,P $& ( $P RE pP 0US b 0"` @$`r5 P p岠 BZ  ` ( $PB, R  BⲠU Z 4(@0 P@X<$0 @K KDO-MkpK@T+DYp P㐛{ GQpY D @Q0T1pf [UP @D N JU  @Sp0H 1S% YU pP\  PHXpP @\  PHX0H 1S4PZ 1U A(paQ# @ QJApZpA(aQ  QJAZ00H 1PZS*T : R C Q3QKKO-(MkKFPTN \:؋원 @ ` p   A@ B  A   f w K@  @ W r ! JP Uq @  ``W v ! JP Uc    @ ఀW@ R "  0 @ 0SH R0`TV @c 0 T+:1   @傐 @T7 Y@D`V  @ ` D @T. V@DⲀY @` D @T& @DⲐY  T* ! JP U `x !a` DV P UKKKKpL-PQ @ s`V  DP @V@p D;Pȍ<O-M{W`0@BT:[+   @`  PR @ @  P BੋP @ Q Q  P  0`V, R:  0`YV0 R :x B 0P`V0 R :k B 0P`YV0 R :^0` SY @B    P @ ᷋PP  E QP0   0`V,0 R :,  0`XV0 R :P 0P`V R: 0P`XV0 R :0` S K K KO-4M܋P@BT*K0 @@H@H  y$ 0$@ `ruث p@(  P  Bཊ$ P  @$ P  0 @SP $P  0pW5Q:1 0  pPQU%P0S0: 0ApQPUP0S0: 0  BPRpQWP0S0:QQ ( $@P0 U$ KkV F?  @ @0 @@ @P @` @p @ @ @ @ @ @ @ @ @ @ @ @ @ 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 A1 A2 A3 A  A5 A6 A7 A A: A9 A; A A= A> A @$ V"* Q a`^ K @p!0$ V:@Qa`^8   0PK똬4O-pS `PZ PGqW `0 @Z PGqWG X 0 YS Aa@  Q- QI Y@ Y$ 0 YHAa Q QIA Y0 Y0G YX* T :  R H Q샐QKKO-,Mːܛ+I PR`P pJW: + !@+  I@   A    i@  P ^ ! H`VtP @ ^ ! H`Vh @$@P ^7 R '  @PZQ U \ R Pj U":7$P$  @U@ PE R PE U:# P@BU4  TPE R R U*!PH$`V P@BU" \PE R U: @ ! PERP$`V K K K KqlO- MpR l #P:D RᇀhRd(@U / ?S`[ A?SQ[1/*VP  0c6 PP% L0    hRdU / ?S`[ A?SQ[1/*V 6  hRdUP  0*6 PP% L0  S  hRdU / ?S `[ A?SQ[1/u*V a ح hRdU PW  05 PP# L0    hRdU / ?S,`[ A?SQ[1/<*ƭ ꡭ hRdU,`P  05 PP0 0O5 `P'   0  hRdU! / ?S`[ A?SQ[1/*V ~ | W hRdUP  0p5 PP% L0    hRdU / ?S`[ A?SQ[1/*V C  hRdUP  075 PP% L0  `  hRdU / ?S`[ A?SQ[1/*V  hRdUP 0 04 PP% L0  '  hRdU / ?S`[ A?SQ[1/I*V Ѭ ꬬ hRdUP P 04 PP% L0    hRdU / ?S`[ A?SQ[1/*V ꘬ s hRdUP p 04 PP5 L0   . d P  0v4 PP' L0     S 0c4 `P' (0+SY` 0    hRdU / ?S`[ A?SQ[1/*4  hRdU`P  0$4 PP 03 `P   0B  hbdV / ?SPU /RV [ @?SP[1/X*K7 S` 03 pPm   0 f | 03 PP_ 0b3 pPU  0 N S 03 pPI Q _ 0  = S 03 pP5 P 00 ) @T [ @?SP[ K1/KOXg B c a < @@Z 5 V 1 @TO * d PG " C #A , hbdV49LNmutsrqqGpyon`n3n]2Y6 ( H 4 @+ tP, L6 `(H s @$ tP% >6 (H e @ tP 06 ( H , X @ tP #6 ( H K @ tP 6 ( H $ > @ tP  6 ( H ( 1 @ tP 5 ( H 0 $ @ tP 5 (H  @ tP0`j 5 `% @ 02 PP 0+S 0b^ 0  5 ` @ 01 PP 0+S $0E^ 0 t  5 ` h@ 01 PP  0+S*^ 0 Y  5 ` @ 01 PP 0+S( ,0 ^ 0 <  f5 ` @@ 01 PP  8p4 0+S] 0   I5 P  01 pPs  0kT 0] 0   f ,5 Py  0f1 pP\  0] 0  Q 5 P^ @ 0K1 `PE 0+S] 0 : 4 PC @ 001 `P/ 0+S] 0 $ 4 P( X@ 01 `P  0+Sg] 0   4 P @ 00 `P  0+S 0J] 0 y  4 P 0@ 00 `P  0+S/] 0 ^  4 P @ 00 `P  0+S] 0 C  m4 P @ 00 `P 0+S\ 0 (  R4 P h@ 00 `P 0+S\ 0  74 P @ 0q0 `P  0+S\ 0  4 Pi 8@ 0V0 `Pv  0+S\ 0 k 4 PN @ 0;0 `P_ 0+S\ 0 T 3 P3 @ 0 0 `PH  0+Sr\ 0 = 3 P p@ 00 `P1  0+S 0U\ 0 $ 3 P @ 0/ `P  0+S:\ 0 i   3 P H@ 0/ `P  0+S\ 0 N  x3 P @ 0/ `P  0+S\ 0 3  ]3 P @ 0/ `P  0+S[ 0   B3 P @ 0|/ `P  0+S[ 0  '3 Pt @ 0a/ `P 0+S[ 0   3 PY P@ 0F/ `P 0+S[ 0  2 P> @ 0+/ `Px 0+S}[ 0 n 2 P# @ 0/ `Pb 0+Sb[ 0 W 2 P  0. pPK 0kT 0E[ 0  t > 2 P  0. pP2  0*[ 0  Y ' 2 P `@ 0. `P  0+S[ 0 >  h2 P ` 0. pP  0T 0Z 0 !  K2 P $` 0. pP [h[[ZSZYYaqaob 0Z 0  ,p$2 Pq t@ 0^. $`P   0Z 0  2 PU @ 0B. `P  0Z 0  1 P: H@ 0'. `P 0+SyZ 0  1 P @ 0 . `P 0+S^Z 0 x 1 P @ 0- `Pl 0+SCZ 0 r a 1 ` @ 0- PPU  0+S(Z 0 W J q  }1  0@- 0p`P<  0- PP6    03 - ]1 h 0@- `P$ , 0`  h- PP    0  81 ` @ 0r- PP 0+SY 0   AP@@Q@V@@R@T@( 1 PZ @ 0G- `P  0Y 0  0 P? @ 0,- `P 0+S~Y 0  0 P$ @ 0- `P $0cY 0  0 ` @ 0, PP 0+SHY 0 w  0 P @ 0, `P _0+S-Y 0  \ u 0 P @ 0, `Pi _0+SY 0  A ^ k0 P @ 0, `PR _0+SX 0  & G P0 P @ 0, `P; _0+SX 0  0 50 P @ 0o, `P$ _0+SX 0   0 Pg @ 0T, `P  0+SX 0    U@\@Q@X@@Y@[@\@]@Y@@S@ / P6 @ 0#, `P " _0+SuX 0   / P @ 0, `P ; _0+SZX 0   / P @ 0+ `P T _0+S?X 0  n  / P @ 0+ `P m _0+S$X 0  S  }/ P @ 0+ `P _0+S X 0  8 y b/ P 4@ 0+ `Pn _0+SW 0   c G/ P @ 0+ `PW _0+SW 0   L ,/ Py d@ 0f+ `P@ _0+SW 0  5 / P^ @ 0K+ `P) _0+SW 0   . PC @ 00+ `P 0+SW 0    P@T@S@S@Q@]@T@X@D@D@,a . P @ 0* `P $ _0+SOW 0  ~  . P d@ 0* `P = _0+S4W 0  c  . P @ 0* `P V _0+SW 0  H  r. P @ 0* `P o _0+SV 0  -  W. P ,@ 0* `P _0+SV 0   } <. P @ 0v* `Pq _0+SV 0  f !. Pn \@ 0[* `PZ _0+SV 0  O . PS @ 0@* `PC _0+SV 0  8 - P8 @ 0%* `P- _0+SwV 0  " - ` $@ 0 * PP 0+S\V 0    4 - P @ 0) `P ( ,0@V 0  o  P \ 8`02* $@,pP 0   0#* @P 0   0* @P   0 * @P   0) @P 4p  \ 0) @P  , 0) @P   0) @P (   0) @P  KO ꗡ tP}|됡 tPlv|뉡 tPTo|Aa tP8g|z tP `|s tPY|`k tPQ|d tPJ|] tPC|y T u (P 5q A|`K Kl WG dh pC }d ? N@^ 9 Z 5 `U 0 Q , M ( I $ E + 6A B M= Y_ c8 o z4  0 ,  (  $ g_    ( 3 ? J V a m x _  ݠ ٠ ՠ Ѡ ͠  ɠ '^ 4Ġ ? K V b꼠 mݠ y긠 ٠ 괠 ՠ 갠 Ѡ n^Π ꩠ ʠ Ƞ ꣠ Ġ ꟠  !ꛠ ,꼠 8ꗠ C긠 Oꓠ Z ^ eꎠ pꯠ |ꊠ ꫠ ꆠ ꧠ ꂠ ꣠ ~ ꟠ z ꛠ v ꗠ r 'ꓠ 3n >ꏠ Jj Uꋠ af lꇠ xb ~] ] ~ Y z U v Q r M n I $j 04]D :e F@ Qa ]< h] t8 Y 4 U 0 Q , \L ' H # D  @ > < *: 58 @6 L4 W\1 a/ lX\\[v[%[Z"ZYY9YXXJXWWcWFI[ ެH##HGG\GptphpXpLp@p0p$ppO- M@j+ ` $P 0' pP J@ެZެ X@ݬ X@ݬ @X@<ݬܬ\@pܬ ܬR@۬@۬ 0+SS 0  6+ ` P 0p' pP 0+SS 0  + `h P 0U' pP L _0+SS 0  + `M lP 0:' pP c _0+SS 0  * `2 P 0' pP| z _0+SqS 0 q * ` $P 0' pPe  0+S US 0 Y * ` P 0& pPM _0+S:S 0 i B * ` P 0& pP6  0+SS 0 N + x* `ſ XP 0& pP  _0+SS 0 3  ]* `ᪿ P 0& pP  0+SR 0   B* `᏿ P 0|& pP 0+SR 0  " @_@Nڬ٬Y@ [@٬ Z@ج A@Yج @V@׬ @@׬ ^@.׬֬d֬լ* `P P 0=& pP  0+SR 0  ) `5 P 0"& pP I _0+StR 0  ) ` `P 0& pP ` _0+SYR 0 ~ ) ` P 0% pPr w _0+S>R 0 m h ) ` P 0% pP\ _0+S#R 0 R Q |) `ɾ tP 0% pPE _0+SR 0 7 : a) `ᮾ P 0% pP. _0+SQ 0  # F) `ᓾ ,P 0% pP _0+SQ 0    +) `x P 0e% pP  0+SQ 0  ) `] P 0J% pP 0+SQ 0  ( `B XP 0/% pP 0+SQ 0  ( `' P 0% pP 0+SfQ 0   @\@+լ E@Ԭ U@`Ԭ \@ԬӬ5ӬҬZ@iҬҬD@Ѭ9ѬЬ( ` |P 0$ pP ' _0+S.Q 0 ] } ( `Խ P 0$ pPq > _0+SQ 0 B f l( `ṽ 4P 0$ pPZ U _0+SP 0 ' O Q( `ួ P 0$ pPC 0+SP 0 8 6( `ჽ P 0p$ pP,  0+SP 0 ! ( `h `P 0U$ pP  0+SP 0   ( `M P 0:$ pP _0+SP 0  ' `2 (P 0$ pP  0+SqP 0  ' ` P 0$ pP _0+SVP 0  ' ` P 0# pP  0+S;P 0 j  ' ` XP 0# pP  0+S P 0 O  y' `Ƽ P 0# pP 0+SP 0 4  V@Ϭ R@Ϭ B@<Ϭ Y@ά Y@wά @Y@άͬ@Z@N@A' `Ꮌ P 0{# pPX ( _0+SO 0 M &' `s P 0`# pPA ? _0+SO 0 6  ' `X 8P 0E# pP* V _0+SO 0  & `= P 0*# pP m _0+S|O 0   & `" P 0# pP _0+SaO 0  & ` LP 0" pP  0+SFO 0 u  & ` P 0" pP _0+S+O 0 Z  & `ѻ P 0" pP _0+SO 0 ?  i& `ᶻ P 0" pP  0+SN 0 $  N& `᛻ P 0" pP 0+SN 0  3& `ျ P 0m" pPt 0+SN 0 i & `e P 0R" pP] 0+SN 0 R  B@P@E@W@O@N@C@Z@% `8 P 0%" pP4  _0+SwN 0 ) % ` P 0 " pP  0+S\N 0  % ` P 0! pP R _0+SAN 0 p  % ` P 0! pP k _0+S&N 0 U  % `̺ P 0! pP 0+S N 0 :  d% `ᱺ P 0! pP _0+SM 0   I% `ᖺ P 0! pP _0+SM 0   .% `{ P 0h! pP _0+SM 0  % `` P 0M! pP} _0+SM 0 r $ `E 8P 02! pPf  0+SM 0 [ $ `* P 0! pPO 0+SiM 0 D C@V@W@R@@@Q@$ ` 4P 0 pP,  _0+SAM 0 p ! $ p ` 0 P 3 _0Z 0$M 0 S  }$ pʹ \` 0 PP 0+S M 0 8  b$ p᯹ ` 0 PP  0+SL 0   G$ pᔹ ` 0 PP  0L 0   ,$ `y $P 0f pP _0+SL 0  $ `^ P 0K pP 0+SL 0  # `C TP 00 pP _0+SL 0  # `( P 0 pPs _0+SgL 0 h # ` P 0 pP\ 0+SLL 0 { Q @W@V@A@]@O@[@# ` P 0 pP6  _0+S"L 0 Q + {# `ȸ xP 0 pP 4 _0+SL 0 6  `# `᭸ P 0 pP  0+SK 0   E# `ᒸ P 0 pP 0+SK 0  *# `w @P 0d pP  0+SK 0  # `\ P 0I pP _0+SK 0  " `A pP 0. pP _0+SK 0  " `& P 0 pP _0+SeK 0  " ` P 0 pP 0+SJK 0 y t " ` 8P 0 pPh 0K 0 _ _ " `ַ P 0 pPS  0+SK 0 D KO  % 0 <̬ޖ F Rږ ] i֖ t Җ Ζ ʖ Ɩ }̬ 꽖 ޖ 깖 9ږ E굖 P֖ \걖 gҖ sꭖ ~Ζ ̬ ɖ ꤖ Ŗ ꠖ ꜖ 꽖 ꘖ 깖 ꔖ 굖 ꐖ ˬ )ꋖ 4ꬖ @ꇖ hꨖ tꃖ ꤖ  ꠖ { ꜖ w ꘖ s ꔖ o ꐖ k ꌖ g ꈖ ,c 7ˬ B^ M YZ d{ pV w R s N o J k >E f A b = !^ -9 8Z D5 OV [1 fR r- }7ʬM ( I $ E A  =  9  5 $ɬ .0 : E, Q \( h s$   rɬ    " . 9 Eޕ P \ ɬٕ f rՕ } ѕ ͕ ɕ ŕ Ȭ 꼕 ݕ !긕 ,ٕ 8괕 CՕ O강 Zѕ fꬕ q͕ }ꨕ ɕ BȬ ĕ ǬzǬǬƬƬŬLŬ#zĬĬìLì¬O¬#X+?_O-LM@ ! `W $P 0D pP< hm B-kO 0+Z 0I 0    `+ P 0 pP 0X 0hI 0   ` P 0 pP 0+SMI 0 |   ` `P 0 pP  02I 0 a   `ص P 0 pP  0I 0 F  p `ή 0P 0 pP 0+SH 0 +  U `ᢵ P 0 pP  0H 0   : `ᇵ P 0t pP  0H 0 ~  `l hP 0Y pPr  0+SH 0 g  `Q P 0> pP[ 0+S( $0 H 0 N  `4 @P 0! pPB  0+SsH 0 7  ` P 0 pP,  0+SXH 0 !  ` P 0 pP 0+S, 00;H 0 j   ` P 0 pP 0+S H 0 O   @j @ @ @2 @ @@@P@`@Y `ᦴ P 0 pP * _0+S 0G 0   < `ቴ P 0v pP C _0+S G 0    `m LP 0Z pP [ _0+SG 0   `R P 0? pP} r _0+SG 0 r  `7 P 0$ pPf _0+S 0tG 0 Z  ` P 0 pPN _0+SYG 0 C  ` P 0 pP7 _0+S>G 0 m ,  ` P 0 pP  _40+S$ (0 G 0 O   x pų ` 0 PP _0+S0 ,0 G 0 0  Z `᧳  0 PP  0+S 0F 0   p@@@A0A@/ p| ` 0i PP   _0+SF 0    p_ ` 0L 4PP 6 _0+SF 0   pC ` 00 PP F 0   p) ` 0 PP~ 0 ,0hF 0 s  p ` 0 PPg _0+SMF 0 | \  p ` 0 PPP   02F 0 a E  pز ` 0 PP9 _0+SF 0 F . p pὲ P` 0 PP"  0E 0 +  U pᢲ ` 0 PP  _0+SE 0   : pᇲ ` 0t PP 0+SE 0  @|@L@@@b pa ` 0N PP  _0+SE 0   pF ` 03 PP 0E 0   p+ ` 0 PP 0 ,0jE 0   ` P 0 pP $ (0OE 0 ~   ` LP 0 pPw _0+S4E 0 c l  `ڱ P 0 pP` _0+SE 0 H U r `῱ |P 0 pPI 0+SD 0 - > W `ᤱ P 0 pP2 0+SD 0  ' < `ቱ P 0v pP , 00D 0  ! `n DP 0[ pP ( $0D 0   `S P 0@ pP  0D 0   `8 tP 0% pP  0wD 0   ` P 0  pP 0+S\D 0   ` P 0 pP ( $0AD 0 p   ` <P 0 pP  0&D 0 U   `̰ P 0 pP{  0 D 0 : p d `ᱰ lP 0 pPe  0C 0  Z I `ᖰ P 0 pPN  0C 0  C . `{ P 0h pP7  0C 0 ,  `` 4P 0M pP   0C 0   `E P 02 pP  ( $0C 0   `* dP 0 pP ( $0iC 0 KO: \ 7 X 3 T / P + #L /& 9G E" PC \ g? s ~;  7  3  . *  &  +" 7 D P \ h s   '   ܎  ؎ , 9Ԏ E R ώ \ hˎ r ~ǎ Î 꿎 껎 ܎ 귎 ؎ 곎 Ԏ ꯎ Ў *꫎ 5̎ A꧎ L ǎ Wꢎ bÎ nꞎ y꿎 Ꚏ 껎 ꖎ 귎 ꒎ 곎 ꎎ ꯎ ꊎ ꅎ ꦎ ꁎ ꢎ %} 0ꞎ  `ዮ P 0x pP o _0+SA 0   # `p P 0] pP{ _0+SA 0  p  `U TP 0B pPd _0+SA 0  Y  `: P 0' pPM _0+SyA 0  C  ` P 0  pP7 _0+S 0\A 0  *  ` pP 0 pP 0+SAA 0  p   ` P 0 pP 0+Z 0$A 0  S  } `ʭ HP 0 pP 0+S A 0  8  b `ᯭ P 0 pP 0+S@ 0    G `ᔭ P 0 pP 0+S@ 0    , `y P 0f pP 0+S@ 0    `^ P 0K pP 0+S@ 0    `C PP 00 pP| 0+S@ 0  q  `( P 0 pPe 0+Sg@ 0  Z  ` P 0 pPN 0+SL@ 0  { C  A @_ @!Ai @ A AX A  `Ҭ P 0 pP * _0+S@ 0  @   j `ᷬ P 0 pP A _0+S? 0  %  O `ᜬ @P 0 pP 0+S? 0   4 `ၬ P 0n pP s _0+S? 0    `f P 0S pP _0+S? 0    `K dP 08 pP _0+S? 0    `0 P 0 pP _0+So? 0    ` P 0 pPw _0+ST? 0  l  ` P 0 pPa 0+S9? 0  h V  `߫ P 0 pPJ 0+S? 0  M ? w `ī P 0 pP3 0+S? 0  2 ( \ `ᩫ P 0 pP 0+S> 0    A `Ꭻ P 0{ pP 0+S> 0   & `s P 0` pP 0+S> 0    `X P 0E pP 0+S> 0    `= P 0* pP 0+S|> 0    `" P 0 pP 0+Sa> 0   `AP@`@@@  ` P 0 pP 0KX 09> 0  h {  `ߪ P 0 pPo 0+S 0> 0  K b u `ª (P 0 pPV  0> 0  / J Y pᦪ P 0 P> 0+S = 0   2 = pኪ PP 0w `P& 0= 0   ! pn P 0[ `P _0+S= 0    pS |P 0@ `P _0+S= 0    p8 P 0% `P _0+Sw= 0    p P 0  `P _0+S\= 0    p DP 0 `P 0+SA= 0  p  @  p P 0 `P 0+S#= 0  R  | pɩ hP 0 `P  0= 0  7 x a pᮩ P 0 `Pl  0< 0   a F pᓩ P 0 `PU  0< 0   J + px 0P 0e `P> < 0  4  `^ P 0K pP(  0< 0    `C dP 00 pP  0< 0    `( P 0 pP  0g< 0    ` P 0 pP  0+SL< 0  {   ` ,P 0 pP  01< 0  `   `ר P 0 pP  0+S< 0  E  o `Ἠ \P 0 pP  0+S 0; 0  (  R `៨ P 0 pP 0+S; 0  { 7 pᄨ  0q Po 0kU 0; 0  b  pg  0T @PV  0; 0  K  `L P 09 p@P>  0; 0  3  `0 @P 0 @P' 0o; 0    ` P 0 @P 0T; 0  KO% F %! 0B < G> S ^: j u6  2 .  )  % !    % 0 < GP R ] i t  ߆ ۆ ׆ ҆  Ά  )ʆ 4 @Ɔ K W† b n꾆 y߆ 꺆 چ 굆 ֆ 걆 ҆ ꭆ Ά ꩆ ʆ ꥆ Ɔ ꡆ † %X /꽆 ;ꘆ F깆 Rꔆ h굆 tꐆ 걆 ꌆ ꭆ ꈆ ꩆ ꄆ   ꠆ { ꜆ w ꘆ s &ꔆ 2o =ꐆ Ik Wꌆ cf mꇆ yb ꃆ ^  Z { V w R s N fn I j E #f /A :b F= Q^ ]9 jZ v5 V 1 R - N ) J $ E "f[TRVF81H-p`@P(`P pU ᙅ P  0 Ѕ pO-MM@(0K0`ῆ (pp 0A P`& ᦎ  (`D⨆  P0 P  P DPᯆ ᄟ PLLH%D5 @U 0P @KPTP Lp H D D4p (|  P0 P  P pDP჆ pX $4T 0t PxP p dKl TKh l xKf ({P5 x # p! > ,S ` 0 A P(D oq  "% L  ^p*p P*W`!$(D⚅ (P h0@M `P C H D PH*` p  ],(0   840=9 "Pu* U*((`U  p*`0(,T  ] 84=9)*(  RM P( `]p4 4A W% G BR_:<PPjzW1 P "# ݯ* `z] Z *P8t4ϬK-(M`⌹ P Z Pw P P@,  P u P*P @PA R @ RQ*PP A @ @   0S   R : A 0S Q   B 0S  @ 0S00S   R ZQ   B 0S  RQ AP@ PxmZ  @ 0S P @ P P P A ^@׸ P[@ ϸ PT P@@$ (ʥ *0@  `@]p(PP ) @W ~ P (!0  S P w KP Q(  P PC, 0 ᤥ KAz PY@Ps~ u P :DY<Y YYY( @0H-@Z P. ( PPE P P  @: PlY@,  @P u Q 0 0~ Y@O-tMP P  C(`P RQ*PPi@  0S f@ R L _Y@  0SS  RO*Q pAP @۶ P @pP@ж P 0@P P@A3@¶ P0@@Ặ P)  `P8p4P A"@  0S00S p RP#@≷ P$d@  0S Q @⠵ PV@♵ PP P7pAP@d P@ P@@ PA R  R 0@ Q=@ R P @; P @pP@. P  P@@,  P @% P  P @T Q(V~ @PA R  R (  QP A R  R ,  QW`$@ # <K! <@啨*`v$ @$ 0$@g 8 8 4< 4<4 0 , ( $ P ` ~ V``(`V  0P,8 p84 P. @᜵ Ph 8 P*@8)4 P@EP[* JA!.rPP PO* =*E`AU  VY @, 8 I*4(`0p W:N@ RY P@E P5@> P/ PA(PO@(PH@ RG P @! P@ P P @@,W`$@9L08,Y`@O c P`@I p@`  PV P QP* T*'@DDP*J(`A!.rPP P* ᛧ*D PT(`  ^U@ V ᩧ* `0, p W:8<K4P0@@! D$@@!' P5 p(``P W  P< ,@,ThPb $0 @ -@: H 0S V A␴ PV A 0S <@$@I V'($@4PU&'$@4PV,` Xl 00G pXoB  .*T$@ 4P(`V "*U *s} <` P ڑ *K{ VTVxVLVLVLV<V8V4V,V408TL`d0H-, 3 h @P P P  @0pL-@PR `v} #P:, RP pL\t[Z8K-@`c Pγ PI XPD 0X, `,  P1 pQ,V* P&Q"P( x0L P  a  ] , (,0$ L0K /{ O-M(@m{ ( d0P! P (0#<P(0\ p 㩐   (́ 0#(PPPI P( 0 `Pd ~  0<~ ᡃ (ᬁ 0#(|) P(` 0 `PF ~  0~ ႃ (ፁ 0#( P( 0` `P) ~  0} c x PP    L(PP dz LW z LC Kz tz z z z P ͼ ^tﻬO-MM`ӳ Pv  (PQQ Po Pc RRQN* @4 RLQH*PPPJ⤲ PO PPpA@◲ P<I. DE. @8@pႲ P PP A@ @ @ @  0S00S 0 RP<0@M P P@@ 8PA@Dp R  R Q2 P @) P P @ @ PT@,  x P p P  P X Q(Hz 㶤*P d  2/HPPQ t wvpW d | 2/plp5 4@@TL|$ 0 %K\@X@dX 0K%K P6(  ,$K0P  b @@@ $@5/\\@P 1/XX@P 1/T4@t| PP R<pLPT < t Pt@D*p % @ 7 0@ HPDx@t|@X℀刀匀pr TLMz W t 01 P P@ P x x W Q  T0,P p0  X@ e@ C@T d  2/@@P`% P,P 0P d0 K p3(  0,e` PPPPP P$PP7/,,P P 1/00P P 1/0z 8PW 8 @PD T}p,WhP   p 6 A PjUS A 0Sv Q @ P P0AP<0s@ PrX7S@߯ P0.S@0P<0[T, TH 0l0 - LA@T c  2/@|@TP% `,` 0` uc0 K pD1(  0,e ````` `$``7/,,` P 1/00` P 1/y @X℞ P 9*K x oRRRlRhRhR`R@R,ӷͷktHߴ Ȣ@t,pL-@+ PG  `Px PAAAQ" 0 @ P P Q( Ix = P `ტ@P Ꮝ pL?$S Pp@P pw w  pLRIRȠO-LMPҰ P*  @ P$AAQ 0 @ Y  P媯 P P  Y@,  P @ᛰ P j P P Q( w P C@T ab  2/@@% `,` 0` Qb0 K px3(  0,b ````` `$``7/,,` P 1/00` P 1/P@J P@C P P@@#0K4\ 0[P ($`P@ P@ P P@@⼭ P @ Pw@ Pq P @@⢭ p@W P(1w pw 00`A@T a L 2/@<@4`% P,P 0P a0 K 1(  0,e` PPPPP P$PP`/@/0H-P@P*  B00H-P@F* B0L-@LH 80P8, KSF\H- M 0`@`p((@k (l P0P' ,q08( `apV40d!(tqp0 2/0?P 1/l  KFXH- M 0`@`p((@k (pl P0P+ ,q(,(A 0$ `apV40d!(tqp0 2/0P 1/l Ḅ KEDH- M 0P@Pp((@>k (+l `0P8 ,qh*(0, Q   R(vk $ `QpU40d!(tqp0a 2/0⨽P 1/=l f K{EH-(M0P@Pp((@j ($k `0P50 0,q ( 04,!(* P $ P`q4Wd!(t100   2/0YP 1/$k  K,EH-(M0P@Pp((@j ($k `0P50 0,q ( 00,!( P $ P`q4Wd!(t100   2/0 P 1/$k ȃ KD넖O-\M0 0P@4P `((4KpNj ( ;k 4@0Pt0,q)@8@  p(/ P pD @ @{P%80K\!(z P2 @T:0  @P4`aPV40tad!(`H0] 2/$OY`T  0 P# $ 8 4p4A  0p/0 2/ p40~4P 1/ k < Ki ODLO-M-MD 0P@HP `((HKpi (4 j H@0PD,qDpp(@Lp  PD@͊ϊ ͊ϊP9L0K\! P\ @ Y :@ 0 y P] K pW: 0 g pPJ`aPV40tad!(`H0 2/:OX'Y @ 0 D P) W 0 9 P 2  @ü 㿼 $ L 4p4AC  0pn0 2/pH0⽻HP 1/4Rj { 0KЍCHK-MP PQ  (@`4Kh pWI@ PG P@@6 P @ V{g`P0 P@@۠ P PN v㏓* @C@@Ƞ P $ PAAQ0 0 @+ @T. 40(`!Q\1d0@0`,D3(00 0@p , 2/d\n @TWlS t 2/P5 \C@T _S H 2/@8@$ p4p0pOS 03(B0,pp ppppp p$ppP <W@p㦐 X  P `>HP <Wp㦐Y,p 1x(p0p* X*$@X(  `}*@0(, >p(`,@ P$T0 Y; $` 0S P/Y-  >P( ($P* @ (@p <(xO-M`R e #P:  R` +; (0)n*: 0"n*: 0n*: 0n*: 0 n*: 0n*: 0m|*x: 0mh*d: 0mT*P: 0m@*<: 0m,*(: 0m*: 0m*: 0m)9 0m)9 0m)9 0m)9 0m)9 0m)9 0mx)t9 0md)`9 0mP)L9 0m<)89 0m()$9 0m)9 0zm)8 0sm(8 0lm(8 0em(8 0^m(8 0Wm(8 0Pm(8 0Imt(p8 0Bm` 0 @P $ 0  G   0@ pP 8P (c @  0/   0@ pPz PP @|c @  0 q (0#pD00h @j ax Yg  0 pPT kk  PPM   0 H   0g pj 6x [Ywg d 0 PP/ @k j @(PP Hb T a   0g @0YLg  0h PP k _j @w (PP b T a (#040g @Yg (h 0#(zg p( 0 PP e  0ne j (h 0#(|[g p(` 0 PP e  0Oe j i w  0 pP j 7 @P  0  (@P a Z  Ta   0g H@ 0 PPq pj zXf i @Kw (PpP pa T &a  0 @PO  @(PP Va T  a T 0 PP7  0ḳ KORa ta aOa ipa 8PruHa zia PPAa ba `a ;a \a Za Xa 0Va MTa bRa l-a (@PrtJa Ha Fa T$ gXug ^gQg:g!(g4'|,fd2f@8f=fDDfNfRf PF PO v* p9@p+ P  PAAAQ1 0 @, pW/ 0(!Q\1d0p&0`,D4(0<  0p , 2/d\S pWTI  2/P4 D@pWI  2/p$ @D@@@I `@3(B0,@@ @@@@@ @$@@6/DD@P 1/@@@P 1/P`@@`A.,< 0DP  ᧭p"(@,c p K 0 4@<`l  , 0r ' Px 4 < 0Z s TI H 2/P4 0B@pWFI  2/p$ `D`@`8I @@1(E0,`` ````` `$``4/DD`P 1/@@`P 1/Z8@^ h* 0p@P _Q ( _^ P⦰__P @ew P⛰ PPKm6K] {] ] j8g8xd8pa8h^8d[8TX8PU8RNQ .QV5PfO8,.OT\9eeee9oeO-cM@̖ P  PUҖ P P@ P@┆P@⍆P 4PP`@@`ᗆP᷆`P@⡖ P@⚖ P P@ V@ VpP @ₖ P@{ P P @@ V!F P!*P7P@Q Pi@J Pc <P@@i 8@K ތPP@@P ` P | PFAAQ 0 @ PU9 P4 v* P7e PU' \0P( dR0p,|$D t4( 8 0 < 0@0K<p, 2/K4PG  2/P4 sp PUG  2/P $ pDp@pG @3(B0,pp ppppp p$ppG 0 2/P? rp$PU0G  2/P$/ p8 , $p 4 -K(p G8K-`K (K1(,K 0 ,pp pppB@E p PN v* p4@p# P  PAAQ0 0 @+ pW. \0p(dQ0P ,D3(0up , KK/d\KKL pWVD $ 2/P4 c`0pWD  2/p0$ `4`0`D 02(B0,`` ````` `$``2=<!Hd<r;D:;aF &SS%h\SO-_MM` PN  PUK(@K 4NpW,PC P @@ V pW`P6 P@@А Pة PS v㄃* @3@@ὐ P  PAAQ5 0 @0 @T3 `qX1,< n70@(P0P0,D$( p , 2/d\^ @TU\C x 2/P4 `SP8@TNC H 2/@8$ P4P0P@C 03(B0,PP PPPPP P$PP  2/P4 C@PpW> x 2/pP$ @4@0@> 083(B0,@@ @@@@@ @$@@  2/P4 QPT@TM>  2/@T$ P$P (P ?> p(KH1(E0,PP PPPPP P$PP7/$$P P 1/((P P 1/0ȥd PPK+KR R ----x-t-d-`-2',l%`V%52n$$#TJ#)0p<t<x<|< HDh<O-uMMP Pi  `Vf(q sQP_ P@@  :HP@@t <P @@Ị Pã Pb vo}* pt-@@ᨊ P  P-AAQD 0 @? pWB 0@H0!(\1d<0pQ P`,\DT8(000"pd`\P`, D8(000 pF, 2/ pWV8=  2/P4 |g`X@T*= d 2/@X$ ```= p$7(B0,`` ````` `$``7/`P 1/`P 1/8Pp@@p8`A, 0D⤡pD#8(@,`D 0 4p@֣ Z , 0r `PQ 4 @0ģ qK <  2/8P4 e`\@T<  2/@\$ `|`x`< xH5(E0,`` ````` `$``@P`p@᳌PpPH L0L PD Y :@ 04 DG P T  XpW:@00 XD4 pP>pP@L`@}P"PH 0L zP Y:@ 04 D PP@d`\~OQFp04`Y@8L0,  d\OQ.4`Y @ 0D PR o<! @00 XD PB <P:   @R 0 N TH .8pP@@@@,S`  0 ᢢ , , S0b 8\ pP"  0Ꮲ +P V  q, PPK(KP 8P P P 2P **x*t*d*`*X*-h,* *H0242H9 2$2O-YMMPW P % (,DP,  RQ *P  @ R *@ Y MlA{(dP,p8` 0)@ᦢTPz*$P @p(@@ $ I) x'*$ A Q%*r$ A qR R8 $z*pc( jX `  4($Z$ z* L( W~4000,( @ P`I@PV V p$ PYZ89T:x  !(P P@TY% T#:D`K+8H 0 W \X)T  0 P"  Z Dz*[@/RP[@1/{x*lA TTK'KN  Z')0L"p"01pL-NMM@; PH  `P  RQ *(P  @ R )@ K_L, 4!0D4P`0Pg ᓡ@P 4PPKp_'Kp P[) -O-aMMP P+  pW( [( aMtP" P@@o `P@@ #P! @@(0t!Q\1d0@0`,D4(0ɟpP, 2/Wt9  2/P4 sp`@Tf9  2/@`$ p$p (p X9 (KH3(B0,pp ppppp p$pp P% P@\ pP@@⾂ P@@  I!P" `$( \!Qd0`0P ,D3(05pP, KO/U6  2/P4 SPp`V6 h 2/`p$ P$P (P 6 (K(3(B0,PP PPPPP P$PPr*  @C"@@w P  P3AAQ- 0 @( @T+ (t!Q\d0@0`,|Dt4(0=p , 2/d\ @TW2  2/P4 sp @T2  2/@ $ pDp@p2 @3(B0,pp ppppp p$pp [ , 0b @PR   0, M &0  2/P4 A@PU0 h 2/P$ @$@ (@ 0 p(K(1(E0,@@ @@@@@ @$@@7/$$@ P 1/((@ P 1/0ⓗd PPKeK~D D zD pbh_`\\YLVHSTfv>v< O-cM@} P  X} P P@ P@mP@mP P`@@`mPm`P@} P@} P P@⼾ V*@⵾ V:pP @} P@|} P  4P0 @PF U*@PF Uy:Pyz*P@@E| P P@@c 8@K<  sPP@@P `4| P t PNAAQ 0 @ PU: P5 vn* P] PU( \0P( dR!0p,$D 4( 0<  8 0@0K   p, 2/K0P.  2/P4 tpPU.  2/P$ pDp@p. @3(B0,pp ppppp p$pp|;l8h5 aL4 ` O-gMM{ P s PU@{ P P@ɼ `P@ny P@gy P 0PPPA@@ Amz pP P@@⋼ p 4@@  Xtx] D|<`8pX*QUs Pj Pm txQ| !DtXt HpP _ @kPf k`7k qtP]|PHL p tU:P P@@P@py P Y PVAAQ 0 @ `V: P5 vl* `B `V(  t|1\!0`( dR$0P,$ Dt( 8 p 4 < pp , 2/0P , < 2/P4 $D@$PU,  2/P$$ @L@H@w, `H3(B0,@@ @@@@@ @$@@6/LL@P 1/HH@P 1/P@@tQ|A,8 0D 4 < HP坓Pp(`,ࣗ@ 0  0  , 0r @Py   0 t , d 2/P@ LB@(`V , 4 2/`(0 @8P , $@ 4 -K(@ + 8K-K p(K1(,K0 E ,@@ @@@ $@7/$$@ P 1/((@ P 1/@P Hsd\=|DPPK?K@@P= PI@ zj@ E@ -*'$|!t`\`Xԃbܫ*ܫp9vګķ>ګW\P$O-yM@y Po S `Vl(Py Pi P@⨺ P@@dx pP P@@₺ p<P4` @@ HP`PPAPA@ P@P'x PD8@p ် P&AAQ 0 @ Z* P$ vj*8 g Z H 0P ` 0 PP)0@)PQPPc b P_ ᰹  1/P 1/ 4Ph 4Pd 4@0 H 0 `W@WSQ: Qo0(P0P0,D&( @< D ґp , 2/Kd\KX P  1/P 1/ 4P 4PT UXT\`OH(K 0Z([P+ p\ZP $ ZXP@P*`Z `4 P! ZXP\T R 4 TPP @0 TPP0@ H\p 0XW@ WSQ:T \PLn) 0 2/P4 d`,PU)  2/P,$ `$` (` ) p(K3(B0,`` ````` `$``7/$$` P 1/((` P 1/HP@@8pF,@ L0D < D Pp(,`` 0  ა z , 0r> `Pq  0q l k) T 2/HP? 8rp0`V\)  2/`0/ p8P , $p 4 -K(p F)8K-K (K1(,K 0 ,pp pppAE pk*īxëثr׫F««֫dK-^MMPs PK q pWH W(`!9dPB P@s P<@s P6 P@@⳴ P@@gr Po PN ve* @ @@Tr P ᰴ PAAQ0 0 @+ @T. 0(d!Q\1d0@0`,D3(00 0p , 2/d\} @TW$ ` 2/P4 HspD@T$ 0 2/@D$ p4p0p$ 02(B0,pp ppppp p$pp 밗,Q@1(!,/H- U*Hr 0H-JM 0axP ~K0_ K-NM@MP K PH 0,DEx`~`PP (PK [$  0O3/V*Hpv`@|!$    K( #3R#*$0(   [ !0$    0K( #3R*$0(   [ (K8 P U P + }V*$K(K8 P U P + jV*$Q K4$plM-Mp(P+ c] P\ @`P[MPLP x! 0  C P+ @D KLV*`S P(+ 0 (H P0`(0,pDp0(p0qwPl 0 W}1/* ,$~Xt)dhpI-M@`PAAQ, 0 @' P) Ȧ K `0*((\  ,`(80,Kp( P 28h`pL-@`Pb P  P!AAQ 0 @ p p{ Q vMU*V  p NpkpL-@` PU P ` v LU*U PDU*p|O-M(PT* ( 0 `#(0H/ p#(0?/ @#(0|6/ 0#(\-/ - ,` 0 @}- - , 0@u- - ,0`@ m- - , 0d@e- ( 0 0#(. `( 0U pP w-  0, X2 ( c0 0#(@. `($ 06 pP X-  0, 82 ( C0 0#(. `( 0 pP 8-  0, 2 ( $0 0#(T. `(8 0 pP -  0, 1 ( 0 0#(. `( 0װ pP ,  0u, 1 ( / 0#(hb. `(L 0ะ pPu ,  0U, 1 ( / 0#(B. `( 0 pPW ,  06, 1 ( / 0#(|#. `(` 0y pP: ,  0@, {1 ( / 0#(@@@. `( 0Y PP {,  0+ \1 SB K( ( ( /( L( j( ( ( ( ++t,- --j./X0(11(23LL-@t^PP .XXP 1/PQ $  $ $L1 ԙD(L-@t^PP XXP 1/TQ $  $ $0L  pX!R/000Hd2|4 0 0p0  0  @/;n/d R/000,dK( l%  @/;h/Mo/L//%/%/-o/,/ @/L R $0 0$0 $x0H-  H- L R $0 0$0 $_0HO r먖L-@ R*,! 0 aa @x:Z/H-`M0`x @P F p(' (P0@  {N "A T R*K8wTL-@  T L vK-M`@o PP0 pKp 0' Y"00$ 0p(pXq\qR  & X\(PP & \X & \K' ꐔL-@0yXP & X\P & \XP & XPQ $  $ $L/ H- H H-MPX@P v' P `Q 0 A!5!qp  2/ 03/\P T' P PP  @ %AK@ 2/ 03/Ke"e!G C,o#G  //H-M0@Q0 PU``PP,qp jV$  0O3/,q0(< 00  1/KH-P@`@FPD* qBA!.rPP7 Pp7*;Q*F!`00qa`PU EA!! B5V0`VpPVp @6P@ 1/UU H ppL-- `P@T   $$ (,,(@D4004<88<D@HLLH A @+ A0 Q* A @ A0 Q* A @ A0 Q* A @ A0 Qۛ*P 9& pp.A@@H-P@`ᵚ* pᰚ*᭚*᪚*᧚*ᤚ*ᡚ*រ*ᛚ*ᘚ* A "@+ !; B  A @+ B  A @+ B  A @ A P % .A@@K-MP@`U pPA K 0o% p  $p 0(X\`dhaxlpto⸁ 側M `P P Q( % , 0`"7w  K$ $ P$ KԌK-MP@` pPA K 0% p  $p 0(X\`dhaxlpto⸁  `P P Q( A% , 0`"v  K$ $ Po$ K贋L-@lQPPP A$ L6P7\0L-@Q4PP*P $ t^PP XXP 1/xQ $  $ $,L PԉTĈ H-MP@P $ P `Q 0 A!5!qp 2/ 03/X!R 0%`KkL-@N*0 0 m) s%F @d+v/pL-8MP@(K$ f5P   R( ^$ , `"b| `P    5K]= Kp# # pL-8MP@(K# 45P   R( ,$ , `"0| `P  ᴿ  5K+= Kpy# T# L-@o z$ L/0H-P@P   R( # , `"{ PP @倿 P 0I# L-@lQPPP " LP댅`L-@Q4PP*P " t^PP XXP 1/xQ $  $ $+L P<PlH-MP@P n# P `Q 0 A!5!qp 2/ 03/X!R 0^KfL-@M*0 0 m) s%F @L&v/pL-8MP@(K"  4P   R( # , `"{ `P  j  4K< Kpe" @" pL-8MP@(K" 3P   R( " , `"z `P  n  y4K; Kp3" " L-@o $ L/0H-P@P   R( " , `"z PP @: P 0" pL-@d PU P ` v M*U PM*pL 꼀H- M0$  0 РcL-@ L*,! 0 at @#/O-M-Mp@Ps PP  @ %P Q AW S08dpW@ TP㡠Z. L*`  ⏊c ` 2/P 1/P  @ %Q  0 3/ pWp p 0B0 b0B0P$B Q:pL*@0KЍHSH-P@* *JUu@UuA@PH0CA* *@QPPp8 'L*  ` 0 `!``W  WPP A A ``` pGPPP   PP   @ t L*UU H pO-M@R\d> `PGtQUG ^Upp@ P*ppUp `P( pUptal!R b`VVl@PpZ@Pp Q:l  tH`K  `P<T(Q NKH${({k,{0{("R0B2/H- 6PNO-M@p`H,DS pS* P@*X  @ XK*   0p 7/p ^K*w؂CP? 0  br  , 0R `P  0Qr  K  KK-\1dtaV& ^@ VPp[@P* pVp#P VpQt R `lQhPdxhL-@PQ ,0( 0,0 ,o(vvL-@TQ ,0( 0,0 ,T(LC fv\v//L-@ J*,! 0 aa @/L R @( 000 $(H- 7uuL-T R @@,0( 0,0 , (L Xu4u/L-@ YJ*,! 0 aa @/0H-@P P2AAQ" 0 @ PU (1/@P 41/P 0' P 0+ 0 PU+ 0>0H-@Pᥙ PAAQ 0 @ P  ӥ P 0㐚 P>0H-@Py P"AAQ 0 @ @P ޓ* 0 P 0c @P 0iH=0H-@PI P"AAQ 0 @ @P ᮓ* 0 P 03 @P 09<H--P@ PAAAQ  0 @ `V `V P (1/P  p P  `NP + > PL;;H--P@Ƙ PAAAQ  0 @ `V㺙 `V P (1/P  p P  `P +  P:4:H--P@s PAAAQ  0 @ `Vg `V P (1/P  p P  `P +  PDA88H--P@ PAAAQ  0 @ `V `V P (1/P  p P  `}P + E Ph77H--P@͗ PAAAQ  0 @ `V `V P (1/P  p P  `P +  P6P6H--P@z PAAAQ  0 @ `Vn `V P (1/P  p P  `P +  PKH45H--P@' PAAAQ  0 @ `V `V P (1/P  p P  `P + L P33H--P@Ԗ PAAAQ  0 @ `Vȗ `V P (1/P  p P  `kP +  P82l2H--P@ၖ PAAAQ  0 @ `Vu `V P (1/P  p P  `P +  PRO0 1L-@Q P   R(  P )@gL-@Q P   R(  P fL-@P 0H-M@,pP! -P (g P P0S P( 0D V4 K0cP [g|W g M-@[ `p H`P  @ZaV  ~R$`,/ dN  H @   @ `0 Qݐ*a 2 .AH-M@Pbp-> O`@q0PK P  0 "RwP4P8  P  0 "RlP 4 8  P  0 "R_P 4 8  P  0 "RRP 4 8   P  0 "REP 4 8  P  0 "R8P 4 8@  P  0 "R+P 4 80PK ;b 5bx /bd )bP #b< b( bWWWWWWWO- M`@ҝ pP PKP 04 (,0PK epI-MP@嫝 `P K 04 (,0Kpt 8eO- MP@`jW傝 pP K 00 P(KL dpL-@0`CPP ~B004 )p(@Pp1 pL-bPp@2/p4/p4/p4/ p4/p4/p4/p  a @// @0H- @P  @ P    R( } P 004 p&PT 0H0\\0H-MP@V"P*1 A-   U(00+S P, Q   R( =  Bq P PO P 0 W1/K0.AO- MS`p :e P  1e P pb @ tPQPP   0* K8 6 4  P0RhO-M`@p Pq P|  q PPw ђ l `P PUu U p P* UFPZ U p  P Y<  R Pp 0PB PA PUD  0B P=Y p`pW*@@@{@ T:K  K  >P4v$s pmY ^THXXO-M `@ `Ў pP PU[ U @ P*@U@P? U  R W' / 0BaX1 0p宐 P*W @PU * pa`PV: Kh KeP4$ W\PFVV L- P0 R0) K--@M`pKPp 0@B\P a` ϊPϊ@ϊ0ϊϊ8  @$p(pptPx͊ @F" 0㏊ A⏊⏊⏊ppp T  ,U(0  P P!x8<4PU!qa p 0` `@ qppp7/PUQ@ Q `@ A*pV "BU A*P@@P*a pFqA* V( G2pGGpA00 V`F U pGP a@V 61/UU iA* (K !UD ?$V4cc* A 00P5OPQ]KLH\ 0 [P YV DCp:H,O-QM@ P pP 00!R !R,K P( dc,PK(pK` \(  P, p P( R $P{ Qz @b8!V4,(( 0p:V*PpP (,`P0p !(`PU4 ``@Hp0P P (Po0   PpB(P_0   p0pP`V0p ` 0$cOP pl$  QP 0PP "|n Ka[ 8 $ K \$P$ 1/0PP b(dpPp\`T]4Z,W$TQFI(FEEE|CJpL-Q @ AP"5%1 UaP:=* A0Pp`p00/H- M0cQ 1  0Q РH/ Z РH/??H- M  0Q Р zZ  Р?K-MQD @P` Q?(] J `P, qP   R(   j P pI P  0pWpWp1p Pe + KpK,~Z Zp==O-MPR" p`pU P pP P@` p V:\ 0ZpP K KW3=AO-M@ P ` ` PPU E Uစ* PpW,pp#Q*pQ ` @0 ~ \* p 0oKQ<*` $0`KX PPP:=* PpWP  QPP pW PU `$ Q$p`@`T 41/WpKP OZ `PUr, 0^ :iC@pL-M@ P`PU 51/V`Kp( 0^ yBP?O- M @p傯`WV Fp VPᨄ*PPP@T KY PPP:Ꮔ*P@TPQPP @T PU 0P g낯 KO-MW pX0EN p`h p@ Q`  A \+: 0 `0BCV$ `0`V0 00S    `) 'KT?=K-@;`P ЈP**Kb AP@EP(*AqA!.rPP Pp*:*`EqU Taq KW p`vU<0H-@ PX  X P: P5H4\p4}0)0000F00X0 Y P4pL-M`@PP P PA QP*QQ X PAQQ P  @ ?$  0O3/Kp37O-MP@((KH 5  @P@,@  Pp 0PW GP W*  0P`V#0pP`@PP P (PH@D$ @ @0 AT Ae @BH `*U PPP:ᶂ* P`V0pP QPP `V0p   0U0*`, } V,0pDJP  JpP `ppW:p00( H$嗁 `P P0pU:P  @Q(  @P,4R 8M < I @(DP, q   R(  0 f P p6E P 040 V @T 41/V39* (K' K, K[W,@ 2pL-M@ P, R   R(   f P, PD P(  0KpLQ A`"5%1 VQ`:8* ApPU KpLKp(` S ~ P, `   R( 2  7f P `D P 0 L 1' KpO-$M@p(`   PP P2w s  o Z 0P, Q   R(   e P PYD P 0  & K V.O-M@P(`f S   pPP5O   U@    7PP' PP, a   R(   e P PD P 0 b & KU -K-MP`(p    7@PN @, aP4   R0( G *Q A@"5%1 T@:7* A0PY ~ , `P e P @C P 0 5 & Kh M-M@p(`    0P PpP6`  H pP0 p 0? `P) `P, a   R(   d P `?C P 0  % KT  *O-DMP@(`(KJ 7  P] / PpD @ @P) PY*P U 0ۓ @P APY:  0 P Y: Y:Pp, AP   R( L  Qd P @B P 0 f" (KK% K @T)H-M @ Q POP K TP p(` S  , P`   R(   c P `oB P 0  $ KY%M- M @P` P P @ K 0 P 0 ^1/ K.ApL-Q @ AP"5%1 UaP:2* ApPp`pL-M@  P ) K P'O- M PaV U! ! @pW 1/ 2/@VUA!R f61/UG2*A!RY  0 T@H @PU E` Up {*0p p PX@T+Z PP P:z*0 PXP QPP X P L0 @TP KO^ KL-M   @@0 "RVr K OKL-M@p, QP K0 OP$ 1/K0H-P0@  @ P    R(  P 0pPT 0H0O-M@ P` pHW(* AR'*pW A`a qPP`J 41*` @W  Y a` =1* Q !   `5| ` !Q *    K SK`O-,M 0 `pV ;`V F VPy*PPP@T}Y PPP:y*P@TPQPP @T `V P D P @pP  7 P Rb xpP !4qR@ R.:B P*p    uR!$q1/ PA:j0* A R"35 p $P *p    J  @ R/Q 0S 0S/ \/L-@ည $Q$(  PLK O- M`P@H pPu K 0aP(  *``p0 Bh BX BH B *B800!  < P l!@`D $00x|P儐嘠ЀԀ @ @ @ @xQ@pMP1 P $`$p @@`p`ڄeF@dPdK 0w(t0 8$7 M-M@P`P U PVPU  PP GP̀ R Qw Q  Qq Q PHp`W -*VP @B P q-*pW PU 51/Wp`-*< !   Q  R4 R  R. RD@D$P U `1/$U PP$``PP K,JPPrzX @EH- BH腮 H- @<H H-xMP`@@*t" 0 pBO  T0  ppp( @ ppp 0 Qw*` 0A* 0 8v  8   Kppp@Kj ( KpppP 2/  0 0KU  L   Kppp KI  ppp [0[@[8 ("$K,* ,*0[ (|,*@[ 8w,* r,*8 @m,*( 0h,* $c,*K,Y`pCpL-P`<`@V   ` ` P    R(  P, pP  PV 1/` 2/p,IV($ @K-M`S@PpT  P    R( T PpB  P.     * 0 `00 0 p0PU W QK<%I8@4=,:7pl xM-M P>p@`W  P    R(  P`+  P0p 0@B @T V K8 pH @  PTpL-M@ P/3(I S6  P , b   R(   X P `7 P  0`  Kp ~H u8M-M P\@p`T  P    R( K P`I  PW  0p: PU/ V bK GpW  P 0Pp PUD0,-(*'T8tM-pC`@PV  P    R( PP0  P (Tp  K@TG(Tp 0` @T U   TXK-M@GpP`W  P    R( ~P`3  P"p0p 0 PU U)* 0pV K0[G vs pC$\(pL-`@PV  P    R( )PP"  0P pXU ?p$G/,xL(H- @H-  R  0QF +H- l R 0lQ @F,O-MP P0`pV  P   R( @P  @ 1/O 2/Ydh PGWP `pG0Vp pA0R3S  @ @ L0 @ R $p`p@  0@@@pV:  0 @ HpW paP Y  RK(FC@H- M @I Р<0 0 000  /H-  lL 0   / $  0 0 /O-$M@p   P0 P`V;PU E U`0q*`` PXZ PPP:q*PXP QPP X `V PPh: QpPl "r  0S&"P1/ PA:'* AU 1/ 2/PPa< PPP/   B (R00C E p`V[ E  PQ  0xMPPPL P4$ 2/P& 0 p KP  P  $' 0'KOKT EH E4,$lXW7ThlT0 0 00080 40     /H- lpL-M@G5 P(  PP@# )J P `(@5 0҃ P Kp KpбM-xM@5 P@ ߂ ` pP2 PK 040(88p`%@P $804 P pT@(@@ *Kvt9 L-@4 P ⎂ 4 a @/  @ pL-M@4 PX l P`u PRAAQ  0 @ PU$ P v PU@#G P  pp L  PKp PP KpH PDKp( IDlPpL-P34 Pa  P@u P[AAQ 0 @ PUpuv PU  P8bp@ $  $  @ $  $  $  $ v @ $  @ $  @ $ p$C: 7pL-M@3 P2 ⍁ P R  R Q$ #Q@ E P `Q%*0 . QKp$BKp U0H-@Pt PFAAQ& 0 @! @T$ P"f3 P$ P$2 $Q&$(  P00HBu @T0@A3 P<@ $Q TiH-MP@zt PVAAQ  0 @ PUKnu PU  P3 P8 р cP@  G P pP @ 3BdpP@C @ tP  dKN6 38|O-MMP@t PAAQ 0 @ PUu PU p(PcP@@ J D P PP A@0 0APA @ P@0 ,K  0 P?0 ,K * pW` P/@P Q( |P : P@P$ PPKKtgAh vJ@P< J@PἬ k2PK-M3ppP/ P`@P Q( P@ Vp` Pp 0 T KK2KA"$M-M@1 Pm y Pcr PgAAQ  0 @ PU P  s PUK@ rF P  P@ P@ D P  `P@@D!P 0\K `P@@/!P -!pV! 0CKL0K-M,1 PU ~ (`Pur PKAAQ- 0 @( P! PpU Q(EP,c|@ 0 I  @WP ? KEs Pd@Wë ᓫ P?<밠pL-M@0 PD ~ Pcr P>AAQ  0 @ PU P  s PUKp@ E P   P>Kp 8 w? 2Kp ,X<O-MM@m0 Pd ;~ P࣐(q P]AAQ 0 @ PU: P pP@ r PU)@pG bB P"  0`  0@P  P PPK{Kʪ P$V?q n\x\M-M@/ PT } Ps(`Bq PMAAQ  0 @ PU+ P0 3r PU@0 " @P  PPPKKd P( _H ܛM-M@/ PT ]} Ps(`p PMAAQ  0 @ PU+ P0 q PU@0  @4P  PPPKK P( G U@$0H-P@p P"AAQ 0 @ P0tq P @P 0ĩ P 0o`L-@Qp P$AAQ 0 @ @T  P La>q @T &>LS?8תL-@ p P#AAQ 0 @ @T 1/ P8L=q @T:ߪO-MM@. P e| P࣐(o PAAQ 0 @ `V_ P PP@ p `VN@PE @ PG   0p P<  0 p QP P-@P Q( tP  P @P& PPKKa=t pF@PH > @P嶨 ebܪܪݪH,H-MP- Pb { @pc4o P[AAQ 0 @ @T@ P P@0p @T.@0 0BPB@P @@> P uP  P PK 4<K ۪lPH-@p- Pg >{ @Pn PaAAQ 0 @ @To @T  P>rpP* `pPY @ < t < p < , < 4 <  < < CP ( ,  A @$V<q n֪x\O- M P`@pP  P    R( #Pp p 0`PP W KO?K41`H-@P`pP  P    R( Pp p 0-PW H @O-+ P  y Pl PAAQ 0 @ PU PP Ptm PUK@P @PFPH0*p` u @PA K  0 P/ 0P"   R( , 0!S00CC 00@0C  P ~ ,@P T/P p0 0S 4SC  "5%a(06 0 K tXpL-` @Q P0 0S 4SC  "5%a00ppL-MP`Q @  @ P @  P    R( vP p PT KpļO-M* P w P@`k PAAQ  0 @ PUKTl PU p@*`p. t Pd @K@ 0 P ,(0@P @Q( @, 0!S 0B  P &00@0B (P p0 0S 4S#E  "5%a(p4 0 K# ,T8pL-` @Q P0 0S 4SD  "5%a0ppH-M`P@ t pP K  0!( P-KH-MP@P 1/ 0+ `V1 *PPp p p @2` pP 2/pP 1/P  @ %Q  0 3/Kͪ\M-M@pW1 *`PP! P P @1p P ` 2/ PP 1/P  @ %Q  0 3/`V1 P*PPp p p @1` p P 2/ pP 1/P  @ %Q  0 3/K&c O-dMpRB #P>: Rᇀ5 PȪȪ4ȪǪǪ=ǪƪrƪƪŪŪRRnĪ(QDWêܩ^ª l K0X4l D@թ,p0 (K( * @, 0Pv `P?# P xCP  0@ 6# ` 0Pv `P.# (P +P  0@ %#  0Pv `P# @P 0P  0@ #  0Pjv `P # P P  0@ # t 0PRv `P" P P  0~@ "  0P:v `P" XP HP  0f@ " , 0P"v `P" pP `P  0N@ " 0P"Bky P @ 0u `P" 0+S 0 &D " Py @ P 0u `P" 0+S, @0ڡ 0 D " 3y @ P 0mu `P" 0+S< 80 彡 0 C " $40P 0,p 0@u P4 x" @ 0`L 0u @Ph" BLh@ (`P C T   0 ` 0hu @P=" ;Z@ (`P T P0P "0` 0:u @P" 0@(0#(PPPmp( 0t @P!  0P`0 pPPPM@ 0t pP!  0A0 PPP.p 0t @P!  0P!0 \PPP@x 0dt pP!  0gr0 PPPp 0Et @P! g 0PGR0 HPPP@d 0%t pPe! G 0(30 PPPp 0t @PH! ( 0P0 4PPP@P 0s pP*!  00 PPPqp 0s @P ! < 0Pc0 $PPPPp@ 0s @P  0PC0   *@ (pP TT \  0s @P \ 0P`P , 0> < 0pP0(#\P(04`hI n(j0#(PPP@( 0=s pP _ 0@K0 ,PPPpH 0s @Pq @ 0P +0 PPP@ 0r pPS   0 0 PPPp4 0r @P6  0P|0 PPPi@ 0r pP  0]0 PPPJp  0r @P  0P=0 |PPP*@ 0r pP  00 PPP p 0ar @P 3@D80+.xl質eಪ`бtA尪\/ӯN#Ǯ=䬪^ԫN 0P.90 PPP@0 0 r pPm . 00 PPPp 0q @PP  0P0 PPPw@ 0q pP2  0k0 tPPPXp 0q @P  0PK0 PPP8p 0q @P  0,0Z @@P ,004  <  4u P | 'u @t ` 0aq pP 0+S쳝 0 ?   0q @P  n= t `L H@ 09q pP , 0ዝ 0 ?   0q @P  F= t `$ @ 0q pP , 0c 0 ?  8 0Wq @P  = t ` x@ 0p pPr < 80; 0 j? g  0/q @P`  < t @ ` 0p pPP  0+S4 80 0 @? C p #0q @P<  < ]t @ ` 0p pP, 0+S$ (0 0 ?   $0p @P  < 3t @ P` 0mp pP  0+S 0彜 0 >   &0p @P  w< t `U @ 0Bp pP  0+S 0咜 0 >  P '0p @P  M< s @+  0p `P 0S40 h 0  >   <0 [p @P  "< s ` 8@ 0o pP 0+S? 0 n>   03p @P  ; s ` @ 0o pPy , @0 0 F> n ( 0 p @Ph  ; cs ` h@ 0o pPX < 80 0 > M  0o @PF  ; ;s ` @ 0uo pP6 4 80Ǜ 0 = + X 0o @P$  ; s `` @ 0Mo pP $ (0埛 0 =    0o @P  Z; r `8 0@ 0%o pP   0w 0 =   0ko @P  1; r ` @ 0n pP  0N 0 ~=   <0 Bo @P  ; r ` d@ 0n pP 40 & 0 U=   0o @P  4 : qr ` @ 0n @pP 0+S  0 )= } d 0n @Pv 4 : Fr ` @ 0n pPf  0+SҚ 0 = [  0n @PT 4  : r `k <@ 0Xn pPD  0+S쪚 0 < :  0n @P3 4  e: q `C @ 00n pP#  0+S삚 0 <   0vn @P x:cd4  0: q ` T@ 0m pP  0+SM 0 |<   0An @P 4  : q ` @ 0m pP 0+S% 0 T<  D 0n @P 4  9 qq ` @ 0m pP 0+S 0 ,<  Vq ` @ 0m pP , 0 0 <  ;q ` T@ 0um pP < 80Ǚ 0 ; x  q `m @ 0Zm pPl 4 80嬙 0 ; a q `R $@ 0?m pPU 0+S쑙 0 ; J p `7 @ 0$m pP> , 0v 0 ; 3 p ` @ 0 m pP' 0+S[ 0 ;  N  P e PƥuǤtp ` x@ 0l pP & _0+S% 0 T;  ~p ` @ 0l pP = _0+S 0 9;  cp ` 0@ 0l pP T _0+S 0 ;  Hp ` @ 0l pP k _0+SԘ 0 ;  -p `z @ 0gl pP , 0Ṙ 0 :  p `_ P@ 0Ll pP < 80垘 0 : x o `D @ 01l pPl 0+S샘 0 : a o `) @ 0l pPU , 0h 0 : J o ` @ 0k pP> $ (0M 0 |: 3 o ` @ 0k pP' , 02 0 a:  o ` X@ 0k pP   0 0 F:  po ` @ 0k pP 0+S 0 +:  C @@W @@x @$ oAˠrAx)垪R ɝs ɜoeUE=홪VMu{@F ԗۗo `] @ 0Jk pP O _0+S윗 0 9  n `B x@ 0/k pP , 0ၗ 0 9 | n `' @ 0k pPp _0+Sf 0 9 e n `  @@ 0j pPY _0Y 0I 0 x9 L n ` @ 0j pP@ _0+S. 0 ]9 5 n ` @ 0j pP)  0 0 B9  ln ` h@ 0j ,p<P _0+S 0 %9  On ` @ 0j pP 0+Sۖ 0 9  4n ` 8@ 0nj pP , @0 0 8  n `f @ 0Sj pP < 80奖 0 8  m `K @ 08j pP 4 80劖 0 8  m `0 p@ 0j pP $ (0o 0 8  m ` @ 0j pP   0T 0 8 | m ` @@ 0i pPp  09 0 h8 f m ` @ 0i pPZ   0 0 M8 O wm ` @ 0i pPC 0+S 0 28 8 \m ` x@ 0i pP, , @0 0 8 ! Am ` @ 0{i pP < 80͕ 0 7   &m `s H@ 0`i pP 4 80岕 0 7   m  0@Hi `P  0?i pP F  07  l  0@)i `P < 0 i pP '  07  l  0@ i `P  0i pP   07  l  0@h `P $ 0h pP   0e7  l x 0@h `P  0h pP   0F7 w pl  0@h `Po  0h pPh   0'7 _ Ql ` 0@h `PV  0h pPO   07 F 2l  0@oh `P=  0fh pP6 m  06 - l H 0@Ph `P$ h 0Gh pP N  06  k  0@1h `P   0(h pP /  06  k 0 0@h `P P 0 h pP   06  k  0@g `P  0g pP   0m6  k  0@g `P 8 0g pP   0N6  xk  0@g `P  0g pP   0/6  Yk  0@g `P  0g pP   06  :k t 0@wg `Pw  0ng pPp u  05 g k  0@Xg `P^  0Og pPW BꡗPX&앪ٕt"ϔƔ|p# ܓ֓B:뒪MDD2ߐ̐xfSF措[ȩ)̍Ǎx. ьΌ7͋pf  05   j D 0@f `P d 0f pP  0o5  j  0@f `P  0f pP  0P5  zj , 0@f `P L 0f pP  015  [j  0@f `P  0f pP  05  a `Pb  05a pP[ < 0/ R d  0@a `PI  0a pPB  0/ 9 d H 0@a `P0 h 0` pP)  0z/   d  0@` `P  0` pP  0[/  d 0 0@` `P P 0` pP  0X pP _0+S쐄 0 &  [ `6@ 0#X pP 0+Su 0 &  0s@i @s@h y@{h y@(h y@g 0y@g @y@Py@`y@py@[ `@ 0W pP , _0+S9 0 h&  [ `@ 0W pP C _0+S 0 M&  w[ `H@ 0W pPz Z _0+S 0 2& o \[ `@ 0W pPc q _0+S 0 & X A[ `@ 0{W pPL _0+S̓ 0 % A &[ `s\@ 0`W pP5 _0+S첃 0 % *  [ `X@ 0EW pP _0+S엃 0 %  Z `=@ 0*W pP _0+S| 0 %  Z `"@@ 0W pP _0+Sa 0 %  Z `@ 0V pP 0+SF 0 u%   y@y@y@y@y@y@y@y@z@z@Z `@ 0V pP " _0+S 0 D%  nZ `@ 0V pP ; _0+S 0 )%  SZ `@ 0V pP~ T _0+S߂ 0 % s 8Z `@ 0rV pPg m _0+SĂ 0 $ \ Z `j@ 0WV pPP _0+S쩂 0 $ E Z `O@ 0X `@ 0xT pP % _0+Sʀ 0 "  #X `p@ 0]T pP > _0+S쯀 0 "  X `U@ 0BT pP W _0+S씀 0 " x W `:@ 0'T pPl p _0+Sy 0 " a W `@ 0 T pPU _0+S^ 0 " J W `@ 0S pP> _0+SC 0 r" 3 W `@ 0S pP' _0+S( 0 W"  W `@ 0S pP _0+S 0 <"  fW `@ 0S pP _0+S 0 !"  KW `@ 0S pP 0+S 0 "  0W `}@ 0jS pP 0+S 0 !  W `b@ 0OS pP 0+S 0 !  /?0@ 0/? 0,00`    0}S @P 40   (KKkPCd(P<]@P5MfUP-NP& GXP@pP#&0P, 36A/M Z+fs'%#e !>\y  9>NeCnqd+6=M@V@@YdhszWd$+<IQals{ dtnh bc,[6|>zNUYv`trOpnIjhmcBca<][6WU*05Q:62b -()4?%KV!bmy  S_%biua $0;GR^iua 5a!*1:CJ~S\cxlu|r`ke_~Yz`wRs qLm"k)F2g;eB@KaT_[M`9cZlXs3|TR-NL'HF! `A?#;,93<5E3LU/^-en)w_&}" u_  $+4=DMV]fov^ $^,5<ENU^gnw5^ysmg]` Z${qyxTusNom]GhfAb`;\Z5VT /E]OM%(.I7G>"GCPAW`=i;py7]40. *($"\ & / 6?HOXm\`gpy\'.[6?FOX_hqx[ z%Q[-@3r_:[6W2S.O*K&G"@CLW?cn;z73/ +'#?KVbmy %1<HSip(KK൤H--MP@<P9 (  TP  "  > @1/  PL  8 2/p 2/P 1/P   R(  r> 1/ 1/P (,0 p0.J `P   $1/  KڜL0H-MR/P@T 0T0H 0@THx 0@T` 0@Tx 0@T 0@TI/0@TK0O-M(P( `#(0p#(0@#(0| 0#(\ v,` 0 @E m, 0@= e,0`@ 5 ], 0d@-( J0#(`( 0I pP ? 0 ( +0#(@`($ 0H pP  0(  0#(`( 0H pP  0|( 0#(Ti`(8 0H pP  0\( 0#(I`( 0H pP  0=( 0#(h*`(L 0H pPu  0( 0#( `( 0`H pPW  0c( n0#(|`(` 0AH pP: c 0@C( N0#(@@@`( 0!H PP C 0$Kige/cLaj_][Yd\eeffpdgp0hpioi'ojnhkHn8lmmlm0H-@PL eG @P: PFAAQ6 0 @1 @T4 pRppp pzpupp P0H0H; @T0೚చd 30H-@9PL G @P: PFAAQ6 0 @1 @T4 pRppp ppp P0H0H@M; @T0UR1(l L-@ )0! 0 artF @H/M-M@8 P`p0p`k 0p` 0p` 0p` Q0 P)`P p p @ p ` 2/ pP 1/P  @ %Q  0 3/`Q1 )PPp p p @U` pP 2/pP 1/P  @ %Q  0 3/K5. .---0,L-@)0 0 s) o.F @P/P 00/H- {//p   Q  R R  R R 9k H- Z0P 00/H- MH%k L-@)4 0 Oa@@T/H-M@L P`p0p`$ 0p`6K6++L-@Y)4 0 m  e! @d//////// @/H- Hj 0 0P+L-@&)4 0 a@ @Дp/j H- Hj 0 0+>+4 0 0g0  0  @/0/pL-P@P `ᤖP   0 P@pZᖖP0H-P P0U @ Q:P00Hx}M-`P @1*PUp h@P   0 pk`V@PQ|H-@Q@PP `p6W T$ ᩖP, Pp`P):T ᘖP D 0 @PPּ}PϼvPO-MP<@ וp@*p P*W  `+)@ p@  Õ`ḕp!*p P @*W  @ )`p @` ᠕ ,K萕L-@TLyi ) )Loi xL- @@ὕP ෕P ౕP ૕P lॕP XQp9!&!!! L-@L) )L-@TLi ) )Lh 갆O-M`pV. Fd W@:Y0*@QU Z PU P P:H0*PP PU P PP K.)jPV@*p   A * *JP+ Fꆐ@V:F@@     Q1;`F W"*@P @ QU@P PP F P :/* /*@PP  KH-@PQ A g)P`UH'P`U!* VF"@  o!pr!  S W   P :@o `UP1U:ng)UP1U:O-M@Q! `Q*)P )` VpZp FP X:i/* PPP })PK qpWV U, P:Q/*PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK薓O- MpW PG U@:.*@@ P`V KP PPP:.*P`VP QPP `VP U:.*P P@PT Q P:.*P P P Q P:.*P P Y Q P:y.* PA @ ) KM-@ "4Qq P00r R#ds0abVP`V 1/PE PPVA AQ:R)AAQQ Q t   Q/ R R  R R /H- ࿔|ķK-@Pf P`P  @ %P QALV S0q`V3 QPPP 0a0 A!% 0 pC 0cPp C A R:)@`V 0 P`C0c C` A R:)@B\pL-@P: PP  @ %P Q A\  S 0`V  0`V0 `C 0cP` C A R:q)@p AK-Qe P  !e"u%q!PW P  @ %P QA\   S 0@R$5q 0aR `R  0'F P`@R  !%!R0 pC 0cPp C A R:)@?K-Qe P  !e"u%q!PW P  @ %P QA\   S 0@@R$5q 0aR `R  0F P`@R  !%!R0 pC 0cPp C A R:)@ >pL-@P: PP  @ %P Q A\  S 0`V  0g`V0 `C 0cP` C A R:O)@p<H-@Qc P  !dq"tr q"PU P  @ %P QA\  S 0R!4q 0q`bR `R  0`F P`R   !$q"R0 pC 0cPp C A R:)@=;M-@MPp @` 2/$ k ` ```@ ]  (   ``` Q    K```([@QT )  () ) )K (KT  F qH-@M@`P p 2/   P PPP   (   PPP   KPPP [@QT F)  (A) <) 7)K KT?%E4pK-@M`@ Pp 2/(  p pppዏ   (   ppp    Kppp([@QT )  () ) )K (KT0 UC7nM-@MPp @` 2/$ Z ` ```/ L  (   ``` @    K```([@QT )  () ) )K (KT IBǪTmM-@MPp @` 2/$  ` ```Ԏ   (   ```    K```([@QT 4)  (/) *) %)K (KT ⟎@[kK-@M`@ Pp 2/(  p pppx   (   ppp    Kppp([@QT )  () ) )K (KT0 Bm?맩tjK-@M`@ Pp 2/( F p ppp 8  (   ppp ,    Kppp([@QT {)  (v) q) l)K (KT0 =wiK-@M`@ Pp 2/4  p pppᾍ   (   ppp    Kppp([@QT )  () ) )KT 0 (K⅍<gK-@M`@ Pp 2/(  p ppp^ {  (   ppp o    Kppp([@QT )  () ) )K (KT0 (; fO-M@ T& EG/F`V!!!!w 0 Ff W:Pf(* QU Q PU P P:T(* PP PU P  PP K:)jPV@*@   A * *J P+ Fꆐ@V:F@@  nj   Q1;`F W"* P  QU P P P F P :'* '* PP  KH-@PQ A _)P`UH'P`U!* VF"@  o!pr!  _ W   P :@o `UP1U:z_)UP1U:O-M@Q! `Q*)P )` VpZp FP X:u'* PPP )PK qpWV U, P:]'*PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK袋L-$@0L- @L_ / /O-MPGIPD*AA"rPP6 P6* ) I W 0 2 ` `   I""`A0 WpG T `FP AV 61/TT KO6_ ATK3O-Mp@P0ᡐYb:P A JQ3*` A FQT:P 0jzV1 Q"#Ak)`W     Y  Z t)A!U! P Y` p PV KK-@M`@ Pp 2/( ҿ p ppp᧊ Ŀ  (   ppp ⸿    Kppp([@QT )  () ) )K (KT0 q)00[O-M@ Q!:Ap  PWP Uc E W@BqaE Ab qp  ABIa@V* R<)bp PWP U P``V V*|)PPPU  U*n)qp p e)VbYpG ppXW)K P``V V*H) PYPU6 U*>)2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp )  "U `PE0U P0Q0 00   P 0  EB 0P )K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  )pK `W1O-M@P UWp W G U@BQaG A6 Q"? P``V V?*l)&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  U)PKȈO-M@`V WP U*A U@p @ Έ QppW WD*)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  ) @K]O-M@`V WP U*A U@p @ c QppW WD*)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  ) @KO-MPGIPD*AA"rPP6 P6* =) I W 0 2 ` `   I""`A0 WWpG T `FP AV 61/TT KO[ ATKꢇ렻K-@M`@ Pp 2/( ಼ p pppᇇ ᤼  (   ppp ☼    Kppp([@QT )  () ) )K (KT0 Q#'NM-@MPp @` 2/$ V ` ```+ H  (   ``` <    K```([@QT )  () ) |)K (KT 9"DMM-@MPp @` 2/$  ` ```І   (   ```    K```([@QT 0)  (+) &) !)K (KT ⛆ KKM-@MPp @` 2/$ ࠻ ` ```u ᒻ  (   ``` ↻    K```([@QT )  () ) )K (KT @a߇lJO-M@ Q!:Ap  PWP Uc E W@BqaE A1 qp  ABIa@V* R<c)bp PWP U P``V V*K)PPPU  U*=)qp p 4)VbYpG ppX&)K P``V V*) PYPU6 U* )2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp )  "U `PE0U P0Q0 00   P 0  EB 0P )K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  )pK `WO-M@P UWp W G U@BQaG A Q"? P``V V?*;)&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  $)PK藄O-M@`V WP U*A U@p @ ᝄ QppW WD*)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  ) @K,O-M@`V WP U*A U@p @ 2 QppW WD*j)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  N) @KO-M@ Q!:Ap  PWP Uc E W@BqaE Aῃ qp  ABIa@V* R<)bp PWP U P``V V*)PPPU  U*)qp p )VbYpG ppX)K P``V V*) PYPU6 U*)2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp {)  "U `PE0U P0Q0 00   P 0  EB 0P S)K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  !)pK `WꎂO-M@P UWp W G U@BQaG Aᓂ Q"? P``V V?*)&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  )PK%O-M@`V WP U*A U@p @ + QppW WD*c)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  G) @K躁O-M@`V WP U*A U@p @  QppW WD*)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  ) @KO0H-@PP# P2AAQ" 0 @ PU (1/@P 41/P 0\ P 0+ 0+$ PU+ 00dd0H-@P# PAAQ 0 @ P  >/ P 0# Pc0H-@P" P"AAQ 0 @ @P I* 0\ P 0# @P 0Ԃb0H-@P" P"AAQ 0 @ @P * 0[ P 0# @P 0ं4bH--P@" PAAAQ  0 @ `Vx# `V P (1/P  p P  `PP + [ PUR`,aH--P@1" PAAAQ  0 @ `V%# `V P (1/P  p P  `iPP + V[ P__H--P@! PAAAQ  0 @ `V" `V P (1/P  p P  `PP + [ Pுଁ`^^H--P@! PAAAQ  0 @ `V" `V P (1/P  p P  `OP + Z P\Y]H]H--P@8! PAAAQ  0 @ `V," `V P (1/P  p P  `DQP + ]Z P [[H--P@ PAAAQ  0 @ `V! `V P (1/P  p P  `DSP +  Z P඀ೀ|ZZH--P@ PAAAQ  0 @ `V! `V P (1/P  p P  `TP + Y Pc`0YdYH--P@? PAAAQ  0 @ `V3! `V P (1/P  p P  `UP + dY P WXH--P@ PAAAQ  0 @ `V `V P (1/P  p P  ` WP + Y PVVdxO- M`R @Ủ#P: Rᇠ P0(#`H0ʬa 0, @P p 0, @P X 0 0, @P X 0 0, @Pw X 0էp 0, @Ph X 0ħ0 0s, @PY X 0㳧 0b, @PJ X 0㢧 0Q, @P; X 0㑧|6 p\ 0<, @P(   (0/, @P   0", @P   0, @P   0, @P   h0+ @P   80+ @P   0+ @P   0+ @P   0+ @P    x0+ @P    H0+ @P   t 0+ @P   g  0+ @P   Z 0+ @P  M 0y+ @P  @ X0l+ @Px  3 (0_+ @Pm  & 0R+ @Pb   0E+ @PW   08+ @PL   h 0++ @PA   80+ @P6   0+ @P+   0+ @P    0* @P   x 0* @P    H 0* @P   0* @P   0* @P    0* @P  } 0* @P  p X0* @P   c (0* @P ! V 0`* @P  S 7 S( 30#(```尧p( 0* @P ( 0`㣥( 0#((```吧p(  0) @Py  0ㄥ( 0#(```qp( 0) @P\  0`dɪ( Ԩ0#(<```Qp(  0) @P> ɥ 0E᪪( ᵨ0#(```2p( 0) @P! ᪥ 0`%ኪ( ᕨ0#(P```p(4 0h) @P እ 0k( v0#(```p( 0I) @P k 0`K( V0#(d```Ӧp(H 0)) @P K 0Ǥ,( 70#(```崦p( 0 ) @P , 0`㧤 ( 0#(x```唦p(\ 0( @P  0㈤ 04) pP~   @Pz  KO]gv   !,7BMXcnyޠܠڠ'נՠӠѠΠ̠'ʠ2Ƞ=ƠIyƩàe꿠꽠껠깠TƩ괠3겠P갠nꮠ~ꬠƩũũsũ7ũũfJ,ô/J|販Բ b7mͯGݿ[`xӯ5 ( !H9$úHHιX=9H-M`P# ' pP P  P  P*P [)@` K` 0ムp8 0$`(`T`P```X`\`l`d`h`x`p`t``|````````````````````````````````aaaa aa aaa,a$a(a8a0a4aDaL>H-P@ PDAAQ 0 @ PU tP6xP6|P6PP P`k PU@Pmy@`p tcP (Xy UyRyOy={{{l|M-@PS % `P# PMAAQ; 0 @6 `V9 tP?q0 0?6P, qP),G,\ `\p_R !(p,PC 0>& pP  V  `V& xxxz`;D;\zH-MPlP :% @PbrPd P@KP@DP P@@pPJz PL*P` PvAAQb 0 @] PU` PhW6 @@0+S*0BTP PP )T`XCPPC \P )`dh\njK@ Pex@- P:\x0BTP PP )T`@XCPPC \P )`dChC\CnCjCK+ PUK(2x$/x ,x)x|8lxwhxT8w0H-PP# }$ P@ PAAQ 0 @ P Q00H1D P0ww w7h7v0H-PwP# E$ P@ PAAQ 0 @ P Q00HC P0ww w66v0H-P@ P=AAQ 0 @ PU P*P P# P $Q!$( 0t PU@ PDvw@# P$mwjwgwL5utprL-@F P.AAQ  0 @ P$Q9 P$Q  R 0R  R R( 00$-w*wL4|A0H-P@  P#AAQ 0 @ P0 P x#|P  08 0v3 09CK-@l` 8 Q \P H)`TpdsP\s PP <)T倞POXsPs`HP DP -)Hs PEDs ULspP`P P )q PEq Uqt$ P Q Q Q Q($(K} vLq?H- HdH tP/0H-M @R 0A!%!QP 2/ 03/K0H/ e" P!r#G / /0H-P@P dG0Q (0)P(v08v8pM-HMP@`(,K⬛t P` P`(/T;  tP 2 P   R( ܛ pP5 RP xC 0K| x|(P((PU& `K   03/(P 1/(X P 1/,K⳴KPsunk @H- @HG 0H-P@P A F0Q (0)P(0um @YO-M`(}px |cq0 02TP XcV )P pVsPsT`P dcV )\ pGs\s`hSU P@P `V ) p3spPU @lSU NP `V ) pspPU @qptsPxs|s3@(sN ` T* D@T',,Y p(pTPP#  ,\(`,@{? 0:" `P  p@PֳK#! lF L-@ ') ti     /\i/F  "P/r0H-@$PP8S  0u P8 pY PAAAQ2 0 @- PU0 P# 0`C00p0NW 1/00P 1/0P(@P:,P$ PU -p*p 'pLXX 0R 00Q / ?S /( ,0R*00((/$O-|M@((K 0pudPD P@H0P AlhD(@@VHSPP ' PP Pp  `@Pv @P 9 P 9 P P ( P X P Qb  P~AAQ0 0@ PFE1VJ Pr x ZP0P (@PhlP hh`dPp@GPO*A1A!.rPPW P0C*@᤿) @GW dmUhd@l ᭿)pPX{:<P * `q0AA!.rPP( `Pp*pq)@pU 5mPV ~) @@0@ RpXF: @ `@@@ | pP# ` @,$p W8 8 ,0$( 0R *$l`U $l`Ud@h T, `P 2/0Tp0`00`,(,P*,,`(,,`P $,,,`P 1/@Z,@,@0Pl0Qp@ `V )@dD@P h)XP \)?(KhKP@ `V 00(d PPF ,P (0@ `PPp2 0PP3 ,0 [ P (哺@PV(P ᅺPp@ `V "0(|t PP ,P (0Xf0PPD(n^\0!n(nkPXi l쐩tQPL-<@ P $l)P g)PK-M@  P0 pQ0 0)`P  @kp  ` 2/ P 1/P  @ %Q  0 3/,$ 0 K豇s؆H-@P!Pp p pP޽)P@ `p P` P$p m8NTOH-@Q14 PU [ @?SP[1/)P P ` U   p1/᳽)WPEmMLM- @`T /Rw)P pPcp p PW [ @?SP[% $PU+ p$$P (AQ:,dPC`P (AQ:,TP31/ᖻ)$PUpP (AQ:,;PT [ @?SP[ 1/M> l lMt KH- 1H> pL-M`P@0   0 KpLH-pP`8ټ)  $@, a B b  B $(,   R   P (@P:,P HW09 (@P* OlIԁlIH- (AQ8,P>l(I0H-P@ $@/o0L-$ R%$ R%$ R$ O@?S @ T [ @?SP[1/L= llGG0H-@PP (AQ:,NP0HkGL-@0P 00P 1/0 0  $0 0$ $L詙lGdL-@0P 00P 1/0 4  $0 0$ $კLs= FO- M@@ ӻ)0P0 A @ @ A +d(㽻)`LPE  @嫻)P pP1p P$40`, ,D P',P@,< #P `P  0  PK< K$&k#kElEFp~D0|pL-MP0@P Q P `)Kp, 0P)Kp.~pL-@|P( J PQQ  Ph(@p pL [`98 ) 0*pLzjsO-MP(PȒ (#0'`,᎘ؗoT*ᰔ(ᐖ0#(D p(4 0c Pw ᅓ 0f(q0#(p( 0D @PZ f 0G(R0#(\ϔp(L 0% @P= G 0Ò((30#(ఔp(  0 @P! ) 0㥒 ((@P (V ̎(P_ P[ @><:KO 8 ڢ L~ pL-P0@`000pO-M-PM@ Q(<KTP Q( ᝏXP0P d`P ㏊ ႊ4P0 0 "RcQQ J0p  A1/)P " dP P2 TZ-( P3 P, q   R( 3 8P pP 0 MP 00P?l 50QQ0P (@P:,P?`! P'0P+,DM0`V P$`V 2/<K0KЍH80P (hhv`>wxy;<0H-0PU @$Po0h;0H-@ P0P PP0}00PP 1/,P 0H: ,0P0,P0wM-8M@p`PT P(i@" P 0p C0 C0 C0@@0P  ``0$P ,0 Q 0P R@,mZAK9upL-8MPPm  @P `+ PcAAQ 0 @ P Q3 Q8@0KpL~0(@KpLY PP B  B A` P0P@@ 0KpLL0BKpLG@0CPAKpgg7(,u 0H-P0@ P0  Q (@P:,P0Hgs60H-P0@ P00H xIs0H-P0@w0  4 P (@P:,P 0Hs(U(@P*lgr50H-PPI  @PB PBAAQ$ 0 @ PU" 0P @- P 0  Q (@P:,P0H( PU0`(@A0HZ0 ggg8qul40H-PP> d @P P7AAQ 0 @ PU 0P @ P00H PU0T(@0H$f fosL-@ PAAQ  0 @ P L PfL-0$ R&00$Q%$0 Q$ 0O@/R @ T [ @?SP[1/LM8 gfdfl1p1L-0$ R%$ R%$ R$ O@?S @ T [ @?SP[1/L8 3f0f007j`8 L-M@5Q  BBQP   R( ߋKf0 AAR/H- e0L-@@ P $Q)P L)L7 t00H-MP 0(l @P @P  0 P (K0@Pen/0H-@P( P  P6AAQ 0 @ $Q(@ $Q AA1QU Q:<(@\ự0忾0 ueljmxO-MP`pQ ApVA !R 0 R pW:!R pW: 0 P P `5@TnwpK @JPx* AA!.rPPl Pl*e)@JaaZ  &cY@` n) R  ?0oV 0R Q / ?S @Td@T [ @?SP[1/})p@T [ @?SP[ K1/e)K@bK-MPR ẋ#P:( RP( 0@ pP1 (0#@0 `u C`P  0 , A`P   0 P L0 0KKꘉꖉqꒉmꄻkfj(O-M@P  QQ  P h(@KOl@Pᙊ @ @@P 1/  @ @P 1/0$Qe00$Qd$0 `  Q$ 0pOT @ T [ @?SP[1/Ᏺ) `PP,0CSPr P(変0 @ ,0S@TbS P(卉0 ) KOi꿈KObcccDhT&X&pL-P&P$  @P ܿP PP(`P {U 1p@P(`Pjcgc dc\&&/O-M-Mp@Pp PP  @ %P Q AW S0pW= HPZ. o)`  ⏊ ` 2/P 1/P  @ %Q  0 3/pWp p 0B0 b0B0P$B Q:L)@0KЍM}eH-@P= PP  @ %P Q A\  S 0pW ` R 0pW0 pC 0cPp C A R:)@Q{pL-@P9 PP  @ %P Q A\  S 0K`U  0`U0 `C 0cP` C A R:徲)@p5zK-PG` @T `pW 78`T `@嚲)    pW @T `@DV [ @?SP[ T1/ᴰ)T pc)    $@T (pW `7P` 1/T$,((@;) (,$$(,$(, H-@8$PU (`V p6Pp 1/U$(P)`V pW PpGU [ @?SP[ W1/8)W`) PU `V 6v_U P۱)m_dH- HG3   e  a' M%s#G /0/L-@㜱)4 0 a@@(/0 R/000O^L-@{)4 0 t  o" @L8/H-` 0PU @P'  0M `P! sD `c`P tp 06 PP  0i &$" L[mH-` 0P @P'  0  `P! 2D `ᴦ"`P ᬦtp 0 PP  0( ߅꺅ZlH-` 0P @P'  0 `P! C `s`P ktp 0 PP  0 褅ꢅꠅꞅysZkH-` 0P @P'  0 `P! 3D `2`P *tp 0s PP  0 ca_]8YjH-` 0PQ @P'  0I `P! oC `_`P tp 02 PP  0e " XiH-` 0P @P'  0 `P! C `ᰥ`P ᨥtp 0 PP  0$ ߄݄ۄ궄WhL-@ >Lx1 dL-@  1 )L^1 0 *Z1 K-P`GPW*A!/rAPAPI PI*ᬯ)a0Q / W W 0G0C11`C07T`F0010@1/)W PpGU [ @?SP[T K0 \H-P@`@FPD* qBA!.rPP7 Pp7*I)F!`00qa`PU EA!! B5V0`VpPVp @6P@ 1/UU H0 p\K-PGP=*bA!/rAPAP/ P`/*)!01W0000 H!`B 7 T `F0@`V 6\TT Kd0 `e\pL-MPm@PnP 2/KpP㷮)`QAA M\AQ *     vQ 峮)@ /pL-MP,@0P' P$@~)d`A33 \3Q *     =Q z)8P9P 2/Kp0M) 0 a O*a1.*B Jc @JBP *     Q C)ꤪ$P 05 B0 B0 , B0/tM--8MP@% P A  A , A ) ` a! O'a  'A @`@ )x 0`  b*a2JbA ,0( e## *B  @JB( `5( ,بp শХ0 |p䢶0Э) ˭) 㪭)| P a! *a   *A @P0 噭) 0P0 a1 *c0OJa( * *A @JA, ( P( 0园) 喭) u)H P a! *a   *A @P0 d) 0P0 a1 *c0Ja( + *A @JA, ( P( 0f) a) @) P a! 'a   'A @P0 /)T1 00( a$ *aprG  @*A, ( PP( 03) .) )! 0 a  l#!(  @,(0]( 0)  )a`eG` `` - lF P`ݬ)P0Q(G,G sZ( ,0G``( 0) ) 㿬)`!PP a @` 岬)8 00(P a *a *A @, ( ``( 0幬) 崬) 㓬) `!P a *a *A @` P 催) 00(P a O*a*A @, ( ``( 0剬) 儬)c)hP  b @ P @ R) 00P a! *a (  *A @, ( P( 0X) S) 2)$ `!P a 'a 'A @`0P !)d( ,P00 a*a1(s  @*A``t( 0') ") )! P a  s  n+! @P0) 00 b *a1 ( &  C0Oa*@A, ( P>( 0) ) ˫)! P a + @'AP@ 廫) 00 b *b. JaA ( 6  C0Oa.J@, ( *C0AP( 0師) 峫)㒫)P O" P @ 偫) 0 aA Ja1,0( f *c00  *B  @JB( P( 0) z)Y)P`p0P(`,pM) p P(`PP-  $P( 0L) P*)! ` a  s  n'! @`0)P00` *a b1  C0( ( *@A, ( `"( 0) ) )! P a  n  i/! @P0)1 (0P a*a",0( n#"  @*B( P7( 0) ) Ī)n  i/! a`!P  @`0P峪)( ,P)00 a*a1(s  @*A``( 0幪) 崪)㓪)L` b @` @P 傪) P0Q(E,E X( *0E``( 0努) 兪) d)P a! @P0 W)h00P b *a1  C+0( % a*@A, ( P( 0Y) T)``-]k `cXF`e0 P`%)00 b *a1 ( %  C80a*@A, ( `s( 0&) !)( -((k,0/e)P 0"( 0) ) ߩ)! 90ϊ!  ]  ( ,(0/( 0) ݩ) -mPa PefG `P岩)<0P b , ( 0(A@( 0巩) 岩) Pa P `P剩)! ,0( ]  ( P( 0喩) 呩)PP-t PpGPi0 Pb)1 0H0( a *a @*A, ( P ( 0h) c)( - (a0)` /h( 0K) F)%)P-pep@  b  ( @ (@(,0)p@( 0#) )( (  a P$`ti( ,0)pKM( 0)P ( -((t,0/i) 0( 0֨) Ѩ)`` ``e0㣨) 0`0 a1 *cL0OJa( * *A @JA`(`,  9( 0夨) 埨) - 0,((e( 0全) 倨)_)` "  ` P N)hP0Q(D,D U( I0D` ( 0U) P)PP P-  P')  P,0( (Q( 04) /))l0 Ob  ( @,(0@_( 0)  ))0 Ob  ( @,(0@<( 0) )ȧ)\0 Ob  ( @,(0@( 0˧) Ƨ) 0 (K幧)d 崧)(bcx孧) 娧)(D h L( t蜶8 ,엶@ĖH\l]pL- MP@% P A  A , A V)e#t#G a!` @`@F) 0`  b*aAJb 0*B  @JB `y H) C) ") ` a! *a   *A @`P )PQK K T 0K` ) ) )Ps)z%F a! 0 @  ) ) Ҧ)! 0 a f    @  צ) Ҧ)㱦)L  f 0   r/  @ 崦) 實) ㎦)! 0 a t  m)!  @ { 呦) 匦)D@ 0 Kph ēX蒶pvM--8MP@%P A  A , A Pe PPt - t F 0P4)1 0P a*a#,0( p " t%"  @*B( Pv( 07) 2) )! P ! P@ ) 00P b *b0 JaA  C0( 8 0J@, ( A*C0P>( 0) ) ٥)0 ` a! O*a   *A @`p ȥ)P0q(f,f ^S( $0f``( 0ϥ) ʥ) 㩥)x 0p!` a O'a'A @p (`, 嘥)Pp ` P厥) ` a+ @'A(p$P ( 0吥) o) ` a! O'a  'A @`@ ^)XP0A(3,3 R( 003``( 0f) a)@)P Ob @P @ /) 080P a! *a (  *A @, ( PD ( 05) 0) )(! ` a  s  e"! @`P)P0Q(K,K R( @0K``!( 0) ) )t! D0 a  t#!(  @,(0d#( 0) ޤ) P㼤)! ` a  h   @`0㭤)00 *a b1 ( (  CP0 *@A, ( `w!( 0寤) 媤) -]`l`hUF P`) 0Q0 a! *a(  *A @, ( `L!( 0儤) )( - (l0)PP /$( 0f) a) `` ``n 3) 0S0 a! 'a (  'A @`(`,  ( 07) 2) - 0,((nR$( 0) )) P i/ n#G P@ ) 0R0 a! *a (  *A @, ( P ( 0) ) )` a! @`P 崣)P0Q(K,K JQ( T0K``( 0弣) 巣) 㖣)t! P a  t   @P0㇣)< 0P0 a1 *c`0OJa( * *A @JA, ( P( 0剣) 儣) c)`!PPϊ! ` V) 0m0(P a O*a*A @, ( ``% ( 0]) X) 7)`!PPϪ! ` *) 0n0(P a O*a*A @, ( ``( 01) ,) )`! l0 !  ( ,(0( 0 ) ) )` !P` P ݢ) 0( (P,`_#( 0) ) Ţ)` !P` P 廢) 0( (P,`{#( 0ɢ) Ģ) 0 #PK巢) 岢)(t$@X$\$lĊd< | ԓTO-4M@(p`',P( ᡠ00 S *Q(0  Q P PPZ1 p pW# pGQ:Qw Z!z * Z D*ZGJu*0 U*pU pZ 0Aq Q!*Z' ( l`)p O (ZKPV )   OP P& PPP  PP:Qp P@puI* U*U`  ὡ)` P  UO&  ġ) 忡)( 0庡)Kx* X*PX `ዡ)PP  $OOO-dM@` ¯PM P((  Q$   / ?S,@P#TQ 0poV @T [ @?SP[1/ᢟ)l  , Q(  / ?Shd"Q 0poV` @T [ @?SP[1/q)P$K , K(@ $ 08< H 8  d Zj @0  dv`To~_vPTS@T / ?S R0`! 8T  ?0W?0W  2/`T P[@/RP[1/ ) [P `@/RP[|1/)uT  ?0W?0W  2/`TN P[@/RP[1/ў)) 0W) `[@/R/T  ?0W?0W  2/`T' P[@/RP[1/᠞)X) 0&) `[@/RP[1/ኞ)VT  ?0W?0W  2/`Td p[@/RP[1/c)_%`[@/RP[N VST  ?0W?0W  2/P`T [ @?SP[1//)l?0BT  ?0W?0W  2/T P[@/RP[1/)[@/RP[1/) `Tl 0#0@S `T [ @?SP[1/ϝ)VN0@Sx PP p0, j hPᵒ@ 0`P^  0+S% 0 #S MPᚒ@ 0`PG 0+S% 0 < 0 0@P5  0KOqqqqqqqqqq+q6qBqMqYqdqp{q{qwqqsqqoqqq&p D ~  SP L-@ ㅜ)      // H-q@p Q 0_PoV PU [ @?SP[1/ᱚ) Q 0poV @T [ @?SP[1/H YM-$4PU !1/|)`pV [ @?SP[  ))WP,,P ) PU p`W P @ t )Wp) ))VPP ) PU &1/()$p ,כ)`V [ @?SP[  ś)Û)WPP )LO- 尗)K)E0H-MP@@P+ Q+ ,Q  / ?S >@T [ @?SP[ K01/)K0G GжԶO-?<`P pWP  P Q pWp0 PV)(@ ppQp$  8q* Q* `Q p:)`p8 ` 8 >8p8K `Xp4p @ @*,< p@ppp  A * *J P`X:H``  >   Q1404@H <P*<)40P  @!P H P:)4@@([ )0@pT [ @?SP[; ` hΐ)X@T [ @?SP[1/)0Z)4`VK @8PKD,@pPDH /R, 00LT< 84pW [ @?SP[ HpW [ @?SP[1/ᾎ)`V 1/ᴎ)HpW`VK=/M-$4PU !1/ᘎ)`pV [ @?SP[  :)8)WP,,P /) PU p`W P @ t )Wp) ))VPP ) PU &1/D)$p ,)`V [ @?SP[  )ߏ)WPP ֏)ЙO-|)`p8 ` 8 )8p8K `Xp4p @ @*,< p@ppp  A * *J P`X:H``  )   Q14.@H <P*<)40P  @!P H P:)4@@([ {)0@pT [ @?SP[; ` h{)X@T [ @?SP[1/z)0Z)4`VK @8PKD,@pPDH /R, 00L3 /4pW [ @?SP[ HpW [ @?SP[1/y)`V 1/y)HpW`VK(/H-P@0 R pPp0[S00S]SPBBPP1u7* U&*U* P     u#*` U*U p{)"@ `z)"@ ((H-M@P(p`p  )PP P/ 0z) 0 a1 Ga*c % *A @GA pP *   K  z)K UUUKO-M@^G`AP諚 㪚JA@ `P$ Pp IG 00"S* ` P 0  m `p P@@ W:$P`hKO`K-M`@GP OPU& `G 0 P 0 S* P pP 0 (P PU O` hKO`pL-@hXPU \P ` v z)UX\Pz)LPU PP ` v z)ULPPy)< ,  PUDy), 4y) $y)PU [ @?SP[ p1/x)p@H- H? 0H-@dPU [ @?SP[ 01/w)0 ?0H-@lPU [ @?SP[ 0H 1/w)0H >pL-@\`TDPU HP ` v py)UD hiy)T \dy)DPUHP]y)$    PU,Ny) Iy)  Dy)PU [ @?SP[ p1/vw)p >H- H H- H O-MP, 0 ( $ @0T3pP T   :K`vy* V*V px)B@ g&0 PK@ @   P`K $`0,(<@K,0K800Ue,UeM(  pB0CWj C1jJ``CV p`W PpS# p`ppW:PS -P@K0K28k)[@/RP[`1/.k)@ZXPT Xl)P H  PT@X P  TX-QS#@P`K k@P * H HD@ o@ Hl)PPpl)"@  P@`[rsd`@` Hl)]@K>ZpW O-MP, 0 ( $ @0T3pP T   =`vy* V*V ptk)B@ 0 PK@ @   P`K $`0,(<@K,0K800Ue,UeM(  pB0CWj C1jJ``CV p`W PpS# p`ppW:PS -P@K0K$83H- GH O-MP, 0 ( $ @0T3pP T   37`vy* V*V pd)B@ `0 PK@ @   P`K $`0,(<@K,0K800Ue,UeM(  pB0CWj C1jJ``CV p`W PpS# p`ppW:PS -P@K0K8V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R K\ a H- Y)HP /L /J /R H- Y)HA /= < /O-M@p 堐  EY  0: 0 ` BR&l&& I`0B  Sp S S0!0! !!`Vw p F W : Pc)p  PPU  O[)P Q  Hx* X3* pX9<Z Y P P:.)p P   RQ 0 0S P pP PU@[)p @ p jV@*   A * *Z@pV:Fpp   @  Q1`F Z: ʣ) P B P P P5 F- P,:ᬣ)(YF P  PA   RQ 0 0S P pRpP PU!P  K P P:o)p P Q PU P  P Q PUH-@PQ A (P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:(UP1U:O-MpQ! PQ*Z)P Z)P U@`V E  R :) PPP Z)P AX P@Z T:@Ң) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, CP P 0P0#PV ` P X~ SP   R KO-M@`DZ ZJ A @ BAZYy  Pn p w FY)Yd  @@PZP @ V 0 p@  Qp X @Z/ P `  pwz* W*W @X)`  y@ PT ``[  P P u X)Y K pX)   UUAZ@B* *@PZဠ PX)pVpp*   Pu* U*U @X)"p  @ `T ppK O-,M 0   @  p`p  ` EW:0 P0CS%\% %G0pA`W W W ("$" W""ࠧ  \ @* A * *ZpP\:L PP     Q1DpL @ \   )  pXO  @ @ P } T : `P Z : )Q3Z p0pWS0a `p@T0 @P%  oP Xp@P T: ᦠ)@ PY pP Q P: ᓠ)P@ PYpP Q P: y){TKX  R Q  o"R PP Q `@0@T@S0a @pW0 p@P%  oP XrXm P@ U: )Qa U oQ$QPq  KO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ᶟ) P`V`KX1  P 0PST 0 0S PP: ᇟ) P`VT  AP P  Q P  0PS T 0 0S PT  pP `VO-M Pp@=V)``   yV* Y* pY  @V)p p   `P ` PEV%:p 0@pGW$L$0$ Fp`B PV V V 8# 4#  #&# !K0VkH-@PQ A (P`UH'P`U!* VF"@  o!pr!  \ W   P :@o `UP1U:w(UP1U:O-MpQ! PQ*U)P U)P U@`V E  R :r) PPP U)P AX P@Z T:@V) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R Kdi H- S)HX /T S /O- MPA@Y `PQT)pQ`T)pYA /R @pT)|@Y@ p [ @?SP[ 1/ R)p @@@   Y )@Pu/* U*U Y`JT)p Y [ @?SP[ K 1/ R)K$O-M@P`T QT)pQ T)ppT@ /R `PS)`,PT p [ @?SP[1/AR)p`Q[@/RP[ T1/&R)T [ @?SP[ K1/R)K ԩ0H-@dPU [ @?SP[ 01/Q)0P0H-@lPU [ @?SP[ 0H 1/Q)0H ԧL-0@  2/ L/H- Q)H P// 0H-@dPU [ @?SP[ 01/Q)00H-@lPU [ @?SP[ 0H 1/vQ)0H ꔦL-0@  2/ L/H- 7Q)H P// H-@PQ A (P`UH'P`U!* VF"@  o!pr!  | W   P :@o `UP1U:(UP1U:O-MpQ! PQ*R)P R)P U@`V E  R :ᒛ) PPP R)P AX P@Z T:@v) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R K H- #P)Hx /t /r /O- MPA@Y `PQQ)pQ`Q)pYA /R @pQ)|@Y@ p [ @?SP[ 1/ O)p @@@   Y )@Pu/* U*U Y`iQ)p Y [ @?SP[ K 1/ O)K0O-,M 0 Q @  p`p  ` EW:0 P0CS%\% %G0pA`W W W ("$" W""ࠧ  \ @* A * *ZpP\:L PP     Q1upL @ \  )  pXO  @ @ P } T : `P Z : ᾙ)Q3Z p0pWS0a `p@T0 @P%  [oP Xp@P T: |)@ PY pP Q P: i)P@ PYpP Q P: O){TKX  R Q  o"R PP Q `@0@T@S0a @pW0 p@P%  oP XrXm P@ U: )Qa U oQ$QPq  KO-M@P`T QO)pQO)ppT@ /R `PO)`,PT p [ @?SP[1/M)p`Q[@/RP[ T1/M)T [ @?SP[ K1/M)K0H-@dPU [ @?SP[ 01/M)0\0H-@lPU [ @?SP[ 0H 1/qM)0H L-0@  2/ L/H- 2M)H P// O-M Pp@N)``   yV* Y* pY  @N)p p X  `P ` PEV%:p 0@pGW$L$0$ Fp`B PV V V 8# 4#  #&# !K0VH-@PQ A G(P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:(UP1U:O-MpQ! PQ*/N)P HN)P U@`V E  R :) PPP +N)P AX P@Z T:@) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, lP P 0P0#PV ` P X~ SP   R K 0H-@dPU [ @?SP[ 01/K)0(0H-@lPU [ @?SP[ 0H 1/K)0H ꬏L-0@  2/ L/H- YK)H P// H-@PQ A (P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:(UP1U:O-MpQ! PQ*L)P L)P U@`V E  R :ᴕ) PPP L)P AX P@Z T:@ᘕ) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R K H- EJ)H / / / H- 6J)H / / H- (J)H} /y x / H- J)Ho /k j /r H- J)Ha /] \ /O-,M 0   @  p`p  ` EW:0 P0CS%\% %G0pA`W W W ("$" W""ࠧ  \ @* A * *ZpP\:L PP  !   Q1DpL @ \  _)  pXO  @ @ P } T : `P Z : <)Q3Z p0pWS0a `p@T0 @P%  oP Xp@P T: )@ PY pP Q P: )P@ PYpP Q P: ͓){TKX  R Q  o"R PP Q `@0@T@S0a @pW0 p@P%  KoP XrXm P@ U: j)Qa U oQ$QPq  KO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y :  ) P`V`KX1  P 0PST 0 0S PP: ے) P`VT  P P  Q P  0PS T 0 0S PT  plP `VO-M Pp@I)``   yV* Y* pY  @oI)p p   `P ` PEV%:p 0@pGW$L$0$ Fp`B PV V V 8# 4#  #&# !K0VH-@PQ A (P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:(UP1U:O-MpQ! PQ*H)P H)P U@`V E  R :Ƒ) PPP H)P AX P@Z T:@᪑) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R KO- MPA@Y `PQH)pQ`G)pYA /R @pG)|@Y@ p [ @?SP[ 1/ 7F)p @@@   Y )@Pu/* U*U Y`G)p EY [ @?SP[ K 1/ E)K&{{O-M@P`T QuG)pQkG)ppT@ /R `PYG)`,PT p [ @?SP[1/E)p`Q[@/RP[ T1/E)T [ @?SP[ K1/tE)Ky|y0H-@dPU [ @?SP[ 01/TE)0w0H-@lPU [ @?SP[ 0Hi 1/4E)0H` |wL-0@  2/ L/H- D)HJ P//C 0H-@dPU [ @?SP[ 01/D)0v0H-@lPU [ @?SP[ 0H 1/D)0H  @@* *@PQQ. `E)T  0  000   ! pw* W* W` ` 6E)` p` 00p W Y 0@ Tpp A A 000 @DY LASDڀ pP ` 3 p0  `v* V*V D)`p s0 p p PP] ` p `GG Q* 0 ``   0 Q 00:P-  @J G` @1 A0  `@` `` D) 0 `  ` I S`` T `V 0 p [ @ `XKY C 0!0S p `` ppp PSP@U ` v _D)TPT XD) PKO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ) P`V`KX1  P 0PST 0 0S PP: nj) P`VT  P P  Q P  0PS T 0 0S PT  pXP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : L) P`V`KX1  P 0PST 0 0S PP: ) P`VT  P P  Q P  0PS T 0 0S PT  pP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ᢋ) P`V`KX1  P 0PST 0 0S PP: s) P`VT  -P P  Q P  0PS T 0 0S PT  pP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ) P`V`KX1  P 0PST 0 0S PP: Ɋ) P`VT  P P  Q P  0PS T 0 0S PT  pZP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : N) P`V`KX1  P 0PST 0 0S PP: ) P`VT  P P  Q P  0PS T 0 0S PT  pP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ᤉ) P`V`KX1  P 0PST 0 0S PP: u) P`VT  /P P  Q P  0PS T 0 0S PT  pP `VO-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : ) P`V`KX1  P 0PST 0 0S PP: ˈ) P`VT  P P  Q P  0PS T 0 0S PT  p\P `VpL-@PR `N#P: RP!1 0!1 0!1 0|p!l1 0u\!X1 0nH!D1 0g4!01 0` !1 0Y !1 0R 0 0K 0 0D 0 0= 0 06(  0 `P (P pLfygWF$2 xp ИpL-PM@5MP4 PAP `V+ 0f0ᄚ @@KpO (0P峛 @P KpKpi fXVL-M@PKP P@᧺Pᄹ6K@mKP,>@@ᎺP 4hVPVL-M@ IP K @0+SZP KL-@1x)@ 0JP L-@i)@ 0;P O-DM@LP XP K$K5P KP9JP PpPT@KPQ@&JP@pJPA P`@0P @` 0P]P@!JP}@JPw P@@P $ AP AU` GJP"2 @p  Q Ӈ)Ї)͇)ʇ)LJ) 0(Pᚚ@P 0VA`  Å`P $0Z@V  0 尅P $   Kf+(%` TSPRTRK-M@KP1 yPp ( 0PC @P K`Vp: h0f0 @@K!K "< LQK-M@gKP2 5`PNp ( 0P @P K`Vp h0f0ᩘ @@KK ( HPO-Mp"KP P K$Kv@(P$P&t T $ Qp@&`P@TP 30d刘 @PKr} (0,pP  ,t@ t P :j rMt P*(奣  @d  p0@  @`" N  Q PR@KQ. NK 8. ,HK,VR@K. EK 8. ,?KP,W. x,(叜@p 0!@P  c q80@P  c,  c&tq 0@Pn  c ! R (,0(B/ c "T P 0 c @ d@ $`PHVC$U PK{r菧 LpL-MM@ JP2 ڗ`  UP P&`0P0PPP兗  @Kp 0( /P  KpB ?JO-\M@IP ╗PP H`P P  @H`P @,  hP ( `0pKbVP P`42p0ppp@ K0 p@(4p0 (0+S  (0+S p( 00ᤲ(  0ឲ$(Q/ 0 ᖲ`YZ, V* (p], b, ,b, b, 8b, bX @P !H`YZQ (6@P 1/@X P 1/K(y vUrҌIGGpL-M@HPr ƖPPnHPm P@HPg@HPa P@ `P@@VP `P @GP A   Kp@GP4 P@@0 0/PP @ @KpHP Kp Kp80( slFFF FpL-M@gHPL 5PPHmHPG P@⋉ oUP `P@;48@@/0H--@HP &|P?|P8 |P4P($<@, @D|P+H|P$L|P PTPxh⏊X⏊@H7)00l   ϊϊϊHP @WG0(;p:O-M-0MD@P|lP hXp\`!%aY|Z P @ p`n9 y0 Q)) #u9 Gt`xV*  tupp@FP*A>S"rAPAP PP*6)ၢV 0 0 0 "i pG @FPF@0 $  Q 0S  J W J W $  2/ J WP p`tppWtx ,@ 7P ,P  2/DQ P 1/V@V p 6) |lP h\!%|ZXPpt0x @V pP}``{`@`{,P$Pp @ {'X+ (@` P 1/ P:66)pGPpH(`V( 1/'X `U `U 'Q uAqP 1/pG PpTF@P:$@5)PF@PU 5)VT 5) 0KЍ$@U^:H- zH-@P% PpV{040$ <`0S@ $  `4S,Q < @0 "5%q@A{K{HGJL4M--@P[ pp`5)PP` @T @D @4 @$ @ @ @P> `3)P: h`{Hl`lV [ @?SP[1/3)D`z\`0P hp0Sl P  p4SXh l\ "5%QlHzzMFG2K-M 4p`V$ t@T Pp 4PP P!  2/GQ P 1/Vpt`5)D\}P S3) K`2K-M@P+ Pp`tPU p 5P P  2/GQ P 1/V t`GKMH- HA K-Mp`tPU @p 5P@ P  2/GQ P 1/Vt`K  / A /pL-@P`yP8P V$ @ `(_4)ؚXW4)` $P U$` [ @?SP[ p1/2)p/00(O- MP`@@y "U / ?SQ Pt  U [ @?SP[1/b2)yK`3)dp`  eP q(/R/R:2) QQ[@/RP[1/2) d@`T [ @?SP[1/2)UT/-O-M`@2y9PU / ?SP Q & Z"   ET& G/F!!! J !ࠇ  X@: a|) @@PpWU [ @?SP[1/1)xKP P P P: 1|) PpWPQP P pWP X: |) @PT Q P: {) PP P Q P: {) PP Y Q P: {)PP A@@T [ @?SP[1/1)2)U[jcP)M-@ CxP* PU2)U `PpW [ @?SP[1/0) P 0 PM$x 48@@/pL-PM@ᴽPK(PP `% #P:` RPP`0 C1/qK Kp0O- MpptPUPaWj P< EP P P @P\  2/@`PV P 1/8P (Q 8P pZ P pZ` 2/ pZtPU @` 5P@ P"  2/FQ P 1/WtpK EP 0 SppWzY%pL-M@`P`PJU` 1/hKpLmK-MpCwK@X /RV+ Ew Pp/wP @4wP5wZPX [ @?SP[ K1//)KX$pL-M@`P vP / ?SQ vKp#H- M  2/P 1/ РH-M`@Pv@pT /RW% vP  2/P 1/T [ @?SP[ K1/V/)K|"H--M`@Pv@pT /RW) v+SP `6/P 1/T [ @?SP[ K1//)K_`!pL-MP@?vG@`T /RV @vePT [ @?SP[ Kp1/.)Kp' O- MP@vX /RY: vpptPU `@ 5P` P(  2/DQ P 1/WXtp [ @?SP[ K1/.)K(/ $ Q//R/H-MP@` uW /RV uKl H- By) 1 A 0 Q eA/P/h g H- /)   //U B0H-@T lPU [ @?SP[1/.)P 1/0H, 0H-P@`pV /)WP @B P /)eucutH-P@`pV /)WP @B P w/)Bu@utO-M@ T& EG/F`V!!!!w 0 Fg W:P6x) QU Q PU P P:$x) PP PU P  PP K /)jPV@*@    A * *J P+ Fꆐ@V:F@@     Q1A `F W"* P  QU P P P F P :w) w) PP  K0H-@l$PU [ @?SP[1/,) s0H-@$PU [ @?SP[1/,)pW.)W Pp`V [ @?SP[1/,)P b.)sHӯ ////H- 0 03/0 0(0 /L-M @@ , 2/@P 1/K///H-@Ds@gs4PU 8`V p6Pp .)U48P.)0P0U HP `.)V@@P -)g-)cH- Hd /pL-0MPQ@PU  8 2/P(P& ` K` ` 0KK 0@0K ` ` P 1/` P 1/8P8@XPl B ?P (t}AIKp,1$.JO[ehM-P0@EsQ4 8`E,p '5 %Q 1P 1/,p0A P,0: b-) ,  A,rU 1/1/r0QMrH-p@r(Q `P0r(Q `P"$P%5 %a1P 1/$P(A P$(:-)$ A$`r``rL-4@  P 1/L-8@  P 1/LV `O-M-M@X,)P`@P @0 @ @ @T APPP8/P x0 Qw)?Ÿ#p P# pPP/P T& EG/FDRU!!!!w E W:@vu)' AT! Q @T P P:`u) PP @T P PP(KЍ E,)Z@U@*`L  A * *J ` P& Aꅀ`U:E``    ` Q1!DRE W* P P H" @ P E P :t) t) P@LL(KЍ 0H-M 8@4@.rq 0 $P(  PSTUm$(0 S0"%P1P(Vq`qPP 1/K0O- M@.l>DY T& EG/FI!!!!W  U`: t)`` @PpWKP PP P: et)PpWP QPP pW`P U: Ht)PP @PT Q P: 5t)P P P Q P: #t)P P `V Q P: t) P@A``L@L+)KhP/ H-@PQ A ɫ(P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:Ɜ(UP1U:O-M@Q! `Q**)P *)` VpZp FP X:s) PPP *)PK qpWV U, P:s)PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK/ᾫ O- MHBT7 P`V @T-`FFPF*EQA!.rPP PP:**)F pV  `QX *) @TP`X @Pp <PP 1/pV$ <X ))Kc /H- MHV H- </0t)K-@Q  "5a00P%#u5qQqW P 1/PE PPWA AQ:))AAQQ Q  H-p@W))W Pp`V [ @?SP[1/')P r))O-M@ Q!:Ap  PWP Uc E W@BqaE A qp  ABIa@V* R<))bp PWP U P``V V*))PPPU  U*()qp p ()VbYpG ppX()K P``V V*() PYPU6 U*()2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp ()  "U `PE0U P0Q0 00   P 0  EB 0P ~()K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  L()pK `WO-M@P UWp W G U@BQaG A Q"? P``V V?*')&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  ')PKPO-M@`V WP U*A U@p @ V QppW WD*')6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  r') @KO-M@`V WP U*A U@p @  QppW WD*#')6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  ') @KzH-P@`@FPB* qBA!.rPP5 Pp5*&)F!`00qa`PU EA!! B5V0`Vp PVp @6P@ &)UU H* p+O-M@Q@  P"500`%#u5qqY2 P 1/$)PPU l`V [ @?SP[ P 1/p&)pG PpYPPA AQ:]&)AAQQ Q  KO-M@ Q!:Ap  PWP Uc E W@BqaE A qp  ABIa@V* R<%)bp PWP U P``V V*%)PPPU  U*%)qp p %)VbYpG ppX%)K P``V V*%) PYPU6 U*%)2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp %)  "U `PE0U P0Q0 00   P 0  EB 0P Z%)K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  (%)pK `WO-M@P UWp W G U@BQaG A Q"? P``V V?*$)&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  $)PK,O-M@`V WP U*A U@p @ 2 QppW WD*j$)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  N$) @KO-M@`V WP U*A U@p @  QppW WD*#)6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  #) @KVL-@ LP L-@  !)L6 L /1 H-@PQ A n(P`UH'P`U!* VF"@  o!pr!  ( W   P :@o `UP1U:C(UP1U:O-M@Q! `Q*V#)P o#)` VpZp FP X:>l) PPP R#)PK qpWV U, P:&l)PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWKkL-@ Le L-@   )LK /F pL-@0 % %Q1U l`V [ @?SP[1/ )P 1/") PA:") Ap/H- M   +@1 Q Р .AK-@M@Pprl)$ $QPU6 @ T@*/0`"m)p` ` k K1(  ,I04p` ````` `$``uPP 0([b)1 A  0+S,0  [C  0 u@P   0+S0P  PACu , 0 P8Cn ` (P (0KOa@Plot(P~4(@P #/:FQ]ht(4{?KwV^sqxom.A@@pRX(H_8QDeu* > Y  V jj |j6ȖO-M-MP` (,0q0 s@PV   0wBO  0, p s@PD   0aB= p  0QGa)0 A4, B 0+S0  EB# "R1a)0 A, @ 0+S0  0B(KЍЍO.AffO- MP`@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !!pW㠇  G X :P_) PPUC ) zP@*W    A * *JP i@`W:G``  )   Q1 pGN X:k_)PI [Q` T( P P:X_) P  RQ 0 0S P= P6 PUP P:/_) P Q! PUyP  PP G P: _)P  KT$ P PP  RQ 0 0S P P PU1P P, Q PU"L-@TLL ) )LB ,O-M`0 P@ T E 0: 0p BR'|'' Dp0B  S S S0!0! !pW !Gࠗ  Y : r^) P`V`KX1  P 0PST 0 0S PP: C^) P`VT  P P  Q P  0PS T 0 0S PT  pP `VL-@TL臖 )  )L} O-M`p@A@V( GHP/* AA!.rPP# P#* )pHQz QX  Yp  KOI gKKpBH-@PQ A y(P`UH'P`U!* VF"@  o!pr!  3 W   P :@o `UP1U:N(UP1U:O-MpQ! PQ*a)P z)P U@`V E  R :I]) PPP ])P AX P@Z T:@-]) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, P P 0P0#PV ` P X~ SP   R K;O-MPP @`I  V :p \)`K`pPW Q P: x\)P P Q P: i\)PPP P Q P: Q\)Pq @  [)Y)KH- D Ϡ0   0(H- H-MMPc!PK 1o@FP% Q P* P*P (@0 0 w} PPK( (@ h0oPP  pKK}n a 0H-M@,P Po 0oP K0 K0P P" P"@ᤎP$၍  +@  @K0@^P8/@@P % .AX@H-MM@ P* xnP  )(PP 0 |;K 0 nP K' KT_pL-M`%@PP@ j kC 0\)Fc  KpQ@L-Mc@$KpL-M@= PH  nPPS 3P/ `P@((@ 0nPP l eKp@ j3P  F@P Kp屚P]B(]H-PMPPc m@Kb(pP p!0 |z K `cP0ZP2 P2P}P4Z ͊ ` P@  @  @  ! R0/O/"O$02@ R Λi[)K@'P@@PHP `[L-AMQ 0S xQ*@@ @4⵾ PPK蹾K4,DL-@HP mLNhdZL-@7P mLh ZM-MM@$P lPP  R   R QPP QP P67Q RP:@P(P$ %@ R ( (@ x0ymPPP ៣t  K@4`9@ \P  `0p0W1 0`CR:`P($K(P 0DmpP j? $KP PPU KUvP K! DW 0H-@lP :lP,D%,DG -Z)L 1 A (@ q  0+SP 0຿@@)VH-M P@^@ 0lP K KM-8MM0 QPU  3  2/PP& `$ 0 %K` ` K00K0 0%@K$pKp@`` P 1/  ` P 1/^ PPKCKhI,Iӥ|M-AMP`pP @K@U ^ RP  0PkP  PPUK  UKC GO-MM@P _k`dhrW / ?SP RRP) QP*WU [ @?S WK [ @?S\P W= [ @?SW3 [ @?SP[)1/V )",W [ @?SP[ Y! [ K1/4 )Y `kT p  P  T @ PP ^ PPZTKTUTKUDE@K-AM`P@0TQP  n`aPp pVV $Y!TKXDK-AM`P@TQP p @ 坼 PP LSKCO-l=0H-MP@ P1 hPXR# ^. dRhBT  ?0_U[@?SP[1/ )ARK0 A<L<GtkK-M`R@ PA#P@:@` R@(0#@`H0PQ(0#(````( 0hpPD  0~(0#(k`(p 0hpP&  0_(0#(L`( 0hpP   0?(0#(,`( 0hpP  0 (0#(, `( 0chpP  0e(p0#(`( 0ChpP e 0F(Q0#(@`($ 0$hpP F 0&(10#(`( 0hpPu & 0(0#(T`(8 0gpPX  0 ( 0/h`PH sPPP@  0X2; (P#0P(0X( 0#(HPPPH`(, 0gpP  0<( 0#(PPP)`( 0gpP  0P( 0#(\PPP `(@ 0_gpP  0b( m0#(PPP`( 0@gpP b 0PB( M0#(pPPP`(T 0 gpP B 0#( .0#(PPP`( 0gpP # 0P( 0#(PPP`(h 0fpPh  0( 0#(PPPl`( 0fpPK  0` ( 0 g`P; s OPP3  051KK.Li;Yv ߦ ߦ ߦL ަ` >ަ ݦ\ZݦܦxܦWܦ@ۦۦڦ٦٦O٦ئtiئ/ئpL-`P. eP )@`( !5YP Z dt\ 8 (8 0 pL* .+\ؤl<=L-@YPAAQ  0 @ P LYP;0H-P@XP.AAQ 0 @ PYP  R  x p 0P0 0 0  @ hɸ:0H-MP@XP AAQ 0 @ PU   P K0YPU:0H-MP@{XPUAAQ  0 @ PUC P lYPU7@# +P- P@P(@K0@P P@@PP @@PP  ~K0P8Ҧ80H-MP@XP(AAQ  0 @ PU P YPU @# +P KK070H-MP@WP:AAQ  0 @ PU$ P XPU@#[+P@@# N+PPK0  0K0๷60H-MP@WP)AAQ  0 @ PU P XPU @# :'P  0+SK05pL-P@cWPDAAQ 0 @ PU PP PMXPUp@P|(@pL@P`P@ pL1h4Φ0H-P@WP)AAQ  0 @ PU P XPU@& pP0H03M-MpPi Rc@PPPR ()PP`@`(VPK 8X `0 6_0 (`P Q( {, 0T . 0 KM@@PT(@1KM ` }x1˦\20H-P@[VP#AAQ 0 @ PPWP  p 0P0 0 0J00H-P@+VPAAQ 0 @ P 8P 0WP!(00H-P@VP)AAQ 0 @ P0VP @PP 0o@P 0P/0H-MP@UP|AAQ  0 @ PU. P VPU"@# E)P P@:PQ@,P $(@KK0@!P Q@@PP)@ P P@@PP@@PP  dK0@@PP  jK0{yaȦ(-0H-MP@@UPIAAQ  0 @ PUK04VPU  PP @QP K0@((@ |0_bPP ZK0后L_P K0 Ʀ+K-MP@TP[AAQ  0 @ PUKUPU  P# `(pNlPP0  -' F0  - U K@ (:(@ `0aPP ᗘ KŦ *0H-MP@~TP>AAQ  0 @ PUK0rUPU  P @0+S嫍P K0@ ((@ P0aPP F ?K0Ræ(pL-(MP@1TP`AAQ  0 @ PU. P "UPU"@#$P ` :P P4: 0 S2@@QP Kp@((@ 07aPP 2Kph$7P ݳg¦0'HrLr0H-M@8 T  P (<P Q(  PUP PK0dq(H- Hu /L-@ ),! 0 at @0 /pL-M@P   R( H, $!L1PP P  cR Q(0 0KP (KpPEoH-M` P@P   R( , 0# 1pP zP  CR Q( 0KPKD^P   KM-M0P`pP   R( , (!0@P# 9P$  cR Q( 0FKP #O&KKP  0 K @H- @H芄 @( @gH- A0H-M@0   `P ( P Q( S PS_P rPK0m`PH- HC /L-@ )4! 0 ate @/H-M@PP   R( , p"0`P6 P7  sR Q( P0PJP `PP@((@ t0PH_`P nCK7QP KHH - @JH- @FHƃ @O-,MMtPY B^`, 0 4K4 P IP PpiP/@:Pཱ@piP @ 4PK 0P ( P (K PP @tiT:0P )4PK 0$0K ih0H-P P- ]P@VQP'AAQ 0 @ PUKRPU P0P 0P  Y 0DA0H-PP- ]P@QP'AAQ 0 @ PU  RPU PP00P  _ 0pL-M@P# Z]P0` 0 0S R( @]P  =)Kp ѰO- M@R` #P`:` R`"2 0"2 0 "2 0(0#@0i( 0#(\@@@ P(@ 0b]@Pn  0pd( o0#(pppP( 0B]@PP d 0E ( 0]PP@  QF@P<  X(( 80y]pP1 ( 0p]`P* X  P .@P#   0'   -@P   0'KO&HFDB@><81ۥ @*` O-MMP{P I\`P@P @I 2/pPe P] P P  @R Pຯ@K ,N!,[P (P A R F(P@ R:Q6*(P @@ K,N @$R 00S00S 00 \"000S0Q P P @@F  `P h4@l 4R(<@80 @@ F0pw @(P @@ TjpPw 0S00S00 S 0`V``V00 S! 6KP*h4 A P  P@@@@P HLpD H P9 R  R  R  0S00S  R  5$KQ*@\0 b P  P@@@|@P] HLp< @ 0`YDp@p 6[PH@Y5[P@DK8@P p@(<,HNK@6 NK40N4@0 0  $x @PPP7/DDPP 1/@K,@N@PP 1/T\ PP mFh PP f$ PPK^Kwfu s[hX`UXR6KTMLJ8G5K0B(?\\\b\T\|\\p\t\0H-@ P" ZQ#P Pᓾ 2/0 P 00 0@ P [2O-,MM 0SQ*(&C$Pʫpu*@ P*T` p(`@ ᱫP` 㥐 EY  0: 0 p BR'|'' Ip0B  S S S0!0! !!p堧 W GPP Z @:  @F)@ @ ` @P``VD P (hP Q(  PFMP PK0SH- H} H- M0$  0 Р+L-@(4 0 a@@/O-M-MP@P `pP  @ %P Q AW S0PYQ P`㠠Z, (@p  ⏊L p 2/P 1/P  @ %Q  0 3/P P  R  RYp p 0B0 b0B0P$B Q:x(@0KЍI/H-@PQ A !|(P`UH'P`U!* VF"@  o!pr!  ۨ W   P :@o `UP1U:{(UP1U:O-MpQ! PQ* (P "(P U@`V E  R :C) PPP (P AX P@Z T:@C) @T`X} @T Q*  P`P  ` `& Pa0 0V>V R 0\3  P+a` XD 00V/ V0, FP P 0P0#PV ` P X~ SP   R KO- MP@(@ էpB*` P*PV p'(P`P  ᾧpp P$Q   @Q2sp@Tp  ((K茧O- MPYD Pp0`p``p P `p⠀Xp1W @Z @ᗧP p P*PW @Z@ ႧP p PP X:KPK PK_ pL-@PR `[#P:$ RP# 3 0 "2 0 "2 0 "2 0 "2 0 "2 0 "2 0 "2 0 p"l2 0 \"X2 0 H"D2 0 4"02 0 "2 0 "2 0 !1 0 !1 0 !1 0 !1 0 !1 0 !1 0 !|1 0 l!h1 0 X!T1 0 D!@1 0z 0!,1 0s !1 0l !1 0e 0 0pL] ֚Ś,T|sfXDEl91' 4陦\͙ۙ$Ltnnj_LL-@Q@ P 0 L-@Q@t P 0 L-@Q@ P 0 L-@Q@ P 0 L-@Q@ P 0 L-@Q@ P 0 L-@Q@ P 0 L-@Q@ P 0 L-@Q@ҷ P 0 L-@Q@ұ P 0 L-@Q@ҫ P 0 L-@Q@Ҵ P 0 L-@Q@һ P 0 L-@Q@ P 0 L-@Q@Ң P 0 L-@Q@Ҝ P 0 L-@Q@҈ P 0 L-@Q@҄ P 0 L-@Q@t P 0 L-@Q@n P 0 L-@Q@g P 0 L-@Q@E P 0 L-@Q@? P 0 L-@Q@X P 0 L-@Q@Q P 0 L-@Q@ P 0 0H-@PP@P  P@ P0 00H-@PP@tP-PP&PPPP7PP@gP @7P @P 0 0@_ PO-MT  pR Q Q Y: J R: Q B R* J` Y$` (` ` Lp *P&, p0 Sp W:LpAp* PP * G PX$(KPX  ܣ([(KP @T7:@ ('[$ ( G PDX H BRe:(KP`juX1 P `"`#(  @ኣ U (`$ ( @ P @TV*(KLp`&([ ($PAZ P) p$ꡠ PZu  `P`ju P1 P"# ( pE U (( p P `X&<$ p(K Lp@T:([`$ P @T:(KLp  $ T4`  q8` @0` @T8[ 0(([ (K YP @ P 9HK-!8KX 4 D,H8 <D8,P TP o0$L(0 Y05TPb \Co(b ptDd TTh  ` Tp  P Q< pĢ0 pP :SL #CP  AS V- HX 8[4  R& TPp 8[4  R8P% D$Pp X8K P 8[KTp T@ P /T \T @P& ' /S P\S @P 0 P Q4 RP  JP:AAqQ|Q:Q P  #@Q00A\P P0 P :R :R  A@pP T,X X     @ /S P #CP@$0xxx( 8[4QY 8[MḃKO0Cp P8[  84pPAPW P 0@ @P< #SP7 #SP PWTP  040 # L P W  PT R W  8< 0@0 ,  W  DH 0L E T@/S /QP A@pP8[Ph 84pPAWf Pm 0@0CA@q Q:pQ-C"Q#*8[pP 03 84pPAPW P 0@@/S @/QP #CP  AS\SBTPp8 [4PQX0AAqQ@:P|P 8[4Q XD H HK@ 8K PC DPH[@ Q @`T P TK @TPpP  040 J s L0P >WA#W /W UT@b P P/Tl \Tj V/SS8[4@@DP\0XX .A/S @\S PE FT P /U P\U6 @P5 0 P.Q4 pjP$#U ?UP P  @ W ,0 040 H  W  PT   W  8< 0@0 , ?SC P#S PP TPD H @ XQ [@ @ D H T TS( PSD[@@aS #C0oX  hA 8K P8[4Q` XH8K c P\ 8[>KTP P@D 0?T 8P ,rTCo@pP?Ao#CoP& 8 [4P QX0 0P S*p0Lp0AQ: P Y T@Pp@  P Y ?W WLp  W   0 0 8@ W@ $ 0(0 D W ,0 040 HP W  8< 0@0 , W  PT P /T @  W   0 0 8@ W@ $ 0(0 D} W ,0 040 Hl@ Ya 8,@P@!P P @PQ4 _@PʞPT B @ Y6 p PPWuS PX0`0`ju P1 P"#( @v U (8 0@ P04 04 TP P L@404 P8  AE 8KH04 TpI,^H^ꈈ@Su Vs8[^ 84pPAPW\u PX0ju P1 P"#n(  ` U (8 0` P?P#T0 /D  p PPWRu PX0`0`ju P1 P"#8( @՝ U O(8 0@ P04 p PWu PX0`0`ju P1 P"#( @ᬝ U &(8 0@ P04 @@P@8<@ @P(08@,#S [0 8@ 0@ 4@ CKh@P YX@8K0:S +SU Tp STp 8[4Q 8[| 84pPAWzu  PX0``ju P1 P"# ( @D U (8 0@ _LpVzP  W   0 0 8@ W@ $ 0(0 Dp X ,0 040 H;  X PT ݘPPT@U+ D P!  PQ< P P :Q:Q A@pP:P u B(TP p@ Y^҂Lp  W   0 0 8QP@ W@ $ 0(0 D? W ,0 040 H. W  8< 0@0 , W  PT RvP耦Lp  W   0 0 8P@ W@ $ 0(0 D W ,0 040 H W  PT 8[P 84pPAWu PX0`0`ju P1 P"#b( @ U y(8 0@ P0T@Pp l˳H˳H+(T  4`8[p*pX P8P @AU P"#@@"Tm TZX0X0`(   `ᾛ0S 7((PR 4P 0 8 N8[ 84pPAPWuk PX0`0`ju P1 P"#( @᎛ U (8 0@ P0dL@@DH@ L(D@ [0 0@ 4@ 8@ STp 8[kCK@ Y0XX  %R 2R A Br R 3eAo/ C/o!" T TXXXX0.PP@TPT E P PQ< pH0pPr Pl:Q:Qf A@pP`*@gXX0%Q& .Q%Q2QXX0%Q2Qv A Br R 3eQn%Q2QiAAqQ 3eP `40T@p q@</S- @S  X@8K0  X@8K  LppzTp P  Aᛚ 8K{8[ 84pPAWuU PX0`0`ju P1 P"# ( @x U (8 0@ P0T,X P*p PWG P 0@4 ų\%8[]pSp 84PAZu PX0pju0 Q1 Q"#p( `2 U (8 0` 0p|p PPW{ P 0@4 HK@SH[0 @(0PPTSP   A 0@4@ @ Y"L H p PWY P} 0@4 }p PW P{ 0@TP4 {2Q^ A Br R 3eQV.P Rp PPW P 0`4 ?S#S9 X@8K0ꡠ PZb P( 0`4 (@ t P(0T@/CoYXT *> @zGX@8K0 _%Q2Q  PQ< `P 0P0TPT T,X P* [0 0 4 8 T T8[ 04 8K@W08[K P P LQ< `S0P #S Lp?S  @ YFa,t#S S?SZL* *JpP@T@AQ:Q Q P@ppp i(p  ppp @ULTQ P u Q(TL0* *JP@T0@AQ0XX H0 A Br RQ|Q:QM  0 R QTPpM8[K8[ 84pPAWuX PX0`0`ju P1 P"#( @{ U (8 0@ P0XX.P)X@8K0X@8KTP:8K*TLpp (Z8 [4PQX0 4lP`q@@ @@ @ (@ [0 0@ 4@ 8@ RZ   8[CKTp P0@4@ Tp@ P`PU <V ((P  P  0  U1R4 < V#PU < `0pW* $ZP /Q T1X P*T TX`8K@ PPDP PH0HKS H[@  P JTp P@H[ @(U| 88[PSK@H[0PP4P @H[X`8K[CL oL 0 LpPT(X0(X` 8K尨 (8K0 $08[4PP!UF QX0 p` :QL  X0:QL 0@&   A' DD0`l  A 84DF 08B 08[`UP$0 K04  ( PLp 0;,H Y +p PWR P: 0@4 :04 @@ YyAAqQ 3ePW00(0 PU  PW ,0 400 HU YMlX@8K0 @P W ,0 040 H5 W  PT j W  8< 0@0 ,D MPw @ W ,0 040 H W  PT 28 *,P"8t JpPv:AAqQp|Q:QlPTp YZ 40 YLLPHP(@P

(PQ p p Ho2`@ V-000SQ:w,(0* W @( ( 0,(P k `py@%T kP y@%T  A3 (PZ:>( (,`@AV P' 0P"` @Vt P0ppjt P1 P"#k( P T ((0P p,P(Pi`Z:@PP c( 0 0,((KЍ@PP J(  (KЍ( 07((KЍ0 T  /BP*t:PQ 0PDuP U*tPp W:P`PA`@V::Pp a`@V*APDuPU7P@p W:a@DPt@TWP@2p W*0`@v@ T*BpP WT:.`@8V| @adPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPA @Br R*7`@pP W :6a @`r RW`@2pP W-*0`@v R*BpP WT:".`@8V @ahA @Br R*7`@pP W :a @`r RW`@2pP W*0`@v R*BpP W*:P0 S*@T PQ:.`@8V @a8$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$A @Br R*7`@pP W:ka @`r RW`@2pP W:aXx0 S*@ TQWg@TW?ʄW Y7: *) d A*1{U 0+S0 A(` &Td p  0+Sˎp *) 1 A2G`H*@ p B Pp" x((KЍ.P PPX Q  @A0 Sp``p p0P(KЍ@` V* QPU 0/S u.PS` V*P0Ep Pp@u`t T qP V*pP0@Et@ T@:Pp0PUS 8ఏ돍,ଏ$੏ p@(O-,MP`PP   PP (K@P$@ @(@H Pl0`(1[ (p  $0`SXVS0p0V0Wv S0 pWw S 0pWu S0 pWs S 0pWq S0nt(@ (`$@@ᴄt0 Q p0  .0T4 ?0  .0T8 .ތ0  .0$< ͌0  `X0  pWP0 pWR0 pWP0 pWR0 PpW S P ࢟ p@P P`  P( X `0 ͌} UI  $`pAV P4 (/0U,  `1`/` pVww (P jw P1 P"# ( F W ( ( $ : pL `P@U:  $@`APT P& ( @ `PTv4 (pP pjv P1 P"#f(  V }( (`$` ] (   PPu Kڋn765<9]Pc x||||||||xx||x||||||||||||||||||x||x|x|||||||||x||||||||||x||||xx||||||||||||||||||||||||||xxx// O-$M@PR `ᔴ#P: RP/? 0м/? 0M/? 0F/? 0?/? 08/? 0୼=`4P 0!:pP 0+Ssf0  =`P 0:pP 0+S 0Vf0  =p` 09Ps 0Z 09f0 hf =p` 09PPZ 0+S f0 KM u=pD` 09PPA 0+S 0e0 .4 X=p` 09PP( 0+S 0e0  ;=pd` 0u9PP 0+Se0  @@P@`@p@@@@=p^` 0K9PP  _0+Se0  <pCX` 009PP 5 _0+Se0  <p(` 09PP N _0+Sge0  <p ` 08PP g _0+SLe0 { <p ` 08PP _0+S1e0 ` <p` 08PP} _0+Se0 Et o<pP` 08PPh 0+Sd0 *^ T<p` 08PPS   0d0 H 9<p` 0s8PP>  0d0 3 <`kP 0X8pP'  0+Sd0  <`PP 0=8pP  0d0  ;`5HP 0"8pP  0+Std0  ;`P 08pP  0+SYd0  ;`xP 07pP 0+S>d0 m ;`P 07pP  0#d0 R |;`P 07pP  0+Sd0 7 a;`@P 07pP  0+Sc0 } F;`P 07pPq  0+Sc0 f +;`xpP 0e7pPZ  0+Sc0 O ;`]P 0J7pPC 0+Sc0 8 :`BP 0/7pP, 0+Sc0 ! :`'8P 07pP  0+Sfc0   :` P 06pP 0Kc0 z :`hP 06pP  0+S0c0 _ :`P 06pP  0+Sc0 D n:`P 06pP  0+Sb0 ) S:`0P 06pP  0+Sb0 KO谮ҮY꭮dήpꩮ}ʮꥮƮꡮ®Ꝯ꾮ꙮ꺮ꕮ궮^걮)23(>ꆮIr2.Sꀮ^a2i1zsꛮQ23tꕮC2oh5j72$7dꅮ`2[|W xS$t0O;pGKRl^Gihu1Bc>_:[6W2S.O* K]1%F+!6BBM>Y10M0/Z//.S.--[-,,6,++)+*y*,*)e))(7('t''&O&%O-gMMpqP ?5Q 0S  R* 00S00S00 S 00S  R @P Q @ 0S00S   R@ 0S PX  B 0SY00SU  RQQY@PZ PA R  R Q (P @ R P>@P? (P@ D⌫P @PD P6@6@P6  @ 0S P  @P Q@~P&@uP@P@K#,N,[PX ( L@D0P 00`BP@@`(KLNSlH ` B8 B( B B FTP,!@P HP m'PP,"u@P QbP^K(,N ἪX P,t$X$ PBW4 0G BR:`P$juW1 P "# ($ @J U (@ \tX`D! BPPB@W@R`DP@W  DXXBA\tK$,N PP %,L"@P} P~ &TP { ,#@P! Q"P*K(,`N :d ,t$TdAE W&0 G 0CS:ldP`jzW1 P "# *( @DŽ Z A(K@,`N htdlDlDP@W  ̈́ ddht$ PPP@{ꭄP@w īOP ߫ݫGPP @b ,0"u@P QP*K(,`N Ἡp P,t$pPAE W&0 G0CS:xdP`juW1 P "# (  @I U (K@,`N ttpxDxDP@W   Op ptt $ PP 2, 0Y8z5P@`KH,@N k BK.  d  ,@  0<P (d [, ( 0(/@Pg K<,N 0(D KyKNy<KLNDL PPK#K_Q LYPs|SQQ 7KQ> EQ ?Q `9Qg 3P-lPd'Q xQR \<4ځցӁЁ _Ht\O-,MMPTP ".pP QP*@(y* Y*Y q@(pP `RP$ p Aa ~ Z:A  @AY P' P"ꡐ @YtP P ``jt P1 P"#( P4 T (P  P p`PP Z:@ Pp( 0P.P  ($ PPKKJ~0  pI̩(H[O-$MMPw Y-Ps RhQd*@xPi (P @ cpP@@# P7 p8 W0GP5`P`>K6 T R k`P(@@?K7 T ` R:( 0@.P  PPK~K袥 p\뾥H0|yvYDK-CMPPa ,`P] QRPN*$@(ሣ$ ,0  P p 0 ( P-P)  ( PP (P (0Z-P PP , PPK~KDA( WبK-CMPPb T,`P^ QSPO*$@($ 0, P p, 0 ( P,P)  ( PP (P (0,P PP , PPK}KΤˤ( U HpL-PP$ +@P P PPt(`P ftU tp@Pt(`PUR OUdhO-MqA*`@p @W P Q"#PA"U, UX n(X `  `  |Z u(X `KK|O-Mp@P⡐YW:UR P A JQ3*` A FQG:P0jzV1 Q"# `(`W  | Y | Z (( ``| P Y` p|0 |`K|O-M@`* *JUU@UUA@Pc0CA* *@QPPPS (`  pv!  H* V*PVP (P`P >|00 AV  VPP G pG 000 `FPPPPp  @ t (UU KOP KP|O- M@* *JUe@UeA@Pe0CA* *@QPP`U L(ᅠ P {pJ*p W*`W   0(`p` {00 W  W`` E PE 000 pGP``PP  @ t #(VV KOO K`{L-@(&  0P0 0  L-@(  0P0 0 L L-@(.  0P0 0  pL-MMPP2 R4Q0*P @@ ҝ `|P P0  3*P  ( PP Kp@ R ;}2{Kpn8O-M`R <#P: R` (0S*@P V0   0@*@P yV0  p 8!0-*@P fV0  ]  0*@P SV0  J 0*@P @V0  7 `0)@P -V0  $  0)@P V0   0)@Px V0  p s (0)@Ph U0  ^ 40)@PW U0  O  0)@PH U0  @  0)@P9 U0  1 d%`5  0P%L5  0<%85  0(%$5  0%5  0%4  0$4  0$4  0_$4  0X$4  0$4  0J(,`,@pp 0(PP 0+SU0 = g,@p 0(PP 0+ST0 " L,@p 0(PP 0+ST0  1,@~8p 0k(PP 0+ST0  ,@cp 0P(PPz 0+ST0 o +@Hhp 05(PPc 0+ST0 X 0{(@PQ  0KOHjE#f*A2b9=A^H9PZW5_Vf1nRu-}N)J%F!B>:&16=H2T _.k v*&"^3~IA4`',  x   @dXDpL-M@KPY 'PP6P P@qPH@jPB P`P@@Pz@`F# P P*!2/ `@P Kp}P:Dcz뙟 KpZzWz뜓AȒpL-M@Pe &PPP P@PT@PN P`P@@Pz@`F# P# P$*!2/ P0@@0@P u Q 0 KpP:4yyy4?M-@PJP@CP `p41VP@=?`S V > UP pL-@P EP P ! @9Pp@P0`?? T? V` p0H-@[PP@P 0蚞 0H-M@PP'@P! PB %PPeP pP K@ePK(0 0`j 0( P 000 ] Vp pKy;pL-M@PA Z%SPwP P@P0@P* P`P@@XPtx@`F0 P Kpx x:Ȍl|],/,/,/, /,$/,(/,,/,0/0H-@P $(P QP 0xx90H-0M@P( $ @P(UP  $@`@ B `@ A 0 `@ A `@ @ @ K0Bx?x8O-M@P' $P 삕X! ( U`P  Pp@  U p`V@ D `@ @K xx7DL-M0S RQ*S @@ 9XXK@ R w넉O-MPR @#P: RPx&t6  0d&`6  0H(Q0( 0 $@PM QN H 0B  0$@P@  Q  0$@P2 P  d0$@P$ P  (0$@P P r 0$@P P b 0$@P P R t0s$@P P B 80c$@P P 2 0S$@P P " #0C$@P P{P S i.pZ @P%  S 0#`P  PZ 0$@P  " 2P 0% QQ(Q0(  #@Pp Qq "0A  ,0#@Pc P  0#@PU P  0#@PG O  x0#@P9 (O xD!@1  0ཥK蒛QUv닛ꉛꇛꅛꃛꁛ}{,y:wluQ8vnljhx-vt*v0qjVvI(l<hp z`SK-M(P (@#00@0w`-İ  ( 0&#P4  ӣ5(١0#(@@@V@( 0"pP Ξ 0Jᯣ @P    ✴K8zФK-M@ R  R Q- )P& !h(`Q@@p0p  P0P5d@P,D8PK(nukuhu`<`-DpL-AM@P^PBP\AAQE 0 @@ `VC ,PM PS@ t PF P@P@@P: P@@ 00P @P PP sKp`VKpONP8t0t(t ttL~+~~~M-M@\0p`PP0m4dP,D嗿PKt}}K-M(`P @p(>,40PEP  s@dP  s  Jt@dP Bt( M, PA   R( b gP @P 0 |8 aKH-  , $00$0 $RHBF /L-@(4 0 r  h% @h/H-M@rP`(P#  P!PpP 0Ph Z PK\t<<x0t(t tݥ,ݥ<{@{D{{yL-@XPZOHLnL-@7PL&pL- P@GR `$&P =(`p0H-$P@PG0O-M@Pp P pKO  @IP)*AA!.rPP P* (`Iq qY q X `p (KO `cqpL-M@Pe `P$$P&`%q rP 0 r` qPVP$ ㎈J Kp$IsFsCsPxTxXxM-⠀@`  pWQW  PBQ )q :@Q 0 SppWs4wH-P@p `VQ V  PBq pH@Q 0 S``Vr wH-@Pp`V`P@ %$P peqP$pL `pV`ru MK-l`  ~%p P@WU`U `MT W M-h@@a%P `pUVV @@MW`UP< I 0H-P@>@M0L-@PP   P5r2r@+PtL-@A$P   P (rsO-{<:864Tĥå 쩤pn¥¥p0H-@zP H$TU n P 0jj$XL-@P" B" &(T L< O-M  EPT& G/FbV!!!!w + F W:@)% AT Q @T P P:) PP @T P PPK 㶺(j@V@*P  A * *JP P& AꆀPV:FPP  Ch  P Q1*bF W* P P " @ P F P :l) g) P@KM-M @N(`ddPPp pPP P @ P` 2/PP 1/P  @ %Q  0 3/ (PPpP`P P @V  P` 2/PP 1/P  @ %Q  0 3/ (PPpP`P P @%@ P ` 2/ PP 1/P  @ %Q  0 3/(0"0K ?{ϼ e" W/r+F //H-` 0P@P'  0`P! -M`,`P $tp 0mPP  0 ][YW2茺H-@PQ A 1:(P`UH'P`U!* VF"@  o!pr!  f W   P :@o `UP1U::(UP1U:O-M@Q! `Q*(P 2(` VpZp FP X:) PPP (PK qpWV U, P:)PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWK.fM-@MPp @` 2/$ @ ` ```f 2  (   ``` &    K```([@QT u(  (p( k( f(K (KT eᝤ_K-@M`@ Pp 2/,  p pppe ֚  (   ppp ʚ    Kppp([@QT (  (( ( (K T (KeqtO-4M*`w$P 0dpP ꊴ >ײl0+S@0   `TdP 0ApP 0+S$ 0 @0   `7P 0$pP 0KX 0t@0  s `DP 0pPh  0+S 0W@0  [ P` 0pPO 0S0 :@0  iB P$` 0pP9  0+S 0@0  L, vPì` 0pP  0+S@0  1 [Pᨬ` 0pP  $  0?0   @P፬` 0zpP  0?0   %Pr` 0_pP 0+S$ (0?0   PU` 0BpP 0+S?0   P:` 0'pP  0+Sy?0   P` 0 pP 0+S^?0   P` 0pP  0+SC?0  rx P` 0pPm  0+S(?0  Wb PΫX` 0pPV 0+S ?0  <K fPᳫ` 0pP? $  0>0  !4 KPᘫ` 0pP(  0+S 0>0   .P{` 0hpP $ (0>0   P`` 0MpP $  0>0   PEH` 02pP  0>0   P*` 0pP   0i>0   Px` 0pP 0 N>0  } P` 0pP 0+S3>0  b P٪` 0pP 0+S>0  G{  @ mPẪ0` 0pPk $  0=0  (` RP៪` 0pPT  0=0  I 7Pᄪ`` 0qpP=   0=0  3 Pi` 0VpP' 0 =0   `NP 0;pP   0=0   `3(P 0 pP  0+Sr=0   `P 0pP 0+SW=0   PX` 0pP 0+S 0:=0  i P  0P  0{V 0=0  L vPéx 0@P  0=0  0 Z`᧩ P 0pP 0+S<0  w ?`ጩP 0ypPk 0+S<0  ` $`q<P 0^pPT 0+S<0  I `VP 0Cp@P< $  0<0  1 `:hP 0'@P%  0y<0   `P 0 @P   0^<0   `P 0@P $ (0C<0  r `0P 0@P  0(<0  W `ΨP 0@P $ (0 <0  <KOއLۇWcׇp|Ӈ꙱·ʇ P@Ç꿇껇܇ 귇:ׇ 겇- @·4ꩇ?ʇKꥇVƇbꡇm‡yꝇڰꘇ깇ꔇ굇ꐇ걇ꌇꭇꈇꩇꄇꥇꀇ&n1{<꜇HwSꘇ_sjꔇvoꐇkꌇgꈇbꃇ^Z{VwR%s1N>oJJW겯jcEnfzAb=^9Z5V1RR,M(I$&E2;ܭ{%ĬgDԪp @ߨ~R7ۥzĤde<O- MpRP @#PP:PT RP(0#4p0L㙜} ڋ( ẍ0#(ppp7p( 0@P ᯊ 0*Ꮟ( ᚍ0#(lp(P 0m@P Ꮚ 0 p( {0#(p( 0N@P p 0P( [0#(؋p(d 0.@P{ P 0̉1( <0#( 幋p( 0@P^ 1 0`㬉( 0#(```噋p(x 0 @P@  0㍉8 (09pP0  @P)  (  0#`P ( 0@P  KO ( F c\l10 장B~@Üp2H-M@=PV  PPCP P  @8P,`@X`ΰ(p@ K@#0U $P& PhP0 |@0 EP EP EP E8Px@ P0TD8 `K$O` L`$/d/A.P/lO- M@ϾP6  Q3࣐ R  R P4  P X*Q@ R  RPPQQ@|PP @ R Q@mP@fP PP`A@@`A ^P pP @@ NP PuPP!*_JQ@+P PP`A@@`A #P pP@@ P 8PP!*_ @PbPAAQ` 0 @[ @T^ hPwkPwiPwjPwlPPilO밐崠$P", "D(!1 0߰P\x_/RU, |uePQ:|(@"`Ra/ /"@P9uP 9K@TKK_^^^^^\^l^d^\^T^L^D^ج*t***-*-l****)O- M@WPE % QB࣐ R  R PC  1P$ X.*Q@ R  RPPQQ@PP@ R Q@P@P PP`A@@`A P pP @@ P PPP!*E^ҬQ@ⳬP PP`A@@`A P pP@@ P PP!*^ᕬ@PPAAQo 0 @j @Tm hPkPiPjPlPPilׂ밐崠P 1/gP pilPe Pl!0 ಂx_/RU, |uePQ:|(@"`Ra/ /"@P\8uP N8Kx@TKKz]w]t]q]n]|k]Xh]he]`b]X_]P\]HY]@V]64%%H%L%(`%'P\%`%d%h%##L-@)PAAQ  0 @ P LP&]<O-uPPK ,DP ,@ T:J,@P ,1,(P ,,0!PP& -XP ,@ T:#, !PP ᳫP , !@ T: JsHsFsDsឫPN, P #@P 4P44 ,$#@P %P44 , @P P04H K4 ,D`@S T0PPU P(sP(,0dPS]p]P t(,0,P P,0HD@DH4D,D$DD O-M`0(j0(}$Q(P 0Q,0((p0  ?u @Q01 (PR,0r H00"H0 ( W( 00  K 0(PP,r:!D 0tPPB  01 0 ,$rZ0(H0  " ' 0>>백\hBwO-M`0FC!CQA KORZ @@@P6U 0PP p(W( VK>ЮO-M`PW PPUMp ܎(`@pI  <WXE p r0X$P@ 0! @P0 Q !p aAV 0P&P @@@PŎ(U PP PP@`綎(Vᱎ(K8G>0D>(A> >>;>ԮDH O- Mp@`A@WO PDEPZ* A1A!.rPPJ P0N*0](PEQ < T  10Cp B"! 4Zp  @ T@ pp@`4V 0PP PM(UH( TZ KO ;KK=;XO- M`P6 @ Pᢀ   0p$DP#  0Hp P; W  0 P pp pK=넬K- Mp`@b PQPQP*PvP `1/p1/W@1 3;@`  0P"`  0@  0c`=PM `1/1/`T l" Q* p00SppW 20`V:|PD dp1/`1/0SX  C=QQQ  Ap=W !H RQF RA T8 `  L R@*0QpW00S9 20` V:1  0 S# Cpp=WQ pA``=Vp! WQ W ` ``Y`i{K}< z<9p8plQH- H//H-M@P`paՊQ P 8{K8ۛP U7`0t@P0""   RQ RzK < <ئH-M@ `pP}asQ P ᚊ zKցyP VM @P@P zKqQ%  0App=WQ 0A =R ! RQ R #n zK?O-MPR :& @1 9KpRS TKStPWW QP:u  0KO  0/P& @2 y9[嫊 ⪊J`V@@69PA `တ GY up `0 XP`#?&ca%RR @`0P@0`:ꇐP @@ 9P" Y 4I  0pP'bpp`Bp  0KO,  ҊPhtaW@@8`P   8 0KO   r R#P:G ,R @,1@H R:  L00s Q:  0KOQW@@8P W4W W :_ 0 *cQ!B *BP G0P00R0 ; Q& Q6`&q`pp=ppp'*  POp  0@0S@@`G0&S4P`%qpp&bbq`p=KOs` 0&S &V 1_ @*dQ!B*B^ !A0NG0S  0R00@QW _ 0 *cQ!B *BP 0GP  0KO-^7Pa^7P^7`P^7P4$9-+Y-' -@*),O-MPR  @`@R 0`P `!p2 77KT`K߉(p!@ ``1/" @@R / /"@P?Y P 0V K1/< @2 7q`K&%M-MPR  @`pR  0{P KTK67@P  7 0KMdh @ 2T76K]7@PK$F$O-MPR  @`@R 0`P d!p2 !76KT`K&(p !@ ``1/!ဠ @$Q @@?!?#QZ P vV K1/< @2 6`K#X"K-MPR  @`pR  0}P KTKv.چ@T# w6P  X6  0KK^t @ 26wK]X6P((K L8!J!hCpL-M@PR :D ` 1l6Kp0KpL H-Mp@P`6 0@KpL-@ 6!1/`"PR/ /"@PV   R0 p pL-@5!1/`"PR/ /"@PV   R0 pL x/ /H-@5!1/!b R0V`! @?!?#QlV   R0 ܕH-@5!1/!b R0V`! @?!?#QBV   R0 HJ 4/ /H-` 0P@P'  0`P! =`<}᪘`P 4}tp 0}PP  0ᰮ m\k\i\g\B\uƣH-` 0P[@P'  0S`P! `|i`P |tp 0<PP  0o ,\*\(\&\\ţH-` 0P@P'  0`P! `|(`P |tp 0PP  0. [[[[[ģO-Mp Qp1R Q : :JၠZB dqp 0`@P@0P`@0PHl0dP`PH  0:P#  H P Q1:PVJ&[?0P@PP&Q000&6Ve00P Q1:P 5Q1:KP 5Q1* 0 KtK- @` P``p@W:=U V@:@TP5U1:P@@`@V:=U T:@PPVRQP@TP5U1*P@@p@W:=U T:@PPWQRP@TP5U1*P@@`@V:=U T: @@?@C@ R* R3O-Mp Qp1R Q : :JၠZB dqp 0`@P@0P`@0PHl0dP`PH  0:P#  H P Q1:PVJ&[?0P@PP&Q000&6Ve00P Q1:P 5Q1:KP 5Q1* 0 KO- 唑p `p@VPGP@^:U *p`=TU@5T1:@p@Z:W*p`=T `@PPZRqppW`5V1*Pp@p`@V:W*pP=T pPPVQ RPpWP5U1* @P@p@W:T*@ =U ?psPPp R* R3O-M0`@CPP*pWe Q*S-V#  R V#Q: S1  (pPQ K` `FpVp 2`F @ !0ppPSp 0  PmP q  P PV Pq P/ P7Fp2 R  H0S} pQz*0CpW 0 S 0 S  QgpQ ## !B JV  P `FA 2V 0p pS 0 P Y  ppKT YpK  rP YPPPQ" P Q $pKPYT pK33 3hLpL-M0@`CP:S S  @ApPU S 0KpP P TKppPU P KpQ Kp 3|3 y3($,7 JK-`~Z 0净(p@PP  0  ̪  0PP  0  Ṫ  0vPP  0  ᦪ p 0cPP p 0  ᓪ ( 0PPP ] 0  ဪ  0=PP J 0  m fP 0&@P  0- L 0@P  0  0@P  0   0@P  0  0@P  0{ \ 0@Pt  0ݪo  0@Ph  0ͪc  0@P\  0W  0PPP  0  ֩H `!\1  0aL!H1  0KaWaWW]W~W YWzWUW#vW*QW2rW9MWAnWLIWQjWXEW]fWdAWibWp=Wu^W|9WZW5WVW1WRW-WNW)WKh+4_40443ijS3 \ pL-M@P qP" PP@@␀`R@A]0 P Kp@NP1~L-@P @P P @2P18~/ /0H-@PP ,P P 0HI@P1@0H:}O-M PP P P" P@P PP@ @֍PY1@ݎPP1@ APA@zP p%TP0gHVDD L:VC*AT, (/P# P& DH`QL !1/UD`0` V P ذ@DQLDQLPU: PSV ,pPpPU(V E ᱰ@bP) `uP (@墰 @P  MP(4 04P2 (4 0\4P* 80` pPW:Y P.,pP  h@ P,pV  `, P L N@U(,@TP D QL (D QL 0Z:+U:E$ P (`pP ,(`+ W(0$ D QbL Q(`P`0Z:0` 40 @ CXP0+Sq 0  ᪧ* 4p"P pL 00 ᝧ < o "Q3  8@ .LPPK.KUUT-Pt/T-PDX/4/D/ / /$/y`||! N("`wyH- MpPP/ZP1 _P -@P@mP(@^*{K@\P P`P@@(Pp/@`F ~P@@.~A 0@P ,0T S0@*@0#  @ SXp0+S0 Ӧ p"P pL 00Ʀ K_T]T KYT A/$vpL-M`@P(!U(@@1/P , @QP   R( T P PgP 0 [Kp/s//H- @1/P   R( T///pL-R``P@,P  pS,T Q.M-MPU9 p@`(BT0UTP.:`!-P  `P  k,t^UmK ZS-P,.S..r r8K-M`@P 2/( STpW[ P(>Tp(D1/(@ 1/P ( 0@P6 @$1/,!*@$ t P:, PA   R( T P @}P 0  ZT mK0St P*NS.DppL-@hPU `1/U PP``PPpPpp  Q   R R  R R  H- -opL-@    Q  R) R  R# R$ $|PU `1/U PP``PPp-oonO-DMMPPn `P%P' PA R V@ ROQK*P@PPpA@@ՊP(H-@@P@pAÊP P@@(@ 0`@P D@Y@ Y F01/ZP?@` 0(  A 4 88$ < 403/4<` pP!pG 0X!P PpV`*PP 8 p `* RY ``P*pP (   0; P R   $<801/P@ p`W9 8 0`@c, @ ,cXp0+S0 ] p"P pL 00R ( R Qt $p*KhKWPfAAQ) 0 @$ P& , ,`0k`(,0pL P0ã, CX` 0 ᷣSQK *P GQEQ( RP'*Y pPW!,pR2QP*Z P <P2H,4 ,< ,8,(,, nLi iTijO-8`@ 0@P `叀, 400,@03/,4p@P!@D 0X!P PW``1)P 0  )` WY `` )P @  0p` W  H4001/pP P`W6@0 0㹌$ @ $cX@0+S'0 `^ `"P `L 00SS P Qs  (KhKPeAAQ) 0 @$ P& , ,`0Ģ @(,0pL P0, X`C0 OKPKOO PBO~(Y] Z[x*O5Oq(W Z 4p;Hh*4e*<b*8_*(\*Y*H hbb8 b|cO-(8P 0 Hp , 004,03/,4@P`!`F 0X!P PTpp' P P0 ' TY ``'PP (` B0@ T ~0401/PpY60 00$ @ $cXp0+S0 נ] p"P pL 00ʠR P QrPP @?'KhK &PdAAQ( 0 @# P% , ,p0;(,0 PL P0ᔠ, X`C0 ሠ$NKPKNN PM&PYa U_(NM&PT U 4@ @H(4(<(8(((((a]\]\]O-(8P 0 p |}, 004,03/,4@P`!`F 0X!P PTpp& P P0 % TY `` &PP (` B0|@ T 6}0401/PpY60 0㨉$ @ $cXp0+S0 O] p"P pL 00BR P QrPP @%KhK PdAAQ( 0 @# P% , ,p0峟(,0 PL P0 , X`C 0 LKsPKLL P2Ln%PYa U_h'{L%La%PT U 4@ @HX'4U'<R'8O'(L'I'[0WW8W KKKKKK &&VWW\$U0(UH- # R3 8Q 0S% S 0S S@ <@ ,0S Q Q 0Q Q0404H[Tp& m&TTH- H> H- M@#P K%P0 1/ 0#Qt , Q Qm Q4<04Q` 8 Q QY Q@`<`@`(KpPW P(KpW@ Uv(`(J`P *    X@T P JMv($Q$dK%0H-P@P@1T #P  z0J#P%%HQ4H-M`$P,@FpQ  0+SS/u ,# F 1/`V p z 03/!P<.Q  0+S4Kq%LPpL- MP `@z< 0P  Q 0P  1/Kp@# 8Kp?%NH-`@8@@PQ Q  0+S.<؇Q  0+SHu4PR pW  0H/ %NpL-`V 8@@P 0pL/$N0H-M@ PPD K0 P !z 03/K0@@8@uL-@PPTP 0Q T0+Sx.D1/0Q T0+SL4H- Q 003/$lMP 0 0/H- $LMpL-@ R  R Q9 Q@P+ P@P%@ P P@PP@@`Ht( 0pL Y$V$S$$LLLPLL-@3P7AAQ 0 @ @T(@T (#P (Q#P Q  0+S-0 1/Q  0+SLg3$L-@PAAQ  0 @ P LP#X' K-Mp(P_IMJ`V P(I`,"ᱫ@a t P:, PB   R( I ᒡP @P  0OPH(@,0"~pP; ,"vP5 P6 P= ,H@0", ,0"& ,0D" ,0H"  &JObKzHt P*HHP0X#kHiHgHeHM#HHO-M@Rp RJ#Pp:p Rp(0#@0MP( 0^PZ (O0#(tM`(X 0@PE  L 0KP(N0#(vM`( 0@P( K 0jKP>L PP] ظ@P   0@KOGGGGGܵ4@˱$ ٤p   Q  R R  R R x H- ",p   Q  R R  R R X H- y"|/( p%  @/pȱH/M-MPR@ `nI#P@:@ R@( 0P$ L`~O] ( 0wpP\ $P.>JL4PPP  ;_O`X(pP GXV FX( 0 0 L`EO\ ( 0>pP' O=LPP  &OPx(`P FxU FxKGGG GL8դTԤ0H-MP@[PP8  Bh0 HPP00(000L04 PPTX@K0|B<K-M dVb@(#0LP(p 0`PQ ~OHK(pcM0 L`J, 04 PJ(mM0#(K( 0@pP bJ 0`IBO (pP JF dU F` KxFvFQӤҤ0H-@PP-AAQ 0 @ P XP 0@QP 0P 0TP!0H-P@P<AAQ 0 @ PU P.,1/P P  + 0PU0@}X@尳P 0 P 0  (?L- P @P PAAQ 0 @ L  p>H- MX R ᷈ РH- M( R ᨈ РP/(P/P/H- X~PH- (wP/0@/X R/P/( R/P/ X Y|  ( Q\ X吲(厲M-M`P @(EsF4 0 3/F^KK- MpP(E rFX@QQ PX吟@P UTT@X`(E @Pb `ᵿPAAQ 0 @z P| ,QEh`(E @AP? `ᒿPAAQd 0 @_ Pa ,Q"`(E @ P `oP_AAQI 0 @D PF ,QR X:PM{E@P^T P   R( 1E, 08"̖' 4  03/ F-^K3P=+P5#PT-@D4(,%$""#;8;88,L9 9990H-P`@To(0 '00H-P`@Jo( 00H-P@@o(0 \00H-P@6o( R0L-@X0 4 P 8044 000 iP" " 8T$P9H-M,PP4P@ @`(DDs1E1/ 2/qE]K$7L-@(0 4 P 8044 000 *P" " F,0`@ F 6F, 0d@F( #I0#(G`( 0pP F 0EJ( I0#(@G`($ 0pP E 0tEJ( H0#(aG`( 0pP E 0UEJ( H0#(TBG`(8 0pP E 05EJ( H0#("G`( 0xpP E 0E{J( H0#(hG`(L 0YpPu {E 0D[J( fH0#(F`( 09pPW [E 0DA/;뜼мH--P@PAAAQ  0 @ `V`V P0(1/P  p P  `wP + ?PPH--P@ǸPAAAQ  0 @ `V㻹`V P0(1/P  p P  `P + P8H--P@tPAAAQ  0 @ `Vh`V P0(1/P  p P  `P + PEB븸H--P@!PAAAQ  0 @ `V`V P0(1/P  p P  `P + FPlH--P@ηPAAAQ  0 @ `V¸`V P0(1/P  p P  `eP + P TH--P@{PAAAQ  0 @ `Vo`V P0(1/P  p P  `P + PLIԴL-@PQ ,0( 0,0 ,E.H$L-@TQ ,0( 0,0 ,EL //L-@ Mg(,! 0 aa @蔊`/L R @( 000 DH- L-T R @@,0( 0,0 ,DL /L-@ g(,! 0 aa @t`/L R $0 0$0 $DH- L-@hQ 400 040 4lD(v yL-@lQ 400 040 4JD0TL3 VHl//L-@f(4 0 a@@踇/L-` R @    @@D((0Ld0H-l R P@@    PPC0(00H /L-@7f(4 0 a@@T/L R $0 0$0 $CH- 8$2S C" /H- d$2S C" /H- ,H--M`(@P; p P%  \P" 喫P! `(0 ㅬ@P P;@ _TK: pm: i뤭O-MPp@R` m<#P`:` R` p0P(#@0?( 0wP $C nBP jB@(< 0cPP (0P = WB"80H = PB"0H = IB"0H =Z ?( @0#({?@(h 0PP = 0n=B( @0#( [?@( 0PP = 0O=B( @0#(@( 0SPP6 u= 0<UB( `@0#(4>@( 03PP U= 0<6B( A@0#(>@( 0PP 6= 0<B( !@0#(H>@(, 0PP = 0<A( @0#(>@( 0PP < 0pr<A( ?0#(\ppp_>@(@ 0 PP < 0R<A ̩@P   Ӌ\(@P 8\Y  n8\(0#p00*>P@wN/=X (0@Pi AᖩPPb  ᝋ()P!pnY 0[@PP 0+S0  ܎E pSY 0@@P9 0+S0  . ,0 KO[8}8 {8y8Pw8nu8s8q8o8m8k8i8   ,\!(@P.0 s\ @0p뷏`P!   ,X!LR @T ۇ(PK5@NK44ꈻ L-@_( @   /(/y 0 ns L-@_(    //] 0 n0H-MP@_PYAAQ! 0 @ PU P!lP# \ nP P @P@)K0;PU K0@lP9Q @   K0rP K0 K0l0H-MP@PYAAQ! 0 @ PU P!lP# \ &P P @P@)K0ӯPU K0@^lPQ @   K0 P K0 K0dO-M-(MM@5mP PႮPAAQ, 0 @' `V* P. lP0 PA R @ RQ*P(P @S`V (KЍ@kPO@(P@ px1 4 0 P[ 4 K00K3/PP/  PK  `k^(  0p{y,(P@1, 0(\zmPPU 1/ p@P PP(KЍ (KЍ:PL 4 , ( Pb@$PTO-M-8MM@XlP &PᥭPAAQ, 0 @' `V* P.0kP0 PA R @ RQ*P(P @v`V (KЍ@jPr @(P@ p0(4 0 P[ 4 K00K3/PP/  PK  `](  0px,(P@1, 0(\lPPU 1/  p@P (PP(KЍ (KЍ]PL 4 , ( x^̋8pL-@ L!   Q  R7 R  R1 RTPT4P0U `1/4U PP4``PP H  $0 0$ $:pL  \\x\ \d/L-@ P P\(P\(@  0a@A 0 q q/H-@ R Q6 Q  Q0 Q $ $0PD`V p1/V P`ppP`4D   @@H:1 [ZZ0ZH-@  R Q7 Q  Q1 Q $ $0PD`V p1/V P`ppP`4H   @@9H  YYTYXD//$O- M`RP @2#PP:P RP(@#0`P56`( 0P a58sF 9(#006@( 0lpPq  0 4p9({70#(5@( 0NpPU p4 03P9([70#(L5@(0 0.pP7 P4 03092  Pc ( 0ppP (0#05-@P  0ᕂKO/0Q0nO0M0K0I0G0X8'pFpL-M@ R  R Q# iP QP.[(l @`0` 0q`,D]PKp(   pL-@TiP "@P  뀂0H-MP@ᓪP;AAQ 0 @ PU (P- P  にPUK0@9|0t 0L]@P K0P K0j g \L0H-P@FP&AAQ 0 @ P (Q 0]@P 0/PP2 / lK-M@PuwfPw P@ofP@hfPy hPw pPP_`(pP .V .P`@d(pP @`d(pP .d.#`(0(d`A0W4ٟP1 (Ap(P /`  0   0 Wp K@ePX @`(pP...  ~H-  , $00$0 $h7HX XO/4 0 0p0  0  @/d/K-M@P(./ ᝴d 0P5P Q4Q P-<PP'  d塘P P Q( /, 8 `P QQ P P./GK0H-@gP lPP@6e0H5{pL-@Pv @{ @()Y(YP[PPP P PI_EEP\ o jP #ip0( T,<@K-⁏PዞTP; %nL @ 2/PP, p R  2p! RW T: R  R  0S 0 @TL"RLTATwX(TPzKYK-@P QU  `)X(VPP 1 PP QU ` pP ` 1/X(WPP 1 PP *P㓿Q~FkPOlQt`P \RXU  ` `P VX(TX(VPP⏝P 1/QU ` pP ` 1/5X(WPP ,X(QU  `)#X(VPP X(0H-@P 彾P&Q0H00H-@P0W(0 P , ŝP0 O-$M@PPW(0 ` l ࢝P`@@P @@` L@U p 09P @P  R@ @ RTv_@@)p@$@T P 0P pP  Rp p RW@P{` @ P 1/@ PXP p  P @P  R@ @ RTv@p( Q @ P@ (끏ᢜ pPBT %^V *P@V*PHP*PP @@PPV(`LPLPTThPP _V:Q*PjPkZ P  'KPPV Sp /K-MqP @ ,{ PP- p`P0U02p!0S`W  Q: R  R  0S 0 `VL"RLTATpV( PbpviP ᜾KlK-M@P5 qP P.v`U @p P `P  R` ` RVY oP XK\O-Mq@ PR᭼v ` V? Pp U" @Q Q  R 0SQA U(U(P `P  R` ` R VY P KHK-M`PW U( PPYA ` p@T  0 P pP  Rp p RWY`ǴP `P  R` ` RV0&KKK-M PPYL ` p@T  0P pP  Rp p RWY`%@Q ,t0  7P `P  R` ` RV%K0H-QU @  2/PU0K-\r喟PYpY AT `  2/@TAT  2/@TO-DMPx T(@HLP( 1/`p$1/ P,8<4p0` -M 0 дP bT(@X`X`K@fQhO-M`pV. Fg W@:C(@QU Z PU P P:2(PP PU P PP KT(Pj@*Vp    A * *JP+ Fꆐ@V:F@@     Q1`F W"*@P @ QU@P PP F P :Ɯ( (@PP  KO-M`pV. Fd W@:᠜(@QU Z PU P P:Ꮬ(PP PU P PP KuS(jPV@*p   A * *JP+ Fꆐ@V:F@@     Q1`F W"*@P @ QU@P PP F P :&( !(@PP  KO-M`pV. Fg W@:(@QU Z PU P P:(PP PU P PP KR(Pj@*Vp    A * *JP+ Fꆐ@V:F@@  _   Q1`F W"*@P @ QU@P PP F P :მ( ~(@PP  KQ/0H-@P0H O- Mp  0@EPU K`KR(P  x+* X*pX   .R(pp  PPBKO-M0 `0P ' Ppp⠠Zp p1W @^ @Q@` 0@P p P*pPF X! pP!WM @^@Q @P0P= p>P00KpQ 0P@P@U  1R ^\_P p 0 GX PpKT 0 ::P0KZ*PP @P pT- p@Q @ RT p ⠀X 1R ^\p0P p  KOOWP*PP@0KpL-\ 0S  0S\ \@P0SR 0 PR  @00P0S  PR ``@@T` @@ @@T P @ @UPp^  p 0@T00 @T R(  0S QZ Q @TW  QKR-  0S Qb Q @T`  Q9 R5  @@T@@@P`VP  P 0S  R@@@PU00 P00S0 PRw pQ PJ  ` `PPU P``@`P`0 06 0 PS P 0 0`0 `PPU P`` `@T `    R   0`V0p P  Q 0`V0 pH-@PQ A 'P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:'UP1U:O-M@Q! `Q*O(P O(` VpZp FP X:᱘( PPP O(PK qpWV U, P:ᙘ(PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWKH-@PQ A 'P`UH'P`U!* VF"@  o!pr!   W   P :@o `UP1U:'UP1U:O-M@Q! `Q*N(P O(` VpZp FP X:( PPP N(PK qpWV U, P:͗(PpWG!R   R 0PU ! ppW.pW' PpW!R   R 0`V ! ppWpWKO- MpW `G V@:g(@@ PPU KP PPP:L(PPUP QPP PUP V:0(` `@PT Q P:(P P P Q P: (P P Y Q P:( PA @ P 1/M( KO- MpW `G V@:Ȗ(@@ PPU KP PPP:᭖(PPUP QPP PUP V:ᑖ(` `@PT Q P:}(P P P Q P:k(P P Y Q P:V( PA @  C`M( KO-M@`5M(Pp  z1* Z*`Z  ` M(`` 0   PQ%KO- M@p^ 0P`P`U  1R \X  P p`PT V0 pP0V*@T pXp@`0`U  1R SmP pPhV*P@@KpQ 0PP⠀X  1R \Z > P V0 @pKU*@T3 p\p@ `0`V 1R SP pPU*P@K@K@K@K@K@@KK-@T8 P p`0`W  1R S PW3V3PPP@U  @0@T 1R S P pPWP1H-p`P@ PPPU p $` @ {dPM-M@]pW P@P PP  ^ K( ` aP K(QN`~ ?pP#$0PB3KH- $ 2AK-P`@  f0$Ps 9( Qb0"Q *0? P"b>0SPPpL-@Pb`0#(0#( "30?pK-ÐP `pQ @PQ  AC@xPT:`V: Ა K?H-@LP` #P?%P>pP6PPU` @ P$PPU` @ [p[h @ <\PHL H@ 4\P@d(a ^[dxLK`@tO-MP@PP P@PP' K蘀QE p@ R P`Q  APx`U:pW:&Q* ̠p@ R P`Q  AuPx`U:pW: ꤠpP ̠׏KOcL-@ ] HL]M-@H!\대ᨏP`᭏P ᮏ`V pW P7PP o J(V`J(F`V pW P7PP YI(V`I(0ⶏ,̧H- HU pL-`[@PP@P[P Q  @Qp[[[pL0H-P[@ Q @Q[Q P  @R [[0K-@P`[  f0$Ps 8( Qb0"Q *0? P"b>0SPPO-M☀ݎQ `p R P@Q  A]Px@U:`V:̎@Y᳎Q ̠p@P R @`Q  A3@x`T:pW:̠᠎.K0H-P@ႎℎ0H荎O- Mp@`A@WBPDIPJ*A1A!.rPP= P0>*0H(I  hT  10Cp B"! 4Up P @T `4P` H(UU KO =KKL-@ Ω ˩ ȩ( ũ ©8 ࿩k ⽩H ຩ ෩X ഩ౩hன૩x਩ ⦩ࣩࠩ 0M ⏩P`p}z> xuspn( ki8 f/ dH a_X \Zh WUxR PMqKHbFCSA> <:586&4z20.,*M-@PPdP`P_P[Pzn @v @r @  pwG* W*W  PG(`qa ,P  4z' `|b" !x&(Pd A" Abb0bb( B4BBLB>SL-@P` 0 XP H8 H@ XP,@Ȝ̜L-@@@Z LZ 0H-P@ὌP Ȍ 0H/0H迌K-M@刀ᢌP ᭌ 2/ r ᢌ r 0qhPY nHX`ဌPpᅌP ᆌP 1/ " 042  (F(%(X' F(r QqU F(WP @B P F(~|KA\???DH- tH O-$M 0 @  ``@V R0spPB m Pi  P^  ER^@  P 0  `堐Q0   0@ 0 ` pp`Q&:W  HQ@A  P  PP HQ U @EtX@HtKM-M@    Qu* U*Up  `E(p P ^ p(d 0p$ p F)/pa PY(( +  E(E(`l  p,0` p (} oFvY(P(   E(E( r (0gP1(Pmp (Pi?0 A2i?mpK P``P`R0L  hE(KHA4<LpL-@`P܊P G^P 1/ 2/pLԊH- MPp@ppp巊PqPr 1/l ff  pppCo E( X'ᣊPᎊa坊  D(KO-,M@pe p PIo` & PPP!pQ1s Wrf!1 Q"rR&   P!$q 2   I $;P r 0$ <0 0 0kPK%H-P@`P qsVPV W`WH`H- M 0 <0 00K kP Р M-(MPp\ڠk I`Ὁ $p 0B p +D( PA: D( Aq̊P !$q 2   H $ᔉP r 0$ H0 0 0XkPK~ {Tx\@@0H-DP@W@LY0HbM-@ "4Qa P00r R#ts0qrWPpW  C(PE PPWA AQ:C(AAQQ Q O-M@p`⡀X:H QP`1P  B F R<* PH`` A FQ:PPjzp 0V1 Q"#`p6C(PT `    0 P  Z ;C(p0PV `Y  P Q V!U @  YPEKQp*PPV p  00Ep@`E0p {0pYQpL- P@U `0 Y0,  $ ( ,   ;  `  , QP    $`( A , QA b (  $ $(0  vVpa@V@`pO-M@ Q!:Ap  PWP Uc E W@BqaE A qp  ABIa@V* R<B(bp PWP U P``V V*B(PPPU  U*A(qp p A(VbYpG ppXA(K P``V V*A( PYPU6 U*A(2&1U G`G A`F"Y&:"^"002U1 : a ! eZ A Y `Wq]%Zq pp A(  "U `PE0U P0Q0 00   P 0  EB 0P zA(K&1U G`G A`F"Y&&:"^"002U1: a ! eZ A YpYp  HA(pK `WO-M@P UWp W G U@BQaG A Q"? P``V V?*@(&W&  E0 B""0Z:"!! \02W1 :0 0 a !  gQ C0 Z `UQ PYP  @(PKLO-M@`V WP U*A U@p @ R QppW WD*@(6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  n@( @KO-M@`V WP U*A U@p @  QppW WD*@(6V!&  E0B ##!R:#110Z02V1 : q 1  fQ I R 0pU`  V  @( @Kv/ / / L-@?($0 1 L-@?($1 1 @$  0  0 0/L-@$ ?(~L-@( ?(L ~pL-M`@Q PP,D_"A_ &"X !"`FS( 0  " p?(Kpc0H-@Q PP,_"_ ! 0H!0H--MP+CQ @@,^"^ !\ !P( 0  ! ?(K0 O-M-M@ @ (KЍ @j `"hhR `PPA `CZ>(p| ""aD(KЍ`  P8 ' P  PP(P t A$ A8P4PPL p<(`C',pK A'(P P` 2/0pK(((~(|(+Sc_P< Dy>(j( '(KЍp (KЍDHXpL-`@Q PP,]"]  8  (T$  pL O,0H-PQ @@,]"]  $   0H pL-M`@Q PP,]"]t  X  ` 0    =(KpO- M@P"]Pa P␑p⌡ ` pp0Q!l&\S S$   Z ' P     P]P"]KspL-@`P PP,]"\ $ {\pSpL-@`P PP,\"\ $ [\ppL-MPQ @@,\`P( 0   <(KpQ/,\0H--M+CQ @@,\P( 0  l <(K00H-@Q PP,k\$T   0HKL-Q @@,Q\ L6pL-MPQ @@,;\` 0   u<(Kp0H-@P PP,\{\00H-@P PP,\[\0L-@}[L-@][0H-P@[P{[ 0  ]P}0H[O-M-M@ P:HP`P ] kE`ᦿ'<(( `Lpw  ᔿ' ( 2/p (Lpw0 P 5/P #' Q Q  K'P 1/p '(KЍtO- M@R PX#P:@ R@( $0PoPy (`#0`P p]%q5(0#(P`P( 0`PQ   0(0#(,sP( 0ɗ`P3  0g 0 0K 0 0KӀPP   bl(PP lW ulK]   DO-M@0IPa  R  R QV #Q@v\PC pwEB:(` Qp@@FP\p h0000, D宁P pݩP@@\0 0g@ K$7 41k jjH-M@HPk ⅖`PPeAAQ 0 @ `V PFP! \  {P P @P@4K`V K@]FPP`@` (" pb( b  pKP K KhDi0H-P@ᐉP1AAQ  0 @ P \PQ  《P 0@E၁@P 0P 0qhL-M@GP ɕQ@# L[P p  0P0 0 KEBf0H-M@GPK ♕PP@# [P3 p9ԀP2 H`Txl xhX( 0@/P K0%( 5T8eK-M@t\phP`0P`00P` ,0D P HKDepL-@ L!   Q  R7 R  R1 RTPT4P0U `1/4U PP4``PP H  $0 0$ $UpLE h|h/  p  r! T$Y'E /B/pL- 0@@  R P6 P P0 P TPT4P0U `1/4U PP4``PP D  $0 0$ $pL\HpL-$0@@  R P7 P P1 P TPT4P0U `1/4U PP4``PP H  $0 0$ $pL萹 <pL-MP`K@`0  ",00$P (`,`AKpaH-M@T`Pp0p 0p,D囃PKu``O- M`RP @z#PP:P RP(@#0`P!" (0P= 0( ;`0(#`P|@ 9, 0 D ( %0#(```(@( 0pP  0( 0#(```@( 0ٓpP  0`v( 0#(H```c@(, 0๓pP  0W( 0#(```D@( 0pP  0`7( 0#(\```$@(@ 0zpP  0}( 0#(```@( 0[pP} } 0`]( h0#(p```@(T 0;pP_ ] 0>( I0#(```@( 0pPB > 0`( )0#(```@(h 0pP$  0(  0#(```@( 0ݒpP  0`z( 0#(```g@(| 0དྷpP  0[( 0#($```H@( 0pP  0`;( 0#(```(@( 0~pP  0( 0#(8``` @( 0_pP  0` a( l0#(```@( 0?pPs a 0 B  h R{@Pa   Y] H{@PY p(`P 8 pT  p(0#p00``8 (0T@P6 {PP/  KO]> < :  8 '6 D4 b2 0 . , * ( & 0$ N" k   p(`P  |p ǣ4 $ H - @ A#* N $ o   . F,5pL-M@ R  R Q# 7CP P4(l @`0`  0%`,D嫀PKp(,U UU0H-M@PZP2AAQ 0 @ P 0LP @PK0CP @K0唽P K0 K0:  0H-P@P,AAQ 0 @ P 0|  Crpr@P 0WP 0P 0 0H-P@؃P&AAQ 0 @ P 0C@P 0"P 0㾄P 0pL-AMP@᠃PFAAQ) 0 @$ `V' P8 Q-P)*P 0@P  PP Kpt`V KprKpüP$oliT@QhQ0H-MP@GP2AAQ 0 @ PP# P @@P P @ @@P$@ՁPaU``Q@P P'(pW K@@PX@@PP@@ $@0p⼁  U cB P P@\B P @P K@0@ KP KbF`D KKK-8MMP@၁PrAAQX 0 @S `VV Pd(h'PP@@ TP& pP@@  T P $P Y Y:0 ^@P0 @@P 0 PPK0 Q@P&`V K$KuP !G(GM-MM`@PP}AAQc 0 @^ `Va Po +W p@  C# PA0S00S  Q @0S P@QQ P @Q 00$}@P PP  PP K㑁`V KKPEO-M-NM@`?P ݌P\PAAQj 0 @e PUh Pl=Pn P@<P}@<Pw P@?Pq@ ?Pk P @?Pe@>P_ PA R F@ R?Q;*P@>PE@>P? P P @$$PU (KЍ@x=P@$PB$B@P @@(P @@  @P`@@; p@ P  F/(`K`  0 Xh# $ (`q,`  PD @T`P`H`D`L@@:X*qW xP DHQL !DXD (P`p$(_@.- 4DPuLp(`, WP : a`P @ P}( qU>PU#( q@> @PU(L P,`l0(( 0>PPU 1/`P @pLPP PP(KЍ(KЍP @?pP Po xtld`X DD@ 0+S0  ,S3 &ṭ Ḷ vˣ xˣ z2ˣ |ʣ ~vʣ ʣ ɣ `ɣ .p{@ 0hPP 3 _0+S캰0  R p`@ 0MPP J _0+S쟰0  R pEd@ 02PP a _0+S섰0  R ݇p*@ 0PP x _0+Si0  R ‡p@ 0PP _0+SN0  }R ᧇpx@ 0PP _0+S30  bR ጇp@ 0ƃPPw _0+S0  GRl qp0@ 0㫃PP` _0+S0  ,RU Vp@ 0㐃PPI _0+S0  R> ;p@ 0uPP2 0+Sǯ0  Q' {ȣ ȣ \ǣ\ǣƣ @_ƣ :ƣ Yţ [ţ Z$ţ pK@ 08PP - _0+S슯0  Q p0@ 0PP D _0+So0  Q ȆpL@ 0PP  0+ST0  Q ᭆp@ 0PP 0+S90  hQ ᒆp@ 0̂PP _0+S0  MQ wpx@ 0㱂PP _0+S0  2Q} \p@ 0㖂PPq _0+S0  Qf Ap0@ 0{PPZ _0+Sͮ0  PO &ps@ 0`PPC _0+S첮0  P8 pX@ 0EPP, 0+S엮0  P! @Vģ"ģã]ã@\ã£<£Zv ߅p,P@ 0PP  0+Sk0  P ąp@ 0PP 0+SP0  P ᩅp @ 0PP 0+S50  dP ᎅp@ 0ȁPP k _0+S0  IP sp@ 0㭁PP 0+S0  .P XpP@ 0㒁PP  0+S0  P =p@ 0wPP|  0+Sɭ0  Oq "po @ 0\PPe _0+S쮭0  OZ pT@ 0APPN  0+S쓭0  OC p9@ 0&PP7 0+Sx0  O,  DA߿V B# Yþ @Yf@ZA߼} ᵄpx@ 0PP  0+SA0  pO ᚄp@ 0ԀPP A _0+S&0  UO p@@ 0㹀PP X _0+S 0  :O dp@ 0㞀PP o _0+S0  O Ip@ 0ダPP _0+Sլ0  O .p{T@ 0hPP  0+S캬0  N p`@ 0MPP| _0+S쟬0  Nq pE@ 02PPe  0+S섬0  NZ ݃p*@ 0PPN 0+Si0  NC ƒp@ 0PP7  0+SN0  }N- ᧃpT@ 0PP! 0+S30  bN P WJ躣C Z&ŹCf V WB op@ 0PP ( _0+S0  *N Tp@ 0PP 0+S0  N 9pD@ 0sPP Z _0+Sū0  M pk@ 0XPP q _0+S쪫0  M pP@ 0=PP  0+S쏫0  M p5h@ 0"PP{ _0+St0  Mp ͂p@ 0PPd _0+SY0  MY ᲂp$@ 0~PPM _0+S>0  mMB ᗂp@ 0~PP7 0+S#0  RM, |p@ 0~PP  0+S0  7M  @[ Q @W VB Aൣ}[Y [6 @p@ 0z~PP + _0+S̪0  L %pr@ 0_~PP B _0+S챪0  L pWD@ 0D~PP Y _0+S얪0  L p<@ 0)~PP p _0+S{0  L ԁp!@ 0~PP  0+S`0  L ṁpd@ 0}PPv _0+SE0  tLk ខp@ 0}PP_ 0+S*0  YLT Ⴡp,@ 0}PPH  0+S0  >L> hp@ 0}PP2 _0+S0  #L' Mp@ 0}PP 0+S٩0  L 2pX@ 0l}PP  0+S쾩0  K pd@ 0Q}PP 0+S죩0  K =ٱ t \P @^x?1d0֭0M/ì.@`2ܪ\1ᩣ_0ڨ]0֧LϦU*ߥqF% ὀp @ 0|PP J _0+SI0  xK ᢀpd@ 0|PP  0+S.0  ]Kv ᇀp@ 0|PPj  0+S0  BK_ lp4@ 0|PPS _0+S0  'KH Qp@ 0|PP< _0+Sݨ0  K1 6p@ 0p|PP& 0+S¨0  J phT@ 0U|PP _0+S짨0  J PpԆ@ 0|PP  [H 0|PP  NH㐨  0ወP 㬆T@ 0l|PP  3H 0_|PP  &H h  0cP ㄆ@ 0D|PP  H  07|PP  Ga@  0;P \@ 0|PP  G 0|PP  Gb  0Pz 4@ 0{PPo  GP 0{PPd  G`  0PX  @ 0{PPN  G 0{PPC  G ȧ  0ÇP7 L@ 0{PP,  kG 0{PP!  ^G:O➧  0ᙇP 㺅@ 0z{PP  AG  0m{PP  4G v  0qP 㒅@ 0R{PP  G 0E{PP  G N  0IP j@ 0*{PP  FP 0{PP  F&  0!P B@ 0{PP  F 0zPP  F   0P L@ 0zPP  F 0zPPw  F ֦  0цPk @ 0zPP`  yF 0zPPU  lF ᮦ  0ᩆPI ʄ|@ 0zPP>  QF 0}zPP3  DFᆦ  0၆P( 㢄@ 0bzPP  )FH 0UzPP  F^  0YP z@ 0:zPP  F 0-zPP  E6  01P RD@ 0zPP  Ex 0zPP  E/  0 P *@ 0yPP  E 0yPP  E  0P t@ 0yPP  E 0yPP  |Eᾥ  0ṅP ڃ @ 0yPPt  aE@ 0yPPi  TEᖥ  0ᑅP] 㲃@ 0ryPPS  9E 0eyPPH  ,Eqn  0iP< ㊃$@ 0JyPP1 3$k#ߢ"Wӡ!EƠ 9v/D'0 a]ٚ0ZޙRwØ1W* D 0yPP  D  0 P -H@ 0xPP  D| 0xPP  D  0P @ 0xPP  D 0xPP  D|  0ἄP ݂x@ 0xPP  dD 0xPP  WDO◤  0ᒄP~ 㳂@ 0sxPPs  :DL 0fxPPh  -Dfo  0jP\ ㋂@ 0KxPPQ  D 0>xPPG  DnG  0BP; cH@ 0#xPP0  C| 0xPP%  Cg  0P ;@ 0wPP  C 0wPP  CX  0P x@ 0wPP  C 0wPP  Cϣ  0ʃP @ 0wPP  rCD 0wPP  eC 㧣  0ᢃP Á@ 0wPP  JC 0vwPP  =C  0zP 㛁@@ 0[wPP  "Ct 0NwPP|  CpW  0RPq s@ 03wPPf  B  0&wPP[  B/  0*PO Kp@ 0 wPPD  B 0vPP9  B  0P- #@ 0vPP"  B< 0vPP  Bߢ  0ڂP @ 0vPP  B 0vPP  uBi㷢  0ᲂP Ӏ8@ 0vPP  ZBl 0vPP  MB㏢  0ኂP 㫀@ 0kvPP  2B 0^vPP  %B'g  0bP ダh@ 0CvPP  B 06vPP  A?  0:P [@ 0vPPz  A4 0vPPo  AY  0Pc 3@ 0uPPX  A 0uPPM  A#  0PA  0@ 0uPP6  Ad 0uPP+  Acǡ  0P @ 0uPP  jA 0uPP   ]Ad㟡  0ᚁP `@ 0{uPP  BA 0nuPP  5Aw  0rP @ 0SuPP  A, 0FuPP  AhO  0JP k@ 0+uPP  @ 0uPP  @'  0"P C$@ 0uPP 9],n!I @L 0tPPt  @  0Ph  @ 0tPP]  @ 0tPPR  @ Ƞ  0ÀPF ~H@ 0tPP;  k@| 0tPP1  ^@?㠠  0ᛀP% ~@ 0|tPP  C@ 0otPP  6@[x  0sP ~x@ 0TtPP  @ 0GtPP  @P  0KP l~@ 0,tPP  ?D 0tPP  ?%(  0#P D~@ 0tPP  ? 0sPP  ?j  0P ~@ 0sPP  ? 0sPP  ?؟  0P| }@ 0sPPq  {? 0sPPf  n?&㰟  0P[ }@ 0sPPP  S? 0sPPE  F?W㈟  0P9 }@ 0dsPP.  +? 0WsPP#  ?^`  0[P |}@ 08  03P T}@ 0sPP  > 0sPP  >  0 P ,}@ 0rPP  > 0rPP  >F  0~P }@ 0rPP  > 0rPP  ~>\  0~P |@ 0rPP  c> 0rPP{  V>Z㘞  0~Po |@ 0trPPd  ;> 0grPPY  .>!p  0k~PM |@ 0LrPPB  > 0?rPP8  >H  0C~P, d|@ 0$rPP!  = 0rPP  =k   0~P  <|@ 0qPP  = 0qPP  =  0}P |@ 0qPP  = 0qPP  =Н  0}P {@ 0qPP  s= 0qPP  f=m㨝  0}P {@ 0qPP  K= 0wqPP  >=〝  0{}P {@ 0\qPPx  #= 0OqPPm  =X  0S}Pb t{@ 04qPPW  < 0'qPPL  <0  0+}P@ L{@ 0 qPP5  < 0pPP*  <  0}P ${@ 0pPP  < 0pPP  <  0|P z@ 0pPP  < 0pPP  v<㸜  0|P z@ 0pPP  [< 0pPP  N<o㐜  0|P z8@ 0lpPP  3< 0_pPP  &<xh  0c|P z@ 0DpPP  <l 07pPP  ;@  0;|Pv \z@ 0pPPk  ; 0pPP`  ;C  0|PT | 0o@PM  0+:KO)5@LWcꊑmy*5ALXcny~zvrni$0e;GaR^n\h}tXyTuPqLmHiCd?`%;0\<7G폣WR2]Si.tO*K&G"Cl>:6%02IT`kv}{yz vtrpnlj긌ge ca _,]7[BYNWYUdSpQ{ NLJHFDB)?=;975 31#/.-:+E)P׋&[$f"q }ꩋ  " -9DO[ ep~7'2 <HS^juꤊ(4?JV`kw ~| z+ꉉw5uAsLqWocm}kigecaS^\ZXVTROM%K0IJU`lv  釣*6AKWbmyU !,7CNYeφozvH텣u0焣|0H-M@P$ kPP@# =1P Pb( 0@wlP K0m1.xT0//pL-M`P@Pp B`Q @P @@ @0 @ @ B @U P( ( 0`kPP$ ``` `E TF(. @T P P u I(T@A( Kp0H-@P#sp P)sPrp0O-M#@0 8@0/P| 0k`P, `0 t@@@`X 0hkpP  0@ju0 @@@` 0HkpP j 0KV0 @@@`l 0)kpP K 0@+60 @@@` 0 kpP + 0 0 @@@` 0jpP   0@0 $@@@t` 0jpP  0h0 @@@U` 0jpPc  0@H0 8@@@5` 0jpPE  0)0 @@@` 0ljpP(  0@ ny0 L@@@`0 0LjpP  n 0OZ0 @@@` 0-jpP O 0@/:0 `@@@`D 0 jpP / 00 @@@` 0ipP  0@0 t@@@x`X 0ipP  0l0 @@@Y` 0ipPv  0@K0 @9`l 0ipPY  0-0 @@@` 0pipP<  0@ r}0 @@@` 0PipP r 0S^0 (@@@`  00ipP R 0@2=0 @` 0ipP 3 00 p8@`  0hpP  0 0 (P`(ZP6 pR\ 0 pp pp(@P"opRa/ /"@PᆕPHy ೺఺\pBCO-MM@`ZP&AAQ 0 @ @T[@T PpP QP( `ᦸPq ࠸Pk Pe P P P pPa lzP XtP DnsPN ,gP aP [sP; TP NP HsP( AP ;P (,K(t(,Kz(  0p-g`Pt ֝ (,K PPYKַY d  Q [  mj k k N 0` ,#0` { 0` | 0`mP9mP )mP!H  aK( (@ 0fPP y rK(,K(L%`v"e?c*e&e"ea.e*e&eeeeddddddddd PP }(( P KN$tq]aa"`_9h9`M-MPPo d`@AXPiAAQ7 0 @2 `VT P" P, PP pP   0P0P  ((@WKMVY`VK((@ t0>ePP 9P 6K( ^h7L7^M-MPqPh ?d@`WPbAAQL 0 @G @TJ P6 ^PB ]hP$!0 iSP ap`UP Ihy X=` 0NSpPP ưKp(@fW뻰KoX@TK宰K qn\x"`"8*x5\5pL-MPPs c`@@WPmAAQ8 0 @3 `V6 P# P. \!0 AP, P g@8T@ gl Y,*(@VKpLTX`VKpDKp((@ |0:dPP 5P 2'Kp# ZP(T383L[O-M@VPtAAQ 0 @ X P Y cgKOWXKHP  Q @aP @`ٯ벴oP# 0` LRP p@peO  0=R@PPl@PӯPᖴU @P``p @Ʋ0 Ώ$_&H&yX&& 1H-AMP@7VPDAAQ+ 0 @& PU) Q 0S"Q*@b _ PP [Kh(@U  WPUK4(@ᲰHBK WW/K-MMP@UPbAAQH 0 @C PUF pP6 Q?P;*( @`P \ 0\P($KG(P 0b`P& ᤙ$K PP Kl(@U VPUK8(@@KKVV WV-M-Mp@mUPAAQ< 0 @7 `V: PP%  P^  0@P@P XQ  0L PL(PS=$(@%UzK.V`VK P p (#0ibP$ f  0 \P((P t0Qb`P wLKBK>;T,UTT+0H-MP@TP2AAQ$ 0 @ PU" P %P  fK0L(@pK0UPUK0༴S*pL-AMP@TPrAAQ; 0 @6 `V\ Q) 0S1Q-*P  |QP? E^ `P' # 0s  0 aP 3(@OT ]U`V!(@KpL $0|aP @巗V  PPKp;Kpw;9R.RR(0H-P@TP2AAQ 0 @ PU PP Ph(@ᳮ0HHTPU0@S 0Hu''QH-@SPKAAQ' 0 @" @T< P# (P!b/R0! V0//"'$r ᔎ  /R0P T@T  /R0 UPPP o PP Hi ࡳ(&O-4M@+P _`PxSPAAQ1 0 @, `V P- $$P1 pPa@P= PD@ E z ( piP?@?DT`V(@)SKO|(((@ 40`s`PP n((@ͭc`@pP@ @ pP P  cp$ VP;  0 wOP4   0  @P) kP$ ҹPP й@Wp lc {8 P⹹UpY ppЮ(`(,(@ 0_PP( ኖ(Y  s  P U Z @W N `$$P 빫V (K@$tqPNM\!h!GG/L-@PPAAQ  0 @ P 8 H  L0YQP߰  0H-@PPPAAQ 0 @ P \P 0QP೰pK-M@`_pGaP P  a FdpPȱ)0 @@P-90 @PK 㐮P K話)0 @@P 90 @pPpKpKpL-MM`(@KPQP( ` ~ 0\Y PPK#KpP ` 0EYKKpK KpKKpH-S `@pPPP PM-``PP  0@pzP n@or!pO- M`pPxPw@gPPO S 0VƶP(P`Y 0VP0 YRFP`P⨶UX nPPP`@`pPP  0@P P`P CU P AQ 7PPKPKfc $O- M`ᑨ!0 pSKP @`P, Ppp 0JP {PpppKܩl@pPa0  8p,Kx/O- MRP[ [ D PZ` `5 Aլ 0Xd"0 JpP # W P p  Y:0@P@EPr*AA!.rPP Pf* '`Eq qU ǬQTP` $pta``  'Y:@HP V ` pV PgWDK(Pz  @ SD( [m @x(Ph PCPLH  =(4PPXD[:0W3=\hLP0|H- ,^0   pL-@PEa`P[P  0`P  0P :ppP + `.p, 0 5`$p蹆2O-LM@p]^P`(K(mࣕ [ $ppP  4ppP 8p Y(p0<Q P(,0" 4ᨮpPh (@w-#,,P_ 0YN i-@e-PDPB P Z-`V-p`3P2/P. `$ @ `( @p`0 Pᚮ P ( 0 ( 0  (K;Kls_0Y/O- MP(`#0`H0m( *0#(t```p(X 0Y@P  0(  0#(```p( 0Y@P  0`{( 0#(```hp(l 0Y@P  0\( 0#(```Ip( 0Y@P  0`<( 0#(```)p( 0~Y@P  0( 0#($`@ p(  0`Y@Pf  0`b( m0#(```p( 0@Y@PH b 0C( N0#(<```p(  0!Y@P+ C 0$ ( 0kYpP  0B@P  KO5$XV T>R[PzNLJHFpq8o6 5P 554d%43pL-@ R  R Q Q@Pt P BX`4'0% pL4ѫΫuM-AM@`KP{AAQB 0 @= @Th PmP@@pP@@=PP @\ PQ@, PD@M P Q@hL@T&@ P+ P @3Kp "@:K @&Kp  0 PPKAKDA > ssO-MM@`KPAAQu 0 @p @T P  (OP@@P@@~P A R!  RQPpP-@ P,Q7 @ P8b@ R P@@IpP@@jPP @ P Q @JK@T%@M P* P @@xJ@eJq  0pP PPK}K} zp pK-BM@ P V`OJPAAQ 0 @ `VDK`V| $ P RQ  P D PF@0C@ R P@pP@ $K 0Krp W W5e0!  K$ QR> P.  K@ 00B  3pP Q:  $K 0K<pPPPUKPP ħU K ཀྵຩN2mM-M@AP{ V`PIPuAAQ 0 @ pW P `` pP!W `$nJpWK((@ 0VPP7 QJKXW``  UP  K@@@Aoodd@@@ Ko Ki.+m100lPpL-P@IP:AAQ 0 @ PU PD` P   IPUp P  PU     0p$pL-@kP< 9U`PHP6AAQ 0 @ PpIP QQ  @p r P  p pM-MP@sHPAAQ' 0 @" PU% P pp@@Q:@P PPM PP KIIPUK@` P @Ppp_ P ! *ppP#VV=`pV#`%PP EP@ L K  p20<@$K((@ 0;UPP 6$KK FP:P }0 8  ஭ ݧ''')$fH-P@GPHAAQ 0 @ PU P:@^P8 P@@{G`P HPU@pP@9 0 0P0 0  }ddO-$M@ PqPp `Z P Z P@@Y A 0oᡂ P IP:@YvA0  CP  Q   0PK@僠  KOP  @((@ \0ITPP DK9 a( aM-MP P `pJG@@@@Q:@P  0P" 52@T@TAv  0tPE T`=GPw* W W0ۤK@(1(P3!`0 ؤ@$K("(P 0S`PE $Kx볤KT@v VV`妤K@((P 0S`P XQ댤K FP: p20 Ꭴ@$K((P<N4KH E_!e Q _t_l_K-pMP@p($KCCP, `$   0@ P8 p@uQ @@P gU$0 @@$({(@ \0/SPP ؉*$ $KK |]O-M@P(4KRP% ` p$z3W1 d!`0 @(K(8(@ 0RPPC ᖉ(K,@(#(@ 0RPP+ ဉy W Z@@PP 0 뜣4K^K@((@hH- P @@@AooP[pL-MP P& `@P!0@P@((P d0@jR`P e KpY EZZ0H-P@P 0 P 0@0K-Mp PPL @UR``@@Q:@P= GDPtPP- PP,  0@PP  0@oR@(@(@ x0PQ`P ᜈТK 0 QP O- M@ PY `Pᥢ @Y 8pPC P Pe @Q:@P P 0 PT   @YP" XppUP, 0`  * Q,PYQ pPpbKpK  0pPp,LK"X Q0(V$WLW0H-P P @ @P@"0@0O-M@ PS OLp %PPP`PT @ `PFP:@V P 0 zPVP+  PP'PP# P3  @Q:@P rV'  0PP ࠣPK,oR  P KOዡV P @TUUO- MP(#00;( a0#(p( 04P@P\ V 07( B0#(dp(H 0P@P? 7 0`( "0#(```p( 0O@P!  0 (0?PpP  9@P  KO ,*(&$,HJRlP0H-@pP >OP' 0Hr,΢K-AMP@BPEAAQ 0 @ PU1CPU+  (R @ `P@@pP@@2 0 ( PPKxK{K-AM@P NP`RBPAAQ# 0 @ PU! P  R"Q  pP pH PJ@0G,CPUK@ R PP P  @PX@`P@ P x P !  @ 00B+p` Q: P PP V  0K H@ob PP ǟˡȡOM-PM@PPO N`APIAAQ 0 @ `V P (UpP B`VKpP P P   PP 8P(0 eP  KQ (KifcX<MLM- M@pP`(vP p U` Q  P$  0P K@((@ 0dNPP  _K  P @o K@u P/H- p@oK-MP(#00m`#(0#(P]p(4 0M@P<  0Q(0#(>p( 0M@P  02 (0MpP 6@P  KK${M-AMpPF L@(P @ P'` ?* P p᝟  Q ᝟ P  㫟P  P 룙@   PPK1K4 M-AM@P LP` @PAAQ# 0 @ PUV P R!Q  P F PH@0E@PU3@ R PtP P @iP@K`P@m P ᷟ  0K @ 00Bpp(p Q: P  啟pP PP U PP  PPU W Pp PP {xM-PM@PF K`N?P@AAQ 0 @ `V P  (CSp;@`VKpP ^0( cP  KQ (eK# @$CpL-@9P `N  Q N PP  \P PPpPp Pp PP 6p P/H- ߞpL-@ P8PP#  P P P   Q   P  `P ` P pDPPP`p` pঞ-  B P/H- ᐞo0H-M@P( EPޗP  P _K0EPJ t@ ((@&@ ((@@ ((@@ ((@@ ((@@ ((@d 0sKPP n  K0a)P8hTO- MP(#00J( 0#(p( 0J@P\  0x( 0#(dep(H 0J@P?  0`X( 0#(```Ep( 0J@P!  09 (0JpP  3@P  KO,L5x3pL-@P IP'` H=40 0 pLdhTDE5H-AMP@F=P+AAQ 0 @ PU;>PU @S@ u T PPK*K-XpL-@P=P7AAQ  0 @ @T P =@Tp@`P@ P opLXpLTHO-,MM@rP @IP`<PAAQ 0 @ pW (X @@  P =pW@OP@PP@<P|@5Pv  `P@@Q<`P @!Pd@P^ P @;<X!: R  B 0S00S  R$@"<X*  @ 0S $B  03Q P P P3P  'f$ PPKKZ ( $77O-\M @PT p pP "0` p5P *P Kp(Kr PU p~PppʙPd (PC pP pE^P ZP p 0pP3W p  0cP&q 0WP p0P P2: psW p jWpᩚK#_ Z P,VQNt:=O- MP(#00r ( /0#(p( 0H@P\ $ 0( 0#(dp(H 0G@P?  0`( 0#(```mp( 0G@P!  0a (0 HpP  0@P  KO,)x:pL-@>P  GP'` p:40 0 pL茿<:d*H-AMP@n:P+AAQ 0 @ PUc;PU @S@ ҝ | PPKRKUpL-@P6:P7AAQ  0 @ @T P ';@Tp@`P@ P opLpL|O-MP@9PAAQ  0 @ PU P  :PUKO#@`P@P@@KP@@lpP@cPJ@\PD P@@y9`P @IP3@BP- P @@_9  0p`P KO蹒0 Q 00 KO譒ro llT-X-O-TM @T ` ` ` ` KZPP ᙘ  ` P KPK eP pPP P5P P p 0pP"W  0P 0P  0 @ovH-PMPP  @!0pK @p00`@W P ` K1/V? 0 P? p!K(p 0`(W P 1/V 0P! p Kp 0p`W P 1/ K( 1 3 1202//O- MP(`#0 `H0?( e0#(```p( 08E@P Z 0;( F0#(p```p(T 0E@P : 0`( %0#(`@p( 0D@P  0( 0#(`@p(h 0D@P  0`w( 0#( `@ep( 0D@P  0Y( 0#(p`Fp( 0D@Ps  0`9( 0#($```&p( 0|D@PU  0( 0#(```p( 0\D@P7 ~ 0`^(p Cg80 @@ , 0D 5 ( 0DpP  S-@P   Z#(00`t (10#(`p(D 0D@P & 0㢿(0#(p( 0C@P  0み(0#(pop(X 0C@P  0c(0#(Pp( 0C@P ȿ 0C(0#(1p(p 0C@Pp ᩿ 0%(0#(p( 0hC@PS ኿ 0j(pCs0 @, 0 A` (0CpP+ _,@P'  KOdꇻꅻꃻ2ꁻOl}{ywusq5oRmokige 0 }d X)K8fl`: Y( { K-M`P dB@A'P  PP Q@P PXYQ @ @|Pq@upP@AP@cW P@P@@x50 P@ K@pP@@9 0P&@S5pP@@H5`+Q X, 0)P (P  K  3KYDK-M@PX A`/5PRAAQ, 0 @' `V" 5*P'  ,Y/Q``3!pP ) @P K6`Vgl  KK¹pY:W4.|`8O-MpvP DA@4PAAQ 0 @ @T P <P P !5@TK(@4 @#P(@IٍK@PP@6 +P``P႒Pd  )p s`U r @ uE {(  @PU ZX 땍K (P P (ʹ(@4꣍!   7X(⸹(@(ⱹ(@ 0eAPP x` X۸U YhGD@ 84,CB0اdh   E0]ߢ   ><]ߢ   7H]ߢ   0P]ߢ   X]   D]0H-M@BP3P'AAQ  0 @ PK04P @P K0lPM-BM@P4 ?P'` P$ Q%P!*(ᢶp 0@ST ApD wpW @2tpA@Ct@T 02s0S (@/3(@KMH  0@ST ApD wpW @2tpA@Ct@T 02s0S J l 0@ST ApD wpW @2tpA@Ct@T 02s0S L  0@ST ApD wpW @2tpA@Ct@T 02s0S xL  0@ST ApD wpW @2tpA@Ct@T 02s0S ]K < 0@ST ApD wpW @2tpA@Ct@T 02s0S B;  0@ST ApD wpW @2tpA@Ct@T 02s0S '" l 0RS ApCwpWApB 02wpW 2s0r R   ($K(PP($K(P 0?`P Mv$KF PPKPK茷8Qܢܢ O ٢٢H-MP`@(Q ) 0p&P %P p KpKL-M@%P KM-M`Pp@q(P ( pPP  0`K)P p%P` KKK-Mp`@<(P ( Pp  ` 0)P =%PP KljPKO- M@`p3Pb >P1P\AAQ( 0 @# P 7/P" pZ/ ``3vPP( ~ @jP) KU2P( ݶ(@ 0>PP ;u 4K GPZ:U8Awt96똜|\M-@MP`Pg =p@ 1PaAAQ 0 @ pWN P P P*+1pW:! P@ 0'(@0@dP P@ 0(@ᄋK@P@P@r P 8/P K0ཐ(ຐ ැഐբoբT X O-M(P%(`#0`H0ӽj( ᐼ0#(p``` p(T 0c=@P ᅹ 0f( q0#(```p( 0C=@P e 0`E( P0#(`@κp(h 0$=@P F 0¸'( 20#(p `鯺p( 0=@Pd ' 0`㢸( 0#(```叺p(| 0<@PF  0ヸ( 0#($```pp( 0<@P)  0dɽ (0=pP  %@P  K@^{$)ѢТ ^Тp Ϣ}Ϣ(Ϣ ҢM-MM`1P ;P᪍P  RQ *(P  @ R }@ ᬲNP2 EP8 @'pt`(!H/PK 0 (燿  @H!0 ?P@(@-u($K⳴(@ 0g<PP sb$K  PP?K;KM,(ТТf\fh 4H 0H-MPP9 ^;P@.P3AAQ! 0 @ P ;FP(](@ x0<PP r K0/PK0࿎ ༎΢O-M@DP ;PPP `.PAAQ 0 @ pWK@P(@)KOn/pW 늌 ^F`ᖌVP((@ T0;PPq Er>yK@`P@  0V P# NX/ ``3/PB 0 `  IP   P=  %@ ("0M;P5 .K (ℳ(@ 08;PP" q3 KK#ꪲX:Z\ ӍЍ]͢.ؙ̢̢͢O-M@TP ":PP-PAAQ 0 @ `V qGP PgP P.`VK( (@@@MP}@S- 0 8ZP PjpP5   0P)ZP XP.  K(в(@C(Dz(@ 0{:PP $qvKk.pP\*` K(! ʢɢɢ8 ЖO- M@Pr l9P,PlAAQ* 0 @% P' FP% `MZ/ pp3PP7 Y P7  K-PK( E(@Ḋ( <(@ 09PP p KgᣊPZ:UDӱ KǢǢM-MPP 8`@d,PAAQ 0 @ `V PP vPL-`VK@P(@KM@pP@ 0GPU EP( ⦱(@ 0Z9`P( pU #I3K( ⋱(@ p0`>9PP o9 `K,*Ƣ9ǢpTǢH-M`rP @8P@+PAAQ 0 @ PU P9P P,PUK@&P(@LKH@.pP@G P3 `P4 +Ep<WD D댉 EP{ pIPy ` 0PPD DPS( ݰ(@>( ְ(@( ϰ(@ d0p8PP@ +o} $pK( ⵰(@ 0i8PP% od K( ❰(@ 0Q8PP nL H,K<:8<40(¢¢U¢¢ââM-M`@p(IPP 0p pWP PK(N(` \08@P nPKpGK겾L-@ B@oBˈpL-PP `@V P~P ` PDJP _BpPp~{ xK-M@P;P= P@/P@(P P@ P@P P @P*Q @ R @P @P)@ R  R P Q@@)P@)P:@)P*P&U(Pv T6`l1'PVAl p\H`La]XP  @uUxˉ@@PTP @FP11/HX\ @P!  P@.P PP @@P 1/K(@ KK/@8~4{0x(u,0D}O-,M@P 5PvPx P@P@P P@Pz@Pt P @Pn@Ph P@Pb@P\ P@PV@PP P@PJ@PD P@P*P@Q @oP @pPۈ@QQ P ʈ 'pLX  8PXHL JhlP@!PP@CTP`@@`X\ P P0 +P@@`d P P  }+P @@@(pP@@5(tP@@*(xP@@(p0`| `$`B 00 ```FPP2@P3B01/PH @ PN yP1 H P l R  R Q @H@P p P@(@ R P @KO/@ K"   P 1/K(@`LJ\ćTL྇D໇<ง4േ0ಇ0vO-#(Gg'Y / ?S 0pS0 |#H0YL tPPxTX\`dl hppP /R|[ A?S[Q  1/ '| pWP@P $WPb@b@~P .1/( (P (K( )*P PTPsH(@`PTP PTP_ H , `H(@(( (6= 0Pp Q: (0 p Q: (0 p Q: U  @$$$P 1/Y [ @?SP[ K 1/ %'K讪Hs\pXm<j<gPeHm|8pL-M@PP P  @P>@%PP@P'@P! P@@$` b'X bmP  KpL/Kp |`pL-M@PP P  @P@$PP@P'@zP! P@@$` 'X bP  KpL/Kp ఄ`,XpL-M@PN RPQL*P@ d:PPiPP? P@RPY@KPS P@D$P:M@=$PG*` '( bP  1/DeKp@ R MP# 0(@ (@ p0t1PP go eKpb,'$$!y8hTXO-M`PG t0N.PB PA c, p(p;@W$  P` 0%1P   0, `W`WT@ KO%ǃă f0H-M@IP 0P(!;< ! Q K08(fH-@`pp;P 0(0`P  H껨0H-M@P /P(:< !  Q K0b8f*DYcpL-@PP P@PH@PB P  @P.@PP@U )@U#P@`P@@ @ P 0 p 04L- @  @@TXP \gyT  \T,yP )|P L}   ^눆j:gL~((W (M-M@>PO  ,PPE R@Q<*#@P2 t(P @ Ṣ HP `jpLmW LxPP x ;  PP X}xKZWUO-M@`PV X#P: RPy.$& 6 0& 6 0%5 0%5 0%5 0`%5 0Y%5 0R%5 0K%5 0D~/p` 0+`P 0X 0X0  7  a/p 0+`P 0+SW0   F/p 0+`P 0+SW0   +/px  0e+`P  0W0   /p] 0J+`P 0+SW0   .pBP 0/+`P  0+SW0   .p' 0+`P 0+SfW0   .p  0*`Pw  0KW0  zl ("$2 0c"2 0"1 0!1 0!1 0!1 0!1 09!1 02!1 0+t!p1 0$`!\1 0KO͢ɢŢ)4@꽢KޢW깢bڢn굢y֢걢Hl%G$;\3+D8 &p嚢˚n™h T<ꗢlܗ˗d'd*H-,0qLpL-M@ P 0{7{p*P P*U Kp`'"@ !{Kp{ =$rH- MP`p@:{ 0 `?{V  P  0K3/P e>  #oKzqN H- 8'  //N N H- !' d /L/N 0 㜳N H-  ' ( //N 0H- hP @ܠPm00H- M 0 РH- M0  РH- M  РH- M  Р  O-M(@0Kh(@-&?@PP@ 0ᖡP40Ks 4( ,p0 b-)pP   0  0yo 0oP40Ks k4, 0dQ )`P   02, 0O HURGP 1PDP `mU>Z  0T  P40Ks ( 4(0(PP  0T  0 P/ P 6UX   0 P40Ks  4(0(PPW   0Q  0ϟP P-P G/0?40Ks 4( ,p0 q`(`P6   01  0e ;40Ks 4( ,p0 p;(`P   0  0ppP tKt  d K>zP2 (P.p&W  P P     _P P 0 P݁pW0ԁ  gP, pP.`PV  P P   "P P 0 h码`⼁Vd痁k140Ks 4( ,P0 S'`P1   0,  040Ks 4( ,P0 S^'`P   0  T t@Kx0K P* x`V 4Gύ :p0PPp%PPBP @G 0AG'PP   0 ۞t@Kx0K P* x`V 4Gύ :p0PPp%PPBP @G 0AGN'PP   0 ~ 0OP @(p1 POP+@ၝPZ $PV PP ` 0ᘂ'pP  0M l f7ޞ ŀ 0P  0(&pP  0` @ P⥀U 瀀@0 P &PN.PP' B0 @l" 0KሟPZ < O0KWK褞ꠞ{Tꚞuꖞq꒞3ꐞskyꌞgꈞ cꄞ:_?]~YzUvt^OcT7yL4yD1yå >ťMd¥$(,H- 'HJ  0 \47aJ O-EM@PP ` v h'UP\rPB  ,t vpN*p P*W PP*   5rP`'P  vP: k !'rPQ ARKA        Q  A vO-$M`RM ~\P P A J@(/P pP& A RB* *J(00 K%@P  0 Xꖝq XPq ,0"^aK/P#r"o"G 0 P n/ %F    *    Gk ' ( 0r00 $PP# @ t m'  @d@T P P u ['T@S'K" wwwXPTpL-MP@P6AAQ! 0 @ P PU `|\`P GpV` KpPKpH Kp֜w6pL-MP@{P6AAQ! 0 @ P PU `8`P ,V` KpWPKpH Kp蒜Ww5H-@ P (P!b/R0! V0//"'$r R  /R0P    /R0 PPP PP HH-@pR% (P`ǛP  pp p0hd 0 pPp,p(vvT33O-MP@(` * Y:P9 ( 0_:PQ pW] W  P* PPW u0PB W P0 R pt0( 09QQQ((@ 0#PP YfKQ%#K"(XtvK觛. t0PevbvhX8pL-@`R (P A5P ` \sT0P ` /p(B/v,v\ (1 1pL-@`R (PҚAP `{ `;X0T ` `p(Buu|,l$0(0pL-@`R (PᙚAP `B `X0T   ``彚p(BuuH,0@/D/pL-@P6P? `LP>P=AAQ( 0 @# LLP 1/LP P$ 2, 02D| |0 0PppuucLLP0iu(fu cu`uTX0-P MO-MM@P; !P]P_ P@P*@P$ P@P@P P @P@P  PA R @ RQ*P@P*P@Q @uP @vPt@QQ P Tt|'PX PXHL IhlP@*PP@LTP`@@`X\P p9 P@@`d P p " `P @@HpWp@  Cᚗ 凛Pt P@Pq1/Hx(@Q4 yP 0 @P PP@@ |PPP 1/ PPU 1/KrU+\t<t8 t0 t(t(tHJ'ĢȢ̢ LGO-$M@P S PP_P P  @TPp@MP@oP@:P (@`nKO@*P P@@ pP@@AP@@#PD  IV@ CS   P 0QQQ  0 0 0k `RVUq V   RP  l l2TK{  =s/b$O-$M@P PPP P  @Pp@P@P@zP (@mKO4@jP P@@`pP@@P@@#TPD  IV@ CS   P 0QQQ  0 0 0! `RVp V   P  k _krSK軗  }r/_!O-$M@P PPP P  @Pp@P@P@P (@lKOt@P P@@pP@@P@@#PD  IV@ CNR   P 0QQQ  0 0 0 `RVo V   P  +k 㟲kRK  q/\O-$M@EP PPP P  @Pp@ P@/P@P (@ lKO贽@P P@@pP@@P@@#PD  IV@ CŽQ   P 0QQQ  0 0 0_ `RVo V   P  kj ߱AjQK;  p/YO-MP(@p0#d` 0pP ܙ 0X὞Ȝ0 xE`\ 0pPe Ὑ 08᝞᨜0 %` 0{pPG ᝙ 0~ቜ0 `t 0]pP+  0_j0 ` 0=pP  _ 0ۘ@K0 Ț` 0pP ? 0㺘*0 (騚` 0pP   0㜘 0 鉚` 0pP  0|0 @j`( 0pP  0^ÝΛ0 K` 0pP{ Ø 0>ᣝᮛ0 X+`< 0pP] ᣘ 0ᄝᏛ0  ` 0apP? ი 0cn0 h`P 0BpP" d 0EP0 ͙` 0#pP E 0%00 孙`d 0pP % 0㡗0 厙` 0pP  0〗0 n`x 0pP  0bǜҚ0 ppN` 0pP Ɨ 0Aᦜᱚ0 .` 0pPo ᥗ 0!ᆜᑚ0 ,` 0epPR ᆗ 0@fq0 @@@p 0D`P4 f 0G>K茓zꊓꈓꆓꄓꂓ ꀓ*~G|dzxvtrpn3lPjnhfd dc0cbSba0na`e``_40_`^Q^]p]] "\h"\<#[#M[O-M@ P.AAQ  0 @ PUKPU ($@P00`Z P P @spZ P  ttPPtP @sP PtUW tP @&(刳Ks`  P,0h!  7s@V E`xtYꍒqtP  ot@ P ctY_tY(IPh  0c@kPf  0P˦PZ Ῐ@tTV@P,0h!  @V P`:9@VZ tP  ZV tP2W s@(P Z *fK`P 0,h! R V Hs@PVllL M-M@KPE P P?AAQ 0 @ `V `V 0 P pjPP 0 W @倽P K<xjPP<tl몑nlklhll P (M-M@PE P< P?AAQ 0 @ `V1 `V 0 P p3jPP 0 W @$P KjPP<lNll lLM-M@PE a` P?AAQ$ 0 @ P 0'P `P+piPP P @μP K PꄐiPP@kkk kpHO-M@7P P PAAQ/ 0 @* PU P+P- P4%pP6 wΆ'`iP0PQ J@ W/V@ ʻ'?R PUg(@7 (@eKO芷@pP`P@ⶹP  Z 4i W @R    zWe'` i  `P @0+P(⋐(P 0?pP N:'V Y'K) jjh lPpL-MP@ P;AAQ 0 @ PU+ P(@P$ P  PU@\`P@& >,,P 'Kpj0H-P@~ PAAQ 0 @ P 00P 0 0 0i PrjlK-PS PAAQ7 0 @2 PU5 0(P2 0P` @DP l| $0<xHT`ll  PU㵘4 0`S@Px M@ipPo  0,S@<`Pe  0o` W p Hp`XPH@80( 耟܀ԀԀ̀ꨀꨀꠀꠀ}ӎюώꪎpi{ɂˁ  ',26I[nԂ܂K-P@X PRAAQ 0 @ P:M P5 $p0P/ `(P@, 0㔑 `P  0 , 0spm`P  0 U Y4U0i>L-@P"AAQ  0 @ @TDP  @TDP LDQ P1/LhHM-M@PAAQ~ 0 @y @T 8P @P!P Q( ᕎ,opTdCPT P_ PAAQ 0 @{ `V~ |(P |W P| p  0s rPU 0PP 0;P0S 0X PC 0p0j P9 P 0#@8<2/KI @T0,K, PQ   R(  P PP 0 1KaP  K `VK(❍(@ \0QPP KLKAhh}Ts0H-P@PAAQ 0 @ P 0 0P0 0 0HaP0g0H-MP@P,AAQ 0 @ PP $P0#P  (Q ᾷP  K0،gL-@}PAAQ  0 @ P 5LoPxgpL-P@YP@AAQ! 0 @ PU `PҵP! A@Qx@`P MxV xp5PUpL(@pLt,(@apLk +g%z%zPL-@ PAAQ  0 @ P 0A 0L PgO-MP@PAAQ  0 @ `VK`V sP Ap0P (PH K(mP0 0m P[ e P fP PP 0`PY   0!0Gϒ`0 &  0,`P4   0/ , 0㔡`P&   0 (,b?0   UP Ktr꓋nꏋꍋ$RfOfLfx-|l0H-P@)P%AAQ 0 @ P0P 0@ 0]P 0T 0f0H-M@PEPA PP?AAQ  0 @ P 0PQ PK0@$# P  40@P K0?P K0eepj0H-MP@P1AAQ  0 @ PK0P 0 @Q 0 P K0P K0 K0epL-M@PbPAAQJ 0 @E @T@ `P(۳P$ (P> P Q( ', 0 S10LP3 uP40QH KpLg(⹊(@ 0mPP9 HhKp@TP00@0P'uP e@₳`P@⤳ 0P d,dsDg hgL-( @ ? ,  @ 0L K-MP@q` (P(P* xpW8 P(嘊pPpP``@bpPP  bG 0P xP PxP90F @Q ᬴PP ʉ P&bxPP(HPP, PQ   R( M RP PP 0  gP MK#_bpT WYdpL- @ P ?  @ 02  " P`0j PP mpLp0dT_pL-@P `0j 5PP Qp0H-@PP,,P0K- Mp$`@(倉 n4P<  P7PᑳP7 |a '! PP'  5 P, a   R( ᡉ P PP 0 㻏 w⠢KK-M$`@() (Fp ᵳPPV , 0" P QQ 0 (PPX , 0"J  PR "00 >  R! P00 4 p, PA   R( / 4P @ᦿP 0 I .K|W Q" T0KIGhH-@P `] (!b R0! V0`//"'$r =  R0P  H4  R0 H+O-M`(@Q8Q @Q Kp(hW@(^ PK P(`0  PPN ,0" @A  0" P!00 /2  P`   R( ~ P `P 0 㘎@@S|TK," T0ꘇ깇 /O-MP@(sވP Q( 6,  M@P аP `ͰP0  ` @+TKwᵰP9bW0H-@`PPP PP   P 0HWH-M@ P (P!b/R0! V0//"'$r <  /R0P    /R0 PPP PP P PPP  PP  玓P (8P Q( ၇ ⎠P 'K0H-M@P  P PTP;H(@PPPPTP( H H(@L@, QP   R(  P P^P 0 K0[[A$ApL-M@Fp4PLP\ 2/P" `PP\ 2/PP P PPPP ~`P ;KpPPKp[=O-MPpm놴P `PLP7`@dP |PTP% 3"P`PdP *PP P vP PT P PP0 s @奶T H 0( A@P TH m@P  0@制hP P$@lP7p Pt0|! PP_ sۇPƆ@PlP.p t0| ,PćfPE@PlP*p t0| (Ptp Pt0|! PP% 9PipPl צ`P`U PV'PYpP\ W`P`U CPV0 s @TH 0( P@P @P KPTH Ϊ@P\ZZZZZZ`ZlZlZ@ZLZLZ8Z8Z<<<<<;;;;;;;4< <<L-@ノH-M`@P 0"(P@PPKAP pQP P 0@TPK@Z=Z0;4;, /H-M`Ptp>@P- ΉP0pt 0Pp `tA 0׎P ` `ȋP~ @h` 嵆`TpT nKT+ H-M`Pfp@P* xP-pf 0㜎Pf 0ᓎP ` `儋P: @$` q`TpT *KT/+ L-@X\ BdhAޫdXQ\h h'XP \'4 LL P 1/t96L-@X\ B൫dhA౫dXQ\h h˩'XP \Ʃ'8 LL P 1/L-+ 85pL-M@Pt`T0X\d hpP`00AN PX \0CvdhArXd\hKp0H-M@Hx(PQ% y Q 0L@, QP   R( ~ P PXP 0 K0~HO- MPp` `@PT`:KT: p@P`- P``P& 0`呍P0 ` qPX``VP'  0_`P`!p\KfP h  0P 0@ٵT``KO}VX QX<O- Mp@@PE L!0P ` @ᳵT6 `΋P. Pp`P' 0p` P ` 0ဈPpW``GVP  0n`P`ᯌK`K|,VW Q&X\O- Mp@PE L!0P `@TT6 `oP. P@`P' 0p`P ` 0PPpW``UP  0>`P`PጄK`K|UW QWDO- MPp` `巾@PT`:KT: p P`- P᫆`P& 0`]P0 ` 弆PX``UP'  0媆`P`p(K2P h  0P @ᥴT``K|WUX QQW$lpL-@`TPPpḰP ᴰ@p8Wp1P/H-   ӵӵӵxxӵllӵ``ӵTTӵHH/ረT=\@d, lܧЧL-@gP LbV00M-@`p봯TPUVU  ΰP 0P P=P 9@VU Vd/L-@'@ ;    /0H-P P@P  P P P P 1/0@0tV`.H-`P@P ݯ pPP PU  POV-O-M PZZV `Q2 @ SS:pC W ` p T`    0R @@V`` RI \:#I \: S": C0p R pp @W 0V``0pWI \: Z  @  KUU8+<+  C /M-^ P@P`GappqpU @PT:T@@@T@@pL-P@`@!P  pU+O-M`ZB  0S::PpCZ  p jS    Q+Z' Q*  0S 0S @SQPP 0S 0S*$PUKKU HUL)H)L)pL-`@"SPϮᰮP ᬮ p-UD)O-M`ᜮPP ᘮ \. \ ࠁ@^ , ` P@Q::AQQ 0p0 X pW:p W 0PEQ`R:^ @ T`K@ R3 R0p0rp0`  V`F @KTT'4''H-0 PP# T":PDUPU @`@pW @T:@T  `0 BS^:P$TTP&|&H-P@p`PY qW G R"0!0p||pW 0@ PT  `/W@Hݭ U  orW sWKTT* `PD` `pp 0P@TVp,4T(1T.T+T$,%D$T%$0H-Q  @0T P0T* P@DP P0 @TU0TSD$`$H- 0 RR ^0 RO-MP YY PUUK@Q/pP 1'P (` @"PR/ /"P}.T   R0 'W PWSpKST"L"O-M@T  PiP PK`ƣ' VPp `1p `ѣ'W (p" R / /"@P&.V  P .T PKPPPK0H-@P0S  BR 00H-P   0  R Q00 R @R Q0 R0S\ K-P. P@pU" P Z'P (` @"PR/ /"P-T   R0 9'WP l K-P+ P@pU" P 'P (` @"PR/ /"Pj-T   R0 'WP Kl$ |H-M `V2 @͢'PPp p p @` pP 2/pP 1/P  @ %Q  0 3/K-  O  B) N/d%F //L-@P PR8P 0 40S Q 1/L#L-@R: R  0 Q0 Q Q 1/pL-M`@QHP RAqQ :P; Q6 1/KpPP* P &P P  Q 0S  0P P ,($  2/KpK-p'0S^*p'`&p `0ppWU*`pt00SN*p0pWI0E \?*#0S PpՕ`ՕD\9`P6?#X" #8S% S(T&:0`4S! Yp0S`V``6o&xW&h Wb0(0: 000B\:T:0S,\:0\00L-#Q Q" Q"S :@\Q ^@T1O$Q$HB@(@ Q:02S*Q,O- Mp@h 0`PPN `K (0iv  0 P!0P @ @ @ @|p00`0l `0`崀``uX t dxP 嬐PKu$PP$lml \L-M@D ? 00  <0! 00 0!0 0(P5 p  z0 X(P P 0Kb0KQT0ltkH-@`  | P l  嚠'P 啠'Q  Ra R  R[ R T!   P  RG R  RA R`V p1/V P`ppP` |P t|xP tx0P0PP ,,PP H}Oii$iУ @m@k@iH- fH! H- @`H! H- @ZH! H- @THy! K-Q. `@V( p1/W P(U QTuP(, 0萑pP    2/@tL-@PgP0/K-M`p@(tuPU P( uP ,ၫP n 0  !{  ,PmP  0{uKK/M-M@`PPe (ztChuP Q( t,po`PG TP" |(`P s|W s|PAAAQ2 0 @- Q0 e`,2, Pq   R( t P pP 0 zUu~KQNNȑK-M@Px PtPs P@Pm@Pg P@Pa@۬P[ PPP @` @`P`EPE@tP? Px'pP:AAQ 0 @  0 @P Q( sP KLNDM<M4M,M$MM뼏 dM-M@PPbAAQ 0 @ @TR PDP P@T?@2PM@+`PQP)@JP# P $1/P (1/P T03/Wp oKp X03/PU`KzM댍 L-@[P!AAQ 0 @ @T P(PLD@TLMIM FMԌ $ K-MM@DPP K0P EK`0)PP*U 03/ pWp KW  03/0`PPET`0)bPP0Q ` ,  0O3/(fr 0eQQ%P#  0 P P, Q   R( r P PP 0 x♋JKK-M@DPP5P KPP0P  0 P̧P lP @KhKl0K PlPtLPPPU 1/ KK/,`pP!睡Pl0U:, PU P`V 1/ 2/KP( q(S P(r0  KpL-`@PV 1/ pL/0P|@T PpP`V p @@pLEO-$MPDpP*0P' @`@ƑIV`  0p p`VHv  X: X pvAIT $'K` X (5qs"r  0+P F   'QrzpIT!0 FKKLH@XM-MP@p(gq0`P4 ~P6 +" " 4`I0s 㑦 0( @P 4/PX   შ,<Gq`Kip.K/@/0/,0/4/,4/0QP/(/PQ,P/(/,/,,/P//,P//P/ /,P/ /0 00S/R/\ @  R/Q// /\/d ` /M-M@P0P# PpS  1S  R:X  0ХP. PvQp pKPD1/  FpKHpU" `0 p QJpW:W=PJpp 0ppP KW'W$ 0 P FpdHK(S P( p0| K!1rtpEHK<J$J JJ@UL-M@0P   6KIxL-M@xP    KI pL-MP@q0P# `PDP'PPw`oOU P* Kp P  0F 3/Kp  PRTKp ` ˞  03/Kp P 㼞 0 3/KpwI@ 8 /, 8 /0H-@PyG0P P0 2/@vG00H-@P_GPPEP P0 2/@[G0pL-P@PRAAQ1 0 @, PU/ PD堧PC P@☧P=@⑧P7 0P7 (`P!P8P P@PUp@%P@`P`0D  pL8H0H(H HHM{ L-@P5AAQ( 0 @# @T 0P' 4DP/xXTd]Y'tlpDHHLP@@THH|tLy L-@P0PL-@PP:AAQ 0 @ @T'E@T!  | P Q Q Q Q +H(Hc DxtL-@PAAQ  0 @ R 8 L RHw0pL-@⋦P5 Y`PP/AAQ 0 @ P 0P! Z@P ( 0 P m pPpP pGG GvvpL-AMP@PG `@PAAAQ- 0 @( `V+ P3 Q%P!*P*(P*0P* (@j07 0  PP iEKp]`VKpXdG@aG8^G0[G,XG$UGRG8uu0H-@P,P2AAQ 0 @ P 0Q  0e@PP 0P 0 ` P GsM-MPppW1 C'`44P@ @ @ @}p @ ` 2/ @P 1/P  @ %Q  0 3/   0P L 0#P ( 0K}&xX7O-Mp`RP @m#PP:P RP%5 p0u(#0@`q`sO (0P?  ^t(pCgr0 <p@eo, 04 4oPblp(Lr0#(p@( 0pP  Ao 0n"t(-r0#(lp@(P 0pP "o 0nt( r0#(p@( 0pP o 0~ns(q0#(kp@(d 0pP n 0^ns(q0#(Kp@( 0pP n 0?ns(q0#(,p@(x 0pPx n 0ns(q0#(p@( 0\pPT ~n 0m_s(jq0#(o@(t 0=pP7 _n 0m@sU@P* h(pP EjhT ihB@P   KOGjjhjfjdj,bjI`jg^j\jZjXjh(pPRjTC $Y`|P!| G N Iꈑ P0/ P0 /M-@0 0P  $0?D510L C(0 CPTX\ Q P# `} (P"`pRa/ /"@PPvPjDO-M`@BP Z% BZ  J BRD:Pfx *Z 1p P p3῔' Xp㸔'Ԕ'ppV Z:W* P U pK  0 f0S @ Z#BO-MCpXLP`ȑ @Y@LY *@q=*@Y@Yn Y8:BLYA T 00Z^ 1@ @ S *p@0p S@:Rp @A Z AK.'G V H  `Z @a ` GLRA ቑp@W A`T@ 'pKO-MPCPK@p`@X DX * @q=*@X@X X8:tA DXpGW AZ!L LQ * 0ppQ00:R L fA Z aA K៓' IVA8 G A1!S:^5*Q1 @0 @W0Ap I`NR BA刁 p@W  9A@Z` დ' Kp@ I`NR!@ f@T @S O-M-Mp@Pp PP  @ %P Q AW S0ᳪpW= HPZ. '`  ⏊O ` 2/P 1/P  @ %Q  0 3/pWp p 0B0 b0B0P$B Q:'@0KЍ4mpzO-M(Pg( pn`#(0lp#(0l@#(0|l 0#(\l Qk,` 0 @ k Hk, 0@k @k,0`@ k 8k, 0d@k( %n0#(l`( 0pP k 0jo( n0#(@l`($ 0pP j 0vjo( m0#(cl`( 0pP j 0Wjo( m0#(TDl`(8 0pP j 07jo( m0#($l`( 0zpP j 0j}o( m0#(hl`(L 0[pPu }j 0i]o( hm0#(k`( 0;pPW ]j 0i>o( Im0#(|k`(` 0pP: >j 0@io( )m0#(@@@k`( 0PP j 0inKDfBf@f/>fL>RSH--P@PAAAQ  0 @ `V`V P(1/P  p P  ` P + P{>x>QQH--P@WPAAAQ  0 @ `VK`V P(1/P  p P  `cP + |P(>%>DPxPH--P@PAAAQ  0 @ `V`V P(1/P  p P  `cP + )P==N,OH--P@PAAAQ  0 @ `V`V P(1/P  p P  `P + P==MMH--P@^PAAAQ  0 @ `VR`V P(1/P  p P  `P + P/=,=`LLH--P@ PAAAQ  0 @ `V`V P(1/P  p P  `*P + 0P<<KHKL-(@P bpL-,(@P apL-,(@P appO-Ms ` `:@P  pjXePP  0@ tPp@P PP  0@ tPp@P PP  0ϳ@ tPp@P PP  0ᷳ@ tP pu@P $oPP  0៳@ tP(p]@P ,WPP  0ᇳ@ tP0pE@P 4?PP  0o@ tP8p-@P <'PP  0W@ tP@p@P DPP  0?@| tP}Hp@Py LPPu  0'@o tPpPp@Pl TPPh  0@b tPcXp@P_ \PP[  0@U tPV`p@PR dPPN  0߲@H tPIhp@PE lPPA  0Dz@; tP<pp@P8 tPP4  0᯲@. tP/xpm@P+ e`ePP%  0ᕲ@  tP!pS@P MPP  0}@ tP p;@P 5PP   0e@ tPp#@P PP  0M@ tPp @P PP  05@ tP$p@P (PP  0@ tP,p@P 0PP  0@ tP4p@P 8PP  0@ tP<p@P @PP  0ձ@ tPDp@P HPP  0ά@ tPLp{@P PuPP  0ᥱ@ tPTpc@P X]PP  0፱@ tP\pK@P `EPP  0u@ tPdp3@P h-PP}  0]@w tPxlp@Pt pPPp  0E@j tPktp@Pg xPPc  0-@] tP^k`p@PX PPT  0@N tPOp@PK PPG  0@A tPBp@P> PP:  0@4 tP5p@P1 PP-  0˰@' tP( p@P$ $PP   0ᳰ@ tP(pq@P ,kPP  0ᛰ@  tP0pY@P  4SPP  0ჰ@ tP8pA@P <;PP  0k@ tP@p)@P D#PP  0S@ tPHp@P L PP  0;@ tPPp@P TPP  0#@ tPXp@P \PP  0 @ tP`p@P dPP  0@ tPhp@P lPP  0ۯ@ tPpp@P tPP  0ï@ tPxp@P ``PP `ZHU 0᥯@ tPpc@P ]PP~  0፯@x tPy pK@Pu EPPq  0u@k tPlp3@Ph -PPd  0]@_ tP`p@P\ PPX  0E@R tPS$p@PO (PPK  0-@E tPF,p@PB 0PP>  0@8 tP94p@P5 8PP1  0@+ tP,<p@P( @PP$  0@ tPDp@P HPP  0ͮ@ tPLp@P PPP   0ᵮ@ tPTps@P XmPP  0ᝮ@ tP\p[@P `UPP  0ᅮ@ tPdpC@P h=PP  0m@ tPlp+@P p%PP  0U@ tPtp@P x PP  0=@ tPe`p@P fPP  0#@ tPp@P PP  0 @ tPp@P PP  0@ tPp@P PP  0ۭ@ tP p@P $PP  0í@ tP(p@P} ,{PPy  0᫭@s tPt0pi@Pp 4cPPl  0ᓭ@f tPg8pQ@Pc <KPP_  0{@Y tPZ@p9@PV D3PPR  0c@L tPMHp!@PI LPPE  0K@? tP@Pp @P< TPP8  03@2 tP3Xp@P/ \PP+  0@% tP&`p@P" dPP  0@ tPhp@P lPP  0@  tP pp@P tPP  0Ӭ@ tP xp@P k`PP  0Ṭ@ tP pw@P qPP  0ᡬ@ tP p_@P YPP  0ቬ@ tP pG@P APP  0q@ tP p/@P )PP  0Y@ tP $p@P (PP  0A@ tP ,p@P 0PP  0)@ tP 4p@P 8PP  0@ tP <p@P @PP  0@ tP Dp@P HPP  0@{ tP| Lp@Px PPPt  0ɫ@n tPo Tp@Pk XPPg  0ᱫ@a tPb \po@P^ `iPPZ  0ᙫ@T tPU dpW@PQ hQPPM  0ၫ@G tPH lp?@PD p9PP@  0i@: tP; tp'@P7 x!PP3  0Q@. tP/ ``p @P) OJEPP!  03@ tP p@P PP  0@ tP p@P PP  0@ tP p@P PP  0@ tP p@P $PP  0Ӫ@ tP (p@P ,PP  0Ừ@ tP 0py@P 4sPP  0ᣪ@ tP 8pa@P <[PP  0ዪ@ tP @pI@P DCPP  0s@ tP Hp1@P L+PP  0[@ tP Pp@P TPP  0C@ tP Xp@P \PP  0+@ tP `p@P dPP  0@ tP hp@P lPP  0@ tP pp@P~ tPP{  0@u tPv xp@Pr e`PPm  0ɩ@g tPh p@Pe PPa  0ᱩ@[ tP\ po@PY iPPU  0ᙩ@P tPQ pW@PM QPPI  0ၩ@D tPE p?@PA 9PP=  0i@8 tP9 $p'@P5 (!PP1  0Q@, tP- ,p@P) 0 PP%  09@ tP! 4p@P 8PP  0!@ tP <p@P @PP  0 @ tP Dp@P HPP  0@ tP Lp@P PPP  0٨@ tP Tp@P XPP  0@ tP \p@P `yPP  0ᩨ@ tP dpg@P haPP  0ᑨ@ tP lpO@P pIPP  0y@ tP tp7@P x1PP  0a@ tP k`p@P PP  0G@ tP p@P PP  0/@ tP p@P PP  0@ tP p@P PP  0@ tP p@P $PP}  0@w tPx (p@Pu ,PPq  0ϧ@k tPl 0p@Pi 4PPe  0ᷧ@` tPa 8pu@P] <oPPY  0៧@T tPU @p]@PQ DWPPM  0ᇧ@H tPI HpE@PE L?PPA  0o@< tP= Pp-@P9 T'PP5  0W@0 tP1 Xp@P- \PP)  0?@$ tP% `p@P! dPP  0'@ tP hp@P lPP  0@ tP pp@P tPP  0@ tP xp@P ``PP ? 0ۦ@ tP p@P PP  0æ@ tP p@P {PP  0᫦@ tP pi@P cPP  0ᓦ@ tP pQ@P KPP  0{@ tP $p9@P (3PP  0c@ tP ,p!@P 0PP  0K@ tP 4p @P 8PP  03@ tP <p@P @PP  0@ tP Dp@P HPP  0@ tP Lp@P PPP  0@y tPz Tp@Pw XPPs  0ӥ@m tPn \p@Pk `PPg  0ụ@b tPc dpy@P_ hsPP[  0ᣥ@V tPW lpa@PS p[PPO  0ዥ@J tPK tpI@PG xCPPC  0s@> tP? o`p/@P9 )PP5  0Y@0 tP1 p@P- PP)  0A@$ tP% p@P! PP  0)@ tP p@P PP  0@ tP p@P $PP  0@ tP (p@P ,PP  0@ tP 0p@P 4PP  0ɤ@ tP 8p@P <PP  0ᱤ@ tP @po@P DiPP  0ᙤ@ tP HpW@P LQPP  0ၤ@ tP Pp?@P T9PP  0i@ tP Xp'@P \!PP  0Q@ tP `p@P d PP  09@ tP hp@P lPP  0!@ tP pp@P tPP  0 @ tP xp@P o`PP  0@{ tP| p@Py PPu  0ף@o tPp p@Pm PPi  0ΰ@d tPe p}@Pa wPP]  0᧣@X tPY pe@PU _PPQ  0Ꮳ@L tPM $pM@PI (GPPE  0w@@ tPA ,p5@P= 0/PP9  0_@4 tP5 4p@P1 8PP-  0G@( tP) <p@P% @PP!  0/@ tP Dp@P HPP  0@ tP Lp@P PPP  0@ tP Tp@P XPP  0@ tP\p@P `PP  0Ϣ@ tPdp@P hPP  0ᷢ@ tPlpu@P poPP  0២@ tPtp]@P xPP  0ᇢ@ tPo`pC@P =PP  0m@ tPp+@P PP  0U@ tPp@P  PP  0=@ tPP@P `P  0%@ tPK*OOOtP*OOOtP&*O(O,OtP3*O5O9OtP@z*OBOFOtPMo*OOOS~OtPZd*O\O`sOtPgY*OiOmhOtPtN*OvOz]OtPC*yOwOROtP8*nOlOGOtP-*cOaONtPE)NGNKNtPR)NTNXNtP_)NaNeNtPl|)NnNrNtPyq)N{NNtPf)NNuNtP[)NNjNtPP)NN_NtPE){NyNTNtP:)pNnNINtP/)eNcN>NtP$)ZNXN3NtP)ONMN(NtP)DNBNNtP)9N7NNtP (.N ,NNtP(#N!NMtP$(N&N*MtP1( N3 N7MtP>(N@NDMtPK(MMMQMtPX(MZM^MtPe(MgMqMtPx(MzM~MtP(MMMtP(MM5MtP~(MMMtPs(MMMtPh(MMwMtP](MMlMtPR(MMaMtPG(}M{MVMtP<(rMpMKMtP1(gMeM@MtP&(\MZM 5MtP(QMOM*MtP (FM"DM&MtP-(;M/9M3MtP:'0M>.MB MtPI'%MK#MOLtPV'MXM\LtPc'Me MiLtPp'MrMvLtP}'LLLtP'LLLtP'LLLtP'LLLtP'LLLtP'LLLtP'LLLtPv'LLLtPk'LLzLtP`'LLoLtPU'LLdLtPJ'L~LYLtP?'uLsL!NLtP(4'jL*hL.CLtP5)'_L7]L;8LtPB'TLDRLH-LtPO'ILQGLU/!LtP['=L];LaLtPh&2Lj0Ln LtPu&'Lw%L{LtP&LLKtP&LLKtP&LLKtP&KKKtP&KKKtP&KKKtP&KKKtP&KKKtP&KKЁKtP&K괁KKtPs&KꘁK KtPg&|KKuKtP[&`KK"DhKtP(N&K*K.(\KtP4B&xK6vK: PKtP@6&lKBjKFDKtPL*&`KN^KRԀ8KtPX&TKZRK^글,KtPd&HKfFKj꜀ KtPp&lJBh~FJtPH ,%bJL`JPL~:JtPV %VJXTJ\0~.JtPbT %JJdHJh~"JtPn( %>Jp};JsJtPz $2J|}/J JtP $}%J#JItP $}JJ}ItPt $ J Jl}ItPH $JIP}ItP $II4}ItP $II}ItP $II|ItP $II|ItPl $I|IItP@ $I|IItP w$I|IItP k$l|IIyItP _$P|II4|lItP$ R$I&I*|`ItP0` F$|I2zI6{TItP<4 :$pI>nIB{HItPH .$dIJbIN{\yJHtPDd0#fHFdHJ@y>HtPP8$#ZHRXHV$y2HtP\ #NH^yKHa&HtPh #BHjx?HmHtPt#6Hvx3H{HtP"x)H'HHtP\"xHHxxGtP,"HH\xGtP"HH@xGtP"GG$xGtP"GGxGtP|"GGwGtPP"GGwGtP$"GGwGtP"GGwGtP{"GGhwGtPo"GG Hw}GtPtc"GG(wqGtPHW"GG#weGtP)K"G+G/vYGtP5?"uG9sG=vMGtPC3"iGEgGIvAGtPO'"]GQ[GUv5GtP[l"QG]OGa*GgdvDv$vvuuuu`u@u uutttt\t@ tP` 0pP 0@0@P  0 @ tP` 0pP @0@Px  0@r tPs` 0pPl @0@Pe  0@_ tP`` 0dpPZ @0@PS  0ƕ@N tPO` 0~pPH @0u@PA  0ᨕ@; tP<` 0D`pP5 `@0W@P.  0ን@) tP*` 0BpP# @09@P  0l@ tP` 0$$pP @@0@P   0N@ tP` 0pP @0@P  00@ tP` 0pP @0@P  0@ tP` 0tpP @0@P  0@ tP` 0pP @0@P DP1m.t6&l+ 5sc z[6 r }W |" t9.UHYT# 0ᐔ@v tPw` 0THpPp p@0?@Pi  0r@c tPd` 0*pP] @0!@PW  0T@R tPS` 04 pPL P@0@PE  06@? tP@` 0pP9 @0@P2  0@- tP.` 0pP' 0@0@P   0@ tP` 0pP @0@P  0ܓ@ tP ` 0pP @0@P  0ᾓ@ tP` 0dvpP @0m@P  0᠓@ tP` 0XpP @0O@P  0႓@ tP` 0D:pP `@01@P  0d@ tP` 0pP @0@P  0F@ tP` 0$pP @@0@P  0(@ tP` 0pP @0@P  0 @ tP` 0pP @0@P|  0@w tPx` 0tpPq @0@Pj  0Β@e tPf` 0pP_ @0}@PX  0ᰒ@R tPS` 0ThpPL p@0_@PE  0ᒒ@@ tPA` 0JpP; @0A@P4  0t@. tP/` 04,pP( P@0#@P!  0V@ tP` 0pP @0@P  08@  tP ` 0pP 0@0@P  0@ tP` 0pP @0@P  0@ tP` 0pP @0@P  0ޑ@ tP` 0dpP @0@P  0@ tP` 0xpP @0o@P  0ᢑ@ tP` 0DZpP `@0Q@P  0ᄑ@ tP` 0<pP @03@P  0f@ tP` 0$pP @@0@P~  0H@x tPy` 0pPr @0@Pk  0*@e tPf` 0pP_ @0@PY  0 @T tPU` 0tpPN @0@PG  0@A tPB` #0pP; @0@P4  0А@/ tP0` 0TpP) p@0@P"  0Ა@ tP` 0jpP @0a@P  0ᔐ@  tP ` 0LpP DyE8}p7*eU l+M ; !!a"R"####}$w$E%5%%%&&q'b''(((())K*D*+ +++,,{- @0@P  00@ tP` 0tpP @0@P  0@ tP` 0pP @0@P  0@ tP` 0TpP p@0@P  0֏@| tP}` 0pPv @0@Po  0ḏ@i tPj` 04ppPc P@0g@P\  0ᚏ@W tPX` 0RpPR @0I@PK  0|@E tPF` 04pP? 0@0+@P8  0^@3 tP4` 0pP- @0 @P&  0@@! tP"` 0pP @0@P  0"@ tP` 0dpP @0@P  0@ tP` 0pP @0@P  0@ tP` 0DpP `@0@P  0Ȏ@ tP` 0pP @0w@P  0᪎@ tP` 0$bpP @@0Y@P  0ጎ@ tP` 0DpP @0;@P  0n@ tP` 0&pP @0@P  0P@ tP` 0tpP @0@P  02@} tP~` 0pPw @0@Pp  0@k tPl` 0TpPe p@0@P^  0@Y tPZ` 0pPS @0@PL  0؍@G tPH` 04pPA P@0@P:  0ẍ@5 tP6` 0rpP/ @0i@P(  0ᜍ@# tP$` 0TpP 0@0K@P  0~@ tP` 06pP  @0-@P  0`@ tP` 0pP @0@P  0B@ tP` 0dpP @0@P  0$@ tP` 0pP @0@P  0@ tP` 0DpP `@0@P  0@ tP` 0pP @0@P  0ʌ@ tP` 0$pP @@0y@P  0ᬌ@ tP` 0dpP @0[@P  0ᎌ@ tP` 0FpP{ @0=@Pt  0p@o tPp` *0t(pPi @0@Pb  0R@] tP^` $0 pPW @0@PP D|-9-5-....//W0@00011_2W2#3!33344y5o596,666778v8;979:9::w;a;<<<<==I>;>?>??k@W@AAAABvB3CCCCDwDAE3E 0@ tP` 0TpP p@0@P  0Ћ@ tP` 0pP @0@P  0᲋@ tP` 04jpP P@0a@P  0ᔋ@ tP` 0LpP @0C@P  0v@ tP` 0.pP 0@0%@P  0X@ tP` 0pP @0@P  0:@ tP` 0pP @0@P  0@ tP` 0dpP @0@P{  0@u tPv` !0pPo @0@Pi  0@c tPd` 0DpP] `@0@PW  0Š@Q tPR` 0zpPK @0q@PE  0ᤊ@? tP@` 0$\pP9 @@0S@P3  0ᆊ@- tP.` 0>pP' @05@P!  0h@ tP` 0 pP @0@P  0J@  tP ` #0tpP @0@P  0,@ tP ` 0pP @0ۿ@P  0@ tP ` 0TƿpP p@0ཿ@P  0@ tP ` 0ਿpP @0@P  0҉@ tP ` 04pP P@0@P  0ᴉ@ tP ` 0lpP @0c@P  0ᖉ@ tP ` 0NpP 0@0E@P  0x@ tP ` 00pP @0'@P  0Z@y tPz ` 0pPt @0 @Pm  0<@h tPi ` 0dpPb @0@P[  0@U tPV ` 0־pPP @0;@PI  0@D tPE ` 0D฾pP> `@0௾@P7  0@2 tP3 ` 0pP, @0@P%  0Ĉ@ tP! ` 0$|pP @@0s@P  0ᦈ@ tP ` !0^pP @0U@P  0ለ@ tP ` 0@pP @07@P  0j@ tP ` 0t"pP @0@P  0L@ tP ` 0pP @0@P  0.@ tP ` 0TpP p@0ݽ@P  0@ tP ` 0ȽpP @0࿽@P  0@ tP ` 0ઽpP #EYE!FFFFG{GAH1HHHIIwJgJ+K$KKKLLgMcM3N/NNNOOP}PEQ:QRQ @0|@Pp  0ᯇ@k tPl ` 0gpPe @0^@P^  0ᑇ@Y tPZ ` 0`IpPS |@0@@PL  0s@G tPH ` 0+pPA @0"@P:  0U@5 tP6 ` 0@ pP/ \@0@P(  07@# tP$ ` 0pP @0@P  0@ tP ` 0 ѼpP <@0ȼ@P  0@ tP ` 0೼pP @0઼@P  0݆@ tP ` 0pP @0@P  0ῆ@ tP ` 0pwpP @0n@P  0ᡆ@ tP ` 0YpP @0P@P  0჆@ tP ` 0P;pP l@02@P  0e@ tP ` 0pP @0@P  0G@ tP ` 00pP L@0@P  0)@ tP ` 0pP{ @0ػ@Pt  0 @o tPp ` 0ûpPi ,@0ົ@Pb  0@] tP^ ` 0ॻpPW @0@PP  0υ@K tPL ` 0pPE @0~@P>  0᱅@9 tP: ` 0ipP3 @0`@P,  0ᓅ@' tP( ` 0KpP! @0B@P  0u@ tP ` 0-pP @0$@P  0W@ tP ` 0pP @0@P  09@ tP ` 0pP @0@P  0@ tP ` 0ӺpP @0ʺ@P  0@ tP ` 0ൺpP @0଺@P  0߄@ tP ` 0pP @0@P  0@ tP ` 0ypP @0p@P  0ᣄ@ tP ` 0[pP @0R@P  0ᅄ@ tP ` 0=pP @04@Py  0g@s tPt ` 0pPn @0@Pg  0I@a tPb ` 0pP[ @0@PU  0+@O tPP ` #0pPJ @0ڹ@PC  0 @= tP> ` 0ŹpP8 @0༹@P1  0@+ tP, ` 0৹pP& @0@P  0у@ tP ` 0pP @0@P  0᳃@ tP ` 0kpP @0b@P  0ᕃ@ tP ` 0MpP @0D@P  0w@ tP ` $0/pP @0&@P  0Y@ tP ` 0pP @0@P  0;@ tP ` 0pP @0@P  0@ tP ` 0ոpP @0̸@P  0@ tP ` +0෸pP @0ஸ@P  0@ tP ` 0pP @0@P}  0Â@w tPx ` '0{pPr @0r@Pk  0᥂@e tPf ` 0]pP` @0T@PY  0ᇂ@S tPT ` 60?pPN @06@PG  0i@A tPB ` (0!pP< @0@P5  0K@/ tP0 ` 40pP* @0@P#  0-@ tP ` &0pP @0ܷ@P  0@ tP ` 0ǷpP @0ྷ@P  0@ tP` 0੷pP @0࠷@P  0Ӂ@ tPp 0`P @0@P  0ᵁ@ tP7 m/k/RE/tP+ a/R^/9/tP U/S/./tP }SI/G/xS!/tP  =/;//tP 2/$0/+GT /tP1 &/6;T#/<.tPC /H/O.tPV /[U /aU.tPg /l/s.tPz ..U.tP ..T.tP ...tP .BV.=V.tP ...tP .. W.tPz ..U.tPn ..}.tP c ..yWq.tPW vW.".)e.tP0K .5.-tP=$Z-BX-I3-tPPO-UM-\^'-tPb =]B-f@-m-tPt7-y5-^-tP+-)-^-tP--,tP--_,tP^--,tP,,,tPF`,,C`,tP,,,tP, ,a,tP,_,#,tP*,/,6,tP=a,A,Ha,tPNs,S,Z,tPah,f,mibv,tPs\,xa,~j,tPP,,_,tPE{,bx,bR,tP8n,l,G,tP-c,a,c;,tP!W,U,|b/,tPK,I,$,tP @,>Kd=,D^d,tPJ3,O1,V ,tP](,b&,iEe,tPo,t,{c+tP,,+tP,,e+tPe+++tP++f+tP++{e+tP+++tP++qg+tPlg++ +tP|+++tP&q;h+*+15h~+tP7d+<+Cs+tPJY+O+Vzg+tP\M+ah+g[+tPnAw+su+z(O+tP5k+i+( C+tP)_+]+ 7+tPS+Q+ ++tPG+E+ +tP;+9+ +tP/+-+ +tP#+!+l *tP++ P *tP + +, *tP"*'*. *tP4*9*@ *tPF*K*R *tPX*]*d *tPj*o*v *tP|**t *tP**T *tPu**4 *tPi** w*tP ]** k*tPQ*!*( _*tP.E{*3y*: S*tP@`9o*Em*L G*tPR4-c*W| `*];*tPd!W*i\ T*o/*tPvK*{< H*#*tP ?* <**tP3*0* *tPX'*$*)tP,**)tP* *)tP **)tP )`))tP| D) ))tPP $))#)tP*$ ).)5)tP< )@)G)tPN )R)Y)tP` y)d)k)tPrt m)v)}{)tPH ah))Ln)tP T))c)tP I(~)|) V)tP <r)p)J)tP 0f)d)>)tPh $Z)X)2)tP< N)L)&)tP B)@) p)tP 6)4)P)tP% *)*()10)tP7 )<)C(tPI` )N)U(tP[4 ))(tP (((tP (((tP ((x(tP ((X(tPX ((8(tP, (((tP |(( (tPp((~(tP"d('(.r(tP4|X(9(@f(tPFPL(K(RZ(tPX$@v(]t(d\N(tPj4j(oh(v@B(tP|(^(\( 6(tPR(P(*(tPtF(D((tPH:(8((tP.(,((tP"( ('tP((d'tP (H('tP l'(''tP@'#')'tP0'5';'tPB'G'M'tPT'Y'_'tPf'k'q'tPxd'}l''tP8tP'''tP h','v'tP\''j'tPP''^'tPDy'w'R'tP\8m'k'F'tP0,a'_':'tP pU' S'.'tPPI'G'%"'tP,0='0;'7'tP>1'B/'I 'tPPT%'T#'[&tPb('f'm&tPt 'x '&tP'&&tPp&&&tPxP&&&tPL0&&&tP &&&tP&&&tP&&&tPx&&&tPpl&&!z&'pP0pP0pP0lL, lL, lL, lL, lL, lL, lL, lL, //[/ //[/ //>`/ //6`| / //k/ //k/ //ሠ/ //[/ // / //s/ /// //`/ //v/ //va/y //E /q //2 /i //@/a //}@/Y //Bw /Q //+wg/I //r}/A //X}X/9 //ᐕ/1 //w/) //_/! //D/ /// /// /// //l/ // 8/ //7>/ //o/ //nW / //(1/ // 1? / //+:/ //:/ //; / //; / //oh / //[h/ //ɾ / //ᵾ3 / //۱/ //۱/y ///q //x /i //_ /a //_/Y //ṷ/Q //ិ /I //_ղ /A //Hղ9 /9 //a/1 //GH/) //o/! //R~ / //ᰑ/ //ᒑ/ //ᆯ/ //j / // a / //`6/ // / //Q/ //#/ // / //ɴ / //ɴ/ /// //*/ //m/ //m / //=$/ //#$% / //(0/ //01/y //)/q ///i //x/a //f/Y ///Q //}/I //)./A //.|/9 //x4 /1 //d4D/) //4/! //v4/ //C/ //C/ //"I/ //I / //X/ //; / //%' / //'% / //C / //B/ //¸ / //¸d/ //ʸ/ //ʸX/ // ݸ/ //ܸ/ //Q/ //lQ/ //恹/ //ȁ; /y //㞹/q //Ş,/i //ι/a //ι/Y //Ϲ/Q //qϹ /I //(/A //(/9 //{I/1 //oIr/) ///! //ṇ/ //ᮉ/ //ᝉG / /// // / /// //1/ //c/ //c/ //m|/ //d|2 / //v#/ //y9 / //ᒱ/ //ᐱU/ //ŵ/ //ỵ/ //ᢹ/ //ᙹ/ /// // :/y //'Ļ/q //ĻK/i //H/a //E/Y ///Q // /I ///A // /9 //%/1 //% /) ////! ///j / //</ //<f/ //K/ //Kk / //LW/ //@W / //a/ //a/ //"g/ //g1/ //!m/ //mc / //Y/ //K / //Ւ/ //ʒ / //6/ //' / //ڼ/ //ڼ/y //^/q //^/i //Wm/a //KmQ/Y //|}/Q //m}/I ///A ///9 //i/1 //f/ /) //u/! //h/ //4/ //1/ /// // / /// //c/ //. / //./ //71/ //41/ //%9/ //9X/ //P=/ //L=U/ //N/ //|NX/ //ᴭ/ //ᯭ+/ //*/ ///y //<Ⱦ$/q //@Ⱦ /i //Ӿ/a //Ӿ /Y //߾/Q //߾/I // /A //{/9 ///1 ///) // /! //b/ // / //N/ /// /// //~/ //y/ //!/ // / //)/ //)/ //8/ //8 / //S/ //S/ //;c/ //1c0/ //Ax/ //9x/ //#/ ///y //ጊ/q //ည /i //+/a //*j/Y //t/Q //mk/I ///A ///9 //lӿ /1 //Yӿ/) ////! //"/ /// //} / /// // / //U / //J / // / // K / /// /// /// /// //( / //(/ //&+!/ //'+/ //3 / //3/ //C / //C /y //[ /q //H /i //> /a //7 /Y //P/Q //P /I ///A // /9 ///1 // /) //v/! //i@/ //Z/ // Z/ //ᑟ/ //ᄟ / //-/ //&?/ //E/ //?b/ /// //t/ //K/ //GT / //{/ //y8/ //=/ //= / //Q{/ //P{/ //O/ //N/x //ȕ/p //ĕ/h //I/` //DS/X //w/P //n/H ///@ // /8 //ᬷ/0 //ᢷ/( //@/ //95/ //N/ //L / //'/ // / // / /// // / // / //q / //o / //// //./ /// / /// / //T</ //F</ //)= / //)=G/ //PK/ //BK/x //%L/p //#Ls/h //v/` //f/X //E#/P //H/H ///@ // /8 // /0 //! /( /// /// // / /// //+/ /// //$/ //0/ //r/ // r / //r / //rB/ /// // / //+/ // / //Ȳ/ //Ų/ //ᾳ'/ //ų / //?/ //8/x //)6/p //?/h //(/` ////X //4/P // /H //&/@ //+/8 ///0 //E @/' //fz/ //czN / //ᑴ/ //w //O-p0 R /?QA(PxxQ R*R p R0qH/`S0CuRJ:PO Bp`@vpGWP0@0P00 P0 P0P0 0 P0 00 0 @ P `000@ 0qppHPwuwe `Rw:cuR R::B`P B@RPp@ P@p @@p @@p @ @ p @ @ @ p@0@`0 0 ^ p R0qH!`7c:R/pL-qp`H c?c =c0C 0C00 C@0*CP0JC`0jCp0ナGGU` QU` ` p0p`#0TPa ^0 Q`U `p@p`$@SP a \0 aPV p@pP$@S`Q R X*9 P P@P $@SX*:aPV pP@pP$@S`Q PH!HSR P@P$@S H!HS K  @ @  @ @.H- M  00 РO-MP@P `8Q1P K@U p 0S2(0 0$P$ v`wpWpGP VRJPPWY(&3/W@ pP *P  Jp7,0p400 sLpP0TX  0(3/, 8 0(3/L @ 0(3/&p)/O $ 0(3/l)/OpO 18 0R @QP0GKpgP VoDQ & `$@PYP@,L D< @>6dp@l@\@t@ 0xp`ph@H@0| KPDpL-@T Q $0SQp R`9 F8R;P!"V*V R (3/D R $0(3/@ R $0(3/8 R $0(3/$ (2/qVppL-Pj@P pP`,L D< `6T `l`\`t`0x ` h`H`0|pO-M@T` Q $QPUKQp9 A8R;0!"Q*QVY *Q Y tQY0 0,PY L D ఀ,\lG`` @@tl^(:4n80 N@pD`HTX   P% PHP@ tltPl^ tx \` hl    KO-M,t0PA,P< l BpB P_:@8 Dap Lpl BD0W\`@,lp  F`\ *0  pG`F0O*fpWb (3J2*F`&`Hd(b$R"Bd (E*FR 0CpQp RpGpC@`Q0*@  pA@`CO*fpWb (3J2*F`&`Hd(b$R"Bd (E*FR 0DpQp RpGpCppX] t XPPU 8`H P P 0 0 )0t 0t0 0P':l`8`FTXA PHP^%pPp PpBHPq4 D@@0  PHP @@``AP 0PP3[ `|OQl t0pP *PA8QQ# ! R PBA8 UPK0H-@ R 0S $0S0S0PU0 9PB8U; QRR*Rlt , PUPQUTP08  @ TP0pL-P`@ P $PPUpP9@8Q;P*P, p `*P qP9N0`(`.pH- R 0S $0S^0S9 L8R;0!"\*\ RH- ^ 0S $0S\0S90N8S;12^*^QRO-MPQ@ R $ RXK R9 A8R;!"Q*Q Q:` p`WpI.PUTGK-P`p P $PXPP@9@8Q;P*PuPT UP @ ! P [ P p P Ps PdP_ P L D`,Rp*#`L D0 0F 0BpG O*g0Sb (3J2*F`&`Hd(b$R"Bd (B*GQ  L0P0Q0C0B@pP * 0@pB O*g0Sb (3J2*F`&`Hd(b$R"Bd (B*GQ  L0P0Q0C0B@ 0 |0P`@TTO-MPU` Q $Q@TKQ9 A8R;0!"Q*QV R  R 0S V 2Q0KP3 (0P(` ,PppW    @PQ  *Qo0(0/OƂ Sʄ0S@ Sflp0 W  B(@"!$  000A0#22C0!lP 0 00"<"(000 0 00"4000  F0qk,pWpW   @PP R *Q QP9Q p0           P|  Q$,pPRX^00  00   00"$   00   00  Q P Q 00  00 Q  00  00"$ ,P  0(0E 0P Sp 0V0d SbPK  p  p  p  p  p Q P Q 00    qp+pWpW   @PPEA"P<0P_ 1pC 0S?B 9 P,Q  @0p0   +pWpW    @PP5I p Y   P,Q  @000 IPQPL  P3 P , R 0 @0 0*pWpW   @PQ  P 0 p 0 00Q,P P3 [$PO$PJ  P3 P , R 0 @0 0J*pWpW  e  @PQ | P 0 p $0 00Q,P Pg,P<,P7   R!)pWpW    @PP400 0 0 "$00  90q)pWpW   @PP (KPtPl Pe Ql QM tP-tPT p8l` 000tl0A tCRl\ 0R8 @)l\Z)pWpW  u  @P PQ2FVP  P P`l5`lX. 80 pRW)WW$  WiWhWgWfWeWd Wc0Q W  Y 08 00 0tl0A tCRlo\ 0R8 @E)l\(pWpW   @PP@      B! R R` :  Br04vp0ppvppp  0 `t lp BG`0\t l tP:*tV,P)*dp 2/T  @0 0$ @0 0VH V PI \PV\0l P8 B(l\ (pWpW  (  @PQQQQ(KP>V V( 0pn'VL D ptP\l'pWpW   @QP VXQ10Q1 000 "$00 #00 3 00  00  "$00  00  K 00 < 0 00 000 40 00`F'pWpW  a  @PP`oKPB \P8l 0 B'l\'pWpW  *  @PPL0L-\ @T $@T^@ T9@L8T;AB\*\0| 0H- ?@P1$3 @T $@T\ 0@T9@@8T;A*PBPP% P Pl@ T^ @PT PU$@T PU,PU0PUPPU 0!&!'0O-M@6P 0, 00AS0 0" *R:1\lp` BpGoQ1X X * U XU ?o2 (%o 㠒 0e%@(@@! @P%`V`V   @PW W8p\  H 0  B0\\X- ` PPppW @ P P 0 70 0` P @ YPX  `R , V*<l@P 80Al0 YQ8 l0@ Kl,l l008A=,l&0 yO@V`[ p P5Rs0S  P \0Qg <`V`V2<0``P,0\\ Al 8L\Q, `V`V 8@l0 P P 0 l 0 0llP5p \p,0A*pqB/W 1R0Q*Q00UpEor0KQ00SQ``U00SQ8 0$\p\@k$PUPU   @PXKK-Q`P P $P@TP9 @8R;!"P*PU 0 b *`J` gb&*@J@( A0 0gA3/`P &p, P 0(3/, 8 0(3/L @ 0(3/)/O 0(3/l8OP@Q XDQ, 8 , @@ L DD  6` A $ | 0 O-MP tP tXQ:P P:8 lH` X@T0 Dp$"4 @H ` 0Q , 1@ BPo`Pq: @l0 pp 0Cpp0 d`p``C$p P0  ) )0 0C`@t B/oAtbQ):T'4`D8@D@DH``lTX Al 09#`0H`0p0ఀᰀ `@@Dt Al `Vv 6l p8 TX0`pl pHp HVe %`P* 08l 00000 lp0 GtCoAtbl V> \0P B8&#l\`"pWpW   @PP@K@Kl&P#X1\ 0R8 @"pl\@\"`V`V  w  @P@P@KQ1 \ 0@R8 @"`l\&"pWpW  A  @PP@K@KO-M l th lAttP tQQ.:P0 P38l`HpX TP4!D0@H `Q` p0x `d0 0R*l0q, 0C BS P`Q`x R*` px `dR:P0_  Bd`p`&lPpt``p@pPrPE F@uqP Q, p,!ypy)  x`l P0ftpEF0pFt0x`@l` V8PH0XPT4<%D@0@ H00PP`xppGw `@h lQT\ 0R@8 @ !l\`)!pWpW  D  @PP%Plp@ Q[x Rf*hP p 08 0l0P00@Q*\0l P8 B ]!Pl\` pWpW   @Plt lBtPPKPKhP ` 08 0lp0P00p) )hl&P#Q5\ 0R8 @ !pl\Pt `V`V   @PPPPKPKQ1 \ 0PR8 @ `l\9 pWpW  T  @PPPKPKT8O- Mpx ,PR|0q8pElP#1!4U``@@`FtpQ WPPP` p`pPUP @ypPUXPpPUwpURPpWNPpWJPp\"@T @T@T@T@T @TPP pW P P PPPPP PpE @PU pU  P*0S R K P/ O,Q  O- M@P pP PP <@(\  @@@/ *0p@0@Lt@ T|@<@\|@MT`A8Ph`@`\2`@`\,(\&p p\ ``\@\@\zO| p\t y p\n``\hOW We Pb( @PX t! 0  O,QW 0W+"SAXW  !"p1 W c   OLP `U`p 0Q,4`8`P@H@P Lq P@L@X@@K @KI pL-p P@uP < 0`  @`pp膲 R 9\O<\Q0S/Q/pL-PP% @ OP LPp 0`p O`PP48,PHPP Lq !PPLPXPpH-`P @ P QO QzLPpvRtR  H0SD0@ @DH 00O,Q, RB tO Q P00P0@D @TD@H`KO,QH@TDPpA 0pp: O p`Q48,PH`P L r P`L`X`O Q   R D]p P``P4`8`H` Lq PX`L```H-MPP@`P Lq PvVvTL`K`_p\tPP pSPP8 40 KLKnf7P 9RO<RH RD/P 9RO<RH RD/0H-@P P POP  p O,@QX@@00H-@P P POP  p O,@QX@@0Q/ O<R8/P 0)SO,SQL  Lq /PQ/ޟ[L-P @ P OP48PP Lq PL0H-@P P O<P LPprP @0,  0LQq@0耫O-MR) @HP`P' XHDpW ! PPpG 0@ W P4P P p[ WKXP p ER!#P pW:``dPp? pP>4 pW Wp! )@`PEU4P P ,P U*gp UKK8KKKL# pKK-@S PO`PLpPpU   s'P Y  Es'@  CkP O<RL RrQ A0 /H- MK [P РH/P O<RL RrQ A0 /H- MK [P РH/pL-Q8 @ POP2LPp.HP D`H PP 0@`F V P4P XP p T Q Q  @p $ @ $0R  Q q `$ Q @ @@8@ptO-M`VQKpR ORLQqHP D@H PP 0@@D T P4P XP 6p'W% @ T+p @T PT@  peW@  W@ X@K8 Z KpL-@P,P P PVp* ,P /$`d p P4P XPp$P` FR!#<PP:PpP4$Pp PpP/L-@ OP,P (P (M-@TP% XP R LP`p4PV Rw R QPD (P: $T`(,XX``)p %W$P p! h!pPXp 80@`p p$pp P $ !p j``4X`` `(`,RT` X pAP GR!#P`V:P 4X  TX R `+ӟ s8ӟpL-PP @ OPP T$  LPU`uPVPpO-M@TdPXPLPpT4P-`p  FR!#-PpW:PD4X TX  PP xxdUP  d ``UB`A,`K  p  lX P `KmD `Kg|CП>P 9\L0S /r H-   vH/ᴝK-pRm PPpc HP' XpD`PHp pU V pQ@@Q@  TX@p; `VP `pX PT T  0@@BT @ `VXX pXP pp TX~pK-@S P`PLP U  p o'P Y  io'@  觚M-M`P P PLP KHP& XD@PH -p T QppQp H TXpp @TP X QT 0T0 AR *x`XXK `Px`KpL-PU @ )QLQ p` PVpO-MpP @ `PLP KPrph HP( XPP p# U QppQp  TXpp PUXP T LpK 4 p 0 p@P `PP*PPXpXpW:X`^p `G Z TX`pKLpKLpKpL-M`@\P % P(P `PKpNP$ T@0P<  tPxP8`|P  0 `KP $1 -P  PKp(QTP$`dKpǟgH-@PPp (P X pR TR!#pTX T RX T`UM U'dpWP` R  BR!pg` RdpWp$`dpEp^ dWpH` R ` R BR!sP<dpWp$`dp p9 dW$dpW` R BR!SP` RdpWp$`dpp dWppU p  pYMH- M  0 r РHЍ/H-@T7 P )Q2U0LQ-HP& XDpPH $p W Q``Q` ? TX` p pWLM-@T ` )QLQ <P@Q HP& XDPPH p. U QppQp  TXpp PUP XP p T L<`@LLpL-PPO @ PJHP& XPD`PHP p V QPPQP  TXP{p `VPLPppLPP (PTp$z x r*`mvPpH-`S P8Q 1QQV@R 0Sp0(0 0$+pPP$(3/P  %(P, 048@Px8xO-LMX$ Y( K?p0` P4$t, p\Xp,, 80?(00 4?@PLDP P`F:?@P`F:VW$ K( 2/pP pG  ` V:z* XUXD (P,@0`W$ K( 2/pPo T,@ 8`0@ 5/PfX X `@DpG DPD VW$ K( 2/pPA pG  `V:!h `F d Z1R*Q`:, 4  l VW$ K( 2/pP pG  `l`,`FP ⪡ 0 Rl @@W:R a0 Q 7l$ PpX,0 P9  vV*W$ K( 2/pP pG  ` Q Q AQ Px T X\H,@0`?0` ,@ `4?@Pd hlpQP P $PPp ,0X @@P X P!!@V*W$ K( 2/Pu pPX pG0 0  !`!@V:P l`F:ld hX4:P P>V*W$ K( 2/pPG pG  `V::0@`:ᠡ=V*W$ K( 2/pP) pG  `V:l`F:Q   `F0V*W$ K( 2/pP pG  `V:: 0@`:ᠣl@d hX=S , 0 0C @ PM @\ P ,0SlX4L:0QD`F⪡?@PXd0ph \0T0tP dF4dBH,PW#PX P!!@V*W$ K( 2/P pPX pG0 0  !`!@V: RH F01$PUW $ K( P2/Pl pP pG ` 1$0S4!`F:0,   ,0<P@`A005 0  , <@`?@Py2`F:RD# =@=L= V*W$ K( 2/P pL pG `V:D `F:D!,P , 8(0@0 0 3/PD0@, 0 H?@P3?X \T!!@V*W$ K( 2/P pT\ pG0 0  !`!@V: . `F:@VHL V*W$ K( 2/P pL pG `V:H`F:H,0Q,@0^:.01$PUW $ K( P2/P pT pG ` 1$0S4!`F:`F:@ LQ?@P[,@T ,@8(0 0@0 3/Pn,0H DA0PT,@ 0D^ࠁT@bD^:  RH@U0Q1 :  N 0 @P@T e B ^0 P ,@D4@D0P0 ,@ ?@PR 4Q?@PEp p p p 40 0K,, P  @8(03/P0$S[sTi_X^j@텤L-@T Q$ R(2/O-\M; 000QX0``FP\pB34@w(0 008P@80 0C4p 4Tp$00<@ P$ , p p00D0000,p8P 0<@(0` R0 ( 0PP@ B1P p0@ 0tpP@ B1@Y$5^1:, t R*,@0,@  0 B1pR,@0@,@  4 0`P B10` @S 0u@P B1 R*,@0``V*0 @,@  ,0 0`0 Bp8010IW14@GT0P=<PH Pj*(0D^0C8@P @GNPp: 0Y$050000U1: 0p@ ` eX FP 0`PI Pgp` @pG0V000000SP^T0pN0W@`T`IJ,^80@P\ 0GT p0F: Y8500U1?: 0 pD ` eP F T0`3680@^P9 0GTp0l:Y8500U1e: 00Dp ` eZ FT 0`VY ,0`Y$5^1: p0pW8N0 PI^ :N^P^ 0 0^,Y$5^1:^ p0pW$P  @T<0(4/,@00?<P :P N`Fp:GQeV*X H` Q Q AQ ἞G pP TX 4/\DP`F:VX H` V:* zPBD`P C p@$T| T@T@T  @080,pG@0H(0@$ @f VX H`V:!h p d Z1R`F*Q`U:0Q`l8 QO:g pl LPLPIYY| $IH$ pGQ* P VXh H` V:4  R P  $@0AS ?@ E8 0l/ VX @H0`@l0`Fp ⪡Q0w0:$pQ a Q0 7l, P @pX(8004P @ ,Q$p @8 0XFl,@ 08p 0@ dh @R*X0P 8p   p V *Xp H`p V:! Rp@lp`F:'@0@ S8p :pR R1pV*XJ  H`V: @p:  B:` ᠡ0pV*X4  H`V:@p`F:Sy   `F @TNpV*X  H`V: @p:   B:` ᠣ@T4Rp8 p pG0 M L R (R0 8 pWl@0,@@ S8p j: P( ,Pp X(8 004P@ @ 0,@Q(0QD`F⪡pGQe 0Q4/pGQX$  Q 0  zB@*@!""!BP QQ8p 0(pdph \0T400taP@  P,@(Q$PZ  6`X H` V:$P M7`X H`V:$Pz * 4/  !8` $P7VX H`V:$`DQ  !<@* K KK p+,4/00(@<@* K KK p,04/0(@9 ( pP@@T $ @0R0S p AQ@ G(0,p  H@04/@0@P):$P#X p$ @QPT X R25@7T X T 0 H4/,@;$P$&X @8 $p@Q$PWX (R25p7WX4/ <W80H @<  VX H`V:  <Z`$@Q 0 , ^<0(,0?@04/pGQM "< @0E<4/0@0,(W G8p  0 Dp@,A`FDp:0`F:T` ( 4/b@I @8LP.H`V*Xj Dp`F: $J\0pT8 #V *83X4 H` V:0q粐 D@0- 23q10@TB(X* 0H`0 3q10 R M @4/(?aj#i(D@`Fq: 岐`F:@LH080K,@LP:H`V*X/D:H `FD H:LY  4H AP0 @^P ,@Qq$ pB@0 0 Hh4@0 0^ ,NA 0,@Q8U@D8 ^$pࠁ0 ^80 ࠁ^A*  @Y0W1:  0N @$ g@T @ ^($ 00S08$ AP ,@,@H@04/0pGQetQ @8pGQY(0,00@ P 4/P 0P%`4 `4 4/O PPa VXw H` V: ZR QpGQh4 QpGQ @0P"( ZR( ( QQ+`F,@*Q<@* K KK p,4/00(@k,@QLe 08,@Qdd(@ `> 0=?,@,@ 08Qhdd@p $@ @ ,DP<@`6 p`8P ( 0( 3/$@P,8} 4, `AR( 0!, 0040R$40D@BT@ @`V! 8J :,04`(# R4P PPXMPD",04( 4 , (00R0P40005Hp @G04`P    AR  < <(0B?@ Q?@ P PG? P  , XY KRK8 0@pX@p0T@0(8pM@p8@HpFK@p80,@=@p898H0 @@p2@ H 0,@p+$ <@`K@@p`P``F⪡p VV_TWXTY-WnW UL-@T Q $0SQ R4/ LR8 R (3/$0(3/pL-PQ@ R $ R`Vp R4/AQU0P 480 @804 8@2T0pK-`VP Q $QpWQ@4/ AR R >/Q>Q    Q8P ( 0( 3/P89 , R( 0!, 0040R4`BV` @T 8I ,04@I,044 , 00R0P40005R R 0S $0S\/0S/ 4? BR $0/pL-MP R $ R\Kp R04/ CR R@`V:SS l0@R>T@`<0 1R<0@ * b`q PA`0@T#4@ l@ B B000,  PS``3V0T@2S3: UPPc0T@2S3:0 l00 @R S@PS``3V0@TS3:UPPc0@TS3:0DSPB " 0,P04  `V`0`kPkPPi`4e$`<@p`P`T`0 ?KpQ R $ R R/0S/4?0ASA?Q@o/K-Qp 0`S @$PPUPT 4@P(+3/pP 8P ( 0( 3/P$ (2/0 a *b ga Jb+*AJA AgAᆿ44EP R :o=R B P T  B T p YBp ( 8 ip8Q R $ R R/0S4?AQ/ / R 0S $0S\/0S 4? BR/ Q   /Q OR $ R R/0S4?0AS/ L?QȠ C0QD0 / D0@ /Q R $ R R/0S4?AQ/4p@@/O-MP@@KR @ @ P`PUppp[`X6[`P/[ `P+[ `P'[ `P#[ `P[ `P[`P[`P[`P[`P [`P[`P[`Pj YPpPpPW:S[Y1eP㼣[jP K4[8n<0Q3[cQ[`Q0[,`Q[`Q([$`Q[`Q [`Q[`Q[`Q[`Q[ `QhQ(0 4Q VTR,$   80@PU P 0 R4P P Y{ dPoP YX   <4 ,<0@!#1P00A(4 ,$0 PG04 P :^`0A0,$ : Š@( BP 0@ G 4P @ @  AW6 p W0P U \4  G0W  *0LQ0P:0 @  0 P0%P0u Z@ P  K[P Y`p P  KBH- 6 PPP 6 +)|:  $+0,0;8ˀH!00 R)).))).))).)))'-))).))).))).)))|**-***.**&&&&.****.***+-* /M-&@s`P Upr50Ppp0pP00Pp0g63 `G0 V` Vp `PP0`` V`` Ppp0pP00P` 0000 pp 0pp(tp 0pppp't 0PPp  (pL-& R&PO0@ `\O PP 0`PP` R&P9 ?O\i0oOP`@@   @ p0H- Q0r10#@PP00@PP@0a A<30 QQ" Q0P@@0@0 QP@@00P@@P00 AQP@@00P@@P0O-M@0PA, R )PR)R)RE ,P  $  ?IP!9U T`p+加`0|  @P UR0pQ:U1```0T R``pQ'R R1```0`0`0T`㊠pQ Sʰ0` 0`0TP0`0`0T( )@P1pO **Tp p`| +-  @P URQ2U1p`T` Rpp`QR R1ppp0`0T`p㊐`Q \ppհ0`0T` PJ PE P@ P; P6 P1 P, P' P" P P P P P  P~ P @0 qW !Q P 0\TKp QWOQ&P0 r 00,p``00p``p0` @2# &P@0 r 00@PP00@PP@0` @@230 $  T@@ T (+pP@0``0@``@0c @C5@r0 T@P@``@P``P@d3 0D0O S@0t`SP @ 0ppP0PppP0`6S `@P`@ 08~`pVqpVP` P`P  a `A~7RP0S``0S`p  P  P@uT  QP)\y/OO0`p PP 0pp &0Q p ` `K*R*R*R*R,R-R-`RO -RK -RG .RC .R? .R; .R7 /R3 /R/ /R+0A/ R&0B/ R!0C/ R0. R +R +R ,R  0E/pW0 SP0ShO-HMP$pP @=pT$P @ AXp0` SR  !\k`0T`0TpPW@ʨY$ $`&0Xp pU@q@U\KqPpA ppGp@p@G@pWPY$`X4 @ Up!pU\{!P   B pWPPQ[ $\ W\kMX4 傀` XD@P RP X `0!Qqp@W*0P!\;0P0 qpR: Xt ppW\;$pWP\+$ `R`p BW\kR`p$n\ `0G`W0\K`KEqX$@X @Q X P0Aa! Q* 0@1\0@0! Q:X$ R \;$0S @$`\+@ 0 P@`+AAA 0! @@Xp  Q1@@`KPU?0`p@ @QVPp  @ A @$T*P @\+P@ qpQ:XTPpW`0\+PU@@\+@ p`W E P\;0`+PA!L+ @```p<O B O A$` `VW3 p!P`{010XPWPʅ0<+  $ 0W$ 0 G1 002#P001p0 0r" ` V$!` !p X ppY ʂP<;000$P0Y$0P0I1 0<" `V Q8 >;<{` pR BW 0pGpBQ00 pBp X! X=b/ wp!`FR1 Ა X PH0<# 0尀pW <;p/X@T ">+  "--  "B+  #D+  #F+  #H+  #J+  #L+  #N+  #.  #R+  $T+  $V+  $X+(1 R ` pPP`P BPpR`ʰP QKO-M  Q   0 ⰠZ% @p`<A0PG`eW@2p``@`p@@p`@f3D0@C0AS"E@0P ᰠ@aS6@0PP@0PppP0@cpA2ᰠt0AS#|20Qt20B eXqH@0 `` @0 @``@ 0b1C@ApM J< R 1P010Pᰠ@eX`@pp `@p@ @p@`d30ఠpCp0ASp!L10AD10B dWqᰠ0 PP 0 P``P 0b1ఠpAppX7:p 崠|0 7`aW0`pPP0p0`PP` p0`@2# K pK0H- Q0@00@  6@0A| QxP0 0<P  ,!909)  @Ao0O-,MRC:P00:00:U0 0:00:0066+=00p`  p pAP@ TZ` @T T$P p1 |: ~:`@p0rpPcRP p PppP a4"  A`  ` $P`U ZZ Z! `[ V: p0 PbWPp@@pP@@Ppg 30Bu |*0~Z pspPaS.P0@@pp0P@@P0pc2'  A  p0 PbWePp@@pP@@Ppg 30BT 0P0pcRp @@ p@@p b 0B50/S 0r p0``0p``p0aA2# 860/S 0r *p0``0p``p0a A2# 0/ S 0r p0``0p``p0a A2# $P`U"p 0 @TKO- X X=,Q9 0 p`! F㞯PJK @A. P *F - A$@,K<@ `PYY<@<@ `Y$@Y<@:X8P  $@:8 JKJQKJKKzÞNÞZŞ&ŞZĞT2Ğ ĞÞÞrĞ2ƞ.Þޞž~O-TMQP UKp PI ` P` `P PpԕP p@  P v?oX  2 @v`VX` PZ .TX ``PZPZ  K%HP @@ -T` ጮ`00KP  @P :P:Q`` 0Ltpp@ 㐮P ᇮP @Y Q%P#:ToY PwQx * `P  P`Q Q9Y  Y>*pW  K K  pW Y' IQQ: 00 K`S`S70 KB A 0W0@ GQ K K K K K.T Y# K K K K `G0` VW1:P`I@ 0*f0S*B F QN KP: ` pKp@, ˭P z?oX  2% z @ZXPP P .T X PP K  pWVY~0K ` E KXlH-P/ PP@UE84 8P OEYExQ `pEPpL`W:<P FD uE t M-`Pp`@F@@E X $ (, (R 488Q DME M-M! íPb$P P <P : < jDP FP:P: ]DP:SDP64$$, (, 0 48EP(P @Pp`@ DPt`pV:P @PEHPU:EK<|,QL0H-M@@PwD 5U @E 0D  0 D P  PPuDU <@@ 0 Q|2/UK0<H- BR/pL-P@`` P$ (0!E`, \#P-D488@8@P (D2Dp\d,@/ 0S 0C0 R/,@/H- I  ӬH-AQ  ,$PP$,P `@CHCp WQHCC HCCDH@C@ DpLDp4C< /lK-Da` C  C@4PU ,U4 P U] ox R* Q PP# @P=*$PU @PP$Q 84,,08P bC@ jCp 71/HQC@DPDPLHTC @CT@48P8P 8C KACL       8< /O- MQ: ,P`p @Bω 0p0p0 @ L@AQ4pApp ^:P@pP@Q@ ``@`PWK  `< @ďhB%ǐp=|pL-@0~p}|P$8L`t(<Pdx,@Th|0DXl  4H\pǟ7 0COS P[<  4H\pƟ6 0OS OS sCƟ6 0|<Ɵ<6 0w0ȟ08 0rȟ8 0m(ȟ(8 0h\Ɵ\6 0cƟ6 0^ǟ7 0YHƟH6 0Tǟ7 0OXǟX7 0JƟ6 0EHƟH6 0@|Ɵ|6 0;ş5 06ş5 010Ɵ06 0,Ɵ6 0'ğ4 0"ğ4 0PƟP6 0\Ɵ\6 0ş5 0<Ɵ<6 0 xşx5 0ş5 0ş5 0ş5 0pşp5 0ş5 0xşx5 0LşL5 0ğ4 0|ş|5 0HşH5 0ş5 0HşH5 0DşD5 0ğ4 0ğ4 0 ş 5 0LşL5 0ğ4 0ğ4 0ß3 0ß3 00ğ04 0ß3 0ğ4 0,ß,3 0Ÿ2 0 ß 3 0} Ÿ 2 0xtßt3 0sŸ2 0n|Ÿ|2 0i1 0dß3 0_Ÿ2 0ZŸ2 0Uß3 0PŸ2 0Kß3 0FDOS$$1 0=xß :LL1 051 00ll1 0+HH1 0&,,1 0!1 00 00 00 0 0 0||0 0``0 0 ͡QգUУУAѣ4ӣӣѣh=գoYϣmϣ5Уϣnϣϣϣϣ1ϣ[ϣգN У!У>ԣ$ѣ[iѣ ֣ %ԣԣ9ԣ%]ӣb}ѣUѣEңԣB У2ѣvУoaԣ ѣ ӣ ңqӣңӣA ԣe ѣ`Mԣ ѣ>У5-ѣ!ӣӣ Yңiң uԣ ѣңb Iӣ ӣ] yУ7ң 5ӣ ӣ ӣ ң ң ԣ mң У4ԣ@ 1ң ѣ[ գ )գ! Уң ԣ գO ң| lԣ0~p}|Q ,8DP\ht(4@LXdp| $0<HT`lx(/COS P<(4@LXdp/OSD/OS(/s/0H- M% @  mP1/@P  TK0H//////L/4////l/X////////\////D/H////// // ////D///@/H///L/ /t////4//,/`/ /|/h////DOS/)///////x/h/X/D/4/$/"X/U4]_S'jgcVA"G1iEZ=s/,}[`i ͣl ͣ0 0 K-(M P@% @oP P@ `'Up'P# ᳞瑟` K0 F0  A0 R R R 3/ 30 R R R :/ : \\ \/H- M0 04 РL-M\^ ^K @P@N:K\\ \/H- MA; РRQ/0SN>Q/>M-Mp`W! P  @@ p@T  p  @5/TK K O- M`PP`QPU TqpPP<PppWE V" Aa @`  G0AS !  1 0ƝpW ꨐ G AR`@!@&1 p@&h`@`0 ᤝpWK>ţ7ţ9ţnܟģģlnpģjģiģ ,/ , Q/,/ , QA/,//!/Q/ 0Q/ ^ [H-P,@0pG`V* B`h0H-@,0PP P @P: P*8,P:0P/00H-`,P=0p@OOW7 PQ ,Q0Q @ P0DXhX|XXX@@@@@@@@@MH- M  0 A РHЍ/L-@P 0@@;Q@lpL-Pr1/P @%P P$` 1/`@pH0H-@Q R 00r PKPQ00lpL-@P PPQ    r `!`TPHU P,` 1/`p4@//DpL-`@PP p P 0    4`  0   ppL-(M@Pp>a`P P/Fp PU @FPp U P 2"&P P &PP`U&uK&P PKp0 P   PPP P <P   'PKpt$opL-< R p/R [?S ?S [p[At XP`PLP`AP -pP P OP Uf48 448  ,/ , A/q/0H-@Pp P & 70H-q/0H-@Pp P  0H/K-MM@PK`P+ƛ P pOP P:PU1  ``P`V# p  PQ[?S Q [QQV4@1/VK K豚T  봸̸=L-@,{ ,APn@0Hp`X:,Ga(/,A[1,;US5,5Ow,/I,)CD,#=,7Q,1,+w, %!,, (@|x  L#@<  0u,    նԶֶLH- ,  ( 0,  ؚ  Қ)ZAH- MP0R Р R R ^ R`\ R  šp Ἒp%` Р /,/ /QQQ  Q$ QQ /& R R /P/O-$M@PP ^@$@`F pP<@"0 @6' $Q (p  ( Z  01 3/Z#/P o PPP  R RP` ;pW)P u<@"0 @c6' p PP< PQ:WN (,PX3,,C G(PP,G , ,PA Q 1/UppWpP*PP:<@"0 @p6'P KHD  84  F  ݰ >HL-@;@"0 @5',P/M-M@ pP{`p KޘP lp @P! epP P ``K``KP PQLpP PP P U ``@p@K`K  0H-MP@! pQ P {`K00H-QTQ@PTpkQ P d`0pL-PP[@`̘p pr `rsaa rap  ࿘ݭhpL-PX@ԘP pT2P`ᣘp`p  5]譣H-q`@pP 9p @Q㨘p P P T(P``ptppPp P PPPP`  Q%M-MPeqhP`@pP  0gBp!P &PB RpP @`K@Q>p P P @KP PP! $pP P T``Ppp@pK@`KP nPK,(  ݗ  ח딴U̪=ȪpL-pPQ@`—p pr `rsaa rap   ൗ뵩8pL-P@ӗp.P ;U  R kUk ὗpQ P `ppL-P@㩗pP U 0 R `U` ᓗpQ P `pH-↗p @QtpؖP P TP`ϖ`p@p ƖP`P PPp  +덧O-Mdp` P(  Gp<  P6:`V3 P PP @pQ#pP @T:)`P!pr@P p  P* K^` K` K` K 0H-PU@Q0P Q:A /RA0/`0H- ږP &`L-@@Q㲖pP T:P P T* 0BS 1$PHHH$H$h` 0s ,0 /P 0s\ 0sH- Q r0 0  0C,  CB  =գsO-M@ OJRN PqPqT 08 R!*4P 0!!!! iP? 8pJ`WGH 4`8pQ  P, 004!R KQ<<K\SX  LH  ڕ<U8  ԕ,V(  ΕaI=11$L-? ?O4R8 @t :80T*00 S0 0R,0 0000 0 0 00  4!R R<\ 0L!<0   XoT  H7D  ~8u4  x($  r٠͡ġ ?0H- @P0H6 0R/$00(00 ( /H- / /OQ ($  =  7՟80 S/4P/pL-M8`P@YP @`Kp@p f @L H a0 APT  a 0 AX\  a00 A`d  a@0 Ahl  $ aP0 Apt ((, a`0 A004 a0 @KpH- q`@pP pJP 'B?p#?P &PP`PQɔp-P P TP`$`pᕔppP P  ȦM-MPU @QpWKP `ᛓ P*ᗓKGP`ቓp W*ᄓpK hK hKM-PQU @RpWᡓP `U P*Qh O-$MP% `HRp{@TWp4 P  P`  0?"P?p PP K K`P+P. ` @ ppP#      Kf K K KP/L-@ L/M-PU @QX`P`P `P|t`P``ᣒpP *W:G/Qp ᙒphkZF3+AP`/H- RQ (P ђ`H- P P Ē`H-HMPP Q@`PK AP P`KP @PEp W* @pK hPK//KMH-Q Ppგ@`@Cp @Q @aL- @'P@-P a@`pL-@`^PPVP p QP PpPp0H-@PPP =P0pL-P`@25+P pp Q/ᏖpL-MQ( P`@0R00 00 $P(,00040# P P4 ` xx00mKpKp`4 ,Kp Kp  KDt O-M-!MK0 PJHd@`0\`X TPL$8xAt$l|hJHXJDpJ@xJ<J8J4J0J,J(Jhp㏑`P倀@PVxh(L  t  $ @ O@P 0"ZppPP )0"ZmpP P pP P )w pP PP 40 40 00p 0@XP  D@pXP R 040 pB  W0z#S   @‘pP   LpP Q z Qx 0P P F PPI U1PPB U)p P  'pP P(  K けpP  [   U p 0OR Zf 苟 i0 Q-'@0@ \-' ZOp`1 Qɋ-' 0 O-' $&P0cPF'pppP P 9p P PPX!J '( R( 0sR (L@P$ 4 0pက4 (p$X  X ( 0s( 0s@R P$ 4 @0p$4R$0 fp p 4$@0:p p Q r&Q@0Pf Q ? $ 0A@S:0S P@D0P1pX"JJ4ΏpP5040坐-✐pP(#8嘐" .A@)9@ 0pp(@  W/? w  6‐pPh L`0 ( @P`0 , @T0 X4 \8 < `@ d `D @PH D @ < H @w Z4K 4J[ i0 Qk,'@0@ ,' ZO4p`1 Qɋ],' 0  ,'$&PP,Z+8**pPpw 8$Pl PH\ B PUp)pP QQ QH! P M\tP @x\AP W@[KPx PP`PlpPpUpY  cPPPWPU  P8l PH\ Bw pP QQZ QH! P \tP J@x\AP C@!J ᘏ!J4 ᕏpw*X! P  PX pBw 4R$0 Ɏ w P 80  l0QP H!\! C  UpPAPl弐P QQ QH! P \tP @x\AP Y@u pC 0Z  D ៎Pp<P_P0Z^P4@T PlH\ @ L$PqpAPP QQ QH! P 9\tP x\!P U P@T WP epPw6 `pPw1 [Ŏp4$08뀀ppp&P0d$|P J( $ w ; PpP倀w 1 Pq p@倀w &p w ! Wp| Q   ( $ w PPpP:PM` 0KЍWp 0KЍP P @Ph 0KЍь@<  ࣍ F  0''Ԃ那삣H- 0S }q0C0Q |@ H/($  {  uL4XpL-MQ( P`@0R00 00 $P(,00040# P mP4 l xx00RKpKpl4 ,Kp Kp  0 5H-MQ) P `@0R0000 $P(,00040$ pP 'P4 m xx00 KK4 m,K KK  L-MQ p@ ` `S $I0`4`k T T0 0  KЌ`KЌw,`KЌL-MQ @`p`` ` $ QC0`4`k< T T0 0  KЌ`KЌG,`KЌPO-MQ @ p0 `0Q` $ C0`4`k T T0 0  qKЏ`KЏ,`KЏPH-MQ) P `@0R0000 $P(,00040$ pP QP4 m xx006KK4 m,K K  h||L-MQ p@ ` `S $I0`4`k T T0 0  KЌ`KЌ,`KЌL-MQ p@ ` `S $I0`4`k T T0 0  KЌ`KЌs,`KЌL-MQ p@ ` `S $I0`4`k T T0 0  KЌ`KЌE,`KЌHL-MQ! p@ `0 ```S $ I0`4`k T T0 0  nKЌ`KЌ,`KЌD|L-MQ! @p0 `0Q` $ C0`4`k8:  T T0 0  ;KЌ`KЌ,`KЌx0H-MQ% @PR $P(0,04! S P4  tt00K0K04 ,K0 K0  wxK-MQ5 Pp@  P $P(, 0 4 % ` P4!    ``00KK⸐4pV,K K\pL-MQ( P`@0R0000 $P(,00040# P P4 l xx00vKpKpl4 ,Kp Kp-  ThuupL-MQ$ @P` $P(0,04QP4 V  XX005KpKp Kp,KpdH-MQ* P `@0R0000 $P(,00040& pP P4 | `||00KK`4 |,K KF  ՉpssO-MPQ `@000 V00",000400SKAqS 0:P  XРԐ  LL00KG,K K @ `0p00Z 00 $P(,00040+Q# }z vP4  r n XX00?K`4p,K KL-8@ᘅP Pd5ↅH- PF!H<dtTL:O/ r`:O :O:O:O :O :O:O :O:O:O:O\  ๅ}ccO-MQ@p  K`WP ΄P Z Ȅ`X  `P; `P <XP @8 @@L h *h A*A`R @ P ᠄DPW ` ᗄ@`$pP 1 0gK K $0 PL! <dTtL:O// -꺄`):O %:O!:O :O :O:O :O :O :O:O:OLtLK\  8``L-@ $0 嚅PU$@D!H<p$\8P:OL/ LV`L:O L:OL:OL:O L:O L:OL:O L:OL:OL:OL:OL\  ^^0H-P R& $@@B<PDP }u<@DLPEOL80S H L0H/0@PHzD  a(p$  [   U^$[^\]'^P/pL-M@ Q TPQKp P `P  [`Kp謃`KphKppL-M@ Q TPQKp ὄP 㻄`P  -`Kp~`KphKpK-MQPSK@ Q QO c<O A A c<O*cO AHO*A 0PpRpp08 $ T 0 0  K P P% <`A t  4` P @8pTW U 07/TK跂=  T [WL-M!R R<@@4 0 4 (eK蔂H-  0S $@0C0}rQE O0 Q00 8\H/(=$  DA  >YVYYH-r@`P`@Q Q0Dppp00 ,  $PP$(, 0 4P8P@<j=<=<===?@M-MQT`PUJ @pP a|p{P P=UP   ppUQ& @``    4  B pW 8A 0~  S Q$ 07/VXKpz0;,  B{o  <{:;:;H- Mp` |VG@P* PI{p @TV6P Ap UU zp@ Uxu9{Pu UATPUV@P @VP {P ^z@P{P ${P {P P{p {p {p {p {p {p} {px {{ps v{pn q{pi l{pd g{p_ b{pZ ]{pU X{pP S{pK N{pF I{pA D{p< ?{p7 :{p2 5{p- 0{p( +{p# &{p !{p {p {p {p @{ $P {y` 8{y`1{H- 4yP y`H- yP y`< 88<  ,  ,   B  Q/R0H-MP@ yP p\yP PK0   y5@6L-@p 0$@@p ooo `:H- 0p$  yPH^x\opL-J_ @` '`P p$ !" >ppL-P@`V PF `V p $p $pK-XM4P xP #P`$ 9ypxP  08p`W2 V9  8`Vu%$0H-Mp W|@@p M`@@P P* upʜtP ;tK0]]|]X]K-BM@ P` ,ftp. pW @`4Q,80 2/,LL , HLP@T:`Y  uL W UtP PVp L W `L W pL W K  ts!"M-XMP0t`@ tpP ;p4p

L-0@S  S#P, ,    0H-MP@` @P @@ @0 @ @ @p B B pPP 0 goP K0P P P PP PK0PK0P PPK0PK0H- ^ 0 ,3 j0 \`0s00000 $  ,0@ ,D 0($  n   n 3 O-MS~ @QtP n `P-p `P pQQ Q Q QR`pQ pK\pQ 00 p ,0冑 V000@p $D08: P8  m4p<`b00d,h0<hPP .D MK pKKpKHD  qn($  kn   enn  8 V O-M-hM@`PPdLDPX Pp `@Vᇡ`Q , P P"`#V ` `,npmP `  npmP p PiP] pW)SP\ 00ϊpϊÊϊ\ P LTX`d  ``  nppvmP W*W;P* `1 W*B0.@0 pP 000P:@pG0S% P PEm PiP;. `pdhd" m P'P|*. j0KЍW{@P P lpDPpP+0KЍ``P  P lpDPpP P P, ,A0KЍu  Im9  Cm  =mP0 A @ A @XT  .mpl  (m`\  "m84  mzTz2ZbJH- M РH- 'lO-lMP<@ Q0Q KDp 0`  0`PP@P <D B`00P):0@08448Q A@DP PEX@  U VK40  l  l:{RL-@P$0 ,0j   ,`pQ D048  @, ,    @)<  hl0:,  bl ;  \lbJ2,  0H-@DP, P , ,A480H/,P/,/M-PD,  , X, P  ,  B 48  , A`,p P`|p |`V P p@@T:`$P  ko`H-r`P V)@4$ R" PV `p PE`P  0P pPPH- zO- MPQ`@p Q @`q1 0 kP jp`K P 0) vkp j` lP aQ* abQ paK `P  P p_KpKa,px , P ,KpKO-M P[<qPP8`pP @`q2 ,,`@ ,xjP kpP PsP-D` ( $(,h@sidKtgqiH- 4h`ji0H-M@giPeiP P)i@_iPdK0PgH- ZiP PPEgH- Qi`H- OiP9gH- LiP3gH- IiP PP(gH- AiP"gH- >iPgH- ;iP PPgH- *iP gH- -iPgL- @'iP Yg@`H- iPfH- iPfL-@iPp?gP fL-@ ip3gQ QfP(g QfH- hPfH-Mp@P` P0J KC 'Ta hP nPmKfH- h`H- hPfhH- hPfK-BM`PSPp@PKtgpfP p`KT'0 HYgP ,hP X   &p@Nppp ?KP   X )X)ppKL-MP @qhQ KfP K  Q Q*  Q  Q0  fPK gPP P[ Q [ QQ QK M-(M`@P] `pPQ. P,hPN/R [/R[/R /R [<q 0 0 c *b $ *A A  gU*` 0 *C0 C  U*` abJa!B $ @ g gP e@`KPK 04#"H-M@P` p` PfpeP `KKM-ep@`pP[Q Q P[[<Pp  P}gPP`` L-@@, ,A\p \L-@@P(\p+`P h| 00 0l  ` lP(0P4P8<pRl  e@C<  e0D,  e Q  eK53IMcH-@,LPhpU<$ `Q7 A@04 A0B4P `R (GQ2/pU`P@P P , ,A,,0g,  Be_  dP caQ Q aK, Q, ,0r,  jcz  dc7OߢpL-`r0 P@T RP  0Pp0P `  H@ @ @00PPXTX\p8O-M8Pq@A`] Po Pr pPP@ @40, ㉹ 03/PPA @$ cprbP 00  P4S 05/Z Pp JPp P  `07/ #Kp h@<  b0,  b   bOߢS7ߢRߢRL-@P  H @ @ @0&PPTXX\|pL-M@\Pq 7Q`XP Kp0 `lbP aP `Kp\@KpK-pM`( @pP1  pPw\pc 0PKPV A 8 pPePY a E pYY \00K)&bP:pK\p V<8 8 9pP=,Y8 pY6$ P8 0 A<pP&<,Y8# \80paP Xap`K8P 0 @ B B pP KH- M\0 aP 1a` Р Р0A S/H- M.\@ 0 aP a` РH/0) aP РH/H- M Q.\@ 0! aP `` Р0) taP РH- M Q.\@ 0" ]aP `` Р0) PaP Р0H-M@Q  P|P  PP P3 PB\0 P)ap1 K0Pp B` @P @@ @0 @ @ B @.@  P P\0) `Ppd`P`K0K  `עL-M\p @   aP I``KKKH- MQ@PRK@p`XqQ\p  8`\W gXWH- M 0v 0NW РH- M 0 0m@W РH- M 0 i3W РH- M 0 j&W Р0 fWM-℀p@PP MW JUP `P WP `訩O-M-HMP P`P ZUP8 p8PH- @M ^SQ Р4 РH- @M MSQ Р4 РpL-P@QQ QPP@` 0`T$S 0SpLnu(uspL-@X`P☔"U $P ` YpkK-`V pW P7U Mx@Dptآ&W`Ѣ&  P 1/c"jH- H5$ K-` Z" P @P @@Q.PUP#p pPP $ $ .pz&$> $ p0@x0C sPpTpXp0pqW Mx@Dpt}&A p2`q0 3A " P#/.00/ 0b1 /2A/O-MPp" 0`PC &ta0E!#CR *!R ?>0aSѓ" KpL-`P@0#& 0#&"30?pO-Mᬓ" P!``@V `!Q RVpP   2/xPpW:V  1/ ဓ"K0 x0 SPTX0./pL-@(`᧡&PPT"T $@ ` XpeL-M㊡& @ v(  XD 啡&KO-M0P,(Op*` P*V((p  @X&p0(,` N뜂PP4`  p8P @4<@t@7%&X` P44t<@ @@2&\PXPTPPPLPHP@lPhPdP`P(Pp]^( 0.&$`4 P]0, ,@(4v( `X* $Y,P0pPDp UPY  U$  0@T  U  NP XY 0&`(PZ @@``t4<@ hѠ& @&S#&K@ANdd8L-@dd, 40@0 00   4孠&( &@-#&aM-M@Np/*` P*V p Pf&pA M  Q * K (C e&KM0H-@ddP$  0048 $ 4M&$ <&0H! t`0H-@h ` 00  P 4,@ 4*&$ &0H! _L-@hh, 40@0 00   4 &, ~&@"&Lu! d_|0H-@llP$  0048 $ 4&, ~&g"&0HR! ^0H-@p h 00  P 4,@ 4Ÿ&, ~&B"&0H-! P^\dO- M`p@P+"*" 0S$P <8PD@\XPd`pS 4 ``tplh T(@#,@`(P$p, 0# 4P 00!1HH P 1/(` X4p" @`P L`P L@Z)4@`P L P`ZZ4` @Po P L @ZYV PP & &@WP2 `V Lp +M @@`V Lp M@@(P.,PaV oLp MA@(PUP(P8 PQaV SLp LA@(PUK0H-@PP ž&LPLPP 1/HHPP 1/0pL-X` PPRd@ h0V`NpO-Mp<p@DP@`LHp$ @\PX`d`pTP\XP8` p4@lhtpP 0`(pT@KO-M@APJ `P,@U K(` VP (p @Q" lx \PX ( 8       LP`V nc `> c 0TK#0   S 0K0[F2[@ a+$ ( D Cj(p  `(8!&  ਐ( `, |&\ H0D@<84,XTPL\ }a޾([K ԽK Lj NZ(K M PP([$P  z&(P ( ([` P$` `(K P PV . KP@pe KP@p E JP@p(K L`(, TE&, 6|&& (K (K ^(p[(0K `$  o([ &&Kd`  "0ԚXؚFtDĘƘ˘!㗝A#CO-M@ P;HP  P &<|&{& PL`v`p{ &|& 2/`{&L`v0 p 7/P  & Q Q  1&P 1/p &KX[[O-M@ P;HP  P% &<|&t{& PL`v`p &m|& 2/`]{&L`v0 p 7/P & Q Q  &P 1/p &KYlYO- M@ P7HP ' P&4|& {& pLPu`&|& 2/Pz&LPu0 (` 6/P :& Q Q  b&P 1/p &KXW0H-M@ P 2/0@   岛&K0pL-@`ዛ&e%Pv%Fll t"a#F n$s @ A ٻ ֻ  һጛ&pDMpL-``P X00 㻻0@   ఻ppML-( @$    㟻LWL-, @(    ㏻L LO-M@PP D }4   v p j% d& ^ Y U`GpH L H p`H @\ <&H 6'T, P  )p``H !    J   !   J (PE8`V  P @p, $H   4QHp @ 2/0Pp  Ⱥ &@ P 0(`V\ ౺K~~~~~o~S~)~~}}#}}|7}|g|Ӊ |O- M@ P7HP L P&4=z&1y& pLPu`&+z& 2/Py&LPu0 ` 6/P _& Q Q  &P 1/p A&KPdP/pL-` ͙&@ʙ&e%Pv%Fll t"a#F n$s @ A    ˙&p@yFypL-` Pᡙ&@XX  A 0`   p`Fxx45 0$      /FM-@8P P写&UPPP }& PP "w&PU pW P ` v f&W p^&\&P 1/EO-M$PZ l$Q TQ@APPP P$@D`P p`$PFo`T`  PἊ" Q  U ᯊ"@T  1/@T1/P @&TP &Kd=r %CH- RH[ 0H-@P 1/㺘&Pl" PP n"0HF 0H- M j" РH- M !" РO-LM@$ ( $P2  (K2/P( p 1/P`$1/0 ,0( 4 d 08  $( ,$< ($KO-LM@$ ( $P/ `P (K2/P% p40$1/80  $(8 ,0 < $4  <(,($KH-M@ 0 1/P P 1/`p$1/ 0uKK-8P`[V Ap@EP3 pW:p[W @`@EP( `V:W'EP`Q$P [`$PxEo```[D8败x<l=lll  @/Ml0O-MPU @T P ` v 婗&T @塗&ៗ&  7"8$Q aAA`@ @`$HpP Pp$P DEopXpQ 'P "@T 1/@T@T PP&U@P G&K茣ekHM<O-MPU x@xpx@p$`P  `$P Do``p@PUK4 j:H-p$@PPLatP$P(DoPPT1:)iO- M `又" T& EG/Fp@W@!!!!W G U:&AT @T P Y P:&P PPU 㑖&z@W@*a  A * *"Zᇀ`W:G``  &D   Q1pG U `* `b&PP   @P G P:I&@$@P "TKO/K0H-MP @";T "K0O-$M` P  0 P@T  V ET6  G?F!!!!'!  PUZ @* A@@` * *Z`pU:Epp  C   Q1 JP E00 U`&0 `` qW(  pW! S X :&0 Q  QX @oQ*pS@ `T:&0@ @`Y pP# S P:o&PpP S P:[& P q @ `TCPc&U@ V  :&PT6 EG?F `!!!!g!B @TJ @* A * *ZpT:Dpp  B   Q1 @ D 00P TP&0P PY'  Y pS W:&0 Q QW @oQ*pSP `U:&0P P`X pP# S P:&PpP S P:&Pq  ` VGKH-@PQ A T&PP`UH* VF"@  o!pr!  B W   P:@o `/&UP1U:O-M@Q# PQ[*B&P [&P UpXE E Z: )&PPP <&P0 qpW( Y P:& P  P !R   R 0`V ! pKAO-M`PV? T& EG/F!!!!F@w W:& P PU @PPT P : @& @ P  PPUPK  P &PO- M@pPD0 W :`p&0pp`P V S P: 0j&0 PP P S- P: 0S&0 P P S P:@@& Pa @ P KPO-DMp@P @K S, 0X`+X@` Q@ `* *,$ 0N,( $  p0(`9X *P  @Jv P, P)  @R0!$ @PP= P( doro @$ Q$v Q Q @ v7 Q @  P0 h Z @ Q Qu T Q Q :Q V 144444444x4Tddd Q ,QV V V N @pPp1  @`  @V PV1 ` Q ` Q 0Ap Q *,`y 9 yI9A pR0 * 0# ? `pZ ` Q `!,\PQQ|/  Pw`Q`ZwuPr kPu cPx`Zl`!,\PQQ]/  PX`Q`ZX`!,\PQQI/  PD`Q`ZD`,Q7 9` Q`Z9`Z4`!,\PQ Q%/  P ` Q`Z `ZPA`p0 @Z PPTP`Zx`Zs`Zn`Q @obZ`v/ Q @ Q @  @ @*R=,P @ N0P?003S0? PPA$QP >Q @$ P  @ P R $ > a0 3/P @P0(, ( $ P $ > @R >$1/P{ @P, ( 0( (AoQ 1/(P0 P P 8 @, ( a } JPX `@2YP O  QK 2 JUP0 3/P;P0(, ( 7   Y@Y *R( *  0 @3/PP, ( 0( : ~^@=Q) \,tp(@X\\thT TTTTTTT   4 P  p08pt0Fp P:v Q @ Q @ v Q Q HQ0/ , 00N0!(4FC@ =  ]X 2YP TPM 2 JUP0 3/P, GP( U,0 ( 9v Q Q Q* )Q P:   0 @3/P6(P0, ( h  R Qg Qk  R  XPJPdRJ  R`<$ P  RX, v pP * Q  RA vQ 0@ @%vXPXQ 1/P @ QC T  Rr7  Rl 0Q ScA$ 0Q 0 L$$$$$$$$$$$$\$$$dlv P P vTPY  R2 ,  v Q P Q  HQQ(  R  R  R   R0Fp PW*/ v  Rtv .P3 P0Fp PT*/ v  Rv P! N0Fp P*,vv P9  P$QM PJ  5*  Rdv P P ,  aAPqQc*,8H@v0Q T (@Xp80Q8vQ / Q,0 S8!P<PpWp  Q -Q A Fr R4,0, (8N! @QrR" @Q@# @QA# @Q P$ @Q B" @Q v Q  R ( (RPr 0(  R-[v Ph HP!  R "  R#  R$  R%  R0Fp P}*/&v  Rv'.P6 w{0Fp Pz*/(v  Rv) P# P*  Rv* P h9 @T H` 0 V / 0Sb xpG WPqDTt(p88  88 Vr npoSwpnSx$$ d-ttS'|,p c nSi0`t'\,P W| WO_PPSJ W Jt'\,P W|W?_PPS:W; 0(6t'\,P W|W-_PPS( W) 0($t'\,P W|W_PPSW 0(t'\,P W|W _PPSW0((0 p@^g 0( p@^_( p@^X@vP",|`|||||||||||||||||||||.  RꌉY0  AR0 ! 0qcQU kQ[R.  Rv1 P pv6 P Q ,@p" pW {:q"2 ?4 p  R_v5 P6  RV9,*@ P   1/P 0,@ 0$ p r p03 (Pu  Q(  Rv$;Q P ;  0 @3/P(P0J, ( $  RT$P 3$1/PP0( +Q  1/P, P, 0(r(  RvP , p4  R ,P0 @9 NpP03S0p? P$:Q@ $  R$= Q$   REP, H( v P ꨄP  0 @+  R[8S<p#4'p 3Q q <Q(  R=$*Q P *  0 @3/P(P0k, ( $  Ru$PQR 1/P   D/ QP D +  ROv:PM ,Q P ,  0 D3/P(P0, ( @  R*-  R$0Fq Q* +v0 A,? H   R   RqcQ  RHA  R P5;P- , G! @QGH! @QnI! @Q -! @Q E! @Q Au RRv QRf  1/P,(P0, (  RUA" @QBB" @Q` E! @Q^ O! @Qm!cT! @Q:A! @QR R! @Q_ U  R-uQ &  R}#O! @Q7 A" @QB8H! @Q/ P" @Q8.S" @Q' I# @Q. $U! @Q R" @Q$c =u cR    , ( ! , (  R+60QO@80QI:80QC480Q=. 80Q7( 80Q1"80Q+80Q%80Q70Q 80Q80Q (0 ,0 (  R80Q O a ( G,, (  Rb(  RZ(  RO3(  RH W(( rtX,, b($  R(($  Rt: @ (  Re %ꁨǨ(  RX Q P~  N 03/P@o`P0(Yn $PP N 03/P\P0(VZ PV  N03/ PQ$P0(F P @=P*P  1/P  (P0 @J KP$ ,$, @Kc@`Y$PV$QP  N03/PP0(UP  N03/PPK XP(0P (7 ,P  8 @AK, P,  z( , P  p( Pd@EK,(P  (P(  a(, P , R  1/ PP ` @K( P2,P  (+P, (0` @K@JK(4Pp j$QP , 5(P (P* :,P  2,P  *,P  ",P  ,PU(P% (P& (P' (P) (P2 s(P3  T,P e,NP`@K, H- 0AS  @@  N R0!00LL L@Q ?Q /Q3P0 0#Q ?Q *Q/Q a@pQ: a@p R::Q /Q/Q/Q ?Q @Q 0Ap R #a B"r &R#:!A]Q ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 0;#Q ?Q 0 0#Q ?Q X 0 #Q?Q |< AQQ/dAdQ! "o!!/!/PP   A!RR d BdR/1q/  /!P/ /śH- P0+Q C0 Q C(P$ A  @// /PM @O @/O- Mp@Qp RPp` |@ Q 1D,,,@<l,|,Z:" Q   Z: Q  Q 0!q`0J0pZ: Q QW 3  X Q㺐" 00`B VCPa,,hpHH@Qd 0S:0Aq Q)* R [Q 0 Ar R: a Br R- A"R#*C 0 Ar R: a Br R- A"R#*⺐ 0S:]Q 0S:0PAuP U: PaPEuPU:.Q:QR C0S: :Q  ]Q 0 ArP U P# aPE"uP&U#*⺐0S:0PAuP U P#aPE"uP&U#c:!A]QPxxxxxxxxxxxxxxxxxR p C p 0S :%%`A Vv_Q~Qs F @p C!p 0S: :Q _Q* 2R0 %QY ,_Q )B P*p#2!Z wQ0S p  0`0A!WR:KKK R<SS/$Q$ / > @o/ //UO-Mc@ P  P匁吁 `p 0LPP5/ W PtQKxPxPPX`txPX`UH-8`@PV qp8 P 1/1/8`V0`<`P 1/ (`q0`T`  pW  07/  @q  pW  07/M-P9 aP᭎ `P2@E@P- @ \@pP 1/PP1/UpP 1/P 1/ P 1/PP 1/P 1/M/0H-@(1/PP8 DQ Lph P 1/0P P PPP AP E @0pL-@P 1/(P `P`$1/(PU$P l1/8P T1/,P <1/DP $pL/pT4K-MPS c_P `p 0L@P4/W P f_` Pq ` P V:P`py Pm p P'V tPU, xP" Dh P X`x`VtX@P DX Pk!1 0l2KtPl1/t$xP @QP( R`1/$`( V1/,P 1/4P 1/ P 1/ KK/XDT T0 0(2PHL L0 0 2$A 0 02I!f!! !&!B!)!F!!Y"-#X# tTDH-tP@U* xP D P `x`VtXpPDE PDk@ @0 01tP,1/tx !O-M \ PQ] X@(P8 PC@R`PQ`q0 V Q*Q^1^ 0PQ2pP U*S*``` C `K @ἡl@T?<\\l<|dVlYjjjK 0p\Sp.Sp@Q@QPTh Tc@D@1/P@ pT? PQD \@. P\P@D ? Q`q0a P\U.U@PP0 pQ\ WGKK Q K @@ WK@H- M&P  РP/pL-tP@P1/ P `2/ P2/1/1/pL//M- @` P PpR U R U 0M/| 01/P U`   0M/ g A P$@4, (M(O-M(–T`@ fPfP PQ bP@P w0P$ p| PTPP P PP  -P -0.P T"0TP p$, 07/U FP,0P( < p P4Xt p$0, 7/1/Kp` 0P!P""L``H``#2D`$0` , '" *r( 0%24XPPLP 0H0  Dp0 2p4.Z- p ` PHpp 0Dpp P&b%R@ppL@T: /P pt/P@T`P .PpW @ `` @pP@.p@ W "PJTK K$ KP P@ P 1/ZPXKP 1/P b` Q p2/ Q2/P Q P 2/<1/01/K @@B@1/PP PPPf 1/P` PP1/PU Q@ P a @ p1/P? @W +PPV$ p@@Y @y4.PYppy*.PYv@P `@V`V T 1/KP@ PCFL|L O-M-@Mp@PP 1/P^ $@Y$@x$8 (0+ P`PP|O FPOPlOPtOPOPOPO@OPF @\ F I @l F @| F @, Fw``Ffr P U@Pj P U p  p  p P !% * / P,04 ( ]p p    p p p  p  5 9 =@A xp> 0S%X1/Pt 0S  000 0SPt00XPX lp@A\@ 0Px0p  p   8p@8@ (p  ) 4P&,;P4!(P1/PP$ (P@(@$#$$P (@T(   0p @ P<D P6DPP1<0S+1/P, <0S8 0 bK *c @*BK<0S( 80,@0P c*eP( K0 E*CK<0P00P pp**P (q0$0 $P$(Q$( *P`PV[ L،|@pvP,P`V`JVB: @*P  p  ;*9 V:P +*P p '*% *P p  * *PpPJ`,PV !P p P $` p ``ZYO @ Pyp+,W P @YAyp+,W PYJ @PX` $@X 2/Pz `$$ R( uP( @P)P* a @ pX:  `IP@! P1/P U:`(p Z4Vtx6 `1/(p"(Pq $$($0 $P$(Q$(1/ Z V h 1/ppp p pp5 p5 8p 8xp (@pWX1/Pt.  @ tx(@p?@@P(@T@1/PD ! BN! B^! Bn! * *P; p  0 *@)T06Pt@P 01/(q $r,P 1/4P 1/P 1/1/0KЍ@~@)~D@P~B@0 @p0~` Pq ~C`!A0 1/ , Px QxQPp@t`( 及8<@DXPPXpT@xTPP pqrstuvwxyz{|}~ϰP@PZ] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno  `p0* ר - 0\CD p\tP(K--@xPPp`tP( 及8<@DP@XpT`xVH-PMP@ fP `Kp `VI                 < <&\\` a` @xP%t `0S0S0S XR`V``V K`K`KK-PP0@0` @ @ @@D C4P 0PxP (P PPP`pQ @Qx f4 G=9 0 `P;t` R R XP R`XPV& D1/P xQ0tp Rp R R 0XS  !x0XS` `(P 1/`P$ (Yp(p$)$$P (p W(4P P,> 0P, 1/P8/ 00S!, 0 bK *c @*BK00S( ,08`0p c*gp( K0 G*CK00P0<0P PD ``4`P0L\/ a` @/L-@< ~%[1  ! /1  ! /1  ! /O-dMP pP;Pg@Y P,P \1/,0K@KP 8 0P@FT+(+'pp8 P+ (p $'pH$|($P 80PP<($P`P;P &P @i7PH GpP /P;P &PpP`H(P@F C$X/P/pP;P &PpP;P@F P  )$  P((8 0>Pj qX( 2/P 8@  `K*a*A @KpF&PP;P/ 0 1/@K$Px/tpQDS80R, $$/pXP LP/H- 00(  $00 H/XTP//  / R /Ao/ /Q/  ////////p/O-MP) PxP(@`pP! Wt 0 0S  b Ax`X@pVPKPKPPZ KO-MP0 PxP/@`p WP( Wt 00qSp!/   a Bx`X@pVPKPKPPZ KpL-P@=Q pT8 c?P6 SU. `X`Q1/Pt% Ux`  tX 0`0S00PU0 c @PU&pppp謽pL-P@Q pT; cP9 U1 `X`Q1/Pt( Ux` tX 0 aRo`ao`  PU b @PUpppp| O-$MP`p@P KW 0"P @T1/P  Pp"`pPP,Q,9P 9P[P% :P9P,P"QL@JT:Q Q]P :Pt :Rr 0@ P*AA@DQ%9PPk Q]P 0 :SV 0@ P:R : @/o"0@ P*AA@DQ @ T  Q* ]QK" P \ 1/PJ     PA  1/P8  a A QU`pPk@AT@K@K@TPP1/W. p1/W`&@K@@XP T O-DMPS Q Y`Q  UP p(0 K$0K,  @P K P@$1/ K tY0 E@1/P 1/P 0 @KW00 @KW0 p0p (0K$ @wP  0 pWЕ Е$0QpR0@04OQP Q @ @KP (EQ (  ($Y#P @K7(1/,0K @<PS|$1/,$  P! @K, P 0P g @Q P(  g @1/$0pQ:$h(1/ tB@$1/1/K0,` X S BZ@P1/Z1/A@1/$1/KP P\ `V ( RPQ`S Y2 @A `@1/P2 P@1/P$ $ 0T0 ! SP S1/PKSl1/0S01/,` 0}`8t<T O-DMPS Q Y`Q  UP p(0 K$0K,  @,P K P<$1/ K 0Y0   q1/P @1/P p0@Zp@ Q,`p@Zp@ 0p @K(0K$ @P  0 pWЕ Е$0QfR0@04OQP Q @ @KPAQ (  ($!P @K3(1/,0K @PJ`$1/,$  P @K,P   P0R P(  (1/$0pQ:$ p(1/ |RP$1/1/K0p,`PX W BZ@1/Z1/A@1/$1/KP S`V (!R QQ`W Y0 LA`@1/P0 P@1/P# $ V0 ! SP S1/PKW1/pWDX(1/,` 0p{ذЫHĬ(TO-,Mp P Q$ &`P Y K$0@ PP Z $1/ PKPK@@đ  K 0  P9  P0 XЕ ЕZ. 0$R PQ#:P: 0P  K xP/ܐ  1/@PT P:P$P 1/ @P 1/U P KPK8P $P$P $P긪hԨxO-,Mp P Q$ &`P DT K$0 PP Z $1/ PKPK@@X K 0  P_  P0@ @TЕ ЕZa 0$R #P>QV:\PO 0P  @ KhP2  K0@ ]P'  K 0@ RP  K0 P 1/@P@ PT:P$P ꔀP$PtP$P 1/ P 1/U Pj K PKХO-$Mp P Q`P  @ 0 PP K PY1/ PKD1/PJ TP @@P 0  PP P P ѕ 0ѕ$Y> 0LR$RP Q 0 P4P75/P0  QP1/@1/ X:P)1/PK@PPUAT1/ PPP41/ $P1/1/PPU!pp1/PP `p1/P  P pP`K1/p`T`p1/@T1/1/K蔤p ̣\\ءO-/KL/P8@HPXokK-`@P p ,p1/P8 p kP% 萟P p PE P! @U : 2/P @s IPU Q $1/jjiO-M`P BP:^Plp1/P8 `P@1/P<3 xP41/P\8 < ' <p< @PHpL<PTDXQ*xP&U&(@41/ QP<1/1/ 09/KxPU\_  P  80Q` $0`cfP2 K`iPh@hhH-@xppW PT  p`vHw 7/P  p PffP/ /቎_P/H-8`P@U` p1/PUH/$fO-MP Q@SK`0 P UpY p 0S  R:PpPP   1/Pv YU W: `0P ` V:QX1:!QX1: 1/PU pX2 @`P QP _ V p  P Z:8P? ` p@T: Q )P1 `@T:V 1/ ``@@1/1/ K 1/K@@ 1/1/Kpd@V@ P1/`V 1/ 1/1/K e$c|dcb|cPcL-M@ NP  K-b AQA#KO-4M P0? P`@0T xPppWxP P Wx` @wPgP  fP eP  @7ZZQ Ap@WP  @P :P:QG@p pP ` P T  P @Y pPN:UW P  P*p P6p P k ajtPe0D PbH P  K @PUT@tpW0D P:PW P.T@PBp@0D` P:<@W pW3 *tpt P ! @PӀP@P W GQQ: 0 0C R0GR 0G BC0@0pPpB0A.Ue /U@P Q P U T @@P@TZ Y IwP2@KwP(T/TwP! /PP Xp0A PP|c@` @@ TqP0 A R:P@ X tc H TpʑpW @` P Uo  j P T Vs @ @`Vj.PgHPc`/UXR@`PQ  G PT V TP @`@TH 0 B R 505S1;:P GP@` 0*b0S*E B Q,6 @ P@P@P< PHT@TD T!R& 0 @0C@T U T HP`@PW " @KQ* Z!  Kp@P@ PHT@ AT@Q@TVa_\``^e\[Q /L~O-MpPp@P4   @0 3/p@ 0 3/P!P T 2/HP`@ V ( 2/<1/P D1/p ppppp pY 1/KP X `V p$p4P 05/P<1/P D1/\ 2/UP `V #3P 05/P<1/P D1/ U P \ 2/`V t 2/<1/PX `V ,#,3P 05/P<1/P D1/UP `V "2P 05/P<1/P D1/UP \ 2/`VN D 2/<1/P;X? `V !1P 05/P<1/P D1/WUPT `V !1P 05/P<1/P D1/:UP7 \ 2/`V  2/<1/PX `V  0P 05/P<1/P D1/ U P \ 2/@Y~}}4}{*⌡ZaII㊡M}$QQ/wwpL-MP@@QKp  @03/p$ 03/PPP `` ````` ` X 2/U` 01/KpPP ww`wvO-MQPpPP dP\c`Q Q Q QQ Q QK  @03/@p  03/PxPPu 003/Pk @ 0P05/Pb  0 3/PP  003/PP|1/PPr p@ 0@04/@@1/T&  03/ 23/ ` @  2(a`3/\ 2/\ 2/p W:@@P`<1/P D1/V  \ 2/Y \ 2/T \ 2/XH @1/K vvuOhODtXsK-M@@P qpQQ QQK  @03/@p  03/P1P. 003/P( P 0`06/PB ` 03/P p 23/U@ 23/\ 2/`P<1/P D1/V \ 2/U \ 2/Y ,1/K`rrxrqO-MP`@pQ K @ Y 1/Pn @%PP XSP p0S2 .SK  s0\S0s0\S S.S0PU @Q5*/o.0Q0"R q \R Rp/o.0Q0"2pR 0&$`X0 #$   ( ) BP H1/KK @KKgXIK-`Q P  RP@1/P  p pHO-tMMP R`pQ R Q  07/K@@ 㲐l QY1 [F O @J g "01/P7 (`,QX $  d 0 B KP0P=0|RQ0@ >0   WpPL| "  P@Tp@/ P0P 0P0P 07/K  $ j 0d*b *B B  K0 >0WpP0 Y    @PP dP@Tp@/n PP Pp00 Pfa}#db}_||`p|GTpL-MP%@ R R   B/o2 @o0` `  PX D DPA=PKp8{D{O-tMM@,Q ,  Q3( h `V@ OB C"@ >($P  >0(P  PU$ t u"@ pp000 P >0 ( q(P tH PHPnPpWpp/ PH  HH(( pPS.hP p PPPA `^P[UpW:Pp, 0#HP`Vp`/Rx PHP tHPHp 0, P7/<1/K\byoz]Dy~[xy4]x8@O-M`OP):P@HPp`Vp@W: KZ:X`H`@pPUp@W:Y KwvL-@\JP"/// ///// /$/(/,/0/4/8/</@/D/H/L/P/T/X/L-@L-@H- pQ/  0Q00/T>pL-^@OD^ pPO@TPanU pAN\O p@L@PnPP@ P @ pPaNU@`A pL-| @N^ O @@ P @ @ 0 0ssssQ//Q/#Q)(4@LXdp| $0<HT`lx/Q x/P/`/</,// /////////|/l/\/L/</,// /////////|/l/\/L/</,////r7:qZqqqqq r4rerrrrs:sesssst@tstttt#uOuuuu&vEv`vvnuMu3w[w Q 0:SQ A 01S/Q/= Q 0 01S Q/01S/90H-@R PC@0 P//0_L-@LcP; /   / / / / Q/1 0  , ,/ Q Q/ 0  / $@/ / ,/ (/S00/   / R Ro/ R R//pL-@P`UWP    @ppH-P`p@:WP     @  C 'Wq/Pp/PP/ WH- X 0 0qqr  /o/p/L-M g@ t000)P KggKL-Mg5@ 0t00)P KggKH-M`g@tPRt   0)P KggKQ/f%R /H- OVP QBVL-M@0 4P K  $KL-M@ 00 P K  $KL-M@ 00 P K  $K O-M `p@V,V`Y.P7VPx fI.0 B pInp `. a,Z0g\dU B f%/ b/W*b)0%L% $($R. B<% *BC  QXX (QXX QXX  ,y% a<*a*Ai @ `@$PXX   (PX% X%K a@pP)@pPTpP  #@" D#$ 0Q  30I7PP pT@a@yUKUpUpp9p4\  P Z XpltqK|  t! [8KtK dXsL-M@0 P K  $KL-M@ 00P K  $KL-M@ 00P K  $KP/H-dI^@V pTTW`- SS`V XpTTW``V XpTTW``V XpTTW`TT`pp8p$a?@6HTpL-d`I^@V \PV TT7-}TpH-@I^`P.$4@Lx8&9# 9 94WT4dh919=9 I9 0i X9P p^0p @ @4 FptN[5HSo HB5 P5`qlqpq P P` ?9` V9H-Mp@lQk P0Q Q> S`P 0P/ P2 *.P/ 0H@0P( KP f oRQ `S   0EP* `P P@P`V& HVP X0P f/K/K,KK84 40 0|$' 0 0t@dbdd dBddO-,MP@` wN$@P(  OPPP0 4&6P $P NP PQ$N@P @Q@fP T (Oi (N$@P(  OXPPP J$Pr P ( @ f=P-  G5PP L T@!Q*ltW 4 7/zPO zOP  P @(O  \5@(OP M$@P(  OPPP U tMPO Q" Q Q lP fQ0{ 5ԀP6 H4 @S9 $3/zPOOAPzDP'PtW 4 7/P!P P$PD Q>P'e*P!B @P  O @P} PtW zOZ :P 4 7/PP P$PeHPD  Q] QY pUTxpB$p OT @JQ gOA5 L$@P:( 6 O$P/PP*NPm OP (OQ (O L$@P(  OPPP |tW P0  @B T@! 7/OA P zPOzPO R B 0@ 0  PB PHPz O @P4~ @P.(O `L$@P(  OPPP 85 @z Q% p! @Pt(Q eROg &L$@P(  OVPPP Hf~PG PD(@$P`#(O 3 K$@P (  $PPP XJ @ 9;P= O @P R K$@P (  PPP fP lP  P$ O@ O @PV  0P L T@!Q*ltW 4 7/zPOzOP O @P-PO@@Pp 9 R0 R R RK80! peZ z%p@LPy OPu (OQnLPm OPe (OQ^LPa OPU (OQfN O @PJP6$pZP P)K KP @:LP OP* (OQ#Zq$p7 pク @z&tLP OP (OQP9ʁPYʍP ʙ O@JP >$p @z @zpm@@ 0 '5P$ @PQZ.LP\ OP (OQLPP OP (OQ"Pʍ LPK MOOP M(OOQPBb OZ4 #p @zPup@@ 0 4P @QR @zsP[ʞPʪKP P(QW9PʯKP OPI (OQBKP P(QK$O(0 I$@P(  OPPPK P PY lOP fo0  O @P I I I IPP- POZ(t 0P zg(/KP OP (OQPYPedPpP   B Kp6"2 0Rp+xt"t2 0G yI SI K~t zO K Kp ["2 0&pb K K K K Kd`!`1 0!1 0!1 0 0 0\X!X1 0$ ! 1 0l 0 0 0 0pl l0 0 0 0`\ \0 0:6HuHp:HLp9GLl;>I:>;jIf>:H=09G;P9vGG9GJH9GH9G}H9HHP:II0:lIIO-MP@PP,`P8P6PHpP pQpWAZ pApAPS !`pL4S $3/P `u !Pml .L4S $3/P zloOK@PV` PPP GPE `AQ> $QG |L4S/ $3/Pz OK `p`KfPGP `p@8`g gg PLP @'GPP l \p\PK`pW \\QpQ GP P`P ``XtQl `vXh Q6gt   0r`Pgg`vQ f `oRP 0  PooKuPv I^` e]GPC pvG 0P,P: `S,LGvZZ  Pl `pB<P>  80y'`p`K L`v,,oK %!P" I`l`tGP p!G 0+P `+FvoKt`KHD D0 0c 0 0t1@AP<1AAH-M@ PPp 4d06/p@  PPK~p A PKz\_OKpL-MP@Q7 f%RT Py P$DPgf`0` V@dV 4~/6/Pg4! t0  FP `pf`Kp@dV 4~/6/Pg[84 t0  %P `pf`KpPf`P@dV 4~/6/Psgu3( t0  P `pf`Kp@dV 4~/6/PRgA$3" t0  Pa `pf`Kpf`KpEPf`T @Ĕ\ zl4oOb/P Q QdQ  +`Pf`Kf`K$Q*"l p 0`A 0P< X4S4 $3/P`zloOP`K@tW zl4oOb/7/Pg0 t0  P `pf`Kgf`gKoKf`KsXM-M@PP @tW 4~/7/P&g`2 t0  `P KX g <4S $3/P zloOKgg`K r=$@P g  PPP/ Pz O`@KI`X=P p `p= '"P `0"H=KoK<4S>PPP(QK-`@ PxloOI^`=P p-= !P `!=oY`pL-M@PP @dV 4~/6/PBg.1 0t Pf o2Q@dV 4~/6/P!g H1 t0  P Kpg<4g S $3/P z OKpgg! P P@P;P R l\`\P p V \ \R`Kp$ 0 0]~RH-MP@Q f oRP:@tW 4~/7/Pg`3 t0l PU ! BRq@tW 4-/O7/Pqg`t   0`PO;`P pP P lPR f o0K P\ !p BRe `Pp@tWl 4-/O7/P,c@tW 4~/7/P!g`V`1) 0t  `PGggB<4S= $3/P7 zloOK@tW 4~/7/Pg&0! t0@tW 4~/7/Pg pP P c`p<4S`KpL-@ `PQ P6;Q QQpP P <4S $3/P z Op@dV 4~/6/Pp<4S H- $3/PHz O//pL-`@:PU QQpX   9P l p <4S $3/P z Op  Pl pppO-M@ L 8@p gD  :$@PD y LP]@H D IP8I@N(S  4R$[LPP @@X\4LLP(HppL`- T D  PlP` BpX!@@P,,@Q3px H  LAAoHXoHL, HP@`P8&(H t p!QH  VDU D  PDH B@A R@1 mDPHQ @<K<l4[ Q4 8 Q 803[H P  P`tt4S $<K 3/P L PDH `AV`!@V   @Q! BQѭDt  0 @P t  9P PP]H` PVDU& D  PDH B@A R@1 lPH!ADRlHT @0K 0 BP*dP 41qW Q:L PD @AT@!T X lPXAlHP P`XP7 Lp @ P`V@@ @&Pf PV tL D 0AS0!@PS dHV P  6/zP@O@O AP@t TLPD  PDH B@A R@1 rDHPP@ RHP`]D  PDH B@A R@1 UlPH!ADRl@ P (XX4dXpHP8 m@@lP :0 pR T P:(1$L PD AQ!PPd `HVDU+ D PHHP`@ADAQ@1 DPHQI@7LlQx P/ (8t\(@"8 Q Q($ t< x8P0 Q0Ps g8Pl   .Q0+D DH BpA Rp1 Hl!QD Bl!O! B @QQbDet  0N @PU tU L PD @AT@!T X rlPXAlHP P`XP; L PD @AT@!T X WlPXAlHP P`XP( 0Q P f @/oQP"0@ !X% h%R` HP 4`V X 2 p  7P P  !p<HP  7P `P L t0Q @@ Q@@ S RtX% RP `l@tP7P T!XP@@0@   p9HP:P 0 0Kd 46/OP, PW0<4S% $ P3/P KH P""TXP`0 @ P @p@T!XP@0@/   p`X% h%R_ HP X P  pXP LPPP  7P pPP. VDUo08 Q (P$t8 4@T f`oV PpDI-80 -SP @LP:(!$E8 Q8 | 8p J #00ASpR  Q  h6P4 h(HH`P80 QI8 Q D($`P 3!0pi%8 P `@L 0D pAWp!@Wr ! `B @HQQўDt  0S @PZ t0P `0K KH0@&@pt<PPr [o 0P X000KP  0ip) P OPZ`t0 ,0W$[  P7/pPK \tWG  4 P 0 07/pP7 ht0 ,0W$[  P7/pP dtW  4 P 0 07/pP0,!p  1 O @ / Ep 3H`qpHP(n0HP P 0P 0 l pD t 0P }@pOF@B)pHP=<4S) $ 3/P# R PH@P 5P`    P@@ HpP@@  Hp@lHQ:P@P :@^5P`  P@@ %HpbpHP8P@@P8 D@9t ? 0@P(D@HP%P@@ UHp/DHP0,  dQ4 d!0 ,0!00P)h!4, 1P5!QQ ($`@@t4Sq $ P3/Pk R d4 d!0 ,0!0LQ ($ThP= 4A1p8 d!R 0paV! pW:P ` E4P `4 0 %PY @4t.a`P `daaa!41P@4d!w4 dh %pP  `VDUpD P P`  f!PQ(z$`PaDHPPpDtX 3P Q5 3g@Pc p=\RP l  @t@lQ:p t`H PVDU< P ` E3P p4 0 tP @3t}X% h%R8 HPq L t0Q `@ Q`` SR RRtX% RRPO `l@t3P^D}OPF W OW L P, P@OW!P% 'l @l4QE p` PVDU OW HW1R l  k@tpPlAoP`@`W`3vH`GQ 4pWXHP V7X"2P X qpHP   4pHP`VDUhsDtW ! 0 `7/OAP pLPP pS P`HVDUB @tHP gt T  pt4S $ 3/P @p}Py gtm Tr  pdQb(`P!8  tX% RP `l@tP2P p2 0 0P @2t9` f P!4P8P*8 @Q  2P`n L `H@ Q:0 pRQP8  tX% RnP `l@tV2P> `o2 0J PB @MF2t HP- <fp 1< P P Up HP(D$DHP4XP P 1P Q PC0Pd|p fV`o6 Q# 8|QpDDt6  0P @pg@HP ]Dg@HPT htGtO8` @HPHP ($ @P ` E1Pl 1 0 P} @1t( -@pP gt T   lp`VDU OW W0,!p ` 1 O``@  * p0 l >HP @p@DT 4 P 4/P @Q$:P8 P=Pp/HPEQ] yQp9@HPXt HP1ty/P&8 /P<4S5 $ P3/P/ @ P/HP `HfPS/HP  P  P @p g@DT 4PO @ 4/PzP8~ p Pwl !pq@KD)t   0zP @p.L@EKD$079 t0dDH@@P &6 0a\& O @ @pD(6 0t=D6 t 0  -P3DzLOOKD5 t0L@JKz O@@KD5 t0   P @p@@KL@L@@K@K@K@K@K@K@K@K@K@K@K@KDp 4# t0De3( t0OK@K@KOK@KDF@X3 t0   PP @p @KD-@3 t0   gP7 @p @KD@2 t0   NP @p @K@@KOK@K@KOKL@HKD @K@KOK@K@K@K@KOKOKOK@KOKOKOK\UX!X1 008,!,1 0 0 0 0 0 0 0xt t0 0 0 0\B ݠRޠJޠ3@ݠݠѠc ޠѠChנѠѠ۠ܠU Ҡ۠$ܠ,Ҡ۠DܠlѠ#ZL-g@ .$@Qg oMO-M0@`pPP%  0 ?_P/pI~~.P'  0p -p ڌdpV  0 P g.P d4  6/P [.Uz\_OKOЍ/0H-M@P@IP g $1 t0  P K0-P P P P K0HggK0P foP  K0H K0H* K0HpL-Q PX Op}p`@p-Q  R  ppM-M@%@RgP:t   0PP,ggPKPh%R eQ`P I`-P p- 0P P-K_K @ APKK-MMzL`POO8t)07/pP W ePP PL L0 0BOW ~wW@K@KXˠՠ֠0H-Pg@@PPP 0.PP@P @(Q@0O-M@pPQ f}ooQ/ IY }o P' -P0  `a` `,P @- 0Q 8nP `  ,K ,oK`KoKK-INp``,P P, 0=P `,o`O-M@TpT p`U00 `ę0e5l pA 5/pPU0%PUPUPU@U@ pP `  T`z OK`p @P:@0p P0 5/@P! @KzTO9W7:` @  0       xP  \W P1T@*lę\ 4  p dQ/ /dQP/p0ϠQ/!p/0ϠQ/!/ / R/R H R/R/O- M`LPUe  `HP% &@ hpd*j&ga0 4 0# &PCHP @Q TPUdP  '`V' P $`V!  @PPh儀ti&xa0 4 0# %P @HPPLLLH`KL 0R00 P0ST PLH/H- ) 0 0ٽԿ O- MLY@`F Hi&`V`P`) %X hpTi&Wa0 4 0# e%PHP Q T@Y`VuH`Vq P @p P%PZ @@0@4@h@dP  G&P HpP`PQ LP) T PT0HS TQ, TPHQ< LP L HT0HS TQ TPTP TTPP TP P LHLHLPTKd` `0 0F84 40 0>0, ,0 06땺Bu缠O-MX L@LHTP LP< TPT@P `X8 `HP& %Phpdh&ga0 4 0# $P HP  PQ T@TpKL@H `XPHPP $PT@TdP  n%pZ% P "Z' PpPh`D\h&Fa0 4 0# 5$PP HPKpKpKK-P@L P PQ2TPPLPdH@P  %P Phpdh&ga0 4 0# #PPHP@) 0 0F뵶帠M-HP< P TR QTP QL P H BP `pH@T P*$P ``0`4`h`dP  $PpPTHD@ @0 0 0 0}?*균뵠H R/L RP R /TP/H- dP@dP  #PH R0H 40R0    /P/H/T/P/L///l/Q}/H- M 0  РO-$M pINP`S   !  0f P/` {"pP,  P"UPx@섖X#  0! P PPK_YPK_ @"KM-MP@`r T}Kf%~R KpU P P 0    wKt }Q}$R pM-MR}SKP`P I `!P @" {fP p!KKpKR}/ g/H- M  0 РfQ g%R /O/H- M 0} РO- M}RP`@P KfP. P/I`{!P- p! 0@pT p%t 0 & P @ . [!pK~KKKp G!KH-M`S02 @PR P) pt| 0`P 0`S % 0`Pp0`S xTQ A=`KH-MS`@pR l0S P`V` | t0v"P K}K0V0  s0P0S KK0iKO-M@fP }_ Q`R Y]_OKY I _P Yp   R p   ` P p (  8 0P Pp K KPKO-MfP4 I`S5 @ 1 V} Q%PC PJ pPP!00 OP V@P k 0 0}OKp` P @4 ( 8 F P pT KwKpKK薬M-Mpf@~QP`W mP}$R  R0 S X 0`P+KQ}/fQ~/L-M^@ @ T@0 @KK-R$ I``@pP P`@ 8<A@@` P `@}OOH-p`@P P Q HM}O-M}O Q :P|P I``TP p@l 0@aP @aBKMOOKOK@KP @/pL-PP@Q @@ ` @*P `  BA0CL 0  0pOppL-`P@@P*V` P `  BA0CL 0  0pOpP/L- @L/ /  /K-R( P@P- `P BX  P 0A@ G0L 00} pp`@  @@ O-M}R9 `Q5:P sP, @P BV  uP 0A@ G0L 00 @p   `K AKO-M`C}_P:*p Q6: )_P. @P BW  +P! 0"A@ E0L 00 P @ @  pK KO-M@}PDP< P BY   P. 0 P pA` G0F!0 0pW P`Vp p  K KP/M-P@U `pWPM/H-p`P@vP H `  ppp" @ A O- M@R3 NP@  0P@p 0Pp`X p@pp @@@@@ KP DP  0 `*C  BKKPQ/Q 0S/Q/ 0R@/M-R @`PpAWp!W P  @TM-@P `P noOp oP PP BX  P 0 pA` G0F0 0 000PP 0H-P@ RP0 @00H-P@QP0@00H-P@ RP0 00H-P@QkP00H-`P P@ Q@@T P `pV    B'`Vp@O0H-PU 0@ Q@@  @P0U0@0M-@ Q 0 R0p00 0PU `pWPP/ P/0H-P@2 0H*0H-P@1  ) 0 0 /0H-P @\PP P P P@ $0  00H k g00   //00  //   0 / @L-@ @@ @ @ @0@ +0R00 0  / //H-   0@    0//Q A/00 0 0 0//  //0H-@ @ @@PP @P P0 P/ 0H-R 0@P@TP @ 0@ 0 P/  /  /K-pW4 @ ` _   0`O V@m oOV   P@ w V 0 0ONnB0H-P@P@0O-M@@ p  G PB GVPPGGAP$ p P E AE WE Ep P E AEWEEKOK0H-P@0  30HpL-@ P | `0  3l ppL-`V#@@P% P E ]E EEVP RP@p84 40 0$ 0 0뢓;0H-P@60 P  30HpL-PU@@P ` F F FF p84 40 0^$ 0 0V늒z~jZL-@ M-`V,P @P* O @ D ͿD DDƿ @X pPUᵿ⹿@PpW@ 0 0J>H-@R `PpVᒿ▿P`pW /0H-P@፿␿0O-M JPS! KP! pP ilP:p`AG[^ p`P: K KH-PpW$ `@  0`O V@m oOV ! B 0 0vꎠރL-@pL-PU@@P ` F F FF  sp8F4 40 0?$J 0 07 鏠!  /H-@`V& pP G ᷾G GG尾 孾娾 / OP P O_ 0 0ꌠ=ށH-p@P`ᑾ ⍾P@K-`Pp R :R@  P  pD @@p lp@pL-PU@@P ` F EF FF> ;p84 40 0$ 0 0fZFٍzL-@( M- `Pp  0@P&: @ D D DDP {Ppl l0 0I84 40 0A$ 0 096׌q6 0 0C  0/M-@R:`pPώpG&P  `;  @ B K-P @P* O p G 卽G GG冽P p@av pW:  @ Q 0 02O-M P@p``pU EPO`P EQ* OKW P! `p`Kp ᴾ@`U #@P KKH-@T aP}P  p @H-P @R  p` WP  oB 0  RH- *ܿP ׿P0 0y0H-P@0 R ĿP0 0 R0H躿*P0*P0 ᮿP0O-MpR^ @`P` RQPK pP` R S  0    @TP!  p kp R ,  p p@TPKKKL-Q' 0@! BR@!l0Dll\! R:! R ! )B R ! R 0S:M-R. p@`BP@P': `@@ @  ߻X  `۾  d 0 0,L-@ 0 l C   $ , LL-@LpL-@j @P`P $ @@@x,B$b(pOppL-`@ `P  P A$ ```X%VP,$R(pppL-@j @P`P  @@@h`lX@\@t@x(<P@T@`@d@p@G~@pOpP/H-@ PP p a{y pW:HH-@\iXgTX\bP`T PP p aSQl pW:HdH- $"0(R,2 $\ 1("K-`@QMV/ PF P@ Aq  0A PA, Q Q  $Q Q$ $$ Q P P@ Aa  0A PA QM-@xP(Plx `Rh P P@ Bq  0B PA庼帼 ROH- =0S=R := B\0 a @d"0 00<  <Q8 80 0(]$ $0 0< PO-LM MOOP `K,pPP f ,(("P.Q* ,K !pAW: 3 RQ.*? ,K,K0pps S? ,K,Kpp,Ka`P-P* ,K #p@W : 3 RQ:`? ,K,K ? ,K,K0pps Spp,K0`PY A,KA@`$ P 41 P(,09p0P P<Y @PY0 \ Y4 PU:U] QH ,] 0QH Q %Y0 B4 0 ;I3Q| 0  $``$@T 4y(p + 0PC P $@T(<YVpI (=@00StD <TB =QN=T:=DPQ 0P80pp,P $@TV Q ,ʻP`<YK` P V` R嶻P0 $@T4@00Sz,,K0 0ѺPY `p,P $@T0 Q,呻PV` R养P(=@`<Yz00pS @B  @ `4 p P  R^P_ D`<T@ @p00S], 嚺4 0 nP ,K K0$ P(勺,剺00Ut P `Vg | PS S Sy P fP `@PZ  PR4  :pm PoOP*,K *~DP!: @3"T Q  ,K0#T0 0  !P0  ,K,KI`V$`AA@` V!:`K`K``,moO Kd` `0 0PQL L0 0<]8 80 04xgux8Guduu'uuuH- MP0` f@P K0 p J@P OT T@KOKH- MP0` c@P K0 p #@P OT T@KOK 0R/ R /K-#@P P` P@ P !$ PPP)Up,$(`iK-pRWp#WOP P` Pp KP !$ PPP弹)U@,$(`5H-P@P P p a pW:H0H-MP @ 0P      K00H-MP @ P      K0O-DM }OP K `\P @夸X墸X X\$p0 <PTPP$ @( `(,Px P!44 0l 0 Q S S @S t PxQ}  B/o"~ ` pp P P= RQ R QS0p7apVM:aPJq  ^p  Br< P:R`'@Q1 |Q  `xx`p|P `@|Qx P J(TXm x`p|P `@|Q xhl0`p S1P0p( S Rp1`Q:PL 0 ^p 0pCw PW`@R  l Q P P@ Aa  0A PA囷噷 Qx0 Q QP tt`P }`Q``  pp0Rp W S{`1SUu:SRr  ,Pp0^p00p`Gvc =pR`V` K@SW RX 0BPd0` xTX`N Q #Q  0A P`@Q`64^` pp P P1 R" R Q$0p7apV:aPq}  ^p  Br  P R`@Q |Q ~` xP ᥶P /(,PTXPo``N4Q`1 `V4A`@Q04P A x(TX1Ptx@p`TX$CpP%0S P`q QpW%0=pR@ p Br] p Br P0 =pR(0p  pCw,Ppp00`Gvy ` @T x@Pq pNK`N Q #Q 0N  P`@Q`SH$R``NHQ`1 q`VHA`2@Q>T`DHA tP)~P<Pp4`0p }8} PP 0 0xP 0 ` @PTXp\`P$>$`$  W PP$2@` P $p K pDK$pW' P=S :>B\)q 0`p2`s0< p 02 pDxK<Q8 80 0࿸(]$ $0 0෸(sdddSdd eH-MP @d= R9=P :=@Q<`  a< `!~PtTp p}P  0P kKT ` EK<Q8 80 0d(]$ $0 0\ c$cacbeccL-@\DXBX\xK-`QH `H P% @ @P`< P  @@@hlX@\@t@x(<pP@T@`@d@p@G~@P 0H-@P0H K-M`S?`P P:@ Q : p C!WR OK S(*P@@00@3*`@ V:0ppc!S`  P K K 0 0ஷ/`c"0H-R*@@P@@1p-P0 P 0 0H 0 0_bD"L-MQ*  KA^ :  3!\R OK?  @ ?  @00!\ wKO- pSpp `Z V.p<@Y):VS&V0 ` XH`0 0p3ps0pWZ0 p `0@ =/H- Q A=0^*=^:>A\  8]4 40 0( d']]]// =/H- Q A=0^*=^:>A\  8]4 40 0༶( g\\ ]//L-@APhH@`HL|  eP=tQb eP_ aPvP;e@PT                8  Pe wPi hPn eP\rnFPW1tPi rPw ePN  ׳PGd@PA@8\$  ෳP'nPR hPY eP  ৳P)lP P B e@PT        x         L vP 4 oP6 rP cP4 sP eP UP d@P@Hlh 5P+ tP~ hPH 'PgPy eP PnP gP eP P}  Pr<gP] ePk Pd'eP_x PX/nPL ePQD ڲPJ*yPE  βP>7nP9 ²P2aP,\ ೲP#.X લP< ࡲP4 P8 P  P0alFP:aGP qP  jP" aP5 XP- OP& FP  ?P@ 6P0 -P> $P9 P P | P{A\ Pr3< Pi2 Pn  PY# PP! ױPG,d αP>$D űP5%$ ༱P,:d ೱP#D ઱P($ ࡱP P P ?[wSWS7SSRv[UUU[TlTOT2TT칙ZUUZUZCZEU+UU;ZZWYSS}SfSOSYWYW~YrYRVVVzYXlYFY-X$XOY8YO- M@p `   0 RP W1 RI ) B AP0Q0 0 `A A, Q Q  $Q Q$ $$`^ y R R I B A`0Q0 0 `A ACA \ R`Xe 0 PLoP^ P a P E     $ ,   R$*Z:P P5 P  0`PP a` P J P0  0 B W (, Q$`K˯ɯ KM-MP@IpP1P*W3 `@V : 3 RQ OKW3 ` P K W*%KKW3 V:0``c SQ/$ 0Q1 /dO- MR ppCA@ P`Q0P IpZ:AI0aQY *X:% P%H XPph6X:U PH X:H00%  X8:U P1  pPWfxX:H00%X00% PphAWJ\X00PApZ:<Hu Xip P*up P" PWY   ``P) AQQ*0pG`0WZ:W Y (8 B`3" pKpK 0 0JK]K/K-S; P`u@puPr&RPpp) p `rpp p`@B@PP@Bp` p pPP``P:Q Q OQ\O-M@p`P *P  %RR" PD - 00SE P: PK  ]_O :R  0A0Cs0S: R::R Q& A Br R Q A 00Bs0 S0"A0C"s0&S#:+ BRR QP fP eP Q :P]_OK hP@ K Rd ]_Op :RQ@|BQ/0 pH   $ 0 Q,  0` V V0S:"]_O :RQ@A:Q0pDDDDD)  0S p` V VpW:  Q  0` V Vl0S: QA Ar R 2qtQA Ar R 2qrQA Ar R 2qaQA Ar R 2qiQA Ar R 2qlQA Ar R 2qeQ~A Ar R 2qrQvA@qQ 2psPh mPk Ph Qd  0` V VP0S:Z궉W PS  0 S S R:I:RAF C Q?  0` V V0S:5 2 R. 0` V V0S:$ p R `<  U ZQ9 AQh t( 84 4SE:t0dpp0Qdt`FptdpVtP5  h ;P= H P::<P7hP3 ,@' , HtPK  ,vpAH H< 4S*8t6 ;H P:`<PPPd8P+:4ppP`U  t 5/QUPPPU+ $5/Whp` t P6 PV$P9(P H Q:gP @QG:PR P <PW ({ Q(P8MPቂ0tTPI=HP>P?PppW  t0 7/MgP /@hP ptd }#8gP hUg pq1/P 0TPlCp p!J!Pt 1/P L40 gPS 1/P/M3{0 'fZP PM UX4 S$1 s Q+ P 2KKS#K$3g0  GP P8K20d ^h2v0KW;hp<2/p`?0"(P0  ١( t ( 4dK10!%((Kt10i 㺜2 d10 㰜/ D10}81 0D 㢜 w"dhQP00fiP hRK00eF@T XKXF@GPK"D \|XLRxX@H- M S Р$ 1&O-DMphPh`@P @1/PP LP *@3-0 !KPPXR@` @@@P8 P P PPK @`P `@@Q:P`P``(,P P1u0 țPK  ,Z 0d `0pPUP! ᜘P8Pp0p,`Upc P P PppW  t 07/\P /@hP d p6pV jP 1/P 0p"PK3%0D P PKPcXKPK3C0 dPTK\30PTKP30 G 30 >@Q*30D 1PK20P_P h<@ h20 420i 㘒2 <20 ㎒ }PPK Y Pu0r TPoKx1F0d V.h``1/`P0_  nP7  gP0  `P)  Y1P0[  !㘎1 0 ㏎`10 ㅎ2` YK010 u00 !lF` PPQ 5 0 0 !RF`d0000 D(` <Pg/L ߟ~>rNߟߟB"ߟO-M `VR:@ART*P`?Z VAQ(*0 @` pP!P* P `P%`!pF Q`p//Ppp0`Cp#`&p `p'?:pT   0@  0# T "K($$$oޟݟޟݟ//O-MPR,S`@`V BPV P pYXY,W .&Q $`PV ȒPKB.&0 CpH@Y  0P&tPP nYX PP   R 0A0# 0H 0/A_KPK0 \L-  R C @" , @" A/ C /L/O-MR; @`S$8 !P 뫶ppW? ឵d49 ᔵ@P2 ,p|P$pPPo XHPop0PW:$,pZW (KP rpڰpW eZW pZW P @T0PKP I T :C@X60! XP  堠KP,pX(^`p` PP,*P `a  ;-&I0V @0 `10V1`($PP ,&QpW:l`尐 d4/ 嗞#  2-(# (  R㗞# $ 嗞   !  ! ,P\`(P $pWd:$P1T,p0:0 P001T0`" 0ὮP3!0!ċ$0 !T00# ᦮P90K$ ៮P2$`0 `'`EB (PV KK(PV.$`U@ -@P( Q B0p 0,1+0! 1010D gKK P  Q B0p 0h_P ZpU P $`pP 03P~  PA0`Up:(P  R $@TA0K<"8,"(ԟrԟ.ٟ՟ԟ}ӟҟeӟҟ H-M@pd4P0WeP`0V]0C`` LB 0 `QyvN ^ N ".  #P5 P&:0.;X b _@{pB/Tkk0f`?0S|>,L.MMPA  8P;K  2P5  ,P/ &P)  JP#$ tP$  Px  P$  P ( ,P($ JP FpKlO-4M@S`SP 屎ᬐ徳Lpp U d4$ U!  "U(* )!,+#h@PP h P00 0  K!P$_  ㋐PY 児PS K{PMUh P 0  P; ᷏d4&!  K聏P აP `[ {K#  ˟rʟO-M@p A!P:2'0 Ԉ PK$ 0P d `6/P| W`PvtڼQ  P(10 忲P 廲IAPc*P*1Z0 㓈2  Ph10  O>PKPP@PP:PP  H@@PD 0dp7/U P D @P`P`PPZTK M% ʟnɟȟɟǟǟO-M@ P  p $P8P PA*L" 0P PmpPjU8 t ,05/04 SP$$ PP P `@!ddB R@ qR@pQ<@V9 @V d @V 0IP( 8 ,P `K=P P P" EQPkQP PpQ ܊yPu sPoP KKL-@AQ ᒱ*.@R8Q@QO-M<0X*@`P}*@QKtPP `@L,DQ@PB PK`pPP `@@00,8?K2zPP@ `@,KPtPP `@|,tKyPP0 `@T,L8(0pKtPP `@,8@(0pI`P 0Z0 ` `T0@ @L0D'& Z 0X  @PD4PP@P0\`/'&0  @*'&aZ(HP@ 8W& PIBKሌ& & @&@T$b_K{Y`* a΋V*eX!B *E8KbK8/WB_K b &@&@&@IBK@`PPT P. \PpU <@`K8/@@pE^ ᛋ@ A喋8/P@&&@@@T1:\pK``P8/@`VP:"<^ N``@ H qK8/P@&&@P :P`K@ p@8/@@Tp: P0P@ A @ @D X A$*0Ha NX4p` `@`IHT0PD `"@(" @0/P Ï/?<p\@Q*@ L@Q *\@F@@ E@T@@O@XU*P@H@@``@P^ @`K`P8 2/, 2/ `吋 *eP!BJa!d *A4@P  0Pp000D @$ RPP@ 岯 1P8P bK\ 㚋 P+bK 廌P$Z@ bK0*cR!B*CbK᪌P4 ᤌP` ᠌QP`pKߋpKx t9X T3PO!L-$DdPcc d cX dJ+C< "$       "$       "$ "$  /  "$      "$     "$   "$    !  "$ /  "$      "$     "$   "$    !  "$     !  "$     !  "$     !  "$ /                                                    ' & ! % " $ # # $ " % ! & ' / ( . ) - * , + + , * - ) . ( / 7 0 6 1 5 2 4 3 3 4 2 5 1 6 0 7 ? 8 > 9 = : < ; ; < : = 9 > 8?/K-Pᯬ묬@P@륭`@Pp`^$&@ Z$&AK*0< 0꼳 R3B/$X0"80"  ` d/j //` P2a 0/(0H-L@*-PP hP 1/P0RpL-P@hPp,;h`咷h``c卷h,b簑h+PPPbh ;X\h+hWD;h+HPh+PK᪤h $;h`pU0H-@:h,~h,+PPP0h -;X\h.+h%h@h`= ;h7+Hh8+PhvH,B+0TҵM-MPA|P@p`pP P P P   P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P 4P \P P P P P P P pP P P P P P P P P P P P P P P P 0PP P P $P P <Xp0LhP P P P dP P P P P P P P |Tv Cp$PW ၳ @0p`P }`pKT[ KCP IP i 0͆`K7. 0B h`Kh`Kh`Kh`KW2 47 0-zXA`Kdq`KA`K`KA`KaK+A`qK KW M  KW M P T㡀; X`5 `pTP`pW`Ki 0KMAi KM肆KMZ 0KM KM* 0KM՜ KMP `K`P P.W`T `W.P  ņp`K KM 0KM 0KMd4G`KP `KP `Q`K`KKMn W,P hP `DU4P``K` pKdaK`KPt h`pPd ЪKM p2k 0p2 0C OX+\`T\G 5@P]: 2 0?!8Mb M `Kh`Q-  Ra T `KP2 h``P h``Kд@10A 01 0| ɀ`K`K`K`K`K`K`K+P\0 0D T0u 0!㕀ኴKT"hbKΪ꬟Ƭ갟.pL-@P `PPpapOQ 8Q QU /H-M@A`~P6p P`t8X\p$Dd| 4UQ PWS;Qh   b @*`  b @*@@ `0*`*@ @`KU? R`3PpVp ᐰ @0`:P 即``KU% [@PZ FP^  0݃`K5 0B XPȋPJ `PN5 0DQ`KxQ`K r`KQ `K!  !9-`U& f@P:4> 0e!q`KP J-K-`P|4L 0WP`KL(`K KW H  KW H  0KHG KH舃 0KH KH5 0KH KH(@.0W`U `W.P  ۃp`K KH 0KH 0KHKH KH; p`K bKt`Kx`KP`K1 0E!O1 01 0C CHH  `  A  `*`*@ A `*`@*@0 @`K A-#P"0B 0D *0 00 0| `K0 0A ~`K80 0!~`K.N*JrVҤN0C K+ 20AISg1(4<DL`tF] b  c ~ /H- @M    6 Р Q/ 4S" /O- MP.@@@ᣛ0ፋPcp@ላ@d4PK P G$ P QP@( QP;h0 ("r2 aV0 0   Q$ DPQ P4 `@0@ P  Zh\P P4p,WKK#KpL-M@`@PQ @Kp  @ Ph @@@ P@@KpL-M@$P?FP (K( ( ghQ&hQ @1/pK 08R,B0/o0" RQphO-MhP Pd  A圅P` P p` PP 弬P P @PK P $ ^P D $ $ $ |`pV:PF D IP8  |P;  9P(  {/1T0A vQ\PA 0v ]  h1y0\10A v S KPP  P  {P _P YxP wP P < HPꠒ쐟Ȑ,h(X0H-MP 0@ PK0<&P P   塤埤ww Ä!K0輎P/H-@pppa`+ QpP( p$p,(p0,p4 0p<4p8p@Q;,Q @5@Q @0TQ @+hQ @&|Q @!Q @aP @[P @U@P OP@I@P@KP/Q0 Q 0CdQ/< A @T@T0D  0`P1  P Pi`p  P pW`K 2 0O aq`K`K`K1 5O0MqK@T @TW P1  0`P1 ᔨq%@ 0`ㅐP0hP `pe  >P1 pW፱`K`K0%0OA {0*0O pKpmT0 0O pK@Z^`KP{{yyyM-M@`PP"pP   '( 'ppPKT00? pK,00? pPKlx@xO-MpW`@P ȐYW  PP `װP83k0S op`PPꎞP= ~PP~ uPFrOe@PpP~U `aPPi Pq 0`P ᙵᏧ  P P pP`b\20S pPPVWPPk``}  G~P C~@D~P  ~8~P@P5~  0@ʎP0P&~UPp~U`P`Pqe@P?MpP,P10SA o`PP 02K0 S0o}P`Px00S oႯsP tPPP`Pwt8vtHttH-pRp`P@T@UML-M @ 0>/KL-M @ 0>/KM-MЅPPWe@u`pP 딝P @T Q@Tl@Th닝P ǘp@2@Z}P pD$)LoP pH/>aP pL*0SP  pP"EP$ pT 7P( spX=)P, ep\ P0 Wp` r P4 IPdP8 ?PhP< 5PlP P  @ @ @ @@QP  0@sP blRPP  L@ @  @@/P  0@QP bP \  @  @@P  0@1P sb@ P  T @@P  0@P Xb@ P   @@٣P  0@P =b Q PKP.LXe/TH!DP*dG))mmq|ppoPonm7nmO-MPU_ ` P Y@X YT X@  PRPd@?QM ,(((((((((((((((((((((((((((((((((((((((((((((((((((((((((H@K@K P P,  P,  P5P' P' P,P#  P#  P $ P  P  P P   R( R0! R  R  Rw  !Z 1 qp pP@@P R\ W P @P K P PhPPP(P+@PPP PPޚP@PPӚP PPȚP KZ P@pP p@PA0!d xiiivibip Q /PH- p Q  H- P Q O-,MpR p $p Q@SKP pqP%  qhP  qP  qP h* d4?0K hhd4 V V V ZO@@O@O@X   1/1%P Z`@\1/PP@Z%dP, d4$P   ```@ZYHp  IY0 I(p p$0 R0p! 1!1(0C0Q $ p 5  @ 0 P `0P) U%0SP `P 0V P 0S` @@P0$ ,>30A  @R$@T 0 0 P  PR `RV P P` 00R U Q$0S   !P p@ ppWS T0S `SpV@pW `0  PPSR$P 0 P0p @p0 pWR `R0pV @ pW` PR T S$Q 0   P p @p pWS `S pV @ pW` 0 PS T0R$P 0"P P@0` @` `VR `R0pV @ pW` R T S$Q 0  P p `WS @SpT ` pW@ 0   PS V0P$ R 0P P0p `p pWPP V@P0pT ` pW@ PPPS$PU 0    p `p pWSS V0@S pT ` pW@ 0 SR$Q 0 P0p ` p pWRR V @RpT ` pW@ P00RP$0S  P p ` p pWPP V@PpT ` pW@ P PQ$ R  0 P0p `p pWQQ V@QpT ` pW@  P00Q K$$0P $0RS& v%Sp`pWpWSS V0 @SpT`pW @0 SP$Q  0 P0 p`p@ pWQQ V @Q0pT`pW @  PQR$0S  Pp` p pWSS V0 @SpT`pW @0 PSP$Q 0 "P 0p@ `p@Q TpWQ `Q pV@pW ` 00PQS$ R 0 @@p`W R PRpU`pW P @@R V %$I  @ PD T  @TH` DC@p 0 SP 0 R  Q <@`V U @<@`V@<@`V @  mPP `P%4pB %@A 0.hpKiii0 K$ 0 :Q`@Pj P K$ 0@%T]i%WtPD @pT$/f @T P P , luPfuP(%&n\h<\N\T4_e%sP @spP s@ksvK%spKP%D-}pKc[XOWhX{VFXUVUUUxGUO-Mp`X`X ` p PWU  P pWU  ` @`@`XX,@^,4@T@HT`A8H@T @W  W Z @ @ @T @ p p @@@\ @^P @ Q @| `V @v S@ @p `V@Tk@T ,@`d @T ,@`\ W @` @ @W@ @ @ T```V @@ @@\GI@TA W< @ W@ @Z@@@T @p @,@T @W)  W Z @ @ @T @ p p @\@T W @ W@ @Z@@@T p  \@ @\ W p> KK-M`P P Q 4Q`p#PJ Q Q  R 4 101V1Q)0 SRpp P4QQSS U0S@Q P @T 0 ppSpFV`D#K,00A :fKPOgOO-TM (p@,0$ p0@PN,00000000000000000000000000000000000000000000000000000000( 0 0 0 04 $ 400  I `X0FAAqQp& P#:-FPYi 8 S ,PU (p @H, ( 0  TkP ZP PUx P 4Q 400(p,@$  P QA  4p@00(,$PP \3  P ^1  ,$ 0 4   ) 4 P&Q( 8PP0 +V} $  PP,$ 4 4 P 80 +V\ 80 +VW 82P+V@p\@@00(,$S)  PS PX jPQ RPtS2F/ @P0d H@00$P\@$S P 8 4 0  4A P| @Q  @QPPjP @H\@  P gjP x1F/0d$ @Q 0@pQ : H+VP \@ @Q @Q@ @QP PW( PS$+V @4 P\@S_ +V+V+V@P\@SP y+V@4 o4 @H+V@h$K7JnO/NIO-MPQ R K%【PT  ` F?RM0!XPPPPPPPPPPPPPPPPPPPPPPPPPP$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP<|ǟ  D?R KVu  V@ǟ  D?RHǟ  D?R0!x,0 W]WL G?Rs(v0!px,upX|W  W  W#tpXq W W  WR  W  WtpX_WO WU WtpXSH W8 W~, Wy Wtß  D?R' ß  D?R!ß  D?RT W\ WWlß  D?R Lß  D?R W  W`spX ڋ W WDspXڂhspX~ H?RTC0!@                           $                               0HB@APB@>4B@;,B@8$B@5  D?RtqpXqpXqpXqpX xqpXhqpXhqpXڀX  X  XPA@XA@TA@0L!    p@D KppXappX\ppXWppXRppXMSGHvG;CbCACCCNFDgD&DDED?FEDECKE;EAAAfAAAA@@AACCB4BBBAB~@P /P /@@P/d@P/Q8  4//M-P`QPoPp@o`P @T`////// / /H- L 2/P QL /P/ QIQ[A?Q  @ Q Q,  Q,  Q;5Q' Q' Q/,Q#  Q#  Q* $ Q  Q$  Q Q   / Q' Q>  Q  Q  Q/   /H  A?RD!L\ \\\(\\\\\\\0\\\\\\\\\\\\\\\8\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@Q  Q/  /$  A?RD!<LLLL LLLLLLL(LLLLLLLLLLLLLLL8LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0 Q/ / P/pL-M`P`P@P00VF _Kp 㙬@P YnPPKp \LnP P  8BnPP @Kpi:H- v롍w럍P{띍~뛍(~뙍f|뗍x|땍g듍h둍h돍8h덍>h닍Hh뉍Nh뇍q녍q냍q끍qq}Lq{rywm뉍  끍)xt  hd  q!o#m%kw0W(8n68'88td  /0H- C (Q/  Q^/H- M$0 0B _ Р7H- M$0 0B ^ Р7H- M$0 0B ^ РW7H- M$0 0B ^ Р7H- M$0 0B ^ Р6H- M$0 0B ^ Р6H- M$0 0B ^ Рg6H- M$0 0B ^ Р+60H-M@P s&P "PxPPQ(P 1e0D u^K0l1W0 j^PK0 (XDPXPP PP P dPPP d@QPF|PP&'PP 1/#PK0P 1/ 1/PPK0w55H- Mp0 0 P BlQ Р(00 ] Р/3pL-MP PP 48 "W@P OlP4 # `K @(<P 4pt,!P* `*`*@ @P| Q$LH PP#4%Q ``2 ^lPQT X  Ad2MlQP "2 PX P h"3 PK `aQ ,#༵P; !!baal$ p(  1/P' PP .`ԞP | ,k`QVD ^P6 D10 ] 1:0A 00 00 ]@KpPPA 0\"˵@KpA 0D PL!PHPH!hP @S0P0QPPPPS hPP hTRPP p#P#PPB?o8b . PB @^/` PL  ]ZT fPpfQ :Q%%% ''P!p W3b0 `XK3[0 UXK3q0A JXKT3Z0 ?XK Q!Q!P!L@KO- MhpWPP K@T,  R RR "2@@  `` P!hp   T @ 0 #"$p P Po Rx RdQ T00BD L Kp K \+H- M0 @Q TQ,QQ R ht Р(0 0D WL Р+M-MPpP@h`p$ P Po  Rx RdQ  Q P$KPK$00BD LK+H-@P8P P \P  p` x R V  P (P ( 2/PVQ<HPSH//H-`V P@pQ PW W 1/P 1/W0H-@Q0PMP Q0u(C hP?0PPbQ[QTPP PKQDP0>P `QQ0@P*00@//H- M$0 0B k@P 9kP ~P@@P xP@((xx$ $ (|(|協P UP* P UP# $P UP p$p XP X`ᰡ XP ppWW Kᚡ Ko/K-MPWP6 W儀W刀坧㌀吀yUP WP&p`W 0@@P`VKK<00A _IKK4pmK//L-@P jP jP/P/P/P/PP///pL-M@PP KpT+`P u 0PDP `忬 Kpx(0 0 HPKpߞ//$/$/(/(//D/pL-MP@P. TAP+ `:JP( q `!R(*P R `NP `*` F*F2` wWAKp@KpH@Kp. ޞޞ uL-M @PewwP  0svHKKL-M @g`wP  0@[vHK@K u//L-R h@ R @# yM @L-R h@ R @# gM @L-@ R T R@1  SM@NJ/ /0H-P @v @0 p0/ l0/0H-MP@Q "MP:00 G.dàU T.P K0K0K0۞o۞S۞pL-M@P `PQ LP :00 GKp.\V L.P@Kp@KpڞڞoڞQQ/QQ/ /|////p/ p0O/ l0O/pL-@PP M``MP U  MQpM`pL-@P MK-h@`]qpPPpPʼMP PNP  NPM PM x////////////////,/ /,!,/ /,!,//H- M000<0 Р R3/O- M@|P,tP ^ TP `:VP!R`pP,9VPP0|p K`P P/ pP.P` P  0P v`PZ 0sP c`V`p`pL-M@`PQ GP 800c BFKp`AKpԞhP/P/H-M@`P pWhPKPP YTPUTPP P PP( IT`)18 !3"`uph1l!3/P`KX00A <080 EG`K/ӞӞL-M@Q QkGPcGP t00c EKD0Z0 EK KGҞsҞ$/pL-MQ @SP P`SP `V000] pEKpKpў0H-M@Q QGPA 0PD!CK˞˞j˞H-M`pP뱣@P l 0 P!V' V5)` V'  0pYbP5up)0-0 020 $+(;Z` V0B0h0=0| LCp`PK,0 0;CʞbʞʞʞɞpL-M`@(P P 0@aP@X0T0 CKp00 0C KpɞȞpL-MQ P`tP @ juP$PvKpl0d0C BKpD0h0 BKp vKpBȞȞH-M@P`(-p#apP #nP% s+CvPlu nP v{tP`pKp0~0 BKH00A B`K冠``KǞƞH-M`pPܨ눢@P l 0PV V-{` V VP5 (00 00 $+(;` VX00800| +BPᣢKŞŞ~ŞŞpL-MP@3 P `@ Kp$00 BKpĞQ 6H- M$00C A РĞH-M`pPR@P l 0ZPV! V-$+(;` V Pu&00 00 {` VX0 0800| APKÞÞVÞrÞpL-M  P@~P `@|uKp$00 zAKpž0H-MQ @P 0F`PK0H`P0*0C YAK0(0 /0NAK06ž žH-M`pPᮧZ@P l 0ᶣP!V' V5ғ` V'  0p`P5p)0{0 0 0 l p0` V00h00| @p`jK,0 /0@&bpL-M0`  @ϞP P 0@_P@X00 @Kp00 /0@ᴞKp趿pL-MQ P`FrP @  sPڰPtKpl00C @KpD00 x@KpT htKp޾H-M`pPѦ}@P l 0٢PV V-p` V P* (00 00 l p0` VX00800| @PᘠKҽRnpL-MP@( P `_@ Kp$00 ?Kp趼Q +H- M$00C ? РjH-M`pPG@P l 0OPV! V-l p0` V Ps&00 00 p` VX0&080"0| ?PK袻*FpL-M  P@|P `@qsKp$090 o?Kp莺 O- M`$ @V( pl@P?VpPPm@P l 0ɡP 0P' pV-  0^P2,20 1a0 #?p'ᘟ K10 ?p  0]P  P1 /0<1 0>k@P X V+ X 0P V  0P" Y 0P 0P Y 0Pɜ X 0P@l@P-?~^ =O- MP QP`R T2M0C >K@QAQ Q R  A0$Q*1Q0a/t>KPG ! Y3 PJ   C`DD VD`APV? V# 0P 0pQ 0 S: 0@QPP F Q*0g0`0U0D >K<0[0A >KK誶Ff^"O-MPPQ 30QC =n@YP` l 0bP{ 0 `P `@PBPz CP{Ph0@ QaTB3@ SPp  PB#儖 p@#@}# @x 0 @`IPYU  ` d10Q =`\Q#PQ #M-I#E K00Q _=`00Q!00Qb/00Q!p00QA <=``,00Q!0=꒴ֲNⱞ"±H-M`pP @ppP& pPW pBW WQ  G0R :0p4SpK2pKS2//0H-M@4 kKPU 0 K4 mKK0H- M0 KP Q  Р~0H-MT 'P @DKP >~P K00V0A <@K0`P`PA 0<a K(g S@K0ȯP 讞M-MtPu Ȕ@P  AP` FJPp p }Pi P qPc P (iPZ P  PP P p  PF P GP? Y~P9 P  P/ P 0 *P$ P 0 P XP P  ̹Ph 0 PP00WA ; @K褮ĭ@謞\pL-MP 0@ JPKp ~04< 1岙IGP"Pw,s`#`m#`h/d #`/\!J 3Kp5|Q8 < /Q\ ` //M-M`PP @$PV P@Q: P 42U0!h8 !R*PP 8P% 8\P !PE !R:10A`v@\@hK4 II`VaQ``I4 I8p<7@ p6/P  R 8R0b0/!00D :K`0}0-!8 AP 000.!갩|$@H-P`p'Pk !@Pe P_ PZ PT  PO PI PD P> P9 P3 P. P( P# P P P P P@ o@O-AM(0K( `@QTPP":@@Q;*(pW \`V` t?PV 390!: (pW"&(pT( W k1p!ePL < B @p W<P(pW p(pW !YUPK TD WB@0pW $@ $0K7/P( \  \ $ R 0 H!( (pW" 0>@p>H&P(  0$ KoH;H(pWLLT @Wl P(pWP       R(pP+ `vA( @VTP  P  h PP pP XX(PKP W^bD0Z0h @9(  (pWMQZ>LpL-M0@ PGGᇌP`V VᖍP V#PQ 0 P Q `>P]Q 0 ,PQQ PP 0 P Q  Q 0 QPP+ 0PPTT 0`+ 0V P=GKp M-QP@8Q`R #GP pVᓌpPQV  G, R 2/X 0 P Q  Q 0 V0H-MP@P ( PP Q ZP T 0 FV@K0K00H-P@P (PP 0 @^0L-M!R :L050f/7@K8 <@P =KP/P/P/P////P//0Q0//L-M!R :L00N!7@K\ `@P <K輛P $$/P$/P!/P!/M-Mp` P%ڸ@P#R`/aӏP U @ <`KD00&A [7K`K욞tpL-MP PU @E`( ܋EKp 0H-@PP  P04Q R P0Q R  R P0, R 2/0H2(/(/,/,/0/0///t/t/0H-MP@*P J/P AK0X0}0"& 6K0000"K!6+K08 x/|/H- M$  0 Рۗ4"H- M$  08 Р藗!H- M 0( B РK!H- M 0(  РT!@/D/D R/@@o/@ R,o/ ,@D P/D,/,/,@o/D/L/L0 Q L/ ,  @ D/O-(`,P (0+S6;PLY┐DLP @P,PsP ,P P$X 88`Y @`Y  9/P0d4 P ;%0h0PHp` a  P X P :0aD 5`pp  pGP- XP4 k`P ph`ppPi X ,P ;P^ X( ,P;,@#D D  D 29+0ac/5`C`P pP: Xpp,`P PXp唀QP H  < 80 ( $   X c`pPH 1/P{04`pP4$ 2/P4b01/P d4TP@#PPd4Pj4P b;@#PP d@1/PU04:/P4(`pPF`pP.h P8/ 1/P 04`pP4$ 2/P4901/P d4TP@#PPd4P4*P @#PP d@1/P04:/P4 P?$`  P Pd \  P H  < 4 $ (  QH`@8 Pw PF Pd4c KwP{ P  0P3/  2/Pj hb1/Vd4Q `X \pP IPX p \`8d4$KP6 @a$p[\$ 0,,2/P`` P& P8<P K$ KP8P< 2/P< Pd4 w,0`Q PH P} Py`8`,p> oP 20D 3, ^P n 2R01]0aD 3P D/ W10 Pp`,p5P p44h A @hxd4T@@h pLH  " s0i0aR!@3( ,L@LḵY X 9/KP 0>0 3`p VF^FH@4,  z,$ 0H-@   0PpPPP0, R h 0S R/@P Q Q/ Q//0H-M@@@P] @|lhllllllLxPp P QB Q= QP h!  Q +Q)Q& Q Qr }Qz Qh0 S P  0"!# iQd4/Qd4 P`PD@3 7K0 (41G0 G2PK0Qd4 0 Pڴ!R !Q  R P@xPK0h 2 T 0Q Qr?Q Q0 P0P "@PK0 QꎆL-@Q @LLL`````h``d,@ @@@>h Q @ @xQ, @@@@h0"R  @  @ d4hD#R@@@@xQ @@@\0H-P@P @P P (d4 %P 00HSd4xPT0)@00H-@@ @` P; TpQ[PP+d4@#+PP0hPPd1/P d 2/P d4 ؕP0(PPP0H-M@hXb\R V'  0p㔵PP 0 0bD 1`P.TpP K0 0bD 0 P P0 0bA 0`4 7: @hpXrK&r΀H-M@@ @Pd,dt KHZhPEQ< KKHKH0d4)KH%XQp P5 `a`5!$ C `dKd KHKH1<0 0cD h0P =KO-M@XPP $5 Y0I0PKU P 8PP P P hd 40 0㋴Pd0S0S XD!8`"D"h*` a*@ @ P d4`l P308PPU !U30l`! 5l`Q8Vb PP>Pp6 p@P >P 08P P 2/ p=WPZ p  pPP 2/p0 tP <2/pW"  9BP()08Pu Pd<0 @3/P6( R160i1/0Y " <4b1R0Y 0S0S>0S0S90S0S40S0S/0S0S*0S0S%0S0S 0S0S0S0S0S0S0S0S 0S0S0S0S0S0S0SQ 40Y0YD ~}:}Ȅ&{zy>{L-M@hPQ K<0 0cD .P 㸴KxO-iMh PXd"8 @r# a@Vo PK4 0   6/p Pi8?0D .(@ )pBAh P ZPZaP 40(P `D. DPJ@ P@#iP7 CeP3 0P0P`eP* 0PXePPj P%PPh0Xb\730 L.P@MWA Kl3PN:6K0D :.(@c h`cV 0P PaP  vP  彙n ^bQ5025D0 -(@ `PpzU>P `KQ(ʫVPUGX5S0A -P@ \050 h`cV ȲPP  P YbP `a `2)PI40A -PyhX(`0mh\(`bdre P)PK2 @ `PK뜃i8 ҆  j8͆ pP@PB  d<0 3/PP K ( %X3 0e&3020 9-"08 hy20eD 20eD -y  h9X\tb` uh P9`dXR mh`R K   ( в1 0101 0D ,P1 0D <P? zn )4QPᝅ.㣪P 1 0A 0 0 00w i0 0 ,`y}t0 0qvxfuZvutss~utwsVrp.rnrqrqp"poq~poBp6qtrqO-MPh B4#3#C! t2PW 0h 0Xdp @ 08`ΎPWp@@d4   $EPL @  2P8   m3P2  P0 4P' 0 `P  `P)  d<03/P% 2K0I 0fA x0g 0f P0R 0D0W 0fD + p2K0z 0nm6m&mNmlH-@XQp P0 `a`1!$ C `d@ @ R0 !(48@HP0Xh`//</ / /</ /@/ Q/pL-M@@P@ P' (  R :0R``0 `0BS4*1s0 j+2 ?KpKpL/KpLKpLKpL(KpLKpL4KpLKpLKpL` C00l ^0lPaKpkK-M@P T50q +2 P@ 0P 4 q0+F ܰKP40h `*` @*@ AxP p@`P*L40@!V :(40qK/*/ P30@ Pڴ\ PS8PV < 0P5 P LL7P( V8` < /Q PB h ` @0S3P= 2"0q!P p \R`/PY 20q.  00P P 0w0qs h0G0q )KiiFihhh gee~f^greJebeeedd0H-M @R :0RPP0 P0BS*t0s0 )2 ySK0 C00l .lQK0dK-Mp5PY PPF:@@0 `T:P# P %@""`%0%@%$!((! !Q!\:A@@XPs `Py6P~ P  `P3P0 2po0 :)20o 1)2p`   P20oA ")`P @#@77K)V20o )(p10o `P<7PfTP pdZP' 10o (pPL10o (*p(10o (2p10oA (1p`h-PV FQP`廆Y^`@PPp00o (`L0 0o!(`/pa6bna```^baa__lpL-M@P% P @0`0V R":0@ ``P'ŀP Q&*00 00jI!00j K(2  KpX00jA :(P  _-AaKp^^^Z^^O-,MP$h@` \hro P`T Q:A 0tQ*p>+2P0$P ( p ԭKPWA :>(P7$P0 @W @` ` M!@᱀ f?ͥ@P` PP p$Pt<%@`H phDI P# =2$0m '$Pu H Q:A 0tQ:@AQ: A0TQ : AQ:A0 4Q *T<2$0 q' p$PumpHPF h $IP `he PQ`I p P j@  eUpT:6P$0 %Y p$Pu6gPP0 $P%p0@0 Ph`gZP h $ AQpW!W ᙑP8 52$0f 52$/0i2!%$PupW @U:t  Pd4GYPYPX4P${0mD  0&Pn KP Pt Pq GP| @ 0@PP  WP  h`# PpP.42$0m 32$m0s!Q Q :A 0 Q: Q @ l32$0m @0  K+P pP2P$0 % P 22$0f 2$ p$Puh2P$0 $@%Up$Y/X22$0mB/k1($ 0!1P$0 $@p`P1P$0*p P`W 8+P4  `M+P" h+P h+P +P   0YP+UK+0P$ 0m 0P$0mA 03$0m{ z] ]~\Y\UzRS>[VrUrTQ~Q6QPPYXXNWWWFTYR RfPPNOvO&OZ\O- MP`0P P p@@pP *2 440i 40iA !$p@|72K@&| T㠐:'`|Pq  #)@ @T h P ":d4>6PM:p@ 0WDP P %@""0%p%($!Q!|:A@@ {Pz pP<1P Ph ,"`1hp@,Q: 0Ap $S*2 o10c2 g1s0[10_pp0C0h0ptrh0xrrh0|rrh0rrh0rrh0rrh0rrh0r<P 6P}P 60%0.2 .0r0iZ/&2 "0902 0B0i 2 h0I0i L0M0iA %#DMNMjMKJJK~JVJ&JJK,0H-M@P 2 10 #2h  FPP dpt!R%hPP P ( 㷨( 00i!"P 㦨PK0x2/P pP 㕨\00A "q ㈨$0 0R/"vIHHBHO- M@P?:`0@S  7: @0P.PX: p8P   pPU ppl' F{' zP Q*$101s0n S"2 (PK00nA A" :f'Ap`܀N< 80:*PT00n ""400nA "P F"GvFFEE@ R/0H-MP@Q P P Q R 2/pP P  R RQU ᯮ  0K PP uU t0S K 3/PuPPK0PUP Q U42 0Zj ! xP PPPP UUP  R RLh Q ) ]PK0PRbPP N(PK0PK0P >K0 d 4   h0A4#3#C!2!tQe @P  0<PU d 4   h0A4#3#C!2!tQ @P  0<PDH-M@hPp `YQ PPH1 0.B!nLrQQ#A!!P'2 h`P.04 0D P 0 0}!0 0 d0% 0 H0- 0 ( 㔦PK~A@@@n@@LJH-M`@PqW l 0 @P Kt0S  KH/KP/0H-@P A'4Pf ,PNy0g Jyh 0HEy?O-MP@P laV*`K`KUdPl`$ P) pP Q HHVJI p`P HH@PI`Pp U dQ Z Q A`dl,  0㉂l!R P  0~Pl P@``L!V`V`U% V: F,0Xd 10&!  $!"$ $! )! (! .!  ,!"$ ,! 2! 0!"$ 0 X0d jp&VUlQXZd   R, F PD `PI d@l `d  A,0Py8Y\ ~+ 0PX XPX `Pb! ! &!   "$         "$   =P`K`KppW Xd t0 7/``dK`K`K`K`K`K`K`K`K0B/,  p:;::S:O-M-M Pl P ZC 及W⏊S 及# `ClSZ(W J@l` R*FV P  @i%,f w0g wh w l*P/Q-0@Q]@P1 pP ?>%,f I@w0g wh w  |@(`2@(2 (P,x `@(P: R X 0, #P ?%,f xpOw0g Kwh Gw (C(\ `08p7/@P\P T0@gp`fb 及`t`$ϊ`h@ajp@ik Ɋtp dc0@e``0 ḓ4$@pUWlCYW $W: QXP`P (0,`P!  @(`CP:Mabc ppW `0t P7/W  X8` 06/@PT`p(@@T Wr86/ /`0(,(`(P,9X` "X@Dh`@\B ((,(r,h5!0/` ($ ,@Q (0, ,D@,( zrg \< @ @K9`K:KlC/YZ$ P G/o"R PO:XQL $W_<L P$Q@4? uP p$PV D ` uP ,000 `*b J`*@ @J@8@@4/P@@TAP(,6r `30 ` (P:`W   Wp0 8` #6/@PEpW@0, @,( ,00 `J`*b*@ @J@@KP @ l @PCP  >V#,f ,b`u0g uh  F u C(, P:T(`PY h X p!Pp`V  t0$ 6/@A`PAL$$4@0U! T!` `` 0 @ P @ pQP$  KP p`V  t006/ P B B AClX` \`0KЍ,"(4978C2C4320.040H-MX@ !BϠ@l0 P`@ U "l` l ` 0J_d0 $1 A,101P K0(00sD @K0-M-MPdPt``p4? WtPh @W D KtPW ,0X`  !lV$ p`0 Rp R l$h༥` 0SIJ/ 0  0` $ f00  P lKP <&"Pf ,Prt0g nth PF etK@$<n0$,h-{-+--7,,+&-+0H-MQ x00SD f@K0@PP P K0H90|K0o+a/H-M@lPP p ` `p PPKPKO-M@P!@@`lwPI p`X0 S, p 1 l ` J/0pp#~$ 1,A0 Ā  $yPr `Āyl  0A K}@K(0Q0D @K(M-P4? sP* @`Up D spP X,p |P s`P 0`HF /hQ K$0x0D @K !0H-M@d 4P <10(P  Q P QhQ+ P/ Pd4 | PlCK000kg / ӝPK0P00k  ,00kD P 0H-Mh @P RUa ὡP$ 410[ 3 10[  00[o 2 そ[K0P AUh ahRK0AUh ah=SK04 0l$ f X  ` d/0H-MP d8ᵥ@P  d8 BX !     d<03/P d8@K0$0 0D 0K0L-@d4X夙X0`Q PH HHd4 xP=1S xPX  X  P  <  < d41S0S   3/d4 lC !;O-M@X`P t0@7/`P0 8p`B7/PAQC``PQPQ QQpp``W #nh ᥄P ᦄhX\`Kh0 X\`KKQ P`P 0^0g x00 I KP h X` \KP0K-MPh! Q`K``@V\p0 8@@4/P5``FV`XP  ph0dQ$ (pa? p7/hP3 #XP`  P1 ppW X`t 0" 9 P( ppW X` t`0 a7/`qK0x0D p00 h00_D D00_ P vKH- Q@P qIfP tP Q@EP.//./H- M 0 РM-P@P @P+ TpP `P Q P 1/Pd4P P PW@o᠂ pL-MP4`@QV  0ᝥP 8QV, 1  ))Kpd4cVcKpd4 V Q  V/cR Q VoVKp菒QKppL-@P`P' rVPQ`rPVtPQ `P 0/}P  Q`pAoRpttQ ?0@\ \0 S //>0AS*/ Q//M-@DaQ / @Q3(P+ P& p V 0d040V  PX R V2/PP  pPQ cV d4 V! Q  VoVLpL-P@P @P Rt R R R P pQ 1/`P pPp落O-M`P @P-Q) P@Q 1/pP @ P @ PT@ PZKKKȼK-@hQP4P @P.忀Q%忀Q PpQ 1/`MP p P p PWp PYD脻ܻ0H-M@@$Pn 4hH4QD=hQL0P  P9P ( d1u0 MQ' P PP QhDP CQ Q  Q P Q@PK0Qd4 P`P尼@s sK0t 㔘,00 PK0D  0H-@@$P-P,P0tL@P0P0d4 lPu @P0xPC P !@P0#@P0P "@P0h  @P0xP!P#@P0$@P0xP 0P@P0H P h"T- H-   R)4 h!R/P+ !"P$ @P0 @P0@P0  QP !P@P0pL-P@@@"P_ ttttttttttttttttttttttttttttDtpLt(d4/ p`(`d4$ T`pd4 Tphd1/P d4 Tp @pL-@@@`PFdHHIQBQ%P !"d 2/P d4 u&Q  P P @H-M@@P@PPHT4DTTTTTTT` d<03/PPx3G0ux0S Xl,`3/P lq W:2o0.xKHPi SPPK\2 0bKHKH| Pd<03/P[ hPLP0P+XKHQ!XdP80P< Xd!d08  ! d<03/PP Kd4 KHd$( KHKH0 0vD PPK0;0wD BKw Pp`wP@0P ` P`d`KdDH-M@x0S Xl,`3/P lq W :0o0.Kw Pp#wP@0P `p `d`KPL-M@ d<03/Q K,0G0uD K|M-M@X0!d 8 ph *a b*A A R 88P!U ! x R 8P!U ,1 0^D JPK"` P<h`PP."P)0P  @d<03/PP K`0b0^!cK 3 0(00c0|L-M@SP Q K<0 000 0vD 2K O-TM`p ` $` @P @8h@PX$pp P Gr $P 3`:f0yA PP ֔`0H1 @$p  @(@(0 AY Pe z(/Q!!(0( 0 `QTPQ uz(/Q.!`( CY $P Q K-@`@TPU۬90yD P %Y P# Gz(0/Q.0Q!`( P 3z(0/Q.0Q!`( h D  r $ KP @i? d4 d8ZP ZXPd8@S P" tP>88A0$810y ?P @5 PZ 70yD /P @$p$(P@U0S $+3/᠍PP@<70yD P PP p@$ *@( Q@0(p@QG Y P(P ((0P@(0 APPP ((}(Q!( (PQ P0 ((@}(Q!(  Ppp @ |x'of  @$pQ= $ RQ d4 f&P $  PP6h P/h P( P"0( KBP( ((d`4 `d<0  3/PN K 40y : 740y ? 30y  ?@ >$ @0P ᦝP' hPL ,30yD P @ p@8' eK30yD P( 20y! P( @ pP2 @$pXPT @hP^ KnAPo P` HƑhPE a@PU P@8 0@E  tP$p0$pP Q"RIt10yf!Th10yD 10y P( @$p00y;!700y 00y h PP 00yD ] P,h0n0y  BT 8@VDxP`8Pp$0O-$MXdP8` G@ P Pd4p Pt20|0   =  Pp P PĘ@Pp; 3P7p@ @.@cPQ `d8׎PQ Xd8 )    c@@TEp W P X0d8 $  @  d<0 3/P hLK0 0]D 00]e/  ?KP00]  ,00]e/u  lt80H-MP @d<03/P h@LP?P K0,0;0wD K K0hO-LM@ἁP}P ` P(+cPe Pd,pRWY 4 0kA KK P KWP@ $K p$P P6 p8HP. P+ K P ?`4pV$ Xd8⒍P Xd8 paV ( 06/P 35 pT,c, Q}PKm`P4(  2Pp> .0P 60 @PP  ` @x ` Q0 0 xQ 0  0 x `Q0 0 !xQ 0 0   a` A(( K0  -P (( K   /P (   @ QP , K QPz + DQX, d 08 B /( ! ([A (  d<03/P: .bPK             X d 80<` @6/P' @ ,b0+ PPKp l0H-@!XdP8|P Xd!d08  ! d<03/Q0n0@ @ R 0D@!@<<<<<<4DLdT\<// / //@//@  B R0!4888888@DHTLP/:O-4M@#Pw`P P  @0p0W Ri=0=0}D P*x=0} }0$D! D 0B d040 P ?0@R 0 Qc/ S?Q<0} PFpPOPDJV+ P:p@Q00: @R00 J4<0} * @0Q;0(R#D P:h `*` @*@ 0Q  ! A R+*;!0} P2p ᛎ<; 0} PkK 4@!S::0!0Bp!Qp  $0 ::'0P:@Q :pA $W 0 $ :W00B T:0d4pP1:@ 0P*:P$  @P : @$ 0P @ P*9.0 @ QZ P*l9?0qhP R0 # C @h@]  p$d4( )  |0S  3/P lP@PP 8 ^}0DPFp5PVxP P: hVPX@S'  J%pᐊ`P* 8 0 2pP P. $ KPp PPx|7 0 /pP= PVE H,`hPpPP 0TH SR QQ: hT" T"A0q6PlZ |Pp 6V0t6O0}M/{P(pX6 0A pPpPhp^/P,@`P1T & PPw T X*PipV` JJ/ I o P#VP PP Ph@P ᧥P PWP `F P*+I ? P VP P@PP |P }PUPh@ `F P*P 84' 0D Pp,P_hPTP xP p P ` P `V30} P Q P:T30} 3 0A  P Pn h 0 PpPxP5 P2ڴaV/ 0 06/P x嘀PP  Pc E >PhHP 1G0}U/@x1 0u!7Vp\d1 0Y!-(pRxP `K$10} ```UP P0_0} J0Z0}D P400} v(X,dx0@0ޝ@ޝ(ߝߝݝޝ۝7۝۝۝؝ٝڝ؝<ٝ0؝P؝ڝ۝؝O- M`!P P:@P0 pP@P:P# @39 0_ 2p31 0_A Pp`  s MPc KT. T%@D"% %!!p!T!: PPwcP9 `PP< @DP<2S 0_A fPp2B 0_ P* *P0 P9 `0PQ1 0_ A(px1I 0_ \1O 0_ /2p P01^ 0_ 1ps _0 v0w 0_ P 0e 0_ (pahP `P b ! T `P㔠LPpC֝՝֝՝ԝ՝ԝHԝԝtԝ@՝T]ZO-CMhP @rj Q:A 0dQ *;0 2ppVA:;%0 P !dw] f?㓂P  q< 7/ P;90 :*0 :0`P* hE(`弊I]p F8Ꮒh`]h`Q6 dbA! 7Pf `  P/P4:0x QP? 9 0~ Pq Q_: Ap0`pdQUX V 5PPr *5Pm 7 irY`Vd9* 0D p  0トPP"8$ 0~D Pp8i0 (p  ἉhB:`d( C]hP`R Kp8 0 P(p7wZ Qk pA`pP:P 8\ 0g P2p7w([P? P0pPe  0P\:Pf470 3pPQ :A 0 Q:@ Q  6t0 #709 ~ r|60A `6M 0g7!~6A0 DspZP: @0pR*$6 0[!s5 05K0A . 30@1@ "SA B &:_.@ {@` Jd`V5j4JaAxv`zt@(&*r$b(R&BP(S@$@"@`,@{  L0 R0C 0@D1 `.CD&@DC$/@Ys00#0C ? N @$& B@$p @?00`I0Vp U1s:  e {;@j`aF` @ Ijb IaF `@fjb!F @ e@` Bc3# 0 J3 0 ;4PP2 3P- 7P  ׇPeH3m 0g B00 pPa sp9nPy 2 0s!`/pv2a 0g VpJ6wil V@U @ F@0p 0 0ȆP ([PK10D /Pp([w?B  P  qP h6h 6PK1 0 !X1f 0g 0$11 0D Pp5w )QPZ)P $PP0 0D 0 0A ӝҝ@ҝН(ҝXҝL͝ѝ̝$ѝНϝPѝ͝Ν͝@Νȝȝ ɝlϝ̝ʝʝPН ȝl͝Νɝ0ȝʝ̝Tȝɝǝdǝǝϝ͝O-M@P `-PP p:S%3 0{ /2 0{A yP  M 'hP@aKd4 PhtP PPP : @0 p P2P1 0{ @ 0d'2VQ ڈ1 0{ !2Q Q*T1 0 A P 0h cP2@ P"  4P  P0 R P#  06@Puʘ0 0{{ 3ch0 0{ Z@0 0{D Q$0 0 ƝHƝŝĝĝhÝÝLÝÝpL-M@P `@PP : P 0 BR: R 0 0 OKp`^/kYU @ 1 ~P QKp㿝@ R R/0H-M@(Q^ QexP hJCPEP{ R 2/P p*P ݂P h,"R 2/1P}0zy!Ld10z DK0P  PP( ph PK0P "p#P sP 00 st00z P00z  㰅K0K0ȿ违L-M@PP 㦷Q KP hP ,0r 0D YKԾpL-P` @@pQ/ 00 S:/M-MQPP`V& Pp PAUT pPW:U `@nK`V   06/K2KO-MQPЀ 0؀ P QP `= 0  4/oPQ Q2 @P@Q~  P@T  5Pl @T  04/p @T`V:Ip `@T  0  4/oPQ Q' 0 @P,@Q(  P@T  P `V  06/Z:PKKx 빺pL-\0S  @P`QV PU:  R:Q@@  R:ppL-`@Q P8 a0 |P p@p"  )W޹\ 0 R 0 S:P/O-M@P`Q P=`UT80S  pW  Q:  0KO'R c0 0VP Pa  A BP @K¸M-`p@RX/#W<! W 'Q 0S  PU  Q: tWW R c0 0*VP PPQe 0 P EP Ap` 0 ڶ#Q' /t#Q/Q / /L-@tyP 1/L-@k ULwyoL-@yP R/R Q   /h(  P/ 0S/@pL-MR` R Kp  8  Rh ,P S@" R +P S@R R R8!S  S S !  !R 1-`V   `P@U0@0T `V:`Kp`UD`qQd !@ 0  Kp000RD Kp蜂l0O- MP q h+ @ `PbPaK`K,   r(pR! R! R$P- p 6PP$ `B@P8 P< P= AT  P Pp qW .  qPp@`VN `UH10RD `K`U6T@`U.  0S  PS Z# `Y: @r R @ @  0 bPY: @ R:z`K`@QP `K8@@`U가 XL| | ~O-MP`!@SP0 pTP 0 QQ \PP Q!R0:P!GTp`K !-*#QQ tQ fQR+#Q #Q QH  P(-fP/,P( pP$ W@ R @R&P (PP d30Mr!K 5 K TP 0P 8 PP PP 2020Mz!PS S S PP RP R0 pW  0p@S@T pW:W @S- 150SCQ X`hp@vP S S S %P "p! 0!@`P hpK0:0M.?t0 07 L ,0!0M_/,tq#;q*P)  0P8  P=* JR8:    0P8 @@D PIP   Kp@@ T: K>0D w K\P9 T*PJ P * K K>0   "40    "40   % P\c@@P. YP@P:P=?00 T*JP* K K !$  P1@@W Q Q U: 0. sKpy yJ낝Pxx(}}}x~D~K|TywvhX//0H-@hP|d4 tx0pL-M@*\ Fhthxh|hhhhh`hP 9P PP KpP㷀|d4 tx㫀Kpd0 0OA P @0 0O^/( rPKput{tO-Mp`hP-@ E0 `RpPP PQ @)@0pxW W W Q @ t R Q Q 4 h0`,qhulp` Y Z pp@@P  P  P0 0R  Q:@P T:  @P T: pP D-DP @pP @ P  P0 0R  Q:p` W:U  0Pp` W:Pp` W:0 P` P  pAwQw `tQ PU:J QAQ( |PX`hiQQ Q Q 4|0tPU:p P@P@ @ T:@@@ P|P xP P Kt|xPoxmtPhK@KtdAA@#r>pL-MPd`@pa PtP/ ` `aVhP3SKpT  6/P xP3hr.H``*D  !7qihPH" D#LKpIP t!x2/P PP PKpPKp+nO-,M@ PRhp`c)DsqHChHsqP8*,@K xhQ  !op$Q Q Q R 009P1S2P1S-8h+CK@ 0PE P pW=*W8(v 0AR!,!$3/l`h+vCV V V$ hp8 0/!K7( 0Ah y^ 0GPP P:GP  P:($  @0TqW X 07/X $  Px PpWl#X/pppp ppppp@pppppppppppppppppppppZd\P^tXhPqWe (Q $0A Q):A0R(0$0!ZSdpP (P $@p(JP$xP )TPB)'BP/ p(Q:$ $($A(pW@hXQ ( R:$PB 0p(P$ $UR p B( R$H* TPkB*AhPH (Q:$ $($A(hLspWhP tP )FBt Z㰠) X )APt  pWX d4 $ P X- X;.h@Q PpWgqW 1  7/P -@  0yZP hxPpW< 0xP4   07/P^)QPA)HAPP   hDpWf $ nK`KpW 2 nKPxP P\P Q]*fPp0S P:P0R 0F nPmhfgfd/gckjCckWk#lO-|M-Pp@@`  0xTh 唡;: Q8@DT8:(``0p, @DTT,: pP #Q S%U 0Q  `TQ@Dh `T0 `1T@D` U*Pq( /P$ Q P> 0 0p\< $   H P$P.,Z0z Zy ZS01THu p p J,PA?P/ $ K 0Pk P'$( K P-($$ $  K OnP $,J$ 8 C@U $P8P ᚫ,  ,1@,0T#  ,$@,,P < i8P P,Z001TS K K K/_C^^^pL-R @PQ *.ARdl`p)#Q #Q #Q;`Q @Q5` ``````*#QQ tQ fQ+#Q #Q Q((  p)<*M-MP`P@P2pl@HPhpP P P p ppppppT@@hPh lB `oZpL-hP`hBT QlRUP UP 0hPlppL-PPQ  ;UY \R  pPppUL @T D^ `Al@HPXT T T ``P  PP P P P P P     !Q Up&`&L-@^ @TSB@RB0@@SB @@RB0 @@S  K-M`0@P`0: p`pmP U`  0`KTM-MpPV PQS@PN ` p+pHPC `ppQ=  P  P  P mkPP kPtPf_<P (P P MkPkUpXKPUpX tPUpX f_UpX Q 1pW0S  R: p QKpKMVMMVMO-MP}@@.pA=Pr `Tpc 2*#0p^ *^NUQ`hp)^ ^ ^^ @^PpW W tW fW4pz0+W W W(pz$pz  pzpzpz qPpp:P .H=`P@KP.==PK.6=`P@KsT"!RsRO-$MȠP u u* @, @,LA&Q`R0  p 0@o~h PpP)8P`$ @` P0 @ p hR) QP` @`8P`  o` kWE PP p P"UP @PhhPi BQ 0 rP 0S:p@PVUP@V0  V P" @pP$ U= 倐P@P lPT PU P@V pP%P hPA fPO tPRQ=h/" R;J pPQ P$ $0 1 pWppS  R:VR t$ q%BPPqV  P@Q R0pP 0S@Q  h `,R\lP  RP@pO P pCW@ `:Pp`7h p/P  - P !ZppW `Vhop@PV `eYPpPp@ PU PPU PW AP!PUP@wAQ  0  rP 0S:PUV o@PQB@ x `  p  ` o@o~ PyPhtPV  KV KVPQ{ Q Qw HM-MP P% p `fPFxP pP J@ R @R``P+ P`K`K`K`K T 0`PP Up`KPP P R R 0bP Q:`Q UP  hL-M@ 0P 0I 0B 0; 04 0- 0&KH- M РH- Q) h  4p P hJpP@P) `MPP OP WLpPpWHNH)c9M]LpP  0P @O%M#MO- M`pS@p@P  P  V 0@qP*KPm P  V 0@qPK V 0@qP  V 0@zqP % ?P 9PK kPP0V  @Hq  @SqPKdP Q M-M@P`pR p0qPW 0aPpWKKH-M`@PR RJ 0SF 0 Bp4R@: BPRpU=:L#8P( @R:0tqp410S 0 Bp4R : BQ:R 0000UD *0 0UA !@p|/8KX0 0pU:p!Q P:3BoAAAPKA R3/0H-M@PQ hP h?"hK0$00*O!K0@pL-MP`U 0PE U! *020K./KpPE@0hPRP T0B0@0:0KQ!(Kp@Kp*@??pL-M@PQ h`=Ph"h2=#h=Kp$0T0+O!gKp>K-Mh@`"=S RO US 0S 0CpS QPP $101|000-.3/00-Q!)(pKp oP 00-Q!/Kp@sK<v 8h,w (h">>=2>=e=:=="=P/pL-P`@P 7 7JJJPJJJJJP0D @ D E Fp=P/pL-P`@P) 7 * 7JJJP JJJJJP0D @ D E Fp<H-MP@aPVKP{ @ @ @a ` G$P KPJ P KPC P {KP< P tKP 5 P mKP. P fKP' P _KP P XKP P @b #\P< P g \P 6 @(K0^09 %`o `6 p 6JJJ JJJ J JP @ @0 G GK40c0,0h09D :k::9:9P/Pm Ai Ae Aa A/pL-0M@s`1S !3/PP PPPP PPKp 01P P0 L047"2K oPKpK-MP~P pJJ@aI``]I` 0 QKKpL-P`@Q P KPiIsJV P KPYIcJ`U P JPHIRJ PV P JP U P   6 [P  3JUP PPpIUQp66K-M`LP' " P! P2"  NP pHx/A/E5P @/L 0`apPpHH K5O- M@ P7 " P1 !R0 2/P+ ` P: p" 20DP1 PDH/*!4P  K  0appP`UHSHV 4 21 5 GHKpPW430H-@PLp Lp +HP /0G$P!R 2/QQ0G0H-0M@ 0㭗P" P0J05"PK0K0P/P/P/ P/0O [0Q [ P0[ L^0N [ K^ M]L- 0L,TT`TM-M @\ P^ @ PP L $%P3PQ R4KpP(P&^": NR*@P0 P`p`Vp?(2*2*`(R``,` N@PXP@Q R T  `L BPpx00'00@T#T KK-MR `@PRI Q1 Q@FY*p 1 0 UpKPpP 0 R0?(2*2*`( Y``,`{  0FP0SpWH  pP 1 0 'pK PV0 TpW )P) p P 0& P TpKX09 0A T P (pK PVm/-.K-MS Q SP ^ b Kh1 0 KQ% @Q0@CT*PPPp``V?(2*2*`(T``,`[ @C `@TPU @^0 0 @CP Q  |pcPD B@0pRv@p'00@P#4K5-M,H-MPP@p`TV(PL @ 0pf 0 s P,i/2P# p R R P B c! 3pU@KA D0 0U P  (@KA+** H-MQ P<S0 S:H1 0  1B 0C 1F 0 K⠈Q  pS Pt"|0S$\W K⠈W r0 K⠈l0 0'  K⠈$0  0 ))*()H- MS   "$,#A#4^  r0  "$,#A#4^   b8 Р0H-MQ  <S  R":0 0 0e 0C 0i 0 p0m 0 TK0Q @PR 0T$\ RD@K0''i''H- M  L .##4QL РH- M Q /0 !"0C"$^ 0 q?  "$,#A#4^   b РH- MP   P ! Р Р Р H-MP`Q @ KP F@P; KP DPeDP/qp3 jP DP pK0w 0A T &@KGK,0 0: @T$E$0H-MP P FP @ IK0H0 0 ,0 0i ]@K0## FH- M S   "$,#A#4^  r0  "$,#A#4^   b РH- M Q /0 !"0C"$^ 0 q?  "$,#A#4^   b РL-MP @ P P P @@K@K 0H-MP P ,FP @ IK0H0 0 ,0 0i @K0! K-MS `SP  `VPKX1 0 4P% pP4CX*PPPp`@`V@?(2*2*`(X``,`[ p `C@`VPU! p'pP 0 0 ZPKp`SP V:<0g 0e HKp`SPY 9H- M@ A@$$,#T#4UQ t R 0 ^ t`0 V9 7 a0R2: R*0! 0P0Q7 *oob !0@P 0P `pPUp?(2*2*`(R``,`;  P`Bp` p0S0 BP0Q  @`pRsPp'pp@'dKH-MP@`P P  U@tKP p! /pP 0 W ppK,0" 0A @KO-M-HMS `Ps00ApP S5M 0d @ 5H 0dz dpaB@0KЍp@VBO P(C0 p@Px.Q Q( @@$ Q`P X.X, 0Hz P*T AY :WPBpP  _D@PT  @XP  WP @0@F R ,pP(P T A1P(Y*T8 W,pP AIIP@ᠯZ$0CP@  .  5. P$ ,p @ P:@P1Wpo ,p @Z $ @ @Q PU PzT rZ P ,@VT7 /r  Q * 0P0 I0 B R* PP0N@D  c R`` AZ,pP  BT D@  @V0R h ..,p,p0PE$0P@(1V@0 d ?0P20c 0d 2$0P%0@0 dk $,p0Pp0w 0d ,p$0P,pp$0P , - EM0[K-PMQP`P )6@K P 0q[@PP  7-P  0pa[ 6W  -KT  5K@K8 5 @T+@K/,Q0H-MP@ K 0 f   t P  KP K0 0 0~K09O-MQ< `R9pPW5 Pp0@p @`@3YP ^XpZ pKPT! PP@TZpW"Q!,P pX10  0pK,10$1S 0{A  Y Q@1! @,2!i,P   ) `ZpKX0G 0A Z P  pK 5u0H-P$ @ Pb!P,c!, DZ/, 0m!0H,0q1H- MLQ!,P Р(0S 0{A РH- M  f] Р S H- M$0 0 Р +O-MS hDP@ :/P% PU:`@ P $@$@p`l@$@pKpK$@@#  0 !PP8 @@(4< PH<D Q !@HPu $U P :/P pP$ :/P @`|V P  :/P| PU:`p P#H#e!@ W8Q4QQ,pP@LpP 0@FY@Q qQpVp /Wp` :/pP9 P Y@I4T P0 :/P( PUP,@ P,4 0 :/P 0,p`p@P(  P  0gP D p UWKpKpKpKpKgЖQ~b&  eX)dP/L-@x3@opL-MP@S ` 00Kp8P  `)*@2KpKpTP/L-0@@o0O-$M``@P@ p`  8/pP   8/P ` 9EPБq,, q*  8/PO  'Z  @T pKlRP KK 8/P6 @T P0p(+P+@, ! )P p Z PO @!!T*tppKpK@P@ 00  zpP!`Q`Z Q   8/P  0 aP P   8/PpKpKpK`P@ P KKK 8/P Y@ };a9q[0L-M@Q 0S #B<L    :0:PK<O-$M`Z0 Z  3 0 QQ  Z`L@PU   P Xp U@pXp P 0 P@U }P`p  0wPo@Z`Ug@KPY ppXp@Z Z ZT  ` PF`F` `Y @`X`P   04`P,P@Y&  P@p` 0P`PV`@Y,0 0 @KH-MP@0P :t!p  #* ` > S :D!p  *` 10s0S:a ! 4/P2  4/`a$ p  )` R` 4/P`K\S 4` `KK众00P  /@0 L-8M@  KNP  2@cP 0K<0( 0 vK 0㵜KH-8M` K@PNP p  NP 2@cP 0jK<0( 0 DK 0ნKQ Q/S(M-p@PP P;FP7 T`Vr`P% P P T P`PP P P5Q:d `T P C, .M LMT0H-M@PPP P P P T 'P PK0PK0H-`M`@PR P! pP50KpP .p0MPpP# V P! P2P0pP`KMPP 0 0eNpKP R R H-  /xH- @RGP UDP 00Bs0o S<00pCwp W7! !>BcS2.B/0bR40   00Bs0 S'00pCwp W"! 20B S.B1 B  00Bs0 S00pCwp W! 20BS .B0 B  00Bs0 S00pCwp W! !>BS.B0 B  00Bs0 S 00pCwp W! !>B;S.B0 B +R-R ZR `  +R-R[ ZR`FoB S00pCwp W! !.BcR 00Bs0 S00pCwp W! 2 B R 00Bs0 S00pCwp W! 2 BR 00Bs0 S00pCwp W! !.BR 00Bs0 S 00pCwp W! !.B;R `+R -RZRl +R-R-R0 0RspP`0 F> r Rk0 Ar Re!!nA V`0Lq Q[0 Ar RV !!A;QQ.ab`Qv @LPpC00Bs0 S? 00pCwp W:! !>B;S5 U3.B `0 BTr P,0 Ar R&!!A Q!0 Ar R0 @r R!@;P`<00Bs0 S 00pCwp W! !.B;R ` UH-M@`$p `PP T  P PK 0M-HM`p@P  PM @KLPB P  LP9 2@cQ5`VQ %P! ` %`d0EPQ pP" c A&K<0 0A X @KOL-hM 8  @P K KP  80]LP @PKP@K@KO-$M RB0@0pDwp W;0pLwp W6P0pEwp W1`0pFwp W,0pNwp W'0pHwp W"0pIwp W0pJwp Wp p0pGwp W pp0pGwp W ApBBWARO@d2`D V  G-@K0S R0 0@10@!>C 0 10!C10!>C P0pBwp Wp 0pAwp W!p!AdddP` P !`ZV `lwPp `@ pP"P@K(<@wpL-Q0 0pp PQ0S ?0Q* PQPU0PU p?0 Q* PQPUP@T0@T ??0Q* P!QPU@PUPU0PU  ???0Q*P UQPU@T|@PUxP`Vt0`Vp  ? ???0Q_*`P Q0/R P0 //R0S0Q0qPo 0"#  /"S0Q0`P^ 030"330" 0/0 S0Q0IPG 030"630"91"00/r0Q00P. 030"9>30"<1"0"0/0Q0P 030"<~30"?0"0""0/ P /H-  ܗP/ P(/H-  @ O-|M쐟 `蠟P @ @ @`P jP pW    00RP pWpX P pKKT(O-Mpr WBW  GP ` @#T`KP =` p$ 㐐@@ P Ua h D,`  p P P @DU`KdL-xM@P` BP @@ @0 @ @ B @P/P P `00 K8P $K褔,@/pL-`Pp !P @`PQ p ՜՜p՜D՜ӜӜԜԜԜ4לp؜ڜ_KH- M  K0 Р !Q P/ /ќzpL-M@ P ` '$PKp %P  @U      `0x QKp P\U,``$aќќhќEќEќiќϜyM-Mp@QP`U>PPP1 0 pK϶P `0S  3/P p0) 0 $P  P pW OTpKL0< 0 IT P 9pKkМϜ_ϜM-MP`@jtpP$ efP `pP p`4V K@T Xp@K` 0TpK(0m 0 K4P͜OM-MPQ@p`T@P% DP fP( tP0 P9 P-81,0<$1$ 0 U9 P670 0 @K l{P 0=0 dP U@Kx0C 0 U D050  Ur@K͜L͜d͜l̜̜̜00eu  xu hua XupL-P`@R0P 0 YP PQ  pPpH-pP`@PV  T /H- M P РP P H- H/Q/ᬕpL-0M`P```P0@ 00@@@@@(P@Kp KppL-M @0P`0` `PKps KpO-DM @P$  TPp XR : 0x j0Sm0pp 1 ` T v$ '0K`$ K(0&0K,pd  KPpg Pi\9!00@0S v^ 9 0x +`X,p 0  08/P P 0p 7P PA   *p `@ 00 7/ K$0Kp $ *0 % K,K` @P %[P V7 0x  KT0p&@['[P P F PX X 0  08/P 0p@ PP`  P @  `PVPP  xP @ n R* $0`RPP- $00@X$K,p P $$ B T (`PXX` @ 0 J50 x: P  pq K0p  P $ P@ (``$K 0,QpG PPaePU ,P00 s p  p @ K(`&[ Q P$ R R \4_ 0x (@$E '[P4- 0x u PUD@ `$K 0,p P (`U. 6 h3 0x: T D 830 K208V2 0x (`P UQ v K  @ X 0  08/Pq $ KT2B 0x 220 x: (`&[ QZ$ Q &[$ Q\ (`&KA Q P 1 0x X  #  PX  P, @1 0xy el$@ 0 D pP W 0  07/P @ K0 0xd E0p < K@0U 0x ɜȜ%Ŝ=ǜ1œUœȜ]ÜmÜUտœœœO-,MP] @`P 0$0 0hpK$0"p 0#0 K pp7 WL1 0: +"P! $p0$<P" $ # 0J  R% QQQ( 0y 0 0 0x 㼽pKp0w 0: 㰽KQ @0 0w $pKeMѽO-\MP@( pP7pK B RP` Pu0P 9Y8 0l N8 0l} nKV t8 0l~ 9P$p<<p0K K 0ppP [$PP0P 0P y P 50K$< < 0460K A4Kpp W 7 0l: &pK0@Q *5[ 0$PP@7 0l 0p$P]X6p[`Wg 4@TJ<T PPXq H@T8,K(K K$0K, @fp,(P 0Q W]h L6f 0׼ 0Q I,IP(P 0QA X I@THI@TX5 5 0 㰼V5[Q Pf$ 5 0l v4< A< 05 0l: ㏼K4<`<50l <@$P ` 0pP`V`p"`V P 0`P   0@ GP7K  06/P @GP<xPtx K  P W L30 : 4 60[<7K(ppWP ((>P , 0$P,`xXbH K  TP qXf )2 0  K  _P ]w 6L2 0 k>PU p7[PR e /PR P 7[P q#7K .   WP &1w 0A 㘻4 1@1 0j * [ 1 0 ! WV<p7[PL0 0lA j7[P@0g 0A ^ Qp7[P. d",(KyEYŸ 9i9崜鵜9q!O-$M p `@Z P! / 0 ^ 0 PTQ2 R R) QU K 0 `yP`* ` B#0 . `Q 1U 0h KZ 0 C  \R TVP K ` l0] 0hf 㷺Z KZh i 0 0঺KUQO-4M`V pP( @ $` $`K 000qp(p @p P2r0o0(p@ 0'0 K 'p P20YpW^ P @U PPP R#(p@(R PPd @0 @ _PA ( H  P? R'PQ 1& 0 Kp(p @9p> P941i0 : KLP1; 0A K0S 0: 0Z 0A ׹ K'(Q 'A (K(0G 0 㺹K=qiO-4MpP PR pT U  PR`@U PP $( K$0K$@P,$p(-]h L3f 0} RQY@ P @ g<P    p p@P@U{$pA(   pR gK( KU PP $$0K@  $pP?$p( A]h 1f 0& P:  @p0hPd p P@U/R P @;P9  & ( Kp pP@U$  B( p ` pP 0 0j: ,P pK0  0j 0 0j p0 0A pp pP(0 0j 㱸KQ=ݩ;K-M`@Q  PP `  ` 0$pK  0`pPH? P   0`pK0O-M@Q R Ppp`Q `    8P$ R  0 `KW   0`7/P P9 P6A  0`Kp 07/`K  0\  0 pn P`O `KW`G   0`7/Kz`Q` p  07/P- P,pP`  dPa Z 0gp ! BP PpU  0`K X; p=  0 P`p  $P P  0' pWP pW   0`7/P`K`K`K`K`KO-K0R SQ 00KSH- M  РO-MP `Q R PYQ~ 4  PnY   09/Pe  P@p@  UP P KY @pGTY   09/X@s 2Q KO?  KOdY   09/P% ]P PQ  Y   09/X HK D KP RK KO/ؘ `K-M`Z pP@   F@zT!K 7KL-@Q R* P- 0S* L/@0S4  P$0,   P 0SPP {P 0SQ  L-M@ @PK O-MP`@PZQ `Z  0:/P P T6 :0S *PPr  K PZ  0:/P{ P T] ¸aP R 2/Pz  P  :p1@q P&p@* @ @   pX  PJ iPK@Z]TR  J K@a  P<  Z?  0:/P7 0 0yd ) HP K%P0 0A ޲ H0 0A Ѳ@0 0yA ɲ K角3ߔדےpL-`QO @PP R 0S 3/`p0S pL/Q R%  0 Q#' Q0,.! P   Q P @ `V`p`p``p[6`pO 3( R  R R  R / BR/0!TT\DT R R / RQ R/ R /00h8  X8d00 X8  H8Y00H8  88 vN0088  (8kC00(8  8 `8008  w8U-008  l7J"007  a7?007  V74 007  K7)007  @7007  57007  *7007  700|7  x7h7xX700l7  p7`7hP700\x7  h7X7XH700LT7  D7x47H$700<07  7h78700,7  700$7  7/ 0/pL-M0@SS R0Kp0Q` P 0 ѿP @T矿@Kp@@gP80J 0A @Kp@Kp㌜PP Q / /L-P PQ  @ w  #M-@P P`Q P pX w  P  ᾵P@請pL-@R PQ R 0 `pQU 囵Tp/pL-MP D `@ P  %WQ% 1/P!0 0n CPKpPU#PT 0 0n 1Kp4QP P 0S  PRPU KpC00p3  `33P3@300`3  P3V{ 3M-@P pP`r PvP @WP w  phPQ/P/0R0/H-@ PpP\3T W`P W` H>80P0H-P@9P0 00H胅L- @q P؇L-@y O複/H-M@ @`@@PU hp PP  0P ` P 1 0i BKP  !P (:0 0i 0K 0qS@  pW0003Vo T0 0i Kp @K<܆  R0/H- MR00P b0 Р$$0  0 0ꒅL- @ JP L-@' 서/H-M@ @`@@PU p "PP  0P  0 R 0V 0p 㓮K qS R \0[ 0p 〮KR p @K耄 ԃ 00/H- M 0P0 |0^0  Р L-,,0  0$ 00 LW8*006-  p-b`-2P-00&-  -Rx-"h-ؼ@&H- MLѼD@`pP1/ 3hf 0`p$&O-M`  PpPC ᫼@P pW pP7ppP.  ( <@Pq ፼PopW@ P P P$ PPx`, P8PpPKpppK20jr3piD 0ᗭ`M hppf`ApPP 7p傻P! pW8 $ PN ᓲ,1*30dA _6 3KP QU*R PF taP`` b @@10P3if 0`P pp᥺ppKp3piA 0Pʻ` pp劺pKT0T30fA pK%%3ӀC~_~'~H- MdQ R РQ0003gf ˬ РD!}0H-PP@PqP l@P 0s@0 L-@@hLe` H-MQ 2B30eg 㕬PK`p  PpPV PPP  S/P @иP" Vp7 R P( aP`` <b 8"1N30eA VKlaU3`eA 0JU!K41T30fA ;PP K0m30ee &P! )P `P` `b P P`P` b  `P<u!c|C|{{|C{{zzz7zH-@៺P/ PP! P p`` pb ׹P `p`` b ȹpP妷l-orLPPh@fP (I H|dywy+yxH-   |PHL-  @qP ?P@/H-   _P -PQH-   LP,PQQAH   wP/H-p@W \PP`P pW 7/% pW) Hw(PP Q@!!P1(  03/`@@$$T/KP @`(p!!' 嫀0 !!(`!!'P!!'ᳮ :/ p@VK"q q)rr)rirXrH- M 00 0 Р0 QH- M 0 0 РH- M 00 0 Р0 H- M 0 0 РO- MPP5@- @p`@0 0- )I%`QtVXVD@0 00  K[o3oͱ'nUiMH- M  0  РHЍ/L-M@   0K#P Q  @\r#K<  m#@K @KmmO-3(P /P R Q `P* 0R 0D)#@O/4/0I/$/ C/ a`a``I``1`O-H-MP @P\ 0R 0gy oKKPU p 0p5/P  0`6/ 0p5/K  0KH/=M-MP @P$PQ$(PPpW0R 0gy )K@K`V  06/P  0p7/ 06/K 07/Kj<M-MP P$@PpW 0R 0gy %@K`V  06/P 0p7/ 06/ 07/(P$$$Q($(K^; Q  /$ R0Q  /// R/ 0S 0S $ R0S0$ R//P$/$/0H-P $@,PUT0O- MP Ă@pP`wP p ` AQPURg y 0G'Z  0:/P  0P5/ 0:/ԁP_  05/PX @@ ZPR VP Y P$P$p(PP\Rg y 0P$@TCP$@T>Z   0:/P  0 PV $@,p7WT`KB9Z87$ 00/@@P/P/@  pL-Z(@@/P`P`)`p(L-M|@|@)PP \0 0fA pK4 02QK50H- ˨P  0pL-M`P(& @P p)  P PKpDP* P + A 0)@Kp544P/0H-(P@5 P6 0HK4// / ///////// / /$/$/H-MP@`b㺟pPpV P+ @j 0JKJ `0J0 00P㲞t00P Qm ;@KSm  㝙@K3/3332|/`pL-@<P`P aj 0p@L-Q@ R 0 YP0H-MQ@P PK0 0@ /P Ԟ @@ @0J  0C@K0E1pL-`P_U@ Qp 0 PpL-@0 ᰠPPL=H-MP ` Ap R!$0@ddddTddtpKjAQ @ptQ QP a  p @ pK àpKpKpK`K۝p)  B@0៘Bt  0bTKQ QP    PQP= @ P     `4P p p /Kԝ IPP0Jx t0t0`<&t  0L0F 0te 0pK.E-W-[-$..-L,..  /0H-P P@P P P  0@0/</T0H-MP P@qPtP  P0 b A K0$0Q 0~s їK0+M-MQ# `'P@ pT+  Q `V,P#  Ӝ ` AK0 0us 0 0u~ 㓗@K@K@KQ Ȝ0 0**M-P p`FW@T@!X T  ዜ@@XP @T  ,@0H-P@i 0HpM-P `@ PFP`V ` R pV@T@!X T >@ @@@XP T@T  T@M- Pp`@qQ"A PT0HHHHDDp@P@   ` ArQ sQ2 Q.p+oBX@" @p@P U P  p h @ P@@X U P  Q ƛ00 'H-P P@P P `V@0p p. * %H-p`f @P PP n P @ a @ @@ Pk p %S%$/pL-@0P"`P h 0<pQ/H- xjQHQ Q GQ/kAQ 1 //jQQ Q /kAQ 1//GQ/H-Pp@I` ẛPUPjPP P GP k@P!  H-Q @pP` ᇛ@hTPjPP P GP @k@P!  TH-@Pᔚp` ]P8UPjPP P GP k@P!  'pL-@P Q AR(:`iQ hQ"TP P   PpQ Q Pp P V ppppp  /0H-P P@P P 待 0@0 `C = 7` 1 + %X @ (PdP QLQR4R  S/S0 0/dP/<,4/0/$ / //0H- A 8 P?0##A#$#/ ""2A"B"O $"AA"Q"_ %A /  / /0Q/pL-A P 8B  !!B!D!O$!BB!R!_%!QB!a!o&B /  / /po/0H-P @P  T 08 P0 0H&/L-P @ `   ,   LZ:P @/H- ML @P Р(00qA 㾓 РH- ML &P  Р(00qA 㤓 РbO- M@PYPQl20xr L38@ P8 \a 0S>C0 q0 0^ :q " ZQ*  QM  0 b0CS A0 0't10xi X PD10xA ?@K 0 S S\    PKI `"p 0pW c*c 0Jc00@jc00jC 0JC@0 F*F`^ 6JM-M@PR PX Y@ T< TE P5Pa `QP< !R!!\G:Q"U0V1=:A"p0pW c*c 0Jc00@`jc00jC 0JC@0 E*EP\&+<10qA 㙒@K@K 0 S S  K  bAQ @0l @ H    +Z6FfM-@PK PPP `QP, !R!!\6:Q"U0V1,:A"p0pW c*c 0Jc00@`jc00jC 0JC@0 E*EP\ 0 S S    bAQ @0@ R/FH-  *` b @0*A  L-@P P  R/0H-P@PP T @@@00K-MP`R; UPPU`U? @E$q$Q PE U p  PEQ AUpGUpW@QpWpW  K P U K00qA G KX |  X   K(  K>FQ  B1SQQ /R/K-M`y P ` BPA!RPP  YK0S Y  1@ B0@Pp@a p@O7vpBp_Y K : KKK-\C p0L`qW'F'H'O@$p$F$T$_@%$F$"$/ ""AF"Q"_ %P Fbb0?00p0p0/ ?.`V X 0aC !CA`pPO pQ 7E@@`V?`VK-M@`pR VFQ@P`V PE  @VVK`PF%q%QP5 V p H 0`FR  BAV pG AVpW@QpWpW K00qA @K@Y |  X v@ @K( K  > K-`PP- @ Q!B!x!p''B'4'?0##B#B#O0$#AB#q#0'r B0rqWpWHєW G 0'@q0p@@370Aq 0S/@AS/ C1S0 /P QQR/0H- 0 S S@S^ 0N@T @QAT0C* 00M-`Q@PrQPyP QHN `L-@Q0S0   Q0C!RQQ  Q0S/  0/Q 0S/ H- 0  ,!HQ Q  B1SQQ  /Q R /H-  P R B1 S RL-s LAT&@~SADAT@CS00BA1S R BA1S R    K-p@`P`&`p&pp Pp'p p`%`p& p pPp' pp`%``p&ppp&ppC W$0q(4@LXdp|@    t h \ P 8 S+ C @Y:Q(pW(`Q0V1: @P*gPUJfADAD!D*G*f!B*FY 0CqaP0S@@$@P$PPP%P $0$pp'p0'$0$00#$0 0 pp'p0' 0 00# 0 0pp'p0'000#00pp'p0'000#00pp'p0'000#00pp'p0'000#0 0 pp'p0' 0 00# 00pp'p0'000#00pp'p0'000#00pp'0 0!< P0 P q QP0 /0 Pp0 P P0 P / R0S/Qo/ R/ R o/ R 00SQ/ o/Qo//Q/ P/H- M 0 0< Р a @00 /H- MH #tP Р(00A  РP/# /00 /00 //0H-M@PK0O-MP`p P@bȈpP V  0*P  pPpᎈK P O- M@ZN Pp0P Z$ ! @P= X RT@ a ` 0h`f`0Sv`aHjFR `!0/!QZ@p@ P `  ~  !RPPU@C@ `P aP0:   0 q^0Z+D ZP:1X*YP:PP@` 0jg0SaFfHahjFJGZ0 0pJa1PpW@P@PP 0K K-P@ᑇpP `P  ApÇ K-@`tڇpP PP  $pᦇH- M 0 0 Р0H-XL P P@P,@PDPH0@00H-P@P,@PDPHP0L-P @ec,aH!L^ O-$MP@pJ`P Kn`P  P aP b`$``OP P`  PW `PP p 0/PA  P; P [P1  P, 0  @pP# `Pp@pD`@P  0@`ȇP `VF&``ỆKpL-@P P`P P ,,P @@DD`pO- MP@FpOW K4L  P+ p`p, @pDp H P p$P$ ^\ ZH !XppKJH FH 8!DKp`KO-M@P`pw}X x3Pb p @Q A PT ] N !I0S`C U`t Q0A T0m D0 @AQ @Rd pJQ X=WpQ x b M HPaA0Q s b @ Q s b 8 Q s b 0 P Qq b %X DXX paNQIQ  Q Q   pGQKKO-M@P`p|\5 |5Q& `P Q1JAIppR  QQ  `PER:\IKKQ$ `p@!0 P1tL00t^ 000Pt@ tp pV @`W:IN|D Lp!A000sC PsP? 0 0<  p  r5!J0aIS SS APSA\W\RKSW3KO-y@  08y !: KO- MP`!p@0F!@V0a 0 y 0 0KOx0a 0 q 0x 0KOxO-M@0  `pXxT1DDpDD  @ 0 Gx X 0 xX 0PH wU 0 wIp PKO-Mp`0PA   @P$HPHHHtH  0xa a  0xa   0xa 0x  0xa 0x@ P`   x   x pRp 0app`a   0pp`Y pR  0q"xaP  0fx 0xpW  0Vx 0xp!pTU : 0 cQ BpU E  0!0Q0c0p 0wpP @0 xpG @0 wp  0w ` 0w`!P 0xFW W:    0wW  gQ* 0B0R P P :  `Q!* A Q K0H-@P0O-$M@TpX  K`Y  Y P vPP- DTP TX*P  0 @qP @ w U !  P   K Rp`` 4P  FTXځ`>P 9P 0` 0H@D@a'P "P 0` 0H@D@M-MP  KM d FPH Q-   R;,pB PA$\U $,$^   P A TX` $(%b   ` A TT` $$%b   ` A tP`  %b   `0GpWp K(00iA 㓃KܛuۛrܛO-M`*bAg&Qf&F,BP@A#@!P9CG PH X@T aJ`hA 0Z cP P 06pt E\x @K P`-` PP$ p`05 FIpGPU Ġ 05F <pGPUt  KPE@W  Cop PP ,t  ۛڛaٛXٛAڛ؛!ڛO- MQ pPP' -P@pP`縊P @`T:PP#%PKD.xPPY Z t PKP@ t PP K KP P @`p t` V(PIY`F@pW `P KPKO-MQ PpPY -PPp@0@ P @X:`PU\`KH.pH`ZI Y< }x=P P5 9C@P  U! P0@A  CHP% P@ JQ P pK`K-P x`P K`P K`K0H-P@-P0P  xPP0dP -Q R 00pL-@`)P j 0P2@*ppM-P @P , QhP  Qs`VoЁp Q  PapP  PTpP  PGpP  P:pP  P-pP  {P pP  nPp  p`P`FPM̛HiDL-M@@@P 0 @0  #KrcћH-PpP ` P$ Q P `Q0 PAPQ_@ RUK-@`P pPGPV  P  QW H B1`pGWY O-Mr&㢒` P# 0` 10 S8 pf BA0CPS4WPVP*0]0w \K`SS:qAWR1 :pD `FA P @ a@T G S 1V10F`v KΛM-Mr`PPP fX r *P H10w KCKV P0@aEp Q2# p c`@Qp`! 7#AR Q pEW:T0V1 :PA1! fP DW 0QpW K͛0H-@P0O-MpPW`<{V { {Z@P  p{K@ K P W Ww#uW0@W P 0 N xP 0 @Z @  P@@O- MP0`゠Rp@F 0qV  0@D HqT 0q@ q 0KOqO-Mp@R PR KOwKOu`U 0KO HP  0 r 0p/ 녑 0q 0 0qp  0q`G 0q !: K  pL-Q PU@ `@ 0!%PUp p pM-`Q5 @P' p ` P' Q PAhq Aqv` PEQQ A!R 0h`Q0h pL-Q2 @PP pL P  '@ P o p`V`@*p:P A@p@ppL-@Q= `PP MP @Tp P   p@pPP*F@ @p P *1 C!S RAPppL- @R 0PQ pP `P   app@pL-MP@# P @K(0%0eA }K&ěÛH- MH# P Р(0%0eA } РÛÛP/L-@P 8 40  20 C6 L:&Û:ÛÛH-M@PQI*P*:t:1[0&P= 9 J `  b0 pW# ? PpQ W0d0dA !}@K DC0<  p`D]@K›J›n››H-M @PR*Q *:t :410,PC B?D;* *J 0`  0  0pW# ? zPpQ W00iA |@K C0<  pD`@KRVpL-Q R- 0@CR!:`VSPBN 0@D ` a`V` D^Q   B0Q``B00 B Q @p /H- H20H-\1 @P PᐝP @06 &0NL-@SD  $ d /P/L-@;D  $ d XR L.pL-@`p PKP 傥` X$$ TDD Pdd L`pK-Mp W`@VSRE S 0XPPP V|Vy rPPu rPp 0P<Pe 7뜁`D0  3PX DF0VPà"E PSAPB Pp 0PP7 D.PK Vl V%P0à $pPQ300l#$  0ܠP ᙀPK腍= K-`p4 PR. p@PDYd b PU  d D0ᯤP pU D  0ᤤP PEpUd CPM-ppf P@ᄤT^ `V%VQV:dQ R :d0 `PA a R*eB CV9 F d`0PQP0#0-F Qd A"V"V:dQ$ R :d0 @PA a R*eB CV F d@0PQP0#0 0(P %q/H- MD 0 РH- fWWVi+HJO-,MPP& @ pQ ㍸  Q$ Q P `ᣈP  p.zKPKP<P(P ƇP C=3sA 03zUS PQN 1/K j.ƁP p@Dp<XPP,U@ P PFU@PTL@PTG T R%!PRP p@*! +!P  QTS!U/U!Prvm 0y,"@ 0  20~PYa ! ÷pP%zp 0"PP \#P H@#0 ]@P@ n@  R4 2/PP/Kp@P"u0 0typ 00i~0P0 vq ayx Y~P ╇Z)PKPK豷\VV@VbִǴڳ2ֵ,WWֶ¶UK!*K-`P㬸@P VP/PP  p㼸P   pVpV  zrPypV ᝸pP ᒸ0H-P !0H;~p P!DP @0 %< B, =0@0pL-PU(@T8U QP@D`祅!{!_/TPP@D߆`PP x熅c!{!d_/`DTPp8g0pPP20zA \uPKpX00P002{m Lu4E Kp1]5$%M-M @P A !0 'P2 t!`P :P5 X!p 2P5  34P U<5 匂P@T P !P$C/020A t@K|0}20wo d020wp tH K@K虣գ}]A%ᢛpL-MP`( /P l@ P PPP0 kcX xP$`Kp020uA tPKpP2PuA 0t !Z$vC/TPKpp`Q2`}q 0ntX C !?$[C/9Kpѡ5a/ /$/M-`PᆂPpᄂ@ yP pvW@K-M`P 020pg !tK@R0*0pP()P   Bt Wt0:0`0302pk sK Q @KݟAQO- MB`P:D2L20nh sPP p@pP "0 P PY @K@@K*U1c0Wx! h0  P  !+E+P`Y \r!6K80N20lA Pq`K!ŔH-M`p`@ PP   P`KL-M@ %p @$!K@K虓L-Ml wP @xKK,0!20A p@K脓<P/L-@2 L䒛0H-P@zP@00H-P@oP@0/ /////H- MT@ !P 4 Р(020dA p РZ&P/0H-XP@ ) Pf * b,+ ^, Z- 0HU⑛~Q H- M80820hg jp Р</ZL-M@Q<@4@K$0J20ff MpK搛pL-MP`@ R P T0R20ed 6pKp,V  `P<Kp芐bH-M@pP R P 0`20sd p`Kd W`T <KT j0 P  @K$0l20sA ΏV </#Q Q <A/</H- M$020ge o Р辎pL-`(@ P `$P<p膎H-MpP @ }W`T $<K` 0 P  $@K0020rA o`KBpL-P(`,@ L,P0@<p~H-MpP,@ ;W`T,0<K` 0 vP, 0@K0020tA Bo`K:/4/ // R( R /)QQ/ $/, 0/ r R R ( R )  R, R/0P/ R( R /)  R, R/0P/8/ 8  BR<0<0!4 /Z</M-M@`@@P <Kp  wP7 Pd@P; k P4P/4P P& P#KP! @uPP@oB< <K@<9KM-@P `|Pp@P|P P@PUL-MP0 @P K(020~A GnK)P/0H-@2TP& P ' ( ) * 0HꭈO- M`@ ``哛pP ጛ`Pew`  せPP xppPQNupWYP mY6 Z ^@PP Z V_! Z PpP  Z H/!otátwtw + tP8P  z@PY% A @w s K@ P Pd `] @K{`Po P U@P ἤP ᧤PQL-@%  L0  K-M@ @p`VP `P hP@ Pp0 X8X3 pp '' sP'  sP! $  ~sP $ R  vsP , 0 `P@020k ,l` rKh؂pL-` @P  PP p8 pM-`@r$`V`pPP PP: P P pP0 V p. $`PP PP" $$P(P `P (t!,(``,`0`,P H 10 P, 00`` 0O- M@`pSToCP$ oP `3W0d k`KP  RT"rP PTpP0  PP| 0@@NP X  0@NP  0 (@NP 0@NP $ R  0@NP ( R  0@NP ,PB  L `H0V&!"B<pPv -Pp 0pW, 000 JP`[ +PZ4 R  0@LNPG `PL  \  PA7~~v~~c~H~(~ ~}}}/{M}.|u|~H- MK 0@P6P, 0 `ֺP& `1 0 P& PP&  K`yP* pP- y  PK0>0li vjP!PP0G0lh gj`Pl0L0lh \jL0R0lm Sj`BvPKIz(! zyyM-M `po@P'  R% 5P%FP, PpW   0~Q Kt0n0 \PX0s0L00mA i0 BKxyxixExpL-P @`P  PL Q $$yP robp 0 M- M 0@PsP5 0 `ܹPP4 P㍷P- 1 0 P pP P) P$ P(  'PKpPPh00nr miPK,00nj ]iP`%vuM-Mp` p傢@P* `! 0 S, HP,pUP- P!pڢ . @ 0ŧPP" K00oA ihPʄ00oA ip `00oj i p< FP㞢KttytUt07cgL-M@| 0S  P MK P(00k hK$ys 0 S PQ/ o/0H-P@PMP $ 0  C/o"0H0pL-P `2@P  *P p< Q @p $$P@p0O-$M@Q! `Q R! Rʌ`P P Pb `P t60rq Bh`K``K``娌P P  `p0``嚒P 0 N`V@ +0Pp `+0`P W `W`A+0P P_ `@Pf  `0``WP 0S pW&`K`P pἵ`῵V -   ` 0  `PP} tPx PtJP  `Pz {l` +0`吣PN  ‘PG Ṓ뤐@y`+ 0`yP7 `P0 f`P)  ᾏP$<P`+ 0`SP`Pm @!X"E3 bPd``0a# (Kp LV 10ro @`VP(  P p}P PL `  rP`0&0sh fp`0f0sm f`@+ 0@֢P` `帶PPP P  @" P 0Ỷ`x`lklyq]m1mM-Mp PސP} kPp`A+0㗢Pog`+0`匢PdQ^`   bPU @᫑P\ p=”PU `@@P@` 0`ԋP7 P=`A+ 0NP'kA`+ 0`APpP#  2 PP `00tp f`@p`"K``+ 0`P`Pphih00h  X00d  TH-Pp`P2 0@0 פP' PV @$ (Q ` , 0 4`˳Dn `0r @Nh6hH- 0M 0 0 $ (0 0 04 R,\D K0  + Р0P000 00 L-@P Q +PM-`Pp`Q`P2 @`ea`P' %P &P 'P P P -P P`aZ`O-MpPp`P @`&apP  aP $ `P1 P p4$ 0pZPl `  0@aP` P (P6 P@/P `3pE P" 0 $ @cP: uP {P ` p* P ` 0pP $PP  0pPpo`_KK-MP`Pl_P8 @``PP- pP( !P$P RP P$ R 0@cP PP(`o_KO- M`@pP@ \  0KO/_P _/`,`YP1y0j #d@_?_Kt1y0j d@KP7P P0P U0Q0je c U U0P +P &P !P P P  0p'{P  {P @PaVbb@/@00/H-@@`03/PPLqeaW hh/U/U/lUO- MP'P 2V0gg xc KV^P`p] p@W `V `P `PPK p@`V   H0P< T $Q Q@ 0;P *$P% PPXP  @@0  0ul A``0* 0uh 7`LSTSStSM-M@ @`pPP PP37P PpWtP   0nQ K0j00r0 vA _~ ɸ;KP @'`P40`0 0[ 0vA _@QQ\RLR(RH-  oo0NH- MK 0p`rP 0 Pۯ K㑭P@P1 0sh _``Z;KP  P `P P P XZP Pr0 P*^P t ޑ`t0 0sm X00L00 sA M_P(0 0sm C_OOO|OPH-M`P `PPh1 0te *_@T oPǘKpMP$ @WP'`%P( p`᪘t @ A0㖝PP `p0 0tA ^`L0 0tA ^`(0 0tm ^ONMMN0\0H-MP@P t6@K0$0} 0w ^K0,MP Q Q/o/H-@`P~P$ PP pp P p { pP `pP`P0H-@ PP  P 0 o00M-M@R. P  `%P-  pR nP 0`AP  0A`P`%K@࠿`P`K ᓁ`KUK7K}pL-MPA@P% h@R` 0 PP&@Kp*@Kp@R Kp@Kp` 0BPP@KpP `ᕑ P wP `ሑ P P 0㜭Kp0H-MP@P t@K0$0 0z w]K0LHM-MP`@SpW  ㅿP@ 0  iP4Spp 0P@P%  0P@P  0P@P `0P@P  @0P@PKKFGGGGaGCG00  ࠤL-MP y@P K(0 0fA \KFFP/L-@& L軵YFQ00R/pL-QP@Rp``@p00༛  T00ഛ  L00ଛ  D (p0H-MP@0 PP P @ )fd,& eK0K0DM-Mp< `0@P 1 P0 @ a@P   P aP 0 @0 0fA K\ @@KPP\ 0 व PU  ,&  KDD8CCL-@P Q  P0H-MP84 ~P @$tjP4 ,U  " OP, 0P!X17 0gA [@K0,Q> PgA 0[? 㳴@K0VXPP0 UXP, 0Q00H0 g& [, (  VP ,Q 1/P K0)@K0(0] 0gF :CBB&BA6B0H-@,PQ 1/0O,P0Q 1/0,/L-MP 40@$ >jPK,PQ 1/0O( ᎞4i0 .,*( )KV@H- M40$ jP Q  РH- M   k Р((N0H-@P Q0P 0HO-M@P# pP$ @P! Q Q! P Y U Z   0P P` @Q P P`  @KP P `P P  |PPPP`PQR S/M-P@p `T ~@V y `pX sQ00R/H-Pp` @W ]p`T W@ // /0//t0/`0/T0O-$M@ @eP pPP`3 0p !Z- =U KP PP `P86PPP TP PUUUUP 0 wP PP U Q P-PPf t@ 0uP] P  P 0  iPF 0 iP= P  0 iP3 0  iP,   0P PiPc 0cP\  0PiP KPGP 0 PPPP?P@G;H- M0 РO-,MPP pP 43# 0qe IY K`Q @P X X1P2/ 0qg WUS TZY  PQh2{ 0q Y1T  K2* 0qf K$  P P  p$P$P$ vp$ 0 bP Va *P 0   h P 0  h0P   4P ,` `0V  0 0@ @6/P  @ @`Pt 0  `UPl  o᠒oo8G777/H- O-$MpP P $3 0ke bXPKP @` P~Vx  Ps Qp Z %SPi  @@ P^ PY PT @Y  0 luPE P tP; P  40AP*  HP#   @HP P @P ,0  \! 000H-MP@P f@K0$00 PK0A pL-`@Pbo 2pLO-MpQp ph P`@4P` pV lPp l 0Pc VS   iPY VA@@W@D0 DPEY |1 09P:0 F3P3 P <81 0&P' 0 33P  *pP"0_0C OKpP P00 Op`@ >@ @ !㮨KMYMB 0N0H-M@P P" @0 P! PK06 P# Pxt P/ @oP K00|0 l0g0 OL0q0A ~O@P# PK0@M-MR pP4P @P P Y00| OO`K}`P @P@`Kᄈ(010 /OKzM- M` P@ @^yP P  YP #Q  #Q~ f+0 Ptf+0Pi7Z}Pd f+0PZ@Q\@ ĞpP?  zP; $}P4 `hw@@P+@ 0@7tP" qwPQx@`f+0㰊P 0rP + 0f㠊P@ ዞH" gK$00 NK L-@!Q(Q,Q0Q 4Q 8QpL-M@P P`yzP(P,P H030B GNKp0Q@UKp6 M-M@P pP`PQP (P,P 0P4P `0I0B NK8QU@W0X,K~ .ش&ԴXH00ꐵ  zꀵpޘ`00Ҍl  j\LΘ<O-$M`Q@L @PQ PVU yGpPI WN WhѹPm p 0P tP ᑹKZ PP P P pP 0PHi`-80A dM@+80 /P" popP(P,P=8.0 l8b0 8B08%0A )Mp&80 MY K7 0 M70 M0P 4P 8PꪂP/ X-P (P,PU 0X4ZX6I0B fz`A 0L.㧥!㣥ȸt630bP(P,XH630B  0KPg KPpG 0KpR 0:/f/P PڻP 0 Q:0Pj/֤Pu pP 0 ppPP7  P1 pQ P\P p 0 nPd` cd` 08L. ! .[Pd` 0#L .F0P_ P rpP}3C0 c`A 0Lc`A 0K c` 0K.㿤 4c` 0K .㰤!㬤ѷϷ2}0ҙR. Pᛤ!㗤ἷ康P; p 0, P; p PP K  P< rP; P rPK K8PௗP; pP10q rKYS7l10F 1?07la`A 84106(10a"`)A 0IKY*0N000 9KY1K萴 ^:T>f> ^VzjT 0H-MPQ @P Pw.P(@P020A J@K0P ܕP  P P K0P$࿕@K0謩O-M@PQh7a0s Jp`Pp᝶ᛶ ᙶKP  RQ P R6i0 R  pԸP!  pʸP =P# P9pZ;<60 k6n0 PJ5s0 GJ`P< pqP? `PPk 50g |50g 7OP- `P2 P7 PHPW qPPQ40 T40s 40 I40A Ip`Dt40~ 0PU& Q PRw 40 40jZ30 3030s Ip 0pP? P tS"Ps"PJ  N P PE30s ;MP HP pBP  0pP20 P,P 'P "P P20A >IP P P g 0 mP pP PP h10z Il<10 Ic10 HY឴P020P hpP 0)0 H> ߴ 0P7l0.0Z6z*J2 ~>b^0H-MP @Q Q QzvP/ P0G0B| H@K0P P@K00^0Bs HK0X0W0B yHK0(0O0Bw nHK0*H-Mp0P0@QP `P @W$ @ 0n0u CH>Kh00 4HL/@K0'KT&pL-M`@ P P ࡏP @Kpd00x GKp@00y G$@Kp K-MT20@ΆP; YP@TY@PE  Q .  P3 pWB ᚁ`ᑁ f P? Q 9 PG PH ` } 0PI`10 @10 GK10 00A ~G@Y  00} rGY P f@Kt00 Q 1/P Y@0LKd^:v4M-M`P `p` PH20C ,GP@@r '4p አ($KP :P8 @  P: P  f  P9 P :  0`P< 0  D`! kP `00A F`00 F`P0"000 T0A0A F`~000 Fu<J"`lP tH- M$0C0C F Р2H-MQ PpP U`@T@P)  P U@K0;0C \F@K|0H0 PFU P @K,0A0A @KZH-MPpW 0\0C 'F@K P P0`@^P @K(0a0 FK:M-MP `@ 0 000TPUK1n0C EPK0pS z$7P# 0p  P WK00 EW \$PPK80{0A PKn 00ꌔ  +|L-MP$@P K(00 A EKNP/L-@HF$LFQ00R/pL-QP@Rp`,*`@pL-M@P P V P  % |}@KO-$MPP"R QP:5 0 E`K`Y8 ?pP> p p  YPH  PPA  IP9 V] 6/`P 0 РH/ؚpL-M@ `P{P U/A T Vp Kp(0B0Ad R>@Kpך 0S0S/0S /H- M(0N0B 7> РH/|ךpL-MP `@Rn P yQ KpT0^0 >Kp$0Y0A >Kp֚֚M-M` @PPK0S P @3/P k"pEP PP'.ౖK0+0B =K0S  3/P @K$0+0B =՚,֚p՚՚ PP/ //|/P   /||/0H-@P Q 1/1PQ 0H/00H-MP0K P @ KP, U" ^1P= P!T1N0A T=@K0(QUPA 0G=V @K0&:PP %:P ( ~P Q 1/P K0p0^0d0g0& =@K000u0F ԚPԚ Ԛ,hӚXӚӚH-M` `@$pW Pq7/P pW!  0 7/#00 <K00 <`K`K`pVP1 `5 A( 0  `KhҚ<ҚњL-t@< P T , b0Jb jb *cjB *B BJBњ/ aњL-PP /$/(/48 /QR S  Q 00R00Q/Q /Q$/Q(R,S0/Q400R8/0H-MP# PP+ Dd& ஔP0 P@]P3 YP / 1/P& K000ll <@K00"0lB <@K0h0(0lA ;@K0 ,> ʔ@K0ϚkϚК;ϚΚL-@\P``P/0H-@ Q 1/\P`X`/PU 0Q 1/H/幧 巧(Pk Pኔl 0H腔'ΚΚP/L-@0Q 1//Lr͚P/0H-@Q Q 1/\P`QX`PU 4Q0Q 1/T ? ؔB @~0 $PP ͔d 00Hǔ̚̚P/L-@4Q0Q 1/ ? L豔g̚pL-MP@Q P 30je 20jB -;`KpU \\\Q``XXQ PRPX| X/P `Kp`KpkX`Q VPt `8 RU 0PJP 0SSCV 2/P`KpV 4Q0Q 1/l!? 5 x`P  rP Q# ` `ቓ  P)  ? 0a0re m0Z0re`Kph f  KpL/`Kp`Kp˚̚ɚɚsʚɚoɚ0H-MP P,P #.ڒP$ @,1/P& K000yC N:@K000yB B:@K0X020yA 6:@K0,:"@K0{ȚKȚȚȚǚH- M08\ S 0S  RRP РH/`0a0re : Р00Z0rB 9 Р Р/ǚ[ǚpL-@P PP `P pp//M-MQ @pPP 8 R> 0QQ' 0SS# D2a0re 32B0oC +9`P' 8 R1 0Q#Q 0SSP 2/P9 W) DP'`Kl1Z0rB 9`KH1a0re w9K1Z0rB l9K㨧 X P `K`K㗧P 44PX崭`UX` PX  ῭`PX夭`X`[4KX园`XKƚOŚ#ƚĚŚpL-P 4@X剭`TX` [PX  ᔭ`P 44pXu`X`,4p/X/0H-P@Q ᯦P ǤoB0/$Q /H- I! šš0H- @R PጦP 夤oB0 ///////pL-`tP@-㒑VT p<! P  = @pp'š/ /\ /H- M$00mB 8 Рo\ /H- M$00B w8 Р\ /H- M$00B c8 Р\ /H- M$00B O8 Р Q /H- M$0r0B ;8 Р/ ( R /H- M$00B '8 Р߿O-$MPp@` RxQ Rq`o`T2@P`r 3333333P T ` 0`@ 6/`Pc    0@/K0 @K@^K0 |0S R//| R Q//(Jv(}uP/00S//L-M@P 0 BK0H-MP 0@ APK0P Q PpQ,f Ai K0꫚ΫO-\MpPQ >a0e 2 K@ P` QPXT 属P 孞PX T  0lKKOXTL T !0P%0S  RSQ:Y-P9 X48  P `P Q `P1:x<0 ` P$ 0.4$P@ JP@ 0`Q`<P:P0$A$$0 0 LR S) `@(P 0(Q$ ,P. 80!0 K@8 P48$p(J(7u0D ,P7 0D T1@P, K ,>P P$( P&*@$0PG?@D 0/1 -,P$ 00408T,$,@0` ,`XA40 Q$ (H0 08 V* Pn:@ @4 A["LP 7 8 6PF 8 P`0 Q 0 ( $P :xn"ࣉ(0`,@\/!P% 0` `,@a0<8 P, ,@P8Q7P (P@Y:<`V:P4@!4z0A 0P@8 8$p4P,@0U P40D z0P@48$p(4`R, 4`P <P: P8U*8P3P (P :8, 0 P (P `8! ,0P~ ( `@R:<P4`U:, 0 jPm 0P@U\PV `0 @ 0 P 4P-$АY' 0iQ V Pz 0o0 8V0   ^`PT`PN X:VPEuV 0P  PK PEuP8PP@KPP48$p(@]@A 0/^"#P48$p(4`,@|@f@D 0/g" 8P\@N@D 0/O"X((ꊫ樚BfNJƢ桚VB"O-M@pPTY*@P * `P W "P P P: 74,+)+P&+P p 0ၪP P <P*P P$P ὜P ᧚PȡP  0=P P P  P{ 0 ~$<PPl Pg Pb ppܜP[ לPV ҜPQ  nPK PF P寡 㬡㩡  0WP5 pP X;孟  0/ 0* 0% 0! !  @P  0#P=*)KKP p 0 0 0! ! O-,MPRpYD  8 ਆP5 @ <P4 P@ pU$(PP$  P ) P `ܙPW L630r .pP$` ,6:0A -KUEPA 0-F 㼆K P #50q -`Pp P )(U P @P0# KU "|Rp"p0Rp G堡R M#`P pp  `q `U Z pW:Z P~ YpP P Q@ P 0 P P=P P0   P PU: PU2* P  0P  0 P  0 P  0 P  0 P  0 P  0 PP PU:upP`?\2O0A -pP42^0A , 2W0A , p$`P P ^ P 0 PW PS U0* 0 PI  0 }PB  0 vP;  0 oP4  0 hP-  0 aP&  0 ZP PU: 0 P pP `\`@@P Pp$` PjFr"f\ R/`P/0H-MP\@ @^ 0#0}e S,K0@T PUT@ K0H/H00}B ;,K0PAKU0H# 0H蒡꾐0H-MP\@ @^ 0G0e ,K0@T PUT@ K0H/H0B0B ,K0PAKU0H 0HX֏60H-MT\@ @^ 0a0{e +K0@T PUT@ K0H/H0]0{B +K0PAKU0H 0HסN0H-MX\@ @^ 00ze +K0@T PUT@ K0H/H0{0zB +K0PAKU0Hm 0H葢fO- M@0P@@P t p̃P `  0pmP @`K .Kz \ /H- M$0(0 ?+ РO-MPp`&PK & )'@ &'PG p@ PD ``A    p-P; @ 0iP2 P7 0P puPE PH@0 qPHT2h0t`6p#2F02L0 1U0A *1\0A *pP` & % Kt1a0 *@0 P, Q;~X*1x0D &{ P qH`/@˙Wp`` 0o0 l0|0A b*pH00 X*paI) % ]Ŋ0H-MP@0 0hPP @K0K0H- M РO-$MP4 `@P- bP4 T$P 4p2P0WU,4B0A )`ȕƕP P %A录KL4.0C )PK 430 P ZP PkPᗚP ᒚP  P匚P PP 0 FP rP`FP hP wP  qP} - P5Pr  0Pj P 0 P f0 sPa   07PN "PFPY  ቗Pg  08Pb  </  0,PA10%\190A @D1F0 (1Z01`0 )P`0y000 0000 0 2P 弔应Pp` PT00H00@00꧇w wg; +{DŽkO-,M@$`P @ p WP $50C (K P P @`PƔĔ`V`P40A (P40 d40A v(@KT#P b P^ s PP $ ᴖPZ U `$P  RQPRKP$ K0 PP X 0 hP X0 PNP   07P PX 0QP X0PP (P} P P F20A (P t20B 婕Pm X  0"PK X0 PC 0 6P_ X  0 P? X0 P7 ᘓP_ U P120 'h1 0 'P ;@10* ' P 10 P 0J0 'P 0 0A ~'PPx00 s'@ " ?=KP˂#S7~#~~~}_~M-M`p0P  @  PP P ,P  0 PPK@@$ a1 K|O-MS pP@P `XP 84]0| '@KLP< !PA " " " "P "P: P= 寒P妙P kp 墒P噙P ^P5D30 &@P!3y0 20A 2b0 20 &P@ q" !K 0 0PJ -PA ՔP> P `CP?  06P/  0 6P+ P/ P 0 P- qrP+ 0P+T1q0?(101010100000A 00 0/P  0 4P 墖oBox00 T0s0 %]3|zzzz+{yyxxxxx#yx7xH- M00\ 0{Ps ` 0`P h 0p` pP$@[   0`vPR   0`@lPH P P h `0 T `0@ `0PP,  0GP#  R 0;P P Pp(` Wp)@  pP< `@ pPL! zP-`G(ZH#*A P  ( ( (ȄP V 000zP p $@| `ୄP p$@ putVrqqqqqppppp0pe]_sH-M@PpᶉbP j 0`῅ @ᶃK$0,0 0#KwmpL-M@`ᒉ>P j 0PᛅU@ᓃKp$0;0 #Kpl/xL-@LP0H-@L^PPLPPP0H0H-@LQPPLP庎PP0HpL-@L`CPPLP嬎PPP LP PL LP PPP яPP pL"PLPpO- MPL`@PpLp嫎PpZP1 ݖP=  P p@P%  0YP 0 LPlP @p00 s" p@K p pL˖PpLpaPp@P[zὖKjkL\  0^H- M$00o @" РjH- ML0S D Р$00o '" Р:jL\  H- M$00o " РiL\  H- M$00o ! РiH- MP R ᡏP Р$00o ! Р&i/T T K-M@`pPT@PP* Z3VP 3QP 3LP 3GP 3BP 0l0 !`|t `K\TLT 0@t`^Kph`[hO-MP QPpR00C i!@KS `@V;`P  0ᯜP $ Tp07/@P@ogK-MPPQ00 3!@PKR `p@S`P   ^P $ Tp07/@P@fO-M@Pp!`VP`L P TP@P6 $  0/P. Q1 $ 0C1P# $0  P`0P HP2 P $ p1P $0  $0P P $00PD@ KP P 05/P  0P`5/P\ @  0 @\  0 P& @XgP@ W @ 0 @T 0 4/P3 U $  0*P) PU 0 5/P Q $ 0*P 孎@PU T0S0 5/P @ K K 3/PO-MP@`P* @T@P< V  0p7/P/ X  0p7/P$ Q( 0 p7/P V _P X XP T QP@@@@K@ KM-MR@S X0z0C |KP`p 0KPO-M@PpLP 30j Y K`V2P`S @C@@=:P  @ @T! 04/Pw ύP \1 @Y   0pK  P 05/P$/  )P) $  0'P"  $05/P $0 5/P $@0P @5/P $ 0p'Ppp  SK 0P @5/ PP  (P pp0 P P 5/P 0 P @5/P  0(P   (P $ 0 P5/P  0'P  P 0 5/P   0(P 0 'P $ `  0@6/P  0'pPp0H-@PP 倃P 0 $ 0HuO-MpP KX$P@`tPI @ P``}@zP  `P`06/P P, P `@ 0&@P 0` 6/P D  0&P} P 0p7/Pt ۇoᠢn K 0`6/Pa  06/PZ 0` 6/`PP HP!  ` 'PF  0~&P? @0 'P7 0` 6/P`+@0 @4/P"  ` 0Y&P 0 4/P @D 0P 0 Р Р{,{K-MFP `@\PXp `pP   0`P@PKP{ P/H- M($$00 Рz(z//ࡈhzH-M$`PV 0@p6/P , 0(  чPKz ைyK-MP p Plp@ p$`V  06/P 0  ᪇@PKypL-M$P`U 0@5/P 0 ` 0( A ቇ`KpxxH- M$\ 0 0AQ ?#>0 B!,&V q@ @  P$w!X@0H- @LP PPeP P0Php P0cP b"XP @(LP QP  vL0L@C0 O-MP ppP@@ `a/EX뀠P@U@KH-P@!Qp/". AQ@@`@p !XppM-pP`@kP3 V U1Q* U?#>00AQV@@1WXR/ P \ WD@XR\ P @R \`RV ` 0!W i p! H-P`P@!QVU/". Aq@@@P h!WP @ PH- M  0M РH- P1!R/".?!A@0H-@PQ1!R0UT/". @@ !R @00H-@P`pQ1!RWV/". @@ U R T !R @! U<T   UH- DQ!1S@0H-@P6Q!1S0UT@ !R @00 H-@P`pQ!1SWV@ U R T !R @! U<T   U1AO-MR P` pG PV  P `  P `KR@  T  ' P P ` P `KQp  W@@ @pXI TO WU W!PT`0KX 00 0gWkZ-:JP*:@@:`P P`::P P PP::PP PP::PP PPKp `K&<@ -WTT P 0@ %WW8 06 @WPKydaߙJߙ4ߙpL-M`P` P@PKp h P OQP l U@Kp e KpvpL-M`P`i P@PKp PP> P %QP B U@Kp ; Kp(vpH-MpPp? P@PK  P P`  V @K   VP P P`  V@K KuL-@Q,@@c0H-4P P @ 0H0`tP/0H-@   UPP  TPP t TPP H TPP $ TPP  TPP  TPP  TPP  TPP X TPP 4 TPP  TPP  TPP  {TPP  qTPP h eTPTP 0H]TۙۙxۙHۙ ۙڙڙڙpڙ@ڙڙٙٙٙhٙ8ٙٙ//L-@@  ppL-P @CHP X`X` P Pp@  @P@ppp/ p0H-\P\P P@P0 ( $@@ 0oDH-@PMP a@pF "SP@(י MH- M РH Ѝ/O-MPQ/KSP2 `Y`P@pW @T ڰ  3 pSP  7y` VP A@PD L"SK  #KOS֙X֙ՙՙH- Q!1SM-@T!R蠀`pa ` P.#TSa@q!1BRS,ՙP  (J@ !a !/@/O-IMM@P 렐pK ` 0P , 0P  0IT M  5/PK|ؙ!O-IMM@렠p✀nK P 0tP ,Z0 `  0 T   /[PKיO-IMMT`P+ @먠p⤀nK P 0>P ,$0 `  0 S  ZP1ZK֙P! L-@P P #P 1/P (P P M5SL/#P!0 (  Rՙ . QiՙL-@4 LGRAՙ0H-@P 0HpL-MP`@#PQU V3 MP41S0 IU RX PU9 PQ P(Q< PI(PF   | QP =h1~0A !P, `P P`P%1_0 L0n0 P( v0  ZR P ``PP P 0P@4p P PKpL/KpԙQә-ԙԙuәә0/pL-@` AR 2/PV Q 1/"( -Rp -ҙљpL-@` AR 2/PV Q 1/"( Rp cљeљ0H-@P0HH-MQPQ 10no ]K@P SP, p`P `n"   *a p*BpP( RP 3P  R KH/00n& KV `K_Kd jPP  `( +000nA KљϙЙmϙO-M`(p. ZPP7 @ P" vPP! 0 3/P AQ$  2/PX Q 1/!( /Q/g/g/h/$h/Hh/lh/h/h/h/h/ i/Di/hi/i/i/i/i/j/@j/dj/j/j/j/j/k/VHX  azKO-M@`PpP P=Vp PFP    A HB ` 0 VP! VH@Pf Q|   0"XPzP {PP FV T! P" mHP: QN   0XPLT X P  U K K\0 ` UP}O0 ` UPp KQ2   0XP?0QG   0}XPRE  0UPM K  0UP@ ! YP  K  0VP  ! YP  !V{P# J K  0VP  ! XP !8{P J Kx  KK-@p`PWf\lP   ! @@ DPQ; PQ8D5@dDPP1A.vPPP( F  XP" DP P^YPY i  APT]PP TUia@@ K @H P:@@-P C tP@DTT5 P2 @PM-`pP@T W  @% T дVV迵V  @ O- M`@P}pTpVKP ZV:  P ,10 5pKY ZP 0`k(P Z`pKP 0`oipFK\ 0`k@ 0`JjpPpKǰ@xK-MpP@m`T/ W/ { (uP `~`  00VdP XP㐂X "2dP`aKP "~2d"`aKXLO-M`@pPPPKZ T#   P. 30 sKP92 ~RI  ePI겟?Q aR(  }K 0IQ Vs:`FT U ~Ql  0ePl@"R# 0 ST6 ~Q>  0eP> fP B"R~dP P ~ gPt"Rp~egPkK~ dP ^~  dPW 0JfPQ T0@`F V*R A  04fP; 0 R4  @@K迭H- =~ggK-Pp2`UP@H4444444444444PQQRR+  ~~0KcI`P ̒` PP  X ` P P  `YВ`/////hJ/J/J/J/J/K/@K/dK/K/K/K/K/L/:;:8:0O-$MpP`PQU3 @P``& PKYVPpR[F 0pKK00  P '[ R1`@UKO-,M@`PpS1:$ P   001   'AQat PP@@T$`T `$   0 `w'KO- ㉠PA 0  ` ]h y !@0J B K`W:T y!@J B k뀡 Z q$K 0:/T"`K`K`GK[ F  $K0 5T 0G 0H  G0G  0=PD P+qE W 0,  07/ (p   ,0 5$K g g , g  0 qP W $K 07/ p   0 $Kj5P $pK >n==,= =Z =K`KO/)/*/4*/X*pL-M@PS  ``@P  P /Kp `/ /|=KpO-M@pS": P  j ` s ^ !0+AQqt p@@T N P W ` B   0`+KO-MS$ S@pP`A#@ - 6 !  0P.- pG`WP@1WKO-$MPpS%:  `  @  !0.  Qaqu pP@U  @  0 . KO-Mp PU `Gp@ K.XK/&/R H-  AH//&/&/&/&/'/4'H-@P ` p{ 0 ؠO-M@pS": P  ` ` i T 0!AQqt p@@T D P M ` 8 0  `ӞKQ/H-M0@ P(P P @P`x``:` p 0KM- M@Q@ `P PB* p@ 0`P*:P P xP&@T `K(T ꀀT ` 0p`P  0:P``K<0s0ml :K lysyypL-@Q Q Q Q P `R  `P ppO-MS$ S@pP`A#   z 0 < pG`WP@1WKO-$MPpS%:  `  e R @ [ 0!j  X Qaqu pP@U G  4 @ = 0  K 9 KO- Mp`4 PG p @ P  0IYK/@!/d!pL-@P `  ᕡppL-@P`  0\p/QpL-P` @  wP[9d\  \ pO-M`@P uPw2 P w]p 5W(  =  0Mw=  5P8d\ U 58 jP KT  @8d\ 6 58  0ٟ K 5O-DMp`PJ @V V2 P0  A `AW A @ F)@8  5 m8# W d PV:`F `& M\ e  k5@K  @ pVN g0 P@*g!BjfaF E e@jF*G E8 @ J5Z. jd@Je@ADϊfHjg!F JϊF*GJEq8 @ 55 @9@K// /D/hL-@ O-M@pS": P  ` !0WAQqt p@@T P `   0`;KO-MS$ S@pP`A#~ k t _  0-k pG`WP@1WKO-$MPpS%:  `  J 7 @ @ !0  = Qaqu pP@U ,   @ "  0   KO- Mp`PG p @P0 YK gPnO- M@egP5 PP-0q`,A5(p@|P 0 0, 0" ^P P`XVKh00 KH0%0 ,000 8m%n9>Kmlm0H-@P PP Q 1/P `P Q ^84 `70@0l ) 97KlL-@P P Q 1/P `P Q 288 `7/ Lv7kkM-M`@PQ! pU P Q 1/P `P Q 8P `R7@@ 0KkK-M `Pp@V v `Q P W Rk ``QW P* \Q 1/P `P  Q 7` WPJd40{ _ 6i\\`U P3`0 P PpP3o0{ 6PpP P l i6P` `\ X \@iP @ \xu@@P 20{ PKPa^%\Y@Poll PPpU   X  p 07/P Pd @hKPKP ,pW4  07/P5 pP1Q0| *$1PP0{A ZK0E0| UP n oPK0J0| 80PP0{ .K( $gD @ gfeii iCiff#fffi[hXfeH- M\ ,\ Rhu !XRA @H0T>   KX `J0aV00 V 3V Q 150`  06/PKoKD1F0 kK   00`6/P pGH`pGW  0@4/P V 0 f `K`  06/P pKKU/ fOcbbaO- MP@I`P VE]I!Z*dpPO Y  IjR R3RE ZCA 10ZpI0aW00 W 3W Q  p10 pKp  07/ppKorK  0KOppKl   0`P Z: P dpP K @dlr/de``^`_0S NM-M`Pp!W8*Wp 0@7/P@K] WG0q @0 04/P@p@KQ @0e0 .@K!e]^]H-MP@P 0]0 Ra: 0S* 1 0em PKp 07/PPK P h10e KPKd0S !R?*0kPU/ R-k0p`SV,pW:B^^:l00C`l0V`S:p ` c`V G ^  B  Bl0 R0PKH00<00ed !.d\W][[\[0S jhH- M РH- MP РH- M РH- MP Р@bPP003RP /H- M0X R ^ X Р00z < РP ,\  0-@KH- H0H-@P 0HL-@LH- H0H-@P 0HEL-@LH- HW0H-@P 0HL-@LH- Hm0H-@P 0HzL-@LH- MP РM-MP@p`P P? W   R D R- 2/P4 P nWP p R< R" 2/P=@1$0 @K P@K@K@KvP@ 0PV@ ~@P@K@K@K@H- MPw РK-HM@P`@V- pp 57P @CP\ Yc  0@p7/_V ) P= @ 0@p7/PJKY  0p9/!@ Y$  09/pK@ 0KK/P 0pPpKpK pY KpK pY W 0 PpKpKK-HM` HPpP& @P$ U'  0Hp 7/#U  05/ dpU W 0  pKvK KplU L-P @V [SP ^V LSS0H-P V @HSP KV ASP Q R U 5SP 7V 0H,S00H-@ PP RP00H-@ PuP RP0H- SSS5eH\0H-M@P Y 0SK0  R H-  0 H/ 0  /0H-M@P 2 0uSK0p0H-M@P  0KSK0  R H-  0 H/ 0  /0H-M@P  022110000P Q/4Q /P R8 R///P Q/0Q /0 fStS/Q/pL-M@PP P <1O0ge , 0`P' PDQ PDQ Q PL R&0[0g 1/P 0T0gg `Kp1/P `PH R KpL/2/`P//D/ 0~ QDQ//0 R 0SL0S //pL-`@PQ PP L R 2/P  R pL/pp0H-M( &P @P$ K0p00jA 9@K0DPPjA 0, '@K0-@--H- M$0 P Q  РM-MPp@U" P PXQ 1/?``;`P Q K/``+`W  `U V U `K^`UV$00 KL+0 0H-M@PQ P P @K0X00& K0(00 K0**pL-P @ 0P`jP T@@`p`p/ W3R /H- M$0B0 Y Р)pL-P P 0`@:PPUp@p`@pQ/H- M$0G0y - Р)L-MQ@T ?K80G0y @K@K(pL-P Pt 0`@PPUp@pq@ptQ/H- M$070x Р'L-MtQ@T qK8070x @K@K|'pL-P Pf 0`@PPUp@p3@pfQ/H- M$0S0 Р&L-MfQ@T K80S0 }@K@KP&pL-P P 0`@YPPUp@pj@pQQ/H- M$0o0w J Р%L-MQQ @T jK@K(0o0w +@K%L-MP@@dK/L-MP@@TK0H-MP $0@ PK0 PXQ 1/6PP2$P !$K0w#0H-@ PP \ -TP,0(  "00H/##0H-@ PP,\ -6P,0(  "00H/9##0H-@ PPP\ -P,0(  "00H/""0 Q\\/ /0R Q\\/H- 0 /K&P V Q*x0A0 KH0A0 KK(JbL-MP @P0Q `0J0 K,Q 1/PKKH- MP \0\ h0\0  Р^ РH/(0`0 РJL-MP @P8Q `0k0 K 4Q 1/PKKH-MP pP8\ (1}0 {K` Q P@ 0KH/00 `KWP V Q*x00 LKH00 AKK8&RL-MP @PPQ `00 KLQ 1/PKKH-MP pPP\ (10i K` Q P@ 0KH/00i KP V Q*x00i KH00i KKP "NL-MP @PXQ `00 KTQ 1/PKKH-MP pPX\ (10h yK` Q P@ 0KH/00h ^KUP V Q*x00h JKH00h ?KKXJL-MP @P`Q `00 K\Q 1/PKKpL-MP@P 10 Kp``QPQ9 dPU  P  P P4 05/PQKpKpP, P3APDP9  ` 0dP5/P)KpXQ00 Kp00 Kpl00e Kp Kp40 0 Kpz>pL-MP `P`0S  10 lKpP Q @ KpL/0I0 SKpJP U Q*x0'0 ?KpH0'0 4KpKp`0nL-MP @PQ `00 KQ 1/PKKpL-MP`P 1(0 PKp R P@PQ QP  2/PPKpX0-0 PKp,080A Kp`0L-MP @P Q `0I0 KQ 1/PKKpL-MPPP 0[0 |`Kp R P@`Q QP  2/`PTKp,0_0 P`Kp@// N90H-P@L9 P@0H/ q$/Q$0S /pL-M`PwP @P Q@1I0 PKpPKpQ 1/P 0`PPPP P 0[0 PPP P ` 2/P P00_0  H- xM hP PH Р8 40MP Р蜚x 0H-MPX@l P @K0(00A K0 P00Q/ b B b B( b( B8 b8 BH bH BX bX Bhh/P/ 2 H-xM`P@r T UPUPU @P$2a0& 8`KT` P& `TPP. pW\ ({ P `TpP@ Q 1/P$KLL10A `K `P P+pPW $.`Kx t0LPppPW <0w0 `K^ hDtb j  RpL-MP@P PKpP P? ,( P, @P d P ^ `` ` 2/P`f d崸.?@Kp`00A Z@Kp(00& N@KpP/L-@PQ 1// -}.L2L-M@PxP P `qKD00000A K<@/L-MP\ 0N0  Kd^ q@TQ r 0Q0 \0?0 K  0>/p0K0*NH-MP @PhpW 0U0 K`PP  0KH/U P  0K,0[0 uK\RpL-`@PP 0dpL/pH-Mp`AP @ 0dP5/,Pz!KPK/ $ //// //// // / /$( /,0 /48 /<@ /DH /LP /TX /\` /dh // //Q00R/Q00R /Q$00R(/Q,00R0/Q400R8/Q<00R@/QD00RH/QL00RP/QT00RX/Q\00R`/Qd00Rh/@/O-TMPp  U : ``@` K`U@` @` 0 0,0$p @d$ P *60 w K  @Q?02"$.2S  :U:$60&0`d$ 0P*50冒p p rS} G")"A@T!!/00 *50 / K b00S:$` 00$R*50(P  nP @!,0$  0 @P   ` 10 C,0 (@ P 04 4$ 8 (,$0@0 `@`0Pd`Ph`Pl` `T`:@P`8$0(P` @U : 0 0 `4  Ad$ ,Q0P   0c$ 4听 Q* $ P *!0 #! P :! b!*b!B0! B  0  ` Q 0:(@ `! "40"8",0 P` :($00 Qf:I K10A 6 K0 0 P0@`p,0 $  0 R`p V :@ 0D `Pp 0;`pV :$,00 Q(@:,(@ ,0 0`P\0 0 < 1 ? Kq)O-M`@`@0 p@ f0@ @J`*gjf @j@?*NPJD 0" 0``PK0p @`pp ` *gB 0 0 B0 c 0*dB$ D c00*nB N `*fB F `j`*gJb *@ J@ B``\pXTjC 0<L8HL\HD,@P4P 0@X(T$P@00P",0 <` %0P p$8.Hp;,40 ` (PDT0eW!\`#L0@)@L#0X`;&{#Xp `i!T``fW%PPP,`k&(P a.0p%p[. py$Lppg!H"\ 0c7"4 @ D@+" @p)( pg#\80<c7 p|! &*ag#@00CS` 0@ `` P @P \pL-@P PN0 ,`` O pLp0H-@P Q ┌P W{P00H-@P"0H-Mp@`PP V  P PKL-MQ Q @QR@roEP@K0@K@0 @:P @K@KpL-R `lP@P PQ pp pL  pLꅹ0H-@P P0O-M`p@S PQ V WPV"QP V PP P  tP ` P pW PW NpW gn` V*fp!Bt*@$℠*a!B*A4*a!B  *AD*a!B0*AT*a!B@*Ad*a!BP*A`*i!B *A*jB @PF p P< \*fp!B *A*`!B*@ *` !B*@*`0!B*@*`@!B*@*`P!B*@`*i!B*@*jB A PP  `Q P 9QKK( CܘݘH-MQ@pTP` 0KpL-@ʿ ȿƿPPP PP PP `p壿 塿埿```p0S/}pL-HM`P @P KP  P  eP  QKpKpL-D~ @P P @ژP/L-@K IGyy wu LIژ0H-P@_P oP  jP eP  $P0  PPP?0O-LM0P`~ !똡p @PW% @P XU  @, 0 PP  广PPt K KֿP  P 塿P  ſP 嫾 婾姾پ ׾վ( " KY٘fTט0H-P@` ]0HY/O-$MPp@ R0o01w T7p@@ 01 ! `H`pX&& & )) ) p@@@T  DRPpA 0TH<4,$q q q pq q 0q0Q P  # ``&& & )) )oTfp@@ P 00 g@D p  ! ( ,  ! !!PT `P@ p@@T- 0o`0 80DS# p "!1H@84,$"40`"80`", ``!$ `!( `!@ T` &`& &) ))K0eK-0p #X"hT tp$xG'GPeE Pr @W w '(B"B bB 0,@s0U u0%8C#HC0c@CP(0PuPV v0&8C#XC0cPC0%`@sp$ $S sp#8G#C0fC$`r p @%P S s #(B"B bB0, (@s0U u0%8C#HC0c@CP(,0PuPV v0&8C#XC0cPC0%0`@sp$ $S sp#8G#C0fC<`r 8p @%4P S s #(B"B bB0, @@s0U u0%8C#HC0c@CP(D0PuPV v0&8C#XC0cPC0%H`@sp$ $S sp#8G#C0fCT`r Pp @%LP S s #(B"B bB0, X@s0U u0%8C#HC0c@CP(\0PuPV v0&8C#XC0cPC0%``@sp$ $S sp#8G#C0fCl`r hp @%dP S s #(B"B bB0, p@s0U u0%8C#HC0c@CP(t0PuPV v0&8C#XC0cPC0%x`@sp$ $S sp#8G#C0fC`r p @%|P S s #(B"B bB0, @s0U u0%8C#HC0c@CP(0PuPV v0&8C#hC0c`C0&P@sp$ $S s@#8D#C0eCPr p `&@S s #(B"B bB0. Ps0T t $(B"HB0c@C0, 0s0V v &(B"hB b`B0& @sp$ P$S s #(B"B bB &`u0p@U u0%8C#C0cC0 .@r U u %(B"HB b@BP( PuPV v &(B"XB bPB %p@%r`$0$R rp"(G"B gBps` 0T t $(B"xB( fpB(O- M` p@PP' UL T 00      PU @&U$ T 00      PU @ @K/PʘL-M@10       KO-MP p `U@0   0  2 PET i , (  ! !!U @Y  0 ( ,  ! !! @KK- 400$  400$  400$  4 00$  40 0$ 40 0$ 40 0$  40 D3s s0p 8<0 \ xstwp psDt@$@CDt@(@CDt@,@CDt@0@CDt@4@O- MpPp@`V T$Q @PpPT$HhT$Q@`pXPp@`p`p `V T$Q PP@pVT$TdT$QP`pTPp@@U @ @U @ @U @ P UI:p 00 K0H-lp `PPC@AT P P *!0HO 0D4ĘpL-M0aP`P 1/0tF a@Kp<P@@P DPHPKp`P V @@@Kpd?  `P HP4A  KpQfĘ4 ØjØM-Mt@pP `d4/0tF K<<PP @P DP HP  LP P  LP PP  T~P P  pTsP P  HXhP P  X]P P  \RP P @ 80U``\@8 P)U6X4   d2Ps hPt   Xl'Pp $Pq   0pPm (Pn   tPj ,`P `  K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`KtP˜Txt`,$M-M4qp0PG PDPU P P r! 4`V PP0/!@ T`84LPPT_l9"40KKTֽ0H-M8P |P@PP8 dP 88@3@B;4@0@@@K0 JTIH- MP 80Q\$Z H РtILI  /,IH- 7  PI /HH- ; HH- = HH- m HL-@@`N dHH- ?P  h,HHH- 3 $GH- 5 (GH- M1 ,GL-@/[Y:<"/ P $@4  4PGP/L-@P P b!L ꖹL-$@2  P蔹0H-@>0 p `P 1&E1,@3E$ P 0P*( P P1V1E A ,@ E$ 0P* ( P (@1EE1 D$ @"A0 C!3@,@ I QY PQʂ( P~ P<)E<D$ Pw 0Pt*   ,  9PP P: P:Ph: Pd*U:U*@X`P $@pIQ(@WY.tD$(@!07pGPWY6E%6g]D$P 0P*  y"-`Pt6!p-x9!t-X7!T-4+!0-@u!<- ""- +"-." -2"-5"-|7"x-%"- --u"{-/|u-X‰vfz6鈘N&P^ֆ݉_FL.000S 4O-MP- @P` PpWPرYMPI p$ @`GQ (PVWI KOKC$(P!0&`FPVW18 D28sC$P 0P* ) @MKO蓱+!,u",|9!x,D6!@,D7!@,<y"8,rZ%BpL-PP@PQ Q`PSV RpO-$MP$ E@pW8` P4 $@PHQ(@UXB$(@!0 PEPUX6I6B$tpP 0P* ' ,  PE@P1T I(` B$p @`(! H4!0,@  aF !Q  B$ "0` !  , YsY `p P EX 0X*P PP P: P:P: P* Pf1&It1,@KB$b 0P_*@( RPPP P: P:PS: PO*Y YV P)1%I71,@B$ P$ 0P!*S(  @@D@PE P- Xm"Tv+$6! p+K89!4h++!b+7!\+u!V+O"P+Z"J+["D+/>+_"8+j"2+P/L,+@~&} 4 K~}}}}b|j}.R}4:}}"} }O-MP1 @`pP姯P婯U P圯PUP PL $@pJQ(`WZLw KOKKA$(`!0&pGPWZ19D29W4A$P 0P* ) H@KOT+!*u"*|9!x*D6!@*D7!@*<y"8* {vzz|z{^z)|z~Fz/O-M⌁@ T>p P: $@PJQ(`UZ:@$(`!0PEPUZ*7I+7E@$P 0P* " ݮK+!%*u"*|9!x*D6!@*D7!@ *<y"8*yx2~xzxyvxAzx|^xpL-Q`P` QM!)@ 015@1X@$P 0P* 0"p\Q!X)<.8)N!)ywx>wxVw=ynwH- 0S! !R0S  \ R S\0Sb!|)DY!@)4Z!0)$^! {)Tx^vdxFvpx.vyvpL-Q`P` QA!c)@ 015@1?$P 0P* 0"p\E!XC)<Q/8=)B!7)vuovuv6uHyNuR/O-M@` X R:BPp  00#00`0&00`0&00`0&00`0&00`0&00`0&00`0&00`0&0 0 `0& 0 0 `0& 0 0 `0& 0 0 `0& 0 0 `0& 00`0&0 `! 9/  HPRp%R-:B pP " " "   9/  HpRP  @R @`0Pp` @ 00pGP B Q„`av `Wf@at0@Y ( L` ^ 03P `3\3\003 d @` a*aB`T A R 0# RR: @R 0bS`Q2`0V1 :  @`@T f`  F @ S  Q 9/W* ` @KO-DMR  0PpY0\ P U:E,($ P @ 5/I`Y  00!"#!!!!! ! ! ! ! ! !@!pP ` U:E,@Kp,  6/PE,[ U  +[   *[   )[   ([   '[   &[   %[   $[    #[  "[  ![  [  [   [   [   eU2:E,($ P ` @5/IY0 !" `, p( $,`A0P ` JU9 p ` JU2U.:E,@Kp,  6/PE, U  (   $       ,0P@U,@K p`p,P `pI,P0 `0 3/EP0`s0Y c `~ࠑR * 0!0P P:Y]PJ  D  U bAF00 R 000V0003 \00$00$0(PPSPQPPP3V` `3 Q0(03 R  Q3$$   Pn 0` c0*cB*f` Q F*CP P `R*0Q002Q1 :`0@0S d@ DRQKH- P $(, B N88 00H-P  b R P@P P@#H @#D@0#< 00O-MRS (p,0`@@  p7/ &P&  !0p&"&#&'  " PV  F0pPp%PRppP 00S0:`F@`, 03/UKO-M-8M@`@   03/  0 R:  R $0 0r":V<:F P  p$`(` ( g@ G:/ :/P @ (`$ f@@P$ E`@ pVU pVR Vp: R Y :0 p g R*cB CV  F0p RPp%p p 7/(P 7/V* p pW0\1 : 0 eQ *cB BV (pF0pQ`p&pn(P 03/ e*dB D0KЍO- X4 V0 3/X `#Pf B!` R  [ X V0 3/X!``K X:H  @0 3/V!`V:H@p`X` @X 0 3/Xp* 0pPPp%ppu X:H  @0 3/V!`V:H@p`X` @X 0 3/Xp4: p0R03@ 0Q030R3S@@3Q3S3p p p  p H @ a@T *bB C *A X  0pPPp%pP` @`KpXl @`K0 @pR003Q 03R03S@@3Q3S3pR pN pI p H @ b@T*cB C A X<pXq @`KO-MR! `P @) Pp 0p1  XKO-$M@pP i  J7/ /Q' TLP \P0 ` Vp0Wp pV``R   }  0 #0  Q&T$P \P0 ` Vp0Wp pV``R   g  0 0 # Q0TaA  c`P`[P: @[P; 0` @p g R *dB C F\@p>0@ `p g R C *fB D\@O-MR: `pPP0 @  j0 A3/ PU0" biAH@ d0 A3/ PU0 "  ibAHKO-M @`R Z @T  p0B T Z5 0 3/0 P          0         @T \T^:DP  0 3/@D T 0      0     0        !!! P ! ` @@TK `T   PP%)2 @>0$@ !,B N@'*r&`'% P@`%%$ 0 $ $&& &# # # KX""H-`@K0P  0prrB: lQ U @ PU0 " QQ l-`}pW @` 0%PE`U U: @R V :0 c R*aB AU E @0Qp0'0lQO-M吁p~` P '0p@  ` @D"," .0 ." %. `&`! '""p" 0 `.R0^t# 2p> `P&0 )b1"!'p  , 00Sp,,. P . .'' '% % %   KD O-,M`@8pP0 0 R U:<8$0lP @`lh X W? @ G0 " 0 #   W pX-`: Y:` @ p ` $`  :/)  ) )    X0#0# !  ;I `k)PP0S| $Y~: I Pp" 0  p  5/(I ( (Y !! `! p@0 A:n Y. @p`  X$  03/   " " "   " YP`n YP`ec0S`$YY` H@`YR P 0 3/Y      0:  ^ 03 pX  3S0@`0^pp3\PPX``3 @ Ip0`0PB f0S*eB G*bB BY  0@pQ0`Pp&p`p&p hKO-,Mp@8`P0 0 R W:8$< 0lP @`\lh Z VA @ F0 "  "   V`Z/`@9` X:P `@ `  ;P$ P ` 9/( ( (    Z0#0# !  PHP(P` p0S @` XP:Hp`!  P $0P3/'H ' ' ppX !! !  P@ P$0XH9j X/ @` `  Z $03/   " " "    XPpk{ XPpb`0S}P$0 XT$0XP `3/ X    1:Y 30U3R @p Y003^``Upp3 @0 H/ ` p *gP b@Jb!D C *F X 0@0pPQP`p'`&`phKO-Mp8P`0 @0@T@:< lP @`lh Q U @ 0PU@0#0@0$0QQ`@8 U:`@  04/ ;( ( ( n[E{k%PZ 0%"4/%` 0( ( (@R ` p PEUQ @p1 3/U     1:W 30V3R @ W003^@@V3@ E @00B d^*cB @*bB B U 0@pQ0`Pp&p`p&phKO-M`8pP0 @0@T@:< lP @`-lh Q W @ 0@0#000#0@G WpQ`8 T*#@8 T:`@  ;p 07/KDk[( ( ($PY @` 00$"p7/$ @D ` P( ( (TR pp1 3/T     2:V 30U3R @ V003^ppU3@ D/ p0 *cX b@Jb!D @ *G T 0@0pPQP`p'`&`phKO-M`0p @81PPl΁!P\ `@ @@ T0  @0(,̠2 @ :q "%r  -@ q p q '   .0F @Pp $% p'p  Q  RKOK`pL-@P `T@@# pLאpL-@4P^x&`P  p+ ^= +M-M`|p PP @ 0PP K  L@K+a+H-`Pp@4P P@#  P p 5/0P@@@ @ 0 @0@+H- 0#00  30 0 0# 30 0 0# 30 00#   3000#   3000#   3000#   30003#0#0H-p P@`WpU PP@P  <7P@  0@"P(M-XMP BR@ CRKPx" p @h @X @H @ H  GϏeP( g A  0 8@3/89: ;0 `! d"'K< `!#=" > .#?$"%! &0 C 80c U @pU 2` E`c@`UP pc `@@$@@UP 1KO-M-0M0H`@"P n:h`X P1 ppb0A 0PaS'* Rp0bC@z0! Pj 0@ip@R@PpWP@RUP@RUK  !0'+  Pp !+; 0 ;! P *iB*E E0 3/` e@*`B @P*` X *a pf `ϊ   ߎ g@ G0 3/h g*`B @0KЍ0KЍ%O-LM@,Pp0#"( P#R$P4 U,  R (,0po `Y*Q~@(@P *,@,@ x0p* pb0A Pa U* R0b@Cz0" P @gp@R@PpW@ P 0`K  !0'+ p; @P @!@0pK *g[!,@*FBJ`ADJ@ F0 3/ i*fB4$P F @4(P *6Y@0t!0C@0 ( z0PO PH rpPU,$P0pQ= ,`@!"x@0@4  <  dQ *b C *D U2>@(`K.%'P" 03/(0p`'&! H e @70 p a R *g C *AYQ[  0 Ep R``0` (P,p#p&p "! 03/(*e `B E e HKpL-`@TPVpP 垊P! *B  p㲇P 㪇ኊP`圇`pp p0H-P@Pχ0lP假U u 0/P/H- M$00me . РR 0 0S R0/M-@P p`P: nP  `2@H-@P PQ pW Q`@ QP  p@Q  0S Q B/H-M@P P q ` ,P  p@K$0E0sA 㺁K0H-PR:0PQU P@0C@TAPcT Ɇ0@TAPc  ὆00H-0R PU 0R@BT:B@@P^U PAP@DU NdR AANd@዆00@p6Q/ p/K-M`x, P( @`pVW `:W VP% PqP Pvf 0 XIKp00vA @KDPPvg 0  @KW'Q# H-M@pP SP T: 0`@T&b`` ```0  AK@ J000uA ̀KQ?'pL-PR :`@P PF ဆPpL-@ՈPK-5P.2L#SPnCHO> ?O#"&"bnQP@! Xx A0 BP @C%!ET絕 `pPqG @1RoA=0@9#R/@G W@_%/_%?C0?BAK-AQS+6 @k9C!R7/:0@0'?rwKCA>>7SCz? go&g kIGAdp7"RVA7?/ AQ'-*AC RHAIU1CgfTffFBt/y!  %/ "a@V!HW "/ N "/"bAO-MPN`pbf Oaa`@F\ڶOr\Ȍ`嫪 㪪B p F EUQAE*@ oaR\K*@@E!Ak@@R/@ Po_&/%PAPB@Y[ n"aPUڀ OPOUO@Pu qE `A0V /j0`!BVo!uG#rA Q'/\{*p@0'?pC1pBaAV F 0EP  Spp q @p@0RSp O0QQ0KL- @ @ PdL-LL,@@@弍PQO-Mءp@ ` ݍPPPK庍 P]w Y PR @ p`XXQP O`@V 4A@0qpA( j u9X p@3 w-Y `V * QR Q0m0jA ~ lPyPjA 0~z P^K谁dhdLD|DnJH-MPP @`p@UPPK-p PP  p `Q p W P PKDK-8`4@PPP PP! p P ` P P 双0p 7/t P،P @  ˌPƌ~hH-M@Pp@njP`PK夌p P P P BP A0p 7/4!``刌KT} H- M(0(0    Рh| 0S/ /M-M̀`@P`b! P"  pp ` T \00৅P5/pW(m!sK|z 0S/00/H-`@`P @UPpRPtHH( p ppzP`P/( QQ /)@z~!#:0H-TP@P P P ~1/!0!0ypL-P@Q pH`` P _P ^ pL/pLلpyxP/L-@XXLL@@4/,@L/4ypyxxxxxx  //L-@Q L{  /@<O-MPP P[ @Pp`} \ Pi pPPH`PPOPW  PX U  VW  JY   > xp 4 KK  P `PP  P pPUp`p00iA )|lP P   :Kwwo?sw7vvxvL-(M$PP  Q AK @ R    KWP @KX00ge {@K400ge {K耏dtWL-(M$PP  Q AK @ R    KP @KX00he {@K40C0he }{KloPs?L-(M$PP  Q @K @ R    KP @KX00fe B{@K40'0fe 6{KTS8dr#O- M@T P K R DP @P K R$ p @ `Q R P & pW @E @PWKl0hp/0pQ`a `V  Q(Khq0tO-,M@Q2  0P,P` PP{!p P   0㜲  0 $ $P!hK @Ph@P ($$P QV P`D p瀀P@V `V@@P ($$P Q(@Q!T@Pd pQP`T @T@f@Qa $QQP00ge zPKPP $(  $ yP PKP00ge yKo|l\n8mO-$M P MP K |`xT p@ 5PPV `VKKdlO-$MP P K|Pxd pA ~P`U PUKK|kx؅O-4MpP@P UĥW`PKS Y&p` @YP"_@)TX :WkpP z@PT  P Y_ P ꈃ@Y_ T P PP! PX:T PP  xLHU PHU R0PE `T ]Ps @ ~ P- U .PEȠ  U# P""@0 }U% @T"  U@ @P`Ybʅ PE (!`YPsPE@ @`YHkhP; $X Q10xP   $ $KP `V.pq`K1'0fe ex$X Q00P   $ $KP `V T  e}`K\0C0he 2x Y`p+K[gߗ(ߗLfߗ0H-T@P:0O-MR`P  pᗨ$2/P P U U@KO-MR @ `T  P ᕆ'2/P) Y@ KpP QEp@f` pG`W  2/P ` K KO-M , }PIp`@PP< .U 0E P P0E.U P:@U P;PU pu4PPUp@(PTp @P  P  ,7`PK`KO-4M@P`Q PpP P PT!]p`d@@ PTT P瀠|P`T @T@ P`T< @pP P P[(@ P`PR p` P@hhA @ PaZ|P X0  X@ P` P `P 00df v@@K P@@ҢK@ P`P @00df v@K b`P|0aX{ؗ[ٗP /P/H-pP l Q  J 0JJTQP&b`aC0 }w 0S /S/!,Pt R/{P/Q/{P/Q/{A/pL-M@P `@KpcP* P  Q '0 (P&  P - P P" 0 P @Kph00e uKpD060eA uKp@Kpw1 211C1 0 0R/{0H-M@PP ‚PtP d* ` 0P UTK0K0[[ 0H-MP@ P P ⎂P幃TX' T0SP T K0K0[(K-p`PāP( А PශP  j @P pP@箂P ᩂP `|z@@0r 8ZZZ/Y.Y@/ 0SA/0H-,, @P@P׀P00XX -@/ 0SA/00ʳL  b<,ƿ00ຳx  RhX඿H00ળ|  Bl\িL00  2x00  "|00z  v00j  f00Z  V00J  vF00:  һf600*  »V&00T  ಻DF4$00   ࢻp6`P00  &xh00  |lpL-`P2P @!U` YP pPpPP pH-pPM@P `P D@`>pL-`@VP`P PT PP  P ;pPpO- M@pV` Pb PmPZ PPS W PS  0`FPC CPUPP7 Z PP . ΀P* ჁP'p၁P`UjPP V PP ᭀP ΨpbWQ K0p'0nn sT)L-M@T mPlQKP0'0ol rK(0'0oh rK((X ///P/P/H-  /$/0S S  /H-@P p`RP`V`V$P@H-P P`@TRpW P @VP O-MPP @`pᦀP PᣀP P◀UPKᒀP `P@T RY P :@ZU PX@KM-M@ `P"z@?P ὯPh1J'0s~ rpV 41E'0s{ pV @ឯp0U'0s qpU!  ?P @ᇯpʜ0e'0s} x0'0sz qpᕫpK<0m'0s| qpK %P%$X$x$$/ 咧 唧 巧 ҧ  } H- P{}堧廧ڧfH- Pdf剧大çԧOH- ߧPMOr卧嬧彧8H- ȧP H-M`R`p@ P㏩P*!P  P 0P3W  ZvP ,P  n0PPPE/ KB"!M-P n `pn @P WTw`t` 8P4@;P8rBob0H-@ Pn 㼦P   <P00M-p`@PP# V P  jP W P 兗P X P =P o oP0H-P|P U@P PkP P ~P N,P~0~0pL-`Ỿ@PP =P r .P᭾pM-P`b@P: 7P5 U, P |P, P" `nP$ P4P) P% _P"  pۨP p}P Ps p``pPBD`p`H-@`PP V mpʚ`̛PVᾚp` 0HM-PMpP`@P< xP. P2 \P.  0KP+   MAP  0K `wP   =AP X ( P P0:'0ex o@K0U'0ef 0H-@PP0AP 00HA0H-@PP @P0@P 0((0HrO- M|  ` 5pPr :'uP 8P@PtP tP PP/P/P 1'0ry PP/tP  P 6l hP- [P]tP P:tP   P  P  @K0'0rA nP P @@ @ @K$RZ^ސ5  :H- M$  0 РH- M$  0* РH- M 0( 4 РPH- M 0(  Р8H- M 0(  РH- M 0(  Р`H- M$  0T Р| H- M$  0 Р8H- M 0(  РH- M 0( ~ Р@H- M$  0 Р]H- M$  0n РH- M 0( x РpH- M 0( 4 Р} H- M$  0 РqH- M$  0$ Р-H- M 0( . РᢕPH- M 0(  Р葢H-@P+P p$`BV T &8`PH-@PhP p `+V T 8`P0H-M @P(  1 0K0K0H-M @P(  1 0K0H- M$  0 Р͠\H- M$  0 Р艠H- M 0(  Р=H- M 0( F Рퟕ|H- M$  0 Р<H- M$  06 Р˞H- M 0( @ РH- M 0(  Р/\H-@P= P pၟ`TV T `P0H-M @P(  1 0K00H-M @P(  1 0K0TH- M$  0E РۜH- M$  0 Р藜H- M 0(  РKH- M 0( o Р4H-@PP p`ǟV T K`PH- M$  0 Р H- M$  0H Р TH- M 0( R Р[ H- M 0(  Р H-@PO P pޞ`fV T )`PH- M$  0 Рv H- M$  0 Р2 H- M 0(  Р H- M 0(  Р <0H-M @P(  1 0K0L 0H-M @P(  1 0K0 H- M$  0 РPH- M$  0q Р跗 H- M 0( { РkH- M 0( 7 РpH-@P P p`ᏞV T ;(`PH- M 0( < Р/H- M 0(  РxH- M 0(  Р,H- M 0(  РMH- M$  0\ Р7H- M$  0 РXH- M 0(  Р觔 H- M 0(  РWH-MP@S po`P` oK`Ṑx0P` 00V`P H0B 0dm io`KKHn0H-@ Q Q QdPPTPPPPPHPPD++ $+0HHI;81?)H-pP+`@++n QU\ 0 p0S'rpApppp yO- M@P`oP j 0p  0q@K$0x 0f 8iKDO-4MP 0````3P XD@ nP DnPh <nP , nP|nP  vnPonP  inPcnP  ]nPVnP Z|NnP X`FnPx L @nP8:nPl X2nPd  ,nP:&nP4W nPQ x nPK m P#T p@ nPw P GR bP `P 1 m P  p@mPw P  L H D 0sPA* GR 2P P`PTp@  Q@P౐ P2 `P P-  lP3   dl`  `P@%T4 0mA 'g@04 0mA gP` 4 0mA g@P`PpP@(@ P V@ @(p W|30 mA f@_Ps `Pp  P= Q@@P@ ` l?T,P* ( PK (@ k(AT(( P  P n Qn@Pj@ Ppk ` IlP   ClP  ;lP 1 0mf zfP10 pP( K( 0p7($ K` p7$(( : ,P  3# !/5# PK@P @P|0# 0md 'f\0 0md fP ,LK-MPP@U @ P P PKPKPK( kP 3 0kk ePK `nP4P`,Pm` {kP 2 0kj eK` `mP Lm P8` ZkP 2 0ki eK1 0kp eKȁ Pm`mpPPғ`mV P,P P1 0k ,1  0kr ZeKP,P( PPjP`pP0p` WPKPKx0' 0eg IT0 0k AB2L9s O-\MM$ P `pS  07/@tvpKVR j@ PK jte`PdK 0p  @ pP3 @ P/ d0K `pYP $$ K 0ᤈP $$ K ᘉP $p 0 0je d *dK@'Ky0P+00かP p0B 0dm dVji@t00g 0jh ydpKH O-M@P`P j 0p  0 @K$0 0h EdKxO-|MM`@pPV$ ( ᩍtP# ọP 5/p"`p`;!{P7 ,K, 5/p$ W7 PUA @^4/ 0iq d35 0i c`p(@wt )ho# ~1 KKl3= 0iA chh  0pPp$ `PV h 06/@ `TU{ h@ PKh h `T$hP 0+S 5P1P (  0@ 嵊PK hUh hp@$ Poh@+h++P 0똄P (0 @PpֈP $( K  0vP ($ K؇P ($$ kpIG0P+00hP ` 0B 0dm 'chh0J 0io cp#h>h@TfTU/PDb!@lDT)xO-M 0pA@PPZ h`  PK  PEL  P>gP p  P2  P+ _"P& Z5`  Z @ 0K@pjPX  R P NJ`Z@0a{2` 8}r  0b K` pV R P"  P@  P|  Pd w2 ົ K@@ D.K-MP`@MP j 0p 0-@K$0: 0q bKK-MP`@x$P j 0p 0 @uK$0 0l aK H-`@ gp gPQpARgPw PPGpL-M`0 P@ @@ P 5/@P80! 0g a" Kp0H-M P@0 0 P @K0O-MMp#P w@X' `V* P 0 @pP1  W4 ZI ᾵R1I 0~s `aPKZ$ -`0 V? 6/PP? 0 @pº՟WPK 0 P῟K 0 pPJKPP40S 0~o aᛟPKK 4nL-M @ P 0@WKL-M @ P 0@JK0H-M P@0 0  P @8K0K-MMpP P$ ` 0U 5/pp P @GJ.T P<U X 哔P Kpp,0 0xh `$J KkH-M@`pP P 0   p`@K$0 0} _`KM-MPp@P ` 0   p@K$0 0} 4`KM-MPp@P ` 0  p@K$0 0} `KcH-M@`pmP P 0  p`X@eK$0 0} _KߗH-M`@PCP  0p@DK$0 0y _K7ߗH- M$  0 РdޗH- M$  0< Р ޗXH- M 0( F РݗH- M 0(  РݗH- M$  0 РRݗxH- M$  0 Рݗ4H- M 0(  РܗH- M 0(  РrܗK-BM`02P@p0 P ,K$P (P E(K KPl ( P$ dP ~dP PC  єP`Q; ,0$ KKPU<2, $KwP, `, $KPoHP!  0W3 7/pP3  #`fH MV PT 嶒PVU0W 0{ ^P@Y @ᄷ, (Z0 KpP00? 0{h ^0Hܗۗۗڗۗ4ۗۗO-dMP `p@P (Q  0KO 0P 0  p@ 0%KRڗM-hMp @P` 0P@  u 0P@ 0KٗpL- M1@P@ 0@@ K@P)   @P`ϏP  @iP <0S0 0 ^@hP P Kp 3/P U @ؗvؗؗؗpL-hM@ PQ@ RKp 0`D P   0@ Kp%ؗM-MP`@6P j 0p? 0@5K$0 0| ]K(חO-dMPp`P @  `P (Q  0@x0 0 ]K 0H P  `0$2`K֗֗pL- MP@`@ P@@  K0&P   b P M@Pl0 0 B]PP P KpC@Pӗӗt՗X՗M-MP`@;P j 0pᘿ 0@ᎽK$0 0 ]KԗH- M$  0" Р`мH- M$  0 Р`H- M 0(  Рi`@H- M 0( L Р`H- M$  0 РҗH- M$  0< Р^җlH- M 0( F Рҗ H- M 0(  Рїк00dz  zz`z00Tz  zzPz00Dz  ܣzpz@z004{  ̣{`z0zO- MR@PUpT WP" ppP!s pgP3B#0vq \3/#0vi [K NPu JhPj P| @P(jP(`&jPP P$Pa PZ  0P iUN `iVdi iPP @pX_ UPT W PgP; #iQ4P` Ppp`Tᔹ ipPRt1N#0vA L1F#0vq v[ 0iP 1S#0vr g[pX YU d` tiKT W PgP hP H EipP@ =ipP< OiKї}їhϗ`ϗĶ,ϗ̳O- M0PpXiPv`Vi@!PP)@P\HhhHUQ PN ,PHPUE PB PA @vP38P.P/ @Y  P- X ᲉP   X 3hP 0P `hV K Kី K\̗P/pL-`P @P "DUT  RQUT pH- MP РO-MP弒` p Q%P  0P $0  L `2\#0ky >Z@K, @C,0( \(o뒈P% ̓ƃZ%@Q:)PP 0 $0 9/PB P&JT1i#0kv YK`p@ $0 @P* @` `P*`0 @*@e  P$ 0@ 0`@mP  ႠP  傠@P@ d0}0P0w0#kk Y`@0@7᪠KhʗɗBʗȗȗ0H-PM@P 0004P  @/C PfUh xoBK0H0#0~l 00#0~m pY@K0Ǘ|ǗK-PM@ pP`P6  0AP 0 P  B *Q K|0#0{n 1YKX0#0{m &YK00#0{o YKƗDYƗ-ƗM-MP`p@@P; WP P? ,V` SP X`  ^ 00+00'TP @{BPv 0ը@P Kd0#0zA X@K(00#zA XK5ŗėŗEŗė0H-M@P  AB 0 K0tO- M@ 0p`p) P 0pP1 0 PZ:@P  0 P& P: ۰P' 0K z;@P0 #0} RXKX 0 9@P`06#0g =X D0=#0A 4X(KM×Ȫ—×—0H-M@ P0 P @: P P@K0\06#0g XK080=#0A WޥK0x—E—VTL-@἖LML-@QL-@QL-@Q/L-@@PL0H-@PP {Pi6P0蠧0H-@kPP ePS6P0L  0O$  0I0H-MP?@P r!K0$0q#0pA gWK0ѿ0H-MP%@P X!K0$0#0qA MWK0iH-M@P`p똅0Q p@  0P @P P+K0#0A WPKTP#PqA 0W#A 0 W@PK赾O-MP@q \@ㄠ  QP7 T+Q 0 BP \0:QP0E00P*0S0 @PP`0>qPpT*g F\ p` 0PSP Y  ^K&M-p:P@Q PP5 P' T!pD\:0 00P0002R1 :p0L>a b`pS F 0Q00 p AּO-M`P@q  TPpPD ᘊpJ!(R!XPpTPq[@TPP$q ࠮P+ TPP6 pD nQ :A70!$! !%"!$   TpPH Kt1[@0ㄐ  bP@ T+P Ap\ :Pp G  Z* R pPP @ >1P0W*c D\ 0 p `R`P P K K Kj^O-M@Q7p㠌O`T" Q&0 $0S Q0PU%7 @(Qxp Pp`Wp`W TpK PPpG`T PQPP`` ǭP0 Tm`㠜OpT Q`pV_0P $PU QP U% 7 @(Q$P`pV@Kp5 P/ T0@ R:T0```X0C20002Q1 :0 B>a a`0R F P  @KKpT PQPP K #ꘜ #ꀜ Dh YP004_  X$__༟_  ^ ^00৓d_  ?T_ӠD_ࣟ4_00_  /_à__00_  _ೠ__00w`  _࣠_s_00gD`  4`$`c`00W\`  L`<`S,`00G`  ߛ`s`C`007`  ϛ`c`3`00'`  ࿛`S`#`H- M0 0n8 Р\0H- @PP@(<P  PP 000PH- H/PH- H/O-tM@P$@ $ PP+ `@@P@/`p`0  @`PB @p;T6!0i SK,6!0iz S@K6!0ip  pW 0@`6 pW `@0,PMP p`0!C@P:P Q 6@P :P Q @pp`0 0 aP$K a 2P ~aZT $K&P W K@P 0 㦵||`I|VP 0tP, yP ,0 tPzV QPp R{Pl+aPD )aR~P] ㆍPY pᧉP,0َP K,0㻉P u !P ` K,0ᩉP  h ㄫ`Z,'$P# Y`V"*2E!0i R 1010!it R@$@K$@ `V $@T. -K=P  0P .Cz`P P Q\`POhP  0`Ŵ$@T@$` KPn!P pPx!PA 0)Rۍ8 ײoW7ǬpL-M`Pj#@P HkP 0o yP ᳵQ Kpl0<0`0B!0}m @Kp40J0!} QRKp뫗ëO-,MP $  @P P`P# P3 PKPPLpl7u!0p QKD7z!0pz QK`_`P?60OP ``UW,6!0pz x6!0pp 2@pPx:Pu PQp%Pr Wx @``UW Y@ pP& {_P!P w_pJP @oP 0o 㠳X ڴ PX_UV! ,Pf ``Z I_P@G_Pp t{zP {uP^ @/_T4z!0ps P@PP 0,WP4c!0p 40!po P@`p E2$SP " F2:8 63K30h30!p PH3!0pm PZ 0$  PK Q ^Pp$ `@P^0 P0PP^U 0K@  @  0@@qP yP y8 "pనP ` JvP $PU `p |@x@`w@u$`P` p py pZ  uP  ! ? P $`P @ 0@@qP,A '2@ p$  )2iX ṳ@pT  `p1@pT ᨳK Q@P ݷP  0@S@`流êc{㩗צ禗輪?ϤwK-MpP`P4 @P4!,0`㲋P, 0P2( P# 0 P%0  ` `K`0!0 0!0A lO#KTP!P 0^O  1`K'kӡO-TMP `P" PUP& @pPp*0XPP 5!0 5!0z 5!0A OpK5!0p O+@pP%/PXۜP  P pX^ PWe@P *@P:P QPPG PD ᨜W>@P:P Q{P P ኜl P  UP  P  PljP PWa \P]@\PL < pP  UP \P" P4 ttwPP P UPm  Pp P] P1/(Pr 0  ڂP]  切 @ p\\TP 0cpP3pX0 p,iP 0 @zPخ 0q V 1!0k 0000!A Mp _TK0r!0 M0v0@ "@ᛦ! 0M40k0!A M㠗à˛ۛs#o[pL-MP@P `x 0P w3wP  `PL0!0l (0Y!0D vM`Kp/OM-M@`@8{Pi pSPPM  0yPS 0`TPB `! ٔQB yTP=8Q# hzP0U# P( ZzP"B 0#P#S z@Kp0>!0A X0G0! M4/ԥSK 0]0w;_8~3O-MS0 pPP6 P PA @wP- `  0ውP; Č P? ]  0KOI1w!0k LK0!0kz LK09!0kj LK0!0kr LKh0!0k LK@0!0k vL K ߖ[/O-TMP`R@P1 /P +P1&V PKp㳰P x 0`Į PP \vuP! WvuP Ṱ`Px2!0ql AP2!0qA 942!0qr 1 SP- Y] SZPY  P PoSP 3 Wr rPhuPP1!0ql Kp1!0qD KPoRK R2QP 1!0qe 09z PhRP   XP"  RP $ `$wPP 0ȀPPd0 !0qi KP40!0q ϔ'8x/ߒL-3 @qr@tP@pL-`PI@PP`VpYPY@pL- @ qqLtL-@ qqLtM-P@ dYVP  |YPp `xY# }YP pjYWhuM-P@;YVP SYPp`OY TYP pAYWt K-@pP -YPP+Y`JtP PYU3WP'   ɟPU QXQ᳟ᯟ  ᴟ`V  YQ ᜟpL-MP@`vV V"P(T @1 iPyKpPP oB @Kpt09!0hn L0%0@030!hh jJ@Kp@ @KpG7_pL-M`P@P" %P P P@Kp~@Kp,0c!0mp 2JoKpO0H-M@P$EQ  XPC1!0np JPK0[PO PpPE K0}PA pP< .P2 PpP, K0P pPPPK0P pP PK0PK0軌0H-MP@yP P@K0@K0$0c!0mp IK0跊0H-P@@0M-MP@HPP3 `=pWP PW2P PWUMPP P OVP VPKl0!0gq 8IK+<0!0gA +IKKg30H-MP@PPPPhUP ~VQ K0h0!0dq HK0K0$0!0dA HK03s0H-MP@PP PP-UP ᰖQVQ K0h0G!0eq HK0 K0$0#!0eA HK0GK-M@pzo`P+ PsሠP# 兖dslP hzP*r 0㉘ P\pW t0V!0 sH`K  0`7/Pp 0S!0 SM-M@P`S P%  0pP P K|P}vP @P40Z!0 )HppK+0H-M@PPP q K0T0!0~q GK0$0}!0~A GK0Kw0H-P@PP0P P@0QRS/Q/pL-M`PV@P #P P P /UP Kp00!0fq G5@KpH-M`P@hnP pqwP tSrkP rP Q 00! mGK\pW  0@7/p`0z0P}@PK00!0 KG@KC0H-MP@P P TPK0$0!0fq %GK00H-@PP00H(r00H-MP@P P P&pP @K0P0!0lq FK0(0!0l FK0GpL-@`@PP $<lPpPPP PP P p/0H- P 0    C P@P$(,  ?"  ?" ? 0M-P`@U peW Kpp K 0`Fp`FV: 0 W  |KpppO-@MpR 0@x:```P P $ % & ` p P, , `pP(@@(  P$0@p $H `C(P$1@ 0, B,@@@ P @0`  (  in80 $:0 ` 29^0 8  @,P( % BR0( (0 ,堟 ᠯ `?pO 0@KO- MP@Q  PaK 0_0`@ppppp0#qG#1`` `Ȁ !d`!h`!l` `` ``  0  4 0 8 0! ! ! " "" KO0H-\P@XP TQQ0S 9 @S0脚T0H-S0P@PST@P0pL-@@SPPPpSPU SpCP `CP P `SpX9 PSp̙H-P@PSPpPT 8pP B`P19`wS\SPP mS 9 `lS @iSpXL-p@@PP 0/ThSPP IS 8 HSLSLIS0H-@PjP R00H/H-@P`p[P \ 0H/0H-@PKP R00H/0H-@P<P R00H/H- /PPH/O-[MJ@N%JaPhp`  IP7G* IP/YP f0 ! @! &  h0 R:  Jp @P @K eJPPP@`hp` JY U JP@`hp`YU Z@@K  0+S`}`0[T 0SPI 0LK 0DK"!!O-$MPp @`P0v T5p@@  ! `H`pX&&&  )))  p@@@T  DRPpA 0XL@4,$q q qpq  q 0q0Q P # ``&&&  ))) jTap@@ P  @D p ! $ (  !!! PT `P@ p@@T* `` 0DS" p "!1H@80,$"80`"40` `!, `!( `!$ `@ T` &`&& ))) K0jO-M `@"r&(vP?0P1P?01 ?01 ?0 1 `pPXP@P uP 0`W` ` r a"'p`00s0aƆp 0 `00s0rP KO- M 0"xr@#s`Jwp6 1  C)'X B0`&`0eb0F0CP'PPB' ` Bs B`$@`AAp@)u` Br@P @?P??`aC?0EpG1p`qBp@ KL-M@S  O      KH-QS4 S;Q\@ @PT:\ P`VPU >`pP gPU FT @@ ^Q @R P pPUwp@ 0cB0p  Q7#  0A@pr  '  Apw p~0 $  AR710O- M` p@PP% UH T       PU @$U" T       PU @ @KO-M0p P` U@00 $   2 PET P $ (  !!! U @Y  0 $ (  !!!  @KO-MpW Qe `Pv`A z`Av`a@`$``v`A ~p110As01@0$00s0Apw`Aq0#q1pw`AA1q0#q1pw`AA1q0#q1pw`AA1q0#q1pw`AA1q0#q 0s 1 1 q0 # upr a QpP `v 11 p0#d QpP`v 11 p0#Y QpP`v 11 p0#N QpP`v 11 p0#C QpP`v 11 p0#8 QpP`v 11 p0#- Qp 0s 1 1 p "KKKKKKK/cM-;>*#? c?@P*c?Jc?jc?c?c?c?c? #0 ? #(0 ? #80 ? #H0 ? #X0 ? #h0 ? #x0 ? #0 ? #0 ? #0 ? #0 ? #0 ? #0 ? #0 ? #0 ? #B? ? #?> ? #J?*?*#F?*?*#N?*?*#R?*?*#V?*?*#Z?*?*#^?*?*#b?*?*#f?*?*#j?*?*#n?*?*#r?*?*#v?*?*#z?*?*#~?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*?*#?*HIJK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~J?*#?*J?*#?*? C?*C?JC?jC?⏊C?⏪C?C?C 1pPpwPa`P@U@ PppwPa `P@U@PppwPa``@V@`PppwPqp0@Sa@ X: 0H-M  P0@ P  @P o@K0$030 l=K0ZpL-MP@ P P `Y  0AẚPP Kp& !PKpZ0H-P @P0 ۭo000H-M  P0@{P  @5P o@K0$0H0 =K0 YpL-M@P @ P` @ A0{@P KpT0[0A <Kp,0a0A <@KpkX?X0kK-`p@9P/tP0 P@U P8,2P  P &PP& gP'W  K`P@rUdW@PDP0P{  ~Pu PoP SgPg֝PaX# FgPYȝPS  RPI dฝPCQ P;DઝP@ P(  'P P Q jPP ty݋WYk֋@<;_u"XsWWt:WWVsVr4V{rtWjVgVVO-,M@APP T@@Rx0 P@U n@RkP@Ud 㗿 0㜋K*VRY @RS s`$ 0@uV K 0@ywP: P P5$@%RN @R.@ @_`0 `P V @ 0@RwPP P@@ 0E@K@Kws@$ 0t$PS 9PU$ 0@K_P@ 0Kp `@P ٿPT PU BP @P`T ƿP2`@P P 岿$GiP`40 :@K@K K PAo@KP P9$@嵾 0s@K30 :K K@, 0@vPU$@/0@vPJ@, 0@vP?`P @Pd@P jP ᯊ$,@P* V\P$ IP!  p P `X 0]0 P @I 0 N@ PU sK10 1:@P`C"KfP Z P9QA    0@ vP, 0uP/0uP , 0u@P@ೱt0.0 9@PH00 9@ᮇl2O(54;PKLLM0H-MP@P ,l@K0$0H0 9K0K0H-MP@i9P  0 QK0$0_0 9K0JH-M@cP  0wuP# QP `PV WrP p9Z 0_9S 0XKrKK-M@`pPP ޤP YPm YP  =PbQP | 1PVdQdP 0p~PJ  0puPA Y>  0piP5  0p_P+ 0pUP! $ 0pKP ( 0pAP , `0p7PpKpKIIIIII_IHI(IIHHpL-M@` @{uP 0@tPZ@/0@tPO@ 0@tPD p p/bi`)bFA`i@@xP) PP ^P B_P @b@P UP ᚈP L @V T Kp@N qKpp*pL-MP@P`Pa@Q' a@P "P Pgx P P `0 P]qPKp)O-MP@pϼ9P-<P3 `@V P, `PW Q& 嬼AfP#D20 C20 7`K20 7`@,cP( P ^pʤ1!0  P ^P U   0PdP"410 7 }K 0`sPaPaU P "0`msP 0"dsP/0Ys`P`00)0 D)(#DC{CBCP L-M@P T reP Kc|00 7KT00 7K,00 7KkA?AA00u  ~$00u   ~00u  p~00u  h~/*TL-@P Q  PXH- T/ ///P$/L-@L/8L80H-@LPP w/8L8 PL 8800O-MQ`L1`Pf 1_2P# Z( P^ Pn  P+ <0@ /pFWd -/@2 Vz{2~0A jpW` Z @T[ 1%2 "22PM Pᛡ  'PE 'P>  0lP7 0 @1Z.@KP CP C@C0+SPP00A 500 51 V1\00 5@1 V 0Z ỡK?>e>A>0H-MPX2 P @4DPT dU$ 8" )P, P!X150jA 5@K0,Q<PjA 0~5= S@K03PP  3P 0O00F0j& `5$0  8 vP Q 1/P K0)@K0(0[0jF =?==<<</0H-@P Q 1/ q)P Q 1/00H-MP T0@4 CPK0P Q 1/ N)0 .xTCРΠ̠ʠ Ƞ$Ơ(Ġ, L-P-(P HPᾍ 㺍K0:H- MT04 CP Q  Р0w0vH- hH8M-P@p`T @V 嫠`pX 奠H-Pp` @W p`T 匠 @M-P$@p (`,T u$@V (p(`pX ,j,QRS/Q00R /Q$R(S,/8 8/8/8 8/ ////O-MP`p͟ P3F0hi @尤P4弟 P帟AP2R0+.P0 / 0 0@够/] WY T'T2_0hA 3p / P2K0he 3 KPp .!0 5 KP  AR!Pp 0P"`1q0hv  0)P 0P  0PpP  P P0}0h ~38  <T 0᳨P 0 p<7/pP|  Yv7677766K56O-M`Pp P|30gi @֣P4 PޞAP030+.@P0 .)/&/ʞ/"}Z Y'2 0gA 3`. Px20ge 3`KP`.T" C2 [KP P 20gl  7`P  mP10g 28  <T0P 0 < @TP>Yy R,P  ++ 0* #+Y{ 8 /P P$P (P,P"[PK  8  <T0_P  0<` @6/` V E 0 P @ 0)P , @0 P  0PP 0 =P  R0S忝`Ӛp P  `堡 0  `+P| P| ( Pᐡ p 0`D6/Pm ᩚ0 `x+P ៚Ud ȚPa $ Pn @0 M-MpA@P P` L0 08|PQtA PP444x4x444xKPQPKPs QGP @PK20 FPP V V PT`PK VX<20x T ᴛP ᐛPf 10e oPKP:!$஁VCTA $@(`KP-$(PKP10 G<1001s0 ;@KvP`PK`PK0000 PKP$(KPK傔@PKp(00 r(PKv : j    pL-MRE `@P-PH -Py -P~ -P -P -P t-`P ֦P P,! 0+d`P/Kp2 0 (`Kp-PF |{-PZ hu-Pd To-`P^ <h-PX (b-Pn \-Pv $20v '`Kp- 0cKp- 0cKp`( ` `ѥP  0c`P 婓Kp` VP" /0cKp` 0`cKpUP , 0cKp|0=0`l0F0 \`Kp`9 䮖–I A 9 3 ' r 0H-M@P PPU U0N0 p0U0 7'@K0 P_@Q@Q:@P *@Q:P 80Z0  0H @H- M0 РO-dMpP@-`P. ZPP( p p p4A0~  P傒P@& P 3H0~ &@P L-KU 0 B0@RH3P0~m &` `B @FQ3T0~m qQQ^FP] 0~P[  0P  PeV # 0S Q:S 0U 0X1 :>0` f R*cB CQ  " PQa 2`QP P$@ @ P)HP& 1n0~ h1X0~ P1_0~A .&@P`]$1j0~ "&@`R @ ,P*   K-P#  E-P  X >-P `$ @`-P. $ K+P \0|0~h % ``@":Z¿vH- M РO-MP@poO` YVp@ @ppP@t30 I@@TPPEU 20n %p @~E @@@z Zڈ20 @ppT P }P] PnP+P^  Pp,PX  ,PQ  ,PK T   ,PC  p,P6  0 tP-@ T@` 8T+:0I0SZ1%: p 0 g0S*bB BT!00A %pP+ 0 l~Kp D0 Rp0'0 pQa 2@:7nfK-M @r p  @W 0"0vp $K`% }P Pr@ 0@P20@P  ~K00'0vA $@KK-M p@`P,<F |PP0  0P/ P@MrP( pP  )P* 0W0xh \$@0B0xw R$@K\0H0xA F$@p)r4 \0 }K@wO-M p`0P ,@T 0p4/@KrS$R0$   05P PO @Y ڠ0d0up #@ @  0@GP@T  p0 N}K(0X0u #@K-QH-0M`  Pp@PȧP  7P $ PPpKH PPKT0,0u #K,010t #PKQ%O-MpP` @P,` {`P.  0`P.0@rZ,$TD@U`R  a *b  E$*Bp20w O# K20A D#plph`_ZTP3 UE wQP LP9X20  20h 20u #p<$XK$ a(P 10h DPUL `p@ ` E`@  0pP W  4(P" 10h "@`P 0P 4| 0/| K00 "pU  'p@X`  'PK 400 001-=QL-M 0\ KL/@@P0KM-M` AP00nn p"&p@@PW PPPP`U@  u'KK0H-M Sʨ1?0ro  S@T t1E0 0C @ T@T L1K0rk "@K0C@0@T @ T T T:P^UP^UP^U  @Tڼ0f0rm @ T0W0rq  'K0P^UP^UP^UP^U R(0_0rs k7H-MAQ ʘ00n !K`@PQj k Q pA &` &KL-M@T0jS kQT0D0@T0\0=0 ~!@K@D R  &KTS @L R T0X0 00P00H0 l|*P@P3/*P4//P6/P5//O-8M 0 p(0 8<` 4 p p0$(,`9  7>I p B  Rdr0qaˁp&Rh @ap'"la0' p P` (@ GV0@ $p @dQF@TttPQqP'Tx$L qAP%@%@L\ DSL  PtpPQqP'Px 0qP%%sSn\C  PPEUtu`aq`'Ux%\ qQ`&P&fhG P``FVTvpqQP%Vx&lqaP%P%P$P 4Yp"WHp WdwPQa`&WX'|Qq`&$T@p&4bpDn@ PLppWTw`aQ`%WX'|Qq`&p&p| O@PdpPQaP&Ph aP%%($ wNL@PTp`aQP%Ph aP%gd%$(lA7PP0Uu`a Uh%\aQ  $ LX YCPdpPQ'4aP&Ph aP%%( |3L@PdpPQaP&Ph aP%%,g$P H$@PdpPQaP&Ph aP%a %4 !bGPPUu`a$<1C Uh%\CDNaQ  0e`PTp@AQ@%PX Q@$$8'D@L A@PTppqQP%Px qP%%< PyCt@ pPQPda`&PX Q`&bV&DXL``VvPQ VX&lQa  @$ ,<F L@ PdpPQaP&Ph aP%%L#0\ QIlPDpPQA@$PX Q@$$P$Hx4 M P@Ptp@Aq@'Px q@$$T IBB p@APTQ@%PX  Q@$S$P&, @2TD@$TdtPQaP&Th$LaAP%@%X@ D\ @[KLPPEUtu`aq`'Ux%\qQ`&P&\PY (`WGP4PEUdupqa`&Ux%\(qQ `&pP&fdhHpdP"$WTw`a$QP%Wh( aP%'laP%`P P:l `A,PPUtu`aq`'Ux%\$qQL`&P&hPS7_NPPEUtu`aq`'Ux%\ qQ4`&P&lPWHn^MPPEUdupqa`&Ux%\$qQ`&tP&tPsX `QB`VvPQ VXQ &\Q p"_ p#sD\KPdppqa( &$dl``F&\VHvpVdq1 lP!AQ! x#  |KlPH8䥿O-M 03 (@# pX0$0_0#sS S"#,;!  Rr@A a@&Rh",a!@$@$Pdp !a &Ph a "" 2/  `)2Op '@&T$t`a! "Th$LaA " "Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "` "P" " `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$@ p @)' $Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "$` "P" " `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$,@ p (@)' $Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "4` "P" "0 `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$<@ p 8@)' $Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "D` "P" "@ `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$L@ p H@)' $Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "T` "P" "P `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$\@ p X@)' $Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$@$Pdp !a &Ph a "d` "P" "` `% *`&VDvA$VHA &LA  Rdr@Aa@&Rh",a!@$ $Pdp@Aa@&Ph a@$$l@ `  h@&) $Rtr@Aq@'Rx",q!@$ $Ptp@Aq@'Px q@$$ Rtr@Aq@'Rx",q!@$ $t@P"p @%P *@$Ttpq Tx$LqA   Rtr@Aq@'Rx",q!@$ $Ptp@Aq@'Px q@$ p$@  x`$\| P$X P$T ,P ( $ $@P  "Rdrpqap&Rh",a!p' 'Pdppqap&Ph ap'' "|1RxrpR$q! "" ! ! """   K蜤O-M0 x`3@&|p 0$d0/0# StsSXqp' QP'#|;qP%@Ttpq!Tx$LqA!!@TttPQqP'Tx$LqAP%tp@%:_$@P(4Op!p'@%TdtPQaP&Th$LaAP%@%QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%@%lP$ P* !h"P%Udu@Aa@&Uh%\aQ@$@$QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%d`@%$p!``('@&TTt`aQP%Th$LaAP%@%QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%@%\P $ !XP*"P%Udu@Aa@&Uh%\aQ@$@$QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%T`@%$p!P`('@&TTt`aQP%Th$LaAP%@%QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%@%LP $ !HP*"P%Udu@Aa@&Uh%\aQ@$@$QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%D`@%$p!@`('@&TTt`aQP%Th$LaAP%@%QdqPQaP&Qh!aP%%@TdtPQaP&Th$LaAP%@%+h+rn<6_:OH- PPp@qQ:b pa@0 d 0` h `!!! """ ###  T 0Q @Q!( !,!      !( !,!      !( !,!    !( !,!    $ #!('! !,! " $  %&,(+!(/) !,!( * ,  -.403!(71 !,!0 2 4  56<8;!(?9 !,!8 : <  =>^!( !,!      !( !,!      !( !,!    !( !,!    $ #!('! !,! " $  %&,(+!(/) !,!( * ,  -. O-M-VMR P P p `\ 0(D @@ 0@@ <@@8` pP<04p,$Pd0X@@% %  !, ,' ,)H"$+(0! D08p 0 p0$`p0`4 < 76L *n0" (M4Pp D(qb` 0p&l\cTPp'` PdX ``&h@P!@P(P%*AO  CL`  LPp@ p!^ p $n!qbRp&lcd`'$qp%S\@p'PP%@P%<p8 `@ @T H04 .W00.IGY08 @%[T!'@$!Y)WX  "T[T  "0 40<@3?0 4O@  53B$L07!GP\P @@@ $%n  0$~0"/r%!b '|sp"$!/ &clP@"8 `%`@`&X 0\ `TT PD @ w@PP igy`'{H Pt@('`&(yw) "th{ " P@5oP` 5_P  /[M\N@[UK@ `@pX 0'P0#_0&Q'n4p b8 P&lc`0 P%'a#~or`'s\|`&p#0p` 0'< d dl 0D @Pp#g@pP#ywi`&{tT P`& y wI@$t{h@$p0 @P`6/` 6?<@0 P+ !H@+ @0)NP dH 4< `)p ` & )n"qb`&|s0&)q"b`&s`|&`p"\ p  'd h Pp@L pPD ` h `` p%g 7?$pi0 7p %yw$p&kdp'$ig !dk85 !H3Od [2 <`V9C hT 04p#`pH'o#~!ard0 `'|s&#q!nb`&s|`0`&p!p00'Dpx | 8X` t h 0 l0 00h0`( 2, 98p 2/  7 w y*g0'{ti0#*ywp&dkp'd`  !2#< 3 "0@ !."\ "#,T0 X ! 0 "l ` h 40 l`hx pt p08p7;J` 4 0!@0!~ #?)1 r0'|s)N#!1 ?B0$C\pLp 0#X @) @ @$l p| H < @p h p0 0p@@p\P7Dpt7p hp p)G0)yIw"p$KD p'"I GB!DKJ!@@0 4Mpl|h H 0 0@#? N*1 B0$LC# 1*N ?B0$C`L0#@* @ @$< TPdH x p 0 0ppP@h@Hp7Lp 7Tp p<*y*7w9%G0#{t I0#%y w@$t{pD@$@0@Ap4l 0.| 0#?d .!1 <3h  .1!? 3< 0!`0#h < dX0Dp@ pp@Pp7Tpx 7 p`!I !gGi#w@&kdy@$#ig`'t{<`& B NDE1DB@`H (  !/X &!(nb!~ &lcr"(aol `'s|D &p!`hp'< Xd \@p t @ hPXp7/\ppP7o\` P,gp$Y$w W yiP'{tX P%,yw$ `&t{%M`&|`- %E<d x P" P`P%o 2P#<3 P`!' >2p#3.!2 #<3.~0"&!/r 's| "pp`Pp'`娠!t D0 hp  `@`@@P@x`| 6|`@ 64`PDp `@"Y"gWi!wP&kdyP%!ig`'t{`&iL@x @tLt0@   T8=?-t " "')x0 "+$$7 $)'9 #4;| "0` 00@p@pPlp 4 A9N6 C$~0$"CMq@'yvT@$ @| 0@L"d0plc&#T`&s|\cP%%P @L@ p ppppP @ D@ᔠ@含"Q^ S%n%$S]aP&ifP%PP)4`Pfd0@R!$[#D:dxTA&vaDaF(v{3 p P4p|`4p`.y wP.g ip&kd0)W')iYg`%T[`&t0x p 0 | 匠08@ y>$v*!1! s }0#yvᤠ0#p \S%*dP%s|l`&hpj @&`d p P  ,w y4 .gtP i 04 $0 ,970'{t| 0#.y wp&dkx p'`Hp"%0! 0#p0#0p'%npb0'"qp&clp'0 0 ` p@Qpᬀi^f$S%%,S]| !YV(Ġ,!P#"_#D "S\LP$cpp%pPl@8`P@p P4 p4  g8p i(, P  p.WtpY pp ywp&kdp'.ig`%T[x`&P@@H %~ ! |!/t !r '|s n "%qbp&cPlp'`P`&P`&p | x H p `p  P `l.$`p "DacRA"&Q&,o#"!Dd| "cLd>laP@$D0@$P@vafd:`@hD8 'YVa( WTAvaDK+% d $4hv0 4;4@0  ;70 @ @ `'G I*P$KD P%*IG  DK @0x PHp$n$|0  /'!b &lc'^ "$aoR`%S|\t@`&P'xP@P%` @ l@  pp ` P฀ἠ(d  l0c&*ĠL 8 %D @ $jP&clĤz`$'G`&D0`P|`L~IkĄxz` #n4JH8ˆx[9 4P <``'YWP$KDP%"I`G"wyp'DK `p'@ pP0%%~0l ?H@!1r0'|s!n0#%qbp&cl|Pp'`!`P`&p`0t0 x @p|  p0Π@ AyNv&C$$#sQ}T@p%Y0V'  P#l_c&dpP&c$DlL@$@$ @P@ P 04 Y GWI@pP$4KpDP%.ID`G` p 0 `p p|`.!DK!x@t0P$pt !$nl"qbp&lc"^p'$aoR`%S\H@`&P"P@P% `p0 圀 0 P@`  P0PAiNf%C$~@$,cmq`'yvP&{`帐p[4P p4@4P!iTp gH@LP@p P @pP!w y@`'{tP)'`&)y)wx0 "t{ "p p@ * *n " (qbp&lc(^p'*ao R`%St0\l@`&P(P@P%0`l @0帀 p  `l@ P@ 弐PyPanv(c&N`&)s}A@$yvᐋ2@${0H p040 !wP@y40@ 唀T` 79`@ `@P!ig `'{tl`& yw0#t{x0#p`.^ሐ 0& 0 ?&N.1BR0$LCx 0#&AO@%S\t`@$P.p`p'xp^|0px0|p 0p` t <0pH <0 ` x T qi~f,s'Q'"c mP%if%`P`%LoC$cp`$C#4L< W0#Y0#\p!G0XpIp`0`p 40 `4pX` X0\p0\ p ig `%[0 T`&!YWpx P$D0t KP%p @Ppp0%|@ 0!|?%~!1r0'|s!n#%qbp&cl0lPp'`!`P`&0pd`P0~&P @0H @ 0ᤐt 1I>F(3#q# CM@'yhv@$p<3#`P#s|0 d<l`&4pP&!iP`dp g0P80 40!W< Y)G`0`%[I0 pT0`&)YWptP$D0KpP%p 0. 0@"?.~|  1r0'|s n0#.qbp&cllPp'` `P`&tp0 pt px `\ P0@`X k6` QI^F S%>P%!CM10#IF0#Kp@`404@'Yh Wh0l@0H@d 0@0 `'GI('P$KD)P%(IG "DKt "@xP,n@ %  /%>,! 2b #<3 "%1 ?0&cl|P0#`,`P `&0 l P 0 ` IH < a| nF*c&&"C M` IF  K@+8 @4`4 pt p@  #Gl` #i | g IH`$KD ,`&,I Gx DK0 @H %%. ) "",#)n!%! /b &ctl "਀`)`@ `& H ` d0hp | !.I##"F "'CM!ILpFP0!'D L/C$l $CL,Ġ|p''Dp@p pp @4p4 0x| D@  0&G@p &y 0wI|p$KD p' IG !DK|` !*N.x .p  B"*qt!|s !.q p$CLp' @*@ $  |p'P!_'N"QB"P$LCP%'AO!CL! @" 0 @0# 0,^@@$$>  2,R#<3!$1 ?0%S\0#P, `P `&000 o ^#aR`%\S#N`& Q_B P$C !L #P% @H0 `.^!0H0 #n.b&lcR #ao`%S\ 0`& 0#P40@ PP<:PL d`0Hd0`0 X\0X0\0 <0@0<0 @00TP PPDH|D 48ppp$`(0`0`0h@, @ Ro0KЍO-MRJ @@Pp0!>Qd`pd PpQ `aV K  PEU: E`  PE`U PIU  PK#P@UH- 0H-@ PP P 0HpL-M@  ` PP@*`0j``ϊ@ j@0*@@J@ C0lt`T``{VKp ؞]|6*)bd . ۤOHG1 g&3gXhJp0ZY9Y/z pL-M@  ` PP@*`0j``ϊ@ j@0*@@J@ C@(t`T``7VKp ɼg j;ʄgkAكy!~[тRQl>+h+rn<6_:OyO-Mp`hPW xm@pZ pm@pK Q,U@P   kP  kP(@  0P  k@ % UKv\[O-MPP SpQ U@R KqP hP  @`0AP  0 P hP 0 @.P ` 7h K_hO- MP@`Q RPpSK/P th@P. ohP+ khP(   0@P  ;P P 0B P   0 P @h .g ghKK-MPP Q@`RKpuP g/ GTPN ' PzPG  P? $  P8  P0  P#P) ' PTP! kUg! P   P  PP  iPP( hT KXƎzWK-M@P Q`pRKPZP g@P  0+P @ dgKO-M@XSd R`pP_ Q PZ .PW Psg@PC ngP ? jgPQ  0PPD  <P> ` 0P D P@  0P P5  0uvP.   P/ 7gP+  0`PP! @!p`f fffKp` p`  f`pM-P@pQ`P Pf@P  0e P foBfM-P@pQ`P Pf@P  0A P ifoBfH-P@PQq`p,kP'kP@ "kPkP; kP kP6 (kP, kP1 4kP8jP, @jPDjP' LjPPjPAAAAAAAp0H-P* @P& PP P! P $zP 0uP <pP HkQ0 D00̴P/0H-@ee4P PR R 0HRPpL-` RPP @P P V   wPP pP lRppwu$ _RPp]POPOP/0H-@@^(P !PGR !0HBREOO-M-M@p_uY`PP l 0[P "P PP 'PP`pvP PPCp@ mVP' IP{ !QP P !vP P P  P  PP U1PN @ RQP  傊  @P  vP{ T  vPq P`qPc gP\ ePS gPL  N PPA@JA@ZtYX p`W PPP @ P PU f@ PT  5A!@LQ!HQp` P&$fdp`pP`Xd)d@ @)Q %Q  !Q Pp`T \'0KЍ9N!LQMMJL1LYKM-rMMP8 pPeP`c@P, `VV!pPP `P#@!uP  SfP  PKKp.P`"!PKD@*!@PcK/PKIIIIHH-@Q" PP`T P p*P `V P`VHpH-`P P@Pp`P pW`K-(MP p`PE@PP @T5U3  OP P B  @P  'uPu T t uPk Cd@@dT@P`P PP}  ~OPv PP AV    tPK zPFPC @" P: p (P1   P)  CP" c  0e@ +eT@ P&bb@ @O O ?bbX@ @O O O KFFqFDFEEDO-MMP@T$ ( * R( SP  PQ$ 0 {%Pe{ d`Ph{ dp,  PAPE ` $` (Q? P@( Pd$ K(0K$ P; ({ e(a\/U"ကNP* (aV%U%ER/ bQ Q i`PㄱPP)ip0P @uP%\  pP `uP%\ %q@pp@r "rrWPT pPpv`&sqWU   ? ?   @ Q@Q$PBx(/NPR (pP 0p(wp @'P` '~P%""RpQ p&#!RW  ?p ?p  P QPQ $ P@oamaH j2 N$8a(6aKJCMB]@%?O-M`@@ DR `@ DRjp PWKW , PP  @Z  P ZPKJ H@p 0Q` `PS` PPUPFU PQRPF` 0Vb`C p@DI BN@CZC P P@ P Q PP QP QP @R* Q 0S@0S* Pp0`0S f GRu  PPmꈢO-sMM`pXPW V ZP p@VP8b` K PUY# @T P( b@ pp`P 0 ,P P@VP p@0`PVP )`pP P00/pL-P`P)/ LP" @ ` a5  FdLP !~p4P!`PL!Lp:t:4:P/0H-(P@!PL!0HL9M-pP4`<H WLP+ @ `P E R O YLP Q PP 6/P PUQ L@U PEP 8/EQP8P!PL!L@9T988L-pl L@P Tn LP   u dL@<8870H-pPl K@P Pn KP  P0 u AL@077X7M-pP/ ` @R*r( P QVRQQ၀x` 0 KP VR B!yQ pp60H-0S P@ Q  R@0CQ   !T @ 00H-@P Q PR00BS A 10!60@00pL-M@P ) 0`PS P V 0  0zP@@AKpP 1S QKp@KppL-M@P ) 0`PS P V 0  0zP@@AKpP 1S QKp@KpK-`P p@Ww P QQ``QၐyX 0 JP R 1B!QppQ3H-`P+ @R'r% P Q R!rP QpwD 0 JP p RQ``420H-@P PQ  Q@  !B @ 0Q/ R B /L-P @Q!P/pL-P@Q `P 5/`V$P!PJ!pLJ0P/ R/Q0S/\/Q0S/!/L-P @P0S  P/0H-\( IP P@P , SJ0@000/H- oH- oH- oP/L-@c L,J5/H- oH- oH- oH- oWY[??S[/O- M`sPP sP ( % wIP @p` cP  a, cIP . [IP Z  Zp|`Q |sPa  GR Q[ V#Q A R K IP> ` 0 S  0 S \ C0/o"0 S SR @  \ \ Q  Pq ZIs@KrT! prKk BIprLXP{ P5I| 1I} -I@Kr."..-+,+L-@0S0Q DO-M@P?CP= PbP)pY ]`9/P uCP-DP0 p WH`cCPvDP p W-CQ KKK  pCKO-M@ 8rpPi PE`P@VB \p@pP @pVprPF !R 0 0 S S0 Q @@  PP'P@U  qrP @@@  PPP@UqKK-@P6`Q Q 1/P  CPK`VPpQ Q 1/P  B CP pWp PWaPpGQ Q 1/P   CPE`FU`P/O-M@P QPABPEQ(%!G'! GP8 Y2젟 I pQU Q`P:P`V 6!G`V QP 2!zGPU  9!pGX} =!KOeGf%R%&%N$0H-MP FP @P UP P 0P K00(0hA `@K0XP"(PhA 0S# (- #G@K09$##m#P/L-<@Y b1K LG8"0H-@ h6 FP LP9 PF: F; FA 0HF""m"K-MQ* pS/ P@` e VFP !@ pP?PD    _PK81a(0mC 1d(0mi K 6 FP @9 @F: F; FH A |FK h6 qFPL@9 @hF: dF; `F!e!%"-! ! K-MQ/ P$"` p SkP, W6 @ e EP PPP   P" Kp1a(0mC L1(0gA 9 K$1d(0mi - K 6 EP @9 @E: E; EIA E K p6 EPT@9 @E: E; E 1QA!mK-MQ* pS/ P@` e 3EP !@ pPPD     <PK81a(0mC 1d(0mi K 6 pEP @9 @gE: cE; _EH A YEK h6 NEPL@9 @EE: AE; =EEK-MQ0 P"` p 0jP- W3 @ e DP PPL    P K`1a(0mC <1(0jA $1d(0mi K 6 DP @9 @D: D; DIA D K p6 DPT@9 @D: D; DQI)0H-M P@ @ @K0O- MSF PUG `P  \Bp⟐@p{P (lh 0PX8 Y<  e C@P p Q PPM `P@P!Kd10|10(lC ^@K,1a(0m1d(0mi  6 DP P9 PD: D; D@DA DK p6 CPTP9 PC: C; CyqQ1K-M`@PQ ! B/hP- T .hPP- @Vp xF/hpP, P T.h@P,  0    @K0 (0nA 0(0nA Pp0(0nA p0"(0nA l@ +!@oCK/kC-!gC.!cCK9H-MQ$ p` e B@P P PP: @PK1a(0mC L@K 6 CP `9 `C: C; C@DA CK d6 BPH`9 `B: B; B}E%H-MQ- !` =!gP, p e QB@P P P9PB [@PK@1a(0mC 1?(0fA @K 6 BP `9 `B: B; ~B@DA xBK l6 mBPP`9 `dB: `B; \B1Uu uH-MQ$ p` e A@P P PP: @PK1a(0mC G@K 6 BP `9 ` B: B; B@DA AK d6 APH`9 `A: A; Ai1H-MQ- !` S!fP, p e LA@P P P4PB V@PK@1a(0mC 1U(0eA @K 6 AP `9 `A: }A; yA@DA sAK l6 hAPP`9 `_A: [A; WAA a a M-MP@0S  KM/rpEtFU oGp:) {`T v q!@P  `f fT  f f fpK]  //0H-MqP@XPW @R K0P0(0kg K0(0(0kf K0] 1  AR /H-M@Q 1/PT PQ`PpW 7/P<`V Q 1/pJ PpQP*PXQ`PpW 7/p= P8 `V`PQ 1/P UP PP`Qv K0(0qk x p`KHP`PQ4PP`Q )| 1 AE-L- M P@@ A@0S 3/P@KH- MP Q QR<<0Q Р`0(0oC " Р Р(0(0oj  Р * :)//0H-MP#"q?@P l&"dP K0DP/P?)p(A 0@K050H-0P@7"P?9"0H?P/P/P /P/P/P/P/P/P /P/P/P//// R/ R/ AR/ AR/O-$Mp`P@@Q*0ء  |@ 0  v@T&i1e 0(P P> P pp@PA`PAP KTi1d 0( 00 K P  Qd Kh00t00(ii K  K  KI4i$2/9/pe/\e/PeH-Mc\a@XQX`P@}@P 0PpPU8 lP50W 0o Pp> AKPKP%3P pPx0{ 0od T0s 0o kP$0d 0o !Q1Q}M-MQH Pp`Fi@@P/ l 0BP(U; UE1 0PrP `pPPD |5 0qPpPU8 lP50 0p Pp_5@KPKP2P pPx0 0pd T0 0p P$0 0p %U5UM-MR4,! EP1 1 @0P|`?@V- PPp@Q PQ 6PpWKKML0 0 40 0 PKIj!L-M@QS S p#P  Q K PK PK$0= 0eh QKpL-M@`E_?P j 0PA 08@?Kp$0 0v ,KpM-MP`@E8?P j 0pA 0@?K$0 0v K(O-Mp P`  `RP` L (@P4 !@P0P6 &0 05P]]  @P P% @p1y ƟP&i    05pP3, (& 5P'@o@po%P5  005Paȥ P  @T:0 0  5PM@ {PBT  p5P8 0  P/  ?P( *  ?P  z?P P   l?P  P p  ^?P@P  )5P 0  P  D?P6 0~; ! 2?P # 4P P p?PK P   0  D @# 4   P @pP; " 4PDpPԒGb `9XC P  >P*  ?P$ Zh 004P@ >PP; " 4PpP`G 9XC P  >P  }?P V 0 0a4P` >PpP  , 0 v   < ?P    5 KՇD@E7SrWmECNGOIGMFS| 0O- M`P@q>pPAP<aP  gP `PTpWDU- `p$PF 9XC+ P  =P  >P  U00 03PpK%>pPpKd =@orK 07/pKaJC+O- -p@PG`9ZC$ P  =P w>P Xl0ll00Y3IP`K4 x=@obK;H~ABO-dM@J;P 2<P4<pUt 2 0 %3OP&N` P0b =?Pt` =7 P0b |=`(V s= WA 2 0 2P&P P0[b W=P`P L= P0Eb A=PUH 8=  1 02W 1 02;P  00 2;P Pἀ  02P@`p@p0V   2`V`  <Kvޕ}cܕ{ݕ| wܕ{ܕ{~ܕY{_EZܕgO-$MY2P@\ p@3x P3P N `3  06P? $ 42P8  -2P1T  &2P*<  2P#$  2P   2P   2P  2P  1P  1P  1P|  1Pd  1PL  1P4  1P  1P  1P  1P  1P  1P n3 1@P %8P Pg`^P]@ 0P  1Pl 1PX  z1P@  s1Px(  l1Pq  e1Pj  ^1Pc  W1P\  P1PU  I1PN  B1PG  ;1P@h  41P9P  -1P28  &1P+   1P$  1P  1P   1P  1P 0K@8!2KڕؕP242`֕(ؕ//ӕh/L/0//.....l.P.4..-----211111p1T181110000t0X0<0M-P@]P U `W @cP pWM-P `PW @cP pWpL-@P P`UPp@ppL-@P P`UPp>@ppL-MP @P`T@P %.P PP P@Kpt0P 0C P@ P P@<0b 0A -@KpӕҕM-M`pP-P @U bP 0 P P-K-K$0 0A KѕM-MPP@p`T-@P# VT U T# -@KbP 0 P U P@K(0 0A @KЕM-MpP\P @m-P" `^bP# 0 fP +@Z-Kd0 0m dK<0 0A YA-yK-ЕЕH-MpP`F\P @ 0jP K80 0m 1KQKaϕM-M`pPX]P @-P) `:aP* 0 P# ,@,Kx0 0w \ K@0 0A ,KuΕq5ΕM-MP@` ]P p 0@K80 0w  K͕}O- MP_ p_@UU`aP PUHz%`V aP7 `V@P@zT% P P@T @P @P K$0> 0z I K˕P/pL-M@P PzP `ῬP@Kp$0> 0z %Kp1˕0H-@TPQ0;`P0O-M@PY `pP [ 0@㌫P# @W. %P Yv0 ` ၬ0v WP  P @W`'0 0 K@W @K`` fP 6@P K<0" 0A 6% @Kɕ1ɕP/P/H- 0H-P@P0@P P P Z.P P P O.P  RB P  0H00H-@ PP P 3.P P P (.P  RB P  0H0H-M`@P'  P p? P J XP \/ .  MP  PpPPPK$Ǖ0H-@P P P -P P P -P  RB P  0H200H-(@(P P P -P P P -P  RB P  0H 00H- @ P P P -P P P |-P  RB P  0H0hh /pL- MP@_- `PW 0P @KppL- MP@J- `PB 0pP @KppL-M`P! @P.-q_ P  yP  PPPKpPKp(///pL- M(P@, `P 0%P @Kp(0H-P @*o &o UPDP 0DP0@@ R0<<0H>H-MPP @ b @P` pPBP ` VPKM-@P,`(Pp P P ,P P P ,P  RB P  P `VpP/,0P/,u0L-MP ,@0P p p P0' 0t ld0- 0u bPK$0* 0s S|TO- M4 @pPQPP, P,/`W)  8P9V fP6P1 T:PI P <& DPK`W9PV) fP%[ДP 0P :PPPy P]UV ,=/PR `fPN PI ߚ P P CQqVP  PpMD i2XPjfPMP P P Q;q!P<y 9 t9:o8 k Q;qP<_ o<\Z;X;UH-P+ @p X9PW$ `fPP `P :PPV;Pv "!%pK3"l!%PB Ho$ ( (K0pp* @ T$p`PYP $0 3/P   pP@TH;P EKpK!,!h%pK)iɢ H-     ///////// / /$/$/(/(/,/,/0/0/4/4/8/8/</</@?@r/O-M -MPQ `RG Y PlPP`KS@TpP ` P_PP ZPP( P3PUQ X@ T@ \@ U@o 01S 0 S:S: U` U[$`Uϊ HU8: ER5 a0 p$p?(2J$!%{!@ {A?K$AE{ {2A{ { {3A` R0 { {A{` R0U p  R AU`0\ X  0 \ X ` U@QP @`NPy  Qk/ @ ` =U! \xB@01S 0 `Cv`_V :`#2p`0` U`0 U PP|pU@ PP, d P $'MP `pMP# YP 6 P# @% P PPP Pp|0 0tA h0K0\0|0 t nMPPK Ѝ cۛK;%"7pL-@P `PQ PP pL@pP/P/P/"P/("0H-P@P P @@T@0@T@00H-P P @P P @ @T@0@0@T@00H-P P$@P eP @$$@T@0@0@T@0P/,%H- M0` P Q  РG /$/ /$/H- HOH,/8/Q000R4//HP//T=P/YM-P@NP U `IW @G=TP pWM-P `P)W @'TP pWM-P `P W@ PUQ pWpL-@P P`UPp@ppL-@P P`UPp@pM-MP! @p`T@P' P>!P U ` W P P@K0h 0hC b@!K` `@T0 0hA P!P @K/@K薞ޞH-MpP`6MP @ 0P K80 0lm #KCK❕M-MPP@`pT @P& WT U T&  @K RP X ~P U P@K(0 0mA @KƜ0H-@TPQ0RP0P/ Q  /P/H- DPP/P/P/Q/M-M@P PP t3 0B P3A 0i E``KPPPn Pj LP Q"Q `TP`\`PP B`d2/P US POpPQ&0  L4P7 P`V= 0P `U\Pg ```d2/PY  PQ dP \EP1 0A |WP D`Pr5\``dP/PpU 0P `U\pP  ```d2/P U\pPPA `dP2/`P=``P`K褛ě_O-4M`P0p@D PapT$LP 9+Q(`PpW  P     0! 1P _P $PS PU PP YP] P @ PI @TPZ 3  $ v w`pPpGr P< 0P@P$K 3/pP@P/ UE $P@V>W<%@F(`T%@DT@LpT @PLQ9PL Q$P(`' P LP@$ Pp(` $P LW~$@Pp $$ ZP@LTD`$PP PM PIP@ $0p 3/P  PP @TU$P / `(`$ P $+L L$@`p$P  LP@U P L0Z P $ (`PZm\$pGPLp$ LPwN$PG $Pk$@P=  S`p$LPYV @P<:$P [2$Z0,=T 0 jA `B@$F(``  pGPU7 S` "(  U 0P @rP  pP fZN gT`V V&   P\``d2/PI $(@W$P\>P M1PP9 P 4 81/PKPKPK0 0A P`Kp(,lLH+DL8,4LБ|D\NMl7ĄM܄M-P@ `p 0piP`xp&P PU\P U\P  ``d2/P D)xP`P p `U\PPU\PP  `dP`2/P`pL-MP@P P4 R / R+ @0`0`F V$*0S:ZPQ   3  0@`P  0nP @p@Kp0H-M@PR U @P P  0K0U 0K0 02K00H-MP@U @ P P 0K0 0`K0 0 K0pL-M@P`S V @P P  0KpV 03Kp 0ߎKpH-MP@P P PpP `P pW0i 0nk PK|0a 0nl cPKW pGfpGWPT ]K@O- M``P`@P d3 0i 5pK\P\P$3 0i PpP 2 0i Z Pz #P| \\PU wPrP{<pP P| Pu Pn Pg \ 0@P^ .P 0 4PP YP@  -P  P5 P. @TUXa  P[!0 0in P0 0i H0 0i @d0z 0i 8@0 0iA e,X~~}{{`{@{{K-@p PP ` q P P q  YX ᰑo||J`/`/\/\/d/d/P/PP/h/l/x// / 0H-M`R`@PV p\p )\Q T 0[0-\p& \T@T wp 0u 0x ȿK@V  R`Q  R@K(0h0 y 㬿Kx$0@  3/P  0Pp P(UWp KKpWpKM-` P#p@ P`P T@P :P [pW4@@11///0H-P@P P@0,1//// /$/(/,/0/4/8/</@/D/T/X/L/L-@P L/0H-P@@0/K-MP$P/ ~@`,P "Vp$q(0 @bPpWV `\`PP\ >`d2/P% 0Q 4 0@lcP\@PPB ?`d`2/P 8Q < 0@zcP`K\@PP# @`d`2/P`KTbO-M@Pဠ `Z V Y Pm V PPp qP PI PU VP PZN |P VJF P`p<`8/P9 PK` nP `V V> X  PpP8iW\PPp `dp2/PPPKP P L 09P ILPK vV QKPKP s,LPZ ^P PppPKPKPK+,O-tMpP,p@ 0T 0P0r 0(0 1P$} @   `pL "( b Q   T@T+ Q& @$YJI*Z  ZH KPJr KPD pWA @@P !,R 0`,0  P0 @@`, @R̽P$ $Yp@*CK0 0k 0 0kA W@K@  BT@p4   }*T\[ZZ$[O-LM`P@d,gP4`` p,@( ,Tp ,XFPP` P _P QPU pPPq P3Qk PgxPP%^PZ P `  nCPY `V``V`:p P4` QDP: `V"$`@`P P Q$P ZP|,@$``,PVP0` P4  P ,@0`( ( 0YY V 0YC@,@0 K$K P ,@P$Pӳ ,`P P  P 0,@(c(PiT  , 40` ` ` (P P0`(P P@,`P,X y,p@P(` (P0 T ( P0( 0`,@c 4PH $@P\`@PV`$P ZL  @T  P P34pP`VPPVP,LTP   P`Pq<P,LTPh `VP,@0`s(0( pXWVb @ `(S 4 K dHp E pP>@``P\P@T.HPEPPZ P #P \`GP\\BP  P` YKM-`@RPl` p =P PU4  U/  `p2/P$ P P ppU  U  U  `p2/P lppL-$@r 4P@@mQP/pL-`P@` Aph$ `,d PP$`Pt0f ,`o8i 0`4`i8`<`pL/PP/pL-`P@` A|t$ `,d \P$`PE0f ,`@8i 0`4`:8`<`~ pL30%PO-MQ P@     0Q X RQ Q X Rq q X rqq X r    Y Q X PPv Y $pp$P" X$P$`$`P ! P$Y ((Y 0`04V p`0`V& X0P!044pW޹pH! 1 2`P1 (! Y`p 8pP @ P pwW  Pl"  K 2JpL-@Q P`R:PT  1 12`PpP`!0 0`4PpqJJpL-@RP` @ V UPT  1 2`PpP`!8 8`P 0H!0P/ 1 P/P/0H-@oP Pm PPeU(0H- M0D P Q  Р//// ///Q400R,/,6/0H-P P@P P @K@T@0@0@T@0/P/P/5/ ( pL-`@P5P  0pLpO-MP0 Pp@0`Q$;Px@ؿPPֿPPZ @@AY   ᮶ KH-P `@_ᴿpPU ᱿;PPP/pL-@P `PᖿUPpᒿ@pP/冿H-`P@5P V `@_wpPU tj;PPPM-P @PZUP`NpW U EH@@@@QW7PWAM-M`pPP% @U :P 0 P 0 PPK,02 0sC 㿰K=M-MPP@p`T{@P( VT02 0sC 㟰y:P 0 gP U P@KU T S@K/=O-MPG P@`p ᮾPPoPVPbt U U E ᝾@ U E ᖾ@@@ pP#  @߼P Z z`V @ w`TK,0 0qA #K?;M-Mp@4P! PP* `19P 0 P @ p! 0z@K@0  0rm KKW:H-Mp@P3P ` 0@K$0  0rm 㾯K9M-M`p@4P! PzP/ `9P% 0 rP @ p 0@aKT0 0w ㄯ8 |KLK8zM-MP@`4P p 0@K80 0w Q IK7y0H-MPPQ L02 0sC 8K0@W9PK07M-M@P& `pPRVX  3 0ᡃ@P@Kv-` P@xKxᆀKKP//PP/ PP/ pL-M`PQ`& 'P  @@p @P2 Kpp0' 0A 㩮PKpDP, Pv 0ᜮ- qPKp55V55M-MpZP> @P`? VPU@A @A 0qB FC BK`3 ?$I 2K44>40H-M@P5 PQP- )@fPP P tP@@Q:fP +PP@P@1@D@X@ P  c8P BPCPtP LK0PPLK0fPKK0pL-MHP`@aP Kp`P 0ńKp H- M$ 0 縄 РH- M0  竄 РH- M0D0P0H Р|H- M P0D H  . Р@  FH- M$0 РH- M$0   РH- M0(040, π РH- M 40( ,  Р\  LFH- M 0 筀 Р  w ,| wt E|\ wH |0 w -| w4 { w | w { w { w| {d wP 0>v<` { J{0 Nw { Bw 0Iv {x H{ 0vPL {\ 0u@ {( 0v { 0v  { 0uh z 0u,( zL 0u0 z 0u zpL-M@P` P  0  `@KpKpH-M`@pPPq`@ 0wKV ` DKxH-M`@pPPI`@ 0vKVh `x DKH- M0  0v РH- M0  0v РH- M0  0v Р 0 u z 0,uH 1zt 0t` y<0H-P(P @( yP00 y 0tlh y 0t0h 0tX y40H-PP @( yP00 y 0td` y 0t(`00  @kvM-`p.@P P.`P xP  ᇀ@yh000  n -v00  Y|l00  Iv0H-M@PP\P P (K0(0O 0A ㊪K0`w%K|  R//|0 \/0/M-P| P `@<p0 M/P/wH-`@Pp!@P ` P@$P/-'$//Q PP H- ӵH/O- M@P PK P PH A| X\ ` d Kh  0@  0kPPP T T0ST @RT @R@TRTT R T R- @T0S#p S X 0$ |Q 1/P LPS1\`d@ٷK@K X 0  @ 2 Z 0L X 0 \  0P` \PHH@ʷP`YƷPQ.PpH HPZW W W`⯷VH H gP᥷Pa@Pᠷ 0`PqMP dPPdY ʶPU  0 pPPp1X 1-`sdPcPsP h-PPPQUH HP@GTHH|Q 1/P H@ HK@K@KvO-$M b P @`JPm2o pP^@ TYU,  pPNP PQNPA X AP4 @ݶT)۶ pP!P# PɶP`ǶQP `⸶V@⳶T`pK`VppPpKH- M0,4 + Рܹ00Jꈺ  xvhFX00:x  hs$00-ꈺ  xYh)XsD00l  \DL<os(0H-@P LesP <PP0Q00O-M `PG P0 <``@PP /PA@pP=PpE  PP(  PP A@pP=Pt !lP Pu 0ᤧ /y`K$ /p`KPH-@H p P`PW`T0H-MP\ P @P )P @K0p0i 0A VK0HPi PA 0J2l K0T(pL-PP@Up)<P0`{ `| p K- M `p2@PR0&p@@`  Pq@T )Q{ P| w`P@ A)P:  A Pp@PPpOP  PUpWP @Ӵ`KV h\P0 0: 㙦@K@KPDd| `O- MPO زPZ 庴PpP@ᶴ`P ŲPN @ PF PPB p✴W0!p 0pP @`(P) 0  p]VP :P`K@X`  SK< 900E 0A `KX@ H- 00|PO-,MX M/@ @/P DP 'Pp`PP ,P ` RP P @/P PVQ @@ p Z N@@\P Z@Z<PD PP ZZ1PDP  @8 P Y PV@ Y@ Po@@ H弁ϲP\ p↳Wf ႳPڀ$pP`@ {$ 0`p>@ PjUT5K@P^!@yP % RPȀ `K p@P K  0PP @;T@@ڰ@<0 K$ \`T0ð00  aܭ̭꼭H-M@P p`PP. P  R 2/P P`@K|0Q 0xo d0M 0x| 80I 0x~ ㈤(K茭DL-MQPKP@T $0 0wD ^S pL-M`PP @)P  R 2/P @Kp0l 0A 4Kpp0q 0o X0 0| 40| 0} Kp4  0H-M@P@PK0PU @K0PU ,0 0wD K0 M-M0p0@P @P @P# `V X `@K ` `V @0 0wD 㰣K$ LȩpL-M@P@ PP ,`` #@KpM-MP`P @OpmW X Onp`KH-M@P `pP P@@P dpp @I?K$0 0A =KX M-MP`EP @JpW X Gp`KH-M@P `pP P@@@P dpp @K$0 0A KM-MP`P @EpW X w`p`KH-M@P `pgP P@@P dpp A@K$0G 0A 㝢K`H-PP `@V V/ p4_ p` @tH- PQSP,/pL-@P PNpP`H릧p p@p0090  e500)H  8U(%mPL-@qPL//00ꤤ  ꔤ3ꄤt00Ԥ  Ĥ#괤ꤤNmꐤddM-M@Tp0P0P P `A RP K`KX 8T```K`K@H-MPQ p@!W " 1`UI VGpE`Kd! `U6 V4P`KpU W`PpW# P p `U Vnp`VKp`K`K`Kp`0 KTfL 0D0 PP00QH/H%0H-@P P*d hPlpPPPPPPPPP0d 0!M}(,w1P0h00  w ԠĠP/M-pQ W @P`T@P PP  MlW PPpM-pQ W @P`T@P PtP  M<W P Pd 谟 R R/Q/ R R/Q/pL-PQ 7*@P U `Vtx`P PP PT P p@UYPp舞pL-P *P @U `VLK`P PoP pL蕭5pԝL-@P #,L-@P P/P/P/L-@ LO- M@P K[PT P `p pp0 `=P P !pQ P p PL !pQ  Y0PP8  ሀP8 P1 ᷭpPap ᴭ P# P:$PP`P qpYܬP p⓭WPppp<Bp9Ppa `W 0ppP P Jpp 0pP P Pp p p 56埭Kpp pDXPL-M@ p /KK)P/L-@,  L`M-PP@Q. PQ` (`P% 3 &P pP  XV ` P8 wTP>O-M`ሐìPD ῬP>Bp ỬPF#P5 B#P1  rP @P ` P @ҫP ` ˫P  pWB`p p`( UK`KP/M-@ APPpp`4dXpW8*0Pn"Po"MQ/Y"sO-$M`@ `P`p`#   X`K ppXP@2@H`@D  P7P T`Hp Z`F P; @ QpZ APpVZp Wrrv ` `P x@ P Pq! `P   0`kWP `Xp@<p ᜫP;@ P0P  S P0CQ  q0X0 V0PX0 PHQqFpV`pW`K `?PQ)娈1@@P @2 =@6Pp3 `BWP  0VP pWY R 0VP @ ZoPa p pPL  P @  0VP5 `@תT. ӪP*@Ѫ qVPY P p  0vVPz @⩪pT⣪Z R 0aVPi  @ᐪP`PF፪   B .1`FV @` @sPpPGpQ pGW   B !pGW@FP Q TT Q  B i/TP  P R `K( K@ @T PUP  pOP P,`pW& P@PPPyUP! ᾨp)P @T`Y Z   aK Z p pPἩ@PmᴩP Pbᱩ> PZ P⧩UᣩPUPZ1 @ឩp +U`P 0P?    IU`PP+ ṨP= pPoU m TP `PvP ᜨP pPRU@X T P+T;P&`K@X  `K`P`K?00  h܈̈00  XЈ00  HԈ00  8؈Q/ RQ/ Rѥѥ/L-'@TQ R R  RR Q RP M-M@R! PᒨPPጨPpቨ`P7 Q ᏟP$ puW\`P PSP PP  kP ᙧP K8 `K!#(YH-M@pPPPKQ QP`V:P `W WtpႥB Q @IQ$'Ԅ('M-`pP/ @PP' /Q aP  FP   0 QS  A` @y褄ăH-M@PPpPKQ QP`VP `U UBE oU20Q @ỦQ/%%O-M@ p(P KO^LAP~ PP 5Pu Q PPi PP` D`Q FR  aPL     P  P 02` J@WpDQ ``  `P V      P 02s2W` PK4K!o"4%]L-@AOoQBB@ TPR STQ 0PK-`P Q@PRpP P RRR n  `0 QSAH@ R RRR O  `0 QSAHh@ RRR 5  `0 Q3A HG`O-TMP @1P`.`P) PpU  0PEp@VP$,KpH` P  ``Q  `R `Q  AQ/o"a`P Qu QzPPu ߥPMp  `ۥ@ ֥4`P  `@0'P^  0 P_  ќp]4  ˜P[ ŜPYP 0B0R 4 ᶜ0pMP4  ^pGᒥ@Z፥@ᎥP Q4 0P 4  ᏜP 4  <p ``nVa K K K K K K K K K0H-@PT  OPD0pL-`@PFPXV RQF 0RP`CV Q?Q*`0 #@BT&PA|p?R R 0SpY! | ٔؔO-LM@ɤPP`@@ Q@Poᶤ R~PP QP ᾤ ᠤPU@ ឤP ᙤ,K, p 0Pp   0Pi ,K, ᗛPc  ᑛP], ዛpW P 0B0R , |P @,K 0P?  f  PP K@T F@ G0,pK,P Q  0P  FPP,UtX@Q KK7.$vxpՔՔO-LM8pCP  P p` <P <P <P! <PK@p@d/HnPU*, K 㲝$@ PᢝT @ @ :P #E @P$U ϚP/ `}`xp@0`K>PT* `-T1 /T` K j Q Q 00K )PB P@Pm Q> Q@P@ d  0 P&2@ -P P(p > P0`KCP@ 0pnP 8$ p$ P QQP #X /Py K3"0A 㲔 K3"0 㦔2 0:2"0A 㗔R2"0 ㎔ll2 0\b`〙P=d2"0 2 0820"t l2p0 pb`\1"0t / 2"0s N1 0a`@P$ Y Kx10-<10)D1"0 %1`0 @a`A@0"0t 0 000"A _ܔyԔU_Д$֔֔;ДєєєӔД]ДҔҔeє5Д Д,є1є$єϔwϔДДДΔΔϔϔUΔϔДє[ϔДДДAϔdєO-M@PP` @P\ X4 0+ pP Q P QX X 3 0  30`QM BAPT```````````````````````````````````````````````````````````` P2 P{T vR $ 0P       P `3P@p0`@\1  0P P*0  PhP0  !`  P0 UP  Q 0 IP  EpWP`` @VPK͔[Δ5\͔}[̔̔%̔"̔'̔̔̔̔̔̔.̔cX˔͍0H-PP @ƠP PĠP P⹠UP0P0M-P@PPT[ ᣠP pᠠP p╠WᑠP pᎠP p⃠W{Ppx`DqP!  0S ` V R  04 CS/o"!  P pLWO-DMQP`P KV: @4PPP$p-  0P* !YY ,K 0oP  P,K PpW K KP O-MQD pPP=ZW@ Z PA WP ` @ןP; p`W PP 16P P@PṟXᷟP `upP W  )\`d`2/P PT @ᕟP| ᓟp_匟P PQ R 0 SpW.P   |PD fZL0S 04 CS/o"! PQ  .\`d`2/P CP*PAPP6UW} . \`d`2/P qQm  .\`d`2/P c PXYV} P" PPZ= .pP ̝P  \`pd`2/P 9 PU 2Z  )\ `d`2/PP@"P1"0A ㎐`@ ƞPᏝpʘP⶞U[ K$Sx$tMh$dGX$TAHK.D;D$@5<տ!”6”V””>”uH-Q P`P p@nP W  Hs``P`p]P pRW  M- MP@Q pQ3p`VVVH  pC  g0PS@=p`VkViV   `0 QSADqP& `PI`PUJUHU7  ߔ `2  f0PS@, ppDqgP`PU%U#U   Ẕ `0 QSA DՔa `` D˔af  ɔPGKO-M`PVpQ Q'VvVFP ᄔ > `X6  Q035VbVsP p k `Xc  Q03bVȁ`QAP@V  0 =`V  3PK Q0SApf ^Q( G R R ``V PA @U0 01$ PU:PV zKP Pr oPK Q0SAf  0 p, PK[/)J]IV700Z  GYYYpL-@PP ` 2@`לVT p@pO-MP`ޚPL @PDHqp ὜p5P k5P  0P% ⟜Z!P ϓP KP P P <PP\@K80F"0A 0@K\ O- MPwPV ZPX[ B`@0P6 pP1P9 Py U ~P1Pw Pt 4P p 2 oPW p&W ͙!p4P  0VPU  P` V1`1"0A 㿍 K($Ap @` 4PP P  0#P"  p֛W K0"0{A `0"0{ P0"0{~ z8 疛 K@Џax?pUA|M-FM Pg $0Txdh'd K*1PP-D K!1PG$,@P  K0P@K K0P* K0P!@KpP P0pd" ( @D Kn0P @K@4 ` :P P4 P4 P4 P 4ґ P 4ؔđ P 4ʔᶑ P4ἔ@U44Pꊶ赔NBzqx2pL-M@P$P$0@P\ tY30@ 㺸Kpd GKp`P PR 0`lA4Kp`-Kp(#Q$P$$$  $ $ $$XjKp@Kp貔6/ڲ!űM?}K-MPpP @P`0 .P (`VKL0]"0vA 㕋@K筙@KPuH- M0  РH-MpW< `Ph@h2P> Pb2P: <\2P6 (V2P2 P2P. J2P* D2P& 0"0uu @ 8Kx0"0u| 0K0 000000 p K(㯔ίYO-MX/ `pPP@@P1 Vo$$$Dt!P p Ph3"0A ۊU3"0| Њ@K2"0A Ċ@K;㘐P# "P GpbP "I2 P p X!"tP642r"0 ㏊Uvs2"0 ㄊUkhcPT  PA  4PH   `K P 4P `KP `Ko4P0"0v 0"0w = 5U01"0 -| %  O T0"0 U@K虭iM`m SɬŭiK-MPZ Qn @Q ƴ PK DAP`T! 0 PX`@zpW: ^P8 @p`FOP0 }P6`^YP pBP @p4P0W"0zA 㧉ph0 "0z} 㝉pp@0U"0zA 㒉@ Kͨ00zF   FEvE00j F  FFfE00Z$F  FFVE00J(F  FvFFE0H-@P! PQ QP oB0PP\XP P P@0 LE:eM-pPH P@Q QAP P:@P%P0 P6kQ$ P `U P PLpP <p$ DCCTC奔pL-`P R RP QQ P 0S SQ @T@T |nQ R S勬P pS pL胬pL聬 pL{mTL-P @ P PO- MP@PKPc傖P_ pP{AW[x@psTx  PQ Q` `Pl  Q QP P`P\P @p+ P& P!Z'P1  oP-  PP( P Pp@$@K  @P Q@P@ P@ PL0."0A 㼇 K šL-P @ P PO-MP`P KPɕP Õ@pQ@Pἕ P嶕Y pQ pQpP Q QPPPPPaPp[PVPQP|Tf@P ᮮP~ pPy DPp p6P P/P P<!vPp Q  Q Q  P-AUm' @'P QP.P)<!80n"0t Ɔ Kp0"0t 㸆p p@p0"0A 㪆 K`0"0A 㛆@ <~0!,x)a}$<CUg=AO-M`@`P PᲔP`DP@`P P  AP o ᗔI-P B-P|pḋP< g`Q= `-Q~@XPSP>"P @**pF"WP PP Y@@P P >+pP   0P) `#BZ@CpPq >Pm `Kt2"0A ˅K1 "0s  2R"0A M1"0 1&"0 㨅tt1 0p`a`㙊p0`1/"0 㒅DD1 04a`ㄊ(1 "0A ~pP1"0A sP0M"0t idUS`K|0:"0A U| x9:y۞ž}!4:љgYĕŕĕe} ݘp6v=ApL-@L0`0P P (0 0PppJ8Q/ R R/Qo/pL-@P PP@`UpP Q Q Q R Q Q Q  P  @P@pO- MQ`PP KUH Pp@` P;  `Q QWpݒWܒP Q Q@@ ᜨPᗨP`ὒY K \뻖͔P O- MQ{ @pᡒPtTWw T Px W PP ㎒Po pPW= P P T.  )\`dP`2/P! `0P   Q QP  Q Q` `P `K`KP` p8W` 6P `PV? P P T  )\p`dP`2/P X QT  .\p`dP`2/P  Q6 R3 RP % T  .\p`dP`2/PC>T  .\p`dP`2/P| `V PTw  .\p`dP`2/Pe `P QQP ` pⓑW[TY  .\p``dP2/P`2 `Uh Q, P P P# P`T .\p`dP KO/T  .\p`dP`2/P `P`K`K`K`K`K`K`K" p"l `"\ P-.L @"< 8/4 -BmbUŒJ=H-Q `@P pPP W  H?@P P P PO-MQf Pq`0p@0PR PWĐPR`P PK&PB p 1 0| R %&P- p0 0gX (&P p U\ yX\ X00C K K JE5%O-M`:p P:\ ‡P .P:4P @㵇P5 U:  @ેP P* @䨉P`DpP* 0`P K0/"0 сpl0 `0ƆKP`@|P 0Kc=IÓvՓK-MP`pP@P V V3 DPU,@1"0ts 㐁$ 5P PDYP `  PU ^P P` 0PRp0"0tt cx [P`0"0tA T`pu5, !"KE“U!K-MR, P@pP, `(P3 @PHѾPPG bPC(0 3/p@P P4W!@K2N"0 1R"0 @K 0S6  3/pPE  0@Q6 K&PPT1]"0i Հ0 ,10ȅ@@P K00S PP$0n"0 1/K@K0u"0g 㞀l @K 3/pP@KYΐY$JhKň} O-M@ᜅ` P: $P ᐅP:P pP U: p P P @ P@D`pP*  0@KP@@P z 0K뇔ŇpL-M@P` P  0KpL $0"0 KpYK-M@ @P R  @pP.P* `2/ pQP   2/P P   0p囶P @K@@HP"PA 0  @K%O- M0\@Tx Ps@P< ` Pi @ P  㘵PPеpߵ7  ㈵Pp P@ (@`ᮍ V2ᩍ EP- @Pᨶ P`Ppᙵ`᩵ Spp 㯵P @xXKKS80pS0mpL-M@`T0`00bVPUKp"6P/KpC0P0S H- M40u"0 ~ Р0S /큔 P R H- M40"0 ~ Р R /ቁQ  R//Q  R//   /H-  @H-Mp`@Px 0KH-Mp`@Pg 0K   /H-Mp`@PPT8@ 0KH-Mp`@P=T@ 0KM-M `@P* pTp  0WPUK `5P mK@^ŻO-M@P`|Pp whd0 0?0 Q _p]WK{GO-4M@gP\ #Pc `FPL yp @PP]@TZ kP @PP `$ $ P  $@P pPp@`DDP @$P 0$P@Q$P  `PC P P(8 @(݋Pq p` ً@PP@ |PA lP(@THP @(@O#pP4 ᮋP0 P婋P@᧋!P `ފP @╋Tp p`@(T@ (PPjP (@pP] P @kY(P QP $J @PoᘊP.IP % P\ (+P @ |P PM #P @P ᚵP $@X PvPp; $` P @P P@ BPs ZԊ K4b"0A | Kt4g"0" |`T4o"0 |8@44 0p d``ႁx4S"0 lX4]"0A r|$@ P$狊 `B3"0A a|$@ P`X|3"0A M|$@ P`pD3"0A =|jD3J"0 4|((3 A0SPa&E`z2{"0 3"0n }2"0A |-52"0 $2"0 1"0n 1"0 {1 0pa``׀$@ P$  K` @1"0D Yd12"0 {HH1 08a``奀$@ PF0"0D M1"0 {$@``;0"0 {&yyKryqqq9wL~vooo~uk~wvv}x/}}xwLpMpLp7y8xuLnMnLnX<BuhzvuZxnwNwxL6\"w00B\  Ln<>,002  ^.|00"  N00  >00  .H-MP `@ p` 0yP 0x 0   Q  KH400 0KHcr1{n'r(rcqqO-M` P @$RP p|P Pi ] 10XI pQP 0ÈP0 P\崈P# ᲈpY (W P1 p!1␈YP  00Q  x00I:` @kTxKr rrqq~plp]p=kO-MP`hP KP`F P% tPz @Py pvP |@P ` jPj \ Pt p`IPT PX p P/@  P @T-`t(P d"`PP B`P  P ˇX K p@pu phkp@h0"0A by< z Kl 7o #o8  m4\ O-,M 0P@ႇP `r@px@T= P 100 63 0@㗥$ x10$ M`P\qp@L1 0 A @4T@` R  0䐟pP p  0@P`  0\V`V@``V~Kgn뮓fiGo;gnO[fUn00l  5\L<00  %tdT00}   y00m  i|O-$M$P`@P^ ᛆPW   Ꮖp ZP;J }P  }P p }P \ }P H }P4P& XP RP LPFP CYK0"0A w@K`0"0j wDD0 04``|Xjjjjjg___'hO-$M@P 0T@ P @2@ 0 30@ ,>'1 0pP `㨡威@⤑    0Ӆ  `ƅV` @PD@1 0P$ 1 0P1 0x R 0P0 0fPPPPK PPd`0 0KKHi+3aYiahIh!ggggEH-@P$ PP `P% PPpN/o2 P p?W`p@@`@M-M@Pp |P6 P|`PL`PH PPE p M!`p@pV) P%@P4 @1f"0 vp`@Pp P# 0n"0 vp筄穄`K0V"0 }vK`PXP V B`K``@K dc?bbbP!#O-M/P @pPኄP`pᇄZEP  {P5  {P3  {P3  {P3  {P3  {P3  {P3  {P3  {PKx`dP, P( P"P$(P04P<@P HLPTXP  >PP `V}p,KpKp~a|aaaaaaaxa0H-M@P@P`P  p@PKa`PD07"0 {upK瓃K7^P P//H- GH/pL-MP"@2 `0  _@e>P L@Z>P T@J>P T@:>P T@*>P Tth@>P T<0@ >P Tuq@=P Tea@=P TUQKpLKT TKpLC!`]m]J]g%]' ]\\g\]'\U004  *$008  (~00r  n00b  ^ ?|h0H- RQ00PSSP1T$$44$D0H0H,J0HE@TPU dP00HJ0H輝0HV0H-@TPQ0JP00HJQ /Q   R/H-@@P`P p`P0S /Q000R /O-dM @ P>P `  UP: p Pp幞x`x`R ` P!  p  X mpρ`ZX``KP0a"0A zs`PX 琁KZZZO-MP PG @ᜁP?q@p ᗁ{PA ̀P; `;@yP8 p0 PN G 0p'P+ `bP.  ]@YK1t"0A s@K0|0 0"0 s00"A rtP"Pw 0rT w 4@KjY2XXWW NdZX00DZ  _ ý00෱(  O೽H- 嶝L-M@PxpP Q KD0!0000"hA rKRRzVV@/L-@M@Px0t   . UP @K@P pp  皀@KT( QQL-@M♩P @P0   . %P @K@K@P <p  f@K蔗hPPH-MP@p `p`pP~P P 88qPKH0!0400"hA q@K8xPpPTTpL-@M@QN!0 . P2 `V> 8 (PB P0 a*` J` kJ@*@ A@ k$P$~P, &Q" KpP ~p `V0"0jf qKph0"0j `0!0L00"hA pqKpNNfRfS:RNNR&RH-  z$MM/ $rQ/0H-MPP @ᐨP0 S )K0K003/K0O- MPP pY OVTEY S`\ P8 @GT5@AT/`>PG PVE`@/TV X# =P1 @2PὪᴪ0 S/ ˯K@VYX( KtP @Pᜪᓪ0 S 㪯KKX K003/KO-M@`pPX  `P$ @`U, ~8 ~ ^pP+X4 PX. Xa}PPPK1Q"0 ^pPKT|P$ @}P P@KXf XP K PP0q"03pK@T |PKMM@/O-M P>PJ M~PC`I~@pt uP ` uPE Q? P P 0 ^P P+|P R}P ` ~V K0"0A oh ෺\ ೺ K00"0 oXL,L>KKlpL-@80`0P f0 0`peKKK౻੻yO- MD$@}o&_pUL}@}/ R@ ` @#T8PP!P <pP*@0 p @ֽѽP" #P i}P@g} P@\}pTKpKpK5pKM-@D}P%p`A} 0P01S R2W WPP8pP /P&p`!}V/W }P`} 0P 01S R /P`}V0Q O-$Mᄙ  \po p =8 ⋝PZ @@PTEQ `` sEpJV"  0A0Cs0S*P#_R 00Bs0 S:P P -R .R .R -R Q-R !5  ppQ u @?p@ !X , U!5KFnEEO-Mp`@c|P1 p0- W|PV\p Q|H <10P#P`U U*P$ P PrPUoP 0`#P`lTHT p|WKK>Ō9ん}Ō EٌM99XDK- 3@ BR0!0\0p@@Pus`@qsP V V  FI/@R>sPP0 Q p0pW0G.Q 0P/@.S 0pPq`V R0CpPq`V A`Gv`VA`A p2v`V 2wpqQSP`P (P_P  PW /@R  r@P/@p:s5@P `/P/PP:rP/rP @Px /@0.RPqS  c.0ps`Wo q5@ 0 QQ\ SSYSV0p`P@`%Np@WJ@5@.P&/@Q<A.0 pPs`V 0Q BpPs`V dA`Gv`VA`C p2v`V 02wps0SRU@0P URR KApCwpWApB 02wpW 2s0r RAQ/@0 ps`W /A`Cv`VA`G 02v`V p2s0wpWR S`0rpS  P0rpS  ApBwpWApC 2wpW 02r s0SP@qPDH-M`@0P0 _Q KUpp0 0I9PPK< 8001K|>`>3=>==ὌO-$M` ```FzPR @PAzPP @QPY p-zW,z  0pP) pP4  0PP` zV PU P[PX 1%"0 k=81"0 k/p\1"0 k@@1 0p@1B"0 k$$1 0a`p0 0``vp 圗g@@X@ yKP @ P   <0+"0A Pk<..:<---r<:;---O-MM`\pP@pP4 LpP9 @p`PpWP p @pPH  pPl  pP 5"0 CP X5Z"0 dP D5g"0 Y`P`5`"0n J`PR4m"0 <$KoP  p$0$0 VP] $ o$ 0P  {K,PP pb@4w"0A j3 0pc`}o`Ko$ @0# P   o KC @- (3"0  bo +P6P:@0@" Z B @A 0"j1 A0QPan} XI$w1"0 mZeH1"0A i,,1 0pa`n X#`K A @"A 0ixx0 0pd``nX 号``K:Z9)))8z:.98j:):\&]&X&r86q5&&&55'''659J74987600t4  $࠵p00d8  (`0H-M8@ P ] XK033O- MPoP0 ~w`P"ppyw@ nP @ nP#P9 P4 pZwWPP" K0@"0A i K0L"0j h0 0p``m<0S"0 h<  KN22(3 32p#q#p#4ϳpL-P@0`0 ֿP  \6P ` P PP 0 D6pmy1Ӹ100t  %d๴TDK-MP@ vPTpKPv ` Px Pt  PvUPKO- MtP* vP"@ vPPP% `~VpW1 iPA u @tvTKL1J"0A (hK0R"0n h0 0``m`p0Z"0n h0 !0@@1lp0`"0A g< vK\/w/P'//pҲ`O-MQc p`@PS vPhd1 0ϾuPDDuPFW% (p$$  0ᵾu R S ੾! puWꈀ`ppV ᑾu R S ᆾ`uVKiU)-gio!-O- M@P᧞`2p(`P 0PS(  9P)  R=  2/Pc T`P2 0 A@pZTP=@0 3/PTPX @0`1  0@K$0S   `3/P! p 0 @`@K. 5,pW   07/@P@``p@t ࠿Q K 1/K@K  0ᝣ@K  0d@KN,m+R,!H*O- Mp0`@tPPT ,(2 @0tPx@X> QP t 0ჽPi ẝp Ἕ!P  rPX  0P h 0c ᠝z8@ P?tZ5  ytPႝ8ᄝ P ;P! 0P  0,iC8x NPItZPKPKyIdKC)dI(k+cH-`@P\P  0p@]pL- M@`P-v FP ` 0 3/KpKp`XP rp pKpPPsHfO- M@P K2tq&ps 0fLPW 0@P PQP Q!Q  tKqh!pp 0P P U ՒpV ϒPP Mlp pS 0PɒP Q Q0t0 t0~ 0xP尒Pj P``WsP\)q㎓Ts@3Q9 ((((((((((((((((((((((((((((((((((((((((((((P P @ xx`rV`|rG 0P=P QPѥp|Pp嬲R 0-Z 0'gP.Pp pP t  U 0 0Ppg 0rPAPr`P R 0R   P# P rPprQ pvrW   PQᜎP`rU" 0㨑# 0㢑勑P,Ԑ`РYS ሑpQP QP FP   0P ppbW ppvrKμH- M@ P:,P pp  Р РlP/P,`/H-  @ q0^0H- MPA@P@K0@HP pp p(0a"0 cK0) P /H- q XpL-`P@``@hP q T T:@ DqhP T@p0]O-,MP@p`Pp ``APtP Ppp pxL Pe @p ` p `  a `  PQ1"0A cPZ1 Q Pӻ ϻ ˻PK ZPP    PQoP$ SpP K0"0A bPKP `p Pn\p@md00@D00"A bDp\qE@/H-  p$hX0H-P@0 8P PJ F 0H@////H- M⧙)P 8 408P Р РǼ pp/l/L-@p  t0  = S RQ|pL-P@`ዌ᱋Q pb`Q PpqP t  P t'pppL-Q8 @PPQP ᱌QPU# pP`pQ `pVR3Q pPU .TQppL-@pL-@ptL-@pxL-@L-@PL-@phL-@qlp0 x! R \ t    P  \ |\ t//S"R/R| //|/p0 x( R  t     P  \ |  / | @/ t //S"R/R|  /0H-P@UPp0t  0p0 x4 R  t ,   P  \|   |  #R/ t  S"R R|  //p0 x( R  t    P  \ |  |  #R/ t  /S"R/R| //p0R \ t  S/- R \  |//\/t//R/p  t0 R/= S \//|/0H-pPR Q t @3 &-@ R@, Q* |@$@0@Q x@@P~ yPzKP@0PB0 tQ0@0@/ H-XMP`IeP P; @pPW K褭P3 @UD PL P3 P6 K K0p/P`個 0gP0 *1P-0a"0sA !0("0p0E"0sA _P ,PP0W0<0M0"sr m_R@Ko#C0H-MPAP @P K0@0("0pA F_@K0'@K0H-MP@PrmPP`omP  0P P\mUPK80m"0} _PKPK O- M@P` 0 0 1mPp -m^\X0 0 F 㲷1pmWKa A و00ཝ  U๩00ଢ଼T  ED٪4੩$pL-M`@P<P  0KpL $0m"0} ^Kp O-MP`Q $2"0~k }^KR s AY1"0~ i^K cAYPU lP/pl@dP plW@rP4 P@P/ PzlP P 0"0~ -^KRP @y Gc  /P kP `KP@T0"0~A ^8,K: ^ t M-M`Ppګ@P ὄP  0KMN,0|"0A ]ëKH-P@lP`lpρP `kVH-MP`DP @kP`kpᬁP `kV` @0"0 ]`K`tKjH-M`Ph@P KP kP`kpvP `kVPH0"0A S]CPKP<KnH>8M-MP@ ukP`Ppkp/P P  #PWkUPK`O-MPciPB @FkP:p Bk` XdP |dP  bQ)Q)X&$˪P1 `ᯃP, TjP'p kWK0b"0A \@K0v"0 \0 0p``aH0"0A \<j@K[HIH,M-M`p@PP d+ bPP$ W D- X@P ( / ʹP pXhP2 P@iQ KpPpp@0:"0iA H\X.ht`? `@ A K(0:"0iA )\/P/0H-HP@Q PR S T 0HcQ0 0 0rBCQ/j0H-MQ @P PP@0"0yA [PK0PK0pL-M@sPKpL=PP# @``y P P-P P{"PA 0[| zPKpH  ( hKp9C0H-MQ @P PP@0"0xA o[PlK0PK0H-M@Q@0 PPE @`-V@0P/ xP+@]P* P'p-Vor@TP6U- W@ K0"0lm $[KP|0"0ld X0"0lA [@K00"0le ZK7WM-MQ p@f`P P P Pd@ ౳K@K,0"0xA ZK3gpL-M`@VH P.`PW (`PQ p"`PK \`PE H`P? 4`P9  `P8 `P2 _P, _P& _P _P 0"0nh jZ0 A0|PPa\_KpKpKp$e~Г7"$%$0H-MP@P K0000 !0 @@1'_K0PQPO-M@`&!`@P $  Q QZ Z,Q! :Q`pW P`waP@ pXPEW,Q`PUw ``uaP PX`FUm`pWu P`waP5 pXPEWkpf@^@@@W TaPP@VM  ,` 9e ^@`@ P! VeaP` pU6e ^@`@ P VPaP` pU %`U `U  $j1J"0mA 1Q0"mm `190T1C0"ml \YL.0<sgK@`T PtaP @T@ZV&  `E^^pW P`pGP@UtP`@Z V  P[/K(000g0sSCocpL-@`&^P ^P pQ.Qp0H-U 0@xPḃ@g0蜪H-M`P@p0 ሧp pidJPKfP`PfQ6P PfUKH-MP 0P-P @fPP`fpbPQ P PfUPKpL-P@P`QPpP {ep dP pepp"9`P eP@""0ef@@p@p _+pL-@U 0P `N$@GfCfp踧  ?p P= ,`   ڥP`ụ붥PPPU R PU@  06/PP  +3  /ЯU 5PKPK8A `@  ᛥP% |wPPPU P   06/P /㛯U PKPKPK`P8 3 BKx H-MQ @pP`R  W [P K[pW:GQp 0KQ/H- My РpL-M`Q P@P  0b`KpM-0M@`:\P x1P0: P P\P2 `pv) W, P)P* P-W#- K$  0K]Q p `$0``Vp 0KW h DPKV WVW VP [@g;[W D G [ ؓpL-M @P `ảP  P_'P @KpᮣKpM- M/`[P, p#P$ @GP `]P pW`#w@V W` |P `!'P K`<#^jK@`@O-MP 9 cP8p` c 0Q,@CT0Q,@CTS0S 0P@+U@+U  @凥P p|cW K K KZK-Q+A0PQ' @Up@T`\0@Vw T 0C0PYt`V A`Ev`VA`D P2v`V @2uPt@TS @X0CT 00^0 FZo  L-@  Q@T L\@T.T L\\ QS Q Q A@Nt@TA@A 2t@T 2~qQ0S  O-M@`PS:^ .P^  No0p ` *Q X .AoS0    0S  0pGZ:30 Ar R "A B"r &R# W : `:\0P`pGZ:-Q .QhpGZ:]pGZ:VPSSQ C PZ E 0pW W A@qQAG 2qQ p2pwQ 0^  0@pW W A @r RA G 2r R p2pw R0ZD.PG TH:  [P ?|  ^ R @P R.R @PPP^\T QW Q A0Bs0SA0A 2s0S 2r qQH@T`PKY< !  0P  Y4 Y1 0*S. R  @-0@s0S:00@s0 S: A@pP R @00@s0 SA0@"s0&S#* R-P a@pPKKL-@  \  @T AQ@T.T AQQ\ XoK-MPUG @pQ$ `W' U>P;   0ZP/0 p ppW&p0 p P PPppW`%PK̓pL-Mq0@P `X8 `d`6PKp`2 /pL-@##PP- P) eX .P `PQPQQQ @j wpl`1/PpBݓܓ0H-@lP P1lPP00H-@lP P1lPP00H-@#lP P1tlPPlP P1dlPPlflc ll06ۓK-@#ѰlP1 P `1;lv`PlpP `1+lf`PleDWPl l Qq@P- DpL-M@PIQJQ xQ"  yQ, -Q$ IQ)lQP< `Wl!R 1S``,KpLe R l!KpRl!Kp0KpL{ 1CAq @=*QP@T@KppL-MPl@QP( `HWl!R 1S``Kp 1CAq @=P QKp@KpH-M@lQP Wl!R 0QU 0Q!0EB ]Sπ=9 S\ \SKc0<`PuP<U`1R`!R  aVl!l a?-ㇳlP :  / 0wl!P5 P:0i0>N/PKl P*x!PRxPc  aVlc!l a?-EKHx5K֓L-@lQQc  a~Vlc!l a?-L!0H-M@lQP' PbVl!R 1S 1CA MQ/= QR RPK0UK0K0H-@lc<0Q `v`<V01U0!aR  %Vl!8l a?-Hɲ0H-@l x|lcl !l a?-㳲lP P/IlPP0L-Ml@P* Q*K  / 0㈲l!P5 Q:l Q:$0i0>N/OK:ғO-OM@`PQP ]PpWP L80^ O KG 0D P.XPU6 ``>U)㧰PP< $ p( ZVppW t ,07/POPT(40  JRQ: !YP @Q:Q @Q @"Q#: @0$PP$PBPE* F U>ppW t $07/U8 0/ P @ SSP-"U E P;%#E"P!:0P  CQ:R |0S9 3/P?G 0㕱 )G 0㋱x0S 8, 3/P , P*p 8\O P% %0P00/ @P Q!(004    ppW t ,07/8P p . 0P;P, 048 P  0'P) ᒯP pPuPp'B@30^!N KP P$P% XP 302y0 30^ oNpPE8OG 0U )P K\20^A QN K420^*!2*0^ 130^t 1;0^ .NpP 1E01Y0^ 1_0^!t10^!X1v0L10^ !810^.M KЮP00^A x00^!M KlCpp@#0 . P0EPX7Uѓ̓:̓˓~˓^˓>˓˓ʓJ̓ʓʓʓʓnʓ*̓ɓNʓ ʓH-@lQU 1 0pl`Eqaa1 0P `V%* "s( 0PlQj1 0 `U*a1 0l `Xl0!*PH- M1 0ޯ `H-M@P`pP P  T |00CN!GMK 0KH1/P00C GǓǓpL-M@h 0   װ`hV%P  0㍯pPU h0t 0  5/1S0S h$3/KpKp }O-M`:YP? :RP PJQP4qpW" (A@QP ~RP pW YP% V`p  ZPYP `@$V:&\JP"LP`p ZPYP `@$V: ?JPLP@KAH-`@Q Q 0pQ T \ p 0P00PTAp PpK-Q* pP`W I@P   ,JP  ILPP -PP +P㾀 P #ɜݤpL-@ P Q `V@ LPQ9 P 2 P* -PU  R  P'  DQ  2PPU' ,P$ ! P  ,Q" &RLpQQ  P PU @P  P  QQ  Ps$PU TP  P  QQ  PV(PU hP  P  QQ  P9,PU |P  P  QQ  P0PU9 P6 3 P  QQ  vPPpW0H-P@  P  mQ  [P0QP/0H-P@6#P 6# 6#$6#(6#,6#06#7#L4Q9#0HaS / /pL-@PQ` \  M#`P <Q#ǛV` HPPppmEL- Q @@0K/0NρM@ 4@80<@L-  Q@@0 0@ 4@80<@H- 0P b  b PH- 0P f  f PH- 0P \  \ PH-pP@ 5J`P4 .JP.  GP PtP P P P  0v ``P  0@`T`@꽟A0H-P @P HQ fP0QH- M00, 0 D H ,. Р7< @ Q/H- M00 , 0 D H , Р|8Q/H- M00, 0 D H , Р$X8H-` PP+ ^@ P @Q T@ !@43C a'L``ᄚ!㊿P@T@P= P/H- Q0H-@ Q PPoP P0P PP  PnPP0P00H-@ Q PPoP P0P PP  PknPP0P00H-@ Q PP^oP P0P PP  PFnPP0P00H-@ Q PP9oP P0P PP  P!nPP0P00H-PL@PHMPL 0H00H-PL@P8MPL 0H0M-` pPP$ ;P@P l 0BP 0QP p P  0P p @pP  0X@O- MZ@ ` q -Q +Q`FH@T 1`H@T,`F H@T& vDp   P P  >HP pY: `P EP `pV:K Q <  S  S4 8 0pS0KpL-` @QP, PEP% EP! EP EP EP zEP tEP p 4 pLW+¸{i_?@//H- <CP $B?>?tO-Mph!,P<@82(0&2kRk`0`  V  P@d4 `Pd P`@d4-P,V2lR@l`0`  V `PC ``@P; d4#kh$EP+ d4#^hH$L,PT _`h `4BD$(`hg0@ P !UU 3S0A g 0P h0!UUP@ @ Ph 0"P3 0~ 06Dg$ 0x@Pg  0@kP_r(` @gPP@P, 0w`P  0aPc$20@pgPOh 0@,(X`(`PPP   0aP  0aP  0aP  04`P'81K0r1C0D >`K@p@ P 0 K, 0 `P g $ R 0UaP `K@p@P 0 ݗK(010090输輓컓ܻtH-8M@ $h0P PK K$00 0K  KKePJ h  0$`MgP$pg`H^/PsP9 h `p0R400  PP00 ` PPdP) -)PP hPPQ Q QKX0k0 @0y0A =PKPK 칓K-hMpP@P (@ fP ` @(0  `@@ @@  P ( @KK-MpT`(V Y Px@PM NuPIP+:`~yP@+ 0tyP6+0pkyP-+0byP$ +0XyP+0NyPP+0PPDyP$ uPPPxK(0>0GD '=PKLO-M@h 0p 0` pHP` P0 oKP $P d 0p0 p   0O gKpK荶 O-,Mp`@@$ Z  " %PPb  AhZ `*a *A  Bh0 c*a B*B  "40QRA  BAH AP1 0 AP*  AP#  AP  AP 0$       `x0K0:o!\0O0:A W<`<  R2 ෕K/#崓, 賓xP|!//H- M ^ (Pt РP苝 Р 77O-M\RKQ Q{Q Q Q0?000 0 * q @`PT (Q T418 t01< $<1 0 0&`%`P&PQ006LH  ( ,`XP@ U  U4qp1q8p u01< %<1 00 0.p$ p@!$@YQ{ Q00q`\ Xa!  `q`!P QDQ A  0   &`(P&C`0 <  A  ?䃟\Hࣟ'< 1A!0$PD(` A0#u@A0#$@@,@0# 0WH%<1A0$\DA0#p@A0#0#0UH <1|`Aa0$WDwpAq0#0#`#UdP a     `2XĢ0) !\Ÿ   |  p  p  , PYHA$XDL" A v@A \HP & A$YDA  x@A  (,!V81 #\4a @`1 "y01 "0" 0,,Sr U$aP8稡`1 !@8,w !0 !!!( !, !U( !(W$!,| !$ !!( !, !W(%'|!q(\$P4p!1,\h(au  !    ,0      K+d.\2@&%t%h/d3D'<%$-1O-$Mp`0 P 000` 1@ 8 > @  " B G\x < @ 1q0'Vtؓ ,Pq0#qpq0#$pp0#0,<(p堣VXß 1Q0%QTQ0#pPQ0# P0#0Q&<1!!P41!t01!0!v0`TtP1q   @  & RPQ(20!"Z$2Ÿ0 ! 0 t !  僂 p `  Z8!|q P10#Tt, q0#~pq0##"*26@pM-P& P@U% ! APUQ P  @ `T``T pU <pWGpO- MPR-Up@T@P3 `Z  GW  ) u ՏP0  <0 `pP @ @0 0\7U P ]@Kp@ #U@`KA tԠ0O- M@P0RpuT9  Q `VR-  `0`0 P& `IQ_<0`   Q A R AQ K K(0 0A 6 Kd R ?>0 S  R/ /L-\^\0P0ѷ@00 PsoM-M`P–P j 0@p  p6 PP 8/p K(0 0m 6pKGH-M@`P`pP  4/`KO-$MʸP `6 p ` 2o 0kA N6pK  @HTPd}*<Py  *TpP*@H 0` `@mP 7PU6 @p:  `R 7 HP*P@UYQWU!  U@ @P; T  PYz3PEU p)*R `r9 Rw-`K00 k 5 KpK0y000 kA 00p0~0|00X00X00 k $0 0k{ o/ϙgߙH-M` @ppPP  0ptpKM-M`P؛넕P j 0@p  p PP 0Ltpշ˕K(0S 0 E5pKKO- MPp5/ @P `5/0 1=tP )  KD0 0A 5 K& KڗpL-MP`0 @ @| P 0@ `@< Q 8= ྍ@Kp: ඍKpҖM-MR `p@6/  'P P 6/ P8/`@$ K@K(0 0oA 4K詖-a0H-M@Q @ P &| P 0s@ DB ]K0$0= 0A y4K0ypL- RP UP 00Bs0| Sz00`Cv` Vu! !>BcSp5.B?Od`6  00Bs0 Se00`Cv` V`! !>BcS[0.B 0 B  00Bs0 SQ00`Cv` VL! 20B SF.B1 B  00Bs0 S>00`Cv` V9! 20BS3.B0 B  00Bs0 S+ 00`Cv` V&! !>BS!.B0 B 00Bs0 S 00`Cv` V! !>B;S.B0 B +R-R ZR `.Vc u S00`Cv` V! !.BcR 00Bs0 S00`Cv` V! !.BcR 00Bs0 S00`Cv` V! 2 B R 00Bs0 S00`Cv` V! 2 BR 00Bs0 S 00`Cv` V! !.BR 00Bs0 S 00`Cv` V! !.B;R 0 +S -SZSv `.V\ 0@0`  0R0 Fr R:@S_ ,VVV +V -V ZV@R`M-V0`0Vu P 0@BY t@ Tm0@Lt@ Th! !.B Rc0@Lt@ T^0@At@ TY A@!A;Q(NabQ @ㇲP00Bs0 SB 00`Cv` V=! !>B;S8U6.B0 B `.V `FoBp0 Cr R$ 0`Bv` V1 !.B;RUwt P00@s0 S!!@ P 0 @r R0 Ar R@p@!@;PgH-M@`7p `PWP T  xkP PK 0M-HMpPP@ @PA KP: `  P1 pWP  P p dp*` !l 00 囌7KL0 0A k2U @KḀ@Km卓獓O-4M RG`00pCwp W@p0PGuP U;P0@Et@ T60@Jt@ T10@Lt@ T,0@It@ T'0@Nt@ T"0@Ht@ T@ @ 0@Dt@ T @$@ 0@Dt@ T @(@0@Dt@ T @$@0@Dt@ T ABL \ H@KQ@ad0R1PP0 A ($0$0!A( !A!A  + 0pAwP UP# 0pHwP UPR!AP.QPR P0PEuP UQPAPh h`h dp`0 !pZS(0p@ 00 0 Pp嵈P@K,)ԋ튓.H-M@pP멑P j 0` @K$0 0u w1K4K-MP@4/P&, p‰P ` 4/ ᖒW @PpG@ ኒW L0. 0tA @1K @ K؉X,H-M@pPᖗBP j 0`៓ @ᖑK$0M 0 1K蘈H-MP0@ @xQ ` 9@V pP`Fp ,V L0^ 0A 0K@m ಉK贇H- MP РO-4M@`Pr5T HP6 pdPPYC p@ ` dP@`V5)ɠ pW:Z8@5f 0z 0$%@ 0 ᤊ h4a 0z . 4L 0z $4C 0z `P pWI pWpWZ,d40  p:pp U @T<  Q; hP303m 0z 0#@ 0 :p 5pKT3u 0z| 3W 0z riPG @Q  @@PPY`? XC XL PXY@ `   dP@`VSppy  p pUrl10bA P@?AP@;A Q@7P2pU[U@P `  }dP`V!@P `$ mdP@`V ` cP @[dP`V@`@ LJP  0P (KP hx00 zA H/pK?g_?HThO-MQL `@pPR WT 4/P6PU`1T 4/P*PU& WPE `T  'cP `PET 4/PUKKpL-`@P U` U 0E P`# U` U 0E P #A@"P#:h 4P`U U  %RPp /  / 80 <0 40/L- @^cgg8h"gpL- R* PU( Q 0J@Q `0PEuP U P#APE"uP&U#:vPU Pv`VA UR\ ppH- R0 `Sp PUPU RpWS `Q   Q0p R!A* `V+ KW0 DJPQ p0`Fv` V `#A`F"v`&V#:w`V `wpWA V0R0\ 000M-PMQ2 PP*p `@.0~QQ0 Q0.0 Q000OR  P @T @TR ܎PKKO-MPp4`@P ` W& qQ |2$ 0A u-hP Q |{P] YcPD PI U qQ{ P Q {{P= kYCP$ P)  p:/؁I Pᓅ`,^K p 勅VX/1 N0 A -P1? 0 41D 0 -`Pp3Ah0@ f i0a K`:/  3P  !4P 0 aP h\ 岅  (0Y 0 ,'yyw7xxySyzM-M`pP73P  @ 0NYP  0P'3K80w 0A ,K3K+wO-M `Pp 0@PPVVGiX`P2 0 o, P lP U  05/Pk@20b PvP"U ⿶PP PPT > 0C|Z  4  09|  sp$] @PPQ X10 A ,% ` G3P6  =YP0  `ل PP 00  +Pp@`0` L 0GKL0 0 <00  +v+v+ttWu+u ttgt/t/`0H-M @g1P "1P# 1P 1P 1PP P  P3Q K0 PK0 (PK0ssss (XM-(M`p  @P@P n8P9P 0tt p0+P HPP00 0ePK55 TH- M\P .8P<X9 Р, (0 Р44 <K-Mp`Plp7dP5 p8P<+90 ,0ʲ@P IP PP8P T d @P 0 0A *KpV`YX QK0443 hp|3po$P/ 0 082p2/!Wo@/@/ P /R/0H-MP@Q  ,vUPT@@K0pL-MQ`P@V@P  v@UPV``KpUP% P@Q  u@PKpcP ` @Q  u @P`KpKpPQ /0 SS S /S.c@ /pL-M`  @TP VP@TgxP @V@@Q  u PKpw@KpQ PP v/O- M`@p'0P rXP@ @P  1. 0 @X1#087/H3 P+ P7/  0P.  0 @ >0тT' 0 ~^@P0H00) 0 050 A L)@ /KL >0 ূ<0A0  8)@okjkOkjGjj7jjO-M`pV; P@P   2c 0 1/P2 ޭ  NP3 P4 HkWP= \ P> 0`@VPL1 0 (51^ 0C (@K1i0 A x1o0 Ph\X1u0  <1 0  1 0 (@7/K 0`K,8K 0A 'Z4`, 4P# VC ỨP `5P;5 0rP 5P 5X"`P yf 0P Znh7 0 v'70 A `,KYE:vPPEUU9P6q 0 `P9 UR Ua,KPp ,YFUl`PX  _PW WP5 0 ^uPPuP `P ,P, `0!,  5*ZAU, ( ,K$p .Pl4 0 "Pa 4V 0 &UPP4 0 4 0 &p + OuZ $pP  ^, g+ t@@0X0匡 d |1 0!`pd p0P@ @P Pd 0 0!@ Ġ 0&P n 0A 0!P@/U @/THKl0$ 0 !KPRXQ9OINYNnUO.VPWNMDMMAM-MPR`pVZ`P @ Pz iP P U P`$0! 0p t0 0A T!KT0% 0A I!UQZKKLMLlLL-M0 &`@P K$0< 0n !!KKM-p`n@P  PP  @nH-M`PP @PZpZP`@ &K(0$ 0m `KJH- MH     K K0 P Р輶H-Mp@PP P`P @WZpV WPZ %w<0o 0m pkK<IO-MQD @P ` แ`P2P6 P?0,p` W MG#P 㙁P-` ! ኁPp`WK`KX w`P`K`K`K`KGFcIUvO-Mp    0PP P@0@ T U `@0@ T ``P TV 0@0\HoP0@Et@ Ta@E"T#*0SAPEU0S h\ 0R 0R0C@C \@CX `R x  10xPP\ T PT@Ip  AP  Z\P6 qP 1 0f @ @f 0| QxKP@r @f P0is >xKPKD@z @fA 0R { 'xKjEEF EEL-@P0H-M@ Q d R K0H/(Q IP P]@]K000 0 K0K0BD00^$  f/kiPL-O@L/00]  fkܯi̯K-MpP`pkP V@hEP p0 pWp&wP `U  #,1$ 0A `11*0&120" P$ X P i ᕢ0 nQ Kx0>0 A `pXI UwHwiWKp꤯ CBKCBKBBM-Mp`PSnP  0@prP K@0W 0A J@K%V TGm 0DP% mP" `㣡 P hKP0R 0r P PX0 0A |>4uhlm`K@>j>TتO- M0p`iPP@` >kP@\ V `  uP@K Z`  i"P@?Wx DP@7 `V kP@/ DP@* PP mP@ ` 0mmP@ `E  P tg K@H0 0A ,gl Kd=><H- M РO-0-@R+ `pPB H@ Z M~P ~P Ul0l0 0sPHZ:@ }QKK葀GJC[O-MR @`pRpRPlP  P~P IP 8 sKK P.*+* 0PjsPK/ I tPL h d10-PP 0 FsP=p}q R㡃pX( PH`PH@P V }P 0~P  Z00 0sP `V:l 6}PH [0 TuK7e:,::9ݒAG8H- MH' KtP Р(0) 0A  Рg8?81 t8////// / ///H- M@  ^@K  РNO-tMP`@U pP` @ RP: Q" Rt1\P  0@PP  `  P 0@P P|P 0S  @-P 0@ `P UPU 0PQ\ @`i P6 R3Qj 0PrP 0pp@Px `Pp @UPU^  qPeqPPPKPUbPV|PJ\ 0 `H P~X P S  S p ~p p p p Q0PA?o ?Us00RA P P R 0H/ 0 0m[%L-M0 .oP @fdQPfd JP T- yoD. to40 0A @K8%$$$P/L-@|fid wJP $- Qo. LKo4$ $00dUP  ]@b0`a Q00R/Q00R/00FU  ] rbBa//H- MLp( nP Р(0+ 0A * Рo#C#5 n#P` BP A@ A0 A  B A @/0S S S O aO @ /H- n ) H/ B aO*aB @O*@ /L-@ Q Q* Q4lQ1PP0@ A@ A0 A  A A AEO @k S P A b @ S  @/H-@ PR R Rp`U p`U  T`p`U Q/H- M 0  P РM-8MMP@p`P]08PT @ A AQ Q Qpn 40 P @ P? A @0A  0:KP   Ph!? JoU L0 X 0 U P `X P K0 0 =K @mX@ U t m` mH0 0A `Kln;gH- M 0 KP РQ/ .k//Pn/P/ Pp/P/P/P/Q P /P/QQ/P/P/P/pL-P @P@PPm/`Gm!CmV@ppL [O- M@P[P]1P@ p@Q" :Q9`q.:`p:P 1" 0 (W `GVp`UW% :IV p`V:P $1# 0 @K`pUWo(@Q# Q*P ? PZ Z*P \  2 בPH0& 0A KoGK-(M SVP`@ ,,<<<<<<<,pQPW 0 A @ @>P6 @ P6 B @0  0KX L` :"kPy Y! Y"2 0 aKK1 0 SKK  @@p( kP p@lPPP @@ @0 @ @ @ @O Bk p0+ 0A PQ KU P@@m/`k!kVPP0 0A K0/,ќcW[+pL-M@` P 0 PP #P B P : Pl KpH0- 0jk P &Kp2 yI/pL-M@P @ P`  0@P P @|0E 0kq mKpX bKp40O 0k Z@ KpML-M @  0WpK@Kw/L-MM@pK 00$KmH-MP 0 @P  0  @C@P P Pj jK@K L` Mp N 0p ` _UP P @M-xMp Yp @W P=`VX !{@P4 KPB/jP P: 0  0eA R@P!P^j!ZjK @@@0t e d 0m@KqH- M0 lo РL-M !j@poK 00@oKL-MQ 0] 0 .K@pq p qP:0n 0 K iH@@0j 0KK9pL-M@P`YQ p Kpe 1<@@02 v 0KppL-M@t! P`kPa  0 P 6 [XA@0\ D 1R 0 = 0 P  c@@0d !` 6q KpszP lH@@0fm g 0_Kp P H-M@ t 0`P YPP  C@07 02 0 (pKpP   0 &P  XB@0    0 P x A@0   0 P ] A@0  P  0) P > A@0 {` [P # @@0 u `pPg Epb  H@@0 w G  P x , 0H-xM@p QP Kp @P P@K0@TyP K0 ,00000p07PP0Zp~@p@0`@`ppPp pp`@w00Pp0lpp4 000 8 <0KO-M0P30@@`30P>00`@@dP|@0P` @ pH@@P @L  @>00x0PPp`Hp` P `@p0  P @@Z`0`00p`PP P`@w0 Pp P0|P  00 0  0KO- M P" C @C@P`S`0 000pP `TP P咠  N 0`ppp 0~PP  `P p@0P P6`P 0@` D000喜 @p@PL``` ` @PC0p pP B@ 0P0咠 pd 3 PpT@@@@Pp@` d@P pp@00 Pp000%P嘩0pP ` @` `0 p) ` `ȅ``@ ` 0( p` @0 P#0  0p    'P`` @` @g00pp  P p `BP0 P@ @ P P ``p`P0@     `@0Pp 2 ``0`0  3 @ P p0`2 @@P Pp ^ @ 0`pp  p 0`@pPIp  PP@0P0咠 pd 3 PpT@@@@Pp`@ P` p @0$0` p&p 0jp0@ @@3@  p0@p `P嗊p 0&(  `0PPpP pP  009@ P@p , 00P8 `P@@@P@0 0p#p@4 @8<@KO-M P" C@pC@`Pc$P0p@ `Pd@p0`@ `P000p 0v`@@ P@ ` Pp0z pp @w0 $PP``4` P    0p#p`  K/H-M`hPp($ _P& @P$< .W ntP$ V gtP btP  KsP LzK0%0fA <@K6s4s2s 0s$\[  DP+PfA 0 , _@K<x $L-@P/L-@sss s$[ L_hH-M@PP @1c0gk p`?pPq  QQ  ` 0``0%0S  Py`P 0P y` 0 P`P 0P P` PK$M-MpPP@`@PT PrPJ PrPC W zrsP:  Q P /#P/ p `0 p~P  P" ` #P pW`Q 0 P ` R;10q :U `K 07/P R! 0WzP 0 PzPUrrr r$P[ ^`K`K`K`KppL-MP R @`P p P 0S PxKpT00dk Kp0S 0PKpH-M@P`P 00dk KPpp P WW LsP 0 S PxK 0PKH0  H-MQ^; \0  R% Q @PQ:PT@ ePp+`h`g``Vv`aHjGQ `AAPEp`VpP@A/0 0YxK 0 0]K800ek 4K XL-@L$$//H- MX0 ]P P A A Р(00jA  РߒߒH- Mh0 l]P P A, B Р(00jA  РߒAߒP/pL-@ ]`V[ QPP pQ p(Q p<Q pPQ pdQ pxQ }pQ xpQ spQ npQ ipQ dpQ _pQ ZpQ Up,P PpJ/DP]``V pLF]ޒޒeݒH-M@$P(Q $K`CP Pp p!\P PP ! l!]pPPaK400m /$$Kܒܒqܒ$QA$/00C 0R 0R0L 0 0L A0S 0C 0@100  ( /H-M@$`P(P K P*,pR5!K\P5 Pp> p(p<pPpdpxpooooooAoFoKo|P  0Q 0 QU}2(0tm Kv`ov(`ov<`ovP`ovd`ovx`ov`o|v`ovv`opv`ojv`odv`o^vAooXvFoyoRvKosoLv@DQ DQPPP  sq ` KYےaڒO-\M@`PPP PP  oPoP pnP L50kg 4$50kk +pnPW{spRPP,pu8 pT4 @W<@80pP 4P<PPKcnA p4 %P 4@  @0P 0P,pP @! 4WpP 0P 4@!p%U @pP PT pK4@pP 4@0PpP !0pPp $ G, R  0 ( @( $ 8<ep(PP <0 ,  @ I 8UpPv I,P 4P0KrP0 (0O< !P`  B$@Y `T<@ !P`< $@Y `E8P@p148 Q  0e"0xa*"pSp*PH :4 @8p0( 90 0@0 P 0 0 PH8 P$@U `4"0ppPU  @ᏁmP @,P< pPKגגO- MP@`mPmP l110{B pK#Z Z XpPUK *oP m3tP oPoP PP  េP mrP  0|P PU X nPpp[ҒM-M`@PpsP P P  0K 0KMomPmP mP 0KO-,M`p@lP PlP $5w0uB PKsP P d"ylP Z ` P P` `  PVPY P P  XH$  `  "P P1$P nP   0as PᵂP `0V P 0 sP  ` $A$~qP  à" P P ` n P  0sP    $P9 ` f Pz  0 P Ps20uf ;PrP \nKVnPK P^[KOGn X@ P9  uP7 0 nP* $ J`P" pf._P $@`Q Q`#Up@`Pp p` ` `Pp `` `p꒜O-MP`p^P  `nKP @`KFP :p2+0\2!0A ePPP270D @ K@K{^<  0KPJ @&P  bZ ! *   QJ0 P$ P!Q JZ ZZ * P* cZ   P0e00B0t0|0 Y h00T0q0D lK轘m}!ɗqEU///Q/ 0Q/pL-P@P `~@Q !p/  apL-M`P@8`P !tPaKp$00A Kpɔ//O-Mp@`P P_P _P ]P {d``KdPdP ppbP  qPc ` P `la P P`f}]P pLdP`pPPbP  iqP1  P Q P PPPP 0PP  `f7]PP :`K.<.pL-M@P 00`&P P  4P(000KpL/`KppL-M@PP  0`P P  DP8000KpL/`Kp`Kp40O-Mp`P_@P` !W:< XIPU\`^WPp " 0 P` CApC  Oppp``@Cp_C0W/`0@  W F0 p`0SP`P`` @ \  Z wIK蓐+0H-@PP x_0pL-M@P=P  0`TP P  DP8000KpL/`Kp`Kp O-MP@` m^P_ XR YP 0PP@ ppEE    BW!3p lpE EpPOY?Y# Pp0``@ @`pPU Y G` p0@0P@@PpW KK0H-@PP P  0H00O-M`@ k pP4 PT  0*kP+  0P" P  P |000 3/pPp oP  0zP Ppp rKpL-M@ `PoP  0`[KpKppL-M`@P{nP  0``FP P  DP8000KpL/`Kp`KpTP0H-@PQnP _P 0H00H-M`P @ P P  P0003/P P *\P p KpW@ 0@[K`\M-MP`pP \P* V$Z@Z@Dt#T@T  SnP% `FmP( `F_P P VKKX0&0wn KKKK軇/////O-4M`P\aP _P"0 'K_P PX (\PK\KXP z\P~ P W `! WGA (`D@ ,`p 000 0 0$p   `0  0  0 @'@`@ ` 0p`  p\KKl T O-P P LSP zgP ^QPyp VP  OePv YPs  YP ZiPk p  P gP @ 0 P WP  P pP 0S   3/ Y 0 3/pP|  Y|  pUP m  0@@PZ WPaUPPW+mYKpTp DP3 fP. p @0 GP# pWP pp WUP   0@P oWPpUPpTpTpTTH- M00 РM- 0@P`pP eP3p`Q Q p W:  0`p|P`lO- M Qe`@gpPV PaPQ fPL J 0 UPA P gUP   0pFP4P, hfP' qReP P |eP3ppQ X: PQ Q KppKJ!m #]\H- M 0 0 РO- M@pRO QPRWL,/$ =<`PS   0+S7 FPNT@ =PET pqP@ T*P#SP#Ɨ@ TE w@(Wp( Q+ A0$wP 1\0v @KQ@K0&0A ~@p 0   W  P@ Q@P@$  W0 <K\:[Z[H- M 0 0T РH- M 0 0H Р O-MqP pPpRNP 1x0zs `KNP TQ`K@"TPHTP c@  0`7/P @ S`p00zq Kc  0`7/P SP  P xSP  ~P  kS`pʠ00lYX"X xO-uM 0pLN/ Q :@PY aaV:10u Lp `fUt+ px@P5 tt  `   ~ @ z t`E@V@`!  ttP:P PP 0  @oᠢ, ;`; KWzW&VL-P @ A A0 DLNLINL-@4 :P @>N\ H- M00.0| \ Р!> R H- M00.0| G Р=0H-MPP H0.0| 1K0@!@K0u=H- M0S 000 0 ⢫ Р$0.0{  Р<O-M@`P^P p@W| UU U)P11.0k @hU U P V V V`SP 10.dv J\1.0d B_S<%@P2 (%P, Z %P !P p00`pP`] 0)Kd0+.0dA yHt$@K00A<;]:;x:H- M\QRS P  R   Q  R   Р$0;.0{ 8 Р90S /H- M$0Y.0{ ! Р59M-M`QQ QT QppQt @ P| Q@PPPP P, 0`P  0 \P\! B1P ` 0 JP1<# 62 `@K KM `Q)  P]@0P 0@Q' P.|2.0u 3t2.0 2r.0 2.0 @K1.0v }K ᾝP 1 .0s l@/?1@ 1K /P@0P @  0 +P1@@0.0n ?0.0A 60.0A |0.0h %PT!@0KL0-.0 65185E556657a6 6e54A677K-MpQ dt@ T9 `P=3.0 eKKP0SV  `PY 2z.0s @|"0P?1K KK PUP6 @vPeP, 0PD0 PM!/PD 0` yPD  P`=T1.0 vPK~"$/P @0 5P+ P0F.0n 0.0A |0.0A B`PP_!0K<0.0 ,g121123Y21a13%4K-M` PPi Pf pMP @KPZ@?TPmpW& 4P`@1P PWP@`!VP @PD @TP@ P`@Q AP/@P@`VPP. K@e.@}t 0` o3 `/``7KD @o3 @/@@KP 1/.pL-MP-@P `PO$P @ Kp$0.0A VKp6. 羠 :H- M$  0dt РТH- M$  0l Р趸H- M 0( q Рj@H- M 0( q Р  ̡H- M Р谡H- M P” Р袷M-MpP`Z@ZT0  @ K  窖0S Q0 00R/H- M,0.0  РH/+Q/H- M$0-.0 РN+0H-MPU&@ T^SQRPU U# U'T^ K0p0=.0 XK0QRS K0K0j* R  0S S/H- M00b.0 ) РH/)0H-@ PU U&^\QRS 0QRS^\0 R R/pL-`P@U @{PP  P @Ppp R/M-M@ @P`pP @  0P 0 PH  . P @ @P h-Kv'>'O-TMPp @@PA @P`+0 ` `P  0P`P  ,P  0P`sP ` -@-4 -MKn&&K-Mp@PV PY `\J pP  PA  K. P/ P+ PP @< P] PPP @ P @ KP K蠚t$O-MPQRp ` @UVPQ RO@@@o`PA @p`P5 `P/ P @P `y P 0pP  PU`K0u.0 d`K,PX>X>@ 0`P"p008  ܖd̖4꼖H- M0 00瀷 Р蜖/L-0N@P Wt0H-MP@W@QPT K0P0 P PTP P3   K0QPTPT PTPTPTP0.0 K0(0F.0A K0 L-M@qW@QP  Q:KL2P- P PGKL2KLz:QPP PPP$0.0 HKXL-M@W@Q TKP# P KQ l0.0 KK KKKpL-MP`Q@P@P0 V@P,Pp PPUT20^.0o |P KpL5ቺP(0@.0o @Kp$xM-MP@V@Q D"P P Q 1.0 Kp  pppP  EV @R)! K5P* 0 `322 03    #Q p0.0n :K K(0w.0ni )Kd L-M@U@QD`P KP P PKL0.0 KPPpL-MP@U@Qt`PV T ZP @@PKpP P `PVKpX0.0 PKp`PV`PVL-M@iU@Q D"P P Q l0.0 uK  oK 0H-M0 @ %UTP PYf0@P o 02P K0P0'.0t 40K.0tw 00@K0M-M 0P @K T`|4P pPx 02%P  P 4e4PP@0Q.0s K@K 0H-M@TP P PP PU P)P P @IP K0H0b.0 @K0 @K04ȈH-MP@tTP P( pPpW- P`QuP `VP KH0b.0 $0.0 fK0H-@PP00H-M@!TP PPP PP PP bP @P K0P0.0 $@K0@K0xL-@PL-@P H-M@SP P, p.P1pW1 %P)P@"`P T/@P* UP vP UKx0b.0 @K@K@K,@K@K0ȁH-M@oSP% P0pP&P@`P T@P3 P& ]PUKP pP@Kh0.0 a@K@K,u@K@KpL-P`@P pPpLIL-@lP L軟H-M@`MPP  &P pyP T PK<006.0A K蔂<( 0H-M@WlP P PPK0P0 .0 K0(0E.0A K0 x L-M0S @Q r  K$0.0 K% O-MpPP @`T @T W }W p3I.0 K~Pr P 0PuP@Ps 0@PP P\QPPZ |PR A<PI }BQP@ $ 竫P9  ' 0㽯PV PV@ Q p>RP@X1D.0~ K41U0. 8@@P1.0A )T  PK0_00d.0A |0i.0f `0.0 @P@ e 4T~m! t}O-$MQ @T p oQ}PxۢP @cQPP `P P 0P`" `u 5p0 p^pW p p`pl"PGP:.$P`  p`l"WppHW:  `XW AP p0CP  p0;P p IP83+.0 3I.0 PK2M.0 2;.0 2A.0A 2J.0f x|2U.0 `n j!T&$Pr  p :ZU:` Dl"QO $PH  0 p 0G0B  P4 0G `}P, J0 tP#  0P  0cP Q0Q`Q   "`,P`F P" 0 $0s.0 ^` !/$LKx0m.0A yP oX 0 $P`,Qq{!u!YH- P0H-M@P OPK0@P PP OP+OK0X0.0l K0(0%.0A K0hvCo0H-M@PR TP @K0PK0$0.0 K0H- ^ ^RS  Q R R/TfO-$MP`p@ P iP PP   d'[`@ @ @(Pu vP?P Ww  @ppP 0   OPU pWW 4P PyPU   Q\pWWPLn P}P  appPR P  pPM 0  Np ^#"@3.0f 30QPPz iPu )NLP p{c@3.0f b 07/p 3.0} TPpPWD   TP: Y- T" T @P(7 $P4" 0P*PjNP@,P@@P1F $0 (PPP P 1m0.fA q l K1.0l a@Pp P PyP SP pW1.0l  P 0.0o 30M 0ワP 0 3 dP  P@ `  P[<0.0lr 8to_ q_oL-@@MSP  Py 5MXP  uPn *MMP  jPc )MBP ) _PX -M'P - TPM  MP  IPB LP  >P7 ,LP , 3P, %LP % (P! %LP %@ P LP  P %LP %( P0H-M P@@kP 0 㤮@^#6!K0M-M@$@` MLP p4 mp(P QPPb  40sPY(Pv  0PS B 0 P8 `! QB EP= ;P7 Q"P /Z P* (P$B 0P%3 H@K00.n c3{W[;H-M` PC JI@PD $PpUPP$L ( 0d@PW Q\pW. \! QI ]p4/W> @P61.0 -0.0 @K 07/p0.0} d0.0A KP80.0o (K;[^K-M@IP`@Vy P] PPp P P P PpPP PUPPpPPpPUYIP PPPp RQpPpQPUPPP@P T (@PUK@0.0l @@K(@KM-PM`p@P2 OPP 3#H 0vPP-  `Pn  tP*U1 RVZP\ (25.0 `R1.0A `G1.0r `=1&.0 4P |P) P(! 0`P ( Q\PU' 0 00P` 0/.0x `])K0I.0  05/p\0.0} P40.0o }W+;M-pR$P\@P `?P WP P]G V 0`PP @P `;P5@6@0H-P0@Ps1/@0 /H-M@ `.)P PPQp1/ ` 03/` @y#V@K,080d @K䅐H-M``@PPHp1/ ` 03/ PKГH-Mp@`0)P PP`1/ p 03/@ `!#T`K$0I0g K#8$P 00/H- M$00ni РߑP/0H-MPt@P`1/T P ZK0,00lk \K0 /ߑH- MP Q РH@P00li D Р(00lk 9 РޑޑH-MP@P' `Php1/ `N`P00ml 0 P0K 4`P K(00mj `Kݑݑޑ ޑH-M`Pp@P Kp0W0 ml LH0 `0Kmj KݑݑݑH-MP@P0 `PP@p1/ `ժP+ ` 2/P4 `P@V 2/ 1@ 2/`PK ᲪPt00mj u\00ml l@<0 P0a@Kۑoۑ~ۑ}ۑM-MS& @pPၪP' ` 2/P `Vp 2/ 2/`PK00pC |0U0 ml XT0 p0Kmj KOڑ7ڑ6ڑ5ڑ0H-M@DP84P1/ @1/K04 P//pL-MP`J'P @Px`1/ P 2/`=!Kp$00h KpؑpL-MPL@P8`1/ P 2/KpP  /H- M$0A0ii РבL-MP1/@P K$00oA lKoבP/ /P 0$0/H- M$00qi S Р בH-Mp`P&P @W  03/P\00r 1K400ni &P K֑W֑pL-M`@&P PV  2/@\050j Kp40A0ii @o KpՑՑH- -P0H-@Q PP0PP0L-@ L H- MP d @ Р0H-8P@PP0'Ez/0 wF04 /M-MpPN`P ``? @OPE lpH  AOPR  ` `_p?  PO  `Tp8 ``@KP8 n PpA 0|ONP& `K0G20A QK0P20s p0V0d0_0X0g02v 6,y  N`K@ӑӑґґґґӑH-MP`EP p $ u@P  PPA Q@=R @KK\0&20|A @0,20|l $8 KLґёёёM-M P@ @U P" ``@p W I@P$ K020v 㲾Kp020vn 㧾@KH020vn 㛾K@KББ ёhБpL-PBMP @P `OP `Vp@pM@@pH- M$00 ? Рc| 9<㳐wϑ pL-PMP @P `WOP `}Vp@pM@@pO- M`p@PP% UH X 0   $ (  !!! PU $U" X 0 w  $ (  !!! PU K@R/O-TMp@P( 4 Q(8 !Q  `$ p,(`30 0$K,$ + 4P EP@0apdXL@80( y,y(y$y y0,y(0yp$y @(`, @$0P!0p #0TLD<80( ! d!d!dd" d"d"d dJ V @Vb_,8' ?"A"B" C!E!F! $ G8u P8U,% ?0>= 3x9`01<2; :pŁ02%7u6`089p: ;`<=>@05P?09p:P;`=z| q ~̀wu,4P@ Z:*Q(8 p,0!Q  ` 0 0@$K$p S 4P@EP$ (`1dXL@80( zLzHzDz@zLzHzDz@ Vl @V j '8p<@@D9':' ;(=(>( ?$A$B$ C)E)F)  G8 P80U) ?`>= <0v12;p:897%>@p7v`e?`: 9;< ?`>=ppr $qpxs (4P̂q(` V,`0$p`FW$  0!q "TLD<80( "<0`"80`"40` `!, `!( `!$ ``@V p,`3*... ,,, $ KO/O- M` p@PP& UJ T  \      PU @%U# T  5      PU @ @KO-lM`B?P pP@ PB@/@P(7 K0p8 3>( p6 K0@4 0`4N(5 K0$p@4NX4PK0(p@4NH3@K0 p7~820Kp `87~4x`D 1pK@08 Kp 0P4P "<8 d"8"4̃%|%8%DuPs0Tr 8$L~0(  "P GRe@ Pa0%RY "-Q 0#!l0#$  # 0'pSSQ  "SWQS ` ""c""=,1P 0 #PE A ` `&`&PI $A`&@&`#VCA VGA VKfb&mAa  `` pVEA/ p0'Vy0#q0#&}q0#pp Wca0#Wga0#Wkgr'}aq0#@#00$`Su ϟ q`& Sy$#=q1  00$Ssq Swq S{c2#=q1  00 `Suq/ ``&p&Si#=a1p'0'$pp Wca0#Wga0#Wkgr'}aq0#@#(00$Su `q``& Sy$ #=q1  ,00$Ssq Swq S{c2 P#=q1  000,`Su q``&p&Si#=a1p'0'4pp,Wca0#Wga0#Wkgr'}aq0#@#800$`Su ]Pq` & Sy#=q1  <00$Ssq Swq S{ c2#=q1  @00 `Su ]Pq``&p&Si$#=a1p'0'Dpp Wca0#Wga0#Wk Pgr'}aq0#@#H00$`Suq, `& Sy#=q1  L00$Ss q Swq S{c2#=q1  P00 `Su, q``&p&Si#=a1p'0'Tpp Wca0#Wga0#Wkgr'}aq0#@#X00$`Su q+ `& Sy#=q1  \00$Ssq Swq S{c2q#=1 P `00%`Su  q``&p&Si#=a1p'0'dpp%Wca0#Wga0#Wkgr '}aq0#0#hpp#@We瀚 a@$ Wi'}aq  lpp#Wca Wga Wkgr'}aq @ p$`Puq) `0&0#Py q0#tpp$gb&mWkWWWs$ Qqa#x0    |0"ux|Y PpP%K`|!0&l #P9 @1p "<<"| @"T#0!< T'! T ,dB$M ` A( p@@ TU `Q `&`&TYQ`&$]Q`&tPP UCA`&UGA`&UKeR %]AQ`&@&h``$pVU@Qp 'Vy q  &}q lpp$Wca Wga Wkgra'} `q `pp"PWeaPP%`%WY'}Q q`&p&d``"VSQp'VWQp'V[fb 0&mQa 0p'@'Xpp$PWePa%  Wi'}a  q \pp$Wca Wg$a Wkgra'}  q Ppp PWe 堆aP P%`%WY'}Qq`&p&T`` VSQp'VW$@Qp'V[fb&mQa p'@'Hpp$PWeaP% Wi'}aq  Lpp$Wca Wg$a Wkgr'}aq  @pp PWe 0a50PP%@`%WY'}Qq`&p&D`` VSQp'VWQp'V[fb&mQap''8pp(PWe 50aP% Wi0'}qa  $`PP@@0p \@`hpd `Fe`en@ne dgt1L-T@# BP +0 0 $b0H-@xP# 'P + 0 0 $      005b C aH-M`p@P P" PPFP ` PpW t KPfFPspKFpK0H-MPP @OFP tkP K0Hʔ$0 0yk MK0Q`M-MP`p@P Q   0EP KM-M@P`pP P 0EKK0H-MP@ Q6A PK!4  $ $   $ ,@P tP BP P *P P |PK@K0Q Q* Q R K00 0x 㹡K0K0S@P OP J*P@K0Q0A  K040~0 xj ㌡K0 00U])]^pL-M`@PP P Q Kpl t0dKpa t0YKpP t 0KKp00 0hj :Kp(]]]\/dpL-M`K@P  ᥦP PឮP% @Kp0h%0fo 0q%0fg 늦 00p~ KpT`v%`fi 0~ nKp[[[[x[T[0H-MP @PPծP UK0d0%0gC PK080%0gh 㴠P3K0ZxZ0H-MP@Q 1%0dC 㜠K0PծP PЮ@ѮP P K00%0di ~K0|0%0dh sK0T0%0dj h4 000\K0ZYtYHYeYYYH-M`@vP/&pP oI!PP W \ [Kd0%0{m &KLI,$ KX@XVXSXH-M P@R T /P@ pP$10; 1%0C 7 pP K`V F /R@`00` +P pȥ/¥K@00%A 㵟pK`WWxWDWVVV/0H-@&P P*@$00O-}M a0p*a*@ AP0p0`40<`?p@ `P@ 0  0p $! Ġ,t?3 B8 $@(P2 $ <D?c0C@0 04 8 2d (R<ă?c 0C`(0 0d'=0C40 0`0&m3">4 B, $-A< P0@H`Kp@, ,5@DpKDP?# CH ~$ .=#b3 *g0pD $ Jc`0K k[ @K @ @*@0 @ p JAkKLp xp p @ @x|p pp PExL|PTplX0hd \``p`PP@!P@;852/,)&#  y   W|yvspmjgda^ WcPSPU(P  IFC@=:741.+(%"  P` 8 KKO-M(T p @4  D @|0 P啡T l 噬H TdP`@ lht0@ PpH qP$P $P吢@ ,!D\@4ql <` Q X ,@ 0@$P TP嘤d@ ᔬ@L@`` <`$P!D,@<` h 4q`QD圑H,@ `@$P 8 hldP0噠<!T$@  H < 4d @a ` `h`(P $P\ r0`Dp , VX, L $P 8P`Qp\ T周(`@ @<@ <`p@P \`y 4( $@,0d ,$ \R` D`8P @P啠T ` H $` P@ < D8(`0@pX YP(` 4`L@ $@F8 )l$@ `@,0 8  㘠\ <<0TXv(P`` T$p T8\L$ P ,Pl L 8`\bL \ `咠d  r`  X <0 ,0@p TLp( H,P P@$ \Lp i0(呠h 8` <`0,  $Q!}@ 8s\ 8 @=04|<s< pPP<( ?G =$ 3A40|sᒣp \@0嘢  l P `pdX ph`  ,  !( D T"#d0#80Xp'l0Pp#h0)'X@ H T@, A|4 p`8p4 Xp 0 l\ 0, X` h@pd ?# G(p! P $ C H 0p"@'Dp`@'4pl`'Tp,h@(\@T&P@(P@$.\p@ $4A ,@$0?SL00$ 4?spA p?s<@" 8 Bd #,hpX!pp&DpH`($Lp)Hp&  tUP8   mUP1 0 `YkPE   } z w tpP   0 `OP P @ 0wOP pPpPp *qKP   pPpKpKO-Mp@PP`OP K@UPP) P  0P&OP  P P pBP@pK@KK-Q `p@P t03/P PU:(0 T(  U$0 YL-,@ - 5PNH-`p - $@P% PP`P IP P BP P D N0 P`@r0H-@T GA(P] PD^ 0H?0H-MpP @@PP `&DP Pf ɵK@00 CPK@PKbH-MPp@PP @P `f ᠵQ 0P KHACPK$00 K~O- MP@Up `=V *0n0d K=P @ 0 ]PKM-M@P`pP i@ 0^]KO- M@pP PQ P"20 㥂`KU% `Q+Q P)10 ㍂KpWpU C `0`|EP DC(J`KP6CJ/ P P Q 00 M` pWpVC ` 0`>EP 0p   0=`P`,  0 KpL-MP `A@ P($8h<P @#F@Kp Q.(*Q@ Q%'P IKpuQpCPKpue Kp@Kp UPKpKpKp/!T@a PKpKpU@P QP MP H*P DP ?PI@KpQu P7 @ Q )P+P?P U2 BKpEQ PKp00 00 ]KpKp>Kp40B0 sBKpݐݐJߐnݐpL-M`@PᬆP আP- ࠆP9 Q/$+f0Kp=P*P`P<  f0KprP` jQ KpRP f+0KpAf 0޼Kph0]0 ̀Kp(0Y0 €KpOݐ^ېEݐܐCݐې7ݐL-M@000/UP  @$ |K@KNېO-MP6@Q&:* qP `P Z P FPP$  0TP B A@Kl/ 8K U DD> ,K 5 $Kڐ>ڐِڐbڐH-M@0TP PV pW |00@`$"@ @U@D d @K X KِU.ِ ِH-MpP@`PP  0^PKO-LMS TQ`p PNfPJ P ᇩ@  uP< )KK) K) KP. K P(  P" V: P T  `FJpP P  Ȅ KL-5tP1 @9uP( FuP" VuP SuP tPuP NuP LKuP vztLLutMאG//O-|M`Pq 0Zpl w@pˍp@ɍt@P P2 7-&0d sP, PO @kP(S , (0 嚍 tP[ p嗍( @PFP](@pPY` `V `5! V p7!P Pa6&0 ~5&0A ~ U&PA 0~ 5'&0p ~PK Htp6W d nPl5n&0w UPPPKPY` `V `B!OV Q/RPPUPKUT:4J0 US:4S0YPP4[0& &PP Q Q  0'( $PL(vPQp (q (PD ` 0o'PS !p W4(X _PPK$PPKd _!P+ `(PPQ4Ce!@f&A 0B 05'P$P2&0 }&PPK2a&0A "Xa/ 'P+ P8 d s` r0 3/PA PTEtPPPL1&0g }KPPe&p1P0&h }K'P 1/ PPPPH&1P0& k}KPPP7&0P0&m Z}d 㭂K}PKDh2ԐEnՐԐӐjՐnՐDD(bӐRѐӐԐՐrԐVԐҐҐҐѐ*А:ϐАΐΐvϐ~Ґ^ҐѐFАА:ӐQ/0H-@% ?yP# OlxP !zP twP `xP L%uP ^sqL6}Lq#ΐ00H-0@@匦 PP  P P0,{0H-Q PaS S}0P@PP $000hP   $P  !$ $ $0z0H-Q P@S 0|P@PP00P  !  0y0H-@\\ YH>P  0@P00ː6ۍ0H-PP @T 0 @P , P * P X* P D' P  P @ @0x(0H-PP@T 0 @P P P XP DP P@@0wXpL-@xPt 0.㐁+`> Ā"P5` ;pɐ4pL-@P` 0:p0H-PP@T 0@A-@P% UP @MP dNP LP \IP HFP 4CP(@@0`v`\hH- ZHLh0H-@PS 0HbL-@KLg//Du/4uO-M@P`姉PC Y| PJ ~pPHd \P p KPk NcPfṇd`Pf nPI P nY@`P `TllPL pY-`2pPd P5 p P `PnP Y@ ``0&0m z `k gDr Q`4 Kx4Yǐ)ƐiŐIŐŐ1pL-8`P@`P  pL1pL-@P`P `< `VpPp`m`p0H-@P@PĈP $a0H轈0$P/L-@P m LÐK-M@P P[,啈@P> PtP9 PP mP @ p-@Kp P @#꬐` !P @TP|m`P P tmP P m@@V!K004pH- -P  Q Р L-P@ 0L//@/H- xPQ ZIPN #)PK jPH PE RPB P? +P< kP9 S/P6 a7P3 *hP0 =hP- FoP* HP' OP$ #7P! \P "P *lP 4-P kP P A-P bP ,hP DP mP//O- MPP" p`P @ 06/P p 0p寚@P@VK@K 0p6/KO-MP@`wVP KP @pAW @  PP=pGWpW X P Y @J 0@P0 pIpW   PpGWpYp  K  K  P K f KO-M`Q p@:PUPKP`@V `  }pGP`ءPW y  PrP AX> W'  @G0X \Pe HXpG`D0 @0*P W0 X 8P- YW,P% 劜YY } pG`W @W ``KV`&V`K `KO-M `@pAPW dV%F P4h@P P% 0P2P eV~ qV VPFKPP@Ur  ` `P Pt  PoX P /`AV   PP`FVPPU4PU0P`U+ `U$ @`P fP @ PKP@U  e 0PWKPKPK  0KOqPKpL-PE F ]@P `P @ @@pL p;϶pL-PP @}P `4 Ed0 mnPpw0H-@P(P  0H0/`%K-PQ/ pR,`@LXPYFUP  }PRP  P/UY AM-@Q p`PXP B@ TP  }P@0H-MP@ R }PK0K-@Pp`eD/P?DDDDDDDDD\DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDe 0Z@( T5 TP;  h|P8 0KA 0K;  V|pPrP ppgP  \p Y.}P pSppL-@ |P `PB;pPpP/L-@1{+,0H-@PP  0Hb0L-ywu묍s뺍qčoƍm׋k릍i봍geF@  뻋WF@  ~I댍GF@ p 멋9딍7PLF@ < 늍)$ F@  뀍% {뀓낓랓̐  Đ 뺐E@ f a띔듔땔닔lhE@ RX M붑븑뮑ߢݢ뺑ۢE@ : 5 0$ *$ $뼢뺢븢붢D@   룢롢럢띢PLD@ < ,  |녢|냢|끢||}|{|y"}wX}u*}s0}q:}o# >}gC@  |Y|W|U|S|Q|O|M|K0}I }G}E# }=B@  |/|-|+|)|'|%|#|! }||||x" y|d`B@ pP k딅딅딅딅똅뒅뜅랅렅뒅A@ P K뜅떅렅ߡ뢅ݡ뤅ۡ떅١A@ 8 3렅ˡ뚅ɡ뤅ǡ릅š먅á뚅HDA@ 4 d볡~뱡똅믡(뭡*L誡㰐ڏ̰wՏ}֏fGՏ7'ԏ 87iԏ썏ݤӏ쮐ஐߏϮُ؏tIُ2#Nj|}?4﬐ vR٫ec'=L-2z\x  npn    2`J^|x@@ h PNLJNHBFBLCꨈ*w{ԏtpL-P(@`4 tP`P@pH-@4T eP 00*c 0 Jc 0 bJC0 *C0 C 跨( W // ////$/(/,////$/(/,/////4pL-@P%`8 ApO-M@pS": P  `  !0@AQqt p@@T P `   0`?KO-MS$ S@pP`A#ޛ˛ԛΊ 0=˛pG`WP@1WKO-$MPpS%:  `  ᪛ ᗛ@ ᠛!0@  ᝛Qaqu pP@U ጛ y@ ႛ 0 @ ~KO- Mp`yPG p @UPL0 =YK/// /0pL-@P0`C jTpO-M@pS": P  `  !0RAQqt p@@T P `   0`RKO-MS$ S@pP`A#֚ߚʚ 0O֚pG`WP@1WKO-$MPpS%:  `  ᵚ ᢚ@ ᫚!0}S  ᨚQaqu pP@U ᗚ ᄚ@ ፚ 0 ^S ቚKO- Mp`ᄙPG p @`PW0 OYK/0H-@PGB  <  0O-,M@`PpS/:$ P" + 0   !`AQat PP@@T$`T ` $   0Z`K `b bg #NH- ` u/0 X/O-MPpUQP`@V PuQ p2  0Bu Z? `@0G Y  `@D 0,q?P4pBpPS3P0PB0BBP ` @N@TUl 0I `\ PPF 9@0B@BP=@=0@@B0B0 PE0@TUJ P`6 @ P0R `PȠPp .AP?@FDtTFWsFPppFPF p P`@0I@  P0Č@P\v,)p FpF\= p = FF PE0 @TUt U  tP@KK LښK-R Ȁ@`TRXp0@& R?`T4AUVS3`P0`A0APA@A`TR= UF%i@`A@AU#=@  A@AO-Y' pY05`@@p0WP p`F @%Q?PCTD UVTCCP@@CPC00N0Cp @PGpU=PZf*I`@C`CZS=@PPC@Cp 00pX\/O- M @R `=VR=PYB YA` @6QPPU1 =P(X,-PI pW ?R%p @RP@ @pV PIPH@` 0  Z3XpWX5`3`PR @U*, @PPF` @UPR@UoR@ PR@` KԹO-0Sp`R sPs@_oOoRBP 0 Bs @A RPP NPU  ^-@0`s 0pP pP 00  r R 3@036T#406 9#80ҹpL-`P @R 0Pp@pH- <pP $-m)m(@O-dMp`yP@ P zp {P  0xP$ `@ PY wF v қ@PD u+ ڛP'l1x0t hmK,1[0ty ]mV P \P  IrK 0@ p 7/Q K ]rvl0n0t *mKD0~0tx mK8??$opL-MPQ& @`P zp t@{P d `0P VPT  QKp<<TM-MpP`PJyP  &P @p`P l6P9  P2P 0 0P&CP! PP 0 0jP1P X PPPpPpPpI~!c~pL-`D@@0P0 >P1Ppp[pL-`L@H0P0 &PQpp#[H-MPP@p`Tݱ@P  5P U@K@U P Ʊ(0'0fA c@K|0H-PQ @ h00pL-`P@L0P0 ȺP +QppYA$/O-MP p1@0 ᩺P530@ `P)q`P$p  q  0ዺPzPdP PqZK`K{śil{H- <fP $bbststM-MP`@OP j 0p 0@K$0 0s cKC~O-DM`Q@0 $ ( `o@P =KP 0 K$ K(0K P `p  `fhP7 `hP1 ZhPn xThPq hNhPt XHhP HBhP;P p$pLP $`Pg P| `SfPPS `P$P (0 0P (Y,  00, K P0 ,K5/P  HSP_$ p Z( $p U0 K$ K(0K(p P~\P@R `P `RPP 2P/ p$pKPa $`Pyg P `@RPP p$pKPM $`Peg P -PB ($0 (p `QtP~ oP2 ^JP+,+\16 0tA b@ `dlPbPP;  oQ RJ!10 10 t a` BJ.pP P,p9JP$pUT m@P Pᱺ$ 㭺( 㩺KP$P /zxmf8/`',<Tyy{/yO-MMp`P@R  PI P= $X+ Z(VF PP fp $ PK p p` 0  0}P(  1 0;PQ |Pp|0A0 uq `0 0u Kap̺K(0"0 )!%'wvvvM-MP`pP @& ?P P `@Kp0#0uA a`KD0080!0#uA ``K5v vu0H-MP* P @ͮP  T?P K003#0rA `@K0T08#0rA <0=#0rd ` @K0MuutL-M@P<o?K$0L#0y `K}tO- Mp`P P/ @`P6  ގP7  0CPP8 ppPXp 0P& K0]#0sA X`@K0b#0sx   0APPX0n#0sA @0w#0sg 4`q @Kas1srrpL-M`@PQ  0 ~KpcH- 0 y>PPL-M@P<>K$0#0y _KqH- M0  HP РH- MK0KS 㣞 РH- M0  /P РH- M0 *"P РH- M0  P РH- M0  P РL- @"LH- P QH //O-lM@PE p`5P@ P@@P f@ , 0  P0 ܈ 0 P( @R@@,@ 0PPʀ@㳸㰸 K|0+#0xe _ KT07#0xk 80=#0xj _"@ KnnenM-MPp`2@P+  @AP& `iL- HP$ P 0`P# ` bP(  Q   PP-0!0 0)#0ws 0/0#wA `4 `ጷ6w# X`< `့?w#t 0^PK~mfmmNm*mlM- MPp@`0 @~P  0 Pp@U Th0r#0je i^Ls =K$0^#0ju Y^KklkK-Mp`P.@P  ե0S"  0P P Ჷ K0#0lA ^l0#0lf ^ LP#Plg 0 ^ ߶@KjjjjpL- M@PP  K0P#   0`00  ` P @10P  :Kp@Kp,0*#0nA ]@KpiiO- ```IVP{  aPu  P @@#`@ HaPg  za @P `^ raPY  laPS $K faPh  aPb V c 0Q # P `@` VЀPh@ e*dB DP0pQ1` R 02PP!Q"R Z1@ p Pxh @@P D H-``uhP@ Ph@P HhhPNhpU Ch.@h@ChpPB @ @W(-h @@ O-LMPp@_,a( J_W_P  hP P:$0dA fYo@K@@gGfFQA!@gӭghgPP@ P! $_ z p  C0E4EP 0kU 0F 0A 0< 07 02 0- 0( 0# 0 0 0 0 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~ 0y 0t 0o 0j 0e 0` 0[ 0V 0Q 0L 0GP@0(@,0 c$@ ` @$P BPP0!( 嘬f eL P Pփ@ ^ W Pp ,P , #_P ,P(P ( _P  _P (P0 _P $K _P X h^P   ^P ^P 0 _P @0p P Q:  ! 10 " Q!Z; 20p " Q pG!Z< ݥ  30 " Q!Z= ݥ  40 " Q!Z> ݥ  50 " Q!Z? ݥ  60 " Q!Z@ ݥ  70 " Q!ZA ݥ  80 " Q! ZB ݥ` V `!90 Z " CݥWC@ ]P< $K o^P6 0 i^P0 QPe멫` ]^P!  ^P e]@P @P0$0dd Wt\K蒫eD0 $0d Vz]@K4 `W*X@XaL- ƣPe,@@LePQ PL-<ZP $@@7V4VG|GM-R: `@P P 2 5\.Q   p @R':@a [ 'P0@D` @  @ @@ G$P $#?@D`T  \@[ [\\O-tMR P 0@ P0@P . `P0 n+,,0 0 "p l; @ b)0n P`0`  00PP00 VP  `A S` @@S  PrP`F,[ ೦Pm 0PPn@P V#U:0S0Z1 : ` 0 cQ*bB B V  B B0 R`0&0@ 0`MP*PW7W :  dQ*bB BW)  G 0Qp0'00D0x MPK`P P` \0]0A MP@[, n0 7K@(>?==O-TM 0` AT@pP? bwP;V8pP(KK(  K(KCTP  TP K TP Y  TP Y P p  TPp  FRp@SK0H-M P@P@ PPK0O-Mp`P@X4yWpvUZ K`PP@@ V @P Q $P(@y <403M\K@㴦D0$@( Ꮶ  0㊦ K @xP(@ ZP$ 30A M$ L oPE @ @  R @@\`K(P 0p P+T0@S:V0Z1 : jQ*fB FS `\ KC PQ``&`$\ KpPP `20A L sT ` @((0 S:0$p0W(05$p500T1 :(`$p 0 d0S*gB GV` p$0pGpG0pG   `pW@`$`, `0`TP $P,p@J [@(@W0 AA pQ`'pG@Fo0? p  0(@  DY \00m 9L`$P `$ XQ`::L:9P70; ;H- <YOP $KK \"H- <COP $vKrKl#L##H- QO-M`@PR :p!brv @ `HV !KO-MဠP0  b: ~ P l@pc S^  `P0 pUS VV; p@S2 y0@ 3.0@  X: E 0埄S@ X*S y p`FP S@ကFP0〠Pc Z@E  @aE @` Z 2@  LE倠@P8 @PAZ lj@Q*@!@P @!9P  (EA@@倠PX ` @$Ed@@`PK q@@4@ P A   PD KH-p@  0P@`5"@   P:?R?a@P@` D   0@0  P*Ra@`O0!d{ w0s~`!h!}`|"z"y"x#v#u#t r `q Np!ok g0c`n!m! l"j"i" h#f#e# d&b&a& @` `DW 0 a Ja ja *bjA G*AJGܣ`O-M` PP|@U@@V: p P!fbRv `IV ! Y TKHH- <[MP $II<H-MP`pܧ@P(   & _ P$ tbP _uP `P V  .P K00 0~A Iᪧ@KH==P/帥P/H/pL-M`@PP 姥P;{P6h@`}fP0f 0 "0^ 0t @x0a 0s q}X0P0n r r u zIo}KpH< <h<<<00 R 0R  R/R//l/\pL-M@P PPQKp` opQo@rP Q 00@Kp,nqoopL-M@P@0\ ` 礐P 0 vp@  ܡT@Kpn9H- MbpP Р0H-M@0@X P xP 0 Jp@  డT@K0mD9oBopoH- oPH- MoP РH- MpP Р o/Q$00R/q  [  /plpL-M@PQ A`P 0 KpL!`lP UppD00 3/KpPPVX$O-M`V: @P VPP VPT PVUꎣp{VPG PE PoVUP iVpP"P#dVP3 PZVU*p'  2qp pKpKpK莃p>VPP P3VUpKpKpKH- M@P:,P Tp Р РP/P,/H-  @ V,t P/H- UX0H- MPA@P@K0@HP Tp p(0s 0{ GK0k4K- M`@PP7XAp @ P0 UP < ` P0W 8 PSPN TP(10I`hP XTpp'@ P p@p41 0A *GPW)K0 0A GPKP PڜTU@pp@x00 A FdP PП ̟PK蔪3233Ȫ2G321@/H-  T$ĨL-P@ $  L萟 10/ //0H-P@ q 00 ? <P/  jmP/  zP/  ⽡P/ R/Q0S/P /P/  /L-P @T@P T@@P / R Q AH- T H/P/P/P/RgL- M@4Sp _TKKM-`POTPpMT@P>P p*(0H-M8@ P N ZK0( O- M\PqP+ @RP#4p{R` IP  IP P+_P& p\RWK0?"0fA D@Kp0K"0fj DTT0 0D``H4@Ktb(vA'0aq'00܂`  t``؎`pL-M @4Q `P P  6 P KpO-MP`ὑP? @QP7p@P`Q4` PU9 @IP IP PU+  IP@ G P2 P PpQ`W@K0C"0eA mC@K0V"0eo aCpp0 0```SH\@K$0M"0eA HC%$$0H-P@8k4 R 0P  R 0P 2 0H 0H*%H-XMP@ XQP`pKPTQ Pn {PEQUPKH-MPROP @5QP`3QpP$P hP`!QVK0P"0gA B@KdPX0]"0gn B<<0 0,``G@KTR|$$00ँ4]  <$]Ў]ࠍ]pL-MQ@PPKpl" P `G@Kp(0#"0A zBKp##0H-MR P᠐P @G {P K0`01"0dk D0?"0dA PB@K0~@K0""H- <vEP $AA, H- MP臻 РPH- MPm РPH- <JEP $}AyA|\|H-M`0p @ K P P   0]`VVPK$0K 0A AK8O- MMp@١P7 Pw`P3 8Ę + ሣPxPI@5p Qp Q@TT   Ӣ  ͢ +f@PTK +pPK@ ᷢ +e P>(qp   Q P   Q Ao @T@TT X ㋢X  ᅢ  ~T  + @P  0㩣/壡KR;M-M`XP@p )  0 @ K 65K-M`pP6P @層 0P`  0f`K$0i 0A @K4O-LMP<88F46@ 0@ 0R0@ P LvPp P P0f``  p Pb_ *`ZN!B Pn`WDLpb(B^#DFA`@!T*@ៗ8, NP` V  డ N=`nP,pW*V V# @V& *V49V! V&xޡ.,0K 7/P,ӡ, ɡġ࿡p a)VZ `Pడ `YNYMcs`p c` `JNpc``є x 0 d V L < 0( 0  0P  KTY\`0 @Ԗ@ 0Ζ, 0Ȗ@ @P`VpWA2S 0 ?K ` 0@外 | l \P 0 0m$ 0@@}K K,0K( ,P $ 7/P( p K,0K 7/`(pW Qp(ğ(p WVK?45R424>4G4Jro263z55oa1Z1g1000000004363|33312q3n3h3`3U3)]O-4MMQ`QP p4800LpPKPDP. TJDP HDDP 48 0 > CL PP7 0 ,400KpLPPU L6 0 CJ@P> P0P+YP@ qw @E ($,,(($W P   DP  DP  CPP P (# P QP QY$ ,P ,K,P %>P  0,因Y$(P,  MY$ ,0 EP0P+ܟPu@E($, (($^CP P40 CP  CP0 PCPP PL (# P QP QY$ ,P ,6K,P1 ǝP'  0,$Y$( P,  ֞Y$ ,0 Ξ P0P+eP,K@=@,PJP. KKP,K@P5 p408T0oJpKPPU-nK2 0 ῝`K1f 0 8=TKPK1 0 (=llBP `BP L1 0 =0 B 'K"K aP PV p9KnHK0 0 KK,Ɉ-c/.\+s  _&?O &>ÈL &( %(%(0 =/,/,K/O-MM*IP `@tP +~PUP VDPP R R(0AS 1p<:R@TP@TP "P 'DP@T p(R ;R@TP@TP "P DP@T uAp@W:"Q qCP GW:"Q@P =R@TP@TP "P CP@T DAPp@W:"Q qCP PPGW:"Q@PP P}"RA (RE ;RK@TP@TP "P~ CP@T| A p@Wv:"Q qCP  GWk:"Q@ Pc  `"R R;< )R R34 R-.  R%&pP @P@Y:"Q qYCP PPIY :"Q@PP pPP PePP-PP HP PP P@t RQ. QY@TP[@TPW "PR CP@TP q@ p@WJ:"Q qBP  GW?:"Q@ P7  4@TP;@TP7 "P2 BP@T0 D@p@W*:"Q qBP GW:"Q@P PZXP Po@tZKPPP hHP@t Z8Kl@/@ᯓ#㫓P <H4:.ࠓ HK  P/0H-TP@/Pቓ#ㅓP H:.0Hy; pL-MP`0믚P @M` PP|0 0n :  0Kp(0 0A m:PKp3K-MM@PP" `d gGpHPpP1 0 B:^HK0 0 3:K?P 0 0 #: ?|9H* P `M* PoKK _ xP Q j?QP@/P@/M-`PP L#࿷PK PP @ppAP ADPV )#ষP" P @p`AP ADP 3# P `| FP ``Lp=#po>#k?#g`'K-pQP ! I#[P( PP @p`PAP OADPW U#BP Z#ෑP pFP Pp<`c#` /e#K_P Q >QP@/P@/0H-8P@#P##0HM-MPUpP 41< 0 8K @? j: X`V gd K᝜P p  :  :p 0P  5/P 0  p7 K<xTwH-MS p@`P`t P PP@KPK[S/pL-`P@ UpM-MPS- p` 0   @4/PPd ൐P   Q P @K/S/K-p` @4PP PPPO-M@Q2 P`P0 P+p@#Y MI P >P!@ ! /P@YK< @P@K@KԌBO-M@P  0妙PE@`@0@ p W S `@ p W `V ~`0 WVy F Vs00\ C/o"A00pCwp Wsp&W#*Qs0A0CSQZ@Ah R "删p p0`Pi Tp`T@p  P  Z\PF +P`@4A~ @g 0>7 K``K`@ @g 0$7 K@j @g P07k K@D@r @gA 07s ՏKfL1<1O-LMPB 0 p@P`  p$p` 0 pp%tP/ 4P_P3 0@@PPp `建IPp,` C`P- ?` 0KZ# ;WPp%D3= 0C (3C 0 63J 0l 6pP@PWPp `p0K 0XPv ,^phW%Y`[PpPg 0 4`R  oP] VPR 0 ]PO  0]PI  0\PC Y &P= 0\P7 P3 `%` 4 P& L` PA p ! P$ K0k 0r 5PpP0 0A 5 ߅pph0 0A 5хWpKpm5 / . ,- - O-M@P``^P\ 8 @P` S_Q P*\Ph PT c8 \PV @\PQ H\PL 8pP p$pP 0pprP= 8,0P<@ L0,H 4 D$P 0 40prP2 P0 VpX(*00 W5@p00r L5p|0 0 X00{ :5pX PṎ(/K h,q ) I H*L-8@@(Z8P (44pO- M` p@PP' UL T 00k      PU @&U$ T 00C      PU @ @K/ L-M@S10  *      KM-A (0"H P(#lqo#GK@@#s{p@$sp|0.q@@%$w$\{QpP$s{pP%tp|qPP#%w%<{1p0%s{p0#up|q0p,0'#G#|Kq@p#CK@p's@LAp@P$@%$W$|[qPp$S[Pp'tP\QpP0%0##W#|[qPp#S[Pp'sP\QpPP%@%$W$|[qPp$S[Pp'tP\QpP0%0##W#|[qPp#S[Pp'sP\Qp PP%@%$W$|[qPp$S[Pp'tP\Qp$P0%0##W#|[qPp#S[Pp'sP\Qp(PP%@%$W$|[qPp$S[Pp'tP\Qp,P0%0##W#|[qPp#S[Pp'sP\Qp0PP%@%$W$|[qPp$S[Pp'tP\Qp4P0%P#%w%<{1p0%s{p0#up|q08pp'0'#G#|Kq@p#CK@p's@LAp<@P$p%wP'C'g\Kk'\@Q @`D 0& "!  #M-@ϠD00#H #W #L[AP@#S [P@$sP\Q@@PP%@%$\$W [P$S [P.tP\Q"  !  " pW  o=b0pW! pg4Y14`&pW q/-  A7B7YHK㛝KKK- M`P 0f0j B/KQ"@AqW Q00CP P`as BQP !P P #KM-Pp֚Q \0"LaV q@a@Dp P`at B\PO-LM@`Q pf**@P| PٜPr UP3P`40   , p` RQ(PP0P0QB(0 @0"$ Rp 00 { 4(0 v$0 ) K$Kq40 `$P" !! "< !8`,p`P p'  Pp %' @`Z p0,0S,> e@P@%*K 0@KO-M-MP@p)2*`P  BP Z 0s`P``P`V @p:s 0 A B!RA00 Q1|:pQP P@T` `LJD0჊a^hxxxxJLx@lpDNrx@x ~`tx@p!rAx`R!$x@P"tAx ԡjx@v!rA!*x|dx@JtAranA,xxLJ|`xnvRx P$x@p!rAxR!$x@rtAxT!"x@r vAlT!"x@zpAR%TA&x`PtalVA$x`paVa(xtXa&xvXa&X*xVet Z(xxv HZA$xhցhThlЁhjhFPJ EA0@`P AT,${ z { $wTvwT~$- | } Tz $) x y  Z@ #Pt r s pq@q@pPF( upDpEpPB, qp@pA @P &  M`P` )@KЍO- Mp@P˘H`y/စP P@PP 1z0j -1P/\ P0LP q@@Dp UPt A\PUPU U 0 P  !௅Kz6NO- M@pPkD`" P P@刘PP 1"0j ,0P.\ P0LP q@@Dp UPt A\PUPU U 0 :P  /PKO-DM`@pP'c(P$@  \(P W(P , R(P `,` P P $( K PP ,@ܗ ٗP0EP U(PEc1(P,@ P3P `UQ1(P@`P P U @A1(P0 @P (p E  $ r@@0T,; (P( p 0 b0@#0PpWo``` P0``&@  @(p@\ @T   b pZd Z 0 W\ @,$,(` 0,  0$0  VMV4:Q\$ 3 @ @Y003!\3Y`1`3Tp,@p3X@3\@3X  3Y003XPP3  0 (`0, @$pF!1apQPp%ppPp%p@(`,V(p TQD P `B `QB AP >p Tڃ(`0, @ $p 0 gP*cB C b*aB AV@PM-`@P&&P p;q PțP q 0xP&P&P&pL-`P@q `ᡛP qp@pO-M@PN&&`P  0p=P  0@v`P`z&KO-M@p*&&P' `PΘq p[P q&{&P  0pP  0@>PPPB&P>&KO- MPp@)P KO蔘P  P K%=&P*  `LP$ ؕP@0 P H=P  0@P XɗP% KO- Mp@PᨕH`#]P P@ŕPP 10j )1P/\ P0LP q@@Dp UPt A\PUPU U 0 UP  =.KK-MP @P6%%pP `@kP  0@+pd%K ǗpKO- M@Pp`$ҁP p@:pP h10j `)pD $2K\ p0LP Q@@DP Wpt A\pWpW WP $ #%pP P@P   0p $Pp~ZO-,M@P $ $` $P $Pv p Po ẔP '@g"@K@ P `$p $ $@ $PM  0DPD  P> iP6 P@ 0eP(  0^P! p 0P QPPP  P ` 0Aqp'q`pV0 V `0 V 11`0V0N $@P`Q`PnP P 0qAp$qpP0$pP 0$pP 110P0 P `Q@|   1QPWP 2\0q ŕP P# 0P `Q`pP@} PZ$ 0QAP$QPPM 0Pc  0P\  p`Q `P. P 0QAP$QPP0 PP 0 PP 110P0呖 `@$pX0$@P 110P0t P  H0f0t }'@ R#K)@P@Rߏ܏O- M@pP D`$P P@(PP 10j N'0P.\ P0LP q@@Dp UPt A\PUPU U 0 P  $Kz܏6܏RۏO-4M$,(,A, ,@A.0@PS@ d }#a~' `SV{'gSY*z'QjaSx'%w'u'(t'Ar' 'p#)A$pC$ pD$ F$G$Y$j%l&&!.r㣐)Ѓ.KH- <)P $&&"&踣0(O-dMPP0p0PX<`,0 4P0p,PX<`40 4 @0 pX `<80 4(@ @ 0pX`<00 4$@` p P @  0P3? 0p7$p`(``6o(`1 @!`& p' P#,<@ <` C`'V( ˎv@8PA$ 0!JP%@KUuUx%\Q q  VX0#Q0#&\Q0#p`,0B`(W pPA  >P P`   Q (>PH 0 :P+W gPL  @Pcqf PE X"  N2:.0x 2Y.0xA JJ1.0xe A1Q.0xf 8`7WPM 1t.0xv *W`9 X1.0xA 0P0A@ wq  0pq @K0.0xf 0pp ]q@  0@Vq hxK c Yx0D  Bq`R Uʠbҡ&V枏柏v⠏H-`P@R  Xp pP  ``U 㪛`VM-MR@S d1.0{ `KPpQ! $cP3 ホ` `p PoP  @n`K9P` P `oP  @`K@0.0{A ,0.0{z ֝^ R R  5H- <gP $eeh RQ/H- Mk РH/L-MPQ@K@@ukP@KpL-`P@o$P Ij@P P#? <``o@ oA op@pڧpL-MPR+ @U `Q `@4kP KpZP \$PZP 8kP KpKpM3Ԏ0H-@P PP @0 aiP@0 D0H-@iPi 00H-P@P P0P Q 0H P P0L-P@P-k( jjL}i(0 P/NjM-P Pp$P`@`Dl$p n n n@DT"(P Pn MnM-p\"P) P ]nP% @` RnP  !IiPjP!l n@!!@< n@ ௟b:֣~/d/e0H-XP X n@P 1/P 0[ xn@0膣JP/0  /Xd\P/L-@,| ZnҢP/H- O-4M` P֗P FP  @ P MP ` PP @`p!Pwb P A0 S SA0SP  QP P  P@0 pp j@R"`pP  fP Pp  ]PPE Vp Q @ 6KP 0+w@sP0S ) 0PP # w0pPor @    PpPorW  P0wps0S P@PQ 0 PP @F[RC 0Pu0   r0:S0: P:SP 0 0 pp  0 0P 0rpW pppW r=Q P@ 0 p W  0p0B R0pSC pP E:!@lP P pI-~l@X`T@ :  X 0pP }P P P  @P  PቖPApP `  pw   pBpPPPU W ]W V` P @ P P EPW20y  Pp`20y  |20p20yA pha! QlV'@ H" 0 m8 gU eR@W Rk!P4l[/0lm!,lK10yg ɕ]! l@KT1K0ye 5p41;0yA +p1C0yA !p P`0V0yA p00yd p P`00yg p P`w800yg ;ώZ⚏>rZƘi>ҙH-  xg/0A/pL-M@ PxP ` B@1sKpX0P0xr Kpx KpčO-M`Pp@P  )P PQ0` @  $ <$Pe  `0Q PP@  0 = `Q0 .s R 0S0 ) 00``` b@ q R0 !(XXXXX`Xlh 0 0S`  `0(P)0{P}0S00AP@:U:@:P  @ P@  P PUPQPU@0 0 FQ/ `ḔP2 P  P@,P'"Pzj )"tj@K00eh x00et \0!0eA 000ef w@ K貒ҒZ S H- M$ rh Р  lhsP/0  /tSPH- <~P $tSTSSH- <hP $lTLTTH- <RP $TtTDUH- (PphO-Mp@PS  埜b `0g0 gP `2 0g0pgX nT P20g<8b `0g 0 yg 0g؁^P/ ,p&%@ 0!<`&5@#!/0X!0  /0!`eJh!0`` jP ^$ 1 0g$P ` 0.gqg`0 0ig"P ۔ _g( )0Xg0 0Qg,00 gKPP햏ҖaPAP6OepNV!]NO-M`pWP@PS 0I@U  gPTKO-4MpP  ( 0\@ `0$@ Z? p $K P )"  & !$ KV$J(p Z` `&$@&&   ))) PPP@ p@Z 0JSP pA 0XL@4,$q q qpq  q 0q0Q P$@ ) !  &!$ $KU$(` `&&&   )))  Z u p P @( $$ * $KU$ H$p & " X )0" $  (  !!! `PP P(@ p@\6 ` &$  p) $KU0GS*  p$p* '$pp$'p1TLD<80( "<0`"80`"40` `!, `!( `!$ `@(@ \` &`&& ))) K0NH- <P $/+LLMO-MpSPp P@`'P  @PG8@pVPPP| 0 PßQH0 L0K00 04 08 D K@0  < 4KD PK$P0L0 0 1P5 P K,K$ K(0KP E $P(P  Q D  Q >   @Q7 K,K$ K(0K E$P pPQ U(j(P  @pPQ K,K$ K(0K E $P(P,  @ QP pPUB p P: p  BP2 ))) P 5P% V: .P W  `FP P @ @[gpp PfSK K,K$ K(0K >E $(  pPQ pPQ(  PPPULTI`H- <P $   IIIO-M@,,Q KO/`P/ `Vy`P( 3*P5 ;yPPUyPP* ypP  30  RyZpP`UpP`U ByV =y\KpPUH- <fP $  HpHIO-M`pPX@P@ VPY @VhfV^ pPw p Pt @ PP^ Y 0  iPT P  d0 3/PH  0\P 5/PP= V" P!1 EPA P  d0 3/P5  0\ 0@$ =xB/~O-M P@jnYpPKjP`P%PQQ @@AT P߅  kpPTPQ@DTppXp P  p @P TKj  0@uP XX9QQ@aPT@ p  R4XX Tbګ tJA@ XXp AX  j@P.XGPGH QGP D  ` PE]! }nK xnWpKWpK F@pKg!!! !j!i!ޒ^!ؒ_!Ғ!̒i/ƒy!b/ຒ!ഒx!tஒh!d਒V퐏n͑呏MՐF]vE-Ffސu͑5ΑO- PPMg P &P  A OP  R  0KOh KP Px  0KOh(v/$$!V텏>ՅpL-|@ H ^PP `ʕP ffPpP ^p襅ApL-PP @fP `寕0e ^ffPp턏0H-@PjjP  0Hh0O-M`PK`@P@0S00 8`(L \HD800( ,(0r p80@`XT< @84@ 0  `J`j`*a @ a*@jIJAJf@(;k5 E*` i@,K3 I `\0j`aFj@0$!|0  p " ""ᐫ2  # +1 #dP  a #;4 $@ .t  ! 1 $ ! !x !  !( !   !  !  ! , ! ! ! l !  ! !. %  % %(& & & # # # $ $* ** " $X"h @"$.`u `Jf@(h E*a a@,[\3 I a jaaF0j@@#K #; " & & p` &k5 %  +2|P d l@ 0 a  % % $ 4" ,X $ " "+x "  " ( "+   "  "  "+1 ,# # #00 $t  $ $@ ) ) )(& & &    , ,* *h*"  "h"$... @  ` $@ `@! 0.  .h@. " " h "     |蠍@ @q  !8   0P   (   0 ! ^ [ ] [ `  `[ _[| 80 X[ I[00 B[(0 ;[ 4[  "-[0"& [#  #0 0  #00 "00 "00 "00 "0 "00" 0 "0p "0` "0P "0@ "0 "0" ! h q ! 8  !! 0 !! ( !t   t !  !!   8    Q[0  J[(  C[  <[  5[ .[ "'["!    !  !  !  t   !         A`[  PP[  p  @  W[  ,0[  ([ /[6[=[D[ K[R[Y[![0[7[>[E[L[S[Z["[ )[8[?[F[M[T[[[#[t *[1[@[G[N[U[\[$[+[2[9[|H[xO[tV[p%[3[l:[P\ d` D $!  $! !qh ! 8 !  0   (  d       d    P 8` 0l  (! 0 !"$!  "h  !! !  !  ! !  ! ! p! @! P! `! ! 0! !Tl $!d   ,!!    xq  8   0  (! (    p x  t  |  x 8  0 !( ! " d "  !  !  !  ! !  ! ! P! @! `! p! ! 0! !H  !d   !!  !     lq ! 8  ! 0  (   l         8 !0 !t(" d "  !  !  !  ! !  !t ! `! P! p! @! ! 0! !\ (!d   !  (!        q ! 8  0 (            8 !0"  d "  !  !  !  ! !  ! `! @! ! p! P! 0! ! !L 0 ( d !              pq  8 0p (      `  p  !08 ! *d@ؠ@$@@!@@!@@!@@!@@!@@!d@ !@!@!`!pP!!0!!X8 p 0  !(          !  ` @q  8! 0!  ( ! ! !  !0" s p p'pp pp pp  ` @p@ pp  p儀 p p|P p x0   `p*  *d ᜠ *ᘠ , lp,,  & t &@  & '  ' 'p #  # ( #0  (  (` (a  ,%  %  %&X $" P $ " "$ d  $ $ "  " "(* * * ! ! !),, h0 , !)(' )$0 ,Hh0 PS 0'̠'rP &,&D萝p`@lPP p0@ $`Q 3Q Pj< `PK8XT4@p0!!@P4P` Ѐ ",  p "Ѐ 0" @  (p "Ѐ 0"   p 0 "Ѐ 0"   ,p$ 0  "Ѐ 0"   p, 0( "Ѐ 0"   4 0p "0Ѐ 0"  0< 8`PK" Ѐ !  < 8XT%4@`PK0*eT `@*f@X<  F*a iB(8*a@ A\ a *aB,*a@ A `*j@0*`@ @ R@@ p80vKpZ/,OH- - 0 ` Р0H-M@P 0 `PK0H- - 0 {` Р0H-M@P 0 p`PK0O-MP`@^pbbV UWP K<04`  05PPWT| `V 0 6/PE P 5@PH  ^P4 P $ 0'P#  U ѷ^P PE PU  ;^ K3^b P K 8cc0H-@PaP  0H1^00H-P@_ 0HF0H-@PaP  0H_0O-MP`]@PM paEP  $7 U9Y4 P(PU 04 <05/P3 4QP, 0P+P"  $ (,(,<<@KY  0KO>_]K@KH-@@b $UPP |`r pUP pR]PR]g gU+hHɽg j;ʄgkAكy!~[+rn<6_:OM-@`Pp`W*P `  `FPV :pp`F Pp` O-MTH0R c8 `PL0>KX #p! GKx !p H h !` D X P @ H @ < 8 0 8 ( 4   ,($ ,q x8p0 p(p(p4 h$pp8 ` pp< XpXp@ PpPpD Hp@pH @ppP00 L  00 `*fJg CJB*A ` p(1 P T TPp p  a`,l! A*a*Ah (*a*Ad 8*a*A` H*a*A\ X*a*Ap h*a*Ax |0l  1L@ PxQ |!P T!@" P@$-J0 ++B`&|!8;I@q ! ";7 4H> @,g;KP.4$L%<DhQPDQP%h  (! h|Q Pp!0$% `/, 8 Q(!p`HP0 (@4 0 `0d\p# Ap't`"k A O`&+Or@*n CP(%$ TdP@XAT 0 #d 0"88( H40:U@OUJ< `xp d t!, 8004100H@* E$h@#y~A$ @P $%@",!L$`P PHQ@h P0! #d!(( P 00" p( ),'D \"L\ `  `  !8!"(  P`(,"! O(0q* /?|h`PDq$qP@@p@`pdq p@ha '`|`$| 0* (pd#<"l$00|10@\0@p`#p, $8 p!H 0@!@#P0 o?|!.dq" `/0@qP@(q`0DpxQ`|a dq0pap#tQ`!. ,D "Ll!P!lQ p!  0! #08"(!x, " ' ! LA?,!0pPQH 0 px1 !t! `' 0$#*D ,LpP! L$ " ph (!P| @ 1t(` (& !t,x!    !8"(!8  !" 1堏ᡯ$ %0 a/xxt1q0`0,P#`P,`P`%P`` &d h"l$d ` <08`` \P 00t |0 "0#q@*P.d$L%|LaDpPa@`&  (! ( pp`l` 0p@*$ (0"PP %d !|d40`|! t"(!X0( ) @x`pp&,$ Ā|!d ! 8"(.8 ,  "$! (1/ᡯ!(p 0" `ρpl1x0 p0l h P#0@#$hHh%X%0&@ $ !@D "L$TX |!  0p@<`P*| )`_OTtXL!P! @8!0H!0p4!`( p.0@,P#$%$,D@!D!@P " ( (! |  !h0 lp0#dp'`op?p ' @! Pt0 h`%|PTH&\#<d0 !"8(!8(!0,P`l0!D$p@$! $ p1`xPP&00'p#<Pl, ă P %0 (!#(   !! |1塯d (q" l`/P1P0tpp0|pxp`p&``%&Xȅh'x@#@ @ P!`$ &`d "l$t x@ d0h |0@P )`0$Tp@a_0/0Xp0$ q (q`.$ !T",&\dT!` X1P0p " 'p8"( 8x (00" p L!P1 0 l(!0(,!p,A .p ``'&@ Tp)|lPPx  %tP"( X!h,0" pp)tq( !x   "!@8"(!8 ,  !"$! D/!l $(1" ᠏ 0  |0`# 0p@#l$(H&8( @#@@ P"PP$p%Pd T4@'L0qpp pp|@<*P ) ?O`tx \LpP@0!8  H @P4`'", (0.T",\!#L`1 0P " %l8"( 8 p !0 "`o h!H1 PP@@ <" 8Q0$ p `'p&|! d  "x t !(ah(!p x0,dl`hp!D$|0@# !$q!p )`(Hq & ` 0 " #08"(!8  !" ᡟ d !0" h1/h`0P00lppplp`p&``%&Xh'hȅp# P*@pp$ 'pt "|$`\  T0Xp  |0pt 'P0*p`@_0O lx0 0  $`@p.(@@&T$L \D|Pd!@ 0 #0(! (t hl (" ᡟ᠏|  (!`!,! 00  ",!p#Tx!*<'\ tt!0  `"0&x h Ȇ !Ht `#hP"p p()t !|40! 0 # !X"(!X ,!"! 0/$.T0*! pXa/0᠏(QP0|pP0'pp%p'HȄx#8 P, p#ppPPl' %pt!PTd"|h!$    |ptP<0 (p*`L?poxPpL pP`0ؐ8 HPP4@' ""P,0.d%\#Tt1 x1P0 0"# (! ( @l !p 0" p?\ h`!d@ ` ! ! p &P'0%PT xp#|4p0lap0 # !((! 0,0D! t|P`!$ $1 %p0* @'hĠ$#<ă@HP @$0 (!#( $ ! ! 0塯dh ! a" xp/`@\1|00@p`pt@`&ppP%%xX&Xȇ`# p!@``$ &`d "l$p l@ x0t x0@p )`0$Tp_0/0Xp0p  @!(a$ .T",d \\`!P 0 #  08 8"(Ppt !0" 0dh!` 0,a (1l",1!0 @@t0@$#t dL$| @Pp  " `"(  *x|0*p8a.)t !|<` &!8"( ,8 ,!"! ᠯl %(1" 0| `!| tp 0 p l`#0P#%HX&XH % `$0#``!t 0&<t|d40 x t00<p@d0php '@#P@_@O D`L`P 1$@8 H!10 吠4 p&0,@#.l!T$L \pP @ $ lh x"(`p ! 1" a/@d@ 00hP#$a@p@!$PP %T p"L$t !x\  0" #(x(!8 0,@lpD! t0x@| #P$`p$ `(&dh!,  Ā  !8"(!8 $ ! " ! ᠏\ '1" 0/TpX1`0pp0lP00t`&0x@%$XH&h0' P,@0 0$ #@D 0"<$|d  \00` P|0(q) (`p_ O l   0 `@.@@&pT$L \D|@P  " ( (!p * ,A" ?tx! `(*,pp& ' "4 T@"pXP@ a\*ap`JAPJA@JA0JA JA*@ @/ RQhك[Gkgrn<:OM-@p`P@p`W*P 0 @ `FPpAV :?p@p`F pPp0 ppO-IM@RX`K `0 @ #T *`$  B*B P0:X@OJ0`0 x0`0 cb0aE C0*c0*C$0*c 0*C40,0 80(0 < $ T0$p 0 `#g6 :FfX;%d0af8($, cd c$a"\(`PX@`@H!KI N T`gKK`H``$8 Y fਐ`(!0_AP0b l  LpP!rnCep *0H0ite <p0apbfF!ࠀg@@`张 0D # E!:0OJl !4!P4:4!`0 $(,!$ @ P` W pP PD p#`@ʼH-P@` P 2P`  R   &20U 2/ U $P (3! Q BapAAW*P bpW:P 3!3!4] p  IL-Q l2P@  R PPP  10L 2/ ) < ߎI \ /K- M`P p@@T8P aV   QL Q $e  a`P ` PK #'A'  0 0K$ع1|ގގ@/pL- - 0P  @R@`F(, AAP (($ wKp 0 0$]{ގ ގH- M@Q# pP  `Q!L Q d  `PP &PP P PK K #&ގO- M`,@ P0, P0  }lpSk`c PP,P al Ap Pk``p R%`! @P kKO-MPp@ D 29P  l `Q Ekp /O 0 pW R rO,P k ㌂ A` Pkpp R%p!ႁ `Ob P 00S 0D X O 8 2/ @P CkKO-MM 0 `p 0  S    00 $ R RP k  A @ PjP $ G R  @P Pj@ PEAU(4@JPl@@U*!R @p Poj@4@PU  qp P*P@@U*!R `@  PJj`@P4U(  qp$r @P j yu $@nH2b4p(p ,p $p  YA* 1! , ( $  0`  `  `R P@pWipP($P *(( &,pP@EP *AaA!.rPP P`*0!@EaU W( ,@ $`  0!4pP ^ ,PS`@7AAV*!R  P@ PiP($Y*(,( (,PpIGP*AA!.rPP P*f0!@GW (,U( ,@ $  q0!4p`V Q (BA0pPAAU*P ^PU:(0p @P iLK, K DtP^ $dK  Pt @(OBT$PHp  P Q:֘ `0Q1 P@pp  00S 0sB Z  8 2/$BT00(0p 0Q RBWP Q Q AqQ:P_dKv @PjK AN @4T    T*/!   pf,P@p $p;$uX(,j/K$ 02, u0  oPC QtP  R  Rtp2/ G@P VKbD`O-4MP@pQ  PC  W@z,($ QnL Q N `p 0 p@P[pO/`/p`0  0PU 0~/  `@TU@p-S   8 2/`p`0 0PU 0Q/ S   8 2/K #u`O-$MP   `  0 p(6  J  7 DC P8zP@  R# X2/  @ pOOHZpU`@  ^v P  V @ PIU@O@0 P 0`V 0. S O 8 2/X  @O`@@ 0 0PU 0. S O 8 2/P@O0`??@ 0pW 0c. S O 8 2/G   @P UK ^6O-DM@ P p 0(7  E  $ 02$0( F( C P|P`  R$ Z2/ $` oOKY T,p 0,P@  `u P "U @ PKT `O0P` 0@T 0- S O 8 2/p`@P $` @P PO0`@P 0pW 0- S O 8 2/@ pP` p P` PO0p @ P 0`V 0Q- S O 8 2/ Y@PO`P0 0pW 0*- 0,@0S,@ O  8 2/( ?PO`?P0 0pW 0- S O  8 2/(G  $ (@P S,K(Z&҅>O- MP 0%X@OU#'  p @8t` p`0 0PU 0, S  8 2/Y&  @t` p`0 0PU 0}, S  8 2/Q% @s` p `0 0PU 0S, S   8 2/ X&  @sp `p0 0PU 0), S  8 2/Y&  @s` p`0 0PU 0+ S   8 2/X&  @gsp `p0 0PU 0+ S  8 2/pY&  @-kH- M`Pp@ @ P/L Q E p` P,OP M Ap PM`i pP K  $<ZiM- M`P@  Q+L Q E ` P pP M` @`VL`pP K  $bl;#hM- M`P@  Q+L Q 7E ` P 7pP 8M` @`V`L`pP K $=$:fM- M`P@  Q+L Q D ` P ;pP L` @`VL`pP K $8eO-Mtd@`P RZ L 2/ pE,  40K0ͻ D`P P P  PK`4 @KD <840,( x@QL @Q H\D @ '    ps4 ` P IL  RrK ``0`P p@4`DP' @RP@  R(((" y0DL  B oᵪ `T2/  4   @2   h PDHDQ   02 0LQ  B WDp:N  `PP T@<< \8 ,0p PpGpU MK,P(PK # .0KMzd6c5\\\AgZ6]O]O-M@Pp  0` 0p WB0Pps0!0 |p  X$ P焐U P P P ! Q P ᢹpdP``V 1/UK<@0H-@< ,0P PEP Q J0P/pL-@tPPUpLJO P KB` Q.JPH-  P`0@P J` E p P J@`H-  P`0?@P J` E p PI@`0H-, @P J0AP PI@0M-P p@qxP`  R\\\   442/  /Q/\(\S,\@\/ O-M@` Pp_OpT  T`lPp  R  J 2/ p`P@P  00S 0" Z  8 2/K->[R[RV[j[M-P@T  pTP`  R  9 2/ G-@P I P PH@,6ZYgQNZZP(507/1H-   딀ikQ0H-@Q*PP  R   2/   P ,@P oI0EP PH@0  MOP,+XYPY'YQH-    R @M4 V7 H/M-qGP   AR    R O@(4 17 p`P I` @P8H`UPP H @P"HP84 40 0$ 0 0q&NVQNVO-,Mru@p@  P`E: 8QB    R O@3 6 @`P H@ PG`@W: /@P H` p `PG@ $0  1  @P GK84 40 0$ 0 0-KvT K{T0H-@Q:P*^ PP  Rppp  < @@2/ 0H   M%TT57KJT5T0H-@Q:AP3*( PP  R  O  2/ s @,P G0AP PG@0  $SSJISS/O-\MP ` ,A04 S Sv    p 8    40,($ @QXL @Q xo?  @ S QP 8@  B oPP<<8Q   02 0@Q  B 8p:B  TDP H{ @P FPK #I#;R@/O-|MPHtp@ R ( 2/ `D,  30K0* DpP Pv @P"Fp4 @KO4 P,($ \PQL Q 4> @p     `. QQ P @@4D`P* Pt PP  Rhhh"  4<  B o(@ @X2/ P@ .   `@t@  PD84Q   02 0<Q  B 4p:>  P@P Dp@<< l8 ,0p `pGpV E,P(PK # =60K⻴<8 80 0=Td_N< OLFF+߅BL3DGGO-MF@p R  2/ 0  l64K0 D@P P$ PPD@8 DK( ` P P U  P E @LB@ RD PhKl` Kp` @t` x` |` ` ` DQ;L Q u= 0@IPDL0@ !LLL00 !  X080<HxD@4X X 2/x0 @d` ``T(XP,0  $6/`ddP 1/``P 1/x`倀x匠P PQ`@plhd`LHhP %V!`U V!dT@p@V<@l`` 0 4`8P T P !V D8@DP& < PP  R$$$"  h`K  B oT@ 2/ xPP A0p0`p`3/D@PDdhQ   02 0`[Q  B p:^ [ L\ P XD<@ l< ,0p `pGpV C0P,PK !{ # >0k4K_KJl]JIf??#<??0H-Q@T0,P  D0AP PIC@0O-M@ p 0` 0P UB0ps000 0  Y# p焀W P p P  ! Q p !K8"M-pP` xP@  R\\\  442/  0MCC8CCM-@`p PP  R  xx2/  0@pP PP=CB7UCCpL-@PrP`  Rxxx  PPP2/  06P pL&paBB6yBBO-MMP`OP(0,  p@4p D@P P PP*B@$ 0KWTK \ ` d h l p x xK\QL  pQ ,: $F  Pp@O Rk  2/ @ P 5K0ݱ  PP BPAP,@ [IT$;@@ T   j( Q@Pu@Pr $PpP  00S 0& WpO   8 2/,@TY3 @Q PC R <@,P @B Ap QiAp@O @], 0]` X:  @QP P L H D @ HP  p@l*S!@T S!D U@PPPPYpLX !@T@0 $ P/PXT Pr!U 0$DP& P@  R! TLK  B oN 2/ @PPPEPxP>PTQ   02 0L[Q  B p:J [ 8H P D0<, l( ,0p `pGpV @K! #x GttK\$A@S/e? N3g3033L-M 0@@ @ @K0LP/RH-  0 0P E̅.e:O-MpPP @@x+@ D`P P @p pP"@`$ 0KOTK \ ` d h l p x xK4QL Q 8 T PD Rf p 2/  H40گ<4d`PUN  2/Pppp1 8\pXp> `X3(X0,pp ppppp p$pp6/\\pP 1/XXP 1/p‐xPp儀@8|!Q`hpdp`p\pXp@p`P yQ!XU nQ!\V<`Xh`Xd0 P vP) P0$@DP, PWP`  R888" ~5TLK  B oḞ@ @V@ 2/ pPxP 0xp0`p`3/PPDDxP<PTQ   02 0L[Q  B p:J [ 8H P D0<, l( ,0p `pGpV M?K /4x 4S<8(KY7J^7n87,,\{*J-c-0H-@@@@ P\Q<P0H08R7R6R0H-, @P D? AP Pm>@7 0HR 0 0aą>'2H- MR  P P          0w РH- MP@tQ`V T P  ,OP >T P  0@KAp P=`TM- M@PptQ `V ,OP > A P=`  0pppp pKL-M,@  D ҊKD /M-M@ DQ , R >ḊPPpDP"  P N>P  ` Pu=pP pP`Ug=P`D R၊U`p@p<l  ,0p `pGpV =K  ݘ0H-@DP  P =00 P P=@0DQ/pL-@ PQ`@@`pH- H- H- H- /P/ D0S   @/O-M@`PDPK PpOQ @4 D P P  PP < dX4  e,($ PQL Q lQ5  p PQ T=@ P@T}<@`PPK `@@0,ӵ L pP PT: @0 S 0  PDP P @ /< @Q `4P 8` 0@ ,P (@ $ PKH LP<@@PKQ @P XdPDQ[ P`  RI! F4<  B oႛPPJ84Q   02 0<Q  B p:>  P@P DX<\ l` ,0p `pGpV <<xx2/ T @ $" 0+Jcj pL-@PPUpL P h<B` Q;P0H- PD0S @S0 P H<0 P Pq;@0L-@  DQ , R D  // /K-M@P O`  p PFP1;p ^Z P` @DQ Pp  R  :2/ V @@ p0R00G0 S;K";k:SO-MO  p @G0`P ; PP:` `  P ; BP R: `KO-M`,y p PP d; @P:p;pP O; @Pw:p?pP :; @Pb: p 3`! Rp@ PP ;@  P0+ShP @P4:P! R PP :@  P0+S\hP @X :P@0 @`#P PP :P  `0+S-h` `P9P`PO 0 p0@@  P S ppLL2/ P?$ Q   02 0(Q  B p:*  <,P 0d,<( l$ ,0p `pGpV 2K /e-ԾxӾҾ/޻jO-M`P @@H@ DpP P PP 2p ,K:PK TPLHD@88pQL Q * P Y@ T  0&`0P V,  P*Ꮤ `P , PDP @Pp  R^ 2/ p PHK  B oP8P>LPQ   02 0H[Q  B p:F [ 4D P @,<( l$ ,0p `pGpV 1PK #8eI(((  z1оϾiϾk:SPۻH-M P@sc P 2 pQ+1`J!0`̃KM-M `Pss P 1 @Q1p@J!0@@`ᡃ@K/ ፥pL-P@ `@ `pH-`@P pP p0H-P@U  0?O-TMP@ A40P Pt `p 0  ,($ @QWL @Q t8) @%P 08  B o׏PP;40Q   02 08Q  B 噯0p::  L<P @D @P 0PK $,ʾdֻH- H- QDpL-M @sS P 0 `Q/PN!0_ሂKppL-M @sS P 0 `Q/PN!0Y__KppL-M @sS P m0 `Q/PN!00_6KpK-M0p`o PW @ 0`@-@, @` 0@B@P@ KM-M@0p`H PW  0`,- p` 0prPK0H-P@U > 0O-TM`  @A40P P P 0,($ \pQqL pQ 0' p,Q ``N 0L_ 08  B oCMP ,QYa Q-P4 pP>40Q   02 08Q  B p::  L<P @ @P .`K`O` $@m08  B o`$ 0 0jþϻb,Q/H-  0 0UYS-/ /O-TM,PPQ `@)` DpP P` @P!.p ,KN    pQL Q H& ,Q~Q pP , @DP( PP  R!  (  B o=@ @>``2/ P<$ Q   02 0(Q  B p:*  <,P 0,<( l$ ,0p `pGpV -K $>sk40 00 0u8&˻ـVo,0SH-  0 0Xe_,0SH-  0 0E<Ol/  0@o//  8@o//  <@o//  @@o/ //Q3//Q3//@o//%@o// #4 R !/ ;4 R/:@o//:@o/  :4 R/H- ᶌ @oH/  :4 R/H- ᤌ @oH/  :4 R/H- ᒌ @oH/  :4 R/H- ဌ @oH/  :4 R/H- n @oH/  :4 R/H- \ @oH/  :4 R/H- J @oH/  :4 R/H- 8 @oH/  :4 R/H- & @oH/  :4 R/H-  @oH/  :4 R/H-  @oH//;@o// #4 RP// !!R//@o//@o// @o/pL-@)    R%,t PP V, A` P+P   R Aop/"@o/  4 R /@o/  4 R     R/Q3/  4 R /@o/  4 R /Q3/  4 R /@o//)@o//,@o//4@o//8@o//9@o/   R/Q3/L-@ @ @o  RM   Ѝ   0R!"/ a / Aq/ R'M  " Ѝ 0R!"/ `;`+c+N+Zr 1PaB@a / AA0C/*@o//2@o/  B4 R 7"Ra</@o// B4 R 7"RR/@o/ +4 R/'@o//-@pQ3//5@pQ3//1@o//@o/K-XM@ P:X P@P DpP P` `P)p (K$ F  TQL Q ,2" p P:, @T (PDP( PP`  R! w.$,  B o᳈P @?DD2/ P=($Q   02 0,Q  B p:.  @0P 4(<$ l  ,0p `pGpV `)@K #r괮xԍԍ_ҍ.ՍGՍpL-@ PPUpL P )B` Q(PO-TM` P:V P@P D@P PW pP(@ ,K  D  QoL Q 0! @ ላ ,Pp DQ WP`  R! ~5TT2/ W 4@P9$ Q   02 0(Q  B p:*  <,P 0# $p(0R00G0 q( K #ꬪ,܍2эKэൻ{΍JэcэO-\M@P  QU `@X` DpP PC P'p ,K( y$ PQL PQ d Pp  Q  P _( @u R' 0x @T , DP& iP`  R! G(0  B ŏ DD2/ pP=,(Q   02 00Q  B p:2  D4P 80,<( \$ ,0` P`F`U {'@K #ZꄧܦٍܥF͍_͍ʍ͍͍pL-@ PPUpL P 'B` Q&PO-TM@ P T P@P DpP PY `P&p ,K  _  4Q{L Q K @  P `, DP( pPp  R! N (  B oӅ >@@2/ P<$ Q   02 0(Q  B p:*  <,P 05,<( l$ ,0p `pGpV & K #ztԍZɍsɍ(ƍɍɍ  00S00S1/1L- @A LiH-@ `oOQPU   R R :@@Ė yi@T ,P &Ap P%PhPP  RLLL  $$2/ ȞōōÍōōO-TM@ P `Q @n DpP Pc  PP f%p  ,K    `QL Q 8  Q  @ @T , `DP( Pp  R! C (  B o` @?DD2/ P=$ Q   02 0(Q  B p:*  <,P 0,<( \$ ,0p PpGpU ,%@K #oLύ č#čب^čwčpL-@ PPUpL P f%B` Q$PO-TM P @Q `@l` DpP P\ PPd$p ,K    @Q~L Q  p  _ Z , PDP( !P@  R! H (  B oᄃP P>@@2/ P<$ Q   02 0(Q  B p:*  <,P 0,<( l$ ,0p `pGpV 1$K /w虾Dˍ7줻rpL-@ PPUpL P l$B` Q#PO-TM P @Q `@r` DpP P\ PPj#p ,K◿    @Q~L Q  p  ᥄ Z , PDP( 'P@  R! N (  B oኂP P>@@2/ P<$ Q   02 0(Q  B p:*  <,P 0,<( l$ ,0p `pGpV 7#K #w\ǍԔ6OpL-@ PPUpL P r#B` Q"PO-\M@ PQ `@@y` DpP P[ Pp"p ,K❾( $ PQL PQ p  p  @Q@P-  # PU0 , @DP "P`  R ! I@W2/ PU "P@U(0  B ol@pP<,(Q   02 00Q  B p:2  D4P 8ۿ,<( l$ ,0p `pGpV &"K /z`tčVovL-P P dP@  RHHH  s 2/ 茎)OsAgL-@ @ P dgP@  RHHH  E 2/ ԍL-  Qd<P@  RHHH  c 2/ (JWboL-  dP@  RHHH  9 2/ 而Ͽ޿g翍L- QP8dP@  RHHH   2/ ȋHV`nL- P8dP@  RHHH   2/  Ͼھ羍L- P8dP@  RHHH  n 2/ xP]_huL- PdfP@  RHHH  D 2/ Љս⽍L- Q d9P@  RHHH  ` 2/ N\ftL-P dP@  RHHH  6 2/ tռ伍[L-P dP@  RHHH   2/ ̇\<tTL-M Q - +  0 Q! a KxP@  R\\\  442/ KAbnzL-Mp*KQ$ ;  0 Q! `;`+0c+N+Zr 1PaB@!a  IP@  Rhhh  p'@@2/ K AA0C\9FCQ^L- PdP@  RHHH  > 2/ 蔄{ǹԹL- %PdP@  RHHH   2/ 胾0<ϨHTL- ,PdP@  RHHH   2/ <#ǸѸL- 4PdP@  RHHH  t 2/ 萂*2wBJL- 1PdkP@  RHHH  I 2/ 䁾˦ɷL- 1Pd@P@  RHHH  g 2/ 8&>>VL-  PdP@  RHHH  = 2/ 萀̶wض䶍L-_PdP@  RHHH   2/ SlߤkL- #$Q dP@  RHHH   2/ D浍+L- ;$Q:P dP@  RHHH  q 2/ ~_wkwL- :PdhP@  RHHH  F 2/ } L- :$Qh} Pd:P@  RHHH  a 2/  }sL- :$Q:} Pd P@  RHHH  3 2/ h|O L- :$Q } PdP@  RHHH   2/ {oL- :$Q| PdP@  RHHH   2/ zߟL- :$Q| PdP@  RHHH  ` 2/ @zo'L- :$Q| PdTP@  RHHH  {2 2/ yoL- :$QT| Pd&P@  RHHH  M 2/ xoL- :$Q&| PdP@  RHHH   2/ x L- :$Q{ PdP@  RHHH   2/ `wuGL- :$Q{ PdP@  RHHH  z 2/ v1L- :$Q{ PdnP@  RHHH  L 2/ uךL- ;PdCP@  RHHH  j! 2/ Du++2CL- #$QdP@  RHHH  < 2/ tsǮL- )PdP@  RHHH   2/ s.;ǘFSL- $Q  P8dP@  RHHH   2/ sL- $Q  PdP@  RHHH  d 2/ Pr71L- $Q P dTP@  RHHH  {2 2/ qwoL- $Q  Pd"P@  RHHH  I 2/ p꫍L- $Q   QP8dP@  RHHH   2/ oMcϔe{L- 2PdP@  RHHH   2/ @p:6 [ $4 P 0@ P 9K  PpP $(z` At]hpL-M@KpQ7 o m  k+b j a L 0+Q0?G) Q:2dS3cS":`j3@2 `$ BR6 q ÒKp tPPU QKpO P  RdS3C @P qÐKp KpB` R+ P AO-dMPpP@Q `@` DpP P^ Pp ,K#0 ,($ QL Q  @p P:v PU PQM > PI q Px |08  B osP1Pd@ 0+SA, DQ P`  R! a2/ Z P@pPI40Q   02 08Q  B p::  L<P @Q,<( l$ ,0p `pGpV KZ`/ / C 4XW响DV}}b+{}~( H-MP@ "Q3K   R  00 S@oKQ  tP`V  p Qp PK,OP Ap P`ɇ  M- M@ pP`  QL Q dQ  @P `K $CpRO-TM0P 0<Ap40W Wz  p` 0,($ @Q^L @Q  @  P LAoT 08  B oqPP;40Q   02 08Q  B W0p::  L<P @ @P RPK A.@Q\]O-\MP0p0<A`40V Vx    ` 8   40,($ @QZL @Q [  @p0 QP 8@  B opPpP;<8Q   02 0@Q  B 幐8p:B  TDP Hd@P PK #3NNZK-`P@tP pW O P  B Qp 03pQ@pPO-M`p P A4P P   0<  040,($ 0@Q{L @Q   @  Q   D P @ < 8 4 0` P`K, ( $p @  0G UQ <D  B opPP<@<Q   02 0DQ  B ŏ<p:F  XHP Lp @P PK #z>hKWK-`P@tP pW O P  B Q"p 0pQ@pPO-MpP A4`P P  0 0 0 0@K   0$tplhd`XX@QaL @Q   @$P 0`  p`Y P @8`K  B o'oPXP=<@Q   02 08[Q  B @p:6 [ $4 P 0唭  @P PK #X4aG2SK-M@p `PQQ : P  0` $(,0 PK   @ R `p`/ p@Qp P$p(,0 KO-Mp` P A40P P  0  0 0 @K.d`\XTPHH@QkL @Q   @ $(,04p8M{4=yIO-\MP0p0<A`40V Vj    ` 8   40,($ t@QLL @Q H_  @p0 pPP;<8Q   02 0@Q  B ˋ8p:B  TDP Hv@P  PK /E:w,GO-MP  A4P P   p0` 0@K 0tplhd`XX@QL  @Q |  @ P 00 , (> $  P> Op@0S p/,p 04@Qm P8 PDpHLP=  0p0 QP @8pK  B o-kPpXP9<@Q   02 08[Q  B p:6 [ $4 P 0嚩@P ` PK =.X<\ i8ouCO-\M`pQ @@X@ DPP P] p pPO P ,K|( $ D`QL Q  p 0 P P, DP) @ P`  R! 2(0  B onj ?DD2/ `P<,(Q   02 00Q  B p:2  D4P 8Ш,<( l$ ,0p `pGpV   K #ov54qd4[[@KY\3\H-P@tP`V HO P P Bp Qy `O-Mp`Q @@8Y@ DPP P  pPP PTH}$   PQL `Q h D P @ <@ 8 4 0 , ( $` PK L@P<@`PK* `PS HTPDP Pp  R\ 2/ PK($Q   02 0,Q  B (p:.  @0P 4ԧH<L lP ,0p `pGpV  PK$,  B oiP #dj(((  y10m0SZVsVWW<H-P@tP`V HO P = Bp Qf `O-M`0p0<A04S S_    P 0L 0vD@<840((@QL @Q l  @ Q :P: k `V# PPPKO 0@p  P $ `@Pp P"KLT  B oRh LT  B oDh P`p(P6PLQ   02 0TQ  B Lp:V  hXP \嫦p@P PK -(R`,i8O-lM@Q P@0nP D`P Pi pPf` ,Kⓤ8 40,($ `QL Q h p0@  @@ @@@;  pP(B ,P @DQ+ P`  R! >8@  B ozg@@@E\\2/  `U @@pP<<8Q   02 0@Q  B p:B  TDP Hԥ,<( l$ ,0p `pGpV K #sc)L)|f(O P4{MJPcPH- M P  A     Р 0 0-K{O-tMP@ A40P P `p DK  ᗼD@<840((@QjL @Q  @$$D K UT 0\ Q D<K  B ofPt(P;@DQ   02 0<[Q  B QDp:: [ (8 P 4 @P LPK #(X%bD1pL-M  `00 @@@ PR P"Q   QKp PP vKp `PPKppL-@P   QHp  QHpP     0PS 0@ "## H  B/o"P   P )pPp ` POPpH- M 000   РO-|M`PQ p@p"p D@P Pv ` `P@ ,KFH D@<840((`QL Q  @  @ p@@PP Ho$@&P% $   @0!E,P @DQ( pP`  R! HPP  B oe@Hhh2/ `U @@ (P<LHQ   02 0PQ  B p:R  dTP Xx,<( l$ ,0p `pGpV K #(TD  ]$FF4+ DFFH-M@`tP PU O P  Bp Q"P 0`KH- M 000 РH- M 0 РH-M@`tP PU O P  Bp QP 0`KO-\MPQ p@4p D`P Pq @P` ,K֠( X$ PQL PQ dC PPc0P G Qq`` 0`徟P @, `DP' QPp  R! x/(0  B oc `>@@2/ P<,(Q   02 00Q  B p:2  D4P 8,<( \$ ,0p PpGpU bK /嶾cXW|@@%c>2AKA O-TM0P 0<Ap40W Wu  `p 0,($ @QYL @Q |g @U  P 08  B ocPP;40Q   02 08Q  B Ƃ0p::  L<P @q @P PK #@T#O-\M`P 00@4pQ 0Aop P_Q   00 08  0S40,($ L@QL @Q   @ 0 p 8@  B o]bpP<8Q   02 0@Q  B 8\Qt   00 08  0t40,($ @QbL @Q _  @ 0g p 8@  B oap@PE<8Q   02 0@Q  B p:B  TDP Hl @ P K #?;b #/H RPM-P@ptP `V O P  B Q` pQppPO-TM0P 0<Ap40W Wr  `p 0ᚾ,($ @QVL @Q p @ 0 P 08  B o#aPP940Q   02 08Q  B p::  L<P @咟 @P PK #4a`%MO-M`p  @A4P P 0L0倶D@<840((PQL  PQ  P_OP1p-Q) 0#D$  0 Q1@a p  0D P0 0@0 8 4 0` , (` P`K$ A<   P:$c pW  0PPK@`k?z P pd LT  B o7``(P<PLQ   02 0TQ  B Lp:V  hXP \壞@P `K #(DH q 0C JM-P@ptP `V O P * B QS` pQppPO-TM0P 0<Ap40W Wr  `p 0Y,($ @QVL @Q p @z P 08  B oe_PP;40Q   02 08Q  B '0p::  L<P @ҝ @P "PK #t塺`HFO-TM0P 0<Ap40W Ws  `p 0,($ @QWL @Q t- @  P 08  B o^PP;40Q   02 08Q  B ~0p::  L<P @9 @P PK #۹C8O-MpP A4P P `0<  0&40,($ @QoL P_O@Q  @ PPKD P @ @8 4 0p , (p $   < R x P <D  B o^PP<@<Q   02 0DQ  B }<p:F  XHP L凜 @P PK #(UdApM- MDp @PP@` ` KtO-|M`P @A4P Pa ,0p0@K(  040ܺTPLHD@88`QL  `Q  ` Pj `p p$pD 0(, pp W B/oA"L -0 , P 0`l Q( ( 0   P 0O, p&a0Q`RQ$ P! G $a @8K  B o ]p$8P7<@Q   02 08[Q  B p:6 [ $4 P 0w40@P pK #8D HhVMU0 O- MPpl@@p@`(4````69PP U\SPGH0PP)  PA KH- M `@p@ P` @p`PKpL- M ``PA@ @PP@KpO-TM0P 0<Ap40W Wr  `p 0 ,($ @QVL @Q px @TP 08  B o\PP;40Q   02 08Q  B {0p::  L<P @党 @P PK #'T,9hpL-@M @d00S= 00 S0` 0 @ 0 ```$0(0,0048<B  u @0@ `0 P @ `0$@(@,0@48<B   P @PDKpO-\M`p A40P Py   P 08   0娸40,($ @Q[L @Q   @p P=U p 8@  B o-[pP:<8Q   02 0@Q  B p:B  TDP H圙 @P pK #=j5M-P@ptP `V O P & B QO` 4pQppPO-\M`p A40P Py   P 08   0շ40,($ @Q[L @Q   @p P}T p 8@  B oZZpP:<8Q   02 0@Q  B p:B  TDP Hɘ @P pK /j嗵Lp2xM-P@ptP `V O P S B Q|` 4pQppPO-\M`p A40P Py   P 08   040,($ @Q[L @Q   @p PS p 8@  B oYpP:<8Q   02 0@Q  B p:B  TDP H @P EpK #嗴ĴG/,M-P@ptP `V O P  B Q` 4pQppP  R ЅP/  R Ѕ/O-MPQ `@\m` DpP Pw @Pep ,K⒕PK tplhd`XXpQL @Q  P P @PDP@`HLPPPTPPP9 XPLPQ   02 0H[Q  B p:F [ 4D P @,<( l$ ,0p `pGpV YPKH P 0|t P @PP , PDP( `˾Pp  R  멼PHK  B o.XPhh2/ p #XgXᔳyH+dK3O-Mp`p|@Ap4PW Wx  00P@K 0.D H L P T X ` `KpQ~L pQ  p P PP`p`lPpPtPpP< P Pp`P]<@Q   02 08[Q  B p:6 [ $4 P 0" @P PrKKh,P 0$ 0P P$P ( P@P$Q"  /` 堲wͲͽP`  R 2/ 庽P`  Rhhh  똻<<2/ ( PQ(lR[  O-M@Q P@僽P D`P Pg pP{` ,K⨓PK *\XTPLH@@tpQL Q L  @ 0dr P `@P2 , @DP* P-Pp  R! T PHK  B oV@ @@HH2/ p@P<LPQ   02 0H[Q  B p:F [ 4D P @,<( l$ ,0p `pGpV ;K #@叱jἱD$N g  O-M@`p A40P PI   0 @K 0U|xtplh`` QgL @Q p?  @,P  0`$. 0P$PO (@PK$QV `P7<@Q   02 08[Q  B pp:6 [ $4 P 09 @P K # `ݰ   P`  R 2/ |P`  Rddd  չ882/ (LE!`FO80H- @ P DjPP0 0 0ȭ%t{ M-  P@E`p6嚆  APR p / P/O-|Ms@pP Rd t 2/ pE,  H30K0je D`P Pe PPb`4 @K⏑4 ᐪ,($ @QL  P `@Q p  p@ 0傐P P@4@DP' P`  R! <4<  B oxT @D2/  PD84Q   02 0<Q  B *t4p:>  P@P DՒ@<< l8 ,0p `pGpV  ,P(PK #nb囯0K dp!_Ä <ݽjܽ sB[O-|Ms@pP Rc h 2/ pE,  <30K0nd D`P Pc PPf`4 @Kⓐ4 ᔩ,($ @QL  `P@Q h @ p%  0`ǏP P@4@DP' P`  R! B4<  B o~S @C2/  PD84Q   02 0<Q  B 1s4p:>  P@P Dܑ@<< l8 ,0p `pGpV ',P(PK #ue墮0K'co-Lٽؽ #ZsO-@@2/ P<$ Q   02 0(Q  B p:*  <,P 0寐,<( l$ ,0p `pGpV K /N{{ԽXԽӽB[K-M`@PQ pW ,P 2 A P[p 0KH- M РO-|M\u`Pp@ Ra , 2/ D,  50K0b DpP P @Pp4 @KB4 C,($ `@QL ` pPQ , P V@QX  PMB$Q  Q`oO P  01S 410S0  pN` O PKV! O41SC,10S> (O0 R5 20  p"`P) @p4@DQ luPP  R ```" S@Y  2/ V V4<  B oP@@@P 9PPN84Q   02 0<Q  B p4p:0>  P@P D,@<< l8 ,0p `pGpV w,P(PK(0 RE B #廫0Km`<8 80 0D+н νںv O-|M`t@pP R=`  2/ E,  30K 0` DPP PH  pP P 4 @KՌ4  ֥,($  @QL P@Q A  p iVlP@  R " J@z\\2/  0ᭋP P@4@DP& @P`  R! g4<  B oO@ 2/  PD84Q   02 0<Q  B Wo4p:>  P@P D@<< l8 ,0p `pGpV M,P(PK #囪IȪ0KM_w5Tʽ= ɽ 8ɽ\պ K-MpP`tP@T 0`KO P kB Q@B4  R/H- @`P Q1 p`p  00S 0R O 8 2/7`Rr Q 7P .9R Rp W> 7H/Rp RpppGorR a< W p^p00C?oWp^R 0@p   % /O7 p pRpH- 00 0@B A4RH\ B$Q p`oOP Q \ P PP@U P P . P e PDP P  `PPB$Q0H- 0 /OP PPUD,@0P c00/CP P@0B4  R0H-$ @,P =00/AP Pa@0M-8MP  `@FBPA0 0ZP=  O0@p0Wp 0p0 0?     @RO  p$P(p,P04P@l    RQ@@K 0 0t?M-@PB$Q ` P O P   Bp R `@H-PB$Q ` P  P o@ Bp@T@` `P P O@` P P u + H+ H-PB$Q ` P  P (@ Bp@TO@` `P P O@ P P . + Hp+ 0H-B4 R  @ Q,P  AP P @#00H-A$P   @0,P 000CP P@0!/ / /   /H- M \P ]P РH/0H-M@PT.  R  0Q PQ3@Q  @ ?[7 Us ?;P6 SPP0 PRP# R#*@Q@K0O-\Mp `TPLHD@88PQL  @PQ    ``aPy) VUEPP p X0 P,P_ 0P @P XPoPZ pd $p(p,041ZP $p(p,41o0 0Q4PP ,q $(  @R$$$(P@8P!K0 P 0R   P A KP 0 +8rT埦ꄹH-PP `B@ 8poW T  P P H- M  0 0@  Y РH- M  0 0A  РH-@P`p  P/ DT8x8` G  1/ G` 1/ G G _  $wڊO-,M@$P p,`Q:L ``Q  v gQPU  0 B PEU oPUPP K #冥峥8  H- M  0 0@   РO-,M@$P p0`Q;L ``Q D ᛶv gQPU  0 PEU oPUPP K #<` @o/ @o/  0 S R/H-  0 0%sN֌ H- 000 S  0SP 0 0 000S 0S 0S  0 0rՌF5sՌ R /0H-0,@P 0AP P@00H-0,@P 0AP P@0 0 Q/M 0 Q/  <Ao/ /H- Mx Р/M  Ѝ//M  Ѝ/0H-  R@qQ Q!$ P R.m E pA`r0H-P@ Q7`pP/ q!$ P R m G pA`rP !t`A0 R Pl  q,@0Q" PʘP@  R|||  !جTT2/ CP P@ }Gь_M-`@ QIpPpP@ !$ P Rl H pA`rP/` !4PF P Rl pp@P 0 R 0U O  P|yP@  R```  ࠭W882/ 8 M/Cό[H-P@ Q?`pP7 q!$ P R$l G pA`rP& !4P@ P Rl @9 PP  R'  EPʔ P@  R  0PP2/ @002/ \ C͌͌cM-`P Q1ppP( A!$ P Rk D pA`rPp7 $尭P`  R%! ׬뎫P园P@  R  ¬y2/ hh2/  @G !4P RWk 褦pLgˌˌO- MP`0@ pP q!$ P R0k G ppA`r@V0p@V,E Z1 Q 0-Pp  R  2/ p !4P Qj  YPK  8hP@  R hh2/ K  Ӫ4ȌK줽cɌ{O{ssH- r/ee|H- [ڌH-Mp@`P6P 0 p`@pKKO-dM\PXpTPLH@@@ PmL P@Q    P$  ឍ@Gl ةP`  R\ \\) 붧( (2/   ?@P0  P @P妩P@  R( ͨ넧ll2/   W,PP A_O8(! :<  ㉃ 1pp@4`p0  0PUP_O  0 <4 PS  8 2/P ̔<8?pQX 40@?`?p 0PUP_O 0ᵼ8 S  8 2/840<`qG G00G p@?`?p0 0PUP_O 0ြ8 S  8 2/8<'@Q 0P 2,PP P_O@<tr0@'`'p 0PUP_O 0> 88S  8 2/8<+@Q 0P jpP2,PP P@_O8<tB0p+`+@ 0PU 0 PPS O 8 2/p 4 otPW_O{ 4<?@?@?p 0 0`V 0ʻ S  8 2/<`04qG G00@`'@'p 0 0PUP_O 0ᚻ 80S80  8 2/80<p0`+@+p 0PUP_O 0r S  8 2/Y ,p(P `$@P .0P @   O@,p(PQ $@T @`  @P @P K #@P},ٌ=ٌWٌЖu،،Uٌoٌ،،H- P@`Q`p  00S 0 W O 8 H/M-`ᙈppP@ 0 R 0T O  8 M/0H-  ,AP 0AP P@0O-M  Yp@-IOOP ` P`V`pP@3pP@ CP "PP ` @`V`PK0H-  @ P sP00H-  ,@P r0AP P@0K- <R#@@`00@0<0P#P p 00S 0 W O  8 2/# @P/H- P@`P`p  00S 0˹ W O 8 H/ 000CH-0PR&*0qD`V! a0 0S`@D@T   P H `PpO-TMPQ `@` DpP PX @Pp ,K|  ኜ  0QzL Q v P gP @, PDP' 囥Pp  R! ¤y (  B o> P>@@2/ P<$ Q   02 0(Q  B p:*  <,P 0a},<( l$ ,0p `pGpV K #{-ć mɌ #ؒZspL-@tPPUpL!O P B` Q PL- PdP@  RHHH  Ϣ 2/ Iƌ^ƌ㨌aƌvƌL- PdǤP@  RHHH  륢 2/ TŌŌ;ŌƌL- Pd坤P@  RHHH  ģ{ 2/ 謂yŌŌŌŌL- PdsP@  RHHH  Q 2/ ŌŌ릌Ō4ŌpL-@tPPUpLO P B` Q;PO-4M,(`@$ @QL @Q  P  ᷇pGP@  Rttt" ϡ@@2/  ?pP  @PpP彣P@  R! 뛡||2/ 喁!P @ @P P g@ D@Q =   p@T@  @P P K ##APꔀČbÌÌ,ŒŒ㤌zÌÌŒÌ0H-P @ P \ Q $P   Am 0H\ 0M- M`P  QL Q x p@@PP K #峗`|z   0Q/L- @@ !4P R` O-,MpS. `Ps5 @$ PQ"L Q cv 4Q`  TP>TP0PP P K /Er  0 0|z</ЌO-,MpS. `Ps5 @$ PQ"L Q v P`  TPTP0PP P K /  0 0 dy;:ΌO-,MpS. `Ps5 @$ PQ"L Q v |P`  TPTP0PP P K #卖庖  0 0ēw8:ʜO͌O-,MpS1 @Ps9 `$ Q%L Q Nt@@Q YTP 0PP P K #-Z  0 0dvߺ8JˌO-,MpS1 @Ps9 `$ Q%L Q t@@Q Y$TP 0APP P K #͕  0 0u_7ʙOʌO-$MP p`  PL Q @p @P P K #{ᨕ  0 0ಒs5Ɍ 0@K-(MQo @`1/Pg 1/ppQ* P  Q@L Q \-1/P PA p    d+ 0R:`  1/Tp p+ 0R*l K$KP K #@< <0 0(,( (0 0 q3ZU3:ƌK-(MQo @`1/Pg 1/ppQ* P  Q@L Q \1/P (PA p    d+ 0R:`  1/Tp p+ 0R*l KJP K /dᑔ@< <0 0,( (0 0oq1&!Q1ČqK-M`@P  Q9 @ P pdP.V0 1/P* w P! O d+  0R :`  p+  0R*l  #JPK 0 05/K-M`@P  Q9 @ P pdP.V0 1/P* w P! O d+  0R :`  p+  0R*l  IPK 0 0ݐy..) BP0S 0 //O8%[P/@/K- M@  Q-L Q Q pPa0P U PQ}` PP K #(UjtO-,MP$ ``Q?L Q 8 @p  0p`  W  P  p R 07 `V P K #Œ  0 0Hi@*/pL--(MP$ `@@QL Q   P  QKp /wᤒgO-$M@P[`p  Q>L Q XJ P 0 `  Q  P @ p Rh 0Y6 `V P K #=D@ @0 0G0, ,0 0?fpf!(֊p(;H- MP`@ @ P&L pOQ  P P ` Bp`V`PP K #嬑ّdѩO-,M$` @PRL @Q     PVPLPp `  @`V `p  Q pP g  @ R  p 05 `V P K #7d  0 0n\cϨ$rpL- M@`@ P QL Q dL@ `P DoKp / LaڦO-$M@P@  DQ9L Q  `  Q  P  p R 04 @T P K #呐ᾐ  0 0ȍ``%"ڄ_H- MP`@ @ P&L pOQ Y P P `` Bp`V`PP K #9f^pO-$MP@  DP9L Q  `  Q  P   p R5 0&4 @T P K $ݏ   0 0]rU H- MP`@ @ P&L pOQ  P P ` Bp`V`PP K $兏᲏[ԡO-M-hM+C @ȋ`nP P@坚P D`P P   P`, 8Kp4 B,($  @QL @Q - @ p P ,` `VU`ppP  Q@p+SG P `8,PDP( #Pp  R! J4<  B o3P P?XX2/  P>84Q   02 0<Q  B p:>  P@P Dq8<4 l0 ,0p `pGpV 2(KЍ #儎G屎 ZZX&?d}zH-@PQ`V 0H,P fAp P`pL--(MP$ `@@QL Q '  P  QKp #=UpL- M@  PQ$L Q  ` ;Hp @$p`P Kp #ʍKp  0 0T*yO-TM`pP @ۘ DPP PX @PP ,Ko  ႏ  0@QzL Q n  0 P `, PDP( 唘Pp  R! ໗r (  B o1P P>@@2/ P<$ Q   02 0(Q  B p:*  <,P 0Yp,<( l$ ,0p `pGpV K #{%SSRyz^ow>zWzH-P@tQ`V H,OP Ap P`0H-, @P 0AP P@0 /O-4M`,P($ \@QFL  @Q 0} @ 0Q Sp ` p`0 0PU 0 S O  8 2/P K #< i@Oܕ /M  Ѝ/H- MP  @QL Q t `ppPP K #"dM /H- M@`@ P QL Q l p}B pP K #嶋K\LO-dMP@Q `@@Җ` DpP Pt @ @Pp ,Kl0 w,($ PQL PQ lb P Ps0P e Qp 0@kP `, @DP' nPp  R! L08@  B o/@ @>@@2/ P<40Q   02 08Q  B p::  L<P @4n,<( l$ ,0p `pGpV K #ӊaKJIVqoq$VnqqO-lM@PQ `@P` DpP Pw  Pp ,K l8 ጌ40,($ @QL @Q |w p PC0P w Q@ 0jP P, @DP( 偕P`  R! ਔ_8@  B o.@ @?DD2/ P<<8Q   02 0@Q  B p:B  TDP HEm,<( l$ ,0p `pGpV K /]G(G.O-,Mp` P P B@PUBPpV.$X f  0S0 AOD@-40H$00  @I`@Ri pFVc$P+ 0 `@  00S 0u O 0X0   @8 2/0O /P0 @  ` 0 `  00S 0@ O 0X0   @8 2/0O YpY 0  K 0+ KH- MP  @QL Q t+ `ppPP K #F9 /H- M@`@ P QL Q l p7= pP K #چK8 O-dMP@Q `@@` DpP Pt @ @Pp ,Kh0 ᛈ,($ PQL PQ l P Ps0P  Qp 0@fP `, @DP' 咑Pp  R! ๐p08@  B o*@ @>@@2/ P<40Q   02 08Q  B p::  L<P @Xi,<( l$ ,0p `pGpV K ?.a$8d7~6]]Bg[6^O^O-dMPp  A4P P `0@0<<840,( (@QyL  @Q  @pPs0P  P PQPp 0pfP LAoT @Hp  B o&*P P<D@Q   02 0HQ  B I@p:J  \LP Ph@P PK / 4| a3${?O-dMPp  A4P P `0@0<840,( (@QyL  @Q  @pPs0P  P PQPp 0paeP LAoT @Hp  B oj)P P<D@Q   02 0HQ  B ,I@p:J  \LP Pg@P &PK # x| 奄0Ax<M- MP`@  QL Q L p@ @PP K #7dx.uO-$Mp`@ P .0 BP0SW0`dQi p 0 0SQ0AODP0PJ@`U$ pDT"P@`  00S 0ᖢ O0 0PPZpZP @`8 2/0Z 0 7K 0{KK-XM@P `@` DPP PY pPP (Kd$ g  4Q{L Q S P@FP `(@DP' wPp  R! U$,  B o' @>@@2/ P<($Q   02 0,Q  B p:.  @0P 4=f(<$ l  ,0p `pGpV K #܂z 8+*q*zQQH6NQQ0H-Q@T0H',P 0HAP P@0H/O-\MpP A40P Py   ` 08   0|40,($ @Q[L @Q g  @}" QP$ P 8@  B o'PP<<8Q   02 0@Q  B F8p:B  TDP Hpe @P PK #>&hn3H-P@tP`V HMO P Bp Q"`O-TMpP A40P Pz   `  0   2|,($ @Q]L @Q   @P! P q # Pq 08  B o7&pPP;40Q   02 08Q  B E0p::  L<P @d @P pK /Fs#bk/H-P@tP`V HLO P .Bp QW`O-dMP@Q `@@7` DpP Pt @ @P-p ,KZb0 ܂,($ PQL PQ lǾ P Ps0P  Qp 0@@aP `, @DP' ӋPp  R! 뱉08@  B o7%@ @>@@2/ P<40Q   02 08Q  B p::  L<P @c,<( l$ ,0p `pGpV K #8ae!h #hFG+kD:GSGO-dMP@Q `@@M` DpP Pt @ @PCp ,Kpa0 ,($ PQL PQ lݽ P PCs0P  Q p 0@V`P `, @DP' Pp  R! Lj08@  B oM$@ @>@@2/ P<40Q   02 08Q  B p::  L<P @b,<( l$ ,0p `pGpV K #Na{ldBC[C(@CCpL- MP`@ @ QL Q  14P  RQP Kp #2aM- M`@@  DQAL Q ڼ P Pp  R  32/   pP ` P`V`pP K #~~`h^`l`O=v``pL- M@`@ P QL Q \l @P Kp #`~~9_0H-0,@P X0AP P@00H-0, @P =0AP Pf@0 / Q3/ O-TMpPP `@;` D@P P]  pP2@ ,K__    DpQL @Q ̻   ] P P, @DP* `Pp  R! ͆ (  B oR"@ @?DD2/ pP<$ Q   02 0(Q  B p:*  <,P 0`,<( l$ ,0p `pGpV K /R}v}$|\V;o; 8;;0H-,@P A0AP Pj@0M-M@P3O` P P BpPUGP``I p 0@   `KK-PO p P ` B@`V`p @cp @ 0@⚅P pp pH- M  Ẉ РH- M0 ᭈ РpL-M@P `0ឈP KpKpLM- M@`@ p P y PQp YpP  0`5pσKWO-,M@ pOQ`V=`P P V/ $ QL Q   PPUP Pp`V?`P ` ,PR `pOP8 P 0 Bp0S0P  `Y   PU  [ @?SP[1/O PU [ @?SP[1/< KAP P`\ƆPP  R  뤄 # {{\ {i 2/ 9P 22 Z470S2b2 R/0H- P@ PP0gO- M`Q ,@pPU{P@PP KX p @ `   00  P  A0  Q@@G0@@ p Q: DP @P KO 0 0#x˃F.6Q0H-@P T PU [ @?SP[ 01/W 0H-   /P/H-MP@  p υP`  R  뭃||2/ `G@   QOKtP2P[,3PJPH-M @P    pppp ppjQ 0@  (Q Q 0@   (Q p00 z pQAKH- M@  `6PP  R! ]\\2/ 0PP  R(((! >2/ `F  PQL Q ௷ pK5 pP K #yyKMNwMMM) NN{)MM  M  /O-,MP$ Q L Q [ @` 7 0p]6 P `P K /?ylyP+LKO-Q>??O-,M`p$ P@(Q:L Q  @W * 0pWP€PP  R  ~tt2/ PP K $guu>@9>='Q>0=O-,M`P\p$ P@LQ:L Q (/ @W * 0pPTPP  R  {2~2/ PP K $t&u0, ,0 00r=<`;ųz;o<x;O-,M`p$ P@(Q:L Q າ @W * 0ptPPP  R  }tt2/ PP K #tt0;9;9Q;9O-,M`P\p$ P@LQ:L Q (L @W * 0pPqPP  R  ~O}2/ PP K #tCt0, ,0 0Mqx :979y797O-,M`p$ P@(Q:L Q ױ @W * 0pP~PP  R  #~|tt2/ PP K $ss8(886P86O-,M`P\p$ P@LQ:L Q (i @W * 0p#P~PP  R  }l|2/ PP K $3s`s0, ,0 0jpx7p6H4b3W6`4O-,M`p$ P@(Q:L Q  @W * 0pP~PP  R  @}{tt2/ PP K #rr585t2 P52O-,M`P\p$ P@LQ:L Q ( @W * 0p@P}PP  R  |{2/ PP K #Pr}r0, ,0 0o`430! a0 30O-,M`p$ P@(Q:L Q  @W * 0pP6}PP  R  ]|{tt2/ PP K #qr282. P2/O-,M`P\p$ P@LQ:L Q (࣯ @W * 0p]P|PP  R  {z2/ PP K #mqq0, ,0 0n`1X00-J,?0H-O-,M`p$ P@(Q:L Q . @W * 0pPS|PP  R  z{1ztt2/ PP K /p%q/f F -_-Yc-/0H-@s PKS0cx..pL-@R`Ps V ;|;pL-@Q P ;P r;s 0H-P@s o;s ;0L-@P g;s P ;s - 0   /- 0 B0C 0 /p*   /p:  / hpL-P`@  u     EDe$e( p/H-PQ" p`@uIP <%PV1/(1/41/ 01/P]K-M`Q @QKpP]P]] 0]`P `(Q/0H-P@;GH L 00H- MP  @( 0} PK0 $$ /  RZ,/ܷQ/K*s*Q/**Q/**-Q/-e+H-@ P` P ፬ p Rᵫ ` H-O-M@ ,Pp  , `  a-@ Q KOK-Q,/-,/,@o/,/j**.Q/CصO-\M` (&4  j[A@pW  2/p8/ $ (  P(Kh1(X0,  $5/P$@$ P 1/(( P 1/8HP@p8L@D`W8P@P q0@p0LPpP3/  47[8 ZMP 8@Q Q MP8[Kc /.pL-M@P8P ` @ob D 7|  KpL .///pL-@P`L  pL讱Q P,HH-  0 0b9u׋"8000S0//)/)/*/*/ */*/*/DD/H- 0 O-$M P p 0@   0@忱` 1P ` P 00S0`ᝃ `YoO  803/ W@pp p@P 00S0Px PǯT  803/  )   @P  .KO-$M@ P0H O `(0 00p$0SJp p  P @PU$ PP0 0 R 0 0X O 8 2/ pY0 AP` P ǩK s8P/--:-V(/?oR20/-   /L-@P  ,0 B S <D0\ 0\ R Q (D Q Q/ R Q /(//O-DMpRpp~  P( 0PO$@  `P$ 0@` X  P ᥩp B@pW̨p< (<,(D40 K8~P" `po P 5 1/o P! O0@(j  @P  $ K:تB0H-P @bn 0H`L-@P to O-\MpRpp  ` @( PO$0  PP 0 P X  P p BPpW$p4 `48P$ D,(0P`2 J~PT `PP#o pP 4 1/n pPW pOTP@LHD@80P6L Q  PsQ `P 0BD PP8P j  @P  K # 8Zb b9Hx0H-P @zm 0H! L-@P n O-@@2/ P<$ Q   02 0(Q  B p:*  <,P 0A,<( l$ ,0p `pGpV  K /t^v^ꨙ9xڿ_.G) /PBP3B0H-,@P  P00H-@AP o"ϲT@ 0HȲ,< 0 //H-@ ` Pp Q Q0Q0, ,0 0^[딦u`}X20H-@ P 傦P00H-@ P P00H-@ P gP0@/3/3P/   @o/#/ //O- MPQa@ p79 `Q @pPK*Op P ᢣP BpPUˢP`` P  Z1* qi `a  R  0p pq0pS`@ P DKK 0 0ZEUO- M  @ p04P 700=P I 030 P: `Z c P` P @ P 客P $P PQ7 `@ P @ᅢKO- M  @ p04P 700=7P I 030 PѢ `Z  P` P @ P EP ᫢$P PQΡ `@ P @KO- M  @ p04P 700=;P I 030 Ph `Z 呡 P` P @ P ܡP B$P PQe `@ P @᳡KL-0  , @0 20000 P AO- M  @ p04P 700=P I 030 P `Z  P` P @ P VP ἡ$P PQߠ `@ P @-K@o/3P/O-,MPPp@Q' 0KO Q ` AqQ*  B P Z X傠 `PpP  0 0`WU` ` ` $`P@  ! KAp W>   0P0Z4Z00 0Z@ `` `  -Q*0    K 0p W`pW  p g K`W|x x0 0Xhd d0 0WTP P0 0W@< <0 0WKƭڋJڋJaڋJfvڋ/H-P@Q'O@ `BVDO P6 AqQ0*,P x Ap PᡟP R /R V! @Q@ @84 40 0W$ 0 0wWI؋H؋ R///L-M0@ 0 KH- M ) 0 0߻ РM-MP`@pU 0 `̩`P  0 ` KM-@ p P `  哬Q@ `MY+Q/H-  0 0VFb֋H- '=TX@ JH- '=(0H-P@'=T 0K-M@'P=TP 峺  0 0 C Q 3 S ;S, Q@& p㙙A`@   P0 E R S R -PEQIVQ@pT``@ T @T  C 0Q   KH- '4N//O-M   PM p P    P8  QQ  P! @` P ԞTp`@P @R pPKH- M@Q# pP  `Q!L Q  }PP XPP P PK K #fXT&M-XMP `D@P PS pPጝ@ (K9$ @:Z  0 @@P@ @@@@iP `(@DP' xQcPp  R```! xb/a$,  B o @;2/ ($Q   02 0,Q  B p:.  @0P 4;(<$ l  ,0p `pGpV eK8~|}⤋c2K0H-@ P  P0H-M@ p  P P` @  `PpK0H-@ P   P0M-@  ,4 RM 44 RM 00,pP  08$S 09d0S @oA P,G - 0 B`r R.$ F/o" ~ P 0  5$ Fr0 S X} P  wO-4Mp @ QP`($  /*0!T   #@P 刜 P PK  T$δ9;;(/ 00 /0 0C A //    R/0H- @   R,P ᡜ0AP Pʛ@00H-, @P ᆜ0AP Pᯛ@0M-M@Pq5  ` Q  P ^pBpWp`   0 K 0 0iS8^ȋ/  +4 R/'$Q/H-  0 0IS)8ޚTȋO-4Mp D@`P PC PP+@0$X7  W @ {tP P$0DP' paP`  RXXX! '`^  B oc :2/ Q   02 0Q  B p:   P 8$<( l, ,0p `pGpV K8t|0H- 00@ P 0 0~ P0O- MA Q P Q B@ Rz PQh@pOO (Appω P2 PP 'A , QNP >Y2 PP  A` P1P@PpP ` Ap`V`PQQppWKH- M@Q# pP  `Q!L Q ॒ 矎PP TPP P PK  K #To)0 RP/O-DMPp`QQ K @Ph  0f@P_ ܱZ   RV 0p  @uTHwLW@AQd700lW@Q@Q@Qw@Qp@ Qp@ Qh@Q@Qpg@Qt@Qx@Q|@ Qǒ@ Q@ Q@Qg@Q@Qg@Q@Q@g'Q@Q@Q@Q@P@KO-M@`P   pB  !R +Q  p@P `` P$(,0nKH- JHwV0H-PB$Q @ PTU 0  @0L(PPPL  0H-  B00SR 0 D H70H-<@PC 0HP////// /@ J@//L-000CC: :JS Q 0/ OT /@/L-000CR*Q 0/ OT H- 0 0CCQ505553558 @@/L-\ ?0OT 0CCR0@858 0H-M@`PU  _ ,  PPK0u0H-M@ePU ^ ,  PPK0`u0f/H-M@`V pAP` Q * WWKH- 0 0CCQ505553558F /O- MP@ V/ @ Q  ?0W` R*` pW [ @?SP[1/\ ` VK0H-M@⁑PU _^ ,  PPK00sH@@/L-\ ?0OT 0CCR0@858 //0H-<@P 0HӢ/ P //D/_A $P/d/B 4/$(@@/$ (@@Q7/1H- L/{ 0H-@tP 0H薢p/ $@@Q7/1H- v H- M, 0@Q* P Рf H- M P РH- M P Р $@@/L-@(]  P// ? 0  0 ( /// ///// P(507/1H-   No)%+0H-P(@l] g0nL-,@P 1/Dn剅t/0H-@ o Q P@m  @ 0H 0H  ;N#! !Bd///0H-@ = @P@ 0H軡//@/L- 0#%A ^ 510P  CBP/ @ $ 1Q C@P 1#B0/"+BC<?C B 1/0QA<?C!A%!A00H-@ P  P0HC 0H da/ dh@K@/d =h6K@@Pa/H- ' /pL- M@PR x[P`  Rlll! Z`Y442/  1/Pb[P`  R  Z@Y2/ P` P  $0<HT    KpD@  4M@^ͱ]5j'ͱ屋Mw { ' J G  W k    /ဟP/p\L-@PxPh(^_XP@Q< @P$t^Lu_D@\b\!K-P @p`= Q@ KpL-P@U P [ [ P``U P [ [ P`U P [ [ P PP [ PpK-`P4H \0 3/ 0(-H\ZH/H-P0H p03/4^^HYM-M@PP1 BQ  Aq@@WM*10`P:P P  6/GWpP Q  04p 7/ P0S  p 7/P0S  p 7/P  0 KM/K|pL-<40ttpLL-@HM-@PZ ` iP P1 R R ]PA0,0/M-@GR PapQ Z BP`AU:P Z M-MP@ p0  7/AAQ:` 1p 7/`AAV:KO-tM4Pd`\XTPHH@8 Q0@ ̒ pWPb @ <`D<@T t 2/8 @' $ (  `(K02(B0,  $6/$$ P 1/(( P 1/ 8 42/<,Da`@Ta  2/@$ `$` (` S P(KD1(E0,`` ````` `$``5/$$` P 1/((` P 1/WPpHP KL Qq x  l8 kL Q l  a a HZM8 M0MK@U|U#<Ī`T0ĩO-tM8pd`\XTPHH@Q4@ 㼂 @TPR @p <P`D<pW ` 2/p& $ (  P(K 2(B0,  $5/$$ P 1/(( P 1/ᰁ86/<,DqpPU | 2/P$ p$p (p ~ `(K<1(E0,pp ppppp p$pp6/$$p P 1/((p P 1/TP@HPKL Qs p  nL Q h    HLQ4LKQ Rϥd;QܓpG//8/6/ r R/ Ar R[/GQڈ AR!0!@ Q Q @Q [/HQ Ar RQ [ /)[//[P/ @BP/ Ar0 SQ/ S 5r 65071023/1H-   2I AR !HHH /Q/  G8@_/c / /DrL-@, QP W LkXi//K-P `@FP'*A AA!.rPP P@*W pF AV  wY@ K7@p8H-@P`p  P/ DT8x8` G  1/ GT 1/ G G    jH oO-MR5/` @PP pAQ  pQ / @ Q/ @PYKO-MR5@/ @PP paQ  pQ \/ @ UQ/ @P@TKH-@P`p  P' `D8x8` 1/ G G V 1/  G lO-M @ pP4 P `P* WVW QP  VQ  PQ QP KO- MRp0@ 0 0@R B0@@@T!* 0F00 0 8 4 0P,`( <0$0O  R 0RO KK-P `@FP'*A AA!.rPP P@*U pF AV  Y@ Kt@punH- o/K-P `@FP'*A AA!.rPP P@*U pF AV  rY@ K2@p3K-P `@P(*B A!/rAPAP P@*~U p0AV   >Y@ K@pO- MP`X@OU`@  ^ P   P PIP `P0 0pW 0g S  8 2/  R Y @ Q   P ܎P pP0 0`V 0g S  8 2/p P&  @P `P 00S 0Tg \  8 2/W@pP pP 0 0`V 02g ``S  8 2/  /!@Q@P: / `` p`P  00S 0f U  8 2/      ~<P?O    ` p `0 0PU 0f S  8 2/K PP!@O- MP`@OOU`@   P ˍ P PPpP0 0`V 0cf S   8 2/4 RX @Q  ŭ P ㇍PpP0 0`V 0+f S  8 2/p_ P(  @⑭P`P0 0@T@OO 0e S  8 2/W@p`PpP 0 0@T@OO 0e S  8 2/  /!@Q@P:  `p`P  00S 0e U  8 2/      ~<P?O   ! `p P `0 0@T@OO 0de S  8 2/ K PPŋ;L-@$Q )8DL-@(Q )L*CL-@(Q )LCO- MR7 P`Q QQ"  0A0S$CQQA ` 0pWp@ @sp"# P0S `Q0`(K0VBpW0sQ@W @  "W 00`PVpGW0H- Q \ 0300!!\?7 \!r ?6 \@% Ȃ % R% @ 0!)  30!6!3 0S >++7 R !3!&  3 0^0@" @"^S q7 Q/"3"@# @ 30@0,90@0,@"@O-MR; `P@ P Z&`J ` p0 iP`V `Z  @ RVBUEPZZZ "KXSApWO0? S 6 PJ y ?+ 6 R7 P Q&P!S0  P)S >  7 P   Z P PXpGWʣ  O-,M` PP`ͬ P̬L@(@ @` `@@ Q@P*"!a .PW!  0~ p 2/P p   2/Pr   2/P   @ 2/Py   p @pl 2/ p2/W P5 @pO @pPK  @ 2/pP7  !p @p) @ 2/pP p @p @ppp 2/P pp T 2/JP Pp====P 0S:' =  V`=====0C  2/PPpG 2/P Z 0 @ͬ p̬LS0 2/P   P 0p @pW0W @`p }PZ @W0C@A @ Q 2/PZ' (pJ 2/P PP]]^^]]Z  P  @`J` 2/P H 2/PV:P >W `PXX  P@ 2/P @ KO_   2/p @2/Wg P @  0( 0CK (@< 0  @2/P P   2/Po P  2/P] PP 2/PJ @ PP= P  2/P+ @ K @P    2/P @KKO-$M@ 02/ P 2/U P.  `  A`P? `   2/`P+ `  `    2/`P `  ` P  2/P8 P `   ` 2/P    @ 2/P  ``````KO-M@ ` 2/@P (@2/U P-  >P<     2/P(       2/P  P<P*  2/P || `(v(<  2/`FP<PP @KO-,M@Ap @LP@ P6`PlG 2/P\  Q@ 2/A p2/W P   5 `P2/ (`@2/Tp P   ( 0GPW`(< 0PMpG 2/P = === >>  2/P   @ 2/P    @ 2/P   P `   2/P  P^   p 2/PI  =`   2/Pc  Y  p 2/P  p<P5 P@  2/P#  P(u(<  2/@PEP<@ PpP  P ` K@oᠢO-M@P0@JP3*`pA0A"rPP# P#*kK J0 pB2`Z  p  %W`@ KOKH- I HK- X Y ` V @pFT Q  PAP JK T @BK W` 9K KK-P `@FP'*A AA!.rPP P@*J pF AV  Y@ K}@p~O-M` UIJUA@PW  BB!* *@QPPG J 0Y1 000 `D@II Pp P PPPPP00 BV@`1/H V P `FU [ @?SP[T KOKH- H H K- X Y ` V @pFT Q PAP |J T @tJ W` kJ KK-P `@FP'*A AA!.rPP P@*.J pF AV  Y@ K@p)/0H-P@S@R o$ h J P  1/@J P  0xD"\0jL-@0 QPI h!L-@, QP I L E !Q/pL-MPH`@Tx  0<y Kp 0 C !  ! /H- P 0 C B\ !  0 0:=Ղ7i/WH-`8]P \h q蝋pᚋ@ᗋ@ᔋ*!2 "DUpL-@P` ]P \`pvw r m hU pLuvQ &LUppLfTWM-p@`P\P f\PV, 1u6 1 , 'X   u % X (V Q P?0E   (0 R M[S0H- 0@CT! T> T`@\: ,^0B0G00B ,#@^0D000D3  ? 000 0B0 1~@\: ,^0B0G00B ,#@^0D000D3  ? 000 0B00 1_@\: ,^0B0G00B ,#@^0D000D3  ? 000 0B00 10B 0@B@;@\: ,^0B0G00B ,#0^PCPPPC3  ? 000 0B0010B 0B0B DR:TT 0PBP0B PBP#TPB PBP#X#<PB PBP0B0 Dr RH-  A Q0A0 AQ0A  Q04Q(H-  A Q0A0 AQ0A  Q04Q(L- 0AQ@2@ \:H-0SZ@C@ SPU U U0$P"!0 : I@0C0%P"! 1 C0$P"!0 ) @"^ C0@P S`RpT@0` 0300SP@C@"!`SPP PBU:RR$@0C0S PBuPU$00     C  CSpC `C SppS`0SL-@?0R 0$ 000@i0H-@P P P$  P*T0K-M `@P_V{ppU $Pp3KL-@ R  $ A L-@ P $   0PPd Tx`l8 84//// /////////|//p/l/t/x/H- \X  7^^4^]]]-^]O^^^^^^L^^^U^^ ɂ ,o^O-MP@=x fpPO\h`Tx`l4 44g`4 h`1h`.g`+h`(g`%g`"g`g`g`g`g`xg`tg` g` hg`dg`lg`pg` UfpQ6 $d<<\ 9f嚫g 1f`P? ᾤ  $f`pYP7 Y nPYp P PGt PC pnYPE Y[ ep`^YP( X eP`& e- 屇 ᮇ `嫇`娇 %P]! 垇pᛇP ᘇPᕇXpYP] X`t*!2 "(  ` e ep`XP Xh ! `p]P ZPW*!2 " pe v *!2 "   A (p%` "``*!2 "h! 6e(( pk ,e?pF>P  "e|pX  (>Px  e뀇`@ e@ d0 dp`VXP W ! 庆p᷆P ᴆP᱆*!2 "V d dKT a蒆pᏆPጆP ቆ*!2 " p P db`\  C5Յs\[,\[[[%\[G\\[\\\D\\\M\\ #g\Z[[[LElEYTDtCpW΂}΂$WAAUX ;6pL-P`@  $(048<@DHL C P,@p0H-!1 R @ @DJ JJR/ 00Q AQ ? @BT1B b"?/\ @?Q2 `?0 @R5 ` 00O-$M| 0$AQz zJPR @ ` p'@&@W`@TS P0UQ0p0Gz zJ1Q/ p0P @R11p!o PGU2W pgwo 0Q @?Q2 `?"  @R3 ` t P$0P ZP PP \J g p* 0*JJ `@J@PA U%U%@0 pQ*PP@L @B UUM\0L `RAqr V@p B  P Q 0 C: :J!Q^  B* *JA  K `* p*JJ @J@P>A 0p`U%U%@Q*PP@+ @@B U UM \ 0L p`RA 偁W@ ` B L-@ 1sS C 0 0$@P@R@DD C X  E3K-A`pQ 0P0EZ ZJ1PQPP0S. R U :  :JQ B!0 U  * *JAQqY   2ѶH-P@` Q $ Q8< QB PaV %X㭄AX 0 0~4P68z < zJBP- B ㇄A4P8< BPDH AobP R6 Q 8<  B!P$Q:  :J B!Q VpP @ R Qq X Pp g  T2QS0H-@ PAB A00+C /  /M-@`p(PA Qᭃ` @P Q  @Ⴣp | x Ms0H-PlP @(A Q~` @P Q 0HT0pM-`p@ P@ 0pD P  ||/H-MdQ@P[P L `H`1V P 1/?P+ @ `@`[P pp1W P 1/o?  K2#",L-@P pL-M@ R%PP[P ``1V P 1/(?P ?@ Kp0!0H-M@@[P PPQ1U P 1/>P PK0K0/ PH-MdQ@P[P L `H`1V P 1/>P+ ? `@`[P pp0W P 1/>  K4/4 L-@P pL-M@ R%PP[P ``0V P 1/R>P i? Kpd-d0H-M@@[P PP{0U P 1/">P PK0K0,H-MdQ@P[P L `H`I0V P 1/=P+ > `@`[P pp0W P 1/=  K+0(|L-@P pL-M@ R%PP[P ``/V P 1/|=P > Kp * `0H-M@@[P PP/U P 1/L=P PK0K0L)LH-MdQ@P[P L `H`s/V P 1/=P+ > `@`[P ppF/W P 1/<  K($L-@P pL-M@ R%PP[P ``.V P 1/<P = Kp&0H-M@@[P PP.U P 1/v<P PK0K0%HH-MdQ@P[P L `H`.V P 1/D<P+ <= `@`[P ppp.W P 1/<  K,%,xL-@P pL-M@ R%PP[P ``).V P 1/;P < Kp\#\0H-M@@[P PP-U P 1/;P PK0K0"H-MdQ@P[P L `H`-V P 1/n;P+ f< `@`[P pp-W P 1/A;  K!( tL-@P pL-M@ R%PP[P ``S-V P 1/:P < Kp X0H-M@@[P PP#-U P 1/:P PK0K0DDH-MdQ@P[P L `H`,V P 1/:P+ ; `@`[P pp,W P 1/k:  K||L-@P pL-M@ R%PP[P ``},V P 1/$:P ;; Kp 0H-M@@[P PPM,U P 1/9P PK0K0 @H-MdQ@P[P L `H`,V P 1/9P+ : `@`[P pp+W P 1/9  K$$ xp L-@P pL-M@ R%PP[P ``+V P 1/N9P e: KpTT 0H-M@@[P PPw+U P 1/9P PK0K0 H-MdQ@P[P L `H`E+V P 1/8P+ 9 `@`[P pp+W P 1/8  K lL-@P pL-M@ R%PP[P ``*V P 1/x8P 9 KpP0H-M@@[P PP*U P 1/H8P PK0K0<<߸H-MdQ@P[P L `H`o*V P 1/8P+ 9 `@`[P ppB*W P 1/7  Ktt޸޸L-@P pL-M@ R%PP[P ``)V P 1/7P 8 Kpܸ0H-M@@[P PP)U P 1/r7P PK0K08ܸ<*   /<: /</<*   /<: /</<*   /<: /</<*   /<: /</<*   /<: /<P/<*   /<: /<P/<*   /<: /</<*   /<: /</<*   /<: /<P/<*   /<: /<P/L-@6ZL-@ 7  $ٸ     / ٸ/B/0R00/K-p` RP @ 0$ P@PU,PP Vq A@ PpPO-$MP 0`   1pF  0 w@ 0㤄  0p_|Pd p@PPOOP  00S0I X  803/ Pp p  00S 0I Z  8 2/Z  @P KOFpK 0 0'}2 0 /H-M`@P6  pN  @00  d; 0pS :`p; 0pS*l KQ   /M-M$6 !p0 x !  a Tq6 @1P0 Q0!P2 `!` t 0R \`@= $M6 @0 T0jA P`"0p`P"0p`P "0p`P ?R P c ` PcPH$ POp`{{R  00S 0< W O  8 2/ CR P c ` PbPL# POp`R  00S 0A< W O  8 2/" POp`R  00S 0< W O  8 2/" PO`pR  00S 0; V O 8 2/,QOP c A` PCbP>o  Pm POp`@P  00S 0; W O  K8 KO/D@ @0 0CC(NG=SwL-M  0 0@ @ @^KO-MP `q P b @Qap ֝ ` (0mP T 0?  Kb P |b @ Pa`#  p[@`P[rP  00S 0; TO  8 2/ Ob P =b @ Pfa`"  dp_@P`_r  00S 0: T  8 2/ Sb P b @ P*a`!  (pc@P`cr  00S 0: T  8 2/ Wb P a @ P``  Pgp`@gR  00S 0X: W   K8 KO/,( (0 0 2aN;O-M 0pP@  `q`  00S 0: TO  8 2/Dg P  p@ `q  00S 09 T   8 2/`p P @p0 0PU 09 S  8 2/  @ `@ pPa  00S 09 T  8 2/! 0k 0 ` @ 0@99 ` 0@-9 v`Q ` @ Q_`  `q PA @p0 0PU 0+9 S  8 2/Pp `@Q  00S 0 9 W   K8 2/K  0 0pHzpL-@ `Pn\VP,    R  pQ:p Q  P :xt t0 0;  P *pD@ @0 0+0, ,0 0#G!GfHGFxO-M QeV!  00<p@,'? QQ 2sIV P0^= 0 PS:070:0  0S@ @ CPQ 2P1U0 UP U 5@T^ P U0  @ 2 W  KS0#M-@vPOp  (8 2/P,2P`p@Q  00S 07 V   8 M/O-M@Oa P _ BP R:^  `pI P vP Pay`p 0 R 07XO  8 2/ Pp`@Q  00S 0r7 W   K8 KO/O-DMOZ ,@P ^ `'AP P]@  @P ^@ P P]@`P /O@Q  T@q P `^@ P! T^( PQ|]pW` 004 ĐBP Q_]@ 0D +   &" ٙZ @O P ^0 @0D 4 TᦴაBP Q]@ 0D @+p /O   `@ A Pc 00S 0y6 /OT   8 2/ @OO`P `p 00S 0O6 @OOW   8 2/@OO`pP` 00S 0+6 @OOW   8 2/@OO`P `  0 0pW 06@ OOS   8 2/KM-P@Oc P &] Bp RO\ `\` P  ] Bp Q3\` P` P @ 0 0pW 05 S   8 M/O-MP`oOp P \ B@X[ppP@ pP 00S0PZ5 P`YoO  803/Pp@q`  00S 055 V O  8 2/    KOO-dM,`(   @ P# N\*$OQ @  Pw =\ ~P R  P .\BPXW[@@ A < ` pQ$pB,  P pOP/ [ 8Q,$p  Ppp  @OPv [<p~@OP [PA` RZ  ` p 0 pRcs0@"3R*Rpwpq'Bp0`` V@!s0, `R  $@&( p  Tcx  `0O\ 1 ( 8  @P ZViApWZ<p@@,Q6 F[ <A`PUoZP `@(0 0(4P P<\U,$p,` p@  0  0P! [ ,` R>Z  `@$1(T8   @P%  Z! R  Z $80(o@P hZ `<  PY:BP RY @@9 $Q0l @ @ P ZP ApPUYP@, @Q Zp pWYp@O(0 0k4P 0Pl+, @Q cZ @ ` RY @,l 0DP @P2(7 l0$ZbB@ZfYP = $QPP@က`,Q Zp pWAYp`(0 04P P!),Q Y ` RY #P2(17 $@PUKTP P0 00{ !   ZN.瑈/Α܊M-P@O` P Y Bp QX`gP`@Pp  00S 0@2 W   8 M/O-M04 pO@ P,@X  Q @oD @ p@` 0 R 02V  8 2/X  ,P `@Pp  00S 01 W  8 2/XPp `@Q  00S 01 W  8 2/ @X4qX@p `PA  00S 01 W  8 2/@Xp  PA `B\ P  PX ZXW P@ 0@5 p`p P!0X !0pP| .0pP !0pP !0pPt !0P} {/0pPu !0pPm= !0pPX@`pB  00S 01 V  8 2/| 00 ! 07X@` pB  00S 00 V  8 2/ X0? !(7X@` pC  00S 00 V  8 2/@`p !0p`@ !0p`@X@` pC  00S 0l0 V  8 2/@`p y/0p`@ !0p`@ !0p`@ z/0p`@X@` pC  00S 0#0 V  8 2/ 00 ! 0ZX@` pC  00S 0/ V  8 2/XP(@`p !0p`@Z !0p`@RP@\P W PX!.0 X $`8#0p`@ 0p`@ 0p`@ 0p`@h 0p`@H 0p`@( 0p`@X@  P mO`Pp BPpP`VN`@A\P UO XP QX}N@Xp P5 OT 0L,  0` $$0`PA 7  7 X@` p׀@  00S 0' V  8 2/X@p `ۀ@  PP00S 0' W  8 2/PPW@\P NT` XP T`PXM@ .$@@0$PFpb X #p   ߉` @ H 0+ n/p0p!p0T!p08o/p0}!p0t!p0l!0pc!0pZ!0pQm/0pHo!0`p>@  0zYP , 0 {+ ,o`!0p&@  0bYP~   0d+   0UYPq  0 `JYPf @ `0+Ss{ 0F+ d 07YPS @p 0+S+p^{ 01+  0,+   0YP9 @ p0+SF{ 0+   0 YP& 0 +   0`XP @ `0+S${ 0* 8  0XP @` 0+S`{ 0*   0XP x @ `0+Sz 0*   0XP T` 0*  0* \ 0XP @ 0* PO@\P RM  PP {L@0 0$0"` #  4  jPP@ p @0 0 R 0%ۤ?C?<S  8 2/~ H 0@H* p` 0pP 0pPP@\P LT`  PT`P L@<0m"0$0Z   # X@O P LP B`PUKP@   HKD <H @ O @P` o"0`P@ n"0`P@v "0`P@m  㟇PT@Op @  0& 0`V! 0% ɂ!ߡȡq]\E7렊̟Z>!㟊ğ؛S O 8 2/ ~ X@`Op@  00S 0$ V O 8 2/H 0@D) `p'.0`q"0`r"0`s"0`h/0`Lu"0`0v"0`w"0/0y"0`z"0`{"0`/0l}"0P~"0`~4"0v -0`n"0`f"0`^ #0V/0N"0Fp"0`>T"0`68/0`."0&"0`"0/0`"0`"0t"0X).0`<"0 "0`"0"0/0 #0/0 #0#0"0`d/8? `@dXO@  P ~JPPpěqBPp`PUIP@A\P bJV<`D^8v  `Q zI@  @}`3   0UP L 0' "0@@  0iUP P7$0 3 7  7 X@p `PB  00S 0" W  8 2/D T@H  $0@`R pP @#X @r  00S 0{" U  8 2/@Pp"0pP@/0pP@t/r>  `/ 0 L/u>  8/ 80 $/s>  0 /40  0.80   0.<0  .=  0.D0  ,0. L0 t.H0     R@  P ?I` ꬕBP`VeH`@  0qTP L 0r& Pp@"0Px"0P,!$ 0 00 (H @#@T )$` %  0  #P6!pP7!0pPM!0pP   R@O  P, H`3ꦔ%yX8ꑊՑt]됊E u\E,ۏrYC'P׎BP`VG`@lPpJ!0PDG!0Pz(K!0PrR/P0jI!P0b@ +S 0"@.0PNN/P0xF!!P0\>"!P0@69!P0$.#!P0&:!P0I/P0;!P0%!P0O/P0|&!P0`=!P0D'!P0(>!P0 J/P0?!P0)!P0*!P0-P0t+!P0XK/P0<A!P0 -!P0B!P0.!P0C!P0~/!P0vQ/P0xn.P0\fE!P0@^1!P0$VF!P0N2!P0FM/P0>5!P06S/P0.J!P0|&G!P0`XK!0P3, !$ 0ppD @#@ X@p `PA  00S 0 W  8 2/l T 0H  1$  \ @P Fꪎzg  PP E@@@#@`P"0PP"0PPh "0PPL "0PP   R@  P wF`ތBP`VE`@X@p PA  00S 0 W O  8 2/L-0#  $ "0gX@OpPCCC  00S 0 W O  8 2/< 00 "0X@OpPC  00S 0 W O  8 2/x,, & O,@P ED` 슊Q\D퉊ى͉ňT?TAD`P PD@ Vu  /0X@?pP?C  00S 0< W   8 2/  0pPOP@7 7X@`q  00S 0  X O 8 2/D  0@Op7 7XP`A  00S 0 WDp  8 2/  0jX@pP`A  00S 0 W  8 2/., % 5 T 0H  2$ v \ @P D  PP C@#   R@O P DP샊n[@, ܅ąlUE5 ݄ȄB`PUCP@ D ="0X@O`pA  00S 0 V O 8 2/B>"0HL?"0B -0<A"06/00_F"0+G"0%hJ"0`p/0p`$@I"00`K|/0p`\+B2 p `8+p?  `+ E2 p `*pM2  `PO P C@P%계u`K5$냊ރуs}A)}؂ӂBP`@TB@P bs X@pO`AP  00S 0M W O 8 2/ K 7"?,<  QN 7"?" GN 9"0  =N 9"0 3N :"0  )N :"0 N ;"0d  N ;"0@  N K"0  N K"0  M /0  M -"0  M ."0  M /"0  M #.0  M 1"0  M 2"0  M 3"0  M /0x@O P BP:>Q~tB`PUAP@` H@K 0 hD 6"0`X@Op`CP  00S 07 W O 8 2/ ᬕX@Op`AP  00S 0 W O 8 2/ ᄕX@Op`AP  00S 0 W O 8 2/,  " T@4 0 Q - 0 Z. 0 R  0b. 0 S H 0 U l 0 U A\P AO  POQ @@ |@- 0 0 0X@p `P@  00S 0S W  8 2/  `L`A\P A  PQ @@  @|PT 0p ,`m!0`dn!0`\  0LP L 0   L`A\P 9A qlAwvvvvvttttktFt*ttsss  PQ N@@  @Q|PT 0p_ `c/0` !0`!0`|!0``.0`D!0`(!0` !0`!0`e/0`!0`!0`!0`df/0`H!0`,!0`X@/` p/C  00S 0. V  8 2/@`pg/0p`@e!0`@[h!0p`@RH!0p`@I(.0p`@@!0p`@7!0p`@.!0`@%i/0`@!0p`@X@3` p3C  00S 0 V  8 2/`p@!0`!0`j/0`|!0``!0`D!0`(!0` k/0`!0` 0 Q`  0pm,0   0 Q 0mx,0   0 Q 0lD,0   0l,0  y 0l+0  g 0+Sl+0  ^ 0+Sl+0  U 0+Sld+0  P  0xJP L 0z   IP`?B\P ? {sVs1s  P R => @H@K0q qPA\P > srrre -DT! @;f?;f?  pQ >@ @zVq  zTpP 0 ` 0@P 0@P 0@P 0@P 0@P 0@Pd 0@PH 0@P, 0@P 0@P 0@Pw 0@Po 0@Pg 0@P_ 0@PWh 0@POL 0@PG0 0@P?,0@P7!0@P/!0@P'!0@PA/0@P!0@PlQ!0P  0CIP_ L 0E 6N@ `P 09  I & 0$IP@  0`X@p `/P/@  00S 0v W  8 2/@ @  A\P = mقllwlklkQk7kkkjjjj}jcjIj-jji  PQ <@  xPX@` pgg@  00S 0 V  8 2/l@`pa"0p`@P@b"0p`@G e"0p`@>f"0p`@5g"0p`@,/0p`@#i"0p`@c"0p`@`/0p`@@j"0p`@ k"0p`@/0p`@/0p`@ GH @ :$ 0@P 7@7,X@` pB  00S 0f V  8 2/@`p"0p`@"0p`@   R@  P! |<P(Ti+i ihhhhy9Q9'hgVgeggffffQffeee]e4ee'dBB`PU;P@X@` pB  00S 0 V  8 2/"0@0築 /0p:n"0<"0{L"0tpH"0y p(/0p p"0g 8 0: pp"0"p0"p0+.p0t"p0X"p0< -p0 "p0/p0"p0"p0"p0"p0x"p0\~"p0@v/p0$n/p0f #p0^"p0V @P H   C ?   6 d  A - D  $ $  B    .   ~ /  u  l   c  d 0TH  ;$@ @ $   #p   R@O P :P$~(v~bbbbzb&@b&bbaa;a|adaOa8a ha```I`BpPU9P@  0@EP L 0 0B/0  !0 !0p` !0`wC/0`o !0`g!0`_!0`W.0`Ox!0`G\!0`?@!0`7$E/0`/!0`'!0`!0`F/0`!0`!0` 0TH  ,$@ R \ @P 9pO  PpOP 9@ #    R@ P 9`@^^]NX]]r].]]]\\\S{BP`V8`@LO.0  00 !0X@PCp  00S 0. W O  8 2/ 00 !0cX@OpPC  00S 0 W O  8 2/ 00 a/01X@OpPC  00S 0 W O  8 2/x 00 !0X@OpPC  00S 0 W O  8 2/@pP!0@!0@8 0  Xb/0p@8!0@  yC!0 !0@X O@ P`@p  00S 04 W  8 2/ lU T 0H  4$H U ` \ @P U8  PP ~7@ #    R@  P% 38`,ӱdPCQXQkPCP(PNPPOQO-OOO# O'OVVVyV_VGV.VVUUUUUUBP`V:7`@L 0P $ 00 V"0X@p PC  00S 0 W O  8 2/h 00 W"0X@OpPC  00S 0b W O  8 2/ 00 /0X@OpPC  00S 00 W O  8 2/@pPY"0@eZ"0@]/0p@T  B["0 t]"0@@@ 0 8 0 X O@ P`@p  00S 0 W  8 2/o  0[H `a? X@pW PWA  00S 0 W O  8 2/H@KL 0K !  0f[P@\P 6VTSS  PQ 5@    H@Kx P 0P _H@K 0P  UXpQ P PO@0  0`V 0# SSmSVS?S)SSRRRRS O 8 2/X@Op P`A  00S 0 W  8 2/ T 0H  8$` W \ @P 6RRzRaR  PP 95@ #    R@  P 5` BP`V5`@@Pp/0pP@"0pP@"0pP@|"0pP@X@p PC  00S 0Z W O  8 2/l  0@P L 0 X O@ P`Ap  00S 0& W  8 2/ T 0H  9$<` X T\ @P I5 aO  PP q4@ #    R@  P &5`NKӤ^D0CCBP`VH4`@@Pp/0pP@ "0pP@`"0pP@X@p PC  00S 0  W O  8 2/  0@P/ L 0 X O@ P`Ap  00S 0b  W  8 2/@PKB\P 4 HL  PP 3@ pP0%s0&C 000p Wps0 S*0 00 0 0@0 00 Sp0p`s0Cw0@v P :/? 0PH@K2  fpPA\P 54 J/H  PQ [3@ D @P #XO`A  00S 0  U O 8 2/T  0@i  "0D 0=X@Op `A  PP00S 0  W  8 2/PPW  >`A\P 3HF3>0w>  PQ 2@  @nPT 0p !"(0X@'` p'C  00S 0$  V  8 2/  ""0X@+` p+C  00S 0  V  8 2/ $0 "^X@` pC  00S 0  V  8 2/  ".01X@#` p#C  00S 0  V  8 2/t`p#"0p`x@/0`%"0`I&"0`'"0`l/0`|)"0`^*"0p`+"0` A 0,WPX`q P @p 00S 0"  HC\  8 2/  4 vD <_BH HK@@ dHKD H @@ X@` p@  00S 0  V  8 2/8 @ X@p `{P{@  P00S 0  W  8 2/PW_@\P 1  BA  ` R 1 @H@K0p0 "4pu Rd@  P 1` @BP`V0`@ T@K< P 0P hT@K 0PT ]X@p P`B  00S 04  W  8 2/B\P g1$@>><  PP 0@s`  X@p P෠@  00S 0  W O  8 2/ F0O ! X@pP`B  00S 0  W  8 2/ ;@`@p@0 0PU 0  =S O 8 2/@O`P@0 0pW 0x  S O 8 2/"  0NUH@K< 0 gTHKD H @ _P@\P 0O<  POQ /@ XP IHP P p P @P0 0`V 0  v:9S  8 2/X@p `PB  00S 0 W  8 2/($H 0D *X@p `P@  00S 0 W  8 2/D K 0X@p `P@  00S 0 W  8 2/D L 0XPp `@P  00S 0` W   K8 2/K 0 0 0 0 0 0 0 0| |0 0TP P0 0<360/<4![ᅁ<6v565V6K-MP@`pdDJ P pG 0]^`6J P  0Q0 R5 PK 0 0SQM-Mp`P@@Ϣ 90` M 0KK-` @pP . P R. p 0. pP . @P-pP`@`Pp  00S 0k W O  8 K/L-@0 |z@#@H- M ,7  0h+ РL-M @@KH-p@`P7 09P  0H  0 0YM-MP`p@H P  0 @0@^` 0K 0 0g례VH-p@`PH P  0H 0 0L5oH- ,0y  # H- M0 0* РO-$MPND p`@ *$ 0@ ` W  #O!P0      R` P - B@Y,`  0@ T 0 W. 0 `@P P -P `pwS P> -F pP,PpOwsw  00S0P Z O 803/PP H-P`% @Qo,P- 0scP3 --P; @`PT,PpO`p㐅@ 0 R 0TZ OT Q 8 2/K @PU%,P`  0 p Qq:o     RP PP P P , @Q+P 0㶁 p QC:A `O P ,P B@PU+P`ph`P , @P+`pW BK<8 80 0($ $0 0.yJ܉(uy*܉5)M-@M` P TD !4^P # p P =, @Pf+pP`@`Pp  00S 0 W O  K8 2/KO- MP@ a P + pQ!+` $gPT 01 $#$  0p` 0 #` X X+`@ 0 0d@  _"0 (&.`0KH-  O-M`@ P w+P BpPU*P@BQ ^+ p R* @ BQ D+p pWm*p@  D:$$0Y~` 0   #  @e tPn ᔴ 0BQ + PX.*@!0 v    RP PP P Q *@ p@T)@P 0㏀ P uP 0 6K`\ \0 0LH H0 084 40 0,,mr"Չ MrՉ|-rԉ L-@k]pL///XQ/H-M,3@P ^* AP P)@O  00SP P ?*@ B`@Th)@PXP`p 0p`P-, 0p`P$KD ///K-MP ,RP ) KA@ P&)PO   RP,P ) A@ P)P 0p0 "0p,QP ) A@ P(P   R` P )P B@PU(P`#0 , p0C2pp[` P y)P B@PU(P` Y `@pPa  00S 0  T  8 2/` P <)P B@PUe(P`` q P $) @QL(p pOd`P 0Q4Pi T0R   /0ppP 064PN 3$0p` 7  7 `@pPa  00S 0 T  8 2/R P ( B@ Q'P,7H 0 KK 40 00 0W1j̉kK-8M@LP P,OP q( A` P'P0`PC P V(@ Bp@T'@`\ 3Lp 3 @0S `/`@Q p `p$@(`,@043P@p\pPQ   0X  H 28` 2 P@0S p/p@Qᶈ ` p`$@(p,@04q3P@``P  0  K,( (0 0똧C1fZɉQ/O-M@`oO P ' BpZ&@ `pF Q2t @rP o' P R & p 0   /2gpP P'  P R x& p 0 gPP 6'  @P _&PT 0KOu ꨣ!///K-M@,P ,SP ' A` P0&PO   R` P &P BpPU&P`8 00 "0,PP & A` P%P kV T 0 `P77pa  00S 0O U   8 2/!T 0`P77pa  00S 0$ U   8 2/T 0`Ppa  00S 0 U   8 2/T 0Pp`@Q  00S 0 W   K8 KK/衺 //O- M|p P %` B@`V%`pP@ D @ $0O@`IP  #P`p 0PĿ@ 0P弿   R@  P# %p* s0  @ tP d0  @ tPKBPpW$p@W @P` 0`P@o 0`P@f 0`P@]T/0    RP  P =%@ B`@Tf$@PP`p!0p`P+G/0p`P"!0p`P!0p`PKn{xt t0 02$ 0 0*렜`[b h tg;[/M-8M@P ,3PP $ A` P#PO   R` P $P BpPU#P`$'0@p0W p00``000?   @R^  `$P(`,P040P@ ⽞ P; 0 H'0@p0W p00``000?   @R(  `$P(`,P04/P@⇞P 0L  K 0 0_X6O-$MPlj4  x @p `P  $ PY3#pQP #p pW#p PPP # @P#P0 pp0 0pKO-,M@ ,P  pP #` A`V"`p  0p0P5  p0p $p(pppp]P  01Y@Pp 0p p坿P  0   ᑿpPp K 0 01U淉kO- `000@p0W 0 `0 0?$ (    @R ,B8``<@D-P(@  @ 0 `PK 0 0IOO-LM@P 0 |,0  (  $ 0=6P `Pz P  pP ! AP R   0K P P  0P.PZ 8P 4P < 04@PDPPP[PC P  0% 0WP P ^! 0p,` 0p ,` R  P 0 oPPP( $@P ` KP0p P ,` 0 0ZmL"߉O-M@Q QM P PG`VPI@`papP  00S 0 UO   8 2/@P`@Pp  00S 0 W   K8 2/K pw +`Q K P9 `paQ   p R  `p ` P ~   P` 0 p@ PW SԉO-M p@,`0 800P <0P  @ D @Yk D P 0w+@@P j.0x 0i+P  0j 0[+Pr  0\ 0M+Pd  0Nh 0?+PV k.0A8 02+PI  03 0$+P;  0% 0+P-  0 0+P -0 P 0*P  0 0*P  0 0*P  0 0*P m.0 0*P  0 0*P  0 0*P  0 0*P n.0l 0*P  08 0*P  0 0q*P  0r 0c*Pz o.0e 0V*Pm  0WT 0H*P_  0I  0:*PQ  0; 0,*PC ,0.! 0*P6  0  0*P(  0T 0*P   0  0)P  q.0 0)P  0! 0)P  0 0)P  0T 0)P r.0$ 0)P $ 0 0)P ( 0 0)P , 0 0)P s.0 0z)P 4 0{ 0l)P 8 0m 0^)Pu < 0_ 0P)Pg -0R 0C)PZ D 0D 05)PL H 06 0')P> L 0( 0)P0 u.0 0 )P# T 0, DP P @ B@ R @P`0 n(@ 0(@DO@kA}P$ p P } B@ZP A(@P 0@_B$ 0APDkrO`p0 0@T 0 S O  8 2/ # 1 -8p<P   @0QGp  04[Dpk`P Pg `O@0 0pWDp 0 S O 8 2/O@{AǬP P  B@YP .B$@ 0`{ROpP 0 0@T 0S S O  8 2/ #  8P<P x0Dp 0 @DpQPZ4  0{`P P `O@<0 0pWDp 0 kS O 8 2/8PaP $P2 @QH` @KW(`, 0X^"0@@uP6$0@ 7  7 `P P`}Y8 @PUP`O@p  b  00S 0u T O  8 2/l`5@DOpbP  <00S 0I T O  8 2/<T8PaP rDphN @DpQ` @V(`M, 0!0@@P-$0@% 7  7 `P 4P`) t^@ ~V @PUKP`O@pooa  00S 0 T O  8 2/ p.@DO`ssq  00S 0 T O  8 2/`/@DOpwwaP  00S 0b T O 8 2/D0 (0 $ @02PDpO@`q  00S 0. T O  8 2/PO P \p< 3 B<@pWpP`PP @ @PgPL`HHP`PP # i @PJPL`HHPٹ`PP  B @P-PL`HHP弹`PP  @PPL`HHP培`PP  @PPL`HHP價`PP  & @PPL`HHPg`PP  @PPL`HHPL`PP y WӉ @PPL`HHP/`PP \ @PPL`HHP`PP A @PjPL`HHP`PP & @POPL`HHP޸`PP   @P4PL`HHPø`PP  @PPL`HHP 姸DpO@[AǨP, P 0 щB@0S0P 0c B$ 0@P[bO` 0 0@T 0P S O  8 2/ @ # O`CC  00S 0' T O  8 2/8`<P W,p͉߉މ+ˉ&݉,p @0Qw`5@ 40J T 04QD`O@Pb  00S 0 T O  8 2/4 0%D`O@Pb  00S 0 T O  8 2/4 02Dp`O@P;;`  00S 0x T O 8 2/4 ,0`OP?`@ ? 00S 0N T O 8 2/,4 0ᣱ`OPb @ 00S 0" T O  8 2/4 0x`OPb p@ 000S 0 T O 8 2/0Tx @ 0(  !$p #8`<P ` ۉ @P9`PO@P勀 0 R 0Z O 8 2/0   R`O P P UۉB@PUP` x@`p0p@鷰Y @$P ,4KD@ @0 00, ,0 0‰̉m5"ꄉo"ʄPЉO-4M`@O P op BPpWp@$ 3!0  @P U 0  @? @      @Rw $@(p,0 !P@@ }@P    0sK 0 0N땽= wH-P@` Q p`p  00S 0R O 8 2/7`Rr Q 7P .9R Rp W> 7Rp RpppGorR a< W p^p00C?oWp^R 0@p   % /O7 p pRpO-Mp @Q P ~ `QP Pp %$0I` # ,@P S AP P|@cY@  % |w\K 0 0UljYʉO-LMP ,0,p `  ,p A 400`P(  pS'@ +P> @0`@pap  00S 0 TO   8 2/@ a 0P P  PQ` Op, O@Pೀp  00S 0G T O 8 2/$/ ,`0 p"0Tp單@ 0 77P 02"0pT}@ 0 77lP 0/T0c@ 0 77}P~ 0?CQ !p PpWJp@ \0@VPW 0Zp0PP9 @ 品  pP  PQ OO 00T$0p@ Pq  00S 0x T$  8 2/p ,0, ` A 0`P  PS@h/0,@ `O@Pa  00S0 ( T O 803/@P  0P$@,pMYT"@P@}@Pw  `O@ Pເ`  00S 0 T  8 2/ 0a`+@ P+b  00S 0 T  8 2/,A P  AP P@ P`a @ 00S 0y T  8 2/,B P  AP P@ P`b @ 00S 0> T  8 2/@  P n` BP`V`@@Y/0@e!0@f!0@g!0@Z/0@i!0@<  j!0@TpP @s  00S 0 U  8 2/@k!0@l[/0@c,,3@ P  AP P@    R@ @@ P ,P  AP P@ P* P* P@`` p 00S 0? W  8 2/,A P p AP P@    R@ @@ P ,P B sƉAP Pj@ 0p0 0p1! 05Pdt(@K p 0p ۰(@K 0^p а,(@K 0p{ İ(@K 0pp Ṱ@Q  P Q @ 8,@q P Pp0 0`V 0m ĉĉPĉS  8 2/,`p P@`  00S 0H W,p  8 2/! 0 5Px(@K p 0p 6(@K 0p *,(@K 0p (@K 0p @Q < ÉgP Qc@ ,@q Pq Pp0 0`V 0 S  8 2/,`p P@`  00S 0 W,p  8 2/3`  P @ BP@T@`   R`  P  BPX`, 0%C4`@ P P`0 0pW 0< S  8 2/    ,p3`@  P ^ 1BP^@@ P$Q5 S `$&?pQQ‘|XSp pR8  \:pCG p1@PU) p@EP@21^P ^p@QPR   ^ p ^ O1@p\# O1@A €0-a@ Q @,pP, Q P@$ 8(P G (Kz(@K ` 0`$ m(@K 0K` b(@K 0` V`p P@a  $00S 0- W   8 2/ꭼ$WXp$$p ( W B  P O`~dS6BP`Vt `@(KW$p  $( @  P &` BP`VO `@](KޭW$p  $( B  P ` ѩBP`V( `@6(KⷭW$p  $( B  P  p0P B0P`pW p@@(K⏭0(,@4P K K 0 0 0 0hd d0 0TP P0 0@< <0 0BaǑMa-`穉 `ߩm"aO-MM \ 0( F00 &  0`oO$ pϳ@P K P A`PUs P@ .@GⱁP5 @  O0@p0W 00 TKH T0 ?D @    @Rm 8 < 4P 0 ,P ( $ PP@@P À  0`oOT@K @ : W 6PP pP7 ᠀  `oO0 @p0W 00 H T0 ?D @    @Rm 8 < 4P 0 ,P ( $ OPP@\@:`oO \   R@ P\"B\@ P@P z  AP Q @\@ P  $Z  @P  K 0 0yH[#櫉O-$MP , 0@,  p ` 品  0@Pp`   pT H  LGHp@#0` $#0p`p  00S 0 X O 8 2/DRp`p=RW~P`0pp @ P S K\pL-PLR`@`ERVP@ppL-PQ@P `vP `QVp@pH-@Pp@`Q`  00S 0- W O 8 H/O-M@`:P PD $0<HT吣 `V p P  MP `VDP `V (C@?P `V 0`P P `V B@$P `V `P P `V hB@ P `Vv `Pu P `Vg B@~P `V[ `PZ P `VL A@~P `V@ `P? XP `V1 nslHj@h}fd?b`C^]\Z X=VfT4RLPTNLJH[FIDBD@E>e<^:<8`6p4g2G0X.,c* (n& $" Nvw oq_z | m{t'zpKP"zx``Qq"z P `2/ 2/  ଴ 4/0//'#Q3//6 @0S*0!/" @"1@S0!P @o/6P/  /t*o/xQ3/TM-P P= `@pW (P  CB! Q PQ$ p P Q B QpQ R  MLl`BH-   ԱQS 07'Q/Q?/Q/?/Q/Q/Q //Q //0H-P@ 2/ $ 2/0L-D0@$0  @ 000'pL-MPqP@ \h\\t\\\Xvdb`Qq`&pv,b`Qqs&P%`va`Qqc%@Pva`QqS0h=`: :v\a`Qq= '$!v``Qq!v `P2/ 2/ PP Q2/ 2/KpD@  ࡰxppXt`, 0/ 0 /H-@`R1/$HpO-MP ,p@  d,8NC ` `, d0 HL`H`D`@`<`8`0\`X`T`P``$ 2/ PpPp@(` ۰`Y  0p7/Y˰  (#-P@d P ` d X ࣧ` PP d,0 X0AK!!"!K-0POr P ` B@`V`pp1/$AGs  K]O-MPH@ <@$H`T P P H TM>P PH`@\̐4 2/@8 2/( p&@ ` 1/1/ p ( $0` 1@HKO-_M@R1/$Gp ,@P  \ ,   ( $XK 1/0P qPPP Qd <@  x @8A P P@ x D `P\PXPTPPPLPDpPlPhPdPt$ 2/04` P#4 <0D 4 <ӽ, \@xdD l½ D峜D@ `P PmrP [PAP P@KA`PUvPpA1/0P @c r\XK`( $@,P 0 2/ P K @ P?`KʝX|o#/PX \Pht(T4@`p/D/@/// ////////////////l/H- hd  ̭+֖ؖ{=×@㗉瘉130H-@1/PWQP\\ht(T4@xQP<TQP9PQP6QP3$QP0QP-PP*PP'PP$PP!PPPPPPPPPPPPPP PP PPPPP|PPi 0Hhd  Cx”Ĕ锉̔gz),ϕޕӖ 0H-P@( 2/, 0H/H- Mq\u \\htt(4@Q|7 JQ\.QH(Q4", 5Q ,Q #  Q     Q 3/ Рd`  ܹܹܹܹPdܹ@tPܹ\  ܹeg//L-@O-M  `qP@p  " L\`lxt$0<HL QQKP QF Q@ Q:4 Q1+ Qx(x"tph QX    QP@P F P K  `P PKd`  ͫڹٹٹٹٹٹ0LP$Xٹ57O-M@1/PW@ \\ht(T4@$ < 9 6긑 3ȑ 0 -ꌑ *ꄑ 'ꈑ $ꄑ !ꐑ \ T P L L P H D <  @K0! H`K 2/1/P  0 H4 2/I@=IKhd  xŒČ錉̌gz),ύލӎikō0H-MP@ဎ9IK0O-LM@K`KKKK KKpR}PN}0  ,IL$ 0`P $b^Pp1P p 0  p  K$eLL 0 P@`KҋԹA0H-MP@HK0K-8Mp@HKDK`?KP 02` PpP4P2K 0K 0P? x`KL-M@ᰍjHKO-4M@KPpK`JJJp p 0_ 0pkJԆ0~K 0@d?3`KL-M@k%HKO-N_L_KpL-P@ `pK-M@wIIIpIPI`I 0`>GKK-M@IIIpIPI`I 0`s>KH-M @/IPI`IpI 0`=FKH-M@rIPnI`jIpfI 0`=K0H-MP@FK0O-DM`@Pz0,%I=I8I`4Ip0I,I(I 0^ 0 6I DI 0 `= Z^K裂H-M@P Kh @ppp @P p @`p @p @ p @zp @tp @np @hp @bp @\#p @V(p @P+p @JKXɹ9 /0H-MP@%EK0M-M`P@wH 7tpUiH ῵`Fp6G 0KMXHM-M @PEH 7B`PFpG 0h5HEKM-MP@ H 7`PFpF 0CKMHO-M`HK0p 0pP\p@K 0p\h 0p\P@P 0\ዑ 0PHʃQ0-  0\FpPUU  PJ@h 0&H᠃F0c R;]8P@uFp@{UPwU J@ h0Gh@x Z0  G@Pf  0;\\pK\HK\KO-M@`PYGpTG  7P ᥴU p3 !p?G`;G` 0.DKO-M`P@(Gp#G  7 tU p3 !pG` G` 0KO-M@ᙉFFp 7PF` `0 8DKO-M@FFp 7ʢPF` `0 K0 000 / 0 000 /$ 00 /|/H- M 2/@ Р////H- M 2/@ РH-   pL-MP@jt``Qqj P `2/ 2/Kp边/H-   QEGpL-MP@jt``Qqj P `2/ 2/Kp$/H-   mopL-MP@Yjt``QqLj P `2/ 2/KpP,/H-   ~pL-MP@#jt``Qqj P `2/ 2/KpxT/H-   ௤}pL-MP@it``Qqi P `2/ 2/Kp舻|/H-   y|߆H-   o|߆/, 0$ P sWpH-   TQ|S߆pL-MP@it``Qqi P `2/ 2/Kp/H-   y{{ކpL-MP@%\it``Qq%Oi P `2/ 2/KpH8 / =nH-   z݆pL-MP@% it``Qq%i P `2/ 2/KpXH /& >nH-   ণy܆pL-MP@&ht``Qq&h P `2/ 2/KplX /"  mH-   jxۆpL-MP@&ht``Qq&h P `2/ 2/Kp|h /* lH-   .wچpL-MP@lht``Qq_h P `2/ 2/Kp脵x/H-   vنpL-MP@6ht``Qq)h P `2/ 2/Kp謴/H-   ¢ v نpL-MP@ ht``Qq g P `2/ 2/Kp䳹/L-@s  @Dzp@xpH- upH3H- @opH2 O-MT@PX`V  Pz @P$PPY P : pB  PDPU@@UPO=P `P ` Q ` Rעx@T! p  ET& G/F   Dࠇ X :P  tPPU@ᰢP P |s  1/ds   ` P$P Kᒢ\PXKO苢j3L-@Fr  @o@oH- oHF2H- @oH@2 O-|M@8@K<tL|T4P0`D@HH@  Q DP MlP H@@h D @K @@ P Dp  ET& G/FxZ   ࠗ ' PJ @ Y `: f`` LX X  P T P: RP PPW BZ@*Hp!  A * * Z@`Z:J ``  ]   Q1L HxJ  Y* ` ` `LP 4 !P J  P: LHH ᫡DPx H@P[Pm P ` r D`TpW RX  82/p,p@P - $P (P BX  (K(X,PP PPPPP P$PP10LDK DP8P [P0u ,H@\Q@\XP (p]`pl @  403/ K,(  Tg@nۈgfQlSφL-@p  @|2n@0nH- -nH0H- @'nH0 O-M-(MTpP ѠX`Y ͠V @KЍO@@D@[HD1/0 A `8P  _t k0+S"q P P   `!  p P PPp`pP`Q P R㿮 |P P ET& G/Fx@T   ࠇ + D Xp:p ptP `V`V PPZ P:P  P pd@T `D Xp:tp"pP YY PP Z P:VP P p`@1/0 AỴZ Y P P>`P, PP2P P ޟ9MP*Y  z P (P ǟ" PPQ P RV P  D1/ R 0 A`8$ P@KЍcH-@P ZɭX(ĭnm`p `0` `,`E` `$`(`40`p`c<`@`D`H`L`PT`X`\```dlh`'tp`偟 P (Po 訤ģ \/ጣH-@PP_ni|P `吭VttPP hP P僭U`p`pP zT`(# F) PpU מP `_VP VTP aXM`K-@PNnU6 P4TPߞlXP hP `3VdhP `0 PlĞ`(p~n@ @  40K/`PV, 쐟p pd P o  1/o   2/P `P  R` ` RV (`P `$`TPoX`KlZ;؀8޶L-@oLeݶ0H-@HP P[P 0TPJX@Ho0̟pL-PP P[PT`@3XP1U  Q+ p7plpL-M`@`P`P 1/V$PKpK-p @ PU @@PW*P P*@P PP@`V X 1/p`!`P .%$$Q@.VP (u@O- M@P T奝 T& EG/Fdp`W!!!!W  G U` :`K`Z Z P Y P:P PPR 㣫zW@*!l  A * *Z`W:G``  9Y   Q1 XdpG U*``w`P h P G P:_llKOR$Q/ H-M`@`P`P 1/ P cm ` 1/[m ` ,/pP P pGm  1/X WTT :m  W8$PKRSрUTT3݇O-TMAP@pWhS  2/p0/ $ ( YS  `(K1(X0,  $6/@$`$ P 1/(( P 1/0@@8p0D`<P$8D     2/YPD0P8PKS 08p0D`p`3/K   ۹LjrSR YpL-P@`P P Xl  1/@ V<< l TVpLpyQxWڇO-TMB@pWR  2/p`0`. $` (` R  P(K™(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/0@P8p0D@<P P[PT@᳛XP屛U  Q+7 0P8P XR 08p0DPpP3/K$P (P `V+ P k TTvk D㳩 000(K( i@(P(  1/ $P p` p0W02 !0S`R `P*عňNh1M܎0ML-@$P (; P  Q @0T02 !0S R P 1 RO-\MB@pWQ  2/p`8`. $` (` Q  P(Kd(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@DP P[PT@ƚXPĚU  Q+7 8P@P kQ 0@p0LPpP3/K$P (P `V# P k Tguj Dƨ 000244 r4`4P 1/ p0W02 !0S`R `P*չRDK}I(|IL-@(Y PQ  @0T02!0S P R 1O-|MC`  @PUP  2/P@8@ . D@@@P  p@⸂(X,@@0 @@@@@ @$@@7/pDD@P 1/@@P 1/8K(p 0P 8 $ , @ \@X@T@QP@L@H@@@@j<@T@xpW   ET& G/F!!!!GW U :   tPX` KἙ@PD8P0PKmP 00pK0$`p`3/K8`4@P PZ P :@` 4@8`PXY㈐ PYPx @偛<宛ѹ⽈G0H-P @P \i 1/Di  QP0FEIEO-TMR@P`VO  2/`p0p. $p (p O  P(KH(X,pp0 ppppp p$pp5/P$$p P 1/(( P 1/0@P8`0D<( P  R!1 0DP0S002P!0S U P: `P Oi 1/Hi  pP`P P 1i  1/ V $i R"0P8P dO 08`F0DP`P3/WK͹D2C5CCۗg͇LʮCO-MP@ P T` ` PP?X P :`  ` P-pW)^xY `  ET& G/F   I ࠧ Z :p  p tPpWp2W P+ PP2 mP`P% P h  1/Vyh JRwP  RP P RPPP> p p `P Qh 1/Kh  P`P P l4h  1/TV )h Q'PPKȫ3ʇR?m? @QAT3ʇH-@`(ۥp\g0 @  40H/pL-M`@P 2/P OP ( P `P `Q ` RP`$ A$^TP 1/ᩥ$PTPE\PX@KpH-@P[QP P  PP g U H8TP!XP HlXP hP `oVdhP `0 Pl`(;pf4 @  40H/<H-P@@ 2/P T`ۖYP H֖Yі(` pf0 P  <0H/̾K-XMb@`PUoM  2/Pp8p. p p `M  ` K⨁(X,pp0 ppppp p$pp6/`p P 1/   P 1/8H`@P8LDTPslP& 1/\P\f(P`堤"f @ 44, 2/44P 1/H8P@PKL 0@p0L`p`3/Kù⯈:/R [?S ?S / /@/R@ [?S ?S / /H- Q[Q Q  H/H- @Q@[Q Q  H/Q/0H-@PP 1/0H%cH- cH% @ cH- @cH%L-@ L%亶%SO-M`PV? T& EG/F!!!!F@w W: P PU @PPT P : @ @ P  PPUPK  P PO- M@pPD0 W :`p0pp`P V S P: 0m0 PP P S- P: 0V0 P P S P:@C Pa @ P KPH-@PQ A #PP`UH* VF"@  o!pr!  P W   P:@o `#UP1U:O-M@Q# PQ[*P P UpXE E Z: PPP P0 qpW( Y P: P  P !R   R 0`V ! pK(PO-M@ppp P`    84P P O @2 @ P4 G 3+ @` P O@ ` P k / M 4 TKT  TT P+ 8X04+ 8804 3/P @ A((@P 1/ PbA((@P 1/ 7PR  $@` P O@ `< P  `+ a@p P O@ pP`F P  /P @ 4 TTV TTP 1/,P4`_O $ p+,, 7(@ P @Z @ P o + ,4`p@ P @A @ P  /0404@7 0008 P94R 8@8T P NX H P. P  P @    R @ @ P  B` R @48 `@ Qk P @PT P P ? P v @D@ P LP BLP` Q@4@Xd@<D@HP PPHP G 0HpK0<`p`3/8KHK㵪)hL0, ,0 0뼶梈d.llI)T8i0H-@P  P  R P_O Q @> P  Q @/ P0K-hM@4, 00@8K jH,RP`VF  2/`p0p1 Ip p F  0 P K(X,pp ppppp p$pp5/Pp P 1/   P 1/HDP@8`<00@P ` 4X 0K** , 8%C,  ~ 4PtQ @4Q  0t<<Q  2/<P P 4P0P8P 2F 08p0D`p`3/8KGKPꬨҔ{ O-lMP@K 0@Gsp`VF  2/`0@1 uH@$@ (@ E  0 p(K(X,@@ @@@@@ @$@@7/$p$@ P 1/((@ P 1/LHDp@8`<00@P _  pP `   @`V C`p4  @`8 4 ; 8   p @4` X4  )<Q  < wP `@ P o+ DQ )`@ P W0P8P `E 08p0D`p`3/@KGKDf9pL-@<`P<` 1/8P8`U P ޜX؜0P0PP Ҝ44PP  ̜ P  $P $pH-M@@PP ^ Z `P ^ p R `4X0b  #ZKL-@@P ^ Q ,4$ 0 Q/"HxG 4,0@GH-   F  ThX////0H-@P ;tPPPP 4dtPPxP .TPdPPhP 'DTPPXP !4PDPPHP $4PP8P P$PP(P PP0H-M@ ᠏1/PU ᔏ!PKK-M p@`^c~ P 03/`Vo "P JcKpL-@Q P`B )000 0   BP  R P t@Q phpPQ F xFPpM--MpP`@T(CQ@ A 0 A 0 8@ ! KO-M-@M $L @` @@1/PT @N pPO` P @ `z P  + j p` P @ҿ `` P  + * ` @TQTP$ P P P PUPU @1/P  (@,gPU @p ,0` p@6/PUS,( `Pz @ "PP@0P 00p 8P4PH$P @Pe @,@0 }PD P08#`@ P O@. @Ἷ P C + (Pp P O@ p@᡿ P e p/p(v  0 pW0 8.(KЍ($  YW \VY[zK-M@$KPaPF PBtT  d G  Kf@ =(p`tG 5 Pp   ,  &pK  z y 2/` xκ g 2/PU Z!P$K6aKTUO4T OH-M@ A1/PU 5!PKH-M@ Pa `P P` p 2/PU "P `K 0 0K1v 0d/ d0Sd/M--M` ͋@ APȋp A pË AP =[ Te 02[ P x@@ p p| e \\0\ 0 D [ 0KQ*L |Qԓē xK--Mp `t Aq A n x @1 A㡋0 P  BP R @ H 0A h(KpL- M ` 0P@ h P@R@ @@@@@  P '@P Kp g o 8ehNpL- MPr @P 0`@ h P@R@ @@@@@  P @P Kp g o 3MO-[Mp8@  L T HX ?P XKL@ @ H@ n|X  Z\HR \R T2/L Q (' \@ xK`@ d@ h@ l@ p@ x@ @Q4@PPF@PUc@  2/P㐐 . \XT@  `X∦(X , 0  $6/`\@\P 1/XXP 1/K` P  |@ 儠 P` XcXXP<\D ` ` @P @@<`P8PbP DLPmX@ @q PE P TP@ K@`P@P $P (P ,P 0P 4P 8P  $ RX P XP@PUV @KX0T@PUK X@ P` 0<`P8PpP D8P DP DQPh 0P DQ% @@<`zQ@O P* 2P`8P D<`M DQ <`E<`P5 0P L<`P. X 0P 0B QP`@L GP DQP 0P Py#Pv#Ps#Pp#1/T@T PpPP 1/᳖W@@@X XKX\*PDp: PP > 0pK0|`p`3/xP* R R 2/ PL Q  %HHPX  TemL K p x W4@ g o  @  6U;ZY``R z K{ KIYK-` p@# P2PU%PU" @`p t P 0P  P rP P @  K-P p,P ` A@`V`p R    RPP pOA ( '  R6,!  Br R4   R(   RP Q QP H`Q LP @PUuP` P!  @pP:P ~W TavW  0PP0P0 (0 R ⼧$  6CB.=fO-OM `P0 @P_O0pCP T PP  PT@ 0Q Q: @ P K t p l Qh d ` X X d, @P ALP P PL@@y+0Q$L.  ᢃP L < P n@ BP@ T@@LXP!T# | P l V `Tay L V @ V 0q  X. [T@ PDL`Hp@ It `?x` p xKl@ h@ !k x T @oBL @pPxPP( P dP+(T7 QdP  Q I P P`Z H` R) R 2/ dP d@W 1/hx` P tjHL Q $+ @| KPQ8P<`j`PUB<  2/P㨠/ \X3<  `X|(X,0  $6/`\TP\ 1/XXP 1/`PT崀㘠DTpPH@HpX  DPPP`T@ ) `& V[P`P @ @@Tp<P  J9eE4h0H-@ 0>    0 PP600 (O0 R N0O-M @O/p0PCP  `Zpxr`//p  00S 0 YO  8 2/ 6 -P t0` p/@/`P  00S 0 U  8 2/ KO-MZ  PR pR h2/L Q <& 4F@`V8  2/`PXP . 4@~Ld\H)ֈՈ؈O-Mp `P>PP \EQ"0  @ OOP0 PP  0p0`V`p 0@ᕜ@OO \  P8 2/ ^3y `p;;`0 0PU 0a S   8 2/X `p??`P  00S 0? U  8 2/ KpjpL-@!P% `V`P rPl$<@@@@@@@@l<}" Q P#`P`P P- srbPu <4<Dp YD?P Cr2? =;9 7P ,rXP rt  P r ?r ;rpP- qe  y5O-OMpHPP@L ` @P FP |PTH 0 D m8 &o q0P 4 P P  Wq P0   Q PI D O `P@B P@KH P'`p'p 0 0@T 0 S  8 2/P  XLpX  R #h` ,P '.K0D0&@< jqPlhd`\XPpP4P\SP`V0 D 2/`P hP 1 $P (P 0  (K2(X0,PP PPPPP P$PP   00 R Q M&Q  Q  @pP:vP #+7 @ P ں BP Q@)H(00(0 R o0H-P@\. \$\(\,\0H-,\@U `pP` 1/׀WP( `(lP,l 1/$\$lU P ÀXὀ P \P 부PP uk밀P 1/O-$MP8`P4  1P$P(  `l@%t `1/pWt !PWS `T 1/0    Pps`P1/@Ts!PT W 1/P @U `   0`X PTpP KW/K-@P> ,O `P ᯹Pp 0 ,@P4 ᝹@;Ap PŸ`,`P ᅹ Ap P᮸`Pp,0PP kAP Pᔸ@KnA` PᆸPK>n/O-M@ <8@D8h@0K  `*  %C $ ,  \tP 4`$c `0pW'  2/pX / < @ '  `@K2(X0,  $6/`<< P 1/@@ P 1/XKH` Pp X D ,L $bH `h0PdQ\T`XPH^!`p p R@ KpQ`Pp$` (` ,` 0` 4` 8` @` QK P `@PNpV , t 00@KI@pW ჴ @ pHP:XPPP =' 0P`KF0DP`P3/4`( (|P 1/ X  `@8D gKh j  Hfr0hg  o  @ \r r rd-JchO--TPV X , 4(PUH\P[UD  `V= T& EG/FF   w  W@:K@@ P! YY PP X P:0P P ᰔK 0 0(o륧Z O--TPV X , B 74(PUH\P[UD  `V= T& EG/FF   w  W@:@@ P! YY PP X P:P P ܓK 0 0n0H-P@ 10SHP  1P  Q   P 4 2/p @ Q Q  P 1/p 0K-M@p 0\h@`(0 0~`]p(/ 0ppP(/ 0e p`8P 1/0  =PPP 1/K//L-M@(Y/ 02KL-@(. 0L$8P///PP//O-M@` 0%\?p(s/ 0pO]`( / 0`P(. 0 p`8P 1/0  PPP 1/KO-M@` 0[?p(/ 0p\`(. 0`P(). 0~ `8P 1/0  TPPP 1/KO-$M@` 0r['?p(. 0=p\`(V. 0/`P(- 0$  p ` 8P 1/0  PPP 1/KO-$M@` 0[>p(c. 0p?\`(- 0`P(r- 00  p  J 8P 1/0  PPP 1/KO-,M@` 0Zl>p(. 0p[`(- 0t`P(- 0i p0p   `$(8P 1/0  9PPP 1/KO-,M@` 0WZ >p(- 0"p[`(;- 0`P(, 0 p0p    `$(8P 1/0  PPP 1/KK-MPp 0Y=@(D- 0@ [p(, 0p`(S, 0 p0@  KO-MP@ 0Yc=`(, 0y`Z@(, 0k@p( , 0` 0` @ |KO-MP@ 0eY=`(, 00`Z@(I, 0"@p(+ 00@  @2KO-$MP@ 0Y<`(i, 0`EZ@(+ 0@p(x+ 0 0 `   @ KO-$MP@ 0X<`(, 0`Y@(+ 0@p(++ 00  `  0  KO-,MP@ 0X5<`(+ 0K`Y@(d+ 0=@p(* 020p  `  0  @ $(GKO-,MP@ 00X;`(~+ 0`ZY@(+ 0@p(* 00p  `  0  @$(KH- M`@`0VP0pPV0p@ PP P 0B BX`8P 1/0 PPP 1/KM-M@p0P `V0P   ` 0B X`p8P 1/ 0SPPP 1/KH- M`@ V0P`p0PV0p@ PP P 0B W`8P 1/0 PPP 1/KH-(M`@ VP0 p$`PV00p@ PP P 0B W`8P 1/0 PPP 1/KH-(M`@ VPp0P V$`00p PP P 0B WW`8P 1/0 PPP 1/KH-0Mp`@ WPPW0 $(,p000 PP P 0B W`8P 1/0 [PPP 1/KM-0M@ p@`pp00V@PP(,`V00p PP P 0B V`8P 1/0 PPP 1/KK-8M@ P`$P0U Pp4PpU0PP0`@  p 0B V`8P 1/0 PPP 1/KO-؇sO-,M@p0Pg 00@  `MQLrq$}`AmIp xI 00 0  000 P$8PKO-$M@LP?q$e}`vA:IpEI 00  0 000 P$8PKO-,M@p@Po2 'OLq$&}p7AH` I 0H0   0     P$8PKL-@P@Q P 1/8(Q P 1/vP p0///0H-@P|0H@H-M@ `(pP Q 1/  2/ PxU P 1/@`P T 1/P 2/WU P 1/KL-@ 88 (Q P 1/ PP @Q P L/L//H/O-4M`@$Y (,00HppPp@p pU p@P 0p嶱p$P  @0H`@ 000 `失p(P ,oK୸@o/H- M  tV РH- M  YV РH- M  V РH- M  cV РH- M  V РH- M  V РH- MQ  U  UP РL-@(~! 0LL-@(U! 0LL--M0 +C@, # H  @(3!  0 @  (! 0vKAL-@(! 0LbL-@(! 0LV/L-M@(! 0FKpL-MP@` ij@(! 0+Kp/0H-M@P(! 0K0L-@( ! 0LH-M@P 9Q` 0)( *yP` (! 0`p(  0P@ xUHP 0 P`( @! 0K 0 0_ iˇfQ Q$1//0S S/$/v0S P 0S$/u10@S P P@o$/ 0Q$ !@"o/ 0Q$ !H"o/0nK-PMP`,P(@(P4P0KppL-M@P` M 0 @P,KppL-M@P` M 0 0KppL-M@P` M 0 0 KppL-MP`@ QMM 0 `KpH-Mp`@ PPyMM 0 `(~ 0pdM 0 KpL-M@P` SM 0 @PKpM-MPp@ `@M  0Ppp(F 0P,M 0PpKpL-M@P` YM 0 @PKpM-MPp@ `FM  0Ppkp(  0bPL 0PpXKpL-M@P` HN 0 @PFKppL-M@P` :N 0 @P4KppL-M@P` +N 0 @P"KppL-M@P` N 0 @PKppL-M@P` N 0 @PKppL-M@P` M 0 @PKppL-M@P` M 0 @PKppL-M@P` M 0 @PKppL-M@P` M 0 @PKppL-M@P` M 0 @PKppL-M@P` M 0 @PKppL-M@P` P 0 @PKppL-M@P` P 0 @PnKppL-M@P` K 0 @P\KppL-M@P` O 0 @PJKppL-M@P` K 0 @P8KppL-M@P` K 0 @P&KppL-M@P` O 0 @PKppL-M@P` K 0 @PKppL-M@P` K 0 @PKppL-MP`@ QsKK 0 `KppL-M@P` `K 0 @PKppL-M@P` K 0 @PKppL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S  @(* 0SV \ ` K 0 0o@Kp@pL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S L@( 0 SV ` J 0 0'@KpH-MP `puAP P  @Q$u!0 CR $R    @0S$ Q S=0@( 0BS6R4B1R"(R0B$RB"BP_ ,(t$ttt QP P(h 0 >P@ @ MJ 0 P`PKP  P0@P@@P ,(p$ppp Q `(( 0} KH  @XLpL-@R P`(  0_ pLppL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S @( 0SV ` QII 0 0@KppL-@R P`( 0 pLppL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S <@(l 0SV ` QBII 0 0@KppL-@R P`(F 0 pLppL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S \@(  0SV ` QH I 0 0M@KppL-@R P`( 09 pLpH-M@P R R$ " 0`V V $`0Qb100 0Q S 2@( 0 o ` H 0 0@KpL-M0@Pu! AR Q 0 Qua$0`CV $R    0S$`Q S  @(c 0SV\ ` Q-HjH 0 0@Kp@pL-M0@Pu! AR Q 0Qu!$0` FR $R  00 0`QV ` Q G $@ (  0H 0 0[KppL-M0@Pu! AR Q 0Qu!$0` FR $R  00 0`QV ` Q G $@ !( 0G 0 0KpH-M@P R R$ " 0`V V $`0Qb100 0Q S @( 0o R ` YG 0 0@K@H-MP@ R R$ " 0`V V $`Qb10Q ` #G 0 @P@(= 0KH-MP@ R R$ " 0`V V $`Qb10Q ` F 0 @P&@( 0WKH-M@P R R$ " 0`V V $`0Qb100 0Q S @( 0 o ` F 0 0@KH-M@P R R$ " 0`V V $`0Qb100 0Q S R@( 0 o ` cF 0 0@KN-M@P R R$ Ÿ( ,0pW W$`b0Q S  0@(f 00Qo  ` PF 0 0@K@H-MP@ R R$ ?"p`V V$`Q  0@($ 0 bQ ` F 0 @PNKH-MP@ R R$ ?"p`V V$`Q  &0'@( 0 bQ ` E 0 @PKN-M@P R R$ ( ,p0`V V$`Ɵ(`,0Q S f26@ FQ1&(  00Q o ` E 0 0@KM-M@P R R$(,00 pW W$`b S R 0f8&# 0F@S1#16(0` 0 So ` VE 0 0@KM-M@P R R$(,00 pW W$`b S R pFQ68& `fW@?&W(Q' 0 So ` E 0 0<@K0H-M@PP E0 @'@K00H-M@PP rE0 @@K00H-MP@ QEE0 PK00H-MP@ Q9E$E0 PK00H-M@P E0 @K00H-M@P E0 @K00H-M@P sE0 @K00H-M@P gE0 @K00H-M@P [E0 @K00H-M@P OE0 @K00H-M@P FE0 @vK00H-M@P >E0 @fK00H-M@P 1E0 @VK00H-M@P %E0 @FK00H-M@P E0 @6K00H-M@P E0 @&K00H-M@P E0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @K00H-M@P D0 @vK00H-M@P D0 @fK0//0H-M@P J0 @RK00H-M@P C0 @BK00H-M@P CC0 @2K00H-M@P C0 @"K00H-M@P 'C0 @K00H-M@P C0 @K00H-M@P C0 @K00H-M@P C0 @K00H-M@P 2C0 @K00H-M@P %C0 @K00H-M@P C0 @K00H-M@P B0 @K00H-M@P B0 @K00H-M@P B0 @K00H-M@P E 0 @qK00H-M@P E 0 @`K00H-M@P E 0 @OK00H-M@P E 0 @>K00H-M@P 4B0 @.K0pL-M@P( 0` A 0 PKpH-M@P( `Q  0pA 0 0pA 0 pPK0H-M@P  E 0 @K00H-M@P E 0 @K00H-M@P D 0 @K0pL-M@P(Q 0` 7A 0 PKpqK-M@(`p3 0 Pv`*EHP WPE 0 rK 0 07O'%M-Mqp`@ PEHP  RPUE 0 `GK 0 0 O5'ꉇ%pL-Mq@P` H 0 @P)KpH-MP@`( 0p |F0 @ KH-M`@Pp hF0 P` @KH-M`B@Pp SF0 P` @KM-M`Pp(| 0@ 5F0 @P KpL-M@P` "F0@P KppL-M@P` G0@P KppL-Mq@P` G0@P KppL-Mq@P` H0@P sKppL-Mq@P` 'H0@P ^KppL-Mq@P` @H0@P IKppL-Mq@P` XH0@P 4KppL-Mq@P` qH0@P KppL-Mq@P` tG  0@P  KpM-MP`>p( 0p@( 0@P HE0 @p K0H-M@P(* 0 @K00H-M@P(m0 @K0R/O-\M@`0@,,@p8@4P@@D@< L@P@Hh@@@@8@@ @@ $@(@ jh@@; 908 + 9 ( $0K p $p aY 峾48sr$8jL@KO/O-M@ X p` @5 @iPPUd @T  R  2! RP  Q[`PT PP@ PP*PP @@P  Q P @+PpW [p @pP $$P [`` @P Q  R  2! RP  Q P  Q2P0 P P  R  R X[K/0H-P@: 0HнpL-`P @X 0pLLqr qr qr s0 pL-Mqr @s0P`P@ `AKpH-Mqr s0@ P`p`P@ pbKH- Mq pr s0@P`pp @P`pKK-(Mq(pr @s0 pq$ `P `PKO-,Mq$@r s0aQ0p@@,( (pp$ ppKO-DMq,`r Ds0<@Hp$`帡a@84@p0p<4@$A8(0尒,弁(pPp PPpKM-(MPpPP @ P`PP  P$PwfPPP IG 0 G  KM-(MPpPP @ P`PP  P$P?fPPP  0 ȼ d c KO-Mp ` 0fX P @ Z 0K R/R R/H- ($  J  o/9;y R/R R/H- ($  J$ o/xH-@`PePPPp`V pp`QQ*pQ ``pP  e  DP$$L-@@H-p 0P* `P@U@2!PU`Q 0R: R 0 R  0`V ` 0PU R0$  B$ //P///O- Mp@p`pP@ p D p*pp@eVpop=  @`Y P PP*Q Q * PQ  P PpWXp`pPD@TKL-@  }O-M@Tw QV  R  2! RPI  QFXB pP8 W7 Z ` ` PP * `P  ` `PUOXP PP`kXP @P 0 R@ 0@ RT  Y r ``pQ 0 R  20! RS W010D0P@P @@W*Q Q*@Q @`VW`p `P@PP P`Y 0` R 0 RY`VK  PpX  0@T2 !Q0R Q@T  Q2 !Q@R Q0 0ACRQ `Q  0S`  `0SVKH-   THQ So0H-Q @P@T0H-   =H n Q/T/Q/0H-@PP 2W0HQ/0H-@P0HH-MQ P@P T KQ  2/1/, 2/1/PK ` 2/1/pp 2/1/pP 2/1/@KK-P `@FP'*A AA!.rPP P@*VpF AV  ZY@ K@pH- Q Q Q D< v4 v  vG곅#kH- Q Q QL vH v( v  TGQSkL-QDq R R R$   v vT T T\ }vX xv8 sv($  Gֲ $ikj$/$/ @/0H- M0Pp t 0Q0PPTPP  J P AoRK00H- M0Pp t 0Q0PPTPP  J P PQPK00H-M@s2P J 2PT2t2K0K-M@q`pP P P9  u'Tp puu uxQ Q Q  l uVy ` P u;J K$  ^FW~y{g$/0 Q% /0H-M0S#%0S[ $0= RQ= RQ= RQ= RQ= RQ= RQ= RQ= RQ= ! "F0P$(,@PP@U / S S  0 i  0 <d  ,TK0f07 QR</QRd/QR/QR/QR/QR/QR,/QRT/H-   E/dM-MP"`@V o"Fo RQq6$Q  q-y $ /oV" R V R rg $ /oV"pWpw Y Rp w\P RQ $ /oV"=  R R r t: R r2 $ /o"QQq#8<`0 0 8   ?P$$0`K Rp w<KK-MP"X o X !QquoQqmg)oX1 Q XQqUUYX) UYX, UYX/ UYX2 U"YX5 U=#YX:Qq5/Q rT&Qq$QqQq4Qq lQqK8p`_\0 @0 8  @剄( $$ (p,`0KO 0 S@o"/ 0 S/Q/L-@90L60L-@ިp {sQ Q Q H@ ms8 hs  DN=~?^t$/$/$/$/$/$/@o/P//pL-M`P@V s 4s# /sᏸKpL-@, "so s}~0H-@//P/0H/K-P sbox r@ W PẨ W @ `rPPᬨYK-@ W Pᛨ W 8 `rPP፨Y0H-@~/j/Px/0Hc/0 R 0S/Ao/0 R 0S/Q/0H-@PO/;/9/PG/0H2/0H-@޷,P Pvr׷ qrҷ00/Q      /o/ $R/ /Q/Q/  4S P,Q/UUE@33C @ @ /0/@o/P/.M-p@W t rW \PX`` qUp q;L#0 R /@o  /0 R/Q/0H-@.|.P.0Hu.O-M@  U `~ U Ԑ   pq``pZ qp@W  qW lPh`` qUp$ q@K'~{Kc/H- Q Q 8 lq0 gq  B9~;V$/$/$/$ *Q( /( *Q$ /@o/0H-@.-P-0H-0H-@Pᒶ( +q匶 %q0u~$/H-M`@P`[P t pppAW P 1/!Ks </$/H/l//////Q/Z/c//u/~// /L-M@AQ  pK$o\0x 0 uKKK-KKKK6KL-M@AQ  l|K$0\h0 0 @ @3KKK?KH-MQ@PT U#T U T U T!QqQq Qq DQq|K8[X0 0   8 ($$00KqL-MQ @TK5 K,[H0 0  8 㱀$@KLsL-M@DQ   l(,~[0 0  8 む|$@K KHtKKGrL-M@$H[00  0x @MKz0H-MP0@1[L0  0   x 5$P(@K0%wL-M@$[40  0  8  @KL-MQ @QK$Z00  0  x K/L-M@AQ   p&$Z0  0   x KqK4X |zKK0H-MP@R 0Z0 0 | 2$@(PK0T!(4@LXd $ TK0rL-M@,VZD0 0 3[$@KmL-M@,:ZH0 0 | >$@Kum0H-M8P@ZH0 0 |  BK0 XsH- - M  ,YH0 | 0 KrH- - M0+C8 KYH0 | 0~ K%rL-M@,Y@D0 | 0~$@K ;$U1 0 # ZKcK4#| $U0  0   x zKqKXzKK  ?:ԇlӇ'ԇ~6pL-`@PKU`P@ pL-M@(>UH0 0 | <Bz$@KӇZ$/P Q/QP /H-   9~5 0 S$$@o"/L-@$%L%H-p`@Pg (i 0H/L- ,@ i$% Li҇H-   9~4L- ,@ h$% Lh8҇tH-   9e~g4L- ,@ h$% LhчL-@%LO-$M?p`=0 @``` pppy;? 0$p pp`y?x $0H` ``pwyTP?x H0l` ``phy x l` ``p>0Yyx p ppp>0Jy x ` ``p>0;yx p ``pX>0,yPx p ``p$>0y  Qp `pp=0y 8 DZp `pp=0x 4x h`c` ``p|=0xt 5| p p``H=0x@ 6 up `p`=0x %x ~p `p`<0x 'x pp` pp`<0x 8x p p` `p`p<0xh x @` ```<\P0x0 x 0d`@ ```x x 0`` ```qx x 0-`@ ```cx x 0`` ```RxH x 0`` ```Bx x 0`` ```2x x 0<`6` ```"x  `pp ``pdZP0xX  0pp ``px  0p ``pw  0?pp ``pw x p ``xYP0w8`x \ 0<p ``wFpx  0<dp ``wx 0dp ``wKx 0p ``wPx 0p ``xw x 0p ``fw(x 0,p ``TwUx 0,Tp ``Bwx#@x T|p `p`WP0.w#x 0|Z@p `p` w#x 0@p `p`w#x 0` `p`w\#x 0 @p `p`v$#x 0 c`p `p`v&x 0T` `p`UP0v&x 0T|xf` `p`vpx |v` ``p8 < 8 0Ppp `ppt."< &8 t 8 0Ppp `pptZ⠚zt  8 8 0Ppp `ppttT .!z7 pp  `8 ppP娃0Zt [ 7  8 0Ppp `pp>t --"L{ 7 T 8 0Ppp `pp%tx|[‛儫T 7 8 0Ppp `pp t."{ 7 8 0Ppp `pps4 [{p7 8 0Ppp `pps .!,|W7 4 8 0Ppp `ppsp X \\`d|4=7 l 8 0Ppp `pps  .!|l$7 8 0Ppp `pps" \М| 7 8 0Ppp `ppssL # ," }  pp8 p ``p]P0]s ʢ8 0 5 8ppp ``pLs 峏8 @ dl ppp ``p\P08st 8 0l  ppp ``p&s0 8 0  ppp ``ps 8 0  ppp ``ps 8 0 ppp ``prl 8 0@Hppp ``pr( 8 0Htlppp ``pr 8 0tppp ``pr "| p p``p0rd P"| 0^ p``r$ "| 0_P p``r "| 0@_DP p``xr "| 0Dlh_P p``fr` "| 0l_P p``Tr "| 0_P p``Dr"| 0PP p``3r "| 0 P p``"r`| 04P$ p``(0r$| 0XP p``r$| 0|P p``q$| 0P p``qt2| Pp`` p``@0q2`| `0Pp`` p``q2`| p0$Qp`` p``qL`H| 20|TQp`` p``q|`x2| 0,Qp`` p``~q`| 20Qp`` p``iq`| 20Qp`` p``Tq `| 7<Rp p``0=q7| 08`I p p``-qIlR| dp)``` p``匄0q)| 0`Rp`` p``q<)| 0`RA` p``p)| 0`R`` p``p)| 0`SA` p``pp)| 0M `HSA` p``p,)| 0l`tS`` p``p)| 0`SA` p``p)| 0`SA` p``p`)| 0` SA` p``vp)| 0` $TA` p``dp)| 0H` PTA` p``Rp)| 0t` |TA` p``@pP)| 0`TA` p``.p `K??h??>>P>>===x=P=,==<<<̴l<h<D< <;;;;l;t<;;::::\:(:999d9d909(99888`8888777p7T7H-   /٩~ @o//H-   /둩~ H-   /i~k H-   /A~C H-   /~ H-   |/~ H-   r/ɨ~ H-   h/롨~ H-   ^/y~{ H-   T/Q~S H-   J/)~+ H-   @/~ H-   6/٧~ H-   ,/뱧~ H-   "/뉧~ H-   /a~c H-   /9~; H-   /~ H-   .~ H-   .~ H-   .뙦~ H-   .q~s H-   .I~K H-   .!~# H-   .~H-   .ѥ~H-   .멥~H-   .끥~H-   .Y~[H-   .1~30 R$ $0S/%%Ao/0H-%@Pw$u0HrH-p`@P ] 0H/L- ,@ ] L]ؤ~H-   A.~H-   7.ݣ~H-   -.뵣~H-   #.덣~H-   .e~gH-   .=~?H-   .~H-   -~H-   -Ţ~H-   -띢~H-   -u~wH-   -M~OH-   -%~'H-   -~H-   -ա~ 0 S$$@o"/$ H-p`@P( \ 0H/L- p@ \$Q Q H D \8 L\  o-묡e~`~H-   a-녠~H-   W-]~_H-   M-5~7H-   C- ~H-   9-~H-   /-뽟~H-   %-땟~/H-   -i~kH-   -A~CH-   -~H-   ,~H-   ,ɞ~0H- M @0S"$P$ (,@0*00q0Pr@S@@ RQQ  0 P AoBK0pL-M(0$`@`sP 0 PVŻvKpH-p`@P( [ 0H/L-M 8@ [$@@ KL[ꨝ~H-   r,ɜ~H-   h,로~H-   ^,y~{H-   T,Q~SH-   J,)~+H-   @,~H-   6,ٛ~H-   ,,뱛~H-   ",뉛~H-   ,a~cH-   ,9~;H-   ,~H-   +~H-   +~H-   +뙚~H-   +q~sH-   +I~KH-   +!~#H-   +~H-   +љ~H-   +멙~H-   +끙~H-   +Y~[H-   +1~3 0 S$$@o"/L-@$LzH-p`@P Z 0H/L- ,@ Z$  LZ4~H-   I+%~'H-   ?+~H-   5+՗~H-   ++뭗~H-   !+녗~H-   +]~_H-   +5~7H-   + ~H-   *~H-   *뽖~H-   *땖~ 0 S$$@o"/$ H-p`@PX Z 0H/L- ,@ Z$f LZl~H-   *뙕~H-   *q~sH-   *I~KH-   *!~#H-   ~*~H-   t*є~H-   j*메~H-   `*끔~H-   V*Y~[H-   L*1~3H-   B* ~ H-   8*~H-   .*빓~H-   $*둓~ 0 S$$@o"/$ H-p`@P XY 0H/pL-M tP GY(`@V | =Y# 8Y$ᘞ 0YKpd\~H-   )I~KH-   )!~#H-   )~H-   )ё~H-   )멑~H-   )끑~H-   )Y~[H-   )1~3 0 S$$@o"/L-@$LzH-p`@P X 0H/L- ,@ X$ U LX4~H-   I)%~'H-   ?)~H-   5)Տ~ 0 S$$@o"/L-@$7L#H-p`@P eX 0H/M- P UX$p@W  LXW tPp`` ?XUp, 5X@$ M.X꜏錇K3X~H-   (9~;H-   (~H-   (~H-   (~H-   (뙍~H-   (q~sH-   (I~KH-   (!~#H-   ~(~H-   t(ь~H-   j(멌~H-   `(끌~H-   V(Y~[H-   L(1~3H-   B( ~ 0 S$$@o"/pL-($@PB.`<(pL%H-p`@P gW 0H/0H- \@ WW$Pᷜ< PW(屜( JW 0HDWꤋ U~~H-   '뙊~ 0 S"! o"/L-"@LH-p`@PQ W 0H/L- ,@ W" LVP~H-   '}~ 0 S$$@o"/L-@$LH-p`@P V 0H/L- ,@ V$ LVD~O-M-M@P P9HP dW `Z@TH `Lpw   B 2/p 2Lp w0 P 5/P u Q Q  P 1/p W(KЍH-   &~ 0 S"! o"/L-"@LH-p`@P[ V 0H/L- 0@ V 0+S LVx~H-   &롅~ 0S/$$L-@$LH-p`@P U 0H/L- ,@ U$l LUx~H-   i&륄~ 0 S$$@o"/L-@$kLWH-p`@P U 0H/L-M <@ U$ UKh~H-   !&녃~0 R ( (0S$ $0S/,,Ao/pL-@$P(`,`pLH-p`@P{ z~H-   '${~ބ0 R$ $0S/((Ao/pL-($@P#` pLH-p`@P HS 0H/L- ,@ 8S$- L1S({d~H-   #Uz~W݄ 0S/$$GL-@$uLH-p`@PH  S 0H/L- ,@ R$ LR,zh~L-@q < REO( R  RzzYC~H-  0\ SR  R , oL-@0\ @ST @T ,  pL-PQ@@\H`^ BPPpL;L-@Q$$8L`tph X  H 8& (1 _RRyXyNyIyPycypL-M@PP` `GR  BR`v | ;RNh P 1RP PU 8 'RoKp~'xVx@~~~O-,`p@$P T &@DDP}*IA!.rPP Pq* P|1 D`T ? @U 1$`FpWP;,`@P5pP T '@DDP?*IA!.rPP P2*>1PD`T  @Z L1,`( pW` P  D0A  P@X /1K  "]s~_քO-4M`p@ᴀ 0h 2iP @8 0  @@ 00  4P p| p0@$ (  ,0 vKO-4MP($0@h@h PQB p0PP U +@EDP*JQA!.rPP PP*`00`D pT @K0PS 0 0pX U $`-P0 U@EDP*JA!.rPP P*PQ00pDP$T @0PS \0` $@ U*@p U(*EHPj*J0A!.rPPX P]* 00pHPAX 0P S +0 U #@EDP?* JB1.sPP4 P3*/`DPT PW 0p0E C1P0   $0@W /Kppt`\      /pL-P`U @ 2/VpH-@PP P 0@CP'*ACarA!/rPPp ;Q0 PU pAEA!5S @ppL-@ R 0S 0@S P R PP PBa  ppL-MP@ ``*`H0[`@PV  2/UKp 0 08 k~ΆAnpL-MP@ ``*`H0[`@PV  2/UKp 0 0 Ak~͆mpL-P 00*[`@PV  2/Up 0 0j~j͆m0H-M@,PT] @ 0^ K08M-Mp@ p jCPP9`p 0  ZKW (P%pp JCPP `P 0  :(KQ QIG~P K`` "CPP ( 0 ``KpL-MP C@P Kp`  0  KppL-M@   R   0+SKpL @0S! L0S9 P0SQ H0Si D0S BPP}`0 KpPk@ BPP `0 KpPPL BPP `0 KpP5P wBPP `}0 gKpPH \BPP `b0 LKpP KpD ?BPP `E0 /KpM-M@# P`:P@l 0pVPP G 0+S`0 ppKP#0l?C pVPP  `0+S 0 ppKl 0VpP K 00 KpL-M@P Kp@ APP ` 0  KppL-M@P KpL APP ` 0  KppL-M@P KpP uAPP `{ 0  eKppL-M@P KpH SAPP `Y 0  CKppL-M@P KpD 1APP `7 0  !KpH-M@P Kl 0pUPP  0+S`0 ppK H-M@P K0l?C pUPP  `0+S0 ppKM-MplP`U@P K 00 KM-M@Q Q:PCl 0paUPP K 0+S`i0 ppKP&0l?C pCUPP  `0+SK0 pptKl 0{V 0'UPP K 0- 0  UK M-M@Q Q:PCl 0pTPP K 0+S`0 pp.KP&0l?C pTPP  `0+S0 ppKl@ 0{V 0TPP K 0 0  K M-P @?Q1 P )0p@GP* BGrB1/sPPp| >7 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPpJ  7 HV !pB F B" 6 S  !@Q1 P )0p@GPn* BGrB1/sPPp 6 HV !pB F B" 6 S  !@Q1 P )0p@GP9* BGrB1/sPPp 6 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp j6 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp 56 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPpP 6 HV !pB F B" 6 S  !@Q1 P )0p@GPe* BGrB1/sPPp 5 HV !pB F B" 6 S  !@Q1 P )0p@GP0* BGrB1/sPPp 5 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp a5 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp ,5 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPpV 4 HV !pB F B" 6 S  !@Q1 P )0p@GP\* BGrB1/sPPp$ 4 HV !pB F B" 6 S  !@Q1 P )0p@GP'* BGrB1/sPPp 4 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp X4 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp #4 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp\ 3 HV !pB F B" 6 S  !@Q1 P )0p@GPS* BGrB1/sPPp* 3 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp 3 HV !pB F B" 6 S  !@ Q1 P )0p@GP* BGrB1/sPPp O3  HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp 3 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPpb 2 HV !pB F B" 6 S  !@Q1 P )0p@GPJ* BGrB1/sPPp0 2 HV !pB F B" 6 S  !@Q1 P )0p@GP* BGrB1/sPPp {2 HV !pB F B" 6 S  !@ Q1 P )0p@GP* BGrB1/sPPp F2  HV !pB F B" 6 S  !@$Q1 P )0p@GP* BGrB1/sPPp 2$ HV !pB F B" 6 S  !@(Q2 P 0p@GPv* BGrB1/sPPph 1(`( U `Eq`FpG&`5`S 00a` pppppKp}ppppEpwppp p?pqpppp9pkpppp3peppL-M@P Kp(MK] 9PP ` 0  KppL-M@P Kp(N%] 9PP ` 0  KppL-M@P Kp0pf 9PP `0 KppL-M@P Kp(a\ w9PP `} 0  gKppL-M@P Kp U9PP `[ 0  EKppL-M@P KpT 39PP `9 0  #KppL-M@P Kp` 9PP ` 0  KppL-M@P KpN 8PP ` 0  KppL-M@P KpB 8PP ` 0  KppL-M@P Kp 8PP ` 0  KppL-M@P Kp 8PP ` 0  yKppL-M@P Kp g8PP `m 0  WKpH-M@P K0l?K pMPP  `0+S 0 pp3KH-M@ P K0l?G pLPP  0+S`0 pp KpL-M@P Kp P`0 ``KpH-M@P K`[/p ppp 0 ppKL-@P0<@ 8 (  bC>>==pL-P@P0<   >C 9C4`Pp 1C -C?h &C?T  C?8 C0x?p=p=g=`=~=<<M-P.`T  0 R0000W  0 0W!  .`L-0 \\  0@T0 Q:M- r! 0 PUp`p`apF` ppGw@ T *w@`AD$ATPU:  B˯ 8~ 0H-@PE0L-@)0 @\\  @0Q@0 T:P 1(,/0 //H-   6~ R/ P0 s0#  O- M@ 0P-pᴀU @ ᴀ R 8㴀ᴁ-` - `0p S     ! $(,04K8!QAQAAQ Q Q#/ARS0,"Q) '" AR$:! AR :!Q  AR0HzQ Q/>#QʽQ #Q /?#Q/#Q/H-  r  0S @0 S:\0 0 S:K-Mp`tHt >TQ @ 0  ` T < >D >$  nG,1,,,\,`,(~M,}/$/$/! o/ !/0H-@dPP^0HI0H-P@@ >( > >0**}$/$//O-M`@`P p[P PPGU PP 1/1/P pPK@7(r q Q RK0!(LpQ/Q3Q/QH*Q2 Q(/QQh/QQQ(Qh QHQQ/H-   /Y%~[A Q4 (hHx8X///////x/h//H-   PA$~C/$/H/l//////Q/Z/c//u/~// ////-////6////?//8/\/ ////Q/4/X/|/Z/// /c/T/x// ///,/u/t///~//(/L///// /$/H/l//////D/h//////- /d//////<///////8/\/6 /////4/X/|//// //T/x//? ///,/P/t/////(/L/p//// /$/H/l///// /D/h//////Q /d//////</`//////8/\/Z /////4/X/|//// /0/T/x//c ///,/P/t/////(/L/p//// /$/H/l///// /D/h//////u /d//////</`//////8/\/~ /////4/X/|//// /0/T/ x1   Q/ 1   / - / 1   / 2   Q/ ,2   / P2   Q/ t2   / 2   Q/ 2   / 2   / 3   / (3   Q/ L3   / p3   Q/ 3   / 3   / 3   Q/  + /$/H/l/// q Q RK0!(LpQX/Q3Q/Q*Q2 Q/Q8Q/QxQXQQ QQQx/H-   /5~7u q Q RK0!(HhQ /Q4Q /Q ,Q4 Q* /Q`"Q /QQ /Q% /Q / Q Q /Q/H-   n /~s q Q RK0!(LpQ/Q03Q/Qp*Q2 QP/QQ/QQQPQ QpQQ/H-    0/=~?r0H-MQ@PT& UT& UT& UT& UT& UT& 0$0 0 ` [ Il$P(@K08 h (K0!0H-M@ A RL0!||x,L,,,,LT PT82T+ PTh*' Q0#0 0 ` [H|$P(@K0T PT(K0  j ~o@ q Q R0!(\,`Q (/Q /Q /Q 8/Q /Q /Q /Q X/Q /Q| H/P/x//0/X/ //8/`/`/// /h// /H/p/7 /(/P/ ///// /p// /H-   Xa~ckA Q2 (dHt8X///2 // / ////H-   a~cj/P/t//L/p/L-M@,"D0 0 ZG$@KK q QR R RQ/QQ /QXQ0/Q/H-   ~hQ Qp/QH/H-   /~hq QR R RQ/Q(Q/QQ/Q/H-   o~gq QR R RQ/QQ/Q`Q8/Q/H-   A~gq QR R RQP/Q`/Q/Q /Q0/Q /H-   A~Cfq QR R RQx/QQ8/QHQX/Qh/H-   ~eq QR R RQ/QQ`/QpQ /Q/H-   ~dq QR R RQ/QQ/QQ/Q/H-   ~dq QR R RQ/Q /Q/Q / Q/Q/H-   W]~_c/// q QR0! 0@Q QQQ /H-   $}bAQ <, //8//H-   }b q QR0!$4DQA / QQQ/H-   e}ga q QR0! 0@Q( QQQ/H-   }` q QR0! 0@QP Q@Q0Q /H-   -}/` q QR0! 0@Qx QhQXQH/H-   d}_ q QR0! 0@Q QQQp/H-   =}^ q QR0! 0@Q QQQ/H-   Y}[^ q QR0! 0DQ QQF /Q(/H-   }] (7   Q/L-M@,H0 0 | qC$@KEpL-M@,L0 0 |  C$@KL-M@,H0 0 | C$@KYL-M@,L0 0 |  C$@K L-M@,H0 0 | ~C$@Km~L-M@,cL0 0 |  fC$@K ~L-M@,EH0 0 | IC$@K}L-M@,(L0 0 |  +C$@K4}L-M@, H0 0 | C$@K|L-M@,H0 0 | B$@KFL|L-M@,H0 0 | B$@K{L-M@,H0 0 | B$@KSd{L-M@,H0 0 | B$@KzL-M@,yH0 0 | !}B$@K|zL-M@,\H0 0 | `B$@KzL-M@,?H0 0 | "CB$@KyL-M@,"H0 0 | 1&B$@K1 ypL-M`P@ 0, 0 L0 `0 |  `A$@KpH-   }U 0 S$ $0(( #o"/pL-($@P`pLH-p`@P 0 0H/0H- l@ 0X $P(@0,v< 0&v( 0 0H0ݺ}.~H-   [m}oS 0 S$$@o"/L-@$]LIH-p`@Pʽ 0 0H/0H- D@ {0$@PᲽ s0 0Hn04X-~L-@ẽLO-M?P0 @ +A  $   ?0AA $ H T?0 AL| H l  ?0@| l  >0@|   >0@B|   >0@|%}   P>0@H    >0@ |   Q =0@  D Z =0@  h c =0@x |   P=0u@H |  u  =0g@ '|  ~ <0X@ J|   <0I@ |   <0;@ )| @  T<0,@L *| d   <0@ |   ;0@ E  - ;0@    ;0?    T;0?L     ;0? F| < 6 :0? | `  :0? |   :0?| |   P:0?H &}  ? :0? G   90x? |  8 90h?  8 \ t90X?l !| \  D90J?< "|   90;? +|   80+?K|   80?#|  Q p80 ?hI|  4 <80>4-| 4 X 80>.| X | 70>| |Z 70>o|  X70>Pv|  70>w|   60>^|  c 60>y| 0T l60z>dz| Tx 060i>({| x 50X>}|   50H>~|  507>x|  D50&><| , P50>| ,u P40>| Pt P40=| t PX40=Pa|  40=_| ~ 30=|  30=| ( l30=dc| (L 030=(| L 20=| p 20n=|  20]=x|  D20L=<|    20<=`}U4}"}|||Z|(t|T|4||_{4{{{|{`{O@{" {{zznz;z dzDz$zszAy yyxyp\y=؆h؆h׆h׆hn׆`hE׆080| `  `>08h1| `  >082} a  >083| (a  ?08M| La  @?0s8H| pa |?0b8| a ?0Q8| a  ?0A8f| a  ?018g|   ?0!8$b|  |?08t| Hb @?078| lb ?07| pb P>07| b P>07i| b PP>07Hr| ` P >07|  s`` P=07 | Ds`` P=07 | hs P=0r7H | s =0a7 | s <0P7 r| s <0?7 | s `<0.7X | t $<07 | Q  ;0 7 Qdt}  s ;06 | t  x;06p | t  @;068 } t  ;06 } t  :06 } u  :06 }  4p  :00 ;| Xp ;00 ?| |p@ L;00T A| p ;00 B| p ;0o0 C| p <0^0 |  q <<0M0D E| 0q x<0<0 F| Tq <0+0 | xq <00 | q ,=0 04 |   d=0/l q| q =0/ | r =0/ r| ,r >0/$| Pr X>0/`s| tr >0/m| r >0/n| r  ?0/=| r H?0p/PW| s ?0_/| (s ?0N/| Ls ?0=/?| ps ?0,/_| s |?0/t]| s @?0 /8>| s ?0.^|   >0. $t{ P  >0.Cx Ht  PX>0.P{ lt  P$>0.{ t  P=0. x Pt =0. ip tPP t0.h jp  vp% PP (=0r. %p `$pP(U <0]. j` LpPU`` <0I. ip 0tpxU`` 6.D vjp pU`` <0!. p pU`` 帋0 . j` pU`` l;0-d ip pV`` $;0- p p< `j P :0- p 0 `dPhVpp - j` `Vp `p <0-0 ip `Vpp 90- bjp `Vpp 90{- p `Wpbp X90f-P j` 0,`0Wpbp R- ip T`XWp` 80>-p p| `jS x80)-pp cPWpp (80- j` 0`Wpcp ,ip `Wpp 70,bjp ` Xpp H70,@p D`HXpbp 60,j` 0l`pXpbp ,ip `Xp` h60,`p p `jS 60,p cPXpp 50n,j` 0 `Ypcp Z,xip 4 `8Ypp 850F,0ojp \ ``Ypp 401,p  `Ypop 40,j` 0 `Ypop ,Lip  `Yp`  40+p p * `j_ 30+*p o$ P(Zpp p30+hj` 0L `PZpop +ip t `xZp` 20+tjp  pZ`` 20+p  pZ`` H20x+@j` 0 pZ`` e+ip  p[`` 10P+p p<  `jU궸QPRP#P|PɷTP,Po PHO!OOtOp@O)O絆NN,N鴆LNN3M䳆MMWLM㲆MLMLLPLLLKKOKTKKJJJmPJ$JIlI%I\Is(I$H٫HH'\Hت,HGG穆G覆DDWLD DCUCCPCP CBBBTB$B{A AAy`A?4A@@@T@ @???l?H?ם?>>>|>X>'(>>===l={<==<<<|<˘L<$<<;;; D10*Lp ed Ph[pp 10z*j`  `[pep 10e*ip 0 `[pp R*0`jp  `[pp t20=*|p  `\p` 20(*j` p, 㰀0\``  30*ip T pX\`` T0)`jp p| RP ` 30)p b P\pp 30)j`  `\pbp <40)Dip 0 `\p` )wjp  p ]`` Є0)p D pH]`` 50)$j` l pp]`` d50n)lip  p]`` 50Z)jp 0p WP ` G)p g P]pp D601)Lj`  `^ 60)8~[` 4` VP0 )`\` [0h~ (n[` D0 ( p[p` 0n (` [0n ( ` [04(o (PkpLh ppXo 娈0( h 0 P| kpp x( oh 0 k e(H  h 0ok S(  h o 90@( h 0P ` /( kh 0DPH` (P  h 0 Plp`k  (  h 0`k '  h 0 k ' `h   \;0'd h 0 Pa ' kh 04P8a '  h 0\`ak '(  h 0ak 'l  h 0ak |'  h a <0i' h 0 ``2  X'4 2h 0$`(bk F'x Pkh 0LPPb 4' h 0txbk "'h 0bk 'Dh b >0&h 0PbP &kh 0Pc & h 0p< k &Thch 0dk &h 0ck &h c ?0&h 0pc ~&h 0Pdk j&`h 0,0dkPP V&Ah 0TXdkPP B&h 0| kPP /&dh PP 8>0&0ph 0pdPP & kh 0pdPP % h 0 ekPP %P h 0DHekPP % h 0lpekPP % h ePP t<0%l h 0`` PP %$ h 0`ekPP z% pkh 0 pfPP f% h 048fkPP R%@ h 0\`fkPP >% h fPP :0)% h 0pfPP %` kh 0pfPP % pkh 0p7 PP $ 7(gh 0$kPP $ h 0LPgkPP $4 h txgPP 80$h 0pgPP $kh 0pgPP $Xpkh 0pgPP x$ Bh 0hkPP d$h 0< kPP Q$xhhh dPP 070;$(h 0ph p )$p pph VP0$p 0hpp $Pp 0 㰀ipp #p 0, 0ipp #p 0T Xipp #lp 0|  p` #$p p `i TP0#p 0 㰀ipp #p 0 ipp t#<p 0  jp `#ph D Hj SP0K#h 0l pj :#dh 0p j &#mh    RP0#jh 0 m #h 0p km "@mh 04 8k "`[` \  ā0"b`  `[ |10"t`  `[b 810"0`  `[bgT;0;;::t:;<: :999T9[9888`848{777x7D77666X6(65Í55>l5<5 5444gD443383`303j3222LT2 ,2Ї2000w///l\/44/ /Ã...d.x8.; .-h-,-d-<--G, 00%"`  ` R 00"(l` $ PkR 810!@` 0L PPl !S` t Pxl 10!`  PlS 20!`  Pl @20!H`  Pl 20!k`  Pm 20!` 0< P  !Rhm` d P D30n!L`  PmR 30Z!`  PmR 30G!`  PmR 404!k` PnR X40!!`` ,P0n 40!S` TPXn 40 ` 0|P S  $n` P `50 h` Pn 50 k` Pn 50 ` P o ?0 _` DPHo ?0 ` lPpo_ `?0{ X` Po_ ?0h ` 0P _ W o` Pk_ >0C `  P` T>01 L_` 4P8` >0 ` \P`` =0 ` 㰀` =0 ` 㰀` L=0D Pk` 㰀  =0 ` 㰀A  <0 Ac(Q` $` <0 ` L`PQc D<0< n` t`xQc <0 ` `aS ;0w ` PaS x0cl ` Pa 4;0Q, S` Pb :0> ` <P@bS :0+ n` dPhbS h:0` ` PbS $:0 ` 0PbS  ` Pb 90 _` Pc \90T ` ,P0c_ 90 n` TPXc_ 80` |Pc_ 80` 0Pc_ D` Pc  80qU` Pc 70^` P dU 70K|n` DPHdU @7088` lPpdU 60%` 0PTe p` `d tVP0h` 0dpp ` 0 e ` 048e ` 0\`e P` 0e  ` 㰀e TP0` 0e }` 0F  l@F(f` 0$㰀 ZPVp L30u F]3p tV0 5x]p V D30$<83p V0 2p V0 2p W0 o2 (W0 PfL2 LW0 g2 pW0 1x W0 K,t,8h,~8,,~+}+}+x}h+@}@+}+|*|*`|*$|p*{D*{*o{)z)z)\zh) z<)y )(y(x(xh(`x<(#x ('Tw'w'vh'v<'cv '&u&&\&4& &%Pt%%h%@%`s%0s$r$r$rp$rH$Wr$$(r#q#q#H-   I[}KH-   ![}#H-   Z}H-   Z}ӽH-   Z}H-   Z}H-   YZ}[H-   1Z}3H-    Z} H-   Y}㼃H-   Y}H-   Y}H-   iY}kH-   AY}CH-   Y}H-   |X}H-   rX}˻H-   hX}H-   ^yX}{H-   TQX}SH-   J)X}+H-   @X}H-   6W}ۺH-   ,W}H-   "W}H-   aW}cH-   9W};H-   W}H-   V}빃H-   V}ùH-   V}H-   qV}sH-   IV}KH-   !V}#H-   U}H-   U}ӸH-   U}H-   U}H-   YU}[H-   1U}3H-    U} H-   xT}㷃H-   nT}H-   dT}H-   ZiT}kH-   PAT}CH-   FT}H-   <S}H-   2S}˶H-   (S}H-   yS}{H-   QS}SH-   )S}+H-   S}H-   R}۵H-   R}H-   R}H-   aR}cH-   9R};H-   R}H-   Q}봃H-   Q}ôH-   Q}H-   qQ}sH-   IQ}KH-   !Q}#H-   ~P}H-   tP}ӳH-   jP}H-   `P}H-   VYP}[H-   L1P}3H-   B P} H-   8O}㲃H-   .O}H-   $O}H-   iO}kH-   AO}CH-   O}H-   N}H-   N}˱H-   N}H-   yN}{H-   QN}SH-   )N}+H-   N}H-   M}۰H-   M}H-   M}H-   aM}cH-   9M};H-   M}H-   zL}믃H-   pL}ïH-   fL}H-   \qL}sH-   RIL}KH-   H!L}#H-   >K}H-   4K}ӮH-   *K}H-   K}H-   YK}[H-   1K}3H-    K} H-   J}㭃H-   J}H-   J}H-   iJ}kH-   AJ}CH-   J}H-   I}H-   I}ˬH-   I}H-   yI}{H-   QI}SH-   )I}+H-   I}H-   vH}۫H-   lH}H-   bH}H-   XaH}cH-   N9H};H-   DH}H-   :G}몃H-   0G}êH-   &G}H-   qG}sH-   IG}KH-   !G}#H-   F}H-   F}өH-   F}H-   F}H-   YF}[H-   1F}3H-    F} H-   E}㨃H-   E}H-   E}H-   iE}kH-   AE}CH-   E}H-   |D}H-   rD}˧H-   hD}H-   ^yD}{H-   TQD}SH-   J)D}+H-   @D}H-   6C}ۦH-   ,C}H-   "C}H-   aC}cH-   9C};H-   C}H-   B}륃H-   B}åH-   B}H-   qB}sH-   IB}KH-   !B}#H-   A}H-   A}ӤH-   A}H-   A}H-   YA}[H-   1A}3H-    A} H-   x@}㣃H-   n@}H-   d@}H-   Zi@}kH-   PA@}CH-   F@}H-   <?}H-   2?}ˢH-   (?}H-   y?}{H-   Q?}SH-   )?}+H-   ?}H-   >}ۡH-   >}H-   >}H-   a>}cH-   9>};H-   >}H-   =}렃H-   =}àH-   =}H-   q=}sH-   I=}KH-   !=}#H-   ~<}H-   t<}ӟH-   j<}H-   `<}H-   VY<}[H-   L1<}3H-   B <} H-   8;}㞃H-   .;}H-   $;}H-   i;}kH-   A;}CH-   ;}H-   :}H-   :}˝H-   :}H-   y:}{H-   Q:}SH-   ):}+H-   :}H-   9}ۜH-   9}H-   9}H-   a9}cH-   99};H-   9}H-   z8}뛃H-   p8}ÛH-   f8}H-   \q8}sH-   RI8}KH-   H!8}#H-   >7}H-   47}ӚH-   *7}H-   7}H-   Y7}[H-   17}3H-    7} H-   6}㙃H-   6}H-   6}H-   i6}kH-   A6}CH-   6}H-   5}H-   5}˘H-   5}H-   y5}{H-   Q5}SH-   )5}+H-   5}H-   v4}ۗH-   l4}H-   b4}H-   Xa4}cH-   N94};H-   D4}H-   :3}떃H-   03}ÖH-   &3}H-   q3}sH-   I3}KH-   !3}#H-   2}H-   2}ӕH-   2}H-   2}H-   Y2}[0 R/$ q0R%!@o/">"rýH-p`@PD  0H/L- ,@ 6 L2Xo}H-   I1}KH-   !1}#H-   ~0}H-   t0}ӓH-   j0}H-   `0}H-   VY0}[H-   L10}3H-   B 0} H-   8/}㒃H-   ./}H-   $/}H-   i/}kH-   A/}CH-   /}H-   .}H-   .}ˑH-   .}H-   y.}{H-   Q.}SH-   ).}+H-   .}H-   -}ېH-   -}H-   -}H-   a-}cH-   9-};H-   -}H-   z,}돃H-   p,}ÏH-   f,}H-   \q,}sH-   RI,}KH-   H!,}#H-   >+}H-   4+}ӎH-   *+}H-   +}H-   Y+}[H-   1+}3H-    +} H-   *}㍃H-   *}H-   *}H-   i*}kH-   A*}CH-   *}H-   )}H-   )}ˌH-   )}H-   y)}{H-   Q)}SH-   ))}+H-   )}H-   v(}ۋH-   l(}H-   b(}H-   Xa(}cH-   N9(};H-   D(}H-   :'}늃H-   0'}ÊH-   &'}H-   q'}sH-   I'}KH-   !'}# 0 S po"/0H-R@%u0HH-p`@Pq 2 0H/L- ,@ "- L& d}H-   %}H-   %}׈H-   %}H-   %}H-   ]%}_H-   5%}7H-    %}H-   y$}燃H-   o$}H-   e$}H-   [m$}oH-   QE$}GH-   G$}H-   =#}H-   3#}φH-   )#}H-   }#}H-   U#}WH-   -#}/H-   #}H-   "}߅H-   "}H-   "}H-   e"}gH-   ="}?H-   "}H-   !}H-   !}DŽH-   !}H-   u!}wH-   M!}OH-   %!}'H-    }H-   u }׃H-   k }H-   a }H-   W] }_H-   M5 }7H-   C }H-   9}炃H-   /}H-   %}H-   m}oH-   E}GH-   }H-   }H-   }ρH-   }H-   }}H-   U}WH-   -}/H-   }H-   }߀H-   }H-   }H-   e}gH-   =}?H-   }H-   {}H-   q}H-   g}H-   ]u}wH-   SM}OH-   I%}'H-   ?}~H-   5}~H-   +}~H-   !}~H-   ]}_~H-   5}7~H-    }~H-   }}H-   }}H-   }}H-   m}o}H-   E}G}H-   }}H-   }|H-   }|H-   }|H-   }}|H-   U}W|H-   -}/|H-   }|H-   w}{H-   m}{H-   c}{H-   Ye}g{H-   O=}?{H-   E}{H-   ;}zH-   1}zH-   '}zH-   u}wzH-   M}OzH-   %}'zH-   }yH-   }yH-   }yH-   }yH-   ]}_yH-   5}7yH-    }yH-   }xH-   }xH-   }xH-   m}oxH-   E}GxH-   }xH-   }}wH-   s}wH-   i}wH-   _}}wH-   UU}WwH-   K-}/wH-   A}wH-   7}vH-   -}vH-   #}vH-   e}gvH-   =}?vH-   }vH-   }uH-   }uH-   }uH-   u}wuH-   M}OuH-   %}'uH-   }tH-   }tH-   }tH-   }tH-   ]}_tH-   5}7tH-    }tH-   y}sH-   o}sH-   e}sH-   [m}osH-   QE}GsH-   G}sH-   =}rH-   3}rH-   )}rH-   }}rH-   U}WrH-   -}/rH-   }rH-   }qH-   }qH-   }qH-   e}gqH-   =}?qH-   }qH-    }pH-    }pH-    }p 0 S$$@o"/L-@$婴L蕴H-p`@P  0H/0H- D@ $@P  0Hd J}  //H-P@pn`P @q  0S 0S Q:PAAL ԄA@K-@pW**`(R1 庄 PqP  Ap  10S P:!!P UO-MP@qK`qQ0 P (0P@EP+* BEQB1/sPP   W  G BA" 7 S!`V:/  //O-M@pἳPP# @q 00#`)0 0S Q: PApK  㛄pKpKO-M`V-*@PSc | PrP `bAp 0S P: P UKO-MP@qK`rQ0 P (0P@EP+* BEQB1/sPP   W  G BA" 7 S!`V:]  //O-Ms@`PزIJpҲᾲP1 @ qp 0P`V+`V  0Q:!PA QKPK  " Q`KKO- M@p TB*< Rx 1 Pㅠ @P$ bN` [GAp0 0S  P:PUKO-MP@qK`qQ0 P (0P@EP+* BEQB1/sPP   W  G BA" 7 S!`V:_  //O- M@Pt`ٱűp ᾱpP7 Pp@pwP @0 0#0S/0S p@W: &pPAKDK~ ~㬂@KKO- M@p TB*x Rq 劂1 PㅠAP$ [G`e?Ap0 0S P: PUKO-MP@qK`qQ0 P (0P@EP+* BEQB1/sPP   W  G BA" 7 S!`V:XL-@ O-0-S"P 0@`@^ 0ppYZGp pW00@PU `FK 0R000S / 0R /O- M` @SP 刐p Q  p  pP @Pp pWpn TQ p 0EP ` P``V@@0@T0 0CPKL-M@ 4S 0R< PK Q  R,L-R @ @T @^000S B @R Q  R,L-R @ @T @^000S B @RO-MP `R "P *$ Q  P`4pS0pP0W,P0  P K@" `P @ `P  @@" `@ P5 0 @3 FWp"` pP@p\  0 RQ C Rp`V PE `pp$ P50 FW `Pp% p` @P`^ @Y\ Q  `pW PEp `P pP P`P  Q KO-M 0$R P   ^PA P3 1A!1@^A @ P@D@PpP ^ ``P PPUXPWp @@TA 0 B P^   ` R ^R 0pSpppW0V`  QKO- MpP  P XP  U @X  Q0  0R0>01C`pP1aQFX`a @ B@^ ` V^ ``V\`P @@`T`pG PA0C BWZ% p !BX`V X @0PU000SP BZpKO-M p  0pACW @DY    BQ&`Y p q0S YPPS   R\ Q 0 0S  YYN 1 0!0 p``W 0n0a 0R000S YK $ KM-  ^ 0\<S( @C^P! T!P T@0@0CAPU `pVpppW`0C @D S^$  04S1 010L-R@T @^   RA @0QQ/0S L- 01 @@ 0S00SL   /L-0S0S @ ^ ^ 0SLo0H- R# i1k@@A @@PZU U GU U U  PTU@@@@T R0O-|M@4 PTJ `K KS禯 2/pᖮQpP pP# `K P  @ S { 2/PkQtX KT&P&%AO-M@ P  QP P5 Ѐ̐p` p` PQVW   w  P P  d( ^K|n\~|Y|H- @   B / / 00R /o/ /o/H- 0   q r q rD@ @0 0෿  Q* r (|LL-@ 03/0H-P@%| 0HpL-M`@ P $3FYl @  0 X H   pKp       0  x  u   0 < ,  `   0 o j  K   0 Z U  6   0 EX @H  ! @l}||gK|||O|G|H-   Ͼ=|?IH-P @p  R  @QHs4Q@QQhQP R< R$Q,!R` P @F`P [+  Tx `T`oa Pp Pe$ $$####O-M@ P \W 0 P Q'4 f b`$K$pz V R` pK P 2/P2O$$ P 7P P|@ P K }  d`SOH-@ L剶 p  X ! @  0`7ppp00S TC 7`2S S  P PD0LV0  Z h \V P %KN!مX-0H-o_@Q 0pL-`P@P | ` H <P  $ P  P dQdP p c  \N  UP hp X H @ A0P   5P   )  "4  H4@ L吵`  l00h pLe"C ofK31)-O-4M`$P Y#d@P| ,(@ @T$(@0@,((p@0 D0$00 xP tQ p呩tx|KpL-Po@` V `n ` /+ pdQ ppL1O-_M`@,Z P PD Ġ  8 N` P @ pH!DQ@pȐPP PP0PPPȀPPPPQ Xp@Ȁ Ȑة iM` @p pQ PhPlDPQ J@P` Q@Q @0 @Pp P O@bPP% wP#QPP Q |DPPXP + Q@ TAXA$P\APHA  H$@P $ P $ P@ P O@ @P \@/@`P P O@PP TA+ T=p`A$P0@X\P P TP% XX$H$P# = P  8X\PH$P + P  &XX`V0  p@OOP 0  0   th. Z`&P0 `pP P @pPP + `?. 0@$0 PO P Pgx$$P P w    od3 X0pTD P @ 0 8p@4 2L ภ04p8<. XTPLH0D΅΅ͅO-MPp@T @LPU p` `Rp  0^UW _T &KIͅ)̅ͅK-MP`@T LPU l\p"` hUV 0T K̅o̅˅O-MP`@T LPU ``p 0p` 0p`嫛`ԓ`pP埃`娓`pL啃UZ  T KOKхЅ6˅K-MP`@T LPU l\pࣞ` zUV ᱞT xKʅʅɅK-p`@T cLpW hX Pu`DUWV ᄞT KJɅɅ>ɅK-MP`@T 5LPU l\pG` IUV UT KUɅ5ɅȅK-MP`@T LPU l\p` UV &T KȅȅDžK-0Mp`@T LpW x P`H0`L   ۣWV T KDžDžDžK-MP`@T LPU l\pೝ` UV T K:DžDž6ƅK-MP`@T rLPU l\p` UV ᒝT YKƅoƅzŅK-MP`@T CLPU l\pU` UV cT *KŅŅąK-MP`@T LPU l\p&` @UV 4T K?ŅŅąK-HMP`@T LPU tpD`T0X p?T UV T Ką{ąFÅK-MP`@T LPU l\pœ` UV МT KÅÅr…K-MP`@T LPU l\p` nUV ᡜT hK9ÅÅO-M `p@ k0PK `K P  /KFK  DQ@ 0PPaL!\1TQU`!dQlQpQtaxa|QQQQQQQQqaQ/dP! Q&%@P!uQ&QQQQQQ !YQ xK0K P [< qP Qx਻P4 D  `@:k  @` KA禝 2/pᖜ?[@* @`K d p7` 0``(e`P < ,  tl `?  K `> P% pP``P Q@.3 m {mP P KlK<ұѱpg޵ݵL-M@Q iK0H-@0P 1/0P Q xP tQ ptx|P Q @P P<Q 80Si 巻Q PPQ tPQ pۙ<PtPQ 8ԙK-Mp`@T 3LpW p` PE`^_WV RT KǛ~K-8Mp`@T LpW  P| ` Ӌ(P,PP WV T KK-Mp`@T ʸLpW l\ Pܐ`[[WV T ᱸKG'ڒL-@LP tP⍐,j h@L-@PP ̭tPt,Q L3@/L-@<TuPPP ͷ밭,Z?L-@@T`PPP 뛭,EL3`?0H-@,P ` ;40?0H-@0P ` *40H3T?L-@(   `L3?0H-@4  P`40Hz3>0H-@@PU aP@XP P YP8P Ր08>H- HM30H-@P1/ɑDZP1/UZ0X P      Q P Y 8<X 48 < Y 0Q 4<圱8Y0 ,Q 4 Y 8<厱 X0ܴH-@XPP ` P YP8P | V4`:ZpUWh 4, ZpWXV`UV<` SPX PP  @ 㴭 P4 H  @ 㣭 L ! @>@(ML4viL h>KP,D <K-M`4pKD @WF ``v 1D wbp0P x2 0gL0H `P ( 0uP4KOF`PDp0S P(0( q0(P =D X0`TD X0A4`Kɵ  @   H   @  L  ('>  @  `4 KH  @  HL A (@>@=KrRD pL-0M@`D PE @`Yu`PEKppL-M@,`KD PE<K8 < 4 0@ `:u<8 c`P " 8ndn<P8 ,KEKppL- @$^ 4$18 `T$Q!R PP@ UR8N@P:@0,S` V00 @ N@PP P  4Q @ ̠R0P U @0^N@$P (AQ:0 AR0S 0 p0H-Q @PP0O-GM``PDp@0S FO0K  p0`K <pp` 0D\XD X0 PD @g4` JD TX0! ~` P  @ ǫ p0p H  @ 㶫 L  K<  @ 㦫 X H   @ 㕫 tL  K<  @ ㅫ 84 H  @ t L  K<  @ d  H   @ S |L  Kt<  @ C P@ H  @ 2 L ! K@PR<  @ ! P@ H  @  L ! @K0<9> S4I@fp[<Kd\xTO-M@D Hh,0|` P֤֒U (0 p`P) (0 pPP`Yp$, p@0 4 `VWPPPPtPxdPhTPXK0gfh0H-Q @P@T0O-MP<p  W`  0 @P-( M0p`4V8<@ VQ*Z 48<`V880 4 D H 'O0 n0P p@  O 0n`D X4a@0T: @M0 @@nKzK0H-M@H(P 0 nPD XK00H-M@@(|P 0 nPD }XK00H-M@(P 0 {nPD hXK0pL-xM@T ``P _ P ,]PZc\P <_  ]@ Kp<^PdEE4/H- @PD`Rp:W lXDD/L-@  P%WO- M@(` Pp`H0 pnpDW WpPV  0XDKH- Mm РO-M`pPD @W pV pP`V 0XDKO-,M `(p@P M p 0  m D W @ V/  @`PpV PM$$0 Ym  pWP p R ~V WP@TPpVp`L 0K 0m GW@P RVV W 0 qD  WDKM-M(`P@=N 0*mpD W Pp)L0 m DXDKK-M(p`@N 0mPD V`L0 l DWDKO-M(Pp@M 0l`D VK0 l DWDKO-M(`P@M 0lpD V PpK0 l DWDKO- M@p QQě(P M 0|l`D iVW`!cI vK 0gl DkWDKO(0H-M@( ^K0P PNl DRWDPK00H-M@(HK0P P8l D^ N0    P#3  0 0y{.V0{VH- Q Q Q pD@ @0 0 0 0{U{U1H- P8X444444444x 0 0ׁd` `0 0ρPL L0 0ǁ 0 0࿁{TA{T!{Ta{U H-  Q Q ppl l0 0ࡁD@ @0 0 0 0I{Si{T{>TO-M  B<B1* *JX R@pD TR 51 Z  0< Q@P= @ 6 `001p0Q0p`O0@p1rWp pPO#0& QQ1^ Q@P> @ 7 `01p0Q0p`O 0@p1r_Wpp0O,0& QQW1T^XTp P7Q0H- M@0  R P  0 0-z  K 0PP K0 5     P'  K0{n6pL-M@P `Q  R RPKpsKpD@ @0 0y 0 0yI{4i{5O-DM0(Pz08P~0RN 0 A0 0A0, `@DQ,$`  ?C,pru0,P( @q @ P pp4` @( ,$ (KIZ Q QP 0 Q QPPU:? ,p`pp( $ (K!Z  R  R  0S 0 @T R  B 6P` PV:  " R@`, , P,/p0 1 , @`V:$(`DQ]4P@T ``@UP P `P @@``X0p$ PP 00@ ((, RC 40S000S  P5  Q2@`V. ,P#( ,$ (KlX: Q QP 84!0P `P  R` ` RVQ:K 0 0ax 0 0Yx 0 0QxXT T0 0IxPL L0 0Ax<8 80 09x){.Ai{/ {.{.{>/I{.6pL- M@0 PP  R  R  0S 0 `V R  B 5  ``P K 5PP Kp    ``P  KpO-M00 Q3 p`@ @1R@U/@O@   P 5P"R PP_OP   T * pR? Q  p R ^CS p`V @ ` 6`"R ``oO` @ PЀ ` 6`"R ``oO`  T *Q 0p  KO 0P 5@"_R  @`oO` \ ` ` 6`"_R  `P`_OP   X * R ` RV> 000E@` R @`PUV* P\ @ 4@"R @@OOp p@  1"R   PO@W*P 0`  y 00KO-0pPH @O 0bV``&@oob0 `@0 p p07p2pS00 Pp000R0*@TT @04@2@S00 @0`0V 0 *0@T 0O-MPU`  0/O@p@$ Ooo pQ B@@p@ p7rW P3PPP Y# Q pWpp@ 1oPP@^ 1 KO-0pPH @O 0bV``&@oob0 `@0 p p07p2pS00 Pp000R0*@TT @04@2@S00 @0`0V 0 *0@T 00H-Q @P@T0pL-@^ @1`DTQAQ P@PD U@QNAAT:$0̠S@ T0$  NAATT TR $̠0Q@P U$@0^RNA Q  BR:0B!S`V0 pO-MPU`  0/O@p@$ Ooo pQ B@@p@ p7rW P3PPP Y# Q pWpp@ 1oPP@^ 1 K0H-Q @P@T0M-M0@ S: /O(/PQ/P/\ 0S1S 14  R# R / ! /H-   p9{; R 0S R  0S R / P 0SP / 0SP  /P/ R 0S R  0S R   R/ / R 0S/0 S / P 0SP / 0SP Q/P/ P 0SP / 0SP Q/P/ R 0S R / 0S R  R/P R/Ao/ ?= S 00S8  /0H-8 ? @ Q@0~?# / ?8# 1 / 0S 0S /Q/0S R  S/M-MP@4Q0`0`, p  $ ( 0`     pKH-`@PQ Q pP pW QVQPp pA o "    `` Q (pQ PR Q RQ RRQ RQ R P 0 P  0QpRpp p R 0! P/ R/0H-P P \ 00S00@@0 0 0S P/Q/ R//P/ R 0S?-  P/ 0S 0S/ Q/H- 0 R$ R!  Q R R   0S0S R ^R0 QO-M YB  P P  Z2  P`VpW(W 0 @ 0@P p PVZ Q QPQZYKO-MP`pTጫUp pK P  v\ 2/@f[oZPU⮫KٴٴO-M `圜, t  X   8  }(  xp   '\ 2/P [X p @ W aP `P `v ' GpWP 8[ 2/`Z % T- P) [  "  ` k [ 2/pZ@TD   KDŽ3j{{DŽ{DŽnDŽTش{״<״Ӧ{tń0H-@P  0H;@& $(,048< DHLP/pL-` @Pᆇ <P@<pO-M

 G`aq`F&B `2`S 2JNRN \ 00X^ 1@ @ S*pp S:R B@$ X $Kp W  0 ! B0"0 ``` W0PK$O-|M` TL R` pK $W 2/PU2P@U q `p, -T PK V 2/`U ԗpW. L PKH) [ K     K@ P V 2/`UᥗpW @ ݖP `K 1hV 2/p|UᅗȥKôֲô{$ô{´0H-@ P  )PQ o   0S PCPEP@3R  0H-@P P P   0@CP'*ACarA!/rPPp 8 Q0 PU pAEA!5S @p#0H- R 0@P@0O- M@ P PP  0(PP$P,P0 AaV)* $(,`V((BAa `Q4P8Po{O-MD`H V: J Y:P@T P` V. DHAY +/"A\HP @T@T /"/B/"/Bqp@QDQ=HQK 0 0cy{Z܃ݡ0H-P8@P ~ 4 0R , 00H-P@ ~ 0HL-M@ Q Q" Q"00 01 P @0  Q0?= 21@pKQ0K @1"!K /L-/"OD@D@oL//K-$`p@P >4 Pq 0C  xH181~#W P h 4 @T %P q  b렶ڟ^v{فK-@W pW @`DVP`!p`H-P@`D@V p` p`HO-M` @0T %@2 P@pq  R0 R !:  R20CS0! ~@0 pP037 0pPX:pQ` xPd!`pp' 00y0@p0! P0! !P ~N~@npP~@pP *~@pPB:~=`V: @P `. 0@P0*AQ!rAPAP } a  !0pW `AGA7SP"`F  xPpXy:KQO-,M`@T %? @pp   R" BR 0w@PT: P`P Vq 0 !D R8p D  ! @ S@P  1$0} ^N1IPPP0S*@P: 0CQUo*A2!rAUAQU0  0PX|  A P0QQ !APPL B P1S`` B`  P! P!@0 pP03 1PD 0Q8pD  I  0A | <D<QDXN:KjO-$M`D p B T@0!%!!Qn  偑PGp P@P7  0@ 1 P @D8QD @@X P㐡 0CCR4* 0@ PTP T  0CCR*P@` { <@@D<QX`D Q:KpL-@`V 6UpO-$M@ $P K ` @pP{ < p D R< D  < P p O` 0R0  @0$ 1PEES* !0>000D A  E @ BBZ:t 0 00/O- M4 4aV~p@  z `d@ P@@ z Q@  P  P@TF 4P=$P Q  0!q ! Q BBQ'*qP4Cw $ Q 0p0W1 p_p]0RqPR30@T4aKH-M@@`DP Q  lQa pP  0XQK R R R A AA/H-   _1g{3ʁ0H-@PTP0Tz  @ $(, !048<D )#HLP  0S0? =P2^QT0O-M@P R Udtꄐ qW.` U U U* `F `FTy p F@  $(,048<DHLP p qK  ^ e{ȁ0H- @PP!0H03@Q p R+TP0Tzy  @ $(, !048<D )#HLP  0S 0 0Hj? =@2NAT0pL-`P@=y  0T0 `  ``6`x`X6 h6 (60  0 0602pO-M`ptPPW P  Q 0@  x . @ Q ,. 0)@x P@   2 x X2 h2 (22  zKXYO-M@` P pP0,x P   2 x X2 h2 (2  P2  7 0KO-TM@D0 Qk, +0 (K 40,0@T0C0 %a8> p@8, R R00 R,/-" 0QIP 1PQ  0p,@pT:4` y  RM8 @44QTP `3Tw @ $ ( ,,`0 4 8 < DH L P      0S0?=p 2wqT0  7@ T@& PPL8@4atP `4pTw  A@ $ ( ,,0 4 8 < D H L P      R /-" 0p" t `P0  P@T4Pd Pa8`(!d8 AT pIp T4w @ @@@  $ 0(,048<D HLP4 @(K(   P @ (0S ? =2!@0ppd,p( AP0  yP`V Pg Pd8`$` !开AT pL(` pTv @@@( @ @$( ,0 048<D HLP, @(Kp(  H P @ (0S ? =2!@0`p,p$`AP04 P Z@C 8`0P4pA 0BS0:Rp# p pR, 0 ?=P 2UQ 0Pxh0,4 0,`PV:?14?. 8P@ppp 032 S: 2 QAQ:4` 0``Y,  0`,PPU:( K0$ Jp( ! R `Q  8`Y 4 $p00S002!0S 0 Q  R 0S0! p` 0@S&*0IN($0P, ,P,A  0BSJ:RD RDP P`0 %,` R, 0S000S Q  R00#?ob0 4P 0U,@3$X``+ \`! o4 0(P60PP,  (/-"1@,4Pv 04 20` 0S, ? =2!0`,ZP  R  R t0 R8Y240 $p pWQK  Y=R{?H- ^ 0S002!0S\P0S0 O-DM @$ P    @P  /-" 0p" @,@$, 0  B000BQ(P U4pRN0@,@D T` B$  @p"e%qa P U p@4 @q~Q PRH P/o U" (  R `@P'@&@ Y  2 ( or@ $Q  X   0Y,@I(P$P`@ pBW :R RN`!obp@ `PU ` `PPP *`P P` P`P @s  @!P@  P)KM  XM{M-pP`@U ppPPP*pP PPpP s `!PO-M` @P  0<0ApGGSa* pPpU;@qD<Q , 0k) PP PQQ PP Ps pP Q  V Q<4<P$ R 0  < 0p1Q01 0RKXosO-MPAQ* !qAW:pGAAW*aP    )<@P  MT$QPDpHXG Y=@`V0 2P8P r 4 R0 , 0P80PP   R  PpW DHAY  0 0W`Đ V 0 P88@P r 4 R , `p VKI{qO-M   R  R  R  0pW 0 pWQDH YK Y PU P Pu``V pP  @0B`0!As!As44Q[`V ,/"Gzs@GP# P% P  0pB@0!Absp!A[s44Q`V 0 0V 0 0V 0 0VXT T0 0VD@ @0 0V0, ,0 0VE{nnE{NnyE{.}nF{ΨHoE{IoE{XopL- @0PB0`!AsP!Ar4 4Qp /L-/"ODr@D@oL/O-MP/"Ar Q: P 0@   BB ^2`V, !D !p R  W"` V R  `V`V R@TR` W@ QKK0R 00000R0 0400R00/ / P/P/O-M@DH R AqAW(P DaV P PUs*DH BAW n Q6S00R0  R Q  , &  4Q P Q P P QP QP Q P 7 QP  P    P/" QRC rK  0 0LU`'l5@{ꢃipL-`@PP ,Z& 08`P Gp r4 0R , >OpKjH-P@ /"A@Q$ @qq`qP 8 R 00ppGGR*!R 404pWQ<P@AnM-M`P@P 0 ,% U(4Q0`0`,o p  $ ( 0`     ppK|}XhH-MP``p@P 0 ,4`%  o KHd|^gO-M/"Ap<qP Z8PW  BBPS*PM  Q 0 S0p  W PQ+ @0A0S&00T"`0V 0S000S0S pW`V``W0`TR 0S8P 00@@DDP*P K R? P@1/H-@`R `````R` `4``R`` ,   $0(,0408<@D0dPU n  0S `CP`FP@`3`R P 0P( 00P C@P,4PA n `(0, R BEqAPEEPA2S(B8@@@P< DPB n `80< R pBEpGPEpEPA2S8BO- MD@H`pV# W@PU P @T DH@W 1P&R  Q  4PUꠄP g$ $   Q& t@xPT Q |@UP' d@hPT Q m@U@PT Q a@UT@XPT Q U@U Q @0 Q  0 ,P$ Q P(,@PX @a  R' P P R R   Q R 0S00R Y+Q #Q R  @R Q PBq M,P  ,# @D(@, @BT:8<P @ Ka  R$ PC P@ R R   Q2 R/0S00R YQ"Q R  @R pQpp PBQ <P  ,pZ# @D8@< @BT:'K 0 0&R3{R9\8wcRat`_H-QB @ PP= P  ,*#  P P 0@CP'*ACarA!/rPPp $m Q0 PU pAEA!5S @pZPrb^L-M@<P ," $    SK,q}]H-@PP  ," <@P P<<8 0@CP'*ACarA!/rPPp Dl Q80 H- M00 РO- M P(,0@QsSpx aP  R30QR6  P`PP\ pW QpW  QpW pP pW 1(,Q R  @R pQp  } 0p PB  ,PP  ,4 pH(,AAX:8<Q| a,PoP  R30QR6 P_PP[ pV  Q 0SQ  0SQ   R Q H8<Q R  @R pQ p  0P+p PBA <XP  ,< pH @8<AAX:KM:Kf8L-@hLK-MpR;`@[P P.G p!Id @ IRpWpQ 0 ,|=  .`KKs  0 0GJ5 {m^8/O-MD`HpW# Z#PP Q 0 Q@Q `V DH@Z <@T VdJ@TK 0 0G {l2/K- R pQU Q B@AT: B@AT *QHS } BpAW:P 0s!0Pp0o&opF PPP `@`Pe`F `pDp000QSRO-MDH0pS W  0pP Q 0 Q8 0  R8  0 1 02 0S ,p PUPP PU0R 0S  ?-  R 00S8 ~/1#  80# 01p W PQ  ? Q 0pW8` ~# `8# `pWpW PU @ @0T0  ^ @Q0 0k 0pX DHAWj  0 0FK{h./L-l@p0S 0#5!%!@1\ R 0 C R 0\O-DM@`T (PK ( $0 T@Tl p0!uS a`DPHY7 Z7, , pW/ ,@b@pP& ,P" PQP0p  ?#/BZBQ!?,CPڀPlp%uQ  p%aP U DH BZ lpP`C!0, p'uQ ` F R`Q !AT@T ,@ R0 `p0  R 0R@ 8 Dp@7`@ `0Os @8  !  @@$ (Q @pDP Pl@0Q !%PP `pG P  Q% Q"P0S 0S0000 R R 0S PUPPS 0PQ Rڮ0@P !@!D $P WLP 00,0 (K( $ S,(Q 0 ,0p| ? Q0 R8 ~/8  $ (K( sS,(YP `K($ $0 0*E@>.? .zbbI(/ 0@S/4Ao/O-LM DH PA@` `U0` pW%  P$PAQ4P4$ p( , Q  $  偡P DQ0_ U P      PU$ X"R ?= S00pW8@ ~?Q?@8O3 @Q0@4P?= S00pW8 ~?o18p 1,0p$0%(0 031 0.$0D0P"P  0S P0S r P0S 00 0Sa@QHQ$ AP@ D @(0000{H<4 R 0/-@"1 BBQ*@  D1pAPbpW`@P$R@WQ@0Cr`V`@Q 0S3 ` X,K,(Q0 ppW DpHYB Z8@T, P@P' ,倁`QDQ0^ 0U P      PU0 00`p W DH@Z $ 0 0CK%z[!L-M@0@DT@@D@A KO-M  /p86 0P0ST ,q @ `PU P  !@_<4 R/-" PU`VHK@4@ 8 ( $@ 4@0@,@(@8<@@@D@H<@ @@ D@ H@ 0@ L@,@ <D@ @H ppQ<@ @ HK)HDQ(HK,0@ `QD0 @ 2/P@Z3T,pD 2/P @8 2/PW:P YpP8`K  KO 2/P = 2/@ 2/T P%  K 0J`'KJ 0AKP   2/PK 2/P  KK-@`P 2/p 2/W P p pP  2/pP   2/pP p 2/P  2/P  2/P pppO-M `pP@ 2/P(  2/P  2/P  2/P @@@@KO-M 2/p@ 2/T P P  2/P     2/P P `@ 2/P pPu   2/PEP p` PpKO- MPAp`@P-D 2/P  2/@ 2/T( PB F 04| 2/@ 2/Y P3 9 0FpbP`  2/PV RP  2/P  2/P> 9   2/P P, ` 2/P @ `v   2/`FP @Y @P@o᠂KM-M0@ S:;C 0`R0QDA0 R@Bq0QA0 0C1!0  0@ ACQBU *Q$P  Qz* 7V x`R`V& P  R*$V $P  Q}* V {PppW'{ P 0Sw* V u $P  Q* U $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*U :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCq1p06PppW' P 0S*%U 00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@pW``V  P  R *T pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCq1p07P``V& P 0S*gT 00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@W``V  P  R * T pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @H-`pPp( @X8PH-@P  $(,0&4# 8B@U `B]R 0 qR PBFPE`FPF`A2S pK-@`>R Pp@(p I8`Z; `LPA@Q:8V 2P Z%P,00Q @ "R Q |r,00q PBQ 7,00@A@T:K O-MPLpPW @P)[<@A@P|:9`@D$P @@@+< 0@CPp*ACA!/rPP H`N  A<0@Q PA !PE B%P1PSP!< @DPTP PP+L 0@CP;*ACA!/rPP X+N  L0PQ PA !PE B%P1PSP!L PT`<@P R Q`PpWwKmO-MLPP  00S0  QR@D $ P @@(<0p@GP*AGQBA!/rPP@ HM <0 @pW @AGA!7S <@LPPU\PTpP pPP*L 0@CP*ACAA!/rPP X M qL0PQ `A!`F B&`1`S !L PT<D@Q @@HgM < @0S `C@@`F&`3`R <@DPPULPTPPP PPXAM L P0S pCP@pG'q`3`R LPT,0Q @q "R,0 Q RBa 0 ,0@ ABT:K@=uH-@LPAP",00Q ` "R Q p,00Q PBq s,00`A@V:O-M,0Q @q "R ,0 a RBQ N0 ,0@ ABT:KM-^% 0 @TLPP`@V@U pPpW@PV0Q^0O- M@$ R A R 88  p  ` `\P  `LpP`V  `LpP`W, Pp  x` r`\ӥpW PT g`p < _` Y`\庥pV PN`,`0pV  D`pP  :`  4``W$PH l (`(Q wpD `8 ` ,D A 0$Q pA!pG B'p1pS! $(P P  d `2P4#` K1p гăO- M@`V? $  0PpPUTUH $ 0#U5!$  % $ 0  @  P$ :,PUp W $ , C R `VKO-MT@`PP 8 P XpTg% [X[gh "lp( Q 0p W0hP@H LHPT <@0S AAT*C LHP<@ Q @00RLL@h`< @ R[  RV  XX  ! #Q X Q PP LLXHAAP*AR/zPPP TC p! H0L`V PAFA!A6S@LHP PpqpP ~ HPL`U ́P   n PVP e @lhx,($ 048<@X|d`\XpDtH 0P@pC0DGaC1GSC @S*@@PP1 P tXPTf`$ GWGf⹓HPLKsHγpdzz`˳콃較{{ɳódO-M@<P@XL PPTp S0 Rn ܡ ,`&51qB  R, 0:80 S Q08 F, p`T0ACCU* @ p0`AA! 0TU:a W X P   Lp!P!P`PE P PU`0 R  G`aq`F&B `2`S 2JNRN \ 00X^ 1@ @ S*pp S:R B@K X FKp W  0 ! B0"0 ``` W0PKH-@P QN: ,0pR0 t WV, 0 "5%Q 0@DP P@@< 0@CP'*ACarA!/rPPp HRA Q<0 @PU pAEA!5S <@p0H-P@G@cQ *8!P0 "0H{@0PG8Xx0H 0H, 0H0 0Hw 0H 0H 0HH-@PG" AcR* P `@ p 8#V c`V1Q   (L `X@ p "V `VH4  8  H0pL-P@>`P p`TP <0$\   pհO-MP P  Q  P@  `P P3 @pP @@P pV P \@ \0 @XP \0 ,   XKļίM-M`P@ C"  sP P `LP% p`P pP `(P Q)  \0 \ppa`P Q; RH p\0\ 8Q \0 W P Q P p\0\ DP \0 9 0  qKR  p\0 & PQ R Q \` p\0 h`Q  p\0 < p0PT 0Kڬ\Э^XO-Mp@ >   y!X P``VLP B ,P`P X ,PP `X l P Q \ P \00Q \0  Z 0KX" 笀`  PQ R P\0 \R  P\0 Dq `VPT 00000K茷8<6H-P@p[`P pQP `@P  p( \08  H\TH-P@p/`P yp%P `@P  p( \0  HꬵH-P@Wp`P MpP `@P  p( \0  HH-P@+p`P !pP `@P  p( \0  HLDM-M@P 8   p`P pP `P Q  \0 \ppQ \0 j P Q P p\0\ hP \0 4L 0  FK`bꥃO-M`40sq $( R 0P0B0p0A!gpC1RBf@@AR045@@p@`@TK B* *J` `IQ U !(P``PG \0 pv ( qPQ  \0 ,c `48 H0pRL t W0'H L4 "5%01Lp`P P UV` U`_P@VP p  `^K( `P  p \0 $P 4@$%1 8ppE'UuQAqW P@PD U@W8 00 @BqW:@P+U0p WPP @00@ CqWW W  4`T̉H-P'P`@ ` p &W 0 0]Qz%K-P@`\`Q4    `P @) 0@CP+*ACrA!/rPPp s4 A0Q pA!pG B'p1pS! KVpM-@p ! PP0 #R  dX PO P5P  7 MQ PP$ $Xp`qpWtqppW d0 hpP!@P<kPP P @P'  p \0 @@P  0 =:Ph`@P ,PP LЃ 䍳\CO-M `R0*PAU2eRVq 000 0 sڀ2! s R# pWB!    0` p7#7K     U> X! P `R00 BPE03"b  ^'  ` 2UP `R00 BPE03"b   ` 2KKO-M\ @ 2 q"!LpPW' Ap `\" Y $ 40PR8T U4 8  "5%a8YKK-M@ $R  Q,Rp`BPP pP 0 VP p  0 4 p0 Z ZJ$4  0X0\``FFa`R*V00\5F *$ X0 K褈PpL- M@Q$ PqPPPA b{2 a P   KpK- M@pTpDP`Lpqp PD0G0#S P WG01P QP B`V9P p`V 00pG`F1wp >"! 0  P  KMr!QFP 0` p7#7 PKO-M` `Fp!B\W8 `g\ P@ P`F0fw`@ pfW@1pG0wp` `J `V> pEW g`6>pL  i \  p @p `?  pG@?W   P% 4*  L@\" Z @ PJ"p `l8%P8v `&   P"a LR`P@ Pb8U7  KM-M0@ S:;C 0`R0QDA0 R@Bq0QA0 0C1!0  0@ ACQBU *Q$P  Qz* $1 x`R`V& P  R*1 $P  Q}* 1 {PppW'{ P 0Sw*0 u $P  Q* 0 $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*0 :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCq1p06PppW' P 0S*0 00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@]W``V  P  R */ pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCq1p07P``V& P 0S*T/ 00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@W``V  P  R *. pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @0H-Q @P@T0O-M@P ABU+ @@Y2*@Ab@/qY ``V$ . q$ S pCapG`F'qpP3PRqpKPUK`O-M`P AB1* *JS5*0z z@@@b)Y9AT@U@PY ppW)  O. !0p`Vp 0W 7S`P "`P K`V KpM-M0@ S:;C 0`R0QDA0 R@Bq0QA0 0C1!0  0@ ACQBU *Q$P  Qz* - x`R`V& P  R*- $P  Q}* - {PppW'{ P 0Sw*- u $P  Q* - $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*V- :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCq1p06PppW' P 0S*, 00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@%W``V  P  R *, pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCq1p07P``V& P 0S*, 00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@gW``V  P  R *+ pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @O-M@P ABU+ @@Y2*@Ab@/qY ``V$ r+ q S pCapG`F'qpP3PRqpKPUK`M-M0@ S:9P h U@. PU*PU'   pp QHL \0`R` d V\ `@H "5%q R;`P HDT \p@H'5 1%  R\ `:h0S  R+0 hG\H  P`$qpP  x Q  ^P H P ` i8 _8P r X @/ PU+PU(   pp QHL \0`R` d V\ `@H "5%qPuK,@ * IzxDO v KzO-M@`p Q ||QW 0S#! *h ( R0)R+(@H(' 3 2'- D9, l'388h h h `0####.  ("X1 7\9 D$+<1 'l"h2zzzzzzzzp8zzzzzzzzzHzzzzzz@  &z):6P  , ;d*6(0>24H0eL>,;  8T? -@X)AD D #D  0eP0`"0el@x@tD `?0e;*AR   7l?0e#0H=P.   / < R R  KKPK <0 PLS S0 00 PK (6PK PKPPL` L P0 ,  0a00  PK PKP`Lp L0P , 0  0!*<P@wPK <0 PLS$ S-0 00  !" PKn PKP`Lpj P L0 0,  0   0)K KO3!< d $R 0 PR(     040QP,  (K㱶P  ,Q ,K㩶P PK L P0 p ,   0  )<P!3 P P P PK{P0 PK <0 PLS S 0 00  ! !  o`@P P P PK@OPI wPC PK < PLR R     0 ]B` $R 0 PR(     040Q, OP (KO P PK L P0 p ,   0  (<P$P(P,PR (KC0 A x(K`,Kp90 A1kGmZ@ P QK ( Q (KKõP PK7 PKPPL`3 L P0 ,   a00 (<P6<] ! 0KOO) P  `V`PK(` L P0 p 0P, 0 00  z(<P@V (K@eP (P (K\P P  $@PK PN KP( P (KK-P= KP P PKK#P PK L P0 p ,     0'<Pu s P P P PK@P w`P| PKb <0 PLS' S60` 8P`J<P P PKB V:VP pL0`,pp $0( K,Q P Q PKK㧳P KP( P (KK㖳P wAP KP P PKKㇳP PK L P0 p ,   0  v PK `P P 0(_tP (K_`P ,`P ,K_`PKn L P 0 p , p   0p<VQ Po  0ap 0 p0 0  p $  3 < $P P  P> 00   #   < $P P)K #<`!  0   0  #< R   0 `#< P $ P < 0Q  $ ! R KP R PKK7PE  P QK( Q (KKP- wP K, P ,KKP PK L P0 p , p 00  p<P _PKe L P 0 p `, p  0<Pi@PP  ` j$ |ז X    0 #   < $Q  Q <Q+ P  TK0  0 0"   < $P P   P P  KO! ` ` `PK p0 0  p   < $Q Q <QqK p0 0  p   < $Q Q <Qd'd pX t 0,    ByyByByyM-@ P  ! $P P  * 0@CP>*ACarA!/rPPp0 ( Q0 Q pA!pG B'p1pS! $HL \0pR` t WD\ `H "5%Q`p O- MPU `  !0@@ "^] Q  0S0P"P@p@@ @PE `P   R 0U@T0  0 ᯡT pP \P p P  P @t WPP Q PP PTPQPU  @R @! NRp!(((((((((((((((((((((((@((((((((((((((((((((((((((((((((((((((((((((((tdTD4$   | l \ L@0  d0t@ P`,p<L\(((((((((((((((((((((((l(((($0R 0QR    $ ! R pKTpp$0R    $ ! R H$0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R {$0R  0QR    $ ! R ]$0R  0QR    $ ! R ?$0R  0QR    $ ! R N!$0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R m$0R  0QR    $ ! R O$0R  0QR    $ ! R 1$0R  0QR    $ ! R $0R  0QR    $ ! R ;$0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R $0R  0QR    $ ! R G$0R  0QR    $ ! R E$0R  0QR    $ ! R Cu$0R  0QR    $ ! R ]W$0R  0QR    $ ! R #9$0R  0QR    $ ! R =d~$0R  0QR    $ ! R :$0R  0QR    $ ! R 8$0R  0QR    $ ! R 6$0R  0QR    $ ! R $$0R  0QR    $ ! R B Q  Q? Q  Q. Q  Q Q  Q  Q  Q Q  Q Q  Q Q  Qq Q  Qb Q  Qn Q  Q` Q  QQ Q  QBs Q  Q5b Q  Q(Q Q  Q4@ Q  Q%/ Q  Q Q  Q  Q  Q Q  Q Q  Q Q  QJ Q  Q; Q  Q, Q  Q Q  Q Q  Qt Q  Q c Q  Q.R Q  QRA Q  Qa0 Q  Q Q  Q Q  Q1 Q  Q2 Q  QJ Q  Q"  ~ Q  Q- Q  Q!M-M0@ S:d(((xP<<           K  ӿMxOMO- M@Q0`BPpP @pYSpKっP W PP U Y @Q % #  0 Q! @a @@`YtQ0Q@@ኤP AM-(MP @p P`  QQ ᏊP  < $R# R-   0 ! <  0$R: RC 0 8   0   p < $Q Q <Q1]w KpK 0     < $Q Q <QႊP KKK-(MP w <P<  @p. @< P $ P  KKexH-M@R P` PK@PKKPP Pp@P @P vP@P چPP @цP v| @PP ㆍ@P ⽆P_ @P _㳆P@P@@㦆P@@O-M@ 0$R ! !  ( P p t`x `Vu $Q`P 0P" (  V P P P x,T 4 wP H= $ 0pp`_P , $0Y (  Y(@ 0   (p` ` Q  p pP Q@PA >V` AKEGP4LyO-$MP@ }`pm  <0` S S 0 00 VD 0 0000V6pC < R R  0 Z   0  pV 0     ;` QP VKpL-MP@P  f P 㸴`㚴 `Q Px0 Ǚ &KpH( M-PU/ @`P ! 00qP P P gT@ ҴPP P WX ZUH-M  P& @TKP_v  P`K tLPϨ 2/pῧK K P/H-Mt@p`PTwNL p `P v KH/8 xH-M@    " $R ppP RP `A UP @ $R``P RPPA T@ KHKH-M@    " $R ppP RP `A UP @ $R``P RPPA oT@ KHpK0000/З/xIM- MP@`>AQ XX d  l                                                       H                                                     \                                         Q  R $R QP ppPp Q `AP UPe ` P pC AR:F AR*A P pA+Q <@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ P( P  RV$坚O`N P pF AR}:EQf Q>   +b j P Q# @ P  AR R P  IR  R$Qp P  HR R$P P  P pC AR:F ARJ*u  P P Q `y s 0 Q!! a <io` 0p7/@ 4S  p `Roob`$p pS0p000p0`p@WOoB@$``W  R0Qm `u P Qj 0+S9c P  R_ RW$ L0QK P QE MA `P  Q$QLP4/ Q p PKP CP  P pHPFIPP P  P BP:CP IP P >Q Q ```Q  h d+b_ ^jXP P P P P P P g 0+Slo奨 P Q` PPP Q pAP dV` gC`Q    +b j a w 0+P0?Gr P:2tS(sSk:pz3A2! a$ BR7 p ÒZ `^ W\ S0 Q!!N a ! RtSB3C! AQ pÑ7 <  :  0 Q!! a '  0`6/`    0 Q!! a a倗m`K AA/H- Q Bbm嵖+nM- @`Q PPP Q pAP V` m////H-M@    " $R ppP RP `A SUP V@ $R``P RPPA ;T@ KH<K/H- Q Q 8 0    ಴ɽx 0 R 0S/ 0S q0R!@o/0H-@ p㒠P堠ጠ0H艠/H- Q Q QL < 4   g6xpL-P @Q Q]  ta `(  U Q= 0 @     p  cQ Q Q  l Pl KpD@  xо侁ᾁxK4źxxL-0@R 8 '((  !$hP x0 R/ 0S q0R !@o/0H-@ p㰟P徟᪟0H觟pL-@PP PYx h Xa `>( <  Q8 0 @       Q Q Q p p T p@<  :*$xແx[1x$/$/$/$//H- Q Q4$ g  Wu9x;$/$//H- Q Q 8 M0 H  xL-@,  .VaH-P@ Q9`p R R V :% V:! 0 CB!V* R   00CCV* ] p`p0 S oM-M`P@  &[R밀p`` R RV:@@V *   AAV*Kn뫽xx0H- 0S0QQ 0P 0LCL1NS\ S ATP:000n0H-0 S QQ 0P 0LCL1NS\ SATP:0n/0H- 0S  R 0H諵 0S0S 00 @C0BC!DRS 0RAQU0S:Zn0H-@P ⹵ ˝ɝ0HƝpL-@Pt \  ` Ppp$ s p\f$/$/$//H- Q Q 8 0   } KxuH- Q Q 8 0   c1x, 0S/ 0H-@PP Ph ` Pp0 0  2ɯx$/0 R 0S/Ao/L-@tL0H-Mq@PQ Qd` T✌< L ᔌK0  Z x$//Q$/H-   ٰexg(/Q$/Q(/H-   İxH- Q  d<P( l P @ $    HsG]x_/$/ 0S/B L-@p ゜LL-@ D ax$/L-@|hLeL-@t T T TP L ,   >xx 0 S@o"//( Q$ /$/$/$/$/$/pL-@PP P| t Y`PppD L̳ p  Ex _L-@ֳ L 0S/△ $/pL-@PP P| t `PppD  ታ p  ୯Gx H^L-@䓳 㥛L袛 0S/S H-M`@P`[P t pppữW P 1/!K輆./$/H/l//////Q/Z/c//u/~// ////-////6////?//8/\/ ////Q/4/X/|/Z/// /c/T/x// ///,/u/t///~//(/L///// /$/H/l//////D/h//////- /d//////<///////8/\/6 /////4/X/|//// //T/x//? ///,/P/t/////(/L/p//P//t//z /0H-M@QqK00 P @D00  8 $P(@K0فi0H-M@QqK00p P@ D00    8 r$P(@K0/فi0H-M@QqK00F P@ D00    8 H$P(@K0؁ph0H-M@QqHK00 P@ D00    8 $P(@K0ׁg0H-M@QqxK00 P@ D0U0    8 $P(@K0Xׁ g0H-M@QqK00 P@ D0Y0    8 $P(@K0ցxf0H-M@QqK00 P@ D0^0    8 $P(@K0>ցe0H-M@QqK00t P@ D0]0    8 v$P(@K0Ձ(e0H-M@Qq8K00J P@ D0V0    8 L$P(@K0'Ձd0H-M@QqhK00 P@ D0W0    8 "$P(@K0ԁcU A R3 /AQ I1//L-M@, D0 0  ` $@KӁP &Q (8HTd  (8HtXhx//8/`/////c //8/ /P/x/X/^ /O //`////(///Y /h///H/p////0// ///H-   іx~Q/Q/H-   끖x~QX/Q0/H-   ̪1x3~pL-M@PQqT Tn Kp4 `P \0X0    8 4$@(`,PKpKpuρ(tpL-M@PQqT T4 `P \0Z0    8 4$@(`,PKpKp΁\spL-M@PQqT TP4h `P \0\0    8 j4$@(`,PKpKp΁0spL-M@PQqT T45 `P \0[0    8 74$@(`,PKpKpŚdrM-0MPK@ (<$  D0 0   0 $Ḱ}pL-(M 0 @KP `L0p 09  $P(`Kp+́}pL-(M 0 @KP `L0p 0  $P(`Kpˁ|Q Qx/Q /H-   sL/͐x~Q/Q/H-   [mxo~pL-M@PQq T ! $4X `P x00    8 ZP$@(`,PKpXKp Kpʁz/pL-M@PQqT T4 ` P\00  4$@(`,PKpLKp4ɁTopL-M`4@P P0  0   `  $`(P,@Kpȁy0H-MP0@ L0 0 | $P(@K0Qȁy$/(/Z ꋬ H- m U A R3AQ I1 $/H-  0 0}xǁL-M@, H0  0   p $@KxǁxL-M@,o H0  0   p s$@Kǁ(x0H-MP,R L0 @0   p @U$PK0D$/0H-MP0@1 L0  0   p 5$P(@K0Tw0H-MP0@ H0p 0 $P(@K0ŁvQ/Q/H-   ѧExG~Q(/Q /H-   ྦྷx~Q T4D$/D////H-   Yx[~Q T4D$l/ ////H-   n빈x~Q T4D$4////\/H-   Fx~Q T4D$//L/t/$/H-   yx{~Q T4D$/d//<//H-   نx~Q T4D$/,////H-   Φ9x;~Q T4D$T////|/H-   দ뙅x~Q T4D$//l//D/H-   ~x~Q T4D$//4/\/ /H-   VYx[~Q T4D$/L//$//H-   .빃x~Q T4D$t/////H-   x~Q T4D$<////d/H-   ޥyx{~Q T4D$//T/|/,/H-   ඥفx~Q T4D$/l//D//H-   9x;~Q T4D$/4// //H-   f뙀x~Q T4D$\/////H-   >x~O-M@DN  @    p (00P $<@K葺kO-M@D-  0@0   h (00. $<@KXkM-M@<  @D00  p  $4@K讹jK-M@<  H0@ 0  h @$K>pjL-M@,ʿ @ D00   p $@K˸j0H-M@,㬿 PH0 @ 0  h @$PK0dipL-MP0`ጿ P0 @0   ` @$P(`Kp0k| P`P` p``>0l} P`P` p``P>0oHm| P`P` p``>0^ n| P`P` p``=0M o}  PQ`P` p``=0< p} DPZ`P` p```=0+X q} hPc`P` p``$=0 r| P`P` p``<0 s| Pu`P` p``<0 t| P~`P` p``p<0h v} P`` p``4<0, | p `` p``;0 | @p`` p``;0 | dp`` p``;0 | p`` p``T;0L | p-`` p``;0 | p`` p``:0v | p`` p``:0f | p`` p``t:0Vl | <p6`` p``<:0F4 | `p`` p``:06 u| `` p``90& | p`` p``90 | p?`` p``\90T | p`` p`` 90 | p8`` p``80| 8p\`` p``80| \p `` p``p80h| p`` p``480,| p`` p``70| p`` p``70| pQ`` p``70|w| 4`` p``H70o@x| 4X`` p`` 70^y| X|`` p``60M| |pZ`` p``60=| p`` p``\60,T| p`` p`` 60| p `` p``50 |  pc`` p``50| 0pT`` p``p50h| Tpx`` p``450,| xp`` p``40| p `` p``40| p`` p``40|| p`` p``H40@| p,`` p`` 40| ,pu`` p``30t| Ppt`` p``30c| tp`` p``\30RT| p`` p`` 30A| A~` p``201| p`` p``20 | p(`` p``p20h| (pL`` p``420,| Lp p``20| p꾵B}BlB贁DBBAKAA߳|ATAu,ABA@۲@@|d@G@@@ݱ??t?A? h?ذD? ?o>:>>ү>h>_@>&>==~=F|=X=٭0==e</<<l<D<O <;ܫ;;o;;\;6&4; ;:a:$:ꩁp:L:$:H999㤁55h5aD5754أ444^X4404 4٢33u3Ip3 H3 3ǡ22j272\2⠁822Q41411ӟt1L1h$1710Ӟ010cd0a1<000//L/1x/ᜁP/L,/M/...nh.6@. .H%--a-/-\-ϙ4- -h,0,,p`` p``20| p`` p``L20T| p`` p``20>| p `` p``20?|  p$ `` p``20@| $ pH `` p``830@A| H pl `` p``t30|B| l p`` p``30tG|  p `` p``30cC|  p `` p``$40R,D|  p `` p```40AhE|  p`` p``401H|  pD `` p``40 I| D ph `` p``50L| h p `` p``L50TM|  p`` p``50J|  p `` p``50K|  p `` p``50|  p `` p``860@|  p- `` p``p60x| @ pd `` p``60| d p `` p``60|  p `` p``$70x,|  p`` p``\70hd|  p `` p``70W|  p `` p``70F|  p< `` p``805| < p`` p``H80%P| ` p `` p``80|  p `` p``80|  p `` p``80 |  p`` p``490< |  p `` p``p90x |  p8 `` p``90 | 8 p\ `` p``90 | \ p6 `` p`` :0( |  p `` p``\:0d |  p `` p``:0} |  p `` p``:0l |  p`` p`` ;0\ | p4`` p``H;0KP f} 4X`` p``;0: e} X|`` p``;0) g} |`` p``;0 h| `` p``4<0< i| `` p``p<0x | p `` p``<0 P|  `` p``<0 | 0pT`` p`` =0( p Txpp pp`\=0d p xp pp`=0 p ? p pp`=0 8 pp `p`>0 P8 pp `p`@>0sH8 ,Pppp pp`|>0b8 PPppp pp`>0Q8 tPppp pp`>0@8 Pppp pp`0?0/88 Pppp pp`l?0tN8 Ppp pp`?0 P8 Qpp pp`?0Q8 (Qpp pp`?0O8 LQpp pp`?0R8 pQpp pp`|?0tS8 Qpp pp`@?08 ; 帑p p p8 p` P$>0P " pp p p8 p` $P>0P  pp p p8 p` $P<>0qI P<$ pHp p p8 p` $P=0XpPl  ם pxp pU p8 p` $P=0?Pl  ⾝ p娢p pY p8 p` $P(=0&P  ⥝ pآp p^ p8 p` $P<0  P  ⌝ pp p] p8 p` $Pp<00P,X  s p8p pV p8 p` $P<0`P\  Z php pW p8 p` $P;0PS8  ppp `p`l 0` 8 0`O ppp `p` OS8 0pppp `p` 8 0 Tppp `p`v 8 048Tppp `p`cL 8 0\`Tppp `p`P 8 0Tppp `p`= 8 0Tppp `p`*t 8 0Tppp `p`, 8 0 ppp `p`(U8 0$ ppp `p` 8 0LPUppp `p`T 8 0txUppp `p`  8 0Uppp `p` 8 0Uppp `p`|8 0Uppp `p`48 0Vppp `p`8 0<Y ppp `p`mYhV8 0dppp `p`Y\8 0Vppp `p`F8 0Vppp `p`38 0Vppp `p` 8 0Wppp `p` <8 0,0Wppp `p`8 0TXWppp `p`8 0|^ ppp `p`h^W8 0ppp `p`8 0Wppp `p`8 0Wppp `p`8 0 Xppp `p`D8 0DHXppp `p`u8 0lpXppp `p`b8 0Xppp `p`Ol 8 0c ppp `p`=(cX8 0!ppp `p`)"8 0 Yppp `p`#8 04 8Yppp `p`L$8 0\ `Yppp `p`Șl,D,`,-+ύ+wp+,+Č*l*#`*ڋ*)K)D))(((x(L( ('''p'D''&&&h&@&&%%%`%4%%$$$X$,$$###P#$#" t Z<  䅁b:h턁@̄pyxXxCw<)}h~Dtt}}d<O|\4zX(yxH(%8 0 Yppp `p`Rp&8  Ypp pp`崑 0<8 0 `Ypp pp`*|  p p`` p``< 0H(Z| 0$ `p`` p``p L pPZppp pp`20p tZpp pp` 30p Zpp pp`H30P| Z``` p``30F| Zp`` p`` 0F| 0 `[p`` p``T8 , p0[pp pp`P 0\T8 0T `X[pp pp`r| p pn pXp8 pp` P$ 0[ nP `  ט 봋X8 0 P$ppp pp`@ P p t ⽘ pp pZ p8 p` P$帅0$ P `  ⡘  Z8 0 P$ppp pp` D Pq pH @ ⇘ pPp p\ p8 p` P$儆0x Pt `|  k 넬 \8 0 P$ppp pp` P p   Q p帬p p[ p8 p` P$P0 P ` t 5  [8 0 P$ppp pp` P  ]p p  p pp` 0p 0D L]pp pp`rdp 0p `x]pp pp``8  p]ppp pp`0L8 0 p]ppp pp`:4 `  `]pp pp`p90'x  ⪗ pp pp ` P$90y P<`D  ⎗ Lp p p p` P$$:0tPpPpxp P  z p pp`t:0| z8 zP^pp pp`帊0 z8 0`^pp pp` z8 0p^pp pp`L 8 0_zpp pp` z8 0} D_pp pp` 8 hl_{pp pp` 0l, {8 0`_pp pp`Zp {8 0p_pp pp`H 8 0_{pp pp`4 {8 0 Ppp pp`"D 8 04P|pp pp`儍0 |8 0X`\Ppp pp` |8 0 pPpp pp`8 0P|pp pp`d8 0P|pp pp`}8 Ppp pp`0}8 0 `$Qpp pp`<}8 0HpLQpp pp`8 0ptQ}pp pp`u8 0Q}pp pp`b~8  Qpp pp`崏0M~8 0`Qpp pp`;d~8 0pRpp pp`) 8 08iL*iH-p`@P9 l 0H/L- @ \$Q Q QX X < I< LD  |߀wA~xH-   |uwwA~0 R( (0S/$$Ao/0H-($@Phhh0HhH-p`@PA9  0H/L- 0@ $( ; LހHxH-   |9w;@~0 R$ $0S( (0S/0 00S8 q0R9!@o/pL-@P pkh`(yheh$chpL`hH-p`@P8 ᢫ 0H/H-   A|w?~0 R$ $0S/( (0S0 q0R1!@o/pL-@P p"h`(0hh$hpLhH-p`@P8 Y 0H/L- ,@ I$Q LBlۀxH-   {w=~ 0 S$$@o"/L-@$gLgH-p`@PU8  0H/L- ,@ $g L`ڀxH-   {w<~0 R( (0S/$$Ao/L-( $@gLgH-p`@P 8 ͪ 0H/0H-M p@ 㼪$P (@PඪV8 ப V পK08ـu4xH-   F{w;~ 0 S$$@o"/$ 8gH-p`@P7 z 0H/L-M L@ i$@ 0dV \K׀Y xH-   zw9~0 R$ $0S/((Ao/pL-($@Pf`ffpLfH-p`@P`7 ! 0H/0H-M T@ ($PsQ4  QV K0րxO-M HKpP4p 8 ( $p pppp $p(p,p0>CM@TL-@$ Au//M-M@P`:@P xHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH4X| 0TxHHHHHHHHHHHHH<hDp Lx( T  0 \ 8 d HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH $R     奂 _dQ Q P _=Q Q _=Q 崀 5`p40 A1kGZLD  Q    Q    Q    Q    Q    Q    Q    Q     Q     Q     Q     Q     Q    Q    Q    Q    Q    Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q vx  Q vm  Q vb  Q vW  Q vL  Q vA  Q v6  Q v+  Q yv   Q v  Q v   Q v  Q v  Q v  Q v  Q v  Q v  Q v  Q w  Q 3w  Q ]w  Q ew  Q u 0 ~~ 0 Wwv 0 wn 0 xf 0 Vy^ 0 yV 0 zN 0 R{F 0 z> 0 {6 0 {. 0 |& 0 G| 0 A| 0 ;| 0 | 0 }pp  <`W P:P`PK 2`p20 A1kGPWA//L-@L LCA  PfK_P _4P b {@P {@ 4P `ͺp K@P @3P `唺0 !P !3Q `夺p RH-M`@pbP_P _3P  0p7/pK0H-MP K0H-,@P - AP PV@K0 /iQ hQ gQ ܸ ܸ ܸH-   7h݋w}H- hLQ * R S J g\  R 7J  hEwG}O-MP`Q$@Pph @R*Q Y IgPP J`PiP hP gP q p obpP# 3P ` 0 pXG` gp J 0  `EGp ` Qb h8pHX8HXt 1/  1/[J`Y PiP p ` PhP ` p 0 F` 0p 7/K  3g͇w} //Qр0H-@P 2 8i,0 LP -  RF0tL-@ FH- M     РK-M@`PR 4K0P 0,@ 4  $  ( U `KW T  $ 4 xKsL-@ k0sM- MPP&`@V hP |  pp  V   3 p9KrM-M`"Q  pq@ U&333333 333333333333333l3l3l3l3  -l3l34--l3-l3l3 &&&&&&l3& l3- l3 l3.l3l3 \ \ \ 333333333333333333333333333333333 , x ,  ..L/X 4/<DLT `/ <T00h!0l(0X4!d!!!!H1D1t1$"x18h,  ,  T" l3l3"""# @ll3l3 D#p###l3 ##l3l3l3l3l3l3l3$ l3 l3 H$|$4$(%Lx%%&h&  l3 &l3 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333&D'p''`<(((DP))d d d )*H*, t*** L++$,4, hp l3l3l3l3l3l3 P,X,l3 , ,, l3 l3l3, RAPP@PPPT@_\@!P]PP:KMi]PQ:KMhP]@]RPP3TGASQ_\T]pP]`WpV`WV @P{hpwh 3]pP]`WpV`WV @P^hpZh1t]!PPP3~ _ci]PUPtb] R KMesV]pPQ]WpPWPX @RQQPu PPM;]pP6] WpR WR= KMq%]pP ] WpR WR' KMn]pP ] WpR WR KMn\pP\ WpR WR KMMo\pP\ WpR WR KM#p\PQ:KMg\PQ:KMh\PQ:KMh  0 Q KMZ3KM"\pP\ WpR WR KMk\pP\ WpR WR KMmp\pPk\ WpR WRr KMImZ\pPU\ WpR WR\ KMnD\pP?\ WpR WRF KMWPPI:@3(RPLP?-WPP8:@!P1 !)(P,! AWPP!:@P (PWPP :@@P @'P PPKV P VpPVWpQWQ @VpPVWpPWP @ KMVpPVWpQWQ ;0iVpPVWpQWQ h;0VVpPVWpQWQ ;0CzVpPuV`WpV`WV| @GaPCa ]VpPXVWpQWQ_  KM HVpPCVWpQWQJ :0 KM1V@-V_ @Q3T3K!VPP,:KMVPP!:KM VPP:KMUPQ :KM`L1UPP:KM>UPP:OH@P @&P @I'P @7UPQ:P@`_P _&P  icPUPQ:P@`_P _&Pr  bP@W@b}P*pXG{PP*LKKM  !12PQ@ 5-00 !KM11PnPP1 5 6OUPKUUP Q KM - @;UPUPTEp2U  Q,pPT4KMpKMUPPP P&P@PP&T &QTpPT WpR WR KMbTpPT WpR WR KMbTpPT WpR WR KMBeTpPT WpR WR KMfTpPT WpR WR KMhTPQ:KM_{TPQ:KM_oTPQz:KM_cTPQn:KM_WTPQb:KMl`KTPQV:KMb`?TPQJ:KMX`3TPQ>:KM`_\X@6KM^+  0 Q  0!PP !!@%PPP@z%RPLP PPPPPPPPPP$PPP84  Y($  Y !$$*-Qw/}Qw}00H-@PSP*0 0H/H-@`pSPSUPQUQ 0H/K-Mp`[^@V^_\`Tp _s$pP _l$`P 8/@_LBCBP BBCW$P BP BO$_P@BKK ^/ /L/P/0H-MP@^_P _!$P  \dK0_ @K00 Qd0H-MP@]_P _$P  `K0_ @K00 `0H-MP@]_P _#P  _K0_ @K00H-MP@]_P _#P  {aK0_ @K00 paL-MOH@P @#P @$PKK hL-M@b]PK#P K0Q u#P 0  $  )*KK 4]H-M@Q pP`Z0 A +1[Fppp ;c1 Qb 0+S(K 0 Q2 Q (K?C0H-M_X@P   @#P  @#P P !@P+ !!@#P @#p#PP   @"P  @_#P P !@P !!P"@P@K0L-MOH@P @"P @9#P @!P!K !!@"PK0H-M@D@PP@"P P P@P@Q @"P K0@"PGDK0L-M@@"QLKL-M@BP Bo"P PKB"QLL-M@m@P m@S"P PKm@"QLL-M@m@"QLKL-M@i@P i@'"P PKi@"QLL-M@P  "P PKs"QLL-M@P !P PKY"QLL-M@P !P PK?"QLL-M@@P @!P PK@""QLL-M@_P _!P PK_"QLL-M@@P @!P PK@!QLL-M@,!QLKL-M@!P ![!P PK!!QLL-M@P A!P PK!QLL-M@@P @%!P PK@!QLpL-M@PPLPKp`!PU  PQP  P P  P PP_\P _ P P _ P P `*0 A1[FJ#P `0 A1[FRPP PPP0 e0H-M_@X@P   @ P  @! PP   @ P  @ P! P ! Q!@HZDZ_LQ _b Q P _X Q @K0H-MP@PK`= PU 6 PP @ P70 Ap1KE/P `w0 A@1[FpZpP  P z P u P @@L-@M LPL-@  : LPL-@  'Q LPL-@Q LPH-M@PY`Y_|VP` _`P _PP _@_LBCBP BBCP BP B}_LPH@BCK0 ^H-M@PCY`>Y_|VP` _[`P _TPP 0_@_LBCBP BBC?P BP B7_LPH@BCK0 _H-M@PX`X_|VP` _`P _PP H_@_LBCBP BBCP BP B_LPH@BCKH-M@PX`X_|VP` _`P _PP H_@_LBCBP BBCP BP B_LPH@BCK0 '_H-M@PvX`qX_|VP` _`P _PP O_@_LBCBP BBCrP BP Bj_LPH@BCK0 ._pL-P@.X`*X pLe_H-Mo@h@P   @?P  @ PP   @+P  @ P!!PP !P PM !!P PG!PC !FP!K@PW` W_|VP` _`P _PP  YP_\ BSBP BBSP BP B_\PX@BSKH-M@PW`W_|VP` _`P _PP IZ@_LBCBP BBCP BP B_LPH@BCKH-M@PQW`LW_|VP` _i`P _bPP [@_LBCBP BBCMP BP BE_LPH@BCKH-M@PW` W_|VP` _(`P _!PP G[@_LBCBP BBC P BP B_LPH@BCK0 &[H-M@PV`V_|VP` _`P _PP [@_LBCBP BBCP BP B_LPH@BCK0 p[_ @/M--M 0@`p P   P R 0S002!0S Q Q7pWPu pdW PPpPP*PP ppPP2l ` P ( A0 A` >  a`P H I4 A10 A` $ ++b a P +`I  Qp0+Spppg! "(K l¨¨///0H-M_\@P K0@yBPp Q _LXdp|((   DPXdltp!n_ l@i@fda b _<W Z1+SP0 QPPV N4K8HPETB<?E J@9D6H3L0@>, A&- 00 QP1+SPP&  ! "0 QP1+SPP   K B f!P ?CA0A@8@H-`P@dTp`T HnH-`P@STpOT& LPH-`P@:Tp6T Q LP0H-MB P PQP@;PP@K00 ]!/!/0H-M@PP   K0HL   0 Q  0kK0H-   N&w}L-@  rL9L/{oO-M@ R 2R 0! 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2d3d3d3d3< < d3d34|d3d3d3H d3 d3 d3H d3d3d3T T T 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2   @ 8<840,(|$x t Lx(T0\ 8d@lHtd  d ` ` 4    D d3d3T | !@!H x!!d3d3 !!$"4"d3 @"P"`"d3d3d3d3d3d3d3" d3 d3 "#h## $d$ $%`%%%L&&< &  d3 'd3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 24'''$(((H)))8***`++,P,,- D-l--d -- . ..d//<0H0 l0x0 |3|3|3|3|3|3 00|3     0 00 |3 |3|3(1 "  @X   !@Q #@N $@K/,@H ! y F P=:9 "@7`  eE Q):P$ _,VEPE"Y A#H !DEpE`WpV`WV  Pp P E! P 3E P] :PP PK E R  EpE`WpV`WV P^PpZP1 Ls  kEp`fE WpR WR YVEp`QE WpR WR RAEp`B Q8:BM3A Q-:TM(A Q":LMA Q:CMA Q ::MA Q:3MA Q:,MA Q:>MA Q:5MA Q:,MA Q:#MA Q:MA Q:MvA Q:#MkA Q:~M`A Q:uMUA Q:lMJA Q}:cMx?A Qr:ZMm4A Qg:QMb)A Q\:cMWA QQ:MLA QF:MAA Q;:M6@ Q0:M+@ Q%:M @ Q:5T O$G  0 Q1+S 1+S0 Qpppp3 10! P@QV@P @P @@P !@P @` V` Pp@Q\Vg@P @Z@QfJP@QaV  x uߒ qݒ@ P;,  4H\p Y@ QR:EVM@ P:P@@ P:PBP BPB? P:Pi@P m@Pm@0AA? P:Pm@u? Pz:Pi@P i@Pi@e? Pd:PP PR? PP:P@mAP~ @Px@:? P9:P_Pi _Pd_'w? P%:P@PT @qPN@a? P:P"PL P? P:P!P. !LP)!WpQWQ^  Y>p`> WpR WRJ WTD>p`>WpQWQ5 >p`>WpPWP"  6 bL`>p`>WpPWP >p`>WpQWQ  Q bL`}>p`x>WpQWQ  i>p`d>WpQWQ  5U>p`P>WpQWQ  A>p`<>WpQWQ  N->p`(>WpQWQ  >p>`WpV`WV HpH P  f=p`=WpQWQS  N=p`=WpQWQ?  :=p`=WpQWQ+  G&=p`=WpQWQ  t=p`=WpQWQ  `  KO=P=_,(@P 3U 3~= P:t= P:j= P:D`= Q:;HU=`PS:PT@P`LG= P:_X@P @AP @P P,= Q:P`H_P _%P  `N = Q:P`G_P _ P  J < Q:P`G_P _ Pe  I < Q:P`G_P _ PJ  K u g$@dP*0! @ @ @ m @b P! 1 !d(`a@ Z00 ! _,(@.P`Py  0 Q  0@o P `d! P !!Pa  P @ P"L  bK`@`@QD @F P>@ PWE`6 f a \ W R M H C > 9 PP`  84  A  A䉨vT}vU}0H-M @PU P$Q"Q0. UPK0  P  R  P@K0 0 0AvS:O-M-MP;@;`V`<` ;P@ V <K P @`P @K P <`P! `@ R @K| P <``V`Tpg;  Q)p`T8KЍ8`V $p0W00S`Q 0R@`K4@T N! A! AD A.`<K @$@(p岋TN APP  P P8 0 AVpa  y `N@T-<K @ @p剛T/ APP P P ;0 AVpa  x`N@T<K A H<K0 A`N <K! A H<K0 A `N<P> ,`T~    op: l o  0 S  o o l o+S8| o+S2h o~ Qp+Sppp` ,%6a6l6_6T6B6v60H-M@ P  P @q3 Q @ @  EQ@ K0H@K0 EQ  0 QP1+SPPPK0/0E,@Q&K0@H-P`:@:T@QTQP`DpD FHH-P`9@9T@QTQP`DpD !HK-M`9P 9@ T@@$  Q   l@  O P TK `pP`@ 1 A+q0{E a N1kD+bNJ0 Qp1+Sppp0H-M@P^QU/AKR\!0T@K0="Q !Q !Q g#Q #Q >"Q Q8Q:@}b QwLK0K08Qj:@@Q @ P` PK08 RS:K0H28 RG:K0H[8Q;:K0HC8 R/:K0H8Q#:OH@Q @ P @ P @!K0!Q !!@z QK0@ QL0H--M  RKU0 A H % K0 /K-pP1I@ 0 0kG0KE1+C`A@pL- 0+C@1LP` `P@ p3KA2kE+ @ p cNb  p;+; +a;`+N+/  / /M--M@P Q/kWB 0+AH  '  T  T    KH--M@$QB Q@`VJ _0 A `NV p P0 Ap `NV. 0S 0S @0S ;S 0S 0S*   Q   2P @P 0 A `N QK  uLu R  R @ R +R  R  R 0 Q/ T M8  Q " 2Ѝ 0 Q/ st///H--M@$Q< Q<`V;U0 A `V Pp0 Ap`NV  R5/0 3 0`r( p BPppW P q`P P  0 A`N ` QK rQ 0 Q /t0 0`r  BPQ \q1 Q / a 0 Q/ q!/ R RQ0H-MP@ K0 =+/A+q6+ 4+H)J.+ Z@ !+J + + J;$+ Q/ AAA0 A =+1+C/A+q5+ 3+H)J-+ Z@  +J + + J;$+ Q/AAAM-MP Q/ @ ,@@ K@pW @W ` `@WD  *;v:}/H- BR}0 !              DLT\                                     $$$$$$$  ^   !R !R !R !R     6mvo(} Q'M 0 Q! /  c/aL   `;`+Ec+N+ Zr 1PaB@=4`6 J. +  + Jb ! J @J J  /A C/AA0CAAA ! /0+A  c/aK   `;`+Dc+N+Zr 1PaB@5`7 J/ ,  + J`+" J @J J  /A C/ AA0CAAA4+1 A0+CZ &J++Z JZ @J+Z  J+Z /A+Z S// AAA^/$H$/^/0H-- Aȋ jP@ 0 A H % 000H--M   R  ȋ jKU0 A H % K000/O- MpPPP P@P@AoB:@P5 @`@.P' P.Q@P$Z @Za`Q P V P  X@P*K@  4!v#!}/K-M@`Q%pWP P PF PU 3$@@ vAo᠒ K RX,P pPGP:P WpPRQ  Q KK.M--MP@`H 0P  P1 =S0S> R RN 2(KMpW( Q` V`Q `V pPpW(KR R; ;++a;`+N+^P `pV pP @pP  pP pP pP X 0 A `NV%J0 A `x`p @P  R 10 A `Nɋ |OO Q/QQ///O-M-0MP($U pq WPP0KЍu U (@(`P PPWP $$PPV (~(`P: $($  R  $pP0SrjP =N  7N C 0ɋ poU $;P `(`k Z(Je Z JZ@JX ZJR Z JL ZS PM `X`ppX`,P!, R P pGUPU O  lP) AAAO-Mp  `@ P P+  P6 VP@ XP[ . 4P& ,`V!P 0  P@V Z`pP0  P@ZKV  0KOX#P;+ cb N ++ cNb   0KOx^PU+  Q2 S4 ;/C' R @ R +R  R  R.  ;3Rp0p`s `0CP``VKt+2 S 0AAa 1 C J;+;; cN1 Sb N w; $H HM-M`PR@P@RPp! R P @DWpWKM-p?+1{AP`@0+CZ @(J2+Z @ JZ @@J%+Z KJ+Z @ J+Z @@S@NL  `P AAAL--0Q@QT0@T ; @Z@(J2 Z@ JZ@@J% ZKJ Z@ J Z@@S@K AAA^$5   R1 2(&0 S @0 S ; S 0 S 0 Sp00"d `r 0 BP00S + r /dCPC> ^4+,  R+  /0 S @0 S ; S 0 S 0 S00";x `r 0 BP00S K t;++;M /; hBTBK-M@)`P P" T pV gP`pWa@PU p  0p@UKO-M-M`^P  R P턫) yQ @Q Q Q Qih`p @P  R 1 ^@ pKG ʋ A˛ >ɻ@ȫE KJNZ@(J< Z@ JZ@@J/ ZKJ) Z@ J# Z@@S@J @KЍAAAD@,@L--< A@+CZ@(J2 Z@ JZ@@J% ZKJ Z@ J Z@@S@@J  AAApL--@`P A A!H(&% B PJ? PJ@PJ8 [ J5 PJ2 PPCI "p& ȋ jI H ppD@ @0 0. AAAvwpL--` API ȋ@jP!& 0 AH $ 0 0.pUv K--M`P P{T"0 AH $ U% %U FQ   KK@Q!?Q0@ aI '% @J" @J@@J K J @J @@C:I  KAAApL-P@q` I BPpO-M-M`  pv0KЍV P P @P  PV P `Q Rjpj H H  pV P PPY Y Y  R R RQ P  ɋ `aPH PA ᛴaN`T pZp(JM Zp JZ@pJ@ Z{J: Zp J4 ZppSpNH  P    00 0 #AAA Q:QQ/ 00S Q// PY Pt PJQ  ,   P /p1PZ@PP.@P/^@P/@P/]PPPPPl/ P/ Px/@PMڟ@P}@Pʠ@P4/P/^@PD/P P P/ P/@PP/P/P/t PIP JP/NP/^P/_b@P@P@P/@P/@P/DiP/mP/P/6]P^P8/^P /P</#@P@P/ @P/@P / @Q|x/P/P/P /PP/JP`/NP/z@P{@P/{@Pt/@P//P/PX/ P/P/P/~@P/@P/@P/}T/ Ph/uP/ P</l P/ PD/b Px/P/XPx/@P/MP@/P/D^PT/P/9@Px/@P/,@P$/@P@/ Pp/ P/c@P/g@P/ PT/P////////////6<:: ~~;d:= 6uft08A'W0F*2W&02>-G@"z +;RI}O-MPBP ` (  `uYU R@㈀ qP  dY!` \YPE`T@U   QYKo)%]vO- MPPX< 3Y yx KO `   p  Y 0+S Y 0+S Y ` pKl  X`VLpW  A X @pV +  X`VpW  A X @wpVp  P  X 0+SN0 XK40  U)Zv1Zv#vUvW|v[vL-M@EK / /M-`p @HD P AD p`pL-P@ 2D `!,D pH- 0@  |/ᅹK-M  `*PP0 @DpQU U5   R  RQ *PH @pQU@QU`  PN: vKC ^ua =@QU5 0 0S 0 S R U g*P&  !RPP/P @T@P P T P @@aPKP `V`P QQ @ PV P ``K-@[C `Y `( p@QU! Q QP ) 1S S !R R!P  ` V0H-M@P PUPPK07PU 0P PP@/4O-4MP$ @ 8p8 p p 0`0 0(`S$@ p$RQp$@W   PQ( P$pW" @p00 a 0   `0Vo S 0PdV *Pb0aP w"$@WY$ !(P P(P  Z(@"_`P !p 0P 2P7P` V P/? 0d'P ! 0 pPW_`P ! 0P `VT_`P ! 0P `T `XV p@P`  !0 0"P P(@$Q Q Q (@$XQX0QS Q S p00S 0 p4`/pH4 &P U"$Q} \ \ 0  d !0 , , , ,  , , 04" !8d!!!!!!!!`<< 4"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!t t t @T T T , , ,        !!!!!    < ! ,<     P 0,8t  , L0!!!! < < < <   4 h !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ,!  ,| $ | | !P!\P| !\ P P P P \\\\\T!\!!\ \\\D     0 "_,(@  @  _<  _< _,P`   _< *`a@ C #  _<  _<PD / @`ppq ppQW `0TU*0R`100SP#  K4}  K40  !0s  !0 A#  _<    K4  _< vTWP Pc "@^ P /? 0m#땈vJ~ P /? 0[#R) 0 Qp1+Sp0   DQpTP/P? 0:#    }T\ 4P /? 0!#   g$@  0    0  ?   09  0    !0  4   0  0S PtUvb  0  K4C  00  /,@  !00  {0  /  0z    NDQpX/? 0"릭01  ]  !0X  !0  0N ! b_<0@  D _-X02@  : 0 Qp1+Sp0  . !@A A@  0  0  0  !  !0 M0! @ @ @  2  0  0  0 !QB` HQvQ/? 0" !   ? O$ $@P   P K!P/? 0!TP /? 0! WPT ?ZOUv /? 0! -   [T> PY /? 0!Pj xZ1PT  W2$0 U6 Q:P' @"pVpP``a ``R.V PpDT*pBPqp`#VP/? 0N!G` |P/? 0=!QQ PQ Q (' @0pppW! Q _<0@    { /? 0!Pe @0P` `a ppYW $ ` TU*$  R!P ` RV0VP PQ7$@S 2902@  ӫX!P #@T &$0P / @`ppq ppQgW `@TU *@R`Q ppWL P.> 0   4O  4J $^pW o@`@(  PPP+Ub  Q]* 2!0V P! PkY  X Pro$Z/ Y@ $((pW(P P ,< 0 P ,< 0   0`c@  0E  0    0  TW.P5 fP $@P @`ppq ppRW `0TU*0R`100SP/  4  4:  0  0x  T *: 0  !0d  !0_U0  YO l AQ p9 *: 0xxvn~  _4KO:qxv&~Uwv~ZKTWPO )P *P  )P z*P )9 0;  !0:wvWTZ'  2  >~j  0 $@ KO ?Qp(8 0  P@T o`@@ 01 pp pp$0P PW  Q* <P0T  0`c@  0  4  4    0  0  2  0t  4o $auv~  0c  0^ KO _,mZ LH(H8 0  _<F K$Z 0 Qp1+Sp O  j?Qp,(&(6 0Z !S 6,(@3  N?Qpz K  0  m @%5 04HD% .|%|5 0&$4 0XT%T5 0%5 0sv~l%5 0d`%`5 0$4 0$4 0urv*~ 0p#4 $4 0Arv~[#3 0#3 0qv$4 0~@<#<3 0xt$t4 0#3 0eqv~$#3 0#3 0#3 0#3 0} ?C#3 0p#3 0h#3 0`hd#d3 0X=pv~HD#D3 0M40#03 0Eov~!1 0:!1 02!1 0*!1 0""2 0|"|2 0ov~(`\"\2 0!1 0!1 0bv~}cv2~Jbv }kv2~O%mv~yiv.~ϼavz~Qkv~cv|1bv~ҵgv~^bv~mdv"~hv~gv~cvR~6cv~]cv~Mbvf~ _v~_v~_vb~^v~av:~ò=cv~Yav~_vB~`bv~*cv~Z9av~]bv~޵av~m_v"~D`v~$`vz~avZ~Tav~ڵ_v~ճ`vZ~e`v~9`v~`v~`v:~1M_v~!_v~}ev~7S/K-M`p@  H 8FL HP  P HD  0P,P(P$P PP@PP K@  H8o `  ` Hm 0`,`(`$` ``@`<`8`4`DI F IZx I d I@J 0<8  0=dʪʪʪ ʪװvTvy|O-dM@P P p`@P08" 4  04p0P8`< `pVQ 0@ P W P`UE 0p7P; P @T0@T- , P-X  P*X   P 7RQ  Q0ZPU `@V`4 K 0 0 p 0 `t4d  `<8 80 0($ $0 0iQv~IQv~Qv~~Qv9O-MPP0T/ H4 F$(A! @ AR:4X, @\TL@P`T ppo\Wr@V<@@`T ppn\Wq@V(X$P YQ@p 00W S  RS R *1pRp <8/8? 0 @P p{pGbT#4 !W`3b  ` 2T4@ 8 ( 4@0@,@(@8<@@@D@HHK$@ P<@ @@ D@ H@ 0@ L@,@ D,0 @0pRD t W(@ D, "5%$D\!D RN @P,%510 SBD@0:L0 S P 0L 0E@0,<@ RP(@P\`2q,0@PPD 0P(B@PD ,0#5D<@ B@@T:D R( P$P `@  q$ (00CCQ*P`V:$(Q A 0Aq\pbpa  R: @`P P* `TM3 `T4@ 8 ( 4@0@,@(@8<@@@D@HHK$@ `<@ @@ D@ H@ 0@ L@,@ {,0 @0pRD t W(@ D, "5% DT3 ` PA@ T3 Q@ P  P\aDPD `A/@p@,'5 1%QD@ P:L0S  R+0 LG@,\Q 0 \S ? =2!  <@Q P$FPQ 00Q1P$Q$$  R Q1P 0QQR0PQ1 R\Q/-"A\qW \Q TP  @Q2 p Pg@o? =2!0 Y Q ?  1QQ.- 0Q1010a`V` P`P ,0 @0`RD d V(@ D$, "5`%ADYC \Q;/-"12@1 Q,P$ \ \q,0 @0pRD t W(_@ D , "5%D$<@AAXF:DPP$@(T6 HPK`pW+ \D H Q< @ ᛵ HDQ<P \ \ R /-"(@T($@(TX ,P0 U 0"S 0tW00S< S  PPj`XVm0PU(@T$@T, P(Y p AU`, 0A@1,0`pQ `!0F,`0AAV:(@TT0 K"2 0 "2 0|x"x2 0!1 00" TP"P2 0@<"<2 0!1 0!1 0!1 084!41 0xt!t1 0d`!`1 00  ǩ 0 0t($!$1 0l 0 0d<8 80 0\}Bv2~@v~=Bv~u@v*~liOv~zYAv~$@v!Bv6@vJ~Avn~ۚBvR~]Bv~AvN~yAv.~כ5Av~Avʣ~Av~<Av~j@vj~gO-,M$  R4$   pB @"Q L0A,00P0ECX$01 P$1P 0S, Z 0S@T& (`J Q0FC1R PP $PU`@pPP PK 0 4`xPt  0P$ p 0 p4`$P  0 P4=vL=vapL-@^ @$1`E!UQAQ P@PD U@QNAAT:$0ˠS@ T0$  NAATT TR $ˠ0Q@P U$@0^RNA Q  BR:0B!S`V0 pO- M@ ` S `PWP`  @ P*@ @@ V5` V2 p@Z P PPP * PP P PP"p@@P  K0Q R0 /L-@AGH- R 0@SP P`pWpp2P!pW`U `T@%A  RP1pL- R 0^@ @P`V``2@!`VPT PS0%A  RppH- 0@0R ^0 AM-0@R R P\`@ ` p0S002`!0SpV 0U0%@D  R 1\  @ 0S002@!0S T  R R  R  0S 0 pW R A  M芣       /L-@ P "P ! R 0\0P1/Q/0R0/0H-M@$P!  0- Q K0H-@P Q 0pPp 0 `pS01V0 @WQ R  @R `Q`` PBq 1T _- HQ/0H-@P0HK-P `@FP'*A AA!.rPP P@*@!pF AV  Y@ K@pK-P `@FP'*A AA!.rPP P@* !pF AV  Y@ K莢@pK-@P 0SRQPL!L1 0p OW q=0`Fⲃ0@S0`pP`  00S 0E3 U   (0 R 03 8 2/$ 0 02vz~1vB~O-M`0SLp@ O   P P HZ Bp  PqYpPOP P 1Z Ap  PZYpPO  0JpXKK/ R   R   R   R QE RE/L-@P$ DDQ QQ QDP PDP @PQ/@  @ R  R RQ Q/ 4P/ R/ 4Q/ Q// Q//H-Pp@`P`  00S 02 W O 8 H/O-M@`-p0GpP ;YP pPU dXPp@X   @$  (  ,` 0Q  RQ Q Q RQ zQx /O  4 Rq `QOO4P`,P X A@ZW` `Q% AO P X`A p`VW`p@(P K6Pq `P (P(0OP@K@ HH8o78<7 @QP P P P P P@O( P RX` Ap`VzW`p@7P K80 HP$0P P[IP P46 50 GP `Q: $Q) @P  XP ,PU 2WP@Q QQ P0 QQ QQ QBP P(@FP @I(0O/QBP O @0 S   ?D8 ( HL@Q(m8@TPX\`dh&cL`p Q2:0 HOX@ @0 S   0D0 P @ /< @Q:`4 8` 0@ , (@ P@K$ bLP<@` P]`0(@?OP&`  P:,PU 1W\{`PC >  P::PO 0@p0W 00 D P0 ?@ <    @RP@K4 8 0` , (` $ bLpP<@=P  Q @ `bA@ZV`(P@KO @0 S   ?D P ( @ < @Q(匷4 8 0 , ( $ Fb>p Q:0(@?O `'0  `0tpWpW pWpW pWpW pWpW%  0 P(@pMpQ    o@Ժ <0S P[@8ojh 6 5嚑 6PAoQ6 P:L H[@G[oOP , @P$APZ*'@T ! AP P Q@P U ,Z U@ KO-MsP0O`p` 0@T 0l. S   8 2/S    K(8 KO/ /O/   /(8 // /O/   /(8 //pL-   P@BP SUP `P|TP@Q p88 0`Pp 0 0j  zvb~~L-@ e}Q: \}Q1 S}Q( J}Q A}Ql 8}Q L /}Q, &}Q  }Q }Q  }Q }Q |Ql |QL |Q, |Q  |Q |Q |Q |Q |Ql |Q}L |Qt, |Qk  |Qb |QY {|QP r|QG i|Q>l `|Q5L W|Q,, N|Q#  E|Q <|Q 3|Q *|QyyyyyryeyYyIy;y&yyyxxxxxsxexQx>x(xxxwwwwww{wswhw`wHwL-@ {Q\ {Q < {Q {Q {Q {Q {Q {Q| {Q\ {Q< {Q {Q {Q {Q {{Q r{Q| i{Q\ `{Q}< W{Qt N{Qk E{Qb <{QY 3{QP *{QG| !{Q>\ {Q5< {Q, {Q# zQ zQ zQ zQvvv|vwv`vTv;v(vvvuuuuuuu~ufuXuBu0u$uuttttttt0H-@| PP d P L P 4 P  P  P  P  P  P  P  P t ~P \ wP D pP , iP  bP  [P  TP  MP  FP|  ?Pw  8Pr l 1Pm T *Ph < #Pc $ P^  PY  PT  PO  PJ  PE  Q00000000000000000000000000000000qqqqqxqtqcqXqNqBq5q'q$qqqq qpppppppppppppp///// Q//L-@ pL-PP `@@pLp0H-@P P0H0pL-PP `@pLp0H-@P PA0H0pL-PP `@ApLp P  R//\/H- H/pL-MP@P ` T Z 0S @S 3/KpL Q |GKp0[pL-MP@P$ `P ^  0R }  R  0R R P  RT Z 0S PS 3/Kp2/TL Q 1GKpZ0H-MP@P P 5   P  RT Z 0S PS 3/K02/TL Q FK0YO-,MPSSSSSSSS T$THTLTpTtTTTTTTTUU8U6/PL0QP`V N?6/dH`V >6/P|`QP`V Z?6/x`V =6/PQP`V f?6/`V >6/PQP`V r?6/`V >6/P QP`V ~?6/$`V !>6/P< RP`V ?6/T8`V =6/PlPRP`V ?6/h`V '>6/PRP`V ?6/`V *>6/PRP`V ?6/`V ->6/PRP`V ?6/`V <6/P,SP`V ?6/D(`V 3>6/P\@SP`V ?6/tX`V 6>6/PpSP`V ?6/`V ;>6/PSP`V ?6/`V ;6/P<TP`V (,0$446/d8`V E>6/P`TP`V x|$46/`V J>6/PTP`V $46/`V O>6/P,UP`V  %$56/T(`V =6/P|PUP`V hlp%t56/x`V Y>6/PUP`V %56/`V ^>6/PUP`V  &66/D`V c>6/Pl@VP`V X\`&d66/h`V =6/PVP`V &66/`V m>6/P VP`V '76/4`V r>6/P\0WP`V HLP'T76/X`V w>6/PWP`V '76/`V '76/PWP`V }>6/`V '76/PWP`V  (86/8`V $(,(086/PT4XP`V !=6/pP`V \`d(h86/PlXP`V x|(86/`V (86/PXP`V >6/`V (86/PXP`V (86/`V   )96/P4 YP`V >6/P0 `V < @D)H96/Pl LYP`V X \`)d96/h `V t x|)96/P YP`V >6/ `V )96/P YP`V )96/ `V )96/P YP`V  *:6/4 `V >6/PL 0ZP`V 8 <@*D:6/dH `V >6/P| `ZP`V h lp*t:6/x `V *=6/P ZP`V *:6/ `V >6/P ZP`V *:6/ `V >6/P ZP`V +;6/$ `V >6/P [p /0H-@P~ V 0Ʒ V 0 0H< L-M@` 0 0 !KЌK-M@ 1/ 0 p` p  R0T 0! ` 0 h!`[V @pP V!pp`[VK4O-M 0 ' @0 @TXh O@`@P@DT P `KM-Mp@[P``[pxP h 1/W  0 0 R0  0[P[`K@H-M@[P8 PP7'  1/`p  0p P p !pp[P  [[[P[K 0 0!u@~oH-MP`Qt @   `pWPK [R/[/L-M@ P Kw @oK0H-xM@, PT::K0O-4M@@@@ @@@@[P; `[, 1/ pP $ @@@@0 T 0V 0" (@,0( !@@@P[U (`p(,!@@P[U $PQD ` P@T P  KO-$M@pv P`0S* YD` p  $(Nf`f@ C<   0 P<@pSpT(I(B0  |||| @8`0pV;H  |||| @0PX  T 1p!JAG T +*(J0 ||||0U T  !B@p T :AI0Q:KO-DMp @P P` `0h @ 08P`T`b (L(A0pp  |||| @ `4$pRGD  nnnnP 50@`T@E ^^^^bJ@T7(J 10S , V ( aL!@ V :!AB`0V:R 0p R: V0 P R:KO-MP0E| |L1S'p18XE pRpPE!R*(EHK 0 P E  @( E0xE P wOG`@0 0TP 0D p@ @ HppQ pI TZD  @1 p Y O*<0@`4 @p  L0PL HP D`< ( F@p H 8pD@ ;;;;TPV1 <@D@,$(0 `LPP LVPP 0RL* (@((L((( TP@ H@@@ $E 8H0K^LPPL / @`<0H40(0(`F(H(JP l&(0 ( E0+ ( E(0 00PpEppxpEP`E`(0 ( E00 pMH0@o᠂K0H-@P!40 q  !0 S PP P1τRR 1/,R0R0DϬ0H-@!0pP0 S  4P1τRR 1/,R0R0H--- A) ዴ#)ዴ'ȋI j@ ! a H  j@P[`pY1kG0 Aa H p0 Q>>CO-MBpT B(@A@NT( $KNaH@FeNkICTK0m1W᤟J@@n@NFVwo~Ghs@ mFApTSOqgPG\\LϊScdPnV%Ah[ `jmFWMhF`kapWp pR^ P` @@U`3  ;@<@^^ 0 @ N@^ 0p70@N p20=^pN@(\^=N@#z^\N@^zN@^N@^N@^N @ A^N @2!^N @@@@ " " $" ("KM- e BJPaENJmQ0?BP/@ STSυ2?O$A l@@U`@@c᥏rn_&fdp'b7  Pg6 @T @Q * @TK| @T`vqt@PP(7 `P(pU @&(PEEP*FA!.rPP P*pE`AU(@ ۪PaT &(p`5t@PL8 K(@8  T @D @(,PkD @@DP*q AA!.rPPY Pp*`DPTX  ᙪYD ,PX`j jJ@pW/*`0p@tP @UUATvPPPp@t`@V  f J,P@| `Gp@XT35p`<\3@t@ P O@T!@!P i#\@\+ AP P O@:!P!PX #DP\\DP/DH` A0pqW W 0pqWXPXQY @p `A02Q20SYpP P p\DP8p4 $Q Q$Q wP\w\w\HP P 5  P4 PdlH`@h P\Wv\PS |vpPc @P`P`Tp` /   pU*p P9PE* *JLEU5U5APgDP``A* *@QPP`  UUM@PL`UPp  @ PAX  `TpY@P`( 8 8 K!pP totxp$tPZ p`Px@8@KZJ00`8  $ 8$Q{PwP8 p0pGGqRB|0054P 0 10`8  $  P1'KLP 8 $ BB! R 0 qQ 0S1P8 p0pGGqRB60054P 0 0`8  $ 'K P! 8p$0d`!R rp00 pGGqS01S040 B RAP8 p0pGGqRB0054P 0 `PyptD% 8  B08P  $ Z PZJ 8 $ BB! R0 qQ  0S P1'KPP8 p0pGGqRB0054P 0 L0`8  $ 8$ 0 Q'KcP_P8 p0pGGqRBd0054P 0 `P08P  $ 9Z PZJ 8$P0P'K'P#P8 p0pGGqRB(0054P 0 0`8  $ 8$Q'KPP8 p0pGGqRBX\`X0\`054P 0 \`t@PPPU4j ,PH0Q8pjJ @   BQ6*PSP @ AWm*Dpp@tTT t@j<P@ P Y ](P YPKq@PHK˦  ;d\u&~H- M-3`@POv` P @`P  `+ a3p VF` P @`hP , Pp P @pTP V /P` P @`>P  /U+ V O-$MPA@P@*  !|9 dP `pTT PssPMpP @P 1 T  4` P @\ @KO-M PA \  0 0SY/ p R( @L`0`P0QUR ! Q: L 01S 0`aS  `aVI pYKO辥  YuA"~K- M DP$ @⪚J AA Q p0apV qPV1p0SP@Pj jJ p0pGGqRB005P KO-M j jJ@ 0 BB!S  R p! Q) P R R6 KP  R 0  pP P*   0P  0Rq* O0 mJP  R 0  UUA BH PQ A* *@AQPPB /0 U UMP0Qpp  Rq Y /    0C@W:p 0Cp!pWpC0 0CGqWKꉤO-Mj jJUU@UUAJP>ppGGqz z@VPPP. PP`p P0UuUuM0W` Za ` / qA {Xp`@ KO9xKP9O-M@ AB1* *J S;*UuUuA @H1ᓒ PF AA* *@QPPp6 x pa0pW 0UXUMQ qQ  *Zp` KOw 0 PPU 0KKpۣ 0S R//O-MP`  `z JzJJ  `J@@Q[]Ps'!" a.PD Pq 0 2/P 0  2/PW 0   2/Pd 0   2/PX 0 O 2/ p2/W P& 0 8P5 0  2/P& 0 0  2/P 0  2/P pTg 2/ pGP 0   Y : 0 V`   I  2/P pG 2/P Z z YzJ  2/P 0   P   `p  PMWz zJ JI@AQ 2/ pPW p G2/P pZ0 W0  `G ` 2/P p H 2/PV:P W `Pt8 PJ2/P 0 K  KO ` 2/ Jp2/Wk PM0  2/Pu 0E $` 0Ph pJ 2/P_ 0   2/PQ 0   2/PC 0  2/P5       K  0JPKP 0  2/P 0 KKK-M`P@ 2/ p2/W P p*pP'  2/pP  2/pP p 2/P"  2/P  2/P pppKO-M @`2/ P 2/U P 0+P/ 0  2/P! 0 0   2/P 0   @$P& P p2/P 0 @t0$ 2/ @DP$0@ PKO-MpA @J`Pp P-P4 @@2/P) 0 @ 2/p  @2/Wo P 0 P 2/ `@2/Tw P @0 p  ` 0@ $p  0` @@2/P 0  2/P 0   2/P 0  @ 2/P 0 P 0  ` 2/P 0  PL 0  2/P= 0 40  2/P\ 0  P@0  2/pP 0 $P. @  2/P 0 P` pu0$ 2/ PEP$0Zp P`P @oRKO- MPIEPm*@bAA"rPP_ P`_*E"2pY G PEp0 H%R `I @Pp@pp@p0000PEX`V pPFW Q  @AP W pU`X KOr0XK`O-M`p  pJJ  pJPAP{Qڠ/0 p/Q !`0 2/P   2/@ 2/T\ Pl  Us  2/P @ T * W p@I 2/P: 2/P T T T  2/P Y  p  PdY{JDQrfP  2/P   2/Ps m@ 2/P TA T> @ 2/P@Z3T,pD 2/P @8 2/PW:P YpP8`K  KO 2/P = 2/@ 2/T P%  K 0J`'KJ 0AKP   2/PK 2/P  KK-@`P 2/p 2/W P p pP  2/pP   2/pP p 2/P  2/P  2/P pppO-M `pP@ 2/P(  2/P  2/P  2/P @@@@KO-M 2/p@ 2/T P P  2/P     2/P P `@ 2/P pPu   2/PEP p` PpKO- MPAp`@P-D 2/P  2/@ 2/T( PB F 04| 2/@ 2/Y P3 9 0FpbP`  2/PV RP  2/P  2/P> 9   2/P P, ` 2/P @ `v   2/`FP @Y @P@o᠂KO-$MP0@CP*`>s0A"rAPAP Pp*p! @B p@ p ``P"  F JVUAQr* @V p Ί Jp0b"S  D A`A@CE P @" BP p pJP PpP @DPX 0 000000 PPPRJ P0S  @CP U0U KO.oAUKn)O-,M P  Op @D OP R'`  `Vy&`@@T@@ 0$@(@@@@ @faP0  0\pP E@ P ' B` RA& @0@P E KO-M@ p0` P Py1/P@ "0l D`Q>ZP P &0@`1B 0S%0 P !P `@V HPKP $0(, (, `T`P  KM-8M`0P00 00PPPPP^P2 p P @DP 0P`9EV P 0P`P  P $ (`,04 (PPKH-(M` pV @ PP 0 0  `WKO-M @p P @PP +01/P pP  & `Y1%Pvap 5 0cPq (1/`,PP % @ R % `0`BPP Pm  0``C@@ `P %Pp@ @PpU$P@`&` P %0 B@0S$0 @`  pK 0 0]ub}}O-M `  DK0Z ,Pp P Q% B@ Rz$ p  , P pOP 5% A@ P^$p,D K0@P ,pD@K.@Q$ P $ Q P P..  / +Pej`d 09 $ Y P d P P..   @P6;`p,fP ,D,@d P 0dD0K   p$JP ,( P p  P HP L PU3  @`PE R gpO,P i$ A Q#pp 0P>UDK KK-p`,@P᷈P @`    R @8P! (1/DQ (1/Q $` @`V:#`  0sP 0 0,Wuj}}K-@, p+PP # A` P #p`oOp Q @pP P # B` R" po2 U 5n᎝p wP 0P  0 0~ Vu}C}H-Mn@`P P 0Pȫ PP  Q24 AR0! |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |" |"|"|"|"|" |"|"|" |"l |"l |"l l l |"|"|"|"|" |"|"|" |" |"|"|"|"|" |"|"|"|" |"|"|"|" |"|"|"|" |"|"|"|" l |"|"|"|" |" |"|"|"|"|"|" |" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |" |" |" |" |" |" |" |" |" |" |" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |" |"|" |" |" |"|"|"|"|"|"|" |" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" l l l l |" |" |" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |" |"|"|"|"|" |" |" |"|"|"|" |"|"|"|" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |"|"|"|"|"|"|"l l l l l |"|"l |"|"l l |"l |"|"l |"|"|"|"|"|"|" l l l l |"|"|"|"|"|"|"|"|"|"|"|"|"|" |"|"|" |"|" |" |"|"|" |" |"|"|"|"|"|" |"|" |"|" |" |"|"|"|"|"|"|"|"|"|"|"|"|"|" |" |"|" |"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|"|" |"|"|"|" |"|"|"|"|" KP PL@@P@ P a P BpPUP@P TTTP K@PQ @VQd \\\\\\\\\\\\\\\\\xxdTkTP ORm@qQ:{qQqqQP !2QP0Q@!"<R ȁ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q ( " ሣ KK0S0 0 B0S6PQ@p Q/M-@PO ,`P  Ap P`, `P  Ap P``,`` `$`(` P0Q PP  @p P``K-@PN mQFPP  p  PP   PP t$ t0S 0S0S 0S0S 0S0S 0S R p  PPPM-@PO, `P 5 Ap P^` ,PP  A` PEP , PP  A` P,P P,PP P$P(P `0Q OP  @p PPpL-`@Pv oa (ppL-`P@P 0^0 pLmO-M@ kPP\ p P pP`  00S 0E VO   8 2/P P P  Qp6pPp`  00S 0 V   8 2/ PQ  K R {*a PQ   R g P% pPp ` 00S 0 V    8 2/ P   0 pPKH-  R P-*p  R,Q R   R  R  R  RQ  uq{D0H-@PGT0H$$<$0H0H80H40HhP P  Q 6@,P n00H0HAP P@0  1 u3p{L-@cP   Q L R / R/H- pHU R / R/H- Z H|  0R/P/ @/O-M@P P pc,  RO P P= E pQ'  P  PP  `  PP A R*  rq $ Q%  ` PP pR APQ KOP Q 0 0 ufl}L-@P }P  Q QO-MPhP dP  Q @,OP 7 A` P`@ a  P   B@ZI`@KQ: P pP ` A`V)`pOp P  A QpO0 P@TKM-@ , PP  A` PPO` Q @` P P BpPUP`K` =<P% p P t@ B@T@p 0P  00H-@hP dP  Q P嫵 P0HJ塵@,P /0AP PX@0M-@2P .P  Q P) ` P p BPpW)p`nJ 0@% 02pL-PZJ@ Q ` P P P  Q yP `V 3 0 0pM-@P P  Q W却p P ` BP`V `pI 0@ 0>pL-@P`@P4HP d x pL pLp pLa pL pL:K-M` P P_O @ Q @:@ @ P p BPpWB p@ 0KP 0@P P  0zP@@KH-MP@`apP P  Q  P  0PRKK-MP`@Q:nPP P  Q f% q P  ` B@`V `p &PP; O , PP {  A@ P P `p@`  00S 0 PT   8 2/KM-M`@pP 0P%LP  QAP =P  Q  P  0`PK PO- M`PP P  Q pPpp@`P m @Q  p@ pW p@PQ  @ `@T @` 07Q&  02@H Q` P   P P ` K R /P P P  R/0H-[@,P ] 0H/AP P @0H/(/Q /O-MH@pP= O 8P P` `@5PP J+  R<` P P  @PP kV)/V&I 40 0 P$`U* 4 $0R *  0 RK R 8P<P0KO-M0 Qg  0 S_ Q] B `oO@ 7p P  PpA ,PU P p~P" pP o  p R  p DP 0P @ TK 0 0tW}?}O- M0P  0KO0#P P )  B` RQ PPPLQUT`OP  p`A @pW& p`P@p`@Q   ` @ R  @`0DQQ@  7P  0 0KtzU}}O-DM@ Pe @ P  ` BP`V `@ 0PC pQ<, pPOP s @ A p@T @ pPOP 0@fᢄP 0P ,XK 0 0qt~S}}O-,M@ 0 P-PRE  ` p@  K$0ppp: P: PP   X / PjP   P  $)  DQ 0MP @TK84 40 0$ 0 0tQ}`~tQ}}O-$MpP 0 0Lp`pp 0 `Q VEP  P%A  PLP UP Q ?Q@Q:*P @1/@1/P  p @ P  KO-$M`@ 0 0P` p`_O`0 pQW P  P$A  P4P TP Q ?Q@Q:p*P m @T 1/P1/pP@G H ` 2/``=,#@`P @` Ap P@p p 0 R 0P`Z   8 2/p@ @P @KO-$M ` P p oO  pQW] P K@T$A@Tq@T UT Q ?P@P:)P K K0K  P@pP  00S 0 W  8 2/@4@Q-   4 R' Hp P ` B`V `pềp w P: 09@P   @P  HK褢 0 0ݾyt.I}y}O-Mj jJUU@UUAJP>ppGGqz z@VPPP. PP`p P0UuUuM0W` Za ` / qA V{Xp`@ KOOKP{O-MP UE@JUEAJP4  BB!* *@QPP@$ XU%U%M0R`1Zq `A {Xp`@ KONK@zO-Mj jJUU@UUAJP>ppGGqz z@VPPP. PP`p  P0UuUuM0W` Za ` / qA zXp`@ KO}NKP}zO-dM@ `$K@~EEP P  p $@K4K` pCP @P  PPP0 4 , ( Q%!Yb  P Q FP Z@<@DFH g@P UP< p <P pPyP@0?0@4 T , },(P * `N(P$P P`, , P $e@Z@0P 4Z` pP0@,T @P*4Y4K0@T ,Q PAP 6T0,@ .$@KDPPHKO-M@ PQ ` p ᕀ` P@P XK@Q  Q%!Zp 凹P ᛹p 冹 \ P@VO- M0`@FPb*P 0BC"rPPT PT* @F`0` ``2P R& 0B0CEPB#20L@```pp`@DZ```Pˆ`U @EP vVPV KOLKxO- MpP@EPj* BBA"rPP] P@]*-`ERTp †R% BG@pB` PI@`@@@`000000AZp WB `@GV Q PAP V ` TpZ KOkLK@`kxO-M`Q, @BT,*PPP T  Q @qW*``` p@W mx@YPPK.x 0   00   $ d, 0 4 800@ < D0H0L0P T X \ ` ( X* Ao / ,048 @<D H L X*PTX\`(d Ao /L-@P 1/K-HMP`FP  K p PD *P#p(@`Hop +d p 0@Q P V  >KK-HM P@q- p(` PD Po"q c p 0@Q q P qPKK-M@P ` P  BpX`=pP O``Q` P ] B Q` w4|5  KO-|M0@O@PDp>0P@pTpG TP#@(`4 pJoLp Uc Lp `@Q8<P 44W0P<@@Lp| | (`|L.<PPTP* @>0 ̜ `@̜@F P]A 0@Ae&f&@QPP  !p IBP ZZ `q RAvV@@ | `|L4oLp  b Lp `@Q8<NP L4q4K44K9vpL-@P(`op b p 0@Q !P p  0H-HMP@ yQ pP K0Hg z  AoK0O-LM `@hq2 (Pq R BRRp$ o"q  Ib p 0@Q  P qZ%Z"P(` pJop b p 0@Q P WK@P//cH-@`pP` Pa p` P @`9P + (` op a p 0@Q =P K-Pq, p(@`P@ PP o"q a p 0@Q   P q  R  %QҕT AWR^0!``````````ll`l``llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllld/0Q///pL-@}P  %`P5>P= pL-@hP   R % 0H-@ 0Q-⿯08 R dX* Ao /L-@< 0(3/<</O- M`< @0(3/(P, d @ @ P X pt  X8Pp @@P <KpL-`V @PO  `VpO-MdP @`4pW+ $   1d$$P 8yr1/P$@PP 1/P  Q 2 K4`DH 4@`` ` P  B@ Q``P P _O]@` P  BP Q`4 @d<`V TV 8 PpQ dX @oT  @ 8@ PPp< 8{HDpHTPTVDH P Pl P@1/PP2P^8BPL1/}Jd ` 0   (,`(`P00`"(,Q `0,s P (,pGQ` P   Lp`(P ,- @@PP PoP@V Lp `$p 0AP0 `XK @Lp  t%{0H-PP0@ `dQ p PpWp`$`  0P `pW P`pW8 d< @ DHLX  @o "e,pWb S`@LQ VX`V P3`V8 d< @ DHLX  @o 8QH0 V-`V P`V`V P`V8 d< @ DHLX  @o zp> H8P <兙PlKVW 4 `TV Pn`V8 d< @ DHLX  @o  03W+ V(`DPpW `?pW8 d< @ DHLX Ao Q `V Pv`V8 d< @ DHLX Ao pL-P@<Qv`0Q 8P  @p P 7Y QU R    R)QC  /OA ('  R6!  Br R4  R(  RP QQ d0& QP (p  ~t{O- MPr@dOO @' 00S   RppPp P  B` QBpd5p` p0 0@T @ 0 S  8 2/P dD  q T `d- d  KǫM-HMPp@`P P ߮P خ`  u AobW`V "KO-TM@ P  P d`X  PPK 0,  PC0 4 ?, 4K( ( $0$ op 4 p0d6(000px .P~ @,@408 P`P@ 4 8R*4 '0p@BDQs*@Q@!.rQQ QPg*H`DQT n,@W40`8P SYP`@d(P p P   B` Qp00 `p P7/0P 4 $P4  0$ (@ P: SK|m^~M-*MdP\4P @P0 `1/4P P#P `p@1/PPpp pP 2/PPA ǿEQ}@P@KO-M@Pᵱ`啭P @pP * P1 W: PP d P`p`p@  00S 0 T O 8 2/yB` RR P P`d VaP@pdQ ` P`V(`Pp 'P0  @/OPp`  00S 0 U O @P8 2/@P YQ P1PKO-Md`,  P0 8K 0,@ 9pPV 9@P  ApX@@,1<pP1P @p P$p p(p $ P ` @ @Lp@0 PQ@ppZ:p P $倾P@,Y8K<@ P KO-,MX`?d  $P PPdAQ  p Q)@d <P d0@ S p00 00 0e@$PP K  0 0` t }C:}O-M`d<@0000Pp 0Q<:)00 P P ` 0AP0S  `0pdR _P g4 Pd  OQP)0AQ P KO-dMdP  , 0 @ 0pp `0 P Gp ApWop`e`PD `oOf8p P "`p B`VI`p :PG   1$` -$$@ P vK0H-HM@PQ K0pL-HMPQ KpL D Q@zP= @p6 P(`nP    R % op V p 0@Q DP qKpKpO-LMᕪQ +6 3 Q/P`Pd@Q pɪP @ P  %@p3PR3 P`UKO-dM`P``d(E pPd 'PP<  Dpdp @  Pd@P P Op P  @puP  ` PP  KO舒 + Pp P O @pIP + 6O  P P B@PUP ᭩PE Q g$ ❤$$ @P  KO-DM$p0@`    4`0`8<-4 G 2P0PU! P  P<d` 0O 0  P PU EO P( 1A0  P0 0P"PPPAQ n `U A R  P PP: U} Ud@KpL-P)@dXP , PP GpL'A` PP/ pLRpL-P dOB@㡺`  -_`p5P P apB`@T@PpH-MP ` P C@ Bp@Tl@`O``Q` P !P BpPUJP` ((P  `% ((P KpL-@, PP  A` PP pL誧O- Md`P  @   Y"Y 冧P fd@Q pGP )P 9@P  KO+KpL-@`bP dPU, Q V0Q PQ PU  Q pPRP pL;  !t#z0H-MP`@`dSB 0K0L-@dT DBLQK-MpW# @`!P  2/P V P P`UpKfO-dMP`mPd'P_ +4P P  B@ QPP4p< `(@Y 0 PP 8 %pB0P/8 o4p R 4p H@Q $cP 4qKKO-dMP`PZ @3@p `0Q s/P  @pP: Pd`   `  p O00 ?80@DHP 8 0<C8 `` P -"@0Q /P @ @@pP@3Ap Z>`p` P O@ `P + 0 K$ 0( , 0 -, 0/,R` P O @`oP 3/0 K$ 0( , 0 -,  `0/R, 0p 7/` HP8 <  @P .b P2 2P2@22BKT۪۪Q  / Q /H-@PO P P dPX P (P P ` P T Bp Q}`P<Q <d  PQ 3 ` Q\P H 0 0QIt|~pL-@TPH Qp Q dX* Q (Q Q p, 8 PP  A` PPd   PP  `QP PTPp 0 0t|~O-M@8P P K P dX P (P P`V P+`Vd P ⢿bV  P T03/PPPPP 2/ `p刿`GP 岶F@bVbV 8PL1/;PPPPD 2/`Pc -@&Kp @a`I PK@@P: P>PY`E0 |P)8PLW"p  P  ` AP`V2`jpP pGZPp P`V P @V`U$ bVp 0 0 t|~O-MP  @A0PK @@OO0` P ` B@Z`@P*  R`QP @0S pP  0 R@@@@PU@`KM-MdP@Hid 0\d 99P p `9P @9pP d9KO-`d $ PO @$PaZ Pd<qBPl h 0Pd  '@P  ,P  00Q 0QJoGAP p R p$P@X* 2@HDPa*P 1pBA!.rPP P0R*0岴DpQTP tbU @Ỵ@p$Pf@P~$ҝZ X p@00 0 R pX`Z Pp Ꮄ @P KaK-)M@ ͻP EbV PL1/p1/ P PW/ ,bVK/O-0 p 7/ECP   ϼ Q3 AP q 0 R !PQ P P` ``P@`o᠒ JP ABBU╳P P 忪U 짪pL-8M@d '0 `J]P, u P:^P) @\d \ PQ R@ `@T{@P 0 Kp., 0 0eXtN||M-XM@pP` !` d&Pd 0P! 0 PP d PKP d PL BodB PK  0 0xV~dV~iWt||pL-@MPP @Pd PQ @ @ `@T@PKppL-@`PP Q 1/`UP(P d<LPd PpLgcPP d<Ly0H-@P(P d<KPd P0HIcPP d<K[M-HM` @pP d@@00 d+ 0!P dpljPdQ 8 ` Ra P0}@ EK:S~O-M`@ d4 P P K P X  P⓰P L1/PPCdP`V P!z`V8d<@D `H pLX  P @o   Pd*@P KKBPd , p  0 , P 0   SPd  PQ   QPVPP dPPP -׈PP шP PP  @P U,DK-)M@(PdeP<< p`d(04p$((@0 4d ῱P 1/p`,,0P4p(P d<J|pd pa/oQ" ,dKpP d<dJĚpL-@(P4 Q0(P d<NJG`d `aX4Q$ (~ep`P d<0JpL-@ PPdP  ` PPp P /pL-@dX ` ` 㢧P$A` ```IPP 1/PdcAd P P Y ` PPQ P A B` QjPdpTbK-M@P d5dP: 0 u4dXPP8 P B/o" oAPP 1/d`Q ` P Q$`PPpq 0 R 0ᐹY O 8 2/KO-Mpd@ n'@QPP P,P  A` PP!PPXtDXP@ 咂P 0P h PP. ,O `  P j BpZ` PNhP Xh d4P@  R   R  A R6!  Br R4  R(  RP QQd0& Q E5  }  mK   .,cH~4G~GtzL-@ Q 0P 6h d44脆F~0H-PQ  P00 41S @Pd4d@Y>0,1@0S (O0 R V0M-MPL1/ ``P`@@Q pP  B@ Q`  Pf PdQ [ @ QP Q 4P $g d3KC~O-M`P@ Q@pP Q!$ P R)bE pA`rpP@pW G U`:(``P@TY KUP Z P: P P@TO-LMPIp` P9,  @    P ` p0d  0K  |P 0 p7/@P # K@~H-M`P@ p0dU H0 LP 0 p7/K?~K-M@`p'PVdP . 0  %P ` p0d H0 P 0 p7/Kl?~>~0H-P@ 00H/H-MP@ `p0d  `d  P0   P 0p7/K5>~L-@(  SL-@ OhSL- @ CL%8SH-  @0S// /(P/0H-O,@P 0AP P@0/@/L-M`@  0 >/ DPK 0 0৔,R=tV|<~//"%!%O-M`pV FP V@}@@ X X P U P:hP  PPK VjPV@*p  A * *!Zᆀ@V:F@@  P   Q1 8`F V@@'@P  PP F P:PKO-MQ ; p巔` V- F  V@ @@ P PUPU PPZ P: P  P c偔K P ҢP pU E W@:@@ aV `V P Z P:P  PP アZ`U@*p  A * *Z@U:E@@  P   Q1fPE W*@@U@0P  `P E P:<0`l/0H-@Pߓ P P>UP 50|L0H-@Tœ P P$UP 0H#LH-@PQ A "PP`UH* VF"@  o!pr!  O W   P:@o `"UP1U:O-M@Q# PQ[*ḡP ѡP UpXE E Z: PPP P0 qpW( Y P: P  P !R   R 0`V ! pKNO- M`PV, Fp W@:N@@ P PU PP X P:7P  PPUPK  P ;PO- M@pPD0 W :`p 0pp`P V S P: 00 PP P S- P: 00 P P S P:@ Pa @ P KP//@"L-@㦠 F   /lF/*"L-@L;!"H- ㈠ 4F /F/"aH-8M`@P  pA  Q t   p $`(,0PP4 0KpL-MP@1/`1/ QQQPBP 'f  1/x8P V`V P q P -Kpj4m m|O- M@ TGP `p\Lڔ#0S S vP Pp `T%vP  `T 0J `@G||ì|O-OP  A` P@ ` @Q,0,Q$ (A@P ( 4{,K 0 0s[|}O-|M `   @PAO P . BpXW@ 0 @ N pP  V@ @   Q -@pV 0pP0  PkP($,@0$ Z 0P\ 8O4H`<@0p  - % ȝ G@ ADPp@a1/ 4P 4 <0PDpW}DWD`@`a1/P: 1/P4 1/P@ L1/ 7Q QQ Pc14 <0TP`D`pW(`$DW Y @a1/P @ 4 < 0*P  DpW`@4 PPH: X3 > 0`P `OpA  Q = TH X \p`dh@lptPHPx 0đp PPi  `H p `THX!dh@lp@tpxLP\@ EPd P<P ` `V` OPA  Z THX "dh@lptpxP 0WP `p WKP @ HFpCA4oC P@ PP i  X   /O  `B  W   4p( 80(`DpHLpPT@X 0 P` @$0P 0 V@(`TX``Kpl l0 0AyD@ @0 09y 0 01ys~2|s{|s2|#c| s2| }O-LMP Pw0 p @`PB   $( 48<@D`H@P,@<PJ P? PP p pWpOA  Y $( @48PP<@D`H@F 0pLP` VKD@ @0 0x 0 0xQs0|x|qs&0|`|O-\M@1/`P= @8 L1/ @ P 6 BP R` @ )R0?O(`p 0A@$0@ P4(8$<@DHLPTpX,P<@6;P , @ PPOP  A` P@ @Q QP Q(`4(8$<@DHLPTpXt,P<@:P $ @ Rp , @ POP  A` Pᬿ@@   R O@wP@ @P ]P PU$兿POA  Y x4(8 DH@(@LPTpX 0@@ P $ 嬿Xp(`W``Kpl l0 08wD@ @0 00w 0 0(wsZ*|Os|sz*|Z|s*|}0H-@1/P/ @* L1/ @,P ˿ AP P@   R O@0H80O-k @ Q3 `V-PP) ` o2p p RJ pG `0 V   Q KQ0 @ Q  R `$p 0 0R @ Q `  BV:  Q KQj @ Q PQ`(p0 R 0 @ Q`V  Q KQ= @ Q PQ`,p0 R 0 @ Q`VPP ` (Ko2p p Rr pG h`0 VaKOKOWKO KOKOKO6P@   KQ34 P2  $KPao 2p p R$R pG FPV0 `A  A R  Q 4 @ K K A Pp PPaP PpWpL-MP@Q P: PP1Q P+ PKpP`Q P P PP PKp KppL-M@P Kp`PKpPPPPP PP$PP KpM-M@PP' ,p 0`W o" Pf  pW A Pp PPaBP# PpWKK0H-M@P  Q Q K0  A R  Q  @K-M@Pp Q  0R0 0RQ  @ Q  `Q@ K B Q K Q RI @ Q$Q  R9 @ QPQ`q ? .R  ? *R 0 0R @ Q Q  @ Q`V K0H-M@P  Q Q K0b  A R  Q K0 O  A R  QA @0H-M@P  Q Q K0'  A R  Q K0   A R  Q @H- &Q 0<H\p$0DPd|x$D [.  x) l |KC ݠ + ؠ&  ͠O5  D ຠt$ ൠh* ఠ`- 㫠TP 㣠@*< 㛠, 㖠<4 ㎠$   | w r m h  q뾱}B}9}K}j|α}ֱ}}}}߲}}}dz}Ͳ}}|J|f}ʲ}Ų}}}޳}ݳ}d}}}}K@|}}}}2}/}-}}=s?z|// ĪL-@0  jL-@   jH- @ `dP0PPP > pEW&P0P 0 0p]s|M}M-Mp@P`z  0P@t RK 0 0rpͬs|}pL-@t PU (P -, 4R `Q(0Q ,, 4`VP `4(p 0 0@ps|Q}0H-@(P ,, 4R PQ(0Q ,, 4PUP 34(0K-XM`P1/P}@ @K@@@@D@@@<@8@4@0@,@(@H (  !/ $   pL1/ $ K 0#@@fp@W ,pTD`V  P ᚸ p P÷`D@ *`P 1 0S U PE,`P 0 0oP P(y P 0@XKD@ @0 0o0, ,0 0o띩sR |}5s |}s |} /q /-p /q /iq /qH-P@V e,`W4`V  P  p PC`04PH)pL-P@ `V (0,  4$!1R 0C P0R,F@P :%~ `PPF@PP P  (U ~V P @B  P ~PU P ,@?UP}p0H-M@P @ ! PK0O-$M  @ Db`0P >p ]@T PP@PP *PP @@PPP Y& O0Pp ! 0@T 0 l}`P  Y aS O  8 2/ aP0O 0@T 0 S O 8 2/ }a `@P`j@- 1 F PU @P PP  RP P RU3K 0 0m령sn|}K-*M DPS ` 1/PGp>A=  P, P@0T02P!0SU W:0S  0S 0 Q 0 @TQ AX+| n?cPKO-|MP, 0 4 8 < @ H HKQLLP@Crp`V$  2/`0@. @$@ (@ $  p(Kt(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/((@ P 1/0@p8`0D<P /`A@Q PzF> P P,/`@P @ppL`0Q  000Q  > )c@P0P8P P$ 08p0D`p`3/L㨝HP K y H oQoK84 40 0lݬs)}ެݬ|G}s|}L-@@_0Q 000Q  >  0 0lYs|I}O-|MP, 0 4 8 < @ H HKpQLLP@KHrp`V# 0 2/`0@. @$@ (@ #  p(K쑟(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/((@ P 1/0@p8`0D   `i  0s8PU@P " 0@p0L`p`3/LK HP K y 4H m{4,nK ׬ܤ#sa}}O-M-@M@` (0  0L # 18 vA< @RHD 0mPV*04X% 0P!2<  B$QF P] <  0p8P pP < P 0$  PP+/(,(vЀ0 a@pW p`  # ( p+PTA.K@P* , `0,@Q  Q Q P pP8 0㟱J,IP$$JP*QQlyZ4F Z 4 ZZ,: `JpPP R P*0F?o20 hHX8x 00 0   0 S00 P,p U:,PD 0l0 4P $ k RO*0 AP,0pCT10L!*;  B$QzE `\ ; 4 q80q00p; (KЍ 0 0i\X  id` `0 0i<8  iT۟})yh}l}sm}0g} y}͑s8}s{}!s{c}P(507/1H-   i뤧Ms}O- M pp@ P `<(P `$`hPlPpPtPxP|PPP&`xPPPPQP P/P Dx`#,PP P,v``> P  TPQ PT q H`PPp>!Y@Y* @`PiY Pd 0<@4/Yi@   #`>@P2 #@y%PpH`w% VK  $(,048<@D   R:(P K<8  h,( (0 0hϬ\ά|sys>{!}L-@PLL.   #  >/#AQ/H-  0 0qhɌs~{a}  B4QCL-@D[ L9 y0H-@,P  0AP P6@00H-@,P 0AP P@0pL-P@U \P `P'wP wPpxɬH- q0 Q Rt<P t   ?0\X X0 0gHD D0 0g40 00 0gɬs6{}as{}As{}H- Rt< R ?0S@  'RA ᨿ 0 0gɬsN{}H-@P`@P pZ@Q    `QSQ  #/O-|M ,0 `@0@  pAppP2  pBpW0pAppP2 @  A  0 pAppP#0@pPP, 0:!$ ( , 0 4 8 P(0P ,(@ $ P^2 2 #,0 `mP* PpDHLP  PPP PT$X(XPTP,$1HPLP T Lp"X  w3as,d!q!Q 1p pBW Qp@X@P :uHLpPHPG@PP PUTU uWHLP @B LDP u  ,@Qy*2B $XP o P# V  ,@Q*x @7  $( ,0ap07 $P p }7 $pW: A$( ,0Gpk7 HW40( @Q$0DT8Kd1($ 4!%$$ ,u0@0 X$Q (0pA4 a@0A$UEQ P$B Q$p :$XoQ(@0P$Z Q  0pApp`2 SM*4@0P$ E@P :t40P@4@ E@PP P  ( T tU40P @B 0 8P tKP  e 0 0etp p0 0e`\ \0 0eLH H0 0eDz}ښ}_ssN{}ys.{}Ys{}9s{ė}syO-tM ( R $P L0bp@W0#a0Sc 0A$@ (`  ,pA$ P@ U Pj P4` 0@ ,  @Q( @$@ 0 DR ( @$@ P0(@P* HW6 ODK@ 0@WW0` D F6 Y) 900$ 0076 DD@ P t(@Y#@0 $$` !PH@! VK  $(,048<@D 00  R:00Z@P D0 < 8 , P )9 0d4 QZ Q 4 r8T,P@"LD@K(`K O $   0AR( 0$ P0@S( $ Q Z0P 5  PZ 04 s0@8 @@B8  <P @80!8 0g`P5 Z 04 0<8 @@B8  i <P @80! f`Ph5 8 U@,A ,@$0 (H0@   D0` BS(0`$ P `AV( $ RX0 Q 0`P0CV@`PD@0P@U@DS0R H0Q%AQ  P4q Q  P !RQ( L$D@K, @n$4K i(@P   P h$D@K #X$J$ P 04 P"DK(PK@  7 $   0AR( 0$ `0@S( $ Q@T `0P |CDPK@ DpWP U)t P DDK,# X7 (DK#  $@   0AR( 0$ p0@S( $ Q: $@   0AR( 0$ p0@S( $ Q! 0($<04  8 0AR( 0$ p0@S( $ Q!DK4 @Q $(  L"#0a$P.8P3@ UPX ,` U?6 8?K 0 0b 0 0b 0 0b 0 0b 0 0bn}yAsL}}}x}x}g}}}}}F}>}ԃ}}}}}}us{}}s{}usz{ }eus{ه}usZ{}us:{}O-DM$0 Lr`V`s Q0`0$ (P ,P0 ` 4 0`FR( 0$ p`0@S( $ Vʘ A`P  8e3 PH  UK  $(,048<@D   R: $(,@P4QV 4r8Y@ "S@(pKP  $   0AR( 0$ `0@S( $ Q X`V P4sP@( @ B( $P (0!$ rp`2 V 4<( @ B( $P (0! qp2 $( P 0B (00" ! (0qPLa`D 2 8!@, $!  !D  Q $(  L"#0a$P4d?K 0 0:ad` `0 02aPL L0 0*a}}}}}D}h}}\|}d{}@|}z}os{4{}osb{y}os{z}O-\M$P 0L`V`Cq0Sc`0a$` (p ,@@TP5T$  Q PP4p 0` ,  @Q( `$` 0 FR ( `$` Pʘ@P up5 0PR01  cpH[ XK  $(,048<@D $P  R:$P E8p(`K4(<Y@4 q4!! B !LL(4`\T(KP # $   0AR( 0$ @0@S( $ Q Z @4 A8Q@ k <P 8@0! c``m1 4 @ 8QB@ U <P 8@0!, $c``S1 @ P$QX P@8 @@ !<P @0aRP$ 41 44P " }" wl"4K X"D l@DToQ](T$"( 4$`X  P D4! O(@08 C@$`!<Q `@0Qa`D 0 $` Q $(  L"#0a$P"@P'lTh(X? 8?K 0 0}_ 0 0u_ 0 0m_d` `0 0e_&z}y}D|Pw} }}}Ȉ},}5w}u}v}w}u}2w}"w}t}}v}hsN{Bt}hs{Eu}hs{s}hsn{s}O-M$ P L@p`V3pp'b0 q$p (  ܥ`ᖪPM(%@ 4KJ,@,@ P8pDP@ `o,B9@< Z* 0,P`W 0`P`YP R P!R  Br R* QJ4Py*{ 8  80$@ (`pP<ADP p 勥8  0P/  _`H@W TK  $(,048<@D D0  R:D0, 4(pRa@` D0 < 8  4r80@$1 0QP1AQ HdP$Zq *: 0Y^q PQ  PP !RPQ LP    0AR( 0$ p0@S( $ Q8PP(`#IDpK(PK@  $   0AR( 0$ `0@S( $ Q8Z0P[ DP$@(DK ) qT DDK( iL P H @Q PK( K%Y& P P (0$p `1p` $  0p BS(0p$ ` p@W( $ R Q$Q,P1,PAQ |D`#DDDK<( $@Tq Q  P !RQ L 0p( LPpH   0p BS(0p$ ` p@W( $ RHpPUT($ 4s@8 @@B8  f <P @80!L Dvph. U 4<8 @@B8  K <(PP @80! upI. 0@8 T8 *%0A@ 80 !!<Q p80alhup +. 4P*8@ A`8 a<Q" 80q%`   T8@ A8  !<Q p80atp - $D@K (F$H p|$ <<PG`tD@KPpTd`@4kP 1  1/kP DP 4P *Y @@0 # P 0P@@ 1 # - D PQ & k<PUD`X @CDPK@ DX,p@(PW)x P DDK" $P (80@ C8 !<Q p80rp pi- @DK|" Q $(  L"#0a$0@PM8PRW ~ 84Q*$ GRHT$ ERF(%?8?PP L kKxt! [ 0 0[HD!D1 0[`5!1 0[!1 0[ 0 0[ 0 0[ZsF{g}ids{q}Prs}m}p}p}|}|}||}|}@|}Nm}H{}l}{}m}l}l}l}]s{g}f}y}/k}l}l}k}AZs{g}ZsyqZs&{g}Ys{Ul}>o}!Zsּ{e}Zs{e}#/H-P`p  A aQ 0Ad , L , 6 H, ^u}^u}:u}pL-MP@Q`%AQ 0P4`q `Q  P` 1S`Q. L`P  @, Q Kp  Q*L PL PKp +#Kp 0 0Z5t}Vs^{i}Q/AQ 0P/!R/q/ /Q P/Q L/H-  0 0ZUsz{9h}P23 310/1H-   Z}UsyP2 3 310/1H-   Z=Us?yP(507/1H-   Z@Usy @R*GQH/PEQF/H-   hZTsyK-MP@P`pV a ,`W`V \ P  p P?``tP 05P`U << QpP @+ 5 C+ VP p$ \/$ V \P p"+ 0T  "|,LeK,( (0 0Y8b} s?b}0b}uRs*{n}L-@P @Q*@Q*$P0,  Y  YQsVd}Qs^d}/L-M@0P 8p /;$0 8EV @A\@K 0 0YQsƳ{;m}O- M R0SgpWn GAa PBA B Vc PP0 ABV,B@0 p`Jp  0 R 0zX O 8 2/Y 0@``p 0 R 0z@W O 8 2/ 0@PS `pVP@K 0 0XNs{`}\/H- M Q* P P ! РH/#/O-MQ>*@t PqP KH 9` (̀h`,P(`0 (P ̀ Rx `A  0`````@|2P PHx KXT T0 0XD@ @0 0X0, ,0 0{X1Ms{E]}MsƯ{S]}Ls{L]}L-@LL-@H`p` VK  $(,048<@D   R:ЌO-MQ aB@  _`Z`P@s   SQ R  P|p1,s   U` K/L-0 C  0@@R/H- P `@V 0pPp0 3/APV蔇H-p`@P}zwHsH-p`@PjgdH`H-p`@PWTQHMH-p`@PDA>H:pL-`P@2/pL+H-p`@P"H0H-P@0H 0H-P@ 0H0H-P@ 0H0H-P@0H0H-P@ 0H0H-P@ 0H0H-P@ 0H0H-P@0H0H-P@0H0H-P@0H0H-P@0H0H-P@0H0H-P@0H0H-P@0H~0H-P@w0Hs0H-P@l0Hh0H-P@a0H]pL-`P@URpLNL-@HLDP(507/1H-   tV ݤDs[U}P(507/1H-   dVZDsyM-P@0S pR `C V p R W`Gv,FRP P Ap P+PXP P  @ PP 0 0 V5Cs{U} 0\P CS@/R 0S0@00H-,BP ᮞ0AP Pם@0M-MP@ R 0pS `B0V p0S00GWCa`v 0B pCaW  &P`@`Pp  00S 0w W O  K8 2/KO-M `R P ?0 B@0Sh0P V| V Q 0Q5P_O`@`@p 00S 0vP _OW   8 2/P_OX`P0P_OP+q`F @@@ 00S 0v P_OX   8 2/P_Op`V 0KO- M 0 0 0 0P,B0S0C #$`0 0Lp@3T3Q pgg0pqp@`D@0T0p@00GSpT@`D@0T0p@00GSpTP ,@o    Rt $Q $ L"#0a   BBBXHXX05X`@ 0  @RpGQpP@`T L 0p$Wp"##`Q0a qp`0 AS p  GRpQP 0{0 @RpGQpP Q BHBBXHeXX05X@` 0 O @RpGQpP@T0P  @RpGQpPQ $(  L"#0aP K 0 0S9sJ{K}  RP%@P  P4p P  P !RP  L P P/H-  0 0VS]8s{J}O-,M?P9P P4:*$@P p$`p P*P P P@M /O1/0pO<$P  K 0 0 S-7s{bI}0H-P @A0000 0!/000  /! /000  /000  /000  /000  / / /////! ///  /pL-M@Pb AP  P4Pp PP  PP !RPPG LP U Q HQ, $p| ` Q`PKp @   0+SKp<8  FR 0 0>R3s{qF}4sF}K-MP @,L (P`0pT4a1p#p`$00qs2cq0Q0S 0,pW!1 0 RSdP_ ` 5p a  0@``@&UeQa00Q$B P:`@ 5pP@D@P:`ppD@PP P  W `TP @B P `K 0 0Q}1s2{H}93s{%J}O-M P,L (@`0pD4a1p#p`$00qs2cq00S 0,pW!1 0lQShPb @  ` A   0@`@@$uEqA00Q$B P:I`@ 0e `P@D@P:4```D@PP P  V !`TP @B P `K 0 0P.s{NF}0sj{G}@Q3/@o/ R///0H-@P@0pL-@PP  P ᒙ ` PỘPp $(0/H-$ L@P`<V 3( p a 'g!!Q 1 BP Q(F@P :_`PPF@PP PU$U x_VP @B P i_H- 0 0$0(0 0 000H-  $(@0H-  $(@0H-  $(@0H-  $(@0H-  AR528Q#Q  O*syO-MP@U ,P ᰘ A` PٗP Q9 $ p pL(00wp'bc7cq Qa QU% qP@ P z   Pᣗ@`FP`UKO- M`pP@PP@v```F`pFW`q\\`P@PP@`P㮠E@`@pePP@E@\1஠0p`5P @PpEpT : 0PuA g # x0p_ PP <^ P$P(P `P@PP@`P㮠E@`@pePP@E@\1஠0p`5P @pPGPT 9 0p$A\  L 0 pP ] p$p(p pP`P@PP@`P㮠E@`@pePP@E@\1஠0p`5P @pPGPT t9 0p@$   0 pP ]`P@PP@`P㮠E@`@pePP@E@\1஠0p`5P @pPGPT )9 0p@ y  0s pP P]I`P@PP@`P㮠E@`@pePP@E@\1஠0p`5P @pPGPT 8 0p<@ .  0( pP ] p$p(p ppppKp`P@PP@gppPGP1`0@00P@p @PpEpT 8 0P?  |  PP \ P$P(PA PpPPPK@<  M:}:} 5}5}:}:}7}7}89}8}7}y6}]!s5}H- 0LS0  AR\H- "^S S RSNO-,MP@"P S ,H0,A&P P(p`  0` P `, ( 0 S0#RP `(,  F $, B$pp,, @ 2 0QC!p0B $@ S $ `P0   p0Q  L@$b 0$    0^CA @`@0@S  $  0 ^ L!a`0@   0QCA$@@0@ S v$` 0  Q L!aQ < YY6媠  $p0RpCA  @D@0ES 8$` 0  R L"# `Y@ p Q7 H AAઐ  $P0RPCq 0GS $` 0  R L"# `H@DXKO4}O-M-M  @P$,呀'(ppApp`T@ppGpPGU1,p㚇'@paD D`H px 8 p0@`A``P7p㣐@㣐P  @ (  p ,0dtaq`QcV@<(, $,0皃&@ !0,,Pp70QC!@0B  SPH 0 Qp  L0#b0p0 pP@`A``@Wpp@pPU @ 0@c &, 㚀&$pP 750QCA@0B S 0 Qp  L0#bop0`A``P7p@yQ PPp p`BP+`-`0+S ,ᚁ& $pP 750QCA@0B S 0 `Qp  L0#bp0`A``P7p@xpW |P +0 `BP -0  ,ᚁ& $pP 750QCA@0B Sc 0 `Qp  L0#bP0pApp`5P@\ PU@ R 0 P0@pApp`5P@@@\ `pVĐ PgH 0` ,p嚀& $pP 750QCA@0B S 0 Qp  L0#bppp0`A``P7p@xpW pP +0 `BP -0  ,ᚁ& $pP 750QCA@0B S 0 `Qp  L0#bp0`A``P7p@p@p "Rw RIPA  0@:p0@`A``P7p,Pp@pP`  0@ ,` (0 RP0#R@(, $, 㚂%@〡,,`60\C!@0B  S&  0\  L`&b0paP0pApp`5P@@\ PU @ 0 ; , 㚀&$pP 750QCA@0B S 0 Qp  L0#bJp0`A``P7p@v pPW P +0 `BP-00  0 , P嚁& $pP 750QCA@0B S 0 `Qp  L0#b p0`A``P7ppG  p0 P0pApp`5P@@\ PU @X 0  , 㚀&$pP 750QCA@0B S  0 Qp  L0#bYP0pApp`5P@@\ PU @ 0 = , 㚀&$pP 750QCA@0B S 0 Qp  L0#bL>.}P0pApp`5PP@@P\< `@V @+SD , 㚀&$pP 750QCA@0B S 0 Qp  L0#b, 㚀%$`p 670QCA@0B S] 0 Qp  L0#bpp-}p0`A``P7p@zuP@U P +0 `BP -0 t ", 㚀&$pP 750QCA@0B S 0 `Qp  L0#bIu,}p0`A``P7p@+upW P +0 `BP -0 & ,ᚁ& $pP 750QCA@0B S 0 `Qp  L0#b`p(KЍ+},ᚁ% $`p 670QCA@0B S 0 Qp7  L0#b-@<  F$&}%}v)}!}t }{$}Z}.)}};(}}#}]s}M-Mp@pPpp pppp p$p(p,p0p4p8s !/ `L1/ 0#ppKO-M@P士.K@@ PV*^`@QS*,p G,U "WpC 0`H  PE0@@,pD,Ap,`FpUpppp p p      ,! PP  ,@OUU KOgUKwH-`@P`N``pT@@`D`V(`PNPPpd@P@E@`N!@ 4  ``pEP A S8  <H  0 0EsRd{}<}O- M@ |,7PP ,\T\H PpDpP R9 (0 00Cd4!,`1 !0$ L"#`a灐 AR"*Q`  P &   PM`   WKD@ @0 03a10S ,0SPL L0 0DS0 0 0DQra{}}r2a{i}O-4M@, P"( L$ `, %$(#`!q  R  `RP 0` $$@ (p(p$@ r R$  Ye 83 b !0Bs0S?(P,p 0T$q!0"0p$  83 b !r R ,0SR R 0@RP pD T P 0 "5%q p01XpGP`X SCAARC0PpWʎ(#0aQD  R   AGRW0!LTTTTTTTTTTTTTTTLTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT  T T         TTTTTTTT  K0 y P4K Q8 K0 ( 0 0C 0 0C 0 0Cxt t0 0C 0 0C| |0 0zCTP P0 0rC-r[{}rB\{}mr"\{Y}Mr\{v} r[{}r[{}r[{}H-Q @L$PA`lc^gPaP@@qWA@@QO- M`p P Qm  U   0!Y!QXD@X :Q` Q [XQ` Qa    P00S0  odP  0?O O) 8 2/0[0S (O0 R KOCdUP  0 0BPK 0 0B|x x0 0Bhd d0 0B 0 0BIrW{}r^X{}rX{}r>X{t}irX{u}O-$Mp P@P! ` 0  P  ` 00S0 c ` 0?O  ) 803/QXT P  R R b 00S ], 1RL   `00S0  c`  0?O O) 8 2/  R1      0[0SK(O0 R KOJcxt t0 0A|x x0 0APL L0 0A$ 0 0ArT{ }rjT{ }rT{+ }rT{g }O-M, P( p pL$ @, %P$'#0c!0a  0S0S `'#0cQ`P 0 @GRp!           4 L"#p`p!`pW @{! @ BR p!P4k r d R\ P] qWW K )K L `  pWqP` P   L  ` Qp@P  ]0 P 0P @6R L pPpRpqPZ Up``Q R  㚩 R 00 pS 0 pR0 @KP`AQ  4Lq !R Q PQY LQ/P !1 0@  ? R 00 pS 0P `@  0 0? 0 0? 0 0? 0 0? 0 0?tp p0 0?lh h0 0?rrM{}rRM{Z}}r2M{}]rM{}=rL{}rL{|YrN{S}rL{}O-M-M`Pp $ pL GCp'g!@pW%! BR p!P4 r 尐 R  P  qWRp L@ 0 哑YYpg㪠$  L"# cQ7 q   R 0H n    D P P Q '  Xp(KЍ 0 0?|x x0 0>hd d0 0>$ 0 0> rvI{5|!rI{F|rI{n|rI{|pL--MP`@$  L"#0aQ  Q    0 KpD@ @0 0> 0 0>irH{|r>H{|0 S H-  㷧 RH/00 S/O- MQs PL㪐$ (#aa@qQ@@ (04!,0  $ `apP0,QGP=P@p Q0$ R p@_ @ p!%!A 0$ B`hsda00qW10 0R ^K84 40 0=$ 0 0=rE{:|rjE{|O- M@ 0 Rq01QR   Q  0R,@pP { A@ Pᤅp QY8 0@ 0@ pPp`Pwpv`UpGU%àXP r ! H!P  U` `XppPjvW } WR!Rp!B T:K.h `\  W=PL L0 0O= 0 0G=!rB{|r]r_CyArB{|O-M` Q  pR  \PQ 0 P0R, p`P ؅ Ap P` ` QQI 0p 0p` P @Pr t@U BU%XP`uPv`% a`Ha@  T&P" @XP@@FH@ ] U_X"(/P@ `%]#`| @ FW:K&.H @<  < 0 0<ur*@{|rr@yO--$@ pL媐^S``$@pP`F^P3IhAP0p1S10`VP(@0, (`p0d4q1 0p$>3`1s0S 0,P| |0 0H<S PKPL L0 09< 0 01<r~>{.|%r>{|r>{|L- S C;.:K@10@T QA0, S:0H-P0S% C;.:K@1@ 0PU QA0, S:0S ,01S0 #0O-$MP |, o ,Q  6 KX(PP@_O `pp 00S 0$] P_OY  8 2/P_O@ZPX5Xp ,pL@(  4$!  $c 0AS*`T R` AQ  l$<Q `t ` Q P`Q L`  P ,p  P&,p `pL PD P  Q<  `0R P0 pOp  00S 0y\ ,P O p pL8 2/,p pL@TX K P{ L1/ $73pa!0pWQ% PL1/@WKO! BR0!(hQ  r Q LH!H1 0: R  PQ  1SQ R LQ  0 0c:xt t0 0[:pl l0 0S:tp p0 0K:<8 80 0C:qr&7{|rF7{|Qr7{|r6{|r7{ |1r6{a|Q/0H-@P0H蕚K-M@Q:A WP U} E W@BqaE A qp  0@BCQAU*RVH WPw U P``Vu V*Hq `Q`V Vv*H H "U `PEJUP Q     P 0  EB 0 P HKH>K P``V V4*xH&1U  G` B"`  W !Y ~HppK&1U  G` B"`  WK-@P U 0;` V F U@BQqF A 1 # PppW W"*H'!qV0 0E0C#! 00U 1Y0  H0K-@`V p<P U*A U@  p@  QppW W(*GppV!!q 0E0C#!0  U` ! V  Gp@DK-@P U 0;` V F U@BQqF AH 1 # PppW W"*~G'!qV0 0E0C#! 00U 1Y0  G0K-@`V p<P U*A U@  p@  QppW W(*6GppV!!q 0E0C#!0  U` ! V  5Gp@O-M@`P AB1* *JS;*0UuUuA@@b*Z? A @@PZ ppW/ F `V P AUUMRQ0aqU KOG`V KpQO-MP@IP**pAA"rPP P* F`I@Yp B [X@ KO K`O-M`p@A@V( GHP/* AA!.rPP# P#* bFpHQ QX  "Yp  KOЗKKpK-M@ Q:A WP U} E W@BqaE A qp  0@BCQAU*RV F WPw U P``Vu V*Eq `Q`V Vv*E  E "U `PEJUP Q     P 0  EB 0 P EK E>K P``V V4*E&1U  G` B"`  W !Y EppK&1U  G` B"`  W K-@P U 0;` V F U@BQqF A 1 # PppW W"*GE'!qV0 0E0C#! 00U 1Y0  LE0K-@`V p<P U*A U@  p@  QppW W(*DppV!!q 0E0C#!0  U` ! V  Dp@rK-@P U 0;` V F U@BQqF Av 1 # PppW W"*D'!qV0 0E0C#! 00U 1Y0  D0%K-@`V p<P U*A U@  p@,  QppW W(*dDppV!!q 0E0C#!0  U` ! V  cDp@O-M+.*K]@х@@Pr0CA-* "@QPPb ,D,. P ,!p` P$@    (0p` P$@(0,0( $ pW- 0`PA@ p@,A,0DWW0,`F00000 0 0     P 0PPP0 ,@)UU KOAKRK-M@ Q:A WP U} E W@BqaE AR qp  0@BCQAU*RV C WPw U P``Vu V*nCq `Q`V Vv*`C  YC "U `PEJUP Q     P 0  EB 0 P PCK -C>K P``V V4*C&1U  G` B"`  W !Y $CppK&1U  G` B"`  WK-@P U 0;` V F U@BQqF A 1 # PppW W"*B'!qV0 0E0C#! 00U 1Y0  B08K-@`V p<P U*A U@  p@?  QppW W(*wBppV!!q 0E0C#!0  U` ! V  vBp@K-@P U 0;` V F U@BQqF A 1 # PppW W"*$B'!qV0 0E0C#! 00U 1Y0  )B0K-@`V p<P U*A U@  p@  QppW W(*AppV!!q 0E0C#!0  U` ! V  Ap@OH-M`@PPP2 (yP 0  0 KހpEW Wh p # P $`pś ,  KHm ||]| R o P/ݴrO-MM @0 Ph`  pP 0l0@ Qh$K> KwP  rPQ` P P P (c< 0 P \PpPPY*b` @@EPP  A``` `N P A^T P 0P@N P QLT P P $ K\0o(@` 0 C \) D 1Y(@0,) : I"r P P0P( * PPPPU PP P 0`r  `U LPT`$DHX<`04d8p@$T`L,d``3P]P@@T* P@HDP*@H<W/*@WX p@GP*DaAA!.rPP P`*7@G PAWX@  THD C@XpPPT` pGGP*<, AA!.rPP P*  @PG`AW,@ pT < @PPT`8@ @Q*@8'd`@pm@ B qPPu ?PpV@d@ qT8 @ ?dPpPPT`04Q*0,`Lpp@GP:*4 BA!.rPPF P-*?@G`W`P hU04 ?PPT`Lp`@ P( ,HXLpdPPP >Z >T >@W:U8 TpP1Dn@b P"  %  PJ \ _P `  2/@PP_؁ P 9 Tpr @GP $K KPS@˩|r| ||#||x||/O-$M@ P  9 `$pU P ^pP 8a 2/`QZ_ 9 @Q- @ 0@XP``  P2/PpQ P3 eQ mpPPP:tQ6 pQ P RQ `pQ P) HQ  q "  | t0!  p P  P +0>a p P P  : pPhQ P5 Q ^*!2 "PM  d  P = `P =K*!2 "(   A  p `  ` ;a p P P  `7*!2 "ۢ P $  upP P P 7)aZ pW PT PQ %*!2 "h Tp  F Jp, ` <*!2 "(P?ApP `0 R W$q t  p   p ` / K<|||||X||||}|c|4| |V|H||H- P# \\\\dd\\\\\xxttllldxdd|  -ry @ Q3//(pL-MP@P[P p `l`-V P 1/Kp訫 |O-Mp@ ḐPp `[P p-X P 1/P `V:($  -K쪬irkyO-M$A`  P@ p[P  6-Z P 1/P pW:  ,[P  -Z P 1/K ryQ R 0B S 0A" S#*/R/0!(8@\Q/Q/AQQ/@o/0S- 1$DpQ! AR:Q//Q   Q  RQ//L-@`;0 @ @H-MP%dQL  ``VY` `   `;`+pc+N+Zr 1kP`fBja`1] ]  [+b j a 2 0P`oG@- Pj2tVsV&:@pz3D@D> @dD@DT7䠡@p@Ô RtV 3D@F `DVtp`p`ÖJPKh0 @ @<KH 0CAc|h zu|$|{B|pL-)M@ ARU 1/P `1/PH _B8 0TeMKp Kp|v|ѫO-4MPpU UN P2PEP   @P  0,  R$Q(,0D 0[P0@a  p 0p@@h G 0 @  !DaR C} |@VpPK V O(p0QopUe @WPP' 0O` 0pW p 0KL @ S O 8 2/ @IZ.U, 0 R`0A0 U b 0`0pzp`$` pP@`nQp`p` pPO@`P  00S 0K T O 8 2/T KU  feO   >*0Crx0H-M ^tPA,\L|P_!1 0*PS!1 0*PG!1 0)YP;!1 0) P/!1 0)P#!1 0) P!1 0)Q P  0 0) P K0  ) 0 0) 0 0)xt t0 0)Ur zC|erzϲ|rzڳ|Œrzz'|%rz|5rz|rzܴ|rJz|ur*zH|rjz |rJzk|ёrxO-M-0M`Pp@   PQ 0 Q0D1@a  %5 0C)P @(HQ   Q Q, (,(P&@ (X  0SpS0 p0 0 Q: %(ZX @`DQ Q Q   o@`T:X 0 `+ ?Gp@ @p;; ; KbK j Kd;0 3\@- \z2WW&: @J3A9a ad`FV4` @V ppp^RW3GA AQ@ V ^J^^ p @ R:sX p p`z{|'\7!  W0C   J j a 3 0R@OG. RJ24T3T':3A l><4@CT90\   P'R4T3DA AQ@\PP P p`W: 8KЍ<8 80 0'Arz"{rrz]|O-M-0M`Pp@ ^  PQ 0 Q0D1@a  %5 0'P @(3HQ   Q Q, (),(%P&@ (X  0SpS0 p0 0 Q: (ZX @`DQ Q Q   M@`T:X 0 `+ ?Gp@ @p;; ; KbK j Kd;0 3\@- \z2WW&: @J3A9a ad`FV4` @V ppp^RW3GA AQ@ V ^J^^ p @ R:sX p p`z{|'\7!  ϬW0C   J j a 3 0R@OG. RJ24T3T':3A l><4@CT90\   P'R4T3DA AQ@\PP P p`W: 8KЍ<8 80 0X&ArnzX{erz|O-M-8M` 0P@(   PQ$  0 Q0D1@a  %5 0&  @0HQ   Q Q/ 0B0 P;@ PD\-  0pW,`W)p `0 Rpp0: p0_ W \  `p@DQ Q Q   & Pp`@ W:\  `+0@  @;; ; KbK j Kd;: 3T /G" T2$X#X: p*3t`G>v `fvd`FV2v`R$X 3$ Hr BRp V   Y Y  p0P  S:Y 0C\ ~ `p∋퉛㉫'^7!  ᤫ Pa   J j a ? 0;R@OG:  0RJ2 T3T.:3A4@C0T1 l 90^ P  P+R4T30DA AQ@^PP P `p X:(L8KЍ<8 80 0$Aarz{}rjzU|O-M-8M` 0P@(   PQ$  0 Q0D1@a  %5 0k$  @0HQ   Q Q/ 0B0 P;@ PD\-  0pW,`W)p `0 Rpp0: Jp0 W \  `p@DQ Q Q   Pp`@ W:\  `+0@  @;; ; KbK j Kd;: 3T /G" T2$X#X: p*3t`G>v `fvd`FV2v`R$X 3$ Hr BRp V   Y Y  p0P  S:Y 0C\ ~ `p∋퉛㉫'^7!  n Pa   J j a ? 0;R@OG:  0RJ2 T3T.:3A4@C0T1 l 90^ P  P+R4T30DA AQ@^PP P `p X:(8KЍ<8 80 0#A|rfzP{wrz|O-TMpP0@`@,Kr  PQ<8 0 Q0D1@a  ,(((8 0" $KGHQ   Q Q. $K=p$K9pQ@0 @TT8p\  0 `PUU` P ``0 S:$K pY\ àD `Pk lm+ 00R YYpPV pE pP?;; ; KbK j Kd;& 3^G# ^2\\:@ 3D pDD1 pg pDW0R\ 3L @P~Ðp@Y9Y60 P S q:50CA\+ ` _ _ +_poG0$0 ;; ; KbK j Kd;3 3^0 ^:2SS):P 3TPE@9e PeeT0ES0c \ `ZRS3PC0 @P0 U ZZZ 0@pW:\ à P`+  07Uw! B 0P 0P},( ;; ; KbK j Kd; 3QGa Qz2WkWZ:0 340C> 0c4pCW0U YHc40 ;; ; KbK j Kd;- 3^G0( ^z2WW!:0 340CpJ@1à 0cW307RW3G0 @P0UY:YY ` R 1b:RW3G0 @P0U0YTP P0 0 p,KXKA vrz{%nrzŕ|O-TMpP0@`@,K4  PQ<8 0 Q0D1@a  ,(((8 0  $K HQ   Q Q. $Kp$KpQ@0 @TT8p\  0 `PUU` P ``0 S:c$KpY\ àD `Pk lm+ 00R YYpPV pE pP?;; ; KbK j Kd;& 3^G# ^2\\:@ 3D pDD1 pg pDW0R\ 3L @P~Ðp@Y9Y60 P S q:50CA\+ ` _ _ +_poG0$0 ;; ; KbK j Kd;3 3^0 ^:2SS):P 3TPE@9e PeeT0ES0c \ `ZRS3PC0 @P0 U ZZZ 0@pW:\ à P`+  07Uw! B 0P 0P},( ;; ; KbK j Kd; 3QGa Qz2WkWZ:0 340C> 0c4pCW0U YHc40 ;; ; KbK j Kd;- 3^G0( ^z2WW!:0 340CpJ@1à 0cW307RW3G0 @P0UY:YY ` R 1b:RW3G0 @P0U0YTP P0 0p,KKAmrzz-erz͌|O-DM`@Pp@,K  PQ,( 0 Q0D1@a  #3 0EP $KHQ   Q Q4 $K,KK$KQ@ T  0 ppzpW `Wp0 ` Spp :$KY T D 0 `R pQpz*@* Y A*ppWp p +QkpQhp0 `S*:T  0 pppWPWM 0 pS :mTj  A' `p!)@*Z A*P000 +QQ Q0$0 Q +` 0pV*:/ 0C($ $0 0RdrzzM`rz|O-DM`@Pp@,K  PQ,( 0 Q0D1@a  #3 0P $KHQ   Q Q4 $K,KK$KQ@ T  0 ppzpW `Wp0 ` Spp :$KZY T 0 D `R pQ}pz+`+ Y pa+pWp p+QhpQep0 `S+:T 0 pppWMWJ0 p  S :oTl  ? `p!)`+Z a+P 00+QQ Q 0Q$0 +` pV+:20C,( (0 0(a_rzz[rZzE|O-M-HMpP`@8  PQ40 0 Q0D1@a  $4 0P @0KqHQ   Q Q1 0Kg0KcP@Y p0 W R SpS0 p0 0  Q:0K1XY P@@^pȋ0@ DQ P'PZ% P Q      0 Q@@@0ZZZ p X :rYp p|`@  0 QT`T]`  p W:L0CYG P00^@M0w 0@!  `T Q  $   `(,  0 Q@@ 0VV  Z:8f (KЍ,( (0 0o@ZrfzPzVrҸz}|H-  \# ,LDT4dl\t<|HHHHH HH} H H HH  1Ur3xO-$MP @`p 0  P P R AP  P  _ Z * P  RPP  P '_ ZP `G PEq0S0uP03UP3 UR  S 吨!Kp P P) P`P   P p0L,x,,W: hd% W2 Q7 Q4 0  P:!W Q$ Q! 0  P:W  Q Q 0  P:W Q Q 0`  P:W Q Q 0`  P:W RT+;; ; KbK j Kd;8 3\G# \:2SS:   3$pBT0ERT:' pgS' p0#S 3C @P 0 S  ^^` Q:^Wz Q Q| 0  P:iWg  RT* + ;a; j;b;8 2\G# \:2SS:   3$pBT0ERT:' pgS' p0#S 3C @P 0 S  ^+^(` Q:^W Q Q 0  P:P KO,yKlh h0 0@< <0 0 ARrǵxMrFz'zMrfzQu|O-$MP @`p 0  P P R AP  P  _ Z * P  RPP  P '_ ZP `G PEq0S0uP03UP3 UR  [ 吨!Kp P P"' P`P   P p0L,x,,W: hd% W2 Q7 Q4 0  P:!W Q$ Q! 0  P:W  Q Q 0  P:W Q Q 0`  P:W Q Q 0`  P:W RT+;; ; KbK j Kd;8 3\G# \:2SS:   3$pBT0ERT:' pgS' p0#S 3C @P 0 S  ^^` Q:^Wz Q Q| 0  P:iWg  RT* + ;a; j;b;8 2\G# \:2SS:   3$pBT0ERT:' pgS' p0#S 3C @P 0 S  ^+^(` Q:^W Q Q 0  P:P KO4wKlh h0 0@< <0 0 AJrxErfzGzErzqm|O-$M@p 0` 巐巠Ḿᵾ P0 @P @T P@@P  Z  P@P@T@ `PP`  Z J`J0I Pq R s0 3S03S Y j  Q!KPP@1% ` @ P  PLLh$,,TO % TG  RJ0RG0 p!00Q :4T2  R50R20 p 00Q :T  R 0R0 p Q00 : T  R 0R0 pQ `00 :T  R0R0 pQ `00 :AT  +;; ; KbK j Kd;: 3[\G# \z2WW: 034@C54 @d4D@DT14@RW 3G1 AQ0pW  ^^ 0` PRⰐ:^T  R0R0 p!00Q :mTk * + ;a; j;b;: 2[\G# \z2WW: 034@C54 @d4D@DT14@RW 3G1 AQ0pW  ^.^+ 0` PRⰐ:^T  R0R0 p 00Q :Z KO/uKhd d0 0<8 80 0A!Cr#x=rRz3z=rrz]e|O-$M@p 0` 巐巠ᴼᱼ P0 @P @T P@@P  Z  P@P@T@ `PP`  Z J`J0I Pq R s0 3S03S Y f  Q!KPP@-# ` @ P  PLLh$,,TO % TG  RJ0RG0 p!00Q :4T2  R50R20 p 00Q :T  R 0R0 p Q00 : T  R 0R0 pQ `00 :T  R0R0 pQ `00 :AT  +;; ; KbK j Kd;: 3[\G# \z2WW: 034@C54 @d4D@DT14@RW 3G1 AQ0pW  ^^ 0` PRⰐ:^T  R0R0 p!00Q :mTk * + ;a; j;b;: 2[\G# \z2WW: 034@C54 @d4D@DT14@RW 3G1 AQ0pW  ^.^+ 0` PRⰐ:^T  R0R0 p 00Q :Z KO+sKhd d0 0<8 80 0A;rx5rBz#z5rbzM]|O-,Mp@P`巐᯺ ᬺ p0 p R Ap $ p  _ Z * p  R p`  ` )_ Z p I ` pBq0S003wpW3 P R W 吥!K P pP  ! `p   P(tL`,,W2 @<% W* U.U+ 0 PP:W UU 0 PP:W U U  0P P:W UU  0P` P:W UU  0P` P:W p+G34;; ; KbK j Kd;5 3Y! Y2ZZ:   3$ 0B<# 0c#4 0CS0#34RZ J @P W UU` PQ:}UWw U{Ux 0 PP:gWe | p|G34* + ;a; j;b;5 2Y! Y2ZZ:   3$ 0B<# 0c#4 0CS0#34RZ J @P W U)U&` PQ:UW UU 0 PP:KP O5qlh h0 0@< <0 0 A2rǕx-rnzOz-rzyU|O-,Mp@P`巐Ṹ ᶸ p0 p R Ap $ p  _ Z * p  R p`  ` )_ Z p I ` pBq0S003wpW3 P R a 吥!K P pP  % `p   P(tL`,,W2 @<% W* U.U+ 0 PP:W UU 0 PP:W U U  0P P:W UU  0P` P:W UU  0P` P:W p+G34;; ; KbK j Kd;5 3Y! Y2ZZ:   3$ 0B<# 0c#4 0CS0#34RZ J @P W UU` PQ:}UWw U{Ux 0 PP:gWe | p|G34* + ;a; j;b;5 2Y! Y2ZZ:   3$ 0B<# 0c#4 0CS0#34RZ J @P W U)U&` PQ:UW UU 0 PP:KP O?olh h0 0@< <0 0 A*rx%rzwz&rzM|O-$Mp @`P ö0  p p RY Ap  p M _ IZ * p  R=p`  ` 2'_ .Z p P` pGE wpq0S003Wp3WR  n 吨!Kp P P P P2 p`P   PdL$$,,Z # Z !  R@ 0R  0 Q  :Z  * R@ 0R  0 Q  :Z  * R 0R  0 Q  :Z  * R@ 0R  0` Q  :mZk  * R k0Rh  0` Q  :UZS  RV0RS  ` 0 Q  :>Z< !  R <0R9  0 Q  :'Z% X*X' 0 P:Z  * R@ 0R  0 Q  :W KOmKLH H0 0,   0 0$ !#r#xrJz+zrjzUG|O-,M@p P`巐9 60  @ @ RX A@ $ @ L _ HZ * @  R;@  @ 0(_ ,Z  `I @Bq0S0t@03T @3T R !_K P P@ 1 ` p  PdL|$4,,X # X !  R@ 0R  0Q  :X  * R@ 0R  0Q  :X  * R 0R  0Q  :X  * R@ 0R  0`Q  :qXo  * R o0Rl  0`Q  :YXW  RZ0RW  0Q `  :CXA !  R A0R>  0Q  :,X*  R-0R*  ` 0 Q  :X  * R@ 0R  0Q  :Y KO$lKLH H0 0   0 0  rxqr&|zzrF|z1A|O-M-(MPp@`巐᭳ ᪳ P0 P Ri AP $ P ] _ YZ * P  RL `P  P @)_ <Z `  PI `BuPq0S003U3 PYU 吨!P P P  `   P@L|`,,Z # Z  Q#R0R 0   P:Z Q Q 0   P:Z Q Q 0   P:Z  Q#R0R ` 0   P:Z 0 SS0R0R ` 0   P:iZg p P  0 Q+UcU`` p W:JZH 1 SS0RI0RF 0   P:1Z/ Lp P   0 QU*U'` p W:Z Q Q 0   P:Y (KЍOj(KЍXT T0 0 ,( (0 0 o@Cryxruzzruz:|O-$M@`0p 巐巠  P0 @P @T P@@P  Z  P@P@T@ pPPp } yZ JpJ0I Pq R s0 3S03S Y ± Q!<KPP@  p  @  PS,,,,,,,,,TTCY KOiKT  R,0R)` PQ p` 0:T  R0R` PQ p` 0:`\ \0 0* LH H0 0"    AqrsrxrbrzCzrBrz-7|O-$M@`0p 巐巠0- P0 @P @T P@@P  Z  P@P@T@ pPPp } yZ JpJ0I Pq R s0 3S03S Y  Q!\KPP@ / p  @  PS,,,,,,,,,TTCY KOhKT  R,0R)` PQ p` 0:T  R0R` PQ p` 0:`\ \0 0JLH H0 0B  <A rnx- rnzÞz rnz3|M-Mp@`:5 0P@5/KL-p[ D7P ,C,,#@   # " "  " " " dd" HH"  ,," $" (! ,! 0! 4z! 8q! <hhh! @_LL! DV00! HM! LD  P; 0 0  T7' !j0|l"Z0|"I0|t#50|# 0||$0|%0|%/|&/|&/|'/|'/|(/|(/| )/|)/|(*u/|*`/|0+M/|+:/|8,-/|,/|\@Q/H- P 1/P 1/P 1/| P 1/`P 1/DP 1/(P 1/ P 1/ P 1/$P 1/(P 1/,P 1/0P 1/d4P 1/H8P 1/,<P 1/@P 1/DP 1/HP 1/LP 1/PP 1/TP 1/hH/|L, lL, lL, O-M- M@pR1 @ @`pP qAo G@/oo"PPPI`@TU pV @ V V` `p @`` P0ᅌTL  @P NZ? PXM@Z1 p4` P PU  R  0#D p0[P0 U  @ 1 `P4/`pGZ(KЍ 0Cl f/PP/0%\ 0R3r/04P/0H-0,@P (N0AP PQM@0/%4  R /M-P p0,`CP M0 A@0S%M0p MO-M '`P% 0p R 0 W @Bp  R W* { V$TKO-$M@ 0`Q@  P; MCX PpODQ& ` @ ` 00S 0;& OT   8 2/O@pWP PZL`X ,  ,p A p D Rg `P @MP  PUhL P` S{ 㯚`PQRh U 0  ㎋  `/OP@`  00S 0% X O @8 2/@ P KO-,M@ 0`%t 0 B 0S0 @tP PSP  lS %4`p@  R @ Ui  PB ``@p$P@`  R TN*\ `EP p pz PPQg p/OP 00S 0% p Y%4 O 8 2/ p%4$PpU ` P 0` @0 0P{ xKO- MP  0 `P  Lp @pW1Kp`%d 0 R 0R$ 0,A  ,@H@`P K QK` d"XKO- M,PP K A@ PJP  QU @* P P P@T@T Op P K@TB`XJpO QH  0 B0C/o?o2"2> @ `1TpU 0`  %pO` p 00S0 # Z O  803/  P ,`OP K Ap P7J`@  0T>Kx2x,K-@` uPXPpOp P J` B`VI`p @S 0Pp`V10`S P`1PV0P`4p`p`VP 0 0P`ƒPPpP@  00S 08# `T   8 2/H-pP`@`0  00S 0# W O 8 H/H-`P @ p !R:Q /WP &W`pP@P`  00S 0" W O 8 H/M-M`Pp P I B@ QIp 0|KM-M`Pp P I B@ QHp 0UKK-M P@0CP Ip `pW Hp@UP1PE  0]u `@0hpS0!uPGU@PHOPE @a@U`@P4pPpPUPU! 0PU0 KO-4M    pp c@p@ 0T$p  @P` @P@$p Q  H$p (@ `P #I$pP PUJH$pP`(@ OOP$P   0ֆ$ p(@Zh Z2 X ` ` 00S0P! $p$PY  803/$p$P  0 LK` P i0P!zPCUP@LPD@OO@a `p@U@P40@p0@T$ (@P  1`0P0` X0` * P0FZ 0`$ 0$pT `O @GQ$y $ 0^1y0AS@POO1@0@U@@4@@T $P 00 P$ 0 p` @gcT1P@eT` /O@ G@C B@DT` @ 4  B@ BA@ RP  0P0  pOP@p 00S 0 $ Z0 O 8 2/$0 @ 0pF` 0   0 (@p  0X  KO-MO@ P G BpYF@ P@Iҟ@ 06pT@4   `@PPP xG RF P0p`P@Q K/H- L-M 0@S\7\3 \! * \)! 00:@@T@00@`  Q:  R  @0 0@  R zKKK-Mp `W$PWp! QQ   jW @P `@V:`` KH- H- H- M 00 0 РH- O-MPp @iM  PPP @p F`Ts @`VE`@PTd   %t 0 R 0YK*P P lF  RE P Q @P) PO@pP  00S 0 T@ O 8 2/ TKH- %4P P#//pL-M@P!`   AJ0 f KpO- MF" p P EP B@PU EPp%4  R  0 R  KOf 0 ?O 4^*00&0B%t  R pW  R  pE p0sD q0R2x p,W*Kpp %4 R ! @ 0 R*`@D P@ \ ^`@D R @LPӀ 0P p`W KO! 0C0H-MS@ P   @zK0O-M@P Qp  R  0#D 0{Q1@a  #3 0Lw W* P  ,44 4R!W``1U X*Q` 0R:8Pl HPo KOY  P D ZC PV P @ 1 40P0  H@ o堒2) i0 HP`1V @@1P R @  40P0 D 0! R  0PH  0CAqCz~|O-M@O PU @㥡p  P 6DP B`PU_CPp p @L`Z   0PpHQPq  `` ` P 00S0P PY O 803/}@0P p TKphH-MSK 0@ aXXXX  0@@@@@@@@@@@@@@@~!@Pc`a V1~@`DV`ppP`APF`C`FpVP@@4`qPD@`PU ^  ^ KsK0KH@  uqw8xO-Mp w0!P`l@bT`1w Š @JT΀@pB@PGpL 1 pG@WPpp4P @GpP@TpW7 QAoၐW+@ P`Y`   00S 0R O 8 2/P@pWKO-LM0`s hjP!s Q  00 104  Q0S -,0P E( P B( p @pWA( p`0p P B@,PU @,PP(A@Ux(a p  D 4p 0@d 00B, 07   "4 0$0 ( (o@O@ 0p 0PU,P0p pS O 803/, 0@Z*`Zp 0A0P (A, $R `2ndKO-M `pv @P@vD`PlU `P`@F`P@D` Q4 ` @T`VW  R`nS:QVH  ` /OA @  `*p QPP#   00S  0 DR O 8 2/@ pZKM-PBpUO  (`@  8 2/`PU(0 Rp  R M"0A`p pC3QWq[ !7pW 00 [ O-MpO  pJJ  pJ`APOQqڠ/0 /Q  !@0  @ ` 0000S" 0 PP0PU V  * S  < @ [ ` 4 8`  [S Z E   0 R \ 0 P ``0`V$ @ ``0`V$ U 0: T 0 L P0 [ `0D0 H`  [T *  JA\ 0000S   @T:r@0 ` PP0PU! P pp0pW V 0: U 0 T P0 p0\0Xp U * J 0000S A0 ` pp0pW! P pp0pW! V 0: U 0 D @0 p0L0Hp U * Z 0000ST Z   @  T0 ` 0000S= 0 pp0pW V  * S  40  p < 8p S Z    P   `pP PUJ DQ   0 Rp0   0 R$   ``0`Vf S  R \ ` [ 0T X0  [R   Z WNv  0Q Wl p0   0 R$   ``0`V$ S  R l p [ 0d h0  [R   JpZ= 0Q   W- W)p0   0 R]   ``0`V S  R tp 0|x0 R  ZI0   0 R!   ``0`V S  R d` 0lh0 R  J 0Q W* p  0QP UpP0   0 R   pp0pW S R  R}  0 ` pp0pWa p PP0PU V 0: W 0 $ 0 `0,0(` W * KZ Q C  p0P ``0`V! ` @@0@T! U pz V p00p PppP V0: J pp0pWA0q0  0000S    RK JKO. 0JKO1J 0K0$ (0 [RV , 0 [ Z   K 0QH-HM0@OP ``0`V{  ``0`V U 0: ^ 0`$` (0 [ P00 P  [^0: C@0` PP0PUZ P pp0pWa V @J U @0$0 @ `@,@(` U0: @@C^G T 0 00 000P pp0pW @ pp0pW[ UK0: TM 00J 00000C?o@ @@0@0D?oB^@^0TL 00 00000 P pp0pWI @ pp0pW/ U0: T! 0  0p0 0p T  0Z p00p T * 0Z  0K0 pp0pW0 pp0pWK-8Mp` 0O PP0PUD P @@0@T Q  U  $   , ( U wZ  0 @@0@TK p @@0@T! Q W   Q 0QL   W >Z  0 @@0@T1 p ``0`V Q W   0Q  W Z K 0QO-DMp?0OP  @@0@TD @ ``0`V Q  T  4 0  P$P ( [T Z   0  @@0@TL P @@0@T! Q U  $  0Q0,0( U wZ   0  @@0@TK p @@0@T! Q W   Q 0QL00 W >Z   0  @@0@T1 p ``0`V Q W   0Q0 0 W Z   K 0QO-DMA@@P)p`0  0Q   0P S R 40 P   P @O0P`  0 Rc   pp0pW V  R $  `,(` R  RZ S G  P`  pp0pW! p P0PU! X  * W    P  P W J  0 R@0Cp 0 0Q0 P ^, @P|@4 H / 0H )H 0 5!$ ( [RM  Z   @oB O0P KO-$MpP@  `ZU P`P@CT P  pO`eP0@cT@E`p @D`T`@pap`40pG0pWP! 0P0 p P p@` 00S0` `TP@!T   0B@ "@O P803/P`T` 0`^  KO- M`Pp@V4eX20P-  p``  00S 0U X O  8 2/PE U X  匷 U  E 1 40P0 KO-MPP@P0PoဠT, ApZ``   00S 0R O 8 2/pH@TKO-MP @8` ӻ`@ PEQ @8 `P@P 9p pW-8p@ Y P!@P 8`Y "  0   0K `V7`@YH-   ͪq xH-   륪q xH-   }q xH-   UqW xH-   -q/ xO-MP@pX `P`qP 0 R 0(Z O  8 2/ KK-00Opp`P@DR @EPD` BVP L AK@P 8PP p @  00S 0 U"  8 K/@`  00S 0 V   8 K/O/PP/L-%D^ R*4Q04P/0H-0,@P 70AP P6@0/%4 P  P/ 40\ R/M-P p0,`CP 70 A@0S60p MO-0- -`P%p 0 R 0 W 0 @Bp 0 R 0W *DQ  le TKO-$M@ 0`Q@  P; +7CX PpODQ& ` @ ` 00S 0 OT   8 2/O@pWP PZ6`X ,  ,p A p D Rg `P 6P  PU5 P` d 3`PQQ q? 0  u  `/OP@`  00S 0/ X O @8 2/@ P KO-4Mp`0P`0F@%4T@ 0qS( $P` `=@P $%t0( P V  O40p SP  <@$%t( 0 R 0 V `B @ PP@%t$` @P 0 R 0TZ*DQV P  K pd ]pPQQ  /O`  `p  ($ 00S  0e $( ($ P O 8 2/ $($`%tVP @  0@Pd ܈ 0 PGnKO- M` 0 @P a5p PpW4p@%T 0 R 0R& , ,APJPD R @P 15 QZ4@ ZKO- M,PP  5 A@ P64P  QU @* P P P@T@T Op P 4@TB`X4pO QH  0 B0C/o?o2"2> @ `=pU 0`  {pO` p 00S0 A  Z O  803/  RP ,`OP d4 Ap P3`@  0TKתѪK-@` sPᮋPnOp P ,4` B`VU3`p @< 0Pp`V10`S P`1PV0P`4p`p`VP 0 0Pm`PPpP@  00S 0  `T   8 2/H-pP`@`0  00S 0i  W O 8 H/H-`P @ p !R:Q /WP W=`pP@P`  00S 0#  W O 8 H/M-M`Pp P I3 B@ Qr2p 0KM-M`Pp P "3 B@ QK2p 0gKK-M P`0CP 2@ p@T $2@`UP1`E  0pPvp@ h0R !v`CV@`HO`F @q@Vp@`40`0`V`V `V FKO-,M   P 00 h@p@$pT @P` G@P@$p Q P 2$p  @ `P u2$p@ @T1$p@` O@P  0'p p @Xg X2W `P  ` 00S0@  $p@U  803/$p@  0 pK` P i0P!xPCUP@LPD@OO@a`@U@P40@0@TP @P  1`0P0`U0` * 0FZ 0$ 0$T O @:y  !0^1y0AS@OO@P1@U0@@4@@TPP 00 P 0  c@iT1P@eT€ /O@ I`@C B@DT @ 4  B@ BA@ RP  0P0  PO@`P  00S 0  T0 O 8 2/0 @ 0`FH 0  #0 P @  0s  KO-MpO@ P 1 B`Z,0@`@ᡬ*P 0ypUP;   P D0S @P 0  R/ @0cpPYQ KK/H- 0H-M D0S\E\A \! * \7! 00:PPUP00P`$  Q:  R  @0 0@  R  jS \! 0U  Q:K0K0K-Mp `W$PWp! QQ   jW @`P `@V:`` KH- hH- oH- M 00 0 РH- gO-MP` @6  PPP @` /pTx @pW/p @PTi   %d 0 R 0XP* D RK PP /  R. P Q @Pg PO@`P  00S 0, T @ O 8 2/TKH- H- %\  R(DQ /pL-M@P `   Ax0 KpO- Mݱp P /P B@PUA.Pp%4  R  0 R  KO~0 ?O 4^*00&0B%t  R pW  R  pD p0sD q0R2x p,W*Kpp %4 R ! @ 0 R*`@D P@ \ ^`@D R @PӀ 0P p`W KO? 0C0H-MS@ P   @oK0O-M@P Qp  R  0#D 0{Q1@a  #3 0w W* P  ,44 4 W``1U X*Q` 0R:8Pl HPo KOR°Y  P - Z%- PV P @ 1 40P0  H@ o堒2) 塿0 HP`1V @@1P R @  40P0 D 0! R  X0PH  0C!~q#wqy^{O- M@O PU @+aP  P n-p BpW,pP P @.6V 0ppP< P `P  00S 0 X O 8 2/P4g4P  0TSKhдH-MSK 0@ aXXXX  0@@@@@@@@@@@@@@@~!@Pc`a V1~@`DV`ppP`APF`C`FpVP@@4`qPD@`PU ^  ^ KK0KH  zqwO-$MpP`  @ZZ P @P@_5 VPp@eP0`cV`@OO @Ep@D`T`@pap40pG@0pWP! 0P0 pO@Pp  00S 0 ` TP` @$V  0@  $`O @  P P8 2/PV@  0@^  KO- M`Pp@V4eX20P-  p``  00S 0 X O  8 2/PE U X  ˩ U  E 1 40P0 KO-MPP@P0PoဠT, ApZ``   00S 08R O 8 2/pH@TKK-M` P [+ B@X*`0  R p`OpP%p@@ TR*4@T  PR: @ 4P   0T`K蜲O-MpP @8`ᾭ`@ EQ @*  P@P *  `Z *@p pP!`P *@  P@T )@`P  0   0;DQ@@KH-   mrqowH-   ErqGwH-   rqwH-   qqwH-   qqwK-00Opp`P@DR @EPD` BVP L AK3@P 8PP p @  00S 0 U"  8 K/@`  00S 0 V   8 K//A/PP/0%\ 0R3r/04P/0H-0,@P )0AP P)@0/%4  R /M-P p0,`CP )0 A@0S(0p MO-M '`P% 0p R 0 W @Bp  R W* W TKO-$M@ 0`Q@  P; e)CX PpODQ& ` @ ` 00S 0 OT   8 2/O@pWP PZU(`X ,  ,p A p D Rg `P (P  PU&( P` W mv`PQD 1 0  Lg  `/OP@`  00S 0i X O @8 2/@ P KO-,M@ 0`%t 0 B 0S0 @tP P/P  */ %4`p@  R @ Ui  PB ``@p$P@`  R TN*\ `EP p p\V uPPQ[C p/OP 00S 0 p Y%4 O 8 2/ p%4$PpU ` P 0` @0 0PWW 6{KO- MP  0 `P 'p @pW&p`%d 0 R 0R$ 0,A  ,@H@`P ' Q&` "XKO- M,PP u' A@ P&P  QU @* P P P@T@T Op P D'@TB`Xi&pO QH  0 B0C/o?o2"2> @ `/pU 0`  pO` p 00S0  Z O  803/  P ,`OP & Ap P%`@  0TKppK-M@P Z`~PUOP P &p BpW%pP P@Q/` 0$  _P`p`@  00S 0 PT   8 2/KH-pP`@`0  00S 0 W O 8 H/H-`P @ p !R:Q /WP ^WἨU`pP@P`  00S 0 W O 8 H/M-M`Pp P % B@ Q$p 0KM-M`Pp P % B@ Q$p 0KO- M@ P0CP z%p `pW$pUP1PE 03c` 0PKO-$Mp  0 `` h@ Q  @P`Q@P `$ @P #%  `Y K$@ P`_OPp& @  0@@pbX  0p @PT;*0 @  p p{@p @` 00S0 P P_OV  803/ 0    @ `a$pU 0`  UpO` p 00S0  Z O  803/  ,P ,`OP > Ap Pg`@  0TnK8s8mK-M@P X`rPSOP P p BpW.pP P@#`0 $ TP`p`@  00S 0 PT   8 2/KH-pP`@`0  00S 0\ W O 8 H/0 M-M`Pp P | B@ Qp 0AKM-M`Pp P U B@ Q~p 0KO- M@ P0CP .p `pWWpUP1PE 0W` 0PKO-$Mp  0 `` i@ Q @P`᠜Q@P `r @P  `Z@ P`_OPp& @ 0@@pWY  0pF @P T9*0 @  p p@p @` 00S0P> P_OV  803/ 0  WK pXWEPO @/"0pP@@B 0   @P@_Op@`  00S 0 P_OV  8 2/  @ 0  ] @` pP  0` @K85pL-@P P  B` QPpL/H- N-M@ D@ PT0Uu`Un0UP! * Ug  *00S0  0`> `V:M00S# 0p p0R  zU;  00S0 0 j`V:%T UpY ḨP`pV:KU 0Y R `V:KKK-Mp `W!PWp! Q   jW @lP `@V:`` KH- H- %H- M 00 0R РH- O-MP` @  PPP @` pTx @pWp @PTi   %d 0 R 0XP* D RK PP   R P Q @Psx PO@`P  00S 08 T @ O 8 2/TKH- H- %\  R(DQ /pL-M@P`   A`0 Kpe0H-MS@ P   @oK0O-M@P Qp  R  0#D 0{Q1@a  #3 0.w W* P  ,44 44W``1U X*Q` 0R:8Pl HPo KOlY  P  Z PV P @ 1 40P0  H@ o堒2) K0 HP`1V @@1P R @  40P0 D 0! R  0PH  r0C q˃w#qryK{O- M@O PU @ՑaP  P p BpWApP P @V 0ppP< P `P  00S 0 X O 8 2/PO4P  0TK]xW0H-MS+ @QXXXXxx@@ 0'K0 0K0K0 0K0HO  qwO- -P`%p 0 R 0 W 0 @Bp 0 R 0W *DQ  nC TKO-MP%@p`p V p `pYj ppGp@Pp%`pV ppXP* `DpWL S p `p qB `P.C bpPQ-0 @/Op @ 00S  0P 0R P_OPP p8 2/0pW `KO- M`  @P p PpWp@%T 0 R 0R& , ,APJPD R @P  Q@ ZKH-`P@ pQ:S /WP W `pP@P`  00S 0 W O 8 H/O-$M@p `PVD  `@W 0 p pp@p`  00S 0 V ` O 8 2/pW   0"@  W P 0P^ KO- M`Pp@V4eX2ᜤ0P-  p``  00S 0A X O  8 2/PE U X  x U  E 1 40P0 KO-MPP@P0PoဠT, ApZ``   00S 0R O 8 2/pH@TKK-M` P  B@X1`0  R p`OpP%p@@ TR*4@T  PR: @} 4P   0T KPQKO-MpP @8`k`@ EQ @;  P@P   `Z @p pP!`P @  P@T @`P  0   0>DQ@@KO-M@`@j  0ZpZ;   P@ D0S @P &  RN @0pP YQ ~KH-   1qrwH-   'qrwH-   uqwrwH-   MqOrwH-   %q'rwO- M႔p P P B@PUPp%4  R  0 R  KOj0 ?O 4^*00&0B%t  R pW  R  pA p0sD q0R2x p,W*Kpp %4 R ! @ 0 R*`@D P@ \ ^`@D R @(PӀ Pp`W KO0CK-00Opp`P@DR @EPD` BVP L AK@P 8PP p @  00S 0 U"  8 K/@`  00S 0 V   8 K/{(/PP/0%\ 0R3r/' !/0!0 @0 " 0# D/H- M 0 0 > Р/%4  R /M-P p0,`CP s0 A@0S0p MO-M '`P% 0p R 0 W @Bp  R W* _> TKO-$MP 0@P $ `PM@0 Xr `AGpP `p0  ! "\ 00 q=@P&  > q]`PQ+  0  PN@ `/OP@`  00S 0m U O 8 2/PG `V KO-,M@ 0`%t 0 B 0S0 @tP PP  0 %4`p@  R @ Ui  PB ``@p$P@`  R TN*\ `EP p pb= \PPQa* p/OP 00S 0 p Y%4 O 8 2/ p%4$PpU ` P 0` @0 0P]> $`O @pwp`0 Rpp1`vW `R` @aBW P P`R PWF  R; B0 0:0p0`Fp` $Y    000:p0$0 (p [ B`nY (0,pp0$ K! 0!3/p0 p@@b P`gVP@1`VG0B A0CS10CC70`0V$`T 0S 0G B 0C BR0 0 0  0!3/ `/Op`P @00S 0F /O@U Pv r o8 2/Yj 30/wtO-M`oO@ P \ P BpPU P@pAb@ 0R`T(D pp  ! "  00 7 0уp`TDQ vK/H- bL-M 0@S\=\9 \! * \/! @0`%  Q:!  R @0 0@R  z\! 0@ @0 j Q:KJ-M ^!^+ 7Y@wp%0$0 p0`  R:@@T @P@ PT  z  KⰊH- H- H- M 0 @ 0 РH- O-,M@p ` P@Pp Q Vr @\wPVd D `%t 0 R 0ZK* 7   " 0$0 6  Q @Pi PO`@pP 00S 0 V` O 8 2/ VKH- P%4P P#//pL-M@Pr`   AR0 KpO- MPp P  B@Xp%$Q p 00S  KO`1oOpp ^`` K@Gp%dpW `pVpppp\ p```p0cDF  q0{\<ph`'V*K``%DP @ 0T*@ P% @$P@ W ^p@  "  @PӀ 0P`pV KO0CpL-MS@ P  %T R `^PP~PP  0@`KpO-MP Qp  R  0#D 0{Q1@a  "2 0w W* P  ,44 4 @W``1U T* Qv` 0R:8PI HPL KOQV Q A70Q00D@o 0堂3( *0DP`1V 7@@P R @0P0D 0! R  0PH  S 0CMpOGwpjIy {O-M@O PU @ⵂ㥡p  P P B`PU!Pp ` @RpZ    %4  R  0P`  0I`QPac 㘽 pp pP  00S 0_ Y O 8 2/@@P ` 0T̨K{T N-(MS0@ q4\\ll~@~aPpW P`Pq`EpPFPUp ^pWpa 7 4pP pz00 `p$p ``np``p^ ~k^ ~PL~@pW *@q@p @D@D@Tp^pWz! \   00 h~@~aPpW PqP@PEpPEPUp ^pWLpQ 74pP pz  pPPp00^ 0CK@Pc`a V1~@TP`APF`C`FwVPa`FQFp@pPT ^  R B0 0K4  0!KN/  ਼$p@wO-M-MpwWJ``wF pQ ap`WPP`QpW1 QpcW+ P*`@@ {Np     H n @Z(KЍO-4MPp @€`XA `@`W0 hpR `VH 0AQ0A1A`0V`RoO& 0S H 0 BR0 0 0W  0B@  ^ 0h1!003/pp  00S0`J `oOXp`p` 803/W`T !    *0 , (0 A`n@T $00  K O-M@`pS4eX2P4 P, YpPP  00S 0 X O  8 2/`F V X !w V  F' P KK-M @P0CP p `pW pP X7 ` ! "DPX 00 :1PX B 0 d  0KH-   ںipk9wH-   кApC9wH-   ƺp9wH-   ༺p8wH-   ಺p8wO-M0pO`P@@DGR  B0PE`(0#0 L AKO.@P 8PP p @  00S 0 U  @`  00S 0 V   K8 KO//PP/H- %\ R('! ' !/0!0 @0 " 0# D/H- M 0 0 J0 Р/0H-%$0P 0P  7@ P%@$PQ0M-P p0,`CP 0 A@0S0p MO- M0 1`P%p 0 R 0 W# 0 @B00p 0 R 0W * !   0 TKO-$MP 0@P E `Pn@0 Xr `AGpP `p0  ! "\ 00 /@P&  60 O`PQ5  0  q@@ `/OP@`  00S 0 U O 8 2/PG `V KO-4MpP`0`0F@%4T p0qS$PP( P$ $%t( 0Q 0X  7` p'`&pQ 7$ $%D( 0 R 0 X 0 B W`p%D p` 0 R 0WV*! P P $ @C@ b/ N@PQa$ /O @P    00S 0  (U$ O 8 2/$(@ @ %DWYP `  0p@d0 CT `$@ 0BPx9KO-M` @P p PpWp@%T 0 R 0R @APP@D ! " 0 0 . ,TKO-M,PP  A@ PP  QU @* P P P@T@T Op P N@TB`YspO QO  0 B0C/o?o2"2E @ p `U   %4  R  0p 0  `Op ` 00S0  X O  803/  㽶P ,`OP  Ap P`@   0TK||K-@` PWPzOp P ` B`V`p @p` \001S p`WW`p@aGppPP`WS pW 0 S 0 0 0  p!7/z8`PPpP@  00S 0 `T   8 2/M 0 0 a n  0Ѝ/H-M`@P  p R  !RQ       a n  0K/WP *Wሁ M-M`Pp P  B@ Qp 0\KM-M`Pp P  B@ Qp 05KK-M P`0CP kp @pWp` U P1 `E 0%<Pv p@i0T@!vTpIGpQgpBqA``pQ`V  R B0 0  0!3/KO-q  R !04Q/0H- 0,@P 0AP P@0H- R RP`p@@@Pp PW/O-,M @`,P vp APpWp@0 Q   R $  0+Q 0#D1@a  d`#`3 0y @`FOO QÀS+Q(0P P @]@P    Y Q@U0YA SQ@P3@P    Y Q O4 0?B@ T @OORA  P@OO 0R:8P1 HP3@OO  !P` P0 0pW 0U S   K8 KO/D 0! R:0PH  ૪ 0Cpvpx]z / 5O-M-M`KP0 p4 8 < @ D *K 0@P P I0C PQo P@D@K  ,p$`Q * (@P @T@!`P3`@ P<80D 0KP0@a  P,<p Q  ! 0  `pP' P.`  Q LP @@PB\`pdhl@pqlPP QPUPp`P&   @pPQ  K 0  0P P/Op(`@P  00S 0 W O 8 2/(p(  P*$` P,ZZ ( Z ap p@P @TĐP$7@ P400D 0P0@a  P 0P $0p7/p 03/ P{  Q$  L @@@P$TX \ `d hlplPj PP( $@   )?pPQ $@ f 0  0P P/O(p@P  00S 0# Y O 8 2/(( Pp,`Z6 (DKn(KЍ,$` PZ0CO-,Mp `P`PE qR` 0 @E0P 0 K` @  X p`[XSWQ P` $   J m>pPQ @Op@P  00S 0} U O 8 2/ pP`Y:0 @@Av)  0`  CK FO- M,PP  A@ PP  QU @* P P P@TY@TU@TR `oOp P K B Rt pP  A Bo/o"Q)  P ,pP  A` PBp@  0 0TIK  0 ƩM-P@OO `V@kpa P B@ Q p 0H-@ P5GP ` P Bp Q` 0H-pP`@`0  00S 0? W O 8 H/0 }H- H- O-M-0Mp@ `0 @$'-PV1@P p p P ?@ BP@Th@pQw$ x v`   P$J;P,Y p,(  j I F0 Q!,pp W;:W8*POP  A` P`PPP  R$ P P2GY0KЍCH- :H- AH- HH- ,@P AP P@:7/H- ;O-M-hM@` V$ 0J PUA$0PD@03D/0CQ- Q*: Q(*,#p ~ 0  0ppWp,(p 0W7 @q a  TV XT `  $P pP  0 ` Z:  ` @X ? 0`P Z* @ p  D~ @1 S   P~Po0R Hh  &7p  ~Pu Pp  R P@P4PD@4@HLPPPTXP\`dx[iPZ }PZ 0HPU pX2`@T>:PUU:PQPU `p 00S: 8R HR  Q.  0Q.P j ` @X P@ Zt:P 0 P(KЍQBo @0 l`  6/  d|pvO-LM0p `  @PP  T:  `X >`PT* P p X ' PPi  36pa !aP V h  R   0p$  (0,0 4 8< @D@HkhPH `PG HPU X2`p W':PUU#PQPU  0P `pP p`P @T: K0@  ~KP@KP@KH- H- H- \H- H- H-  5/H- M0  ᪳ РS H- 1O-$Mq@`p PXfȠ@@D8PA   z7   p  /O\ @  00S0 \ O 803/P Yp`U@ 4PU@KKOO-M(]`P p@0SS A  J @7P?  :  q+   @/Opp @ 00S0  X O 803/ppZ@pKO-M @P <p PpWdp@Q@P` `PT7P  UKH- H- @P  @UH-   ,spvO-M@` パ 0Q: HQ<p 0dP uWZ W6 WU/P@`P`p  00S 0k W O 8 KO/P P QKB pWp pPH-   ಡqpvH-   ਡqpvH-   yqp{vH-   QqpSvH-   )qp+vH-   qpvH-   vppvO-Z ,  ,狟  @P s @T@P @ P,(0D 0KP0@a P P `0p@7/p 03/p`{  Q ] D8P8 H L`PTXp\`d@h\aPk PP&  * 4pPQ)  0  e%P P/O` p@P  00S 0ၿ V O 8 2/ p p` $Z1 A DKɼ(KЍ@$`Z 0CO-$MP ` p%d@ @T` pA @@t}T{: `0PP &  0p2 p`ᮤUPWN   P Je 3pPQd@Op@P  00S 0Ѿ U O 8 2/ pX:0  @@嗢 ` 0`i H9KO-0-` @P  PZ@ 0 0S P@@p@p T* BD R    AUKH- K-M@P X`=PSOP P p BpWpP P@@`0 $ P`p`@  00S 0 PT   8 2/KH-@00S   B1  ppW  ``P@`P`@ p 00S 0ỽ W O 8 H/O- MP` @0p0 =@HP  P PZ Pp@OO pP p   PP Pp  !R Q P`pP  00S 0L W   K8 KO/H- |H- O-,MS$@`1 A@0 :"V @0QNOO$ 000f  0 $P` @ƀX  0D0S  %0p0 S pT*p D0 rS R *@S D00 p7 @BS `t@0 0 R 0ᵼ0T T O  8 2/ KH- H- H- H-@,`oOPP  Ap PP, PP  A` QPHF @/H- O-TM0 p`P   @ R   P@  l   pP @Z*@  q@0 D R DPU  P `%P U `0Y* P D0S`  PEL @` 6 P2  Q I, P 048<@`DHLP^P @sPQ 2sP pT:K 0 O-LMP p0P  @ @ R @ Pp   Y: @P@p Yx* 0`H`p R D`V  @` P%` V` P0P@VN*0 pW D0SF  G`7 P3  Q  $p ( ,P048@<@DH]P* rVP Q!cVP  X: KP P 0KH- /H- 6H- MR0 0㻟 Р z РH- %H- ,H- 30H- ^ D@T 0 0%T@P @ \*  DQ00Q /O- M@` O0P p CPpWp@`;@P ` P  00S 0- YO  8 2/ Pz p W J A* 0PKO- M`PO@ P : BpYc@`pڼ`@ @Pp pP P 00S 0Ź ZO   w @W: G A@*p8 2/wp@  P% U `4P@Pp  00S 0ᄹ W   K8 KO/0H-MS@ 0P  00@DK00\ 0@rK0M- pP`P  @P` Q  EPP n @PPH-   AIpCvM-Mp` @ @P  0P `ጞV p ᩶`VpKO-$M p@T^ `P0 @ DpWM S D @- -@PQ, p/O `@`p 00S 0ᖸT0 `@ O p8 2/0 `PT` @ P @0  P pR 0@ `[KH-   ɖ%Fp'vO-M@0 P <-JP } `X P `P iP  pPU P`O   p @%`Q: 6 0 p  p֛ܴ ` p `P  00S 0ٷ U  8 2/KOW0Q  0ٜH-   3CpϦvH-   )CpvH-   }CpvH-   UCpWvH-   -Cp/vH-   CpvH-   BpߥvH-   BpvH-   BpvH-   ٕeBpgvH-   ϕ=Bp?vO-M@pP0 00`AVC@0?O PQ@ p`  00S 0 W O 8 2/D`Op`P % 00S  0  P 9  Q a E0KO蒥 @U O H   PaP   pP /P 0W@+POp` @ P  00S 0ᒶ W O  K8 2/ 8 KO/M-r: @P O `,P  Ap P` BXP` @ Pp  00S 0@ W   8 M/#/PP/0H-@00@SD0S P& p Q 010# @r0000S0 B 0 !4Q/000C)H-  R RP`p@@K)Pp PWH-  0 Q 4 0^ Q H- ,@P AP P@/, / /O-M-MKP0 p4 8 < @ D *K 0@P P 0C PQ P@D@K`  ,p$Q   * `(`@P x@T@P@ P<80D 0KP0@a 0` R! D0S   P %p Q  ! @r `0p0R:0B pP010P#  Q H L@ P TX\`P@Pdhl@pFVPPH P( $   o)pPQ  0  NP$ P/Op(`@P  00S 0h W O 8 2/(p(   P* P`,ZZ ( Z a狟pp @P t@TĐP$@ P400D 0P0@a  @P 吿P $0p7/p 03/ P{  X$ c L @P$TX \ `@@@d hlp`UPj PP' $@  -  (pPQ ,$@  0  hP P/O(p@P  00S 0ᄳ Y O 8 2/( P( Pp,`Z5 (DKΰ(KЍ, PZ 0CO-$Mp` P PA @@tT}:P  0 P 0   0 p`ḘXPWN    Jp 'pPQo@Op@P  00S 0ܲ U O 8 2/ pPX: 0 @@塖 @` 0`r  Q-KO- M  `@P  PZ@ 0 0S! P@@p/@ p T* BD R  HUKH- H- H-@ P 1P ` P Bp Q` H-@0Q  B  1  ppW  ``P@`P`@ p 00S 0 W O 8 H/O-MpMP`p PIP  @ZE` @P `OP p`V+`PO@P ᛴ` p 1R@W pP `P @ p  00S 0{ V   K8 KO/H- H- O-M@SP1 A`@0iZap O @QD R   !p:   r4 R*B DQ& Z 0 R  0Z O 8 2/DP@ZKH- H- H- H- ,@P AP PD@  @/H- O-LM` P@P  pP@ pP  PX Wi*@ @PP DQ   pE  @r@ P4 P0 P  Q $( @B48P<@DpHN1SP gPQ @gP P pW: K 0 O-LM p`@P D PPm@ @pP / PXWpT^*qP  DQ   U pE  @r@  4 P0  Y   ' $P ( ,`048<@D@HRP" KPQ KP @pT:  K P@  0KH- 5H- <H- H- @H- GH- NL-@ 0PD0S  p  @ 00S/B /H- M0  РM-@p P K` BP`Vt`p PU sUpO`4PP@  00S 0Ѯ T   8 M/S H- FK- `pP P @PUPp QF `P  @P`   R PP  @PPH-   ׌]p_vM-Mp` @ @KP " 0 `ғV p `VpKO-$MP pP Q` `@0 DpWO S G p`s "`PQr p/O`Pp 00S 0ܭ`U P P, O   P8 2/ `0P` @Q` pP  @0P @ QP0p `-KH-   1p3~vH-    p ~vH- H-   @H-   p}vH-   p}vH-   ֋Yp[}vH-   ̋1p3}vH-   ‹ p }vH-   ซp|vH-   ஋p|vH-   ऋp|vH-   ipk|vH-   ApC|vH-   p|vH-   |p{vH-   rp{v/PP/L-@ R*%P@R*04@TqH- K- `= p@DP  PP#pY*5 QI 88 1IPP  @PP   1/ 1/  K_  Ɋ%p'yv/H-  0%4 P0  S  04^0 R O-MP p,P \` A@`V`p Qp  R  0#D 0{Q1@a  "2 0cw W* P  ,44 4 iOW @@1U Y* Q @ 0R:8PK HPM  KO0 PT  P1 @  40P0  H B0I/o0墂3( d0?O0IP@1T  @ @PQ!0C 40Q0  D 0! R Yc0P H  ʉ0C)p+uvpFwx;z /K-@p W P`  pV  KO-M-M@K0 4 8 < @ D *K   `P0$ @ N` X v`D`p W D@KP X ƨpUD@K ᱼ㊨QV v`P@$P  @T9P 1@ P( 0#D40 0 Q1@a p P:0%DppW  P * p DPPY ` Y   Q,  ,p݋ p@$P @T@ 0CP@ P,(0D 0KP0@a  P õ` 0p@7/p 03/ `p{  Q  D8 H L`8`PTX\`d@hKPi `P( p ` PQ_ @  0  ` `/O@p`  00S 0ᶩ T O 8 2/ `pPY4 ADK(KЍ@P 0CO-,Mp  P0%t`00S0F  0@tP  P  h %4@  R Xq Pp @$ pP `E V:0%DP VN*u DQG P p? @  @PQ @/O`@  00S 0 V O 8 2/$P @0 @ @Ṍ P 0@ l#KO-M  @0pCP  PP%@P:`U@ @ Q> h8tHX8HX 1/ 1/ v C@PT:  KO  ҆IpKivO-M,PP  A@ PP  QU @* P P P@T@T Op P W@TB`Y|pO QM  0 B0C/o?o2"2C @ `Ugc 0 p  p嵋  `Op ` 00S0ḧ X O  803/  ȅP ,`OP  Ap P`@  L 0T qK0 U  0㋌A;K-M@P X`&PSOP P p BpWpP P@R`0 $  P`p`@  00S 0 PT   8 2/KH- R%:@0Bp`P`@  00S 0 W O 8 H/H-`@P p PQ W  0H薹H- H- H- H- H- H- pL-@P P  B` Q PpLy/H- H- M0  РH- M 0@ РH- zH- H- M R0 0s Р 2 РH- pH- wH- ~L-@ \* %$P@ \* !  DQ R3/ S/1K-M`P@ p   EA 0应K R/1 Bq0H-MS@ 0P  00@ɉK00 \ 0@K0H-   PAo3yO-M@P P p B`pW/pPO  QR @H @Up PJF 0 `  `i o 㤃 p` P`  00S 0k X  8 2/  PhP P 0TnK0 U  0\82H-   ഃo\vH-   ઃo\vH-   ࠃo\vH-   Yo[\vH-   1o3\vH-    o \vH-   xo[vH-   no[vH-   do[vH-   Ziok[vH-   PAoC[vH-   FoH-   <oZv/PP/0H- PR:@@6 p Q 010# r0H- {K- `= p@DP  PPpY* QJ 8    8  2IPP  @PP   1/ 1/  K*  QoSXvH- R RP`p@@{Pp PW /O-MP p,P  ` A@`VI`p Qp  R  0#D 0{Q1@a  "2 0'w W* P  ,44 4 -OW @@1U Y* Qr @ 0R:8PK HPM  KO PT  P1 @  40P0  H B0I/o0墂3( d\0?O0IP@1T  @ @PQ!0C 40Q0  D 0! R [0P H  0C9o;TvoVVxz /K-@p W P` b РpV  KO-M-MK0 4 8 < @ D *K  PP0   p  @X :PDpP U D`K@  ㊠PTDPKp M` ,Q   P틟`p $ p@P @T P,@ P<80D 0+P0@a ( 0pR]*0Q:0A0   Q , ( L@@@P,TX\`dhl p:CPl pPE ,@ ( P$PQ(,@  0  p@,p Q  ! q  0( 1$ p/O@ Pp  00S 0ῡ T O 8 2/$  P* P p`VV0C P$ V,q 拟 ( @P ( @TĀP ( @ P400D 0P0l@a h P P 0 h8tHX8HX 1/ 1/  U@PT:  KOh  }oEvO-M,PP  A@ PP  QU @* P P P@T@T Op P i@TB`YpO QM  0 B0C/o?o2"2C @ `Ugc 0 p  pǂ  }`Op ` 00S0ʞ X O  803/  |P ,`OP  Ap P`@  L 0ThK0 U  0㝃qK-M@P W`(PROP P p BpWpP P@d` 0PZ P`p`@  00S 0& PT   8 2/KH- R&: Bp@``P0  00S 0 W O 8 H/0 5H- pH- wH- ~H- H- H- H- ,@P AP P5@/H- H- M0  РH- M 0@ РH- sH- zH- M R0 0㜂 Р [ РH- iH- pH- wL-  R*@ p 0R/1B/ S/1H- M0C  0 Р R/1 B0H-MS@ 0P  00@K00 \ 0@1K0H-   {)oyO-M@P P @p B`pWipPO  QR @? @Up PJF 0 `  `壀 㩙 z p` P`  00S 0ᥜ X  8 2/  PhP P 0TfK0 U  0㖁pH-   zo9vH-   zo9vH-   ziok9vH-   zAoC9vH-   zo9vH-   zo8vH-   zo8vH-   zo8vH-   zyo{8vH-   zQoS8vH-   z)o+8vH-   zo8vH-   vzo7vH-   lzo7vL-M@QQX0@0SI0  0 U S  Q+b j a / 0R0?G@* R24^3^#:0@J340C<à 0cÌ40CS4à0r0Ó QR4^ 340NC 0CS0@r0ÓQ JQ Q @K0, ,0 0zAo5xyL-M@QQX0@0SI0  0 U S  Q+b j a / 0R0?G@* R24^3^#:0@J340C<à 0cÌ40CS4à0r0Ó QR4^ 340NC 0CS0@r0ÓQ JQ Q @K0, ,0 0yA5o3xyL-M@QQY0@0SI0  0 W U  S+b j a / 0R0?G@* R24^3^#:0@J340C<à 0cÌ40CS4à0r0Ó QR4^ 340NC 0CS0@r0ÓQ JQ Q @K40 00 0y Aao2xyL-M@QQY0@0SI0  0 W U  S+b j a / 0R0?G@* R24^3^#:0@J340C<à 0cÌ40CS4à0r0Ó QR4^ 340NC 0CS0@r0ÓQ JQ Q @K40 00 0x Ao>0x)y /PP/ Q/H- 0H-0 P0,@P 70AP P`@0/  /H- ,@P AP P>@K- )P `%t0 0S pW @Ap  W*  pTO-M` P@0p P  B R p `V AO|  | 0  `P @ AP@T@`P&    `PQ  2 0  @ P` p @`  00S 0 Z  8 2/P P``KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  #PP P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP  @ PPQ  /O` P  00S0 N V$ `0 O 803/0 `$Y P0 |  0P KO- M`0p P S B@X|p /@T* PaOlP@Dl 0  PpP & A P QNPp ᫕UKO- M,PP  A@ P'P  QU @* P P P@TY@TU@TR `oOp P ɾ B R pP  A Bo/o"Q)  uP ,pP ᗾ A` Pp@  0 0T`K  0 M-P@OO `V@:pa P B@ QpQ 0H-@ PP ` P Bp Q^`% 0 H- H- H- H- H- H- H- H- ,@P AP P"@ /0H-M@  A R P  N+b j a ' 0SG " S 2TPSP: PZ3$ B1 b$BP5RTP 3$@ @PsÐ*  0AS00Asr 0i1K0 AL-M @   0@Q P*K @\ AoK P1 Q   J+b j \@a   00 R @ T: o@pL-M0@  8   * 00S+0  0 ,+a+! j J$  @a P0 S0S ` PPU  R:@ @ Kp o@pL-MP `   R&  &+a+ j J  @a   0 b0@ST  R`bP` PKpo@ R  @P/ Q00A @ Q:/H- -O-TM pS@@  n:4P1`0 01S 0`0!0S0``V`P00SD0` 0;V6@a  D@#@3 0`s ` `V%P1  P+ P*' 0X|00S00  Z   P:  00 0IP_ O@@PO P ` B`V `P P  Y , 0 <@pDHLP6P"    R /O @P    b X:@KK 0PP 00P K 0 KO84 40 0r0CA#wo:x$Kxmo"xHxO- M@ 0@ P B BP Rk @PG `O\  0  pP p A@ PGp @ Pp  00S 0ᶓ Z  8 2/` P\KO-M`p@PA @%%`"V  P+Z    U:"   P<Lx0,,Z  tp$ qZ P 10 P:Z P 00 P:Z P 00 P:Z P 00 P:Z P 00 P:Z +/G2t;; ; KbK j Kd;% 3\0" \XCX: 0@:3D`D>F `fFd`FV3FRDX 340HC 0CS@0P 000:`Qw`P @`0 Q:lZj Ph 10 P:]Z[ j e e/G2t* + ;a; j;b;% 2\0" \XCX: 0@:3D`D>F `fFd`FV3FRDX 340HC 0CS@0P 000:`Q`P @`0 Q: Z P  00 P:K@< <0 0p Ayo{v9oxy  Q//H- H- S H- *H-   puoxH-   pMoOvH- H- @P  @ UH-   rpɬovH-   hp롬ovH-   ^pyo{vH-   TpQoSvH-   Jp)o+vH-   @povH-   6p٫ovH-   ,p뱫ovH-   "p뉫ovH-   paocvH-   p9o;v~/PP/ Q/H- 0H-0 P,0@P ᫸0AP PԷ@0/  /H- ,@P AP PᲷ@zK- )P `%t0 0S pW @Ap  W* v TO-M` P@0p P 2 B R[ p `V AO|  | 0  `P @ AP@T"@`P&    g`PQ    0  F@ P` p @`  00S 0c Z  8 2/P P``KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  㖾PP &P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP W PPQV  /O` P  00S0  V$ `0 O 803/0 `$Y P0 s  0PW 6 KO- M`0p P ƶ B@Xp /@T* PaOlP@Dl 0  pP ᙶ A P QPp UKO- M,PP q A@ PᚵP  QU @* P P P@TY@TU@TR `oOp P < B Re pP  A Bo/o"Q)  lP ,pP  A` P3p@  0 0T:XK  0 ,`ިhبM-P@OO `V@1pa P B@ Qpĵ 0H-@ P& P ` P Bp QѴ`ᘵ 0 H- H- H- H- H- H- H- H- ,@P AP Pᕴ@] /0H-M@  A R P  N+b j a ' 0SG " S 2TPSP: PZ3$ B1 b$BP5RTP 3$@ @PsÐ*  0AS00Asr 0(K0 AL-M @   0@Q P*K @\ AoK P1 Q "  J+b j \a : s0 R @ T: _@`pL-M0@  :   * 00S-0  0 .+a+# "j) J'  a P0 S0S ` P~PU  R:@ @ Kp `_@pL-MP `   R(  (+a+ j# J!  a :  a s0@RT Q`aP` PKp`_@ R  @P/ Q00A @ Q:/H- /O-TM pS@@  n:4P1`0 01S 0`0!0S0``V`P00SD0` 0;V6@a  D@#@3 0j ` `V%P1  P+ P*' 0R|00S00  Z   P:  00 0BP_ O@@PO P J` B`Vs`P P  Y i, 0 <@pDHLPk-P"    R /O @ P    > X:@KK 0P7P 00P! =K 0 KO.84 40 0j0CAOw%ow(x owG&xO- M@ 0w@ P ᪲ BP Rӱ @PH `O\  0  pP ᆲp A@ P᮱p @ Pp  00S 0 Z  8 2/` P\KO-M`p@P @%`V  P+Z    U:"   P<Lx0,,Z  tp$ DiZ P 10 P:Z P 00 P:Z P 00 P:Z P 00 P:Z P 00 P:Z +/G2t;; ; KbK j Kd;% 3\0" \XCX: 0@:3D`D>F `fFd`FV3FRDX 340HC 0CS@0P 000:`Qw`P @`0 Q:lZj Ph 10 P:]Z[ j e e/G2t* + ;a; j;b;% 2\0" \XCX: 0@:3D`D>F `fFd`FV3FRDX 340HC 0CS@0P 000:`Q`P @`0 Q: Z P  00 P:K@< <0 03h Aouыowqy  Q//H- H- S H- *H-   h ojxH-   gouH- H- @P  @↹UH-   gaocuH-   g9o;uH-   gouH-   gouH-   gouH-   g뙉ouH-   gqosuH-   gIoKuH-   g!o#uH-   ~gouH-   tgшou/PP/ Q/H- 0H-0 P,0@P 0AP P:@0/  /H- ,@P AP P@K- )P `%t0 0S pW @Ap  W*  JTO-M `p@ P ᗯ0 BP0S0@  p W  || 0O @P `p APpWp@P) @`J p @PQoP   0  p @OP`p@  00S 0ȇ U O 8 2/ P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  PP ㊵P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP  PPQ  /O` P  00S0 % V$ `0 O 803/0 `$Y P0 j  0P KO- MPp P *@ B`@TS@p 5pW0 PAOl@pPEl 0 p pP A Q"@Op }pUKO- M,PP ϭ A@ PP  QU @* P P P@TY@TU@TR `oOp P ᚭ B Rì pP  A Bo/o"Q)  TdP ,pP h A` Pᑬp@  0 0TOK  0 Rػ൨M-P@OO `V@(pa P B@ Q[p" 0$H-@ PP ` P Bp Q/` 0 H- H- H- H- $H- +H- 2H- 9H- ,@P AP P@+Ử( /0H-M 0A O M  K+b j a ' 0P@OG0" PJ2TTST:0PZ340C1 0c40CS5RTT 340D 0CS0p0Ó: AQPA0QK0 AL-M @   0@Q P*K @\ AoK P1 Q "  J+b j \@a   0 0 R @0 T: @pL-M0@  :   * 00S-0  0 .+a+# "j J&  @a 0P UPU` 000`V  0R:@ @ Kp @pL-MP `   R(  (+a+ j J   @a  0  0 n@T  0CR`bP` PKp@ R  @P/ Q00A @ Q:/H- _O-TM pS@@  n:4P1`0 01S 0`0!0S0``V`P00SD0` 0;V6@a  D@#@3 00b ` `V%P1  P+ P*' 0}K|00S00  Z   P:  00 0;P_ O@@PO P Ც` B`V۩`P P  Y ѹ, 0 <@pDHLPT$P"    R /O @s P     X:@KK 0P㟵P 00P K 0| KO84 40 0ja0CAvsozwdxpobwxO- MP p߰P P  W VB` R9 PWI `OL p 0  pP p AP Pp P @p  00S 0Ⴢ Z  8 2/p `pWLKO-M`p@P  @%`V  PZZ    U:Q   P,|L0t,,Z; ,(% `Z3 P0 0q  Qp:$Z"  P0` p ` R00`:Z  P 0 p` 00 R`:Z  P0` p ` R00`:Z  P0` p ` R00`:Z  Rd+;; ; KbK j Kd;8 3KXG% Xz2WW:034`C46 `f6dpFRdW17^ W 3Gp1 AQ0W P 0P \ : P~Zz Pw 0q  Qp:kZi  v Rdp p* + ;a; j;b;8 2KXG% Xz2WW:034`C46 `f6dpFRdW17^ W 3Gp1 AQ0W P" 0P \ : PZ  P 0 p` 00 R`:K<8 80 0j_AϩmouhobwMy  Q//H- H- S H- *H-   ;_goJxH-   1_gouH- H- @P  @⾰UH-   _AgoCuH-   _gouH-   ^fouH-   ^fouH-   ^fouH-   ^yfo{uH-   ^QfoSuH-   ^)fo+uH-   ^fouH-   ^eouH-   ^eou/PP/ Q/H- #0H-0 P,0@P I0AP Pr@0/  /H- ,@P AP PP@K- )P `%t0 0S pW @Ap  W*  }TO-M `p@ P Ϧ0 BP0S0@  p W  || 0O @P ᘦp APpWp@P) @`J  @PQP A 0  p @OP`p@  00S 0 U O 8 2/ P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  2PP ¬P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP  OPPQ  /O` P  00S0 ]~ V$ `0 O 803/0 `$Y P0 b  0P KO- MPp P b@ B`@T@p 5pW0 PAOl@pPEl 0 p pP 2A QZ@Op {pUKO- M,PP  A@ P0P  QU @* P P P@TY@TU@TR `oOp P Ҥ B R pP  A Bo/o"Q)  [P ,pP ᠤ A` Pɣp@  0 0TFK  0 ^븘M-P@OO `V@# pa P B@ QpZ 00H-@ PP ` P Bp Qg`. 0 LH- H- "H- )H- 0H- 7H- >H- EH- ,@P AP P+@74 /0H-M 0A O M  K+b j a ' 0P@OG0" PJ2TTST:0PZ340C1 0c40CS5RTT 340D 0CS0p0Ó: AQPA0QK0 AL-M @   0@Q P*K @\ AoK P1 Q $ ! J+b j \a : s0 R @ T: @pL-M0@  <   * 00S/0  0 0+a+% $j+ J)  a 0P UPU` 000~` V  0R:@ @ Kp @pL-MP0`  * 00S*0  0 *+a+ j% J#  a :   ls0@T  BQ`aP` PKp@ R  @P/ Q00A @ Q:/H- _O-TM pS@@  n:4P1`0 01S 0`0!0S0``V`P00SD0` 0;V6@a  D@#@3 0\Y ` `V%P1  P+ P*' 0D|00S00  Z   P:  00 04P_ O@@PO P ޡ` B`V`P P  Y , 0 <@pDHLPာP"    R /O @P     X:@KK 0PˬP 00P K 0 KO84 40 0X0CAvuPo*ww]MowwO- MP p P P > W VB` Re PWI `OL p 0  pP p AP P@p P @p  00S 0y Z  8 2/p `pWLKO-M`p@P9 @%`V  PZZ    U:Q   P,|L0t,,Z; ,(% WZ3 P0 0q  Qp:$Z"  P0` p ` R00`:Z  P 0 p` 00 R`:Z  P0` p ` R00`:Z  P0` p ` R00`:Z  Rd+;; ; KbK j Kd;8 3KXG% Xz2WW:034`C46 `f6dpFRdW17^ W 3Gp1 AQ0W P 0P \ : P~Zz Pw 0q  Qp:kZi  v Rdp p* + ;a; j;b;8 2KXG% Xz2WW:034`C46 `f6dpFRdW17^ W 3Gp1 AQ0W P" 0P \ : PZ  P 0 p` 00 R`:K<8 80 0VAYJo[u]Eowly  Q//H- H- S H- *H-   gVDo{xH-   ]VuDowuH- H- @P  @UH-   K  0 vpM-P@OO `V@pa P B@ Qp̛ 0H-@ P.P ` P Bp Qٚ`᠛ 0L-M@RPW@QH0X T  R+b j a . 0SG+ S2^^$:@J3A< aAQ4sÑ RR^3NA AQ@sÑR :@RR AK40 00 0eR A4oNw9\yH- [H- bH- iH- pH- wH- ~H- H- ,@P AP P-@wt /0H-M 0A O M  K+b j a ' 0P@OG0" PJ2TTST:0PZ340C1 0c40CS5RTT 340D 0CS0p0Ó:  AQP!A0QK0 AL-M @   0@Q P*K @\ AoK P1 Q   J+b j \@a   00!R @ T: ApL-M0@  8   * 00S+0  0 ,+a+! j J$  @a P0 S0S ` PQU  R:@ @ Kp ApL-MP `   R&  &+a+ j J  @a   0 b0AT  R`bP` PKpA R  @P/ 00  Q:/H- O-M-`M pSP@5 `m :4P2P0 01S> 0P0!0S0PPUP@00CD$0 P 0;U5@a  %5 0pPPU P%P0  P*P*& 0=00S00  Z  P :  0`I-P OP@@O P P  BPZ P@,@ᛟ᫟  Y 8,< "HLpPTX\ᐣP    R /O @Pr  q VV0SN0  0   J j a 6 0;RP_G3 RZ2DUCU@*:@3DD@3 0lÎ4PCU1ŠrÑ VPRDU@3E1 AQ0rÑV?0CA*V7 V4  P`X]:@8KЍ 0@wP" 00@a } 0 @T 8KЍOllh h0 0@O@< <0 08OAOv,ozwdw'oww(owOyO-MP @᨞p P ۗ T BBP R pT5 `0?Op  @PpP  00S 0^p Y O 8 2/@T` KO-M`p@P @%`V  PIZ    U:@   P PL8,,Z* $ NZ" P 0q q Q:Z P 0p q Q:Z P 0p q Q:Z P p 0p q Q:Z P 0p q Q:Z 0 ` +?G;; ; KbK j Kd;0 3^- ^J2TT&:pz3A8a ad`FV7`pVppp PʘRT3Dq AQpV PʇPP p R:yZw Pt 0q q Q:iZg 0u `o o?G* + ;a; j;b;0 2^- ^J2TT&:pz3A8a ad`FV7`pVppp P-RT3Dq AQpV PPP p R:Z P  0p q Q:K@< <0 0YM A!%o#ui ow Hy  Q//H- H- S H- *H-   )MoWxH-   M}ouH- H- @P  @⬞UH-   LouH-   LoӁuH-   LouH-   LouH-   LYo[uH-   L1o3uH-   L o uH-   LouH-   LouH-   LouH-   Lioku /PP/ Q/H- 0 @ /  /H- ,@P AP PR@qnK- )P `%t0 0S pW @Ap  W*  kTO-M `Pp@ P є0 B0S0@ q p Wj O0P  @zpP' `I  @PQὯ X 0  p P@`p@  00S 0m X  8 2/P P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  IPP ٚP`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP   fPPQ   /O` P  00S0 tl V$ `0 O 803/0 `$Y P0 4P  0P  KK-Pp P z` B@`V`p pW @aOpG  @, iTO- M,PP ; A@ PdP  QU @* P P P@TY@TU@TR `oOp P  B R/ pP  A Bo/o"Q)  IP ,pP Ԓ A` Pp@  0 0T5K  0 QKM-P@OO `V@Wpa P B@ QǑp᎒ 0H-@ PP ` P Bp Q`b 0L-M@RPW@QH0X T  R+b j a . 0SG+ S2^^$:@J3A< aAQ4sÑ RR^3NA AQ@sÑR :@RR AK40 00 0'I AoVrwA7yH- cH- jH- qH- xH- H- H- H- ,@P AP P@᷑| /0H-M 0A O M  K+b j a ' 0P@OG0" PJ2TTST:0PZ340C1 0c40CS5RTT 340D 0CS0p0Ó:  AQP!A0QK0 AL-M @   0@Q P*K @\ AoK P1 Q   J+b j \a   00!R @ T:ApL-M0@  9   * 00S,0  0 ,+a+" !j' J%  a P0 S0S ` PQU  R:@ @ KpApL-MP `   R'  (+a+ j# J!  a   0 b0AT  R`bP` PKp A R  @P/ 00  Q:/H- O-M-`M pSP@5 `m :4P2P0 01S> 0P0!0S0PPUP@00CD$0 P 0;U5@a  %5 0*GPU P%P0  P*P*& 0v600S00  Z  P :  0`A&P OP@@O P P ᬏ BPZՎ P@,@ᛟ᫟  Y Ǟ8,< "HLpPTX\J P    R /O @iPr  q VV0SN0  0   J j a 6 0;RP_G3 RZ2DUCU@*:@3DD@3 0lÎ4PCU1ŠrÑ VPRDU@3E1 AQ0rÑV?0CA*V7 V4  P`X]:@8KЍ 0@1P" 00@ 7 0 @ 8KЍO&lh h0 0E@< <0 0EA7qvobjwLwoewwoew*yO-MP @bp P ᕎ T BBP R pT5 `0?Op  @NPpP  00S 0g Y O 8 2/@T` KO-M`p@P @%`V  PIZ    U:@   P PL8,,Z* $ BEZ" P 0q q Q:Z P 0p q Q:Z P 0p q Q:Z P p 0p q Q:Z P 0p q Q:Z 0 ` +?G;; ; KbK j Kd;0 3^- ^J2TT&:pz3A8a ad`FV7`pVppp PʘRT3Dq AQpV PʇPP p R:yZw Pt 0q q Q:iZg 0u `o o?G* + ;a; j;b;0 2^- ^J2TT&:pz3A8a ad`FV7`pVppp P-RT3Dq AQpV PPP p R:Z P  0p q Q:K@< <0 0D A o cuQn^w"y  Q//H- H- S H- *H-   Cn1xH-   Ceng]uH- H- @P  @fUH-   Cn\uH-   Cn\uH-   Cn\uH-   Cink\uH-   CAnC\uH-   Cn\uH-   |Cn[uH-   rCn[uH-   hCn[uH-   ^Cyn{[uH-   TCQnS[uģ/PP/ Q/H- H- M 0  @0+Sk Р/  /H- ,@P AP P@\ˋYK- )P `%t0 0S pW @Ap  W* ǹ 5bTO-M `Pp@ P ႋ0 B0S0@ u p Wn O0P  A@  0+SǸpP' `J j @PQi  0  p P@`p@  00S 0c X  8 2/P P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  PP ㆑P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP ᷸ PPQᶥ  /O` P  00S0 !c V$ `0 O 803/0 `$Y P0 F  0P巹 KO-MPp P &` B@`VO`p X pAO@@pG @ 0+St `WKO- M,PP  A@ P P  QU @* P P P@TY@TU@TR `oOp P ᬉ B RՈ pP  A Bo/o"Q)  f@P ,pP z A` Pᣈp@  0 0T+K  0  ,(&M-P@OO `V@pa P B@ Qmp4 0H-@ PP ` P Bp QA` 0H- M RR  Р\X X0 0@Q0 R Rqn&NwyH- H- H- H- H- H- H- H- ,@P AP Pه@ᡈ /M0 0: 0 0  @P0  @PЍ/L-M @   0@Q P*K @\ AoK P1 Q 8+a+J 3 J0  j\ a  @ @ T:\  j@ T: GL-M 0<000: @@T/@00@ 3+a+J. J,  j a  0 @S0S   !@ @ T:@ @ K GL-M@ 0 *   R) 0 .+a+J) J'  j a  0  1b@ 0CQ0@ 0K@a0G R  @P/ 00  Q:/H- O-M-`M pS@@  m :4P1`0 01S 0`0!0S0``V`P00SD$0 ` 0;V6@a  #3 04> ``V%P1  P+P*' 0v/00S00  Z  P:  000P O@@PO P ᵆ` B`Vޅ`P ,P❊  Z ѕ8,< HLpPTX\TP?    R /O @sP-  ,  * Q CH 00S0  0 Q6 Q3   X:@(KЍ 0P】P# 00Pj  0^ (KЍOvhd d0 0J=0C40 00 0@=AsNvnFwtvwnBw?sw-nBwyO- MP @᳌p P  T FBP R pT9 ` A O p@0+S;PpP  00S 0e^ Y O 8 2/@T` KO-M`p@P @%`V  PZ    U:   P@L@,,Z # <Z P! @  0 ! Q :Z  Pڲ0 R:@ 0 p00 :Z  P0 R:@ 0 p00 :vZt  Pp0 R0: 0 p00 :`Z^  PZ0 R: 0 p00 :KZI  PE  0P p R00 :6Z4 P1!  0 ! Q :#Z! P 0q q Q:Z  P 0 R:@ 0 p00 :K  0 0;=n?@uIn  0P| [KO-MPp P ` B@`V`p X pAO@@pG @ 0+S: TXWKO- M,PP ᧁ A@ PЀP  QU @* P P P@TY@TU@TR `oOp P r B R pP  A Bo/o"Q)  ,8P ,pP @ A` Pip@  0 0Tp#K  0 8 @M-P@OO `V@pa P B@ Q3p 0H-@ P\P ` P Bp Q`΀ 0H- M RR  Р\X X0 07Q0 R Rn>-w)xH- H- H- H- H- H- H- H- ,@P AP P@g /M0 0: 0 0 @P0 @PЍ/H- M   0@Q P* Р0@\0Ao Р P1 Q< :+a+J\. +j/ 'J- " j\ `   R: Р\  0 j  R: Р  L-M P 6   R)  -+a+J( J&  j0 S0S  `  R:  PK P L-M@ 0 *   R# 0 (+a+J# J!   j0  1b` 0CQ0@a0@ 0K R  @P/  Q A@Q:/H- O-M-`M pS@@  m :4P1`0 01S 0`0!0S0``V`P00SD$0 ` 0;V6@a  #3 06 ``V%P1  P+P*' 0(00S00  Z  P:  000P O@@PO P ~` B`V}`P ,P❋】  Z ᡍ8,< HLpPTX\$P>    R /O @CP,  +  * Q B0H 0S0  0 Q6 Q3   X:@(KЍ 0PQP$ 00P; W 0/ (KЍOGpl l0 05 0C84 40 05A-vn%wUwEn!wRwqn&"wxO- MP @ႄp P } T FBP R| pT9 `   O0+Sp@ PpP  00S 05V Z O 8 2/ @T`KO-M`p@P @%`V  PZ    U:   PHLD,,Z ($# ^4Z  P1 R @ 0 p00 :Z  Pڲ0 R:@ 0 p00 :Z  P0 R:@ 0 p00 :|Zz  Pv0 R0: 0 p00 :fZd  P`0 R: 0 p00 :QZO  PK0` p R00 :=Z;  P71 R 0 p00 :(Z&  P"  0P p R00 :Z  P 0 R:@ 0 p00 :K  0 03yn{uenwx  Q//H- H- S H- *H-   p3nwH-   f3뙸nuH- H- @P  @UH-   E3nuH-   ;3nuH-   13ŷnuH-   '3띷nuH-   3unwuH-   3MnOuH-   3%n'uH-   2nuH-   2նnuH-   2뭶nuH-   2녶nuQ/PP/ Q/H- 0H-0 P0,@P {0AP Pz@0/  /H- ,@P AP Pz@N{K- )P `%t0 0S pW @Ap  W* J QTO-M` P@0p P { B R/z p `V AO|  | 0  `P z@ AP@Ty@`P&    <`PQߕ  z 0  @ P` p @`  00S 08S Z  8 2/P P``KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  kPP P`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP , PPQ+  /O` P  00S0 R V$ `0 O 803/0 `$Y P0 V6  0P, KO- M`0p P y B@Xxp /@T* PaOlP@Dl 0  PpP ny A P QxPp OUKO- M,PP Fy A@ PoxP  QU @* P P P@TY@TU@TR `oOp P y B R:x pP  A Bo/o"Q)  /P ,pP x A` Pxp@  0 0TK  0 M-P@OO `V@bpa P B@ Qwpx 0H-@ PP ` P Bp Qw`mx 00H-M@PSPTQ    0 Q/TT K0  0 0f/o@nR w=xH- H- H- H- H- H- H- H- ,@P AP P3w@w /pL-M@ P`QP  0 Q 0 AR   Ar p Kpo@L-M @   0@Q P*K @\ AoK P1 Q   J+b j \@a   00 R @ T: o@pL-M0@  8   * 00S+0  0 ,+a+! j J$  @a P0 S0S ` PPU  R:@ @ Kp o@pL-MP `   R&  &+a+ j J  @a   0 b0@ST  R`bP` PKpo@ R  @P/ Q00A @ Q:/H- O-M-`Mp `S@@  `n :4P2`0 01S  0`0!0S0``V`P00SD$0 ` 0;V6@a  84$44 0- ` `V`%P1  P+ P*' 0!00S00  Z   P:  00 0NP O@@PO P %v B` RNu  `P孋  Y B8,< ,PHL`PTX\ĀCPN    R /O @P< <P p `QPVO R     0 QV:V7 ` Xp:@(KЍ 0PP# 00P˥ 0C 0㽥 (KЍOhd d0 0,<8 80 0, Ao@ vnFw04wn>w0wn^wIxO- M@ 0|@ P Eu BP Rnt @PG `O\  0  pP "up A@ PJtp @ Pp  00S 0M Z  8 2/` P\KO-M-`@pPB @%&` #V  PZ    U:   PXLp,,Z # +Z P 0Q # P:Z PP 0Q#  P:Z P 00 P:Z~ P} 0  P:oZm RR  Pe P 0  P:YZW b@  0 Q.TJP @ T:>Z< !RR  P4 0  P:)Z' 4@   0 QTP @ T: Z P  00 P:Ѝ0, ,0 0!+ o@C}ntn>v)x  Q//H- H- S H- *H-   *Ֆn2wH-   *뭖ntH- H- @P  @x|UH-   *)n+tH-   *ntH-   *ٕntH-   *뱕ntH-   *뉕ntH-   *anctH-   *9n;tH-   *ntH-   z*ntH-   p*ntH-   f*뙔nt֊/PP/ Q/H- &0 !@0 %/  /H- ,@P AP Pr@rK- )P `%t0 0S pW @Ap  W*  PITO-M `p@ P r0 BP0Sq0@ t p Wm  0 ?O @0k$pP) @`J ሠ @PQᇍP !{ 0  °p @OP`p@  00S 0J U O 8 2/ P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  yPP xP`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP ӟ /PPQҌ  /O` P  00S0 =J V$ `0 O 803/0 `$Y P0 -  0PӠ KK-Pp P Cq` B@`Vlp`p pW @AOp@D  @0# GTO- M,PP q A@ P,pP  QU @* P P P@TY@TU@TR `oOp P p B Ro pP  A Bo/o"Q)  'P ,pP p A` Pop@  0 0TK  0 ȧ§M-P@OO `V@pa P B@ QopVp 0uH-@ PP ` P Bp Qco`*p 0G0H-@PU#T T 0 0 0 0@'nvxH- HH- OH- VH- ]H- dH- kH- rH- ,@P AP Po@doa /0H-P#   0 0!10CS@10C S0K-M P`  (A@p WQ):QP1 P"U R  0 !Ѐ0)p(0 ` V:@ @U AoDKH-M@ "  `Q" R P0 S0S P ``Q`p'`&p  PR: K0 H-M@ PQf" R 0 P 01 b`p'`&p  0CR Kb0H- R   AQ0 @@ AP:0H- /O-LMP S 0  @@ ? :4P2p0 01S 0p0!0S0ppWp`00cD0p 0;W7@a  ($#$3 0% p`pWi%4P `O P n Bp Rm  `】  Z }$( `48P<@DH6yP! &P  !p`!VN VK  0  X:K 0@K 0PzyP4 P00d K$(,@048P<@PDHxP,@ X P `\ \0 01%($ $0 0)% 0C[un^vwnRv<wn~vixO- MP @tp P m T CBP Rl pT6 ` 0?Op  @0PpP  00S 0RF Z O 8 2/ @T`KO-M`p@P P@*`V P    Z:   PD@,,,,,,,,,<T3KT  P!0 P p `R0P`P:T  P 0 ` p PR0`P`:84 40 0L$  F$|nt5|nvգx  Q//H- H- S H- *H-   $y{nֲwH-   $Q{nStH- H- @P  @uUH-   #zntH-   #zntH-   #}zntH-   #UznWtH-   #-zn/tH-   #zntH-   #yntH-   #yntH-   #yntH-   #eyngtH-   #=yn?t/PP/ Q/H- %0 !@0/  /H- ,@P AP PGk@lK- )P `%t0 0S pW @Ap  W*  yBTO-M `p@ P k0 BP0Sj0@ t p Wm  0 ?O @08pP) @`J ᱙ @PQᰆP Jt 0  p @OP`p@  00S 0 D U O 8 2/ P `KO-,Mp`0`Ð0 @%t0Sp0p0p @`@PtP $  ;rPP qP`%t `$@0 0S gZc 0Ap@ P @p MTI*S  pAP  XPPQ  /O` P  00S0 fC V$ `0 O 803/0 `$Y P0 &'  0P ۽KK-Pp P lj` B@`Vi`p pW @AOp@D  @0 @TO- M,PP ,j A@ PUiP  QU @* P P P@TY@TU@TR `oOp P i B R i pP  A Bo/o"Q)  P ,pP i A` Php@  0 0T K  0 LTM-P@OO `V@Hpa P B@ Qhpi 0tH-@ PP ` P Bp Qh`Si 0F0H-@PVT T 0 0 0 0i ln^vIxH- GH- NH- UH- \H- cH- jH- qH- ,@P AP P8h@ci` /0H-P   0 0!10CS@10C S0K-M P`  (A@p WQ):QP1 PU R  0 !Ѐ0)p(0 ` V:@ @U AoDKH-M@ "  `Q R P0 S0S P ``Q`p'`&p  PR: K0 H-M@ PQg R 0 P 01 b`p'`&p  0CR Kb0H- R   AQ0 @@ AP:0H- .O-LMP S 0  @@ ? :4P2p0 01S 0p0!0S0ppWp`00cD0p 0;W7@a  ($#$3 0 p`pWi%4P `O P g Bp Rf  `】  Z v$( `48P<@DH`rP! PP  !p`VN VK  0  X:K 0@K 0PrP4 P00㎗ 㪺K$(,@048P<@PDH rP,@  P `\ \0 0[($ $0 0S 0CuQdnvvEgnvvqdn&vxO- MP @mp P f T CBP R f pT6 ` 0?Op  @0{PpP  00S 0|? Z O 8 2/ @T`KO-M`p@P P@*`V P    Z:   PD@,,,,,,,,,<T3KT  P!0 P p `R0P`P:T  P 0 ` p PR0`P`:84 40 0v  p`nt`nv}x  Q//H- H- S H- *H-   H!`n~wH-   >_ntH- H- @P  @nUH-   u_nwtH-   M_nOtH-   %_n'tH-   ^ntH-   ^ntH-   ^ntH-   ^ntH-   ]^n_tH-   5^n7tH-    ^ntH-   ]nt    /K-M@p`0P $P P _e0 0Sd0@  KH- M @0  РH- M@@0  РO-TM@P`  B$QV  @  Q2P pP P pP P  3V͟ ]PYol Ο,Kp`PDPP1?`<840,( pQ0   6/` P,KP  D,P dPPZbp"BP 00 00C(% U PpUcP`pKQ6,>  VDP0 PP D Aq Q 4 Y &Q( QP Q QJ \^PePW z  Q P ` 0`z  ` `P J*XP/  PP P2:HD D0 040  됚,xxSwԗqWn&vxUWnWtO-,MP@Zp `2%'' $P `P cp PpWbp` `@ 0 `kPP %+ PoZr&V*  %W P pH`P dP h   {TiKX%pVH- M000@ u РpL-P@H`E P @P@@@pL90H-PH@0 R  0H%0H-PH@P   0H0H-@HP  0HK-PHP 0S  `p@ @0W0 !P  W KpL-@HP`P$ P %+29@   P P  % pL P}P tP kP bP YP pL-P@H`_P]ppL-P`H@PP 5P   MSpL:pL-P`H@0Q 0 S    pLpL-`PH@PQ  UPpH-MP@H`\ 03/pppl pp ppK܌H-`P@Hp0 03/K LL-@冫 / q M4 0C Ѝ  /Č    pL-M@pA =`V HPl P `P```aKp<K- @P HPM`Q  AV P  HlP,p* P Y 4q,n}P`Q  V{HP  `Q  wV P Y d9\6HP`Q  TV P Y PC HP`Q  0V P Y XPBP Y( PP P Y KʹCPPP 1P8´@htxtxTn txgRnqxTn`sx{SnrxRnorxQrxEwpL-MP@eTJ`< 80V   0Kpqx4XH-M @R0SP *R0Ao4P PPA@ 0㸂PP KH"@P@PiEP u RQrp  R    R@ 0  !#" #%` 0o %PpBP 1/@,%` 0' %PBfP  00  d; 0pS:`p; 0pS *K@plxKuePwpxpxpxtklpxQ R  R *0  00 /0H- 0@,PP 0HJ!CnxvL-$@P e%iL-(@P W%Lvi//L-$@P D%XiL-(@P 6%Lv i//H- M$ 0 0 ; РL-M@P@003/KgvH- M$ 0 0  Р0H-PP@@o%Dp Qp P0H?vH- M$ 0 0 РL-@ZP "vH- M$ 0 0 РO-MPpQ`2P P@@Cp Q:  0@` Pp彄吐 -=} m pp}0 x` d-p 0P= `/KhT/H- M 0^PN^, (  U QppCp@G T(Q'ppQNpN@W @@Xp@ 0 KOKKKO- MP`p`!Gt@0Vd  0VVU epQt  LY p pPPUR QUPGQqWG YP\   BAQ QL! \`\G\P\YV t R I  Q 쓐QKKO-M B^K@Lp`AP @Pt\pD PR\2 Pက p簐 Wp@HPEP#UppQt|pPJ0SpPJ PY qt,@UD0SڱKM-@`pBv&P&1pPH vQ  R 0QO-MB Y2pP`AP岠z*P *1p@E OP   Rq 0 @PU  pR 0 PP P p@ KO-MpPBX=  @ @ q2ʰz*P *1p`I P   R @Pq 0 `@T0 QQ1  @P Kt `V  F00 S 2 GVt|01``P$0 KOO-$M`@0FtpH @Pfu ! I  F `C T 9r `!  CF@T0 U P'  `V J`@HV @ @\ ,  0 KOK O-M``p!HPt@0Wl`0WW[aⲠPPt NH\ ` ` RP !R F!aVF\XP @A Q  BQHXp FPX\Wt R  L  Q ÐQKKO-M@BTGtPNP`@`Appq ppxppGPpE PPPP^+P Pᰀ@T @EIpGJUPuPQ PPL@Ut@PLx@tAp @PEWP@0SKKO-M@PA` Pb* EQ```Y$Spe Aq qPPpV  ` `S E ApPqPGRHBY/V*&PFp6Aq qPPp*   p0Q  F B` PrPFSI pKV VV,(  TppQmS_tM-@GQ$p/AQ qPPP# G  P0Q  G Bp `r`GSH PX($ $0 0 P9m]v0x@Pѥ@o/0H-Q *@8Q @30   m]tP(507/1H-    ]m_]t* *BR/ A 0/: :BS?0A01/K-QP R 1VX  0J BP|R&q@r&qG`P@pC0U`gH- 0`@Q&  J@T\&QaPPDQ6U`E V*`Qp@U U U`U  ^ym{[tQ@o//* *BR / A 0//O-M@ ` TPZ@ GRU RpRRW|* Nn0O!  0  00S QR 0 $ QRU OL H8 2/WB*I  J !H0!0B S*p0P)lt\\\tt\t\\\\\\\lW *lW* W:G Q X\ P` P`O0Q JP  @pP:`K  jmWtpL-@P`0Q P  @pP:`pLpM-Pp`@`@ 00SRT 0 # RT O8 M////pL-@& P" `P xQ h\TL rp(2)x+vO-M ` R9p J#100@P15S@E T*@PQ@T   0  pX U U@U    KmmoTt0H-@ PPN8\\\\\\\\0000 08P0:P+  0PP }P:`P PP0  7010mRt/O-MPpP  `BP I`  @Z I` @pPX( @  OOPPPp`!pP 00SUR 0 _" UR  K8 2/K-`p P0O!P R '@ KP@PPp`!pP 00SUR 0 " UR   Br R Q P GI 8 2/B`@TgH@PH- 0 0CR SA   1TTTT \200 Q ! 7 0Q! 70   QmSNt0 Q!Q /pL- @R0 00PP@PQF`T @0 0S R  ppL- 0P! 0S@1\\\\\\\\`4Xh  Q  P%  P$  @pQ:Q PQy  Ru P P_ _  P!1 0h PY!X\\\\\\\\\\\\\\\\\\\\\\\\\\  Q- Qq QQ  PQ507  Q  QQ Q  mZKvx m Jt| Q Q& /////// Q@QF     $               ,       4               <               D/ //////// QP/@1p/O-M@ P  @ 9^ Q` P pp`00SVR 0  VR O P' K8 2/!\0 S /H- 0S 00 1Q H /O-M@`PP!pp\ 00SXR 0 A XOR  0Q P? pP; pP`P! `p 00S WR 0 @ WR   K P 8 2/8 KO/ 0 0im^Cvsv Q/H-  0 0QImBvx 0R  !00/H-  0 07mBv"x Q/H-  0 0 m:Bvx Q P  /    /H-  0 0mAv2xO-MP4 PM`Pp!@@ 00SZR 0 O ZOR  Pp`P! `p 00S WR 0 @* WR   XS PP!@p@ 00S XR 0 ` 0X?OR pP@P`0 R UV 0 0 ?OUV @Q1 P `1@P!p`p 00SYR 0  YOR  Q P `P `p `P 0 RVU6V' U$ Pn `P@P! p` 00SVRCV R   K @ 8 2/ 0 J 0V8 KO/L@ P8 2/0B_@ P8 2/0U0 @ Vv `8 2/n 0 0%m;v_lvO- MpP`oOW0A 0 PpP!@p 00S WR 0 `oO WR   8 2/XP  ' XrH6 8 2/0?O.\8 2/V_P0`!?O@`p0 R VW 0 0?OVW AX1*pQ P+ P' @`  P0 R YV 0 P0?OYV  XKJ 0 0m8vivO-M@ 0Qp0 P 0p0W:0p0W pOpp gVfV 60S0pppGw`pVp3S BW; SP`P] `pW P /C  PXB pQ*`X(`Q% P!pW  P B PP(Bp Q* `KM-0`P@`0P `@`V:`@`V `oO`` wWvW v@W@p`ppGwpW`3T@V T0`V 0Pp`V pWpWPU U ppW0S R P R PU Q PQ tBQ kB@ QAP @ QAPO-MP 0Q ` p  0`0V:0`0V `oO`` GTFT 60S0```Fv@`T`3S BVb Sp`P  `0  QQB @T P @P A P APA @ PA @P* ` YI`QF QB@PT= P @P A P A `P@@ `P@@P* F`FoK R 1 0R    R:  R/ 00 7S 6S&R//pL-M@0 P   &R  PQ;:QO 'R&R QPP%  A @!PT Q P P T_PP@T@T @' P "KpPT 0 0m-vS^v Q0 0 &R// R:PO P P/P/O-M@0`oO P   &R  PQW:Q 'R&R QPPC A@!TD @PA &   RPP H@'q A  Pl?P#pQ#Q@WPPT@T @fP aKPTD@ @0 0D 0 0<m*vJwm*vO[v0H- Q,@P ?0AP P?@00H- Q!  00S@T A P ?0 P P>@0O- -`P pOP@@ P  P ? 0W BpY>pPOP Ap @ P m?PV U -BpPU>P@@ pp@Q%!TQ   ?R  @R:'_P T <PpPO!`@p 00SWR 0  WR OK8 KO/K-M@ P!P Q/ @Q >P `Y >PPp` Q Pp`WKO- M@ P  P   Qj @ pOP >` `V=`P ApI   P w>`P BP`V=`   Q%!XPP P> Pz=PQ*yKO- M Q!`P@ P O P > a Pg >oB@ R8=  ` a P = @Q=` #y`QF@,)pOP = A P<pfT   0;| 0SP ,@T @Q<` x`K 0 0m vSQvH- QP!`@` wp 00SWR 0 $ WR O8 H/K-P `@FP'*A AA!.rPP P@*epF AV  &Y@ KT@pK-P `@P(*B A!/rAPAP P@*2p0AV   Y@ KT@p곰K-P `@FP'*A AA!.rPP P@*pF AV  ῰Y@ KnT@pꀰK-P `@FP'*A AA!.rPP P@*pF AV  ጰY@ K;T@pMO-M    gO      8 H$ 8pUP($p4`PP `PP$ob$    Happ  H,(L$0_V  ppp ppp4Lppp p|ppH"` կ  "8 #8@  DQ*Do8p$ @5l,0H4L t*(` L`ᬄPT   Hp0pH, L` `ppp ppp4Lppp p|H8 9#8@ ; DQ*D8p @l,0H4L t(L TP@T&Yy  H p ᖅ@@ `H0(`L 4h@d@`@\@X@T@Lx@t@p@l@|H!P@ !8 "8@  DQ*D8 @spW@8P 8Q*@pWl0`H4L tR(L$CԃK`ɦ/.4.-Snw +*knH- Q> 8X$$$d  Ao RQo "!  `̮  띲mtH-@P\ <l$$P!P P  GQ<  QPPP6ff c 0+SPPPPpW`P  W `pGP  pW(PP  "o"oTxg"oh"oTxO-DMMP, P(P$ p 1Sj -Pg 00p-PP" nP oP P4 PP =P`E V*T@ @0 3/8 848  _\ -0`_V-`Q P ` @ p@_W-p_T-P  gR:,(P$Pydf`P (PP$D40<#P 40<#(P$8 RP YF !RC @P<?8 pPᠭ@< QQ P>*5 -P_P [<@X 0 A40 < @᳭8 4040pPi@< 㿭Q Rm P*X1L P_RF @ 8 @R  BpQQS8@Q P 2 1/C8@P Qp  pY QD  Y @PP pP"8 P40 P408 `#V3R  P<P Y,P I0召Y Vw*Dp@P@ 1VPPP\,P P 1 S1RX!&X$ @TpPT da`!@T@X ,,K@P* @ 1 @@ @ 0 0o*PL  f4Fx @mw)mϤw|Ӥ!Pxm tx8mfw8Ѥkw w`xwnwmv vKx;vO-|MQ p @T>-\,}PQKP@ sP `p_Q- K fP ^`pᕫ V R N P*aါ Ax =d 7PU 6-K<8  xCwwTqmvwͤXwnamc tM-MPpl`P  1/@P ( 03/pP ppĭPP@PPT P`t淭P@Tt毭P@T@PPTp`PP`PP f 1/4wPP? Q0 `qP @ppP@P `GP pqPPpDQ `U X KK `AXL H6vM-g_ @ P08H$$Td$t尀  pQ`P `  @PUXO-Mp`  T8 往 @  @T TTQ<@P8@4@0@,@(@ L@H@D@@@P|P^@PgT@p`p@`V P`V@hP@ @T  H u KDXԱxPl`ȟ QT  HQ 84(48 0pL-P (7 0P`'7 G0W`@P```'` ``````xPl  `QT  H R<'0 00' R$'0 0' R '00 0Q  Q  Q ?B&@@6f V0`@P@@P|  pQ `0\& 00LQ@  P0  Q   Q  Q  Q 0% 00ş R%0 0% R %P5e 0`P P X% RL%0 0L% R <%`85 `0``$% R%0 0 % R $`4 0``$ R$0 0$ R$0 0$ R $`4 0``$ R $`4 0``t$ Rh$0 0\$ 0SP4`0`D400S000$ R$$0 0$ 0S 4`0`P R#0 0# 0S3`0`300S00# R #`3 0` # R x#0 0h# R  PP @P<#<38c 0P`PPPP #3c S0B`P@P   P) P"2b 0P`PPPp@lh"h2db `R0@`TP@@@@@@@pLjPꫧ׫gMDB;`B94-& BldHt詧 M&TE(;GT 㨧ި$訧̨èث{X`J4,@-1ܧ3ϧhSqhI2o覧ئЦ䥧d[UGB*R ০ԧĥ2m8ϧ/ K-P `@FP'*A AA!.rPP P@*pF AV  TY@ KK@pM-,3,S0(c@$s$0 Pß`@p (@P0`00 0 $P H@4080<0@0D`` @T0X0\0R`0d@h@ Pt0x0|0B0`` `@000d0`` `000@Ÿ0`` ` 000R0`` `P0P00A1aBo `@1@11 1$aJo `4181<1@1DaRo `T1rπX1\1q`1dQZ_ Pjt1px1|1X1AbO 1118A1Q@ 111Q1a` zπP111p1a` πp1p112b` π222 2$b` π4282<2@2Db πT2X2\2`2dr t2x2|2222"`t4|X伤00H- @P 00H-@ P 0H-<`P@V, pxGQ 1/'@ 0" R0CQ Pt @@D p`  $dAIQYaiqy4M-M`@` ````$ 2/" 0AS:@P@PX`hpx`$$`"D` d`````AoIoQoYoao io qoyooooo bKAQ/0PX`hpx$$"D dAIQYa i qy0H-8P 8P0P/0H-@P@HQ 1/ 0H/ R/왧AQ/ PX`hpx/$/D/d/////A/I/Q/Y/a/i/q/y/////O-dM8 < @y<q8i4a0Y,Q(I$A d D$0K4  $ ( , 0 $ 2/" 0AS:@PM!4PX`hpx"  $(,0 4 8<@<8 1/P @ KK0H- P@Q PC 00H-P1/P+ @& L1/@BP'L1/ P0Q mP @ @@p P@01/@@oo@0O-dM8 < @y<q8i4a0Y,Q(I$A d D$0K4  $ ( , 0 $ 2/" 0AS:@PF 4PX`hpx"  $(,0 4 8<@<8 6P KKpL-@ `P Q !P_P 1/PpO-M `P@pbB@ @@@@@T,:T*Q':Q%AQ 1/P T*@TK @Q 1/ < R6 Q P:@4# R 2/Q P: P`IQQ * Xpd   P@P Pt4Ld| $ su 0$j PDd pd^ X R L F A@ I: Q4 Y. a( i" q y ! # % 'Q  K贑lpL-P<`@QP: QP :4BQ 1/P @@V@3p|O-M@P6 p`@V匛P`GVႛP`JV xP P PP K<yP L  '0% ' S A& R &AopL-@ `Q (PvY P $Qe $,TpE PH ~Q p R8 0 S,P1( 00'`0'P V 0Cf`V f0S @ppQXppppp pp  u|msxH-T@P@`LP- pQ  RpQR1/P1/PP 1/P 1/PW Ppp2 S"R:S R/1A(Q H- 1/HP/ᰈO-M@ `P3"R0: P- R+:rP'  $ 2/@PPt|+K脂K$"D dAτIτQτYτaτ iτ qτyτττττ „ P PK" 0RP*/0R  P0#/pL-M@P@` @@@@1/P 1/P P|"Ry:PvRt:AQ 1/Pj1/P@H 2/[  2/@ PQQN: PKQI: $ 2/@PP`hpx@&@$$@"D@ d@@@@@AOIOQOYOaO iO qOyOOOOOT@KpЅ/L-@A Q 1/ ЃH-   H-Mp@0P0 `6/PGK/,0H-P@ 2/0H/0H-P@1/$Q 1/ 0訂0/ $ /0H- PU @!@LQ 1/  R00<4/ @/ /0H-P@1/ Q 1/ 0舁M-MP`@Cp0p 0LeL-@H 2/ @ H-   UomWs/0H-P@1/(  R 2/ 0|/H-   nmsO-TM(`nU PpU$p (p  ,00 p(p 6 6 (0K$0,S0!P pP P( q( (K0 0Ѓ P*.00PP* @x P(a p0PQ 0@ 4/(Pq@FpʤyqE@(KK6P (`KPM6P ᠂ 1 @4/PEu@p$@ PP  0` P6/X `p  0 @ 4/pPX `V (0 @P(` p 7/(PE0 p 7/K0x p @ @   %km'sH-P@`$ P $  P` ?      qQ @4 P 0 P   @4 ( e0 P  v//pL-MP@-`I&  >A&KppL-`P@<1/ P1/Ap 0"R@ @o/0H-M@@@ @P 2/PAAQ wU@K0H- L1/H- L1/ #L-@-D>P L1/ #/L-M@L1/ Q*KDKO-M@ P 2/P `U& p P ' A  P&pQ*BPVPU  PKO-LMP@-p(1/L1/`@1/>A0  0p|0pD`HP$`(PP*+PK28  iemks//8 //H- L1/ /M-Mp`@P> 4! ((!  \ V&  `KbP! PdP P` 0`xt 0i`P FKHKM\, KMUxxtspxxxxO-M0`p @*@j@Z B 0'`050'0V @60S 6P >  P0 `.V' @ج(1/.<1/P`pŬ8 2/pVt෬KK萊؊D܍0ptċ܊tČ0ww bmI#mH- H 2/$O-Mqp[P P  PU P 1/ P @@p `uIQ  "_@ PaTGK䘦0$PO-M8*X@4z0j ,Zp $$:` ʟP`@\  X0d|  x tplh@嘐唐吐匐刐  yP )p@ ฐ崐尐嬐娐@ؐԐА̐Ȑ@쐍萍L9A0 ( A$840,(QPx@ADpXTPLH B 0'p050'0W @60S 6P >  P&K~~~@؁,lp~ p~,|{<0I0H-P@<1/ @1/0X// // D 0R /H-  0 0A Lmu:wK-@P pP  `P P  `P   P`  PP`0H- @ P0Q ]P @ @@p P@0 [ i0H-  @Q  0P Q@0 U0H- @ P m 0 P P@0 /0H-Pt ,@P K 0EP Pt@0QL-@P L/$L-@P  Q/H-0M @P 嫀 q Q ` @pE p P@KH-0M P  匀 r  R ` @p& p P@KO-4M `Q  pY`P@P# ` J  q QP p@ p P @ 0  K苺 P 0H-, @P 0AP P@0H-@ `Q dP pPUP``Q@P H <0H-  @P :0 P Pc@0L-@  0H-0M@  r  R ` PpJ p P@KH- @ 0Q/1H-   $CmspL-M`  D03/A<<P P  AR:    KpBmspL-M`  D03/P<< P  AR:   KpYBm[spL-M`@ D03/dP<< P  AR:   KpAmspL-M`  D03/P<< P  AR:   Kp Am s0H-QQPt ,@P 00EP PY@0Q0  QE@mGsQ5/1H-   C @ms 0BS*/RQ/H-   +?ms0H-@ AR*0Q @ P0Q ZP @ @@p P@0  >ms0H-QQ, @PAPQ  @P 0 P P@0   >msQQQ XH-   =msQQQ fH-   e=mgsQQQ RH-   =ms0H-QQ   @P =0Q @ P P P[@0  VYP KO[L1/`@P@FT@~@PPd` XKdXp< XKᎍd@1/XTpZ - /O A R6   Br R4  R(x  RPqQkQeQM 10I $p L0` PV# 0s` XT\yp\T`\.Xy\\&PP@[! (5PP1 gPFP /O AoX  R   Rs P  P 9 @  PaPP @  PT @0pp 8 8pL`PP,`0PP* PL*Tp,ZM<@8PU 0 ,$41p!Q 0 0B S Q, E@P :<8P@<@ E@PP P  0 T U<8P @B 8 @P XK K0,    a6mwy6m{sM-MPL1/`p@FTPp` cqKpL-0M`P-@KAU >A# P>  ((PKKpL-@-p>P 8 L/O-MP@-U>PL1/ Qm*KL1/`pFXወPpr` c p `p/ "z#z!zzPzU1 `zpP  z zQ* PEt{Pp@ypWj{PpypWUK KA/ B/0H-@H 2/PH 2/$0HUH- H 2/H-M`P@L1/ PpZH 2/$ 0K$/L-@H 2/JL-@H 2/@H- H 2/L-@ H 2/@O-LMPL1/ ppPp(1/L1/`H 2/@@1/$0 0p0pD`HP$`(PP* PK28  e/mgsH- H 2/4/H- H 2/H- M 0   Рw//O-|M`h@d  X 0  0, 0 (QE p P: HKX DP H@U@P =+PSh I8 @0K@P 0 & ( TX 0 0JKgwaw"w]wm //0H-M D 2/PP@ P  AR:qP U 5K208  VY,m[sL-(M   D K2/ P @ @@@ P  AR:XT  1 =PP KPTK+mǎs ֕+/( D / /O-MP(@D  p0GQ  ` p`V`ppB P*  N PK28  )msH-0MP@PQK(9D P $QP @Q`P x q PEQ` @px p P@0@pL-MP(@D `Q4 RKp ,00AKpvH-M`@P 0 U 0  ~p 0p~ XL 0p}U , 0p}K;w5w(wem+m /O-,M PpQ  @Xp ' OL p$@W 0 AP * LLll P jP *pW pW $pK  9&m;s/H-   &ms'// /L-(M   D K2/ P @ @@@ P  AR:  {QK28  !%m#s//O-0@AA@A>=HA?8A> Z ;@ `AQ?  B@ ppppzpp  G 0  p ` Rpp 0 R P P  P    Q  K @ zP/pL- @0@0 @0 00P0`V P PPU0` 0S P P  ) PA@pH- @\ S S S:0 @0: 00:0 0  0 0\ul*Wuow>;@ R 00 8/H-  0 0B lVuw 0   0  / ///@pQ3/@o/M- PU @p2 AR*Q QP  `6/WpUPpUO-M `V< P@( p AR*4/P! P: $$ZQ?P  qQ  ZV `VKO-MPPP@PC @  Q<@@`pP6 !$ P RhP0 H`sB1ap0S! B!ApAp!T` P QKWG`Xp`P` @WF pP* `P?< ?P  ;h1  @0 RP4@  @, p`,  1/P. @P `tP@UP`PGKL  R \  L Q 8  ($ $0 0`%Szu$'zul^IuߏwO-M pW, `P@  R?QrP  PQ QU?PUPWpPW KO-M@PU4 ȘЈ`p  R?W 0    a 0  000    PQP AB1BZJPA@1Z 05`A@@FPFqV W*JV  {U KOKzO-LM(,Z{ @E  P` $p0 , ( K$0K1/ , < ,@P9l;sL-@T' @T K-`Q  IBPR*0@!p@ P $PR:`\  P @PUCPpHih=AlCs H- MD0  РH  /M-Q-R3*P@10! Tq!⣚`p P p pWp` 40 00 0   @<lnuBIwlsM-Q-R3*P@10! Pq!]`p P p pWp` 40 00 0৬   ࡬(;lVuXHwls A PM-w@ 0qQ`p P J pPs`X : 00 00 p0S :H  H  M- M`,PX@  0pp  pP@ VK,ˣ/pL-M`,@P 0L P@ VKpTܥH-MpP `@ 0 L , ` P@VKۥ0H- M@, P0 0L zVK0tۥpL-PR `RT@ppLo P @F Q 8l 0Hp @p0 03/p  p5  1  - 00 #0 00 00 ` `0 p 0 ` 0 `` 0`0 p hpDץM-MpPQ`@P  PG $@ PJ @pKp@,` 0K Q U@`p`pP  00S 0 U O 8 2/ p@T@` 0 0إlt?*uM-Pq: `GR'*@0p`!tp` P ` `V`p  ྪl3lrO- M@R P 0S@00HpW GP*0sP@R=B 0p,  Rqh 0P! U   P x Q`1P! 0 3/V8 Fq K  0KO\ѥM-M@q:PSPn S P !RE*(0hQ!㲗`P P P# `Q PP 0PP! #F pPUP`K0,     ީԥd0l?wyl{rO-M@ PS `(` `VqP` pw F PPHpW``  GPBU0TpSQ  KOg`V*pwPFUC0 ` , p  \p :pP( U  @ 0Q0@XUl 1P! 0 3/X8 Hp K P@UͥpL-R& `PR @TQ:AV P, @V *! pT@pVpL P @V   P:p@p 03/p   0 0  0` 0`0 pd̥0A  0M-q2`  Pt@R  )0 S0@y0S 0Mp@ P | @Pp   0 0iltN8wO-Mr0p@ 0aP` ㄠP E@ `@Tm@P  803/K 0 0Xɥeltg7wpL-@PR  r`, 03/p0pLlɥO-Mp  aR  )P UP@IPU P0宕@` P ` `V`@p @PPp pppknpnP  p @QnP_nPnP KpL-P@ ` 03/pǥH-P `@p( 0  3/dǥ @O-Mp  tPR  )0 S0@i0S 0%`P P TP @PU|P` 0 ̉KO-Mp @ QR  )0 S0@i0S 0ㄠ`P P P PU9P` 0 尋K 0 /pL-M@P&Pk S P  `QP 0Kp  $ȥl4wO-M`PPP  pP ` @`V`pPP  pP  @ZpQ# Q! P@PpW Q$ ,84 d8L l `G p p w :@P pBK00u00m e  DPP @XN `H `` 1/` 1/` `P Q h8pHX8HX       1/  1/ KO D8嗝 @P    W\I  P| p  ` RQ 1/X\ 0K X  Q`Q Q 1/Y; Y7  Q0Q  P0 p P0  0  :P p P0  0 0,  i  0 0a륀lrl>tuM-`0A PP0E@ P: NP P 0pԒp P  0hŒp P  Pp P   P @ Pp P    P@ 0 0~ltuO-MPNPlA 0pr` P @ p@T@`8 0 00S  RP P < O p`  00S 0 V   8 2/` p`P  00S 0 U  8 2/KM-phAP 0`@ P % @PN` P   P 0 0>{lt7uO-M@H `DVpV V7 QZ 8```L8`  TP@ Q= 8(H8(H  Pk V   P! P 0 ^AR  R  @P  P P 0   -  P/  %  P' 1/ 1/ P 1/P 1/ P  KO P Q @h8tHX8HXW  j  d    1/  1/  KO  PX >@A R  R  @P   PX @@] 0|Qp⟐@ P P  pPU P@` p `p@  00S 0^ T O 8 2/K0,  â  0 0໢ vlrult+ uK-`@1/p: p>PP' 1/cPq 0p#00 0Q  P CpTp pWhpP @ 1/K-`@1/p:% pj>PP= p U1/ 0SQ:ApUp1/WaqPp 0p⮏00 0Q  P pTp pWpP @ 1/K-` 1/d 0qcd1p0 0Q > P P @PUPp@   1/K-  `P P U  pP ~PrP BP  @PU jPp~ 0qpP  `  @`V H`p 0&P p Pp@  00S 0 T O 8 2/M-@P P p `pWp 0&M-QM*PD0l@!ぎp@f P @ `@T@pp@`p` 0 0PU 0? S O 8 2/   ठ mlrH- 0  H-  # " O-M@p 0` P D@  P@T l@`qAq`8oO   0 R 0 { DPp`r  00S 0 X   8 2/`pbP  00S 0 U   8 2/KO-MR\*`0@!↍p@ P  PZpP0pEp`` @AR![  R[ KO8 2/0Q 0   milorO- MP@0 ( ,P pPp` 00S0@` @XOO  803/@OOPp P 00S 0 @OOX   8 2/@OODP`pP 00S 0 @OOV  8 2/@OO`p` P 00S 0 @OOU  8 2/ KH-P@`  0~@ P  pP@  ` O- M@`@0 &a@`pP`P  00S 0* XO  8 2/` P `p  00S 0  W  8 2/p Pp ` 00S 0 V  8 2/` p`P  00S 0ʿ U  8 2/KO- Mp?@ 'P P@0 @PpPp`  00S 0᏿ VO   8 2/P ` P  p 00S 0m W   8 2/DP pP`  00S 0N V  8 2/ p`` P 00S 0- U  8 2/K  ]al_rO- M@Pp@ 0` pP G  pP p` pP PPPP`P`  00S 0վ @YOO  8 2/@OO`P `  p 00S 0᰾ @OOW  8 2/@OOD`p`P 00S 0፾ @OOU  8 2/@OOp`` P 00S 0h @OOU  8 2/@OO`p` P 00S 0D @OOU  8 2/ KO- MP@p@  07` TD@P c  Y` p ppppp`pP`P@  00S 0 @ZOO  8 2/@OOP` Pp 00S 0ɽ @OOW   8 2/@OOPpP ` 00S 0᥽ @OOV  8 2/@OO`p` P 00S 0ၽ @OOU  8 2/@OO Z" `P`p 00S 0Z @OOW   8 2/@OOX `p`P 00S 05 @OOU  8 2/ KO-MP@p@ 0(` @P U @Y}`@p ppp`pP`P  00S 0 XO  8 2/` P `p  00S 0 W  8 2/p Pp ` 00S 0᡼ V  8 2/` p` P 00S 0ၼ U  8 2/ KO- M@P@0 )P pPp` 00S0@N` @XOO  803/ /O@Pp P ` 00S 0( /O@ X   8 2/ /O@DPpP` 00S 0 `/O@X   8 2/ /O@p`` P 00S 0ڻ /O@ U  8 2/ KK-G` 0q Q̇p@ P  @P$pY : 00 00 p0S :  K-GP 0qaᚇp@ P @ @T@pOX    00 R:T` p` P 00S 0P U  8 2/~,/OO-M`pPO`p`0 0@T 0 S   8 2/@p`p0 0@T 0 S   8 2/X  rX# @p`p0 0@T 0Ⱥ S   8 2/@p`p@  00S 0᥺ T   8 2/@p`p0 0@T 0ᆺ S   8 2/@p`''p0 0@T 0f S   8 2/+x"/ 3p`??p@  00S 0> T   8 2/ MKO-MHP 0qq+@` P Y @Z`@OOX    00 R:pPp ` 00S 0 V  8 2/`p` P 00S 0 U  8 2/ KO-M HP 0qq᳅@` P  @Z `@OOX    00 R:pPp ` 00S 0h V  8 2/`p` P 00S 0H U  8 2/ KO- M,H ` 0q Q:@p P h @Xp@OOY    00 R:p`p P 00S 0 U   8 2/`p `  P 00S 0ϸ U   8 2/`p` P 00S 0᯸ U   8 2/`p`P  00S 0ᏸ U   8 2/KH-pPR*@p0!⁄`p P  pP`@  ҖIFlKrM-`pP~q_W.*0\@! Jp@ P y` @`V`p 0 A@KS  ov1El3rO-M`pA@PQ^) 0 p `P 0 XX p p`p[ #p$pp p` 00S0ᵷ VO  803/O r ` p  00S 0᏷ OZ  `8 2/ Or `p 00S 0hO\   8 2/U U%PUL 03/& )0 A@sRKCvM-pP`o@P"*0!5p@ P d @Pp      lޝAlrO-MBrV*@`Pp nZE*D0E !o2p P $P @PULPp`@2 V  0pW 00Csp W *lps0p1QKD@  "  0 0tݝlm?l"tv?lrM-p@ 0㛂`@ P @ P@T@``p`p0 0PU 0` S O  8 2/M-p$A 0T`@ P @ P@T@``p`pP  00S 0 U O  8 2/M-p,A 0`@ P =@ P@Te@``p`pP  00S 0ӵ U O  8 2/M-pA 0ȁ`@ P @ P@T@``p`pP  00S 0፵ U O  8 2/O-MRj*`0@!}p@ P  PYppP`p`  00S 0< @ZOO  8 2/D`p `0 0PU 0 S  8 2/ K  ם9lrK-`@ 0'P 7P pLi@P  `BMD K-SK*P<@ap!0Ѐ @@VQ     ?S<[oV oV   P  pP T  @ @T  ԝdx6lrK-@ 0q{7`0 0Q V OP P pPUP` p`p 00S 0$ \   8 2/H-M@P`p, 0X 0  PP P >K `PfPKO-M HHC P*P@ `_O P @f P*pr''p  00S  0ᷳ'R   8 2/# Pv p@q@r P :hd"d2 0V|pp` 0 R 0pV   8 2/H~ P?* @Q  >   ` P  a PP L Q bK 0 0঑ 0 0 0 0 0 0`\ \0 040 00 0~o}1l2ttv1lRtt0ltht1lғtt3lΕtIt]1lttv=1ltt O-Mp @ P   PP H@AA0Q W 0p`~P@AAV f0 0% 0 3/P( W  TQPQd Ry  QP @  `X PWP( ~p0  `@T @PQ, P  p!0B!R0 R00  @pW pPQ :@P @ p3!003/  P R ` @ pPO`pP@  00S 0ȱ X O 8 2/P QO UR P* @2QO RP @  `@T @PQ?:PP*  2  `@T @PPP   ` R P P  ` R P @P `P0@ 0pW 0- S  8 2/K 0 0U)l tv8l$ojpL-P R ` @!0B!R0 R00!003/PpfH-P@Q*`P " p RJ `HwO- M@ 0p|PPPa0P  ?R4 0 02W-  p@ @  00S 0ူR O 8 2/ Vd0003/  P K @PKdO- M@p`~v:<W 0K| P@PQ E/O   ?S<[OT OT (O0Q /"@!R20 R02W. p@ @  00S 0R O 8 2/Zl0!003/  P  K @P2PK_vPfaO-M@P ʀ~x:tzVT*`q0!{ @W,P NO  /R,[?S ?S `O0Po`Z/`Vp p"  @  00S 0B@@ R O 8 2/@@ Z U0@PU P bK @PK  v,c !lrO-M@Pʀ~x:UT*q0!z` @WXP FO  /R,[?S ?S @O0Po@Z `:p@ ,8 2/ `@#T  00S YR 0 ၮ ` @YR PO pZ U0@PU P K @P ``K  Ȍvl`!l#rO-M@Pʀx:UT*q 0!;z` @WhP FO  /R,[?S ?S @O0Po@Z `: p@ ,8 2/ `@#T  00S YR 0 ­ ` @YR PO pZ U0 @PU P K @P ``K  /v^%l'~rO-M@P`~v:MTT*|q0!yy @WHP O@  /R,[?S ?S Op0PoP5 pA @^``&   00S  0p @R O  8 2/p @T U@PU P .K @PVK  O'vx[=l?{rO-MpR< `P~r:`SV*LA0!x @@TQ O   ?S<[oV oV ` P @ @V `@T@8O  0 RoကU4`E`FXpp PO0 0@T@ 0E S O  V8 2/VK  ॊOv0XlxrL-@0 Ld  O- M` 0@ xp@ P F @^npPP 0 R   /"@!R R `` @ 00S 0ǫ pTO   8 2/@`P` 00S VR 0 ឫ VR KX`>@HP pP@D`p 00S XR 0 m XR  T8 2/TP!03/K 8 2/OpL--MR +C@N # H  PP) g#P/*0`! $wP` P S `P|P 0 Kp `PiP$  dA(lsrpL--M@P PP 0R/* 0`!vP` P  `P+P `PP 0 Kp  ଝMlOrrpL--M@P PP 0R@/* 0`!vP` P  `PP `PP 0 Kp  ň먫lqrpL-R *@Q01` !0DvP` P sp `PPp  봪] l_prH-P`p@q:PV*0p!vPp P > `PgP  bhvԩ lorO-M  p@`PP PD 0VP.,(!(1 0: P@@PUPSP0 @1P  PxP P  DP@@P f P KP PK lnt'tH-M0@  [P `PxP  pPPDP K 0 0 lltCtO- Mp `C P u PQ@ 0@:KO- Mp `sC P N PQv@ 0@KO- Mp `{C P ' PQO@ 0@KO- Mp `C P  PQ(@ 0@KO- Mp `C P  PQ@ 0@KO- Mp `C P  PQ@ 0@wKO- Mp `C P  PQ@ 0@PKO- Mp `C P d PQ@ 0@)KO- Mp `C P = PQe@ 0@KO- M p`P@ PP  Y@@O 00 ?0@` 0P: 8RG HRI P  @ P` 00S 0ᒧ OV  8 2/O   B0(%<00S6 5000Cs0 S4, D 0 P Y_O00S(0R H00SP   R  R00 0 R &OP p@P` 00S 0 OV  8 2/OPB Pp@` 00S 0 OV  8 2/O`pp  0/ KD@ P@0 0pW 0 O pS  p 8 2/  (kbrM-PpwpS6 @`@@|4`Pq `v`VP%uP&`E QAU papGpN`@`V@00SpN0S\ :U Q:"Q MH-0M@ P/b P  pP`   P$( KH- !0$( O- M P p P ``  @`V `p p $0 /  0P% P `p`p0 0@T 0ݥ S O  8 2/ P !@ `7 07r碢   R7P .9R RC> 7 P: , 0`@pqX"$W%$ W0   `P p  @pW p` ' RZ 7QQK@ T R0 R000C?o2RaL S 0\0%Q Pc<DQ  @@DOo S0\R @@0   % /O7r0Z 0R0 0 0Qk\tt0H- P0P (P P+ ! R-/B?B ! R-KB7B ! R-;BGBP ,0 P PU@0  PAkC[rO- MQ0  X@@| 0qp|0`0 0Q 㣤 P P p  @PU P@`YppO@p0 0`V 0y S   8 2/P p@p0  0`V 0V 0 0SrS0   @8 2/0D @S/  @   @000` 0# ' + / 3 7 @0S P$@o,Q2p Q7   @oq Ao7rB   R7P .9R R@ T> 71 K/R@ R@@@DOoBR a< T @^@00C?oT@^R 0@@   % /O7 @R@K-,`P  A@ P` `oO 7" Rx Q R[ 3V @ P ` Bp`V`@ 0qfo@ P p  PpW p@ 0b 7QQQ Pc, 0㹧,AP [ Ap P@@@K-M`P7/r P 1 B@ QZp 0 PK0H-M@@PK0O- MP@7/b P  Bp Q`  0KO-M `p@O$!R ,!R1,1S0.Q  ~p @`pP  00S 0_ U  8 2/ = K (0 R ADvH- M@0 [ РH-P@`  0?n@ P m pP@  ` `````O-MX 0q@anpP P A PYipP_OT    00 R:r@p ` 00S 0ȡ V   8 2/`@P`p  00S 0ᨡ W  8 2/ KO-MP@ 0p mPp PP  `Ypp 0p zm`P  PZ`  0w` @!4PF R PKp@pP 0 R 0,U O 8 2/ KH-P@ 0q m0`0 0Q  P @ pPi`@  @O-LMP p @` 4Q0P[T%0Q,K,0` 0dH Q_` hP   0lP P   k  (0$p PP`  P P 0P; hP7 T 1 `YP(0  P`0,0 4$0,0K  pC PP hP ]T + KO- M00  P 0P` 00S0` @p$` $p@OOZ   ` @803/@OOW* \(# # p  p,00PP ` 00S 0 @OOV   8 2/@OOPpP` 00S 0ğ @OO 0V   @8 2/0@OOp #P P 0 0`V 0 @᚟@OO S    @8 2/Q'm  ; 7 3 / +  ?G 0 8 B 0 _  :K84 40 0}$ 0 0}]kEtv=kDt+uO-LMP $  0 @(  , Q0P0T%Q0 4P0dH  P_ Q` hQ+  0!kU,  1jp(0   PP @ 0  `Yd(0  `00$0( 4$  0 , pP`P hP,R   KH-pP 0`j@RD d P  `P@O- MPrX3@p 0j` PFpA@P 0P04!03/ @PpP P pPUP`p`p  00S 0A Z O 8 2/ A  砦3tKO-M`) 0@%jp@ P TP @PU|Pp  ` `  0 Ss  pp @ 00S 0ٝ TO   8 2/ p` p  @ 00S 0ᷝ T   8 2/p`p 0 0@T 0ᗝ S   8 2/  ##$$KK-Pp P P B`PUPp  0N` P p  @pW p` 0dH-@ Pa P s pQ` P,`P U Ap P~`,eH `ᨁ {蛆vO-M@ P +` BP`VT`@@ 0 P =@O P  BP R1  @, @ a < ``8@ PO@P  A` Q`P  PpO` 0 @0PUP 0@k S O  803/ 0]O` < Q X: 0qTh0@0 O0Q / P tp  PpW p@@ 0 A3  `OP`0 0@T 0 S O 8 2/0[S0K(O0 R ԛO-M@Pp`@`_O 00pWp 0ḛ \   8 2/@ 0R:8P HP  0KOD 0! RS0PH  yk5rK-@ 0`D  0fp P @ P@T@p  0|`p`p0 0PU 0? S O  8 2/M-@ Q7qW3p P [P B`PUPp 0 P Bp `pWjp 0H-MP @`p 0KO-MPS( p<00 @ `0000 ` Q07P?  eW=' pW 4 P@`P`p  00S 0ጚ WU OO L8 KO/PD0  @0 % `@ p`pP 00S0PX PZ O 803/ @ @P  KOKK-0 `Pp@p@`  00S 0 V O  8 2/ 咐O-M c` P 7P BpPU`P` 0Oqe` P p  pW ?p` 0` P  BpY$`  P @ `p 1Q@ pk KM-M @Wq P ` P`V`p 0qwepP @ P@Tο@p 0t0 qr A Rs"R*R`0v`s0& 10B`1p PP!cp ` URPPP&(   oh! 0KPiiH  wvkk,rM-PS` P 4P BpPU]P` 0qd` P p @pW>p` 0O-M0pO   R @P P `P @`V `P 0@P @0  @ Q @0    `P@0  }G 0q `d@PP ᏿ \ ᷾PZ  00 R: @ pp 0 0PU 0  S  8 2/ p@p P 00S 0 U  8 2/ p@ p  P 00S 0З U  8 2/ p@p P 00S 0ᮗ U  8 2/ @; @p@pP 00S 0ᅗP Z  8 2/ p@pP 00S 0cP Z  8 2/ @/p/pP 00S 0? U  8 2/ Dp@++p0 0PU 0 0\  8 2/ DPp33P0 0@T 0 0\  8 2/ #'KK-  P`p P   @P Dp'V,`P  A@ P)`pP `  @`V `p  0PP Խp  @pW pP 0O- - @P P ᰽ `PټPq P ᘽP B`PUPp 0OqJb`P yp @pW᡼p` 0G` P `0 0@T 0  S   8 2/PQLP `P 0 0@T 0 S  8 2/KP QL /O-M `@  P  PP3@7p P @ BP@T@p 0OqaPP Ӽp `pWpP 0P ` P@  00S 0e T  8 2/P `P 0 0@T 0E S  8 2/KM-@ P P p `PᙻPSa P XP BpPUP` 0q apP ;` `Vc`p 0 ,M-@ P P  `P?P_a P P BpPU'P` 0q`pP ` `V `p 0+O-M@p 0q`` P ᱻP PUٺP` 0` p `p0 0@T 0B S O  8 2/KO-M@p 0q/`` P ]P PUᅺP` 0+` p `p0 0@T 0 S O  8 2/K @ P<05<500 0177055/1H-   ErVVkrK- A QQ*T! ,`P  A@ P`  @pP ݺ`  P`V `p  0{P ĺp  @pW p 0  qUkrK-@  A QL*@!P -`P ᑺ pPẹ`P ~` p`Vᦹ` 0P ep PpW፹p 03  qDTkrO-M p @ 2`D V*Q\Q, P:Y@* \B0 @  ㉀P   PP ?Q0O@`` p0PUP 0ᩒ S  8 2/   0 X@`x p @` p`P  00S 0t U  8 2/Kxt  phd d0 0pTP P0 0p@< <0 0p\SRyk{r]kt\v=kt\vkt1\vO-M  P@@!d  P  Ry<pp@P Ql<PpP p P0 0`V 0 S O  x  PP 1  @OP XP8 2/x@  0+SOPp`P0 0@T 0ᶑ S  8 2/q PP @  0+SY  @P PP`@P0 0pW 0x S   K8 KO/O-M@ P0 `!p@  P R;pP Q;` E X*Q}pP:T*Pu ㅐP kZ@ 0+S `Pጷ`P`0 0pWp 0 S O 8 2/ P` @P )P @PQPtbO`0pP 0@T 0ὐ S O 8 2/p @ Q` 0@N.Op ` 0 0@T 0ቐ S O 8 2/ 0 q`Op`@ P 00S 0\ T O 8 2/ KXT  nHD D0 0n40 00 0nLJk rkt7TvեktaTvO- Mp  @ P b PPዶ@PP N@ `@Tv@P 0q\`P 0P PUXP` 00 KO- @0  `匷W6@@OOP  ``P 00S 0K @OOU  8 2/@OOpW@ `P` @{P ip PpWᑵpP sp 0q[` P A PZi`  0 `/Op `P 00S 0юP /OY  8 2/ /O`p`0 0PU 0᭎ 0/O\  8 2/ /O`p`P 00S 0ሎP /OY  8 2/$9 K 0 0l뵞kjt81tO-M`   P嫡 P ᜵pP @㣡P @pWᷴp 0qBZ@P qp PpWᙴp@ 00 ?0`O@`@0 0PU 0 S   8 2/P ` P0 0@T 0ٍ S  8 2/KK-MP@, 0`YXA$0 pP P `PUP 0     pY`P ϴp pWp` 0KO-M  P@P ᫴  pZ ӳ@pP ᖴ@  `@T ᾳ@pPP ၴp  `pW ᩳpP   q    )k@OO   ATu0[S0  0KO'(0 R SHvH-MpP@`N  @0Q p CKH- M0 0 РO-0-P 0qX` P @ p@T%@`O` 0P: 8R HR  `p`0 0PU 0 Pw  S    P`8 2/`p`0 0PU 0I S   8 2/`p`0 0PU 0) S   8 2/#KD| 0 P Dt0RHn  }jkqH- M00& Р0H-M2@P B! @PP% 0AQ " PPU PPUP@P @` -@Q @K0P Q)@O-M`@ 0@0  "Q@ R dC RCp``p P 00S 0w ㉑OU    P8 2/P `pP 00S 0 @P W   KR @0 `K8 KO/H-pMP p`@P =aPV  `@Q d  d0` & 0㌽P ` IK 0 0hi륐kZs#tO--G 0q`qVP@ P   @Y AP@OV :   00 R:P `pP  00S 0ᜊ XO  8 2/P@P` p P0 0@T@ 0u S  8 2/PpP`  00S 0U V O 8 2/P`_Op`0 0@T 02 S  8 2/ KM-M@ R q@0 ` `5PX !0j`VPKO-MHP 0q qV`@ P 4@ @T\@`OZ :   00 R:@` p`0 0PU 0ḉ S  8 2/KO-MHP 0q qU`@ P ٰ@ @T@`P_OZ :   00 R:`p`  00S 0[ Y  8 2/KM-xP 0qAQU`p P ူ pPᩯ`X : 00 00 p0S :        O-MHP 0qqU@` P > @Zf`@OOX    00 R:pPp ` 00S 0ň V  8 2/`p` P 00S 0᥈ U  8 2/ KO- MP 7   R @֚Q  B P ᷯp& `pWޮp@ B P ᜯp `pWĮp@ 0qNT@ P |`  P`Vᡮ` P @ 0D @P \ P Rᄮ @@0@ vZ 0@vKO-M@4 PP KO`pU 'bP "PU kaP ` `P pPU5P` X(`@EZ OS QO`VL P 0S``P ή X`Q`Opkka  00S 0X ZO   8 2/ºP `@ p`  00S 0- T  8 2/KpL-@AP,*a 00p S08P0 0Q  P @p `PiPp  de둀kqpL-Q-*a@ 0<pR<8P0 0Q  P p `P/Pp  *ekqO- M`@pP 0R@`  "P حP PUP@ @ p @p`  00S 0a VO   8 2/@ p@`  00S 0< V  8 2/P0 ` @ P 0pW 0 S   K8 KO/O- M`@p( 0R@`   P 9P PU`P@ #p @ p@`  00S 0ᾅ VO   8 2/    #P ` @ P0 0pW 0ዅ S   K8 KO/O-MP@p 0Q`` P ᯬ@ @T׫@` p ppppTp ` p`  00S 09 ZO   8 2/@`p`P  00S 0 U   8 2/KpL-Pf@U U R   ?R   @R:P P P @`pU U R   ?R   @R:P P P +npU U R   ?R `  @R:`P P hPopopQ, 5 070/1H-   c wk qO-MP , 0pPX   1B$@ ZpP ᦫ`  `Vͪ`@Z         Q  hzx_B@% 0@#@$ @ `  /ӟVB?H-( 0SB ,u0pW= 0upW8 4E@T3 8U@pW. $` @h <P[``(<PpW pWpWpW(1/( R ,% R 0% R 4% R/8P/0H-( 0S ,U0PU 0UPU 4E@T8EPU0@ $1/ P3 PP. PP) @ 1/@X`(<PP PPP$1/ KM-@(Q7 ,Q3 0Q/ 4Q+ 8Q' <01/ 01/`D01/pH01/PL01/P000@ 0 2/P/  </( R ,% R 0% R 4% R 8% R/[/L-@(P ,P 0P 4P 8P  PM-@(Q7 ,Q3 0Q/ 4Q+ 8Q' <41/ 41/`D41/pH41/PL41/P000@ 4 2/M-P `P^@(` Q> ,% R 8 0% R 2 4% R , 8%0 S&  p<0R[p0!`(<P0 S 0 S0 S0 S(1/  R$` [  @ ` P` ӟVB?0H-@PQ p!p Q  0P P ,Q )0Q<@P;P   x LQ Q 000 0$hKP  0P P  (Q ( P  vvԒvvvO- MPd:P( 0,@(p`(1/V`(<P`P `P`P`P4(1/ p@R`@` WQ@PR*@P* 0`,(p@(1/@Xd(<TPP PP(1/ `V@DP R@ 4 @ R Q R E0S0!P#K\%/O-$MP@   ["% 0[pWp10G#5*8@P$1/`41/p@1/| &%'5)$@P$1/`41/p1/ &%'5)(@ @P(1/`41/p1/ &%'5),@P(1/`41/p@1/ &%'5D)0@P(1/`41/p1/ &%'5)4P(1/`41/p1/ &%'5n)<  (1/`  (1/PD(1/pHP(1/pL(1/`Pp(1/ e P8 P4 P1 P. @P* 41/ 41/41/@`41/P41/ 0 00`04 @2/ E@6  0( '+0"%+C5(P0/d %( H0+SKO(KuuuiuDu*uuuuuuM-@<(1/ (1/`D(1/pH(1/PL(1/P000@ ( 2/K-P@@̗` Pp!pGW`1VH-M` P@pQP @K9pKM-M@Q K$D 2/o(PP$ 0,p8@`㭄V`(<P`P `P`P`PKM- `PpU R*U RP @ PBA fQ 0 S0PPQ $D M/ P 0SPBPP' R/ $D /K-MPP ,`rP 9DKK'E@ P]p +@ 7 ?OT pp@ P R R p R @@pp`VA$e``P @ K谅HuO-M"P0S0S p00S p WK`V @@`WQ Q @Q ``@@Y@dpAP   KO-$Mx`&h&`&     0  R8: pBPP4* C !/rAPAP! P&*sd @au PW  4 1U @P}d0 Z `R*p` Z PU QC*P@To Q*Pe P@PPP*PPpW 0dp` pP4  0@PP@P*@PpW 0cp`!pP  0v PU Q*P, pPPpP*pP@T c@`!@P   Y # `B`QT@p%%  % 0%PE Xx%p%X\%T% KP OӴ uuukuDuyu=kOu7kuuuO-MP@U  RP*Q``PQQ *`Q PP``pW@cp@!pP -   P PP Q* .KP O-MP@U  RR*Qm`PQQ *`Q PP``pW@bp@!pP    P P PP Q*  KO-MP@U  RB*Q``PQQ *`Q PP``pW@Ebp@!pP b   P qK/$HQ/K-MH yc`PU   2/Pp0p1 [p p q  0 ` K(X,pp ppppp p$pp6/`p P 1/   P 1/2D`@8P<00 d s3R,s0s4ss 3 ,P 0P 4P 8P ?$  P$ `P0:.hlQ000! R Q*d b P:ቈ%  Q*% pP|  (`tp0FPG0PU \`[pAV _ P@\`p[V(  A F P  `[k` PP pPkk  @DpPPk0P0P8P 08p0D`p`3/HKDuLvHu0H-@$P|h lR Q*d  P: % 0Q*% P00\tQ(507/1H-   Q(e2kq/M-(@P$ 0%,%`8%pPㄐU`(<PPP PPPPPPO-M@T ,40($P Q ~#> @P: T& EG/F   PUg * E  V:t  qW pW P Z P:_  P  PPXN`ZpU@*A   A * * ZU:E      Q1iPE V* P  p !P E P:p@TQKH-`$pP@P  2/ 0P 2/D0P 2/H0P 2/L0P 2/P0P H/H-`$pP@P  2/ 0P 2/D0P 2/H0P 2/L0P 2/P0P H/H- M$i Р$h l0Ro/O-M-@MDP}  hY0v `SP$(<8p ЀXX  4``QIR @0SRʋ"@# 0S@# N R  P,@@ @ 0\!,@ <><88 4``vP$$((lB@0PY 8KЍ8<(`$$hlQp@PX  @p 0P 76P (P<Pڈ 8 0<$( 0@ $P0P0 `@P P `^V0 (Q 0 Q04 )      8KЍOg0  #R`  Q @ C8mmmukju0H-@APT@P0H3t/0HQtO-M@A`PT@OP!p `p 0 R 0pY O  X KOtt 8 2/XK0H-@PP P @    0HKO-M-M @ pK0o`PU:  2/Ppp 1 tppp( 0 `p(X,pp ppppp p$pp6/t`tpP 1/ppP 1/ t` x P | K ( T@PP ,P 0P 4P 8P $  P< =L (1/4 D(1/D H(1/@H @(1/PL <(1/`P 8(1/p P P 4-<`P4 P 0  E P4 ( E0 P-Pp<`PD P @ D 8 E@ P P L=p (1/D`P(1/PH(1/@P(1/<@P(1/8P(1/  P YH   `@+ q E}*] H E4L(1/P(1/pH(1/P(1/`(1/  PpP0(03/4  E0MP 1/ E,PM 1/  E!xE$  O= `41/PQ B xDBP=P `1/PQ DP=P `(1/PQ DP=P `41/PQ DP=P `1/PQ C DCP=P `(1/PQ  Y@xDPP1/P = P(1/ @ 创 1/ @ ` x D, ` O= p41/PQ >DP=P p1/PQ %DP=P p(1/PQ   DPP1/P = P(1/ @ 创 1/ 8 @ ` x QD0 ` O= p41/PQ CP=P p1/P$Q C P=P p(1/P4Q 0(C0PP1/P = P(1/ @ 创 1/ @ ` x C4 ` O= p41/PDQ E 8eCEP=P p1/PTQ PHLCPP=P p(1/PdQ `X3C`PP1/P = P(1/ @ 创 1/ h @ ` x xC` D1/0 A쏋 ` Tp$b`PU  2/PpXp1 P(507/1H-   F8kiqO-,M$I P@P @`@T  p0 7/ @VP K  gIIK0CO-,M$I P@P@`@T  p0 7/ @VP K  +IXIK@BQ -QO/0Q D+ 9 Q (/-Q;/QJx/Q/0Q D+ E/6/O-M, K, P0.$ @ @h  P   P`(  A 0S R R R R$ (  0 0 pEWL 0PP xLYLp @PH`H( @PC , `P> 0 P9 4 0P4 8 PDPP. <Pp801/Ud,@TDPP PPPPPP8$1/Lp< @,0 8  UW<@P0P D-_E^6^ D s=F@`V l 2/`H . @$ (  0 p(K(X,  $7/p$@$ P 1/(( P 1/4@ 8p < HK@` H L@T-Q On&0P D  9Q k`-Q;noQ x`(`Jn p 

8c>$%  ` )>u4V>Hl%lsl##( #"#"sRltRl2u۔u,=uLiuWunslsuO-M@8`P# 0,(pP(1/PWP ,8ppppPP4(1/K BR/H-@p0P`PGP P :HYH `D PH`0H-M@PQXD1/1 A )  a xD| PD1/1 A  a0+SK0@@O-M-M_@PT [PO@PI8 p P) 0,P(`p(1/pXd,@T P PPP4 (1/P@ P  [P 0KЍ8P pP- 0`,(P(1/ Vl,@X `P`P `P`P(1/  P 0@`RP  +AP+ 0`,P(p(1/pVh,@T `P`P `P`P(1/p @V R Q ǒ0 A'` x @ p " Pf퉋  +SJP ɋ Z H N  l `P@ %`$h `V!(P, P( [Q  P @J [P PSD1/Pp5 1 A+3[G q@cJ@V@JD4>Y@X@@@d,%u$800H; (D 0 0H^O-MpWj @`ᤁ PU XP0PU V5W  0 R0!TI @WOO P`  8 2/pW`0Q(Q KObW@A 11 R Ip00B#aS1[ #0S  [KO-$MDp0P$  Y pW QD QL P P Yp,W @BPop(, ,Q,\ 2/P (,( | @  XP  {@Tcb PV PT YpO PR <% @X pX `(, R* qP =`(, Q\ 2/P! ((N ( @W W W$(   Y    pP XL: P( X 0 @ P0  Q*:KK40 00 07I @Fj,sxu~uL-@$HQkP ~uH- @ +Q/( '+ (  @;Qa @K;;c;H-  @K  `q;1+S H  Y@O- M@cU\ L Q ``! ~<(1/ (1/D(1/H(1/PL(1/`P(1/p,J LQ ll  } XP 0  3 UK{}u}u|u|uH-   6j)qO-MPN H@C@pWR ( 2/pP8P1 N*`$P (P @ 0 @(K(X,PP PPPPP P$PP4/`$@$P P 1/(( P 1/NL@H`@pD88h 4R7(K4 p`׍\  OL0 Q ! ;}$ @[P(A\P[X \P[``[/^]0P᢮XmPB j(@qL  $1/% 5$1/' /O L Q   |0(K468P@P 0@p0L`p`3/PK  tԤ3zuMzu?zu yuyuxuO-MMO hXKdpH@PUn X 2/Pppp 0 OF@s s \ 0 `2K(X,pp ppppp p$pp6/@`s P 1/   P 1/OdKhP QpKp h@h Dn6`xKO pF?.F[Q@ |K[h@SL@07Q \h@<`Ռ\  OL\8@Q / 8|h@$kj㜀K/dT`P@PT P  P(P Qh|pX5 `K5452NK Đ Ȑ K5V` ܐ p@6DPP/DPPHp@TE 5V\cXx`LxpE`@DPPDPPH`@TW5` ph2NK `#CPEA 0-KQ`C|~$KPTPX Q* B娠P 1/x`P`^@ᴈ PJ ` &5@QR 0qpTR p G` PpR !%P$P! ([Q0[Q8PX\ d0`Rhd V Nd hX "5%01hh( \  ᤀ[,d  P[0` p[4H(` Z Dx\HP \@[T$i`HP \@[pT\dHP \@[PT OPL @\[TE ([0[8P C`@P@lpp@GP<*AtA!.rpPPP P.* BPGa aW 똀 TP tpPlp` BP|ФvuQ Xh7O@`VA  2/`PxP0 Q@$P (P . 0 p(K(X,PP PPPPP P$PP7/@$p$P P 1/(( P 1/Q`| rPP 0p0`p`3/T N@`V | 2/`PP0 T@$P (P  0 p(K(X,PP PPPPP P$PP7/@$p$P P 1/(( P 1/T`hP@   p<07/ 2/ 2/PP 0p0`p`3/U hL@`Vr  2/`PP0 UJ@$P (P ` 0 p(K(X,PP PPPPP P$PP7/@$p$P P 1/(( P 1/U!` h p07/PP %0p0`p`3/2S `K@`V H 2/`PP0 S@$P (P  0 p(K(X,PP PPPPP P$PP7/@$p$P P 1/(( P 1/S`| D P /RK|@T [ @?SP[1/?PP 0p0`p`3/R tI@`V \ 2/`PP0 Rl@$P (P  0 p(K(X,PP PPPPP P$PP7/@$p$P P 1/(( P 1/RC`pH@gqPq`- qPP ?0p0PpP3/LZPKpAvu3vua*1V 0@P @@TP @@p W耍PL h LZ0T`PpP [@[\@ @P[U \@[U h@%(@lP pF@`V X 2/`PP/ P@PP 0 p(X,PP PPPPP P$PP7/@pPP 1/P 1/P|`hlPP 0p0`p`3/hT\p@P夐[d夠[`0[H(`X0p@T`PPUDx\H P \ [PP$`HP \[P0PdH P \ [PP V \P[`P ([0 [8Q H[( [Qp X R  Q H PPT`X0LltRx⇟O!|[Q) MP% q[W! /1| `R 0d Vx<  "5%q[1Xt"lp QLHXR[  QV T`堉`pPPX0PB[Q LP [P D?PULp `"~V.|h@% #3|0 g LOQ 88! v8E2K40K0Ky<P 0W|KN[@ @QxK[D0pPhP W0hpK0\`p`3/XKdKǤ\X  /_mu4TƤsluĤjuä/iu(;guduu`um`uYj[ qH-@PP( P P  P [Q fp 1 Az @ `  V`1`>ePf Y@HpL-@$P/ d @h`@0Q Q DlV TQ D`P@ D<`  pLpYSX<ll]uK-- MPp@0+C!*R!  Q @~+ @a|+|+1@ @ +u;+bu;;rK;c+H+d+N+bNl+⋴bNa`P += CࣀG+S+ 0) Q XP P [Q P H P1ɋHNP .D )P $ 0+S@Q P 5l$%(K ffffff?@?Q? ףp= ᅳ?Y@`ul$@_u0H-@P !;2+C+ P@ @ Z+ ` P0cP 0뚙??H[u0H--M*@P+S  A;@0 A @ `+a+"ydP +SPD x K0 jA-?,IZuH--MP@0+C!*R!  Q @;+ @a9+9+1@  @ 1 `1p+a H b N `N( `N+S@'`p0V*pP &%X#5 $%`Kffffff?@?Q? ףp= ᅳ?\uM-M@H3 /a`PU9  2/Pp0p1 3p p ' 0 ` K(X,pp ppppp p$pp6/`p P 1/   P 1/3D`@8P<00H ـÙ<O P 00P 0  O 0r R``0``00P8P 08p0D`p`3/HK蘯UuM-M@H a`PU  2/Pp0p1 p p  0 ` K(X,pp ppppp p$pp6/`p P 1/   P 1/\D`@8P<00\p P$ P $  $ P`i0P8P P08p0D`p`3/H]KdSuO-M-@<(1/ (1/PD(1/`H(1/pL(1/P 000P ( 2/ @  0 A  Z|<P ,+SЍOЍY@HޣRuL-2Q  Q 0  O0 0S @@0@@ O- MP@ `p@GA@JAYY+*J >; Z X L;V P*`W``KpL-PP $h[/"@J T@`T@T@P@p@pH[P 1/( $ [ܣШ\,,H-M`@p P<05/ 2/FP* KH/V T P0S  `6/` \0S  p7/ 70 // 00 /L+L-@ R  R QQP P P  1/ L- @pL-@HP  00S00S HRDQPP`P O:P K:H`HPV +p 0 0,+뵗jjrguO-M@ P$  + T& EG/F@!!!!P@@DU@g  Ep V :KZ @Z P W P:قP P PZ@ 9Zp@*A U  A * *"ZU:E  Z  Q1APE V*ᖂ`P  pAP E P:}p O KO-+AOH- M4B РO-MQI  PUa T& G/FE`  E   w  W@:7@ @PC Z?Z< PP X P:P + P '5OP` @P pP P9UQ +0 p0QK 0 0)͒jrDHu/O- M@ X8 `IQ&Pp6/P    Q*p W:pAPp EA1B!ARBFKR05K0S/H- M   ,0P8 0P3 P/ P+ @` 1/ Vd(<T`P`P `P`P$1/ APPK `QQ / 50[S/H-  H/PL-M@PYP P D1/1 A )  a eK@@H-@pP 0PM8< RQ!HQl" Rh" R  R   R $ R$ R$R P#H 0 _D `"RQP | `P P P0P lQhQ Q QQQQ `QPDP | `P nP P*صO-M `7QM  pZ& Z# PU*@ E1R![ Y[ KAPU:P| /0T KU0T KUKH-`P pP0Q@RD (E [Q0 R4Q  HLK-@P.0 A< (1/ (1/D(1/`H(1/pL(1/P   `0(03/0oO-\M`Q Qs QnKV]T  mA@pW  2/p81 4P$ (  P(K1(X0,  $5/P$@$ P 1/(( P 1/8HP@p8L@4PDD @ 08P@P m0@p0L`p`3/T  3K @0+ST0 A  &0oK}ojs5sK--0MP 0p`, 0p$` (D1/1 AS  㠫!K9 3kW  0 @(   0@(X  0  6P YʜP +SJ y`x (d\P L<48K@@T<#uȪjPmsjjpL--@+CP a; pYt#9 ˸+q+ `9p``;ySaKxabV+r" q ` ;qc[{+ p; a `K D p ( V +{`+K OKPIH; q  Za yK+y+a{KKt d `; C  pư>@0H-@PD1/J 1 A p0+S0H@@O-M-pM@(LP ,HP0P 48P8P $4 0@@`0hD0|%@< PtpPU 8 2/PpkIPp$/ 05`0S9 45Z4 80S/  KOcb$  0|P1.2S0[U 0p[S 0 [S FbY PO[AoKK-@P [RU[QQ(% RL ,%p RG 0%` RB 4% R= 8% R8 $% [R 00P/ \[R?JPP#9JP4JP5_`4uq_PP j_@P@[FoRPM-0pA`[VMp[WI(u@TE ,uPUA 0u`V= 4u\9 8uX5 R7p!Pl4( H! F  D Eo[ $| 0R# Mua  I%Xj'pH-0`P[U@`[V<(e\8 ,e^4 0E@T0 4UPU, 8e`V( R)p!H0<$H~IH{I HxIHuI$%0 0[R S \0[Rj^  VjϹpP3/ nP ///M-MP@< 0p 7/ 2/4^ 2/ 2/~ 2/c 2/<  2/} P  2/pHW+:XW#(s_  2/ᣢ  2/XX[X[  2/X W"]]  2/ R 2/t pW 0`6/pW 2/X CKx~H-Mp`@ P<05/ 2/FP* KH/V T P0S  `6/` \0S  p7/pL-MP8 `@d!=  P@ @@P4 @8/ )(@0@4@@ @@@@@ @@P$   @@ @|+@@ @@L P@P PC $P$P< PP5 /  @@h <Q[@h(<TPP $P$P(1/@ NLPP; P3 $P$P, PP% 41/$ 41/`41/(41/p 41/$00 00 @4 2/ Na ]o|&  `   2/H PGctP 2/Td只PK @$Pg P @P^ PrabblttL^mm@mK-pp@Pp p$p(p,p0p$4p p8p`VT ,8````P8:Pp K|+/K-M`@pPp qP!$ P RG pA`rP[`E !4 P RPK !4P R0P; 0 !t R P0pP* | !P @  P R P R@ P K  KM-@+ 4Q 0 R0D @R  0S ?S0[W W p@P_``pBUD@$P M̺f$e\  /K-( P ,P 0P 4P 8P ἲ$  PE@P' hd 1t!%"' >P HP 00+S0$Pta 0#$ `@  2/P 1/P p @  P 1/pPt @ 2/P 1/ @P ZP 1/ @PU ιP X PP @@ PP @ @P ) @P P   @P   @P |  @PU P zxP P @P pPQL  & pPU  \@@>BP 1/@P 1/, @P 1/0 @P 1/4 @P aOP 1/8 @P 1/ `s^ .t P @TPP@T 0  P@T$ P PUP x LP P@P D4P 80x  Dd|tDdVtcOtc8c0H-@; b P PUP HP PU@@P P PUP P PUP 4P PU,,P P P{UP r|P PmUttP d P P_UP V0H-@R%P`q PP  p P P P  1/ PB`@V: 0S0P`q PP  p P P P  1/ P 0C`@V: L-M 0@^* K  0X)K0H-=0\ @LDJ JJ@PUPU @ 0T:0,   <0j|pL-M  0@^* K  0)K0H-70\ @LDJ JJ@PUPU @ 0T:0,  t  <0j{pK- M `AP9 1/`P3PH ;@ 88 50 2( / , ) & #  xph`XPH@80( xph`XP~H{@x8u0r(o lifc`]ZWTQNKHEB?<9630x-p*h'`$X!PH@80(   xph`XPH@80( |yvspxmpjhg`dXaP^H[@X8U0R(O LIFC@=:741.+(%"x p h`XPL/=tJt`tvtttڮtt.t.t3tiFrtH- $0 S0A00[0S1@0BQ3."Bo  5i7FppL-@|Pp `P @ P@,P `Pp @ P@PpP L-@@PL>/ 1/H-P@@pU`pP`M-P4jAP P```Y,<&(`,p@PTPP/^ 0/0 ///////@] H- MPfW P  p @Lp^ G0aQU0S U r W: 9^0B`QX`V0X s R* Z` Z ^0pCPL`A!R`VR q S*0`P   P PzU0 @ JQ%^ L0@PaATPU DR  Y$\: Y 0L ^PB`qAT`V@T t\: Y Y p0Lp^ G`QAT`VDP \* :^`BPAPPU@P \: Y:Pv qU Pg R|?p@#/0A`B!QATm`Vn 0 o R?  @ 0\pN`CP!RPUR p!^* X0 pN0`3\PF!ATPT pV` S  RK0 @ KO! 0@ K 0@ K T rQ*KO-MZ?#?C`HpIPA1SPU0S Ϡ X 3Z %pI`H@Q1S@T0S \WL Zp/`GPA@!1S"@T$pYp3\ W - Zp@`BPA1SPU S rW*p 0S sP*  KO- MP0oP@^!A!DpE`1Y`VY q<T9*@^PPE@I`1qW`VW q" U*0^P`F0HPAqWPUW qV*` KO-M @p@@Z/"/B!PA`D \X 0\ s\QY* Z@@H`NQ1SQS qAX>* ZpPG`N@1S@TS q%W"*Z pp0G`LPAQPUQ q W*pKO-MA@@P<< Rz?p@#/0A`B!QATk`Vl0 i RE  @ `0^ C@IPqWPUW p' S$*V @Cp 7^PB \P \ pR W`` 0P#  R" L0 0L@L 0  T r Q*  @o᠒ KO-MP`  P`EE P `EP7Qڠ/@9/ㄡQ !00  L0\ ! SqpQ:Xp pPU S@ T:AX`@P P @ @T : T+<PZ  00@ 0@ RSpPU:pP7U Sp`V:PAUpAT P T  Rp0Q0pW* p0Pp ` PVZdEDQ[O`\ P V' P P0S: V `\ Q0pW:`U00 Vz `QP 0S:QI QR0pW: V:PW RZP`PJ  (DhQZ0 ]0 ]P1 `  RP0Q  0@RP pT p WPA@Ap@pPP0\: `PK E0KO 0EuKE 0KP 0S*0 KH-@0` S@\PU`ST" V P000p0p0 P@"@PU@3`pW`3TV# Pp00p0 0S P`\@T*@0 R`PU*0 P`M-p0`@0PU P0pPU0 Pp  pW0`S \:W0  R: R`0S*p 0`O-M pP@T( `0@P`0P@T! 0 `@P `pPU& 0`Pp0`0pW$ `p0 `#U U 0 `R: `0V:W 0`S:S` R:KO- MPA0@P0D`QU0 X  P4 0Sp`P"p`V*R @Sp Q XpB@ Bp 0\`$  P@" I0 0II  02P  0S* 0  @oBKQ/0H-@PP h0HV 0H-@P( R@GP0pL-@`(P R@G"p0H-P@P([P>D)"0H1H- R 0Hx( [R# AP&[Q #1P[ 0 /R [PP M-AfA[QsT%P@P  1/@P, QrP[P P @[[ 0S ?S0[W W )TrK-(P[U BA@ P#`By0 W0B '0ᦙ P *I`Ar'0 "~`V  0KO-MRAPR1Qq[sBXiQ BS`p !` W p[OT OT  X RS qQ[ : @X``@ U# U([Xh  "2@R D T@ "  "5%[J[PE C[P? [[[[ [[[[[ [$[([,[0[4[8[<[@[D[H[L[P[T[X[\[`[d[h[l[p[t[x[|`V`p S6  0. Wp[oV& oV pX[Q RG!0[0P    ?S0[W W K 0 0a뉼i>rۋtK-M@ Q:A WP U} E W@BqaE A qp  0@BCQAU*RV  WPw U P``Vu V*q `Q`V Vv*   "U `PEJUP Q     P 0  EB 0 P K >K P``V V4*&1U  G` B"`  W !Y ppK&1U  G` B"`  WK-@P U 0;` V F U@BQqF A 1 # PppW W"*U'!qV0 0E0C#! 00U 1Y0  Z0ίK-@`V p<P U*A U@  p@կ  QppW W(* ppV!!q 0E0C#!0  U` ! V   p@耯K-@P U 0;` V F U@BQqF Aᄯ 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  03K-@`V p<P U*A U@  p@:  QppW W(*rppV!!q 0E0C#!0  U` ! V  qp@H-P@`@FP@* qBA!.rPP3 Pp3*0F!`00qa`PU EA!! B5V0`PVp @6P@ 1/UU HR p꘮H- $;H|R M--M@P H⪺tc`PUe \ 2/Pp0p1 M,p 0p S 0 `0K(X,pp ppppp p$pp6/,`,p P 1/00 P 1/ $D`@8P<00X`PeaD1/ኛ0 AP`㉋ ( (AAR+ A!$Q $$ pQ[Q Q P TP[P P pl!l1 0qTXX`PP  Q p@ W Ts9D1/  R 0 A( 剋,0@   00P8P 08p0D`p`3/H(K @@ftͰirmthTt@.:H- @*:HQ H-M{@ )P``\X dppP P `KX pP KlHL-@L3X (P 9Q /   //O- M@$[/R[Q`V F  Up :Hp !pY Y P R P :pH P PPK\jV@*! @  A * *J@ ꆀ@V:F@@    @ Q1/`F U*pp,HpP  P F P:HKH-@PQ A PP`UH* VF"@  o!pr!   W   P:@o `UP1U:O-M@Q# PQ[*P P UpXE E Z: GPPP P0 qpW( Y P:G P  P !R   R 0`V ! pKO- M@pPD0 W :`p\G0pp`P V S P: 0DG0 PP P S- P: 0-G0 P P S P:@G Pa @ P KPH-  H~O @ H- @ HtO sO S/! RR 0S://PP//L-@P0}X ,P L / /D/$[/H- M Р P / RH- L1/ H/[/// R 0  00R R 0  00R R 0  00R R 0  00R R 0  00RP/ 0 P/L-@PX` ,P PL L-@PXE ,P 5L| 8 BP,/N   //K-P `@P(*B A!/rAPAP P@*p0AV   ᦪY@ KUN @pg@  RHN H-  0 0Ӡ1irrt AA/M- MD   L p pP@ <0 `6/  2/T P0S  `6/` \0S  `6/  2/P @1PP p {KӠM-PU p `V P @eTpP ][PUPU `RVP  P I ҠH- HM O-M P RRKAP`V )+ET6 G?F !!!w!F@ W:D PX @W PT P:@D @ PX>pPU6 T& EG/FE   g  V@:D@@ P X pVP Z P:D PXoRwL-,@ L P ϠL-0@ L P LL ΠM-MR * p@P`P P PPU:KM-MR * p@P`P P lPPU:KM-MpS* `@PbP P DP@T:K4  L0 P /H- H/̠L-4@L $P L[L p̠M-MpS*`@ P@P P P@T:KO- MA@ T: T& EG/F   D`W  Up:CppP XX U PV P:rCP P e@ @T6 EG?F `@!!T!!W!* D Up:@CppP `V`V U PZ P:%CP P pW G` U@: C@@Z Z P V P:BP P PQ z`W@*!   A * *Z@W:G@@  }   Q1cpG U*@@B@P  `P G P:B`  KKO-M@ T& EG/F`V!!!!w F W:wB QU PU P Z P:bB P  PPSQjPV@*@   A * *Z@V:F@@     Q10`F W*#B P  P P F P: BP  KH-@PQ A yPP`UH* VF"@  o!pr!   W   P:@o `yUP1U:O-M@Q# PQ[*P P UpXE E Z: APPP P0 qpW( Y P:A P  P !R   R 0`V ! pKH-@PQ A 3yPP`UH* VF"@  o!pr!   W   P:@o `yUP1U:O-M@Q# PQ[*!P :P UpXE E Z: APPP P0 qpW( Y P:@ P  P !R   R 0`V ! pKaH-@PQ A xPP`UH* VF"@  o!pr!  T W   P:@o `sxUP1U:O-M@Q# PQ[*P P UpXE E Z: m@PPP P0 qpW( Y P:S@ P  P !R   R 0`V ! pKƤO-M`PV? T& EG/F!!!!F@w W:@ P PU @PPT P : @? @ P  PPUPK  P PO- M@pPD0 W :`p?0pp`P V S P: 0?0 PP P S- P: 0?0 P P S P:@? Pa @ P KPH-@PQ A ;wPP`UH* VF"@  o!pr!   W   P:@o `wUP1U:O-M@Q# PQ[*)P BP UpXE E Z: ?PPP #P0 qpW( Y P:> P  P !R   R 0`V ! pKiK-P `@FP'*A AA!.rPP P@*pF AV  uY@ K$G @p6Q/0H-@P0HG Q/0H-@P0HG O-M`PV? T& EG/F!!!!F@w W:d> P PU @PPT P : @I> @ P  PPUPK  P JPO- M@pPD0 W :`p>0pp`P V S P: 0>0 PP P S- P: 0=0 P P S P:@= Pa @ P KPK-P `@FP'*A AA!.rPP P@*pF AV  dY@ KF @p%K-M@ Q:A WP U} E W@BqaE A% qp  0@BCQAU*RV W WPw U P``Vu V*Aq `Q`V Vv*3  , "U `PEJUP Q     P 0  EB 0 P #K >K P``V V4*&1U  G` B"`  W !Y ppK&1U  G` B"`  WXK-@P U 0;` V F U@BQqF A\ 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  0 K-@`V p<P U*A U@  p@  QppW W(*JppV!!q 0E0C#!0  U` ! V  Ip@轠K-@P U 0;` V F U@BQqF A 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  0pK-@`V p<P U*A U@  p@w  QppW W(*ppV!!q 0E0C#!0  U` ! V  p@" D /M-⁏@@P 2P@ "``@&ueq Q$Ba PR:@VM[Pw[Ps[Po [Pk[Pg[Pc[P_[P[ [PW$[PS([PO,[PK0[PG4[PC8[P?<[P;@[P7D[P3H[P/L[P+P[P'T[P#X[P\[P`[Pd[Ph[Pl[P p[Pt[Px[P /|[o/O-M@P ABU' @HY.* Aa@.qY ``V! V"*pHn QX  ~ZP KO,C PUK`p6K-P `@P(*B A!/rAPAP P@*p0AV   AY@ KB @pO-Mj jJUU@UUAJP>ppGGqz z@VPPP. PP`pB P0UuUuM0W` Za ` / qA Xp`@ KOB KP겞K-M`P@V[C `2<P  1/2P= 2p᪞dp [` [^P )0 S + [ Q  P0[1!0[0[ [KP [! [ [ KO똰pnrH-@pPPPpP  1/TP `U G`P !,rK-P `@FP'*A AA!.rPP P@*jpF AV  +Y@ KA @pH-pP\@P(A`DPᦱ 0b 5 40H/ܢH-pP\@P(`DPჱ 0b  40H/PL-M@d 1 A q0+S  KLOO-M @Q P Rg  2/  `1 0ۘ P p`0P  )P  @0_$0P-  1 A q0+S 0P $pPlP (`J@ hb 啵 403/ PPK |i>t\H- ᄮ H@ @‮ H- @| H@ O-4M` 0P@ ,($ pQgptU 7PPh K``E㠓 Pq[O4h&P   0S ?S0[W W    [ ?oR 2  p0S ?S0[Q Q R$$H  ꤩO-M@\Q@Q; 0AQ7[P2P `Ꭴ 0 p@@$P Ph `nP `1 A & qP&  @+`N a  _Y:0080Y< [4SPpW  2/p@ . \X `Xh(X , 0  $6/P\`\P 1/XXP 1/@K0P 8p @ ,` 4  PX⬧b`pW  2/p@P1 `㎨$` (` 外 0 P(K(X,`` ````` `$``5/$P$` P 1/((` P 1/fTPPHpL@@Ķ 00 Q짦pY p1P  0PWpn(pGP(@$ $r@P$ 0P@ $%P x# Q1A @PHP 30Hp0T`p`3/X@@P8P "08pK0,`p`3/84 <K`w{irut4L-\H 0< : #LH@ @8;X$ ( , 0 4 \ 0O-MpC` @oOR  0S3 ?S0[_U _U @@P ]DB;0P 0P @cZ 4P@KP X,[Pb&J)"KO';7t 0 R0 H- H/O-MpC @R  0S3 ?S0[oV oV `@@P ]D@B0P 0XP D@4P  0 KOCHK̢G5tH-@A  0A S!0"0pW& Wp[oV oV `p@P ]0Dp+Bg@K-A``@ Q  0S ?S0[W W [N R?o 2 1PpW? Wp[OT OT  x$$`P Lr@PPpBDp@P ]DpB̞O- MI7 `R0NsS1pA@@PGU1 [  R p p [#pA#s R40 R /R [_U _U [ `/o\P"P` 0S ?S[?S ?S  [ R 0 0 [ /o"  [9 R@00 [ /o"/Q  ?oQ 21  R /R [?Sh ?S p`Vz oV`[_Ur _U  RjQ  R /R [?S ?S   R /R [?S ?S @P@P mDPB0P(0P! @KO ?oQ 21p`V oV`[_U _U Kh+.t Q00/0Q   /H[Q/ 000\[Q/[Q/ 000\[Q/(% H [R 000\[R0% H [R 000\[R,% H [R 000\[R$%  [R 000\[R4(P/  \[P/[H   \[Q/[   \[Q/(% H 000\R[0% H 000\R[,% H 000\R[$%  000\R[4(\[P/6/H R/\% R /p+ R o/ᤗ>O-M`dP 吟pP8 J ܓ % D%:G@0 %4 0C@pW  2/p@ . TP PPl(X , 0  $5/@TPTP 1/PPP 1/@K0@ 8p @ ,P 4  P̢B@pW֑  2/pP8P1 㮣$P (P đ 0 @(K(X,PP PPPPP P$PP4/$@$P P 1/(( P 1/ㅣL@H@pD88碴q0 A ڞ@ pԞ  <A3 P` $P(PQ $Q @-4@0P 08 84@0PP@ :8P@P Q0@p0L`p`3/P^@P8P @08pK0,`p`3/ K<[&thcwirPbCt䓢e#tK-M@ @R Q KKեQ ХQ' 048   Hhb`PU P 2/Pp0p1 ˢp p  0 ` K(X,pp ppppp p$pp6/`p P 1/   P 1/㢢D`@8P<00|80P8P 08p0D`p`3/Hⷡ, 7P7( 0 , P @BH HLtP \Q rP 4@$K茒3"tH"tܒ^tR t,`tL-@7(m 0i ,e (P @L(>tL-@(e 0a ,] ,P @7贎t7Q/7$Q @̤/dt Q/ @࿤0tH- M$  ] РQ  Q /@@#P [P/O-M0D   Q u@ pX200?o2  eZ  L 00S A? 0 B?O0 BP31R![P/ 0S) ?S0[_U _U P @P    D B V52 @O@ P [ @ P QX` Ơ LO  AQR1 [{ ( P XK萍`M--M@ H lb`PU T 2/Pp0p1 $p (p  0 `(K(X,pp ppppp p$pp6/$`$p P 1/(( P 1/ŠD`@8P<00嵌PX`(K ( $ 8,8P D7Q# P [F쒌0 A p@0+Sl0P8P 08p0D`p`3/Hⱟ K7(0,4P @AXWCs|{ĉ8NttL-@0P0$P  0 0L갌O- MOƐ\C@PU `@ p00A0 00 @ `PU@0S `Pp  D     @P`0SPP X@IP/ \ 0ap@ PpE  @ P 0\R  `Y```fwV,ə\#6@T `p! PpW@&`V p0!@P0S` Q$ ( P `pQ 1 P p@PQP p@p@W`@@(I&TKO0 R/$ R1B$/L-0 R A00 B0à AR![ "@T 10  0[ LO-LMPA`@O@[P N  @Q  0S, ?S0[W W  @P }@@_DZB@O `( Eq)Q $0<d<,,PLL0p! )0  0  Q @p P* ^K[K0 P `@P  J@PT:0  0   g0 %@Li@P] P `BDQP  0$` 'ᗜcK P:0   `0 Qf @ pp J 00SE  0 PI= P H @ @R P `@ PE    @PT:  0 -0  eP  [     n0  NKP  @   ! 0{K|Q @;P  0@t ៊ 0 0  0  P D 0@th!  PP @ @ P [k @ @  X,[PZE)"!K0 >. 0S^ ?S0[WP W `oOZZYL Q  0S ?S0[W W P  0  ? PP hr@P`l@g@P%]bD K [ R?o 2 1p`V oV`[_U _U R   @P8 2/P  0@ p&t! 0  `  P@ @  X ,[PF)"ZH@ @R  0S ?S0[W W [ R?o 2 1p`V oV`[_U _U Y$O$P]QY  `O @  X,[P-  J@)" OF  @Q  0S% ?S0[W W P@@Pi`@eB OD` Z: PP`  RZ  pO @  X, @[P J@)"G  @Q 0S' ?S0[oV oV P@@Po `@B; Dp Z:@P 0 , 0Kv$$Kp@Po`pB`oOD P  X UW* N  @  X`,[P+ E@)"`oOJ @Q 0S$ ?S0[W W p@Poi`eB`oODPU:p 0R pA,K\tK  `y51i7o/O-M-`MPQLQQQ QQQDQ O@P 媆 AP @`8@O$p$O8@[P P  P P~ 8pW{ PP  G`,B #1Q  [# P/o "!0PU _UP[OT OT  @?$$L @Q  0S' ?S0[_U _U @@P ] xDsB $(0,4q)Q t(<T\dt0((,hHDt(0p!+*(0 (0 ! Q @p P*( z(0 P @P( h@PT:(0 (0   ჆(0 A0@Li@Pf P `BDp(P 08@'Თ^ `VP(0 P0 Qm`@O@ M 00SH 0 paB P p O@ @R P @ P(`E  @PT:n (0 e(0 `_(P [   iM(0 HGE(P @  !04|Q  @P(P 0@#tN ᴅ(0 (0 (0  @P 0@?O@ P [t @ OP X,[PtD)";(0>.(PD 0@th! 0S[ ?S0[WJ W `V`V  Q Q [/R /R (P 0 Tp 0P h@OO@P0@g@P%]uD pv [ R?o 2 1pPU _UP[OT OT R O  @8 2/,p`(P 0@:t!04@ 0 P,O@ P X ,[PD)"mOH@ @R  0S ?S0[oV oV [ R?o 2 1`PU _UP[W W @j$$P_QZ O` @`Pp_OK  @  X,[P:` G@)"`I @Q  0S# ?S0[_U _U 0@P_x`tB`DW: PPb 0 R[ O`@pO O@  X ,[P G@)"DO @Q  0S% ?S0[_U _U XqNt0@P_` BHD 8c@W: @(P 0 , 0ᆃ$$@OO@P`BD Up ``Y PS*pL  @  X,[P? I@)"J @Q  0S% ?S0[_U _U 0@@P_~`@zBD@OOY:p  0R pj,A,c|08  @@Q R 0 A p T@*(KЍP#  eioL^ZsK-M@0PA P (p *0# B#:G⑘5qP PP@p$eq  P 2/uqPP5P ڲ80PP74PQ7PQ @dK]s7sL-@L0H-@HPP 0@HU<0 0H膲T\spL-@P08``5`<Q ,@)U<`p pLh[s86/O-M-M`0D 040Y8 [0DVP@TA , 2/@p`p 0 p p 1 PK䕟(X ,pp 0 ppppp p$pp5/Pp P 1/ P 1/`KPP X@ ` L T  PK(up@T  2/@P1 pϔdp`p 0 P`(X,pp ppppp p$pp5/dPdpP 1/``pP 1/㧔P堀@ 0 Q@0P P |XD Pp I`H@@D<X9P 0|  sLY } 02/$H/ T@D H j 0 pHK(X,  $7/@DPD P 1/HH P 1/,TDP@<H@@P P|pP P P0KE| p0+SH`PPP 0DT 0@P03/ &@@ Pp9!90 A`9ȫ"0P PQeLQaQ]QYQUQQODQPJPP ؁0p0`p`3/K`PXP ǁ0XpK0L`p`3/40 8 Q8KЍ(.Op0d  ~@ d`~@p0 @p0d d[@d[@dp0 Y<@dP/P @ ` `P@@ppF  @`T:dP/P @ ``P@@p @`T:-dp0 @dp0  @dP}p0 P gx@Ly@P ` pB4D@p`dPD 0 thA vdP@P @@ P[ ` @B Pl` X<,[PUD)"/d`T}@p0 C@`l`p > 0S ?S0[Wf W 0l`S0S6dPP Q/ QP[/R& /R p` 0|  3,@, 0r `l`,`AIP`l``pKP@``x`P hr@P Hx@w@P%m>D p:BvD [ R?o 2 1p`V oV`[OT OT R  8 2/t`pKd@@p` 0P u!0P P` l`P@P!#sl`P5@ @ X ,[PgE)".OH@ @R `pK 0S ?S0[W W P@C [ R?o 2 1pPU _UP[oV oV SPP@&|$$PePQ`P O @D<@p`OO  @  X,[P D F@)"D<@I @Q  0S& ?S0[W W Cx@P1`-Bi<@DDT`V: `pKPPg P0 R`P OPPP@`S O@  X,[P PP F@)"MPPDO @Q `pK 0S& ?S0[W W x@P`BPPD @`pKT`V:dPp` 0  d , 0,@ l`5{$l`$O0P`pKl`@p@P ` p{B<0D䰚Dl``pKP T8P@@Z40DZ*OQ O @  X,[P  J@)"<IO @Q `pK 0S% ?S0[W W xpP@Po`Pl`BO<D`pKZ:D P@8 Tt4A,T`OP@Ol`XYT`Lp`@KO`HP  P  P P7 `Q4 PP V,0APdC, D0#@1Q P [l`# PP/o"!l`0pW Wp[oV oV d*zl`$$DO @Q  0S& ?S0[W W @P }b D]B`T@HpxLt|q)Q^ phL txL\4P  pp0pd  kdp0 ydp0  _d Q 0As Q*hs0 1p0d ^dP/P > @ `ppF F  B @`T:<dP/P $ @`p - @`T:'dp0 dp0   dEyp0 P x@Ly@Pb ` pl`BDUdp0 dd dPp` @[    l` \)DdP@ GD8@@p` 0Y `pK'?JQl`_dp0 F pdPp`  @  0 l` dp.dP4xp0p0d @p`dPD 0th xd@Pw p@O@ P [ @/  X),[P D)"p pO`@K 0S ?S0[Wg W p`@KO 0S0Sp`@KOP Q! QP[/R /R p` 0 ,, 0l`^pO| x@P hrPd@P`xPG@P%mD @l`BD [  R?o 2 1p`V oV`[OT OT R O 8 2/tpp` 0@t 0@ l`l`PPO@ P X ,[P D)"OH@ @R  0S  ?S0[W W [ R?o 2 1pPU _UP[oV oV P@v$$PePQ`P O @D<@p`OO  @  X,[P D F@)"aD<@I @Q . 0S% ?S0[W W xP@P`B<@DDT`V: PPe P0 R^P OPPP@`Q O@  X,[P2PP F@)"PPDO @Q  0S% ?S0[W W x@Pn`jBPPD @T`V:d@p` 0X , 0,Nl`u$l`$p`@KOP`@KpPd@Po'`pl`"B^< 0DxD40 U8@PPZDX*OO O@  X,[P  J@)"J<HO @Q  0S$ ?S0[W W xpP@Po¿`Pl`彿B<DZ:D P8 Xt4A,T`p`@KO,`A Vl`V`|)hP$$PQLQQ Q QQQ= \X AXP }s0 Aȋ0`+SFP )5p!0h0 S&5 GÊP @  %Dൊ(KЍDQPDP |PP ᫅P P/:8P T @08@5@Q @T<@ P T@wT<@P T T Ɽ|`r  ,hFod/%%sD%=s(%l&sss&hspL-@X`` R P  R sPWPppLA$pL-P@ `ᭂ   0@A p0H-@$'ha#cP P#s1 A % qP%  @+`N a  0{0 r@. - O-M SA*@P8 E  0A S!0"0`V& oV`[W W @P m p7D2BnP@ T:KH-P6 E8  0A S!0"0pW# Wp[oV oV `p@P MDpB+PO-MHpO\L0`V P@    D X @@P`V!P `0P@ @E XPP0P`P00 Y 剽DP2 Q# 0 QP@@ @E`` `XPPa `P0QR  PPYDRPPUKOP O- MR_*PO0R @  X,[PE)"`0oOJ p p@W!B pW( W`[W W @P`B7`0oOD  PU:KO- MR*@POO0P*X P@@ P[m @  X,[P J E@)"@0OOv@  X,[P . E@)"0@OOH @Q pWM W`[W W `@Pj`fB@DOO0)$`{@P L pHp~6x0@OODr P PPUU:KM-pM P@  O@ ` X ,[PE)"mG @Q  0S" ?S0[oV oV P`@P O``B DpM-pP@`P)W P@@P![e O@w P Xq,[P@D)"MO@ ` X ,[P%D)"G @Q  0S; ?S0[oV oV P`@P Og``cBDpp[@P N PJP~8wDRA @` @O-MP@`4P p\ p P P P p*!2 "x?PG  0$@G @R  0S# ?S0[W W `p@P O`pݺBDPKO-MPpP b@ Q/ P, @) @ & @*!2 "H  0$O>b^  !Y 0!S!  t0S0S 0S0S 0S0S 0S0S R:Q& Q2D AP [\`}@PY$PU(pPP~>vDRCQ  Q DA Q  0S% ?S0[W W `p@P_`pBKDK@KK@ KTO- M@p@T0Z*P_OO  @  X,[P k D)"1Pp_OJ @Q 0S& ?S0[oV oV @Po᧹`壹BP_OD@T:KM-p`7L @  O@ P X ,[P G)"F @Q  0S" ?S0[W W Pp@P OL`pHBD`M-pP@`7P)V P@@P![e O@v @ Xp,[PG)"MjO@ P X ,[PG)"PF @Q  0S: ?S0[W W Pp@P O˸`pǸBDB``K@P Ჸ @宸@~tDBP pO- M@@ T0*P_OP*X P@@ P[m @  X,[P  D@)"P_Ov@  X,[P  D@)"P_OH @Q 0SM ?S0[W W `@P`BWPD_O)$`{@P  p9p~sP_ODr @ @@ TU:KK-Pq R B  AP @@`D`P ίDBT D᷷P @PᬷH- N 40 008 $00 $ ( , 0H-@0Q$  @8 b0P 0HƄ HPU [ @?SP[1/0H-P@$ $Q$ 6P 0H蚄 ,PU [ @?SP[1/0H- @,BASA!(%$05Q 0P$HPU [ @?SP[1/00080PU DH000 00HPDUH [ @?SP[01/0H 0H-@0P@8 r0PHPU [ @?SP[1/p01/,0H0000 000 /H-@Q P[Q%P 1/PAAU: PU `V p6Pp 1/U PP  0 0͵9h$qӕsO-MT@P 0`ApCW'm | 2/pIFa47 PPL, H` D L 0 P K$P (P m( KPK2K 3(  ,0 0K P PPPBI P8P 1/8PDY:D48Q[/R1 /R Y H`P  P 帵P` U:H8P 1/@@T [ @?SP[ K1/K8 1/YϢusmsCssH-P@pP `[ P`p)ZP@H%P _1/( $ 4pˢ(ˢʢʢTˢL-@RN A!T!CT@ӘP [ P@T@@HP %1/( $ ʢ@ʢʢʢhʢL-P @[ xP@@HP 1/( $ ɢɢTɢTɢɢH-@pP ⍴㿴ppsWqWnW WL W GX X00tp`eP(㝴,f0nepppppp吴`|`4L-@` P 5TP XHP L<P A0P 4 X YL PY YYYYR  O-M@GP ppT@\ `&%1 @2@e$UEQaAT `F Q`T GLAQ :IAAQQ Q  `@GV 2XP @B P # Tp@HP L<P @0P 4,⪳(޳KH- GHi /M-@P 0p`PV @nU``$0PMM-@P f0p`PV @HU``pL-@H P 0P 0H %]RD P `V`DiG P P` H` P7 P `V`k, P P` H` P P `tV`m,P P` H`$P(P `VVpLpL-@P 0P 0H PݲP `6V`dҲHP P` H` ]òDP `V`Db帲P P` H`P᧲P `VpL蛲L-M@@[4 Q  K0gKM--M@QZ(ahP ,W!@P> ,Py8(1/pF;z `j塋 0P 0PW8(1/pFz `j塋ѲT 0폂40Q K Y@`8hssO-M-HM,P#@8T(P$ T*6PP( 0(,`@pP[``HQO 4`0`0VC C @@,[P4[PH[PTU*pP*PEP*Hb!/rAPAP P`*@0 @အUp Pm0PↁS 4` 00\p[Q,Dt&@ 40 @ R. U A008p4P  ! a8@[P 808e40 X:QD @E@@v0 A@∋ v 8!0 F8` PX5<hHP \[U!HP \[pHP \[`T \[@PUK  whnO-M H`p00SpppW (P1/,P1/0P1/ 00SW (Pn D HG&P Xaeb'pW' OPp 0`` 0 0@T 0 S  8 2/WP 0p`@PV @U``|i1 HjA@PUY  2/P@0@0 1k`$@ (@ Y 0 p(K(X,@@ @@@@@ @$@@7/`$p$@ P 1/(( P 1/1nk<8P00|i0P8P wY08p0D`p`3/HjPP, LHHFP HPiFP[  R? [[K<'sT0H-@8P X`e0H+a0茱O-M'pW' OPp0`` 0 0@T 0% S  8 2/WK/A@#P o/K-<I``@ Q  0S* ?S0[W W [ R?o 2 1@pW Wp[_U _U  W$$ KX%0H-P@ 0HpL-M@p @ {P P1/ P 1/P ݷP Pa3P Kp 0`6/8`K'h4 2/KpO-\M`oO$,(d0 $0p! v\4@ P   P P 4Y Ip` H1R![# "Q ?o 21P`V oV`[OT OT  V$$ `H  @Q  0S* ?S0[W W @@P` P`@ `B?D Pdp)PQ Ld lH D888`P\t< $0 %[E VV$0 [<Q @p P *$ \.$0  [([%$0  [$0  [ *V$0 ],PLy@PK @} pyB㵮D$@ D 0Pl[uh pP @@ P [ @ @  X,[PG)"ࣩ$0 $@  P [  \! 0\ P n@ @ @R $0 >.[P P @$pD  [  ~[P@U:$0  Z$@  [k[  g[  c[ S9r$@  0Z4p 'f-c$0  Z][(|QN K$@  0PZu! Y( P0 Qp @@ } 00Sx  0st$0  Z($0  Z"P P@$ [P@U: $U$0 \  0SR ?S0[W W $@  0jZ  A[ , 0aZ [2 R?o 2 1p`V# oV`[_U _U ,Pw@P%M7D R  8 2/($@  0PZu! 0Z p  P@ @  X ,[PG)"UH@ @R  0So ?S0[W W [_ R?o 2 1p`V `O oV`[_U _U PST$$xPPQ| @  @:T$ `$ P (  I  I( I V`R @  X,[P   F@)"ǧ H  @Q  0S* ?S0[W W ,Pp@POA`p@<Bx DtPV: PPl 0 Re @@  ( I V`R @  X,[P  F@)"V H  @Q  0S* ?S0[W W ,Pp@POН`p@˝B DPV:$@  0X  Y , 0X `.(  HK  |̬^hnL蟡O-M@@ <0 Z4|8Qa 2 X!ePU +T 2/PP@/ 2f`$ ( T 0 p(K(X,  $7/`$p$ P 1/(( P 1/2eL<HP`4@c 08 c@PHP S0<L 0`H3/Xd`lPhP PPPP|P`PwV^UtlPhP PPP PP`PP hd d0 0|UcPK84 40 0ksky[h.p0s=[hp0sO-MY @OO  PP  ? G|7 zGhaF@#P} Q@  Xq,[P G@)"ಥ P`U @  X,[P H@)"F @Q 0S* ?S0[W W pP@P@`P@B<hD`PnZqYEK|,ܚO-M@L P PH 90S0/pG@3P``0P' PZ#  V%U%EQ AQ  u   0Q P P XPKO-M P,cC@PU6R  2/P@8@0 d`$@ (@ $R 0 p(K(X,@@ @@@@@ @$@@7/`$p$@ P 1/(( P 1/cD@P88 ( K4P O(0p`@FPD" P  @y ` Xs,[P J@)"md00SX0W p0CO@0CpCqS1@K 0 0 R0 P$$pO@ ` X,[Pc I@)"(pO(P@ ` X,[PD EO4( KPm8P@P VQ0@p0L`p`3/PcbKDd sO-M4 P.bdB@PU8Q L 2/P@8@0 c`$@ (@ &Q 0 p(K(X,@@ @@@@@ @$@@7/`$p$@ P 1/(( P 1/bD@P884 ( K$@ P(@ P9 (`KO$P+ Q( A0p0BCqS1 (@ p X,[PJ)"hP4>  P8P@P P0@p0L`p`3/PaKP`sK-M PP @ p@@#P `6'@ PK%sO-M4 PUaB@PU_P  2/P80 7b@`$@ (@ LP 0 p(K(X,@@ @@@@@ @$@@7/`$p$@ P 1/((@ P 1/bD@P884'@TL PO ` PP@p@ @ P_Qp@W4 `@ 0pp  00S  0R  8 2/TP4'8 P @P O0@p0L`p`3/P`K\gsK-Pq R B  AP @@ `D`P ՘DBT DϘP (@PĘH-M@< PP7D`@#P + p@RRP pPeWV  V%U%EQAQ  yr vӐ  KH-` @PPuUW  V%U%EQAQ  Rr Oᬐ  H-` PuW @P V%U%EQAQ  /r ,ቐ  K-Pq R B  AP @@`D`P DBT D P b@PO-$M0Q PP pO@  ` E@803/p O:t@803/p Oi@ A0#!Q V{ @ PA!00S TU 0pk pOTU PA@  X,[P P  B@)"נpO  @ 00S ZT 0P.p OZP T P@P@  X,[P p  B@)"pOZ   @o `UgX0 Q࣡@Q wq 0KpL- P@`UUcPU ` eR p eRpLppLpK-P`oO@ @p X ,[PbG)")E @Q  0S ?S0[W W `p@P Oᤖ`p堖BܤDP P KA@K-Pq R B  AP @@`D`P eDBT D_P @PTK-Pq R B  AP @@ `D`P +DBT D%P ~@PK-0@ P Pp@P  X `V xt  G'P pV卷4[PT0H@ D K@hnO- M$[(PA\P@[T H`PpLPP P DJ\P[T@}< P @EP A `D  DAm48KK-@TX $(@:4<` PV p@ [$pH [R `U``(Ko 0 0}=h2psK-<p`@V P@ [$PH [Rm`T`` 0 0t  \ `HX@ZD\0P@PTD\0H Dq @ 0 qLQ TQV@W XQ @W `X`H@ TတQ Vp `` @PPp  J<$\4(L8NH@@\g* 1 p @W:`pSM 3oP:@ pWU H 倠 1  S: 0   THL0\PJH@ZLHP@PWTL0HH T1 @  Pp1<Q 8Q\Q 4Q S \p@〠WH \P0 HpPl \`e^DX DD0T*UH 5 oQQ :@‐TM Q + !& q`GAWHpD0P AQ!THpHp0AQ烓 @D0RL R T RV@ U X R @ U ``@Tတ VP PX`@\P0POdP$@P8PKH08pK0,`p`3/KPP\nTEresO-M40H P G@PUH  2/P@@@ . $@ (@ ~H p(K\(X ,@@ 0 @@@@@ @$@@7/`$p$@ P 1/(( P 1/@K0` 8P @ ,p 4 P0刐  L@C cL T$ (X T H` d*q PT*WQ 7oPp :@TW q PW>  a\  PD F@VH`\0P@PTH`\0 @qÈH` 0 qLQ TQDQ@PWXQ @PW>D@T PX p XD XD XD @P0Dp  N@$V8(F<LDDVp*1DV*ST p3oP :D `Vd 1  pSE 0   qLP0\TsF@WDpP0LT`P@PVP0L @1 T`Dp1@ R < R\ R` pS 8 R S \ \Dp`D\VX0 XzDpXv \pnDp gH`F0 I9H X0T:@PH ZG :oP :@0TI p PZ4p  Q`D E@U0P@PT0 @03p  LQ TQDQ XQ @PZH Dpp@T0PW p@\X0X4P ^bP$@P8PKF08pK0,`p`3/KXXgD\X`=rsO-M40P P H@PUF  2/P@@@ . $@ (@ F p(K⬧(X ,@@ 0 @@@@@ @$@@7/`$p$@ P 1/(( P 1/@K0` 8P @ ,p 4 P0  I@0CH0 àL T$ (X T D `*p `q T*WM 7oPp :@‐ TP H q`W9  \ P`D@XD\0P@PTD\0H Dq @ 0 qLQ TQU@`WXQ @`W PH@ Tတ `U p PP @H0Pp  N@$\8(L<HDD\l* 1 pDW:epSR 3oP:D pWZ H 1  S? 0   HL0T\X~D@XD\ TL0HP@PWD\ TL0HH TD1 @\ p1Xp@Q <QR 8Q S \pDWH\P0 HpP\P P0P8 %$P3PEX0T D O0D0X^L! 7S  P [04 SP LQ : Q(K( TTBD T:`ZD :oP :@‐ TF    qP`C@WHpDP@PTHpHp @炓  D LQ TQU@XQ @`Z qP@ Tတ `U P @\Pb4PH`P$@P8PKD08pK0,`p`3/KP\96;rrcO-M00P H@PUD  2/P@@@ . $@ (@ wD p(KⰇ(X,@@0 @@@@@ @$@@7/`$p$@ P 1/(( P 1/@K0` 8P @ ,p 4 P0/H- M00  e 0 Р>O-M00H P G@PU?  2/P@@@ . $@ (@ ? p(K@(X ,@@ 0 @@@@@ @$@@7/`$p$@ P 1/(( P 1/@K0` 8P @ ,p 4 P0刐  H@C cL T$ (X T H` _*qPT*WM 7oPp :@ TR q PW:  a\ PD =@VH`\0P@PTH`\0 @q炃H`0 qLQ TQDQ@PWXQ @PW=D@ TPP p XXD XD @P0  H@$V4(F<LDDDVo*1DVj*SQ p83oP :D `V_ 1  pSB 0   qLP0\T<@WDP0LTpP@PVP0L @1炃 Tp1D@ R < R\ R` pS 4 R S 8\ \D`D倀V8\80P DP\| TqD jH(pT ( $ `<0(K /H XT:@PH ZC :oP :@ TE p PZ0p  Q`D j<@U P@PT @炃p  LQ TQDQ XQ @PZH D@TကPQ @\XP0P XP$@P8PK@=08pK0,`p`3/KXD\\/rr,9O-GMD! XKNO@PU=  2/Pppp 0 !N@pp= 0 `(X,pp ppppp p$pp6/@`pP 1/P 1/!NdKhP QpKp 8$ Pt x DMO@PU<  2/PpXp0 $N@|pxp< 0 `x(X,pp ppppp p$pp6/@|`|pP 1/xxP 1/$yNd`PQXXDxK 1YXP`P <0`p0l`p`3/MD" _MM@PUi< t 2/Px@1 "?N`@\`X`T< 0 pX(X,`` ````` `$``7/@\p\`P 1/XXP 1/"NPxxD@ 4 X(H@`[TY <@@P9,[P4[P([Q0[Q8P9 D 803/\`P \\&Xp@@DP*AA!.rPP P* ZPD T AXW <@ f@@\`[TD,PH@`[TY P8@P:,[P4[P([Q0[Q8P: D 803/\`P \\)Xp@@DPe*A\UX@<@`` \p[TX D8@PNA!X!XP [  PXSr8@4@T@T[Xp @hd吨P`X㢐DI$ P TPhl $ Q*$p h5r@ r@$K;$$p P 1/XD0H4LP /RXHL@T [ @?SP[1/ἎD-XVxPP 80p0`p`3/ID% IB@`V8  2/`PXP/ %J@|PxP8 0 px(X,PP PPPPP P$PP7/@|p|PP 1/xxP 1/%^Jd``XD@WxxWXP`P `80`p0l`p`3/mIpPhP O80hpK0\`p`3/XK\IKP[ U1/t p ᑰNtpP U1/T P 8=`:0ll- Wr*3T$$X'`r$H-p@P`ဏ$e0 0F P@0#pL-`@Pm(e0 0,@p#O- MP$@[  pp(\H[P6  P   Q `Q04`0P 06/Q r(\p[@PP [ xP@@KHͯP U1/( $ ܯ4-O-M@LpH`V# P |P ܎ Q  (P`WPKO- M@Ap<`V# ,XP@P|P 㨎 Q 'P`WPXpT`V x|P ぎQ 'P`WKp//M-hM@ p刀4@ pGcP0$8(< D@@@TQL`PH*X\4A P B@s (0$Pp`pp@VPP00 0 p F` V*$( A,,``Q 4PdpA,``Q$`KO-MPD[@Ѐ\1pH`[V/ `P\p[@ $Z(  0oV[H 0STDDV-ðVKO-,M@ `$ @wDR@UG pP? @pp 巀Y  X*P P * P  `V㇍`ᰁ`P $$@T:PU*0PXM @P@pU*wP' `EP!* DB!/rAPAP P@!*> PအwpV  :PAW J0P P  R  RX @T@@  @ @@*P =@T ``@P:P P`P @@`PU ،PP P ! @T ``@ P:PP`P @@`PU 㢌PP P ! ѣ@T ``@ P:P P`P @@`PU lP P P * @T ``@P:PvP`P @@`PU 6PP P Q4 e@T ``@#P:PB"P`P @@`PU P"P P ' /@T ``@+P:P*P`P @@`PU ʋP*P P 0 @T ``@3P:P2P`P @@`PU 㔋P2P P : â@T ``@AP:P@P`P @@`PU ^P@P P y @T ``@BP:PrAP`P @@`PU (PAP P C W@T ``@CP:P>BP`P @@`PU PBP P   !@T ``@DP:P CP`P @@`PU 㼊PCP P  @T ``@FP:PEP`P @@`PU ㆊPEP P  ൡ@T ``@IP:PHP`P @@`PU PPHP P k @T ``@JP:PoIP`P @@`PU PIP P 5 I@T ``@KP:P;JP`P @@`PU PJP P  @T ``@LP:PKP`P @@`PU 㮉PKP P  ݠ@T ``@NP:PMP`P @@`PU xPMP P  ৠ@T ``@SP:PRP`P @@`PU BPRP P ]' q@T ``@cP:PkbP`P @ꍞr@`PU PbP P & :@T ``@kP:P6jP`P @Νr@`PU ԈPjP P # @T ``@sP:PrP`P @r@`PU 㝈PrP P - ̟@T ``@P:PP`P @br@`PU fPP P  @T ``@P:PP`P @굛r@`PU /PP P J ^@T ``@P:PbP`P @r@`PU PP P  '@T ``@P:P-P`P @br@`PU PP P  @T ``@P:PP`P @껙r@`PU ㊇PP P  ๞@T ``@P:PP`P @r@`PU SPP P n @T ``@P:PP`P @Rr@`PU PP P 7 K@T ``@P:PYP`P @ꋗr@`PU PP P  @T ``@P:P$P`P @Ȗr@`PU 㮆PP P  ݝ@T ``@P:PP`P @r@`PU wPP P  ঝ@T ``@P:PP`P @PP P Y m@T ``@P:PP`P @͉r@`PU PP P " 6@T ``@P:PkP`P @ r@`PU ЂPP P  @T ``@P:P6P`P @;r@`PU 㙂PP P  ș@T ``@P:PP`P @or@`PU bPP P } @T ``@P:PP`P @꧆r@`PU +PP P F Z@T ``@P:PP`P @ۅr@`PU PP P  #@T ``@P:PbP`P @r@`PU 㽁PP P  @T ``@P:P-P`P @Pr@`PU ㆁPP P  ൘@T ``@P:PP`P @ꋃr@`PU OPP P j ~@T ``@P:PP`P @ǂr@`PU PP P 3 G@T ``@P:PP`P @r@`PU PP P  @T ``@P:PYP`P @>r@`PU 㪀PP P  ٗ@T ``@P:P$P`P @{r@`PU sPP P  ࢗ@T ``@P:PP`P @r@`PU <PP P W k@T ``@P:PP`P @~r@`PU PP P   4@T ``@P:PP`P @9~r@`PU PP P  @T ``@P:PPP`P @x}r@`PU PP P  Ɩ@T ``@P:PP`P @|r@`PU `PP P { @T ``@P:PP`P @{r@`PU )PP P D X@T ``@P:PP`P @{r@`PU ~PP P   !@T ``@P:P}P`P @Zzr@`PU ~PP P  @T ``@P:PHP`P @yr@`PU ~PP P  ೕ@T ``@P:PP`P @xr@`PU M~PP P h |@T ``@P:PP`P @ xr@`PU ~PP P 1 E@T ``@P:PP`P @Ewr@`PU }PP P  @T ``@P:PtP`P @~vr@`PU }PP P  ה@T ``@P:P?P`P @ur@`PU q}PP P  ࠔ@T ``@P:P P`P @tr@`PU :}PP P U& i@T ``@P:PP`P @3tr@`PU }PP P % 2@T ``@P:PP`P @msr@`PU |PP P & @T ``@P:PkP`P @rr@`PU |PP P  ē@T ``@P:P6P`P @qr@`PU ^|PP P y @T ``@P:PP`P @qr@`PU '|PP P B V@T ``@P:PP`P @Ppr@`PU {PP P   @T ``@P:PP`P @or@`PU {PP P  @T ``@P:PbP`P @nr@`PU {PP P  ౒@T ``@P:P-P`P @mr@`PU K{PP P f z@T ``@P:PP`P @.mr@`PU {PP P / C@T ``@P:PP`P @hlr@`PU zPP P   @T ``@P:PP`P @kr@`PU zPP P  Ց@T ``@P:PYP`P @jr@`PU ozPP P  @T ``@P:P$P`P @jr@`PU 8zPP P S g@T ``@P:P P`P @?ir@`PU zPP P  0@T ``@P:P P`P @hr@`PU yPP P  @T ``@P:P P`P @gr@`PU yPP P  @T ``@P:PP P`P @fr@`PU \yPP P w @T ``@P:P P`P @3fr@`PU %yPP P @ T@T ``@P:P P`P @~er@`PU xPP P   @T ``@P:P P`P @dr@`PU xPP P  @T ``@P:P} P`P @dr@`PU xPP P  ௏@T ``@P:PH P`P @Hcr@`PU IxPP P d x@T ``@P:P P`P @br@`PU xPP P - A@T ``@P:P P`P @ar@`PU wPP P   @T ``@P:P P`P @`r@`PU wPP P  ӎ@T ``@P:Pt P`P @+`r@`PU mwPP P  @T ``@P:P? P`P @b_r@`PU 6wPP P Q e@T ``@P:P P`P @^r@`PU vPP P  .@T ``@P:P P`P @]r@`PU vPP P  @T ``@P:P P`P @]r@`PU vPP P d @T ``@P:Pk P`P @I\r@`PU ZvPP P ul @T ``@ PP6 `P @[r@`PU $vP P P ?x S@T ``@!R: R R` R @Zr@`PU uPP P x @T ``@!R: R R` R @Yr@`PU uPP P x @T ``@!R: R R` R @'Yr@`PU yuPP P t ਌@T ``@APP] `P @aXr@`PU CuPAP P ^t r@T ``@!R: R' R` R @Wr@`PU uPP P %t 9@T ``@BPP`P @Vr@`PU tPBP P  @T "!``@!R: RR` R @Vr@`PU tP!P P  ʋ@T #"``@!R: RR` R @AUr@`PU btP"P P } @T $#``@!R: RNxTrR` R @@`PU )tP#P P D X@T %$``@!R: RSrR` R @@`PU sP$P P   @T &%``@!R: RRrR` R @@`PU sP%P P  @T '&`Rr`@!R: RR` R @@`PU ~sP&P P  ୊@T '`VQr`@!R:QqQ`Q @@`PU EsP'P P ` t@T )(`Pr`@!R: R:R` R @@`PU sP(P P ' ;@T *)`Or`@!R: RR` R @@`PU rP)P P  @T +*`Or`@!R: RR` R @KNr@`PU rP*P P | ȉ@T ,+``@!R: RR` R @~Mr@`PU `rP+P P {| @T -,``@!R: R_R` R @Lr@`PU 'rP,P P B| V@T .-``@!R: R(R` R @Kr@`PU qP-P P  x @T /.``@!R: RR` R @Kr@`PU qP.P P l @T /``@CQ:QQ`Q @HJr@`PU }qP/P P p ଈ@T ``@CPP`P @Ir@`PU GqPCP P b| v@T 21``@!R: RPR` R @Hr@`PU qP1P P ) =@T 32``@!R: RR` R @Gr@`PU pP2P P  @T 43``@!R: RR` R @%Gr@`PU pP3P P  ˇ@T 54``@!R: RR` R @PFr@`PU cpP4P P ~ @T 65``@!R: RtR` R @~Er@`PU *pP5P P E Y@T 76``@!R: R=R` R @Dr@`PU oP6P P    @T 7``@!R:QQ`Q @Cr@`PU oP7P P  @T 98``@!R: RR` R @ Cr@`PU oP8P P  ஆ@T :9``@!R: RR` R @IBr@`PU FoP9P P a( u@T ;:``@!R: RaR` R @Ar@`PU oP:P P (H <@T <;``@!R: R*R` R @@r@`PU nP;P P h @T =<``@!R: RR` R @?r@`PU nP<P P  ʅ@T >=``@!R: RR` R @?r@`PU bnP=P P } @T ?>``@!R: RR` R @E>r@`PU )nP>P P D X@T ?``@ Q:QOQ`Q @m=r@`PU mP?P P    @T ``@ PP`P @p@`PU mP P P  @T BA``@!R: RR` R @=p@`PU mPAP P 8 ౄ@T CB``@!R: RR` R @:r@`PU ImPBP P dX x@ K 7.4 X/YB @p`Z vPP* P :r PU mPaP P   P$/@T nP l zK``'`[````+`_``I9r``.`b````2`f````:`o````C`x````L```` `U`t8r```(`]````1`f````:`o````C`x````L```` `U7r````(`]````1`f````:`o````C`x````L```` p`T````(`]````1`f````=`t````J````&`]```5r`9`p````K````$`[````7`n````J````"`YB*5r^4r3r2r1r1rC0rr/r.r-r-r;,r:r9r0H-M@ P P|R k ᝔(RP ,k P PkUP klkK0lHLH- Hf /0H-@ ]PDRHBSkPBOkPBKkPHBGkPLBCkPB?kPB;kPB7kPB3kP B/kP$B+kPhB'kPlB#kPBkPBkPBkP00H-@ \PDRHBkPBkPBkPHBjPLBjPBjPBjPBjPBjP BjP$BjPhBjPlBjPBjPBjPBjP00H-@ w\PDRHBjPBjPBjPHBjPLBjPBjPBjPBjPBjP BjP$BjPhBjPlBjPBjPBjPBjP00H-@ ,\DHrjP$PkjPPdjPHP]jPLPVjPPOjPPHjPPAjPP:jP Q3jP$Q,jPhQ%jPlQjPQjPQjPQ jPQ00H-@ [DHiPPiPPiPHPiPLPiPPiPPiPPiPxPiPq QiPj$QiPchQiP\lQiPUQiPNQiPGQiP@Q0pL-@HP  00S00S HRDQPP`P iP iH`HPV [p 0 0eZTgNo$rpL-@HP  00S00S HRDQPP`P RiP NiH`HPV Zp 0 0/ZSgvo#rpL-@HP  00S00S HRDQPP`P iP iH`HPV Zp 0 0YRgo"rpL-@HP  00S00S HRDQPP`P hP hH`HPV wZp 0 0YRgƴo"rpL-@HP  00S00S HRDQPP`P hP hH`HPV AZp 0 0Y9Qgo;!r O--`SO*@@  >p; G @R 0S+ ?S0[_U _U @P_Y` `YB5hPD`pP@T:K谑ĐK-PE @R  0S ?S0[oV oV @@PoY p`@YBgDP P KaxY H-R *@P`p U:H-   X=Ng?m K-B@ @R  0S ?S0[oV oV P@PoPY p`PKYBgD@ P K3썠 O-MR2*`@PO4$ @ A0#!Q @ p X,[PហE)"ebPU:KH-   AXLgm K-PS%*@p4` F @3R!Q P P  1/ @T:脸 pL-0A`@PPCP!  P   p R #Rp /O    N#"  00P  00$$K-P `@FP'*A AA!.rPP P@*fpF AV  [Y@ K @p  M-@R *0`p 8P5/W0:M-@R *0`p 8P5/W0:0 8/0 8/K-p@PzP y| A rpo` l`i*!2 "?0@ Kd/O-M`@PyP syp + =`:` 7` 4p *!2 "x   0PN 0KOꐄ///0H-R0@ O P(P Ȟ@0P,PD)"0HM-AfQQqуU@ePP + 1/\ePP JQ  0 o 0H-M@L( P 0 K0yO-,MP PP;<` 0S"*p  8@4/W0:B`3P0@@X$@@@(@HHHHHHHHHHH@@@LLLLLLLLLLLLLLLLLLLLLLLLLLLLLpl,l@l ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````,   ````````````  ``````````````   h                           X 0`@SG*p  8@4/W0:< 0`@S7*p  8@4/W0:,` 0S(*p  8@4/W0:` 0S*p  8@4/W0: 0`@S *p  8@4/W0:K 0 8 KO/ 0`@S*p  8@4/W0: 0`@S*p  8@4/W0:`0S*p  8@4/W0: 0 8p7/ 0 8p7/ 0 0`@S*p  8@4/W0: 0`@S*p  8@4/W0:`0S*p  8@4/W0: 0 8p7/ 0 8p7/ 0`@Sq*p  8@4/W0:f`0Sb*p  8@4/W0:W`0SS*p  8@4/W0:H `0SD*p  8@4/W0:9` 0S5*p  8@4/W0:*`0S *p  8@4/W0:  08p7/+`0S*p  8@4/W0:`0S *p  8@4/W0:` '4 2/K`0S*p  8@4/W0:`0S*p  8@4/W0:`0S*p  8@4/W0: 0`@S*p  8@4/W0:P `p  08@4/  8@04/p`W:P 0`p  8@4/`0V:`0S*p  8@4/W0:u0S *p  8@4/W0: 0`@Sb*p  8@4/W0:WC0S *p  8@4/W0: g0`@SD*p  8@4/W0:9J0P  S *p  8@4/ W0:`Y#* p  08@4/W: 0`@S*p  8@4/W0: 0`@S*p  8@4/W0: S!  +Pr+gm K-`Ma@`PU  2/Pp0p: d$ 0 %Kp , p s% K$0K0K ` K (0X  0,pp ppp$p6/`p P 1/   P 1/8D` 00 P P<0P8PK008p0D`p`3/K9qrDr&  R/!  R/!P QQ //P Q/Q///M-Mp@rP q a耠p}PzPw*!2 "?@  P ? 0Ke?//0S/! /@⇯ 0S/! // / /K-Mp@PqP 2qp A p` `p*!2 "xp5/`PVQ pmqP q`%(vן ҟ ͟ ȟ  v洟 &ᯟ Q   8O00pWS  0tp  S   0EKcbH- zHҮ M-M%@H 4b`PU  2/Pp0p1 Tp p  0 ` K(X,pp ppppp p$pp6/`p P 1/   P 1/T}D`@8P<00P`( (AAR+ A!$Q $$ pQ[Q Q P 1/P[P P pl l0 0M0P8P A08p0D`p`3/HK2qq"g&oq@ٖH- @ՖH- , //0H-@P P塉UP P噉U P P呉UP P剉UP P偉UP @yT0Q/0H-@P |\0Hޭ Q/0H-@P0HЭ /L-M@D  \,P V\KHVVL-(@P D\UL-M@H  20P ,\*\KUpUO- M@8pAPOP p$P @@ ` & $DQP0@oS  p 07/,,f Q:P- %$P(4  V'R P [ 4RP W : RN AoRpp U C ` %`Hp 0`7/00K^qQ Q Q R     YH-   ML5g7mM-4P@`L(p0W0p5T!#, AQ * 㧅pP" (p# pR(#p,Q* ㊅pP (p(p L 0 0Kg}oqH-q`P@W>Q q^# P.Q qN# PRN#84 40 0K$ 0 0Kg|oqg|otqM- M@PPH{ ރp4`RL(0P05, R* PP (P(. @O-M@pgP tg`<AP ?@<@9@ 6`*!2 "h  0ᗯO>c_  !Z 0!S!  t0S0S 0S0S 0S0S 0S0S R;Q' Q3F AP [`P}@P]$@fE(paES@~ODBAKQ  Q FA Q  0S( ?S0[W W Pp@P O#E`pEB[SD`LPK` K  KO<<=O- M@` V0i*@OO @OOVpS @  X@,[PdF)"+N@OOG @Q 0S+ ?S0[_U _U @P_D`DBR@OOD p P` V:K4;O-MP`5S O@ p  X ,[PE)"MF  @Q  0S( ?S0[W W P@@P @D`@0P8P P08p0D`p`3/HK7qfbIoMq@H- @H< ; K-MB@PU&  2/P@0@ . l@h@ phX(X,@@0 @@@@@ @$@@7/`lpl@P 1/hhP 1/0K ` (P 0 p $ pP4 8 `P h` 0$p( lpL A@CQ@|P*h4` $ (8 < C @LT0@HP#TP  DP@TT*X\4``PU 8pKh@`}0 p P`U0P(PK0(pK0`p`3/Klq.qO-TMA@PUo  2/P0. p$p (p _ `(KT(X,pp0 ppppp p$pp6/`$$p P 1/((p P 1/0@`8P0D<P $ ( @T*(KP`p 0@T:0P8PK08p0D`p`3/Kqtq0O-M@ Rh*( RM 2$oQ!( :0 p0 0S U p$ !0( 1q `PAW 0 0ASR ( `PU3 p C0# $ !( (U VV V( RPP0  0R 0 p$01(0U (Q ,P0K,KM-(MP@ P P ddxxKB`3P 0`ppppppppppp                             \\\\\\\\\\\\\\p X \` (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((    ((((((((((((  ((((((((((((((                            x    0A  0 0KM/0A  0KM/ 0 0 0 0 0p7/ `'4 2/K 03/ 03/  03/ 03/@Q* 0R S     S0   Q:  ` 0p7/ 03/ +0n (0@Q* 0R S     S0   Q:{@Qv* 0R S     S0   Q:]PZ `p 03/ 03/p`W:FPC `p 03/p`W:5@Q0* 0R S     S0   Q: C0p7/0Ag  pDQ  080P8PK08p0D`p`3/K\ T\U٠~q qK-(M@(Q (P[U @ Q i "^`VP K,P! ,p[W @` V Y  n`"~PUVa 5P8Q aKO- M 0QC [05Q 0`[V7 p[W0 P [PA[[U 0 P [[ [Zp[WP@a P K4Q [05Q9 4`[V p[W- @ [PQ [1[T 20P [[ [Zp[WXDaK 0 06 f'o qO-$MP p P%A[T `7 "2pR t WA"  "5%A[6p|1[S{  0a[Vf R1@ `6o\ O   -  p pqW pP pOp  @Opp BsR!p  `9 @ RPPp /R [oV oV p0  PPZ\   R|KO-,MPp`  $A[T `` @[X  `8"o 0aQ @) 0S  0S 0@P  0 @TR @@ @pp00S@ @@0S TP  @$ FR($P P Q Q 9 @ `Q   /R [?S ?S ` V q `P"[X 5$@ "”0R 4 S@$@"  "5% [q5$`V=KQ/0H-@P0HX 0H-MP0Dt  K0  wK0? @R0 00@O09STPU0K0  0O  C"0.0@@0@*@0 @00S0^0 K0 D 0 B#P oK00@S@^@ @@S ? K0  L41f3mM-p@VP V a^p[PXPU*!2 "?@PP00 O0pPW) P p0p0  BP B#Q oRp0 W S PW ? 0M-@VP !V @@@*!2 "PP  @OO `PV)P 0` AP  A#Q oR` V Q PV p%VP U`%v揄 ኄ ᅄ င  vl &g{ Q  800pWS  00U  S~ z  0*PK-M@ Q:A WP U} E W@BqaE A qp  0@BCQAU*RV A WPw U P``Vu V*Aq `Q`V Vv*A  A "U `PEJUP Q     P 0  EB 0 P AK A>K P``V V4*wA&1U  G` B"`  W !Y }AppK&1U  G` B"`  WK-@P U 0;` V F U@BQqF A 1 # PppW W"*A'!qV0 0E0C#! 00U 1Y0  A0K-@`V p<P U*A U@  p@  QppW W(*@ppV!!q 0E0C#!0  U` ! V  @p@CK-@P U 0;` V F U@BQqF AG 1 # PppW W"*}@'!qV0 0E0C#! 00U 1Y0  @0K-@`V p<P U*A U@  p@  QppW W(*5@ppV!!q 0E0C#!0  U` ! V  4@p@H- MQn@D@  ( @SP HS6?@  P?8 KK a @pPP*!2 "?@    P ?  0K  0fm0K-P `@P(*B A!/rAPAP P@*u?p0AV   5Y@ K @pO-MP[U]  p[WpAP[Q[bV `RPQRQ[QP[P `p[WPS[%# P[pP@0 0`R  d V  "5% 00UKO-MP`  P`EE P `EP7Qڠ/@9/ㄡQ !00  M0 S !\qpW:Xp pPS U@ R:AX`@P P @ @T : T+<PZ  0Q0@ A0@ SRpPU:pP7S UpQ`V:PASpAT P T Q0pR0pW* 0pPp ` PVZdEDQ[O` P P V' P\0US: V ` Q \0VpS:`U0VUF0E V{ `PQ 0S:PI RQ0pW: V:PX SZP`PK$$,HlP[ U0^0 ^P2  PP Q   @TPpʼp|`W*PA@Ap@qRP0 R:0 PK E0KO 0EuKE 0KQ U0S* 0EKH-0@`\@ SPS`UT" V P000p0p0\@"@PU@3`pW`3TV# Pp00p00 R `P P@S*@0 S`PU*0 `PM-p0`@P0S P0p0SP p0Pp0S U  Q:WP Q: W R*p0 O-M p P@U(0`@P`@PU! 0@P0p0S& `p0`p0S$ p0 #T T 0S:0`V:W  `V:W R: KO- MA0P@P<PlPX U0[p  P7 P pP0Q%@0S *P R0 0PUἀ ʼv X*B@ BpP崁 P\@`$ P@" E 0 0E E  0 /Q U0S* 0E@oBK   R[/ ! Q[/pL-0P0Q3N 0S? ?S0[oV7 oV  !0c@PU _UP[oV oV 0 S*0L C00 Q N 0S ?S0[oV oV [pH-P0`3EQC 0? W`[W7 W  D!@dP oV`[W W p W*pL GPP Q c C0 W`[W W [L-0@̠Q \ @0n0s"Q*1s \ Ao0H-0@à0Q \ Q0n0"Q*1S 0\ o00O- MP ` pAVp"W V  2pP*`P`` X`h`P UW 4V`2 KO9wm(lsqgsq^sq[g 1S/ "P /L-@A   @(НO-M-(M` P$p(0t GC `@B@T `\0[ FS O @@\0 [S(@@@C `  0@ ZV`M@P Vp p0 0TE0]%0 R)P&a  (KЍ؟Tqqbqq:qqqqCqqH--(M`pP@ oP PV|P d@ F0Q P -1 A=  q0+S^ p\P (9pG` H y @  p 803/dP   qD@0+S K @@Y@@@ןUpq̝t֟Ioq0H-200S200S     00S S S0S& S1  qE0S2 S, S% 0SQQ: 0S70   <<<<0l @ ` :^0\* P P P P0W PU 0 0 0 0F  q <  q  00S 0S  ,,,,0 "@+@r 0 @  +p0 0f84  )@@@@j@? ֟֟flpL--M`@\P (+C8`FP!  X x @   803/KpY@@@ɝK--(M`pP X6 P`\P (}8`FP H y   p l 803/X`P PP0@ 0@T0B (KY@@@ ȝџjqjqijqK--(M`p@ T.." P`\P (%8`FP H y\   p  803/(KY@@@Ɲ @ / p/ j@  /H- Hk @ H- @ Hc O-M9;ET& G/F@T !!!!ࡇ!* PDp X`:Ā`` P Z P P W P:ᬀP PZpP A!$ P RzD p!`r /PP,  㡣00@Pt@uP@DPUsUj%3VPPuPQPFQ0p S V00J6S  R:PpW GP X`:H`` AT @T P U P:3P  P PWP!7z@W@*   A * *J ꇐ`W:G``     Q1 pG X*```P  @P G P:@ K N  '릩f1f3l0H-@Pgc@^U XT @ @ @ @00A}cq@/K-p`P @ 0AthC PHW^ 4Kzvcq%cqEcqTcqZcqccqdcq_cqkcqlQcqVcqpL-@\hTQPcDa`_\ZWU RPMKHFCA>< 97$42(/-,*(0%#4 8<pLdeqWeqfdqO-M-MP @`@,( p @ ` @ 0@0 G p0+S p@ 0@xp`P@4(  0@ ~p@@〠}{xvsqnligdb_]Z W=0 =0 p=0 T= 0 }8=0 u="0 m=*0 e<20 ]< 0V\0 _>0 W>0 O>0 G|> n`q-`q`q.`q_q`q`q`q`q`qV`q_qM_q`q|gf_q5?q.?q0?q2?q=?qR?qZ?qk?q?qv?qg?q\?qO?q@?q5?q/?q-?q)?q#?q+?q&?q*?q8?q(?q?q?q>q>q>q>q>q>q>q>qu>ql>qc>q[>qR>qJ>qC>q<>q;>q5>q0>q(>q>q >q>q=q=q=q=q=q=q=q=q=q=q=q=q=q|=qr=qf=qR=qH=q4=q =q=q=q=q =q=q0 8?0 8 0 x8A0 \8B0 @8C0 $8D0 8E0 w7F0 o7G0 g7H0 _7I0 W|7J0 O`7K0 GD7L0 ?(7M0 7 7N0 /6O0 '6E0 6Q0 6R0 6S0 d6T0 H6U0 ,6V0 6W0 5X0 5Y0 5Z0 5[0 5\0 h5]0 L5^0 05_0 5F0 4a0 4b0 4c0 4d0 4e0 wl4f0 oP4g0 g44h0 _4i0 W3j0 O3k0 G3l0 ?3m0 73n0 /p3o0 'T3G0 83q0 3r0 3s0 2t0 2u0 2v0 2w0 t2x0 X2y0 <2z0 2{0 2|0 1}0 (KЍF7q57q"7q7q7q!7q#7q%7q7q 7q7q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q6q|6qw6qj6q[6q]6qY6qY6qQ6qT6qL6q>6q:6q?6qK-`@p ` NPX N$ N Nqq p N NQcJ M MYJ M MNJ Mx MS  T MW^ 4 KM?lAqAqlAqtAqUAq;Aq AqAqpL-P@ MJa `MJ M J M J MI MI MI MI M I {M$I tM(I mM,I fM0I _M4I XM8I QM<I pLHM8eolfO-M-MP @p@3 @` p'M "M @A⤐ M Mt p M 0 Aȋ0M+S L\ LL L @RI( LJI  LBI L:I L L - L@& L L L L  L L L L L L yLّ rLґ kLˑ dLđ \L WL,0 $,0 ,0 , 0 ,0 ,"0 l,*0 X,20 D,@0 0,A0 ,B0 ,C0 +E0 +H0 +I0 +J0 +K0 +M0 |+R0 h+b0 T+j0 @+r0 ,+0 +0 +0 *0 *0 *0 *0 |*0 v*0 px*0 jd*0 dP*0 ^<*0 X(*0 R*0 L*0 F)0 @)0 :)0 4)0 .)0 ()0 "t)0 `)0 L)0 8)0 $)0 /0 /0 /0 /0 /0 /0 x/0 d/0 P/0 \-0 8H-0 24-0 , -0 & -0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 l,0 X,0 D,0 0,0 ,0 ,0 +0 +0 +0 +0 +0 +0 |+0 h+; T+4 @+4 ,+4 +A> +4 *B> ~*!4 x*"4 r*#4 l*$4 f*%4 `x*&4 Zd*'4 TP*(4 N<*)4 H(**4 B*+4 <*,4 6)-4 0).4 *)/4 $)C> )14 )24 t)34 `)44 L)54 8)?*od>qH>q7>q l>q=q=q=q=q=q=q=q;q;quqvqqqqqqqqqqqqqqqqqqqqq$qqqqqqqqqqqqqqqqqqqqqqqqqqq64 (74 (84 '94 ':4 ';4 '<4 '=4 '>4 '?4 l'= }X'A4 wD'B4 q0'C4 k'D4 e'E4 _&F4 Y&G4 S&H4 M&I4 G&J4 A&K4 ;|&L4 5h&M4 /T&N4 )@&O4 #,&E> &Q4 &R4 %S4 %T4 %U4 %V4 %W4 %X4 x%Y4 d%Z4 P%[4 <%\4 (%]4 %^4 %_4 $F> $a4 $b4 $c4 $d4 $e4 t$f4 `$g4 L$h4 8$i4 $$j4 $k4 {#l4 u#m4 o#n4 i#o4 c#G> ]#q4 W#r4 Qp#s4 K\#t4 EH#u4 ?4#v4 9 #w4 3 #x4 -"y4 '"z4 !"{4 "|4 "}4  (KЍO3Gqqqqqqqqqqqqqqqqqqqxqzqwqqqq{qqqqqqqqqqqqqqq}qyqsqqqoqnq`qaq\qYqSqOqJqLqPqTqOqFqCq9q7q4q5q8q.q)q qqqq qqq%qqqqqbninqqqqqnqqqqqqqqq{qtqlqkqdq_qXqEq5q$qqqqqqqqq'q1q/q&q'q#qqqqqqqq*q1q8qFqNqVqeqqqnqmqoqoqrq~qqqqqqqq~qwqqqqqqqqqq_'qH-MQ@P[P ``hV P 1/Pp`!p03/0p!3/@KxV OQ/o`P/0H-3 RPO @P0P00 /o b/R 0pL-C\ _OR @`P oIa/ R  ) @ @@\@ppL-8e 00@0^0K 0)Z`  $0+(0,0004`8@qpL-MP@,P  ` %04P  ` %0KppL-MP@P; `   PVbP  0 0PbP )0R` 0FKp$ 0 0^-9fnq}8f2nNqO-$M9;ET& G/Fp @ W!!!!g! G V:,kK @@ P PUPU P PxX P:k P  P X PV:j P AT @T P X P:j P  P P[@ !zW@*A   A * *#Z@PW:GPP  i @  Q1N) pG V*j P   P G P:j   @0De ?OoOTpO 0` P`@p Y3* Y7* 100Y? P@ !<<<\\\\<<<< P PP P% P PPP PW WWoW Wk WgP P PPPPPC3\ _O!0@0P0 /oP b_O/R W\) @W 0 P 8 PA Y: @P Y*U!*P `P @pP 0 W W W`XNlh  PPK 0 01f6nq1fϔl0H-MP@TQ K0  0`K0H-MP@R RPKHp`0 iV KHPKHPKHPKHPKH BP'@Pw{ 80KPKH PKH`,P 4PKH(PP ? P;? 90  t R R R R R R R RQKHlPKHPTQ K  0K-M @  `V Pp 0mp 0b KQ` P -0EKK-M`P  02`P!p@ Q   Q0wQ @pT `y  0KO-4M Q*@ cp0  p`W  0p>`P pE  +0  ,PNT `B P3 =P:@2P "2  .P ``@`@`@ ``  :!" "( P 0P ,P K  gA)fCl0H-MP'@P @ 80WK00H-MP@P  P  90<K0pL-MP@P0 `0V KpLC0 ,0KpH-M/`@Px 10`" PP᳂p^ 20 R 30KO- M@pT! ` ET6 G?FD!!!!W U0 :f0 0 PY3X`< ?Op`0` oaQKPPQ P :pf 0 PYH-@P`p/" F@a Q05  B    P`F $pL-M@P PPS`A 40`"RA (0`RA 50` RvA 60`RjA .0`R^A /0`SRA '0`RFA 00` p`PZ2 OpPc O 8 2/P O@  X ,[PSE)"p P &p` P W pV O (8 2/PKK-`\PVPp@@O@  X ,[PnSE)"5P@  X ,[PWSE)"P@  X ,[P@SE)" 0 0KO-Ms0POU @`VpP W  (8 2/W0pCW P`V@p T  8 2/TKO-M@\0 Q PZ\ P  2/@P9 ` Yp0 `OpP O 8 2/P O@  X ,[PRE)"h pP T` p TV O  (8 2/pKO-Ma@CPP pO 00S 0+R  8 2/\PP @K X,[P4RH)"KOO- M`\@0QPYo p P 2/pW`2 XPE P_Op   (8 2/P- @( P X",[PQJ)" 0   0?O    (8 2/ pP VW /O   (8 2/PKO-$M ` A@  R  2/  1 0- pჾP @4$1//  @0KH@ h;;`@++b7; c6;a+N2+r+@$c+N+@  2+A%K3E;R$+b  c W 0PP KY 㚙?4A0 A@@Ag2fp1 A;@: @+ a+b;*c  @`+N r + b N / 㚙?4A0 A0+C @  @+a 1 A ` /ApL-PPpP!\@P ~`D@ 2/P (s@ < ` $Pg <03/pXDpL-PPp\@P R`D@ 2/P (G@ 8 ` $P; <0pL/pCpL-PP'P!\@P "`D@ 2/P (@ @ ` $P  <03/pB H-  Hh @ H- @ Hwh M-P@ pP 0pp p$p ,p$(p0P 04<3l 0`K<`3 0,a?,(r 0Q Q-"4pХ.rLpL-M."R  N@@PB 3aUAP[ $0S  [ 80  0 0  Kp$A [Q/H[Q 0`c/O-MT `hZP@T P 2/@P 04`0 P4P 8P о p8K(X ,PP 0 PPPPP P$PP7/`4p4P P 1/88 P 1/@` PK4`H@ P }ealO-M<HO@`V: 0 2/`PXP0 DP HP + pHK쮟(X ,PP 0 PPPPP P$PP7/@D pPD  1/HH P 1/XPh@``XlpdDPTL<48@HPDP!! Ru #PPl D`p)P @F\ ,X\ \t,4,8 L T<  ,[  Q @p P*L0pL7/ P@T:@T*  O TP @T:@T*  O TCPppW:pW *  O TPg@T:@T*  O T@`V:`V*  O T@`V:`V*  O Tlp@W:pW *  O TW@`V:a`V^*  O TB@ `V:L`VI*  O T-:@`V:5`V2*  O TLpL @P 0 5/L 0 P 5/` AV:`V *Q O T r@`V:`V*  O TpQ@T:@T*  O TPppW:gpWd*  O T`pAV:`V*  O T`pAV:`V*  O TypQ@T:@T~*  O Tb`pAV:j`Vg*  O TKp@T: @T*  O T6P@T:?@T<*  O T P @T:*@T'*  O T ᐸP@T:@T*  O TP@T:@T*  O TP @T:@T*  O TP @T:@T*  O TP pL@L 0P 5/Lp 0P 5/Z:P  PL@0pL7/P U:pQ@T:@T*  O Tq@`V:y`Vv*Q O T XH@K'.L9^@`V:Y`VV*  O T:L0 PL5/+P@T:=@T:*  O T᣷@`V:&`V#*Q O T P@T:@T *  O T<P @D@ DP 4< P<4D!! R * D PPP ӱp>pP PE .D H0Q pBO``G@sQVa[ Z[HpKD @ <K8H p"<P @@ DP 4n< P<@4g dPPUP. XP`PK0`p0l`p`3/K  54QeSPlL-M@(( 0,0(<-0,K- }8Q 4( Q(K / #/ /000 /H-`S*@Pp   @T:O-,MP[  R  P  K@ po`pP $P  0`K  0` KG@ 0@oQ   V4᧳$DQP Q*-@oQ < w0@oQ   V&4x%F @`!@!R"`0 R0"F @ `!@!RA`0 R0Cᡳ$KO?!003/`H P[Q  P  Pu dP @ PdF @ `!@!R`0 R0>! `003/`L P[Q  P  P,P&-P O J#1Q![  R 0 0 [0F#S[1 Q  [ [ Q [,P-Pb O J#1Q![  R 0 0 [I0F#S[1 Q  [ [0 Q [x&0!<! `003/`L P[Q  P  P  P @ P 0  IK,P-Pd O J#1Q![  R 0 0 [K0F#S[1 Q  [c [2 Q [E(  R /R [?SX ?S   R /R [?Sf ?S   R /R [?S ?S   R /R [?S ?S   R /R [?S ?S   R /R [?S ?S [ E Qo   0Q6 Q[Q" Q [ r Qo   0Qc Q[QO Q [$/ ?S[P %P ߳0 ?O T'R {P[ S Qo   0QD Q[Q0 Q 嫳[$/ ?S[P %P 䓳0 ?O T'R }P~[$/ ?S[ P %P f0 ?O T'R{ aPmt[ 4RP V %0!R! K ៱P@pP  A ,,K`q P D p| `j` P P[ 4R P V %0!R!$$[ 4RP V : 0R  ? P `q P M.Dp*f @@  ((K(Q  0彊   `X  0 pP  p((K  Q Q 0[Q Q   Q) Q 0[Q Q   Q Q 0[Q Q [ 4RP Z % %R! K  `  `Pq P MDp@Ȭ @  ((K  Q Q 0[Q Q   Q Q 0[Q Q   Q Q 0[Q Q [ D ?oQ 2  @0S5 ?S0[Q" Q [ r ?oQ 2  @0Sc ?S0[QP Q $[/ ?S[ @P %P `ԥ$0  S'R  P[ T ?oQ 2  @0SE ?S0[Q2 Q 埥$[/ ?S[ `P P %P @ `䆥$  U'R Pp p$[/ ?S[ ` P %P @ `W$0  S'R  P[0 4RP $ R %R! K ፣` pP  A , ,Pq P oD pkPYP     [ 4RP $ R %R! K =  `Pq P M,Dp(d@@  (@[ 4RP $ R % %R! K   `Pq P MDp"@Ԫ@  ((`P@K8 (Q 0  t|   @` Y  0 `V:<P`@U7*0  .PU:,P `V(*0  `V:P `V*0  `V:`P@V *0  `V:K 0KK/P`@U:PU*0  `P@V*0  `V:`PU*0  PU: P 0p7/` 0p7/0 `P@V*P 0 `V:`P@V*P 0 `V:`PU*0  ~PU:|P 0p7/ 0 p7/`P@Vh*P 0 ]`V:[`PUW*0  NPU:L`PUH*0  ?PU:= `PU9*0  0PU:.` PU**0  !PU:`PU *0  PU:0 p7/+`PU*0  PU:`PU *0  PU: P'vK`PU*0  PU:`PU*0  PU:P`V*0  `V:`P@V*0  `V:P `pP 0@Q 0H P0@ P 0H  0 PA0'H-MpP`W @Q*P @`%P*`PuPKLH H0 0^ / 0K}e2m^p0H-@P=(0HpL-M@[PP  `PP P`P P P  T.Kp0H-P@ (0H0H-MP  AP; @ ATP0P 2 dP PPPPh PPPPl PPPPp PPPPt PPPPx PPPP[@K0O-$M@`&ppY`Q @%QB %0@ ` ` `Qe %PU  B`` ` @% P  B` 0S$ 0Px p [/ ?S[ [/ ?Sv 0 ``Q `H G7PO p[/ ?S[P  A%P>L `PQ5 4PAPQ<PQ7  B``Q `. ` PQ%# ` 7pP ApPu `P P  PLQ  0$Pw`PR 1P% P P    0Pt P,  ( B PPA [/RY[  [a/ ?S[P  0PPK@< <0 0r,( (0 0j`YpxemZXpxebmTXp0H-@ PBT0P dP PPPPh PPPPl PPPPp PPPPt PPPPx PPPP[00H-MP  ]P @< P P0P@%["P PP |[@K00H-@< 0QP00P%["P PP |[0M-MpP`-@P 0P@P < P P0P%["P PP |[K@M-MP(s1pPT  @PN w[Q /R[/R /R [Q */R[/R /R ` P  P A<@ p'  [Q[UpK4 00 0  [H  /8 00 0  [ \ [ /ī0H-@PP \[ `J> 000H-M@"P P!1/PK00H-M@ P P1/PK0L-@ k $(H-MQ) @ PP`p Pz 0%`P( @ A $0R* ` +(LQ 40 Y"`K耳NpP/h R3/O- M 0 CqQ* P:[(] `1  00+Q4 ` p1W  0*q@PU p p` V`:`R`R`R $P    +/ AV:  0(S C 1 S* ( R:(KK`O-MCpXP`ȑ @Y@LY *@q;*@Y@Yl Y6:ULYA T 00Z^R 1@ @ S *p@0p S@:Rp @G Z5 B1G V H  `Z @a ` GLR3 ቑp@W )`T@ spKM-MP @` p P (! R*P1 ( 1 0?0@ 0wB0S 05 10 C  8p0  PPP pp'.pKM- P`p P (! R*@P (@@'@Q51( !0 CO- M0@HR`pP0S UP 0S 0S` P A%p 0-P:  0$P- 0  @ P#  0@P p [R?S[?S ?S   0 0K [R*?S[?S ?S l `pQ %@ ^ `Q UP̫pL- @P`P A-pLH-M @P`p P*p` K) 0KpL-P`B@` ```( ````pK-@0  $P` PT`@X`@?P`@ pV ~ U $P,@@?P(`@ pV e$U H-P@p@[ p,[p`] ,pppp p$p(p`HpL-@|P$( Q PU `P P nP i lcp 0 0J-demmBpTQH-  0 09cem)BpM-M@\PPKMX[P!TP.0`PPp㨈 b P Tp`WT[XXP D@PTP ,PB  @KM@(pGPA `  @$P  0@#PX[/R[T T#ᰲ`, 2/P 1/K̤Apj@p #@pM-@X[P!TP0`PPp㨈  P Tp`WT[X0P @ҮTPԢ ?pO-M@P P ` pH G 0 B0HC1B!@! @⦮P Q$ $p0W" `  p(,P p(( k& QhQ `0VKK脢ApM-@TP0`PPp㨈 K P Tp`WT[X(P @M8pm,pL-@*P [P@[[P/\ [\ [`[`[\/\[` [` [\[`[\/P/Dh8P H- 9H`/HR/1 M0S/pL-`@ PpP P P  PPApO- M  EPT& G/F`刀V!!!!w F W@:/@@Z Z P X P:/P PPK jV@*P&  A * *Z@PV:FPP  ,   Q1`F W*@@j/@P  P F P:R/KX/0H-d@t0px  @  P 00H-M@pPK @[P PE QQCH`@Q =``4 P  0@ C  c  0   Aᷖ8  B  D0 - Up PP ? pP KD@ @0 00, ,0 0P,$'pFe:mE&peFemY&pH-p@ P `@ P %  0:{P` [/ ?S[@ P  9 PA訇pL-`AP@ B !❩$D$ppL-`AP@ B !$E$pH-@<P z<DP sDLP lL(P P@(Q "n@r"~W[,P P@,Q "n@rw"~WI0P 0?4P 488PU 008|P F)|P [PHpL-M  P`CP @U Q*P0P! P*P P:[@Kp  iBe!ppL-P@` ;Q8  [R ?S[?S ?S  [R *?S[?S ?S P P  8 Q   p,P`/H- H`/肞|P/P/(Q/pL- @A( P "^Ab"nVpL5 ,Q/pL- @A, P "^Ab"nVpL5 0P/H- 0 H5 4P/H- 4 H5 0H-8PU @>>80L-@|P P3|L-@忑L-@   8O-MP X K8Z  8 p@T pp@PP*pP @@p`V`P`P\8 @pYW @@pPP*@P pp@`V`P`P\KL-@KL-M@ P #1/KpL-@ R 0S 0@S P R PP PBa pL///O-MPP x@P 0ޓV   0AWK Q 0 SS\0//H-@ppP p$p(p,p0p40p pK TXX[/R[))T : }T #T#&0d   0)T : }T #T#(d   0p0 0 W0S D@DDK? T:? T 3R0 !0S S0? T:? T 3H [\[R/H[P/ X \[P/pL-P(`Q  A A@ 0[Q ڟOT[OT OT U(PV,`p7P @E@E F !$F$pM-,`V4 P(@OP @ @@ 0[Q ڟW[W W  F(0,@7P DPD F!"!$D$M-p`P @@@1/P PP 0PSSR0PA8 2/P@1pL-(@T,PUp`D`D E !w$E$ppL-(@T,PTp`D`D E !㶡$D$pO-MPpx% R#0Z Z`0p R R  0000֍T pG0 8Xx  0K0H-P@((@P(,\[P \[`[`[\[`[\A <[<A/ ?S[P(0HO- MP[HPK\P[P `V6 T& EG/FF   w  W@:%@@ P ZZ PPX P:%P  P  0 0!e҃mWpO- MP[HPK\P[P `V6 T& EG/FF   w  W@:F%@@ P ZZ PPX P:+%P  P  0 0*ebmo0H-P@I8   @H [ 0WK-M`@L1/PP @  pp|PE D PH D 'Q `Y P絡 I0' @1/P P7 `(OQ  A A@ 0[Q ڟW[W W UpV(P,`K(7Q H@E F!"!᳟h$$P 0pSSR0PA8 2/` V `!Y M-}Q@#`X#40 Q PP pX0pWPPpppWU00 R: P 00 00 0 C  @T0 0PX 0 U P(X}X#X#Q  P 0XP/X:/X30H-P@ hl pxP8 @P⠩p;`P  @0 @`P? <P0P[ X |[\[\[`P[``[\`P:[p(0 Pp 4P[48KX ` [`0[\p[A\pQ\0[`p[P`pK-Mx% R#0PU (`U0`P R R  0  T PF 0iWx0`[(  R 0B0B@ 0[Q ڟW[W W  (,[8,[<1/P`[V pH$p粊\P[VKO-M@xP(,$ P倠[Z \p[T ` (ZP[ܠ[ࠄ\0h TAx0\(HhPl$ Q[Y \p[$` (~YP[[,08!$AH1,({8<KK-@8P$ P@[Y \p[` (NYP[[0( A80(K(,.@K-M@`(@P ( (,( ,,0,00404484888@p  c[X`[\p[`p[W  [`0000< R1$10\[W[X@[\P[`P[U  0[@<`pV$qqp\[UKO-M@hl @RP16P1 1P,x8P' h@ P p†P[`[\[T` (pGW\T A\(hKDTO- MP8@PQY (`D@[ XF 㠩@pP  @0 PpP< <P0Pv[ |[\[\[``[`p[\pw$ Y`: P (KY ` [`0[\p[A\pQ\0[`p[``pO-MP8P' (@ P @@`[`[\[p (@DT A((KO-M@pP$1/UP1@h P\xQ' @ P 倠 pP[`[\[T` (pGW\ TA\(h[H!R' 8 A P  pQ[`[\[$` (lpGW, $A,(o8K [ /L-@@P LO- M@8P (@P[ Q* \P[X:``[Pt \[`[(`[\[`[\p O Q(PXN*_ P@`pP  0@pP8 <P0Pc[ |[[\[`[`p[p$[0  B崇X: K 0 0 emmUo0H-M@PQ  0 B00㓇K0K0L-M@R 0C 0xK000 0 /0H-MP@Q  0 B00ZK0H- !(Q 0A0A@0[^ ڟ/R[/R /R ! (,[8,[<H/M-@(pP `,` `@1/P PP 0PSSR0PA8 2/P`1,`M-@(pP P$,P@1/P PP 0`SSR0PA8 2/PP1M'K-M@x%( R#0`V V0 ` R R  0  㘆pPW `I 0Ux0`\[Qh  )Q5  I`0` A o!(Q 0A/O A@ 0[Q ڟW[W W ! (,[8,[<1/K0H-4P@?@;0O- M@(P` p Q lP> (P p,Q4*x5 0S)0`V&  V0 `0SS  0pPW `@ 0ZUx  0D 2/ Kx%QQ /Q/( 0 D /O- M@x% R$0`V! ( V0 ` R R  0  㮅pPW `I 0Ux0 P 1/KO-M@Px5(` HR0S"0Z Z0` RW  0  iW `F 0Xx  0W P H Q  R @P XBa ;KO/K-M@x% R%0PU" ( U0 P R R  0  p`W PI 0xVx0D KK/  /0H-P @l$[( 08K-P@@[Y \p[` (YP[[0( A80(R/`[`0[\ [@\ P\ [`[` /pL-8@Q P@`[V @P [P@[\P@[VpH-[X0[@\0[`0[\  @P[````Po  0P @Pd `W Q*P0På P*P P:[80 , P ,  04 ( 04 [\(``P U$寛0P8P 0R08p0D`p`3/HcK f o@h H- @h H O-M`P @pV 0`0 `@`@ P)Pp4@OO 0` 0pW0` S  803/PpP0 0`V 0ӻ ` S`  8 2/ 0 L KH-@ `0S: tS  4  A @PQ % ! PQ  p QP p QP V O- Mp 0O 0R:  @?pPQ  ` QP@pb`P 0 0pW 0+ ppS  8 2/p`p P `0 0@T 0 S  8 2/P# PY `P0@ `P0@ 0pW 0ٺ S   K8 KO/O-M`P0@  0p@V` @p` @P3P@`_O@0 0pW 0ኺ S  8 2/@`@0 0pW 0j S  8 2/ 0   K/@o/O-M@`P  r%4Apo pp@  Ip@>3P@O`P`0 0pW 0  S  8 2/P pP0 0`V 0 S  8 2/` p `0 0PU 0ȹ S  8 2/K蜏K-`P 'PW PR p'`'p`0 9 0@T4 0ᐹ 1p2PPp`p`0 0@T 0r S O 8 2/S O 8 2/PO- M`Pp@V)` `Q: $Q $  A@P pP ! P eP  pPUP pppZ@ 2@P_O@0 0`V 0P _OS   8 2/P_O@p@0 0`V 0ŸP _O``S  8 2/P_OQ: ? @ P P_O pPP_O@B`@ 0 0pW 0|P _OS   8 2/P_O@` @  0 0pW 0UP _OS   8 2/P_O P* `X @`0 @`0 0pW 0%P _OS  8 2/ K` pPUPp/K-MP @P <pY" `pWbpY TY  U 0KQKL-@  1 O04 8 < @ 0 $ ( ,     0! D  $(,048<Q/L-@P<<Q H-PM@,K&N,O<P P`,F<`DPV,XP8a`PUJM  2/P2 `K ,` ( ,` $  2M K(Kp 0(  K,0pKp` ```@I ` o, o o oool|ll8oooO-M)P+ET6 G?FP` V!!!!w!, F W@:@@ P XX PPY P:P  P ' P#` 0`峅T& G/F  E PU   w `E W:QV F W:D AT @T P Y P:/ P  PPj@V@* P  A * *JP ꆀPV:FPP  O  P Q1`F W* P n  @ Pg F_ P^:Z(`AT @T P Y P:P P P`V; ˡ` `㤡Z@U@*` `  A * *J)ꅀU:E  7O   Q1 |PE W *@  `%kP   @P E P:S@  KO-M@ T& EG/F`V!!!!w F W:* QU PU P Z P: P  PPSjPV@*@   A * *Z@V:F@@  N   Q1`F W* P  P P F P:P  KO-M@,P(U! T& EG/F   Epg V:PY @> <0 2!V| 0@崃  ET& G/F,p W   W G` U@:R@#@X X P V P:<P P P Xy Ks %z`W@*! 4  A * *J=净@W:G@@  M   Q1 ,pG U*@! pPP?W P : p  pP\YX@@ P  0 `P G P:`44KO-M@ T& EG/F`V!!!!w F W: QU PU P Z P:{ P  PPSjjPV@*@   A * *Z@V:F@@  L   Q1`F W*< P  P P F P:$P  K   0 $(,48<@/H-@PQ A PP`UH* VF"@  o!pr!  L W   P:@o `UP1U:O-M@Q# PQ[*P ڞP UpXE E Z: PPP P0 qpW( Y P: P  P !R   R 0`V ! pKLH-@PQ A 8PP`UH* VF"@  o!pr!  K W   P:@o `UP1U:O-M@Q# PQ[*&P ?P UpXE E Z:  PPP P0 qpW( Y P: P  P !R   R 0`V ! pKfK+/L-('0 T@ 0 S <T0SL-('0 T@ 0 S <T0S/&B/K-@[@0pP(gp@`pW fPF``````P`jpP  @P  PH- 0? 0S0S 60C 70 00 \Q// /,`Q/L-@w 2/  2/ L/$Q$/H-  0 0]#dlo$Q$/H-  0 0#dʅloH-pP% @ z 0 R PaV V PR `0qW W 0S 0 0̍5"dloP yH-  0 0ํ!dl{oK-fV @yQ 0p QU U pGWʁ P,( (0 0A5!dloO-M@$PI 0Ap 05 00  2/ 䦒Q  P 2/ IW ` P Q   !`pWP ᄆ !q  2/ KO/ 0 0+dfl&oH-@R Pfa APQ pP pP Q yUUUP!1!1 !1!P1 0 0،edloH-pPX @x0&0S PaV V PSPaV6 V Qp R5P& x 0 R PaV V PR`0qW W 0S 0 0mdnlKoO-M@$P% Q aVp`PP1 PI Qa ZxP P?  q 1V*p0`, `FPR* 0 A!/rAPAP PC*P  pQV P  H`U P Q @ pZ` Y P: PUqX KOY KHD D0 0܋eH 0 0ӋQd}lnud*}lnH-pP- @w0&0S PaV V PS aV V Pp Q1H 0 0Ed{ln0H-@$P1PP' 00  2/ Q&  0!P 2/ H ! 0 0 0M9dzln0H-@$P PP hP Q0 0 01d~zl>npL-P$P`P @KP `p 0 0Edyln$ R/H-  0 0dyln$ R /H-  0 0djyl9n$ R 06 Q !R A /H-  0 0Ί=dxlnM-P0`@ƙpP _ 1/|给pP U  G pP U !!U!dDSSlK-P p`p#@ᏙP t_ 1/煙P" Y -GP P 0T Rp0pp00 RclR@RlL-@OA JPRdL-@d8P _ 1/D.P  Q L c QPlH- M@0 u РL-M@   00KH- M 0" Р//H- M 0 Р/H- M@0@ 4 РH- M@ 0 % РL-M@d d d  0KH- M@0  РL-M@H H  0KH- M@ 0 РL-M@* * *  0KH- M@ 0 РL-M@    0KH- M@ 0@  РL-M@ 0_KH- M@ 0@  РL-M@ 0<KL-M@  0%KH- M@0 @ J РH- M@ 0@ @5 РL- M@|| z~~ 0KH- M@0  РH- M@ 0 Р L-M@] 0KL-@d~P c] 1/DtP  Q L a$JIҟl 0L-M@ 0KL-M@ 0sKH- M@ 0@  РL-M@ 0PKH- M@0@ t РL-M@  0)KL-M@ 0KL-@dޖP \ 1/DԖP  Q L; HaG|GRlL-M@ 0KH- M@ 0 РH- M@0 РH- M@ 0  РH- M@ 0 РH- M@ 0 РH- M@0 РH- M@0@  РH- M@ 0@  РH- M@ 0@  РH- M@ 0 РH- M@ 0@ p РH- M@ 0 a РH- M@ 0 R РH- M 0 Р///H- M@ 0@ , РH- M@ 0@  РH- M@0@  РH- M@ 0 РH- M@ 0@  РH- M@ 0@  РH- M@ 0  РH- M@ 0 РH- M@0@  РH- M@ 0 РH- M0KK Р  0R00 00R/%Q  $$@2 /Q 0Q/%Q  $$@2 /Q 0Q/%Q  $$@2 /Q/ Q/ %/H- @Ϡ0  0 ,%@M-P0 `p%@   MPM-P0 `p%@   M0H-@ 00 P%  0H+0H-@ 00 P%n  0H0H-@ 00 P%]  0H0H-@ 00 P%L  0HpL-@ 0 `%$  1 P7  pLXApL-@ 0 `%$  1 P!  pLAM-@ p`%P,  !  MK@0H-@ 0P%  ! 0BS 1L<L<T   0H 0 0 0H@pL-@ 0 `%$  1 P  pLq?pL-@ 0 `%$  1 P  pL[8?pL-@ 0 `%(  1 P  FpL >0H- 0 <@P 50BP P^@0pL-@ 0 `%  1 Pe   0,@P pAP P/@p>pL-@ `%P{pPo"p&P#  0  U`yp P  p  c]j /M-P@ %p0 R `   0 p%  p# `   0 p%  p 0 `%  * p h<0 S/L- 4@Ϡ 0@L%0 RL/8H- 0 %B!g/H- 0bH-    SpL-(MP@@0 $C  :`P P@  -@PKpP/ 0 /L-@   L-@K-@ PN O0,PP  A` PPp4Q'  P  P P  A`  PP4Q 0H-@P0HR/x0 0! R 0!4$(@/H-   D7 c Xj0l  Q/ ,$///H-   `6cWjL-x ^ @18$( A  ;$6cVj0l  Q/ ,$///H-   5ecgVjO-M`@Vt1t@7sP`pP 0 8 llHp㴀p : 0100L0 8p4`1  YDP<0@ P ``p p䋭 `$Y `lP lHL@ P D<Y`@P `VH`4`p H `phd 0,p  ` h嚐Pd@PP<@8( P$@@8< H ptWDP|L@@|h,,h ( R0!<@(Q |dH  4` RD0`0!lpx `(`P0|`l I  R0! 4 Q `PLh`   R0!D,d `P`P8p@P`a0 APP`h0d ,0 ̯``(P ,0`?p@V\\0 T`h0d ,0  PVL`@P L`>PX0T $0 P X@`4` h:`ݫ v`0p@\\ `h0d ,0 c _PIPP T`EP*dQ< a `垫Z`DPo< 0 , J`0p@\\ `h0d ,0  P@LPL PX0T $0 P X庎`4` h崎X` P>`#<  4`8Z  ׮@ZlKL ɮ<8  q똻 2jc222lt)dlhlcKjl+'dlL(dhljqjjjc>P(507/1H-   L,1c3Kj@@///o//o//o//o//{ a R/1@Q3/PrP sP Aoo//O-M@p ptxG<oF srF<lF>KpEڌ` D  P 8pX T  ⌐ Dl, ($p <840@pX0D p 8妍HJ P D  p 8Pm `   匠 Dil, ($P <840@P஭A᧮0D P 8\MlK s<hFKlZZZZkj[$[[,[1hP  ` @H4@L l TXd p|p L`Xlx dpx| |  (      $0  , $<8 $ HD0P0 \hT`lxt< H <T  ,8DP\ht(4   ( 4 @ L X d /P/h/|/x///////////////(/$/D/D/</T/T/P/`/X/\/X/h///////// /////////H/T/L/D/L/P/L/H/@/T/P/P/T/L/D/D/</H/@/8/0/(/4/T/P/P///////(/ /////////(/,/(/4/,/D/H/X/P/H/@/8/0/(/$/ //0/0/(/ ///// ////////////////////|/t/l/d/\/T/L///// /d/\/X/P/X/`/X/T/l/p/h/p//////////t/l/d/l//H- " g{oo o o o o oooooo. o7o3oooCoCoYo oao o o/o oQoo o oo( o0 oooooo oo ooMoSooo o o omlo:o*o6o. oӲlllвlll o ooGo"ooPoQo o oNo o oɏkFllo ohmo oxl o oo o o oo"o1o`l0oPoo oeo؎ll o oko|ooo ooooooo[l{lxllllmll;m o( oFoooox oo4o>oFoNoKoDoEooooooooooo;ooooo ooolooo"ol olm@Tϲ<h"  KΜO-MP0 0D 2/@Pk -@&K@@ R_pG`Q Q$ QR 4PM 0P  R P% + 00000$P+ ^P 7P$凐 0   7P`DZ@@DW@T P @░T@vKpL-MP @P   `0`5wP``KpO-Mp(K">ɯ ,p `YP} ` D 2/pPU VS-@&K@@ap>PA P PڒQ3P @PR,K5,Kg4 /OPp  00S 0ᵈ U O 8 2/`pY @D VW P @Wpv VP@(K=K  fci0H-M@P4 0xvPK00H-8M@&000P@PU 0P0PP000?   @Rk P$@(P,@04&P@j-K0AqQ#K0O-Mp`|P u~RU 41/L1/ @ P  P FK Pf@ 01/ Pᐔ@%KKO-M@ PP: P6p`ppp  p2/p p p DL `PPuѣp *P uK4"s$s KOÜAnsn0H-@L PPPtᤣ0HB,/O-M P `,P@,pS'P @@Q P ၮ`"J 0KOTJ 0J$ `Vᒭ`@P P@TP 03/TP@@ Pp@ P KO̭KL Q 8  L Q   ꘾llL- @t , O0S P , R   BR *, R^  (  $S 0 0CS: D0S  00   HDP ,00,O-M@4 P pK$Q& `p   t R R R R R R R R|T V pQ ` P  >&P pQ PQ j pA P Rᐬ p`L `pQ P  PU PQ    / 0 3/pU PQ d  P` P@P^ P孬ZQW~d/llO-M@|PM:pPp 0 c0P P PSP`` 0$P& 0 }P  % P@P R:K40  c$ 0 0c먼zcinzc>k lO-,M PP`0@p P0 @ p p Wp @ᴫp$PN   Y6 @,PP f`  `V `ጫ`P  QQdTOTy @" q 0TP>e  ^ PQ P !Q" ` OQ WV`PY 0P4 P  UP @P zK  k`PPP PQ 1/P p  p ddP 4pP q >n렻-X-nвnndrnd,۰n Q    0 O\ S00 0 S S/00/O-MPH  |c `p@ 0 Q#pR 5 $灑P I KOXcO-\MPTPLHD@88l@QH `@?c $PPx $ L `P @,@(Q3 ! .QF ! A,@(0 p4$1 W!4  0 p :7q(, @bPZP$` @04 p2/p@ P ^ZP `@bPPb8P K  8dldKرİ{lPSlH-MP`nVPKB@,   R(  #   R p 0pS 0 PpS 0npP p pP/ 0 00S P 0PS n PPP P @ 0@SD n @P wpKKHn nnJn-n3nO-DM@`PPK*Pp` ` P  ` X`,`P ƴ0P @`婙}" p`V`AP hunK-M`$tyPPO PP PD 2/@pD/p. Q*@Q& Q, PP ᚩ A@ PèP0 <0P@T P @⃊T@oKM-MP `@P  *PpP  ppV ?P P `i`P` 0pKO-M `P pW R -  BR:p vRU @1/@PyHHHPt 1pWT @PN:J[&}P P ϨP}P P è%A  PPP">Q@P  A@  Pҧ@P Q Q Q vRUyKKKK  _iciO-M@ xP `PP `1/P @ B(1/pP @` `V j`pL1/pP * X Tp1/ P ግpP [|pP Y /pY !p @$ R>  $0 P  `PQ@ Kt/0@P R@wP[K 0 0^ocfcNkk </O-M@  pḀ&u|  @刕 E@ub1/@P,,H@| Xk  T03/paڥ X^ PPΏ}RPPxPG "PB p;ڪ X8  T03/p0 X- |{PP&>Q"@P ~p X ቌ!@P T03/pR @1/Plg pR ={@Ƥ`a`?`,`PD K ᶅP嬅@{ p?< D 00 0  E,P@p{ G>E @Q@fpN @ < Dp<pp<?  !B < ,P RA  @ Fp|D 0pp 0   @   x< Pp p>00CP P?|0D  pp p 0  s P?|D 0 pp p 0@$ 0 0g]`cVkn 0S0S/P/ @Q#/O-M@1/PT0P P3/PQP  PPD 2/ pPG -@&K @@ a p@DPQQ >Qb`V` 'Q>P4Gⱇ` ᶣ 0P`VZP  3/P``WP pW P @⪆W pkU`K 0 0\^ck[mL-@8P ( Tn L蟜L- , O0S Q L@T @@DT *L\@T 000S 00CS:00DP ,00  @@@H, /< 0\D00< 0SD/  O0 O0$ /O-4M@`  QP&000p@pW 0p0p p000?   @Rp P$p(P,0 vP@ "&O 0@p0W 0p0p p000?   @Rp P$p(P,0 DP@ "Qp  @0 S 0 p   /@QY`p` P$p(P,0 P@ X"p! Q Ȁ` P X BP Qp  0KO-LMPp,  P(@`'000p@pW 0p0p$p00(0?,   @R4p08` R0@Q,  1/P@ Y@PllV @ 1PP`^mrW 1$QV @@ ,0/(/K-)M@ lP =n p(P PP+ `01/Q)nPP 01/`P P P pPU)P`KpL-)M@ wlP m `(P P! P01/QmPP Q *01/PP ἞KpP KpkKp `PٝPKpO-MP(` 03/ p ,P@( G$)$lc`P X`Q@c``D`KPtPXP0H-M,,0-,,,0,<,P-     ,,,,,,,,,TDc@P @@Q(7c@@K0PO4OOL-@ ` 03/`(}%  /0H-@P P,dUP #d0H-@PU `` 1/pdWPPU( R /0\ 00(0S//0H-P@UPU P c P P PcUP 0 P 0O- MP@PPP P  P P PD P P< P8 P4 PH WUL pP7,P P$P`(P0P<8P<PPhPlPpPtPxP|PPP@PDP\P`PdPPPPPPP0P x[c2m(`dPhPlPpt `Kc"m _$-P@   0P 0S$$ 0P 0S$``(ߚhl`l  P` Rll 0P 0Sl l 0P 0S PP P P| Px Pt Pp Pl P  P P T P P  P P Pb`PPP PT )P ` P P P P P PXPTPPPLP\jPPPPP2TPPPPP(bE" `P PPPP PPPAT PPPP/R  4,@@xb*P@ P- P P P P P PZ P P P   ( P PL PH PD P@ P< l Ph Pd P` P\ PX PT Pp Pt PP0bh)bᓗ#bPmPP 1/&K~lHx/O-M@ P  1/XP <`0`$``R SP`V`V P a`P P paWQ (0 p0Q wSa4 `(KO`4y(FFFEEDL-@`L`DDO- M [P @P  P  aܮ(u @P 0T(, T#  @P {L  @ݡPQ -d| @Q8 P `PcaP协QC @`V pp 1/PMaU``Vt  `P b@a(@@4 {+8  `P 2a@ @P *a` ` @P 1/`  `ϳP ta@@! Cq  PP 1/@  @PU $l```@P 1/`  PU` RP @`TP ``,  `PU c`@( @PU Y`@Kw[onm0H-@( PU H`0M-M4 @P^ T ⢏P   P`K -h@ 2/px?၁,P   P`K  e@ 2/pU?^ ⡏PU @Q84$,("$ I`[PP K JT[VKjpioLilO-M PP $`@ @PP `@| @P 1/ `pW GP PAP P `  P P _@T _l @P _P P@P _P PP _@l @PP _@p PP _@| @`PU P __@L PP 1/@ @PP __@8 PP Z@< @PP _@4 PP _@ @PP _@ PP '_@ @PP _@ PP ̔w_@ @`PU P k_i_@ PP b_@ @PP Z_@ PP ߔR_@@`PU PPP pB_WP 9_7_@ PP 1/@@P P&_UP@ _P@P@ 1/P@ &_wPP ^xP |^lP p^`P d^ P@`p60T )  4$1!R 0C P0R D@P :^pp@D@PP P  W ^TP @B  P ^ PU -PP @^TP ^^ Pp P tw^($ P o^H %PD PU [ @?SP[1/\)K0H-@P L^ PU P A^?^PU P 7^5^PU P -^+^00H-@ P ^  Zh ch Ph P P^U  P ] Oh O\ P `]P P T], P P]U$  P ] OP ]P ]P ]0, R/000 000H/K- pPP P ]@LP` NGP q(/R/R@[ QQ@[@/RP[1/[D pPW@ [ @?SP[1/[HO-_MM`TQp@P. Z0 ,0KP0, 0%`_d]h__^pZ^]h]X\XX\[h[[ZlZZYpYYXtX XWxW$WV|V(VUU0 P0 =0 A)T  @X[Q[HP(>  0  4 (  8  @      $ ( , , H\4 < \P8   P P x\P+ P DpP j\@ PL Pa\P` 0E B r @@  P4P\ J\E\x%L`4LH=\PL( L,` 0`P.\L`Ll\'\LYLpL \LB|L ` `\L lL \YL |(}( \L 0$L  LLP0 D ``0SD`[Hp [V[P! 0L PHL0` MP 0K40M:P \[p["{@U@@@ @P@`MP@@D@ @$@(@,@0@4P8@<@PTX@Pp \#[pL H3.L p8 4p Qq  8PK2/8 2/pTP@ H4PQlPPPWMP < 1/8MMP 0'X'!`!JwkO-M@`V pn*P P[*U_bP`  L8l hp  pL +(4p 0p,p(p$p pDp@pPpN-@ pPU `V Ɵ PUd`kIPV ? 0?B>P@]I 0P%?P$K-|p@ PU `FIPV ? ?>P ?@T:l~@ Ap @ @  P bz B`Zy@YQ|   ?R  @R:/P p@,O-M@ pQ *zP `PUSyPp pY -pPpP0 0`V 0R S O 8 2/ PY Y ! PPZ#  d KH- IHs M-M@JPP# K`Kd[pP:h[tP*`p/0 A` p,A@0+S[d`[hKF N 05= E 0,4 < 0#+ 3 0" * 0 ! 0  0  0  0  0  0ۤ  0Ҥڏ  0ɤя  0ȏ  0㷤꿏  0㮤궏  0㥤ꭏ  0㜤ꤏ  0㓤ꛏ  0㊤꒏  0つꉏ  0xꀏ  0ow  0fn v 0]e m 0T\ d 0KS [ 0BJ R 09A I 008 @ 0'/ 7 0& . 0 % 0   0  0   0  0  0ߣ  0֣ގ  0ͣՎ  0ģ̎  0㻣Î  0㲣꺎  0㩣걎  0㠣ꨎ  0㗣꟎  0㎣ꖎ  0ㅣꍎ  0|ꄎ  0s{  0jr z 0ai q 0X` h 0OW _ 0FN V 0=E M 04< D 0+3 ; 0"* 2 0! ) 0   0  0  0  0  0  0ڢ  0Ѣٍ  0ȢЍ  0㿢Ǎ  0㶢꾍  0㭢굍  0㤢Q/0H-@PD L8<4 <3< .<0H萍 Q/0H-@P4 << <0Hx Q/0H-@P0Hj K-M@ Q:A WP U} E W@BqaE A qp  0@BCQAU*RV ; WPw U P``Vu V*;q `Q`V Vv*;  ; "U `PEJUP Q     P 0  EB 0 P ;K \;>K P``V V4*M;&1U  G` B"`  W !Y S;ppK&1U  G` B"`  WK-@P U 0;` V F U@BQqF A 1 # PppW W"*:'!qV0 0E0C#! 00U 1Y0  :0gK-@`V p<P U*A U@  p@n  QppW W(*:ppV!!q 0E0C#!0  U` ! V  :p@K-@P U 0;` V F U@BQqF A 1 # PppW W"*S:'!qV0 0E0C#! 00U 1Y0  X:0K-@`V p<P U*A U@  p@  QppW W(* :ppV!!q 0E0C#!0  U` ! V   :p@~H-@PQ A ᵺPP`UH* VF"@  o!pr!  q W   P:@o `ꐺUP1U:O-M@Q# PQ[*9P 9P UpXE E Z: ኂPPP 9P0 qpW( Y P:p P  P !R   R 0`S ! pKO-Mp`@T3  D WP :P7 PPP `V PPX P: P P`V`K P 9`O- M@pPD0 W :`p0pp`P V S P: 0ց0 PP P S- P: 0忁0 P P S P:@ᬁ Pa @ P KPL-@`B*?*<*9*6*P 6L L-@d$*!****P 66Lى L-@ ****)P Lɉ 迉 H-@XP TPPPP 00 X `F8VPU %78PU ` pP ` XE,8*8WPP !8O-M@P@EP?* BA!.rPP1 P1* 7p E!P q P Pp ` P @pIRUp@ KO= KpNK-P `@FP'*A AA!.rPP P@*7pF AV  ZY@ K @pO-M@@ @ R0p <p@`PPP PEU  PB U@P<P p<pC P pDQ< @pP "q `ZJpp<0A P$* ㍎pP [ᜊ@ `0ᩍp  0p HKq "Q -Q | H-MP @a P p pQo` TP 0`N  )#KH- @ P0    B ` P p p Po`a P {p p Po`8`@D`H`L`PP; Q` `+m0H-@ @ R 0< @@PPP PEU  PC0 U@P< 0pL-M@X Q Kp` QP R  <0"S P   @R:0C Q*[PC U'0a@@@@@@@@@@@@@@@@@@@@@@@@@@@@-S@0`@`VPP P@Q00@P``` `FV `AV@`P%@0`@`V3PP P <8Htd8ptK_ ZYPTMSN} 1/  1/lPe@`@`V0 Q <8Hd8p 1/  1/lP/@`@`V Q 84@8 4@ 1/  1/uP@`@`V Q 8t    8,t  |y 1/  1/lP@P@PUA` @ Q? \8hDP8DPL`[ 1/  1/ @P  @P@PUHPd 1/  1/sPO@`@`V Q 8xxx8$x~|+ 1/  1/eP@P@PUA` @ Q \8hDP8DP~~~ 1/  1/ @P  @P@PULP~~ 1/  1/eP@P@PUA` @ Q< \8hDP8DPI~]~X~ 1/  1/ @P  @P@PUPPa  .Gbh//0H-@@PU@P8 Q3 h8xHX8HX}<0~<0}<0<0 1/<0 1/<0 <0  uFbwhH-@<`p`@< @PB@ @PU@P Q3 h8xHX8HX}<}<}<< 1/< 1/<   Ebh0H-@@PU@P8 Q3 h8xHX8HXJ}<0]}<0W}<0<0 1/<0 1/<0 <0  8CbhH-< @RJ@P@PUA`p`@ Q; \8hDP8DP| }} 1/ 1/ < @P  @P@PU<  uBbwhH-M@0P@ ` Ply Pf @V 0p`\VX VV:"VT VQpW"QL P@PUA`p`@ Q? \8hDP8DPt||| 1/ 1/ < @P  @P@PU<PPK  VY@b[hL-@ P   @R:LK-@@P@PU Q/ l8xT`8T` |p<i|| 1/ 1/ p"P<M@P@PUA` @ Q \8hDP8DP{{{ 1/ 1/ @P  @P@PUT`@P P\P P@`V@`2 Q \8hDXPXX8DXPs{{{ 1/ 1/ "P@ AjiPh ` @0 @P@PUA @ QJ \8hD P  8D P%{9{4{ 1/ 1/ @P  @P@PU`@0 @0 0,    0 0:bh:bjjO-M@`pF@0 P UA Q  iP P 0 P<"PP@`@`VAPpP@ Q \8hDP8DPzzz 1/ 1/ < @P  @`@`V< ӆpKp P ZR\P!@`@`VT QP 8888488?z`<@`V@` Q) P8/z`)z`` 1/` 1/` `"F<`SP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P@@@h@@@@@@@@@@`@Xp`R `P `N `LP`@p@pW Q \8hD(P((8D(P{yyy 1/ 1/ <0@ P: p'P1@Q'@PbU: ``@`V@`2 Q< \8hDP8DP+y?y:y 1/ 1/ "P<V 0.p<<0,    0 0A3bCh%3bڕj_jO-MP`pF@0 @ TA Q  fP  @ 0 =<"PP@`@`VA@p@@ Q \8hDP8DPxxx 1/ 1/ < @P  @`@`V< `K` P ZT\P @p@pWV Q 8DDD08DSx<Pw @`V@`  Qk  T<Bx=x 1/ 1/ "@<SQ @P@@@@@@@@@@@@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P@@@@@@@@h@@@@@@@@@@`@Xp@T @R @P @N@p@`@`V Q \8hD4P448D4Pwww 1/ 1/ <0@ P: `'P1@Q'@pBW: TO @ @@`V@`2 Q} \8hDP8DP=wQwLw 1/ 1/ "P<T 0,`<<@`@V@`2 Q2 \8hDP8DPvww 1/  1/< 0S0,    0 0*bhi*bjjO- M@<@-P9`@`V Q \8hD| P| | 8D| Pvvv 1/ 1/ <0P @`@`V, Q 48@  t8\ Zv1 @R@ P` !V@`p0G; Qy \8hD P 8D P/vCv>v 1/ 1/ 0 @ R<:.PeP < UEP ` @< @PB@ @PU@P Q& h8xHX8HXu<u<u<< 1/< 1/< Y0g@Q W u uP QV@ 1/ 1/ 0 @ R<:.Pz@`@`V Q \8hDP8DPduxusu 1/ 1/ <0@ P@`@`V Qp \8hDP8DP&u:u5u 1/ 1/ 0@< Q: eP@`@`VW Q0 \8hDP8DPttt 1/ 1/ -P<+P?@`@`V Q t8\h8\ht<Ktt 1/ 1/ <0@ P@`@`V7 Q \8hDP8DPetyttt 1/ 1/ <0@ P:<@P`E[pP ? 1/PPo @Pp 0  0ᶊB<PP@`< @PB@ @pW@p Q: h8xHX8HXs<t<s<< 1/< 1/<   0"K($  \]l]]b_hj/O-TM  P @,4 8( Ố `0P0@ P pU ApXT` `$DPF0 C@pp@W8A@【@ Q \8hDP8DPZsnsis 1/ 1/ @Q4+ @p@pW4 40p0@,`(PDH80 ABBS B R0H5P@P $`T4KQ@x}Pq@$pW@p?@ Q \8hD8P888D8Prrr 1/ 1/ @P  @p@pW 0p(P04,@P T P T @P$SP0@`4 Pd@p@pW Q h8tPd \d d 8Pd \or"r{r 1/ 1/ 0@ P P P @P 4 @Q* P; ,pK,  (  e:P+@p@pW9 Q \8hD P 8D Prrr 1/ 1/ @P P pP 0@ TPR J P900S @ P< P8 P h900S hR P P%4 H ppgP bP p 4   bT!00%P pHLP pHH/ 0@CP *ACA!/rPPg P@%@qD0 HQ @Aq@DpG$@1@SDD@H L@,P@p@pW Q \8hDP8DPq/q*q 1/ 1/ @PiPi d p pD@H-H8 0@!bR8 @@q4p p4@ 0 5p 0P 0z1Pf ,PW@@p@pW9 QN \8hD0P008D0Pppp 1/ 1/ @Qp,"P@ 0 ,  0%@0ppW@p!4  Q 8p8ppKp0(4 p4 -pTp0pMp0 01/ 0 01/ 0 p0@ P 0P~ 0Pe @0P`   @R* 꽲P S :PP@p@pW: Q \8hDP8DPooo 1/ 1/ @P P p 04 `0PL @P Q4P@,P *K_ pD@H+H8 @!bR8 0@@q4p p4@ 0 p 0P}Pb 4@<  u,( (0 0lYhY$Y boh bjojjO- QU \8hDLPLL8DLPnnn 1/ 1/ < @P  @@@@T<@Pr@@]P @p` 0]PQp@@@@TA`【@ Q \8hDP8DPn/n*n 1/ 1/ < @P  @@@@T<Z ZG Z@G D VT$/`O$@  @p 00S0p^( pOpZ  803/pO `V$ 00  0.`G FAXVf  q0ppz`p$p (` [`nP (p,`p`  0 00 ٍ`P p@P N P ?O@ `@TgN@`P 00@P  NK   N 9b;gh8/K-P<0P @@@@Tc QO 844484 mgꙙ `㙙Ap-@IVE@@@@T: Q& \8hDP8DPlll 1/ 1/ <0`A0@ Q: p<ll 1/ 1/ <`p"P@@@@T Q \8hDP8DP|lll 1/ 1/ < @1P@p@pWA@【@ QL \8hD(P((8D(Plll 1/  1/< @P  @p@pW<P 0pa,<p  qasahM-P@'X `p 0 ` pX/O-M-M0D  P`@Tp< 80@uJpP ,$(p@  Q:%$QD@,`Pp($ j k P @J#,`p($ p P*@p 0ppL#P PQ, PD@0p00`0 `P M \ P.L  PD@ `@P @wL Rc ,Z6LH. z+SD@ Pp `4z <@ b@ Q@ P 0A  2@PP U 00!# P 0 Q  & (   P, 0E(?U 0YQ  D0 P0SC0$P(P(  #0PP^ @PO @A߾P  P0  P~ @oP P$P p QZ:4@4 P0PN 0 Sc Q,>4P;`0 R P# p  00S,&PP p  00 Q,P4`V { QP40 S } Q} Q,pP  Q@$O  '\OcSOcaa:hO-M@1  Q Q PRe 0Q `0 "0p0 PᜨV;  `Pȇ`\Q #Ap[P   00S0{- R P& p p 00SdPP p  00 QOP`VQ  `  " Q6VN  `PJ$`\Q #Ap[P   00 Q0- R P& p p 00SPP p  00 QP`V  )PԧV  /`PP`\ A#Q/o3" Q "P   00S0ᬧ- R P& p p 00SᕧPP p  00 QဧP`Vp    {mbKOP !@P ] R 0Tp㔒0 `\V #Fp[P` P a``pPQ7PV !@PP x]Z 0"pԑ0 `\ F#V/o3" V "P` P ! `pP QC"  QKQ  AQ 0]  Q 0p `\V #Fp[P` P a``PpW B  " Q 껄7(>ϋׅ<pL-hM@d y PR Q$ ` q 00S}QQ `  00 QiQKppL-hM0+C@ %j0+@a  Pd0 y PRM Q ` q 00S9QP0 S D n00R#  0 Su`0`0  0l`R `  0S0`D EQC `  00 QQ1n Pޥ  u PХ l` `P¥  `QᵥKp O- PA P0 S . n00R᫤  0 Sup0pᝤ0  0lPR PᏤ  0S0PႤ0X*:KO-LM(`P@V  0`P p0 SPv { QV44 RV pp``Q b?P pPU>Pp`` 0@X<ᔹ`PM  0PF `@oZ4 p@40P 0 S. Q/ 040 S } ` P { Q }` Qգ`K  Qǣ4PP0 R P# `  00SᯣPP `  00 QᛣP4PUO-MP p@  `P `P$` Ax%$Q `Pm P20 P0 p P:Q 0D 0;P0@a ` R` [ Q PVN 㜑-`+[ Q`04 p4Y`P4W@40P'0 S ] Q @P =K] Qhآe0 S Q   Q忢4P`0 R P# p  00S姢PP p  00 Q哢P4`V0C\P#@ p\P 3/\ @/o#P3P" /O-M@``P KpQP1Q'  !RP P ,P  0=P  K @R!, 0<08 $P %$P   `4( 0, P PP Pi(@ 0Em aP P] PP0 S  f00Rȡ  0 Sap0pạ0  0Rlp pᬡ  0 Ssp0pឡ0  e0R 0 VQ M PDP0 S _ t00Rl  0 Srp0p^0  0Rup pP  0e 0 6P0 S E n00R3  0 Sup0p%0  0l`R `  00`S QHL0D 0[P0@a  .> 0Hp0 S [ Qޠ,4P`4 ZC* 0`PU4@4;P `p0 4WPZ(PJ$QD: @Q;` p$P  P ;P4U@4E 0PB 0 S3 Qx4P/P0 R P# `  00S`PP `  00 QLP4PU0 S ] [ QRO  P Q P PMQ&  =;$U.@0Ct P   r P  uXn P  u Pߟ l` `Pџ  `:f P  a PᲟ  l P᤟  s Pᖟ  e QOᇟL] `Q|$ A0(,@4P0 :+P$ A40@ P   Q Q  ]:0U`U^ Q  N:``0Sw90UF 0 R P;Z 0 S , Q0PB 0 S Q4P/`0 R P# P  00S՞PP P  00 QP4`V $`  P P9 P Z8 $偐P 90` P 0`S80  P= P0 S I n00Rj  0 Su`0`\0  0Rl` `N  0Sl 0 @$ P0Z:b, Q1.  Q<9n P   u P  l P  l Q ` RD8 $ U `, Q'$  Q30PPPQ Z 0 S , Qᴝ0 `PB 0 S Q᠝4P/0 R P# P  00SምPP   00 QtP4Y$ PZ:P`V7``, Q*'  Q63%aj)lTPPQg Z 0 S , Q0$PB 0 S Q 4P/0 R P# P  00SPP   00 QޜP4Y$ 0@ D0i PZ:`OBpPU7Pp0 S(p { Q(娜4<0@4  ,pI `q v`AR"R Q`0v`s0&" . 0A   "  P K ` V 0 !# ` Q  & ( 0  `,00O8;ViQ  g70 `0S60P'  "``^ P`KO @N4኱P ,` 0 P| @o`,` p QW:4@4,0PM 0 Sf Q(4(PP90 R P# p  00SӛPP p  00 QΊP4X{ Q40 S } } $PQ p`6(唛3$P p`4  QPKT  aIaKhO-M@p``P QP0Q  !RP P ,P   0<P pV 0 S , Q*0PB 0 S Q4P/`0 R P# P  00SPP P  00 QP4`V0 S : Qњ0P 0 S[ Qᾚ  K AR!hHHpV 0 S , Qᒚ0PB 0 Sd Q4P/`0 R P# P  00SgPP P  00 QSP4`V0 S : Q90P 0 S Q& 0<08 d: QB C$Q %$QpV 0 S , Q0PB 0 S Q4P/`0 R P# P  00SљPP P  00 QὙP4`V0 S : Qᣙ0P 0 S6 Qᐙ `4( 0, P PP  QQ R  Q , Q. /QpV 0 S , QC0PB 0 SG Q04P/`0 R P# P  00SPP P  00 QP4`V00 S : Q0P 0 S Qט  @ 0'd C PD P PPV 0 S , Qᩘ0PB 0 S< Qᖘ4P/`0 R P# p  00S~PP p  00 QjP4`V0 S : QP0P 0 S  ` P pV 0 S , Q*0PB 0 S Q4P/`0 R P# P  00SPP P  00 QP4`V0 S : Qї0P 0 ST Qᾗ : Qv w pV 0 S , Qᚗ0PB 0 S; Qᇗ4P/`0 R P# P  00SoPP P  00 Q[P4`V0 S : QA0P 0 S Q.6  P2 i  Q  Q, Qxu: Q1.: QWTPV 0 S3 , Q0PB 0 S QԖ4P/`0 R P# p  00S἖PP p  00 QᨖP4`V0 S : Q᎖0P 0 SG  ` PH IPV 0 S , Qh0PB 0 S QU4P/`0 R P# p  00S=PP p  00 Q)P4`VU0 S : Q0P 0 S1  ` P2 3: Q P `4, 0 P>(P.$Q(: $QP`  P 0PQHL0D 0[P0@a  /? 00 S [ Qᑕ,4P `4 X=*  0 `P4@45  QZW  Q  Qxu  Q, Q'$, QMJU4@4E 0PB 0 S Q04P/P0 R P# `  00SPP `  00 QP4PU0 S ]   Q  Q [ QGD $P QB P2 PB`Q{ /U5, Qtq0C: Qli .P$ A0,4@P <: Q`V: Qqn`: Q&#`$]  `Qj$ A0(,@4P  /  Q  Q  Qgd ` Q10 S / t00R   0 Srp0p0  0Rup p  0e 0 ft P  r P  u  Q}z ` Qȓ0 S 1 n00Rᷓ  0 Sup0pᩓ0  0l`R `ᛓ  00`S n Pᅓ  u Pw l` `Pi  `  Q ` QO0 S @ f00R>  0 Sap0p00  0Rlp p"  0 Ssp0p0  e0R 0@ Mf P  a P  l P  s PӒ  e Q Ē , Q!, Q, QC@, Q  Qkh `Q -0UU `Q -P0S,0$P`U 0 R PX 0 S , QU0PB 0 S QB4P/`0 R P# P  00S*PP P  00 QP4`V` P P $- P ZJ, 刐$PP  -0 `ailP 0 `S/,0$P  \P= P0 S G n00Rố  0 Su`0`᭑0  0Rl` `៑  0Sl 0 ᑑ0X:, Q/,  Q:7n Ps  u Pe  l PW  l Q P R+ $P `U ``, Q'$  Q2/$KPPQ X 0 S , Q0PB 0 S Q4P/0 R P# P  00SܐPP P  00 QȐP4Y $P X:+P R+  ```, Q'$  Q2/ KPPWQh X 0 S , Qu0PB 0 S Qb4P/0 R P# P  00SJPP P  00 Q6P4Y 0@ D0$P X: `BP Rh* P0 S { Q4<0@4  $`(PG Pq uPAR"SR*R 0s01 0p0#0B P UP!3 R  P&0(   00. 0+(?UQ  *0 P0S)0(P P) $ 0PPY(P OPP@'ߤP $P 0 Pz @oP$P P ` QV:4@4$0PL 0 Sc Q@4P9P0 R P# `  00S(PP `  00 QP4PU{ Q40 S } } PQ`EBP`E  QPQ  )aoag 0/٘ 0A ٘///pL-M`0@P0 @0C0P@ gP  PD R Kp Kp0H-P@P P0D R 00Hf P 0S /00 ` R/ H-P`@Q x) p Q(` HpL-M@`P   R 0-,P(P $V P Q SP  SWP  Q  KpO-M@ PQ.  R+`p  @  @PpZ `儦P`pZ  PrPKO-MQ&`P@`@PpQ ( ` Q'`p  PTKpL-`@P  00pL/O-DM`S Q@,0   $@(p,P {(P PU'Pp QQc  _$P\ pP2(@Y(  /O` P 00S0  (U O( (803/(@`(% 000  6& p P`:0P p P 02|  Yw(Q ``K`0H-@P PP @  0 |݌0O-MP. @ Q&P`P `pQ ' P Q&Pp  ?XK0 P P @KM-M@PP  QEpPKoR  * ` Pp P ( PP Q dP P P P KK 0 0vdai`iO-tMXH Q!z,P  @Q %'p `pWN&p@   Q@l 0AW ]z KQ  &@ `@T&@lၝP  @0S $ K  00@$@ ^P  НP, 0@1  0P ` P( p- `Pf$P($H p@ P & `  R% `@0 0ẠF p P2:H/  /Op(@ p 00S0  T O 803/((PUp Q:(P , 30 RP( M"0$H$ "j, P8 < ,<L\l|@0QF84Pp0 ` P % @  P%4 A O@    P  0K H @ , P 00PpW(P: K`P@ pQ %p `Z$`p  !N 8 k P` QQ[ `P(@T, 0@0$ PUQ; KP@p0 Q d%p `Z$p ` !zN 8 $ P QQ , 0A0@PT0P @ @ 0`U |xH9   M뵝l5\ai P/O-Mp@OP `txPp@ PG C p P  P $ B` Q$P wP&Q/ ምP pQ $ P Q#pQP   B  pPKK  0)pPKH-@P$ `Q z$P pPU#P`P P 0x a O-M P]  P PPPPP'CP&P  p P`&P P%P PP P 3 %R % KU  P $ @ P.#PKO- Mp@P `oQ  4Q: )# QP , @v `PK`VmP`pU`J&` $Q0  0 2pY`"` P # B R" `0,`6/`P V#  a೫K `xP `ᡫ P 0 0n딘Tarii82lӓlH- Mp j@ p      0 @T P`Q @@KL-@  0 S <0@  P  LJO-,MP@P "p `pW!p@ @P " `Y!@` puW$pW@Q+ "2$P WW&   @P WPW   0_N PP!@ @P /P pP @ )TP `QO Pp :@ P3 Z$  @  00S 0PP` OZ    @8 2/P`O$  !  Uc p (0 P\ ` p!PTjI) < Q4 ` @r t@pB RC"R*RqaB`a @K@ TB @R  pV!QBb) )"  !` pP U:p  T(0p0` W:#P  RR   K K$Hʩ@<   0 0mMa"illaMagK-PP @` Q D! p Rm 0$p 7/ 0KK-M@` S  H    Q  B4Q  '00    Q  B4Q  +0pQ  P R p  #K 0`KO-Mp PQpP  P  1(P 0 `SE @QD  @TK0t0S0 pSP `P   4 R0 0p0  2 1` b P ^ p^ @`Tn P `p`U 0# POV`Q|` D @ 00S< 8   R  `*P  @ @`Q    Q,` ` @P p T| \  @Dq P+HP M!00S> %:Q   Q` LY 0# PU`Q   R    p@T0  2  QETC Q"  t`T)6 @ P`  @ P`ᵜsP`V`T PA   PTP'Q#@PP@`Q  p QHp`5P3 UQ&@PppP` Q   Q ` zW 0KOK 0 04Q0 0  2,K-` @P p PpWp@崙P  \%@ 0@K-` @P p PpWp@尙P  /%@ 0]@K-MP`pP  Q P @ Ry  0'!  pQ 1 @ RZ p 0pPKKO-M-xM@P :p`(@0,0$004H0P$4 D8@0`D@<@Q@ L 0S Q t8lhd`\XPPD$p R PQ 8lhd`\XPP#p R$`PP D~ {@P xV  @ Q p d03/P @ 㺋P  03/Pi  @Z 0T@PXPPPPt  P `pd@\Dlh03/ R Qs Po* ,@P*QPO@ QH0D 0+P0@@a 9P L@PK L  . T+@ PXl P *Y: N 0po27/~ {@0(0, 0@p$0: (KЍ 0 07 P'lh h0 0 XT T0 0 0C0|l{O}l$|0y;a.iyl);aޝiOyl ;aiAylpL-MP`1@ @ @1 CP  P DP  ] P KpLKpH- M      ! РQ 9jb `  a  QQ% !0 Q) '0 / !" 2!%*!"A  +! РTEQ    '0 ?0/"#0!%*!"A  +! Р РA(. +@0   */(. +@0   *3 ԡH- M 0(   (K1(B0,pp ppppp p$pp\   R\   R\ /L-M %@ R?@ \0 0>Kl[VlH- MP00 . РkVl 00  0/`pL-M@XQ P@`Kp,pL-M@P P@`KppL-M@TQ P@`s~oKp\O- M`,@pP, ` 4 Q@ KOKpL-M@  jIP ` PPP5`P KpM-@Pu`lQP  TpP 0PUPu`RQP  SpP 0PUPu`8QP  Sp|P 0PUO-DM ` @0p p0phPPpP  1/8P PY ᇆP$@ ɞ 1/P YO  p YJ@(u`Q47a$ Q pO P p AP R  Pp 0(u@!R PR0}@Y` n, pT3P ,@P)P,`PP`bPP @Y `> 1/OPa @Y` , PP) ,p`,(PT OP  A  P(`Pѳ`P,,<YPhYT Z $@P @ P DKi,POO֡iOMhMO- MQ- PP) %P ` @pPP`"EQ@ KOKO- M@L T& EG/F`V!!!!w F WP:u PPZ Z P X P:` P PP@T LjV@*@   A * *Z@PV:FPP     Q1 ]`F W*PP PP   P F P:  @ KH- M% \?\   Q  T  *@ 0   2/ Р  ǒ] a_mgM- M@ p`P  P Pp +P' % Q? QXT *hh  2/K84 40 0$  ƒ] a! aki[i algM- MP@ `P 5 p P^*P' % Q? QUT *hh  2/K84 40 0-$  'TŒaanjiiajgK- MpP` QP pPW P P XP pPDp P  P PpH*P= p PP  @ PP0*P% 0%P 000 0S?P0000S000X  *hh  2/K84 40 0$  ÒaiahiiMaOhg/pL- M@ P% P? P P 7 ` P`PD    T  2/KpmaM-M@6  ˂Pp?`P # 1/4`P# P P03/0 3/x 0+am@ 0^K |o(A@@F^iH- Ma m@0C РL-D@߄(P nlL-H@Ȅ,P L4& ml0H-Mp@pP%`P?P C>0 0 % P0? Q  ܂KH-M0P@`C p0 ǂ0 ‚0徂KL-M@%0P%?P?0M0  㢂KG0H-P@3$  0kM-(Mp@ $P`c%P?@oPV pP p1/KQ,P  A P `M-(M `p$@PP @1/KH-(M @P`p%@oP? %PP?1/^KH- (M 1/ РH- (M$  1/ РH- (M0$0 0000000  1/ РM-Mp`P A$@  P$  @ 0P`?[`\P0S,@@@c @<@@4@@(@@8@@K;lhM-M4@@QM.U Ll Q 0<PW8@ LP`(@P4,@`P `N@T P Pu T@KM-M`PPPK P@pN=|<< <<><><`8<P VK\=F9lP /P/L-M @=\<<L<<888<P .KL/c8lSk<<pL-M@4@PH L`P(`P *,C8P@`$@` ?<0AQ,@ /A&$ (,0,@c LQ   Kp6lkpL-MPPP `@<I<M<E<W<P KpO-MMp @``c` (V P@ $q $,@@/, @` P# P L `  R q R    $q $/, @PKK-M@`PPPKxPT $<X;;=;p; 0R Z 04pP;` '7;=;7Y ;|;P P@`;=`V:; P KA 8x26lj\0 400 0000 0$0(0,  80<0 00@D0H0L0/`0H-@@PU m#0,0_0H-@DPU W 0,|0Hl" P_H- )MP 0 0`ZUi1l0H-M)@PK0000S/t5000S/X5pL-MPPP `@B;::, B;:P YKpapL-MPPP\PKp `@;::<:P 5Kp4P/PlP/L-M @:@::0::P KL/4/l/lO-M@PQ KP 0K` m8K:${:~:(p( ,0R 03i:@ G8@_5T:?Q<`  ` (8S8@4@ ⨐ ( `,  , 0'HD@<84,XTPL\ 0K( 7m0,/P@q@t( !P8K :p{5:@s59V V V 8K99@  8K99@([O9 8K9`(L, T, 兮R4P* -K]/ltddd$d`/jj jpL-MPP!P @9p99`  0R ( 029 P Kp+lpL-M`@P KpP P9V V V \9`^9V9Z9P 0R  0{2U9 P Kp+l+l++lL-@L Q   +~iL-@L Q   }iH-MpPPPK P@`R9h8988pu;;8H;8P _Kx-C)lH-MpPPPK P@`9p8888pu;848P *K,w(lpL-M`PPPKp P@8X8888`u:8P Kp+'l0H-M@PP\PK0 P88i8m8e8w8P ׿K0 +&lH-MpPPPK `@P8`B8F8>8B8?:>8F8P K*&lpL-MPPPpPKp `@g8H8888:8P |Kp)-iK-M`8PH PPCP@ p<87777@W37@J 0R i 00797@7377 :7 P &K<)&lui0 `0 3$l0  $lH-MpP@`@1/QPKPP 7 P H%p0Q?p0Q`_7q7 P ѾK|'H-MpP@`@1/QPKPP 7 P H%p0Q?p0Q`y907 P Kx&M-Mp`@P@1/\QPKPP (&P F7 P H%p0Q?p0pQ296D86QQ Q X X90 4466 P +Kt%Z=h!`k`M-Mp`P@@1/,QPKPP 60H  9X  7}6PP"  `{6x8w6$Q Q d d@0 S@@^6p6 P нKڠ#lk@@T @@TiR   R P 0qPP⁧K  G` g///////////////////L-@8 ѯ$P -p L-@< ⼯(P Lz /L-@$0& @ٯL舼L-@(0& @ʯzLY  R/(P/H-@PQ A >PP`UH* VF"@  o!pr!  Yk W   P:@o `x>UP1U:O-M@Q# PQ[*ዽP P UpXE E Z: rPPP P0 qpW( Y P:X P  P !R   R 0`V ! pKjO-M`PV? T& EG/F!!!!F@w W: P PU @PPT P : @ @ P  PPUPK  P PO- M@pPD0 W :`p0pp`P V S P: 00 PP P S- P: 00 P P S P:@ Pa @ P KPQ/0H-@P0H L-@DP +,P 1/L| L-@HP ,P 1/߽L H-BM@(P 4\ P0P44 0P00000(@<@P K$P@ ?<0 BR,@K  $A $i@cKH- ጺHk L-@ Q QB$ QO-M@OR p `,P  AP PpT ,P  AP PK (08@HPX`hpx (80@HPX`hpx/H-M@($P`AP YP K P KH$Up0,  E( 0  0Rap p0E(  0 Slp 0p"E( 0  0R p pE(  0 Sap 0pE( 0  0Rtp pD(  0S 0 D' Q 'p P `@`Pn p`ue  PD (  v  PD (  a  PD (  l  PD (    PD (  a  P}D (  t  PoD (    Qv w PpWp`OP  P:bApW  D/P w`<Pp( p  0 0S,DWPE uw`<Pp(  0 0  QDWPE u' Q}'`,Pe  mBP`VJ`pPOp QP pPW P P P p DpOpP ` QP `P Q D`V P PRP `AP P`pE@pP ` P`V`p P( 0 S 3 00P_C(  0S( 0 QC3 pP. i6P@pP CK   P+C (  (  Q D`E PQfp" PtC  0P> ( 0 S R : QS TP b@uP`( p  0 0SBVPEu(b@uP`(  0 0  QBVPEu( 0 S  ) QBBK)  Q :  QB `P  PQ` !+B( 0 S  : Q :  Q^B PP x `QP *8k~kkikL-@L1/Q P1/3O-M@- ` pP <  PP eppP '  PP Pp pP   PP ;pPK    /ਗ0H- P @ QPP@0謨 /0H-@L1/P P1/  @P 0H0 P P@0L-@ QL1/P P1/3 <H0H-@L1/P P1/7@@H0  R@%Q x0P Q@0O-tMp`P@HQ@QK  Q  P I @ Rq 0b:PU" @p QP pPW P PP p  H@ D  @DpQ @ @T%@p 0P 0P  0@ 0 -Pp,<|   0p D p0&P T X R  ` P@ P  5 P @ @` P@0 $,PtOp0@ @, ( $K  4 4K0P  ᕼ<Q(PP*48 @P 88$P O0 p  P 8v8 00p D, ` 0 @  Q p @ 804 P$@  p" @S A @@p 0(^P 0P @pH,p804 @P 0~@`WW<PXDtT,PLP0 <,@ @ T@P` 0p` 0 RH@P  0p ``@PJ p:Fwkwk0H-8MP0 @P PFP UP   Q  R @oB@K0M-`@PH R@ R  P  Q  P J p Rr 0c8PU M艋  D  H0H-@L1/Q P1/P(1/00H-@L1/Q P1/P(1/m0L-@L1/Q P1/Q3  4\ HQ/@@o/O-dM@N>1/P81/`@1/VP` P ( 0 S n00R>(  0 Sep 0pq>( 0  0Rwp pc>(  0S 0 U> QPbP 4zP<`p( p  0 0S6>W`F vA 1/P1/1/p: Q6P3?   R;Q8Q 0P. q>( 0 S  . Q & Q"PU>o QkPhG>( 0 S T . QU V  n  P= (  e  P= (  w  P= (    Q: ;\wP<`p(  0 0  Q=W`F vF.  Qq= QP=/P vP<`p( p  0 0SN=W`F v4vP<`p(  0 0  Q7=W`F v( 0 S . 00P"=(  0S( 0 = X( 0 S ! ) Q=4=K   P< (  (  Q )  Q .  Q<B= QQW XW?Q@P:aPP 8K ,@Z-DpJ$j`` 0`I([p ` 0<   RP Q.^  R  ^ 0`FPEpG S:0\4 , 40 8  2( 0 S W  00RU<(  0 S[p 0pG<( 0  0Rap p9<(  0 Ssp 0p+<( 0  R 0 0<<( 0 S K ] QK RC   P; (  [  P; (  a  P; (  s  P; (     Q ]  Q;lckdck`gkdkK-`@41/PU 0 S n00 R;   0 Sap0p; 0  0Rtp p;   0 Sip0pq; 0  0Rvp pc;   0Se 0 1/p P+:<1/P% $1/;0 S ,00 P,;  0S 0 ; QP;}Pe t<Pp p 00 S:WPE udn  P:  a  P:  t  P:  i  P:  v  P:  e  QqK:r<Pp  00 Q:WPE u,1/pS p0 S : Q{: pP :  Q PQp #:01/p `0 S : Q@:`P \:  Q PQ{` "K:,  P:    Q xZkXk L /@o/0H-  @Q 0P Q0@0  /<M-@P! ` P  p P `  ~ /0H-  @P 0 P P@0pL-@ PQ  ` QP PHpM-0M@9 `Q mP pPUP`὇` PV 9U ,$0 S$ . Q U +.  $Q99,$0 S$ 00 P8, $ 0( S$0 8P ,sPw`p, p$ 0$0 S8W`FvrPw`p, $ 0$0 $Q8W`Fv 0Px" y\Q P& p`, p$ 0$0 S8PP p`, $ 0$0 $Q8P(1/!0 B\Q P& P@, p$ 0$0 Sl8PP P@, $ 0$0 $QW8PX ,$0 S$" ) QB8v8K   $P58$, $ (  $Q6 7)  $Q ZkZk@ZkhYkP/H//0H-  @Q !0P QK@0  /pL-@P`PppL-P ~y@ P p `P@pH/pL-@  PQ  ` QP  @P p PP@ppL-@  PQ  ` QP7@@  R@%Q pP Q@pH-@HP  `P _ p P`0 HHH-@  `Q >P pPUgP`(1/H-@  `Q P pPUAP`(1/x0H- M@61/P( Q$P!770 S8 00P6  0S( 0 6  QP0 S! ) Q66K0  P}6  ( Q ) Q 0H-DP@@@ P@,P@HPLPPP$@0{{l{R//H-0@P q@Q :P P@   Z$` SP<  o `ofO-MP P %p B@pWNpP  ` sC @P    PQ 3@d/ 0 DP 0< U 0QB0S 8K o5 P 8K,6YR'  P@@4pP  ,  R 4p@ $~T,<p ( Pj `P8@@P  (P<@@@P  (P<@ OPw 04 Pp @P q ( R< p 0ԮPW ,@OP`@  00S 0 U O  8 2/8p$`PQ,  0<P `]@P A\ 1/R@P 0A<0 @jNO  `Q ,@D@  `@ P (40 S( <00,R8K4 ,(  0 Se`(0 `8K4 ,(0  0r@R( @8K4 ,(  0 S(0 @8K4 ,(0  0Ro`( `8K4 ,(  0 Sr`(0 `8Ks4 ,(0  0R:`( `8Ke4 ,(  4p0S (0 8KV48K4 (40 S( > ,D@ (40 S(  <04P0,R8K14 ,(  0 Sep(0 p8K#4 ,(0  0r@R( @8K4 ,(  0 S(0 @8K4 ,(0  0Rop( p8K3 ,(  0 Srp(0 p8K3 ,(0 < >0Rp( 0r s<4p ,(P8K3(  ( e ,(P8K3(  r@(  @,(P8K3(  (  @,(P8K3(  ( o ,(P8K3(  ( r ,(P8K3(  ( : ,(P8K3(  (   ,(Q > ,(<Q8Ki3Y 0, HpD L0X0p0000P hP 8PK8  @0  4 p<p ,(<P43(  ( e ,(P&3(  ( r ,(P3(  ( r ,(P 3(  ( o ,(P2(  ( r ,(P2(  ( > ,(QD E< ,(P2(  ( e ,(P2(  ( r ,(P2(  ( r ,(P2(  ( o ,(P2(  ( r ,(P2(  ( : ,(P2(  ( ,(Qq r (40 S( p @,Rh2 ,(  0 S(0 尐[2 ,(0  0R( 尐N2 ,(  0 S(0 尐A2 ,(0  0R( 尐42 ,(  0 Sa`(0 `&2 ,(0  0Rt`( `2 ,(  0S(0 尐 2DH1/Ph q2dNk @,(P1(  ( ,(P1(  ( ,(P1(  ( ,(P1(  ( ,(P1(  ( a ,(P1(  ( t ,(P1(  ( ,(Q @@P EtE04 Q 4 @8 D Q p(W40 @ ( t S <00,Rf1 ,(  0 Se`(0 `X1 ,(0  0Rr`( `J1 ,(  0 Sr`(0 `<1 ,(0  0Ro`( `.1 ,(  0 Sr`(0 ` 1 ,(0  0R:`( `1 ,(  0S(0 尐1r1 (40 ( S <0p0,<R0 ,(  0 Se`(0 `0 ,(0  0Rr`( `0 ,(  0 Sr`(0 `0 ,(0  0Ro`( `0 ,(  0 Sr`(0 `0 ,(0  R>0( 00LHLQ8K0K<4p ,(P8K0(  ( e ,(P8Ku0(  r@(  @,(P8Kg0(  (  @,(P8KZ0(  ( o ,(P8KL0(  ( r ,(P8K>0(  ( > ,(Q \ooponhH- MP@ ` V  40$P" p T0P @P*` 0`gPT ;0`Q mKP*`/R00 S :00P/  0S 0 /P/0/`: P/   Q  0 0(vk_UhhO-,Mp `ATPM @ 1/p` %@%P P8 ( P0 U  R P%P ( 0 S  ເQ /`  Q M/P  Q C/@u/K$KUP//_pL-@` 0 S  IP) P@Q  P:',`V  0㚨P PP 0 VPppH-8M@0`Pp@pW 0p?p@Q* p $`(p,`04P@)DP @ R  P*@+@T@@KO-MPX@` pPD+++ p P p PpUx 00P  0 ,D 0P  K  0 0.0ku_*Phh //// H/H/H/H/ ////// L-MP @ 0@r Q @P nK   0P @ 0@r@jQ@P"KL]Q =fnkmkpL-MP@P ` 0``r 0  Q@ `P -Kp   0P ` 0`Br0L  lQ@`P! 0 KpL\Q  `p"  P0 R 0ᴟpO   8 2/PP`XQ AOXK /pL- @%P P PO,P  pA` PPpL3H-pP#4 E@00@S@gV `  `[@4 T R % R! $% ( Q   R QH-M@  0`0 %4Q BQ UP#P j  T T TPQ, KpPUeP` P j  T T TPP PKQ 0#D 0P0@a  84 40 0(} QK 0C_ZBhm|kpL- @%P 1P PO,P  pA` PPpLO-MpP  @ @%$Q P< D`V @j W W W@@@OpP P p4O`1O0d M  pPk h  `X @ aV @j W W W@@@OpPA PQ 0#D D 0 Q1@a  !1 0O| PP( pO砠    R  R KN`N@ 0AM<v 0C_ykxkh ykH-@`PS c`pPVDWDp J0    x]kL-0 @J~    //H-  A0 H/H-  0 0 H/O-MP0p0 `00@4pZ Y 2/PpZ  KO-MpP0 `@D@pZ Y 2/PpZ  KO-MpP `@@DpZ Y 2/PpZ  K/O-M 0Po PZ `P O 0  Y q:W p P:V8pV5 @4P0P 0 `F' O 0 Y : P   R:P@4P0P` V: Z) cO@ 8 2/W`T 0 R 0#TZP KH-`@P p 0 U  P  RO-MP`p 0 @ `?OW @ WK (0 R 0Λ0?OQ  @8 2/0W  WQ (0 R@ 0ᦛ0Q    K 8 KO//D R/@P/ D\@Q /M-`0 p0S`PFpW0S1pPpR0` VץPoR`CapP@T`,Bp J0dP Tk0 P A0S/ R/O-M p 0Qo@Q^ pM O 0 0P  q40S 0P`U`qS p ``Q* P  00S  0ϚR O 8 2/ a P4P0P Z K/L- 00@!4Q 0@0T0!QH-@`P.p`PPP U&U#  W`p@obU\EA J0~` 00QkH-@`PS v``pP @VHAp 0Q    PkL-@0 ?    //H-  A0 H/H-  0 0 H/O-MP0p0 `00@4pZ Y 2/P pZ  KO-MpP0 @`D@pZ Y 2/P pZ  KO-MpP @D`@pZ Y 2/PpZ  K/O- M0PoP@T} `=@l Yp:W p P:V0pV- 4P0P0  t`F@E Y: P   R:P4P0P`V: T* 04pO ` 8 2/WV 0 R  0V P@T KpL-`P  @@ U P  RppO-MP p 00 0 0 @000 `?OU ` UI (0 R  0 ᔘ0?O Q   ` @8 2/ 0@U@ U (0 R  0 `a0 ?O@2Q    @`p8 2/0p@Up U (0 R 0 `( 0   KQ    `p8 2/ 0pUp U  (0 R  0 `0 ?OQ    p`8 2/0 pUp U (0 R   0 `× 0Q    `p 8 2/0`U` U (0 RP  0ᙗ0Q  8 2/K/D R/@P/  D\@Q /M-`0 p0S`PFpW0S3pPpR0` VץPoR`Cy]pP @ @Td>p 0TP Dk0 P A0S/ R/O-MP@P(00 0 R  /o"   R0A 0 ` p !@4 R 0p0W0@A@Rp @a pP   00S0 – \ O 803/ppP   00S0 坖 \ O 803/pp 0P+ `  00S 0w 0 0R O 8 2/ 0 DP@PdZ K/L- 0@0A4Q 00 S @AQH-@`P0pN\PPPU(U%  W`p@ ª@obU`< 0` ?kM-M P JK00 `oOTP @P  0J @P @p  08 A 0 RR Pp  0! $X @H-@`PS [`pPvH_<p 0ᖽ    =kL-@0 ㄽ    //H-  A0 H/H-  0 0 H/ 00AO-Mp@` p   RQ 0/O  qW0 RQ 0@@PpX `9P`pX KO-M P@p@Z `9P`@ZK/O- M0PoPpZY `  0UV @4P0P0  `F  0@P4P0P` V:p cO@ 8 2/W`T 0 R  0gTZP KH-`@Pp p   RQ 0/O  qW0 RQ 0 U P  RO- MP႑ 0 0p0 `00 @?OU @ U`< (0 R  00?OQ   @ `8 2/0@`U@ U (0 R  0 ȓ0 ?OQ   @ p8 2/0@U@ UK (0 R  0 pᕓ 0Q  @ 8 2/0@U@ U (0 RP 0m0Q   K8 2/K/D R/@P/ D\@Q /M-`0 p0S`PFpW0S1pPpR0` VץPoR`CLY@Pppd9@ 0)P 3k0 P A0S/ R/O-M@(@pp0 0 R  /o"   R @0᎝ @! O   RQ 0/O  qW0 RQ 0 0  ` 1 P40S 0`pVpQ PS `q `P  P  00S 0x @R O 8 2/ @``0P+ P  00S 0Q @00R O 8 2/0刡 P4P0PhX   K/L- 00@!4Q 0@0T0!QH-@`P.p)XPPPU&U#  W`p@obu`8 0`  /k/H-P ``p@P 00S 0ᲑW O 8 H/#/#/H-@`P0pWPPPU(U%  W`p@ ª@obU`K8< 0ჹ`  H-kH- M 00 04 00 Р/H-P ``@Pp 00S 00W O 8 H//pL-@` Q  PA P pH-@`P/pWPPPU'U$  W`p@@obU\7 70` @*kM-` `4P@Pp 00S 0᪐WO  8 2/P  @A4 P y O-M@@`PpO0Qpp aPE  00S  0 [ R   p8 2/ aP 00S  0 p6R   @8 2/P Q  @A P KH-@`PS 2V`pP @VH6p> 0     t'kL-@0 >    //H-  A0 H/H-  0 0 H/O-M  #0 0#y #wP9 p/"0'p7W"PЃuz"0'Ap7#+ P !pq@X pY @J 0@ :S  p 01@XKⰏKⰏO-M,0 0#yP#w9p 0'p7W PЄuz 0'Ap7#0 P01pq@X pY @J @ Q p0@XKⰏKⰏO-MpPЄ0pAX pY @J @ Q p0AXKⰏKⰏ/O-,M0Po R p 04P0Q   0: `0$0 ` # i:0,P)#GP0OX@?# $%E#PEPJ5# $A@3$0"K5 #0@ !:0R  0 S:WF WC 01 0PQ0pG7   , 0 `X?0!#6!`5`:!#A0 ;!:0P 0S:P pWn:e R- COp ` 8 2/ U@`W 0 R 0W   R K0H-M   , @,W I_RP!P%\L!EJ!P$A@T%K!P P  QK0K0O-MP p000 0@000`?OU` UI (0 R  0 ᑍ0?O Q   ` @8 2/ 0@U@ U (0 R  0 `^0 ?O@2Q    @`p8 2/0p@Up U (0 R 0 `% 0   KQ    `p8 2/ 0pUp U  (0 R  0 `0 ?OQ    p`8 2/0 pUp U (0 R   0 ` 0Q    `p 8 2/0`U` U (0 RP  0ᖌ0Q  8 2/K/D R/@P/  D\@Q /M-`0 p0S`PFpW0S3pPpR0` VץPoR`CvRpP @ @Td3p> 0QP k0 P A0S/ R/O-$MP@0PQ``   00S 0R O  8 2/P     : "9"7`)`?0! #&6!`P5:! #A0#";! 01@40S 0P`U`@A@S` Q`P @  00S  0tR O 8 2/``@T#  00S 0@N @\ O 803/@`T` @ ,P  00S 0# R  O 8 2/ q4Q0Q6Y K/L- 0@0A4Q 00 S @AQH-@`P0pPPPPU(U%  W`p@ ª@obU`1> 0Ȳ` \k/H-P ``p@P 00S 0၊W O 8 H///H- M 00 04 00 РO-M@p@`(P0 0Q`` QE O 00S 0 (R   ` 8 2/ Q 00S 0 `R  8 2/0KH-@`PS P`pPvH0p F0    kL-@0 Fݱ    //H-  A0 H/H-  0 0 H/O-M  #0 0#y #wP9 p/"0'p7W"PЃuz"0'Ap7#+ P !q@X pY @J 0@ :S  p 1@XKⰏKⰏO-M,0 0#yP#w9p 0'p7W PЄuz 0'Ap7#0 P01q@X pY @J @ Q p0@XKⰏKⰏO-MpPЄ0AX pY @J @ Q p0AXKⰏKⰏ/O-,M0Po R p 04P0Q   0: `0$0 ` # i:0,P)#GP0OX@?# $%E#PEPJ5# $A@3$0"K5 #0@ !:0R  0 S:WE WB 1 0PQ0pG7   , 0 `X?0!#6!`5`:!#A0 ;!:0P 0S:P pWp:g R- COp ` 8 2/ U@`W 0 R 0W  R K0H-M   , @,W I_RP!P%\L!EJ!P$A@T%K!P P  QK0K0O- MP႑ 0 0p0 `00 @?OU @ U`< (0 R  0儇0?OQ   @ `8 2/0@`U@ U (0 R  0 X0 ?OQ   @ p8 2/0@U@ UK (0 R  0 p% 0Q  @ 8 2/0@U@ U (0 RP 00Q   K8 2/K/D R/@P/ D\@Q /M-`0 p0S`PFpW0S1pPpR0` VץPoR`CL@Pppd-@ F0ṮP $k0 P A0S/ R/O-,M @ 0QoQ @ $  P  : "9"7p)p`?0! #%5!5:! #A0#";! 1 P40S 0`pVpQ PS `q `P"  P  00S  0@ R O 8 2/@ ``P+ P  00S  0݅@ R O 8 2/@ 刡 4Q0QeX K/L- 00@!4Q 0@0T0!QH-@`P.pKPPPU&U#  W`p@obu`N, F0ᆭ` Tj/H-P ``@Pp 00S 0AW O 8 H/H-   cy_eH-   cyy_{eH- M 00 04 00 РO-MP@P`p0Qpp K O 00S 0߄R  8 2/ ` 00S 0R   K8 KO/H-@`PS J`pP @VHu+p< 0ᬬ    jH-@`PS J`pPVDP+p 0ሬ    \jO-MP(p0Ppp`W` p#@  00S 0? p@R O 8 2/p `W`!@p  00S 0 @R O 8 2/  P  O 0o  0P 01 @40S 0P`U`@A @S` A` R$P 00S 0ṃ  P\ O 8 2/ `R`$P 00S 0ᐃ  P\ O 8 2/ `R` ,pP@ 00S 0g  pT O 8 2/ qP4P0PQX00 KO-M@ 0Po P@Z @`0QN p O 0 Y q:W p P:V/pV, 0Q! @ O 0f@ Y : P   R:P 0 8`F` V: Z) cO@ 8 2/W`T 0 R 0ᚂTZP KO-MP`p0@`?OW@ WK (0 R 0h0?OQ  @8 2/0W  WQ (0 R@ 0@0Q    K 8 KO/O- M pP@_O  00  R:Y 0lP RP0@PPQ#@ @@l#@P_O $p0P ` @01P40S 0`V P@PQPS 0;P@K@P 0,o/Ao/AQ3/H-   $`k_eH- B$QC  \$p|0<$8HThtDP(<HTh( 4t$@L0<XdHT`pl|x(4@LXdp| ,@Tht(4H\ht[( ,T4 ,C-*C^?yvH= 㾊yC-X* ऊ i Q' 㓊$# - ! {. P& I% D(|tld\XPLNL}Du@80 $K) 9W2 ݉ ؉ Ӊk ȉxpVhs`3X 㷉H@O8 㬉(= ?" 㛉 㖉[   ㅉ6 }X! xT0 s\.T& h c ^# Sxx Hl C| >x 6 1<: ,\X" Yj.j jjnjjjjjj(j/jjjjjjjjjjjjmj5jj?jj"j#j'j/jjj`jkjCjjj jj+j-j4jljOjGjRjjljjjjjj;jjjrjj|jjjjjjjjjjj9jjOj^jjjjjjjjjjj jjj%j-jjIjSjjhjjjjjGjjjjjjjjjjjj jZjajdjjjsj~jjjjjjjjjg)gjjjjjgjjjjjjjjjjjjjMR_OejpL-@ rQQpL pL PP  `PP  Q:pL ,M-M@`Qp0!S P_pP> PP Ს pQڠP P` p `p0 0@T 0Dz S* O$ !8 2/W < 0P㻬P PPP 0 K 0 0X5M_gogH-P@  !RHP@Q  G` P 7@  Q  ` P !  p@TI@` p R; `0H+pL-M`@PPF PP P P @P@.KpL-  P0,P ͠@@@V @@ 0  C`@T@PKpH-M @k`P@DQ Q O 0 P  P  KQ ` ``* 0`K0Q  -`LoobQ +K P JK:^:I^^ pA WQ0`Nv` V`-\`Vp`0pGwp W PPVKP-\0`NPU PApaPUp0`G-\V! `f S    Q 0\ ! PP  `P!PKKH-MP`@4wP& @Dp@Q$  0P:P P P :P 0P PKFoKH M--M @PP P' ȋj@ ! a  j[Vgpe1G0 Aa `+S K 0H-M @P]P PK0F B  @+b j a + 0+P0?G& P:2TSSS:PZ3A2! a$ BR5 p ÒRTS 3C! AQ pÑ K0HAH-M @PPO   `Q`P9 PAU Q  O+b j a : 0+P0?G5 P:2tS"sS.:pz3A2! a$ BR7 p Ò pPUP`KRtS 3C! AQ pÑ KHAL-@ P:Q    R:P:LipL-M@P P:uQ    R   R/  R* 0S%Kp00S0` 0cD 0, 0+S3@0a 0S r PP !P:KpL `QAP 0CH-M@P KHP P P P" P" @ P'  `P ԝ@@ 0@ " KHG@ p@T@`KO-DMP@k+ Q :Q Q QP:@T S+K  RA$Q~EN|Q( 0 S S00R@(  0 Syp 0p2( 0  0Rmp p$(  0 Sbp 0p( 0  0Rop p(  0 Slp 0p( 0  R(0 0@ P P 0@Pj|P  o03P o.p`( p  0 0SpWO P:`@& 0@p0W 0p`000 0?$   @R,`(0@4`8@<@CP$@`S  Pp (  y  Pb (  m  PT (  b  PF (  o  P8 (  l  P* (  (  Q/ 0m.p`(  0 0  Q pW R 0@Ph`  P:p Q:, ``ws P p PpOX sP{ ܛpX/`% 0@p0W 0p`000 0?$   @R,`(0@4`8@<@VP$@``T`PT`"$ 0@p0W 0p0pp00 0?$   @Re,p(0@4p8@<@ P$@@d@T@PT@"P:PT*@ `PጚpX`# 0@p0W 0p`000 0?$   @R,`(0@4`8@<@ӦPA$@A `QU@k( 0 S  ) k)X( 0 S * :00P(  0S 0 )<    R8 A4 R`P*:  P (     Q`B$P `T`PT`"P*  Q: `, ` P ᑚ  0ҥ@P p Rᯙ 0@P pP j `XᒙpT' 0@p0W 0p0pp00 0?$   @R,p(0@4p8@<@ڥP$@ Q1( 0 S | [00R(  0 Sop 0p( 0  0Rbp p(  0 Sjp 0p( 0  0Rep p(  0 Scp 0p( 0  0Rtp p(  0S 0 ( 0 S p ] Qq r[  Pv (  o  Ph (  b  PZ (  j  PL (  e  P> (  c  P0 (  t  P" (    Q ]  Q @PK @( 0 S $ #00P(  0S< 0 Q( 0 S  > Q#  P (  <  Q j> 0 0 P9+_gsg_jjE/O-4M`O p P-EP ᷘ @Y p0Q- P) &0@p0W 0p0p p000?   @Rbp `$p(`,0 P@ KOk ] Q  p@`P ]0QQ JP r 7Q4  0@~ Q0 S  a00 R    0 Ssp0p  0  0Ryp p    0 Snp0p  0  0Rcp p    0 @S p0p  0  R*0 0N O  PQ `0TS  ᶪ0QW@Pt oap ` p 00 S|pW @Q:P @P 0 SI * Q 0 S a00 R M   0 Ssp0p ? 0  0Ryp p 1   0 Snp0p # 0  0@Rcp p    0S 0 a  P   s  P   y  P   n  P   c  P  @   P   *Ha  P   s  P   y  P   n  P |@  c  P m    Q _p  Q`& Q"P `PP& \|a` Pp p 00 S.W`F vV P PсP `  a  P   n  P   o  P   n  P   y  P   m  P   o  P   u  P   s  Q D`P ᴕ  @Q ܔ` 7 0 S ( Q (  Q f'` P }P B@PUP`P[`L,  P <    Q V 0 S ,00 P   0S 0  pOP % A@ QMLp b` V0 S b )00 R    0 S p0p  0  0R{p p    0S 0    7 0 SP 00 P   0S} 0   PW K)  P z    P l  {  P ^    Q    P H  }  Q lg PP4@PM 4dap ` p 00 S pWgcap `  00 QpWP1@PH Pcfp ` p 00 SVpG wcap `  00 QpWmP/ b@fp`  p 00 SVpG wR0bfp `  00 QVpG w;rj  f  P   u  P ~  n  P p  c  P b  t  P T  i  P F  o  P 8 @ n40 00 0Jpjj7jjjjj_wg?gO-MopA @P* P   pP* P @P p pWEp@A @P PBP$ P  P `Q!@  PKO&KpL-@ `P Q q~P PPpU P P C~P z~P`DP P ᣒp `P̑Pp QL/@"4 R</ %4 RH/ #4 R P/ $4 RT/ )4 R/ *4 R$/ +4 R '4 R\/ ,4 R/ -4  Br R/ 0  S H/ 24R/ 44 R/ 54  Br R/ :4 Rx XRH/ `R/ hR@/ pR/ xRD/ R/ R@/ RD/ RL/ Rp/ Rl/ 4 R </ 84 Rt/  R Rx/ 94 Rx/  R/ 4 Rt/  R   R-d/   R   B4 R  0 00S   R3   R  R/Q/H-   H= _?neM--M@   R   @Q    PP9 ᴐNL ȋ%j@ C a  j[Vp1G0 Aa ` , `+S P } `PᦏP PPᚏ K?CK--M@`@Q P Q  @C`V pY  P) 2`M`K JɛH (j@$ D a I  jkW1I0 Aa  P`V4`I 0``+So J `0`^ =(K ?CP/  Q Q<Ao/80S0 R/  QQM  Ѝ RQ/M-MP` P:`V  P:PU{ A Q  QQ  Q=8Q  Q.8PUoQ Q  @2`P6  Q Q  @PP! p@0 @oB pppGor RS \ & T% 8P P    \   j J  4K8KM-MPU U@T PR3KR:` R  P 8Lxxx8LxP: ``FP  V` 1/` 1/` `p  Q 8Lhhh8LhQ: ppGQ  W 1/ 1/ FP KK_YP[Y@p `= :PU  0 `UVS?Q*pS0R `PVP:0R p`PVP: 0R `PVP:?SK  D^aeK-pM@PP@ Q2 QEQQsQU Qc  Q:    R*  PP~`PP_0ppW 00S00SPP   RP PP P  P *+`(   Rl  P :`G@{   Rw   RS P PP  P:`"P @` P PO ` P @CAp PUP`7Ap @T@`+`   `U @UoPT@ a S     S 3 5 C0 j 15tR: ] ;aUl TU?P`@P^:V ,( ? <8  7 40 4$ .i56    1% P  Q   * P    ja sd`K0 , 00 [P4 8 [U#  $0P P 'P g < @  [v D@   [i $ ( [B` QP5H- M0   R)   RMS  \      \  !ja s*  R#   RQ   ?R  @R: РH[  R    R РH0@o Р0H-   RU0  R @,P ?0    R 0f0AP P[@0  R0  R0 d\0H-(MpP`0 Q'  @@TS  R   00 R  p0+SZKS @Q Q>P:`V`  P:PUS  P1 Q P:PP8  P:`P+  KH՚Q  @PP  Q  @n`P  K   [okH-8MP @#   A4P  `P : !  R Y.0!P@ P`K p RL `KH&] P  ` V _ pP``<0`, H`H-M@ P U pL`tP @ R  0S$P P POP 0 K  PPK KHN0H-M@ Q   ' VP PP PQ TQ Q ?PHK0K0K0 0 0@u^*PggH-M`Pp!P pG@HQ@Q@@@   l 0`w @K0H-8M0@   P@PU 0  P?P      @R P$@(P,@04⪔P@K0MK0O-dM`P@R %4 R p P pX}:$Qx tDQU0[ PpX` QZ0  RT  $0#D 0;Q1H@a D /Q@ H Q+ X p W4:QQ0Y  R ( ,0#D 0;Q1@a  #3 0?s| X p7/pP p Wz P PyP  pYv `P @<0@TD@HLPP!0P`4PD@ V n P{ Vq Qm*@P OP `@ 00S 0@` @V O  803/ `PZ@: 0pP4 p0  %K0CQ0D" 0P0@a ycp 0ppp\p40 00 0>0C(h^^LgH|g=^HgwygH-@ 0P8MP   `P uH pPUᛆP`H-M@ PmP p4|pdd8P0 P4 @P KK P$`R,p R Q0S KH P @PKK  8>^FeO- Q *@KKH4 P$`R,p ឳ Q0S 0Q KKHKKHK  }<^?eO-DMp`X P%`3 @( PP 0 '( p ZM(pPPD   R ` 0`> ZK`P  @P`@ P @ R 0@^P P  0`P``P  0@t`P0H-@PA  0H M-M@P$`wP  u PB Qp P P=   a P. Q KPp ,៲  R0S -! Q   DP CK@KKMO-\M`帛 p $P PP 6  @X ^P$P Q@T P P, < @Q R @ P    R     R P Qz    !R P : ` 0C00@04   0$D,(TPLHD@88`LPL  @Q $ 0{ 0 PP8P DP_ `ኞP KO `P Ⴣp  @pW ᫂p`@`mQ@ @  0`4R  `@@@P 4@` ; 0`w 4Z  P /` 0``"` @`  P`V `J`  > ;@ ,0  K P: 016P` a 8<3 =I|A!pjH>M-XM `P@Kp0pppp ppK式 N4 p P0: `   EP' o"00R S @QP ppu 0S @Q @pKV pp 00t 干p ppQ /0   R4   R+MS  \      \ a Ѝ 0z  c/0 Q1 R" p # S  @00S 00S ?R 0 @S : 0 S 00Sr'/0H-@\P \t@\@htP ɑP@0@00H螜  9a^c2e 0SM0  0  Ѝ   a /* / AK-@PCp Q PP ᥁RO Q:3` Q  PE ጁ T G ? ;`P pCK0# CP 0@T 0Z S    8 2/ P`Vက`pBp Rs `0  S  00S  0B4\ 00S  00S/Q #/L- @χ@L-0@0  K-MP@`OU'  R @⼉p 0d @  R 0@! 40P0 `p`P  00S 0oY U   8 2/KH-@ 0P@XP6 ` 0᭖@ $ ppP ` @Vp< 0`J ` `  `  `P @1/PPP !/PlLjO-DM`N  @P  1 PZY@P7 BQ1 0 ppW 0 ppW pS   7 QP@pPk q! T PG q@ar Z0?OQ 3   RP5%0@p0W p00@@00 0?$   @R(4@8<@NP$@@P PPP @)@P\ ៳PP  p@T~@P pZ~P  Q|P+ &@OP0@p0W 0pP000 0?$   @R("4P8<@يP$@Gc? 0,@P  AP PF~@    RP P PPP ~@ p@T~@P 0pqr s0 Bw0S%p&0@ 5O   0 "S#3 05P  <P@ P pP0 0`V 0TW S  8 2/ 0ZPPq0  pP%pq&A wQpՕwpQrp0G 0 ppq @w0S%p&0@ p     RPP J~ @ Rr} P`P PI @`@0  0pWp 0VS O 8 2/ ` "  r R0%s0& C R @P } PZ}@ KD@ @0 05 0 0 51^!g[[jQ^"gmg^%gSjH-@`PS `pP @V\Ip< 0~ 0  0   @AjM-@PO   RP  0 qW0 R P    0S2SPpP0 0`V 0V S   8 M/"R   R w0pH0K-P`T R ,@AOP 0} pQY|`` ᆥ`p`P  00S 0U U   8 2/ @P +P$ @ARo0 !X`h$p$$$x$$ 0 ((0@HP8///(///h/////////0/0//Q //H-   3멹^eO-$M` H@@QQ`G~   R `` 0㉬ K PP ?| Xg{ P *|` P`VR{`P @ R  0`P p  !R HQ ``{ X @ J @P P P ` P |P H``tjP `{ P @ ~P PS P PL H5P`[`|` 0 02E^gHg Q{H- 7j0H-   R   B4 R  R< B$P8P2 0 0tQQ QQ QQ QQ Q0@O,P B{0AP Pkz@0 0 0d2땴^Jg @jH-M@P`p@pP  0``KH- M! РQQ/H- M! РH/PH- M! Р0  Q/  R /O-DM p= ` $P PP z`  @`V y`P$Po Pk@T@ , ¨ @Q R @    R     R <P Q    !R P `  pP 0 Ÿ$ @Ppp,  <0o(D84D Q &P @`P  /zP `  PU UyP@" Q@ 0 @   PUQX 'PPP  R@ ,P n Q0S $0P RP -, 0@OPPQQP P; 0P TP Q4> ;@$ 80  KO-|M`pHK@ ,p P0p @4p 8p g-H@g@gFjt,?g>gw>gH- M00  @ P РL-@ំP P @P*#  Q $,0s  Q Q  Q Q   B4Q  +0 B4Q  '00H- @P 4x0 P P]w@0O-LM`@ @P $p 0P@0#T@ P< : P0|r0 0p0$  D,pw# D@<840((`QmL Q 0 ao 0P #7pD@<840((`QQL Q ` 0 o 0P p(P. DP > ;@0  KW  `P w  pX v`1  (]1  (T10`@jt@jO-lMp`    P $  0 "S@P& p:P@ $p0S(0 0P0D 0 @4p,D<8@ R , r: [: pPQ ,@tS $ ( , 0 4 8 @ @KQoL Q 00 pn 0P `@PT i \PPd jQ  |   a S !1 0-$ ( , 0 4 8 @ @K@Q#L Q x0 0m 0P }`@PV   @ j0  @ a00V DP L @ > ;@$( <0   @ P uK A^:gqP @P* ᔍ Q M-`pP@$P  02  D0S  P @P*a Q  M 7 DP O-,M `@@Q0 $ pPp'UPgP$ 0 Z pP PP P(o $D , r  KK  , D0R oP0~  {@ 0 p0K O-MP`oO @  0ᓞ4  RPD A p P Cupr P& 4uP-B`X]tp0 0@ q`PQ p@`W: @a`PDB@PU:tPp@ p`  01 00p !`S @R} @`a`Sq @ 0 PO` @ P0 LU  p`oO@ P  0 0`V`oO 0dM S   8 2/@ @ 0```Q 0 J P0`@P 0pW 0+M S O # Kq 01#p0t0倇K    0 KO8 KO/L-4@@@@C0LO-Mp0 !`@< P tP BpPUCsPp@0F   ב DRc 0Q` Rd000`@?dYp  y[PDP `oOp p  00S0`L `oO\   YP Q  P MK803/Y L-4@@@@C0LO-M@(0Kp0 A"S    WP@ `-@PJP fs0P`P3Qp0Sr0p@ PAP  Q @ P 5s   p R \r p@ 0LpWM  0;IP Q @$`084p,p0P r` $`V r$`pK4 LP 08p K8> p P@:8=  0|8P 0P   !@P*(P0U P p8PpWKLP 0[P ` vP,@ T|  P:: P7 P2@P0 rr04 pPq0p4@ P,P P 4P `0OL@ @0 S   XL /\`@Q hdlpptpx|}PP `@ P r  \ P7 Ao᠂(@$ P< O @0 S   XL /\`@@Q`hd`l@pt@L@x|u}$ 084 82Ao᠂T P PCP!PU8L@0 ~8P$ 4P@I 0tP04P0B@P2@ L T0!, @R  &(   @0( 0Br (@4Pa 0 Rp0 QTIF P@P' Gq`0 4P 0 [0 P quPAR"àR*R@0s0t0#R> `VLp0`@O/XL\A`@QL@hdlpptpx||P4PP \4PZ 0,Y:PP ` QIG 0 0'| |0 0'HD D0 0'Le(    '^vf| j^^d^fd^f;gH-MP`pOPC 0 Q @B#4_P)`W\  Rp ,`ᢞ Q0S `/`8TOP  0MpPVK`%`W"  Rp ,`h Ľ Q0S ``0g K /0 "S/pP ,/H/ 0"S/pP ,/H/0H-@PnS00H 0H-@PbS00H0H-P@  R  0 P RP@ R / @PT00H- M QY  00S, 00S#^  * \    0 0 \a 3 /zc Р^& B00S 00S ?P0@S: РHJ0S  00S РH РO-o  @Z fn`% %$Q @`P o`T@  @P Cn@`T P @@`Q   @  0+ G%$Q /0 P@`` PDu p P`:`Pk *  @& fP` p P Pn R  PP  m R 3Q`  P: <'000@p0W p00PP000?   @RR b,P0`48z P@P `H R`Y KK-@ Q( DOBdA\ R  Q( @P :n@ Ap Pbm@ D  RKE,@P nKAP PAm@H-8M`@#P000p@pW p00pp000?   @R p$`(p,`04yP@`#`PZ @QW 2  Q- <'O0@p0W p00pp000?   @R p$`(p,`04AyP@@@' 0͝ P H R@ R  @ @@@@KL-@. %$Q)    !    RA,0 0 S" R P  0@P@@L-xM@ }b  q bKL-@ `O-M`lPp  T8 +@P<  @  圠@T '<840,( LHD@PϘ"`cTpp 0 3@T@  H3  刵KX ᛘ0H-xM@ a ᏘT PT P  S, S  bK0!iKi0H-P@h0U P H R( R00iiO-M `Pp  T8p P @ @ T  kT<@8@4@0@,@(@ L@H@D@@@PV P@ R RR`@Spp  0 =2@T  H42 @& ᷴKl 1i_i0H-@Pŗ0U P @ WR  PR00Hi'i ᨗK-HMpp `|P= wP= @B(,@(Zb P&RP3,Pp p  K(04@2/(`8@  $$PC R$$@P 1 p P8   QK P*p@ @  , K(04p2/(`8p  $r$P Q$$pP 1 @ P 1K@SQ[P$|P,8TtD`d$Xx @L( 4P ( \ d <  x Xpp      K PL CPcH RQ,: GQQ Q Q  d  0 ((PP p Q@W QD  Q `x|<Th,x 4 P    ,#P h P  $  4_  X P 0:>((U0 P, 4 P< 8 PC < PC @ PE  P @@( 0c(P tPU(@ .0\ iP 0 [P VP R U LP pX CPH >P`/ᚕ-  PX` P P" P` BPK  Ph + O` Q*h |. O>P0 O` Zr[r OP:g `Op XT. O $g$ @ O O <\L (T z8?0<x o jT  xOH $S     <7 s GO/ ' :Oᗔ .O@ , K(`0 @ 4`2/8` Ov  ` O _#   NqO 'p  N`'VfP N  N '{ N l0QI  `\ NL`@ @  , K(04`2/8` (P$)$P N$$`P <.>$$ wNp nNU(y , qp l YN C ^  Q L! ii^liipg8^jg@^gaiikiziyiiiYiii+ii  P67  3 /0    %0  0 0p p0 P0  0p 0p p0 P P" 1/EQ  Y: EP   Y:K E R!@H`hx(< 1/ ER{!l@ 4DXlK U!@(P`xK 09K1-)    0  0 K  0  0 K  KOkT0 KO/  K5  1  - 00 #0 00 00 p p0 K 0 p 0 pp 0p0 K (0   뼗Y^dO-MpP  P` 8ph8p ɠe@G0 T WT@> pPU  p0UP PPEpQV `Ap 0 Q:@DQ  T Q" LX88 @ `p1/0 `p1/0 pb pB` p` T:0 3/L SF @1/ GRV!p `hxKG Pd  K G  R:KO/ @1/ G R:`0KO/KO RW0!P hxK     00 K`! K    pp K  0 K0  0 0Kp 000p 0 pK` 0pp0 `K$  T<R^dO-M`@$pPgDPO 8 [PW ``p 0  Up?W Pfg ?WPcP aP]^p ` E 0>P  ?W[p P  1/p?P   0pKO0Q 0:O-M`@pPXDPO 8 [PH p 0  bU `p?Wi?W_eps ` E 0P  W[p P  1/p?P   0KO0Q 0d:O-M`@XȠ\(0K(  -P_P PP PP(P P {PP P(K! (P _P (  z  0^KX:PpPP P (P P A PoK K~[P (K"Q z Apq_Q3 W P P(P PzPP P(K! (P ~PK (  zYI P (0K ( X P(KKp`(p P A PoK ~[P  ~Q  `zpP Ppz` VsYP (0K ( X_(`K pP @q_Q:( t 0GpKDPP P) \P) P, PP*(P P A PoK K~[P S~Q  y\PP`PH 0H YP >Koi+iiO___ii  O-MPs@`p p` p$@ pyPp @$K! $p ~P` $  yV^$pKK P P<$ PO A PoK  }[P }Q=  tyP$ P A PoK  |}[P }Q  UyꄠP K&V@TVKKO-$MP@%@P.xHd8 0Q  `p P`@o᠒Y%   0 8 0 )` 0`- P  0 yt` LD 0 K 0 0   `PP  0 0lP ` PP,p 0pt 0p 0 ^}P6 巠Jo᠒BQ2 mPN p /O`Q QM`>J PW `PGU   0 ` P  0XP  0K :>K@# 0;V P P IP' J`D`P 0 $Z   0000O/iiriiii-Q^bgci@iȆiZagiiii/i^giii5@^iAE^iii0H-P@ QIP PPU P P gIP IPDPP  Q@DP0K-MpRm @PR 2D`_Ph )Dl %DPR`[ D< D 0@6 |PR|e|| `R|PR|Q||Rx|PR|>||R0RKilgie#ugek^ 0S r R/0H-,@P %] AP PN\@0H/H-xMP `p@TR CpP?   C |C p vC V   mC iC-5h bCP 0@5< UCWRKiicgCD^ViLi@ii2^6gK-PPNPp`@  QA 8L8LQ: @@DQ  T  1/  1/  `V  di9^kdH- Q R&0!ld$AQ TTTLLLLLLLLLLTTDDDDDDDDDDDDDD\t |<\DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD   DDDDDDDDDDDDd DDDDDDDDDDDDDDd  $                    ll   ,    4"AQ$ (!# %"  "&'  b(^dM-xMP p`fM >@pPP   > >  >T h'p P*p'02} < @ s>$ o>T ᅶ Po  à   X>  @R>t QR*q 7p3M !$@  D>x @>T V (P@  ᔃ $  )>P _    @`>Dz > `  >P 0@0 >MKpl  `\ \0 0:iϬiOg]iJOgNgi蛕Ng^iG^ iE^}!g%^du%^*ffp Q*q'q02(/H-   r$^ˇdO-M @Z0P @A ` p' V*!02!2; ! 0!1i  P4UQ ` PY:  !R `1?P(KO60,  4iiHiΨi!0^i^#^d    R  BRAR   00S  0B4\00S/@o/B@A@oo/L-M@@qK/0H- x@ =P`< < 0HP0He.^7*^0H- @ <P;x <P,@ < 0H0Hp-^)^g)^L- <@ < LLYҫiQ% \<L,l| <  @oR8 XBIpy Q$ PP I pP$IPP  ,P  8K2iO-,M y`  z$P    PP p:p  Py y@P I Y H@  m^Y  + YP``P" O@` 0PU 0+" \ O  8 2/P 0@PP QI Z yH@A$`Py K0}ipL-`P p@y pLL-@yO-|M0 DRV ` P  IP` B@PU4HP` O Dp @ry DMD0  Q   B, < 0  `0 pp 0` @  P# H *Q S[0 K@  PR H Y (0 R KO]!B` RG @`X(  P8uPP @ @Tt,P< ,0@NIp@ @@`(@  P2 fH`9B` RG @PD0 Q 0P , @ pP`pP` pV%Q :BP`V`G`@8P ,,$ 04`@OP H AP R9G @@ ( 0r QSs0!C BQQ 0s`p& n@0P G $ R,G$ @wA0b PKP U@0s Q0DPp uP`BSpq RqEPqS  &`!P  |V b@v@0T,P @ P  PQQ[S0@C  y p 0P@@P 0%FK (0 Rq :nppqw\p%wp& G p W%`@P P%Q@:@ N TO4#W%R Pp`  @Aoo0P p `U:4 YDpq@4P> 4P ,@I L0 L@ `P  P %F( B@ RNE ( PDP  P  F B@\5EPD  PQe8V  , @  < $` (  0 qs0ARcR:"SS rpp' ~8P4`P EC r `K` VP# <`S006`80 &0x!pO p#=#p| `Q@P p^4`}, sp8rP`P pEp pW,DpP8  PV4`R @ < ,s [p8 K84  ?V4`<,P s <Q  8%pW,]DpP8'  p80 80S p 0 $ (0 [ Kp0 ,00 P@0@ P/OpP` 00S 08 V$` O 8 2/8@ T:OVL*@@Q,<(> Q , 0s'8  (40*R@li0 Bp `p 00S 0L8 ZO  8 2/8 P@T 0<, s  0K 84YY/@PD0q s0BT p1r b.C`"1@Tp<pppvxp x!0ᰜ@P T0<@Dp!JR00@80D0[0@SO (0 R  p P@ pp@@Jr` YR< PFP`pv`VP%@@uP&`E V_o@X@3R@PT @  P  qr @A RRZ"sUu 0r s0"nrOpP%q&A \pY  P C B@ QB,@ 0nP@  P r'  <p @`p  00S 07 V  8 2/<@D0[0@S   K < E0b,0 S K-!#@  p8S! p8 q'<U  @0 $800ᒛ KHv@<  N 0 0F]6f_i]9];7dH-@P,`P B Ap P"B`(  `L Hj_iM-M@P,`OP B Ap PA` 0 QO` P B Bp RA "0&KK- M`pP"@  @ @R@@ @@@bO0  P,u$   R   B4 R    R   R G@@ @oB  @ `8`P  P0 0pW 0 S  8 2/P K0  6K0H- 0pr @, @ S@ 0P 0Q%Q :\0O- MP7p @%˟ `P 0 R 0aY O 8 2/ p @ WKO-TM `=@PJ,P P A P,@,P@ 0 QNpP A @ R@ 0 @X Q!8 4@ 000 0 ! Ri <0@( B0Q  0R` 0@0 S$A:8P 0A ,` Q,X@ 0(K 4@(pKl`@0u  0 =(4,`P q R:q0R  Q :!1 0(00Q`*PG ,PӞ p0`V$8 QPC @P @p ,` pW,?p `@4@P @,廞  00 pP `T4@ TsY е K`\ \0 0x ,( (0 0]Z.fzf ],fxf],fsxf0 MO-$M@PB$P Q   0?O @ ETt@DPj p0P?O@p  0`V 0`0 ?OĐ^  803/Y `0   H0?Oe@Pp@ 0`V 0 `0?O`\  @ 8p7/0Vg ` 4p0P?O@p  0`V0`}0 ?OȠY  803/0?O`Z1   P  P <Q V0`x p`p`V? K@PLy0P  0 0 Ti]j(fLtfL-M010P@5E@0 @;KH-M@ KP` @`-PPpP P<`pV `` P <Q  0  > PAzP Έ    @AkP ᰉKP  :LpPi]&dL-@VPL蚉O-M , @K0  0  RC@ R   @`poO 0Q QO  `oO0PA pp   R   0p@ R, SZ 0 0PU T0`oO  Z   8 2/0`oO @ P  K G00B#QS1[ #0S  [\  O0 R/0   R  00H-  00O  00S 000S 0S5SO-M⁀@a0 0-d" 4 8 ( D@<8HLPTXHK$ < @ D H 0 \, |8PPT <0#u5AT}  8@ `r PP< %51qATP P:\0S P 0\EP<HPKDp H (p哯᥷P%Pp<P PK@ @ <@0P`0ST4 S?P T< "5p%WT( ` 0P R $ p p $p0*P2,,pu4p0 p:TQ8dKP  FLi] d0H-@PP u !o0K-p@Pp`@ VP Pw`: VP ڛ P ӛ P KA O-DM @, P=pI p P #= `PM<PP!Q3(0 Qa(  QP # p0P <$ ,`  `P #<0,`$ p V,(x`P $O, p   R 00 R R%RP < P X ;ppP <` P `V ;`p 0$0p (( =P(0$  P <` Bp`V;` p岚 P 巚 ,0(   7 P P 0p, 0 $` p Pp` pS0TTKp, VPV $˚ PP ! /AEiK-PM`P@, `@0pP < ` PC;p `0 $R% 0  HS! 0PLD0@<843,(y nKpL-HMP@,P@0`P ; P P:`P0  R% (  @!S 0PD<840,3$ ]sKpO-lMp@@ 垙 P P ;0 B@0S:0P, @ _  P0$,E !b(p$pP W;  P : p( 00,48 @Q< LdR0P  3h HD @$ @mp0  PQU:KO-M K  @OO` `0 pPpW pp0P0pW  VQP  QP,S   RP  Q#7p⠑ PY P厬ṱ`P  U QiPP ,P :KA@ P9PK0H-@PzhQ& B$Q!  QR% R1\ P0 0@T@Q@@$ P 0 U:0M-M@ `pP T PIP PPKO-,M@ PR Y*qP` @ʀ 1ΰP @ 0##S!XS "Sc R0!<hh0T`U V j U g(#  R U^U\ VZ:1X@pP QP? Pʗ VPB `% P`V.  @ᷗ QP. D @Pp&! Q  pYy:ꞗ pP@ P @pP ꍗ ꋗ P P@@K  ]d0H-HM@ ; ,@@0PP v9 @ P8P@0  R% (  @!S 0PD<840,3$ q@K0pL-@P` 0pLe0H-8MP @0$0 pPK0M-M@p`PP  %PV  PP 0h TK0& pKO- MP,`p @@P'Q#Q ,%Q<'Q $'Q%QHp&Q0 1 4H0\HPzGQP B 0Pt Q a5 EPe 0@P*FQ$%O` PQP  ᣽2 QP  '$  $Q, pf ۅ R0S -!  0 `PpK$Qmj  !  b뉨] dO-LM`H@@ PPp^.  P0 S P0P?h [K P  7 p p R 7  p P 7` `V`7`cP 0@ R  0 p$P=P اP   0ĴPPQP` @ 0\' 0PPP PP 0~K-Mp`@ W,P e pQ R pPV 0 g P㯊KpL-@,Pp9 ` Q3  Q- P P+ P  p Q @Q Q  @PUp6H JppO-M `S @ !RL  PsP` ,Pe j R0S -!   RV S P` ,Pd K R0S -! Q 4PY[ @PP @pT,P d !@Q R@PY8 /0 `fP ى) ` $Q  @ PQ g6` p`V5`PQ$QK0,p 1wQ 4PY  R @Zd Pᵃ Q0S0 Pd@P0Vfw %$Q %P6<PpPP ,P<P $PPsE 0pIpJ  uIQ 0#D ] 0 Q1@a  hd!d1 0PPÍP  PYn P@`@D0 `ePP   P, 0P   P:T, 0s, 0nK$P 0C*iX*i]fX7iO-lMP`@P  88 t8P, @pP'Q#Q ,%Q<'Q $'Q%Q;E @p)$  !R `,`v!  X jDD8HLPTX@\`d`h8?   KO 808` C<P DD,hL4DP8  8$40,($` pPr,P0P~  R` ,@c \ Q0S` YZ 0dD 8 0HHA8 ]A8L PH18  ɹ0 R` ,@b  Q0S Y 0@d ч 8  8  K$Q$}  R` ,xb ԁ Q0S` 0p  l뱘]c0H-M@S  @0P@ad }K0O-LMPP,p( P@'$p` Q, R,@ 'b チ Q0S  0KO -@ Q`@VKP/ P=PCK P :K@''  P 00   {CP A @AT P( @Px $@ 0p0#W1P< : `0dr0 0p0$  D,pw$ D@<840((@PgL Q 0 * 0P $KpD@<840((@hPJL Q D 0* 0P p(P'N WK@  P  ,0 s@  K@    (  (HҖ0iіG0iQ/io/i/i<K- M P@` 00   R KK @  Rp ,` 2 Q0S 0 @KL-%D^L@@ TL"@:D\L&L H-M@pP P`0 `b pąKH-M@pP P`0 `b p㪅KH- M R 00S0 00 03D 0+\<@a  @< <0 0\R Р РH0Cu]*e(iO-$MP%t  R! RppWp pp 0sD 0R2@a  $4 0 pP ` qaW p PFpU p3P@_OS0" ` @P@V HjD Tp T6 TppV4 PV @3 V`?P0PQU~   Y: I"Z }Z#Z P ˉoP   P`pV @` `  \:%Pp @PP` 0Dp7/ T,%P(  @t_PO` P0 @ 0pW 0  S O 8 2/K yTQQ %4Q I 0C"4Q@ 0` Z1 Q3:$`AQ- 0 @(  Q*`  Q* `Q P 0p Q  \ pQ 0 S``Ζ̖u]*e"'i/O- MP`p P 0 B@Z/p 0V%U%EQ REAP  0PO=T  p @ p  ` 00S 0#  V  8 2/ @0Q|" R} `pQ:D`   R  0` @ R% @ @ P  00S 0 Y  8 2/pP `p@ P@ 0 R 0X% ! 6@p `@  00S 0 W   K0A p pC3aWq[x !7pW 00 [kl8 KO/`ȖO-M-`t P@FP / pP.@pP / @Z.pQ; HQ+  P0  i +p' P#P PP @Z.P #RP @/ \ KO 0`qr s0 Bv0S%p&0@ 6  `pP`0 0@T 0 S  8 2/H-@4  RQ&  "$Q   $,Q   Q@2 0 P ,P .   R   ! H{A` P-Pp q   `oO  R  B4 R     R{ Q@ P pP 00S 0  \^ Z 8 H/$ 0 0v*iii݀]e/fM-`P P P0 '.2@ 3 p`p`0 0PU 0 S O  8 2/ `@T"-@P 0 0i]eipL-M` P@᝟pPPP`P `ጟ } !KpiO-M-@t `DP - pP,`pP -` P`V,`pQ5 HQ ` P- ( 3! PP PP #RP U-` @`V},`PKO- M@QpP㡀_OH ` P (-p AP pWQ,pP`_O` P -TAP  P7,P`_OT  00P)  R `pP`  00S 0 UP_O  8 2/@ PKO-M `/PqW P Aoo@O@   R 00 RPb `P PW P P {@P  @P`PP `< gPP; @` /P5P# pPP R R Q  Aoo``@   +@PKK- -t pP`GP , @PA+` P `P ,  @P'+` @oM-@P U  00t,P` p /O P0T{R2TvP P* +U/Q71p1T q 00SFQ Rp@WR`0q<<\l0S DB`X*P0S 30S00p ``V` ``0`" ``V\ ``V` ``0` `U\ P 0p P; X+' 0Q : @0 R @/o03" 0@?o2 UR /QP ᵵP WU IGU  BPXG*p  0 0>iis]e_"fH-M@PR T:`  Kp `pᮜpءP` pᡜ΢VP x?5T`O0  !  q3  0 0/iir]^e !fK-MO@ P` X Pf pᑡP p P *P B@PU)P` X ap/PV F P :ᓴ` gPVpV  \PKpL-@,PP L* A` Pu)PpLPK-@ A PPp P::8``0O 0 R 0S   8 2/8P` @ P0 0pW 0 S   8 K/O- M  @BT 0P#5PE 0P Z )}K<00<p<`% Y PP ) P(P  R  Q (Q QP|P 0 0t6g n]eCfM-XM @`KP0pPPPP PPK`6 M( p P: PP~Q P)PPQ PP 0Y |KO-dMPH@@0P|P   R PP 0UY q|K `P  ) P3( ` P (P `PU(PၟP6 @ R3  (0$$]P& P7 0` /P 0 PPPPP/P5 pQ P:Ps PPO 0@ 0@ a 4PPZ| PP 0p0H-@M@ 0 P@ AK00H-MP' 0@0#T" 00 S  0 S  0@0#T 00 S  0 S} 0{X {K0K0Hr0H-M   !R 0@@YX u{K0@,P  ( AP P5'@K0H褹0H-, @P '0H蔹AP P'@0H臹O- MAT p `  €@?oT-,  , P&`' JA `0R@o R Q'p@Q  PpW &p` Q  QPWPD P Q PEKH-@P` Q  QpWPD p Q pp0H-,@P 8'0AP Pa&@0垫M-M@  `$pR,P :U t Q0S 0 pP       "@KO-lMX p8Py`0 `X P  &0 0S%0XPJ   R `` 0V yKpP ` `@&0 @`X%0p@P' @ R$ , 00,`P p  !R!@Q @``w 0V`8P 083 %`@8P7` 0(`$` ```7`!3 @ R  PX&PTxp P9:8@``zP @ wPb UP 0`Q pP!aJ*Q Q& @ `x``9 P &P@ ,``v s@P` `y`c$PO-$Mp  AT a P@V@TSp @  0Q%`P0@` 0V$A:pP 0`r s0pBv R0%`@s0& C ppA0@P E P e% C@ R$  `@ ,  + P0    Q 0r s0`B0S#SJ#T0pqs ^D0Rq P#  S'T?8 &8 ? 0  )`p P"  |/OF@`p  00S 0 0U8 O2 /(`pP"  |/OG@`  00S 0x 0U O  8 2/0P  QXc: Z-@`0q s0BT p1r  .C"1Tppppvxp x! 0|@`Z0[S0K(O0 R KO ௬  x]Y]cO-M`0 O  p@ AT pP  <P  Pv +$o|  ` 2/pT:p HQ pP, P $ A P1#PO  Tp @ ` pP p @p` P 00S 0 U  8 2/ @ P  P K @Z"pꠗK-M@ QU `* Q Q Q`VW`VS`VP ]   Q  @ Bo/o"0 H 080KK/O,pP [# A P"p` &P p P :#0 KB0Sa"0p`0 ThK ܔH-@` P #P BpPU8"P`s`  ,P 0 TH0LH-@  ,`P "P ApPU"P`P  L`P R 0 T{``dH-8M`@P p00 ?ppB    @Rn p$`(p,`04).P  0wKD@ @0 0 0 0Q]>e2eQ]^ehL-M00@pPKO-MP,ppP'Q#Q ,%Q<'Q $'Q%Q.2 `G0P 4pt hp1PYᰩ 0E@P P g  0; `R,@ 'P o Q0S X#@A[95 YP0P  9  P |@P @0@R u,@t   P `R  3@tK$Qhe$rD Q |@@  N]cH-8M@ P`000p@pWp 0p0 0?     @RF p$`(p,``04- 0pPKH-8M@ P0p` 0 0p B`` 0 0$(0,04, 0ppPKH-@M@ P0 `p@ 0ppPK0H-P@/P h4h|0P(ᅨ ᕩP @P @0$ PJ000]0  J]c@ }'pL-0PP ``V `@ 0UQf%0&F8#o&ma0C! 00SPU P  P  pB`@T@PpH-@RPp`pqp@VNP; Q7pq@P0`ppP q!$ P R_G pA`rppP Q!$ P RIE pA`r`GobH-  ppW p`@` Q!p!A !@P@ 00S 0W O 8 H/ R/ 0Q000 /K-Pp  @,P  A` P@  KO- M@-`t PFP  pP PqP P  `PU Pp @Q  pP% &p0< P P- 1 &pP L Q 0` `  /O  @AsP iK  P肖hO-dMp k  @ OPB P  B` R7 @PGEp8< @<XP<@B$0pppq#`p@ppW@0S8P P8` 4 P p pW8pPP`, $      'O,8 uPv`8 P 8L Q , p0LpV8 `ER| 8P 0@ $`@PF$X$8 @P( 4?(4 0 R840 0 pd 8R ,P- @' R  0-S ' R /O  , R ,Q@" -,P ,P <<` pP@Pp 4P  (4X894P  R  , " p#P BP4Pz 0 4P 0 $8{ 0  0 1,P(K Y$(0  d(4 0 R840 0 p8,PGO$ U /O0ApPq!, 0`V'0 F #E P/O` p 00S0 / U O  ^ O 803/,PP0  0@8@Z%@P,@  J`@OpP` 0 R 0Y P O 8 2/U{ pQ ,Ww*pK, Q$8@vu 0qAr As Q: Q1we 0qAr As Q(:!1 08@VX,0[0SKO/(O0 R zW;,0[0SK(O0 R \ 0 0 0 0 0 0\X X0 00, ,0 0h<d9]eDe9]eoei;]ee9:]eeY:]eh:]ΜehK-M`p   PA#X 0p` D@`T@@Tp00V _W 0/O C K0H-P 0q S r p B"@ QЅ     PA]pP f0M-P( ` 4@b p `pP  00S 0 U O  @8 2/  R/   /6L| /uM-@ PO000S2SPpP0 0`V 0CS   P P w0pH08 M/0  R    P RP/@/0H-@@P0O-,M`Pˢ @pPO $ 00,SyPA : @P0p 00p0(o $PD , r  &  D Q upP LAot4> ;@  0  K蠞ȝO-tM`PH8 pd`@``\`X`T`P`H`XP0pP`X  P p:P   4PPr @` <pD<@TB  2/@$ p$p (p 4 (Kh2(B0,pp ppppp p$pp pDQ? + 3,%pZ"  R, p E ^d Q0S  p0pG jK$Qwt$h DP qpp  y"]{c0H-8M@ 0P 0 0PPPP0 0$(0,04BW!#K0pL-8M@ P000`@`V` 0`0 0?     @RAw `$P(`,PP04!KpM-M@3 P Q- p` P:w`V4   P$ 0  pP| |0 0P\  0HF KMbiPKK hE ]e3hO-dM@  Q `  Q. p P  \  p0p F &iK P R p0s`V p 0 @ppP @Y P @U*  PU   Qr  PP t Z ,pKK   0I"$F$P> (@P ,⚏P5  q  PK* PUP$ pP @ ` 0p pPP`U:p pLpYHpYD SAp  0 0:È:h]~ehO-lMp@Q 00`P0p  0jPK  0KOH4P,K( $0 K! P Q0DC 0+P0@a   0 00P:0 PPX P/ 0PD g   0 Pp P: 0Q P: B0   0C]]}ehO-lMX P4P Jgp@0 QQ   @y `P  = p  X dy``D   R p p 0VD rgKPP p  @pW 6pPᚊ@PK P@QO : P:   ja , ((p00 aP' P5 4P`Kp  0$p pppppK  P P"P$ p0  0p  0ppP p p 0t9 @uPR   0pc pPqT]Z R qTTp ppp pqp pr >K-PM@P`p7Pi 0H IPrp Q !" P:uP 婐P 0KKQ !"+ Q' 0#D 0 Q1@a      P *Q Q PY PP PY P P0C -fK0  R  R R @T p 0 0WSQR00 0 p  0!r0 `P0( `A,004 8 <@ DHL\ 0`0pPK$ 0 0 0C]te e0H-@M@ KP0 KV P4"P o  K0,c DP 8mK0K0O-dM(p@ P8p4p0p,p(p ,@p n`po$0 $+ P P*P ៙`p@ R $  0@`0#V`pP 0@p@D@<@@` < L\$PpHDXTpW  ZA     P , r < 0ᒓ < 0ᅔ`D Q l`@V@` @T D< . +@X 5Vw 4p @ WT T XZ" `,p  (`@  0`mPdppKpp`p`zzK-M`P@@@P p翷`@   P#  p`O P " B@ QK` Kc`P $Q  `` ``` P `KO- MpQP0ӂ@T  0PS0 ⠒#0*`V  #: #6Q P1  @`MP(   "  P  R  @`5P APA R  `% P4  0 S4   0S. 0@@Y# ^  0 ` V 0!E QP Q@ 0@0(SBP @P ^ Z` ,@ Ppm> ]Q R@ @ 0 Pi@ cQQH R RH @PA0S;00P P C`V `V-Rc P ^ 0  SQHT @0R 00 00 20PT P `YP PD `MP; @PY ^ Z}P ,@= 0]Q Re @P8 ^ Z` ,@ Pp= ]Q R@ /@B^ 0 ` PPP0VRAKSQ0@0 0 @   00 2 0 KH- M 0 0@; РM-p@,`PpPPP ,P<P $PP+PP ,p   P@ 0$@$K` DP i$PpL-MP@`U!`P 0#D0 0 Q1@`a  `PQKpQ  07PKpL8 0CL-@Q qK-hMPp@Q$ , `,`P 0`(K$ K0YF P# 0KQ 0#Dz 0 Q1@a  !1 0q,Q *`Y] `` 0Q M< 0`J`0 P 00@< 84 0 PQ 0#D ( 0 Q1@a   0 0,aP`Y @ `< 0`> .aK 0C]~ceh\6behK-(M`P;pQ0 03D$  0R2@pa  P@Q Q  06P6pPz  pQpPA t  jn@pTf  Q  @]l`VU  *  00   *0  0a  p  0p< `.  P@T ^ @pQPfQ 0#D  0 Q1@pa  0, ,0 0<K 0C\^eNhpL-P@ /Q#T! DR:B !R `}VV  e෫PӀP|  $  0pL/4:K-8MPp`U O        "P? U0@Pp@pW 00@ @0?     @R^m(@,04P!O@B P f p@P1 @ 0@< _% BpWz p@    3bW WP厎AK R0H-Q  O@   R,P  %@8 R  P  0@0 P P) @0AP P @P0 0 0Q\ZeepL-P@@ RPO  P%D R PP 4 PU\ RP4 @R0PU `V  PppUp0H- 000 @CRD @0@RPU PU @ 0T@0O-M@Oб B`   R QP 0QF 1 SL  SOK 0%tP 0Po04 pPQp Wa]  R  D0 p`PS`pV: P,0 <P) P=4`0pV0PU P~ p W,P)4` 0pV0PU Pj p W00 %tP P 40pPSPpW` PH p P PP3  Q   P    00S R PPZ4QP PP `KO-4M  @ 00RU0 AoUO *p  00   `Pv`uP`FPU#U%C^ Pqu!R  P]NP K  R!C9 @^  &(  /( &(!/ P|`V bP@ P 0 P     QdRhI,( `+P $ +bN  pZ|: =p$OQ0P5 00p`P P4@T P P U1 p0W' @RDp0@ `WPU P U ` 0V 0K0K@KKK K'͑   ]\PcO-MpP Q 0  !R:$Q  @ P]`  0```P PD \XXTPHD@<(L8P/Q L`@PP   R : PPP0 db `VZQXp  p$@P   Y @$X`KK 0 K  $2 p P:,0X0K8L pP  XQ`K `pPKXOP`OM-`P$Q: Q*M } Q%0 Q' 4@0 pT0P 0Q: P p@V URL 2/PG  PP=  0ppW 00@0 U0-  R:'0`2 Q 4`#0 pV0@T 0Q: @@T pp@ Up'O-$M`PP@P @Op`@  _P"  @pO P  B@ Qp YP@ 0$QZ   'QP, P' . *  QF: 0QA  PQ< %$Q  Q$. X DP @bPPY PP PY PJP 0|7 Z| ` 2/@`DP $p PpWLp` p `x~P `P  ~PO 4 0 PQ!` Ž   P:P! pO`pP  00S 0 Y O 8 2/X RW pP `t3  0,`OPC K @`V`p  R    7 P0 0 ppDPU@PUQ PPU ppAp@ppQQKAP P`l  P 0 p00PP03 $P`P *`ObP  PQD` ㇛! PP4`0Q #p p0 ``DPU@PUR PPU ``A`@``R($ $0 0 #Ahh}h)\AeqeO-4MpPP@P @4` p@$(,0D P"  @`O P  B@ Q` WP@ 0$QZ $(,0  ,aP $ ` . *  Q?: 0Q:  PQ5 %$Q  Q' V DP %```Y ```Y `J`| ` 2/ `8B P p PpW7p`p` v{P ` P |P] 5 0 PQ ` 㯻   P  J KP! pO`p@  00S 0` Y O 8 2/aX R/ @P- 5$4  0,`OPb yj a `` 04 WK PY@  R    4 P0 0 P@DpW@pW Q ppW pPpA@P QPpP@pAP PB`0)  P 0 p00PP03 к$P `P `Ob P  PQ` B PP`0Q #p p0 `PD@T@@T R @@T PP@AP` RP@Q@@($ $0 0๺whvhth\8elhe    R' 4  R*O-lMPp PP@@P K@ 0@@kP `QQ H  p @P (0 0SP0@K4p@ @@@@ @@K  p P : @Q$ QXAO- MpH@@QUp|%`   R pp 03 VK PP  P P p PpWp/yP @ R  0 pP rP  PPp P  {ppZ pp  pP p pqO-M@ pp Q*@P  `篨P@ P ' KO  `PO P   B` Q6P  6TP Q { $QT @p }QPg Pb 2S DP5 \PV % !   Pr  R    22,`OP !PY) P PPY! P JP 01 TAp P`P࠾   VK 0 0ॸ[h\N0e`eO-$MPpp@P  @ӧ`@  P"  @`O P 6 B@ Q_`  _SP a a $QU P 8 aPM `H [R DP2 [`< "  @  Q=: 0Q8  PQ3 %$Q QO%`Z ` ``Z ` J` 00 TK| ` 2/@ pB P  @  @Z @p pSrwP pP ~P rxP 2  0I D  @Q p@5H2 0y,pOP O A@ Pw@p]T  0 p00PP03     Pd:T! pOp @ 00S 0 T O 8 2/X R; pP   @P p  R"    W0($ $0 0 %fheheh\)eYeO- MpH@@QRp$`   R p p0/ RK PP  X P p PpWp vP @ R  0pP ` PPT p PpPU``eo&PUPBp ptxtH-MpP @A pP"-#| A`&` P  pP-`uQ `-   00 KH-MP Q@@ Q`|m|`upP>   uPp0   p 0p. Rp 0p*P  pQ* p 0pP pKpQ*H- P 1ttt\\\\\\\\\\\Q%$P  P80%d P  R- P40SKPU%$P  P R 0W p'00S   R04 @P  ``V `b`R0pWP U^  U\W"cpL- Q04 @  PPU PRPQ0`V@ Tp QQ  Q /0 000S/  !R !AR#/  !/O-tM`@ P8 P { pP`P0 QAQK  ,Q: P@ P Qp BPpWzp@, 8(`@P :, 0 PPa, 0@|P ` E@  0d03/V(`4 <0 p 0R < @ (P  5/ @4Q* ,$, pP Ao᠂$ `Y( @(@TI0`@8P  $Z(@P!  ,],0 ` qRv`A"cR*Rc0s0|0# ` @ 0}bDQ PvP q@`O 0 @@0S   L@ /PT@Q  6]\X`@dh@lpDP T,@@8Pa @iv,P Ao᠂&0B@@@ Tu0!cQ @R  &(   0 . 0 (@P   0  x: </O@`@  00S 0 Z O  8 2/<<4P pU:@< R0O C反@KI@_   ݲ\u\wcO-M`@pRH` S  H0  p P:H` 0``P P  9H` PQ ` P(4p$,0@(P V X ~@$PVOL@ 0@GuP Px , `pO@p  00S0  X O 803/pO@` p` + ,00S0` `X!.4L@K 0 K 4c p PL:4H,X O 803/  0:9H `/O@0p` ,00S 0U T,T O 8 2/p `00PU"H`0X 0 B0J`KH- M 000 0@ РH- M 000 0@ Р0H- M0@1000 0 P[K00H-M  0RT    A0#R pP <00H H Qo0 @T   Q& Q  Q: 0QQ  @Q P uP K0pL-8MP @0`@0 KpH-@M@P0` p@ P x P 8p   P P P   K J DP hT@ @@K 0 0॰뙭\NeP;h0H- 000 @CRD @0@RPU PU @ 0T@0O-Mp0@  pD0 P`P 3 @Q\`@ OOㆶ`` P p`Z 00S 0 Z   8 2/3 0@  *D 6C KH- Q0 s0r  C|011C   R 0r s0 B|  R:D@ @0 0  ?<@  &" 轪\r eYeH- õ # V8hK-`PK@ QvM 0qAr As Q :`\!\1 0දVA QuW( `P`P  00S 0 Y O 8 2/W  |x x0 0zD@ @0 0r 0 0j뭨\b eYeͨ\ eCYeݩ\ e Ye\ eWeO-M` Q    pOV%U%EQ QV0@T /`rS R ! <@ P3 `:4 0PE`@Bp @P 00S0  U O 803/pO BP`V`@,P  A@ P @`P@  00S0p6 ŀZ O 803/X 0@  KD@ @0 0 0 0\e@h=\eSeK-M@ `$p@PT? Q@Q   `P h 0i0P? L Q: 0 p``0P+ L Q& 0p``T Q dP L Q @p0`p4 P0@@@PKK$SeE1h=\1h6Te2h\O-M@ p ` PP`Wu 00S 0 \ ȀO^   P803/XQ   Q 0qr As Q:$ ! 1 0ଭ P@ W"  <` 01p@U `     @AJP @ 0  K 0 0l뵠\jeLOe\jePeO-MPp@P`  00S 0 XO   @8 2/PY@ %  r0S: rp S   R :0,!,1 0pp R7* P  P  B` R PQ    0KO]D@ @0 0֬0, ,0 0άU\ eNe]\eLe=\e$MeO-M p]`pO   P, PH wPpP  P 00S0@ ȀY O 803/XOf @ P < Q 0p `KA@ PZP 0 QQP, P  A@ P>pP  @P 00S0 ZĀO   X84 40 0803/XY\dIeڕ*hO-M7 `P@-OOpt `GP   @P @`7/R P ` B@`V`@PPNf zkP PPL y`    PAHP  ? 0pqr s0 Bw0S%p&0@ `pp P  Pg Pp  00@T@ 0   @`V X`PF\   8 2/pPp0  0@T@ 0S   8 2/P . ekP  0K 0 0\dXEepL-@QQ  ` QP,PP  A` PPp൰TP@ @ P2* Q4 Qt4 0qAr As Q :!1 0४T(@ P51p8 0 0|x x0 0hd d0 0`\ \0 0z40 00 0rt$h-\deEe \dhEe͔\d8Ee\dcEe\NdDeM\ddDgO-M@ P p = HReP  P : p 02PP   ` R " 0n   ! R :  A0pQ 0Pp3 KO-M@t@D 0X% T5p`0 PU P PU!p `TTp` P 0p `TT KpL-@P` 0pLO-TM`P@p RY # RQ} RZs  @00 PB" QR @ xQ @Q TQ O,Q] (@Q @ @ P`p P P  `P/`0  (R%$ 4  LS! 0PPH 0D@<830, $`KR000S  Q Qw@R000S k RQf QP O O P O PT PQO 0ԕҕѕӕӕӕTӕO-DMP`  @@0  S< 8 4 0 , ( Bp @O@1c 0 hP @,P^ X`fpP %r &B P    0Bt0SpO P& @ 0  㯤@,400AS @RS< O 0 pPfpOp@p P  @P2 `:A`P P$@ 0 QA{6# R  @ R " R   , Rc "@ R @ P`V`pP )\"  p PK 0 r Ps0 B\ , @  P5P@ p @P'q :B$P 7P |P p0OpBs P$[@H pPUP! pP R @ Rz % DP : P| 0,*   HvʕϕΕΕ0Ε\ΕhhO- MP  spO@p@0 0`V 0 P S    @8 2/p` P< @p0 0PU 0 P S   @8 2/P P< `P 嶑L0H   jK$ 0 0ΦXĕ=hi\=\dx4eM-PM`@pP0O   R 0 QdQ P LTT `@ pP ^  P᤭K`P}p `p ppp $pQ  0HpR0P Lp 3Dp@p @<`P@Yp @ i@QW  O@@ PPp P@KPO- M@ PT7 Q2`P@oOpp 00S 0g`oO X   8 2/`oO@PUU   P0UK/  R  /M-P `V  p@ P QO-M`P@pOW%P!Z ? B@T @0C@W`p 0 ` 0PU 0 S   8 2/KM- @O`QV P?p RP @G0V   O- Mp PO@Z%P!Q `?B@T` @0@Z p ` 0 p 0PU 0W PPS   8 2/` p0` 0PU 04 PPS  8 2/K0H- @P   P0pL-M@P Q%P!@ ` 0PKp0 S% # Bo/O- M @0OO P`U ? pW E @ 0pPP  00S QX 0 QaX  'p `P` 00S V R 0  VR  K803/8 2/0 Q/L-/@^@  A0@L!Q3/0 Q/L-/@^@  A0@LO- M @p O ` !R ? BPU @0h@aP p P  00S 0 ZO  8 2/P pP`  00S 0 V   8 2/` p`P  00S 0 0U O  P8 2/0K0 Q/L-/@^@  A0@LO- M @p O ` !R ? BPU @0@aP  P 00S0pN 0pZ O P8`6/0oK 0 ! R/ L.yH-`` @R P p 00S 0 W O 8 H/O-M` @P> PpPp` 0 R 0ʿVO   8 2/``p 0 R 0ᪿW+ ' $% 9P @` P`p  00S 0ᇿ W O  K8 KO/ z/q/O- M` @PPV`PdPbo@`@p Q:pGQ  W Q LX8t8 pp 1/p 1/p pQ iP(GP: W W@TpPfUd`PEp Q:pGQ  W QZ LX8```t8` pp 1/p 1/p p@Q iP(GP: W WU`T `T V KpT   0@KO  ^\bL-@  Q; 8L8LQ: @@DQ  T 1/ 1/   i]\kbH- M  RD:  `0,PCP M@` p@Tu@`@P) I0 S! [ QJtJ0 S ] QI(JKTK[ Q ] Q pL- MP `P @FyI`VL  P:>PU? 2  ;P6 p* ȋj@ N a  j{XSS1J0 Aa `5+S" pW 0Q0 0    `N : S0(KЍ40 00 0ஓAg9\rddH-0MP`@ R* 0 S{㥧p㡧`0 `pVS!0@P$ p?P,03PHlqpSKS0@P$ p?P,0*`0PU0S:#0@P$ p?P,0P)pp10@P$ p?P,0 Ppp$pp!pppp00CPڈppP Pppp Lpp Lpp\ppHpp8pp0(p7/KHh@**8+! (!"113O-4M@ ` P1/ @ $ 0 FP 5@X X  0@ $ $(Q^q@[Zm P Q:PEQ  U Q LX8t8 P 1/ 1/ $@<Q 0`@PpUO Q:PEQ  U Q LX8t8 P 1/  1/0@q Qp0@P`pVW VT 03/P P ? e\0(0 S( $ $QRI1/P' >B` 0p VX  0a 0 3/Po P? 0(0 S( $ $Q $ $(Q ?1/?  0p& PZX  }0(0 S( $ $Q $ $(Q>ZZQ 0  @B??@K@  u/\wbO-M-8M`PHQ@Q$ 0@Pv 0@  (KЍO-p@ P:;PUm  P:;@T`  Q  @8pWO D Q +j ~8P: p. ȋj@  a  j{XKPIP1J0 Aa ``(΋+SpP `Q`(KЍ `    `N jV`Yp`GQ hPd@,J G$ P 4 S*R^V0 pSp0h0Cp0PUPPP@ R@ RPPUPU  FpGV`ʆR[P 0 Qz* 0RVv Q hApQ P@ 0S 0 Q@ RW RT FpGV`OVM pRp h Bp R@P @ 0S@ TT1 FpGV`,V% Qᰠ hA  Q@P @0pPU@0pTT F BV`($ $0 0 Ag)\΋dSdO-M @SPRkRh  UT@R@ pUPL `  QO 8L4448L4Q: ``FQ  V` 1/` 1/` `yUV U@TT X U K  &\bK-MPR_p@ P  Ko᠂OUL`P  QE 8L   8L Q: PPEQ  U 1/ 1/ P`VK  !%\#bK-MPRip@x PU  0 S@P: o᠂PUM`P  QF 8L8LQ: PPEQ  U 1/ 1/ P` VK  -#\/bL-@ 0 H- M0  Q  3 S   BP  b P Q  Р Р! n Р0H-M @R":R P PP P PPP P K! P QP   K0O- M@P P, 0P, 0R  KP A Po   P Q  0P 0p@ W\Y  `YApQ Q<`Pr A Po   P  Q\  wQ`P A Po   P  Q  X`P   00B S- B!EWKQq @ Po  L P Q  %XERpK0H-P@P  0P00H0H-M @Q00 0QPBPUPPPPP00   0  C01L[PD@K00PH-  0 A@#IH-  A@I  / Q/ R /! n/O-,M@ Q($ KOjPp$ pppp R p RP,R`Rp 0F Q Q 9 - F9A!C0S   C W: !RPP^RpRP p'P   KK! nKH-0A S3 Q7Q SI PIA0p 0`G V%"#"Q V -PGQD^ q0PS0S 0S0A@0S %"#" Q\  ! nK-M@pP+`W` PK`p! p`A PoK [P Q  `PK_XP84#>  0`o Pw  `A 0 0pB W  g Q W Q^- B!NQY 0V``BVRa   0`Vm P* ) )A`p00G S   Q S Q-pGqBQ `VV 1`K` V( 0/O s 0 C0 R!!K V 0/O s 0 C0 R!! KK O- M@P  P) D88 E ^0 0P $险 `0㙩AP0pE W  R W  R- E!J\P !`S0  0E 1/ EZ0 0R ! p`0A `0PB Ue&c& P U P-BL^ p S00Bw 1/ EZ0! 0P}  `Ap0  %"c"` 0PB Uk P U Pa-BN\\ 0 SX E ^0Pd 0P` 噩 `噩Ap0 c `P0E PN R P  RD- E!J\? !0S; $SE 0E 0Cp0S   `! S3 0E 0Cp0S  &0 S!p 0G 0Cp0S %"#" 0 S p 0G 0Cp0S %"#" K  a\sb   R  Q!!A /H-    R    00S ^ 0S 0S 0S 0 #     "! L-xM@ @0S? R=@4,  R7@ P QP, ZT $ #P YT   e !`Y孆K e $YKL`gG4Mvg`Gg"gK-@0 0 00S P@  `P c pQ` @pP:O> P2Q P pP@ ` 00S 0 V  8 K/P pP@  00S 0ĩ T  8 K/qQ %r &B L-M @BT 0KbKP 4  0K  0K SKKPT r R%p& @ P / r BQ Q5 53 5/1H-  0 0 \nmdd  /O-M@ P    RL: P @    E Q/P<P ` Q1p (  Q# P s A  PPpD] P K 0 0 \kddL-@Q Q!T0        R//M-`P P P/  @ 3 p`p`0 0PU 0᪨ S O  8 2/ `@T @P 0 0\idgH-@P 0@ !S qQ ,   H `Q  p Q` U PH  A/o" Q  H-@P W' Q Q@ PT P`p V`P 4IgL-@@P 0W'QPHgK-@$P u`  R pP H `P  P pPU3P`  Q`P   P  P`V` pP`'p PP ` `V`pP5 P  `Q`P'p'Pp0 0@T 06 S O  8 2/'   R/P/M-@P P Mp` P P. ? m@`p`p0 0PU 0ݦ S O  8 2/ p@T<@`O-Mp@ PᢑP 7!7q  00S 0៦ TO  8 2/ WPTp@W `P@P ? DP P ,P  㱢p A`pWpP71P  @`7Q  00S 0H Z  8 2/XKO- Mp O  `B`  !R   @,P X AP P@dh  !@` P@ P@0 0pW p 0 S  8 2/,   70@rbP  AP P0@QQQ`  RQ a< `@P  PX@p   RqP Q+ PpP+ p2@ P@ 0 0`V 0R S  8 2/ PyKO脝 @Pp  $Q !RP `@P0 W 0pWR 0 Ov  6@P J` p P`Vq`P@3pP 3p @ PYp BPP  @o P KOKS  8 2/   0 0(뼍gRg[ZZddM-M@ Pq  70"R RpWg +dR'dAP  PP '00  Q 0Q0`  ppW pOpPp40S R   Rp P  P R p]qQ %r &B Q  K2!d0Spc\0H-P@mN`QAQ:A Q0 AdRP0 0 0vXT T0 0nD@ @0 0f0, ,0 0^[rWdg[RWdg}[2Wdg[WdgqQ %r &B Q  /pL-M Pm``A  0r, @ aST ` >KpMDbpL-8M@ `P @0 S 0`   /@Q+ `$@(`,@04gP@H Q:PE l@ P Kp `P@Kp0H-8M@0#0@P0U 0P0PP000?   @RV+ P$@(P,@04P@UH Q:jK0K-@MP` pP= @GP ./$0 S- Q / `}/A/@P O `0p @ 0p彧pPT@ K  Q M- MP@.P 0D`fp@ p 00S.TpG w}  f P.  u P.  n P.  c P.  t Pw.  i Pi.  o P[.  n PM.   Q?.p`oOP QP PPU P P ԴP  PDP P 5 @Q]Ps.P `@(P` p 00S-VPEu`@(P`  00 Q-VPEu.PK$ 0 0부gg\g[6Nd~d  0Q/Q/O-$MP  A0QpQ@-O P  B@Yp@3pwp P O@⪳p8P ῵p+ q`@ P O@⑳@P 0W/0WS   g7 , P xhpf@` p 00S--V@D t}   f P-   u P -   n P,   c P,   t P,   i P,   o P,   n P,    Q,@p QmP pPW P P AP xpODp P  @Qp, @OO 0 S ( Q[,'`  P qP( Q BpPUP`P_@`, P(,    Q V  0 S ,00P,  0S 0 +p P A Q:@OO @pJ,`V  0 S ] )0@0R+   0 S p0p+ 0  0R{p p+   0S 0 +,  0 SQ 00P+  0S} 0 x++PL K)@ Pf+    PX+   { PJ+    Q   P4+   } Q  0 0x}bzg[CdtdK-`  A0QpQ@PO P !P B@PUJPp@p P @pᥱP ,p+ q@` P @`ᎱP R0W/0WS  KO-M`pP9 P9  ` `Q    `PPp`0O 0@T 0K S  8 2/P p ` P@  00S 0+ T  8 2/` p`P @ 00S 0  T  8 2/K0H-@+pP0' Q'eW+0   /  R   R Q//  @ R6 /  Br R4  R(  RPP/P/H-   |9[;>bH-0M@ Q@D R P $ r  R ` Pp$ p P@KM-@pPp 00S `@O   R*Q" (@@ 0 0`V 0/ S  8 M/P Q`P`@P0 0pW 0 S  8 M/H-p@P`P 0HO- MPP' KOx  00P  pP `QAQ0   R Rp`@@QpWx0Fp`o`A@Qp0FA@QgSe PB OV?   Q 8L8LQ: HQ  X P  1/ P \@ 1/ P V`K  LQW`0p! A!P J QF`A  QM 8L,,,8L,Q: ``FQ  V 1/  1/ P @ X Q 0  K  ;z[6b@o/pL-@,P_OP  A` P@0,/@0PP  A` P@ R 00`V@S:0@`T V ` ```Fv`V*pH- @0^0Q  @ R0 ^0H-MP @P 0MK0H- M 0   ? Р0H-MP @P 0'K0H- M 0    Р  7 0 R/O-MP_O ` A0P ,P  M6A@ PD`pW  P ` @`T P P B@`V$`p|T H pP PA@T P P T H pP P A P   `Q @ `@p @0 0PU 0\ S O  8 2/  PO pP@  00S 04 T  8 2/K0H- r$ /0R( R 0@@Q0 ,P P0AP Py@084 40 0rx$ 0 0jx[/d]g[b/d^g  /  R  /Q/ 0 0 R  0Q //H-@ /P0,`CP  Ap PP`0/pL-@,/PP  A` PPpH-"@0 00S0000 #  P S p 1 0P P0PU PPP P  ` P᳿P /P0,`CP o Ap PᘿP`O-M@ P 0  0Q0P b |O Q 0P` `@`V0QP= R< ! P1P PU P  A` P/P/P P A` PPKKO- MP0S 00R `A P /pP Ἷp1 5  R   @P׾p@ !O 00S TX 0 ? TX O p P /PG nO `V  p@ P Q!1 0v@POO`P0 0pW 0 S   K8 KO/ @PR Q/p R 0S R@`O`@0 RVT 0 ᮗVT O 8 2/d803/^!['dVg/r/r/w/// /L-@0 &0  1 PH-MP@Z2``pp  0 PK2 0I@U p ĄK    R 00 L: R   /9o/H-Pp@O P @]PP ᯫP/P` P @H`֩P ]E+ EO-,M@ PT0 P@@ P$P(Pd BQQpO ` P P Ap PU-PpB`P  P*P ' P`YP7 Pp$P@Q P  P PP@ 0@  RK 0 0t뉾[>!d QdO- M@``0Q Q< POWXP +  p Q#P pP  W P P P 'pDpP 0]p P @UpPP ᦪp/pP P @@PΨP U+ GPpPQP P @#pPᰨP 7+ Up PP P @pᖨP Z0PP P @pშP  /0 \ +  0\( T@KWQgPgNgTNgM-xMP7 7@`pt@T  803/@TtxP hD`T ٱ z P |DKMgQMgO-M@ P#3=++@9/@OO   R @hP ` Q @Y`p ɩ - B$p/o0"z&$  0-@R00 } o00o 0 R,P, @`` 0 0pW 0Ổ S O  8 2/@77`7 p7ҢB   R7P .9R R@ Tw> 7A7 o 7$ L I0O  K Bq0Sq*x70SmOX+ 70  + <70$$7 P 4p @ p  0 0`V 09 S  8 2/(P 7 %7  P ' KP4P$KR@ R@@@DOoBR0a<, T0 @^@7Q! R R  Ao AqP P `@P0 % 0pW  0ӓ q00C?oT@^R 0@@   % /O70S  8 KO/@W @R@  ri[kbH-@7P*7br   Rz7P .9R Rp W> 7R0 R000C?o2R a| S 0\0ppGo S0\R p@0   % /O7 0 0R0 Q ' /K-MpP@fP  A p` `*!2 "?@ 03/KK-MpP@0P ȓ A p` `*!2 " 03/KpL-P Pp`@c8 P p P 0 !p0S@P/0pH8pX 0 0 0, 0$ 00//O-4M   0 8,P@) x L `yyPP/妓P >%     57,P KpL-(M@dP T8 P  ` P7 P ?5Kp\?5L-@?L5O-4M P?R R0 R0,03/Q  GR? @ R0 R04003/ R R00Q R04A003/x # 7,PP @P 划7pQ!P P`ߒP wP @C@P<P9`Pf Y:!" "@P孒P EP u     u % Q 8O 00pW S  0ố O S} Ow  0 gr0 Cj`@@qp@@P:!" "?6:!" "XpP 峑P $Q~p{@x@tP :!" "P  05 X6,P KH`pL- M `P@ CKpK-`@O  0BSQ ͷPQ ƷP!pPUP`0  ` P ᯷ !pPUضP`0 ` P" ᘷ )Bp R ` P  @&P ` @ P<Bp R `" PP `P @ 00S 0  T. * '8 K/ @P `@P0 0pW 0 S   8 K/pL-@P     R+ P P   R! PP`0` 0 R 0᪏S O p8 pL/pH-0MP@P P P p p` P @PV` p`KpL-M@Q  P`AkP  0N Kp5gpL-MP K`@ j  $ ['( P X > `ừ(K [  >KpAa5gL- 0S?V%U%E+0PO r R r: 0PH- P P@5078 P$  dm둠[b@4gHM-`#PU' @K@`P#p#`p  00S 0Ẏ U O  Q P 8 2/B`@T @P#/Q/ 0S:0S 0 R/ 00 S/P/' 0@0Q/L-@P @ P `#@00S00QQ O-M@Q= K  $ )  (  PŠ P U`  Pۛp8I  ͛` V4 ě* PཛV%U%EQ ౛P: ਛP   Ux |`p   ㄛ  Q+ w  3Q 0  J   J W P `/  `P  7p o`l( p, ( "   {   Pw Ps P P`7p4( p  EPX````DD D@Pp{` š#X ༚P;V dHP ૚ `H ࡚ pJP uQ Q Q 7P ~` "P)LP p` P' f( P ]`6H P Q` P' GP >| rhP 0L dpP `UrxpPp` ph>P M` P`PP `IFHDP -P ҙ`DQ' ș ętPq` น ಙp;p T ]G SG ` qp  ㌙`VK  .jm1g1gܔnd\[7\0gd0gߔ0g\MYb[\}bޔ.g.g.gt?fE.g[Z*gT-g,gd-g*g(g,gR,g+g)g,g>-g+gz+gR+gO+gl*g_[)g*g-gHdd[addH*g)g)gaQQbO-M@ <` Qp* |k& , (>P#ᙻ뚻` tYVpPPO& LY P < #Qf YpOP >Q@qP"(?gP P `&  x ԘP &  ͘P ɘ> 8 ! ຘ$ ഘ'0 @0  W Pᥘ ࠘& 㛘  PA> Q @pppL `|WpV`V` p  P? 0p:`8P `` pѱ 0p`  W  `p p` 0p` $ q6`@P p9 (p PP\p? ' \p0 PP `  J`a 0pJppp ASp 5R 0  P\p ڗp> ͗> Q @ (lx ࿗8 4 P ൗ4Px $0T`P<p , 㡗0$ 0 J 㑗  <q  J   JP r Jh( v _<pq U0$ 0WZ  E  >4` V:l 4pP(P~8 &` >(p   k (P P/HP ` @70.HP d  H GA  ږG ( ,(  ȖK  ng(g\~'g]W\7'g|&g&gK\8&g\&g &gqa\%g%g da%gd\#gK\W#gU[\[\"gdIbmbK!g1!g g\[ g:dk[3 gd[g2dG[[aO-M@` ㆖AT P~ y tPPK ` P կ BP Q`PHRP,P% PK 吓 Dp @TQ   @0[ <P8#PK T p   Tm @!Pp{pPup  v` pPePpF8 ߕPP9 Օ@`a` AqPp ? ; 㷕  㳕 㮕3"PP ࠕ ,QU 2/pATPpIPD  `P Pu p  i P,ɬeKIg#["gI[gge gdO[qg]O[g{gagZgdg0 Q/%% R0 R0/000/$q R $r?S [?S/?S /$pQ/H- M000 0@k РL-  0 /S&Q$0@A00T:0D@ #T@}T T   ?MP ӀP M-@$`,pP A AP Pjp 'P@U PO`p  00S 0҆ W   8 M/O-M`P R R KO R  PW p^ RrW 0`@R `0V: OPP R"R1#102 B A 0 Pr`P`@  00S 0[ T   8 2/ : 9BpWp vW( WP!`Op`P  00S 0 U    8 2/ R KO-MP @Pp`P`  00S 0 @YOO  8 2/ `p` P 00S 0… U  8 2/ KL-@P    R"R1#102 B A0LO- M QO\9 0@ QP% Z" ``Qp 0 R 0hW O 8 2/@ \@ T : LO! 0P000  TKH-@0P*:0P6: P2 P PP* PpW PQ: `@`p 0 R 0W O 8 H/O-M@P*@P: P P PQ 0PpW 0PS:K`pAoOS'0 0 R 0 0 `ᵄ0`oO\   8 2/0 : KH- \ : 00S 00S0S* Q\0Q 0 S:0 S*/ 0S: 00S/ 00S >o/O-M@P?: P: P@P*1 PbV) Ԑp P   R P   Z* ! PpU:  0`V000 : K  b)u[+aM-M@PP( pW @@%`吀Q PxJo XP0 3P P KF!Kвkd! gP(507/1H-   7bs[a \O-,M`H@P `4  @  P'P ת'p  pW 'p PPD   R ` ` 0 K`P ᥪ  @P Ω`@2!P @ R  0 @E`P P  P!ᯪP P  0r``Z ` `  0+`aPP@ $( P OP\ $P PUH'P`  `yO-$M@0P?OpRp@C P  `P @@  ➢0?OP "  `@p P  B` Q@ P0( p  !RHaQU  Y  `QP P@ P  DP ` @P9 Q 0@` P ኩ@ Bp@T@p`a RQ 'X. ;  P7:  Q pP%P`X, ` ` `P" ` 7``P ` `N 0r $L{ ``XK` `J  0 0J`-l[ccpL-@,PP  A` P*P d f # 0[S0p(O0 R pL苁~fH-@p` WS@pc!F!P4@AobqW  \ppW ppQ1Q Q Q ```PU:Q HQL-  0 /S$00Q : 0A@ #T @}T T   JGP ӀP L-M@BvpPK N# / :o/  ' /  00S/0S/P/2Q(507/1H-   V_TޒYh[[a0H-@P2Q U * D@oo00H-8M@ % P4  PP@  ?  @R P$@(P,@04xPPK0 0 0^f[cf0H- 1SV 1\\\|TTTTTTTTTTTTTTT%$P 00 R0: %T R 0Q( 0@ P%0@$P S  00%DP0  R 0Q 40 P S Q0  ^Ee[GaL-8M 0@@YKL-8M 0@ 0 00 B@@ 0 0$(0,04K0H-@M 0 P@@@)P@oDK0H- 0 @1 T@o/  &Rc  AQc Qd Qe Qf Qg Qh Qi Qj Qk Ql Qm Qn Qo Qp Qq Qr Qs Qt Qu Qv Qw Qx Qy Qz Q{ Q| Q} Q~ Q Q 2'0R//////////|/p/d/X/L/@/4/(///////////////ddd&d2d6d=dIdTdYd]dddbdadddsdwd|dddddddddddddd\d/  /P(507/1H-   ]dՒU_[WaO-M pP @O0`C`P ƥ pYp@@  @0 0`V 0\~ S O 8 2/ 0  KOO-$MpPO0 ( P @` Pp ` 00S 0~R O  8 2/pO   P K  @Z sP!    (0 R@ }= @P  PX G@P (8S[0@P@` 0' 0pWpO  0} $8[S0`@`P 0m 0pWpOf 0} cS  8 2/ ` P Ụ` @P `@`P 0 R 0T}U   8 2/`@ `P 0 00S 04} U'[(0 Ro '}lS  8 2/ `P P YPU4 0 -'@P tP@Pp 0 R 0|WpO  8 2/ %@KO-M`pR@  ᚼ@0 OG%  @P  PY@@ p @0 p 0PU 0| S O 8 2/ @ 0%  0KO$O-LKOw  LP P K @PPKO- M@P,P'PP PP   QU Q P  1/ 1 `0  3]P_O^0[0S)P  p 0 R 0=vX O  8 2/ V  0TK0Q vP  1/0 R/0S/rO-M` 2/P@ L0 0 Pq@4pW 0P`U`A@WappP  00S 0u U O 8 2/L K 0 0,T;[jcCfO-IM `P pX  rKM-`0 p0S`PFpW0S1pPpR0` VץPoR`C:pP@T`p 0ߛP 4踶fO-M`@p@l~  +P` @p@` W gP` WvA O@`<0 p0 QP4@T 0pW ` QPTaPP@  00S 0Ws T  8 2/KM-`0 p0S`PFpW0S1pPpR0` VץPoR`CI9pP@T`p 0&P 3ԳfO-$MP@p@ pK 0@4`€PpPIT V 2/P  pT@Kw  AqQ*@ P K PP#@KO-MpP@`O  0 0  A0 RR p  0 0 $X @0QK蘣O-$M`PO p P ᛙ B@ RĘ p p 0pP 0@€4p T ` `Y 2/P  pT Kw  Aq Q@ PO P A BP Rj @O-$M` 0P  90 0@4€PpPT `Y 2/P  pTKw  AqQ*p   R `0p PPPEuP UPUP@ `   R @`T` `AKO-MPpP`@@ O 0A!  @ 0 Є`@p X `PY 2/P Pp X@Kw P P nK @PᖗPKTO-M@ppPpeEn `  0@q4PU 0@T `0qUaqaqPP  00S 0p 0@OOY  P8 2/0`pP`  00S 0p U  8 2/ KO-M 㘞 P`pPp  00S 0zp @YOO  8 2/Pp P  ` 00S 0Xp V   8 2/pd00S K(0 R -pO-M@  p@ P  ,P ` A` R PP 0P`i `0?O  0@q4PU 0@T `0qUaqaqPP  00S 0o @Y O 8 2/ `/OpP`  00S 0o U O 8 2/ KO-,M`@0P0700E `  00@4p ÐP T `W  2/P`  PT @O ` 0Q4pW 0` V @0QWA A@ 0+S` pP`  00S 0o U  8 2/ Ku PO p @`p 00S 0n /OV   8 2/ /O`@`pP 00S 0nP /OW   8 2/ /O@P`@ @ @p PP~ 㞜 @ p /Ob @ `P 00S0Pvn P X O 803/ `/O@ p `  00S 0On W O 8 2/ `V7 PO@`p  00S 0(n W$  8 2/ P ] @Xᅔ @P   Br R R 0 PpppW 0PS @P   R Y 0&=  Hp`O@`P 00S 0m pOU  O-MpP@Ⴀ_O`  0` p&1 0 0@Q4`V 0@T p0QVaap@p  00S 0`m X O 8 2/P`@OOp@`  00S 0:m T  8 2/K0H-  4Q00 @ @@T@@DT @@D@@ @@@ @/@@,@) @@@Dt@ T#@ PPU @@T@@T$PuPU PPEPP PPP P 0Q0L- 00 4 R0 @T @@D@@ @@@ @ 0 R0O-Ms` p `&Yp&W@ip_P'`%PeE'UZu'`%APsEP04p$kep&@PA`^ @Y `j ` ` j V @a`^  Kp `@`P  00S 0Gl U O 8 2/KL- R 00 R40 S0@T r RL-@P Q:R Q   0 0S(M-@`PpP U:S Q     R* 0MO-M00p p'i'gPyo` p&`vV P040ej p&A`v'k pP`a@X `S @J p@ @p J T `@A@X0 b Kp @pPp  00S 0Tk AU O 8 2/ KO-M0  8p`  0 R  /o"V8 @P P4 R0 R' `\a!   00S 0 k PR O 8 2/ P ZKO-M `P@@pT PpTw KDKO-M` @zu /O 00SQ  0 qW0 RQ 00`V @ P@pV XP pV4Kw K4K/O-M P000`@pV 'PpVw K4KM-`Pp@t D!0 MO- M` @P00p Z6 PPPP pZ % w" `O p`P 00S 0iU^ Z W8 2/QP P 0` pOQ 0BpWQ/p EP 07 02 Pap 0 @0q`4pW 0@TPa`W 0 @KO-M PP` p @ 00S 0ji 0a?OX  8p7/0 p@ 0 R`  0Di0W  8 2/KH-pP@`sO   00S %R 00q Wp0S R 0 0Q 0 HO- -`p   0P@p U*  Pp Uw O01 4 4A   KO K 00 4 4  A  /H-@|P p` P`0 0@T 0h S O 8 H/M-@,O PP ᫏ Ap PԎPiPp @ P0 0`V 0Ch S   8 M/H-@P p` P`0 0@T 0h S O 8 H/M-@,O PP A Ap PjPkPp @ P0 0`V 0g S   8 M/M-@P-`Ppp` 0ˏ   P @` P`0 0pW 0g S O  8 M/lfO-MP` pO P Ḏ@ B@T@pO 03p P p0 0`V 0Hg S  8 2/ R P  40P0 KO-MP `O P ]@ Bp@T@`  0 p P p0 0`V 0f S  8 2/ R P  40P0 KO-,MP `,P ` Ap R+ ``@HU UP 8Q  㞔$UPUQ $   0NK P `@r$ /O`P@p  00S 0[f V O 8 2/P `8P@P ልP@A `Q嬌pip$ @/O`Pp  00S 0f TP `@OP@ 8 2/ ` pDP@P nPY`K--Mp `0 P @P6 ; {FPE6#6 4ȋI j@ . a H  j1I0 Aa H 0+S``pɛ`c (K>>CM-` `pP  @ 00S 0eR O  U +#'8 2/U+H- <Q LQ ^H1/H{7M-MP@Tl` +Pg e K L 2 T4 8j0 Q썝Pp 0 1/d P jOR,&%@0A T V TbAQA#/`K   T0+S`FK@K  0 QKp 0 1/ 0`ZDP@4L(XdKKKKK#K'K  &CZZaM-M0+C j@P`T 0 p7/KP@KKt zO 0Q0,&%@0㬜T IIQA!a@qK T `p 0EO T T` DR.0g !Xl8Y DP@`bAQA#/`s DP@bAP@HQ"a@K  B]Z_XapL--M@P+CP@ʸȋ`Pc fKpH-M@q. ` P 0P BpPUYP`  @Q m 0PKH-M@Pp. P P ` Bp`V `PP PPPP @Q 4 0PPKM-M @pp P `oO㿊@Pp B`PUP@@@P  `Q  0mP  PP ጊ T `QᲉP 0RS mKH-      Q@HoXT T0 0AD@ @0 0{A0, ,0 0sAZScfZScfZScfH-MPUY `@`@p@ PI Pp@U) @PQ @   (l`   jP`@ 03/ PMP K 0 0AZQcӇf0H-P@Q   lP 0 00H/LP0 0 0@]ZQc+f @ /O-Mp0 @ @!   P P R ``p P Q @Ho p`o  U* @P UZ@ 0+Sƶ PPu@@0 P/S P` @` 0pW p 0a S O 8 2/P ZKOK 0 08@ZNcfO- M@P/ pP`R0 U: %Z#8X %f8W  2/0P  8K % 8K 0 0?ZMcfO-M @0,CP ᧈp APpWЇp@  @P ᒈ  `Y ẇ@ @0Q Aq0 S_*1q 0  2/   ]0 `PU ``FvP U@*Qv`0Pa0  Aq R,* P_O0  q  ᷩ`p`@  00S 0` T  8 2/ K  G?똧ZKa0H-@Q @,P 0,P 0H2AP P@0AP P @0H /L-0@ @"4 R  R R R  R    Q  R R 0Q  >-Z/IaM- @`P P, p `pO 00S 0-` \  8 2/ @AP Mq  $w  RrH-  0 0u>ZGcM~f " 00S  00S?@P/0B4\   00S/?@P/M  P H RЍ/Ѝ/L- P'  # 0R  R 00 R04 Q0@T r 0R0H-  00SO@DQ ,P ᰆ0AP Pم@00  ۮF E 0  G?  07 pL0 P A0S/ R/H-@`PS T%`pP@VXp 700 0  0   cfO- M p `  "9"7@)?0! #0#C%@!A 㑢 uF N%p*+00p !` 0q4PU 0`DV@pUD0 ]YpKO- M p `  "9"7@)?0! #0#C%@!A 㑢 F %p*+00p !` 0q4PU 0`DV@pUD0 LYpKL-M@ 00 04 00A  KLXL-M@ 00 04 00A  KLK-PQ:hX 0l@ R@0p@@q#@ @@l#@  KM-`0 p0S`PFpW0S3pPpR0` VץPoR`C#pP @ @Tdp< 0υP D|^fH-   R00 @ P PPU PPRPR `4pW@TpL- Q04# @  PPU PRPQ0`V@ TpO-M@` 00P00Q5` `00S p40S Z 00S   R Q` R p_  Z0\; P@P $0P-Op P`` 0 R  0\0X O 8 2/0P@UK 0 0E;Z:cqfO-Mp@` 00P0Q/`#  `40S00S Z 00S R ^` R B_  Z\: P@P 0P,Op Pa` 0 R  0X\0X O 8 2/0P@UK 0 0:Z8clofK-M`p   PA.X 0p` @@`T D@Tp00V *W 0/O C KO-$M@pP ` VP@MP  `@0 P P-  )V'   ~^Q  Q @Q D RZ@ @@T`0Pp  R 8Y@TpPp @P P YpW@KO-$M@p` PRU` @D#@0`0 0P000* PP'  #V!0  ]QP Q DP@P ZP  dU .`p@  R  X@Tp` @ P XPU@KO-TM@X P P #pP 4P  PUPr 0 4 p, 4K`V H 2/`8P$ p$p (p r P(K2(B0,pp ppppp p$pp5/$$p P 1/((p P 1/ ( (`K48/D|4 ,0h0pPpPU= D 2/P$ @$@ (@ / `E1(  0,@@ @@@@@ @$@@6/$$@ P 1/((@ P 1/8@TP @KL Ql 8  GxgL Q 0  =x `cODbcbcN4ac ac g`cO-TM@X P P [pP 4P  PUPr 0 4 p, 4K`V H 2/`8P$ p$p (p  P(K2(B0,pp ppppp p$pp5/$$p P 1/((p P 1/ ( (`K48/D|4 ,0h0pPpPUu D 2/P$ @$@ (@ g `E1(  0,@@ @@@@@ @$@@6/$$@ P 1/((@ P 1/8@TP @KL Ql 8  wgL Q 0  uw o]cL$_c^cK^c]cG]cO-|M`pHK@ ,p P0p @4p 8p QcPcPcO-|M`pHK@ ,p P0p @4p 8p    R <  R 0   0    R   80!P  PpA嚾P ݴP@ R D0S@TKO-M@   @pII   @IAPQڠ/ @/Q  !0   0    0$000R* Zo 0 B000P4PPPS*Y :Y*=0T0@00000 I0P PPP`T```U:`A```PdPPPV*RY     0$0R*P  P@` P[Ve I @QZN 4   S:PX    0$000R:YHP?@@ @   P*   0pG$000R:T:P V @ PT8K  KOC I 0KO& 0 Q* K 0I mKI 0 KH-M@P@PPPPP````ppp@tWD *^&*:^7*ppppppp 0 000`4p  S"* ppppp0000`4pS* KK-Mp`@0 0 000P4P  S-* 0 000p$R*0    p$0R *KKKO- M p` 0P0PPP@T@00U@*000000 0 000P$R/* 0 000p4p  S*   0 000p$R*KKKKM-Mp@ 0` 0S0 0P0PPPpp0t0W*000psP P P0C P   p$pppR: 00 0S pKK-MPAp@Ph 0 QY*   R@0 y PI `    @$@R*@p  @0 000@4@  S:  \  ` P@ I0; I 0 0IpK @o᠂O-M p 0Qo@Q^ pM O 0 0P  q40S 0P`U`qS p ``Q* P  00S  0R?R O 8 2/ a P4P0P Z KO- M@  0QopQwgI! O   RQ 0/O  QU0 RQ 0 0p P0 A40S 0P`U`AS@`p`Q) P  00S 0>R O  8 2/a P4P0PX KpL-MPq @ 0@H '`j@KpK-MQ5 P YuUPe Pp P0 `@U pDF CQ V  c0tU @$X@ K 0 0]Z^bbK-Mp P0`@Y pDPF CQ T  c00YKO- M0+C@  @דY@l!1 0_ PS*@B  `ᡭp၀A 㹓@ Aj451"P06  $S:@0a @a cT5"#`$CP@Q0 A@ PEU Ѐ`P0@U `Dp@ CQ P  c0U K\Z6bbH-M@p`P@v* NPU 0!gK 0  0 0 ZZbCbH- jK-MP' А `P0@pU `GD CQ T  c0@UKL- @P@ 0 0uXZbbK-M0 r 00#Ґ0 `P pU0`G@@0BT P 0 bUKK-M r-P' А `P0@pU `GD CQ T  c0UKH-M`@Ptp@  0P( & IP ^ p` P0Q0S ^ ^0D 0SPKO- M`PՀX  0s R: pBP  @_cV( @Pb`V @`t : 0`廒 㚶% pۑ P  X 0p0 `X\`0 !   KO-M@ 00 `B 1 p1SI SPUC q PPPP 0e D2KO!Z) z*SP1  `X) ` ppPP @V bP XPPKPKOnPZ*㪂 P@Y R  O0Р P@p `T0PFB0GQ R  g0MT P PO-M`P1   0p @@t: 0p嶑 㕵SpQpO ӐXE   p@ 09@p W:O0"   Ѡ P@ `pT0PGF0BP V 0 bTpKO-Q6 q Pp@`pa  W :0   ! 0 00p  0ppW:K-MP`! 0pW q!9 0P@ ݴu!0  BRpA@C0Q0  !R Q#W %S 0DPK @@X@> 0 0y 0T @  0" 00 А `P0pU `G@@ CQ P  c0UKLZb#b 00S/ AQ/0@B P /O-,MpPRР0g `Pz@*  p P 0Z o  p h l$ lJ  P5LoFap$pP 'X 8RpGQ:  j o됦a$0 X HR@Q:  a 1PFZD Oo@pp$ h dd  J  Q 5 Vo됦bq! YXS @R:$ dBoFaP Y8R@Q:$ @ ` Q0K 0㜏 { 0 0OAHZb{bO-TM @ T 0` @PA p$p ᚎ P$# v: 0` ?$v*p$  0@ 4` x P8 @ Q4 ooV  @P  P, $0`S 4`4 @ @A  o0a!rp"p a, ,4$0  !( PB ( 0@ (p7  n됩aP@pp %X8R PEQ:, j  kn됩a X8R @Q:,  @0b(002#qR:P*R J:8P 40 1 0Q0 ,0p  PPPPpPppQW Q p 0P@@@ Q (J@ 0$P$Q @ A0d0 pPP$W U , 0@P : 0e `@ R4 , K 0J ) 0 0BZb3bO- M@P0 0`@ 0pGP 9 0 ~!0  BRp@@C0P0  !R Q @"@XY[0 `PR N0 pP=   P @   O0   Р `P p@U0`DG0BQ W 0 bU ȌpX K 0 0M9@ZbsbpL-0`@ P$ @DP  pL00CSP@@N`V  pL " pLO- Mp` p0PQ:  q P@:@ 0@; u@s@ PnKOw @ OP_   `P@ 0   Q: 0Q *qp`P  P PQ:O0 P@p`X PF0G DQ W   d08@X@KO-Mp!x 00m  PuAq*  @̋Yq  0pP@`@  R`R`   T: T*10p`@V``T:O Р P@0p`T PFG CQ W   c0TP K 0.  0 0:Z>bbpL-0`@ PR pL@DP 00CSP@@N`V  pL8 " pL3  00 /O-M 0P 0 pР@B!q*J\W, `h 1 X  ` #W KOy P؊YP KQ 0`V0 S:o ` vt 㸊Yu  P ZJ 0P0W$0S1(C 0` Ph@P% 4( W P [P@ O 0Р `Pp@U0`D @0GQ P   g0U~  `p`  0  0 0)6ZޘbcbO-MP 00 0@B!q* 2p   j00R x :` 0`܊ 㻮K 0`P Z  `V 0 0 RW!  0j`pW00S   RS*! 0QYO0   ѐ `P @U0`DAp0BW Q 0 b `U `  00 /rNL-M 0@@  &KH- 0 \ P Q !0  BR AC0Q0 L-0 " \\  0@T0  S:K-M-P' А `P0@pU `GD CQ T  c0?UKpL- M@ P R@`` 0A@VD1/PR& P1^P; @VP@   PP0!X@U$ P% !@9P# PP 0!;@U P 1/ @1/ Y@Kp$ 0 0뼦̥d/ZґbWb0H- M\0PP0000(0 @U P 1/K0ؤH- P 0 0Q.Zbb0H- M\0PP0000(0@U P 1/K0`0H- M\0PP0000(0@U P 1/K0ȣK-M-P' А `P0@pU `GD CQ T  c0UKH- MP@ ` P Q1UPZ PMPR d` `)P! V Q19P- V ppP0:@W! P" `` A0$@V P 1/ @ 1/1/ >@K$ 0 0븡d*Zfbb0H- M\0PP0000(0@U P 1/K0ؠK-M-P' А `P0@pU `GD CQ T  c0OUKpL- MP@ 0Q1P3`` 0A@VE P@ 1/<P mP= @eP5 P P0!@SP# P 0P"V@U P 1/ w@Kp1/$ 0 0 44X'Z:bbK-M0 VPY Ѐ`@0pPT `EG CQ W  c0T .P- А `P0@pU `GD CQ T  c0iUK 0 0%ZZb߸bK-M 1A P!1 0 PP( А `P0@pU `GD CQ T  c0UPK@KKX5%ZbobL-@ @7 P  0@\@0T S 0  BR A@C0Q0 L-@ @ Q @0!0^^  0@ Q@ 0T:P0!o/R/ RQaB@o/H- M 0 @o РH/K-0+C  jra  na  `pPpCW !@ ATT SJ Tp pDoRaUa3Q4a:v @i2YaTQ7Q@i 0aT23Ġ! X 40ATAQS PX:^:@NAY0 I ` `0S:@DAT 0 Q 1o/1\lB P /M 0 c1/H- 1 Q A H0  8@(aP$ 0 0 Ht`5ZbobO- MpP`F1OoodPpup@:e K aP>  E0VA p0:` PD a`: e00065`J34`` BZ\ `DP :000 B05S 5fP6SPP6T B`^-K  0 0 KeeMZbbO-$M `p@PE H rr o`=000=f0 `R@`D:>e ㄨ  0\aP U@`@< dP`   P   ȡ @0@ @dcX: @0 PIY@`$ PcGaT@`*@V`DP0P  P-@T[Q  0 A0@T D 0 0@QK$ 0 0 ,ۋ_ee!Z|b[bK--M@ KKP 4 ` jȋj@H  kWKI1I0 Aa  H   0Ń 㤧 K+S KKpL-M@P  P:DPP4  ` 0`Z v&Q Q9KpLJQ`P( `P` 0` `KppL-M`0  1 S@B S P   r   bPP SKp(P` :0[F 0 Kp PPRKp `PRPKpO-M `@@oRa U vx t!p @W g 0GS4"#70"Ơ#6Pp Q# :@+ AR pA@+a4  ^ EW WFw^B Np@NgQ@ g pG4 W.p0 P@ `U3`00 Q @P0AQ  \: R*C 0@0 QKH-0QqR  B P `AA aV5@p PP T AAQp Dp@W 0H-P@ ` S9P P8 H90$ B950m`ph`-eO-M@P `0Q * P @` BP Rp ` `pW Qp `P0SU  qK Pp WK V  `Pp P,  03/`Yp:P0Y     S Y @  PK 0㘁 w 0 0K 1ZrbkbK-SP`p@甑@  @pP `VpQ P   00PP 0 0 MZrbeH- M00 РO- MPR`@@ppw : 0. 3  M P ( U V p @e 0`V5014V 0 0p`VpQ    0X 0 KQ/Ao\/L-0Q 0 @T@^@Q0H-0Q 0 @PPP@Q00Q/pL- P21 BR : a P@` R>061P 1pL/1 q535/1/L-Q LJ @P@ 0 03 Znb bH-MP`@p_P*@V@ 0@Y 8 bu@T K 0 0ɋ ZmbbK-M А `P0@pU `GD CQ T  c0yUK//0 AK-MpP `%A @ ,AO А P@0p`T PFG CQ W  c0&TKQ/   \ /H- Q0, P P@P`Ub!: @b@ P!pPDR:PU& H @ @~^@ 0D  HQ LA0SA BQH  0 0 )ZibcbO-MP`u@@S  r]~XP  G!U0p``V1  UO `p7  0   Р `Pp @U0`DB0GQ R  g0_UK 0~ 㿢 0 0QZhbbO-MpPw@@ `  }P| PIQ00S@ PP`pp`pP`p``XP A0@v R`Y   W 0Ppf ``5& G`O0Ѐ`P @pU0`GD0BQ T@ 0 bUK 0<~  0 0ZvebbpL-M0`A P= @ &10S05:020S.P4  1R2'0 @@/}`V@ 0 0! P:`0 0`P@} ȡKp KpL S KpLZdbbK-M< ` P|u%`vPPQ` ` P` P0 p@U `DG CQ W  c0U @|X@ K 0 0=Ybb3b 0/O-M2 ` Pp|0 0` PP@`Z 0FpD EQ T   e0 Z @f|X@ K 0 0YfabbK-M@R *R pP@0Pp0w` 0`} U P/|`VPK40!01 0 `|P9 XW  PP 0Rр `P0p@U `DG CQ W  c0*U `KY`bbP/pL-PPPP@UQPPQ \pQ @BP T`P5 R`P*0 QQ1   /H- Q ^:000^:0|  Q  ! L- Q R:00 0R:0~ @ LQ0 S00/Q  ! H- Q R:00 0R:0~  HQ\00/Fd H-  (p /p/4d //d H-  o /o/d //d H-  o /o/d /d H- x |o /do/c !/Q3// / 1 Q 00/K-pp @OP0` `  00S 0$R   8 2/``P 0 R 0$U   8 2/;o//P//0H-0 @T  O 00@^ @PQ 0S:0^  0 R0  Br RQ0L-0 00P 0 ^ @Q  0 R   0P//  Br R/O- M Pp0SX `@    @0S= pP HK  PqJ p /O  0 R!    Br R R0 p00@@@#T:pW:   "Q:pXK3KH-  00 000S  000Cs0 S0S 0!P 0 S Q3O-M0P`P@0pW O   Br R *p@0 P* J`1  Pp 0@T 0P#0 ?O\  8 KO/BP`VI`@ 3Q OQ^  "Q+ @p A Pp`  00S 0# OV  ` 8 2/O`ZY `@PP 0 0pW 0" OS   K{O-M ` p@0RP 0pP @pV 0S:@p@ P I@ PPI@@Q KOpPQ p T pW`P I` ` @PHP ]PPp_O` p 00S 0>" P_OY  8 2/P_OQ1``p@ 00S 0"P _OT  8 2/P_OXpp ` @(P@OO`pP 00S 0! @OOW   K8 KO/O- MpOP`P@00 R T; `C @pP* P H p p 0@Tk 0!0 ?Oe O@OOPpp ` 00S 0q! @OOV   8 2/@OOPp P` 00S 0N! @OOV  8 2/@OOP0`P  0pW 0*!@ OO \   S  8 KO/BP RG @ OQ7O  "Qs: ` P`@p 00S 0  OW  8 2/OZOPp `P 00S 0  OW  8 2/OP `P@ 0 0pW 0  OS   K]0H-0 0PCU00 P\ P@Q  0R:@0\ @Q G0P QF@0pL- 0S$ O00@S @ P`P0@T @ ```Fv` V@@@ QpO- M P `ARR @0S= pP 3G  P\F p /O  0 R!    Br R R0 p00@@@#T:pW:   "Q:X@K/* H-p@pP0``  00S 0R O 8 2/ HQ3/VUEP// // ///O-|M@PT ;  -PP B x ,h  ,P `K M< 2/pَ-P5Vu `KPUuE  ,5r ,.r , w 2/g ᨎp- PPU ;Kehe`eXcD`c/ /// //M-` s p0Pp@P 0 R 0T O  8 M/O- MP!@n0`@ pqpR @PT PpqpR \@, `L p6PPW` 5p p\#Pe P\P4 P0\  R% eK P fEP  `PU DP   0ٛPK aO@ 9#P`p`@P  00S 0 W O LP# ppW`@ p`V\V=PH@P@0 J 0`VE 0 BS# PP0@ `  00S 0  V O 8 2/K\z`H@`@0P 0pW0Pm PSf O` ]SX OR O803/K 0 0YK$ 0p $  St 0P0Pn0`pR= ` 0VaPp 0`V @ FpP2p1 W`pW?0@ eQ0S1R p @W)P0V#1P Xu^    R  P7J@W 0<X KO{X$ (  @J` XlW$ ( ;K`P V @P  R P   ,P. QVV0P! V P Q P ,P `QVV;KhtH-@ Q `@`0P 0pW 0`@`0p 0PU 0S O 8 H/S O 8 H/K-0`@,pOP > AP P=p P`@Pp  00S 0> W   8 K/O-M` @0 ` @  pP`@`  00S 0  WO  8 2/  P`P ;>@  p@T c=@`Q*pp `P > Q<=` {@WOP `@Pp  00S 0 W   K8 KO/0H-P@6yP P P0D@   0!0Y!`pL-`@PyP P P  !  E @P =p P P<@piYk!`H-`@PxP P P  ! `P`Pp0 0@T 0 S O 8 H/葽Y `/O-M`PD  =@,DP "=P pPUK<P)Q# p`P =P-<` Q pWKO- M@OO  PQQ: Q     R @'*`E. 0P oC gC _CP ` pp 0 0PUP 0= S  8 2/P`p`P  00S 0 U   8 2/`p `  P 00S 0 U   8 2/`p` P 00S 0 U   8 2/`p` P 00S 0 U   8 2/#'K  !녷Y`K-@|,@POP`pP: PT     R @&)`pp  00S 0dR  8 2/  +`+ 00S 0DR   8 K/  빵Y`+/H- Q (0DDD   )Y+`O-$M@ 0`-P`J`P :;Pe:P QQ: Q<     R O@&&)0 `@PPp ;0  Q':0P 0 0 pP K  ]Y_`O-LMp,0 (0K0( P@-pEPP :` P`V9`@ PT P ``$@pZ J ` T: I& qW pW P V P: IP  P P( `S!AS$` Pp@*Z   A * * ZZ:J   ' `  Q1J  T* dIP % PP J  P: KILc@PU" E T:;IzP@U P @P(`!cZ PJ  Y @:  I@- @P( pW$pW!  P X P: HP P(Q   ?R  @R:YP   Z@*(  A * *JI@PZ:J PP  f @ P1P @ @PTc* UE"@  o!pr!  D W   P:@o `cT@1T:J  Y: |H P   P J  P: aH ` P  PP  9@$( K,0 $( K `@T78@ `$P/PP 8 `Q 8 `P  0,U0p,0`  ``Pw  O@P 8 PP7@( @/PpP`  00S 0\ V`I E B 8 2/< P `V`V T(Q   ?R  @R:bXP Y P:G P p`@0P ( `)`qh, KᴋKO-TMpP,0 (0Kp `AQ 00?S00@S:"XPp0?OPP: P     R @$#-& p0 P  8 @P47p Q$(0@p,0$@ 0P 7,0 X7,0@Q>0`/PP 7 Q 6,0P  04]T8P40&& P KP Wp `P ) `DQ.,0(YWO 0@P! |7,pP 0p/ pg, KNJK 0vg, KṊp ` PP6P@  åP `P@  00S 0 T  8 2/  \qYs`H-0M`0P'  p0@-   Pp 0P@T @T@PU  @KAeO-,M`Q: KH@Qʼn* Q@Q: Qt     R O@!$@ ` $P 6 P 5@@$P 6P ` PU 5P@$@P }6p ` pW 5p@QX ` P`@$P Q6 Q z5@ 9/P O@P p 00S 0 W O  8 2/ p PQpQ) p  `P` @$P 5 P 5 @ P; VP(`V& p(@ (P$P 5 R 4 PAPpV @$P 5` 唐`K P `Y 4@ Q 0pP @$P 5` `V 4`@$@P j5@ Q 4@ @P Z`   Y`O-tM8@4<00 QH@DQ #8  P@ P '5@  `@T O4@P P@P 5  ` R 84 P 0j@OP@0  0pW 0  S O 8 2/0P#'4@,@PP 4@  `@T 3@PQ8, p( `@P 4P (PU,3P`40 <07P Q 8'`' 0V0Y8`@/@P f4, , PP3@ 0Q@Q: Q     R O@EN"@@P .4p PpWV3p@@@pP 4` P`V?3`@Q, (D$`  @@P 3 (Y,3(@@ @P 3 (X,2(@ 00,KpP<@H@D@LP@TX@\HD@D @PP( 01 R 00S DPqWp PpW @`@`V pDpqppDp1 <(pK`,0 8@ DP  p0 /O@Pp  $`00S 0  T O 8 2/$`T ZE @@P 330 ,P0S[20@Q, $`D (0 ` ` P@P 3@ @T,02@P@pP 2p Y,2p,@PU  00,KO<HDLPTX\HDD PP( 01 R 00S DPqWp PpW @`@`V pDpqppDp1 ( K,0@:@o `8$`P Q P : ;$`40P PQ   ?R  @R:QL$`P40@T   `P@Q  Us4 UP1U:4J  R*`` i;`8P ,8,@ P J  P: P;8@$ $ `,`V0f,@OT @P  ၚ@T(Pp`@P  00S 0 W   K8 2/K  IwYK_M-M  p™`-@GP +` PP*`DQ pP +`p @` P`V*`pDP ` 0`[ ~KO-M`$PV` ,@Y x`PQF`  PW@-EP Y+@ pP *@DQ @P C+@@K  PP e*@DP K@  0@ [ v~@KO- M@Q P^U!  U` ZW E X ::Ka`Y? pP W::pW.pW+ Q% `R `0Q   ?R  @R:JP ` R` YKH-@PQ A qPP`UH* VF"@  o!pr!  Y W   P:@o `xqUP1U:O-M@Q X  Xp `VC H Z : v92 q`pW* Y P:`9 P  P !R   R 0P0PU ! pa`KO-M@Q WX  Xp `VC H Z : 92 q`pW* Y P:9 P  P !R   R 0P0PU ! pa`KO- M@Q PU!  U` ZX E X :8Ka`Y@ pP W:8pW /pW Q% `R `0Q   ?R  @R:BIP ` R` YKO- Mp p@J`JpJPAP{Qڠ/0 p/Q  !`0V EP  UM =P X*@W p@H$P :P TXX P YKp FPFYY JHQ@P Tp @P @ZfT bT[pD̙P@6ƙP W:PF MAYpP9妙P+ K@ 8 X `咙P@pw  ᆙpGP  @`@ PK JKO 0JKOCJ 0jKH-@`PXpT W RGQR 5Q M-`pP@P P @P @@K-`pP@P P @ԘP @ȘP @@O-MPA`@P88妘PB =p 9 @ T5 咘Pp`v  ᆘ`FP  pZ p P@` I  0ICI 0iK @obH-Q`pP @UtࡦA0@ 'U 0p0pW     d 00 Q/SO-$MQp`Po@Fb @Ut^A0p '`U 0 0S O  P  p0Wq0 ApP0` @p BPDQ`    @    0p0!P  ` @ Pp 00S0p pZ  803/`P @  ! p00S 0 U  8 2/ 0G00R pU @  RPP pP@  00S 0 T  8 2/Kd  AR/O-MP@or` @VcA0@ O&PV 0 0S p@p`  00S 0X V   8 2/ KdO-MP! p @`pƵP`QqKO- M`@p PuK `` 兠眵P PYKu0 P 0Dpq 0 R@ 00Y p @ 8 2/0EKH-Q`@PI $@Ux@0 % @U0``Q0    Xd 00 Q/SO-,M Q@`PoFBI $@UpJ 0 @%pU 00P  P  p0Wq0pA0@` 0P   @pGPDQ p O@ 0$  `@墠 Pp`PO@  00S 0 W O 8 2/  /O  P `@ P  00S 0 qV O  8 2/ $0/OP@0 ) p00S0`$0  0U $O  @8 2/0  WP 0pU`@`WEP PO@pP  00S 0f T O 8 2/ KDd  AR/O-MP@ori`I $@VO@0 OD$PpV 00P  p`p@  00S 0 T   8 2/ K\dM-`p p`P@sP PQqO- MP`ppR PP``@IP@X;t9 p@ @Da 0 R 0 PXP`X 0 R 0xXJ K8 2/8 2/H- PK-@` @@Q p!AP Pp`ŲPP`O-M@  /o@"m,  U  PDQE  O@p` 1 B !` /OP pP@  00S 0 T O 8 2/@ P  K ,0 S*@RO-MP@ Ǖ pp T(D@T#T!D`` 0 R  0xZ O 8 2/@TPKH- PM-@` @+@Q pP"APP p`ɱP `O-Mp  /o@"+   ApA PDPp   O@`P 2 B " /OP@pP  00S 0 aY O 8 2/p P /O@P`  00S 0 V O  8 2/ Q  K.+0 S*@RZXO-M`@P 㦔 UJDQDU`AD``p 0 R 0UW O 8 2/D``p 0 R 05W O  8 2/@PUKO- MP@P=  p 倡 pDP P ` 00S0 VVP 0 R 0V@K803/ 8 2/O-MP@iP' D`PPp` 0 R 0W `  8 2/HKO-MP@ 0 R 4@0`ppq pT(`QPb `  00S 0\PR PO  8 2/`PKM-P `I p!   \ R0 @pQpG 0T@p0`Wp @ `@  00S 0R O 8 2/`//  /O-M@F 0 Rځp4@`p0PPQPT+p0QLb `  00S  0PR PO  8 2/0PKM-P `I p!   \ R0 @pQpG 0T@p0`Wp @ `@  00S 0SR O 8 2/\//  /O-M@PA`  r  p妮Pe !r:0pO 0SR00Z@0  1 !  0`P  `  00S 0P P Pp P O  `803/ PKO-M-M  P`pP0S0zV mEpP6WrP@ K ?kpPQ8pP0D 0[P0@a uP?*O@`Pp 00S 04 T O 8 2/ Z @ 5V(KЍ(O0 R{ w$ 0 0 0C=YaYd0H-@P @@Q0O-M@A6`V P p[P  VP` _O 0SR00P@_O `0  0 q `p 00S 0 P`| p`P_OX     P803/pP_O嬀` ` 00S0PNp P_OY  P803/p KO- M@P   AP_O0 0S :Q*@R@ A[ ` 0  !0Cp` `P 00S 0p p pU O  P803/ KO-M@P   AHPO0 0S :Q*@Re@ PAp 0 b0C0PPP00!p0  0p ` 00S0`g `允ZP O 803/O` p`P  00S 0? U  8 2/ 0 0 KO-M`P       P, p@ @@Q  PP@P KO-M`P       P, p@r @@Q  PP@P kKO-LM$ `$ pV@P(  P@ 0!R#R R RUP@ R$  `J R]H$ Q QKP P F]`$ (    P( J4@ 3]h$ QH@,T0`']d(P  ]d    P( Te T( T( H`4W(0pp0CS2Do,P 0@$^$ V`(`2H V0 RP$  @HP\$ @ЀTአ  \K$\$AoT(@ %!3$:Hp04$6$5 `677@00 @0P  ,  4 U2` \PO@  p 0 R  0Z O 8 2/$PU`0,@ ,   R 0p ` 0 p `P PS$ BR*2R3  $ P$ U , 0@,00PQ4 Qt Q  ,0 p /O@p` 00S 0,  V O @8 2/, /Op@p 00S 0`, aZ O  @8 2/, 0  $ 4A 0 0p0p @C⠤ $1O`p 0 (@ 00S0 0@, @X O 0`8 2/, 4(  P U= `P *$c[` `(P $U[dP 倀P$-P  /O@P  00S 0; qZ O  8 2/ ` $$ QP 08   < P  R& p /O`@p  00S 0 PV O 8 2/$HQ/\x ]  `/Op@`  00S 0 QW O 8 2/   K(`P3/Q0H-  00  @ P^AQ20HQ3/O-$M @` P P~p `A ` @/OP`  00S 0W X O 8 2/ P P  R  RZ ` @A@ +PU+ @ O `/Op`  00S 0 Y O 8 2/@X P @ $A@  $Y+ @ O p/OP`p  00S 0 U O 8 2/@X P @ ,PL @`D V? V<  {O @/OpP@  00S 0 W O  8 2/P `P R` ` R ,MPpO@p`  00S 0L V O 8 2/PO` Pp @ 00S 0( W O 8 2/PO`Pp @ 00S 0 W O 8 2/PO`Pp @ 00S 0 W O 8 2/PO`Pp @ 00S 0 W O 8 2/PO`@Pp  00S 0 W O 8 2/ KM-PU>L@U U  `p`pP  00S 0Z U O  8 2/O-MpQo `p RK@ V V@1VP _O  BTp`p  00S 0 ZO   8 2/T` p##`P  00S 0 U0 , ) 8 2/#,fp`  00S 0 X   8 2/#'+Ka/ R/ R/ RP/ R/ R  / R/ ; S/ R  0R \00 S \/00 S0 000S0 00S0 Q/ R/ / R/P@Q3/ RP/ R/ / R/ R:o/QL- 0   Q @AT3L P/QL- 0   Q @AT3L /H-@P 0p`  0 P P@U30 ``pAQ  00S 0 W O 8 H/Q/H-  0P@Q3H/H-@P  0p`0Vt pGW 2;00 0``pAQ  00S 0G W O 8 H/Q/  0 0R$ BR2/ R / RP /Q//O/H-   ~Yw_H- PQH-  0 0R$ BR2+ H /0H-\ 0@  0 Q PAU30    R R"\  0P @ 0 P @ @S$ BR@2!   RD0QH-  00  ^$ BR&2H /Q/  0 0 RAQ2/ RH- 0  0  SA&Q2H /0H-0S 00P00@P0 0\TPEU02001  0S 0P@00P0@0 U40CS620 !00SL-  00@   ^$ BR 2L  S #/ RL-  00@   ^AQ2L /R#// R0H-  00  @ P^$ BR*20HR3 /Q0H-  00  @ P^AQ20H/Q3///0 S 0 / R /0 S 0 /0 S 0ࣂ  / R / R 00  0/Q/  / R 0 0  0/Q/  0/ R 0 0  0P/ R 0 0  0/0H-@PPN: PN8P0h008P0h..P#2/.P,/.P&.P" 1/.P  1/.P .P Q ?PP@P*00H0  M YOm_0H- R*0R 0   P@T00@ ! PU 0 @S00O-M@pP  0` 0` P` \AQ 2 : P 30 P!  0`P0`P P0\@PZ0200P03PR$`PP   ?R  @R:/PP UK0 )KQ0H-  00  @ P^AQ20HQ3/K-@T @@P@@`P@p fXDp@DT2JT3@p RAS R 0S! QPO-MP@P9:` p <@ 0p@$F@p'P 0S @0 @0 R P@ 0"FK0P  0 0  @ P! 00 ` ʠ  P! Rb` p   @`0 S 0S/0! 0S/0@ BP/ R , R  0  /Q/  0/pL-0 S0; S 0`0P@000TT`PEU`21 0S p 0`P  P0@P02 p RP/H- Q L$8t P  @ $   #dQdEdYd_%XO-MP u P@/O`P`0 0pW 0 /OS  8 2/ /OPpP0 0`V 0 0/O\  8 2/ /O`p ` 0 0PU  0PP 0/OPP\P  `8 2/KVUEP// //K-@`p P0pPPlPhPdP`P@PDPHPLPP0TpXP\P|PxPP%\ P0P!r  t,PPPP P$P(PP P``P   RQ R P ἇP NP hP PP 8P<=`AHAA@??@pL-|P`L@ @P\DPHP`@XP\P@hPPP`PdPhPlPpPt`xP| p;Q/PQ8Q Q/>>?M-@(P` p@ PD XH L PpT0X \   p   ` d h l p tpx |`Pp᐀0 ̗P lP TP <PX  :>==X>0H-@P dO`P vhP l``P \PU [ @?SP[ 01/00X X00 \ \0 /pL-`Pp  P\@XPT\ [ @?SP[p1/pL# poH-@`oOP P,P 5 Ap P^ PP P,P  A` PE PH-M@P  0mKP|8`UP``0 ppKY_@P*p 02(/H-   묵1X.bP/P/P/P/Q/ R/P/P/P Q Q/O-MPhl Jp@@Ta   0ll< @P=pDTEUE@`q WPP- `p@0` pUeUeMYT` 0DAa h@Xlp`` KH- H" P/H- vH" " 0H-PL@W4  @0(jkL-@IiL-@=L" iH- ~q/ ~ 0xM-@` P pTHPL h ` H PPPPP P$ `LShiH-@`Pp  (T ppt `ɯP ppppp p$P `SihLihL-@   ⯯`g0H-@<<P  (✯-S0hh gL-@8 0 0  0(兯L" hf0H-@@@P  (pS0H! gpf0H-@D < 00  P(WR0H! \gf0H-M0@ Cp_P*\Sp  CpP*X  @ S<  !P  ~} zK0Ud(sd\sd<_0H-M0@ CP"!htpPP CPp  1_P 1\S P }p} $  )K0_Z2_Z_Z/_Z_Ed0H-M@\\ P0P  S 1 Cp_P 1 }E} K0tqddX_pL-M0PSs@ T ` ! C0p_P 1 q}!}  < @  e}} Kp dܪ_pddpL-(M`!@XX  P0 PPQ0 0@C}| KpXDdȪ_O-$MPP0p a8a" `AV3&3a`  pP:pp1 ̠`     0 00R 00  0r A1C00! 0R1pD  || awxP KX]XԉdH-@0P `p 0 pLP pppp p$p(p,p0p4P8P+_@;_ BK_;d; j ;c 1+Q0?G Q:2tS|sS:pz3@2 `$ BR7 q Ò q q a  q+_j;cKdPK_;d; 1 Q0+S8u2 ARtSQ3C @P qÐFRtS3C @P qÐzRtS3C! AQ pÑRtS3C! AQ pÑRtS$3C @P qÐRtS]3C @P qÐR  _  +_b j a  0;QpG % Qz2TWSW: PZ3$ B32 b"40CS5#0q0ÓkRTW 3$ G2 BR 0q Ò\    +b j a @ 0;QpG ; Qz2TWSW4: PZ3$ B32 b"40CS5#0q0Ó#RTW 3$ G2 BR 0q Ò  + b  j ` 1;RpG Rz2TWSW:PZ3A31 a40CS50r0ÓqRTW3G1 AQ0rÑq 2 1  + b  j ` 1;QpG  Qz2TWSW: PZ3$ B32 b"40CS5#0q0ÓRTW3$ G2 BR 0q Ò    +b j a  0;QpG * Qz2TWSW#: PZ3$ B32 b"40CS5#0q0Ó"` ARTW 3$ G2 BR 0q Ò"L  e  _+b j a K 0;QpG % Qz2TWSW: PZ3$ B32 b"40CS5#0q0ÓRTW 3$ G2 BR 0q Ò **q'1 0+S`3PK*2 @ *"*   AX%_O-MP+Sz C@Pu`p?.P?Q>.PP`?P`PP^P03 *    0PS PC@@EP3RP@D P P ATPQN.P?Q#.P?PPPP  Q*  cIPP`VK  p0 W02 !0S`R  PP  0Ra 00 R  2! RP QP 47``4  + S CA@3RPA `P PP R R *P R BIP RM  P<  =6M-MP@`?.Pp`?*P%V# 6W &@$jK%P PP Pc &W 7W 'W` S 6K &WKO L  J+b j a + 0;QpG & Qz2dWcW: `j3$ B32 b"40CS6#0q0ÓRdW 3$ G2 BR 0q Ò* 0+S"2K,(  - AX_O-M@4 p3`4/ )P*P  ぀4p! 0!3/PPP  ぀4px  0!3/PP^   `5"K8K-P@ `p`7( (p@*`, @p ̐@w( (@2RH-p`@PDPo`7$( (pL-@P `u@`( 7(ppL-P4@ f`^P@ `ppL-MPAPQ;@ 0Dl> 94j@Kp<G- 0@0Kp<P*@"Kp4<O-`@BKpO-M@P` 倠X@&Q #pppp p` (,40DpQ)LpPpHT눑qpqL\rard4hP Q )@ orp@p`rQPLMNO<PxQl`TRHfoK@$ DH-M@4px`w P4*:V 0 4  =PPKO-M<P#p0  P,0 00 R40 80 <0 @0 H0 H0K@4@xc`@Ti ` 2/@H. $ ( i `(K(X , 0  $6/$`$ P 1/(( P 1/HXP@H\`T`P8,44 : x4D @49X 0 4  I=@@X HR#{@PT $=P^@ < TPHPPP i0Pp0\`p`3/HPDK(KE8 ( $P@D@-@p `pP`Pp00<|0p0S 0 L0`00 P - H )(K (`$l4B’ a]RdxPd$PdXO-dM@P``D`  )P 4|`L P94xD4 0`s9P @<P`8P @(@,`4@0Pp<`8p+@DHP#bPWV \PXPTPL(P898P4@@4@P'<)0Q06 & P    00&PPD?.P@K<E< lB ` P C pP  & p 8?$ 0'  E1぀4`$ 0!3/@' P 'P =xP=0 405' '4' 0 <0P<'P I HPQ  ='P `x RQQRR EP   00S0 q   0+~'P}  N P`@Q@ Bp ṙpFQ`08)p&`P &Q pp W T U0@qPU0000]+<>BoPWPp*P?.Q   ?  R.Q ? Q ?.P?&P 0Q< 0 001$+P'P48(,D<K&@$ (@$ p0,4\O-MX`PPO p @77p 00S 0 \  8 2/P P `;@;P0 0pW 0 S   K8 KO/L-@:: lL ApL-@:tP``9 Ph"U448`*P` #8`"pO-M@P` ぐ4 0!3/q0P<P  pP W ?.Q? QPP  qKPO-\M@ @p@$0`,P(4008<@D ZZ㸕TP 89 `8k 0 ``P# pAP  ぀`P  0!3/@p,0 $KH R 0S/ ;0H-MP@CP   00S0 q   0)K0O- M@'@ P ` BP`V`@ @ pPTM ,!`P@POP  A ` Q`P@P  ` P`  0!3/``P,X@!KdߑO-CM@Tp <P`<0TZ8 Q `8P@`D(p(0F L`oo H0KP,P 0P R4P 8P BoX P`l< I?YQ H I`7`d 4q(K/(, $PX(\XH 0@ 0 A$8P< 娐0 P P P VP p@0  P ( 00Q Sޑޑ(0J?dlPۑC8d$8d8dّLבO-M-M<Pp  4 P8 < Q@ D H P P K@@0@8E@`Vb  2/`H1 8, 0 zb @0K4(X0,  $4/,, P 1/00 P 1/HXP`H\D8T8P844xD` @42V 0 4  ;6@@ @/O` Q ( P/O `PV P PP 1 `/O /OD` P U B@ Q~` HdXR# d `P V pV $5PVf     R /O /OD@ P  B Q8@P8 0Kެ4 0 ,P@8D@ū<@$@0K<O PP 0pI8<@f 0 @p00 P HPPP `a0Pp0\PpP3/PP(KЍ P 囬0K≬0,0ԑNa=6d5dԑ,ӑґR2dO-M@4P,4 u2 2 (8@D,Pr1X@ P`T P@L P` pDP Hp @ < 8` `KWbK$` (` ,` 4 XK0 8,98``$ @ `P  `  PY  @`S PpPYPK Wz0`P8< ZRJ, `0R! 0P*<W@Q9(0 @4 4xb 04`p1W W:P$` ! !/,8`@8d4hp$ l 8 H`HPTX\0p`P.< R*, 4PR! HY KY[Pt 0 P <0S,QYKC GpPD,0 @ o"THY KaY[PO MPHU00 \ XI ppUp` U 0@ S 00@@  @<@ ZY[`, pQp&`d  4  uY K   0 `p`Up`F9D,`p8D @Q  ,4D \PX 4`pQ B Q = X8@D43 YKH 0`cY[Q <0 R?.Q`?`Y`K`&Q`l R`8 Qd8Y[P  $LHXT(K `P`P  0 0 9X`*dO-M0`PQ< RW p R+  <0 S, Rᰐ   hPc P!0P< R2, Rᰐx0f Q<  R%< 0 0012#K80Q < Q @ 1@@#@KYPpW `Y` Y 0@S0 @@  @s;pWKO-,M`@V   PP ぐ( @yp % 0!3/ @ P V=pPl 80? .R0?  7R ; RV !R * 0pP:  0R:$ Q 0PP< R, PR!  P8 0Q#< 0 00 1!R* 0pP  0R:0Q'_ 0(?3O"V Q  $K 48 $8P$ PP 8| !0S! !8?.P?7Q.P0?7P   R 8Q8<0ᐐ PU  Q  ?.P?U7Q @ .P@?7P P]<    V[e!R* 0p  0R:!R* 0pP  0R:0Q '?0?3y! R 8Q8V&őeXg^O-MT0 pP@0K@080 (R$@ (@ ,@ 0@ 4@ 8@ @@ U@ 0P`PT0Q< QQQ 9@0 80J?+!@.D@ DR PP,@@@KB_ppXH0pP<`TPlPp `d g   `VS, H0R! <t p吀`PC <U ᴐP8 <Q2 P+ W8 `5 Q* "0p#R 0Q:`"Q * "0p#R 0Q:|  90Q'o 0H?3`` R 8Q8K[X^pL-M`W@PP<QKp 0J00  0@0QP 0``PcKpO- >:,9O-M@P.Qpp?QpP Q ` 0 @P  QA`R:?.Q   ? R .Q   ? R.QP? QP0 P@Po ? .R0@0?@/T .RP?  /R P? `.R  ? R? .R@?.PP?PPp `/T p/T V Q   ?.P?V7Q  .P?7P P}< ` /Do KO-MP`?.P?%PJ 0 @@1PA P 0Q0000KX@PU" `X` X 0pS0   pppPUP< KO-M4 @`\@`h@d`pplpPtxP|``iW``a\898`d` PQ< @Zp(`K8 [0 0@0փ  R @<<A  UP [$P ! !/ZP (DDPshRP`V9 P 2/`pP@p<@2 $p (p 9 P(K2(X0,pp ppppp p$pp5/$@$p P 1/(( P 1/@PH`@T@p<@PL 0f/H(0   48 cPP U00P PP@PHP 90Hp0T`p`3/hl\`K XT `d<  PP 8<\"A \hlDDLa`jcғcO-M@`刁P X@  T L PP `D H` @ p@  @ח pQ p4ŗ@! 0!3/P  p4᪗@! 0!3/嘗pjP  ぀4ᄗ@! 0!3/prp `KQtP @V `OZ `K@Tkb@TO-MP4 5`41 KQtPr G@ IpQ p4@d! 0!3/P  p4@  0!3/ۖp5Y `/KQtP&  @㿖 `㸖Z `K@T@TM-M@` RP R)Q' 0Q! 0pQ 0Q 0W 0Q 1KO-4M` @ P pP$ 4xY 40P<8L@ G  D P$ XWP( WP6 l PP   0/W#a @ P @0b @P   0:Wc, PP ( 0P  P< @ p@ Pٕp@w( (p͕P  @4ổp# 0!3/p@ p @ P($ 6P <<$P# I HPQ  W WhXkPf4P  P^ KO $ P 0! !4/  PC PI HPQ Wa  << P& dP'   00S0 q   0 K$K  X Kp @ P p @Z@pQ p4 P  0! 3/pP0 p !S㇐4 ה@p8  0!3/ p<8pL-M`R80 Q7 80 3 !R* 0020@SU  0R:!R * 0020@SU  0R:LH  ry0Q$_ 0(?3KpW3^K-MPpq@`7 `gp`@ `0`T`P P 000 R `0` H0PKO-M`4 @+P4'  pP  ꁐ4 @  0!3/pD 8@†8Dp&`@ZA ``B '&@ 0%$0`,4`JK ? .R0?0,S/.R 0 ? ,R 0 ? .R000?07S.R? 7R/O-MP,0`Y  ` 4P  @P0 qpW0?0.S0?0Sx  p@P <p匠pm`7( (`a p?.P?7Q.P?7P   Bpp 0@p 7`p  Q p4%@  0!3/@ pP` @ 10 A@R` ` YsKtpL-aV @PT P A R !AR@ `VPpp0H-QU @TPPPU Q   B0S01 BS00M-foP@pP1Bp1WsP (B QP \BP P  o P BH- M@,` Pp pPpQpp ppp1(p@P#HX HR#wd x 4,X4 `lPV $Pлt`PK y zK@M-`4(+4`P &p@ @  p@p @$M-MpP@< S `F`T <4  4 0KK-pPP  @ݑ`  0!3/`@pP   @ᾑ` 4  0!3/ `@TH-`@ Q @p4ᘑP 0  0!3/ Pp @@O- M@pS$ Pz(   4q` Pp4g#PI@ZK㈀4LP  0!3/  p PX 44@  0!3/0ZZ !P  `3 `KH-@p`Q `Q0?0.S00?0/S `V `p@O-M`@ BR q0?0.S00?0/S  R?.P?/P ?.P?1P㸐RK4 㰐p4 㬐 ?.Q   ? ,R*.Q ?,Q ?.P ?2P&̠凐Pw( (PQk z@oPP^ P 0?.P?,P  ?.P?7Q.P?7P   2   0 ?.Q@?,Q P@, PP  -㈀4 P" 0! 3/P@#㈀'぀4P! 0!3/ @ڏ P P  ぀4ȏ@T! 0!3/@PPP P1 ? .R  ? /R PU㢏@ P`P  `4቏P\  0!3/`@w 0KO-M`@ BR q0?0.S00?0/S  R?.P?/PGRK4 ?p4; P@P P1 ? .R  ? /R PU!@ P`P  P4`T  0!3/`P@ 0KH- ! !DHO-M`Q@PԎpZPA @PP@ŎZ@`PpU`KH-p@P`>PP@ 0HH-` P@Pp)PP@ 0HH- 0?.^00?7\.^ 0?7^ 0 0   HoO-M@pm P e`v! p[PTp A PLP E` >  `PKO-MP0@- ` @Z p!@p,A @ `A?.P?7Q.P?7P    0@G  @ @ ٍpҍ`ˍ @ 0@㾍p 巍 B  @p4宍4 㪍 复  `P  p4ᒍ@& 0!3/`倍  `P  p4n@& 0!3/` [ @P  p4I`x% 0!3/@7`wY  V44 @"@ ` pC?.P?7Q.P?7P    0@@I   @4p4ߌ`A، @P  ꁀ4nj`t# 0!3/@@嵌`3   p4媌p4㦌埌 @P  ꁀ4ᎌ" 0! 3/@{@  pop h@ a A @p`Q `4M@! 0!3/P P  `41@(! 0!3/P Q  `4@  0!3/P P   `4@P  0!3/PK(4O-M@0 Ջ  Pp͋`*p?.P?7Q.P?7P   㬋 0p@ 㢋 p嚋  `㓋p*PP劋僋  p|`P ?.P?7Q.P?7P   [ 0P@  pP` !IP B `P:PG3 '  `V 0` p aG`L ``p4P4 0; 0 |  4p4܊A Q `ӊ PP  ぀4`T" 0!3/@P寊P-    p壊`p p!囊PGpp㓊   `冊`p PzpGr `i `P pQ p4V  0!3/ p P   p49@<  0!3/@ pPK8O-,M@0 oP ` @@ @p@, ` P '?.P?7Q.P?7P   ىP 0p0- ω Pp  0P儺 P 0D 4帉`4㴉 安 @P  P4ᜉp) 0!3/pP@刉  @P  P4vpT) 0!3/pP@cpwPZP `W44 @M@ Fp?@GP8  /` P P  P4p' 0!3/p P` `PpGP pppP` J$ 4`4  @P  P4Ոp& 0!3/pP@  @P  P4ᯈpD& 0!3/pP@圈@wZ  `T44 `㇈` 〈@Cy$ `?.P?7Q.P?7P   ZP 0p0 P P p 4Hp4DP!=$ @lP  P4,`<$ 0!3/`P@@   p4p4 P!$ 2P  P4`X# 0!3/`P߇`]  pӇp Ȧ` ŇP 徇@G㷇` ` `P媇P*墇p P嘇PG㑇 `` 儇`  P@{  @tPmp1fP _@ p P``Q `4JP  0!3/` P   `4.PP  0!3/`@KPX4ߐސܐېِؐO-M@0BP+*á0R0CavCPCPP p0`qR`` 0Bq0CpG102QP(pG1H@KPL(  /  Q /l4  Q H-   kHW]H-   kiWk]H-P@ @P**a rB!rAPAPp ᗆ !!0(U EA`A5Sp`F p'H-   YkeWg]R R  /H- ,(  Gk 0r /W]H-   6kٗW]R R  /H- ,(  $k 0r /ᑗW]Q/0H-@P0HO-$M@`0   p0f P<Q  P f P<f<U@oᠢ<`P帀pP `W ?.P? Q ZM .P0 0  ?  R S 0 ?`.V0 ?`-R*Vk .P  00?0 S R  `?0.S `?0mV*S_ .P`? PQ ? .R? * BP/oAo"`$ $ `  101$? WP   PI PR぀4ePD! 0!3/ pBS  H\ R  R R Q 0H S R R|Q`PH Q]` K0Q( 0 m2ctѐO-$M@0J? 0 `  Pf02 80 H 0 p#8`PJ 0 J/p01J/0!  `<0  0 fR J   80 0Q , Q<\0Pi  `P  VP`Kp KO{ KOVLQ QI J ` 0  Pf* 80   pMQ, J ` 0  PfA 80 <A `pP  #P}  09pw, Q{`' 0!3/A 8P! 8P\ RP8 QT8V Q  $!R]* 0p  0R:Q0Q'_0(?3!\p RP8 QT8Vf Q _pp p$pZpW<0[8@P <  (j8P48P4L($D0H/[2@[3`[yp< 4$ p 8( $0P` P 8 $P $ @(ayP$d  0!3/$P @$,@@K茤hW]ب\HdO-MSP@T`00 @P<< mR2, 0R! <(㌀4#y4p` y@ y  y$`<pW Q3 Q> @DW 4, 0R! <(`匀4x4p` x@ x  x$`<pW Q00Q 0! KQ @DW 4<4 00Q< fR R  spP 8 d P ぐ4 x@ " 0!3/ @ p0Q< R\  C@0Q, Q<<fX l Xx p W Qv Q mX00@BRW 4<$4 0@lX 0Q * "0p 0Q:@<4 0 0s10p J?% 21A0pQ0P J?0Q 21^b_W]bO-4MP<@* ᴀUPz P48 ($$8$`p#0P`S" #8 R 8 P p p0P48 r(p$$8@Q Q R8 P H R ?RnP. P= P p?.Q?7QPX0QR< 0 001IpVpp00SDp0pp> ?R]Rp 'wp  p Qwp 0Q< 0 00`j 0Q< 0 00C?Opp$ R8 Q8KL-mQA0<dI)*)#'"X+< Q $(KěH-M@0pQ f<0P J  <0Q` 0pp`oK,P `Q<啺W @R0!DHTDDDDDDHHDDDH) [RW a< R [@o<KdW WP O-M@ . P ` m0P  H ぀0upH  0"3/A K萒O-M@- `AP  puuPL  0"3/ K贑O-M@. P` m0P  H ぀0;upH  0"3/A K̐0H-M?.\ @@@?@T? .\ @@@?@T8 .\ @@@?@T1 .\@@ P?P 7U .\?,\" 8  0K0T PIP .\PP @@?@7TP@P@P PP@TD@T K0O-M@. P` m0P  H ぀0tpH  0"3/A K谎O-\MP!PK"PK#PK$PK`( f@,P ! K0<0pQ$"K@$K ( K,K0#0K ` P (PnT0f R,0 Q<<00 4J0 K ( ( c0Q0`4 (0 pp`PPs<08p0  4P$0` 0PP  ,ptp <0\![$@pWp@\p ,0BPp 8P2  !p[`sW  0P`8 P"  ![,` Q pmP`p  00PSDP:@W?]O-MP 1` oO@pp @ 01Y@01)7 0 !!aR* @0pB@Tm AR B  AVq`R: bb`@ `@ q pq`1 R:VFP *V7  22 + p "S ` p` H@  @@Hmn`|  0"3/`@  p KuO-M@@. P@` m0P  H ぀0'npH  0"3/A K|tO-\M-Kp -pKPP 0Q pKJ?.Q?&P.Q?&QWP p4 80$ (s$0p, 8` `K@PV 0PI<PEP 8Y RB d sP [Q$Pp/mZ P  mp Z X8! p`np8``, J R  8Q$8V; [!R0* 0pP&  0R:#!R* 0pP  0R:!R* 0pP  0R:0Q '?0?3rppmp% p< kQ_Q QP @K Q80pQ J_8K8P `f $  f0 @P  08 08 8P 0< $ 0QȐ`P 8 08 }0JPQ,$ KQ<C<@ ~`P l,@bP+l0AS*80 @Kp)0pS 8 8K0f` $  0PJ_P  08  08 8P 0< $  0Q` 08  08 $<0 "P 80 @K8`KQ# 8 p 0$  fP c8 08 y<WAQH 0D -[4 P8  ?.Q ? 7QG  0p8@P! p `<p0 $ 0 fR K(K $8(0  `8P4Qqko  " @j80 @KpQ J_8K8P `f $  f0 @P  08 08 8P 0< $ 0QȐ`P 8 08 m0PQ,, KQ<4< ጐ x`P 8 gk@,a  %PPJ0  PP Q $QA$0pQj w!RL* 0020pO  0R:@!R<* 0020p?  0R:0!R,* 0020p/  0R: !R* 0020p  0R:p5Q * "0p 0Q:HD  P0Q'o 0H?3kpp+W]O-DM`@$ -K.K/K0,0 <  0R Pfp.K- K0 (P, /0K (PPPPJpPXW cW0Q! <P,0 `Q,$ KQ<P<(Pp<匐jP`Xp!,$pKQ<60< PRq 0.K- K0 (P, /0K PP cpQ Q  Q, 0P~ NP<Q XW R OP PP R  Ps $R  0 pPP  =P ( 9jP (0N PP  /0[0 PB / [00pW  X R 0R0pP<0<$ t 0P(ppp P1P]  piP 0`oP` 0ѸD,K ( K($0K$ J' PP8 N0f R,$ KQ< 0 f0S,$0KQ<< $0K J$ , K ( K( 0Q$P (0,ppPPPKPP 0 P  Pp}ip P<0P-[p(`W `\0ppA@`P嘠 P -[`Ppp Ki 0 P5 -[` Q pPp` 0+ 0BS' (P! 0@HHH,p<  iP pu 0XR_, R! L  Meb}"W]O-MP0QU< GRQJo@` 0fp f  PG`80 `@<0  0Qp`80 m0Q$ < `P0S Q0aS Q$< P p p*P  0ep KO0,Q<0< `Q`  P& 8 $0P?<P;p 0 ppz@P] P Q`Xh` @]pMQ * "0p 0Q:PL! "M0Q2'o0H?3+4 .h@&hp` @0eSl !Q0S qP0< Q0 0080]ppK0QyS  0 0pPpW]O-4M4  gP4g@   iPQ 0<0 RpW 0 000崐p  p R , $0KR! ?<p `   @ P&  0 ?`.V0?@7P X RP8 P  W' XQ P<  .V?`V <08 $  !bgg/ Q `4Og@H# 0!3/PP;0PC< RD, 0KR! ?.P?/P <08 $  !0 <0SS<@ PMS $!Xrt ㌀ p 0Q[< 0 00G?R <@RO <@RJ0p, `R ÅnP PZ 0Q< RR 8p -PPI0Q  >Q(* "0p 0Q:0Q'o0H?3PP !1S * pprp` 0pS:LH  pKQ0&?3PKW{]YH-P@p ?0.S@`P?` 7V T .S0?07S00 00S$Q $ $ 0 $S:0 M-M@<`pQ 0 R XR ᾬPP f`p! `K, 0R! <Pep`P( 7 (`O- Mpe`@ᄫP <匐*K R 0@ 00S KKP<PK 0P C0US0% BPR 0 R 0`KK-MP0@Q <`, `Q<ʦ<Q匀Q 0Q Q1  ŧpP& 0Q  Qp :0ppup h`P  ᤧP  bp)AK8` 0p+  0J`< 0 000fS0  80 r0 @FP )P 4 a@ap> @0Q< 0 0090ppĥbM-M`Q ᴐዚP 0p< fR!R pQPA!p aV ӪWPUU`V P A R !ARP`P U5 ᮜP  T` !QU <4pT@<T` @PE   0S0Scc* 0S_ Q`U W ့P A R !AR@ PUP8 0Q < 0Y 00.1W0p年``%' @ P48$8P{p"0S" " 8 R 8 PL`K 0S000P  IO-$M@<`;ᴐ᜙P 0< fR!RQl paV PZ @P A R !AR`VP`P U5 ƛP  S`!QU <4pS@\S` @Pp   0S0Sii* 0Se 0Q < 0Z 0.10p``JPA!@48 $8 p2PQU1P02 80S 080Q Pc Va A R. !ARCP ES` `K` 0S000P+  p+xEO-$M`H Pᯘ@P <匀pHPP 0Q 0Y@@K0< fR!RQR LKp P ̠Rpw( (pΚP  << 0 a@V <4pRP0R@ PP   0S0S@@* 0S< 8PA!P4 8 $8XpP, 8 8 Q * "0p 0Q:  L7 0Sb000PX  R 0Q'?0?3坲p R8 Q 8ZY@2A1V3+]O-$MpK @἗P <`Q P 0Q0jPPPK@4 8 $8P 8 $ Q * "0P 0Q:! 6 0Q%?0?3$P R8 Q 8Y ᮙP  Qp5` QP `錑Y <㐀?`.Vp?`4Q@5VpQp @P   0S0S* 0S  0S`000Pe  PV(]<O-tMPL @P < `㌐zP `0` 4` 8` <` @` 4 `P4 8p $8P>P( 8 4 Q * "0p 0Q:! 240 R 1 ᙯPPKp 0Q'?0?3凯pp R8QP8W  ᮔP 4L O4 0pW<  p08P <<NP ɻV]O-TM@<IPᴠuP  mP 8@84 8p<@H$D8`P 8 # Q * "0p 0Q:' 3p 0Q'o0H?3pp`D R88 Q<8W  P zN FqN L4piN 0㱺p 8,(0( Pt |8$p `8$p00<Q (Q <Q !,4 QÁ8@`4 8<@dH`$D8Q 8 `@ ᥓP/  ᙓP# 4 Mp4M  0P<P# <P@P ̒P P`4Mx$ 0!3/`M `g댁X:  㐐4Mp M` pP   0S0S* 0S  0S000P债  pP  '぀4kM" 0! 3/Q*  "0p 0Q:0Q'o0H?3㗭`p`D0 R8 8 Q<8V#N$pM0Q< 0 000v> ᬒP6 < P`<`匁XM p?.Yp?4MPDYpALp PP P  0S0S* 0S (0p K P 0 pS000Pù  ?P ᴞ%V']/$*O- 8 I Q * "0p1 0Q:$ A1 aRq\R, 0R! ې< 0 $J   Z0Qr `$ 0pp`i 0Q'o0H?3ぬ`,p R 8Q$8YN 0P<Q 0 ?.Q 0? 7\@ Q P<EQQQd P&  Kp AbRDAP WPP><@8 @P60Q< 0 00-1"ppKRER"_R .Qp`0?7Q` ᄜ`P 0Q,Q<00P <EP P4 0Yp?.Q   ? 7R.Q  ?7Q 0   QQ 0 C0UP# BQRq pepV]K-@`I40P0<EP,4PLFK 0㎷<8:KP G 2Kp p1P) P    0Kp4K`T  0!3/` p<<p,0H-MP0@Q <, Q<q0 <0S0(S 0K0, 0Q[0Q< 0 000K0O-<\p!Q * "0pA 0Q:$ *0Q'?0?3 pp<0 R0 8Q48W  1P 0 S<  8S0 * (0Q'o0H?3ӥ< R08Q48d3P p\c0WP``0<@ 0pQ* P>  4吠HE@p?E @P   0 S0S * 0S  0S000P  00۟P p P  \だ4 D@! 0!3/@ @0P  <<\0 0 pp 0;P <<E`Z P   `Z@4DPt  0!3/P @p`$, KP m8bR8be4bR4bV\ ϏΏO-$MP`4pL }D4 0@İ` `` 0`<@ 8pP < < <P:P  0 >`,*ƻĻP @:D` G 2D 0 p  @ 0 `    KO-, R 8Q$8b @ 4 8P$(0$,8`pP 8 7 Q* "0P 0Q:,P!Q * "0`d 0Q:pl" ?(0Q%?0?3妣PPp, R 8 Q$8U<  ΈP5 p`" pqW 4>@|   >` @P3  `K 0S0S&&* 0S" Q* "0p 0Q:v0Q'o 0H?3,`` 0S000P  !xV#\hM-MP80@ ?.P ? 7P" 0Q;<0 0a`1J?/@ R Q@* 2 #R 0Q:4Q UAQ-* 2 #R 0Q:!0QF 0&?3㽝U% 8 ! Q * "0P#R 0Q:LH  -"0Q%0?3㕝KฏsV\O-M@- P` m0P  H ꁀ0=pH  0"3/A K4H-   !qrVs\O-DMP,@( _$ @Q f0 R<5Q 0R % 0S>(K$KJO 0JO(K$Kf Q< 5Rp0W 40 0 S8p  Q $@ < 0f` p04000fP @8(0$ 忻$@ 0< 4  00Q`@8(0$ +<`f(0Q, KQ< @+Zp  0eP, 8 $ 0pgP,J P/ZB -Z @,@?($ 0pBkPq$@0<` pP$`dYa 4 !< ,(<` P&   0S0S* 0S .@$;` Tp$`/  ;pB$' 0S!000Pۨ   IY $;!1S"* pprp` 0pS:Q$0&?3Q * "0p 0Q:d`  0Q'o0H?3  KеHmV\O-$MP0Q{ ٫KPa, 0P<[P8p 0` !*0< 崀R, R!  pP < 80zW@;p 9;`440<QQ ⌁X p4";@(;` @Pk   0S0Sdd* 0S` < &0ASp`p@ JO` @fp0  00P@80  @`<0  0Qp@80 0Q <fp㌀PJ  KOd,Q<?p<6W㌀06pQEP8 P_ 8 ]8W20 ?.P @0?@ 7TR I .P   ? ,R.P   0?,P 0 ? .R000?07S .R0 ? 7R00 P9<0+S5,Q~<0 J d0Qp` 0p``Q * "0p 0Q:PL#  0Gj`0 SJOp @f`0  00P@&80 < @p<0  0Q`@80 0cQ,Q<q~c〃< pW`P~ < 0  pPq ?.P?7Q.P?7P   8 8<@ 9`pLy 0SD000P喦  40Q.< 0 000%0Q"< 0 001QE* "0p 0Q:90Q'o 0H?3㵙``K9gV;\`O-$M@<Pᴀ;p`P| <QwQt0 Qp0 SlJϠ f00 0  P @8 0 VJ? 0<  0QȠ  0 (8 0 < 0!pP1 ?.P?7Q.P?7P   8 0#SQ, Q<`}#S<@ 8``KQ * "0p 0Q:D@  0Q'o0H?3``aaVc\H-   aV\/H-   v`V\R R   /H-   ``V\O- ,p 0`W.  o" P&Y! pWP  KP  DPP  aQ  P1PpPQ`!P|PY Q PZP `KPP^P `KPPP\P `KPPP JPP` q?.P?*PR RPPw PwPn`ViPPe` o q W  Q  A RL RJ @ Q? `V9PP5 ` o2p p R(c pG `0 V  Q KQI @ Q  R `$p 0 0R5 @ Q `  BV:  Q KQz @ Q PQ`(p0 R 0 @ Q`V  Q KQM @ Q PQ`,p0 R 0 @ Q`VPP ` (Ko2p p R~ pG t`0 VmKOKOKOAKO3@WPQ KPPKKOaP@   KQ34 P2  $KPao 2p p R$_ pG FPV0 `N  A R  Q A @ K K A PpPPaPyPpWpL-MP@Q P: PP1Q P+ PKpP`Q P P PP PKp Kp0H-M@P K0P PK0PPPP K0pL-M@P Kp`PKpPPPPP xPP$oPP fKpM-M@PP' ,p 0`W o" PH  pW A Pp PPa$PPpWKK0H-M@P  Q Q K0  A R  Q  @K-M@Pp Q  0R0 0RQ  @ Q  `Q@ K B Q K Q RI @ Q$Q  R9 @ QPQ`q ? .R  ? *R 0 0Ry @ Q Q k @ Q`V K0H-M@P  Q Q K0D  A R  Q K0 1  A R  Q# @0H-M@P  Q Q K0  A R  Q K0   A R  Q @O- MP`S3@pGp K3  0PZ `53p p)3` P  ぀43p  0!3/p `f@P  p42`L  0!3/@P<<K4O-MP ,@`P s` Ap P_`+`@p P  , P t$K$ 0\$$ P 1/ d  &e`Pt $ t P T)P) @ X0 7@ P ᲟP \&XV`KO-MP@,`P _ Ap P#_`9+p` P   P@ OOp` P @J`fKP L`+ a p P  @JpNKP M /  @s$K$ [$$ P 1/ pc 0k`Pt $  \)Q) @ X0ጒ@ PP %XmV`K0P0H-0M @@ 0  P,P($0K00H-0M @@ 0  P,P($0K0H- 0M    $   , ( РH- 0M   $   , (~ РH-0MPp@D1`.! $ ,(^KO-M @@P6p?.Q   ? 7R.Q  ?7Q 00 !*!1 0`Z p@0P @A Pv  QK @`@0p7`@ p@Q`J p0@ p ``0 p0p PR HPp0@PC(`_oR @B(Q5 WpP:ᄤpP(0 R< 0 001ؐ(K `4t0@," 0!3/@ `QKpW P   @4Q0`! 0!3/`@P !p 0S H0S *!P (07( (pw$Pp0 0e `0P p P   p4/@0  0!3/@ p}}$}{Q QHQ//K-MP` VQ @/ p?.P?7Q.P?7P   / 0@@ p/`  P   P4/@8  0!3/@ P`KyO- Mp@P?.P?Q<Q6.Pp?P pN/` G  F/ ` ` ?.P   ? R.P ?P@KOL.P ?Pp ` /` ;/p$Y `@&  .P P   `4.@4  0!3/@ `PKlwH- M ? 9R@0!HLPTX\`dhlptx|0  <   G Р РH РH i Р РHL РHG  b - O ]  <Ob    3 ( E N W t O-M @Pe`9`@4 (.pT4.. G0P   ぀@4.p# 0!3/ p夒 `P   @4-`# 0!3/` @ P P-@=h `?.P?*P P P HP, Y P/  4-@4-`-`)h @pq- `᠅i- @ᘅ@0P   @@4O-p  0!3/ p @@@8- pg1-@, ``V$ p @$N pX$`@$NKs\sqO-DM,P @7p`- P1 `p,' pepP, P P,`!p,, `,j$  (  ,  P  ,@G , ,@P# 10p?.P?/Q3 $0( `~,( @᭄ `ps,Pl,, P` b,, PᑄZ,@?.P?7Q.P?7P   ,9, 0厄/,, `^p',( @V 䠑,P,p,1 ?.P?7Q.P?7P   + 0PG@+$ `+pj?.P?7Q.P?7P   + 0@+`G+  +@ ! P   p4+P/ 0!3/P p@ y+@  P  p4e+P/ 0!3/P p@ PQ+p@p G+p  Q@<+`Gp 5+  @'+$ pV+@j?.P?7Q.P?7P   * 0PR *@ ! P     p4*P . 0!3/P p@@* P* p (0LP *@ ! pQ p4*P(- 0!3/P pP@   P4*@, 0!3/@ P0n*$ @ᝂ g*P _*p X*@ ` P p , p4@*P+ 0!3/P p0p,@P @%* PT`*@*?.P?7Q.P?7P   ) 0`P p)@ A P   `4)P(* 0!3/P `0p@@T), $ P $$@A P$) P߁`)@*?.P?7Q.P?7P   ) 0`ہ p{)@ A P   `4h)PX( 0!3/P `0p@$0( 0S .P?/PX  ,4D)@PPPP;)   P@[, ))*!P@p()$ PL)`j?.P?7Q.P?7P   (@ 0`E (   p@@$( P ( ` (`0\P (pP@ ( P p(`(@,a(, Pр(( `ɀ(p0 a@( p($ `᱀z(pj?.P?7Q.P?7P   Y(@ 0p㪀 L(` 0pC(( @r `P8(!1(p,P)(@G!(     ``(P (p ( !` @pp'( @% 'P#` '` !'P`` @'$ p '@` `'pG'   $   `,  pP@  jti  p4'@! 0!3/@ p0pP @}', $ P $$ P@$Pj'$ @ c' 0 @@u@K\g`fedTca,Z R   R/ H0S,嵐 /H- M   РH- M    РO-M@  M`'  pI'P '` Pp'  P1&p"A PP P HP,^ $ P p$ $ P@$KM-MP@? p.Q   ? 7R.Q  ?7Q 00 !*!& 0`  p&P C P   `4&@4  0!3/@ `PK P`PV @# `FFP5* EQA!.rPP PP)* F pAV  y`QY  @T V 6YY KO]` VK'0H-@@0XS [S ZS000 wR uR00\ USP0PEPE,^ U0{R0zR0 0 ` R lv0K-XMP8xx `8+-P 8|n ὄ` P@`@p `p\$(,UFW㴄@ <080 4898 @` >4Q  K Q$ I @0 !RQQRa@@@0lw@ AV\P @@ 0J0 0K ( K $ K$  `4 $0(pp`EwO-|M  p@`p\L0P R  R `  H@@D`LH@PT`PPpX\p`@z@UG `t@p@l@@d@hp898?ZP$$ V⸒,P0P4P8 PP:? ?P- )pP 8xz p80㦃@8 0@pi?QPT@)P< I㶈@U $p" P8<? $ p@P 4P  P 5@`\4P US`?PH V V,IA @0 !R<8P7Q5R3`A4pp0pu@ qT\P@?pU -  )P F p P~'02 ?0L?P pUT@  R<Q<* LTP@D   KTXO-M@4`PQ@ RO  p R+  @0 S0 RᰐY   P P4P@ R*0 RᰐwY4f Q@  R@ @1 @@3u@K<4Q@ Q@ 1PP`PC `V> p( 0p   Y$  0  pYPY0  `VKpL-MP4@`f R Q Kp0 Q@XQ @0 J  n4P 0``PtPKpH-MP p 0@`8Q`PK@` 0H Cdh lL-@\P vP pP Q T pL-M`R<0 Q4 <0 0 !R* 0020@SU  0R:!R * 0020@SU  0R:@<  $_ 04(?3tKpU0\O-MDP80HpK< `$pP` 0p0,S,` 0` 4` 8` <` @` H` @Pl(8$x `  08`pZ Z:``,@8Q @ pQ K  @4P  |p ` x t epp lp h` ^N`KeKT` X` \` `d K`p hp$x(Q8 9  8 ` ` hP8 <0l0tp xgy\ d\T 4faCfayUO-$M`@=pPP  8x @80@~ @8 PPUPP   Zta   0Pp @<  ^  0 P`P  p p̀@w ( (@8p8| p@  @P[ @<P IC?/`P 宁PpP Q  0?P KP IPቃ@<姈P P Z Z T`P |P KT 4P JPKO菇4O-MpP0 p4f 0pP@  RR  P f Pf@Ƞ@ȠUJo᠂@ @` )*Q6 P:pX P PF Q ԀP F R @P3WZ   pR:p 4p( 0p pK`aO-M@``PP p7( (08 ]KO-MPQN @Pq  R H R T9`h $QT" P  ぀8)`D  0!3/@pWPKQ/H-P`@pU  P PP  p`0  0!3/@H/L-mQA0<dI)*)#'"X+@ Q $(KO- Q 7 $2!R* 0p  0R:'_04(?3+` p,[P R[K\<QX<V Q   $,(ppKļU[O-M P`UX4P@ mR0 0R! D@0S_ U] 0 0R! D@@0S U @4@@_@yPv 4QJfQG Qq  0pPc < A4@ R R+  CAQp4Q0 Q@C@@fW Q WY 0S U P6 lW P0 . @31 @10J?(Q * "0p 0Q:  04'oH?3P_K @21@@B_@@@K0@4< J?g@4@21@`azU[aK-8M@P*`RPZ P8 < $,$(<;(#0S# #< R < P7 P 08< $尓,$(<`pP pQ Rp0p4pp^( R<Q <KKH-M@4PQ f@0 ` J  l4P 0ppP^PPPK0p `Q@BW @R0!LHTLLLLLLHHLLLH- [RW a< R [@o IKdW WP O-M@ . P ` m0P  H ぀0pH  0"3/A K4O-M@- `AP  pPL  0"3/ KXO-M@. P` m0P  H ぀0dpH  0"3/A KpO-M@. P` m0P  H ぀0+pH  0"3/A K茰O-|MP$( fK`KpK K K0K$ , 4@ @崠Q㸐Ȁ KK0 , K 8K$0K`@ P- $PRh 4f R08 Q@ZA@80 <J8 0 @ K@ 8@4< @00pp@] @$@@K@8@

0 8R! ?8P`8 <<@d p$H`D<00$P <j`!<`(@ 04 @RE  @P Pk4Pg@@'QZxphh4@@PpȀZXA WX 0(@PP@P 0 P@q>4P @f n0Bo R?o/o2"00  R) RX0SXTXP0 P@J>@@}Bp@Pj4fP 0@P@1>4P! p X| @ XNPPIPPD4Q0 Q@ > 0P= `p @T @0<  T T@P :@0<  4@QQ <@P!0!0KK@UXP0 P@=@ XR [R ZR4@@@4pQ0 Q@=P 80< B(@$$@<@PA <?!@  <0Q7 JJO@0 $ fpP@<0@ :)[DP@ 8Px  0P  @0@ $ 4 fR $K<$0 8)Q@P    R:Ch@14 8 P Qs $QA$n<0Q J @@0f $  fPD<0@ @0@ $  4QȠ /<0@ 4Q0( KQ@8 0P~ <  Q8/@P Q! 8p Q8 Q 4 8 ZPV p Q 4 8 4Q` !RX* 0020p4  0R:L!RH* 0020p$  0R:<!R8* 0020p  0R:,!R(* 0020p  0R:'o 0H?3SKQ * "0p 0Q:84  A04'oH?3SLU[O-TM`@41K2K3K4K8( 4 @$ pR,0 fP02K30K4K 1 K080 (KPP XU0 cU4Q @0$4Q0( KQ@7@ XR. [R) ZR-@pn0(PKQ@y7@4 0  R$ p30K1 K2K4K 0 80(K jPa cPg@pF@pC@wQ* uQ*p; p0BS!PPPPP@P@PPPPPPP@ XR [R ZR @wQ uQpp0S URPp PE0PE #\Up{QpzQp`PQ iQPUpP$ ( s74 )(K WXP@ QQ Q8 P}`RP@Q XU0S SP P S(0 P 0, S(K0 P  P 4 KP  4[30[(" P 03[4 [0SQ @P 0|tp@PpW0p p0(K"Po 4l0K$ , K0(0K( J, (@4$ ,00pp@R@4@@KP@ 0@( P $@ ( PU 74 )(K $1@[@P0 sppP0Wp T@!p pP(KP 1[P44K4f R0( KQ@ 4 f0S0(0KQ5@ (0K$ J( 0 K , K, e(P4$ ,00ppPQ4PPPK  Q1XRD0 R! 8 XR [R ZR@p @p@p@wQ uQp 0S URPp PE0PE #\Up{QpzQpp`PQ OPUpP$ (  74(K0P cPo  <AU[O-$M4`pQU@ GRQJPf@ 0  fPG<0 LP@0   4Q@<0 "4Q& @ T0S Q0aS Q%@ P!@ @7P  0`K 0$K0Q@44QV  0P& < $4P@@P< @0@@`PR  0@&PH KQ * "0p 0Q:  04'oH?3hPK@ 0eSt 09UQ T8P 4@ @ 80@@CP@@@K4Q]>U[O-DM P@` ^P 4@ P @0SpW  $ `K@0pP  P R0 $0KR! 04P0 0PB 0QQ  X< Q1 U Q   RQ@  IP @0< ,(( !-40P`4P] 8Z  ^Z4`VH PpP  @A# 0! 3/@ Vp% PaP  @p$# 0!3/p@`VP `$Pm*$4Q@ R0 0KR! ~30P @0< ,(( !4Q*@ R 0&@ ጀ0pS1000 00㌀p$000@0`S000…L3 P P 4Q@Q <0 PN $K4@ >@@N@K@ @4G? @@N@0!R* 0020p  0R:0Q * "0p 0Q:PL  H04'oH?3N K!8U#[xPxO- M@@P`Q 4 R XR  P `Vi ,74 I ZX0 ጀ R! 2@ XR [R ZR2B*wQ uQ:"0S UR0 p` #`F`F\V {QzQ`Q L``P p`7( (8  P KO- M@Pe `BpP @匐iK R= 0@8 40S @ p%1 ppMpK@pp WW-p `P ` Р7( (` PswP( (PR R P 4SZ Q@Q`ApP ` РM7( (` 堠M-M@@P`p qP 0P @ <0 ppciHQ @ &14 ppmMpK9`O- KM | VH PKp pp$p040,(@P P@pP' ;$ KM. KMp ,P4P@,EP@ p40 ppppKPy  KMOO-DMP@`0,  4P @ (R0 (0KR! (, U 4P@P,` ppKDTK K(K0KzPw [,`o( $`ဠY!  pP0 0(``($ P l! 0!3/ $ `(` p8@p0P,p 0p(0p ,(KpP" P$  HQ10 ,0/o0#"PpV q [XU lW 0UY pY Q  $KJ(̆O-tMpP@@Q$@@(0  4`8 R bR ]R MR  H040 <R! Ɓ'H00 <R! Ɓ'H00 <R! Ɓ'4,P @P< $0K R! 'X  PP `(@ H' 0!3/ P P8 0@ KHpLPX$TH<@@DQ: <!40S1 / !R* 0`Q  0R:!R* 0`Q  0R:u&_ 04(?3 P`BT`&0SH0% &H< RL < P X Q  $VE4@ R R6W4@@ 0@0PS @T' 8@TS 400Q So2iS4PP0.0 BPX05SU WS0pQP< (0K` R! &8  0ᴠHpLPX$TH<8$ P@ $@0D@P < @Q, $ R`0PP QAQ* Q$QA$0@8LPHPPX0\@T,\ H}}`XKU, H0(W` X@J0* *J㪪 PLપ@ PA00T%U%@QPPQ |U HUMAPP jj@ 0Pa@R】/,U``@ vXP0/ 0QG* "0` 0Q:;&_004(?3AP 0$Q PO 0@P0T` RH H<QL<0PP, ,( KK  땂G1U3f[``O-,MF@`pPx  Pq `P8< 0R P$<P" < P Q * "0p 0Q:! '_04(?3,APPp R< Q<U'  JP   P 4pP@ BR0 R! 1%  s pQ PpKUe[M-0MAP@`Pt  0<Pl N Pe  P^ @p8< 0r$p$ <P" < p Q * "0p 0Q:  )'o04H?3@pp ` R<Q<W  P 4P@ R0 R! $`KTb[M-0MN@P`P_  PX Pp8< 0r$p$ <P" < p Q * "0p 0Q:  'o04H?3@pp ` R<Q<W  <P  0_`V`KT`[O-M@8PHpLPpXpptpxp|LT8` 0KD P [ P  P @$8L8p_8 0K4P' 8 p` ,@04<$8,< $0P < pppGW-My@MQ]Q5H 0`pP`PI @pt XBP|`Q Rk4p5000@p` P2 $0 >bQO'W@ Q 8QI!Rs* pcV  R:f!Rb* p  R:V'o 0?34`?0p8,` R,<Q`0<Yp p0p epP ,@,8 <004``d$<`8< P- < `( Q * "0` 0Q:" Kp 4X200>p&04?3>``8p R,< Q0<Vo  `Pg @ 0p8PP @V< `P `H T`Qp`P`Qp0`1 ``P3 UPQ  0pp  1:1QV! `pP `P PpP HPa R`V@< aUWpPP } VUppP tK!`Ś`-T/[[O-M@Pᴀ8\`pdphpDl ppp 2P  +P 4P; 4@QK ` @08p<DHP$L@< 8!P| 40@ @R < yom8 <0\ `@ Pc p_@]Q bQ%W@ Q 8QIQW MQ\ 0PpPd @l4 R pW? @ PUPPQ!  R p H R `p)W t QQYpW PpP!Q * "0p 0Q:$  WR 5Rg0 0KR! `! pR\0 0KR! U!8 0h@PN<0PQpPP8pL 0`Hp0@`8,::p8(L8 0H`0$\ P4 /`Pi @l4 R/  P[  @ᄐ刀0`Y P @ @0\4  X p@0`P? $S\0   @p3 WR 5R0 @0$`R!  WRw 5R0 @0R! w pR0 @0$`R! h\ 0 `Pp0`,:P(:`EQ.* "0p#R 0Q:!'o 04H?3X<pL%0S@0% %@< RD < P  tpP 8D@0@ 8 K! pPpP K pR0 @0R! M h\ !  0Cp|1TU[pL-(M@> P7P; 4@ fR!RQ SPKpPA! P `8 <$<` "0S" " < R < PKppL-(M;@PP; 4@ fR!RQ  PKpPA! P `8 <$<` "0S" " < R < PKpO-,M`H @PP @匀pOHP P 4P 0PP[;PK4@ fR!RQ= OKK P`P  ̠pw ( (p88pP   KKP44KPPA!@8< 0崒 $<?P$ < Q * "0p 0Q:|x  c'?40?3: R<Q<PP_TK[M-0M@K PP @1S P 4P0PP:PKPp8< 0r$p$ <P" < p Q * "0p 0Q:  'o04H?3b:pp  R<Q<W PKTI[O-$p,W9 PQ 3,Q $ { ,A  $p@DP  ぀8Pl! 0!3/JϠ T$ p$ I GWpB5!R$* 0020p  0R:'o0H?3\-Q * "0p 0Q:PL  ѱ04'oH?3<-K(ETG[O-4M4`Q? )=KPa, 4P@[P<(@ 0,( !s4@ PR0 R! 2( P( @ <0@P944K@ &0ASpPp@ J_(pPf@0 K ,  (00PP哼< 0 P@ ,  (4Qf(P 0|<  0 4Q0 Q@@6P 46@P@EP8 aPpP < 8TQ QI @ p41PX  KQ * "0p 0Q:\X# 04'oH?3S,p0 S'J_(pPf@0 K ,  (00PP< 0 P(p@0 ,  (4Q@P< 0 X4Q0Q@I@ P(@P @p( ,0P ,(Qk PQ  0pp  1:1Q< T Qz* "0p@ 0Q:nKPP@ p40 pp#4pP @ +R0 R! @(0 ,J( $ K i4p(, 0$`+ppPK04'oH?3+K衮T[O-4M@@`PpPx @QQ K4 Q0 SJ f0 00$$ K KP <$0  @0 $ K 4QȐ$K <$0 p@  0p` $Q$ PQ  0pp  1:1Q< 4Q0Q@7KQ * "0p 0Q:84  s04'_(?3*ͨT [H-0M@8p<`$$ 

PPP PQ 8 (@P*0@ Q}*PP /Pa@V#V Q 8(@P*!Pn`iV ] `iV TW?hP: P @ P, P P% `P7PPiV 3uqf`w- oq( p'P P P(@Q*P/W q0@ PR`iV `fP iV  CQjW`C`@K'`=P,` `.P%!.R  `)`=P`<P 0`=P2` f`P0B 1(@$6`=P-`=P/`*`=P`=P "`&P```=P (`*P+`=P`{=P~ &`+Ps `o`k`g`c>Pj `=P[,`=PU.`Q>P\ 1`=PI3`E `A`=`9{!`=P3u`/q`+m=PB `|P#e`a`]7`Y#`=PS` Of` R% 0AS3:0$A`=`9`5`1>P $`=P)`%` QA.%`=P`pA0 ApA0 A 1/(0H-Q@ Q*? 6 P0Q Q*?7 Q, @0 1/P  0 1/P   QA0PA0 A 1/0O-,M@jP$ ܐ`PPaP QaQ KO-M@'`(pB@vQ U U U uaEPaQ-U OhPQ-UFPC M!-RH>PP@Q@P*R 0AS *0Ap -0BS$:0 fQ p  C q( A$!K QA-B @iQfK0pBApA0 A 1/H-@P fQ (P`xQ@P*ip  C q( A$!H-@(P`xQ@P*iH-@(P`xQ@P*iO-MQu. @aQ"gP @ av7 P(qQ,=V* VP P `gP FP: V V `a=V /Dav P P P<Z sPoPuPrPcPePUPRPLP<` Z 0pS R:L`=Pqw QQ,gP(q(P+\\\ GP*:QQ!W fPqWP  PpvqP((GP:QQfPZ HK_=_K-P^afv Xq 'p@(`P P PA @QA*P/V @q iH-@2!-R--PPQP! fQ/ R 0AS *0Ap 00BS':0 Q)A!0(`xQ@P*ip  C q( A$!0pBApA0 A 1/K-Q@q Qi*`a R R,Vv{ ? 6 PxQ QU*?7 QX, @dPV( v\PY Q Q* P! P`aV 1/P  Q Qa* U! 1/`P  ` 1/P   QA `A0 A 1/"QUou! U U$ .\Up hP`UP  PPP  Uf 1/P  O- M@ `R R,``P1!` 0G B QS. P _P 6 P p0P Q50 aBF6Pl d dpPC  P`9pP?  P`5pP8  P`.0P5  PI%o= ( P>  P8P_VP P0B 1(@$ E P  PPQ:av. .V pQ"VaP pD ? 6 PAQ Q,*?7 Q/, @-aPp ? 6 PQ Q*?7 Q, @Y 1/P   QAPo .P!`P  P. .K`P _PN PI qP QnW S`eP:P;PP*  Pp S`npY/Y- 0Y00CB@q Q $(V` P q0G P*f`Kw PQ WaPqY1B@ 1pA0 A 1/W 1/P  / QAY 1B@ 1T`pA0 A 1/Y L-@B@LH-M@P  P@ R R,P fQGp  C q( A$!KPaPV Q`MbQu `pQ P Ur`P fPXQ" KQQU 0pBW#:p0RB !fRQ p C q( A$! Kp B  B 0p B 0 B 1/H- M0 Q Q,    Q Р РL-@P 0 B  BR S B R AFL  1/K-@Qp E`nQ  h0 E0Qd0`AV`6 0RP0p@W*P0 EHR1$$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxxxlxxxxxxxtxxx|xx0UP8PL@P>(EP\:DPB P@ P> P< P:mPP5 P20`@ Vp: '`PA1@P>*0P@ U: 'PP51@P2RU` P&Pq  C @@B@UP  PPV` `PG5! !@@($K-aP_VaFP^AFP:\V $V IpV(P%  P`,4f`uP~.Pxp\Pu @Q kW;^P_ `WP  P~p 1/P  q Q* p! P\`aaF_V P:0F PAF"P# *q Q* p! P;`a_V$V 0F P #a@"P#d_V$V \Vc V`ʼ 1/P  q Q* p! P`a_V 0F$V aA PQ#:, 1/P  q Q* p! P`a_V 0F$V aA P:Q:\V Vv< ? 6 P9a Q$*?7 Q', @`a(q KW 1/P  N 1/P   QaAav: O㼐@@qQ5V2]P g^P& a\V pVP  PR`av꼐 K `Q WP`YVW`8CP pA0 A 1/xO-Mp@$B?G 9`P F/GQ Q,  \ l 0PS ` S|(MQ$U \U `U u U` Q @! R! Pq$P{PmQ EP: U U UP Q @! R/ Q8 P PPD P Q  P Q  Q Po PP#*[ R PP PP`UkPh  PCP^: R  O0 Q0Bm!R) 0A S-:0(:0 Q0Bl j`  C``Aa K  Q AlQ`A0 A`A0 A 1/pL-a@PVP  P`/Q Q*? 6 PQ Q*?7 Q, @p 1/P   1/P   QAp`A0 A 1/pK-@Q0EHQy!$$$$$$$$<DLT\d!0P0`@V 0U `8RP `7 0R0PAU,`PF  C A@B@UP  PPRP P P P P PP P0PA Up: 'PP1@P*0`@ V: '`P 1@PRU QI51 1 AA$!(H- <@ 0.R3SD^  H HH- LP 0.R3ST^  H HM-P@R 5/QM pp5/aP _V pVP  PI`_Va Q*p_P 1/P  p Q p  Q p  C q A$!(H-@P: pmQ0E Q*`P  PP_U8Q Q*_Q5 1/P  qaP0F P(pP  P`#8a0F P: P PP0 PP 0B 1@$(K-P@ `a0F P* 1 ? q Q#* p!P  Pd_V(a Q*_P% 1/P   1/P   Qp Q p  C q A$!(M-P@P Ma0F P4 1/P   1 ? q Q* p!P  P`Ma0F P:pL-Q@PB 1Q mPQ PQ 1/P  1P_U _UKQ Q*PQ_U7`UP  PP1Q+`UP  P}PQ1P p Q `  Q p`  C a A$!(ppL-Q@PB 0Q mQ PQ 1/P  0P_U _UKQ Q*PQ_U7`UP  PPw0Q+`UP  PP]rQ0P p Q `  Q p`  C a A$!(pM-@`q8P 0PPP  Pp.q8PE?B@ 1pL-Q@0EQJ P: a@Q{Q PQ 1/P  0E P: a@P*_U _UUQ Q*PQ_UA`UP  PKP P: a@Q0Q0E P: a@P`UP  P"Pp Q `  Q p`  C a A$!(ppL-Q@-U+U`P  PPPeQ0E PpLpL-@XuPSLO-M@ {P CpG#?0@ P: 'Qd1AQaPRUQ/0A P: 1 @R'@pUN}QLW0@ Z: 'P,1@P)*0@ Y: 'P 1@P0`@ V: '`P1@P0P@ U: 'PP1@P bR$ PP G6 $( P71B 1$( PP 61B 1(@$KAW \ # BVR0!\llllllllllllllllllllllllllllllllllllllllllllllllllllllllllltlHdlll <ll@tlD QcQoQnQzsQtQurQuQpcQ tQk x oPh fQdp fPa _ QnQ[dQeQVfQiQQnQeQL| EQiQEeQlQ@d 9 Q_Q9pQrQ4oQtQ/oQ_Q*v _P' %Q- Q0 QnQ rQgQuQmQeQnQtQ { QrQeQaQ; kP AQ   L aQsQ< \ ! |A oP Q Q QvQ nQ lQsQB AQ 4 `oQD QeQn g\ !$ 4 hW nP5 fPF /QeQb JQeQtQr aP Qj Q{uQ aQmQtu FQ Q QkrQ aQfcQkQaaQgQ\QYeQtQTuQrQOH nPKKQ Q QeQBo tP? =AQ: lrQ0L yP- +Q QaQ%M rP" Q QhQiQlQN eQG wP  oQiQ: dPW /iQtQO hP s sPwQ sQyQnQZ TxQtQeQnQdQ` xQpQoQrQ_ uQbQlQiQY *rQoQtQeQcQ tQoQtQyQpQy qwQI tQaQtQiQc cPuQpQeQe \eQ}fQaQxuQlQs@ /oQ` lQf aQitQcQd= hoQnQ\tQiQWnQuQR> $oQLnQsQGtQrQBuQcQ=tQ oQ8 w eQlQ0eQtQ+8 eQbQ#uQgQgQeQ? mQpQoQrQ a nQtQeQrQfQaQcQnQ mQpQlQeQmQeQnQtQ Y rQ hQiQJ sP hQrQoQK yQ aQrQgQeQq urQoQt aQlQsQR xiQnQaQlQlQC yP uQnQcQtQiQoQE 1lQ|P lPy woQnQryQmQmoQuQh} qiQbvQaQ]tQZY ,aQiQR[ iQLtQcQGI KsQAtQaQ<nQcQ7eQoQ2 4 uQ,Q eP) 'pQ$eQoQ9 aQz lP uQ^ mP  nQsQ] aQsQ W /\ tQeQGY dQCK-q`@w{ @Q QoWlQP &SP` q\WfpuPtMPn`\Pk Q Q(aPWP  Pp`u&VHQP RP9 pVP  P``7`qwpWp WpQ xWP PpCQ Y@ P &hpgp`gpKO-M@ PPP`P0G0pC`GpC P0R`p R,PPPP  Ps=  Q/Uk p(%\QPd EPa:`UP  PJP?;[Up\UPP  P.\ P * EP':`]UUP  PPtpQ/UjkKKO-MaPpv4 ˒Q'V$PP QP g@ P*q9 lAAapv `B@pK…0S  P i$  ` FF0 P R 0 P F 0S  <  80 0H- M00003 РEEpL- Q @@<0@0P᳠ `&BppE\EM-p0W  P  c pP@T pp@PP*pP @@p`P D`P``@Pc DDO-M@ {P CpG#0@ P: 'Qd1AQaPRUQ0A P: 1 @R'@pUN}QLW0@ Z: 'P,1@P)*0@ Y: 'P 1@P0`@ V: '`P1@P0P@ U: 'PP1@P bR$ PP G6 $( P71B 1$( PP 61B 1(@$K0H-@ Q0PU 5A 0P0  0 0f0iS`\\H-  \/L-@@@ @L/\/L-@@@ @@L/H-p@P`W0 HP @ O-M@T+ `P f P 0 p0W @ 00P  d #y@TK 0 0"SB^\ǎ\pL-`PP pL@ pLO-M`P P @yP ppW @ 04pPtf~ NP Pd  0  0`L  PH p<&GP   R 0;P2 偐P k p R p0pP  0pP  K<8  w 0 0oSv[\\S[ZpL-@ PQ `V ? 0 P,( (0 0Lf.pL25SZ\o\pL-M\a`L@@P $X 1/(5@P>  !0 Tp- B!)@p# P'@p  0PBp P @P  6BXKpLkHD D0 0$q\D,55 d_\SjY\5_L-M'@x@p  0@BBpKK,P/H- AH/\<L-Q '@Q@p L+BH-(M@ἳttQP[P T `P`ɂV P 1/PM  `p`&,P Di D(  MNWH1/ 1 A a$ 0 Qm D0( 0?K @@r0@ H- (MDi D(  M彎WH1/ 1 A a$ 0 Q9 0( 0k? Р@@pL-M@PP[P ``5V P 1/PṂld   R0 LP @<᥂KpdpX =H- H6H- M @: ;C РO-$Mp`P P >P QP K: ;CP P / , 0 GP (P (  $ /`4` 08K0<'@P| @磽@  G 800<  00<Kph@O-DMp$K9`[> : $;C/  00$@ pP,(`@00 4 8 T00s먊@``P 1/P`U spLpL-@wQ!PLO-M@@Q#* @[/R([刅PU$C <@|D[$PDPKO{P+ @[/R([_`V$ <@{D[$`D`{ 0 KO/0,  {  0 0{YS[:Z=S9\~_pL-MP0@`u 0KpH- M@P` `0! @[P pp {W P 1/0Pk{ f{KTT,!O-,M@rp[P P Pz U P 1/`2{PU T& EG/F `!!!!Eg V :Z pW6n PpW P PZ P :< PpWp `WG `P  Q W;pW8 P NPPP *zPP 1/``P 1/P`U LrPU ,z ΑK$  y4SH S5ZH- 4HS /O-M- Qd@*hp@P(㸈  p$p0 ppppp{r`V@Kx_O-,Mrp[P @ @y T P 1/@>z`PV T& EG/F @!!!!FG T :fpW&.PpW P P#Y P : H  PpWp @W P pWyK @P  Q PWtP/ K-PM@sPH Pa`PU0 8 2/Pp0p. p p u0 ` K(X,pp0 ppppp p$pp6/`p P 1/   P 1/0@`8P0D<0P8PK>008p0D`p`3/KލSu_O- MP KOL P PP/,㚇zt`V pᯇ-`QDP*p(デ  @ 0$x Aq@T@ @@; 0` `P 1/`@V S `]`P 1/`\UT*! P + P@(y؅(yP y;PKs_(pL-`@P 0 pLNO-M (` @[Q([$PU$ ? <`xD[$PDPxZ:K 0 0w]S-\>q_H-P!P% @9sP Lp`T!ppص(/?SR P 1/ HrpL-@sP L`PT!``᮵(/?SR oP 1/ pL-@\LH- HK-M@(倘 [@ 0 4[S+PU( 0@`[Apd?  ``d0őP ( [+@ QBKP P  O-M@PpT6 EG?F"," "0&" G! `Vj @* A * *ZPV:FPP  3   Q1` F 00 p Vp0p pZ'  Z PS U:0 Q QU@oQ( pS@ T:0@ @PY pP# S P:PpP S P:oPq  KH-@PQ A /PP`UH* VF"@  o!pr!  2 W   P:@o ` UP1U:O-M@Q# PQ[*P 6P UpXE E Z: PPP P0 qpW( Y P: P  P !R   R 0`V ! pK]2O- M@pPD0 W :`p0pp`P V S P: 00 PP P S- P: 00 P P S P:@q Pa @ P KP%  vM-`V pW @P7U@ 8hh,P 0W P $RPV`I0H-@tP0} P! PP݌(P,PP P$Pu0P4P8P Ԁ P0P$P ,0H0㤀PjPP 뻀 @@/ @@Q7/1H- (./AjM-,P@`p>r 0P$P V 0L M-r$P/j M-M`P , Li+\P p@ G6P@\pPT  P PP |iKB`PU<P@0H-@0&,PU P $9P 4-0$P(0O-$M@P,`- 0,' ,h[PD `p P5@@Z{ P- P ᷹@ A@T߸@p` 2/P T 6T  Q  ) [`PhK/K-P `@P(*B A!/rAPAP P@*p0AV   P-Y@ K@p-K-PGIP<*aAA!.rPP. P`.*]I1 !W  I!0`A7T0P @V P6PP k]TT K@T`, / / d!b/0H-P $ @@ @0O-M p dPd PHKt%QxC@K ^`@@1@UaCPp@TN tx@ 0 ^ `HDU Aa KO-M p dPd PHKt%QxC@K ^`@@1@UaCPp@N tx@ 0 ^ `HDU Aa KO-\M@0p `` 0|Q|P cPs`pp Q||P EP)QHu|$3! 0 l|Y p '5R 0QP0S E@1S@#5Q `@\_C?#;CeF0C?aP` 0PE P P p'R1uP AAP@  A |C!A%BA! @R @AAP QL @`0S  A!A%!<?CAQ& @ 0 @ &@   x0h @ @\ y Lu @qKAP_'O_ ZUPfZO_[ZTTL_TL_\dZ)M_ݥS /$L-@Ld#+ X +A/O-$M@8 0 0  @hpl`W *`H0 @hh   d 0Nh @m pfK0dBA   p 00 @lPP *PpPdP0 @hh  dP  0nNh@ pd@@pr  @hl Q *  @hh   0ANh@d@p@W K葤SK_L-(M 0 @ 0    hlP*0P hh  K d K0K Nh@-&Kd@AK=SL-(M 0 @ 0    hlP*0P hh  K d K0KMh@-&Kd@AK?I_pL-(MP`@q   `Ph0l S *   P`hh  d K0KMh@-&Kd@A! Kp0H- M@   0 hlPP *P"@ @ hh  d K0KoMh@K0O-MdhP 0pp C"Qt xPt x`pH70@0w#4pApUa`'taqa^\ / dP1c10 P1qG1cd` 嘀P吐(qYPQP @@EDQU@%UQ ,@P/CO$KDUE@D/QP@A0@S 0@0EC1S#5Q ,@/C?#;CE0AC/P AP^KH-pP@W*` 0P`EAVFM  0#P 5!V S  !U+ V 0GppB P 0 U B@P/ @ $ ! #B0|/C"+B5C B/1 HL0H-P \ B!0P00@2S  T Q00O- M@᠐ Y:dp-h`&KPF @A@XX/*z JR ( Y夀 zdph`W pP*pOpV OKK(H- M d0 !b0 0  РљS0H-M@1`PN(P!    0$0<HT  $(,P  HRK0  {kZS+\O-M@Q  `  pP   (! ~@P P    ! " L00PP P- p     (!  XPN   BBPN*Ep   P : yA   0P1SS0S   @BS)*2B   \"  @B \p`  R 0H <@@T*@T@Km'ڌ>_pL-@LP0 a V Q 0P0`aVp A @ AQ@T @PLQ@@ATTTQ*T`P@`P@0Ap0O-M`P     0!@L!" pp !R R P  "! R :ð A 00pqWWpW @@@W**` Q  0n;r 00BC20pp  Q++ 0tx 0R (` H" A Uq"$aXK,( (0 0_ A_qjS&[[pL-MP @ Q L `& 0 0 KpZ \H- M 0 0 Р" \H- M 0 0 Р_O-$M     R@@@@@ @  |5 AP4#  3  0_3  0W 3  0O@PhcPp`  w0 pPWB$Q p\`4 RV !52P  2  020;P :Py 20p 5P    P ` Q  1 0 ` !  `il1  0 X!  \H1  0 ` ,!  O1  0 `>P  pop &w 500  (0  0  h0  0u K___________\=_^S_D_ `S-_!__ _pL-MP`@PP  0 0G 00PP `00 PP  000  $ KpKp[_9T__H- M 0 0 РBHSM-MpP`@W P x20 0P- P PP " " 20P @p Pa! n10p !p `10 p p1 0 p`10P4! A$10 P ! 500 p  ( 0 0 # #$0 0u K  D  0p^`_d_k_;_O^_#__b\____E^____M-MP`@!HpODQ %v A0(WA  ( p00S6 D  R 6,L000Cs0 S 45  Br R 4& :00S (%  R (& ,00S P  RP& Q   R Qp `u :  Ru p  R6 !  Br R4  R(  RP QQKO8 $u 3 P  (00  0 0y 0 0q 0 0i t0 0a X0 0Y K  V\_Y\S[Y5___^____pL-MP0@`0 8 p0 00 T0 0( @   (0 0 KpYZS@S___pL-MP0@`0  |0 0 `0 0 D0 0 (0 0 Kp@S}_t_[_CTpL-M`D0P@0 0 0 Kp _ _H-MP`@>P  p冭뇭 =t L  G 0 0 t  : \0 0 H   - 00 0 K _[ _R _N _@ _@ _8 _H- M 0 0t РWSpL-M@8 P ` 0 0_ Kp _WSpL-M@8 P ` 0 0 Kp _;WSpL-M` X0P @0 7 8   0 0* KpVSO _@ _pL-MPx0@`0  P0 0 <  $0 0 Kp _ _ _ _ R 0S/H- M 0 0 Р/J _H- 000Cs0 S00t0 S0 S 0 S0 S 0 S0 S 0 S0 S 0 S O- MP`P! tIP nIPPcP :p᜔P   0 0 0 h0 0 L0 0y 00 0q P$yw_b_K_ _%_+_m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^m^um^fm^Um^]m^Km^Am^5m^0m^3m^%m^m^ m^m^m^ m^m^m^l^l^l^l^l^l^l^l^l^l^l^l^l^l^l^l^l^l^{l^rl^ml^ml^rl^}l^~l^l^l^l^l^ql^il^Tl^?l^/l^l^ l^k^k^k^k^k^k^k^k^k^k^k^k^{k^qk^`k^Jk^Ek^=k^Jk^Wk^ek^ek^fk^mk^pk^wk^ik^^k^Nk^! ! 2 0$2 0 @2 0#$\2 0'(x2 0+,2 0/02 0342 0782 0;<3 0?@ 3 0CD<3 0GHX3 0KLt3 0xOP3 0pST3 0hWX3 0`[\3 0X_`4 0Pcd4 0Hgh84 0@klT4 08opp4 00st4 0(wx4 0 {|4 04 04 05 045 0P5 0l5 05 05 05 05 05 06 006 0L6 0h6 06 06 06 06 06 0x7 0p,7 0hH7 0`d7 0X7 0P7 0H7 0@7 087 00 8 0((8 0 D8 0`8 0A|8 0B8 0 C8 08 0E8 0F9 0G$9 0@9 0#I\9 0'Jx9 0+K9 0/9 03M9 07N9 0;O: 0? : 0CQ<: 0GRX: 0KSt: 0xO: 0pSU: 0hWV: 0`[W: 0X_; 0PcY; 0HgZ8; 0@k[T; 08op; 00s]; 0(w^; 0 {_; 0; 0a; 0b< 0c4< 0P< 0el< 0f< 0g< 0< 0i< 0j< 0k= 00= 0mL= 0nh= 0o= 0= 0q= 0r= 0s= 0x> 0pu,> 0hvH> 0`wd> 0X> 0Py> 0Hz? 0@{? 08? 00}? 0(~? 0 ? 0? 0|? 0`? 0 D? 0!(? 0 ? 0> 0> 0"> 0#> 0'> 0+d> 0/#H> 03,> 07> 0;= 0? = 0C= 0G= 0K= 0xO%h= 0pSL= 0hW0= 0`[= 0X_&< 0Pc< 0Hg< 0@k< 08o'< 00sl< 0(wP< 0 {4< 0 < 0; 0; 0; 0); 0; 0p; 0T; 0*8; 0; 0; 0: 0+: 0: 0: 0t: 0 X: 0<: 0 : 0: 0x-9 0p9 0h9 0`9 0X.x9 0P\9 0H@9 0@$9 08/9 008 0(8 0 8 08 0|8 0`8 0 D8 01(8 0 8 07 07 027 0#7 0'7 0+d7 0/3H7 03,7 077 0;6 0? 6 0C6 0G6 0K6 0xO5h6 0pSL6 0hW06 0`[6 0X_65 0Pc5 0Hg5 0@k5 08o75 00sl5 0(wP5 0 {45 05 04 04 04 094 04 0p4 0T4 0:84 04 04 03 0;3 03 03 0t3 0X3 0<3 0 3 03 0x=2 0p2 0h2 0`2 0X>x2 0\2 0KEk^@k^5k^p@ᨉ0 rp@YHk^:k^/k^k^k^j^j^j^j^j^j^j^j^[j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^j^zj^qj^fj^\j^Mj^>j^.j^\\\\\\x\c\T\F\6\%\\ \\\\\қ\\\\\\\o\X\O\L\7\$\!\F\0\\\\\ٕ\ѕ\ŕ\\\\\~\t\_\G\/\\ \\\ܔ\͔\”\\\\v\l\`\S\O\H\D\0\^^O-MP`@V T& EG/F!!!!FPw W :፩  LPZP Pp` 0Ap`WKPPPU P:P` PPZ PGPp 0G `PJ`! 0P P  ZP  d PU`P K E@ i0 `}pQPPp` 0A_p`W^O-Mpq @` PPh  QZ "RV Rh"RQ RP RL x R RG l R RB $ R(Q= !fU1d pd` t Imx!fK ^AaC 0Qd0@=6K@p/tx  ^ `HBU1!#b APXdp!X1#!KO-4M$ `P J$p PUU @p`  # Rn 0$  ` @`r Vt@ B&CVjV(0pwpq'2 0p0@BF00 0@ K T0S V@@F PH@ OH"( 0/@ 0`?pT.}#B| `A p$ ` (0@$  $   Y:QP'QI@p0  $   $0Q 4Q@X%Q#p@ $   $p04P0P pXK KA   OHSA)SCYO-M  0 `@ !R%t 0 R 0Q9P@pDQ 0cpPW' 0P"Q@PpOP    ::P @UKO-M @pP? Q`!$ P R0 EsB1ap0S*pB!@F@P!` p P QP Qp 0 F`PZKO- M| ` pPt  PP PU P*@ 0 @@ Eg@P @] gfMFKda pd t Fx0"!P Q0BQUAMFK E PRdPPHEQp@, 0tx0 Q `HCUA!4c$@\dp!\1#!KL-( @ P2S 0Sh2S 0SP0S x0S0S l0S 0S $0S(P XQ@O-MD `P GP< !eUQd `dp @pHt Mx0'qFK @SDq@G pTdp@}vK@p\, tx0 S 8`0H30B0Uq#4'b !KpL-P>P@ `婟몟$ `f pLnp%^L-ML@@KO-MS @p PPK ` fgdU Pd0p0Jt}x #1vK 0RCq}vK0@ SdF@p+tx  0 R `HAU! aS@dp!S1#!KO-Mpq @` PzPh  QZ "RV Rh"RQ RP RL x R RG l R RB $ R(Q= !fU1d pd` t Imx!fK ^AaC 0Qd0@=6K@pm+tx  ^ `HBU1!#b APXdp!X1#!K0H-@ P pe 0H~>^H-p@ 0     a!h&C`0`P0QU UT Sp03/` KdF@`daVO-MPw @` pPn  P_ Q[ QhQV QPQQ xQQL lQ QG $Q(PB PefdU `tx pd0 pRGQp@J=W 6K =6KdH@pp*tx 0 R `HAU! aAYdp!Y1#!KO-MPy @` p8Pp  Pa Q] QhQX QPQS xQQN lQ QI $Q(PD 8 PxdfdU `tx pd0 pRGQp@J=W 6K =6KdH@pp#*tx 0 R `HAU! aAYdp!Y1#!K('T/ O--qb PSd@A" dd m pfKdd0Et0Hx AP m@#1fK0RUACa0FSp)0tx 0R0 (` H" A Ua"$aK^L-M @Q0 @K @@NKH-Mp+ `P& @Pp8 Q \ 0 ) Q $ 0 K^^O-MD `P P< !eUQd `dp @pHt Mx0'qFK @SDq@G pTdp@}vK@p&) tx0 S 8`0H30B0Uq#4'b !KH-M@}vK d!b1c!1 `d` BB!@` d0!b!a P1dP BB!/`VP@` P  o2:P PP PP 2/PKpd!b! 0d0 B=6KB!1l1H-  d 1la 0d0 L=6KB!1HO-DM@, B4P[ pdmp,fK PAoh !@R *@QddPhl !Y 1  #  d@@P  G00 @p < $(PK= 2/P 4p1/WP,BK踒[O-DM@, A4P[ pdmp,fK PAh !@R *@QddPhl X ,1   d@@P  G00 @p  $(P< 2/P 04p1/WP,AKݪ[ /00S  2S0S h2S0S P0Sx0S 0Sl0S 0S$0S (P/H- 0R0S$ 0R0S t0S0S 0S0S 0S0S 0S0SRRQQ/d#0Q/O-M@ `Pp  PQK"R Rh"R RP R x R R l R R $ R(Q 4!eUAd Pdp `pIt mx0'qfK `SFq`G pVdp@}vK@p& tx0 S1 8`0H30B0Uq#4'b &  Q R  Q R 0 p0tpWpW pWpW pWpW pWpW Q KQQt O-MdPb `dp@pEtMx 'qFKU pRGAp@ WdC=6K@  p@&0tx @I2 R `HNU! a0KL-M@  ( 0d 1c! 0d0 B=6KB!0YKO- M@ `p P P Z!pdp \!b d A-&KA9 bMFKd d t Nx0"!`UA  0QCaMFK0F `Sd``EFa p @`& 0tx 0Q0 `HBUq!'b0PZ Z(@ZO  PG6PP?ዦP8<B (/4 8|/8 2h/< ,T/@ &@/D  ,/H /L /P .T .X .\ .` .d .h x.l d.p P.t <.x (.| . . - - - - - - t- `- L- 8- $- ~- x, r, l, f, `, Z, T, Np, H\, BH, <4, 6 , 0 , *+ $+ + + +  + + l+ X+  D+ 0+ + + *  *$ *( *, *0 *4 |*8 h*< T*@ @*D ,*H *L *P )T )X )\ |)` v)d p)h jx)l dd)p ^P)t X<)x R()| L) F) @( :( 4( .( (( "( t( `( L(  8( $( ( ' ' ' ' ' ' ' p' \' H' 4'  '  ' & & & & & & & l& zX&  tD& n0& h& b& \%  V%$ P%( J%, D%0 >%4 8|%8 2h%< ,T%@ &@%D  ,%H %L %P $T $X $\ $` $d $h x$l d$p P$t <$x ($| $ $ # # # # # # t# `# L# 8# $# ~# x" r" l" f" `"T3^*^)^(^$^^^^^^^ӻ^ʻ^»^^^^^^^^^^^z^{^o^g^d^`^Y^S^R^cG^3^1^'^^^^ ^^^^^^^^^^^^^ݺ^Һ^Ѻ^Ϻ^κ^ɺ^^^^^^^^^^^ú^ܺ^^^^^^^ߺ^^Ӻ^Ժ^̺^ͺ^ź^^º^^ͺ^Һ^Ժ^^^^^ ^/^Q^i^t^r^o^n^l^k^i^i^i^o^q^r^h^]^N^B^<^9^/^1^+^&^(^!^^^^^^^^^^ ^"^*^.^1^&^!^)^/^.^-^-^)^!^)^'^&^$^(^&^-^-^3^5^5^6^?^>^@^?^1^(^^^]^^^^^^^^^v]t^q^i^c^b^X^Y^f^d^^S^X^A^B^H^ǀ]<^2^2^7^5^/^)^-^,^(^,^#^&^#^ ^^^^^^ ^^^^ߴ^^ܴ^^^^ܴ^^^^^^^^^^ߴ^Ҵ^Դ^ʹ^´^^^^^^^^^^u^k^a^^^\^P^G^>^8^.^$^^^^^^^^^س^Գ^г^ɳ^ij^^^^^^^^w^u^s^m^i^]^V^M^Q^M^G^:^8^.^%^^^ ^D\^ڲ^Ӳ^Dz^^^^^^^^^^^^u^}^^^z^o^e^X^L^F^D^D^9^1^)^^^^ ^^^^^^^^^ӱ^DZ^^ " " " " # $# 8# L# `# t# # # # # # # $  $ ($ <$ P$ d$  x$$ z$( t$ n$ h$ b$ \$ V% P% J,% D@% >T% 8h% 2|% ,% &%  % % % % & & 0& D& X& l& & &  & & & & &   '$  '( 4', H'0 \'4 p'8 ', '0 '4 '8 ~'< x'@ r'D l(H f$(L `8(P ZL(T T`(X Nt(\ H(` B(d <(h 6(l 0(p *(t $)x )| () <)  P) d) x) ) ) ) ) ) ) * * ,* @* T* h* |* * * * * * * + + |0+ vD+ pX+ jl+ d+ ^+ X+ R+ L+ F+  @+ : , 4 , .4, (H,  "\,$ p,( ,, ,0  ,4 ,8 ,< ,@ ,D -H $-L 8-P L-T `-X t-\ -` -d -h -l -p -t .x .| (. <. P. d. x. z. t. n. h. b. \. V/ P/ J,/ D@/ >T/ 8h/ 2|/ ,/ &/  / / / / / / / / / / |/ h/ T/ @/ ,/ /  / . / / /  /$ /( /, /0 /4 /8 ~/< xx/@ rd/D lP/H f ( 8' 2' ,' &'  ' ' ' l' X' D' 0' ' ' & & & & & & |&  h& T& @& ,& &  &$ %( %, %0 %4 %8 ~%< xx%@ rd%D lP%H f<%L `(%P Z%T T%X N$\ H$` B$d <$h 6$l 0$p *t$t $`$x L$| 8$ $$  $ 귱^^^^^^^^y^n^g^[^N^A^ # # # # p# \# H# 4P$  0   B  ,1 #0`QU p7^1^0`0PQU TTSp%^^"2 0l9 ^^^^ٰ^а^ư^^^^Q>\AZq^d^[^V^N^F^G^>^5^>^3^,^!^^^ ^^^^^^^^ׯ^ͯ^ɯ^^^^^^^^^^z^t^i^h^i^_^U^K^D^B^8^.^)^^^^^^^^߮^Ӯ^̮^^^^^^^^^^^^{^r^h^_^V^M^H^@^4^|[|[$|[&|[*|[&|[%|[)|[,|[)|[%|[$|[|[|[ |[|[|[ |[|[ |[|[|[|[|[ |[|[|[|[|[|[ |[|[|[|[ |[|[|[{[{[{[{[{[{[{[{[{[ة^ܩ^ک^^^^^^^^^^^^ ^^^^^^^^^^Rj3[H^O-M@ T& EG/F`V!!!!w F W:ថ QU PU P Z P:ቐ P  PPSxGjPV@*@   A * *Z@V:F@@      Q1!`F W*J P  P P F P:2P  KO-$M@ x p8P7 s{`Q4 FYD*GPV&``P   2/` V`AV@ #V Fap!pWFP FP@ P J.KWJL-(@P FHM-(M`P1/p1/@ 1/ w 0'PO p`:t@ ` @ph l0R *0``hh  d K 0h@KA^M-(M`P 1/P1/p1/0W  OHO0 0  @hpl`W*`H0 @hh  d K 0h@K蛤^K-@l`,pAp` `PB  ```$`0`<`H`T`0`,`(`$``4, <`@`H`P TX8`E P p `E  dET hl`p`t`x`  6EDD)RY[pL-@x,`V`V  P1/U P EE@PU 1/PUpP tEhPhPP 1/ddPP 1/``P 1/@P PEU88P E,P P}EU$$P tEpCH- HϖL-@0O-4M@P K(s pW> P$  P 1/ E` `  Z `P Q  [O-M@P  {   RP @Pz 誟pP 0 `H@P` 3/P  RP U: 003/P  U:@@Pb8 P0p`G@P` 3/P  RP U: 003/P  U:@唉 P0 p`G@P` 3/P  RP U: 003/P  U:pdPhU `@@V PP P003/P]@Pl P0p`G@P` 3/P  RP U: 003/P  U:@ȇ P0 p`G@P` 3/P  RP U: 003/P  U:pPP `!%o"@P`V:@P} P0p`G@P` 3/P  RP U: 003/P  U:@ P0p`G@P` 3/P  RP U: 003/P  U:@@P&` P0p`G@P` 3/P  RP U: 003/P  U:@弄 P0p`G@P` 3/P  RP U: 003/P  U:@$P @P P0p`G@P` 3/P  RP U: 003/P  U:@T P0 p`G@P` 3/P  RP U: 003/P  U:@@Ps P0p`G@P` 3/P  RP U: 003/P  U:@ P0 p`G@P` 3/P  RP U: 003/P  U:P_@P  ]   RP% @  }   RP# @P K R 003/PKO/003/P003/P\^e[ ^^G^'^~^}^N}^W|^{^z^z^O-M@ᨓ ࠣ P 0p`G@P` 3/P  RP U: 003/P  U:@SP p0`G@P` 3/P  RP U: 003/P  U:@l  P0p`G@P` 3/P  RP U: 003/P  U:d hA-&KA! @夑  P0p`G@P` 3/P  RP U: 003/P  U:! a @  P0p`G@P` 3/P  RP U: 003/P  U:$P ,0@@0  KO( x^܋w^y^Y.y^ Yx^ YpL-@dPhU `@PVPppL-P@P `!%o"P`V:pO-lM$P D$  ,0Q R0  ,0͌ 0`Pp̌L   P @Pp``P S qpC00pp B ,P L0PL  p@ S`00 , P 1A@@0@@A ,  L@0~ p TaP@~ P paQP@0PP0C ,00 p<0.   Sa0. W 1a`Gp0``A , q 0  Sq0> Q 0qa`A0`` B 0  ,  r 0  Sq0> P 0qa`@0`` B 000   PP# @0`D@P` 3/P  RP U: 003/P  U:  QKՋ$Q/ %O-TM $ X  ",((R (, 00@ P $ l, 0Pp` 0T `v p0@`p:` 0F1( 0E000 uH P`:(,l lL@ 6  R1 & P( 1qp@0ppA(  ( (`P봐P # p0@G@P@ 3/`  RP V: 003/P  V:  XoKdыO- M `PP` 9P  1/9Pn  qQ * R A !Q* R P|A x@`0 pI@Pp 3/`  RP V: 003/P  V:P%@`,Pp  P RP  @PpW 003/P`V KOKpЋ4Ћn^ϋn$[K-M` 0  @ R03 P07PH R ' pAP 00@C T!! PT -0C1NU 1 pRPP R0 0 R0@ P!! ڜ0 hP K  K RK-0M#`PPV@, @ 0 L q@ Rq pD! S aQPC00PPpG ,00 1@ R1 0 q PpaQP@0PP B,   d @J" $)D@ q0 Rq  Cq PpaQP@0PP B @@`6P% p0PG@PP 3/@  RP T: 003/P  T:KʋK-PMD  l lLd Q, 0v Sq06 Q110A000 : @6cQ1vpAA@C0@@ Bp@,@&p Q! 6 P0AQP@0PP B,   6 R1  A6 P0qQP@0PP B,  @ 6 R1  A6 P0qQP@0PP B,  @"6 P10v RpQA@B 0@@0C ,   6 R1  @6 Q0qQPA0PP B  A  @`PP% p0PG@PP 3/@  RP T: 003/P  T:KHNjO-K P``V V4*0&1U  G` B"`  W !Y 0ppK&1U  G` B"`  WhK-@P U 0;` V F U@BQqF Al 1 # PppW W"*/'!qV0 0E0C#! 00U 1Y0  /0K-@`V p<P U*A U@  p@"  QppW W(*Z/ppV!!q 0E0C#!0  U` ! V  Y/p@K-@P U 0;` V F U@BQqF A 1 # PppW W"*/'!qV0 0E0C#! 00U 1Y0  /0K-@`V p<P U*A U@  p@  QppW W(*.ppV!!q 0E0C#!0  U` ! V  .p@2O-MPpmfKI @$@J PK  0 B 0B!@#)$@pQPP3 i`n.0`Z 0Ah p mK MFT0 DA"aqi`A V@ KOKO-M@0 P#Ua P5QUMPUJ 0p0EC1d0BCFXA,e Pq `eaV`V C!0A0FCAQ  FBQ(/ @!$ aU `F Q`U PNP$ B Q:`.@ P0 AVK#B0l/oC"+B5C B/1`UO-M@W Š Z( Q1 `Q 0 G P@E1B1CVBq`V `V Vd* P- G(P !   `R Bp@ -pY pX=P `VF A QF PB @  $PZ Z* U-* V  H0 B" 00X !0U@ [-YppxY @P WP=`UE A aE PBq @ q&PZ Z* -* 1U G A!!``W`!V   -ppYpp P P ,`VD  Q XP1p  , AP pW*pPU `PE[pUPW  pP   AEAPR ,KY @J P pXP=`UE A aE PB @) &PZ Z'* _,* 1U H A!!``X`!V   c,pYKK-@P U 0;` V F U@BQqF A 1 # PppW W"* ,'!qV0 0E0C#! 00U 1Y0  ,0K-@`V p<P U*A U@  p@  QppW W(*+ppV!!q 0E0C#!0  U` ! V  +p@8K-@P U 0;` V F U@BQqF A< 1 # PppW W"*r+'!qV0 0E0C#! 00U 1Y0  w+0K-@`V p<P U*A U@  p@  QppW W(**+ppV!!q 0E0C#!0  U` ! V  )+p@K-P `@FP'*A AA!.rPP P@**pF AV  Y@ KX|@pjO-Mp   pII  pIAP{Qڠ/0 /Q- !P@`0s 0PSH*  0PU0*  0`V5*  0`V/* , 0P`@T*U* U* 0 0`V*   0 0S* 0` R*  XA P@T*P0@T%: T  0pW2 55 PP Rp`  LPNVeIDQ\PYP` 0 D`PU:@P1pW*R@ T0R* P{ Px 0pR:Yo0 Pj0 0R*p@0:`R: W:PX SVpPK$$,` 0SG:;p`0V*S * S *S  55S*   Q pp0 P* `rP P ` B`P: 0 RKp0`V4*W?* K 0I<K@` p 00  0S* 0Q* 0 Q* 0Q*KW*  0S*K  R*O-@ p`P U*\*\*pP@ T*Pp@@P U *@ @P@`V*P0p`PU *p0 0p`V*0   O-MPA@P>ll4 d 0S :p0@T:*WJ*  @p  0{  0Sr* 0Qj* 0 Qd* 0Q8^p@0T*S#*&  0JOKWI*  0S55@S*S55  R5 51S *  P% 0 p R* `q@ @ `A`R: 0pS  Q @o᠒ KO-MP@@HP9*ppG@GbvPP* P** p` @ ( 0 @H0 p`Xb` B p  W`@ KOnyKO-MP@IP**pAA"rPP P* '`I@Yp B X@ KO7yK`HO-MP@* *J㪪 @પ@ P80CT%U%@QPP( '`vP @UUMRP@qaU` KOxKO- M `R.*PAU2eRX q  wڀ2! s R# mpWB! p  g033PpP    8'U> X! W gQ  APE 2b  -'  ` 2pUW gQ  APE 2b   ` 2KKppL- M@Q'PqPPP#Ab&aP     P    &Kp>K- M@pTpDP`Lpqp PD0G0#S P WG01P QP B`V9P p`V 00pG`F1wp >"! 0  P  KMr!QFP 0` p7#7 PKO-M` `Fp!B\W8 `g\ P@ P`F0fw`@ pfW@1pG0wp` `J `V> pEW g`6>pL  i \  p @p `?  pG@?W   P% 4*  L@\" Z @ PJ"p `l8%P8v `&   P"a LR`P@ Pb8U7  K#w /K-MR.*P`p 0BPP  C@d" @T P@P  00@Pp U:KH-@PQ A 8PP`UH* VF"@  o!pr!   W   P:@o `UP1U:O-M@Q# PQ[*&%P ?%P UpXE E Z:  nPPP %P0 qpW( Y P:m P  P !R   R 0`V ! pKfH-@PQ A ᝥPP`UH* VF"@  o!pr!  Y W   P:@o `xUP1U:O- MQ" Qd* $P $ Y `PUN I@  T: rm@ PPP $PK@a`V3 pX W: WmpWP!pW Q Z .P `QP@`VKO-M@1/PU9  E     h! Vp: mp pP @T@T P P  2/P Z P:lP  P @KH-@PQ A ᯤPP`UH* VF"@  o!pr!  k W   P:@o `ꊤUP1U:O- M@Q" PQj*#P #P U`ZT E X:l PPP #PKa`Y8 pP W:ilpW 'pW Q `R `P  2/P ` R` YKH-MP@ 0p 00@ Sp3 P p5P( S& PA0 p0`G V!! P V -PGQNS 1 PR00R0 0R0@ P!! ᡇKK-P `@FP'*A AA!.rPP P@*"pF AV  Y@ K;t@pMH-@P `@p0@pQ 010S 2/P  1S&0 0  "!R:Bp0BpQ 010S 2/PK-PPU Q QYF pP? @@ `0@`Q 010S 2/P  `!Q:B`0B`Q 010S 2/PI pYK  A7R)ZH- MP\ 0S ^* Р  Р\/L- P  ! 0AT R0 R ^NH- (!< ?8  0@ $ ^-6RH- (!< ?8  0@ $ E^5RH- (!<?8  0@ $ ^u5RH- (~!< ?8  0@ $ ^5RL- 0 S!!!! !!H"   '  "&"!  """ 1"(#0  '07  "&"#6#!1  """#2#  #($1 "A!("" !!P /0S  S@o"/ 0 S0 S /  !/ R \/L- R  ! 0AT R0 R ^NL/O-$M$@P`Tp, @ 5 0 $($@`0   pW G Wi QU PU P Z P:i P  PP\ zPW@*``    A * *ZW:G     Q1 pG WTi P  P P G P:H-@PQ A uPP`UH* VF"@  o!pr!  1 W   P:@o `PUP1U:O-M@Q# PQ[*cP |P UpXE E Z: JWPPP ]P0 qpW( Y P:0W P  P !R   R 0`V ! pK裻K-P `@P(*B A!/rAPAP P@* p0AV   ᮻY@ K]_@poO-M@pB@QU#W p U7*b/q@U`@aV-* PXPP"  t`@U Z S U `FV   [KO- MP`@FP_* rBA"rPPR PpR*i F2 "D @D`" @`` ` X& @HEPD @%RPH0Jp```    `@D\```P `U @EP E VPV KO^Kp겺O-MpPUS  (E!!!!! `  V:U P7 pW3pW0 P P  R 0R QPZ P:UP  Q P  0S 0S Q  pKH-@PQ A ᇍPP`UH* VF"@  o!pr!  C W   P:@o `bUP1U:O- MQ Q* u P  Z `@Tn PJ p Q : ]U @@P r @KaXU `PpW P: CUP@CP !R9 ``Q&  p @` PpR Q 0Q\0 \ 0S 0S\  0S`Q@p`A@`XK茹K-P `@FP'*A AA!.rPP P@* pF AV  ᘹY@ KG]@pYH-@PQ A ᐌPP`UH* VF"@  o!pr!  L W   P:@o `kUP1U:O-M@Q# PQ[*~ P P UpXE E Z: eTPPP x P0 qpW( Y P:KT P  P !R   R 0`V ! pK辸K-P `@P)*B A!/rAPAP P@* p AV  ȸY@ Kw\@pꉸK-P `@P)*B A!/rAPAP P@* p AV  ᓸY@ KB\@pTpL-LP@U PQ `AP  ULPP @P P U88P $P ( P P U  P pH-@PQ A QPP`UH* VF"@  o!pr!    W   P:@o `,UP1U:O-M@Q# PQ[*? P X P UpXE E Z: &SPPP 9 P0 qpW( Y P: S P  P !R   R 0`V ! pKK-P `@P(*B A!/rAPAP P@* p A!V0  TY@ K9[@pKK-M@ Q:A WP U} E W@BqaE AK qp  0@BCQAU*RV }  WPw U P``Vu V*g q `Q`V Vv*Y   R  "U `PEJUP Q     P 0  EB 0 P I K & >K P``V V4* &1U  G` B"`  W !Y  ppK&1U  G` B"`  W~K-@P U 0;` V F U@BQqF AႶ 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  01K-@`V p<P U*A U@  p@8  QppW W(*pppV!!q 0E0C#!0  U` ! V  op@K-@P U 0;` V F U@BQqF A 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  "0薵K-@`V p<P U*A U@  p@᝵  QppW W(*ppV!!q 0E0C#!0  U` ! V  p@HK-PGIP<*aAA!.rPP. P`.*I1 !W  I!0`A7T0P @V P6PP TT KX@T`0H-M@8P PyU||P pD8P <i,P 0d P $_K0H-P@`@FP?* qBA!.rPP2 Pp2*#F!`00qa`PU EA!! B5V0`PVp @6P@ UU HzXpꌴL-@ JL-@ tJL-@ LQXDJH-(M@ ` `P\p( / @ $`  2/KLH-(@P`p  p0"@ 0pp $pO-$MP%`P%? @㷀(xqX?` @   $ P 2/K( O-DMQ> KQ0V5$`KU5E@Q x?3PQ / 67믠Pp1pW4@0@8@?Pd O#!pP>  0 Q  P (pz,tp  @@@@@ $@48P*,40,f ӞP P GPpɞpWڞP04 P 80 P 8@  4@0@0XhN O-$MP%`P%? @㷀(xwX?` @   $ P 2/K@ O-,M`@%PP?) p ` R R0   R7   R1ph㷐(@%@Y?`p   $@P 2/KQQ    R7/  R1/O-dM@p%`PP?H@ 3 P/  P P`Პp p!@-|  ᱞp`py )PPP  Q7 Q`1h`HP(op@BU   %?Lp  $  PP @2/KK-(MP`S ` `plpph@(-,(@  `$ 2/K\ H- (M0%00%0\?0 Q? 2/ РL-(M@%0P?0 7P 绑 2/KpL-8M`  @Pᕡ? , @  2/KpO-TMP$ (  *h@P` poO,P P0@ٻ0!/( !$ 0U Ȼ@P K0  0p   0P R= B` R{< (K@` JIQQq V  01SPU P@0C#PPQ0 YV  `] @P <KH-(M0@  ` `X P`p( / @ $`  2/K{\K-(MP%pP%? ) `緐(@Y@ B?p@     $ P 2/K*]H-(M0@  ` ` P`p( / @ $`  2/K\8O-MPY8 @ T2 PP4U' $`$V P $pW  Xp P `V P  TP K//O-M@PGEX*  0BC!r * X ÀX/ X:گ 7E1!Q PW00  7V  PA P  `pP`KO-MP1 @PU' $`$V P $pW  @OTp P `V P DPP  KL--@xPK  A+ 0 A  ` ` * !CtpL--@PJ`@ `K0 A 0 Ql 1 Ajp @++@ @ pO- - PpApP`߷  PP @   `q`˷pP @ @000 0 `  ,(0$0K P``V V4*&1U  G` B"`  W !Y ppK&1U  G` B"`  WAK-@P U 0;` V F U@BQqF AE 1 # PppW W"*{'!qV0 0E0C#! 00U 1Y0  0K-@`V p<P U*A U@  p@  QppW W(*3ppV!!q 0E0C#!0  U` ! V  2p@覥K-@P U 0;` V F U@BQqF A᪥ 1 # PppW W"*'!qV0 0E0C#! 00U 1Y0  0YK-@`V p<P U*A U@  p@`  QppW W(*ppV!!q 0E0C#!0  U` ! V  p@ K-P `@FP'*A AA!.rPP P@*VpF AV  Y@ KH@pؤH- )oL-@d `P $0<HT  *QZ0H-@ 1Q* PU PAQ %1 Q* PU ꫤ0M-`@ᎤP *pW `pP ܼ 1/TpP  0Spp] ȊNJZM-MP0 B Q03 R07R? Q' `A@00pC W   RW -0C1NT 1`Q@ @Q00Q0B Q  .[0 PKQMH- M  0  РHЍ/H-P@ pj`P N 1/ _`P  0ĸp x@P U`PH3``ŊŊ"Z0H-@ZPP T 50@@0pL-M@P0` ``P 0AKP `/@`T U  @ LL@@P@P@PP KpXˊQ7e] aȒRH-M@P;HPp0000P J`Kp`P  1/`P'  0 } @P ` dd``P```P K Dʊ,ʊd]=Qc]NZWm0H-(M@P= 0K  ?EP   [Q,0 0$ K0PK0K0O-M `,@  R P pP W4  AR-*P)PQ% D @P p G !!RG  DᱢPo@Q P Q 0 NPR @pXP p W`[=*P: V W*P`[V pW*QpWp`W 1/ P 0S   pW*Pp@pK@ܒ0H-0M@P= 0K  ?E'P 0[P< 0 $ Q\ KK0K0L-@+hpL-@ P  ``P l 2/\``P D 2/P1/ 2/p D\]]]pL-@P`  P m  P 1/ϹP1/ 2/  P 1/p0~Q0H-@Pu P 0l  P 1/0He}Q@H- HEH- @HE0H-\P@PP  @ 2/ $   0HՁ0DZ]0H-\P@PP @ 2/ $ D000H跁0̌8Z]0H-@PP    ᣁ0HX0H-@P P  E00叁0HH-@PP( P%``P  2/p(i d` cQ  2/  05j$ 0jHꔋ1Z]={Q/{D0H-@P P 0&l  P 1/0HzQO-M`@  P P R RYQP P P] Q P , pQ+P g PR x  PTo  R t R^ =o , P2o K P P A, P P 5, pQ]+P 0]tH`LjO-MpQpWG iP`@ Q> \8hDP8DPCCC 1/ 1/ Q@P`PVKK  ZQWH- M  @ 0v РH- M  @ 08w РL- @ @@0@ T @T @TL Ll  YQWO- MP@000d:`pA0PM x POp  ` P  00S 0 W  8 2/W `P  00S 0 W  8 2/H@KO- MP p`F P=F@PP`pPPp P  1/P) P pt p`P  0@p P 0  UpU KpU HpU fYO->`N$@ TS#0P(00@`?80a1`0`P"S(0P(00@`?805@0pW0S:.0P(00@`?80=h=N,NOO-MP0`- @K$  \X?`dhXѿlpFX  @`,P " AP P!@P$@DP@P LPPPTP?@@K 0ypP1 @ K@0O`@ @T1 TP D ΖP : 0.P ` @ P c" &OP0 P`@iR# P P0 G"@7BP Rp! @P0P@@DR u0(, $  hX0P \V@K5KB`@TC!@PZ` p`P  00S 0 U  8 2/LP ` p#`# P 00S 0 U  8 2/#P QőPL L0 0($  v2]pL 1]ȺNQa\NQnYYO-MMpP `V8 D00K<00,`@00p@@`L@ ( 0 (00 ($ 00  00(0`@0`V(0  RT4((0 ?O   P$$ P 8 `0 RVR`@`ã}P@! 8P{  /0_UG@ Q `\8hDP8DP+???:? 1/ 1/  Y(( @R`<

PY QP 1P!P Z PY PP P& PBPYOQ PP PO  P&PO 㡅 POP 硅  00S 0P OY  803/OV W P0PQ00 00  ` p `  P 00S 0F OU  8 2/O` p`P 00S 0# OU  8 2/KM-@00p0 00S P`@p `p*.p 1ڀPP`PPa,pVPPPP`PE 1/tVP p `t Gpྭyy*YpL-`@  c PT] QZ \8hD`P``X8D`P: ; ; 1/? 6 P2 Q- 8t\h8D\h: 1/p: : 1/? 7 P@p  9QWH-   9Q˜WH- M0   РK-@ PP P p` t  0!3/  PU UP  ktv8QW0 0 /H- M0  Р0 0 /M-M` PPp@  @ pTKP/P/H-   (7QWM-M@(P K P2   ( $p P -Q P` ` 2/`V(-K褺H-$`P@-P pp 2/pW-H-` p0P 0   P(P!000 00$0(40@ P@T( 0( 0S,(0d< !    `$  zطO-M P`4pK,K ( , $ 0 4 03/@%㪀ᦀ尀嬀嶀岀帀开夏d 03/ 2/h1/,( Q `2( 0S 03/,( QQ 1/,DQ`J l 2/p @@$P8 `P Q  0@= 0 hP Op@P P@,P ( K_]@rq)Zp P 0S/ R/@o/  R/0S 0S0S0S/H- ^^ \ 0S0S0S\ K-`V PP @Pp@p WX P`VH-@pQP`U  uPq PP 1S  RP  ApU`(  0!3/A4mO-MR]`&Vp p@ W*R 0S @QU @TPp 03/. V*#"Q P 1S  RQ P  1S  R 2/p`GWKQ P/0S \/00 S/!R/O-MP @ 1/Up 0 P* Q P 1 S  RwPs p` R  Y( Y%op0 SR R R[ `   X' Y:QPQ Q  X!  0 (  @PD0o" 3/  TP P0X  0   0Z 0  3/pYnK  *QWO-MP`@YP P@<D 1/0tY``P P plp0pV 0`P@ 0 S1@PT T 0T0 q`"0T  &0` `Tp0G00 `,0@ PU& ( Y$ YFq @ < @@,t0S@0$t@s`p^ps00 `"! V"""$"H pP@t0S@t0@'0#0#1#2#4#8@0p$ ` V,p PU (0 @ @T$P$0 p 7/K$K\ 000 Q/pL- QR R( RB\ @0 @P@T``PP0Q 0@0 @C0@00TppK-$0S $0S \ڂ0ダ@Pp0ᶐS`Y `V0 ` `` R``P`%0000L-!@rQ$@  A $ 2/P $L-@$A $ 2/P$O-M@qX(@PU(Q< `V ` ,p( p)`<Pv  Q^Pp m  0q0WWSMSK^W^SG RWP@ 0 ^Vp `RVpDVpV0pS'P%  R! RP0 00- p`W !`p WWR R^W^R0SYt$$ H2/P $KKKO-MPU 0 p0`S0 RR P Z`@A P0HTPPPU P pAW X Z JQ 1 A@AQP0Cpʉ`V@ T^VppJ10Q࠱S0 Z09 J XQ4 0Qq0qq0, 0q0J @CP@T0`p0``0Q1@Qp0qq0 0q01C@AQ P0PpG@0@00 A RnK0H-!@rQ@4@  PA $ 2/P 0H @0@0O- M1@sQ@|$ @ZxpaV`Vyp WZkPJA`p`$ p$ 2/P $UU XN X@T w` sPZP4$$ 2/P( $ P  110傀 Mp0!3/PZ$`K?K?@KEpL-@p"Q#@ P-$ @`A $ 2/P P$P$ 2/P $P PppPPpL-M@8P@ K@KO-\MP@`P(0$ ,`V`$$ (0p`/ РM-`M`(p@P/P, KM `03/p 2/ 2/ HpU Pp KM/$  0CL $$ P$ 2/0p`@ 6/n d03/PP0(/,p7/ (03/  H03/ 2/  03/K <03/PH  X$O-\M(@80,0 <S B, 4( P`0!pW W10p 0b0008P0S \A$o <0C(@0R( 8 Zo KPڈ$PC`8$0P<,`V`<p PW,P  @(P, @}#p,P @P(0Q@DttTQP(80p P 04 p87/(0PPP  d04 3/P,p o`PTg0(004 ( @允X P4 4  pၠ, H# 0! 3/00D @Pp,*d# 0! 3/00pPE@(PP4 $K0@4p  P $P  PpP Q0@@ pk/ 2/ Jo Qc8@QP\ P`^P ZJpYEPP>  Z6P PZ0   4,(R$S x 8@Q<,P8(,40@L  "0!QP/T @! IS fpb  p. Q P QpM  pQ 0# W 0 " 0# Q 'p0 "0# J? 0@!*0 "A.XP p  pQ ! " ! ")  ( !n-P p  pQ0!9 " A!Z " _!_ "a!z wP p  pQ/ " :!@ " [!^ " `!` "{ /$ @{! sWO-DM0 Rop 凁XP6 X \ Q XXP P^X^PX\\ p xAlPpP 0p`,vAl Pp P P0P0 0KK㟊[Q ,P 0PpEl ` ,P 0Ppl `Pu UAlP PpPW 00 0KK㹉[P Z?0p,@lP,Z90@0F$0A(PpU W!P  Qp぀`! 0!3/$0(,@ QpZ@,plP`\fB0 0KK_p[P W00pp@lW+0@PU P  QP぀`p  0!3/@ QPpW@pl o ppWK<(@ 0 R R /H-   4P6WK-P,@P5(`Q0Q,pW 3p/  ppPQ  RP$@P$@M-PpU @a@dT1/P $PpU,1/Ppg`K-$`@PP  A0@ぐ p0  0!3/A0@<K-$`@PP  A4@ぐ p0  0!3/A4@O-M PU PP/ KOw`$pW AdX1/P $p`W, 1/P`f@P 2/p KO/PPPPHp KOO-M$P@pWQ  P DP 倀KPP@@$@ -,`NPKRP HPKLP BPKFP @P `:`@`D`H` rdLUP@P`p/M-P@`u H 0p/oS2 7/PUpp1/P WPWpPpWPpp@oO-MPpQ 7Z.p*p4p0p:p6p/4PH0 P /$  03/@KM-0` @P0 p00  00q00 0p pppp4,D.pL-`0P0@hD P 0Q"P PPPP 0$@(, p-pL-@P pP I`E  `pH-Mp@(pPp pppp p$pP `1 0/pW' 0$6+ 07/ 0/0`/ @0@KO-4MP`p@P  ` @P @ P` V J  `  `ZP@T   @`Z0P" `Z000p@W 0P `Z 000p@W @ `0 V0   0, `QK Q QB P?Z  @  D P @@q @ `   QwK X @ H ` KM-`9 P(@$@@ @pW  p pP  Q@`0  0!3/`@QXM-MPQ' @ 00$p@P  AK` P0  0!3/`AKO-,M(p$ W  0P@p/? @0P(!U?@"`  Y  u0 0p0 $   @xp07 S1 / $  @ 0$pP  1@@ 0D`! 0!3/`@@@pu P1   7;  $ @ @0$PP  A0p  `$! 0!3/pAJ@z yQ/ ? $07; @e @$PP  Ap `T  0!3/`ppA@X;K@߉O-M0T` p `v `V` @t @T @8`@ p0l封  p$ (`,@04 0iK4#O-MPP < `Pa  !     $T0 pP@\఑  p ?`;  $`(弒$p P  倡ꂀ `  0!3/@倡 < `P   !     $@, 8 (`,PKp"X"\܉ O-$M@0Tt  @T@ `x X 08@ p0x少 $  p40`? 0 `K K-M `VH 0Tp @/ 7;0 P  0  0$`PP  QKp f@4  0!3/QKxىK-M$`VH 0Tp F@B+ 6;0 P  0=  0i$`PP  QKp @4  0!3/QK0؉pL-M0T@ ` 0  Kp/O-@: #$@ @(PR  0^  0  0{  0 K PE~p  0!3/ p  @  0@p  `QPPP $"P P=0܉$ԉhP/KO- M@pP QpQ.Q+`@Q 0PC  qだpp  0!3/P`Vp@W#P  q@KP`@  0!3/`Pq@K҉щ0H-@L1/PL1/ Q30H-M`@L1/PL1/P@UI `UaTE:upQPPP0 xQ P Q @ PPPQtpQP@@0 xQ PA@@P@AEKO-$MpW|@`V P1/`P `@Vi @L1/ @Y QP1/P L1/ P I PI 05,PI0l!  U`! Rv@B 煸PQ@ 0  0    0 s@U`@V@K\ΉO-4MP0`((` L1/ 0pW  R`VZʷ`E( AP1/P L1/ PU ` ` pAP1/P L1/@ Pv尀W_ P $P,TxalPpP$ $ K0KKdw[Q P $p!@lP$plwalPp$PPp$p X# $ K0KK9w[$PQ P$p!@lppX xP$pX splpXlp(`ZPU~  `V Vt`$P L1/@$ P@UZ*p~`  tp `g`UTa!P( L1/p PP@ I@ A  P  P2pl! 0!3/pPP$@ Qp  1U1p `@1!P@%P  p`|  0!3/@%(`$`Y``K4ԉ(ԉljȉO-M@P0 H@ QP1/P L1/Q`V ? 7 @o QP1/P L1/Q  Q ? 7 @oZZY ` ~Pz JP) L1/ pP  qp@ \`! 0!3/`@@qp Z E`! P8P) 0 Z+  1Z1 @ @ p  0!3/p@ @@ a Y5K͉Pʼn4ĉO- M@P`VpP n`V  0KO/00@T@0A@@@  @ @ pV AV@$p(@B@2`  03/ p$P  q`P @T  0!3/0P`q@ VK\‰L-MP@o" KO-TM QJ @p`1/P$ $K2/$0U08,`(p6 P; s9$ TX ʘP  P$  Q IP5Q> tD @D, 0`  03/Y`$`\Y4 PQtP Y0`t0" Y$TXʘ$PY PQtP0$ `?V000004 8P<00`$@`1/@| pడ  P 0 $(ἢo89pp40P P,4@ PP <@ ! 80   $`(U   <t H0 1 0 08000 $@(0,0( 0 3/@U P <QP ! 8   $@(,  pp <$@ p4T0 1 0 08000 $P(@,p@(@ Q, 8P 0 $,KE 0@ 4 P 0 0  4K8 4,P $p,P(P  Q $p4P0P'  Q5だ ۿ@$ 0!3/Q$p0P4P0P'  QKぐ ṿ@h$ 0!3/Q$p4P,P(P  Q(だ ᗿ@# 0!3/Qぐ Ⴟ@# 0!3/Q 4PP <kD0 1 0 080000 $``0(,0KT`4p0p8P0$@F밑`  P :@6,$@Q(弒 (  0 3/$PP  Q- @ ( 0 3/$PP(  QN pၠ @P! 0!3/0pQ$@P  !+ pၠ ܾ@  0!3/0pQ぀ žPp  0!3/  $@4P P,@T]`$M|طP@`HTL<ĺ蹉O- M RV0!lL ,ㄾP8  !`0P8 1 0dR ;> ,eP !A ,XP  !    $( 50P KO ,:P !0R0 ,"P !    $(K00PX డ ` p $p(弢p nn@޽p0@ ӽ` <Ͻ 8 p"尡     $(, 04 $"  $  尡᩽@ 㥽(@,@< 噽p 尡 8 A,$`P  qꁐ z@(! 0!3/q ,h` ఑  $pP  a<぀ I@l  0!3/a'<8  XPD$ȱisPkVO-TM0T@ 0` w 0 `$Pq Q q Q $P(0p@ A@@@ P@ @ܼ`ؼpIo$`P(@B `(U( $` o 0K! p 8㴼0A@@@ p$@ @<㤼0 A@@@ $@ @8( (`,0@4@$ ,0 0K4,AY ` p<}0 A@@@ $p@ @88k0A@@@ `$@ @` ((`,0@4@$ 00G,$p S  僑@ だ >`T  0!3/ @傑@`PUeKP,جO- M@R0s wQp P` 1@0 Q @  偁P@p0! 0!3/0@pP倁YWPP ׻pӻ  `p` P »p  0!3/V   (1pVPK KOw0誉pL-`0P8@ᘻ0 P ` P1  0 04`000(0 P$@@p/O-M@P Q p <`j0 1000 $` 0 088VT 0!   p$0 (P,04KXO-$M`P@VV  0 0 B/o"   R` p <  01000 $ 0 088 x0 (`,04  03/k  K<O- M`  @<@ɺ 0p0Tᰑ $``( 8`, 03/@ <㧺 少 R p 8`,K,O- M`  P<p P刺 0@0Uᰑ $pp( 8p, 03/P <f 少 R 8p@ $P(@,K(pL-P@ Q P` 03/ `V P `@ 03/ `FPpO- -*@MP@8  \  d    0P  P  P   P!  0 !9P,  ;xPp BP  倁ぐᎹ`D( 0!3/@倁PU:p !BP  倁Pf`' 0!3/`P倁pW㴀:P  ,Pp !BP  倁P3`& 0!3/`P倁pW㴀:P  { ]|P  BP  倁p`& 0!3/倁PU:K`P% 0!3/`QPҸ`x% 0!3/`P/ P^  : !@P᮸`$ 0!3/`P  PN  ]`፸P$ 0!3/`09Pw`$$ 0!3/`P P9  H`WP# 0!3/`:PC`H# 0!3/`P  P(  7P"`" 0!3/`P )(pP/  qKP`T" 0!3/`P' )(pP    ! @K`շP! 0!3/`qK`ῷP pW  ٳpճ $p`pP@ 0Qʄ $ P  0Q R (0$$KC@TQY@ 㰀 PRPN$ ($"E@xQlPpPG $E$ $0K$K!g$[Q P3$p@l2P/ T1p$`$PKP$@ R!@PT P   $ @T`@Z3Y3pl$T @$`$PKpT PQ PP    T (p0pYp W`$P P   KP K@YP $  p P0A7/T PKH- M / @ РH- M  РK-M-P K(PP*  @尲   ( $p @ -Q `@ @ 2/@T(- ? K̇H- M / @ Р $0/O- M`  P@PzpQ   A^X@X P@U / @zIK R3B/H-M@( P P5   -KPU P `  `PP `   pp `VKKH  ϖ=FP}Y $0/O-,M0t@  ֱ`ұP 6+!P  `DZ`ñ 7+!P0  `幱P` a``` pA` `婱㥱C$(`b`v `V` z Z 0 s @<$`( v0  Ⰱ R 0480R$pP  們@ I`  0!3/`@們$`P   !p '@H  0!3/KȇŇ|  ( R 0H- QP@P;P@0 Q//M-p@?Q)`Q" ?Q P! Q00S ? R R   @O-M@p?Q Q ?Q-no!v @PA_O1@S5 0!?P R{     /OpP `p` 00S 0˶@ V, O& # `p`p P 00S 0᭶@ U O 8 2/@ `/OPp` 00S 0ᄶ@ U O  8 2/@~pO@ p  00S 0_ Y O 8 2/ P/O@Pp  00S 09 W O  8 2/ P/O@Pp  00S 0 W O  8 2/O`  @Pp` R 8Up `/OPp` 00S 0ݵ@ U O  8 2/@ O`  @Pp`  00S 0ᴵ W  8 2/W P[PWQSp P P   R P@P:=  @` P`  00S 0[ ZO  8 2/pWdK   R////////H-   }9PV/M-M@$P0C p ` p6/UKH- $0$$ 00 0z똹8PVH- M$ @a AP2/PpQ` 0 `(P)P $ ` Qp" AQ ` A 0p2/P` pVP 0 `  `PG@!N@CW@f V@c  P; PH NFP@A@Y   00 V 0@@FQT a6 !0 QPN@QI@Y!RV A 0 # ^BQ @ `G 0@@`0 P @NP G 0  ` $`l P @AQ0 (p   `V @0 P$  `$@ (@p `VKD 0$ KKO-0-`P Q& VP J@ 00ZQC AV3 pFD 2/p@* T1`* T+U) F@  00VQ Ap V  7/pYP J4Y T  FKKO-M@ T `p @@ P1PU* Y*P&Pn*Gq0A.|PP Ppa*p pVQ P  FUq 0 PU Y*P)&`IFP9*G0Aq.wPP P,* ᯘFpQV P rF U ὘0 @ p pp`I pFFT:R KO KFO-MP`  `JJ   `J@P(Q<ڠ/0!`9/Q !Pp 0 2/pU  2/p8G 2/ p2/Wp9  2/p-  p  2/p    2/pk   2/P pTm 2/pGp0 pY* V` I  2/PpG 2/pZ Y  2/pP P   `p  PSW+ JIQ"   2/p  2/pPW p G2/ppZ W `G` 2/ppH 2/PV:P W `Pd PJ2/pr K  KO` 2/ Jp2/WKpW  2/pM K 0JPNK` 0PCpJ 2/p/   2/p%   2/p  2/p  p  2/pK  KK-`P@ 2/ p2/Wpp)  2/pp  p  2/pp  p p  2/p  2/pp  2/ppp O- M@ `P2/ p 2/Wp%  2/p  p  2/p  P% p2/p Pu  2/PEP PPKO-MA`PP,L @@ 2/p 0 0p 2/ P@2/Tbp   2/p {@ 2/p @2/WVp   `0@ p  0` @@2/p|  2/pr   2/ph   2/p^ Y p!  2/p  pK  2/p8 3 P* p @2/pP u  2/PEP Y PPPK@oR 0/0 /0/0/0/0/0 /0$/0(/0,/00/04/////////////////////////////////////////////////K-Mpp@pPP `$ 2/p v WpV`p`PUKK-Mpp@pPP `$ 2/p v WpV`p`PUKH-  $ 2/0H-M$@$0 3/ q 0PR K0H-  $ 2/@o/@o/pL-PP`A1/P 1/Q`VpppH-`@p@PQ1/P 1/pGP@pL-P@P `1/P `Vp@ppL-P@P `1/P `Vp@pQ Q ////M-P`@ 㚳Qdp ㏳ 03/pW }[POM-P`@ nQdp c 03/pW Q[P%OpL-MP`@@V  ; @6Kp VO- M@P  ( #PP$`p W   凑Y  XmpW( KXXP%Vd7PH- Q $0<P\`LL8 0( Ʋ[|[[[t[k[H-MP`@ 㴲`VpP`V ࣲK=PPK-P `P 03/  Qdp@ } 03/ @ pW ln[MPOH-`@p ] W q  Jt t0 lPSPS < 03/ (1[P[yPo[j[X[OpL-PH`@  03/ p[)OpL-PH`@  03/ p}[ſOpL-`@P 0 S ` `0 S ױ 03/( ̱pOX[Gz[6VsWOL-@0 ༱ ൱][OH- M%KK 㨱 РL-M@0@  03/K~M-@`1/ 1/ PpPa1/U P 1/UpP PWwM-@p pPPa1/ HQ! 1/ p HQ! W`wH-   ܁qOsUV//H-   ΁9O;UV///H-   ཱྀOTV/// /\xH- $0$$ 00 0㣁4xOTV///H-   IOKTV//H-   OTV/ /H-   rOSV0 0//// /H-  $ 2/H-   M5O7SV//H-   ?ORV//H-   1ORV//H-   #ORV/ /H-   UOWRV/ // 00 0  /y/O-M`PT Pᢠlp0尀ᰐYF y A PpP  Y8 0 jOQl Pp!  @ 0Y" xAPpPY  0FOQl Pp!@YpP` W:KKK-M@ ` 0pP5/70XP  p 5/G 0P5/6+ 0Tp7/ 2/KH- M0000``P f`Q`0P @V  Q"`X`X  BpPE` @P K `X O-M00@`P P  P €f  p  R  巐`P@ ?@ 04/@p DQKM-M@pP`g?@ 0 P 4/Pp DQKH-@l PIPDA/0H-@ V  # 0$(,05100H-M0@$ ^X\PUP\P5P  ; 5$0K0Q:5Q 5  0uP$K0 0 0Q~PU  0$0K0? 6 QSU ?7 Q@0 $  $~%J[IOFXwXOU[L-0$ @R \  Q?+6 R\ ?+7 R, @L-@5P 0500P $ 0 0}IODXuX 0$ R000*$ A$%1/$@YQ^ hlllhhhhllhhlllllllllllllllhlllllllllllllllllllllllllllhhhhllllllllllllllllllllllllllllhhh//pL-@P5`Py5P pP1/P L1/P1`pO-DMP @`,(`F``` `$`(`P`@ `a,(<`8`4`0`  %5Q pp $AYPr h$ @ @P@ \$P0U RZ @Z |  @儗P& :PPQ@1/P <1/`<1/Q 2J@@ P@P@T9@1/P4 <1/<1/Q* %@ `Y0`DHVpah h h h h h h h $h h h h h h h h h h h h h h h h h h h h h h h h h h h th dh h h h h h h h d$ ) ۖPP?k6 VR, `,$  ǖP  pPPQ@1/P <1/`<1/Q ``?{7 Wl|ep@ux@eQ $  5QP  , i  |Px 0 .*Gh `$  QhpP @PTY `T]Q  5P \P_ 5QD1/ $$ 5QP" $P  R R P 1P $  .R/ \0 $ P R !(  $ D/o"  H `pp Qpఀ\ P?;6 SR R P\h $`Q R3 0P3$ $ $ QO \4QH $  > 5Pz $ $P0@@ T: '@P1@P 0`@ V: '`P1@P pX$ S$ $ P $PQ    Q>  9$ 29P $$   $0 SP PpP\ P?;6 SR ?+7 R@ $ ` P   0x `$  Q"Q @' 0!3/@@   P   uE$P0   xpP`V?{6 WP @p@?{7 W|Ep@uxP0UfP 0V^00VZ?+6 RWPJ J0P  / @ A BR :N \[Q?{6 WR  $L?+7 R, @%(P$ u93Pw P oP u ##t#L#X#?7 Q@09S @xP0@D0P  q0@@OPP0P g0@@t >P*P +PQ`?P {P$ @ P $` PUQP` P $`A0?P ;0  PP  ?;7 S_<%0@58PX a 4P $35PP$ P5  5PP P5  0P $KP 5PPx P5  P5P 5  0P~ $P5PP  P5  5PP P5  5P 5 % 5P 5  ` 5  8P  F`BP#5P P5  z5PP P5  n5PPu5PPn 5 P [5Pl 5  |<8 80 0w[.[[|[[t[[Ob-X]XG[z[&[d[[[[O-M R? P8 Q8Q2   0B` p@ DR W PUp TPq Z  0 !S5P Kd 05 P $K 0 0sw붪[O+X \XpL-@P(`$PVP P u`@pk` p K-@P Q&  0B p` FR W)  PUp V P  7p3 pH `pP P  a5PP P぀@  0!3/ad 05  PP$  0 0v[,AO(X{YXO- M3,P (Y  ӑ@Z ˑ@ ` P5@PP㼑p P@ @P  Pၠ ᥑ@d  0!3/P@p ` PK tH-P@1/P 1/P Q  ppP d 0 X````0`  p  ` H ,JH-@P`PPQ@1/P <1/p<1/Q H H-PpH`z A R0@T@ A6 T Q H O- M@ 6P?PU$pQ_ R 00 `I: @9RO!4P4444444444444444444444444444444444444444444D444D44444DP$mQ?{6 WRP  P!PX -PTP pPP-PhPMiP mP sP] ``` p5`P `5  $p0WQE  PEP$ ?;7 SX<%0@QP$np)P :PP]pX` 5`Px `5   P ` =UP$6H^?k6 VQ ```? 7 P e@P=U Q p\#p\ ^? 6 PQ  5`P\ `5  :? 7 P @p!W P$|P P4P(P"5`PW `5  5`PKX `5 0nPC $8U( p5P `,PpPN`(@,PG   $(  K$ 0 0tU[[=OXwNXm[[8ܝ[O-$M@b^P[  P Ѐ0P  p5]P2  0 5P-P&3P ]P  0 5P PJ pP0  qp?P ]p `VP  apぐᫎ$ 0! 3/ap pWぐᓎ`4$ 0!3/@qpP  pu`# 0!3/ p-Z P  倡ぐQ`D# 0!3/`‡0PC5pP 05  p%P $x 5  P1 `P  a`&0 5 % 0Pw $pk぀p! 0!3/a`P  `؍ph! 0!3/p`-0P  㾍p!  $  QQ `ᤍ@  0!3/P @  K,( (0 0jr"[,[ObXGX$@M[p/H-@`Q  PppU  `P\ PP  @pJ`,  0 3/@M-@$`0VQ  pv p P,$PFg0pG0@ P pW\0@ P:(W3P ,W $PPP0DPpP?;6 SQ ?+7 R, @%(p R/ R 0S0S ///pL-P@`0@D0P 0@@OP`0P0@@pO-MQ$@`pPH0@ Y: 'P 1@P PrUpPp P$P0KO- M@{P)$ Ip 0@ P: 'Qg1AQdPRU`0@ P: 1@Q'@pP}PO`U$0P@ UI: 'PPC1@P@0`@ V: '`P71@P40p@ W: 'pP+1@P(r0@ Z: 'P1@PRd` p ? 6 P\P$pPW~ R 0`$ P0BK0Q?[6 UR   ?;7 S<%0@uPQ$"$0@ Y: 'P:1@P70@ Z: 'P.1@P+0@ X: 'P"1@P0P@ U: 'PP1@P 0p ?7 Q, @ B$P0G$P00H-P@Q Q 0H0L-4@Q 3Q4PK-@<P%`hP# pV=`V:  R 0CPBUQ 0PURpp5pP pT 05  pP$!1 0o`p pPU  PPPp  ap぀ڊ@4  0!3/a膌[HOn X=XO- MP@$I0p@ WRPgV`fVF`P@V`0p@ W:,P }P<10@ Q:a,P}P0p@ W`P@X偀0p@ W:0@ Q:}PP` P$ P0KH-P@Q% u?@Qu t@`p7UP8 0  `0 HuH? u 6 PQ GQu 7 PqW  `pPQ uH+O-Mp@Q P pd P$ pPWۉL"`G  d  oPp ɉ`  p `PVQ6P  R B  i䥉PA1/Yp 1/ q=X 1/ p !pKP`PVQ)P  R B p1/P pl1/P 1/PpX   +nlOVK-@Q d P - 0 qppp0  p PQX/ X& `XC`PP U (0 3/P`X   PM-M@ڈP` `pp\W uP >P, p\W  W7P >W" W7P59P5P 5  0P $5P PK4 5   0 0`mu[O:X3XN[O-M$P@`(pEV7 (V \V" [V (`V& \V ]V?PP `<V`!V=V V ?`V4p`V3,p$P0KOotK-@!PQ *  e?@ Ue*`PS p0A`V*@pP`!pa#V  0EpWj*LPp!pq#W 0P0ᵐ`PQ Ap@qGRL0hP `PQ p@A`q`GS@ $ U?@*P0E`V#*pLP`!pa#V ᜇ( Ა U p@E`u`GS@0 (0H-\0\ ^ @@DPNUR @PU 0^0O- M`PQKP @`QP`  IP1 `O` p 00S0pᔍ pZ O 803/`@PT 0 0k뽚OrW-XM-`P0@ P: p1@Q'Pp@BT80@ P: 1@Q'@pp@H-M@$P0`EHV|$$$$$$$4$D P0P0P@OP`0P0P@P P P$ PO0S P`P EPB P P P$`0P@ U: 'PP>1@P;}0p@ W: 'pP21@P/qRw  $0 S\x x_ Pe f?4-U P uPW 5PPS P5  @F$P09 xP= 5PP9` P5  &P` -/ @ A BR$ _V0F\P Q$P5PP P5  0㮾PZ $K\?+6 RS PU?{6 W\ p ?;7 S<%0@58`pp?7 Qu@0P\ UU?6 Q\ ?+7 R, @:PP 0 07j3w[OW'XLv[v[O-MP@ \U  $pPW X  ` P5P K `` ' Y%? 6 P"X  05  P$Kzఠ? 7 P @` D`F3VOa44444444444444444444444444444444444444444444X `^> Y<? 6 P9X0 0`^0P^Pp$5P) 05 ( 㐽P $tp p0 0li?+7 R@ ` v 0V$$Kr[Ոr[OjW#XpL-8MP` @  0$(,0`51@5P, Z5P'P1/P L1/P15`V@(`P1/1Qo2 `5`oKp00 01000 0$0(0/0H-@PQ 2A0Q/ !*H-qP@W p`PH 0  D0 HVUQ HH҈/K-@pɃP ă`ppB P P【ᤃpd  0!3/ @  L K&шpʈpL-@Q  ``P s 0 ,PPPP0  ` pLphЈK-PP- `pV  R`N `P @ ぐ@ :p0  0!3/@ȈpL- `  ǷPሟ A R 0@T@ A6 T Q`p0H-@P 0HpL-@`PPUP P P܂P( $rp ΈM-P`@U  ĂP PpW P  ぀᫂`<  0!3/@pPƈL-@l H-PQ.p@ QKW%*jv`P N< 1/_vP p`W d 0@3/P Wv`@`@@ňňň:X0H-P@ PP ;v0L-@ PP +v  /L-@P P vL-@P P v0H-P0@ 03/ 0ÈL-@ 03/ È0H-M@@[P l PhPfU P 1/K0PЅ0H-M@@[P l PhPfU P 1/K0谖xPЅO-LMpUUE33CG @ @ A$ou,lu(0@4R`0P[P 0@@f@T P 1/Y>[P 0@@nf@T P 1/8  ,[P 0@@Nf@T P 1/D( Vt@ 0p `0p``Pk @0 0 $0P ,`(@`@pPDPaTAKD`υ| PFF쿈M-bS P``p@ 0,($ @ADq @$p`04P00 R P 0   00S  PQ P"H-@ p`P  P00@PR P1N;AP30UP RPQP 4Tt 4P X3QZ 3(Z[\Z[Z[Z[O-M@ p`P%PE @@P0 xP0 zY,rW) 1/P L1/P  Q P    qWz XrWp @PP@ P KO-M pQ @ r^`@ P9*Q aV \\\\\\\\\\\\\4\\ PP @pP:PV VV@P||||||||||||||||||||||||||||||||||||||||||||||||||||||||P3 PP.  P& P$$$$$$$$$$$$$$$$$$$$$$$$$$@T4 K  kapOUO-MP`Q     @ (Kj@P wP yX  P!R`L1/p P  B@ R pᚬbL1/ ppPpᛅ@%P Q'@ UUr  pT `P ]H`PP`(KP @P 2K KOꄭO-M`|xtplh``@Q4@C@pW  2/pPHP0 PP  `X(X,PP0 PPPPP P$PP6/`@PP 1/P 1/X`H `PpH\@T   @D  8(K< |P vP 1xX  PP"C`L1/p P  B0`` R. 0`pᬫsL1/ @@P@᭄P%` Q:P VVᅎ  U pP pGpPPp(K2<8@ D@P GHPPP P0PP&0\@P@3/`@P K  `b4bઈ`X5S[O-M@Q- `pP& BP! uP }w  @@P  K  KO  0 0}_覈hOWO[O-MlPhd`\XPPh@Q4@PB@pW 8 2/p@8@. t@p@ `p(X,@@0 @@@@@ @$@@6/`tt@P 1/ppP 1/8H`@p8LD `@p? BP:pfuP pv  焪@@P pV8P@P _0@p0L`p`3/PP  K B/Pat4a($ $0 0^뜥 {pWN[AfOWfL[O- M8! R>  p0@6 B$Q1 `09P P i B Q`ᢲ@P@P K KO  0 0t^dOWJ[O-M, 0 4 8 < @ H HK< QB@pW  2/< pP@P1 $P (P  `(KL(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/< @P`Hp@T@L p`P@S B4QN4`9 `8@@P  D0 Q0` <48 @@AQ 7@PHP @0Hp0T`p`3/HP K !H y`< ]`($ $0 0]|wPW2J[aOvWG[L-@D  R  Q BP LE LꈞO-tMd`\XTPHHQ`A@`V  2/`P0P. $P (P  p(KT(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< Q P DP0P8P 08p0D`p`3/HP K K/H__sWF[L-@0  RP wC@ LO-tMd`\XTPHHQZA@`VP  2/`P0P. $P (P A p(K<(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@

`  P`P 00S0p!v pZO@  803/pO 0PD P P DPL P`@`  00S 0u pOX  8 2/pO Pw L +PP `P` @ 00S 0u pOT  8 2/@Ґpΐ` @pOOP p 00S0@u @OOX  803/@OO p`Pp 00S 0qu @OOV  8 2/    0 %@$`Pp0y `@P &K@P4 p PpP` 00S0`.u `X O 803/ 0 P@p$`P KO}?OfW&[O-MP|xtphhP@Q8@8H@pW   2/p`P`0 T` X`  PXKؗ(X ,`` 0 ````` `$``5/@TPT` P 1/XX P 1/P`@XpPdPP\ `@L P&6 0S p7 P:?pWH`I hK{ (Q(<@Q$Q lKP  @lpL@ X lH DP @@ <@ 8 4@ 0 , ( XKgTP1D@2XK  0mKpmpK!^@T`P P@`XKP p `QAo`rp0 4p@P%pDPpP`  00S 0t @VOO   8 2/@OOD0HT P P TP@L pPP ` 00S 0s @OOV   8 2/@OO4Px m[L DP@P PpP ` 00S 0s @OOV   8 2/0@ỎP㷎`D@POOp P 00S0@s @OOZ  803/@OODP`pP 00S 0Zs @OOV   8 2/D @P 0 `hK<@dHL@P PPXP  0Xp0dPpP3/hP>KXKP, @P`P`P@  00S 0s T O  8 2/ @P` .hT8KTuTKW[I7OWX[O-4M  R# ` @p2 P* 0\P@ P 劙K KO  0 0QW[a*OW[L000S/H-  0 0O4g)OW[O-tMd`\XTPHHQYA@`V   2/`0. P$P (P  p(KT(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<@!PP8P 08p0D`p`3/HAP K !HQ,R($ $0 06Of@<pW['OWh[H- M100SeIQ_ b `  ^+b j a + 0Q0?G& Q24^3^:0:3@< `@P3qÐ R4^ 3N0 @P0qÐ  0S0S 0 0N0QQL Р РH84 40 0N Ad%OW:N%&OڈW[O-M`, 0 4 8 < @ H HK`@Q4@HC@pW 0 2/p@. $ (  P(K袟(X , 0  $5/@$P$ P 1/(( P 1/@P@Hp@TPLI  Rz <8  | z  x+b j a + 0;RpG& Rz2dWcW:`j3A31 a40CS60r0ÓRdW 3G1 AQ0rÑ) 0S0S!1 0M0 RR PL@HP T0Hp0T`p`3/HP K !H P<4P@< <0 0MAPb7$W ["OʄWvN"OW [O-M@# R P I  R      +b j a + 0;RpG& Rz2dWcW:`j3A31 a40CS60r0ÓRdW 3G1 AQ0rÑ) 0S0SHD"D2 0DM00SS 4 RQ $p(p ,p $p fPJ $` 鷍,PK@ۆK7@W(pW pGvT(@ D 2/,(Q A@GdwT gpgA,w@Dpe,@P `T ( P @vT, ``@ (@ [@  P A /K KO40 00 0LA^ O€WnN OʂW[O-MH|xppxQ>dE@pW L 2/p`X`. `` P(X,``0 ````` `$``5/@P`P 1/P 1/Xh@`pXlPd  P@LHI  R TP     +b j a + 0;RpG& Rz2dWcW:`j3A31 a40CS60r0ÓRdW 3G1 AQ0rÑ) 0S0S"2 0K00SS 4 RT H@@ (@ ,@ @DP$@ :ePL 8,K<川p4ۖKP T(@ T @DuZ( D 2/,(Q A @FdvPT f7`fA,vP@D`td,PH `Z (LP< PD@ @muZ,@`LP`D@H LP LP<84D@ ( Z84H A @P ֓XP`P 0`p@0lPPPp3/pP K "! pNCND@ @0 0MK AZ80`W6[9OzWNO}W[O-M@. R$@ P 080<  0M00S0 \ X0    +b j a / 0{R`oG0* Rj2TVSVP!:0PZ340C7s 0c3tpGW57prPp×RTVP 340Fs 0CS0pr0Ó:) pWpW/? 0J0pWW G00S0TP0 n l  j+b j a ) 0;QpG$ Qz2dWcW:`PZ3d`F36 `f6dpFW57PRdW 3dpG7 pGW0pqp× 4 R' 04c |pH@! $0p t %y $|` 1/ $B!@,p `@Q @@P@@AP R/ P @t$PzPO $  㬙P p`` @ 00S 0k T  8 2/` p` @ 00S 0ok T  8 2/s` p`@  00S 0Nk T  8 2/HP` p#`# @ 00S 0%k T  8 2/HP` p'`' @ 00S 0k T  8 2/$,` 0 qQq +$  0@ p1/@ P 0Q7 `P3  @p P*, @ P  AP P)@@ Q @|@  p `P ݑ BPX@tx@L@Q*P&  tP PP PP PP|P @`P뢀@PEV(P(PDlPhPpPPQUm눀P`lppd`W*$ P thd$ KST@  Pᘐ`llt8x$ `0lppW@`P `Pllh @JPR* AA!.rPP PF*[WpJaA`Z  DYOl`hpp@ dWphlA(@PLT7@  P  B`Y1@&|ULLp;\` P @` Ap@T @`P]lpP*@ll(h `@FP* AA!.rPP P* VpFA V  hYOD Vac b0L@l`pd@V*$ P ነhd$ KSp  Pᮏ@llP{UL}@$QQ I ,$(PQ  P@QO V`@`(PT@`,P  "PJ^ t|w@Q `@tvTtv@ $ L `PP p 00S 0h W  8 2/LP `Pp  00S 0h W  8 2/LPp `P  00S 0h (W【  8 2/L (   p p"OxWZH `@PP p 00S 0Sh Y  8 2/LLH WPP `#P# p 00S 0/h W  8 2/PH QLLP `p'P'  00S 0 h W  8 2/$ AoQ,LT+P/@@DQ L U@!} `p 0 R 0gW. O ( % H p@`` 0 R 0gZ O  8 2/t`uLU@u`H@`Op` 0 R 0sgZO   8 2/@@PTz( ` `lhpDW, ALP P  00S 0@g X O  8 2/Dp`@POP! LP `@Pp  00S 0g W  8 2/LP ` @ Pp  00S 0f W  8 2/L$ 0  0@hP lbTt$Pt4 ] 2vp $0 r$v1/ $B!@Q ᔌ`d@@`P AP`V`@sPL $  /@`p`pP  00S 0e UO   8 2/`p` P 00S 0d U   8 2/`p`P  00S 0d U   8 2/pP`p#`# P 00S 0d U   8 2/pP`p'`' P 00S 0d U   8 2/$ q 0LQ q +$  0-D@ @0 0s>0, ,0 0k>NGWRNNGWNNfGWZO-M@(# R 00 p I  R       +b j a + 0;R`oG& Rj2TVSV:PZ3@30 `40CS50r0ÓRTV 3F0 @P0rÐ ) 0S0S!1 0=0 RR H h:Wb1/PPP @P .K@ 0Pl 0Yp$P `P}u$PP,P 0L@m KOTP P0 0=LH H0 0=Al!N:DWNN~EWZeNDWZO-M`|xtplh``8QD@pW  2/pPHP0 PP `@(X ,PP 0 PPPPP P$PP6/@`PP 1/P 1/HX@PpH\` `T P < pMQD@    +b j a / 0+Q0?G* Q:@2tSsSp!:pz3@2 `$ BR7 qp ÒRtSp 3C @P qÐ  R R"2 0<0QQ b  V\C1/P`P<@P pHPPP 0Pp0\PpP3/`P,K4pp 0`Kk 0oP @`>t`PP Kk4p )!8`"?8O?d` `0 0Y<\X X0 0Q< AsWZiN?WʠNN@WZIN>WZO-M@& RW  pI  RI      +b j a + 0;R`oG& Rj2TVSV:PZ3@30 `40CS50r0ÓRTV 3F0 @P0rÐ ) 0S0S$4 0;0 RR  pPI00S0  0    +b j a + 0R`oGP& Rj24V3V:0PZ340C<à 0cÌ40CS5à0r0Ó R4V 340Fc 0CS0`r0ÓZ pN  R       +b j a / 0+Q0?Gp* Q:2dScS#:3d`F2& `f&d0FS>#RdS3d0C# 0CS 0q0Ó Ap!xoTP` 0i  0m4Xo Q P`r4Vo`QP @ qP<PQ @IPCj@P p<K KO6 0 0: 0 0:d` `0 0:PL L0 0: AAN8WNN8W,ON8WN5Nk<`P4P 0 BPA 8{`@PHP 0Hp0TPpP3/XP K I/X6_406\͈pMW1Z)NWfZO-DMQ `@p0 BP0@EQ     +b j a ' 0P0?G" P:2TSSS:3T@PE1 PeT0ES>RTS 3T0C 0CS0p0Ó @ g(Zo Q Pj( XoQP  @hP 0PQ 4A @ P zK KO`\ \0 0240 00 02ANWփN=NWbZO-M< |xtplh``X@Q0@@D@pW ( 2/p`H`. L` P`  PPK䣟(X ,`` 0 ````` `$``5/@LPL` P 1/PP P 1/HX@PpH\PT< P`p0 B$P804`I  R D@     +b j a + 0KP /G& P*24R3R:0`j340C4C 0cC4 CR6B p Ò R4R 34 B2 BR 0p Ò PK f<Zo Q P@K`ui< Vo`QP <@8`@PKg<@P8`4Q 0 @4@P `yHPPP 0Pp0\PpP3/`P  K< %!`*40W4pl l0 0a1D@ @0 0Y1 A\LjlGWnZiNW"NN>WZO-4M `QG @p5 0`+4V `'T`V+``V 0'd0S-QfPP `hPP P $@AP [yPK KO  0 00N^WSZO-M`lhd`\XPP0QB@pW8  2/p@8@0 L@ P@ ( `PKh(X,@@0 @@@@@ @$@@6/`LPL@ P 1/PP P 1/H`8 `@p8LPD  p4P6  0+$S 0@'d0S`*00S  '4 REQ4PK e<`P P@K!h<`P4P 0 b? PA 4x`8P@P 0@p0LPpP3/PP K &!0P2W03($ $0 00L AWIZyN.W#ZO-DM@Q p` 0P+4U P'DPU{PPU 0'T0S0àKPPUP0 0P    +b j a - 0SP_G( SZ2DUCU!: @3D@D<Ġ @dČDPDU9ŠPs PÕ RDU 3DPEE PEUP@sPÕ Q@ e(Zo Q PLg( YoQP @ @PKeP@0PQ 4t>PA @wKOd` `0 0O/84 40 0G/ A<!N WvNAN WZO-M|Pxtplh``@Q8@D@pW  2/p@H@0 L@ P@ { `PK`(X,@@0 @@@@@ @$@@6/`LPL@ P 1/PP P 1/HX`PpH\P PT p@<  0+$S 0'd0S00S  '4 R `O00S0 D @0    +b j a 1 0RP`_G R:2TSSSP#:`PZ3d`F<Ơ `fƌd`FV5Ơ`rP`Ö PRTSP 3d`C6 `FV`0r`ÖjQPK 4@0Pc<Vo+<Q P@KPf<UoPQP 0@@@`@HPPP 0Pp0\PpP3/`P'K<PPKAd0@P44 `Q 0 /=4  P A tv '!`080pl l0 0.D@ @0 0- Adl:WސZNWqN NWZO-M@ Q  P KAQ,( _ _  +_b j a ' 0P0?G" P:2tSsS:p`j3tpG1 pgt0GS6RtS 3t0C 0CS0p0Ó`6S PO*pP p` 0S0SG &6 0c-0SFQF`$  }_ _  +_b j a  0;QpG Qz2dWcW:`j3@30 `40CS60q0Ó0QQ p0BtQ0OS aXocQa pPdUoXPQT  R      +b j a c 0+Q0?Gp^ Q:2dSIcSW:p`j3tpG2' pg't0GS6#B+S 'P4bXo Q pPodUoPQpP fpPR ;ORdW3G0 @P0qÐRdS 3t0C# 0CS 0q0Ó z!E`P  00[0 0p^DXo Q 0P`dDVo`QP0fpLP PU;`[PWLP  @P  tK KOW!1 0$, 0 0, 0 0, 0 0 , 0 0, 0 0+ 0 0+A߇uN*V?N5NV_NNVNNJVONFWZUN VZNVZ՚NVZO-Mpxxd@Q0@LYP@T' 4 2/@`Dp``/ `` p쨟(X ,`` 0 ````` `$``7/pP`P 1/P 1/pp`Dph@`tPl  P @FQ\X    +b j a ( 0P /G@# P*24R3R:0pz340C1 0c4 CR7DpR4R 34 B BR p ÒJ `6 P{* @P4<8 R RH&6 0+ RHQsTP ` ^  \+b j a  0+Q0?G Q:2tSsSDp:pz3@2 `$ BR7 qDp Ò0QQ *(` B4Q ZR5 x_TonQl P`ebVoc`Q_A  R  LH  _ _  +_b j a j 0+Q0?G`e Q:2tSNsSDp]:p`j3tpG2' pg't0GDpS6#G+R 'P _To Q P`bVo`Q`P4 d` PW 99TRtSDp3C @P qÐRtSDp3t0CDp# 0CS 0q0Ó j!YCPt 0X 0`\To Q PpaWopQP4 2d`DpP 8.YPVL@@8< @P  "r`PhP +0hp0t`p`3/xP K 6!xd,0, !1 0) 0 0) 0 0) 0 0)| |0 0{) 0 0s)|x x0 0k)ׇج,WzZQNVNNVrUNNVNqN&VΕO!NVZ1NVyZѐNVvZNfV[zZO- M! RJ  ` @ p PH = B$Q8 P,P q A PqPP@P   0 UP@P \qK KOHD D0 0( 0 0( ͇NVVxZNvVtZO-|M4 , `0 4 8 < @ H HK@Q0@B@pW3  2/pP8P0 $P (P # `(K⌒(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/H`8 `@p8L@D4p  P Pb W B$QR @,P 0q A` PYp@[4@`@P   0ᘯ`@ P p8P@P 0@p0LPpP3/HP K4 .H *U0 +TP P0 0(($ $0 0(8ˇ !WwZANVuZaNVqZO- M@X" Rx `p0I  Rr  t r  p+b j a + 0PP_G0& PZ2$U#U: 0:3$ B<  bŒ$ BR3  p Ò R$U 3$ E2 BR 0p Ò:! PP*L Bo"~@P@P oK KO`\ \0 0v'40 00 0n'ALJNrVMN݈NVNO-M, 0 4 8 < @ H HK@Q4@C@pW  2/pP@P/ $P (P  `(K\(X ,PP 0 PPPPP P$PP6/@$`$P P 1/(( P 1/@P@Hp@T`L  `PpIQ<8    +b j a + 0+P0?G& P:2DSCS:@J3A2! a$ BR4 p ÒRDS 3C! AQ pÑ ; P7P3*L0  C/o"}@@P@ P n@PHP 0Hp0T`p`3/HP K !H 2)'4^)lh h0 0h&@< <0 0`&A4Ň WrZN:VHNNZV{NK-M@! Rh `PpIQZ \ Z  X+b j a + 0P0?G& P:2$S#S: *3A< aAQ2pÑ R$S 3C! AQ pÑ 7}APQ ?nK KK40 00 0%A$MNVFNO-M, 0 4 8 < @ H HKx@Q4@`C@pW H 2/p`@`. $` (`  P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P `pIQv<8 x v  t+b j a + 0+P0?G& P:2DSCS:@J3A2! a$ BR4 p ÒRDS 3C! AQ pÑ  @`|@ P hm@PHP q0Hp0T`p`3/H@P K .!H '64'@< <0 0$AؾWkZ~N:VBNO-M# R  @ `p I  R      +b j a + 0PP_G & PZ24U3U: 0:3$ B<  bŒ$ BR3  p Ò R4U 3$ E2 BR 0p Ò*  P 0S0SLH"H2 0a$00SS  Q QQBozm@PA  R8    _ ]  [+b j a > 0Q0?G Q:2$S&#S:3$ B<  bŒ$ BR:  q Ò  ,P@@P p[lKR$S3$ C2 BR 0q Ò  KO40 00 0#A,}zN2V>N|N>VdZO-M, 0 4 8 < @ H HK`0Q8HE@pW# 0 2/p@H@. $@ (@  `(K섟(X,@@0 @@@@@ @$@@6/P$`$@ P 1/(( P 1/HXPPpH\`T  @ 4 pPIQD@    +b j a + 0+P0?G& P:2dScS:`j3A2! a$ BR6 p ÒRdS 3C! AQ pÑ  ` R R"2 0#0 RR P Q QQg6nuk@` P@  R7 <8   }  {+b j a V 0Q0?GP Q:2$S>#S: PZ3$ B<  bŒ$ BR5  q Ò  ݾ`4@P P kHPPP 0Pp0\PpP3/HP!K 㸾`R$S3$ C2 BR 0q Ò|Zz /!0H 7%0d%@< <0 0n"A، W*dZtNrV9NIwNVB_ZO-M  R  ` @Pp Q }m@@P pjK KO  0 0,"\sNjV]ZO-|M, 0 4 8 < @ H HK$@Qp4@ B@`V|  2/`P8P. $P (P m p(KⰑ(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@D  p` @P Q, l@`@P Pj8P@P 0@p0L`p`3/HP  K A/H Y$4$($ $0 0!\@0W]ZEqNV[ZO-M@$ R `pI  R      +b j a + 0RP_G& RZ24U3U:0:3@< `@P3rÐ R4U 3E0 @P0rÐ ) 0S0S #3 0!0 RR   I00S0 0    +b j a + 0SP_G & SZ2UU: *3@< `@P2sÐ RU 3E @P sÐ*0 P33 P/*$ P P*LPEorBPP@P hK KOB 0 0  0 0 xt t0 0y |x x0 0q D@ @0 0i  AlNVJ1NlN^VfNeoNV^WZlN~VUZ mNVXZ)mNVDNO-MP, 0 4 8 < @ H HK0@QFNO- M@" R `pI  R     ~+b j a + 0RP_G& RZ24U3U:0:3@< `@P3rÐ R4U 3E0 @P0rÐ ) 0S0S ! 1 0,0 RR 1 P* }?PP@P nfK KO pl l0 084 40 0 ATbNVJ'NcNjVKZ cNVk:NO-M, 0 4 8 < @ H HK$@ R4@C@pW;  2/ pP@P/ $P (P + `(K☃(X,PP0 PPPPP P$PP6/`$@$P P 1/(( P 1/@ P`Hp@T@L  `pI  R <8     +b j a + 0+U0?G& U:2DSCS:@J3@2 `$ BR4 u ÒRDS 3C @P uÐ )0 R R!1 0)0 RR 16 P2* Py>P@P@ P je@PHP s0Hp0T`p`3/HP K C/H  4xt t0 0@< <0 0AXDu,VLZm^N"V"N_N^VGZ^NBV5NO-\M<" R  ` P p  @ 80P @咃ap` P{p ⇃QDP_O,p`P Se A@ P|d`p@ p` 00S0P=` PZ_O  803/p,Y 0 ᕣ@P `p@P dK KOO-M|xtphhQC@`V | 2/`PPP. TP XP w pXK8(X,PP0 PPPPP P$PP7/pT@TP P 1/XX P 1/P`pX`Pd@\  p P `  @LXKWH[P XK@层`4@PDHz`XK⦂QC,@OP sd AP Pc@0@O@pP  00S 0 = U O 8 2/,YD 0 ᵢ4@H@PL@P cPPXP 0Xp0dPpP3/hP K ! h &ꀘtnXVRFZO-TMxQ  `@pP P40&06 0@Q  P%5 0qFUQ^$     +b j a 5 0P /G" P*24R3R:0340C8 0c4 CR<R4R 34 B BR p Òq$ (  0 `@P B P gc  PP b@@@ P 0pCPZ 0`( QP,QK    R QA WP= ,p@Q H   Q R/$P,P p,pOU*P c(K,&$A P2bp$$ ( @@R P0@P0P($@@TD PJ ZPC i A iT6P`_O(@p@ 00S 0f;P _OZ  8 2/P_O` V P 0 @(P $ (  @P bKqtp p0 0  KO 0 0바EQNVNQWNV`>Z WN¹VBZyQN.VI=ZO-ML P T X \ ` h hK@Q0@WP@T  2/@`X`. <` @`  p@Kp(X ,`` 0 ````` `$``7/P<p<` P 1/@@ P 1/XhP`@Xlpd  `@pP P&6 0@Q  Plh&h6 0qFgQwTP    +b j a G 0P /G" P*24R3R:0340C9 0c4 CR<R4R 34 B BR p Òq!L$ (  @K8<`@@DP B P ia  PP `@PP P @KHpEPZ @pK( QPD  QK    R QA UP= D@@Q H   Q R/$`,P @D@ OV*P a(KDK$$A4 P4`4@$$ (L @@R P@@KP@KR($@@TDLPJ XPC g A gT6L`@oO4(PpP 00S 0h9L` oOX  8 2/L`oO@ T4 P  0 @(P $ &<8D @@HP `XP`P 0`p0l`p`3/hPKqʜ 0 0 !h B0o($ $0 0ycV;ZHNVNYONVh6ZONʱV:Z9INV 5ZO-TMQ  `@pP BPxFQ$     +b j a  0P /G" P*24R3R:0340C1 0c4 CR<R4R 34 B BR p Òx ` $ ( 0P? 0`p\ P3,p Q P'$@ T *OP _(K,#$A P P^\p$$ (@@X tpP0@nP0( $@A D*f`PToO*(@p@ 00S 08 `oOY  8 2/`oOX `0᳝@(P $ o%  @P  ^KxKʤ 0 0D  KO AHD D0 00 0 0(뀅CNZV^NCNzV)ZDNʦV/ZO-ML P T X \ ` h hK\@Qv0@DVP@Tq , 2/@PXP0 ` PC P?0 P T` B`VS`PPP P@P TK KO<8 80 0 ($ $0 0 WNF|VZqN&|VZO-MP, 0 4 8 < @ H HK@Q4@B@pW  2/p`@`0 $` (`  P(K⌢(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/@P@Hp@TP PL p8<Z $QU @Z PV P SP B`PU SP@`P $`<@P 8RS@PHP [0Hp0TPpP3/HP K 1!H U4 HD D0 0 40 00 0 V$,ܫVZ1NxVZNxVZO-$M" R p @ P  4 R pE00S0  0    +b j a ' 0;RpG" Rz2dWcW:`3d`F36 `f6dpFW<7RdW 3dpG7 pGW0prp×  pB P> PPA`A P S B Q.Rp 0P @ P yRK KO'| |0 0 lh h0 0 40 00 0 ARNuV#N5NuVYNuVZO-M, 0 4 8 < @ H HKx$@ R8@`D@pW? H 2/ p`P`1 $` (` . P(K(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/P`@XpP dP\  Pp@  0$S 0@pÐE  R 0L0H     +b j a ' 0+V0?G" V:2tSsS:p3tpG2' pg't0GS<#RtS 3t0C# 0CS 0v0Ó  p] PY<@@A`AD P Q B4 QQ4p  0@@<@D P \QPPXP e0Xp0d`p`3/HP K 3!H 8  0 0xt t0 0@< <0 0AhO%6RTV 3T`F6 `FV0`r`Ö D Q@Q<* `I LPPD,P GN A PoM`E 0o" 3P @P MK KO4 0 0K 0 0C|x x0 0;84 40 03 A?MbVMNbVhY1NbVLwNMbVyYO-M, P0 4 8 < @ H HK@QDP4@D@pWp  2/p`P`. $` (` a P(KX(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/P`PXpPd@\Dp P@ $Q M  R LH     +b j a / 0kQ0?G * Q:2tSsSDp":p *3tpG6g pggt0GDpS2c0q0ÓRtSDp 3t0CDp# 0CS0 q0Ó*`^ QZQV*<@ @8 a LP\,@P  M Ap P4LDp@J0o"8@ <@@ P LPPXP 0Xp0d`p`3/HP K 5!H 4 0 0 0 0 0 0@< <0 0A0<TVYM:]V>MMz]VYM]VrNMZ]V-YO-4M`x$ R 00P@G  R $     +b j a ) 0+P0?G$ P:2tSsS:p`j3tpG2' pg't0GS6# `RtS 3t0C# 0CS 0p0Ó G  R      +b j a ) 0+P0?G$ P:2tSsS:p`j3tpG2' pg't0GS6# `RtS 3t0C# 0CS 0p0Ó PP@P PLPH*$pKL@ᣊᭊP6 `#Y,P K Ap PJ`J0o"P  @P  2KK KO4 0 0 0 0XT T0 0D@ @0 0 A 7MXV:MMnXVrMMXVmNMXV>YO-MP, 0 4 8 < @ H HK@QI0@F@pW  2/p@X@0 $@ (@ ۹ `(K⠅(X,@@0 @@@@@ @$@@6/P$`$@ P 1/(( P 1/hPX P`pXl`d  p`GQTP    +b j a ) 0P /G$ P*24R3R: @0340C1 0c4 CR<R4R 34 B BR p Ò 8 @MQLH    +b j a . 0P /G@) P*24 R3R": @0340C8 0c4 CR< p ÒR4R 34 B2 BR 0p ÒJ <4@Pn PjPf*(PKLp'PS @#Z,P 9J AP PbI@ G0o"4'@<8@ D@P  IXP`P 0`p0l`p`3/HP K M/H 0A 0 0" 0 0`\ \0 0LH H0 0A2DV YEMQVM%MQV޽MeMRVfNMBRVYO- MPDQ?  `0p@8 B$Q3  Q @0QXX 0@ P Eh@P0 @P0@P @ IK KO  0 0+qM&PVYO-M, 0 4 8 < @ H HK@< Q4@B@pW  2/< pP@P/ $P (P ڷ `(KD(X,PP0 PPPPP P$PP6/`$@$P P 1/(( P 1/< @P`Hp@T@L `08P@Q BtQL Q DQ8nW< X  0 P8 Ah< 0P @0@ P bH@PHP k0Hp0T`p`3/HP K !H < _4($ $0 0*DV-YeMMVYK-  R ` @poWL OP@Q pH K,'O-tMd`\XTPHHQmA@`V  2/`P0P. $P (P  p(K∑(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<  p` @PVL O@Q` PG0P8P 08p0D`p`3/HP  K !H h&@|VYO-M@  R& `pP Plh h0 0@@P KG K KOL$MIVYO-|MP, 0 4 8 < @ H HK4@Q|4P0@B@pW4  2/p8. $ ( % `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `4P@p P 0 0s a@@P pF8P@P ͵0@p0L`p`3/HP K F/H y03@#tyVYMGVYL-@(  Rῐ@ L O-tMd`\XTPHHQXA@`V x 2/`P0P. $P (P t p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< c0@PP8P >08p0D`p`3/HP K E/Hwt LvVYO-Ml@QQ ` p P!1 0| a &0P PFF0 P R0lE0 P0 @@P PEK KOAMCVPYO-MP, 0 4 8 < @ H HK@Q4@B@pW  2/p`@`. $` (` 呴 @(K\(X,``0 ````` `$``4/@$$` P 1/(( P 1/@P@Hp@TL  `8@< P|x!x1 0 ˤ *a &pP E 0P  P R D 0Pp 0F 8@p<@P E@PHP 0H`F0TP`P3/HP K !H JR4w,rVY}M2AVY$000S  p/O-|M, 0 4 8 < @ H HK@Q]4@A@`Vʳ  2/`P8P/ $P (P 廳 p(KD(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@D X pP @P 0@p0L`p`3/HP K !H 4hoVYO-\Mp( R! h  P ` P  $KB $ K  $@ADTK , 0OP T8p `U5 U5AJ P 8 2/( JQ$p@@Z* (p@84@0P, P<8@b U4 *  P>PEE PJ* *@A0` Q*PP `U `U54U5MpS@ Up  P  P^ S 0`U5 U5AJp, PY @0` # U*  P>PE E PZA* *@( A Q*PP0 ` U5U5MS`p匠 U` ( P᳷ 0` PQ  U5 U5AJ, p@@@ T:4<QL`qP@E( D 84 UJT0 _@P8 , `N   ZN   TN, ~(p`  Lq  0  Cq 0  q, 0 0 p/O`p  00S 0 Y O 8 2/4P@U0  08嫁P4@( 0p `/Op@`  P00S 0  P( WJ O v Q 6  J,`@08pP vB JU5U5AZe    0R$@T( Y" ` V PpFU Q  @AP U P W`$@8p `@P +BK KOO  0 0YM4V3eVMXMO-M@, 0 4 8 < @ H HKd4Q~t@HZP@T 0 2/@P`P . $P (P  p(K쉟(X,PP0 PPPPP P$PP7/`$p$P P 1/(( P 1/`KP` X@ ` Lp T t `8h @p P<  (K (K( PAEHHX 0KMPD  UPT`U5 U5AJPLp@@ @@U*d\ hPl` @P `plBVPp *  `@`Fl@ F PB* *@AdP Q*PP @@U5pU5Md SpPV p  `ስl@ `^ U5 U5AJph P ]P l@ $ V* p   `?`FF PB* *@d A Q*PP0 @zU5 U5MS@pV 匠@ d `. ! `Q @w l@U5 U5AJh pP@@ U:ppQC@j`@F d D tp GTl _Ppt  K`  K  Kh q|d@  n 09 n  00 oh 0'l `/O@`  00S 0v Y O 8 2/ppPWl  0t$@hP\f~D 0X `/OpP` @@P00S 05 @@Pd WJ O 8 2/d JLpQ  JT` P`dt@P ? JHU5PU5AUSX   0~PY/  @dP Y% ` V Lp @pFT Q  PAP jT t@a W`P@Lp P@VT`SdP @8<@P ?`PXP 0XpK0L`p`3/HP K  !4H w4ꟳ,( (0 0 `dVYY9M)VsZVMX{ML-@  R QQ *LAo% @ L  0 0uM*)VRO-|M, P0 4 8 < @ H HK@Qh4@A@pW+  2/p8. $ (  `(K␑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D/ Q+Q'*LAo 8@@P@P ׭0@p0L`p`3/HP K G/H 4=($ $0 0GdهXVXY!M&VgRL-@  R QQ *L Rc @ L  0 0mM"&VRO-|M, P0 4 8 < @ H HK@Qh4@A@pWi  2/p8. $ ( Z `(K␑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D/ Q+Q'*L R 8@@P@P 0@p0L`p`3/HP K !H N4{($ $0 0`ևUV~YM#V_RpL-@  R  B4 R` PcP e@p pL<8 80 0U($ $0 0MYM#V~Y9M"VYO-|M`, 0 4 8 < @ H HK0@Qk4@B@pW  2/p8. $ ( 劬 P(K⼡(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD2 B$Q-P2 @~P ~8@@P@P B0@p0L`p`3/HP K -!H {4HD D0 040 00 0$ӇRVjYͽM VYMb VfYH-@PtK@P(@T PP ,`P ;= HW p Pa<`T<D    TQMSTO-M@P@EP?* BA!.rPP1 P1* %p E!P < P P< ` P @pIRаUp@ KO~TKpꏰO-M@P@EP?* BA!.rPP1 P1* p E!P < P P; ` P @pIRჰUp@ KO1TKpBK-@`@FP>* BA!.rPP1 P1* PF1`,P Y< Ap P;`p P @`HR5U KSPO-$MPHpPZ @ pRV OA  R    _ _  +_b j a + 0{R`oG& Rj2DVCV:@J3A7q atpGW4prp×RDV 3Fq AQprÑ pAP@PL DP   +b j a ' 0P /G" P*24R3R:0`j340C1 0c4 CR6R4R 34 B BR p Ò WJ`PVW@WGQ#'h@@<@: @0@@@@wP. `V*Q'J@vW W@vV V@@@ p  0!PK@PL L0 0J<8 80 0BA-MVY MVYO-M0P  vP   `P : H`  @Q :`PT  0RS M aP :  @Q 9` u] 0`xP@P :  p R 9 @0P@P :  p R 9 @0 _@P f:  p R 9 @0 0KM-@M@`pHQ@Q$Q2 PPP 0oj ㋍#PPKK 0G[P lP X PP  Q KKM&a PPO-DM@`p0AP   @R:P  PP @ !P @ K P PKF[P e"PK P  PP0 P P PCP 0zp! upq@W r q ".G "0W068 p?8  0  "ZQػ4埦 @94֑ `oO   A\X[ (0 R 0QO-MPXQL p@`  Q `` P &9  P M8  `0=`PU  0+PP@@P `8K KOO-M`, 0 4 8 < @ H HK@Q8@B@pWx  2/p@@@. $@ (@ i P(KL(X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/@PPHp@TL  P<p  Q @ P }8 < Y 474 @ 0㕖`V  0P@<@ P 7@PHP 0Hp0T`p`3/HP K .H &V8SL >V@YO-TMP@Qe ` p 6P pQ 0#D 0 Q1 @ a p ` P:U`V* QQ KBbHQ@Q 0h PH$QV7PP?P= QXF   (, 0@48 QDW @ c  GpPQP0  /L0 X0 H AD @Qx0@KJ40 0` , ( XK3AXK+ p P:L@SQtT+  8p<`Q>:@@C @ T8 7TW  X  L H D @ < 8` 4 0` , ( XK%@k0C8p<`P   ?R  @R :  R   R (UP L@P@!P@8p<``@P p4HPPP ţ0Pp0\`p`3/`P=K@   @0 S  L@ X /H D @Qҕp<@ @p 8` 4@ 0` , ( XK@XK8p儭pP QL  @ !`74`߆45VnY(100SEO-M 0PA @ ``p 0 pr P 4  V`3 p 0P P@P 4K؆O-M, 0 4 8 < @ H HK@D Q8@B@pW t 2/D p`H`1 $` (`  P(K((X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/D HX@PpH\PT `0 p@J@<0PR P 4  XD4 834 P  0]@PW<P@P D3HPPP 0Pp0\`p`3/HP K k/H D ]8ֆt,V҉YO- MlQQ  p@T O`PQ   Q P@  0Im 0c   0p@9@Q  P 괐@P@@P P3 K  KOӆO-M, P0 4 8 < @ H HK@Q 1/ 1/  `u4Q0 0 0\ R 01 0\p #PP ( KO!  P `P '  `P 'P  <YiM[SO-M|`xtplh``,@Q4@G@pW  2/p@D`H@/ 4@ 8@ ֖ `8Kⴆ(X,@@0 @@@@@ @$@@6/`4P4@ P 1/88 P 1/X`HD`PpH\PT  p< 78 @ Q Q <KVRP < Vp@*D`  0@p<8PP@@P p_'HPPP h0Pp0\`p`3/`PK QPi P?``tP4@ @0 , (K$ 8 8KD`, 4PN+P`VPU  Q h8x8EV ! Q@P0p$P#@ 00`:!9^ 0 1SW  PR RP H D ` /Ob@L!KMEHED`@p<8P215P 00 ^ @ T ! ^D q   @DP D` P:H 1/ 1/ O 00 \ @Q @ ! \p #@D`P & !`P48P p<P%@@p   |UZYaMSO-M`! R8  `p@ P!1 0P5! P* "0S'* APP@P %K KO$hd d0 0dTP P0 0\@< <0 0T묞MaMU\HY`MJUGYu`M*U0SYU`M U!SYO-|M, 0 4 8 < @ H HK@Q4@B@pW  2/p`8`. $` (` 勔 P(K\(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P@`p P!1 01: P6* ;0S@* HP@P p%8P@P #0@p0L`p`3/HP K !H \j4tp p0 0`\ \0 0LH H0 0Ԝ`sUQYm^M"U|EYQ]MUDY1]MUOY]MƿUOYO- Mh! RO  `p@ P!1 0RP0  R  0#D+ 0;P0@a   0 00s  A0PP@P z$K KO 0CM\MU\CY[MzUNYO-M, 0 4 8 < @ H HK@Q4@B@pW]  2/p`@`. $` (` N P(Kl(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P @`p P!1 0PQ 0#D<8E 0P0@a  !1 0zq  H0P@@ P #@PHP ͒0Hp0T`p`3/HP K !H Q43 0CpnUjMYuYM*U@YXMULYO- MPHQ0  `p@  P5 P P#*0E E ;PP@P ^#K KO!hd d0 0TP P0 0 0 0VM:UOgMVMzU%JYVMZU,JYO-|M, 0 4 8 < @ H HK@Q4@B@pW)  2/p`8`. $` (`  P(K@(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P@` p PN(K( TP7 (P<*0H H P@P p"8P@P 0@p0L`p`3/HP K !H q4tp p0 0)`\ \0 0!($ $0 0iUHYiSMU3dMSM^U GYSM>UGYO-MP@QV  p ` N  Q!  `` P "   P! `0 `P U 00 p PRLP@P ` "K KO  0 0}QM2UREYO-Mp, 0 4 8 < @ H HK@Q8@B@PU  2/P`H`. $` (` ސ @(K␒(X ,`` 0 ````` `$``4/@$$` P 1/(( P 1/HX@PPH\T `D@P e  Q < @pp P ! D U4!4 p@0< pW 00 p PRLDp@P PP!HPPP Y0P`F0\P`P3/HP K !H M8($ $0 0 dUTDY)NMްUAYO- M8! RG  p0P@ ` &R 0 0` b P [!  \   `lh姣@P  K 슆MM>U6YO-M<, 0 4 8 < @ H HK8 QB@pW  2/8 pP@P/ $P (P 宏 `(K8(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8 @P`Hp@T@L `Pp<0!STP!P1 0@B P  4  Y 84@g<@ P 8/ @PHP 80Hp0T`p`3/HP K v/H r8 \Kd`8U?YJMU*4YO-0gP sP@ P KP KOꀆO-M`lhd`\XPP4QB@pW  2/pP8P0 LP PP 匎 `PK`(X ,PP 0 PPPPP P$PP6/`L@LP P 1/PP P 1/H`8 `@p8L@D p0P@'  Q"  P:0S@  `P`K@U)pP QL  `  >0O r`@ P 8P@P 0@p0LPpP3/PP K` !4PDQ4q܄|[Uk;YO- M0! R<  `p@  R 0 0^%P 0PPAP  P0 ]P@P K KO($ $0 0-}DM2U-YCMnUr,YO-|M0, 0 4 8 < @ H HK@Q4@B@pW Px  2/0p`8`0 $` (` g P(K@(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/80HP@p8L@D  P`@ Q`\!\1 0B p 0P  0\@ P 8P@P 0@p0L`p`3/HP  K !PH 00^4\40 00 0fPV U6YAMU+Y@MRUV)YL-000S 0 @@ T  P @  !L  0 0.\}?MrU&YO-|M, P0 4 8 < @ H HK,@Qr4@b`@T}  2/@`8`/ $ ( l p(K1(X0,  $7/$p$ P 1/(( P 1/8H@@8Lp D 0ppp @@ T `` V)`@ `p` p'q`P0@P 0@p0LPpP3/HP K !H X4,( (0 0`|S4U03Y2YA=MUP$YO-MQ, @pP0`  Q$QK\ `  `PA    KOy1YO-|M4 , 0 4 8 < @ H HK@@Q~0@(B@pW  2/p8. $ ( 卋 `(K̡(X , 0  $6/@$P$ P 1/(( P 1/8H@@p8LPD4P @`p  Q$Q8P@P C0@`F0LP`P3/HPK  `pPA 44 !H jv0xOU/Y.YO-Mp  R  P@` J PA K KOtvO-|M, 0 4 8 < @ H HK@Qs4@A@`VɊ  2/`8. $ ( 床 p(K✑(X , 0  $7/p$@$ P 1/(( P 1/8Hp@`8L@D @Pp` NJPA `a8P@P j0@p0L`p`3/HP  K .H 4u@LdU,YO-M! R4  `p@, B$P' 20 S 0 0 КPP@P K KO 0 0\sU5M UzY5MU*YO-|M, 0 4 8 < @ H HK@Q4@hB@pW P 2/p`8`. $` (` щ P(K (X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@pE BP@1  R!1 0 3P@P pd8P@P m0@p0L`p`3/HP K !H n4($ $0 0qHUL)Yy2M.UY]3MUY(YO-M@  R `Pp QI@@ P  K KO  0 00o1M6U&YO-|M4, 0 4 8 < @ H HK0@Qs0@B@pW  2/p8. $ ( ߈ `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `P@p40 Q,H@@P p8P@P 0@p0L`p`3/HP K !H 0($ $0 0$nDU%Y/MUL$YO-MQ(  p @`P  Q  P @P P@' K  KOkO-|M, 0 4 8 < @ H HK8"@ R|4@ RP@T  2/ @`8`/ $` (`  p(KQ(XP,``0 ````` `$``7/$p$` P 1/(( P 1/8 H@@8LpDP  @Pp    R   00P0`@P 8P@P 0@p0LPpP3/HP K !H x4jpAU"YO-M," Rc  `p  P!1 0HPU @ 4I   RE* 02S@PU 0 0!1 00 P3U@P  LH!H1 0,P1* P@P@P@P K KO5 0 0hd d0 0xt t0 0d` `0 0Xh*MUYu)M*U*Y)MJUY*M6UL Y5*MU! YU)M UbY5)MUSYO-|M, 0 4 8 < @ H HK4QC@pWɆ p 2/pP8P. $P (P 庆 @(K,c(X`,PP0 PPPPP P$PP4/@$$P P 1/(( P 1/8H@@p8LD` pP@ PTP"P2 0 HPo  1c   R_* 02S@`V 0 0!1 0 0 `3V@P  !1 0FPK* `P@`AQ 8P@P &0@p0LPpP3/HP K n/4H _?4 0 0tp p0 0 0 0pl l0 0~eP<dUY)'MމU8Y=%MUY]%MU Y&MfU|Ye&MUQY%M҇U*Y$MUYO-dMPQ  0 `p PTP$P4 0D1 P* @0 Q 0  ( , $ ,K KPp% ,KFPP,K p@$@ @(@[ $Q@P $T@,$PQ.@P,K"@@ P  B R @$ ,K 0@E`& @`P @  p@T@`T LP 7"R R%@p ` 0 @# 0pJ @@0 @ P K Q @Q  0 0f KO= 0 0Y 0 0Q| |0 0Ixt t0 0Ad` `0 09ta MRUTY$MʆU$ Yi MUY) MނUYI MUY MUYMUYO-MP|xtphh@QILP8@UP@Tu  2/@`P`. d` h` f phK␅(X,``0 ````` `$``7/pdPd` P 1/hh P 1/P`pX@PdP\L` p 0 P$4 0 1H P* P 0 Q|UD YM^|U3YiM|UYIM{UYYO-MQc  0@ d P05 U PQp ˆ`  Q:i`HQDu P ` B `V`* `p P .@P@ P kK  KOHD D0 0 0 0UMyUdXMyUYO-M4 P8 < @ D H P PKd@QDP4@HC@pW@ 0 2/p`H`. ,` 0` 1 P0K쒟(X ,`` 0 ````` `$``5/P,@,` P 1/00 P 1/HXPPpH\@TDP0 | `806< n Qj@@p  Q:pDHQDE P *p BpWSp@D@@0` , ( $  0KV8@@<@P HPPP 0Pp0\`p`3/PP K !P =4TP P0 0 ($ $0 0pS4*@UR YMuUX9MuU Yt000S P0 QL0QL0/ H-  0 0OuM*uUE YO-|M`, 0 4 8 < @ H HK@Qc4@A@pW+  2/p8. $ (  P(Kx(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D*  P0 !R L0RL0P@@P ܀0@p0L`p`3/HP K q/H 4B($ $0 0LO%U< Y5MrUY4000S/$Q /MO-tMd`\XTPHHQ\A@`V  2/`0. P$P (P z p(K@(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<P $Q PP8P A08p0D`p`3/HP K y/HzLd#hUYD000S P/0P!SL/JO-|M, P0 4 8 < @ H HK@Qa4@A@pW  2/p8. $ (  `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP0 P"SLP@@P 0@p0L`p`3/HP K r/H 4 D8U>X}L2_U'XLbUXL_UFXL_UoXLr_UxXLR_UiXO-M@! R9 p`  0 "S 0 0' @P02U HP 0Q@ P0 RC j PK KO9LV^UXO-|M, 0 4 8 < @ H HK@Q4@|B@pW  PO{ ` 2/pP8P0 $P (P >{ `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8 H`@p8L@D `@P !R40!01 0 @p2W H0S  0㴘@ p0 RC  p8P@P z0@`F0LP`P3/HP K ! PH a467|UX1L[UnXO-M@! R8 p`    R 0 0! @P02U HP 0K@ P0 RC d PK KO4L>ZUXO-|M, 0 4 8 < @ H HK@Q4@xB@pW  PIz \ 2/pP8P0 $P (P 8z `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8 H`@p8L@D `@P Q40!01 0 @p2W H0S 0㯗@ p0 RC  p8P@P y0@`F0LP`P3/HP K m/ PH b413| dUXLWU,XO-$M@P  `0L# /Op PWH RKD0 PPPPP  1/ Pn pX* ~T p%Pd@p@ QQ 5P  8pG@DU p pQ  P    @Q P @EP0  @PpP  A Py  u KO00X0UO-MD4 `8 < @ D H P PKQSP@Tx  2/@PHP/ $P (P x p(K3(X0,PP PPPPP P$PP7/$p$P P 1/(( P 1/HXP@H\pT  p0L OP@TH RHPPP x0Pp0\`p`3/PPK<4D@`@80`@PP`P  1/ Pt @Z* }D$ Q(@ $@@a`@ QQ ,K4P , 7(`F J T$ (@ A <P    `Q @ `D@ @(0K `ԕ@(@P 8 A 4Pg c ! P = ji$-UwXXP,,6UO-LM,Q p4 `P , Pd`$`4 0I, B$Q,    RP PP P 4  0P  Y4 P 0(P @ 4`Q~p$0KB$Q 77QB$Q 77Mꚣ)꘣S`0P P $PU4$P`4`Q; (00K 0K 嶂` vPK,4`P  B$Q 77Q (P$P00K, P uP' pW @ 4P@ P 4K,KO: 0 0Z 0 0R\X X0 0JTP P0 0B@< <0 0:)-LJUX)LNU8X LJUXLJUXmL"KU XMLKU;uXO-MX4 p8 < @ D H P PK0@QS8@VP@Tzv  2/@PhP0 ,P 0P jv p0K⸥(X ,PP 0 PPPPP P$PP7/`,p,P P 1/00 P 1/hx`p@h|ppt `LPP X P$4 0ಾX B$Q XH    R@ @@ P  `P L LYv@ 0T^P <`\PQH0 KP@4dB$Q 77PB$Q 77L(R`P ` P`V/d`Q< T00K 0K "p wPf,pP  B$Q 77HQ4 (P$PX00K #` vPB\@PTd($ $0 06oU XL:UXML>U\X]L;UX=L:UXL:UXL:UXH- $000S  lMLO:SH- pM     ( LP (K *!( 崽QP@T_r  2/@P0P. P P Pr pK⼀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<   ఺iUXL8SO-M  R& `p@    R :lc Q@ RP K KOO-|M, 0 4 8 < @ H HK,@Qz4@B@pWq  2/p`8`. $` (` q P(K⸑(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p Q:bX@ⴀQ pY8P@P bq0@p0L`p`3/HP K .H 囼{4ȼ`gUHXO-M  R& `p@    R :b Q@ RP K KO<O-|M, 0 4 8 < @ H HK,@Qz4@B@pWp  2/p`8`. $` (` p P(K⸑(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p Q:bX@ⴀQ p8P@P p0@p0L`p`3/HP K !H ǻ{4<<dUXO-M  R) `p@0   R   0@` Q@ RP 0K KO O-|M, 0 4 8 < @ H HK<@Q~4@$B@pWp  2/p`8`. $` (` p P(Kȑ(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p Q  @"`X@ⴀQ p8P@P o0@p0L`p`3/HP K !H w4 `UXO-M  R- `p@0   R Q@ RP `K  R  0@_  KOO-|M, 0 4 8 < @ H HKL@Q4@4B@pW>o  2/p`8`. $` (` /o P(Kؑ(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p  Q X@ⴀQ p8P@P n0@p0L`p`3/HPKQ   @ _ !H s46dlކ8]UXO-M  R `P@p   O` Q@R p| K KOO-|M, 0 4 8 < @ H HK(@4 Qw0@ B@pWin  2/4 p8/ $ ( Yn P(Ka(X`,0  $5/P$@$ P 1/(( P 1/4 8HP@p8L@D` P`@p  _4 Y@ⴐQ p8P@P n0@p0L`p`3/HP K !H ?4 }0kۆYUFXO-M  R4  `p@   PP $ Kn  X  J PPP@P K KOO-|M, 0 4 8 < @ H HKh@Q4@PB@pWm 8 2/pP8P. $P (P zm `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p   ၐP  m  W 0 0 P@P p 8P@P m0@p0L`p`3/HP  K !H Ml4z׆dVUXO-M  R#  `@p    R : -` Q@RP K KOO-|M, 0 4 8 < @ H HK$@Qx4@ B@pWl  2/p`8`. $` (` l P(KⰑ(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p Q: _X@ⴀQ p<8P@P El0@p0L`p`3/HP K !H ~}4嫷$ԆRUXO-M  R#  `@p    R : ^ Q@RP K KOO-|M, 0 4 8 < @ H HK$@Qx4@ B@pWk  2/p`8`. $` (` k P(KⰑ(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p Q: V^X@ⴀQ pm8P@P vk0@p0L`p`3/HP K w/H 寶}4ܶІOUcXL-@<  R 3zPPL LO-|M`, 0 4 8 < @ H HK@Q]4@A@pW(k  2/p8. $ ( k P(KD(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@DyP8PLP@@P j0@p0L`p`3/HP K u/H 4E (ΆLUXL-@<  R ]PPL L4O-|M`, 0 4 8 < @ H HK@Q]4@A@pWj  2/p8. $ ( j P(KD(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@DP8PLP@@P Hj0@p0L`p`3/HP K !H 偵4宵ˆJUvXO-M  R+  ` p@ 0 S q pPPLPP@P K KOO-|M, 0 4 8 < @ H HKD@Q4@,B@pWi  2/pP8P. $P (P i `(KС(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D ` P@p  Q  >q% pPPLP@P pb8P@P ki0@p0L`p`3/HP  K !H 墴u4ϴȆGUXO-MpQ @P`j  <PA  K  KOTO-|M4, 0 4 8 < @ H HK@Qs0@A@pWi  2/p8. $ ( h `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P4@ `p;j O<@PA p8P@P h0@p0L`p`3/HP K !H ۳0pņDDU~XO-DMPQ:  `p@ Q 0 0K0E   [P PE PPP@P 2K KO8ծLUXO-M4lhd`\XPP@Q0@hB@pWh P 2/p`8`. T` X` h PXK (X ,`` 0 ````` `$``5/PT@T` P 1/XX P 1/8HP@p8L@D  P4@`p Q,(!(1 0YK0DXK  [P @DXK ;@@@A Q 8P@P g0@p0L`p`3/PP K !Pٲf0†@UXiLUXO-M  R. p`@   Q Q03P CPLPP PB >PP K KO(O-|M, 0 4 8 < @ H HKL4Q4B@pW'g  2/pP8P. $P (P g `(Kء(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D p`@P    R  !R30 PLP P`B P`8P@P f0@p0L`p`3/HP  K !4H t48 tPE<@`   0% I`8@P 8@PHP Ad0Hp0TPpP3/XP K !4Xz< J4妯uTP P0 0஬@< <0 0ব݅3UXYLUXLrUXLRU X/ @R!/! AR/1n!Q//M- MT@[P <`8"8 ` V P 1/@D Qa  3 T` @   7T` Q'  ApP00E S   TS - E!NW !Qp p Q  Q D0Q   @ @pQ P010S 2/P  0@pQ 0qWSKQ꤮ v4tO-M&@ `gP  $0<HTb` Q  g @ R 3 P<P) R 'P0 p!!p0`G V PPPV -pGY YAqES1 PR0 00 0 R `P0@ P!!spB0BQ 010S 2/P!Q:`+BP0BPQ 010S 2/PP `P>Zc,@K  x%XL'U( 0S/ >R:/# /"/"0H-@(Pf 0" L-@4 o   /o/ / 0 RH- fo2H/ R/P/ P/  0  0/ 0? #   00 /H- \ 0 R P  0 ^:  ܩqLsRpL- 0^ ^P@t# P@B ?o 0`V U `V 0 S:hd  ೩`\P#P0p 0Q0 p͑LRO-M@  "     R{ *BQ 9Pȁȑp@ `            @    pW @PU p`缀弐   pU PP P \ n` ?pe dPUKxЅmSR}lSpRUO-MRH@DP` p  EpTKkSRH-`@P  @pP,  0!3/@˅O- M@P ` p0  `p0  `J@P ` 0@ p#だj0@ ` 0!3/`   pV`  K\ʅ R/H- 1b10H  R / /L-\c@ 0S @ Tt  0 0)멋L^TyXO-MPPv@A T@@`  @ZPP`pPh` @PP`XP 0 3/ `YT P P0!#!PP P G0!#!PPP@k@ TXK@XDžK-^?h@\@PT4@PT`P@pT+T Pp`1!R"pW@PT U  QQ P`@!1S `VUX /pL-0@T60@T20@T.0@S(S @QaV@T0 S R `QQ 0@aQU@TppRpL-@7@bL-@$$'+LZbXL-@((+KLB`bIXO-`oOP Q PP  00S 0 `*`oOw 0KO5`P O 00SJ 0 ERx Or o0 `Y O 8 2/p`  00S 0pRF O@ =8 2/K\ O 8 2/Pa2R   8 2/P PP"2 0@P>ddʗP!1 0P !R $PPP PBPt R R R R R R R RQ 0 0ट(p @@$P ,0(  4 8P$,PrK84  \<8 80 0|SoXiLRLKjL>ThX V   8 2/ 0 p7/(-KO-DM@PF 4$K#l,(0 @P ,,$@p9Aa qPP`* ip PY Q @X(p,0P sP <4, p pPp , Pp ` pZ?`0< @0C0,0App `VbV"QP(  ,pR(,pPpP a!$ P Q`F !dpA`r0Pn( $P0P  P Q`Pp0,K 7/,0P $,,'p`@pA qPP ἣP$ V@ PQ @W!d(P,0 ã,p( !  5( x! 5, ( d106,P 0Z  @P  <P",0P ,,#`@p(Aq qPPp XP@V P X(P,0@ c$KjK`ppPPJ=XK=X =XO-H @D P Q%00  0*&K`@@:ƿR'TO-MQ `@,(0P ,,&K@p)AQ qPPP p PZ y@X(p,0P $  KO%Pp`@WL-@ \0 B G08@_0{H-`Pp<@ @00 @TBTP QPX   H   $80  0%$  BWzR-W-K/\RO-M`4@@  00S000S00 Z?@Rf?2pP1/p @R0  @`pP :#P@pAq qPPp  (`:pU ?@X p 4<"p@ G$ `@ P "Pp@ptA qPP  W  ?Up   `@ T:L10 $ @@T6 @p@ P #P`@p1Aq qPPp ᫑@pV A?Upp @ ᶑYK pp0@Rt02@P1/5 p`\?랻RWt  t /t  Bt /O-$M@hlQ 8 (P`p0l@`pp"p pI `MhlQ,0P ,,K(`@p"Aq qPPp 8PpV >X(P,0p DKpP>4у/M-MP P `@S*  0p7/@T:KO- Mp, GPP )@p@p@piAa qPPP`[ ؐP`W m>PTpP`  @$P X0`p@p/AQ qPPP ᠐@PW 6> pV@@ P P `ᦐ XP@K`P>O-M@dpP `P @R4T\$RU  V( 0P ,,.01p 0 @pAq q P`PPp P`/0 Pp`R0=0(S P 7# L" ,0P ,,&p P p@pAQ qPPP; `PW =(`X,P Pp (" "$p$K(V ,`PE0P P,,6, 0p%P: p,,KP` `@pUA` qPPE ᦏp PYP` :=`U(p,0 ᯏ  KO!pPY@p$Aa qPP` vP` pYp =X(P,p0` KOp`P$   KOQ!pP<,WO-M@,0P O,p,p#( @pR AQ qPPPC `O PpZ  <Y(`,p0P ,p0W ,,K( p@p%Q wPPP Ȏ`PW  ^<Y(`,0P KO8KP`P`F@oB0O-M,0P /,@,@#(`@pAq qPPp  P/p@V 9X(P,@0p ,@0T /,@,@"(`@Pq vPPp{ P/p@V v9X(P,@0p ,@0T /,p,p"(`@P]A vPP@R ᵋP/@pV J9X(P,p0@ ,p(PG0 /@0W ,p,p`@p* vPP ႋ@ Vp 9(U ᐋ,p(PGKpPZpP@P8pL-@4{YP4`倭` 9P   $0<HTL `TXPp  E|\KnTO-MCYxPp@`@Y G yq @ Hp9*YတYf 5G Y @DT 8ZN L LQ *@0 @ @SA@@R L8 Z1 8- ۊp0V H @  T@@ H0`CR c8 p@W Z8@Z` ъKpE8L-@(P LxLn DWpL-@P$H8`(`,`0`4P@`D`H`=8P< @` `,`<`L`\`l`|`PL`D`jT>xX`\```d`h`l`p`t`^p  m{$KkTL-@XP 1/P fP aP \P WhP lR\P `MP<7(P ,D4H- x~(/H- <@@  " 0S2SR Q Q8/4/pL-4P` @ P@P@ PPPNpسL-@蘳L-@ LTdM-@dP TKPDTZV8KP @R  RM 0H%4[P Q Q *P:PM#P`7V  `P$``4@pp  00S 0ݛR O 8 2/M($ $0 0BzLWKL K6TWpL-M@`4 dQ& PP  PB    PPP %  P  0P0Q   1/gU P  1/Kp Kp0H-@ P  0S   AY  0H484 40 0y$ 0 0yK4TWKz4TWpL-`P@ T ,  @p 0 0y=K3T.WO-M@/P @` [0i PZp tPtP  2/P l p0R ll .h ~ PP o!@p,Aa qPP` "@o `Y 5X` /t@tK`@ 0 0y5IK1TTWO-M@X R0 0 x`C 7c#6#1#2#q#8'pBP 0A0T P @AT TQ @ R0 @4L, R p  BPX X p `P( `Fx `p PV x Pm xp Po  @p AQ q @PPP {@P`X`  5PZ @P ሇ DX#  P p RQd Qt  @P@pAA qPP@ = @U  4 R@ @ G DX" \Pl0 @ @pAA q0PP@v `0 `@R40@S@ @ !D  .? Aq^ @a p @QQ`M @ AqJ @a p @QQ`= φ@`X  c4@Z` @ ؆x p 0<@ p 0p7/KP@"@^@``@`@*4WWWtQ/H- Ml p0R ll Рhⷑ РO- MPp`OP @0pp  00S  0RpOO p 8 2/@Q 0j  `PVF ,(`0P ,,6 0j@X1 @pEAq q`@PPp7 @ ` p@Z 3 (`R,@@`0ppO t  Y@K  (8 KO/p`a3WO-M@P G TNRG  -  @ <0pB` `" PURUR 0S RN ] )P $ `@pDAQ qPPP0 pr pPV  3 RP } `P(  $P$ h P E KOPp40 00 0Jv2 UWo;LWW-K&T8WO-MP@oQ@@T ,`0P `,,&K(@p%A qPP pY ` ` 2 X(p,0` KOaMp20H-40@P(0 $@$03W /O-MR*PC0 U:PU*P U: 0`6/ P U*@T pT @00 `VbVP Q Up5P P ~@`@pA qPP< k~ V 1T  svZP PPU*pQPpU: @W  :P@ ` @p  !GP Uw:[p@pZA qPPG ` W 1X@  UP:4 @p3 A qPP# ` X  y1`Y  @   U!:``U:KV1ϾWO-Mp G A PXg @U   `@ %Pi ; `P :, @0sA q pS0Sx pჃ p: R1@p^ p ሃ!  P % i RRDQP0l 0e %& H0`K1  000 KOS @0s. A q pS0S p'@ pR0 000p\ p0 -pp0RdWWWT/O-M` PPUP @PA PܐpY`E 婖P AP @ p pP*!2 "0 p `7/  K  0A A/O- M@0 `C P' PuQ Q 8? AqO@`a pQQ`? pz p Aq9@`a pQQ`, pd p8` Y /pR`` kP J   8  {  K`p`p/иWθWPO- M@`RpP 兕p P@ PߕP w! PP ?p<P 8P5P*!2 "Pvpڏ pP' R [P PP/ 8PO0Bp^Aa qPPP`N Pἁ0P` Y P/ 0 SP`( %@p5Aa qPP`) ᕁp8 `Y )/pXAP ខT E   <    K`P`p/WWO- M@ <P?Q p;P &0 @p1Aa qPP`$ p? pR`.pVp I<  `G ](   KOV`p.fWgWK-M@P7pP jp @ `AÔP [ ! 'p$P !P*!2 "?A@0 p `7/  K8O- M@P`P!` A ᦎp`vP  ! pP P*!2 "P pV'P P`$p p@p0 AQ qPPP$ j`PW  .@YPP`p uH F   0    KP`-WWH-   Iq%K'RO-M$ @P@* *J<D #DZ < :Jપ 㪪@ PuDAT%U%@QPP @ UUMT 偑<\X L`A P-T^D JT P[ J`9X!T@( pP 0X@ TpP( TP5 X T PLH@X H `_XppTppPppLppHp p TŀPXTP( LH@@7 * T*JPR ^ P@K T JJ\ X8K  X0P IP(pT@,`0P486,P   P 9@$ p@p1 Aa qPP`% }@9`W  |+@ZA@ }H @D P 00  0K`@[+hjRTO-MQ `@,(0P ,,&K@p)AQ qPPP }p PZ -+X(p,0P }$  KOPp+sWL-@ \0 B G08@_0/O-MP@<@ @00 pWrWP Q  P )`V < @p< Aq qPPp0 '}` pZ  *`Y 1}p   F`0 0x`` 0< @S`Kp`*gRIWO-M`4@@  00S000S00 Z?@Rf?2pP1/p @R0 @`pP :#P@pAq qPPp  |`:pU <*@X p |<"p@  `@ P "Pp@ptA qPP m| W  *Up  y| `@ T:L10 h @@T6 @p@ P #P`@p1Aq qPPp *|@pV )Upp @ 5|YK pp0@Rt02@P1/5 p`\)eRWt  t /t  Bt /O-$M@hlQ 8 (P`p0l@`pp"p p `hlQ,0P ,,K(`@p"Aq qPPp {PpV L)X(P,0p {KpP9){/M-MP P `@S*  0p7/@T:KO- Mp, GPP )@p@p@piAa qPPP`[ W{P`W (PTpP` a{ @$P X0`p@p/AQ qPPP {@PW ( pV@@ P P `%{ XP@K`P(O-M@dpP `P @=4T~G$=U  V( 0P ,,.01p 0 @pAq q P`PPp P`z0 Pp`R0A(0(S P z#  ,0P ,,&p P p@pAQ qPPP; tz`PW ((`X,P Pp z(" $p$K(V ,`PE0P P,,6, 0p%P: p,,KP` `@pUA` qPPE %zp PYP` '`U(p,0 .z  KOA pPY@p$Aa qPP` yP` pYp 'X(P,p0` KOep`Pu'l߄'Wӄ/LƘWWWO-M`P ,0(P ,,# @@p( Aq qPPPp yPpT  G'(PYP,0p y$   KO pP.'(WO-M@,0P O,p,p#( @pR AQ qPPPC sy`O PpZ  'Y(`,p0P y,p0W ,,K( p@p%Q wPPP Gy`PW  &Y(`,0P KOKP`P`&O-M@p}`P P P P P P P pPcp p ppppppPP #;TE;(`U , 0P ,,., 0pP1 pp,,( @pP Aq qPPpA xPp Z  T&(PYP,0p x  pK@p$Aa qPP` xP` pYp (&(PX,pp0` xpP`P&ׄW˄SLWO- M@`@P< A00 pWrWQ RYKp P Wh ,(`0P3 ,,X|P ln:dTDTf:(P).W ,00SN ,,s,00S ,,m p@pA q`PP `x ` W  %(`Rp`,0  x "  P :  09 Cpj Aq qPPPpZ  Pw pR W%(\,0ppP w0! ! $`$Kp C0s-APQ qS0SP pw pPRp%p(W,0PP w`jpP% W8ӄtWԄWȄLߏW?WO- M` R'@T(pP "u9@(@W P0P ,,,0P/0PP@pfA q@PPY @w0@ pU P$0(S@Pp %w ! :  ,0P ,,#@ p@p+ AA qPP@ v`@W  {$(`Z,@@ v@   K@`@^$Є_W{WW0H-P@Q 4aP>@oB0O-M,0P /,@,@#(`@pAq qPPp vP/p@V !$X(P,@0p v,@0T /,@,@"(`@Pq vPPp{ `vP/p@V #X(P,@0p lv,@0T /,p,p"(`@P]A vPP@R 4vP/@pV #X(P,p0@ @v,p(PG0 /@0W ,p,p`@p* vPP v@ Vp #(U v,p(PGKpPZpP@Pz#pL-@4uP4``#P   $0<HTL `ӤXPp  fXdKTL-@(P 7xLd\ʄW0H-@L ᾤ 1Q* PU PAQ u 1 Q* PU *#0H譗pc0H-@L ᒤ 1Q* PU PAQ yu 1 Q* PU "႗0HbA B;/H-A@_PPp`IuP .; 1/\?uP W 0S 0 R0?T(TH-   feKgQQ/H-Pp (     a"h& C@0@`0aV VQ0 @@H/M-P@     1 #0A``pqW W @   "!R: @00pqWWpL-`@qPqPP   彶P PPvPv@P   @姶P݇@UpM-M@8P xp,`G( A+4HV A@(, B V  H0 0|  0 3/(,0 S R  A0 000003/P CtK_HD* R0S/P R/H-  0 0eYKSWQ/H-  0 0eKSGWO-_M@D `pPUPz ppP gP0K@ K0,`4pKC RWHRSL0RXS^!0CH0 L  DKP @K {PKDPOP5kpDP (KKg ( $P 2f 05f D[@P@ QLP s4[@@ P<P sK 0 0md| |0 0edlh h0 0]dXT T0 0UdĻh\$\ \sW ǁ|KnSW|KNSWy|K.SWY|KSWM-XM@@p!HPP@@p-h@ `J!PKT@0P  ` d 0 0dQ{KSW{KqWH- 0SL !SHSQA  0 0cXT T0 0cD@ @0 0c0, ,0 0czKbS~WzKBS`WmzK"S`WzKSWH- 0SH SLSQA pl l0 0c84 40 0c$ 0 0cyKjS~WyKJS~WyKS@WQP/H-  0 0c)yKS}WO-DMD  `P@QPR !p RN f $ PJ `@0T0 0T4,  @   0p`5r P@P (Ke0 ( $Pd 0 A  R4|, Q$P 7rK   P,( (0 0cصV,EzWQwKS{WL-\@^"1L0 S*NQ P R*B pl l0 0b84 40 0b$ 0 0bvK6SzWavKS{WvKVS{WO-M-M\P ዩ<34P cepP@pP@D  R_HR[L0R`Sf!0C@0 D  <KH LKH K ^S HT `tP 8K1e8 4P dPp @{E 9  3L  @@1/PT P ቬ=Y LK0<[H QDP ]q(KЍtp p0 0?b`\ \0 07bLH H0 0/b넺xW첄S$wW@tKS4yWsKS1yWsKvS,yWH-@xP hP X13(`PsxP 'BP1PUܷķ@vW(%0' R /O-AM`pPP (@ '( 02( 0phP (yd(,@@D  RlHRhL0RmSs!0C(0 ,  $K0 4K(0 KtR  P pS pP% Dd P $ -c@P 0[D,   2 pL @@1/PT P 0 (DX 4K7$[0 Q,P dpKtp p0 0Ha`\ \0 0@aLH H0 08auWDOp:tW\%pKSXuWpKSUuWoKSPuWO-MPPt <2P@T Tk*qp`  PU PpWP pP`@T TM*qo  |P pWPo1Q/ ЀP@T T'*aopoA@p`  P`W T`W o 1PAAU:K1댬rWrWrWM-@p@W@@ W*APo`qp2p`  O-M p0PQ L`@0P`E!   Q `  p=jop@@@@SdPU  U 0 R0d! 0 3/TP D`1 @H@PU U 0 R0  0 3/P B1P& LP@T  T 0 R0t  0 3/dP T 1P U: p`K耩oWoWx oW LP/1H-  0 0_ijKSnW 0  /H-  XHM-M@8P xR p,`G( Ak4V A@(, B V  H0 0|  0 3/(,0 S R  A0 000003/P nKHHp$0  C / 0d$A/L-@, QP `nL迿LL-@, QP OnL访K-M@p$HP(P,P0P4P 2/8 #LDH딐 R %Q$(Q,Q0Q`PVP P V(*Qmpa ``p   oS P m Q* \KgDH- a HJO-MqW0 0'R`0' R@0Q  W%*T Aq @Q p`QQP m`P Z  1@Y`P m W/:&SP PW'*V @p A q`PP{ km`Z PP  `Y!` vmW/:&WP PW'*S @p\ A q`PPL 9m`Z PP  `Y!` DmW,:&kP `K@p+Aq qPPp  mPY `` X ` KOzKP`V``pP0 O-Mp0CSuP` AS@LylAHp7*YတY44 LS Y @WRK 0@ @ S *Ap0A@W0C@@R @W Y1 R- l 0V H@  W@`` H0CR  p p@W `T@ lKM-P 0@`PpP0 DH!BLP5"0"AT" @ 0 0M]9`KSfWH-MP@_ 4! `N CR P` `E D9  D_ XQdZ SN (<Hp` AP"\`W[  OpRL `@1/P ἧ`@1/P `@1/P ᑩd'LP%P (#Mh S K a6eW0H-(<HP@ A!\@U[0H-M@P; ( (KT(@ppP Qi ᬚ(K[GP (`K PQ 0MGP ߚP Pz(KTK茜؛ TTL-@(LLh 0H-@DPQQ QP P P,P 0+QP|0,@H (! (@H  jH ,( !(@  B_P   @R  @Q( (2/( R  @$0f\d  @R?   @Q( (2/( R  @$0  A. @$0 @ @ @  @ \0,H (>!(@@] 0$0@ 0 X@( 0R( (  (0a @$0  A.  @ @ @  @ (KЍ   tOV)Vj4W1W(KӋQpL-M@P+Q PPHPD P@ P= `P@ 1S  R:P 0 PP*PKp\ 0 &;Kp,0 PKpb/W/W3/WM- pP@ ^`P # 1/\]P p`@ 03/ `m(Xd(ddSL,0Q/  ;.WK-@ P  Q`{ ` +@`{ W:+G KvQMvQH- 0 0P 0 0N}%K2SS0H-@ PPP ]PPP0 0 O-M@pPp`p pŰPp  ᶴ p P  KⶴP ⱰV] KpP P p PN ᜴PI  㗰P  p P ዴP  ㆰP ~X?尀~XX?  @R  @Q   2/ R `V p  KK A .@  @  @  @ KH- M   R R0 P РD 0  Р  0)WUO-4M@ I1P  0eKP P%R p@H T`P Q:QQ#P>@  @R1  @Q   K2/ R      A .  @  @  @  @ XU P  0 ( 0Q qPSr AP: #S`v`p& C` $PK R4Pc0 S  &(  ? 8! 0 "-`0|0PS2o@  0\  pW?:K$KG>,$  L ZG(Kh&W)W=KKQO-$MR f @p`. Pp 4QE p  @R  @Q  2/ R P   pW A @ @ @  @ pWp 0 L Z Z: P$ 0 K$Wd$WO-$M@ZO @Q`P W3@ pp0`p  Gp^Pp 0W W Wt 0 0` VV: X8 0KkK#W#W#W#W+$W"WO-$M@Pq  ? 0Qd qQpP a 0`r' 0y Q$P  0 f%P* P$    P@@p P 0 0  R AAY:K"W"WKW"WH-M @`P.PpK.P PBPp@ .P; Ot R R R R R R R R`.P PE aP |0 ``KH# Q ( 0KWG W WM-M0 1P`p@y.P t.P PBP YK0. 2 0uK?P PP0 " 0 PY; l0 PD 0A, WeWWW WUWֺUTWO-$M @pO` Q~P `PV P P ~P ~` D` 8Q P@@PDP PP0  0  `  0 @P Q~P PPU P P]~P ~P DP PPi0  e0  P  @RK @Q  2/ RN )    K  Qv QT P  PL"p@ pP  p  P p@PLP @gsh  0 A .@  @  @  @  K  04 P PU0  K0  `K@ P P @W ?P9@P5*@PP@3` PP0  0  `T)X  0P  0KᤱP@WUUWWUWnUiWM-`@V#*P冀WpP  1/tWP `pX 03/P Wpp="KKtK&SL-$@P WHL-(@P WL/H- }PH/H-PM@Q) 0`` ` lP1/ 0 pK(E,`` ````` `$``7/` P 1/` P 1/KQ ,K*,M`pP, K` ( ,` $  )P1/ K0K(K @K(E00  ,`` ```$`4/` P 1/` P 1/,, P VH-8MP 0pP -* R +M`` ` P1/ 0 @K(B,`` ````` `$``4/` P 1/` P 1/KL-@V$0 0  0 0 /L-@$ VL-@( VLHpL-M`@Q PP,Gv"Dv  )9X $9`Ij 0  9 sVKpoyL0H-@Q PP,v"v 8 0H8xLH-pMp@`Q PP,u"u 8P 8d d0 }@ 8K+xLpL-`@Q PP,u"u 88 8(T$  pL8owLLwL?wLpL-`@Q PP,u"ua ~8 y8pLvLO- MP@"uP6 萟䠟pP ` P`S   S4 cup0!S S S  "S \S  58P"DuKvLvLvLvLrvLpL-@`P PP,.u"+u 8$  8{up uLpL-@`P PP, u"u 7$ 7[tp{tLpL-MPQ @@,t`h 0  7 UKpQ/,tpL-pM@`Q PP,td d0 P@z 7Kp0H-@Q PP,t$T   0H|7rLrL0H-@Q PP,t0H0H-@P PP,ot{lt00H-@P PP,[t[Xt0L-@}OtL-@]Ft0H-P@{@ @!0R 3!?p@0Q % 3@ @@0Q 314p,||x||0H-Q" Q% 0Q]x0  CB0R2 AATQ0 QQU.T:S)@o00  CB0R AATQ QQUT:S0Q N3o 0Q o300蜠|(|L-M^@ Lhhhthz 0 %KppOKPPg<< 0qK|8|$||t||||O-M`f@pL @PGPኀW YZ PY:\@ @QpVp  P4 qW/ P U0SG1s# pF00p 0 GQP P P  KO-M`f@pL @PGPኀW YZ PY:\@ @QpVp  P* qW% P U0Sp FG QP P -P  KL-M^@ <XXXdXNIK``_ 0uK<< 0 K|h|<|||\|P|,||O-MPV@pL @`G`ኀW YZ PY:\@ @apUp  P9 qW4 ` V0SG0qw' E p r   q  GQP P P  KL-M^@ <XXXdXppIKPP_<< 0K|h|T||x|l|X|d|O-M`&Rp! HHHHhH  `&D` 44"B 0"B 0"B 00K`@@ठ@PP qXT qqW X:JZ`o `Q@qR@ !Q; aV6 P U"SPFQ+ B F 0r`p0`ps` 00 q! FS@Q Q PKKKK||}d }"} )}0,}L,}H- MP P PhhF \\88 0 Р Р(*}P,} ,},},},}O-M`fpCPJp0E࣠0@ჀU ^S P^:Zp pQ1S``3  P) qW$ ` V 0SpyG  RP P P K</K-@ P    $ (J  pW `@0PsPFR B  $p  ,$/$Xq/$Xq/$//pL-`P`@`P>P z 1/0>P ap XB@@P P;P xp5P 6;HQF>#L4܃كككx݃كd݃\݃ՃH- tQ P `L1/o*H> @< <0 0;+,( (0 03+JRSVїJRfJL-HP > @K*,@  0 0+YJRƢV/ḫ/ᤫH-   *JPH-   *іJP7H-M@,` }`PѼP+ P+Ƽ`-P KHl+PP| @4o+K(L-M@Y+떼KM-M@ዼPPPP˾ PP   0 0   @ ZHH+p!孾P `PV P n@;-+)rPAl)i4,(op pP p@     ` `H*KL-@P,WLnL-M @@oKP/ጧ0H-M@P$  -PQ / ^Pl4n" *K0L-@  9Pl4Ln0H-M@ PU 8P PP@  3 P冻 P倻K0MЍ5*0H-M ]@K0H#*pL-M@ mP*VKp 0Q0  /L-M@     c)qP,l):4,n K    /M 0 0 0 Ѝ/L-@P 80H-@P_qPmPÎXP7P  1/,7P 0ĩ˃!S0H-MP @T 7@ @@PK0 Q/ Q/pL-M@U)P`PPPP `7P`P` @7P`P` @KpH-P@ `V pV P 77W`U P 77P `V pV P 7z7W`U P t7o7H)pL- P@U `U P b7]7VPT P W7pL趈pH- M, РH- rP PpL-P `VV @8 м `P`VpH-P `VV @p   `P`VM PP   0R RPЍ/pL-`@`P `0``` t  Bl 0d`H0L P`T`X`\```@`x0| `````hl`pp谕VipL- @Q P  2/BDP`p`YPP@`SJrBpXhL-@CL9hH-M`@pW p `pW pKW 1 @PP 0 PH 08  8P= NW,  1 @`P7 ,0K 0BP@2`` VP!7 `R  P&P(   ```! 0 d@Ppp Q: p Q~:| ``  QZv:FVi`P  0 R  r0 R  $(P@PPT04 0, @DoP `PP(`pW8 {p 00䨃Q@ pP@`V5  `P KT  pqKW 1 @`P) 0@ 4/'W 1 @PP( 0@ 4/P'6V  1 @P! 0K@ 4/P (G`@P` 8PP @ - P @ @}@ %  jrJRJPM--Mp@P`V D`   `pW p KV 1 @P 0 p`PU tP 0  #Q@ pP@`VKV  1 @P 0 AO-M@P Q'  e\-PpW! Vp?p:P5 ᣻@ P(t|Bp!P Qk[KOXbpwpWp dp DpfpFpCpqpQpP`V `p E     +b j a + 0+Q0?G& Q:2tSsS:pz3@2 `$ BR7 q ÒRtS 3C @P qÐ  0RApPA `V  `w $ QG`PGpW  pXP KT [KK    +b j a + 0+Q0?G Q:2dScS:`j3@2 `$ BR6 q ÒRdS3C @P qÐ W 1 @`PD 0 q8P `P$,8DPx 03 ``PP` ` `P``P`P `P A`PibQ! :b됥aQ0  0  0+P U UP G- G K RSpL-M`P P  P*0R@R Su0 @PKp@@nKpPp0 @ 00  a  P0 /R RYQ` ]  0p W WP>F-E  {0P(  p 0R!*W  `pPP\`p@ P uQP QPP p  R pPUPPp  @P GQKO-$MPX  P ᓤpp ` P*0R@b Sp   0   @  GuD  0np W WPXE-ME  @0@P7   0Q0*pP@ WpQ#*@W玑pT\pV P`@P P P  Qp!p`d @P PK R  @pW 2Pp O-4MpPX  KPڣ ` P *0R@b SvAV K@0      00ᇎ  0@ T TPE-D  pQ PV V@ZOVI $  R *0S -SP7* R 39Py  Q @Q'  p/O p@ 00S0@) @Z$ O 803/2X: (@$0@(P< ,0 Q3*pSC0WpQ&*W0玑pP \20V2  `P @P 0O P! O) `0   @P 0wO  R4: `0 ` @YOP 0 K--MP @QW0    T ȋ``nQ Op @pWNp``Q O @ QN`+S@P  0o` V VP C-NC K RO-M-M@nA P4dddddddd(\ AP`    ȋQ `nP OPT `p 叒 Pt  O|` wP P? NG` wP PF NNP'  p P*0R`r ST0 @P``PP `p k pQMP LP= pQMP ډPP) PQM ƉP pQMP ᳉+S{Pp Pp 0 0`V 0' S O  8 2/  0IP U UP B-(B (KЍ R   ^@yJ{cPK-PP*  0@R!*pT  `@W?QNP  0` V VP iB-A  RO-,MPX  KP ˠp  @ `  H 0 ` V VPY*B-A s@Q M` @`VL`p @p@  R*0S :S  $@ @GPo BPm $0 Pe 0NP * R  R @M p 0P!*`S@#0V\ P@P L P 0Mp 0  `pW TLpP 00@P LK $ 0O-$MPX  P pr   @ `  弐 0 ` V VP]DA-@ s @Q L `XKp@`p `  R*0S ,S!  `dPf 0 @P^  00@P LK P * R  R @c p 0P*`S@#0V\P@P K P FLp  `pW nKpP 0  0K-M@Q 0   PQ*pQP!WPE 003/P? P  )PpP=* Q`qRCW1 P 0PP$  P妿  0` V VPA@-? PD Q K RK-@` 0  P;*pSP#0W$pW/ p* Q K pYJ  0~` V VP?-]?  RK-(M@P KP   @R``yQpV* Q``0qRW@Q F P0S*\0,^00R0@P0000pP 0$  p`` ؇r X  0P U UP_?->  R9UpL-@PPP p 0P)*`SP#0VP 0 03/P P 0   ` V VP?-> pPD Q p R7M-`PP9   0P0*pS@#0W00cp#P"* R uR>P   0]` V VP >-<>  R6pL-M@P X,0 R$PKp`   2/P P  0#` V VP>-> D Q  RL- Q 0 Q*S@#0^R0LS @0@ LbVPQ#K-M@ PU*pPW U *0RPP` SY@ PK dcW SW "W PY PY ᏽPK PYY  P 0S@00HpW GP*0s@ P0H-@ 0fP U UP=-E= 0 RO-MP@0P p@Q =I @`<`P RaH P@ M @0 @,,K <0P@,K@0 @`4Q*pW W$ @T 4,  ( ɺ P P (` & P:P2PP@Q:᭩4D@DHᒺ &P`p` P`($P   L(*0Rpb S $A@qV/@ ! PQ F\p@ ` Q*0Rpb Sp Q *0R@r S $A@V 0 L@z9 V$@@@p@ !0 p Q: $@@`W=G ;0 Q 0E 0   pG0V @!0p Q:0 $ ABBWG @0@p`W`0$5@p0$5@p0$(P 0$$70 0pp@@GP*AaA!.rPP* P`*@ 0`G A!W p۹0$S `(@@p`   Q:` $AQ`@P pSE P EP`PN 0PMu `  pPU DP`p` P $ `@P pEK`PN 0Pu Ԙ@p``PN 0P u `ØP` PDQO-DMp@T' PჀ1 Q:P `K *R[P  0"P @T:KKL-@ n nL\H(f/  /Q/ 0 S@o"/ 0 S/Q/L-@Qq@ q+$ l+* f+fUyIUL-  L pL-M 0 0 tRh@@dPP`00\``VP PP@ < P @ IKp2UIxl`dUUpL-M00S R 0 0 R@@|PPx00t``V h PP@  X  KpL@ P @ KpU I?U0U9*PP(507/1H-   X-I/P8\PO@`P 8 00S 0  T/ O) &8 2/ H@ P / R   <4 RQ UPR` `帠   P`L(lD `Tq\POp+@+P  00S 0 Z O 8 2/`   @P ?` Q/ ?5 >P  P>@TD @h1dSQP  tp 0 QPqp W \`P[Q Tld`T(`Tbp`Q |?P` J@ PU>P`> BP9%P J@O, P S?` yU}UA`Vz>`@x@pT\|p HUU K 0dp`PWL`T` @Q ?P U` PU?>P@`P@P  UU U|x ` H0S xbH Q q05 S7 Q2`PS UU0Bd0S`p   R 0 S`X=@@`QO >`@T`Y=@`P0@`FT d0u`^p@`  G  8A~xd@ 06b \|@ Kc$ `P$-U0UQUjUp`V=`@@}TTpP  Q 0R   0p@T0S:d| \ j Ky$$`P]RP O `@pW3 Q P. <4Q%0P0dVS= ` `QO  =P`TP P QQP " `P"Hx| B* *JY`P0qQ0H Q 0 0 @PU<P `\ /O#@@`  00S 01 Y O 8 2/U \ 0 @`W 0@7 Q} 0 0 0 0 Qo 0 0 {dPnP?LPg980$Q,$Q> P`pV0VW pW/pWC@q\88` R.  `0 0S& 00 ` R HpS@  Sp 0ppర PPXP HlpP\ -@&KP`p[P `(l@\V\p` PW:`@0!PSPK H` P \pO0Q*` R @O`@p P 00S 0= W\p O 8 2/` @Q k<P`U0uP P*TP Q;`@\ GP; Q$*\ `@ /Q  4P* {  R 003Dlh  0R2@a  /? 0I \ G0SICQMH Q" 0S S+0 0S p`0r0p0p`P0F`C1S<:p(`pqpS5(R` dR!  0p3W Wp pW `Ppbp`p`ppW:\``G`W`0 S @Q ;pPP0PL PpW:p`@H8p0Q@ T Z XZJ40K@@@  0x| BQp xPP `d`+PaHp @ WP P`vZ`P @ P) K;2(, Q 0S Rlp Q 0SR` 0P- 0C P PM:`P@AQ  ; eUP Q5:`P@ 8v \@@ Op`P@  00S 0 W O 8 2/ ``P@ᒮ PED0 4 8 <  @p@o1+@K d Q LP @P : ` Q9@ :01P `H`PPXPQ @XPXHc\ pQz n:< p6HPPQz `\T`` @Q T:( T`0Pa10lp`Vo``@p 00< T`D\@V DP D\@Q ?PD@P:D[\@P@04PT<8L T``p@Q6 4@QF @90PLP Q!9p p< `P@Px` P  cp Q8@`"0ppP @< `P@pT``PU@80PpH pP`` <@,0傑(P0 KPT`  P, 99<@ T`;` P  ` P  0+S`Pf< /UUUU@ QPP8 P<@ |0Pn (P ,00`@"\(4 4@< L`PL@0K  dPtHP`P@ /;PKNT|2P@2@3P|@  &:P/ Ѭ.GK.KP t4`PPPP`oPd L MPHPP` 0YPPXP04Hlp BQ -A&K@`D,H 0`S@( (P P8P P ` P H  R pB<@pAD0@pH (0HTZL0XA@d *K\P| P ` )GUL\P 4`!a뀐K0d|  P T09P@P `4 PO0``Pu LT0Z,03`P P* 0 K2p PP ,8)IRpUSU` QP7P |0`PP8 X 0\4 4 8`OpP`  00S 0 W O  8 2/X\ 0P` T  d +<D0X?:((0SP@Q `0\ @TH`dPa ` @Q" 7P(jUU  PP0P 70L P`PU6P@H`@d`T#  R P P ` P H0\0pC  @V@K6e P7e`0 3e @AAT* APAU>UCU@Q 襳 U`@O P %7P B`PUN6P@Q@`pp` Q?pW0PuP ~``@P   @O` P @p  00S 0 W O 8 2/0 @PO` Pp  00S 0h W O 8 2/`@\  @P 6  P P5@\PU HPP\d`HTX@ J $ Q6`@@PV (`FFP*DAA!.rPP P@*pPFp V 3 `AX }  QF@!dfX oH@PU$(U: ^H@0 T``傑puD 0P0 \ @` Kc\PHb jKK}(KЍ 0 0    댩 0 0 |x x0 0 hd d0 0 `U;URUUU(U)IRc2R`UUUUXUUU͞IR?UIbRCUIR|U IPUpL-P@` Au`pO-MpP 2@aV $P XW X< \0 4 8 @D@@K?8@K@< \` uDKH` CKT8p p4 0,40P\ 8[`p L PP T X ` 0匾@d , 0 4 $ (DH K a0@X@8zd =e `Kme `SP SXPHT@bb Tc(K (< $PH@LH @PX O  0EpP 8..p` l th0h  0,0l`P t: V:JTX A@!Y:,P4@@P@B0 @h 0lh2Pp `2`3Pl` :pK/ p.7K.Kpp  P S.DP /  @X >.h /@ /4 hxpl hdhQ x 2/dd`hx@Z @P 1/1/@8< 0P P  =@ T  =@ TP  =@ TP pK. <P<  p, 0p4,`@PP PPv`Xd K @AAT*( 1ApA 1`@QU q nW@< <0 0 dтPтk̂U͂0͂hcL̂UMIQRK-M@ `D P WP$P 0 @PPhPlPpPtPxP|PPHp 03/PPlpPpU [ @?SP[1/PU [ @?SP[1/| $03/   xptWx [ @?SP[1/]PpU [ @?SP[1/I .`,pOP - AP P,`,PP - A` P,P+.(, Q*(($ .KO-M@  088Q  2/8@8`V$P@ PPltp(s  @ $ 2/P 1/`VK]]pL-M@@60P 8` P = pP&kP 7|  88Q  2/8@Kp lP c7Kp(\0H- P@ = pP0HkM-M$P`pe@P @@p~I@ `p`W [ @?SP[1/2@P 1/P /RKtZ[pL-@@╳$P(`U P PVPU [ @?SP[1/xPU [ @?SP[1/pPU [ @?SP[1/`$ \ PP PUHPHPP x88PP 1/$P (l P PP !e PP cPU [ @?SP[ p1/pO-M0P @AAT* 1A`A1@qW  V0 !7P p 02 @P`T `@ pB` @ `_ `PV [ @?SP[1/2 0EP0QP 00X4+ 4 PP + @ P*P4,(, Q*(($,E `B`88Q  2/8lP(r(  $  2/`P 1/K$ 0 0_ VUUtI6QRO-$M`T H @ P +  PP 8*@ pp@PP  00S  0R O 8 2/0p 00B Sp3 Rp5R S0% @AP0`  `0pF W RW -@FANUA0SP@ Pp0pS B0 R  vU!p  0- 05P] PO`77P0 0@T 0) S O 8 2/! 0 05P+ @PO0`P 0pW 0 S O 8 2/K0S  0 0X 란UUepIQRH-MP` PipW .@ p@ , DQP0 T [ @?SP[ K1/hK 0 0 |P)oIQh}UL-@, DQP0 0 0 nIrQ|U0H-M@lP((P\  @$  2/P 1/K0O0H-M@lP(tP@'\ @@$@  2/@P 1/K0謲tN0H-P,@@ 0LM-(MP@Up `@` @ 0QF 8@ P = pP)gPP3 @ 7 0`p!0 @1p0p00 `0aap0 88Q  2/8P1!- @T P`V p6Pp X U`pPW P7PP X V`P  KLH-M@ P 0```  p `` ``00H0P` 0Pp``` 88Q  2/8@lP((\  @$  2/`P 1/K4KPJK-(M@`Pp  0aQ   $tP )m hKO-DM @P4 P U- `V pW 7P W FV `> `V pW @@7P@ W 0V @`(&PZ"D`$@(@p ,0P@`<`8`4` pP $`(A@HP8 p @V- ` `P 0>bQ   0$`(` ,`L 00P $ ,KFH- @ P P   P`V p6Pp mW U`pPW P7PP _W V`L-@$ DO-,M`@P~ p`e  ` 88Q@  2/8p,8pP`@  Aƪ,1/@ Q &0`8  Q [|$0h`8 00000 0 P UJ `V1 pW+ @7P@ V V! @0 @@ @d  (@P   ` `V pW @7P@ V V `KEO-MPQ- ,@p`  A ,1/?@ Q %K KO/ R  /O- M@Q:`Pp( T 0  p  K蜥O-DM`@pP+ P,0 P @/0 ,  $0  (SU  Q/* ., AU `0 P@p00 ,$ ( p ppp  p'U (  Q?*( > K`   P U P `@ p0 p$(p,pp0p p ppp  pT $  Q* $  $K0 $$ P ~U K (K$ (( P  ]IO Q/K-M p0pP 0P  -@` ppp P I [| @?SP[ K0Q /    kKpL-M@P`B0` B` 0 88Q  2/8@lP(((稬\  @$  2/`P 1/Kp,=x<H- M 0 0   Р РHu<Q/H- Hk<pL-`@P p/K-M@ 0S <<[` P P o` ```b @,c$`(`,`0`4`8`p L똀I````噰1/pPQ``劰P 0 3/```V [ @?SP[1/`V [ @?SP[1/ $0 3/   PU [ @?SP[1/PU [ @?SP[1/X bbK PO- MpPHbPb`pd@W P` P  03/pTPU [ @?SP[1/CPU [ @?SP[1/0 X P @TP q F P @TxxP `PU d`V `FV P 1/U`dPPPU T@T `4P` XS UPTPDPU H@T `4P` DS UDHP0PU 4@T `4P` 0S xU04Pq$PU (@T `4P` S dU$(P] P XK͖0H-pP@0HaK-M``dpV @P @PP  03/`WK視0H-@dPhU P Q 1/`0HnP 2/dd0H- P@p` P 04 $( HO- MC@YP`DI!@q A@R5L@P*A1A!.rPP P0*01 V0k I !p pZ  pR` Gq1pG'Ap`1Rp` pQLpNRN Y p 0pZ^f 1@@ S *p p S:^  NP@q!BP (R ppWPE V> PpPP R a`pZ/ R0S  `A! p`ppS @`T P4PP Q 3VV -@KXꠕO- M `@P =P \Q@pЀXKO 0 40$( CABJH P1Y!@ QY)  G`JApQPPpP( B @  2/P 1/pKh/pL- @`P` $P PQ   `6P  cQ `H pK- ` ? PPPDPQ p@4P CQ @,\A\p p$ pL- P@ PPDP TpK-M `P@ = p`'_`pdPW  `@P  03/pUKK-M@P P;`pdPW ```P/  03/pUKpP_``pVd@`W  P`P  03/pTKwM-M@ p`,P WP HLP* HHTXP * TTDP \<\Q=P h K(`#X @  2/P 1/<$+0H-M@P(T @  2/P 1/K0*0H- P@ @@@0H H- @`P <pP, P  P !R   R 0`V ! pK豐O-DMPp`@ ( p8p(00DJ 1JJ$pp@p.K-M@4P勴 (^ 7`p`DbD 0^DYD^ 0VP KH- H. P/H- H.-H- H- $8@wH- @sH-L-D@  P 7{ vL-H@  P !e `L-P0H- M@x 0   0P P0D PP S@hK05U5U5U-H-8M@@ 0P9 Kh P KPK0$0  PP  ` PP0$PT (, Q*(($ $> z zJ( T0XAQK0C P8` PdhQ  2/dd`U P 1/P PTX (Bt  0 Q1AS` p0h@T 0UK ab,L-@a    //, pL-(MQs@x[| @?SP[^PἘ<    NQ|[P%KpP➘,P(P P  ` PPPg(, Q*(($* N⍘Kp  yI{}OpL-M@P` B` 88Q  2/8@lP((,\  @$  2/`P 1/Kpp, FO- M`* *JJ @J@Po0CT%U%@QPP@_ hp@QP V 1/P 2/W; `FEG@Q  R    2/@DVW pGW P 1/VV KO+PVK@pꢇH-P@`@FP?* qBA!.rPP2 Pp2*F!`00qa`PU EA!! B5V0`PVp @6P@ C UU HD+pVH- ῘH:+pL-@ ` Pp \Q*k ` Pf =`d V ;P P @Y @@@pLT @@@pLN @⑘H- @⍘H+H- መH+O-M-XMP @    D @ @ ` =@ T @ P <P< D  @P  0KЍ7D1/(4K P0 A̛剋<  p @ ` PPDQ<   $ 9P B )$P\,A\ U& h,(  P"C `0 Q0  @ ` <P< @k P @ ` <P< @ ` PPD Tq @ `| <PRQ $0@ m@o@  @1P *1 @} y U@ l뒞D1/0 A@ `Z `(@ `   4 2/44 P 1/@ $?B P>  @@(U@bH- @^H) P L8P\ht////////|/x/h/d/\/TTT  R/ǠQ&U%UyQ%U%U%U%URWR%U%UH{9{?{xQۑ{O-M @Z0KPp `,P 0P $P (  V *  p$P,P(P R: z p`$`,`(` 0p(0K$ KZ~P| (p0$pp,`@p$PPPHKp 0 0 Q UI:jQUs0pL- MP@QH`P PPJa `P `AP8`sF`P !PPp msa0 ` @P"P  PPp 0 KpH 0 ( 0 K'UU#'UUH- M P РM-Mp@P` p p0W KpP`` 0pq pp,R R2!08 ,8DP\ht20Rz R00Q:" ,B P| 0$0<HT`lx. Y P:D" KMK ,P# H10g10d10a10^10[10X10U10R10O10L10I!1 0 ]    F  U1QS pA Q0 001KR R 0 0 R0X00T  KMT00'QuUUQUUU}UYRRlU\U{˃{UZUUEUۄ{CQ{{ DbUU^U0H-MP$U(T@@ 0  0  C $ 0(@0@ > K0L-M@$,0 S 0@@@ @ @A @$@, 0 @ sKg!UL-M@  KM-(MpP@Q$ $ $ P    Q ,`X`` ` Q K4 8 K@<KpL-M0P` 0 @QP P 0 (@ P @KpU{O-Mp@PAUF  @P$:QT @֌Pt 0  PP$K  0  !UUUo/L- M@ P b KL- M@ P K KH-PMP$`@ p @R@@@@$@(@,D@@@<@8@4@0@pH* 0 07  ` p80 R@ @!$$P 8 K݀@LOBUڀH-M@P`PPVPp ` p$(,D@<840H* 0 0  0PP8p @$$PP < PKT܀0?JOUhـL- M@ 0   KO-tM`@ PX*(p Qr{ t@U:( (`,0 408p,`4` 00`pK@P0`,`4`HPDP@P!0 H!1 0HpHLQ*L!@H1 04 K@X0\p4@ pW0@ ,@(@$@ @04,@ 8  @(KT( K@@@ ([ p p$@(@,@@4`8PX`P@ `^4@T 0Q P 5P RT40@ JK} UրAOU: UUAOU8 U0 UW UU UU UBO UL-M@@ ^  0@s   0@ #^ 0rC @  0 @ 0@@KC U UO- M@嫊 㪊J@@PH*VUAQF*`pPG W6  DE GPG0G H`HHp000@@@@000 pGZ@Q P 5P TT KO!  TK"}L-M@@ 0S @ r @^@! 0@ S 0 s#R@@ 0  0z@  0@K UC UO-TH-M@ R* P O0   BRK:pUp Ep P-:0p  W*R$封(异 Q * xxxxP @ QP K$  KsDT,TTO-TM@Pf`@P&6 A0>`$p`P@@Vሠ JRs`U㄀删匐 p  Z*R$ $ Q*`ll $ P50  P 00EStupl@P$`T Xj jJ0AP]*i `P$Q$4 0$p$`tpw  BPS*`pRU P P h$h4 0w$`tpSl pmfK0ACP.*``pP` ]# w-#S3 0 0 t# ip$Q`0  0 ? < RS(#(3 0 0  # J`p&"0 @ ErpWQPHP $PA@Q:P Q*`@V  r  J@ P@~y0b P>S`PXP    0 ! p  0 P UF pR 0`@0F`~rP *PZ0 B`2W23W` :/ 9r.Q. UR0 R p    0pX KrT`T^TTTTTWIPTTjTnTHP.TT=OyTT OTT #O ]TH-M@p$P5T : X:JPAP*$P QP | x0 0KHSH UD0D @`0 ` `CE$KT:TLTDPJTOTO-M@$P ,Q   G  0  $,Pp! 0  `` VJ*PHP$p t@W5 @P%:P/H $( T  pQ   A$ (0  0nX 0 0 t@ 0KTTQTWTTO-4M4@0PeP # 3 0XX $lpP"2 0 v  娢p@P Pv p@㤢P U*P`P+P  <"0 ^ 00$ lpAK@Sn* 0PP P Pp! 0 =$ Q* ` $0 pP`pL P  (Y K Y $`p㠀H$`pP T: X :J BP :R 0 0  0  Qu  Q   W:ll W:f8  KTTjTU OTTTA"rAPAP P*B@Y节 p` kV KOK@kK-M@P P  |0BSp 1    8#0 #  H0S #A3 0 P p`pV:"2 0pV` 0``0P0S&*Pu`p R~ \V`Pb`aRDD"` kPw 1\H@XP` !0 0W````q RN R! 1PQ10PM   BQ*P$*P"oR {Rq  0 Suj   0 S_T  iKH 0 b p`pZPL  G ThNTTQNTjT'{(T#'{pTHO'&{HT@T8TxHeTTpL-^ $pP+ 0 PrU'`@Q(($(@@PUPUD00CPd000$@P$P@ R 0p0 0p  뱢HOO-$Mp P@` U 0   # @!R0!PPPPPPPPPPPPPPPPPPPPPPPPPPPPPhH`Q``; `pLRPP `4 0`aQ" qN``PPSEP`LEP`E $4 `0y$$` 4 0`o-3 0` ``AV*Q6 #3 0t#t3 0M` `3 0` PEP1*,#0 1 PP`U+#0 & &P ``p" 0  L"H2 0 ` P``U  P H" D2 0 0SF XCpQ p1X ! ࿬ 10X!T  BQ*P%*hT  BQ*PK   K |0 0H D0 0~cTiNTXTTھT}NcTNTT9N#T6T˾TT]NUTTT~TT{\THO{TȻTTHTp TH-P pQ `@v 0  `Q `@v PP .`Q `@v PPPQ ` `4    0 0'T=N TwTǹT T0H-M \ @PtP U@@@ \ @ |SU@8@ @ @K0PK0CTTpL- P@U `v Pp`` p`U ` | Pp```U PP8  xQ  0 0T-NTgTT0H-M \ P@u^K0PP ^K0@\ @Ptǎ \\K00   PPK0TTpL-M \ P@u^`` % Kp@\ ` Pv%BΎ T,  @Kp3TTpL-M ^ P @`uATKp@ @ KpP^ `PvE TKp,@ @ KpKTTM- PU ` p@vx W`` `U @`tl V``pU P  P<  UU  0 0'T5NTsT˳TO-MP@IP**pAA"rPP P* ;`I@Yp B fX@ KO K`fO-V< `T6O- MS p@S WKPJ Rp0@0Gep  W  0KO* 0KPb 0P0G  P# PPp W'  R`@0@0D@ `epP*pVpZ pZU @ @0p` 0Pp` KO-LM@ (PZ p(QZSZO `j04V00 @ C fe4P:@3(hpP5\,* , @b"$  pR00P$0C@P9e4 P `V *`V`V,pN@>x  Y  0 A"$  , ,p੠P0 0`$@A`d 4pY *,YY,,Pp`a ^ Y (  P ,P'( 0PK \r PIpd pi jh( 0PK YBR  pd p00KTL I0`A@b4p@Zp 0`  P$P 0PK P0pK P\$P P4p 0PQU 00PK 2 0pP `P ` IB2JBZ 2 2S0pKP$` `( Ž4p0` 00K( F`gPBAAP p0  @ p  0 PPPU(PK  0xK0K00KKO-MP0d p@P[ P @  Rp`P0@0EPcpp 3* X `P$ @ P R`0A@cpp* H@D Y   P PP PPP pKO- M 0Q@Z BA 0 p ‚ `P@ p` pp0PQ@ Qo b@ Z\ pF JRP0@0Ejcp`$VO*$VH YF JA 0 P ‚ p@` Pp PP0`Q Q.  b@pZ!  R 0P@0E,cp*XD6X@ V cKKO-$MP@ Lf6 Df6@! pW{  B! 2#3#@\WpW0i 0  !0T p1 (  p 1D E 0D DD @p (G(L @ p(0CP  P R (@BP U U KOG 0 UKQbK-M`P@ P-   P p0 0p 0pxp` @P:PF `aK8 0 ( 0 TTLT0T[TK-P `@FP'*A AA!.rPP P@*OpF AV  bY@ K@paO-AM P@pDK` 0D@0 S @0 SD0|``@xp`p0`tt(x0(pH0|0$`,0p Zt@`tT P xxP |p|pP DP@L gZ 8`@@ZP?ELP@|<@ |PP~< xTPVP T QP@@:!" "?`@OP >@ AP@Tg@`H(X- PH`? Y : K H$ P pWpW  P PV P:/ P  P H]@ 0 X@|LPKYIYPt 8`YWtP DO@PHT E0]Kyr,rkL-@  @L- @  0AAS * AR0 QL-@  -<LxO-M(`PV F@?p W: $ PYKOPPPT P:PP PY KO-|M @Z80< D Pሠ  @ N@@`p @PP @t  M @@0 $ 0(pK(0 0B0 0K<D P(pp8P$@$@K,`0@ pP(@<T(  P FD$$ P B @@P @ ;DH0<`ap#p #YhP98!a7p4P1Pἄ,P:!" "P  TP P`塳P 93pQPY PP`吳Pk (@`@@P`vPA e:!" "P@PbP Pu    u %< P 0Bqp@@lqp@@@h:!" "P,P @ A`@T;@PD(PU- `Ep? X:D$ P ZZ PP"W P: P  P D18 0@HU뜀:!" "HPp妲P >P 8 0U WhP <@UK sxlh8lO-M(p$?PW G` U@:@@ X X P V P:P  PPV㎞z`W@*!P P0  A * *!Zᇀ@W:G@@  !L   Q1 s(pG U*@@^@P  , `P G P:F`00KpL-P@`1`AU`P( 0pL贝K-P`p@V PP`PP*PP ``PP pAPK-pP@`[[P>:/R@[/R[ P FP) `"R / /"@P7(U P (( `P:[ Q+[Q[\kL-\ P@! 0A@T R0 R\  R0 RO-4M@aV P$PP KKpW AAYX* P& ` KpXG @ATF*@@TpX P LJp +p` 1V,P @J `P?U,P PS AAY*` qpJLgO-LM p@YP0   PJ,@ @T  ~J ۜ $ P `P004( (pK,00$K 0 0K(pp$`P,`A(P@(p U P ќϜ$$p P ͜   P ǜP AKH-@ PAAU*AaqW $P 8p < 0  B!VSp8PU: 0 0 !HƃPBTM-@ PAAU*Aaq8Pp S8PU: 0 0_ H6P>CTH-@<P <d{h `P \PX`XU  ` pQHWPTP PLPLP 00 T `4VHP D@P@P 00 H ` V 8Q ,P PU$`$`P P`U P P PU `V p6Pp UPO-M X@ \`Z7 @P, p 0S002p!0S W  Q: R  R  0S 0 PU RAPJᣛ᱙`ZP`P \`X V  ` @哙ኛ T`lPP %yP! [/R[@"PR/ /"@P%U   R0 K00 [ [/ R/1[Q3/L-@ TX Q 0RM-MPp` TXP 0@0Q!A: :J(!KO-M`P@Θ`APjp 0pZE xp֚  0P`Op`V pp` PP*pP ``pP 㮚PAP  ⽘K  .eP P,PP} HP,P  0@TK  HqNO-M@ P `@X PP0P  0PPPwX8< ` ql<PgXp8@ P% ( , $1 @@@ @@@@@P $ P@VoT(  X, PA@1lp pPڨ!000:00P6 MzOPP X@P  XK  A h/T HoNO-MP @p`p`@  00S 0ᝩ TO   8 2/`p'P'`@  00S 0| T  8 2/ KM-M@P @-@`p`p0 0PU 0G S O 8 2/@EKO- ML@`ᔖ@Pfnp, @P O A` Px@0  Dp04p8pL-@034O-M`@P,0@P  Ap P` $T偁PUJ p @0`00CZ0 aZ0 aH$l000 0@00 @2`   0`00` 0@ 0`<`80   @0D` @0`@pT$@`AH- K-p@<`A Q 8QQDP p@EWO OK-MPD` p7`F@TP  8K 0 0 G:UPT  0Q P H- H3/O- M`0 v @<@p P pP@  00S 0 TO   8 2/ p O@`OOP ` 00S0@ @OOY  803/@ @0 ` @0 P`_Op`@ 00S 0ᯢ P_OT   8 2/P_Op` p  @ 00S 0ዢ P_OT   8 2/` `0 ?@`Q K0H-M@0 P @Q fK0M-M0@OP P p B`pWpPP0QK @ \  pQ Z ` R p PQ003D  0P0@a  `\ \0 0a 0 0 0㓧K 0CTG>OPT0H-M@0 P @Q K0O-\MP< @h`TZP$@D[8Pp  0 ` pC  ,@ (08K4`< /O`  0 R=0@P  PQ,@,8c<PO@ Pp 00S0p; pT O 803/<0@P k@ PP,@(V?, @ R8 @0P L@ PP,t@Y!,@Q PO,P ,@T) A@TS@(PT8 0@4 8 !Y PPT 4RP8@8K 8PK.4(`[p8``BTD 0^$Y$8P `d@pY  0 `CX8K ~8K`P(@[P@P 0epX KHD D0 0~ 40 00 0~ T T TGG>IPE TiGIPyPO- T& EG/F!!!!G W U@:D@0@ P Z PPX P:)0P PZ P P 2@PT P  P M!KO-M @pT TN*aPP`pW4 @U # PEEP5* FA!.rPP P)* ΅@E`U  3P aY ܅pWYY @XUY KO,K@3H-TPP`@V FPV P PU ` pP ` ֒명ᨅWPP 0 P H-@PQ A JPP`UH* VF"@  o!pr!  3 W   P:@o `%UP1U:O-M@Q# PQ[*8P QP UpXE E Z: PPP 2P0 qpW( Y P: P  P !R   R 0`V ! pKx2O- M@pPD0 W :`p0pp`P V S P: 00 PP P S- P: 00 P P S P:@ Pa @ P KPL-@@5L-@<5L-@2L-@15pL-M`@P)50 A  `KppL-M`@P40 A  `KppL-M`@P40 A  `KppL-M`@P40 A  `KpL-@L-@L-M@0 A KL-M@0 A KL-@   Z_L-@  Z_L-M@   Z0 QKCL-M@   Z0 QKC0H- P 0 @tA!@ : 0 0L- @ 0 (0 L- @ 0 )L- @ 0 0 0o/1/Q0o o/UUE@33C @ @ /H- UUE0 @A3333C ! @ ! !!@ !  `q/q/L-M@ 00  @ K j;+Kc+d+P K;d; 2 Q1+S10 A P/P//@΁ P//,΁(/O-M@`p, !(P(P  P 㥎0L`O 0FpS :r  0KO PAp [ PFNR 1R bx  /   A L-@0(   (H- H-   :s GFP 0(04 0/H- O-M@D @B1* *JpW5 0G`CFa V2* 㪪@ WDCTU@@PWဠZ5 $`Q/ 0S p3R` p%`P  005 E     (K`S/,/@ J@/pL-`@PᧁP@p(0S    M/@D0\00H-  " */0/4//5 5/5/@D@/K- 0@p`0GpPpOz 0EzJ@ C1D H0APQD'0S+*@bqw@S@1S` Lt@ D0Q 0AC1`C01Rp`F1@A(`.D 0 BD "/@/K-M@ | ` 0<8P Ϯ@ 0p  0p$PKS`O-4M@PW  w pWp U  y TXQ^  J p,`  0$ Q> ! $@C($@$ @@   @@$@$0 $,P,(@(@@@@@@ 0@@@@@J, B(P@  p 0!  pS   $ ,CR Q0T`XPV P  0  0@`UPP,P0P4P8p P0 PPPPP P$(P,0 S8PKhK\d=K`K0 TK0 @K0 PK0 HK0 DKsaKT_K LZKPDKH@VK<K8RK4 K0GK (BK$r, w          KN KNKN KN KN  K K{N K|vN KtqNxKloNpKdmNhK\kN`KTiNKPgNKLeNKHcNX K@^ND K8YN< 0UKK,RN( KK$NN4 SKK GNKN KN KNKNKN  GK K\N K?KK K KK 9KK KK7KK6KK K 3KK2KK1KK| KtKxl/KphKd.K`K\-KXKT KPKL+KHKD*K <K@ 4K8 ,K0 $%K( K  K"K K!KK K~KKzKKvKKrK KnKKjK eKcKNK IK0(45P  `LnP@  DVL Ul( PEV( V,,,,,V 4' U,,,,,,,,td,,,,hhV@ t,,, J;T0<  \XVXTdH LWOt' 'SLG<LR|W|  G|QU #=<(h=(J 4$<>?$E?L @G< p dXLLO0QU@.S`P.|. QDR`M@A %)TO|T/TMMHP@!4$0d))01*A%4B8IHHJ,N`*&K=! BT1*HC`F0L0"0>12C(D GL++D,,,,,,,,,,,,,,,,,,,8E22xE@33"+P#\4d,&4@@t556,7,,,,,,,,,,,,,,,,,,,,,-8 :  o0BSr@`@@m  0'|q0@`" @ @<@ @` P # G0pS!0%W!- :CpK   ( &4<0"  0 po`GV@@@ p0A0Q^(`VX  p0W02 !0S`RpK 0S H`@K "@FF @"3FXK "Z  0p @/03 +pp'#F&Р `p ppp 吓:  0 10\!@@"p@ p!p`BK@@@ W p  " "2`p@ "0@0!0* sK:|1@ 003 3s @^&0  `p ppp  #H!@@"p@ 0p`!pBK@@0&@ ' p " "2>  0  AP@` $K# $! 1ppp0   %$2@ @K2//o?% @%<5@a@ "0@00!p2K0W  00" "r~ 0 pw p0wp0w0q0pGpW ( @Tj `p0W02`!0S@V^ 0S`[0  v  E0p0  `p ppp 吣+0  `p ppp `p@ "0@0!0* sK:1@ 003 3 s @`D` "D 0% p HtK|p国s ",0$H@` p " 0  `p ppp 吣@`@ "0@00!p1K0W  00! !qU%U%E@ A3#3#C0!//@(2!!!@ H%K  !G HD5UU5U5E@@ p0A3s B3sC`!0"! o!1o@""1@ @r05K000!Dr"0p%',!@@"p@ 0p`!p00axBK@@@ 0 xrpb`p@ "0@0!001K000! !q 0  `p ppp  #0  `p ppp f`p@ "0@0!0* (sK:1 00'3 (3$s @`D`"D!q Qm$@a@ "0@00!p 3K007"0# #s`@ "0@0!0? p @bdKa324WB BROaW2@0$|t#" pp@D@" `s0 0cKpl p0  `p ppp 吣o0  `p ppp 0  `p ppp @0" @  ?0!` @c$K C9$@c#X(6qT3p 9q aTs6BX0 !4D"0@  0 `0r0@ d5K00o0 4rRo0pd\%@  0$" @4 4! 04$6  \jj1+SsS0+Sp W Na O@@ "p@ p!p`dBKB<#p2"$1pp(1@ d2\b$"0`pp@"0  `p ppph 吣b0  `p ppp} 吓w `K !1ppp0   l"`p@  0x$" @|4 ! 0 sK40$!0 0  # #|s @`D`"DQ"  !#Kh pppָ @ %h u" q"Z *%%5= @`@ "0@00!p1K0 W0 0! !q`p@  0h$" @l4 ! 0 xsKt40p$!00  w# x#ts: @`@ "0@00!p1K00 0! !q@`@ "0@00!p1K00 G0! !qs`A@ "0@0!0? p\dK``` @b3Dr @B"Tt1 p TD\4" p"0T L2@ K!% %5 @D `s0 0cKpd h `C@ "0@0p!0*:0 *`c0003K1pp1 #3`sF@ ,0 A0(E 0c000<6K2 L B054up0<64v Ap@  0 $" @$4  ! 0,40($ c q pc  X#K!00 A0$4tp0{V X#PCw 2@ DKC& D&@6 @ D@K@P  KP0! 0 &K@ 0<0vfJ  @@ 2&  26T @`@ "0@00!p2K0W  00! "q_ @ 2&  26+   rePPv @a@ "0@00!p2K0W  #00" "r+@@ z s 0 0c 5ppp@ `D &"``፸@  ```D= `C@ 0p  0\`c00063pp\ Cp5te`06 f0 `pp@pu  0,  &0L!@@"p@ p!p`BK@@@ W p  3" "2 `C@ "0@0p!0*:0@ 1 *`c0003Kt1ppx1 #2_@ %f    Z *%%5 @ < @K@ < `s0  0c 6ppp0  @ @0G`V :p FR :C K000 0P1K83O! P!L1:@ @0G`V :p FR :C K000 0`1K@3_! `!\10d!@@"p@ p!p`BK@@@ \ p  " "2K `p@ "0@0!0* sK:1 00C3 3s`p@  08$" @<4 ! 0 `sKD40@$!00 ` _# `#\sN4!@@"p@ 0p`!p08aBK@@@ 0 rbJ A`sF@  .0 A0E 0c0006K2 D B5up06 v+r`@ "0@0@!0/0eK```p p00%(u#" p pU @D0"`D p  I 4$Kt ppx 4$,4`O`sF@ (0 A0D 0c0006K2 @ B5up06u"`sF@ 0 A0E 0c000(6K2 H B 5$up0(6 v ` 0 p p  F`2@ rK? B,06v 0 pp@@ @K2P 0 &K@ 0<0vxf@ D @&20 A    X b`5dup0@6Hv@ 0 p p}@ < @K@  [cp 0 0 \pc  ,& " 00Z ch%lup ,v4f@@ppH@ s0@ 6000s v f! pp `'@`D`"DQ ! qR ᅭ@p`D` "DR nKpp h`p@  0H$" @L4 ! 0 hsKT40P$!00 ` g# h#dspp]@ <@K8N  K}P 0 l&K@ 0<0lvdf @@pp` 0@    !K   1v,2@ PK/o"O% P%L5@a@ "0@00!p(2K0W  00'" ("$r 2@ 8K/o7% 8%45[@D `s0 0cKp\ `ap@  0$" @ 4  ! 040$c p pc  D#K!00 At$p0{V D# 0X!@@"p@ p!p`BK@@@ W p  #" "2p@  0$" @4 & ! 040$(c ` pc  #K!00* A$tp0{V #C@  Z *%%5a@a@ "0@00!p2K0W  00" " r@`D`"DQ|  !#K` pppቫ @p`D`"Dq Q] ߫Kdpp @D "D 0!pw pKP2@ K!"% %5 0 @@D `s0 0cKpT X@    Dp@  0$" @4 , ! 040$.c pc  #K!000 A$tp0{V #C'" p@00@@`@ "0@00!p1K00 0! !qO`A@ "0@0!0? ppdK``32` @b4 @BT7"74q 0 pthD#"p p@``@C0  `p ppp  @b@ "0@00 !p b4K0w"00$ $t`C@ "0@0p!0*:0 0 *`c0002Kl1ppp1 "2@`@ "0@00!p1K00 0! !q`Hr0@ 5K00o0p %  000@!@@"p@ 0p!p` 吓58 D!@@"p@ 0p`!pBK@@0&@ ' p/o"" "20" @@@@@`@ "0@00!p1K00 '0! !q  5 呓 / (`V @p0W02!0S`Qp 0S  0  ( R `0S002`!0S V  R`Р `p ppp 吓 @ a@ "0@00!p 2K0W  00" "rpp" 000@D0  `p ppp  0  `p ppp 吣V 0  `p ppp 吣<  `apW@ g"+  p  vP@@R r r r rq #uT### # p|qKLsPs ",0$|qta p `O#L #d P  #KpT pp `"pq!p X`p tKppp嶩\ c $4 " 0ppD pA`p`W@ g" 01 p, 0r7P B@ Qp @>T#UK !1pp0   Es_{C@Kppp# C`@Cc x#K $` "DW=T X=TL  ` K@D P0K 0KK@   RdW3G1 AQ0rÑRdW3G1 AQ0rÑRdW}3G1 AQ0rÑrRdWz3G1 AQ0rÑo@Wv wqs qo qk q fz' P@ 0&''%'S'l'pgp!'Xz' 1 B X ' ;  !  a @`p0+S@cppphtK``2 ltD@ptDQ A C*`p0`c0004KX3pp\3 $4A C*`p0`c0004K`3ppd3 $40" ppp@ pGa @`p0+S@cpppptK``8 ttD@ptD""p@p``@"3 %  53 %  63 %  5 3 %  5p 0   @ 0rE PP吚 +,*[\  @ P 0吪,-吪AB*UV*op吪***!"吪:;吚ij@  Z @ #  Z  @ #  Z @@K@ P  @@K@ P  @ K& P  @ K& P  pjp吚吚)**`a吪*吪吚呚9 :吚  吪JK吪`a*  ` K@DP0K 0KD K  8p@7 3 ; ? 4 80@pK@p<`! `p 0 xO AA  ` K@DP0K 0K#K  @ p  DJ `@(c _ !g `0dpl`Kk l h`6  ` K@DgP0K 0KKH   @ p  D  `@q $(w s { t0xp`K |` ` p0@ p `RPW DQ`FG@T @D pT@%W! :CpK p p#@pKppp3 $ @ 8`    ppF Q X  8 @  2pWpW0ppSp00ppWp1p`G` @R(  `!00 p p  py .s@"@` @pGQ :AQ!%Q! :CKppz `@p pWN @  ?0@ ppp`  pp`  6 $3 !K   1q``pp0    0p, !&@(P  P $0e0u$0Qe $03      `8 6@ pI@K< ;@P Pp pW pvp@@@K;  T0 !0XK @  @P 崒XPs00L|0T`KK0K  p P ` 5$`FG@T @D pT@%W! :CpK p pF`FG@T :@D pT@%W!~ :CpK px pp.@D"D`GpWf :pGpW!@%W!a :CpKp[ `.s@"@` @pGQD :AQ!%Q!? :CKpp9 `@`p pW @ K @KCR s `FG@T :@D pT@%W! :CpK p ppKp#pp `  pppF Q @  .@D"D`GpW pGpW!@%W! :CpKp `.@D"D`GpW :pGpW!@%W! :CpKp `l".@D"D`GpW :pGpW!@%W! :CpKp ` Q @ ~0 p`C`p @p `r0S@ `0 pp@p ``FG@TV @D pT@%W!Q :CpK pK ppKp#pp `  pppF Q @  @`FG@T! :@D pT@%W! :CpK p p@pKppp p@8 `  ppFG   2pWpW0ppSp00ppWp1p0pK4p 8p  `pFpsppG@T:@D@T`%T!:C@Kp0p0  p [ >` F " Fp # @G R: B R!`%R!:C K@ `0  [p[K >` F " Fp # @G R: B R!`%R!:C K@ `0  [/R >` F " Fp # @G Rj: B R!`%R!e:C K@ `0_  [@/R >` F " Fp # @G RF: B R!`%R!A:C K@ `0;  [/Ri >` F " Fp # @G R": B R!`%R!:C K@ `0  [/RE >` F " Fp # @G R: B R!`%R!:C K@ `0  [ /R! >` F " Fp # @G R: B R!`%R!:C K@ `0  [Q[p ,   g>@D"Dp3D!` GQ:AQ2@%Q!:CK  0  P[Q P [#K 0pp p0U0ps(R 0ps,R   (#01K000,# paA `@ 00 p  PK K0KKPcpM" 0R# ,F<#1X #)#####3  # X ##[  5M(KЍ @<08  >   > !F#FMEFSK-Z pZJ @L`Dp Fa@D@XrP V X(Z h"V`@ p$pp ``a `` P P@  `p p p p   `p  p p p X $A h"<  ~= FCMO-MP@p`  0B 0@ O2!  Q $0C  0 @K@@p  G` 6  @Q 凅P/: SO-M` @ p$QDP  @  'PP υ @PP P' ^, ~ڎQK@, P0n^p`00 2p` 6@00(@pQk*p IpZH* pPነ Y4.0 PIBP.*ya4p B q$Y P 0K( W$PZ( )(U0 0  PK,5 P0 *4 0  0 6p, P404p@Q ,    L H  PT  `@VPL 0@ 40ppGw`V*wpPq  PIR:pB DP1*r @ A qR R KU pT *KQ 0 3 K  @pP  ÄP @PU PP  `( @ 0$ P PB@PD `(K# PP& P"00pWX pppGWb`qp`p)pK0PKrK/` `0`K,`9! QQr4`pP;p ?P 7p pC` &lDpKd 0n  ᪎p%l5 0mT%P5 0@ 0P  0[`pPw $4 0IpP `@r  00S 0;W U  8 2/ ሲ   Rp  P d~` B@`V}`p@< 0@  0#3 @0#3 0t 0}P  0[`p @PP #~ @PL} @PS  P  ~ B@ R5}  @P0L[PP } @P} @PS  P } B@ R}  @P0[PP } @P| @PS  P } B@ R|  @P0ZK 0 04 RiO RFxRliR>RRFRR_RFRQRM =R5M"S2ND$R3R%9R(F$+RBRt,ZO$0׿F0$03RF OSQOM-@M `@ K4,$` ``` @` P 8} pQ`|`Py=8`vP2 pPbP 0 e P = p Q: DPhd d0 0*4 : 0ᅺ ,1 KKRRFbORAOH-@MP@K3 0@,($   pP P=PP PB  `wP` PB P U0 A K[1KaRO-O.;OpL- M@.P2 @ 7PᩱP9 P@   0͆P$ 0㊉P `P @@ `000㰆P P  /Kp'H-@M@P 1/PlK^,($ PQ Q PT:J ` P z pQz`nP   0 P%P `@  p{`p 0ჷP@ X:  0tPU A K[/KRURRL-(M@K0 0 0 0  R00@00 0?4\RQp x:PXT T0 01 @ P K/KRRQFODOL-(M@K0 0 0 0  R00@00 0?4\RQp 2:PXT T0 0M1 @P K.K RR9FOsCOpL-(M@[ PL  PQ  @   ?4 RQ `  9P'`@`P @@  P: P V 0QP Zt.Kp  0 00 %RRmF"OAO0H-0M@.PkK y 1/PA P R   R P 9% R@ ?$Q |m9PP AP@ P   .K5K0RRHRpL-(M@P P =$Q P,P yp l  !9A` P9xPP -KpxR#RdRO-DM@P$M\ P R   R QQ@7LP 4`P8@ 0P nlP NP `p 0P dx pP 0؃Pp p DlPa 0 _0PY <08sW p 8Dl 0 pᩃPA  vp  Q:0$  lP) 0 ^0P" 8 <0R0 Sppc8 ?0pP $,KLH H0 0K/ PRDR%RRRRR;RR(N{RR1F Ok;O0H-(MP@K[ @  Q   @ P0+SP , (  7 K,K0R?RRO-\Mp`(K%<8`LHD@3   PP @8<$ 78O(Ki,K@(7^(P  0P4@ P` w Pv $  0 Q쓈TL#0@ @ `R`03SPP @ T87` U pp @~OT@,@ p@` 00S 0O OV   8 2/OpYW,Hq ` 8 2/OV @ 00S 0O OVpPU ` @ @ p  P00S 0|O OW @ PW  8 2/PP @ P  R{RR(RwRO-4MP@(@$ L2`  P   P pv0,! y6(++K pXuP@  \P Q 0pP`PP 7vXf6 pP[uPP ~RRR:RM-8M`@$KtX@$ 1 P  PP@ \P  pP`@  5$K*K@`HQ !P W X H0Q0055RRRRzRO-LM@P, $ P R   R QQ@HP V1pPp5.@T 0P 4`,iP 0K \0[P $0(s V` 5,*K 0P ` sp Q: '  hP 0K [0[P ( $0 R  @Rxp P,  0JPM ` rp Q:  hP qZP   "Z 4  P `  `kp wP4 P fh4aTP P0 0+ tR9RRcRDR%RWNR RLRRARRF:N-OO-DM@P(K\$ P40,(N0 `- >4P(P@ [PY  0 S pZ,àpP Ptd `! Z43A Pqs      R, `  Z R H4 (K(K p @P @)P>RRtRRmRQR"RH-(M@`D ` >$P  PP sP ! 38 pPrP P s` Bp`Vr`P  -jP uPH 3V  3M(KxRR`RRK-@M@`$K,($ ` R   R QLQ@ҾFP /PpX3@p 0P~P  fP XPT  0r~P  fP HP Xp 0_~P  ._    0M~P  _  0>~P   _   UP 0PP+ `P,@X- X9 X R  R  R fNP]  ZPV   K2I@X R+  R' Q#O - R   R QC .LP$  XP    LP  WP    $K('Klhd d0 0) TP  ) $RRRROFR|R@RJR1R1FNk$OFLR/R0H-8M@PK - $ PP <4Q 2tp! 2K&K0pPFL$8PP  P#$@ kWP    @ YP  @ LWP   $  ( RRRսRQRFLO-MPP`@`CP  @ pDW' W*:!01#DP ᔲ @ᒳp D@WHv1@,1pPp@K[R RLR0H-P@ DP }2P v2P 10H2O-M@ p  ,P@  LP( `ᓗP 0%P!  0pP  0`  0` UP  % K @< <0 0( ,( (0 0( R|LEFN*R%FNMRH- MP@P + ?P&`QQp P  DPp0`pP `0p`峭p80`p/WpVpKHRRRpL-(M@P`  P` <$Q qQ:@ l P'   R0 %Kp    0+SDP @ 40N  P' RgRAFCLR0H-M@ P $N3P ( P PE6U  P <6' K0 0 0!' 뉇F>NRO-M@p' `V: T& EG/F P!!!!F 堇  X:~ P P PUPU PPZ P:~  P  P  0 0& [@/R[ 4BP ! 0p P 5`' KAFNR[/0/R S[:[/ B?S [/[/ B?S[/O-MPp 4' 4 P !IKE c5T GF&!7"p@ TP. D`P TJ~0 X X Y P:6~0 P  PPD5 QJT@*`  A * *J ꄀpT:Dpp     Q1}P@ 0pD S:}00P  PP X P:}P KO& 4P/!(0S H-  /(@o/O-M@`m& pPW6 T& EG/FG@!!!!W  U@:}@@ P `V`V P PY P:{}P @P1& K@ PO- M@P"& pW< T& EG/F@!!!!GG  T`:J}`` P PUPU P PX P:.}P P @% Z KH-MP @`Q ($ \  p 0  $ ((,p KHK-M P`@S 0`@ [/RpQ[:p[A/R [W8*p[/RQ[*p(0e0P `X  %1P&  0"0P [A/R[`0P  \P 0`P K0   $ }FR R0H-M@(PQ Q (P  K m0P K0 0 0T$ U|F NR0P/SO- MP` p߮ 0@ l$ KO-$MPQy@`Pq:PVp    0P P-xPT  0ZPH8P <@   0 8 DZ "PPR / /"@P?V P 0p \ 0P$ KH0H-@P 0  U 00HH-@PQ A SPP`UH* VF"@  o!pr!   W   P:@o `.UP1U:O-M@Q# PQ[*A2P Z2P UpXE E Z: ({PPP ;2P0 qpW( Y P:{ P  P !R   R 0`V ! pKO- M@pPD0 W :`pz0pp`P V S P: 0z0 PP P S- P: 0z0 P P S P:@z Pa @ P KPO-M@PTp`n1   #c@`V* F VpXzpp P @T@T PPZ P:=zP  P K KH- M  РO-MpPZ `1 1!pW* G@ W`y``Y Y T P:yP PPKOWzW@*   A * *Z@PW:GPP  l   Q1 Pp@G` U:yPPP   P V P:y  KS \\!*H- @< <0 0! 0 / /ሏO!qFN `YoO  803/`oOZ  <p4P,P@P 00S 0N> `oOZ  8 2/`oO0pW,4PP +P +KL %P,P 0 0 %u]F*NNRO-$M P @P Se `P|d@     ^ kpWg  k ` /O@`  00S 0= Y O 8 2/ p X0 p PE  @ /OP@`  00S 0= Y O 8 2/ PZppWpW Q @AP +Wp*K 0 0 ZF>NNH-Pp``p`pW @`p pVR0 00SH@0 0SR 0g@p%P$p 0S:H@P_OP4@Aob qW  SppW ppQ1Q Q Q ```PU: Q H@ Q O-Mp `P  0 P +d @PTcPR P d B@ QNYRY(FNXR7/[/_/O- -P` @/pp@  00S 00 XO   8 2/p3 @`  00S 0x0 W  8 2/ O!KO-MPp `/@@p  00S 0G0 VO   8 2/ 030p @p`  00S 0!0 V   8 2/OK//3/O/3/ !!R/pL-`@P CP@G@KpO-Mp P@ P  W `P>V@B P V B` Q&V@ * pPP V@ `@T V@$(Pp`ppp pPO PW @p `pp@/R 0   `v ~J<$0 @K[@/RP[ 1/ `Op;;`@  00S 0/ PT_O  8 2/ ]`p//`@  00S 0. T  8 2/ \`p33`@  00S 0. T  8 2/@` C`@G`KS`[`c`_``p `  @ 00S 0. T  8 2/p@P U@  `P T@`@P 0 R 0k.UP_O  8 2/`p`@ P 00S 0I. U O 8 2/ K\~*f0H-rQ 0 PP% @=PPUT PT 2P PPU 00 00 SP0@PP0 0 0v  0 0n |x x0 0f D@ @0 0^  0 0V ]FNMR}F2NNMRFrNMRFRN#NRFNNRH- -H 0 HIO-MP_O ``0P4 @ P Tp BpWTp@ P T B@ QS 0 0 R @jp P ;@   KOI% P!@ @ ` 00S 0` `>-` V  8 2/ 00 Q@T uP ~ 0   R   RO/ }/  R/0H-@! B$Q,P )T AP PRS@>@o0/O-B`pBL-  00 Q@T xuP LwM-M` PpP SM @Q{Lp 0ZKH- MZ Р/O-Mp PpP`@oO 0 R 0%Y@` 0 R 0%V K8 2/8 KO/K-  P@pO0P `P  00S 0%R   8 2/0P p@ ` 00S 0f%R   8 K/M-M@ 4PU  p8P LK `QKp 0YKM-M@`0 `PU   pP XLK `Q}Kp 0YKL-@P< 0|WP  0 0_ *RE6[NN0H-M@P0   K0pL-TX 0P S`Z 1ZJ`0@PQ PU`0@CTʆ01 ^V00Sp `0A`@ 0pP/0H-P@U [ @?SP[1/Q0HlcH- #HgcL- @T 叿卿勿 剿LWcUcO-M@P@EP/* rBA"rPP Pp *`E Pc PPp A`@RoU KOcKp`/H- Hc P/H- =uH c cP/0H-P@U [ @?SP[1/0HbP   $ 0 < H T ` l x pppppppp pppp  ppp,8DP\ht(4@LXdp|x(4@LXdp| $0<HT`lx ,8DP\ht(4@LXdp|(4@LXdp| $0<HT`lx ,8DP\ht/? ANP< Xdp| $0<HT`lx ,8DP\ht(4@LXdp| $0<HT`lx ,8DP\ht(4HXl|  0DThx,@Pdt(8L\p$4HXl|  0DThx//////////////////////////////////////////////////////////////&R////////////////////////////////////////////////////////////////////H/D/@/<///|/,/(/$/ /oQ////////////////////x/////|/x/h/h/X/T/L/D/</4/,/(/// / // / / / / / / / / / / / / / / / /h /` /X /P /H /$ / /4 /, / / / / / / / / / / / / / / // /\ /T / /p / / /| / / / / / /$ /p /h /` /X /T /D / /t /t / / / / /D /P / / /@ /D /, /8 /D /P / /l / / /8 / / / / / /d /4 /4 /P /t / /l / /d / / /| /X / / / / / / /0 /4 /h /t / /t / / / / / / / /( / / / / / / /0 / /// / / / / / / / / / / /( /4 /@ / /| /t /l ///T /L /D /< /4 /, ///RR/R/RQ/~Q/QGN|/}Nt/P``   0pkKP pH"n84 40 0    E&L9E%NsVN  /K-@P`  pw* W*W   ` p` YL0H-@P P DQ= ԑ  0O-MP `p( $84,0`Vt @@`Y*P P *@P ` ` @@P[pAPz}  pW,@T5 Z-P p`V`P`PP*PP `PP p`0P04?}88@TK,Q/ QR/ 0<  A/, R 0  R S L-  0LAS*A L0 R @<0 0%@H- 40S  R  2! R0 ^  R(0S  R  2! R0\  RH-@MP p , R 0  R SP P0 C@R*@1C Q @0`P< 00@  % PB80GQ,$DQ AQ >QKO-KML` P, R 0  R S  p 0GAS*Aq G0 R @pP<0@0%@pZf:@P D@H}TP@K@  PK P,Q  QR@ 㘠K @ P,PUA L@(<p5t` V ၵP@ 蒳t L Ri:@P|` > > > 0tz> $u>0~M-M@P* TP+  `pK \6 2/P&g~/r+K~~QQ~H-MPR  @ ᘩP( @T + H BP`K X 2/p"~-+K~~QQ|~H-`@TP x@P `=p=@=@=*!2 "$~O-MMpK`T@P].0 _  0Pq J@T P`n`0Ap P"A@"p&P#: #P @TP   u pQ-   X `崝@ Р  ZP p qʨ X@ ) pP* (  w@T ` Р  hZP p qᛨ \@T` ) Rp  L0  d  P*   0@PT   #` pPqU @U  lpP*lpP@l 0 呃"l` c g jn p   !K!K}S}l@ A?R,0P! `ṧ 告$%lp s w z~ `ᙧ Z  !K!KUp0` c g jn lpt 5D 10 + h 21 HQ1( \،pl ` ^l `p p` 0 p⡽\  l`P 呃`P  @l` c g jn  (l >p0@>S0 0哣i0l` c g jn   l4P`l r4QQ`.CQpPPPPPP `¦ L  ~`8 q᳦ psP@M P` 0rѦQ``700b QpP P` 0rQQ`告`0哪?0@ iQpPm P``  pP !K!K  ` P  ` ` ` `[pU P 0 `  c  g  jnp  5  j 21 JQ1* {[p PQp~$ `    @pn ]y 0rѭQ`' 0rn#Q 0rQ 0rQ 0rQ p0rQ 倯  e 0[@@` ZZ@D@Q`U`` ht @P* F `0j``A u  ZA4 QQQQQE}QHE؁}WFQ  ||||     (4\                                                                                                                                                                 \,E}NS W`_   !K!K  plP*` l pP!lP:|d PKK`\  SSQ}ZEIEXz}JPSQhSQQQSQQQHQ9QQQEKb;Q`i}O-Mj jJUU@UUAJP>ppGGqz z@VPPP. PP`pR P0UuUuM0W` Za ` / qA Xp`@ KOGKP£L-@`L \PTX[0ɣ48<@DHn}0H-@$PL 0$n}K-L@ `PpV P`/RᗣU``V P`/RუU` `V P`/RpU`` V P`/R\U``V P`/RwIU``V P`/Rc5U`K= 0H-@(PLv* 0HFk}Q[\/kpL-LP@` @#`6&S 494S 898S <8<S @8@S D'DRHpL M-@`Q p pTL QU XAa/ ?S  RP PP/RTP T 0QWPP@PH-PQ@p pQL` QU XAa/ ?S 0H-@PP P ?ST Q T0P/ROTQQ0M-P@\[P Pa/ ?S+p G>P``FW:LI 4L Q*X@/ ?S44M6 4 pgP/ ?SGML-@Pa/ ?S7LM-p@P G>Q``FW:L 4L Q*XP/ ?S44  P/T/X/////L-@   0 2/0H-@ 2/Q  0P C 2/U 00H-@Q  0P C 2/U 00H-@P PBU0 0 0 !~EMQ0H-@PPp3: @ Q P :PP:p  2/P @00 0QO-dM`P@$ ZP& TP" NP HP  @z 0ଡ# S D <ß 04 ,$sp@ppPp0  ZvEQ`  0?{Ÿ Q@bP`  0>a|xtŸ YP TPP 0AK84Ÿ XP  @0>8 @T@P   p0?'pWpP  0?PQ,* ` PWV' [Q_Q 00 AS< PP K`V KZP 4 Q vO~~kQ_QMQ(~ ~~~~~ Q\~~~\~d~Q~8~4~~Q~~̿~QP~~Q ~QԲ~~@~3Q8~AQM|EQL-MP PPLL@HD0@ 0 @@ BKMQ@QQde V:0P@DS:`0 ` @4dP0Q0645 S:P@DQ:0R0  pLx`JfO 0bP008R!6Q 0ppLa\~pL-`e@V0PU60cpa``J0q`00 @P0S `de V:0P@DS:`0 ` @4dP0Q0645 S:P@DQ:0R0  pL`JfO 0bP008R!6Q 0ppL|~  /L-rpP``(p0" 0`(  /H-8M-0+Cp ) # `  K``0P /. ``||KApL-M`  >>Kp 0/ 0/H-   0 RcQ *##r 0<,  /H-    hwyoE{Ka#R *!q0<,/H-    woEKcQ *##r 0<,  /H-   wnEKpL--M|`V! @PQ Q X 0 @i1 a`VKp0H-q@ᖥPLPH PPT`|P0`4`8` 0<@D`PdPhPlPptxP(,00 X\P0T}h~0H-t@|P PUL|H2<P @y0P 4t0HxS}H- HH--M@` P6|pW Q Q W 0 `0 060c pW0  B ( 0P@00 KO-LMh\l0pNWK0`04 V < 0$0@$0Y< <0 0pJZ ZJR1`PPY(PpA `P` @@X`UEAj&P` P pQ/(W t@AAA Q @ QRP p@AA> Q  Q@"@Y P @Z ZJpP@Pt`FU:Q pPpu`FW:( (PA pQ1(APh\h`$h 844(@QQL- rR 0B0P: ̠NCP@NC10BR0 P    eVEgKM-P`P @ R:D"pt W:P@@U: ` ` @PTp>pt W :P@@U: Pp Pp  ~O-\M@)pP P T!QQL/(Q ` 0C$PC P彧)00p pG`( Ve@A Q+P` @Q hPKYX $1/oT p : (& Ab Q*T` @Q 8PW((0' pC Q* u` @Q p Q ,(004P(m T$ K~0T 2o T /H- 8M  00I РO-4M@0`4Qp\PP  @: :J!0pw pWP|pUQ 0Z:\o\7 \hd Ve Rc LX1 Pp0W02 !0SP R 0S,@* *JLQQ*Q 4d RV,@* *J \"pW@ Ppp`pHPHL`P4P@  8P `!0!044H0: :@ A JPnTU@WPP0^ 0  P+  U5U5MRU0`q`E`q paQ ᡔW0`48P  P l @ Ql ` R`\! RQ\!\ \Q ,($ (K QgH-@uRtR(P bBp`Et@ QP)P` @Q PO-DM@  P(`A Q2)p` @P K P v? PyV  ((fA Q)P: pX  2PP VPXZ VV8o T  0   08v( PA Q( X` @Q (PY(A Q(V` @Q PQ  l@Ql`P`KPP ;  ;5o3>  0  E Y R0501 S: @R:   0 P'P T!Kvf jL-M@q p#  0")Q QP!QP  0QP  K 0 KH- M 0 0 РH- 0S0 \:0 NS:0l 0CRl `Q` /O-DMp@`Pp 0$P `B R*P !(0P`C Q'X` @Q %PKXU ':oT 0 d0  $ TKUO-DM@p6 q:  RG `SXZ P5oT 0PPp8P` P 0 P P$ T YQ aB R%*QO   %  (0`PC P+'X` AP |PK`SXZ P+5oT 0   0  $ `TP KZwoZpL-@P`( B Q&X` @Q &PppL-P`@0U 5#U(EaEaBPaL Q&P` @Q PpL- rR0CB  B h 0R l@ CRTl@` R`@L@pL-@AP *AP( `B Qi& d` @Q U` pLp 0 0 >EʠM)Q0H-@AP*A(0PC Q7& T` @Q P0 0 0 i=EM}Q0H-@AP*A!(0$[C Q &T` @Q \P0 0 0m c 0K 0 0t n~0EMyQ/H- M 0 0 РH- M 0 Р0H-8M @ t PuPU PU P00PP P@PP00000tK0000@00 @0H-8M @ t PuPU PU 0P@0P0 @P0000JK00000 @0H-8M @ t PuPU PU P00PP P PP00000 K0000 00 @H- p@P(`p VF p@ QE"P` @Q PH- P@p(`VpF`p@ Q$"P` @Q uPH-@p(`pTFw@ Q"P` @Q VPH-@p(`pTF0w@ Q!P` @Q 7PpL-`@ (P dE Q!P` @Q PpH- P@p(`VpFPw@ Q!P` @Q PH-@p(`pTFPw@ Q!P` @Q PH- p@Pp(` Tp@F Qc!P` @Q PH- p@Pp(` Tp@F Q?!P` @Q PH- p@Pp(` Tp@F Q!P` @Q lPH- p@Pp(` Tp@F Q P` @Q HPH-@(`PFoq@ Q P` @Q +PpO-؀(`@ H@/oP"(0`SCf@ Q P` @Q PpH-p@ P_O(`x PPpFw@ Q P` @Q PH-p@ P_O(`x PPpFw@ Qk P` @Q PH-@p 0(`?O(pPFw@ QG P` @Q PH-P@ p 0(`?O(pPFw@ Q" P` @Q sPH-p@P 0(`pv@PF Q P` @Q QPH-p@P 0(`P SPpSFv@ QP` @Q .PH-@p(` ppSFv@ QP` @Q PH-P@ p (`ppSFv@ QP` @Q PH-@p(` ppSFv@ QzP` @Q PH-P@ p (`ppSFv@ QWP` @Q PH-@p(` ppSFv@ Q7P` @Q PH-P@ p (`ppSFv@ QP` @Q ePH-@p(` ppSFv@ QP` @Q EPH-@p(` ppSFv@ QP` @Q %PH-P@ p (`ppSFv@ QP` @Q PH-@(`0PFv@ QP` @Q PH-@(` pVFq@ QwP` @Q PO-4M@q 0( `P a@B QTP` @Q PK)P PT!PP` 0pPW6 Q :P0@|U:T2`5oT p 0 (T`K A 0   0 E 0  0  0`  0[  0U  0O K GH-@(`XFq@ QP` @Q PH-@p(`XFq@ QP` @Q PH-@(`XFq@ QP` @Q PH-@p(`XFq@ QmP` @Q PH-@(`XFq@ QPP` @Q PH-@p(`XFq@ Q1P` @Q P0H-0@POUQP( PUO8aBPB Q Z` @Q ^P0H-@`P(0xC Qv` @Q @pV  @l Ao"H.pL-@`(PhE QS` @Q PpH-MpP@ QNR(A Q` @Q P?"" (@ P` 0AS P  PBQ`ApW:$' B3W0B31p WQxPxPKKpL-@/.A(0"p`PC aN QDP` @Q Pp0H-@(0PC Q*T` @Q {P0H-@`A Q ` @Q ]N`PPpuOA QP` @Q BP`R~H-*r `P@(p `RGn@ QP` @Q PH-@`A Q` @Q N`P@puOA QP` @Q PP~H-@`A Qo` @Q N`P`puOA QUP` @Q PO~L-@(A Q:` @Q  NH-*`r  P@(p  RG QT` @Q dPpL-*Pr @ (` RF QT` @Q @PpH-*r @(` pRF~O QP` @Q PH-*r `P@(p `RGn@ QP` @Q PH-*r @(` pRF~O QP` @Q PH-`@P0U 5# EaUEaB &(p!PG QRV` @Q PpL- P@(` PF Q0V` @Q PppL-@`P0V 5#VFQFQB&(!`PNlO QP` @Q TPpH- P@p(`PpF|O QP` @Q 2PO-DM@sSi 0ckQm@ S! x v( { '?S1PB PP` AP PKpPX `6_o@N   0 0= &(+XA Qu` @P@Q  PT`K 0 0 A ElMuSQO-DM@pD `XP 9o 0p 8P`N   ( X{B}@ QP` @Q k PTKp0  +KO-DM@ScBjm@ P" %0#$ ; 8(p 6 PPG PP` AP ,PKp XS `6_o@N   +#  0j +( &XA Q` @P@Q  PT`KO-DMPp- @X` 9o 0p 8``N  0] TKp0 PKO-DM@sSi 0ckQm@ S! x v( { '?S1PB P'P` AP xPKpPX `6_o@N   0 0 &(+XA Q` @P@Q = PT`K 0 0H %EfMYMQO-DM@pD `XP 9o 0p 8P`N _  ( X{B}@ QP` @Q  PTKp0  +KO-DM@sSi 0cjm@ S! { x( v '?S1PB PQP` AP PKpPX `6_o@N   0 0 +( &XA Q` @P@Q g PT`K 0 0r EcMJQO-DM@pC `XP 9o 0p 8P`N   (XzA}@ QP` @Q  PTKp0  ,KH- P p@  G (`{PF|@ QP` @Q PH- P p@  G (`{PF|@ QcP` @Q PH- @P  pcp(`PzF|@ Q>P` @Q PH- @P  pcp(`PzF|@ QP` @Q jPO-P` @Q PH-p@up(` @zRF~@ QP` @Q lPH-p@up(` @zRF~@ QP` @Q IPH-pP@up(` @{PF~@ QP` @Q %PH-pP@up(` @{PF~@ QP` @Q PH-0p@06(` zRF~@ QP` @Q PH-0@p50(` {PF~@ QjP` @Q PH-p b@90(` {PF~@ QFP` @Q PH-p@9(`0 @{PF~@ Q#P` @Q tPH-5@(` @zRF~@ QP` @Q SPH-p@9(`0 {PF~@ QP` @Q 0PH-5@(` zRF~@ QP` @Q PH-Pp@yp (`{  0~@PF QP` @Q PH-PpqO@Uw (` zRF0~@ QnP` @Q PH-Pp@yp (`@{  0~@PF QFP` @Q PH-PpqO@Uw (` @zRF0~@ QP` @Q oPH-Pp@yp (`{   ~@PF QP` @Q GPH-PpqO@Uw (` zRF ~@ QP` @Q PH-Pp@yp (`{  ~@PF QP` @Q PH-PpqO@Uw (` zRF~@ Q~P` @Q PH-Pp@yp (`@{  ~@PF QVP` @Q PH-PpqO@Uw (` @zRF~@ Q.P` @Q PH-Pp@yp (`{  ~@PF QP` @Q WPH-PpqO@Uw (` zRF~@ QP` @Q /PH-p@9(`0 @{PF~@ QP` @Q PH-5@(` @zRF~@ QP` @Q PpL-@` (0)@kVCn@ QzP` @Q PppL-@5( @j[n@B Q\P` @Q PpH-p@p (`{  ~OPF Q6P` @Q PH-pUq@[w @(` zRF~O QP` @Q `PH-p@p (`@{  ~OPF Q P` @Q :PH-pUq@[w @(` @zRF~O Q P` @Q PH-@!S2`PQ(PKp$ P0ei j(p&knO RG Q P` @Q PPH-P!@0`Q'PKp# P0je (p+jnO RG QT P` @Q PPH-p@9(`0 {PF~@ Q. P` @Q PH-5@(` zRF~@ Q P` @Q ^PpL-@(0jVn@C Q P` @Q BPppL-@(0jVn@C Q P` @Q &PpH-5@;(` @zRF~O Q P` @Q PH-5@9(`@{6 ~OPF Q P` @Q PH-5@;(` @zRF~O Qq P` @Q PH-5@9(`@{6 ~OPF QO P` @Q PH-5@;(` @zRF~O Q. P` @Q PH-5@9(`@{6 ~OPF Q P` @Q ]PH-5@;(` @zRF~O Q P` @Q <PH-5@9(`@{6 ~OPF Q P` @Q PH-5@(` zRF~@ Q P` @Q PH-p@9(`0 {PF~@ Q P` @Q PH-@`@V&*  @ 0Pa (p`PG dO QW P` @Q P  ໹ gvD4KM-@P@U%* `  Q0(pPG Q! =S` @Q rP  gvD4KH-tW{@p (`z  rOPF Q P` @Q APH-`Q`3@i (P b cOpE Q P` @Q PpL-Q2@`"` D`! `Pa(0h&`"kYCnN Q P` @Q Pp  D1KH-Q6@`P"P `PP`DP$ QpO (`{ ~N /YF QO P` @Q P  ೸ D0KH-5@9Pq0 (` rOQF Q" P` @Q sPH-u@y(`v Pq  rO QF Q P` @Q MPH-Q#*XX  @a6"(pPG Q ^` @Q %P  8 XTwDTwD.KP @/Q/H-pP@wPpP y0&(` |XFsO Q P` @Q PH-pP@wPpP y0&(` @|XFsO Qg P` @Q PH-5@9@v0(` sOPF QD P` @Q PH-5@9v0(` sOPF Q! P` @Q rPH-5@9@w0(` sOPF QP` @Q OPH-5@9w0(` sOPF QP` @Q ,PH-5@9(`u6 sOQF QP` @Q PH-5@9(`p6 sOPF QP` @Q PH-5@9(`@p6 sOQF QuP` @Q PH-5@9(`@w6 sOQF QSP` @Q PH-u@y  (`@s sOQF Q/P` @Q PH-5@9(`w6 sOQF Q P` @Q ^PH-u@y  (`s sOQF QP` @Q :PH-u@y(`v Pq rO QF QP` @Q PH-u@y(`v Pq sO QF QP` @Q PH-u@y(`v q  sOPF QwP` @Q PH-u@y(`v Pq sO QF QQP` @Q PH-u@y(`v @} rO PF Q+P` @Q |PH-Tp[@P (`    @xPFrO QP` @Q PPH-Tp[@Z (`    PpPFrO QP` @Q %PH-u@y(`v @}  rO PF QP` @Q PH-Tp[@P (`    @xPFsO QP` @Q PH-Tp[@Z (`    PrPFrO QWP` @Q PH-u@y(`v P} sO PF Q1P` @Q PH-Tp[@P (`    PyPFrO QP` @Q VPH-u@y(`v @  rO PF QP` @Q 0PH-Tp[@Z (`    PvPFrO QP` @Q PH-u@y(`v @ rO PF QP` @Q PH-Tp[@Z (`    @vPFrO QcP` @Q PH-Pp@uy &(` Pu rOQF Q;P` @Q PH-p`QvgP`bOd @(P `pE QQ` @Q cPH-pP@P&@)P0 p  (`? uXFsO QP` @Q 8PH-pP@gP&@)P0 p  (`? tXFsO QP` @Q PH-5@9@u0(` sOPF QP` @Q PH-5@9u0(` sOPF QvP` @Q PH-u@y(`v P rO PF QPP` @Q PH-u@y(`v P  rO PF Q*P` @Q {PH-p@p (`}  sOPF QP` @Q UPH-Tp[@Z (`    {PFrO QP` @Q *PH-Tp[@Z (`    zPFrO QP` @Q PH-Tp[@Z (`    zPFrO QP` @Q PH-Tp[@P (`    PxPFrO QWP` @Q PH-u@y(`v @~ rO PF Q1P` @Q PH-Tp[@P (`    PxPFsO QP` @Q VPH-u@y(`v @~ sO PF QP` @Q 0PH-Tp[@Z (`    PsPFrO QP` @Q PH-u@y(`v @~  sO PF QP` @Q PH-Tp[@Z (`    @sPFrO QcP` @Q PH-UpY@P (`@p rO PF Q:P` @Q PH-@   P  pQ`sO|A Q`` @Q d`H-u@y   (`pPsOF QP` @Q ?PH-u@y  (`q sOQF QP` @Q PH-@   P  pQ`sOpA Q`` @Q `H-u@y  (`@q sOQF Q~P` @Q PH-u@y  (`@q sOQF QZP` @Q PH-u@y  (`p sOQF Q6P` @Q PH-u@y  (`@p sOQF QP` @Q cPH-u@y  (`p sOQF QP` @Q ?PpL-`_ _@@($UYV000hcOPL QP` @Q PppL-`_ _@@($UYV000@hcOPL QP` @Q PpH- 8M  0N4 Р @o/o/ // /O*/pQp/L- @ R1< ^: @LR: Ao/:@o/@o/QaB Q3/H- M 00(   t РQ Q0S H- M0(0  t РH/ 0S/K-@ P6 Y㉀X6o`P S 1/dP* `p(P @k @ A jPFP W(, @ (,<8  5 , ཇേ}}գDP-P7M0H-@P(A Q` @Q P00H-@P(A Q` @Q P0pL-@(P`A Qm` @Q `PpH- 1q @| @(|H- 8H|0H-@P(A Q6` @Q P0T  X \  /T  0\0X /Q/0H-@P0H K-8M`0 `@`㰓p JP  5# 2P  6 2P  6 20 `` 㰓 ]KL-@L'O-$M@P P`p  0c`W 0Z `PYP0 P`p  0B`W 09 `PY @  0%p p{ ` 0`PPo 0 ph 0PaK}@},|}x}O-|MP @( 0 $ , 4 ` ?rZ 0  0]`0` d 5@ 2>0 400` {@`q0 0@`40ugB@ 0 040Y0` 5 2 `1p0 040帥@<7  00@r  40帥p`$  P0 400@p0p 5 20 240帕@` p"0` 5  2t0 @040帕`"P&0 040帕@P0`  6z 2D$K"hPh,K`, PpP @ ~0 004@h0` Phl5`C 2 ! 2YJ4K"O$K|X Q(%%&(zk 2FX4K0`  5 2p@ 0 4p0p2kP" 0 04p0pe@+0 @04p0p帥 0` 5 2f0`  5 2 0 ⸥@00p4p0P 5 2x 4p0p00 @  H  0  ?dK  Ԫ QDSJpL-8M@Q3 ` AP EP p `  6^ 2("X `  5O 2oKp~|0H-M P@  5; 2 " P  5, 2K0H-8MP@ `  2rF 0`pQ"KH-(M@PP5 ` AP "=E `op  6 2 C\   ;XP  5 2qoKL||O-TM @ /2p 0$pP p㸄 0  0$p p 㸄0 JR`P 0f 0$p  p 㸄0  0P  0$p p帄0"D "V  0  /24KO-\M`@ 23"dV V(P 0"(W) `4|P (p`{P ,( 28P! 0 (W`Y,Z `( Pp2,P(P㰅8p!V V`(P 0{"(tW( 2$,P(P尅 8p "(0 ,P(P尅8pw P (P 5 2!V Y(P 5` 2rp (0,(P 8`E(` 5 2] ${p" (`T{p ,( 28pv 0 (VPY ``,oYX"0,((VK($  8}}}}v|P}YD[JO-LM@P) P 5`1 2  2(`/ Y 0U/ Y [P 5 2` 2``"  ``%VP p 5 2p@ 0~ 00(p pp尤@ eY _ SP  0 2z0pp 㰤(@L 0 x WK}M- MP`p@Q  7PK  6w 0Ap  6l 06KK-HM`P  @2(U p 0T" U8! UU1. p  5- 2  2( U U U    p0`"U` 0,"UKp}q|x}@}O-DMH@ P% ` 5p 2  2 p/ W 0T/ W` 5 2r~` 5 2s 0\DP# p [ ppS2 `  2ppS  uW 2  o`     K@}O-dM0`K@}p 2iE P  6C 2  P  66 2 2LE P  6& 2 P  6 2p p$p00L P  6 2 P  6 2 0  0&Nk 0$p pd 0 P 5 2 0 0$p pdg P 5 2 $p pd00 P 5 2h  5 p0`4P0 `PKO-M p 0P@X\`l`刀ᚖᘖᓖTpLPHỖP KP L 0@  KPK  5 J  2 P KL P 2K@p >Pp PP Kl0@P L P bKoHP"? 2AP Kp 0bKL P @p SPPK  5 2P 5 @PpK  2PpK 5`@  2 L P PKP0K@P  PpK  5 ` 2 P `PG "[P L P KK@ 0붕 I\G`PD@P<<p  20AP K0L P RK@p "pP PF ZနP KP 0L K@ y \FPX `28`0`(` `4`,`$``%PpK  5R 2 PP PpK  5C 2 2G3 dEP0KL P  㸢K@ @PpK  5" 2P`K 5R  2 2,"!$P K⸢K@ 0L P P> 0M 2CpP K@ 0P L 帢KP&P`K 5 2 24`" 0P\S,VP`K  5 2 0P ZᦓP KP L 㸢K0@ P̓ 1[ 0P$"Kļ}e|O-TM@p`:: P  6x 2A P  5l 21 P  6a 2+ 2wB P  6Q 2 P  6F 2? `00 `$`x 2e? P  5% 2 P  6 2R 0PC{ 0$` ` t0!P 0P;K P  5 2 0$` ` t0E P`  5 2 P 5 2  5 p4P 0P;KH-   vDJH-   vDJ//H-   vDJpL-MP@#!ht``Qq#h P `2/ 2/KpԸ}Lz/H-   ୢ uDJpL-MP@'gt``Qq'g P `2/ 2/Kp}tz/H-   w tDJpL-MP@/gt``Qq/g P `2/ 2/Kp@}z/H-   A tDJpL-MP@0gt``Qq0rg P `2/ 2/Kpl}z/H-   -sD/JpL-MP@'Igt``Qq'x "Q(@%0$ A 0(@%0$ 4 0w(0 8P[,(uu(@%0$  0(@%0$ 0x( p2,(U8ppP "(@%0$ 01(@%0$ 0[(0K 8p,(E"P( P2,(E8Ph " (@$%0p 峽 0(@%0$p 妽 0 (0K 8P,(E ( P2,(E8Pu` " (@$%0p x 0(@%0$p k 0(0B{ ,(u8P@ (0 8P,R(u@(0@ ,(@04PP(0 ,(@04PP(@p%0$p ' 0j(@%0$p  09X,((0Ⱕ8!  (@ 5 2(@ 5ټ 2 h(@ 0n 6(@ 5Ἴ 2(@ 5ᱼ 2(@ 5ᦼ 2u(@ 5᛼ 2o_9(  ~$c$ AP L@K$ 0 0ŝ `}}t}bDLPO-M@`P$@ +$KRP $0`` @ P6``p 0,(H@ 4@000@@ 0P 0׻ 0(0P 5" 2 0 00P 0᰻ 00P 5 20P@ 0ᙻ 00P 5 2 4@0@00@  2("0P 0l 6p"0P 5ᶻ 2 060P 0J 0 0C0P 5ᒻ 2\#0P 5ᄻ 2S0P 5y 2X  0C 4000@@ @@P900 40P8@<@X@0p 0P 0,P0P%0(@K( 0 00Pp%0,p(@8( 0 2'"/ 4000@ 00 40pp8@<@X@e0P 0᜺ 0Y0P,%0(@( 0@ 00P%0,p(@( 0e7 0 ṻ$ La$  |P ᇻ `K 0 0 Ğ}[DLPpL-M`P` iK␨P% 0(`@ 4WE 2%hRZ7 y a <P (G`Kp 0 0 ZDLPL-pp@ O-MH0K O 0@`@D@P@@ P 0PP"0 r 0pr ?p+0KQpBP @@@ D@ 0X@@  5p   2@ -5p 2r 0p'qP@0D@ 㸆@r 0rR 8Q@ 0D@@@K㸆PPp@@J@ UPY@@`p@ p p0v 3"`V Q7p` "p`l0  S V`D`@`Q@p 2"`V@@@`  6P堶 2j0KLK萉}/!/!/H-   ӗ MJDOJ 0 /H- ^  0 LS ^ H- `  !!^   0LS ^ 2|0H-P  2/Q 0 0CR0@ @Q  0pL-@`, Q 0 0CR0P PQ `p0H-P, Q 0 0CR0@ @Q  0H-M@P` 2/ `R ` 0`FS`p p  R0 0 PU A P`\Q> 1Q!0 @\1 \ Fph  K! `1Gah  0U3/Q 0 0CR0p pQ  K AP, ,  AP"  AP  R  BP 0 0 AP X  K0|]P80|*PL-@q0Ps0  L g  xPpL-M@P D0< P `0Eg  Kp,.|PQ Q Q*0 0CR:0 0i00 0CR/0 0i00 0CR$0 0d000 0CR0 0b00 0CR0 0d000 0CR0 0a00 /0H-MP Q 0QHc0 0CR0@ @Q K0 AP_ b  APU r  APK e  APA a  AP7 k  AP- p  AP# o  AP i  AP n  AP t  K0SA8 O@@0 0  f  K0茏PP|MEO-M@d@P DxH`  Q2/Q  p 0P@SPPPQ`   2/Q  p 0P@SPPPQ` pF0CR{00 P8 ,P/  2/Q 0 0CR000QZ: AP  AP PX  @QW}  O`   2/QC  p 0P@S=PPPQ5`  Q2/Q)  p 0P@S#PPPQ`  Q2/Q  p 0P@S PPPQp 00K  { >l+Q ~SSApDSp@pDS 9) R 0` P`FU```  R    :D˝JH- ^   0LS ^ pL-M@BP70$X P`P  N`P Pl P  H L  (  LeKpPۅP&PfPK-@p P ` 2/ !0E d Yp p @B9 Fd p p X X @W ]@W ] p@W ! pa 2/( 0F d  藅P{OPpL-`P  U2/%"V0Q P PERP@ @Q  #  A{d  pPM-M@A@6Pk0 00 \ @   XhKMN%R R&`,0p P `FW 0 B AP_ u  APU  l NP@  AP b  !P 0 0CR0P PP P '  x+  Ac \+P 3PXPENc PP  AP  l Ph@P<0< sP oP~ p0Qs1\* AB 0 B@P  u v0 0CR0p pQ PPb 0 B P  b 0Ph)2@0 10!>C X3GDc PdeP wPP  U2/%"V0Q p pGRp` `Q  ( Ac P8KM(P   AP  ! 0Pz 1P2P  (p`  P0 Fb PP 0p$ `BS 2/'G 0b PP l  AP  a P   s P h  Pn@P   BP l  AP  d   2/&0F b  A,&p`  P0 Fxb PP@jPf  AP^  s W_P=  BP 0 0_00  00 #0P; AP l  AP  d /0 `$G 6$b PD 0 B@APe  C @dP  AP s  APv t  APl r e PP ß0# p `0Ga  P# S  AP P  AP S  AP R  PP" s  AP t  AP r  AP  d  P  BQ7 0 0(00  BQ- 0 0n00  BQ# 0 0o00  BQ 0 0n00  BQ 0 0e00  BQ 0 0)00  00   BQ 0 0f00  00   BQ 0 0s00  00   BQ 0 0x00  00P  AP  c  KD@  4|_P?P>Ee~PP:E;E=EP0|yP|}PPQ)DSJJpL-@P P`  BQPp 'R `P 0 0P  ppL-x`@Pu`  BQ`p 'R >` 0 0P   piJH-@PQ( QwQJQopm`  BP`q 'R ` 0 0Qm @ !@QIpP Popn`  BPY`q 'R ` 0 0QF@Q$>Q 0@ @Qopm`  BP/`q 'R ` 0 0QAQz <,tL(P pPope`  BP`q 'R ` 0 0Qp@ RQ' QA Qo'`  BP`q 'R \` 0 0Qopc`  BP`q 'R A` 0 0Qopu`  BP`q 'R &` 0 0QQ)PL P Pops`  BPv`q 'R ` 0 0QcQ Q QUHo'`  BPT`q 'R ` 0 0QAopm`  BP9`q 'R ` 0 0Q&opo`  BP`q 'R ` 0 0Q opa`  BP`q 'R ` 0 0Qopm`  BP`q 'R p` 0 0Qpom`  BP`q 'R S` 0 0Qopr`  BP`q 'R 8` 0 0Qopa`  BP`q 'R ` 0 0Qopa`  BPz`q 'R ` 0 0Qgpsom`  BP]`q 'R ` 0 0QJops`  BPB`q 'R ` 0 0Q/ops`  BP'`q 'R ` 0 0Qopr`  BP `q 'R ` 0 0Qopb`  BP`q 'R y` 0 0Q opt`  BP`q 'R \` 0 0Q opc`  BP`q 'R ?` 0 0Qnp'`  BP`q 'R $` 0 0Q0@ Q> QtpP 0P Ptnpb`  BPq`q 'R ` 0 0Q^mpu`  BPV`q 'R ` 0 0QCpPTmc`  BP8`q 'R ` 0 0Q%Dmc`  BP`q 'R ` 0 0Q lpu`  BP`q 'R ` 0 0Qllt`  BP`q 'R q` 0 0Qpkm`  BP`q 'R T` 0 0Q  0op`  BP`q 'R ` 0 0QRP P Popu`  BP`q 'R ` 0 0QP P P@nps`  BP|`q 'R o` 0 0QiP P Pmps`  BP[`q 'R N` 0 0QH4mp`  BPA`q 'R 4` 0 0Q.P P Pmpu`  BP `q 'R ` 0 0Q P P Plpu`  BP`q 'R ` 0 0Qlpu`  BP`q 'R ` 0 0Qkpu`  BP`q 'R ` 0 0Q(kpu`  BP`q 'R ` 0 0Qjps`  BP`q 'R ` 0 0Q jps`  BPx`q 'R k` 0 0QeaPips`  BP\`q 'R O` 0 0QI[PXips`  BP@`q 'R 3` 0 0Q-hps`  BP%`q 'R `_P 0 0Qxhps`  BP `q 'R `gZP 0 0Qgps`  BP`q 'R ` 0 0Qs_Pgps`  BP`q 'R ` 0 0QYPgps`  BP`q 'R ` 0 0Qfps`  BP`q 'R `]P 0 0Q`fps`  BP~`q 'R q`fJ 0 0Qjeps`  BPb`q 'R U`]P 0 0QNepu`  BPF`q 'R 9`{\P 0 0Q20epu`  BP*`q 'R ` 0 0Q ZPdpu`  BP`q 'R ` 0 0Q[Phdpu`  BP`q 'R ` 0 0Q[Pcpu`  BP`q 'R ` 0 0Q3[Pcpu`  BP`q 'R ` 0 0QZPcpu`  BP`q 'R ` 0 0QYUPbpu`  BP`q 'R u` 0 0Qo(bpu`  BPg`q 'R Z`UP 0 0QSapu`  BPK`q 'R >` 0 0Q8CbJXPhapu`  BP-`q 'R ` 0 0Q`pu`  BP`q 'R `TP 0 0Q   phv`  BP`q 'R (` 0 0Q,hpu`  BP`q 'R ` 0 0QA Qe  444444\\prgv`  BP`q 'R ` 0 0QDgpu`  BP`q 'R ` 0 0Q<T : p|fv`  BP`q 'R ` 0 0Q|fv`  BPu`q 'R ` 0 0Qbev`  BP[`q 'R i` 0 0QHp0ev`  BP>`q 'R L` 0 0Q+pdv`  BP!`q 'R /` 0 0Qptdv`  BP`q 'R ` 0 0Qcpu`  BP`q 'R ` 0 0Qxcv`  BP`q 'R ` 0 0Qcv`  BP`q 'R ` 0 0QQkpbv`  BP`q 'R ` 0 0Q\bpu`  BPz`q 'R ` 0 0Qgav`  BP``q 'R n` 0 0QMxav`  BPF`q 'R T` 0 0Q3`pu`  BP+`q 'R 9` 0 0Q`v`  BP`q 'R ` 0 0Q  MJMIJEPGPfFPIPDIPKPUFJCPFP^EPHPQP ou`  BQ`p 'R  ` 0 0PW&' W0Y  P @P<  ou`  BQ`p 'R  ` 0 0P   p/ 5W&'W0Y. `P0@Pb  $ou`  BQ`p 'R  ` 0 0P   p. 0` P 68'8FW Pd P/ aou`  BQK`p 'R  M` 0 0P8 PW Q* QD Q^P ov`  BQ$`p 'R  &` 0 0PW Pf P@ @@PW Q Q! Q<P ov`  BQ`p 'R  ` 0 0P W2/ 0pvWj CA/p 00 PWjW^7%7Ơ@ Pxxx 0xTou`  BQ`p 'R  ` 0 0P@PC'R /W408000P0 0A009 v00P`W*W^ 77 <8dHTt?ou`  BQ>`p 'R  @` 0 0P+W G*Q PQ?`Y / ou`  BQ`p 'R  ` 0 0PWQH QK QT/ H/ ` PW33FiC  W' W$`0 W"WpFPp` `,``p pGPp` ` `` p``KODou`  BQ`p 'R  ` 0 0P P@ P ov`  BQ`p 'R  ` 0 0Pou`  BQ{`p 'R  }` 0 0Ph/ GQ Q~ ?`Y 0P0 PQ(0#B  f)03  `/ +/p Qy `8P0P 0EAQ@?`X P00!| P f0!F  # /Sr0W l0LlP ov`  BQ`p 'R  ` 0 0PP ov`  BQ`p 'R  ` 0 0PP ov`  BQ`p 'R  ` 0 0P/ / p` P1Fou`  BQ`p 'R  ` 0 0P'  P / you`  BQt`p 'R  v` 0 0Pa/ ?ou`  BQW`p 'R  Y` 0 0PD/ GA>/ =/ mRa ou`  BQ-`p 'R  /` 0 0P@L ou`  BQ`p 'R  ` 0 0P)JP ov`  BQ`p 'R  ` 0 0Pou`  BQ`p 'R  ` 0 0PiJ0PJP+ R}/ϟ'9B PW?0@F 0,AhW$ 0 " !W 0  BQ 0 0,00  BQ 0 0 00  PP Q 0 0CR0p pQ PKou`  BQd`p 'R  f`PJ 0 0PO'  PY pAW/ +P,ou`  BQ3`p 'R  5` 0 0P / P o`Tou`  BQ`p 'R  ` 0 0P5P/ P o`//!  o`&Ymou`  BQ`p 'R  `P 0 0P/ P o``0 0E0/ >J/Vϟ! p0 p0E0 lou`  BQ`p 'R  ` 0 0PPY . ΟpP n`ov`  BQi`p 'R  k` 0 0PV ov`  BQO`p 'R  Q`qJ 0 0P;nv`  BQ4`p 'R  6` 0 0P!PJ@nv`  BQ`p 'R  ` 0 0P,- ,- $- ꀜ{PLPP |mv`  BQ`p 'R  ` 0 0PP mv`  BQ`p 'R  ` 0 0PUJP lv`  BQ`p 'R  ` 0 0P'P@lv`  BQ`p 'R  ` 0 0PeJ0P')Wf0`@^ P0+ ^)Pkv`  BQo`p 'R  q` 0 0P\PP?`U p* 0P0p03 PQ`f (C /2 @0@ R<$*'9`@ PWWu0 s0F` P) `LxP) ) +Piu`  BQ`p 'R  ` 0 0PPhu`  BQ`p 'R  ` 0 0PPY h( *`(\ȟ! Lh`00 `l{PX{gPgu`  BQ`p 'R  `J 0 0P\' Ygu`  BQ`p 'R  `PIJ 0 0Pw& A00 0PJdgv`  BQd`p 'R  f` 0 0PQpPfv`  BQI`p 'R  K`ePP 0 0P4-J|fv`  BQ,`p 'R  .` 0 0P Jfv`  BQ`p 'R  ` 0 0P   KiPPWf'9W(0Y"P`#ğpP d`P `00# JYAD$ C$ 2PP Pt?u`P`0RQ7 Pà US U?] U| 'R5  PdP<ğY@ ($(T @ PPJ0L# ``A=  Kp# ppYA1t# PF P [YY `p#fX#`@0 0 3A J\ UY #p #p' b@`Aa04" p" Q-Y `"@0 0Gx PX" E J Y ' f sQ: QAb(" 7N P9 P( P JP  P bu`  BQ`p 'R  ` 0 0PPPY !! xa@`6PPPbH! @EzPJ,au`  BQ`p 'R  ` 0 0PWPPOOIPOAP/PPPPP}JOJMP5O0OPPJ8PPOO1JHPPOPyPOOPwPPlOOdO.O{}OxOXOKOOOOOOI-OOOI=PPMPP PPPvPPP~ P PR PX PN#@o/ 'N0S!/pL-@P `0!A ;  P::p 'N30S`!?` 2P0 E;  p @P  @Thp pp^p`b`  BQ`p 'R !` 0 0 P  pp p]OOOL- @0 s;O  /L-@.@H-   i ْCIH-   i 뱒CI/ᙒC   /|{/PH- M C Р 'N0S!/O-MMPpZ p* @ `0K p , 0P (p $  0:V:K|{{O //H-   i !C#I///pL-MHQ 0 t@t@* 0Kp 0 0ji vCbKOpL-M4 0r@r@0Kppv/////////////////////H- M 0S РH- M 0G РH- M 09 РH- M  0' РH- M 0 РH- M 0 РH- M 0 РpL-M( 0r@r@0KpvH- M  0 РH- M  0 РH- M 0 РH- M  0 РH- M 0 РH- M 0 РH- M 0y Р 0rH- M  0b РH- M 0R РH- M 0B РH- M 02 РH- M 0$ РH- M 0 РL-M@[ x00 K0uP   剗}}}}Ȟ}L-M@[ x0 0 K0IP   ]X}}}}}H- M  0 РH- M 0 РpL-M( 0r@r@0KpvH- M 0| РH- M 0n РH- M 0b РM-M@`pP+ 0@   QP" ` OpPt 㾵PЮKs{Ds{r{H-M@`pP+ 0p   QP ` OpPᜮpKr{r s r0"!Q @3#3#C0 //@ !!@/ /, /|pL-MP@r s`q  `0 33CFU @ @ k   `Kp|O-pL-`@P0ᮠ pL20H-@P@ 0H(pL-`@P04 pL0H-MP@Pl K0H0H-M P@P_ K0H0R 2H- M"  㶛 Р0Q  28H- M"  > Р0Rʃ 2H- M" 㖛 Р0Q 2H- M"  РH- M?0R ʃ R  2 РH趛" "  i РH- M0 R ʁR   2 РHݘ" "  РO-$MR QPpU&|   @  "` 놐UH  2  2՚  e  2KOʚ 0pPX CcP`@$ @cP7D@ P0 U:\X! \ P 0 W0X Y/ P 2㱚W2 ሚ+ 0XY   6  2p`ᕚ2 n  2㊚  è  ❮Kl|]CIK-Mp@Q 2KK }`P 2Z 2  2OpKM-M`@PR 2KM艖 Sp 21 2xLKL-M0@C4C0 @ޢKL-M @A4 0΢K!M-M `pP@Q p10 sKH-p@`PQ  HO-dMP0K 0@jp ` 04 D 8 @᱈8K!;0  帣K0pb8 ,    0`b =@"8Kኀ 0 8` `  0y 0rb0  8p@\0KtKO-KL-8M@w? 0 rKH- 8M  0 0w РH-8Mp@P`@ 0l 6r"PzKH- 0M 2 +"  | Р0H-0MP@  2{"+zK0K-0MPp@ 2pp`Ḓ@{ 2pp帒@{ zKH-8M@ PC  2 P{`p" ppyhs`  6l 2㓁 0`  5l 2|P ppy>sKK-0M@ P\ ppp Ḓ2Pj{ `"ys `  6|l 2F ` 5ql 26 ` 5fl 25@pp Ḓ21{ `  5Ql 2 P"_yQrKH-8M@ PC  2 P{`p" pprKK-8M@ Pp p p2pPᰓjz`" xr`  6|k 2F` 5qk 26` 5dk 2=+ 2 pp尓Xz ` jx' pp2㰓Izq`  5=k 2P Kx!=qKO-LM@ Pn    2`yp" %xq0K ᬞ-spP  5j 2 2y ᠞  xP 5j 20`KᅞspP '5j 2 2yy P P w Oq LqKH-8M@P>p p p0o` 5j 2] pp  2byKK-M@PP`p 8 2㖎"\"wW W 0̉W  1ʼn P"kw 2㴎"9 ^wpK 2a"'"Lw 0KK׎HW|K-M@pP` @  2:""%wU U 0qU  1j`"w 2X"ݏ"wU 2㠋 0 2"Ï"v 0KK 2ニ 0Z 2xOpKU|K-M@`P`p :  2㟍"㈏"vW W 0W  1P"v& 0+Sᾍ"c vpK 2h"Q"vv 0KKۍS|K-M@pP` A  2?"("MvU U 0ẈU  1㳈`"8vA 0+S_"")vU 2㤊 0 2""v 0KK 2㇊ 0Y 2|voKxR|H- M  РH- M  РH- M  РH- M ފ Р0H-P@W P < QE@TA0P|O-LMp`@TT W P `P PGP`PVP@X50K*ppb 0`p0  㰣 Avh 0Ⱓ A v!P 5Uh 2}0KK 0   vKO|0H-M@P|W P 0K00H-M@PkW P 0K0H-M@`PYW P r 0p݇ 0pׇKK-HM@p `៛ pP  0(p*m 0 ᑛKM-@M@ `PpP S P@    2 v K tD"0}KnhPh` ?n"thPhl`V P p PFpPpUp@ES P P! 5g  2F|K 0   rKwOK|M-HMp`Po@  0(`l 0jK0dO-MP`p @wGvFuExHzJy IR40p pW  eH K CoIH- 8M0+ #  B0 "00  hu РH- 8M+ 0#  4l РH- gHRH- gHRpL-P`X 0@P0@ K 0@0F 0@A Y` <@9-;@ 4 :@ /  9@* U`8@"-7 @ 6 @ 5@ 1@4 -3  2 0 p  G  CmIM-(M@P8p ?#/B! 000 p 0c BG` `p+`P^  $  !>YKO-M`PPP? ,04 0@RC NN00,P6*B>A"rPP) 8 wb\ "X,00`V @AFA!6S@D,04 0 K pL-M@ P PP`x !  0KpK-M@P7 P$R0 0 0p P  88P0000phppQpQp pQpQpppppjPP u`S  0K0,  F  0 0F ChICbhKRnOK-HMP(`,$p @X ( P (0p @- K lV  0,p-,`P( @( Xk,` 0  K7H-   AF Cb;LO-TM@ P0 0 0`p6!Pp !,($ HPpؠQ$pyoPguoP Q$P 8pP\-(K l(b$ P?d  $ P 3p,(aXP<8aD 0@8 QQ0 0XKq P88@0000P`Hˀ ƀɀ꾀글껀 40,(P XP$ 0K  lE CcIL-0S$^ BmR$@!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\   \ \\\\\\\\HHHLWn/PnQdLInGnQL@nPo  3!Q3K-0M`P pKP @ , K #l V 0 +`P@ Xk`" 0"KH-   wD B:4LO-dM@5 Q   0`pp0pS/*^< <840}P X,^ ( @(P3 ^8pK<  P+(K $P( !<K 0ppPP<K 0pP<K 0p!P<K 0p P |K P $! C ` P>8K<{4 AP>  P9 40@ $R H0D0pQorLp$0H0R 0   T0P p0 S/o"X $pTpS  Q@⼇X R TpD0( K<P 8pUUE3#3#C(oG0 //@ !!@0"!Sg@` 4S    H`D ` @ROoBL@$`H`S0T0P`0SoX$`T`S  R@hXQ T`WFFoo[FoV $`  cD`  p % 8PKT`W(K >X0$>(0 0`qp> ! |Wc$`  P 5(`  p  @@`W8K X 4.80  qp!>- W*$`   D`  p  8PKT`W(K X0$>(0 0`qp> ! }7FP PW `iP+ o   (@ g P  @p@VW8K X04>80 0pa`> ! f KiP|y W9 JP6 P3 (@3    , P T @p@W8K m@p84`@W8K bX 0.q84p  `!6ooo ph P5   V (@    @P@V8K 1@P8`4@V8K &X048>pQP H0  >! uE@@@ HC _ _0@K Dp      8PKpV(K f8`KP(p1$@PV(K X0$(>`QP 0 @  !> v KO-4M`p` K(0P,( $ P K(0  +P K(0  ZP$  Q p   J ` r,XP $0(^@a`P>! 9 K K(0   P $     ` E  P >X0q.a` !> KpL-(MP` @|Bf f0` KpM-hM$@ P Q , ( 0P?o200$ , Q 8 40 Ro<$080R    P$<Q; 8p8(`t @0D @pp0P @0 pjP @0 pP$ ` p DP 0@/!>PR K@`@ Ag g0`K @0 p? `Pc  (P[ pX 10! >KpL-(MP` @A 0 -Kp O-`QP 0> !vKD`D @ 0 K O-pa` 0 $ >!wK' HPp8`KPR(K X $.(0  qp!>y(HPp8`KPR(K X $.(  0qp!>xLK|O-Pp @ 6X0.qNaQPB @p\p 4S    dp` p `Roobh`$pdpS0p0l0pQortp$0p0Q  R\|  ,`@ P l@ p P@  P@8P 4P  P@/P PV P1  B RO0!84 4 4 4 4 4 4 4 4 p4 \p 4S    dp` p `Roobh`$pdpS0p0lp0Sot$pppS  R\{tQ pP P  K D@ CP k`@ ;p c `@)L8K {X >`4q.8QP 0>! ~b\0 tW    d0` `0@SOoBh@$`d`Wp`pppp`lp`p@WOoBt@$`p`W  S\;{\` P ` 1Q p 4S (p$p`Qoob,`$p(pS 0   400 0 pRor8p$040R  Q {tPp pP2 Pk8Ph 4Pe  D@ P $@ p 8`K@K(K X >`$q.(QP 0>! z\p 4S    dp` p `Roobh`$pdpS0p0l0pQortp$0p0Q  R\z F `@ >P fl@ 6p ^D@ .` VX0Nq.QPa @` !k>]\p 4S    dp` p `Roobh`$pdpS0p0l0pQortp$0p0Q  R\7z  E`@ P l@ p D@ ` X0Nq.QPao !> @` K  D@ P `@ p  `@J8K X >`4q.8QP 0>! 8P7 4P4 u D@ mP $@ ep 8`K@SJ(K X >`$q.(QP 0>! {\@\ 6 ^ ^0@W KK-`M @ P Q ( $ 0P?o2,0$ ( Q 4 0 0Q?o280$ 4 Q  P Rym 0 Pg.Pb 00< $R D0@0pQorHp$0D0R 0   P0L 0 pRorTp$0P0R  Q<y%@pLp`$pPX0.q^aCl !> PpK<`< 6h i0` KO-dM,@ P Q 4 0 0P?o280$ 4 Q @ <0 RoD$0@0R    P,xDQ @pW  `GG] w ` j K=0P5]0P-UW&hV FdVFbFP ,($ 8pK(!$ X 㪞aᨮሁPH(K F$ (0@ iQH0P 0PW&hV FdVVFbFP0 ,($ 8pK(!$ X 㪞aᨮሁPH(K $ (0@ ^ $ (0K  d1 둰BIO-M@Pp 㧞$⇡R   `spX㧎 qP@a`X !   0"KH-0M@PMXp$ <`,( P `)pQX PP`=X  0  p uKH- M 0 q  РO-4M` p Q   0P?o2$0$  Q , ( 0Q?o200$ , Q  P w@pP(pX qP^1! 00  TKH- M 0 r РH- M 0 q  РO-LM0@ p( ,0Q 8 4 0P?o2<0$ 8 Q D @ 0Q?o2H0$ D Q  P0vLPH`4p@h@p8`pX ቁᩞ 兡 ^P$(, 0>!,0( Kq X^`j 0`` h$( ,0 P``K  $lKH- M 0 r c Р a. + ( % "                                n        K-XM4 @ PQ  , 0 0pPor(pK$0,0 Q0 0 $ 0pQorpK$0 0 Q  P4K0 7aP:]P5 00 $R (0$0pQor,p$0(0R 0   400 0 pRor8p$040R  Q `T$p>$ PgPb $0 $R (0$0pQor,p$0(0R 0   400 0 pRor8p$040R  Q 0p$p`0pPX0.q^aC !> PpK KK-MP @ PQ  < @ H 0pPor8pK 0 K Q$0 (0 0 0pQor pK K Q  PPKH GaP<vP7 H0 $R 4000(0pQor8p 0 R    L0H0@ 0 pRorPp  R  Q  k0p@0 Pi4Pd 00 $R 4000(0pQor8p 0 R    L0H0@ 0 pRorPp  R  Q z)Hp(p`@pPX0.q^aC !> PpK KK-XM4 @ P Q , 0 0P?o2(0K$ , Q   $ 0pQorpK$0 0 Q0 00 P4K$ 7QgPb $0 $R (0$0pQor,p$0(0R 0   400 0 pRor8p$040R  Q &0pF$p`>0pP6X0.q^aC !> PpK aKK-MP @ P Q < @ H 0P?o280K  K Q $ ( 0 0pQor pK K Q0 00 PPKf0 GQiPd 00 $R 4000(0pQor8p 0 R    L0H0@ 0 pRorPp  R  Q ,}Hpu(pm`@pePX0.q^aC !> PpSK KO-Mp@>` $R㆑   P+`S㦮 ㆁPP`A 0! KO-M @PpX 㧞$⇡R   `p㧎 qP@` !   0KK-M@Pp㧞 qP @` !   09KO-M@P6 0 QC ` pW mPX 0 A: :J B!eY:p W  P7U C`kX 0 YKO-4M@0TG p0P=`帐V- y) QP   QP    P i`A( L,( !> 0Ip Q *Dp  q @TK  *  uBH//O-,M`P% PC pP; p Q   0P?o20$  Q $ @0 S/o"( $$S0 00 Pp$( R Q P`  P `p Pd ! A2R9(HpXppppppppppppppppppppppppptpppppDXld a7Q"P P P'P P P CP P^ ^0%PS P3X>!d EKf f0Ke ! ! ! !  0Kc b 0KoP PPP  CKo P P  Ko P P  K PKh i0P~̹pL-0M`b @ 0  $R 00PP_oRP$00R 0   0 P0 S/o"$ $P PS  P o$ R Q 1AQ 0P P"3Q Q!AQ 0 0 P #  K0K) 0KpM-@M @ 0$R 00pPorp$00R 0   0 p0 S/o"$ $p pS  P 8$ R  @ `p(P` K  !X>9P  @ 0P`(pP K  !XP`Pp 1!X0>KM-`M@ 0$R $0 00pPor(p 0 R    <0800 p0 S/o"@  S  P@ R  @ `4p\0PK0`e K u !X>9(P  @ /0P`90pKPB K R !XP`!0Pp 1!X0>(KO-tMD0 @ P0 $R 840`Qoob<`$080R   ` D @`0 @ROoBH@$0D0R    Q0m4@`P,($  <K < Pp#  @ <8PK@(K $(6 @ Xk$ @` 2@@K  0P@P@K  0@,P@K  0@[P@K  0@ p%P' 4@ Ip qX@` ;@ 0  ]K4`<K < P  D <8pK@O(K _$ (" pDK  @P0PDK  0@PDK  0@PDK  0@P @@ p  XD`@` 4@@k @` p @@XP p $ GO-|MD@ ` Q L H 0P?o2P0$ L Q X T 0Q?o2\0$ X Q  PDlPBBX允8~HP<4p0o`TP$ c`,(  00  m 8`KPB=(K ( 0$ bpKO-M@ `D P 0Q L H pPorPp$ L Q@XT@ pQor\p$ X Q  PDPlT@< 840,($ <K<` \(PbE `  @ <8pKP (K -$p(!@K 0PP]pP@K 0PP@K 0PP@K 0PP> H@gPh@P PXNQ` Q@ P:@p렮QGP p(@p0AKH@<K@p<`  P  @ <8pKP (K $p( @K 0PpP@K 0PP@K 0PKP@K 0PP @-T@|@h@HpP @ gPh %MX!Tp( ,gPo @P9XNQcM-0MPs `p$K @ 04/P @I0 AK 0 0$ }BNJxNO-DMP @P `pXn㇑$` PP W%AU%E  RP %KP P` U@X㠎〡(p;(K( $ (0`h 0L $K0H-@M@  P'0P P Q  0P?o2 0$  Q  0 Ro$00R    P jQ P0]K0 K0pL-(MP` @' @KppL-(MP` @' @KppL-(MP` @~' @|KppL-(MP` @k' @iKpH-(MP@)!P `p R'`p` J'`^ ^0KH-(MP@!P `p 0'`p` ('`h i0KH-(MP@p P `pp '` ` ' KpL-(MP` @& @bKppL-(MP` @& @OKppL-(MP ` @& @<KppL-(MP` @& @KppL-(MP` @& @KppL-(MP ` @& @KpK-M@ `P pfP2 P, Pp=`PX0q.a` !>$P`pX.0qa` !>iKM-M@ `P pP1 P+ PpmPf`_pX.0qa` !#HPA`i:pbX.0qa` !>KK-M@P P$R0 0 0ppP P P5`Q`Q`!`Q `Q `"`UPpX.0qQP !>K  ! qBHO-4M@Pk Q0 0 0@yP7*p`,(PpPP$  0 #yK  I! %pB'HO-LM@ PP   `ppPQ` Q Q]&P PX' (P PQ)*PK=`eX40 0` Xp<8$`LpD@`v,(<<$00 0(0  mK  nBHO-dM@ PP0 0  0p`pPQp` Q Qr+P Pm, -P Pf./P`  XD@ Xp` pLH`p؀TP`\X`<8:<XP$ 3<,XP(,<40@ 0 080  K  & kBHO-TM@ `P   PppPQP Q QbP P \P PX PSP@X<8  P 3pD@P'pLHPQ40;;$ ;8 ,(00  CK   iiBkHH- M4302 0 10i РH- M9807 5 60] РH- M>=0< : ;0Q РH- MCB0A ? @0E РH- MHG0F D E09 РH-MP@`zp.0q !>7 pK     O-(0 0`qp 0 K    O-LMP,@$`pa $(R $  p0p 5(K 0( X㨮 q$P@`X ! 00 ,$ (0 K                     E  O Y Z [ W ] ^    A   ! " /                    } z w t q n k Bh e b _ C\ Y V S P M J G D FA > ; 8 G5 #2 I/ %, &) '& J# )  * + K - .  1  2 3 M 5 6 9 : ;O-,MP@{ P pk` > 0 $1RX ᆁ $0 `Up}X㧞 qPPC`k !X $ 0=p 5KO-M$p i `<K@ P @K&Py @QP  R P P P ,,  0 PRP%IPRP!EPR@P$@ PR@P$; PR@P$6 PR@P$1 PR@P$, PR@P$'PR@P$"PR @P$PR @P$PR @P$PR@P$PR @P$ PR@P$PR@P$3 0 S: H L PN L @  $H R L  @P X㥎 qPP s@ <K 8`KP_3(K X0$(>` 00a` Q L H00A K@PlP1 D  =p e 6P ^8`KA[@%3(K wX0n@$Q>(qp h0> ! Q P ခT UE 5 P .HD@T9P P Q P Q P Q P Q P Q P Q P QP@ Q TDX@H< T 8PK@2(K (P$LL8PK@2(K (L H$8PK@2(K P(p$8PK@x2(K $ ((0 p$@<DH PLTL4 !> RK@ V ~ O@ 8pKP>2(K @8pK `($P!@.2(K X0$(>pQP 0 > !N&K P P P P P P P P  P P P P@ P Q Q@ PH   A8pKP1(K #@8pK(`$@P!@1(K HpX $0(.qpD @!<Q@ PH   8pKP1(K @8pK(`$@P@1(K HpX0$ (>qpH0 @ !> T?H AL P:  @5 P  ``@pW P  P@W UT@ UQPPP Q @AP xUWp {U H@ /P  $P R H@ T P`BX㦎H@qPP`/X ! LT P0Ktt0H-0 0@ T @T@PUPS 0P\P^PTPS P\ P^ PT PS P\P^ T#0O-4Mp@`㦎 ㆑P pP`p0( X ,0.(1  00x ZKO-4Mp@~`㦎 ㆑P plP`pZ0( X ,0.(1  00y "KH-    eOBgHH-    =OB?H,@@ + !/P{  /K-8MP`p1QO p 4S  pp@QOoB@$p pS   0  0@p0W?o20$  W  Q:_ 0S R `@Xp@ P K  pKL-@ A%R4!(H  $0/ZQ;${/$ $ P! V/ P  P    eKBgHO-$MpP @J` p3p  43@  43  4凑X~  0@ ` ㄡXN 0  @AXn 0P  0 K@ KK-p`P@uP0*u@ 1*  uPP Y*y 1 | <P Y*y 1 @<   ! @  r txtLtHB˫HH-M@    " $R ppP RP `A RUP R@ $R``P RPPA RT@ KHRKM-M 0  P $R ppP RP `A jRUP mR @ $R``P RPPA RRT@ KMSRK0H-@P ゾynl 0L㮾P0HDM-(Mb  0@`p=P  5f5 2+J㍾P 5X5 2JP# 5M5 2J 0`Pv= 0p pPp2KH-MP`@| p ;_p8P$P  "-B,;K1zL-P@P 1/,$4<DLTL>,1zL-T@P 1/,$4<DLT&Lv0z /Q/H- 8M 0  l? РH/R/O-KpL-8M@9 0 ,# `9` 5P4 2H  2CL "AKp:0H-0M@P  2 +" BT <AK0QR "@R0<  @/0H-0M@P  2 +" BT!<@K0M-8Mp@P`  53 2vH 0 a +# I> 2BT <@KK-8M@`Pp  53 2GH0 00;30B > 2vBX"<|@K0H-0M@P  2 +" SBT "<d@K0M-8Mp@P` 5;3 2H 2?B 0 =T <7@KO-|M@ p$ @ !IPP 5`P 3 2G!IP P@P`5 2 2G 0pZA$K ?`P @P  52 2G 0dA 2A " @ D@2HpLphpA!X<?P <4, 8 00(6A 0/AP  0A 0A$  9@` 5Px2 2GG@` 5Pl2 2;G 2pA( w?@0`[ p D`@`VPp7@0 PpD`@`V7 2MA0p"T?a@0P D`@`V@@ P2D`@`V'A ":?@0P D`@`V|@@ P2D`@`V A! ?@ D`@`2VP@ ?8 2@  "?8"?~8Qy ">y `9 @0Dr@ H`L`h`w<@ 0D@H`L`h`p7@ 0D@H`L`h`p6 0H@P  0@P@ @0DPp6Pp儐 (p@ D2@P`@ Q<>Q   0K  0@C1/8Pp `7   0?U. @ P5PpI1 2 F  5PP@`71 2E 0? 0?$K7KO-\M@ $ p P P !E` 5 1 2E p5`P!E  0 2E 0]?$K =`P p  50 2RE 0Pf? 2?X " $ 2(,H?X!<=r` 0B? 0P.  p  P`550 2D P5 P` "0 2D 0> 0>$K6K0H-0M@P  2 +" >T"<=K0M-8MP@Q p` pp㰃0  > 2 pp尃`> 2   >T <<KM-8MP@Q p` pp㰃0  = 2 pp尃`> 2   p>T"<<KO-"Q<{<KK-8MP@` @ @pᰓ0  =F @@2㰓B>X "<S<KK-8MP@` @ @pᰓ0  =F @@2㰓>X!<+<KO-DMpP` . 0C4@0@@ 㸣` '=0 @@帣 `9p 5`. 2C 2@@帣 = "Q<;KO-DM@*A`MP8p80`rP ``尣< 0 `` 㰣< 2 ``尣M=X "<^;`PsPk P P0c < PP2c``)=X< ":;RPk0 P P0c  w<  PP2c=X< "00`Pp ``尣PK< 0 `` 㰣N< 2 ``尣P<P p $K$p ":0 `` 㰣1< 2 ``尣P<X!>PPp P k$P  p2pc<$K : 0 ppc < pp2c<  ": pp2c<X"<:P   z2m<X!<~:P, PP0# 2p 5`P- 2B PP2?<X< g $ P   z2(<$K!;:P, PP0# U2p 5`- 2A PP2;X"<:P# $K3Pk0 P P0c  E;  PP2c;X<!9`KL-8M@ 01D"9KO-M`T` X` ($>3 0?R,B@ P0KL P KK `P47P K0L rP BK@` P1PPK  6@v, 2@APPK  6@j, 24A\`T`X`P`n,"KP K@ 0L P p1PPK 5@K, 2A 0:Xp "T9P KK2@ L P BK1;P"D9P K0L [P BK@ c1X@K"392P K2L P RK[@` ;" 9P2P0K `r@  L P RK\:PPK  5@+  2@PPK  5@+ 2@ 0L:PPK  5@+ 2@P0K @ L P K&:PPK @@o2Y+ 0:PPK  5@+ 2q@@PPK;+ 0p0L`P KD`[H`@`2L P RK@` :H@"8 P KRK@ 0L P `0@P"8 2 2 4PVP=PP0KLP PP 㸢K@@  6P K 0LP PP 帢K@ 0<@8`8@1PpK 0@=+ 2@LP P0KPP  㸢K@ 49"A8PpKP` 5Q @`+ 2? PEVPPK , 5@+ 2?,"804P1 PPPK  5@* 2b?PPK $ 5@* 2p?PPK  5@* 2? 0p`=9P 4PPK 0@a* 0`/P0KL  P Hp Dp (pKp`U5 PPPKp 5 P@``ՙ* 2^? @ P5* 2O?Z P4 02@P@ 0*b 0`54@ 0@*``L P  0H D (K44L P H D (K 04 5@3* 2> 5@(* 2> pGZzPP P@K  5* 2>PPK ( 5@* 2`>PPK $ 5@) 2>pP0KLp Pp 㸢K@` b`4PPK  5@) 2>P0K  @ Lp Pp 帢K`78P K 2@ Lp Pp 帢K8XK "6PPK ( 5@) 2> P0K Lp Pp 帢K@ `T4PPK $ 5@) 2k>PPK  5@) 2Z>P/ 28H"6P K2Lp Pp 帢K@ }8D 6<88 0P0K QLp Pp 帢K@ `4P8  4H"q60P KL P  K@ 0.04D/P PPK  5@8) 2=XK/R  0P@]1  ?P><P/1/<@8@LPP/@PPK(bp 0p`j7PPK  6@( 2=L P KP K2@p 7XK"5PPK  5@(  2=PPK  5@( 2=@PPKf( 0p`m3TPtT/@PPKT(b 0`7PPK  6@( 2p=  0`0,P0K@ P{ LP PP rK`53@P KK@ 0PP LP `- P K2LP PP rK@ n78 5 0`0PPK  5@Z( 2=@PPK' 0`28P8.+L P 0"KP K@ {-XK"L5P@K ) 0   ᠋`P(@p PU  (03/PU ,KK-HM@ Ur 0p#0P`' 0p(- P0`  ``尔(Pp<6 0p04,$ (0 ``p-  ^0  ``尔(PpU2`  5P'  2g<@P6' 0p,K4M{pL-8MP`Q  0@  +#   "2@1/P UP`  5i' `UP  5\' 2<Kp`U P  5L' 2 <KpP  5?' 2 <KpQ "H4/M-0MPp `@P5!@ ' 2; 2 6T "<4KM-0MPp `@P5!@ & 2; 25T "<3KM-0MP` p5P!@ & 2@; 2@ @(@5X <3K/pL-P@`S TA`03/ pL0H-M P@ 5& 2N;K0H-M p@P` 5v& 2;; `5P!@ @e& 2/;KpL-M@ 5 ` 6PO& 2;KpM-8M@, 0# pu+` 5P)& 2: 2 ppp0p5T "3K0H-M P@ 6 & 2:K0H-M@`P p5P!@ % 2: p 6`% 2:UK0H-M P@5R  !@ % 2:K0M-8M@P`5P!@ % 2z:` , 5P% 2pm:0  ppp0pC0KK-@M@ `a p [2 p pS4 K "2 0S pp* ,KpL-8M@P 0  * `5P!@@G% 2:KpL-@4"S2PpL-8MP@`R  0 / P5P!@@%  5P!@@% 29KpO-Mp`@  5$ 29Vq@  5P @PP$ 29EpGP`KM- Mp@P` , 5$ 29 0+3 `5P!@@$ 2s9K0H-M 00@B4PB B&Co 0 @"K0K-8M`@pPQg 2 z3T "#  5l$ 209 0  +# / 2`3T "<f1KO-0-p`{k@ !A@P `P`P  00S 0& X O  W  Hn 8 2/W P Np (P 1nPOpP0  0`V 0& S O 8 2/POpP0 0`V 0x& S O 8 2/P'  m`Op`0  0PU 0L& S O 8 2/K  PpW Lpq$O-,M0`$  @ R'@ @ pP0 0P L @P PLPK  Pp0HKT:{pL-@` 00 0C%4R%$ Q Q 0S ?PP@P9:PP4 P/ znP*  %PR$$ Q Q 0S ?P@P:P P SnP PppL-8M@P`  /``A@Qᄭ0 `0$P(`,@04?XPk\P ZP@!y^KpD@ @0 0  0 0 Av\JbNA\JMO- M,  p0 P  @ ,  ` 0P TL S K`o`P BL  @P kKP @P  KOKK $0 O-4Mp`0,($ PQ1 PP@`  P K 0  X  K P @P mKP K c @p0 K4{O-\M`P8@TPLHD@8" Ry,p @ @ ,0 ` 0咣4 `4=PE VᆣPf4> PQ 0#D$ u 0 Q1@a  !1 0 4 PL R @ Pyy P0{ 㤞P@P J8P K d 8{ HK @  ,( ` Q ᮿ 0pP 0C3{mA"XJ^N 0 0\O-M,<p@`, P P v@P KOZJKO- M,@Pp,0 R `0P0 `z B0P  0A P KO"JK 0 0%d O-4Mp`,($ <@Q< 0 @ @ P Q:  `P `SJ0  Z {I `P 0@ P IP K  p JK.{ 0 dO- MP ,`@ p0 P   J 0  S *I P @P 0KOyIKL-( @T 0 LsXNO- MP ,`@ p0 P #  I 0  S H P @P 0KO/IKL-( @T 0 L)ꋡBO- MP ,`@ p0 P  nI 0  S H P @P 0KOHK 0 O- MP ,`@ p0 P  .I 0  S WH P @P 0KOHK _0 O- MP ,`@ p0 P  H 0  S H P @P 0KOfHKL-( @S 0 L`nTNO- MP ,`@ p0 P   H 0  S G P @P 0KOHKL-( @tS 0 LAO- MP ,`@ p0 P 3  ZH 0  S G P @P 0KOGKL-( @*S 0 L*RNO- MP ,`@ p0 P 7 H 0  S :G P @P 0KOGKL-( @R 0 LQNO- MP ,`@ p0 P ; G 0  S F P @P 0KO@GKL-( @R 0 L:ONO- MP ,`@ p0 P  G 0  S F P @P 0KOFKL-( @OR 0 LꇘMO- M <@Pp  P ` 7G  P _F`'/ Q+'`,P G A0 P0>F0`` P ,OP F @@P KOxFKA0 P0 F0`坄P  L-( @Q 0 L^LNO- M  @P0 pP0 `p F  SpE `3@J`P F PE`P 00 @P KOEKL-( @RQ 0 L KNdO- M  @P0p 0P0 `0 7F ppP^Ep`' Q '`,P F@ QA0 P07E0`0 /O` Q `1 0/OP `PV P P 0o1P0 1`D`P Epp PDp`P  @ P KOCEKOL-( @P 0 L84HNO-4Mp,($ Ql  @`P  @    R  00 04 R rzw@     Rp pp P  P ;E  P bDpP  @P DP K {  p -K{O-,M`$  @ R@ @Pp fwLQ@ pkDP K | K{ Y 0 0[O-  Rrrr D 2/AK@P 7I PC pP V P P4 P0  +7p `0Q ~P P  7 # 7  ,  !RPPPBT P @"TBKpL-@MPP B`Ppᬼ R $ L"#0`QP Pͧ`PV ۼwKpO-M,`@Pp/PHQ@ KO@K 0 PO-K 0 0 O-M巍㦯`@ۆK|QʌP MRP @9 URP D 2/A@q A1a  00 !01RKKO- MP, PI#`@``` `ԲPF ` `,`<`L`\`l`|``@0@# TP  0ApP p PURUQ P Q0 @:Z`` V:K84 40 0   qAYUJAB%Jx,NH- P  ZO,N0H-@pPP 2/P 1/`PP  2/PP 1/0HH-@/`PpP  1/TpP < 03/zzzRTJH-`P@P@`upP Y 1/TjpP < 03/zzzSJL-@8 2/P1 1/pL-P` P p@  2/P 1/Pp 2/P  1/  y)N0H-M@@[P x PtP7 U P 1/1/K0{ x0H-M@@[P x PtP U P 1/ 1/K0${X< xH-M`P@`[P p|p W P 1/ 01/Kp{ x0H-M@@[P x PtP U P 1/1/K0{ xO-4M 0@ `pqlp[P @(@} (T P 1/ 0P 5/PP-[P (@W (T P 1/1/ A2/P 1/Z:K{,x l H-M`P@`[P p|p W P 1/ 03/KT{ lxM-Mp`Pp[P @@ T P 1/ 0 p7/K{ xM-Mp`Pp[P @@ T P 1/ 0$p7/K{ xH-M`P@`[P pp W P 1/1/` 0P`K{D(x/K-MP@Pp[P ``I V P 1/1/`@ P 0PPK({L0xL-@PH-M\QP[P 8 `4` V P 1/1/` @`[R pp W P 1/ 03/PK,( (0 0 {8xxAJN/M-M`Q.P P(:pp[P @@ T P 1/ 0$p7/K$ 0 0; H{|`wAJ*NO-M`V7P@i [P pp V W P 1/ 0 p7/PAKPL L0 0 $ 0 0 L{dwAvJNAJJN   /K-MXq`p[P 8 P4P U P 1/1/P[P @@ T P 1/1/`@ `0p(PpAK{0wwK-M@p`@[P PP U P 1/1/`@ @0pPpK|{w0H-@,1/PPHHPP[ P0( P  P0|{zX{D{H-M`Pp@@pዽ PD R ,᥽KO-TM@p`PŐV   PG,@ U`@Q  P 9V m`P5w Q,8,@` G 0`P_ a P t9 Q,8,@` t`@ #R -P9 L 0PPY   00,G, 0  $  (K( 08P? 4pP ,@ 0R0#0RPQ, ?4 4 P  9pX B@pW28pXy ,@ ` P@P P 8 0P8P4 @P`#UP 8pX 0pW7pXV=,, @4POP 8p ApW7pP8PP 8 0Q,7P 3>`V@,4,@@pQ  0PP0 p8` `V,7`,@pQ: Q,0p4 p4  A PP D8 0Z,m74P0  ,p@QQP &8p4  PB,PP) 80204 pW,?74 pPPT , 80C0P,p; P0,@P 7 040S,740P, 8@!P P0P74 P Q08AP P0,p4 Wi80P8 (K$p `@@@P ,p:7(`X,V @ R0PP 7p+P 7P @P6P   !0M PU,6P   Aڱ`OPP M7P ,  @Pt6P`p+b+@ 0 R 0T   8 2/ K0P8aH-M`Pp@@pẺ 0PD R ,ѺKO-\M(0P@`R, <$ p00pBt40S0 0p004S'04 ,  0Q4pW  P KO|\0p0pU4t@`Q p 08@ P0   6 q PE 6`M Q ,4 54 `, P `0@,@P 5<P ]6`A0P ,5p p`V,x5`p,@8 `V,j5`p,@UP pヵP0  X8 0$   04  0 (K0   R @0P00P # 0P0S / P RQ <8 <P P 5`PUB@`V 5`,@PU p P@P P 5 4P4P8 s@PU #UP / U P 5` 4`V4`PUX<, p8`OP 5P A@PU4P,@``P k5 4Q4` 30;X,<`@PQ  p8 4P D5 X,m4,@PQ: Qp,p,p  A P8P 5` 4`V,C4`P0  q@8Q$P 4P PB,P8P) 4004,PU,4PppT $ 0,@0P8r p8,@P 440S,30P@ ,@0PS4,P3p $0(0P; p<` Zk0p40(Kb8P@ P 4X  0dU\  C4P 0 01ZppK<`NO-M`@@ p P ?4@ BP@Th3@p0A X`@p P= @O P 00S 0  \  8 2/ 0       JH@D R ,K 0 0 =AIxEJK-MP p-BP 3 `P2@0 p KO-M@p@P` Q  P 30ၲ0 0S20V  R n`V0P@`P`0 0pW 0  S O  K8 KO/O-M  P`@P B3p  `pW j2p`@ BLPP +3  `P T2@0P  pgKO-MP  p!BP 3 `P,2@0 p ?KM-`@@pQ  P 2± PQ1p ṱP@`P`0 0pW 0j  S O  8 M/O-M  0P  p ` P 2  @ R 1 ` 00h0G 0 P;bP i20`  pP 10`V` @DQ P@Q  0 Ug@@P/`Q ,P 12 pAp PW1`pQ Q QkG ' 0S+R_ A   0 0 0V` AG ;QL  G0     ' R    + Q  ;Q  W  K0Q\ 0d 0VB0,   0 0 qAsGUA IWMO-M`P Q ʄ p廀 P 1@VRO + P u1p& @P0`@P P! \1@)@' pW0p   A⪀p `P p@Tf0@`KO--XP<HP7  | @`d$ & !40C d0 ҵp- 4@O0K 0P0pIPE 70G }J #JKHD D0 0: 40 00 02 eMDz8z^M{AI'J{AIM0H-@ Pr&# * =-0HO-M`@ 0P,p PB 0PP P$P(  0|PPPPPPPPPPPPKMhyO-MpK0P} p,l @P ,` Ap`V+`@@O P o,p BPpW+p@@O P V, BPY+@P@ P O@J@P _+ @ P. Z $O0`@`V 0`0`d` p0 0`0 ?\    @RT` X P L` H D @ pK7lP\@T`P OppK @0H@D pKΩ Qtp k a @7x @   - D [ r  7  6  "%O0`@`V 0`0`d` p0 0`0 ?\    @RQT` X P L` H D @ pK 7lP\@pKM# Qlh z@  >6  B$Q P@p  &6  B$Q FP@Y p  6  B$Q P@ C  5  B$Q P @@-  5 h B$Q P@@  5 O B$Q P@   5 6u B$Qp "PkL   5 \ B$QW .PRL   y5 C B$Q> RP9K   `5 * B$Q% VP K   G5  B$Q  2PJ  8 .5  B$Q >PJ u  5  B$Q &PI ^  4  B$Q JPIG  4 n B$Q PH1 @ 4 V B$Q PH  4 >} B$Qx *PsG  4 %d B$Q_ 6PZG  4  K B$QF ZPAF Q9d` a 0F  W4  Q\X a E L 74  QTP a E  4  QLH |a D  3  QD@ ^a D | 3 b Q<8 @a C  3 B Qy40 "a pC.  3 "  iW @Uk@9B.?+eG?&{?-DT! @;f?;f?QH,( _a ?BQt.^Q Q 0 00PT E3 0O`@`V` 0d` 0 p0 ?` \    @RT` X P L` H D @ pK3lP7\@`7ؼzT 3 0O`@`V` 0d` 0 p0 ?` \    @RۈT` X P L` H D @ pK3lP\@`MpKإ` BP   P 'pK` BP   P7 'BJ 2 0O@`@`V 0d@ 0 p0 ?` \    @RxT@ X P L@ H D @ pK23lP6\@`6@ {2 @O0@`0V 0d@ 0 p0 ?` \    @RET@ X P L@ H D @ pK2lPP\@`PHpKB` BP    P  @')HJ .2 @O0@`0V 0d@ 0 p0 ?` \    @RT@ X P L@ H D @ pK2lPk\@`kJpK` BP   P! &*J P&  BPj VP RbJ^Jt 1 @O0@`0V 0d@ 0 p0 ?` \    @RT@ X P L@ H D @ pKJ2lPl\@`l!JpK⍤`b BP]   P &J P%  AP VP; R7JJJ ]1 @O0@`0V 0d@ 0 p0 ?` \    @R'T@ X P L@ H D @ pK1lP\@`JpK$` BP   Po "&x @PK% P VP RJJJD 0 @O0@`0V 0d@ 0 p0 ?` \    @R†T@ X P L@ H D @ pK|1lPL\@`LJ @P$ PPT VP RLNJpK⦣`{ BPv   PD %M1J @P$ PP% VPV RRpKv`K BPF @ P. u%P7 J$ J J0ᔠ匠删倀 bPV p`Kp< p lPx|x% % R1t% R, d%0 A22l  p حp& l ` O0K p@P 0APE /0R B # B / pK0lP4\@`6( J J  OP/$`P< OppK @0A@D /0`I `CB #WB8 JpK `P @Q / pK0㶊lP\@`pK`* J @P# PP9 VPh Rd1`P OppK @0 J @P# PP VP R J PPr#@P VP/ `P OppK @0@@D .0`I `A #AK 0 0? Qpl l0 02 AoJJJJMJJ؝zMMzMhzOM؞zM0z$zMM4UAWAIcIXAIML-(@lPp,DyL-,@lPp,Lk;DypL-`P@U ` VPXXP LPU ` VPDDP 8PU ` VP00P   (pH-8M`@ Pf. 000p@pWp 0p0 0?     @R0 p$`(p,`04.P@`/`1  Q, OP @0 S  P  /@Q@p(P,`04.P@K@KK/IpL-@P`7,GuZ _/`PP $^ (,048Q\dtx#] pO- M`@hpPpP PP`<1/M `pP PP`@1/PM@`1/MPA ``P 1/` P` p ppP1/!!Pp ppPD1/pPpp ppPHl1/H1/p :  :!!':P^p  p pL1/o;L 1/p e;Lp 1/Y;P0pp pPP1/pF;PP  1/ <:;P 1/P 0;P` `` `PT1/ <;T 1/` ;+:XKȗz0zԕzD ``pP`PUpgz E (D x O @)P  P, '`3cp h xXPP !(KЍ҄~M~MyMyzM~M~M~M0M~MH- M  \!& R0!@  QAu Р;Q1 {Q Q6B Р %9 ?OQ+R+ Р Q$ Р РHH РH Qw Р Q Р РH QT РR(0  1! Р РwMH-MtQ@U  @ C t {P#`+ po  }Q Pj Q }Q U 0A0 dC K( !KvMZvM ;Q0  1!/VvMpL-Mi @ oOPEP (P?P8 P Kp )P+@ >C  P P P C P P B 0@0Kp !KptMuMH-M@ $ OPP ;P}P P B'P  !KB }P ;P dKPPo` Pp'P   p'P!!w'P p ftMsMyM,zMsMH-  OR  OR '9 ?ORH-@  OP p `(Q:,01S ` P2UP0S `Q0xh ! >B F@ }P ;PHP FrM%xMqMH-@  OP p P(Q:,0QU  0`3VP`V  QPp` ! B B }P ;PHP &qMwMpMO-$M @ O PP (PzPx Q K!-&Ps )PgbP A t!`=@ A ta ```Q `      0R  f {Pb* @AaV  @ A `V Q! p@ a@ FB F\A  B Xp  !Kp  B P! =A 0@0 P  P& P( }P0A0 "A `  pA 0 W@0P^ P  !Q*   0 000 0000  KwP KrnM.pMYtMmM"mMpL-M@ PP:{ ` :V `P tP( P !Kpx Q Kp%P@ }P ;PHKp tB :P=PKpP kM0rMBkMkM0H-M@tP |P t :PP @0 !K0PK0pMjMjM0H-M@P D  !K0P QK0&jMM-M@PP  !pK`p P ,P$P$P@ ,PPX m$P(>oMiMiM_oMpL-Mt!@Pz@ @ t!`q pB @ ? tQ' OPPx (P+s P$ a" P Kp )PZE?  P? P  Q|  !Kp P  ? 0A0 ? 0A0 ? Kp.hMgMhMgMH-Mt!@P@ ?  ` A @ ? t!@ ~? tQy OPOP PpL? PL PA0A0 ;? (P6P P1E)?  `F?  B? )P0A0 ? 0A0 ? }P ;PKH a< !KP6eM2fM&eMdMM-M@  OPP (P ;Pat!pc@ >  [ ZA @ > t!O@ > tq;PS]`Y (P )P p^ppWKpP? PC0A0 >  )PK  > 0A0 > 0A0 z> KP6 Q"Pg> ;P P P KEQ>  o> ;P D !KP PJbMrbMpL-P@` (P )P p``VpO-M` p@O }P {P@TR@DT P pJ @-P @p>P UjTQ @ @ADP.*0CDACQ/uPP  0Q  A@P1PRN0 O@KOo~M-M@  OP9PL p-PF pp`?Vv7  :P+ PY p_O P P}P Pg P K( !K^M"`M`M^M0H-M@  OP P :P P K0\ !K0P }P P* P >^M]MK-M@ P P2`=6K|@  BB!0@SCng|!P pPk `Py =Py$P{ `($aPyr ( /OP `}vK00CC1pBP@ P9`=6K|@  BB!0@SC&gqo =PjP* P* P `Q(!P) PV P~< `P4  `Q`  !`K ` !LP P  P) `@`@ P  P a< >F P?F P )  $;   #; `F PF P  F PF P )< ` P  P `,(  D n[MaM\M aMdbMubMibM@OG0H--@ p\ p+S= 0P<  u!0   !0_MM-@\ pOWwP`KpH@@QA`QgP$;;  W)ZP`K@@G|GQA`QgP ! #W< @8  !  ฿ ]M]M@LGH--M@  P8Pm fK0@|@AASC gXP  P  P0@  BB!l@SCfP PCpk `(PpP7P\QP 0oP P#pK (Q:P6p=p P: )P 1 Q P !&p\ p+S< ptP; {u!Dp ! PPPKUMTMTMZMH-M @ Q/P=6KlA BB!0ASC !fXP PO (PIJ \ `Q Q !K !KpH` P`!PMP !P P a: )PK(XMRMNSM_MpL-MP@\QPl !>e P9 =P($/0`(`@P #(P (P (P  (xP(sP : (PKp(?eP (]P RMpWMH-M@P\A (P`Pl@p P  )Po@  !K6PMRPMK-  Q`@巍ۆK0A \A BB!SC eQ  Q 0A\A BB!SC ( /OQqpPB00CC1QA eP\  P 0@ \@ BB!SC ( /OPHpPB00CC1P@ eP%  P 0@ \@ BB!SC( /OP"`PB00CC1P@ eP ` [P(P    E @CGO-lM (h$\Q`A\ [PDP YP @E @-&K\IAA IRNBI @ @P &P| ppv` 9 q8 ]Pg YP`] -0&K\IAA IRB` 0eac OY @=6K PA  BB!QA e AP PD/=   (P0HDLP0T `Rp  H0D  0L0H  0L 0 p2W p D0H0p0W408<0@ 40  848 0R 04 (P @P P5PrPP P )P 0KP6 @ PO48P @44)0 0@CP*ACaRA!/rPPP <MA00 4pW PAGA!7S 0@RP HLP *; GP, HLP7* 0D 0@CP*ACARA!/rPPP P `D0 HpWh PGaPE`F%P7PS[PF HLP,*HHRD 0@CP*ACARA!/rPPPY P` D0 HpW2 PGaPE`F%P7PS%D 0@CP*ACARA!/rPPP5 P`D0 HpW PGaPE`F%P7PS 00aH D`L )P ,P (PPt  !@w )P YX @-&K\IAA IRaB\  !P@@Q*   <0 00004008000 4 8 0 0P4TQ*   P0 0D00H00L00D H L D DPHT@@  OY @=6K PA  BB!QA e$0 @( SP (|P U@P @@< P @D`HPV p@W1/`UD  P3,5 (`Q0@4PT !P U P X O@Qo'P @0 03/P,0  P03/P#0 P03/P0 P03/P0 !!W03/P0 [03/P @PCLLt HXhx0X0P 04A@P:@Q 6 0@4A@T:d9iP= FP<U  ]P8 !W@dQ4 p PUK @`, s; P`PPV; , e; P`5P| !KtP, 0 03/P% Q$ 0Q)5  48 5 v4 s4 y`(P V @$he 8 5 7 a,0b; @l6,K, 0$K(pK( pc $@ P 7  4 B9 OYi =P6K  BB! 0AQAP` P0caP P%; p  p P6 j)5 1!R@4 P PMLM0!zP ApQqq4 Qq4 5 u4 Qq4 s4 Qqh4 k4 @4 4 4 4 4 4 4 4 4 4 l4 g4 0MP> 4 0M P> 4 {0MP> 4 q0 P> 04A@Pe:@Q|4 0@4A@T:W80MPr i4 J0 Ps _4 @0 Pi U4 60 P_ K4 ,0!PU q04A@P>:`P@QQ4 Q4 QQ3 (QLN4  :4 QQ3 4 Q3 4 0@4A@T:PH0 aP 3 tLH   DMYLMKMTFM IMEMQM@MmJMz OM0LM<\sKMKMu@w.GIMK-MP@ pv W `-&KAA G|GRB OW`=6KpA  BB!QAgq, [PBG p`AV /!P:8 ]P1 m4 "e@PP P5 P#P ]P (KP !K P Klq p!R:Y 6 i4 q,3 L  !K  R 6MI@K+GCMR6MBMBMBM;CMK-MPP @ !` @P ?Pp_P  3 P x@KX (`, P2 :Pt Pp P 2 &P !P C P P |@ P  P } @(5M?M4M3Mf>MpL-M@ ,P!P. +Pb\`P` PP!P ~P( -PEP pJ` Vf73 !Ww Pi` PPjP E92 P`P ~Q PH QH` PPIPe iP5 PQP6P*` PP+kPQ Q`Qaa1 2 Qam1 k1 Q@ Q  !PKp`G PQ4P$ 2 s)P 7 P 1 !WMP 1 P MPP P 1 d P 1 P( !7Mn0M6M6M7M(7M7MO-M@ -P pE`& PA *P:  P: pQCP 32 ! p!P% P e$2 !w*P) P pQP l&1 q P !` P pK 1 a %P /P. *P Pp-P= pp9 W> U ; P]p PMIPC MDP> 8 y PEp PM1P8 M,P3  p ] PWUx P$P pPMP# M P 0 `!P# !P  P#  P   P5  P0 p0 `fP# P W!P !P JP P =p5% !'PU *P PU:8 P en-M2M1M1Mt2M2MO- M@ P p !` pP K/  -P +P PuP pPLP# GP | P[P pP2P -P / ` #P  P   P  P / `P P j P P k/ aP P @ZʌjyP P @Zʌkhp_  L)M.M/MO-$M@P !p)` P pK, . POOl./ !g P P5 lP p PPd P_ v/ k lPp PhPK cPF t- OPB lTP p   (,pGP pQX  Qlp). PO "P u<e,bpn  !^&MV,M,M,MO-MP P  !9p P K( ) `OO}. s ;P P7 P P@ P!PV !PQ N>P3 <P P@ P!PF !PA H P@ P!P: !P5 L P@ P!P. !~P) JvP. qP) OiP. dP) It\P. WP) MgOP. JP) KZBP. =P) fM5P. 0P) c@(P. #P) e3P. P) d& P5   P0 ` P+  P& ]  P!  P _ P  P ^@ <$F#MM'M'M#(M(MO- MP P  !p P K+ * `OO6- s P$ PyPu@ P!P !P P* ~P% FPRe@ P!jP !eP `P [P GSP NP aFP AP b 9P  4P [ ,P  'P \~s(  ]*MM%M&MM-M@ P !`(9` P ` &PP-P'p PP P qo, !g&P KjM:%MM-M@ P !`(` P ` ^PPPp PP P s-, !g^P KbM2$MO- M@h Q !pa pQ[ |QFp d!\`deP pP& P3P P0Z X. V'FP AP r+ !w|P  q(,P EpP<p, !pKFMM"M"MO-MP AB1-&KS?*0$id@@@R)YLA@I@PY ``V< f f0ahq `PU00 0000 i`V `FpGX ))99@K!0 PU 1K`lO- MP @BPZ*Bb >sBA"rPPpK u "  0 00000002   @^% @N@DEPN0$B`J@0   pp0@D p\ ppppp   $0 U  0Q RPKpkO- MP @BPZ*Bb >sBA"rPPpK  "  0 00000002   @^% @N@DEPN0$B`J@0   pp0@D p\ ppppp   $0 U  0Q RPKp1kO- MP @BPZ*Bb >sBA"rPPpK  "  0 00000002   @^% @N@DEPN0$B`J@0   pp0@D p\ ppppp   $0 U  0Q RPKpjK-@PU p@`@P / P P+ / P@P PP`Vp,`"`P6  `@O-MPP `"@P PPPP,P P$P(P0P4P8PU>P% P@Pp0@ @ 1/Pp( Op( Op( Op( Op(Y _OQ*>Pp 1/P  ` 1/P   QAp`A0 A 1/p   U@WFAAP3/1aA P_Ao$Ao 3/pL-P@ ( $  A@P:$Q_Qq` R: 1/ P0A P Q;A.PXP 0P p,P .PlP)l`lX,P <P%* O`A`0 DlPl`lD`p`A0 A 1/84 40 0 $ 0 0x @HL@HL0A P.Ao 3/O-4MM@ 0 ( 0PK, 0 K/K.K.Aorq` Rl*0 AaA RP#*.Qp+AMPi 88h0 [,`(0 0P eP p 1/ P QpA0[(`,P `PU0QxPYZ(`P `.Q.PNO a 0%"0 A  jP3FP . P *0[P(   .R", P.PP:`  0C p B 1/, 0[p0S0C00`0V:P0[P (oK`A0 A 1/ A0H-  A00&@( $0pL-@<P 8PU ` ><VP48P 00 P<pL-@0S B RA Lu  1/ A@P*/0 A R3_Q$Q/O-$M0y{E  Y  0: 0 ` BR&l&& I`0B  S S S0!0! !!`VPw! p F@   W@:@ pC@@P< PU8PU5 P Q P :}@ pP %P! 0 PS Y 0 0SPY  `@P p@KP Qtr* T* pT @1p@ p _ j@V@*   A * *!Z@pV:Fpp  _  @ Q13`F P* @0P  PP F P:@P  Ke_H-@PQ A 2PP`UH* VF"@  o!pr!  X_ W   P:@o `w2UP1U:O-M@Q! PQ*኱P P Up`V E \: r PPP PK qXf PpZ W: pUp W`Q p W QG `P3  `@B`  0V S T V 0PU V  P^P P`@ Pa`XK^O-MP @ T E 0: 0p BR'|'' Dp0B  S S S0!0! !`VT !ࠇ F X: p P> PU:PU7 P 0PST' `0pW \ P: p P  P T  p=^PPK/L-@ 2/P/KPD@Q| p                         @[@P! P2 P PtsFfoF P/LP P lduF @P*@P @Pa 6rGItC P @Pa 8rGU nG rP esgF @P @@Pʯ raGt2DP e<oFj 㳯! beC |oGtsFfoF㞯 eobFt|FfoFviF retF- ufxF$ P tfoF?lduF P sitFE 1 @Pm: 3AGUnGry@ f oFt@PArFItCy>ti P0geFusF a 2rGItC @Pޮ raGt4DFoF   ٟ ej@gF Ao//!Q3/P  /  @o"/H-   ௟ i@F/@Q@Q  @Q   @Q//@@Q@Q  @Q @Q @Q/@@Q @Q//'   @Q   @Q  @Q   @Q  @ @Q  @Q/ @Q   @Q   @Q /@Q @@Q //M/'   @Q   @Q  @Q   @Q  @ @Q  @Q/ @Q   @Q   @Q /@Q @@Q// /Ao/K-MP p @ppp嘐 Q$ `f 0  ᅐ  AA!W  v ApAW:` jP? 0  ^ 幭KiI/o@LH- 㻹 Sx0H-P @᯹"@0Sx0H-@2P 2/P+  Q%" !Q*  0ABA!CRQ 0@QQ  !Q*0S:@0@0H-p PR1. "Q+*0 @ @`DV"T`! R 03/P 0 @  RD`@V:   Ac@CFM-Mp@pPppQ |`W  㧏| 0  ᛏ pAAW:K LM-@P`R p 03/Pp@@W:H-@P P P 0@CP%*ACarA!/rPPp ṸQ( U pAEA!5S @pZ///  Q /Nx4  Q H-   i Nx`@F/  Q /Nx4  Q H-   M lNx5`@7F n$ f"o%G /0H-@AQ-PU.  2/P M 2/P! 2/P 2/P@0  P rrPP@0LLP  ^@F/H-   ^@FH-hMP`@o!0 p8L(L ppp(ℎ8`pppS 0 8rL0KL ppp0Kg KpppP6  0  KUppp 嫫 [ 妫0[ (填 圫8 @嗫( 0咫 $卫KkaIg@LH-p PR  "Q*D@Q*T `! R 03/P   RD`@V:  = [@FH-   3 [@ϾF000 0 //H- M R Р 0R Р РO- MP$ ,p 0`W @o" P  pW  A ($L$ (pP@ Q`tPP @TQ   @ KM-M@$ ,p 0`W Po" P>  pW  A ($L$ (`Pp QPPsP pWQ   @ KO-$M@?@8PHPl,8 L  l $ 8L88@|8    8  8   Q QP P  Q `QP `P   QP PP `PKOKO KO3aP P ZPP aQ  PGPpPQ`7P PY Q PvZqPn `PmPd}P_ `P^PUPUKPJ `PIP@P@ KO<KOnPP- ` o2p p R  pG `0 V  Q Q @ Q  R ` p 0 0R @ Q `  BV:  Q Q @ Q PQ`p0 R 0m @ Q`V  Q QU @ Q PQ`p0 R 0@ @ Q`VPP ` o2p p Rv  pG l`0 VeKOKOKOKOKKOP@   Q34 P2  Pao 2p p R$ pG FPV0 `  A R  Q  @ K KpL-MP@Q P: PP1Q P+ PKpP`Q P P rPP PKp `Kp0H-M@P K0P PK0IPP?PP 5K0pL-M@P Kp`PKpPPPPP  PP$PP KpM-M@PP' ,p 0`W o" P  pW A Pp PPaP PpWKKK-MP@P(`  q?.P?*PR RPP  P }P`VKKK-MP@P*` o  q !  QU  A R RH @ Q `VK K K0H-M@P  Q Q K0  A R  Q  @K-M@Pp Q  0R0 0RQ  @ Q  `Q@ K B Q K Q RI @ Q$Q  R9 @ QPQ`q ? .R  ? *R 0 0R @ Q Q  @ Q`V K0H-M@P  Q Q K0b  A R  Q K0 O  A R  QA @0H-M@P  Q Q K0'  A R  Q K0   A R  Q @L-M@P @   @" @TK2x0H- 0 @ _R RS0P T00 @ RT AP00E S-PEQNR!P  0 0 0 9C@HULH-`PP @pRW SoRP/L- @?^ ?\@0R/^ \ R $0\ R @ TP:R0 @ TP: R @ TP: o2pL-@PP ` V p` V P$ 0 0 TpAA@H{HM-pW @`mp`V PdPP`VO-M@ `@ P p0, 0`RP$Y ȻLLJ8@(  0$$0<HT c,5`O  `@ @ !Z # ``5p4@5 pD D !A# a`5p@ pH H !'o`#~5p@7 pL L !#o`e5p@ pP P !#(o`L5pЯ@ pT T ! # n`35p㷯@ pX X !xn`#5p㟯` p\ \ !#n`5pㄯ@ p` ` !m`#4pk@ pd d !wPm`#4pR@ ph h !^#l`4p8 @ pl l !Dl `#4p `A pp p !*(l`#4p` pt t !k `#f4p ` px x !Xk`#K4pϮ` p| | !j`#04p㴮`T p  !j`#4p㚮<` p  !$j`#3p`d p  !i`#3pd@G p  !q`i`#3pL` p  !V#h`3p0@N p  !=h`#3p` p  !"0h`#y3p$` p  !g `#^3p `( p  !`g`#C3pǭ`, p  !f`#(3p㬭@U p  !f`#3p㓭\@ p  !8f `#2pz ` p  !e `#2p_@Y p  !lte`#2pG` p  !Re`#2p-` p  !7d `#2p ` p  !Dd`#t2p @ p  !c`#Z2pެ@ p  !c`#A2pŬ`, p  !#c`%2p㩬(@ p  !b`# 2p㐬`c p  !Pb `#1pv `f p  !a`#1p\`g p  !g # xa`1pAt@ p  !M$a`#1p(`x p  !2K  KKuL KsGKjFL"LԶLvLLL9@K AwKFK@uLLHKGKHH sKѮLJkKK3LH!GL~KW.@.@HH-P@ `Bp0BpQ 010S 2/P01!Q:)}Bp0BpQ 010S 2/PH-M`@PR a@Pq(P K)1 0`K)0 0`KO-M@0P0 ` !! |pP KU LNP `K 0 0 +@:HnLK-M `  0  F R03 V08V+ R) A@ pP00E S   VS -PEQNR !@pQ 0 C Q  Q F0Q   w 0kKL-M@ P1KKL-@ ŪH-`@ 㶪PpPPP P 㤪@M-p` ᖪP@PPQ Q ㄪ`Q Q wO-M@PT T`pP  @ `9W@ `V Tp@P  X  X 4P pT`K 0 0 x%'@ډH_H 0P  sk 0S 0 0 2?AQ //?AQ  //? RR/R/? .R0?0*S .R? *R o/? .R0?0*S .R? *R o/? .R0?0*S .R? *R @o/? .R0?0*S.R? *R -RH- M РH/-RH- M РH/? .R0?0*S .R? *R  @o/? .R0?0*S .R? *R  @o/? .R?*Q .R0?0*\0= S .R? 7RP \/1   G?.Q   ? *R/.Q?*Q0H-QQ/ @$<4 0 Q0Hya@PFJP0Q 0AoP 0RQ:@0@T@0  e!@gF? .R0?0*S .R? H- *R H/? .R 0?0,S .R?7Q .R? 7R o/? .R?&Q .R0?0&\0 /.R0?0S.R? R/?.Q   ? &R.Q$ ?&Q$ K@p P 1//$K/? .R0?0&S .R? $&R$K@o/0H-P@? P ? .R ?  RQ&P# P? .R ?  RQ  @Q*@0 P P P P @ 0?.P?5@oB0 0  075!8  B/o"# !+!/ <0 ;4/07 0   /H-  $ 0,00 /$ 0,00 /$$$}# PT/$8/$</$/Q  ? .R000?0&S .R$0 ? &R$0L I /KAp R*83/ RP Q Q  @o//O-M QP,QP 0Pr  0E~K`VH @p0PP=  `P5@W*"pGpPDA qPP@ `Κ0 `W pdH0p@S ۚ 0/QX ``V`0p@GP⽚ pBHVp @帚T`Y ᱚK㥚K#H 0 /0H-@ \ @@P?.\ @@?@*TPP]U .\  P?P*\P R S + ? R 0?.Q?*Q 0 0 RZ ? .R?&P .R 00?0&S /.R?P .R 0?0S/.R?&P.R 0?0$&S$K@p0S*1.R?&P/.R? $&R$K@o//H-   0  Q/Q/ / /O-MP`Po p  ppp$p0p@DQ QP @@ F p@T@ P IY p/OP@0`p  00S 0q T`@@O 8 2/`$$( @ P  +PU` p PpZB @ZA T@P @ T W Pd0S0P p 0|P  5/ nK  (0 R @@@y R/'Q/? .R?Q.R? R .R0?0S.R? R/0H-M R#RI0!$\|L  @P* K0K0 eP/ K0K0HK0 0+SVK0 K0H@K0DK0 P P@K0<8   0 0 ?baHH?aFO- M   cPPP`_O  0!R 1 0 0S@p@ 00S 0*P _OY  8 2/P_O`VPA  PP5O `P@ppp@ 00S 0 OT   8 2/OX  KOpL- 0?0.S@@@?@*T .S@@P`P?P*U`@  P 0@S@Q 0?0.S@@@?@*T .S @@P`P?P*U`@  p.S?0*S.S?0*SpM-@ PS`?0.SpPM?p9 T6W ?@ p.TpP`?Pm9 V6U+ P ?.P@@@?@*T.P @@PpP?P*Up@.T@MT.S@0?06S@.P00?*PW .SPPP?P*U.SPP`p`?`*VpP.UP]U.T?@6T.S?0*SM-P` p0P?.Q 0? =: S6R @ P  @?.P?.T*P .Q?*P.Q 0 ? *R0- R.TP p.Q?7QP 0S   `  #.T P? .R0?0: Q6S2 P.R?*P .R0?*Q0  P .Rp? 7RW 0S   t  .UQ P P?.P?.U*P`FFL-@ 0R?.P   ? *R .P  @?*P@.P  P ? .R@?@*T .R@0 ? *R @.R - R 0L-M ?.Q00?07S P =A  SQK.Q0?01S; .Q00?0,S,P*   ?@.T?@?.Q   ? *R".Q?*QQ  2T PKK.Q?-QK2TK/ P3S S S R // 0#D 0S3/@a / 0C0H--# +C@ # H Z*@"0 j@0 A P/nL0? AR*/Q Q /H-   ā ?UFH-@P `@p0@pQ 010S 2/P  1S'0 0  "!R:Bp0BpQ 010S 2/PK-`PᄜPT Q QY `Y P @@ p0@pQ 010S 2/P  p!Q:Bp0BpQ 010S 2/PI  5?H? .R? *R H- 5PH /K-P {@?O.P?Q .PP0 ?PP  .PP  ?P`p `P  00S 0< U    8 2//0H-, @P b0AP P@0M-P`p!A t p QQ X   QP20R O-Mp` 0! @P"F0 p K   R/M-@`pI 0P p@3 @pD`V Dpp`PP*pP ``pP H@PA@P@D LLO-M@P`U @@PPP*@P PP@pWߚ`p!pP  KK-Pp@Ὶ0` @ KH-@P$(P P$$ 0@CP'*ACarA!/rPPp ,ዚQ 0 $PU pAEA!5S  @p;iM-@ P`fp ` P 8YP p4P  R R R 0000P049<<K-@pP(0`# KH-@PP P 0@CP'*ACarA!/rPPp Q0 PU pAEA!5S @pK;K-`pPЙ @ 0   K0H-Mq Q0@R @ S00@01 K0 0 0~ ?GHaLO-MጙP p  `P *`  @Q Q`@P `P  `  @Q 3`@P i  `P `  @Q `@P KKO-,M<@P `V$(  V*   $D   04pW `   p R @ R @0ST  R @ A PP r P PTOF ` P pP` 00S 0 OV  8 2/OP P  R  RT` p@`Wr  @BBV F){  `@@V 0 5 V, `@oOPpp 00S 0ᐞ `oOY  8 2/`oO@ZP K9O-4MpP ܷP  @P   4Ϸ P ( Q (`ỷ$ 彷P P |  R PQ` $` P ] PZ `㜗`( @@ @ $8 P冗P`4P ` R R R  ` @@0P04d<<$XPQ_KO-M0`4ZZ D@PU  p0W02!0SPP 0R*P `P  R` ` RZ,      P pP pQ p R0P0p<4A<9`ZKP /0H-0 4\ 0@T @T @PU Q  R \ @ DR 00S  0S 0P@T  P0 @TAR0O-M@ @@ 40PUR @P`Z p p PP * pP  p pP T@Q@j` P _Q Q  R 0SPP UAP U> `pW Y  PP * P  P T@Q@p` P P U QKO-Mp@PEP @0J10 P4PX@% @ `dP4P# P P P  R  RX a @K@0  0H-Q @P@T0L-@`㓕P $0<HT  dz ?ygHO-M @0LpP!aP P`P P!a@A  P: A   0P1SSYoP K p `7 @    KM-` PpL.0 1S S.AP  P ::A0 0p qWWP XH- M !! РpL-@LP0 a V Q 0P0`aVp A @ AQ@T @PLQ@@ATTTQ*T`P@`P@0ApM-`P pL.! 01S S.A `   "! R: @00pqWWL- @"1 AT 0 @AT TQRP/L-@`LP $0<HT  y q?YbHK-`pP*@  p @  N)01S S)q p!Q:9 @00pqWW@0H-P@"`P  P0PP$P0P 000 P PpP$P0P=Pv 9Pxs`OP6 @?&P] "Ph3Pw xX`OP @A@0S&0LP ቩPAp@T@pP 0~3KLPTX\`dhlptQ x`OP= ᨼ@FᵧP|`OPv ᕼL`OPx ᆼ0@lLɎ`O,Pr nzAp@T@pP 0廭KPTX\`dhlp t#Ap@Tq@pP 0喭KPT X\`dhlpt NA@ QJLP ->A@0S90LP ,Ap Q(p@ `@O,P  Ap P pP0 LP4X `Y]P ሩPPzY   `P `Y K,OP ៻ A@ PȺP`4Y//J  Xq/M-M\@`PpTÍ@`㿍P  $0<HT\@ 0`tK  r ?HHO-4M\0S JHQ QL,(0$$Pl* R 0 @@ @@`\@#  0@"q QU  p PQU UVRXQ"P 0qW 0S 00C"q pP QU UVR4Q {PHP HP JJ Z @pP 0 A#10PQU UVQ4P AP P P pW1(P @U ppPTP P pP PpPpP,̌@`!$P$(00@PL P㳌 p`7( (p@奌P`7( (P?.P?7Q.P?7P   倌PP 0@P  r P@QZM  P* R Q0P$`V? #pPP E@7=p @0 p# +  @Q!#!P `P  R` ` RV($3 KJ/O-$MPXJ   `  H@?.Y?Tp XPJ   KOX T\TIX  A"A @` aV VW R`V 4P @0`P X$:! X `Ioo K@b0  0` @`[P$` $0 0 IY8P ``K  ?.P?P 2JJ  \Q  0 A#1@\ \ 0@AT TWQ Pa,Q PP @.%`?8  !,! H-M@RJpP DP/  A"1 @J  KH 0` aV VU RP4P 3P W: W 0KH K0`pH 00  R[Q$ $K4xH-MDpW$ @XPEP x㱊`X d X0`   Q Q  Q  4pK  @K 0S S  0S 0 0 00 /pL-(M(!P0 h $0P0R0 00000@.t$`HPI J @0@  LqHP PP PPKpX  l u qq`x0H-@HPP eQ 0H-M@ pD0A "a `P QU US RP'4P ;l`Pl @P`l D0Kp P  _[Q$ $KlP PKH-M@ K `P 0 RKA`p  3[ Q$ $` 0K   p [Q$ $KhQ#,  @ p0 K  pP[P$P $tP ttPKH-M@tPc0`0 0 0``d tpW p 0 000p?.`dKH- M0 @ 00 0  ?. РM-`@ppJHP pP@ $P$tP tPpL-@P``JHQ  `TP  (! $$ pM-`@ppJHP LjpP@ $P$tP 㲈tP0H-@PPJHQ 㚈 P@  $$ 0 Ao/Q/ R /Q /!!Q/0 R R 0 R 0 \ 0 R 0 R 0  H- (^ (\ 0 0S (( I H$ $D /$  $/O- MP `V   0=pSPr   0W0 `0 `p(Q 0 0S0 0((p`JHQ  $Q $ $$$$ Y p@PP  !  1 Y  $0 "/KK-M`P4 0ǥpp4_Go `00 0@D @`?pKHP 4 0廤P p 4V`Pp ?.p A"1 0p qW WY R`pL-P' `P 0 A#1@\ \ 0@AT TVQ P 4P tPPUpO-MP@RppJHP ` $`$0p` 00 ` pz`P$` $Z P/ PTXPP X PӆpPX! 0!3/XPpTPX` DPK p@"0  ^ ^ 0 !R RX  S   XPP0qW 0S,xH-M@` DQPP  pP PK 0P 0  P[P$P $W2 :P,VPP W TXPP X p<`PX<  0!3/XP`TpXPKxxpL-M P@`K@ h 0[Q$ $Kp0H-M@|0P  PP@ K  ~ [Q$ $K0 0K0Hx( (/( R R/ R /O-0,QR "?`.V0@q?Q .V  ? R  @Q`HQ -.V ?`V  @`00 !`P A @pAT TS WQ  J Q K-PP9,pP 0B `&a `@ AT TQR4P P 0 X 0`0000S PpWK-@xD@p W8 ?P  `0B&a `P QU UQRZ!P pP  Rp p R Wx0p4 W7 ?P  `0B&a `P QU UQR!P pP  Rp p R WH-PJ@L (pW ` 0,P2 0  pWP`U& PU# P`(pW ` 0 P   Br R:,! & pW`pL-@ LAPU  PU P HPCHP PKP P ` $P `V  `VJ7H@Q 4PP84LQp @oPDPDp  R/H0SS SI/L !/P 0D R S//P D0S4   0SP//JHQ/H R/DQ/HQ QK QQ K Ao/HQ Q/K QQ /P/DQ/0H-@ 0P Pg P@U0O- M`P@R HPK J L(@X3 P0@  p@P:W ``X U P  0  Z  AqQ #!PX X@(T   0 @`TKH-P`@R KP P PTX,U? "$ 0"H " p P Wp  pWKP P /%  g 1?HL-@ hPpP@T  @TdpP/dM-@HP `PpP& fP#  0`!P pP㪂` PP pWdpW 㜂"dtP,0 $wPTX\t(`x@xO-M@ PP03 A"a `p qW WSRO4P `P+ P+  0pP :HQ  Br R #!8 R3` pp `? KH`P0 $  p`0`   K`VQ +AqQ&&   0 `0H0MPrP  p0 0@pP: `0` 8`ppL-0@P`-P 0 `ppL-1 R   1PU  &M T@T@PPJ`H`V J`H`V U 8P I R  pLL- A@R:8 R   R I H  Br R+!I  PP1Q H R R R Q*/ /I/J  H R @ 0@0 ?./pL-lP@`U( EP:8Q Q I HAqQI  P  I``l`Xq'RP@PV & EQPppL-PA`@P*: R% "?`@p8Q Q I HAqQI  /PpH0S S S <R* ,  pD D ?pHQ Q/KQ Q/` 0H-P K@AQ:8Q Q I HAqQI  P. 0H R Q Q Q R* I  D D ?HQPJ @ @ ?0pL-$P `@V  `VJppLpL-dP@U EP :8Q Q I HAqQI  vPddPjhPU! EP:8Q Q I HAqQI  LPht`VpPU! EP:8Q Q I HAqQI  $PppL-`H@PP DP 0SD4Q@`V `V HPLD  pH-p4@PP 004`V DQ@HP  `VM-t$`4P P@P4pp T 4P 04P 4PחP,P Ὤ A@ PP4HQ @dP  @oA/@A/DQ/H0 SdP   P @/0H-Q @P@T0O-M`~P> \  0 0SYK `Y R @Lp0pP0QUR ! Q: L 0qW 0S  pqWI  `c x?i H 0  0    / Rt0/QH@o//fw/fwM-pP@Qp p U*ra ``Uppp arQPP$L-@4 <r( 0r $ rP rP q0H-MP@8 0 045 qK00H-MP@  0 0 qK00H-MP@ 0 0( qK0!//Q/00 S://M-@@`zqPV`  V"*qmq eqa``$ Vq20H-P@P P E`qPTP P 00  PMqU0L- P 0Q   @R: PM-MP @n` Q 2/p PN`U %`U| IP` PP 2/pO)KK,x$KxO- M` P00S Q$ꐣ `(QD l  @ D  p Y$P 2/@`Oᬑ(0@@" p 7P 2/@Oዑd ǐ@   8 ༐@ kP 2/p[OdP, ȡ@     p  @P 2/0O`p8Y:@ %P 2/pOV4 00S <@Q@ O@P pO 2/pN/K}K^KxxXK:?dxxKrHLxxH-   R0S0 !0 R  0 "4   0  Q pL-Q) U33AUE33C@A@PQ` PE`%QP%RP% pUUE@33C @ @ /p000SĩxO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P v0@p0L`p`3/HP K "H b4bdxy8G}KKO-$M 0@qAP0`G P ᖨ 0 Q @@彧 @0  P:  @  @P @@P KO-MP@Q  QQ 70P pQ0C- Q)`\p0P" p?nP P(SX00   (0 R ƀ0  BK PQ  PP P`0 0\0P W,PWPp `QQn0pP ppqAQDppp `(`$@ Q   0  0pD   ,U mKppVwvK-0Mp@`/Q  /PP u PLP/@/P@0Z 0 RU 0R @PሦP 9pP; P@0S5   @`0p `Nt(````L,` @ $0pD   D Q) !n 0k@ p ` *QpKKKS O 8 2/}P `    R:P  @P`TwvO-4MP@G>p /OPt>M` p@N /OP  ` P ᢦ Bp Q˥`  PH p7` P PpD%PN Wi `@ Rn 0  P @ !  @N,@  L0 $Pp(0D  -D Q ?P|> ;@  0  ?  DP: (P3P6 `Q3 1P @  p⹞P  p$P᭞P P 6 0PF bK@PP  pPU *P`dQw`v00P  07 ꌜxO-|M`, 0 p4 8 < @ H HK@Q]4@QP@Tj  2/@8/ $ ( [ P(KD1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD 0@8P@P !0@p0L`p`3/HP K /H Z_4_xsyGFKK00P  0  H@PHPU  X2pW:PUU PQ&X 2/p5$PL(,048<@DPH⒫P,@p  Q  ` 0| P 0pP ᥓP 0~P000SVvxNyGK~KO-M-M  pP @244H   Q! ` P  4 8@@pX  8@ p`?0PU & %$Q!` P Ἓ`H L@@I \C < DQ0@^   0 R ( `@`@P:L@T%0 \! 1 @P%@$P P@ @P$ P H n Q& @`@`0:L@`Z^lG GO- MPp  pII pIAP{Qڠ/0 p/Q !P0'0 R *  0SB*RM* XP `V*` @T*WP`p0 D`V:@P1U*R@ PT  R2 55P  Jp`  DPDVIDQR* 0 R* 0 R* R : Pl 0R:Yd0 P_0 R*p@0:R: W:PP SKVpPC P,Q6*iP*R * R *R  55R*   Q pp0S * `r   BS: 0 RK Q*R&* *I 0!>KP*R* R*  Q*KR*R  55Q* KR* Q* P* P*KpL-P@^*U*PU*P@PU*P@ @^*@P`U*PP@T *@PP@T*@PP@T*@PP`V*`P0`V *`0 0S *0 p p p pM-M0AC1Sp1DDTx 0S05 50DR*V4*0`6 pS*WT*p rA 0 nk0DR*VK*0`MV*V` `505WX*p0R 55QV<*V` `5057V *`0  pW> P p`V* @0t   @DV: P`U 0S 0 0S05 5V *`0  0S*0  Q* Q8@o᠂KO-,M@ 0PU  0p   p$ ;UU1`: $U: p ` 0 `Q @ˍ `@ R  `DP$ 0`xP5 VPp ` @$P  .$ P ᒍ$` R P嵌$ ``   P Up 52U1: $`0A\  0pUk:Ɂ-?  K000S:xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K +.H F4F9x`ytGK`KO-M, Lc  oO 0QA` p @ @@V P0A 0S* ) * `P Q 7x@P4 PP3@U, P. P* xP" @xP"P  Z 0ڻ   P@"`DP P J  ` R r P& 0q P@ @P 廋K000S\5xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P \0@p0L`p`3/HP K "H E4E4x yЊGnK~KO-MP`@0 p  p0P ။ PPY᫊Pp'p P i BPP QPp@0 P0E‹P@ P ڊK000S1xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P {0@p0L`p`3/HP K "H D4Dx1x@ yLG|K{KO-M `@Pp #$Q  $ 0P ;0˺ P@@P K P 0 0A zK>fTGG000S.xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K e#H C4D0.xyG&yKxKO-M `@Pp #$Q  * 0P ;0 P@@P CK P 0 0@ wKe>QGG\000SP/;4Q :PL/D+xO-|M`, 0 4 8 < @ H HK@Qf4@A@pW  2/p8. $ (  P(Kd(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD  ;4 R :$QLPP@@P 0@p0L`p`3/HP K "H B4!C*xpytGuK8000S H- M00m Р(xtKO-|Mp, `0 4 8 < @ H HK@Q`4@QP@To  2/@8/ $ ( ` P(KP1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD00 @8P@P #0@p0L`p`3/HP K f#H \B4B((xx}GsK sKsK8000S H- M00 РH&xrKO-|Mp, `0 4 8 < @ H HK@Q_4@QP@T  2/@8/ $ (  P(KL1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD0 0o@8P@P 0@p0L`p`3/HP K /H A4A%xx{GqKDqKQqKH-M@` pP P0P! K  $ Z *'PP K 0 KH AO-M-XMPP@`pH pE   #4 R ``0#2&S5   0p㗒P ;0p8   0p㇒P p;0q P@P 庆0KЍ V  0P]P P00G cP`   4 8 ` MQ P H < @  [ Z 8 `N+SLH @Q   pW  D@ Z 8 `NI8 `N+S Qr'pP ᕆ  R弅 pvP< TLpP  1/0LpP  0 !P" Lp#$Qp 0#2'S%   0P㔑P P;0 PPL  0P~P P;0W  R0P p   <8  Z W W pPo0!  0P1PW P00  40 p Qi MZ :PM R3 ,( AQ =Z *R# pw :`p$p ` ` 19 -ZpRp0 R00003/pP\ 0 0< B| |0 0< lh h0 0< ,( (0 0< Axx>>@GpGx:qG>~@GgK>^@GgK>@G3qG000S,xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H >4>xxoG!fKeKO-M  pLS _O`0@P001B0U / U0 PPB    R:P  P 0PPP@ P K C0P000SxO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H =4>`x@x4lGbKBbKO-M@,pP00`  PPAA@@P  uPU  /P     0 Q  5PP@P ?K000SlxO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T(  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H =4F= xxhG_K_KO-M@,pP  `  PPAA@@P  PU  .P    0 Q5 2P@P lKO-MP  R ,p@|0`,@ 0 B Q@ CK KOx ]KO-|M4, 0 4 8 < @ H HK @Qr0@A@pW/  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  0 P` @p0@4 Q@` pȁ8P@P 0@p0L`p`3/HP K /H <07<(xxdG[K4[KO-MP  R!,@ <pP `@  A\0 0y Q@ zK KO x/ZKO-|M`, 0 4 8 < @ H HK @Qw4@rp@Te  2/@81 P$ ( U p(K1(X0,  $7/$p$ P 1/(( P 1/8H@@8LpD  P @ p V`0@H0 Q@ `8P@P 0@p0L`p`3/HP K "H ;;~4h; xxaGXKTXK/XKO-MP  R @ <p <`P  RA 孀K KO xWWKO-|M4, 0 4 8 < @ H HK@Qs0@A@pW  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  P `@p4 uP RA@ p18P@P :0@p0L`p`3/HP K "H s:0:xx^GUKWUKpL-M`@ 9P4 P@Q  `V&     A#P : 0㻯 KpLD*P KpKpH-M@` 0mP= ` 0PcP3 0W PM iPQK$Q p P P P `PUPp 0 07 rGQ>*GZG000S0xO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TY  2/@8/ $ ( J P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H J94w9xxYG4QKPKO-M P0L O@ !CP`p\p%  `P) Z@FpMP PL  p` 00S 0@W  @`Z@C1PPL @p`" @`V @` O  803/@p@P ps~@@P pi~ K000SxO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TR  2/@8/ $ ( C P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K /H C84p8wxUG6MKLKO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48⟉ P2@10 0:P= ;0# ?P@ P n}K 0PP 0P 04V01/P ㎫HP  0 04 1hGgG>:!GQG000S`wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T%  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 74C7wxPGHKHKO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48r P2@1 0 P5 ;0 P@ P A|K 0PP 0P 0)$1/P  0 03 cG cG>G+MG000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 546lwlx@LGDDKCKO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48M P2@1 0P5 ;0ѫ P@ P {K 0PƆP 0Pa 01/P  0 02 _G^G]>GHG000S8wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 444wxGG?KH?KO-dM `@Pp=  P9jp QT:R _&000@0S 0 00?   @Rn$ (P,0P48( P2@18 0ÅP? ;0ᬪ P@ P yK 0P㡅P 0P< 0⽨ߨPD1/P @ 1/P  0 0g1 ZGYG>VGCG000S|wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P d0@p0L`p`3/HP K  -H 343w$xBGD;K:KO-dM `@Pp=  P9jsp QT:R 0 &000@0S 0 00?   @R?$ (P,0P48 P2@1 0P5 ;0} P@ P xK 0PrP 0P  0⎧밧1/P  0 0B0 UGKUG >GG?G000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( x P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P ?0@p0L`p`3/HP K "H x242wx\>G6KL6KO-dM `@Pp=  P9jNp QT:R  &000@0S 0 00?   @R$ (P,0P48ԃ P2@10 0oP= ;0X tP@ P wK 0PMP 0P 0i닦,1/P åHP  0 0/ KQGPGY> G:G000S4wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TZ  2/@8/ $ ( K P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H K14x1wx9GR2K1KO-dM `@Pp=  P9j!p QT:R  &000@0S 0 00?   @R$ (P,0P48⧂ P2@1 0BP5 ;0+ GP@ P vvK 0P P 0P 0<^1/P  0 0- LG!LGŢ>zG5G000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T5  2/@8/ $ ( & P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H &04S0@wTx5G-KX-KO-dM `@Pp=  P9jp QT:R  &000@0S 0 00?   @R$ (P,0P48₁ P2@1 0P5 ;0 "P@ P QuK 0PP 0P 09(1/P  0 0, HGGG1>Gk1G000S wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K /H /4./wIJx0G|)K(KO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48] P2@1 0P5 ;0 P@ P ,tK 0PP 0Pq 01/P  0 0+ !'K&K>RF,G000SxwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H -4 .w4x+G6%K$KO-dM `@Pp=  P9jp QT:R o&000@0S 0 00?   @R~$ (P,0P488 P2@18 0~P? ;0ἣ P@ P sK 0P~P 0PL 0͡PD1/P @1/P  0 0w* ?G>G>F(G000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P t0@p0L`p`3/HP K "H ,4,\w|x0'G K KO-dM `@Pp=  P9jp QT:R @&000@0S 0 00?   @RO$ (P,0P48 ~ P2@1 0}P5 ;0። P@ P qK 0P}P 0P 0➠ 1/P  0 0R) h:G9GM>F#G000S(wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P O0@p0L`p`3/HP K "H +4+wx"G2KKO-dM `@Pp=  P9j^p QT:R &000@0S 0 00?   @R*$ (P,0P48| P2@1 0|P8 ;0h P@ P pK 0P]|P 0P 0y뛟@1/PPLP  0 0*( 5G\5G>bFG000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@To  2/@8/ $ ( ` P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P '0@p0L`p`3/HP K /H `*4*(wPxGK,KO-dM `@Pp=  P9j6p QT:R &000@0S 0 00?   @R$ (P,0P48{ P2@1 0W{P8 ;0@ \P@ P oK 0P5{P 0P 0Qs<1/PPLP  0 0' N1G0G >FGG000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TG  2/@8/ $ ( 8 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 8)4e)wx\G?KKO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48z P2@1 0/zP8 ;0 4P@ P cnK 0P zP 0P 0)K41/PPLP  0 0% ,G1,Gm>"FG000SHwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H (4=(wxGK4KO-dM `@Pp=  P9jp QT:R &000@0S 0 00?   @R$ (P,0P48ly P2@1 0yP8 ;0 P@ P ;mK 0PxP 0P 0#81/PPLP  0 0$ (G'G}>FG000S꨺wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H &4'Hw|xGK K KO-dM `@Pp=  P9jp QT:R {&000@0S 0 00?   @R$ (P,0P48Dx P2@1 0wP7 ;0Ȝ P@ P lK 0PwP 0PX 0ٚH1/PP  0 0# DGG1y>Fk G0H-8M@&000P@PU 0P0PP000?   @R  P$@(P,@04wP@K0 K0000S8wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P S0@p0L`p`3/HP K .#H %4%شwx GKpKO-M `@pP ,P $@ 0vP ; 0ᡛ 㽾@P j K 0 0" aKu>FKG000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K /H $4$ꐱw̉xdGKYKO-M `@pP 4P @ 0uP ; 0Ϛ @P j K 0 0! JKq>~FGL-M@d  R  0@ DP KK@K KL꘮wO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p (  DP @@@8P@P 0@p0L`p`3/HP K /H #4#w(xGrJJL-M@d  R  0 DP K@K KLܫwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T0  2/@8/ $ ( ! `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p ( ! DP ,@@@8P@P 0@p0L`p`3/HP K "H #4B#,wpxGJ`JL-M@d  R  0 DP K@K KL wO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ ( r `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p ( r DP }@@@8P@P -0@p0L`p`3/HP K "H f"4"pwxDFLJJL-M@d  R  03 DP >K@K KLdwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p (  DP @@@8P@P ~0@p0L`p`3/HP K "H !4!괥w~xFJJL-M@d  R  0 DP K@K KLꨣwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T#  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p (  DP @@@8P@P 0@p0L`p`3/HP K -.H !45!wH{xFJqJL-M@d  R  0 DP K@K KLwO-|M, p0 P4 8 < @ H HK@Qh4@a`@Tt  2/@8/ $ ( e `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K 0$p ( e DP p@@@8P@P 0@p0L`p`3/HP K "H Y 4  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K8 0$p ( > DP I@@@8P@P 0@p0L`p`3/HP K "H 24_ꠇw`xtFJJL-M@d  R < 0 DP  K@K KLꔅwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K< 0$p (  DP ᚺ@@@8P@P J0@p0L`p`3/HP K "H 4w`]xFJtJL-M@d  R @ 0P DP [K@K KL؂wO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(K@ 0$p (  DP @@@8P@P 0@p0L`p`3/HP K /H 4(wZxFaJJL-M@d  R D 0 DP ᬹK@K KLwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T@  2/@8/ $ ( 1 `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(KD 0$p ( 1 DP <@@@8P@P 0@p0L`p`3/HP K "H %4RlwWx@FJ4JL-M@d  R H 0 DP K@K KL`}wO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(KH 0$p (  DP ፸@@@8P@P =0@p0L`p`3/HP K "H v4|w8UxF"JJL-M@d  R L 0C DP NK@K KLzwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T  2/@8/ $ (  `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(KL 0$p (  DP ޷@@@8P@P 0@p0L`p`3/HP K "H 4ywRxFJJL-M@d  R P 0 DP ៷K@K KLwwO-|M, p0 P4 8 < @ H HK@Qh4@a`@T3  2/@8/ $ ( $ `(Kp1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D(KP 0$p ( $ DP /@@@8P@P 0@p0L`p`3/HP K ..H 4E8wwOx FJRJL-M@ xP0 T 0 DP K@K KL$uwO-|Mp, 0 P4 8 < @ H HK@Qm4@a`@T}  2/@8/ $ ( n `(K1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D 0$ (p <(KT 0i DP t@@@8P@P $0@p0L`p`3/HP K "H ]4`twLx4F(JJL-M@ xP0 X 0% DP 0K@K KL8rwO-|Mp, 0 P4 8 < @ H HK@Qm4@a`@T  2/@8/ $ (  `(K1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D 0$ (p (KX 0 DP ṵ@@@8P@P i0@p0L`p`3/HP K "H 4tqw JxHFSJJL-M@ xP0= \ 0j DP uK@K KLLowO-|Mp, 0 P4 8 < @ H HK@Qm4@a`@T  2/@8/ $ (  `(K1(X0,  $6/$`$ P 1/(( P 1/8H@@8L`D 0$ (p (K\ 0 DP @@@8P@P 0@p0L`p`3/HP K "H 4nw$Gx\FJJ000SxlwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Tk  2/@8/ $ ( \ P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P #0@p0L`p`3/HP K /H \4lwDxF-JJO-DM 0 0 8  dP  p @/b P :Y  R aX ``0ᣋ ᱋PaP Y  @Q AX` Eᇋ  >Ph  ``p@ 0p 0p 0p 0p 0pl 0pT 0p< 0p$ 0p  0p 0p 0p 0p 0p 0p|| 0pud 0pnL 0pg4,0p`!0pY!0pR!0pKA/0pD!0p= P@P WK跽JT>F>>NFFFJZF>(FFFF>FCFFpF_FLF#D F FO-dM pDQQP      00$ 0 2HV1F`?   @ R `<` 0`@ D   @RH@OOTX\`0uc4PD@0`&PpQE`0pCP0S 0p<`00`@0?D   @RLHPPTXP\`0@c4PD@0  0Q"`00 P p@ $40.FJY%>FW$HO-ML @ R6 ,p0QP0 `0 0 ` Q  0 Q NZ j @P VKEO-4M`0@P@ aqPG p`  0oO㾭၉p 0 @#7 ,7P V A` RV @04  P04  0 4K 0 0 ">NFӵF000S|_wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T,  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 4J_w7xFZJʱJO-M-HM, L3  ?O p` P0 pqA@@ PS PP PA@ p  0P=aPL &P$P@A A  #P   {@T' & ' * 0 P 0@P HU(KЍ P, 0  *  0<08    0 0S  $Q \( ) Q   40   ,(  p  $  ` x 0+S  P @ p`@!   P R?@@` P Q2p@@OOp P pP0 0`V 0@- @OO0S0  803/0@OOpP p0 0`V0`-@ OO0\  803/@OOp`p0 0PU 0r-@ OOS   8 2/P  0 0 FU> }FF000S4WwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 48Vw|/xF1JJO-M p@`P  ;4 R  07_P ;0  < PA kSK 0 0 뛨J >yFGF000SSwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TH  2/@8/ $ ( 9 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K "H 9 4f Sw8,x`F-JJO-M p@`P  ;4 R  ! 0a^P ; 0J f PA R K 0 0, 닥J>jvFF000SPwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Tr  2/@8/ $ ( c P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P *0@p0L`p`3/HP K /H c 4 4Pw(xF!JJO-M p@`P  ;4 R  ! 0]P ; 0t 㐥 PA Q K 0 0V J]>sFF000S&mFFQ >mFF000SGwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P ʾ0@p0L`p`3/HP K "H  40 FwlxF,JJO-,MPp0 0@ ;$QP&P`EE@#P  0`)[P ;0` /P @P ]OK@`  \`V P $  w sZ    `P O  P  N `  0Qa  0PZPN 00PA`` GN CZ `S`V:  00  07 ,Z *`v 0S @ 0+S|P P^P\ 0~ 〢POHD D0 0R 40 00 0J AJїJM>gFF->fFÖF000S@wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( { P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P B0@p0L`p`3/HP K "H {4@wPxhFMJJO-4M`@p ;$QPpPpFF@t  0PYP ;0P~ 㦡P@pmP  ߽pW Pp ,( f bZ     pP N P  PP DMPp  0Qu  0P@YPb 00P*~0p$ p [c WZ pSpWN  00  DL @Z * pw0S 05} Pp@P pAMKU   p 0+S{P PLH H0 0 84 40 0 AJJ =`FCF=`FF000S:wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H 4L:w x FFJJO-4M`@p ;$QPpPpFF@t  0PXP ;0P| P@pۼP  MpW Pp ,( f bZ     pP L P  PP KPp  0Qu  0PWPb 00P|0p$ p [c WZ pSpWN  00  DL @Z * pw0S 0{ ゟPp@P pKKU   p @ 0+S~yP PLH H0 0/ 84 40 0' AJJ=vZFF=VZF7F000Sd4wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Tf  2/@8/ $ ( W P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H W44w x؉FAJJO-4M`@p ;$QPpPpFF@  0P|VP ;0Pf{ ゞP@pIP  㻺pW Pp ,( f bZ     pP J P  PP JPp  0Q~  0PVPk 00P{0p$ p dk `Z pSpWW  00  MT IZ * pw0S 0z Pp@P pJKU0  p p 0$  0+SwP PHD D0 0 40 00 0 AJJU= TFF5=SF˃F000S-wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T̸  2/@8/ $ ( 彸 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H 4-wdxpFJJO-4M`@p ;$QPpPpFF@  0PTP ;0Py P@p对P  !pW Pp ,( f bZ     pP ^I P  PP HPp  0Q~  0PTPk 00Ply0p$ p dk `Z pSpWW  00  MT IZ * pw0S 0wx VPp@P pHKU0  p p 0$  @ 0+SIvP PHD D0 0 40 00 0 AlJJ=MF'~F=MFc}F000S'wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T2  2/@8/ $ ( # P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H #4P4'wx}F|Je|JO-4M`@p ;$QPpPpFF@  0PHSP ;0P2x NP@pP  ㇷpW Pp ,( f bZ     pP G P  PP FPp  0Q}  0PRPj 00Pw0p$ p ck _Z pSpWV  00  LT HZ * pw0S 0v 㼚Pp@P pFKU 0p $ 0$  0+StP PLH H0 0a 84 40 0Y AH{JyJ=>GFwFi=GFvF000S,!wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( 創 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P P0@p0L`p`3/HP K "H 4 wwvFvJBvJO-4M`@p ;$QPpPpFF@  0PQP ;0Pv 㴙P@p{P  pW Pp ,( f bZ     pP *F P  PP REPp  0Q}  0PNQPj 00P8v0p$ p ck _Z pSpWV  00  LT HZ * p w0S 0Cu "Pp@P pOEKU p0 00 p2/0pp< sP PLH H0 0 84 40 0 A%uJsJ!=@F[qF=@FpF000SwO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H 4dw8w8pFpJpJO-4M`@p ;$QPpPpFF@  0PPP ;0Pt P@pP  SpW Pp ,( f bZ     pP D P  PP CPp  0QP  0POPy 00Pt0p$ p ry nZ pSpWe  00  [b WZ * p w0S 0s ㈗Pp@P pCK RP  0`p  0`p  P0 p`,< P PHD D0 0 40 00 0 AoJmJ}=2:FjF]=:FiF000S$wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TV  2/@8/ $ ( G P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H G4twwiFVjJiJO-4M`@p ;$QPpPpFF@  0PlNP ;0PVs rP@p9P  㫲pW Pp ,( f bZ     pP B P  PP BPp  0QP  0P NPy 00Pr0p$ p ry nZ pSpWe  00  [b WZ * p w0S 0r Pp@P p BK RP  0`p  0`p  P0 p`,< JP PHD D0 0v 40 00 0n AhJ+gJ=3FdF=r3FScF000S wO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( 埰 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P f0@p0L`p`3/HP K "H 4$ wwbFcJocJO- p  0Q  0P`JP 00PJo9p,(p  Z pSpW | 0$0   {Z *| 0S  *  0Ln +Pp@P pX>K0  0 V T  R+b j a + 0{R`oG0& Rj2TVSV:0PZ340C7s 0c3tpGW57prp×RTV 340Fs 0CS0pr0Ó: 0@P`\ \0 0 LH H0 0 AAZJ]VJ=J$FTFu=*$F TF000S$vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T֬  2/@8/ $ ( Ǭ P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K "H 4vwSFUJTJO-J=JO-P 00Pc0p40p x tZ pSpWk  0,0( ai ]Z *p w0S 0b 㹆P@ P 2K  * 0 $ 0 0+SQ " "X"#,#Ƞ#p0 ##T"́""t#P0p @PLH H0 0I 84 40 0A A.J*J)=Ec'F =E&F000SvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( q P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 80@p0L`p`3/HP K "H q4lvhw@&FY)J(JO-4M`p00@ ;$QP@PFP@@ 0P=P ;0Pb 㛅P@@PP@F F@\   ΡPU P Rs  , ( i eZ   PP 20 @0S-10P  @`  RD 0P'=Pv 00Pb0P $ P ov kZ  Q Rb  X_ TZ   v Q 0a P@@P @(1KP 0 P ^`!<^0 4̃` 0!8^0 8X0!40 <4`^0!T!Ƞ^! `0P@PHD D0 0 40 00 0 A'JO#JU= E F5=EF000SvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T̟  2/@8/ $ ( 彟 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K /H 4vwpF"J@"JO-4M`p00@ ;$QP@PFP@@ 0P;P ;0P` P@@PP@F F@娠   PU 6P Rs  , ( i eZ   PP Q00 @0Sy/0P  @`  RD 0Ps;Pv 00P]`0P $ P ov kZ  Q Rb  X_ TZ   v Q 0h_ GP@@P @t/KP 0 P ^`!<^0 4̃` 0!8^0 8X0!40 <4`^0!T!Ƞ^! `0P@PHD D0 0 40 00 0 A!!JJ=:EFe=EF000S,vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P Н0@p0L`p`3/HP K "H 46vЛwFIJJO-M-Mp @P`L 1EO Q$ W! W0 PpB0 A <|)tP  A01ᝢ 0O;P5S )$QB S lhw ``6 Q   `@⨍0`V 1   R   @⑍0Q * ˸+P `P: Ppᑎ0PU F %QD Pp(20@ \X ˝ ` TP퇛W 1   R   @70Qo   W"@>d`Q   Pp@0PPKLH W1   R   @0Q.  WIKI;I˴-j@˵L  _ a L  j[Vpcdᷤ `崤˵00 AJK1 AH;a + pL+ a+b˰٫ڋ 0J H۰ j H۰ H۰z H۰˴u H۰˴p  B  Q  @*P `@p*E.JQSm!SR?_%Gq HWPZ] >C@p$ppO-M`  R  @pPߞ 0XPA  + K KO0vO-|M, 0 4 8 < @ H HK@Qs4@A@`V  2/`8. $ (  p(K✑(X , 0  $7/p$@$ P 1/(( P 1/8Hp@`8L@D @Pp`d 0XPA `*8P@P 0@p0L`p`3/HP  K ,H 4LvTw Fq J000S(vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TW  2/@8/ $ ( H P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K #H H4uȯvԈwF Jp JO-M,`Pp@  , F A P:( R -+SWP@ P )K000S(vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( 刘 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P O0@p0L`p`3/HP K #H 4Ȭv؅wFJJO-M-PM` PV㝻 p  1   R   @gQm   }KN˰N۰NN;KLHKVn;1   R  c d@/Sdd0SbL20TR  ɛ] ?O  j@@$`p  PI k P@$`p[Z   p$` P0 A 1 Aa pZP+Pa;;@G+ b H bc Nc `N`A8 ዴ%>ዴ! Q 0  l9 `  !60 P @1/ ZP$`.50 A0 QQ 0႙XT T0 0 pAZ] >Z] >C I ooo=[=EwE000SvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TE  2/@8/ $ ( 6 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K #H 64cꀗvpwTEIIO-M -XM pP @` )P@\E   R   @Q & '  0G/P ;00T LwPp@P `{#PK ЍD@  *  0<08  `pPjQ  H۰\=~40 0 Q|) 0p 0  4P0` 1/t ` zOR,&%@04P LT P02g   ‹۸`pP\A1   R   @oQ'  ۸\%,( ۝\ 1   R   @MQ  PQ$ ˟ λL K  j ۴K ~ K y K t ۴K o  B  Q  @*P*o@p.JESm!Q SR?_%Gq RPRE QP#/ " .bb  d ba<"` VPQP ʫ] ?O `j@pPJ [ pP [V᧙pP`壙0 A1 Gpa pO+ L KL+K H+HNHa Na A 0 Q 0 l9 P  3p0` P1/ V`p2 A Q 0P|x x0 0 cA..AcpAZ] >Z] >CIhoLoj@'H9,( S 1   R  a @I0Q  S[Vap P`{I A0 Gp`˻Oj@Kabp P`^H A0 Gp`ʫOj@J[VaEp P`AK A0 Gp`j@a1[Va)p P`% A0 Gp`z { h! Iz! K p+N+w! ML`N` N a˰Na˰nc ˴k˴ Q 0 l9 P  /1p0`  P1/ V`pA00 A0 Qd 0ᕔPs $  S1   R   @~Q  PIXT T0 0 L@@wKA@@pAZ] >Z] >CIF=~EE000SlvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T(  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K #H 4F v,\wEIIO-M-0MP`@p" )$Q@PE Q   @}Z* * +  0(*P@ ;0O -rP@P p\XKЍP,( ɛpLj Q|)pP /0 P 1/P يOR,&%@0/X'bAs" Y> %D:D HQRSAB UC*/*R2?2c@  ˸`!A*۸ $ ͫ PƛJ I x wj J I q pj J I j ij J I c bj 6@m@P: A0OW 0C` R [W  A x0 A`۰Z [W  A z0 H`˰Pj@N f [WٔP֔1H0 Aa UV+!m"KU+"L q+pJ+Q! HI`N` J aNaH9 ᛴ%Eᛴ! Q 0 l9  .@ @P0  p1/ Z P@-0 A0 Q 0?Phd d0 0 L@@wKA@@pAZ] >Z] >CI1>=EkE000SzvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K #H 4dzvSw8EI*IO-M-@M@ Pp `! )Pp@pTpE Q  @{pW+ * + 0@'P ;0@L pP@p@P @0`KЍPp<8ʫ`P)j Q|) @@  -P0` 1/` T ZOR,&%@0Z-e$0 p40 /bAPP@HBbQ*"a@ pPE1   R  a `@0{H0Q(  ,( P! 1   R  ` @ {0Q  P`Y$ Y ۟ D PիM @ J :˸ j M J  j M J z yj M J s rj 6@m@P:[Vaᰒ pP孒 A IOT0Gp`Μ˻Oj@Kaᒒ@pP叒0KGIp A`ȋOj@H[Vaw@pPt0KGKp A`j@a1[Va]@pPZ0KG Ap`N O i! NN! K p+`M+J! LJ`N` M aNaA@᫴0 =᫴ Q 0 l9 P `d,@ 0pP6/ T`@pv+0 A0 Q 0ʏPd` `0 0V L@@wKA@@pAZ] >Z] >CI]4=EE000SpvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( { P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P B0@p0L`p`3/HP K #H {4pvIwhE'IIO-M-HM pP ` @# )Pp@pRpE Q p @Py pW* ) * 0%PS ;0qJ mPp@ P @KЍPp40 ȋ4j 0$ Q|)0  /+P0 1/ 0  O0R,&%@0*P<D @0 p,(  pP1   R   @xQ  P$  ћ O %ʋI H x wj ໴H q ໴H lDH $  @= Pd P * *B R0/0@P/ @P*E.JQSm! srᣟ'G1 rptrEQp#_" .㕢e d 㑢a@"U pQp  ʫ] ?O j@p PJ j p PZ %  "0 A1 Aa pZU+Pa;;@ I H Ic Nc `N`F9 ዴ&Cዴ" Q 0@@ l9 P  **p0  P@1/ Z p8)0 A0 Q[ 0ግPhd d0 0 cAcpAZ] >Z] >CIZ] >CSI"=E;E000S^vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K  #H 44^vd7wE=IIO-MP`p@ )$Q@PE   R   @tQ' & ' 0 P' ;0E hP@P @-KP  0 Q 0)P 0 0 II=EE000SZvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K  #H 4XZv3w,EIIO-M-HM@p P0" )$Q@`P`H Q  `@s0`V0 p. /T` @ 0P ;0D g 0p@@P 0)8KЍp 4 0 jP0 ,( 0 Q%0 O  Q0,&%@Z%p| < K@0<  O ,@< *0 $ 0 -4=)H 0@Rw& H @= 11@Ro a H i hj* *BR0/0*.JAQ @` ESPm! #/ " @a ER à?020Π0|cd00/|b pq0pSRɛ ] ?O j@I : kW Š 0 A1 Aa p&+a;;@+ b H bc Nc `N` Q% 0Vp0LH H0 0 pAIooo=>yEéE000S8SvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P Ӂ0@p0L`p`3/HP K  #H 49Rv,wEUIŮIO-M -XMP p@` )P@UJ   R   @qQ ' ( 0PPG ; 0PC #fP@P `QPK ЍD@  *  0<08  `jQP  募H۰U+j40 0 Q#P O0  Q,&%@q#`| LT P0  OP  ‹۸`PU? 1   R   @ZqQ'  ۸U%,( ۝U  1   R   @9qQ  Pf$ ˟ L K  j ۴K { K v K q ۴K l  B  Q  @*P*_@`.JE SQm! #?"!Aa ER 0à?020Π0\cd00/0\bP UxQPR ʫ] ?O j@`J 3 `kUᕈ`咈0 A1 Aa p*+ L K L+H NH `N` Q 0-Plh h0 0 cA..AcpAXIooܙo =pE#E000SxJvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K /H 4 JvT#wEڦIJIO-M-@M0 `@PPp )P@SI   R  0 @o 0Q ' ( 0PP ; 0P@ cP@P p`KЍ<8p  ˸40 ˝˴;j Q 0!T pZO  Q0,&%@P!u bAs" %DH_QRA3`B7/W,S `A  0`SB 10pQ@pp ۸˟N L  j N L  j N L  j N L  jȋOYj@CHT p R  a P@nI 0Q  S,( S  1   R  a P@nI 0Q  S{Uaᧆ p夆I A 0 A`˻Oj@K{Ua዆ p分H A 0 A`ʫOj@J{Uao plK A 0 A`j@a1{UaT pQ A 0 A`R S h! IR! K p+N+O! ML`N` N a˰Na˰ Q 0P$  S 1   R  P @&nQ  P@< <0 0C L@@wKA@@pAҤI=fEKE000S@vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T}  2/@8/ $ ( q} P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 8}0@p0L`p`3/HP K  #H q4l@vw@EmIݜIO-M-0M@0 `pPP" )$Q@PPPJ Q  P@Fm0PU/ - .! 0P{P ; 0Pe> a0P @0@P @ XKЍP,( ɛ0:j Q* @ٚO  Q0,&%@I.bAs" Y> %D:D HQRSAB TC*/*R2?2c@`!A˸*۸ @$ ퟫ @嚛J I w vj J I p oj J I i hj J I b aj 6@m@ P:KU ႄင A0O 0C Q`R KUm k A 0 Ap`۰Y KU[ Y A y0 A`˰@j@N : KUA@>0 A1@a *++!m"K*+"L q+J+'! HI`N` J aNa Q 0ԁP0 XT T0 0_ L@@wKA@@pA`I<6_EE000S$9vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T{  2/@8/ $ ( { P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P N{0@p0L`p`3/HP K #H 48vwEIIO-M-@M0 `P @p$ )Pp@pSpE Q  p@\k0pW+ ` ) *$  0Pk ;0|< _P`@P p `KЍPp<8ʫj Q0C` O0  Q,&%@ O`, p`40 /bA0PS@HbQ*"a@ p`J1   R  a @jH0 Q+  S),( S" 1   R   @j Q  Pd$ Y ۟ D P«M @ J ˸ j M J  j M J  j M J  j 6@m@PP:PkWa N`PpI A OI0B Q`΃˻Oj@KPkWa, `Pp'I A 0 A`ȋOj@HPkWa  `PpK A 0 A`j@aP1kWa `Pp A 0 A`) * i! N)! K p+M+&! LJ`N` M aNa QN 0PXT T0 0 L@@wKA@@pAI1<UEkE000S/vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TBy  2/@8/ $ ( 3y P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P x0@p0L`p`3/HP K #H 34`t/vwHEIuIO-M-PM@ `P$p! )P p@pTpE Q  @ipW+ * +  0@@P ;0@*: F]P$@P pt @KЍP p<8ȋ"j QP0 O0  Q0,&%@P| DD KH0PY  p40  TP p1   R   @hQ  P,(   O㬛 ,ঋI H  j ໴H z ໴H uDH $  @= Pm * *B R0/0@P/ p@P*E.JSQm! #O"!AQ ER @à?020Π0|d0d/|b@q@pT @Rʫ] ?O pj@PJ > P[TP0 A1 Aa p(+a;;@ I H Ic Nc `N` QL 0}}P\X X0 0 cAcpAIlwoLwo8wo)<MEc~E000S'vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T?w  2/@8/ $ ( 0w P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P v0@p0L`p`3/HP K 1.H 04]h'vw<}E8IIO-M-@M@ `P0$Pp# )P p@pTpC Q  p@g0pW, + ,$@  0P;P) ;0P%8 A[P$@P po`KЍP p<8ɛ0(j QP O0  Q,&%@0 OP%s DP@HQ"a@  p40  bATP@Q` ۸ p"1   R  @ 0@{f0Q  ۸P,( ۝Y ˟ D㧛P@ : L I } |j L I v uj L I o nj L I h gj 6@m@P:KW~ ~ A  OU0B`\ [W ~ @~ A 0 Dp`[˻ pOj@K}@ p} A0 D`۴j@۵M[W}@ p}۵ A0 D`* + h! N*! J p+L+&! JI`N` L aNa Q8 0i{PXT T0 0 L@@wKA@@pA&I<EEvE000S|vO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T,u  2/@8/ $ ( u P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P t0@p0L`p`3/HP K #H 4JvlvtE/}I|IO-M `@Pp )$Q   0FP/ ;0/6 KYP  | P 0y 0VPP@P cK 0 0 {I<AE'rE000SvO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T@t  2/@8/ $ ( 1t P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P s0@p0L`p`3/HP K #H 14^lvv@qEyI0yIO-M @P `p )$Q $ %$  0ZPz ;0C5 _XP@@P pK40 %j0 Q$`(p,@  | 0K,K(0K @$KP80K@`K00j0 Q$`(p,@ | HLP0 @TP@08`00Sh0/d0Sb@2X0R  ˴] ?O Pj@˵ p L `  pX@@[WuPu˵ p0 A1 Ia pM + K IK+I F+JNJa Na ? 0 Q 0 l9 p P 0 p8/ UP A Q 0sP|x x0 0 cA..AcpAZ] >Z] >C]dIMoMoMo9<#EsTE000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Tl  2/@8/ $ ( l P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P sl0@p0L`p`3/HP K #H 嬷4ٷXuv,SE]I]IO-LMPpP@ PG  Q ` P   Q `0[PUR  P:]PC  Q  U a J.@ 0P? ` 06cP,@wP    0c- PP P HP 0㡗PPP @P K$ 0 06 YEݻ<EOEO-\M oj00p48 QP@ 0 1/( K,K$0K  00<8K4K0K `K`g 0 1/,KP@᠟YiBHOUং: 0P@ 0ᦢJ#nP,bP   40P05/0 IR( R RF,pK((!1  PAP3! KO004pO8`+@ ,P p U`-@ @8PK( `4O$p,0 +$,P-h1` X @ P`48K,(  { tt!QIPI0tP He>P!yKO-M `Pp-V+V p   pP KpP  K p Pa `@ ,dpV Qʐ  pA -P=g pPK `F PG*X  Pa  p -PE pP) `FP%*6  Pa  @p P# pP   K    K `V* Pap :P pP ;PVP PqO p:Qa pP ;PVP Pq$ p.Q6 pu VPn`  U=Q   q Q8QUP2l &p`-V+V"\ +Vp6P( `K0EPbPda;Q!qpP KP `V* `p :P pP `<V* `K-Mp PU @`0E QQ0 0@R-0 0P P0 E R:%K)EQ# H) 0  A KAU0:` ```V  Q0 `P P@U,- + . : Tз  K  *R"3` V Ah <8AKaxP U U Q з @Pp P(U( r (R )RA0 S Q 0 0R  0Q  ҷ  8uO-M `Pp-V+V p   pP KpP  K p Pa `@ ,dpV Qʐ  pA -P=g pPK `F PG*X  Pa  p -PE pP) `FP%*6  Pa  @p P# pP   K    K `V* Pap :P pP ;PVP PqO p:Qa pP ;PVP Pq$ p.Q6 pu VPn`  :Q   q Q8QUP2l &p`-V+V"\ +Vp6P( `K0EPbPda;Q!qpP KP `V* `p :P pP `<V* `K-Mp PU @`0E Q0 R`0@V+` `P0`E V:#K)EQ# H) 1P PA KAU2:` ```V  Q2 ` P P@U-- + . : Tб  K  *R"4` V Ae b9PAKuP U U Q б @Pp P(U` (P0uP(U )U`FQ`QPVPP0U  0Q ұ PP lu000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TB`  2/@8/ $ ( 3` P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P _0@p0L`p`3/HP K /H 34`tuvH!E+IO+IO-M@,P<p 00<  !AB`000S0C?o`P2H@00A&P AR  K000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T_  2/@8/ $ ( t_ P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P ;_0@p0L`p`3/HP K #H t4塪xuvLE(Io(IO-M`p @ +7r@WPPF'  P#WppF` B@ob?PI  0}@PB `hP 4p*= 0f  CP @P K  pWp? pP  0AP PP/ O-MP  R @,p`,$P  RA cK KOuO-|M4, 0 4 8 < @ H HK@Qq0@A@pWP^  2/p8. $ ( A^ `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P `@p4 $P RA@ p8P@P ]0@p0L`p`3/HP K #H ,0Yu$vEU$IO-Mt`PPQ@ 0p  ss0P YEY.@  QPP4 PpY@ 0pP P-%PP@P uK0EYY EpE@p@  KOxuO-M8<, 0 4 8 < @ H HK@Q0@RP@TU]  2/@p@p. $p (p F] `(KLR(XP,pp0 ppppp p$pp6/$`$p P 1/(( P 1/@PH@@T`LP `0Pp  sC40P c pX @8@U  2/@8/ $ ( /U P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P T0@p0L`p`3/HP K !#H /4\duyv8DwIIO-M-Mp @$P   4 0M i9`tG P`XPP`;P PW ` r 1/,Pu `PW @ W FY `YFg  B@Q F0.P+ p`   0@0S 0\` h X /T @QF L` P H D` `@ < 8 hK@BPdP(  P  `P0hKn0P 4@PL hK_P   hK PiQ3,( 狟ɛH j@  a I  jkQ.\ ,\0 A 1 Aa I   p `+SO @0 S 0  `p`d t /x@QEp`|p`d`t0!P[ pO @0 S 0  `p`d t /x@QEp p`|p`pdoBpPhP< d_P"  Q VP  `Po 00J@0!>P `U`U P$@P P!0KЍd PhP dP $2u ,uܜuD000SxuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TR  2/@8/ $ ( R P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P R0@p0L`p`3/HP K "#H ܝ4 uovDLHHO-M `@p ( 0PP9 \0WP 7P0AT0SJ0BT0SJP@P 4KRTQ  Q:  `T  0 0໚ 뜔uHU<D+DO-LMBP` p P j @ R p hP+ 0GH@40 S@% ( <Q0!H4Q! P4 @0`H p@ 0@0<S HP #d@`( <@Q P @0`H @ 0@0 <@QGP4 P* K0` p@Q H p@ 0@0<SGTpG w H @ 0@0 <@QGTpG wH Q@0 @ l (<R0Gp PP@P0` ,Y:H@40 S@5 ໠<QG 1 P: DQ pG P$P$p, 0R@@)T 0S <@Q Y pP t[( <@Q H@40 S@   00<R0'GH<@  0 S/`@0`0GH<@0  0R*`@ `0 GH<@  0 `@S@0@0FH<@0 ` V@`@0FH<@`  0R*`@ `0FH<@  0S/ @0 0FP H@40 S@ <Q0FD@``H@40 S@ )00<R0FH<@  0 S @@0@0FH<@0  0R{@@ @0FH<@  0S @0 0}FP8 P: CX 0FH@40 S@ i  00<R0YFH<@  0 S}P@0P0KFH<@0  R)0@ 00=F0qFP Wj @B 0e 4) <@P0!F@H @  <@P0F@H @ { <@P0F@H @  <@Qy z  <@P0E@H @ } <@P0E@H @ ) <@Q  <@Q PpP  @P p 0nP+  `0`R{P# P p!"Zy @Qv QZn l`P p Ph `p`K  <@P0uE@H @ / <@P0gE@H @ * <@P0YE@H `@@ @<@P0KE@H @ @<@P0>E@H @ * <@P00E@H @ / <@QM NP` @ `V i`^ pPP '0 @0SO0P `mPuHuuu000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TN  2/@8/ $ ( ~N P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P EN0@p0L`p`3/HP K %#H ~4嫙ꠄuH^vtDHHO-M `Pp@FB P:^AQ  ݫPP@ P K000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TM  2/@8/ $ ( M P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P M0@p0L`p`3/HP K &#H 4ꨁuT[v|D8HHO-M `Pp@FB P:@Q  PP@ P (K000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TM  2/@8/ $ ( M P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P L0@p0L`p`3/HP K '#H 4/~u`XvDdHHO-M `Pp@FB P:?Q  RPP@ P jK000S|uO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TSL  2/@8/ $ ( DL P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P L0@p0L`p`3/HP K /H D4q{ulUvDHHO-M `Pp@FB P:$?Q  㔫PP@ P K000S yuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TK  2/@8/ $ ( K P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P MK0@p0L`p`3/HP K )#H 冖4峖xuxRvDH#HO-M `Pp@FB P:f>Q hPP@ P K000S,vuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TJ  2/@8/ $ ( J P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P J0@p0L`p`3/HP K *#H ɕ4uuOvDHGHO-M `Pp@FB P:=Q წPP@ P 2K000S8suO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TJ  2/@8/ $ ( J P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P I0@p0L`p`3/HP K +#H 49ruLvDHmHO-M@P  <qD00 }`  UJDP @@  P @ T@ @`` P6 P2  P `P #\@` pP`  0`CP  0`(uP```@ P "KH- 000S_nuH- pM     ( 8P (K *"( \QP@TI  2/@P0P. P P H pK⨀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<nuLHv\DHH-   Q E0<GB000S@/0muO-tMd`\XTPHHQUA@`VH l 2/`P0P< $P (P H p(K((X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<@PQ @[H08< 03/@PHP K "H哓luFvD*HO-M`  R# @pP 0  ,Q@  K KOkuO-|M, 0 4 8 < @ H HK@Qv4@B@`VG  2/`@8@. $@ (@ G p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ V,@ Q@ 8P@P G0@p0L`p`3/HP K "H ǒ4,juCvDHO-M`  R# @pP 0 ,Q@ 6 K KOguO-|M, 0 4 8 < @ H HK@Qv4@B@`V$G  2/`@8@. $@ (@ G p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@n +@ Q@ 8P@P F0@p0L`p`3/HP K /H 4(fu@vмDH000SduO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TF  2/@8/ $ ( qF P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 8F0@p0L`p`3/HP K /H q4垑ldu@>v@DHHO-M@,`Pp  P APA@P@ P P:L9 R 㛢  R   PP@P K Ȣ000SlauO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TE  2/@8/ $ ( E P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P `E0@p0L`p`3/HP K -#H 噐4Ɛ au:vDH9HO- 0PP\ L0WP( JS  ȋ-jN+a+*CP 0PP1 0P %P@ P (KЍU  Q* PF 0P U ᖘP 0, ,0 0z Y@pHݳH<sD'D000SMuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T@  2/@8/ $ ( @ P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P s@0@p0L`p`3/HP K 2#H 嬋4ًXMu@'v,DHVHO- M `p@ ! 4P  PP   X    P  P  P@P Kp  0PP L0 WP $P 0 0 믯H <oDSD000SIuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T?  2/@8/ $ ( ? P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P ?0@p0L`p`3/HP K 3#H 弊4Iu#vlDoH߭HO-M- M,pP`P  ,G @ P  4P ` `@P    T@ ` P P   R  0PU!   ! PX 0PP_ L0WP #PBP@ ȋ jO+a+CP-U+ J? `  Q*| PC 0gP$ @U _P`  0 d#P @` @P @(KЍ,( (0 0& Y@ūH<RjDךD000SlDuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Th>  2/@8/ $ ( Y> P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P >0@p0L`p`3/HP K /H Y4冉 DuvD&HHO-M- MPp`P @G` $P  P 6P  PP P\ P PQ0  d/`V    0PBP L0 WP+ G"PP  a   aP @P c(KЍ Jh  Qeዴ74!! 1 H;H+[c+N+Zr1;R0cB:@ 0DHDa Jȋj<+a+CP/a  @U *SP5B 0P `U ᭔PPL L0 0 B@AA0CHOGM<dDD000S=uO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T<  2/@8/ $ ( < P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P <0@p0L`p`3/HP K E#H 弇4=uvlDH_HO-TMPpP`G`E@ P: /`VC @  Q @ P    R   @ 0+@PU  @ 0@P.UP P@Q LP@P@P @KO-M`  R @,Pp,0A A1P  RA K KO9uO-|M4, 0 4 8 < @ H HK@Qs0@A@pW;  2/p8. $ ( ; `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P `@p4@ @ ᶶP RA@ p;8P@P D;0@p0L`p`3/HP K 6#H }0媆8uv̎D~HO-MP  R p,@`,A A 0A Q@  K KO6uO-|M4, 0 4 8 < @ H HK @Qr0@A@pW:  2/p8. $ ( : @(KQ(XP,0  $4/@$`$ P 1/(( P 1/8H@@p8L`DP   P @`p4@ @ 0@ ᘵQ@` pw8P@P :0@p0L`p`3/HP K 7#H 幅05uvDH000S3uO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T>:  2/@8/ $ ( /: P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 90@p0L`p`3/HP K 5#H /4\d3ud v8D,HHO-$M P ` @ p Q p P   P6 p0&)pW F  b 0$ @P*P'  P:`,PU 0 * pP"L@P @P AK000St/uO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T*9  2/@8/ $ ( 9 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 80@p0L`p`3/HP K /H 4H/u vDHjHO-$M P ` @ p Q p P   P" p0(pW F  e 0 ,P*P'  P:L+PU 0  pP"~K@P @P -KO-Mp  R P,@`, A0*  Q@ K KO+uO-|M4, 0 4 8 < @ H HK@Qq0@A@pW7  2/p8. $ ( 7 `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP P`   @p04  A Q@` p8P@P 70@p0L`p`3/HP K B#H Ђ0<*uDvD@HO-Mp  R P,@`, A0i  Q@ FK KO(uO-|M4, 0 4 8 < @ H HK@Qq0@A@pW37  2/p8. $ ( $7 `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP P`   @p04  A Q@` p8P@P 60@p0L`p`3/HP K C#H 0<8'uDv }DZHO-M  R,,pP` 00<PGPA @ Q  ㅾP QPB yP K KO %uO-|M4, 0 4 8 < @ H HKT@Q0@#H 4`uxu4sD؃HHHO- M,pT3 @?OP0  , G``APS! @T @ P AS ,  Q' 2  P.: 0~PP# 0`PP& 0P P m0P P@@P K 0 0u| 뼁H;?DpD000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T3  2/@8/ $ ( 3 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P s30@p0L`p`3/HP K F#H ~4~Xutu,oDHvHO-$M p@P`  Q!   P   P 0"PU  @P P -P qP P P HP@P K000SuO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T2  2/@8/ $ ( 2 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 20@p0L`p`3/HP K G#H }4}uupkDm|H{HO-M `@T# p/O0SP@ R 0PP0 0P P <S     R :  P:  0PP@P K 0 0z zH;68DhD0(P 0XuO-|Mp, 0 `4 8 < @ H HK@Q]4@QP@T1  2/@8/ $ ( 1 P(KD1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD 0p@8P@P 10@p0L`p`3/HP K ;#H |4|uugDxHgxH0(P 0> uO-|Mp, 0 `4 8 < @ H HK@Q]4@QP@TK1  2/@8/ $ ( <1 P(KD1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD 0@8P@P 10@p0L`p`3/HP K /H ;|4h|uuleDvH@vHO-M  R.,`Pp@  , F A  Q F pPPLPP@ P K KO uO-|M4, 0 4 8 < @ H HKT0QD5D000ShtO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T'%  2/@8/ $ ( % P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P $0@p0L`p`3/HP K N#H p4Ept`u4DHHGHO-M `@p1  "P Q @  = PP, P P P$P 0P.P 0P 4 P@P cKHP<8 80 0l ($ $0 0l !FHݞ;D2D;rD@1D000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T1$  2/@8/ $ ( "$ P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P #0@p0L`p`3/HP K O#H "o4Oo0tu1DpDHCHO-M `@p1  R w9( pPP 0PFP 0P0 LP@P {KP 0 0l BHE;C.D000S$tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TV#  2/@8/ $ ( G# P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P #0@p0L`p`3/HP K 5.H Gn4tnt$u-D8AH@HO- M `@p1  "P 0SP+    0P 0PcP 0PM iP@P 嘳KP 0 0-k Z?H;nC*D000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Ts"  2/@8/ $ ( d" P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P +"0@p0L`p`3/HP K Q#H dm4m8tu *D=HF=HO-M `@p1  R ӯ( pP'P 0PㇾP 0Pq P@P 弲KP 0 0Qj i J8H;C7#D000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( u  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P < 0@p0L`p`3/HP K S#H uk4k|tuP"Dz6H5HO-M `@p1  R  A 0P0#U(H0S% m  0P㔼P( P0~ P@ P ɰK 0. pPPP 0 0Oh 4HA;C{D000S tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P M0@p0L`p`3/HP K b#H j4jt0uD2Hf2HO-dM p@`  Q  Q P f 0 0P㧻P ; 0P P  X z P    R Q P 1,$0 S$ / Q%000P@PU P00PP@PTP@P 吧K000S갤tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Ty  2/@8/ $ ( j P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 10@p0L`p`3/HP K ^#H ja4aPt~u$CHpHO-M, @Pp  ,PDPPA` P: I PU  ぐ P B 2  `P h`p`p P 00S0 U O 803/P@P `啦K000S}ĠtO-tMd`\XTPHHQXA@`V x 2/`P0P. $P (P q p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< %P0P8P ;08p0D`p`3/HP K _#Ht``ht {u@C9 HO-M`@p p QP c  X  匥 P 0P@P ۥK000S}ܝtO-tMd`\XTPHHQXA@`V x 2/`P0P. $P (P  p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< %P0P8P 08p0D`p`3/HP K 6.H__ꀝt(xuXCr HO-M`@p p QP ᩥ  X  Ҥ PPT 0 ! P@P K000S}ؚtO-tMd`\XTPHHQXA@`V x 2/`P0P. $P (P  p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< %P0P8P 08p0D`p`3/HP K a#H^&_|t(uuTCHO- Mp0@p  Q0P `X P0 `P P Ϥ B Q`U 0᳷P@P @K000S}ptO-tMd`\XTPHHQXA@`V+ x 2/`P0P. $P (P  p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< %P0P8P 08p0D`p`3/HP K c#H^L^tquCJHO- Mp0@p  Q0P  `X 8P0 `P P U  0 P@P tKB Q`U000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TM  2/@8/ $ ( > P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K g#H >]4k]ꠓtPnutCGfGO- M,`Pp@  , F A Q  @! R    @@oQ 3P@ P 叢KH-M@`P :P 2V Pp P (P $ Pp `Vpa 0p KpL-M@`P  T0S P@9 4A 0Z   0!Q  R 003D  & 0R2@a  |x x0 0Y P*Kp` 0` `KpA0CQ;VC@C000S tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K i#H [4[tthuC3GGO-$M@ `P0HBP@p`@p`PpB `B@` P P 0P p@Q  `V  P4` Z@ @ a jd  0P$     # Z  !0 MP@P ٠K($ $0 0pX AL;zC[C000SꘉtO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P k0@p0L`p`3/HP K /H Z4Z8tcu CG2GO-M-HM@ PPP 00BP"@`@`p ` P P0K 00[Px ,p `Vn  `LpBPP `BB@ @`<8    +b j a ' 0P /G`" P*24R3R:0`j340C1 0c4 CR6R4R 34 B BR p Òj @Q)  Q  @ R  P@P 募(KЍ $ 40 ȋjOM  ,( P   0P# 0       Z  !0 P@< <0 0V AA-F;CC000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K j#H X4%YꈂtD]u\C)GGO-4Mp P(W`@P "@  eW@P $` pQ `@( 0LpP4Z*&$@ @JpLF qPP dp`T  s@ `Y dp$P p$@@YpTpY 0 JةP pp@$@ @Y t ڄd $@ `GX YB:PI$@ uC$@ E?@E Y*@$@+PIup @Pp!pp!W wڇtd U@  $@V  ~d `$P p?@ Y*+PIu@ @P@!p@!T tڄ@d pU㰀  V  Kd ` p$P$@P @( 0t p}P @bpI ` `JԪ@P Pǀ V: 03/p @GP `< (X `   ! T\lx# 03/ `   0 0  0p 0p0 pV cPP c@ P K4뤂t{t000SztO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K k#H V4W4ztTuCGdGO-tM` PT O @  Qp@Q 0P P P0 PR P*PFPA VE 8 p P :P 0PܧP P3 0 P:y0S VpEP#  P0pW `pQp$P@P Kp p  | `N zWp GrH Pg`{gP(K ``4K] P,PC @]$ Y0S$XP<`pG 4P `PpR 0Q  S 00Q SpPWLPPP( P,0$0D H0@0y( 40 PPLPl0, ,0 0R AWGGȡr7;C;CO-M@  R!,`PPp  P A0A@0@ 0@P , K KOstO-|M4, 0 4 8 < @ H HK(@Qy0@RP@T  2/@P8P0 p$P (P   `(KⰑ(X ,PP 0 PPPPP P$PP6/$`$P P 1/(( P 1/H8@@8L`D  `P@p4PP H0H@0@ 0 <@P p媚8P@P 0@p0L`p`3/HP K /H T|0UrtMuCG000SptO-|Mp, `0 4 8 < @ H HK@Q\4@QP@Tq  2/@8/ $ ( b  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P ) 0@p0L`p`3/HP K m#H bT4T0ptJuCSGGO-4M T  `O @  Q@Q< 0P㏥P 0Py pK  PP: %PU< 9 P: Y/ UpQ* p 0W1 S3 PpW000 Q 88P,p@P uKSp`pPPP 1/P P 1/P Qw \8dDP8|DPɷݷط 1/ 1/ U1ppd dP (ⷴⴴP $(00PU^ P ^P  pRApmU^@^ @<8 80 0yP   sP G,;ϏA,;C#C000SitO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P o0@p0L`p`3/HP K }#H R4RHitDuCG"GO- M` pT O @  QP@QL 0PӣP 0P P6 P*P(fP# V PGR ` P:SPU l 0P U RPPP@P ΗK?P@P:ᲹP 0kP[ U R ?P@P:ᖹPD 0OP? U R ?P@P:zP 03P# U R ?P@P:^Pl 0PP 0P=A0, ,0 0N GQGG)GGSG&;C C000SctO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T4  2/@8/ $ ( % P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P 0@p0L`p`3/HP K n#H %Q4RQuC G|GO-\MP `T O @  Qp@Q 0POP P09 UPR P*PFPA UF 8 p P : 0PP P3 0 P:0S UpFP#  P 0pW p`Q`"P@P .K` `  ^ `N jV`   RPPPpa 8K᯳a $ᨳ0S p< 4( [`pR 0Q  S 00Q SpPWLPd( P,0$04 008 00, ,0 0aM AqGGr ;>CóC000ST]tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P Z0@p0L`p`3/HP K ~#H O4O\t7uȲCGuGO-M `@T# p/O R@ R" 0PàP+ 0P  P:\Q $ P@P KP 0 0{L G;C+C000SYtO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P y0@p0L`p`3/HP K #H N4NpYtH4uDCG@GO-M `@T# p/O R@ R" 0PP+ 0P  P:{Q $  P@P KP 0 0K TGm;"|CC000SLVtO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K -H M4MUt0uCG GO-M `@T# p/O R@ R 0PP+ 0P  P:Q $ P@P $KP 0 0J G;xC#C000SRtO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K #H L4MhRtH-uGO-MP @pL O`G Q U 0 0PC  U`G@P8  P:  P`V p PpP0 0`V 0`]c 0P^ O  P803/P @P K000S.tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K q#H C4Dp.t\ uDCםGGGO-M,`Pp@  , F A P: R 0P@ P [K000S+tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@TD  2/@8/ $ ( 5 P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K r#H 5C4bC|+tluPCGhGO-M@,pP`P ,0G  A Q 00M i PA 嘈 K000S(tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ ( r P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 90@p0L`p`3/HP K {#H rB4Bp(tduD~CGtGO-tM `Pp@FB P*  2/PpPp NLPPP  0| P@ P LJK000S%tO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD '@8P@P h0@p0L`p`3/HP K /H A4A,%t$u{CGRGO-cM<`0PL`P0ppppPTPP`AH`C@@@@H D PK&  2/`(P( MP# H P* P*D% P!*0H R@ R<P LPPAP P `AD`%@@S@@Q 0n P TPL@P 嵆K P@PAA@Pґ   R8 d`  L   +b j a 8 0P /GP3 P*24R 3R,:0PZ340C<à 0cÌ4 CR5  p Ò U 0 #PR4R 34 B2 BR 0p ÒZ/0P R 0 P8 @0<`LPP@P- h `;  0 <P% `LP K`@ c(( P LP PP `LZH \X 4@   +b j a . 0P /GP) P*24R3R":0PZ340C1 0c4 CR5R4R34 B BR p Ò AZH@ `\㌠ 吠 P  K0 P( @ ,L 0$ < H08 t`5/匠 P 1/4@P  1/LPP LTPA0rltpL-M@hQ`5PdPKhhP KhPPKhhQ Kh U  0EP  IKpL-@$ KrL-@( KLrH-  0  H6.000StO-|Mp, `0 4 8 < @ H HK@Q\4@QP@T  2/@8/ $ (  P(K@1(X0,  $5/$P$ P 1/(( P 1/8H@@8LPD &@8P@P 0@p0L`p`3/HP K s#H >4>ttoC{GGO-M `@pP :P! 0P ; 0ش @P # K 0 0; G:ltlt@lCzGGO-tM@`, (pd& P P0  !P0  R H L0#D 0;P0@a  %5 0: V$q 0$Q 00 , $ ( q8 4 S0K8 K @ @K( KP<  Vq 0$QU 00 , $ ( puq8 4 S0K8 K @ @K( KP<   V@ D P%  ` @$0Q 00 , $ ( V@q8 4 S0`K8 K  @i p`(,P@ @K( KP<  Y p@P0D@ +a+6 5j0 Q0[@0P<8 +a+ j0 QP0@$ pr @4`0 +a+y xj0 Q0 0C 0CV8 p@ P S0pQp` RX `@,P P ᑂp(,PBPpWp,P`0 0#!Y`( p$@P PK 0P@$ pC  0C)G:R9CMDP!!","!!!g V :嵉  PPPX<2 d2 KpP! Y P :p @Ꮙ @ p PX /P @L-@dQ[/R /R [P!}LّHr0H-@PPPP PPP1 1 $P0O- My{E<`>MV!!","!!!w!  F  W:"  QU PU P X P:   P  P ! U?jPV@*@@    A * *ZV:F     Q1`F W*Ɉ P  P P F P:᱈P  KO-M p`PZ1 @TL < E>MD!!","!!!ࠗ  Y 0 : { 0 0 P$ X @ P! ^ P : p@Y0 @  PX1 K/R [?S ?S [/R[ P ??0 O-M P 0 @$@P3 p` R $P ??S[?S ?S [/R[X P  w0 P 0 KO- M P 0 P/  R( `p @uP > ?S[?S ?S [?S[ RPPPP [0 KL-T @0 000 Z   șrrL-@H    A   drHrL-T @0 000 &   rrL-@H       蔘rrl /R [?S ?S [Q/H- !7H/s  , %:'@H-M@(`sPBxppQq5 ` p2/ 2/PKsqH-M@(`rPxppQq ` p2/ 2/PKTs qH- SR R R"rS R"r/r"rPL L0 0+ <8  + ,( (0 0w+ :BaHG:@:BCHGH-M@(`'frP9xppQq9 ` p2/ 2/PK P6IxppQq6< ` p2/ 2/PKsqH-M@(`' P7xppQq7  ` p2/ 2/PKs(qH-M`@R R((nP8ppQq8 ` p2/ 2/4PK  u' sTpՈ:@H-M@(`?hnPxppQq ` p2/ 2/PKstpH-M@jw `P#}xppQq#p p`2/ 2/PKDspH-M@(` nP"MxppQq"@ ` p2/ 2/PKspH-M@(`mP"xppQq" ` p2/ 2/PK,s8pH-@(pmPP`Pp Pp 0PApH-@(pmPO`Pp Op 0ۛPA pH-M@(`amP"xppQq" ` p2/ 2/PKLsXpH-M@(`V1mP"uxppQq"h ` p2/ 2/PKspH-Mp@ppp v `P>|ppQq1 p`2/ 2/ PKLsspM-M@GP@ 0vP}`3 0J*0 `i` 07*0 `V`  0$*0 `C` 0*0 ` 0*0 ``p 0)0 p`VKO- MppP@ 0)p`W` k Z 0V   0[Y* W6E`0` zY  P P v Pk0 PWK2GM-M @YPA 0P`E 0\)0 `*{`1 0I)0 `h` 06)0 `U`  0#)0 ` 0)0 ``p 0)0 p` VKO-M` 0p@P 0(0 PPP KP P P P P  0(0 PPKp P P px p 0XK 0 8p 0 0B pI  M p;  4P 0I(0 u PK $ ( PI $ K(0K p K7/ 0*(0 V` K9P  H` X`K8pP`K  K0H-M P@P K0P K00H-MP@ 0'0  K0O-M` 0p@P 0'0 PPP KP P} Pu Pl P { 0z'0 PPKp P PI pA ^p 0XK 0 M8p 0 0P pp   bp  P 0'0 > PK $ ( PI $ K(0K p K7/ 0&0 ` KP  ` X`K8pxvP`KhKpL-P@` "P pLpL-P@` Px pLtpL-P@`l Pd pL`O-\M0`p@bPQ 0h&0 P`P vP 7 P/ LP' o`0 pgp㘳 Pp `YF` P P 0% 0' P  w  p  Y`Z$PK 0,pK 04p 8P P80K 0` } P| yP 0%0 `  P hP     R$`KpP> ;i 2 E,PK[pZFDK"GH-M`P@0 ]`U ㌲ pㄲ  y KHq/M-P@p<`T ܿ @#` &MO-\M0`,@P㴿 0$0 P` P ᜿ `㔿 p㌿ `ㄿ0 p Plp `QQ`X PP MPz 0_$0p p P =.0 px  , p  +  QPPZ`3`$PK 0,pK 04p 8P P80K 0` O:ܾ jPԾ P 0# 0``P f p Z ` X 㥾0 ` H $PK`㐾   ,`Kp?KG0H-M@Pg0 K0O-LM0p @T 0Pj#0 @@A 0PX#0 @@vP}@y %ှ`n @[c &j@`WPS Z@ HPD V  0#0 + (@$ + m@ @P 6 㣽 0"0 ׽@P @@ýP`  yjP 0P"0 @OZ 0Pr"0 ?@ !$P` 0`0  `0` & 0 !LKO-0H-@P< 0HI0H-@P1 0H(0H-@P& 0H30H-@P 0H0H-@P 0H0H-@P 0H0H-@P 0H0H-@P 0H0H-@P 0H0H-@Pٶ 0Hк0H-@Pζ 0Hۺ0H-@Pö 0H躺0H-@PḶ 0Hź0H-@P᭶ 0H褺0H-@Pᢶ 0H诺0H-@Pᗶ 0H莺0H-@Pጶ 0H虺0H-@Pၶ 0Hx0H-@Pv 0H胺0H-@Pk 0Hb0H-@P` 0Hm0H-@KPU 0HL0H-@KPJ 0HWH- R ӵH- MR  ⊶P Q Р ៶P Q: РL-M@S oQ  ᆶP KK0H-P8@]M ᕼPE  P9  P-  P! ܽ P н վP 0H^F0H-@R 〧0IP P ᕹ00H-@4Pߴ P״ 0HH-@MP@˴ t (`p  @0 0,00(    8` pP W P 1/8V P 1/㔴 =K82r 2rK-8M `@0+S' 0+S"P 0+p0  ٹ ᳷ l ˹  D@q KO-M@߳P  KO 0+Sٴ 0+SԴ P0+Sδ 0+Sɴ $K 0>LKp 0pd 0py<` 0prpp 0k  a 0ݵ  f `  J X$PK;  1 1ἵ       p    dp  ჵ\u@G<ECAK 0C0O-M@P  KO 0+S 0+S P0+S 0+S $K 0bLKp 0pd 0p<` 0ppp 0  ᅶ 0  ኶ `  n |$PK9_ b AU g%%  8    ! p  4 B& dp  ᧴ ᙴ@k<igeK 0C0O-MP@=P KO p0+S շ$K JLK` 0`, 0 ``` 0 ᔵ _ ጵ W 0+S 8 P0+S > 0 %$PK``  0+SDz OO o@ 1KO-M`@P KOb 0+S왲 0+S씲 0+S쏲 0+S슲$K 0LKp 0pA\ 0p;4P 0p4p p 0- # 0៳᭳aP $K( LPK    p$K   LK sP $KLK6 ᾴLPK v ᣴ 0`  Ṷ Ƕ$PK ᭴\`  Ჶpp\`*$PK`LpK_@ 4?K0C00H-@᝾P `0H^0H-M P@0P puK0 `K00H-M P@P PK0Ѱ *)K00H-M P@P Ự P㳰 йPCP ,PK00H-@P5P 0H0L-@LSH-@MP`@ؿpԿ H 0 P ` (P`,0(    08P `Y@ V P 1/8U P 1/K r rH-@MP`@ᔿpᐿ  0 ` P (P`,0(    08P `@ V P 1/8U P 1/KrrH-P`@QpM `   HFH-P`@2p. `   H'O-M`LK@ \ 04P 0  0pDK 0  0  ጱa 0 0{P4LPK\p4j a X@ *(&KM-0MPp@` 0 00ƃ2KO-M`LK@ \ 04P 0  0pDK 0| 0 蓃 0l 0肃㧯LPK$\p#4ݰ ԰ ˰0@ KO-M@XKP` 0 0p`㳮x 0pPP 0p ( 0 ``㗮 ᫸`㏮ 8 0hv8K ᶯP 8x ŽPp ፷ p0TT"0P`K  040 08 L P  @p( @` ?P@V P 1/(Z P 1/XKdxd(Y 0+SˮP$0  m V$$!040   8 L P  0 p( @` P@V P 1/(Z P 1/X`KxPӯ8@(PK rrr|rM-PMpP@`㾭 ҷ`㶭 _ f0W e0 0 P@ `0P0PK,0 00  $  @ P 0`@0V P 1/ U P 1/Krr0H-M@Po0  ḾK0O-M`(KpP 5x PKx0K xK 0X@ 0zv  $ ?0@ 0 0㦟 ԰ 0 ƳᠺP cb(@K1PpK0  ᩳPu ٱxK 4ͮ㈭X@{ ᴮ P 0~ KO-Mp@@P 6PL K᤭Pc LP_ݬf$K k ` PwLK 0, 0 PPP 0 0N \+ .$pK K C᭬}}8@  _ 6 ᏴᎬ@KO-QMp(K@ P `0K 8K 0K`K ` tAP< ᑲ `KP 0Y@ 0R 0ȭ֭` 0C` 0= @SP ᶰ ``0᤭Ჭ (K `K ᥭ N8`@ 0@ @@ 0 ? 0wᅭ@ ᾿`PK὿xȫ ᱿᱿DB`@ >눐K c/0Kᘿ %8`KᎿ@ ְ  ~`PK}8 @ _] [KM-M `@+p3ᕝxᕝP  0;VpὫP0 P0  KhCO-Mp@2 ᕯ DPK` 0`CT 0 `< { 0᫬Ṭ `P ီ ῿  ᠬ`,Pp 0ppp 0 | 0lz m ሿᮾi   h q `^ ᷲᶪ@TDKK0H-@ᚹPC WP; 0H0H-@ჹP. BP& 0H0H-@nP -P 0H蹮pL-@P`  pL覮pL-M`@P 0  0\KppL-M`@ 0P 0 tEKpO-M$@K`0p0 ޿LPK<0 <@e aᜫ@㣩0 @I A ᜾㍩0P Pֺォ0 P̺` ` ኬ` է0 @ʧ0 p%E ᩬ  㵧0 p0 ᑲ p$ Ϋ ۼ㔧0 ޸p㊧0 Ըp〧0 ʸ # ᶼ㵧@p g0 屸  0KO8O-MDK`Pp 0㯽4@ 0@姽  0 @堽@   08 ٧P $0 mP_ «D D㎙8 8 XP ý ´K/0H-M@P0 3@%d K0Hƫ0H-MP @Ҧ0 PL ᭱ K0H)0H-@P< 0HH-M`P@᪦0p p`㟦0 p`㕦0 p߷ KH6pL-M@ɦP0` {0 ķ KpLK-M`p᫦@P ]0 ᦷ  Z 0KKQpL-M@ᇦP` 90 Ⴗ KpL٪O-IMp K@( [P qP$'7 0 XPK&(K6P T@  HP 0X HU P 1/ 0P  00PK0 ύXK 0DK` 0`=p0 pP`6H pP 0,p`+ @(`忥 4 úP(p@ `ᮦP @P 㝥 0 P勘0K⿹ΌpPyN,phP(0 ᛻Y49 p`p 0pػ,@80 8Ppλd  x 0=K(pT  pP~~9 ,  h☻ ;0 `ѩXPK0K m(pp &P pP_"4eT(Pp p P pPF UT0 4P呗 CB0 ؗ 4P0K  KŦ 0ᡶ8p 0U9 p`P 0P$P@P$0K $p h ( ᾨ 0ጦᚦU0 s㜤 ᙫǸǸႦWU8P`ㄤ ၫҳ0`K᫸p᪸eʺ@ᒺh␺3K1XK/ሺK0, ,0 0 e:hBFqFŵFy9.aBF0H-@ @PH 0H輨 H-MP|@`Cᥖᡖp( %@0 KC0H-R*@P 0H 0 0 -9_BF0H-@P 0H0H-@PD 0H@pL-@P`2 ުpL.O-MDKp @P  0P`0\ 0 P)4 0`#  0`d \ ᷸`㤣 ḭ`㜣 E 0u ქӣ`ڲPֲ .0 ^ l '  yj0` `峴 _0 `婴Pڕ ;Pҕ H Q  4 E60 `倴P,0 `vP㧕    0 0  `[4 P0+S쩣`Ӱ ;P 0ڤ 8 "0Ꮥ@㚣 ᒧ 0¤ ᨹ ᦹ\⤹DK⢹K 0H-MP @̢0 PF ᧭P> K0H貧pL-MP@ᬢ0` `P㡢0 `P KpL~pL-MPB@`ቢ0t ҳKpH-M@P`Ƥpu0t ᾳKH-M@P`ᾤpa0t ᪳KpL-MP@`P0t ᙳKpH-M`@Pp> ᆩ0t ჳKpL-M`P@P %0 nKpL諯F0 _P BP KpPP KppL-M`P@ᅡP 0 2KpFݡ0 &KpLpL-M`P@aP š0 KpLKᶡ0 P P ᤡKpP㛡 ḪKppL-M`@PaP Ⴁ0 ˲Kpv0 ῲKpLM-M`pPP ]@ޓ 0EP@Ѱ 0C pCP P| 2 ዩኡ 0KpL-M@P0` `e@0 `[KpH-M`P@0p pJ`0 p@`q KHӥH-M`P@ޠ0p p'`Ӡ0 p`N KH¥H-HMP`@ p㸠 ̪p㰠 Y 0 ` @Q (PK`$0 (    0P (`@(V P 1/U P 1/KqTqpL-@MP@n0 ᷱPᴯ`_ s`W  ` @ 0 (P 0,0(    08P `-@ V P 1/8U P 1/Kpdq8qpL-@MP@0 `P]` ` ᩤ ` @ 0 (P 0,0(    08P `@ V P 1/8U P 1/KpPq$q0H-M@ P0 K00H-M@ Pᰟ0 K00H-M@P᠟0 K0 c0H-M@ P᎟0 װK0H0H-M@P{0 İK0 >0H-M@ Pi0 ᲰK00H-M@ PY0 ᢰK00H-M@ PI0 ᒰK00H-M@P90 ႰK0K-@M`Pp 0㉵0 hp@  0 p$`@0 L@㩟 ᡣ 4H@ᳵKO-TM,P@`p  0p> 0 p7 pɞ ݨp j ų p㲞 [ ᶳ@㣞 ᷨ@㛞 D ៳@㌞ ᠨڭ@ᳲᳲ n᪲᪲ eᡲ ᡲ 4 2K0H-M@P_0 ᨯK0H0H-M@PL0 ᕯK0Hҫ0H-M@P90 ႯK0H迫K-`MP@&0 o$PK0 7,` 0`xp0K P `p;[O` ` ᛢ B`0 .`ڝ0 $`U Ṣ  `0 ᦟ @xvϳK0H-MP @᠝0 P㒝 ᦧ K0H0pL-@MP@ၝ0` `ʮPv0 ``   ` P (P  0,0(    0@8P `B@ V P 1/8U P 1/KpHqq0H-M@P,0 u@ ҝ K0HȡO-MP,K ` TK@ 0@q|K 0@k\ 0 @d4 0@^  0@W0p p6`3ޜ  @֜ |K ٱʜ0 p@0 p @; ១ ằ0 ᔡ4 0ᄞᒞ㜜,K˰TK˰ ᆞ$ KǝP $ቜ ֫@ぜ ឥ,K᫰TpK᪰\e <@Ci } ᐰᐰ4KU 0l0 ᗭ@$ KzP $< ቫ@4 Q,K`^T@K]V ,K{@ ( !,@KlP ٲ4ײ\ղ|KӲTKѲ*K0H-M@P0 DK00H-MP@0 4P P ٛK0%PЛ K00H-M@PÛ0 K00H-@P 㲛 0H订0H-M@Pᦛ0 K0pL-M`@Pᕛ0 ެ`T ㈛ 1 ጰKp/0H-@ʪPs ᇥPk 0H0H-@ᵪP^ rPV 0H0H-@ᠪPI 0H0H-@ᓪP< 0H0H-@ᆪP/ C0H|H-P`@tp Ɵ !eP "H[0H-@UP P 0H负0H-@>P ᭤0H6M-M@P`pU  PW* W ƚ  PPU ᯚKpG`Wgᥚ £`᝚ ᚡK0H-MP@ 00 ԫK0H-MP @{0p pī`p0 p庫ḩ KHbO-[M@(K`P 0PK 0巰xK 0屰ߙP  0ᏫpK 0垰 0㗰-  8x K1"P` _ Pb`  0`0㩚P0 P(PK  Н 0Λ3`ՙpљ0 p彫#`ř0 屫P`K ᫛p㲙㮙0 嚫P㢙 p㚙0 p冫ƭ YKW㉙0 㢯p X먀 S 0ê᢭ Ჟ0 峪ᒭ`K 0 0 幯 0峯Xp 0嬯ᝯP?  CᏯP1  0 p|P ǝx K0 > P` N10 0 _` 0XPHp ᓝ 0Ú њ6pؘ  ᾚȘp  p㸘 aPX0 ᐚv tᚚ㤘P㠘` ᘟS`Pរp㇘ ᄟ 0P`0*pu0 pa(K ᝬ î븠` ΅pa %pY0 pE ᫮`⨮pJ0 p6PKvX1;`7p x /`7ᙊ|ᙊP  0P0Ø`0 ` 7 ]P Z` `0 ` FpPB`0 `Щ 6P3` ՗0 `PKX┮⒮␮K⎮ xPK᭙㷗_(`KPpK᜙@nlŭKBBpL-MP@ᔗ` ՟ ጞ GP04`0 `kKppL-MP@`n0 @ZKppL-M`P@\0 @HKpH-MP@M` ㎟ E`Lᮉᮉp5 2 0`0ؗp#0 p _P0 PKBK-M@ KPp ڬHK` 0`a0 0`[ቖP,  09P H Kږ `K+`͖0 P幨0u 0`#` 0`6 0 `P㣖 L ᧫㘖@ pKê`㋖0 wݬ` 0 Pk0P᪪eo  H Ksd ᐪᶬ`X0 DᄪHPK<F `Kq0pp+ᐬ@TKpL-M`0@P =0 F Pd,\h8@,Dp   KpL HᇣP JIKp  2t (&Kp Kp   Kp KpLT  5 9&@M-MDK@P 04p` 0`  0` h ᩙ 0esP n` KyP PᲕ ›` QD Kj IS ᬝ᫕{ pzD`K4# Phh#ራ@P4KO-DM @P0p pb`0 pXV  @` D Ps p,,,,PP8,   0($K ᶪ 0p<0 pp pỖ p፫ p 08K  00 K㦔0   㔔0  ݥ    9"@O-M ` PBp@ U  0UC0!$$.P z@  0k0  @9K  0\0 T   0KOܥ    KO  락9 @K-@M KPp @ 0`s 0`` `XPŪKO-lM0 P0 6@  ぜ`Փ  uɓ$pK0 0,K ٩4 0㱓 Z @㴨㥓0 @Χ1P& p 0㍓ 6 ᑨ ん0 @̤,K⫧᫧f;n  4 rP8_,@K`ᵩ ᣚᆧ ` 0㳩$K⤩pF  Jᖩp8 ယcc&$`K@| jM4@Ll`@ 0្P @,KV 04⾩,K$KK0H-MP@ 00 *K0K-M@P p`EcP  0```XP  0K 0KKH- M 0 0  Р0H-MP@ 00  ڣK0K-MP`S/ pP  0ã@'7b ᐗf c0 ᫣@܄ @ [ y 0ᖣKK0H-MP@80 ၣK0H-M@`Pp& ` 0 pdK0H-@P 0HdpL-`P@ 0pL袣H-`@Pp IP  0H舣pL-M`P@ԑ0 @Kp0H-M@Pő0 K0O-dMp&Pf$@K ሧߥ4` 0` p00 0@`ϥና`㑑0 ڢ 3 Ꭶڧ` |0 Ƣᥥᥥ`ŧP20ቧKH-M`L@PYp R`pL ᥙ`D A0 p劢K0H-MP7@/0 xK0K-8M`P@0 g`đ ἕ $K 0#p0K  c0 CP 㠑 ᘕ +0 .  Ȓ-@ᚧKK-8MP@Đ0 $Kp 0Ԧ`0K  㪐0 P㠐0 P  ҥ㋐0 աᴤᴤoԦ@AᚦKpL-MP@`j0  @VKppL-MPB@`Z0 @FKppL-PB@`K 0pLH-Mp P@`@P @51 y 0ҡKM-Mp @P`!P @ Y0 PKpL-P@` 0pL跡pL-M@Pᢐ`0 `١KppL-MP@`ݏ0 @ɡKpM-MP`pd@yG`ď0T  `审K 0KM]pL-MP @`᫏0 @嗡KppL-P@`ᜏ 0pL@pL-M` P0@ 0P  0KpL' PjKppL-M@0`P 0  @UKppL-M` P0@ q0P  0KpL P5KpK-M` @P90 傠p㳁 p㪁   )0 d`0 /`㉁ `ぁ  KK0H-MP @0 4Pe ƙP] K0HѓM-M`@֐ Ǝ0 p@ ᡙP8 ᮓ ᷣ e) ኙ KM#YFO-DM@0 0K P P Pノ0 ̟p`Y K᫏P m"ẝPᶝ b὎p᫝`᧝PᢝPM jP E`p *` |  pPኤ  0P VTTKpL-P@R  㸖 P pS 㦖`@H  O>`: AP$`+P' Ӕ.pO-$M0@ 0я `PV p  p E ᱢ  0V ۍ  0  `ㅍ  0*KQXFHWFO-M@0u vDKP 0Pɣd 0Pã\ 1p O0 嘞` WP Z p tP 6 ნP. KP T0A 0 i0L 2lp XT` Zp P P@  ON` pLPDa0 DK HLH{`D<`@/PF 0  P0 0<0U P 1/1/T PX ᭍P P 㜌 P\à ㎌0 PzdẠDKuTڢPX ~P P᷌ m ƔŌP\ᓠ ^0 ᧝pᤛ`᠛ ᗓ᧌p D0 P0 ᖢ PoP 1 ~`) F  `! OOd \o@LX@5T3\1dԢDKҢKSF qO-4M `P, U@Z 3PpT 0 @ )p 0P 0x@  `   (@@:(T P 1/K{SFqO- M` P@pQP㚋 ᮕP㒋 PP ᕠP PK` 0@KM-0MP@p 0ʡᱚ`\ p`T  XI0 ᒜ`  0%KK-`M$K`P ,@ 0@僡p0K  @{b@ !@ ᮏ 0  C ""݌ᩚ Ό 3@ᠡឡ KO-,MP0ͽX ΌV`Sp 㸊0@W @pV ߋP ᡊ p㙊 ᶓp  0᭠㌊0 ֛@0 ហV {꿊 pϠp 0 pŠ@   0@ 0oᲠ@V KVP PᏊ E ធᝊ@ :0 @&W UK$IFM-MpP% `Ί@0 @0W 0Მ KH-M@pP`0W 0KH薛 PٛK0H-M@Pމ0 'K0pL-MP @Ή ;U`uP0 P嬛Kp0H-M@Pᰉ0 K00H-MP@ញ0 K0H-M`P@V2 ᆉ BP/pz0 pf᷉`m0 `Yd``0 `LK KH/eCpL-@MP@ᐉ  ` @ 0 (P 0,0(    08P ` @ V P 1/8U P 1/Kp,qqO-M,P@(K ܞPK` 0`paX 0`[0 0pU 0`O+p2`. ᆍ K P ˈ `È  0`㴈 Ȓ `@᫈ ႌX0 0ႊ ᐊ YpF`㑈0 `}㈈0 Pt`{0 `g(`Kᣜpᢜ] 0{ᔜᔜPPKN  ᇜᇜB᧞@ gKcCH-M`P@BV3 . PN׈p"0 pl`0 ` `0 `K KH諈_CO-M,P@(K ĝPK` 0`pIX 0`C0 0p= 0`7p` n ɜ KP ᳇ `㫇 Ȑ 0`㜇 ᰑ `@ᓇ jX0 0j x ApN.`y0 `ep0 P\g`c0 `O(`KዛpኛE 0y||PPK6 oo*Ꮭ@ OK^CM-M`p@ PƇ`0 `0 p`0 ` 0 ޘ0 ԘKH- M 0T 0 РH- M 0S 0 РK-M`p@  {Ph`㳆0 `埘㪆0 p喘㡆`㝆0 `剘 㔆p0 }㈆0 pt   0&y 0KH- M 0 0O РH- M 0 0P РO-M0` @ZJ0P P哗`?0 P剗`5 0Pp+0 Pup  @HKP 0P`y@ 0Ps8  0K Pgx  pzx  ox  Аpgx ݊@0 ẇȇއ pO` P 0P ᮇć P 0P ޙޙᙇ @k ě gHKeKk7F5F=5F0H-@ᑅP 4 ቌ-Pぅ <0H.0H- P@ pPh <0H0H- @P W@O 0H<K-M@C  ьP; 8`3 ግP+ ( P*<˅p0 p P PJ  YX`0 `2`p 0p0 `͖؄ 0p0 `徖  ͅP P 㼄  `㱄p 0p0 `喖R`㙄 0p0 `Є`ㆄ 0p0 `lȓ`s ppk ᳋ d  0K2FH-8MPp@`]pp` pv  0    K p W P 1/K0F|rqM- M`P+p 010 p]p @P  Op p y `0 ,p P у pɃ p@` 0 p@K/FH-MP`@൅㥃0 -p㗃 p N`㊃0 Pv0KN-FM-p`@ ἒp@f cP ^`Y ᡊ 0M,FK-M@`E0 ᎔͐P7 ᐋ Pp*0 @  0KO- MpP`T!  0 @X4 0 ZE   0K@㔃p߂0T  pɔ 0{ pXb@wp‚0T  p嬔 0^pZ  0KOpL-MP@`ᢂ 0KpO-|MP@ᜄ ㌂0 ՓDK 0p`p,p 0ۘ 0`՘t Q`t ^ g d T   0DK:Pt ᩈ` 80 `$/0 xᢏp! z0p%  0C   05t `}t p D`K ۃ+ 0t̓ᢘ,⠘មK)FT(F(F'Fv'FH-8M`pP@ā P㼁 Ṉpe@`` `t  0     K  ` V P 1/KlqH-M`D@PpᎃT| 0K%FM-M@p P)`qa0 @M X0 pD@pH0T  p2X 0X 3 0sK_%FO- MP@p, ` V0 1 0 @ V S@0 @ P6`0 `֒P   P P р  *)ƀ0 岒@K!$FH-Mp\P`@ὂ ᪇`Sp㞀0 p劒㕀0 P偒P& ㇀0 Б`€pɏ`ŏ q̀`i0 `UKHj3$Fدrt9O-M P`p@YD KOP DP D KFPH DP6DL [P% LP" ;U) 0p`̀P0VF  PL /P LPDK 0p Dp@PY DKP 0PVL 0PP$ 0PJ 㸕Y`!  ݀P P  ` 0s ` P `PpP ULP$0 ᄁᒁਁ PU 0PὓPp3~0W  h  0DKᢓ$]  0P P5p厓U W0! !DPK~9@᝕pe$L~0  K0 FFO-DM@ p`PP 0  bP` P$@P(Prq , 0( $ ,K P R(U P 1/K]qO-Mp@~0P P)` ~0 P`Pq ᱉ .`~0 P R~0 Pp P0P7`U  P P~ ~ ~pdX{~  0Pq~ 0KxFO-MM,K@`p  P54K 1V$`Y O~~$U6F~0 ᏏPY \ KpP \2~$P{ r~pP~ 8$ _P\K(PP 0PqK 0Pk 0Pe|T0 4`KX`PPT[}0 P(P:XY }$~  ` ⅂ K P4K) Pp6z~  p(Po\ Kʒ㦠  \KpTp,0 4PK,PP S~ K 0{VP`Y(, ~P ,p($ K~P $p`W``, 0PړVR  0d, tq4K⼓p 0p啸P,Kሑpp0$(` P` N|y,4J4K╓  0nP,Ka 0PP` (|!`'4Kr` 0`KP,K>p$0P(P P `|0~  }4K!TY |,}$ ᥁T ,K | ,⠓T➓ P" \K~$~4K" 0`P,K$P B0|PK~~T},`Kѐ|pА~@][Y\KW4KⰒᮒKF F`F^FFO- M P@y|0` `n|0 `帍pd|0 `宍P Z|0 `复Pn 6 㴅`{PP >|| !0p-|0 v hP*~Z| 0P| 0᳍KFpL-@0` P pLO-M P@}HK 0pM4PP`UV VpP n{pPEFoo p ]{P$`,pP '7{?nPZ`p  U { W  `!0{0`! n `4 0({ ኂ0U  ၂ϊ`PɊ Pt{4 0PpK0 ၑX`K 7,P PKⳑ(  0pXK⁏`0K \` `p 嬑,PU Ꮚ ᆂPKᐑ0 `H K0}}ၑYp` { h JU XPKlp$P` { S 5``p 0pPa8 0pZ$pWPPPKPE (! 400P `0pV[ ႌ `W0  00p`U$8|ZzP  0 P 0P奌z  ᭁ0 P嘌`؎``|  ^pHPK 0v|8\Z|T|QXK⪐PK⨐KK  0 0 F FV9AX FpL-M`@PS  k{P Pz Zz ᳂z`Oz0 `;KpM-M`p 0PX pBz@.z0 @ 0KM-@M`pPz@ P(@yl ( 0$    (Kp`@M(T P 1/KIqM-M p`@0 P  0RPP#  PW xz p~ ˎPVyPKy0  KM-0M`P@ 0y0 ݊p :z 2~ ፎ /z =~ ႎᨍc{8KO-DM`p@n{ Y ZyyP@ pp(pJo$k , 0( $ ,K -M(W P 1/:{K;FGqFO-dM$ ` @h2h 0`pR W0{Z p p  0 P`"Y P` 0  0 `Ὣpẫ$`K  0Kk( zP, 4P `0 x8 P< `Q < KyP 8 KyP 8<Ao% ` 0RS ##$ $K( p4K8`0   1/$KU0P KFmF3FDqO-dM@(K00P P  ᐎPj pU GZ* 1`Y (Kp  U`p0p(KW*0" GBQu*PCB"E1/sQQ h W0 0G!0C B#070V  10`@pP@! p傎pp 0{(Kl | 0yyU0(K (KW P)  K2/U0(K (PKE |0`p 0yy5@ᢎ᠎KݔO-Mpw0 `Rw@ PT.  xP w `w  `xP w Pw ᪀P `  0@KO-M `pyP@ U jw  g~  { j[w  X~:w @ ᡆ P `囆 F~w`ᎆPኆ { =twP{`P@t  ~zw @0  P@?KEO-M`DK p 0eLK Ҍ\P 0Y4 0R9@v @v { 0xxᏆ DKx  0!v0P P@]w U{0 x xv0  P ƊDPKŊ X~x @P\N ᧌JK0H-M@Pvv0 ῇ@w K0H{O-M8K`P   3@K p.`80@  8@峌p8p0 @嫌 s s .xP 0㚌 ዌ @@KZZxh0K_ 0zv0$K $ ( bm ; ;ΌwYPƌ Č K踻oO-AMᢈ ]vgt0 ᰅP u y _Pt0 嚅Pf /y Jf $y< ?f4K` 4t0, ( $ (Ksk<KLX [tDlKD<u t0 S<K2CtlK,<us0 ;<KlK dPus0  &H =`u = ჊<⁊} {<KԉKo0H-M@Ps0  K0H O-KM@ᗃ`SpHKP 0PpK 0PK 0P눀 0Pډ` 0 PӉ  lv 0EuSue FxHPK ᘈ 呂pe vppK0 $u 2uqX (urP P0 .tPD 0P@gsG wyp 0P 0u` 0m 0ttpK0t ჀMsXKᰉᮉ`r 8{7sX`KpPKt X`pKt@ވ`⁉}{HKyKO-M@<K0P 0ᾈdpK 0넀` 0`\ 0` ؁r  |`{r $w 0Ttatkr0p p崃``r0 p媃4p`P 0P师d u\0 &t4t p 0P塈r  v`r  v | /d4Kd 4{r0(K `,(` $ di<K= =sQ qrpBr0W  pd7r0 ds Ⲉ4ⰈdpKsQd4c 4:r0<  ` &inPn` m0 9 KpLrO-DMP`@m0 $Pm0 m0 `m0 pm0 ~p,` 7q (pP 0 ,0(    0 `@@8p P}` U P 1/8W P 1/ rKqpqpL-MP@dm0` `~PYm0 `~P_ KpLppL-@MP@|`?m Sw`7m q ` @ 0 (P 0,0(    08P ` @ V P 1/8U P 1/Kp$qqpL-MP@l0` `@~P l0 `6~Pg_ wP__ KpLq0H-M@Pl0 ~@sm K0HiqpL-MP@l0` `}Pl0 `}P%_ KpLq0H-MP @l0 }P@ _ nwP_ K0HyqpL-MP@sl0` `}P hl0 `}P@^ DwP^ KpLOq0H-MP @Il0 }P^ $wP^ K0H/q0H-@AP^ 0Ho0H-@P^ w@^ 0Hp0H-@P^ v@^ 0Hp0H-@P~^ v@v^ 0Hp0H-@Pk^ 0Hv0H-@P`^ v@X^ 0Hp0H-@ PM^ v@E^ 0Hp0H-M@Pk0 |@.^ K0H7oH-MP@k0p p|`k0 p|` ^ o`0l (p KHv0H-@P] 0HWp0H-@P] 0Hn0H-M@PXk0 |@] K0Hn0H-M@P@k0 |@1] K0HppL-MP@(k0` `q|Pk0 `g|P1] KpLopL-MP@k0` `O|Pj0 `E|Pv] KpLopL-MP@j0` `-|Pj0 `#|PT] KpLo0H-@PH] 0HopL-MP@j0` `|Pj0 `{P'] KpLo0H-M@Pj0 {@] K0Hqo0H-@%P] 0HfopL-MP@rj0` `{Pgj0 `{P%\ KpLDopL-MP@Pj0` `{PEj0 `{P$\ KpL"opL-MP@.j0` `w{P#j0 `m{P'\ KpLopL-MP@ j0` `U{Pj0 `K{P|\ m`t\ m KpLtpL-MP@i0` `'{Pi0 `{PN\ KpLnpL-MP@i0` `{Pi0 `zP,\ 7m`$\ Rm KpLtpL-MP@i0` `zPi0 `zP[ m`[ l KpLtpL-MP@`i0` `zPUi0 `zP[ KpL2npL-MP@>i0` `zP3i0 `}zP[ KpLnH-8M@`P 0}[0 ,Pi0 Qz`6i m1` }h0 6zP(ip/xP+x m }T[P||j@~K0H-M@PPh0 yP6Vi K0HLmK0H0H-M@Ph0 y@69i K0H/m0H-M@P{h0 y@!i K0Hm0H-M@Pch0 y@p i K0Hl0H-M@PKh0 y@h K0Hl0H-M@P3h0 |y@h K0Hl0H-M@Ph0 dy@yh K0Hl0H-M@Ph0 Ly@h K0HlH-MP@g0p p4y`;h l`g0 p"yPh wl KHdr0H-M@Pg0 y@;ch K0HYlpL-MP@g0` `xPg0 `xPZ KpLwl0H-M@Pg0 x@)h K0HlpL-MP@kg0` `xP`g0 `xPY KpLkpL-MP@Ig0` `xP>g0 `xPY KpLj0H-@PY 0Hl0H-M@Pg0 ex@g K0Hk0H-@PY 0Hk0H-@PY 0HjpL-@MP@f0 7x`g k ` P (P 0,0(    0@@8P `師@ V P 1/8U P 1/Kppp0H-M@Pf0 w@%Hg K0H>kpL-MP@f0` `wPf0 `wPX KpL\kH-MP@hf0p pw`]f0 pw`X f j KHp0H-M@P0f0 yw@>f K0HjpL-MP@f0` `awP f0 `WwP+X KpLj0H-@BP|X 0HjpL-MP@e0` `4wPe0 `*wPB[X KpLj0H-M@Pe0 w@BCX K0HjpL-MP@e0` `vPe0 `vP:!X KpLjpL-MP@e0` `vPe0 `vP#W KpLajpL-MP@me0` `vPbe0 `vPW h`W i KpL0ppL-MP@?e0` `vP4e0 `~vP2W KpLjpL-@MP@ot`e .o`e i ` @ 0 (P 0,0(    08P `@ V P 1/8U P 1/Kp pppL-@MP@$t`d n`d pi ` @ 0 (P 0,0(    08P `坩@ V P 1/8U P 1/Kpy|K 07yd 0P1y< 0 P*yP 0pp y i y p*U mP"U g P d 0tddP 0Ps,`KvTKv pdzb  j0 PPsvv|KYdb$ KpccP $Pb Rb jb0v @Uy,PKpvTpKov*dx`@Vx TxRxPx`<xdx|KxxDxKO-MM@T  HpK0 P PlxpK 0PfxK 0P`x 0PZxh 0PTx@ 0 PMx >x`eT l`]T f 0cc(KppKh$p P x`:T l  0$wc wpa0 r` Eb =f v a0 r` u|a0 r`ra0 r uHKuVc$7 wp 'P`w Rhu Ka0 r` su>a0 r`4a0 ~r ]uHKZuhc yw` a0P Pdrpa0 PZr`a0 PPr` .u +uH`K*upKbsSu@Pub jP`9j _ po0P  oȐ  o\Z0 lp [jPj }_PK o n n\iPpi aZZP i`i z^x Kop 0(p븠00 p`0 㴠pp` 0p ZP ii %^ dopP p 0,(K{n{n6\L\pP9Z0` `kP.Z0 `pwk` ~pP Z0 pjkPZ0 p`kP dp `P)ePL dP}L ^x KnrL dPjL P^` n8 [P 8Y iPY bP8 ZP 8Y i`Y b8P 0 p'L dpL ^ n4, 0{(PKmo`opYP{Y 0FoP po`eY0  2m8H[4, 0VmoPo`DYp@Y 0 oP(Ko`-Y0  Ȑ Um``[P p 0pxKBm8ooo*o (oZ4 s(00K(pK'm`K&m Z$( mZ:o@ ooKooPKonKڊEO-MP @xY0$K nL`Kp 0p!o, 0po 0 po.K \ 0ZZ$Kl lZY+ K`  K b ^`K bcP7J ^PJ c cP ` [X0 PGj$PKl`l=Zn@o, oLK odnKM-`M4`@ 0n 0n m!X0 jiP.J bpJ  ] mePW b `P KXP P0X W ?`>X` l p l4PYX 0mJkkYn@mnnKO-M`(Kp PmPK 0 nH@ 0@n 0K P @mDX@W0 hfPW ^fPqW aPiW \ ml^W0@ @phP QW0 @@h jbd _P:W W` Ja  0HP0@ rhof@W .a@W [PpK lW0 Ph@W [ 7lV0p p9h@V0 p/h p [ l [ l=I   0ܻ0 h(PKj pj XV@ 0DIjjH Xe ^ `eP 0㠻0p pg 9[PK }kH 0  00 pg(@Kj Pj`BXPl@m mmhlKO-M`LKp 0@lTK l\ 0 @lte@V 3`@V Z k4 0olV0 PMg@U0 PCgtH  nY jT@KjLPKj WKH c 4V0$K $  pMii4W>H  Z\ j  0l+H  Z j U0 fTKii~W) 0(HTK@iiGlmW`k@4>l\4K_ ?4K0, ( $ (KB_dK_d`dMK__ 0b<.b,bRMa@$b"b{aKxopL-P@`= /V pLTpL-P@`9K MU pLSpL-@ PoS`$K 8U pLTpL-@P P`P P W{=`=0 pL\ PpqH-@P' P`P P /S=` 0[pY= =Q0 H\ PqpL-@P@=`<= O pL_O-M0 pL`PLDK@ 0@a\ 0 @`4 0@`  0` ^^ lLvJ0 `[@ ^K O k_\J0 ``[<  M _FJ0 `[@.< "U`< OD K8_< U`<  O $_E<  N4p _M<  N _@<  T`{< N R ^`^K I0 +[ p ^ ^D`KKJW@I S iR]] @K9<  N ^ I0 Z]]d`4b`\``^`K~LEO-dM@(KP `_00` `_ 0 `_X`qI S`iI N m^^I0p pZ`J M ^HI0  pZ`CYX :L v^V(K^]0^] K KZJP I iXPI 1R(PK>]0`=]J]_@__!_KO-4M P@tc;0'P:]Pp 0F_-X`H R`H M ] KIPP` HXP`H ` PQH  PM ]H  EM ] \\P}J \\L_KpL-HMP `@IP  IP QjH@3 bL 0` P (PK`$0 (    0P (`>@(V P 1/U P 1/KppppL-HMP `@_IP  YIP PH@3 K 0` P (PK`$0 (    0P (`@(V P 1/U P 1/Kp~pd~ppL-P@pGP YWPU: R`M: $S  NP A: ;Q RP5:  S MP): #Q RP : NP: Q RP : pLiRH-MP@Ι9`9몗9pGP VP ?P[KO-M0`@`IPOG 0f0 PXP\ KuHP \7G VP/G LPP&G nNpTP`T G` p$QPGG,K 0]\`K40K4 p 0p []#[#[HC]PF PrNPF M 00 Xp rK [l 0"]D` 0] 0 ]UPF PPF GK 0wHH$ KGP $F UPF O %KPl0 SH``H K q[bF0  W [I 04H]D]>H,pK\`DF AMoZ\ 8M KPbZ\`KaZ\\K\KL?EH-   ࠦ 끅8޼ApL-M@P`F0 `0KpH-@M P@pͣ`E ^J ` @ 0 (P 0,0(    08P `pҊ@ V P 1/8U P 1/Kt|pH|ppL-M`P@@8 6LFS0  ҲP@+8 P KpLOpL-MP@`8 LS0  㫲Kp/O-DM@`PwEp7 KR iLdE`7 KR VLP Q 1/` ` `  2/ `p 8p寴 @V P 1/p 2/(   08@1/ Q P 1/KypH-`XP@pG@{7 O ZN0 H6EO-dMph`FPW @D0  @pN7 I Y5EpL-HMP@ D0 UU`A6 G $0 P (PK `@00$0 0(    @P (`Ԉ@(V P 1/U P 1/Kp@upupO-lM 0pPC0 UD`@ 0@Z 0 @ Z'6 N@6 H 0 @rE EC0 TWE@5 ^N L`0 A ~pUE@@W 0  `ZDZK0EO-4 F 0CC 'O`CA K EJ`4  L JA0p pRO HzA0 pROp ` 0`W`` 0PW 4W@h@0 PW  E 0,C:CPC@A  I@p` 0`W 0`W3  $F 0CCA  bH`0 ^R=UK=UBA  JH0 GR`@0  P0 ?P`+? C 'T >0` `)P(KSPK S@@>0 `PP`Vr? jC S > 0PP`11 I`)1 C PS p(KR R @>0 O`+0? (C S t>0 O`Mpe> yHp]> C SR>0 OpH>0 Op0 A zS3>0 }O(`K[RPPKZR T@ThT@tT@xKTT8TKnK-(M `@ B p p$@` B@@KO-M$0@( ,@?(K S0K SXPK 0ET`K 0>T` 0p7TX S0 0-T$ $p  0(o? TP T` 0ЪXY Q 0`0pQK?(KSP0KS`? 0᧪ Q  0㔢0 NQ,u?Q`U?(KSP0KS $ 0QB? `,pPV SwQS` S ((,0&fQfQ0SXRS`SKSXKS0KJS(KHSKEExEO-yMA`P@/ @ R  =0 SNP/ G cFHpK ` 0`USpPK 0`NSK 0`HSK 0 `ASK 0`:S 0`4SȐ 0 `-S(p`T YK pp0$p(p,P0P4  8<@DHLPTX\`dlhR><p0 M` ZP @ Q 0嚡0 M`"= AP 0 I>pKW>a<0 M` #p @ Q 0c 0ᴩ  nPK)>3< ? 7Q` Q#<0P PlM 0@9RK> <0 PWM g@ QHK.PK= ;0 =M M@ PKP= ;0 #M`;0 M`J. F`B. @ P;0 L`  P@  0~=p=; Z? PORRPRKNRKLRKJRpKHRHKFRK8j0H-MP@r;0 LP- MFP- K0HX@O-MPP;0 L@;`JpJ ? APx;`J@{J ? .P;  0p-- @ PI- ? PN- ? P0{- ? O9p- ? OKOOO-YMdPK@0`  06QJp: Dp: i?p0 <<:0P PK`:0 PK`KP 0P- P!> 0j<x<`V - h? OK?Q딐K IPK `DPpK 0PPPP 0P` 0 A< 0PfP` 0_Pp0 YP0pP PcN<PP`H 0PPP P 0~PoPpKlP4K(p $ A< 8P P7 8 K40K0PKp<K0,0K ( K $KP7/ ;:u, >H +O`K>PP90p p)KP90 pKPP, l= OP 0b  ;90 pJ`\: T> N90 pJP90 pJpM`MPMppM GP EPCPOO POKb;嘐 0O0 O0 |O$PpP 0p (`pOM@; 0pO OPOpO`KO0K$P 夠8 4 Pd $ K(0Kp,K0K4K8K 7/H;봐 vO`90 aJp9 = N90 LJP80 BJ똠` M MPMp`MOOO N NOKOKNKNdKOKUO-OMp(K @  0NPKP 0POxK 0POK 0O 0P O80 I`0 N`@80 8`PNLz:8 0 PN 0PNN@s80 IA*  < 0B:P:*  C=`K ]M N80 IP$* *CP* 7= 0: #:-80 wI@8 pnO-Mp`  @Z'  10P PC`10 PB`.$ <`&$ 6 F 10` `BP10 `B@ 8P 0㔖0 zKO-TMP 0@f10 B`p PP UP10 BpP 1 Pp5 FF  $ E P( 0G(10 qB` KT2P! 1)pW  1W0 ` TB`( 72P (0%F@`P0 P :$  `M5P-( ,-@`P0 P9 pU(@`P0 :P0 Pf5 E E0P$`  $0mP ᒹp@Pl $0  Ufr  00` `APt00 `AP" P;P" ]5 fE W00 `APM00 `A? A7$0 ᶛ(PhD#2FK$ 4 hEU P   07$0 p匛KO-M@,K` PETKp 0p_F|K 0pYFl 0pSFD 0MF Uj y4TpK|0K 11/0 APP   0P /  ?p/ 8,K CP 0 F 4 D0 Dp p,KCCy1YP /P   >ǂP/  0Ph"p`>Pd/ x9P\/ 4 _D,KCPC<1P9 `P# >/  ;6P$ K:0P $Ps/)/ 7/ 3?`/  6P /0 P@l`EDKO-DMP`p / P WH WB W P WP 8Y0I.0 ?@ 0D.  2 :C+.0 s?@ KV/P . PH PD]=@. %7 P  -0 E?@ K(/P - 7=@- 60  @B/D- 0?KDO-M `P/DK@ 0@D4 0@D  0@D ~ @<pO-  7-0 >`~- 7`v- 2 zBk-  h4c-  w7` 0s>U-  i7 14@ TB 1 `DpK 0/,/  1 0/ /*- 0s>@- 1 0./,/CCCK?DD0H-@OP, 0H7K-MP, 㭈p-@,0 @>,@, 5`O, 6 6@ -P P- , 5-@,0 @>,@,0 @> ,0 @>,0 @x>r`1-@|,0V  @f> 0>}@d,0 =`Y, 0= 0#>  0f 0=KK-M@P7, p,`+,0 `>", 0=  04 0=KO-A\p 0A4` 0A:PO+ c5PG+ / 0 -.- ` 0A :P-+ A5P%+ / a@@Q p0d`\:P  U:P`P: . H:P``?:P ;: . 0,  ,z:LK?*0  P<TK>DpK> A4,*0  P<> ` 0A 9P* 4P* A/ ? yO:TPK>>s,}*0  ;>>9A_,Q@ `p8`LK@PTK@ -LK@PTK@ -LK@PTK@ -LK@PTK@ - 0,4@\@TKS@LKQ@DK@K  ৊ 8x>O-M@\KP` 0y@K 0s@K 0m@K 0g@K ?K ?K ?K 0 @K 0 @R`ၥ pPW !* >spP AIoK0@!+@=+K@pK@S_K 0@]oK 0@(p8p) 3p) C. 0s++e 0?[_ 0?Q` 0`?G 0 `? 8`k) 3`c)  . g>X)0p p$:`) - P>A)0 p:P  .Q/ 0++ p >`@V4l( h8$P $ _8(P Z8 ,$ Q8(P ( H8$P C8 ,\ K0K*[*  x8K =(0  :K<K[o 0> 7pP( d2pH( , 0!*/*Q 0>GP 0P>p 0P(`>(  , '=(0 `9P ,G_0 p)) '0  $@9K< !w7K<K<)W! (<(P(0 @K;K;)(;'P'0 @K;K;)` Q'0  AK;IK;Q>GO>QM>[s)}'0 8QP 0=Go 0= 0= 0=(  + Z<K'0 8  ), D<   * 0 )Q)` 0=| 0 =Tp 0y= + <'0 PO8P + 0((  &( 0P P08K;&$ 0 P$8K;K; (X  ':'PPf*&0($` `K:K:T( PX &: ,` K,&044P 4K0  pAK:IK:TL=|J=H=Gn(뤐 0 p<|` 0p<PT 0p<, 0 p< 'p + ^;O&0 7p -+ H; ) 0p( (U m&V:g&`Pb&0($ gPK@:K@:|'0 G&pC&0 L&:K&:T'Y# /& :)&P%&0 .K:K:,'& 9ꀥin &P&0 K9K9,' P 4K` ]4&`0,(K(P  $ @K9IK9,^0H-@@P ,.@ '( 000HDiO-KMHpKP0 09p`K 09l2@# +-@# ' 8#0@ @ L4p# ' 7`V  "0 @44@K 0C9p 0<9` 0698 0`.9 0'9B ^& 77 B& 7, '  `7  '`0 s$$@ q-p l' 00hp81@1 4,"6 6 S$8@ "p1@1 ,"z6 z65$8@@"p1@1 +"\6 \68${8@0c"pj1@f1 +m"=6 =6 #\8@D"pK1@G1 +N"6 6 88`88K8 6ppK# ! 0 3 $0 #H@K#  5~8|8KO-M@HK0P` 0p8pK 08K 07K 0p7K 07K ^7K Z7 K V7JK 07K 07NK 07`PpPp !5pP AnK0@!7w52#K7PNK7boK 07 % 66H Kp0Kp#nK 07n 0z7$P`0P ! +P! % 0""~ 0W7Zo 0P7 70P *P % 0"" pK4" 0 2mP 07F 07p 0p 7 0p7K! C% 5X  4p8! 0%Fo 5{ 0 1P $ Ks5 M% h5 #Ƞp0K 1"?"$o 0Kt4? p0  1 Kg4 IKc4"( 0 r1NoKP4^KO4  "Y  0K<4K<4 !s {T\ 0|x  xC44 6 6F6 6Z66n!%/P )P q$J/K4P 0P 6Z 0P6  0PP6F 0 6 0P6 0P60` `0P0 `p 0`0 pP0t0 p`0p   #m l4  F$.a4  ;$Z/V4  0$ K4  %$F/@4f3!! "J/Kg4- {0xx |K>3@  )P # 00eP@y )`q # 00d`0.P,. (3  K3Z P 0(5  # 30`  `/K20  `/ K2  K2 x 04Z  2 $" K3p)  #xP z3 T#JoK n3 !p0K 8 F P0 /NKx2Kx2 5 5F/ `P 0P4x 0 P4P 0 P4P(P 04 " 3 " 3 !  3p " 2t  p~!J/Kp0KY # 2$P p p0K1`K1x 0  0p11PY  1 !0pK1K1( 1 !0pK1K1(oy0 .NK1K1(44P24x04.4TY  1P 03pp ! P2 A0 .` (` )"p`KH K0  ! `$2$ 0_.K>1K>13P 0`d3 p   1X2 xP 0`O3j ! 1  1p`K1 0308cnpK0JK0{3P` 0` 3( 3  1@ pK0X 0x 0 `2  0-` Z'` g! p1P PP0X(,Pp $(PpK}0K}0 8 B 0-` '` +!H Kp0K  2222F2 2Z22K] l0ZhQl ` p`VN_K.0~K-0JKK$0 !0!0n2K2bK2KK:2Kp 62 HpKp`K 0|pK/K /n/ /  2@Ky21K1JKs2 111 k2Ki2Kg2e2HKc2KO-M@HKp`  0`1pK 0`1K 0`1K O1PK 0`1``K 01    0AOWp /H Kp0K pK=v/H Kp0K K-F_K 01mK 01 y*p$ 8%p  0 0 V,Z_Kp 0e1n 0^1 p 0N_ 0G1 0 @1`&*p $p r 0 0  ,Pip*p`W . H Kp0Kz0 +P` 00p 00* " 0R`j 0 +P`0  p+`W . PpKH K 0(P5 t.111N1'N 00^ 00r)` 1$`  0 ;. 0ppI+P 0X0` 0Q0l   00 p"+P0 p+P` 0&0pp 00: V 0P: @'  $P  00_P@ s$` n 00_`(P( 8#-P H- H0P p $ PpK|-K|-pP6pKu-00,P 0/p` 0/   0 0` ``*P 0 `V*HP` 0d/ p 0]/x  0X 0' -!0 pp K-K- PpK,/H/pZp 0` `*P0 `)HP 0P/ ` 0P/ P & - tppK 0cq   -@ ,, Z M -  ,,/ p/pK,p/// / /N//ZK/FK*ZoK 0.^ 0.v'p! 5"p  0Z N 7,pK7,0 D)N_` 0S.~ 0L.  0 g'P0  p)`W + HKp`K 0^+r.Np.n.ZKl. Kj.FKh.IpK+PK+;++t-@KF.KD.-@.>.<.KHnO-_MK-MP@ 0` `P 0 `P  @h`| 0 Ph Rp! Pl 0W  PV 0Qp PT 0W  P> 0 C 0 / P6 0 P" P) 0 PKK-M@P 0` ``@ 0 `V@  gp 0 @Q` @ 0V  @ 0rQ` @ 0V  @ 0n  0  0 KO- MP`@ 0  4  SgP (Q = p 0X  pr 0$w 0 bm p 0pp 0 ^  0pvp  0?P 0 `E p >6 0 `"Pp `& 0W  ` 0 0 P  0  0 K` PD AP 0 `xPp ` 0W  ` 0t`Ppu ` 0W  ` 0\  0 ?PpT ` 0W  ` 0;KK-0M`0 P&pA( @ 0< K  $ p @K npL-M`@ SPB% 0 0 0eo DKp0H-M@P7 0 K0M-M`p@PR "  jb jf ]m  0  %o KML-@ 0LH-MP @`p  3 0pn  0KHO-dM(PK@ 0` 0`+  0K P `$ PP      pP  ` <0   P`p   0pn  0(PK` g ^ @0 . KK-`M$PK@ -,` 0`0K P `pP ` P# K @ P Py /   P `PqPm` ,P p`  U 0`!n  0$`K(p'  >@KM-MPP p#` pP  @P    p  p`P  P  @ p K0H-@P 0H 0H-@P 0H 0H-@P U@ 0Ha 0H-@P 0H 0H-@Z 0dP 0H@ 0H-@Z 0NP 0H* 0H-M@w hPWX 0dK0O-aM@` 0 Tp(K PK 0P]xK 0 PV=@ @   & @?X? P0P(K  0 P@0 PKK@ 0@ 0 @ 0@Pp@ 0PHp 0PP P 0 K0K  @pKV ( 6(KPpKB L0 @ss.  C㻮bbp  @㪮QQH   J㘮q?? P0 L++K` pKxKKjO-M`@ bp0 `ULPj`0U  ` 0Q=LPR`0U  ` 09%LP:`0U  `o 0! t0 `k0 Wb0 NK0H-@PS 0H 0H-@PH 0H O-M`$K0@0 PU,K 0 OTpK40@ 84P@4 0@R @ @ 0zk h 0 TP      0 4P%e  p  0 P s  00 Pb Z  $K 0 ,pKP 0 P  'P{ $ TPK0 S9475 KO-MPDKp @ 0@`4 0@  0`G0` ` <0 `/ C @#  40   0 `]@ @   = d@ 0 j0 `5@'   0  p4`D@K  0p K /0H-P@d 0HNpL-M` @PP  `  P@ +KpK-M`!p5*P P*U  p  @s p!  x!p  V@ 0  s KT!7K-MPQJ `H!pK*p P*W  @   s @  0!  GV@` `! 0㝸P @F`]0  s 5 0K  0 0dd 7|7J?@M-XM0@P 0`4p 0`-5`2U2 0  0 jhKM-Mp@PD`0 `{`0 `ny0 `n0 `Z` a0 `M `T0 `@K0 7KL-D@Q P 1/joL-H@Q P 1/Ldjo0H-@(r P`P  R 1/ 2/ 0io0H-P`@P  R 1/ 2/ 0ioQ P///L-@Q P 1/LpL-0P @0P`1/ 0pLL-@r  \ho   /Dho//L-@q  ho   /ho/l/hL-@q  go   /go/R/NL-@q  go   /xgo/8/4L-@q  Lgo   /4go//L-@q  go   /fo//L-@wq  fo   /fo//L-@]q  fo   /hfo//L-@Cq  Kp$mܼL-@Sk  So   /So/Ƽ/¼L-@9k  lSo   /TSo/ᬼH- M  \ 0, Km/፼L-@k  Ro   /Ro/wrL-@j  tRo   /\Ro/\pL-M`0[0A {hKpL-D@Q P 1/RoL-H@Q P 1/LQo0H-P j @\P  R 1/0 2/0@QoL-@`   R 0S 1/ L/PoQ P///L-@Q P 1/LH- MP  2/ РK-8M`@Pp6 2 p j `   ` (0,04 (00  1/KDHOoO-M0`pxPr@(K0 yX0 xg@ 00K @`?0 t`p@X@Kp0 _ @|` y   \  0  p'g@@  _@t jz 0^0` `* @0 ` pp@ 0@.H 0@'@ @ 0    0 0pK   %  (K   ` X KMK IpH0`  H`   c   q @ 0 A `wf@@ 1 @  0O^0p pz `&0 pp   $Hp 0w   Z `~ t     =@d $    XK0K Kc D0H-@6h <@<@0GoL-    PPGo/᣹H-M`@p 0]0 `   < KH K-8M`@|Pxp  mpg `   ` (0,04 (00  1/y KDFoO-M0`hPB$pK0 J  @ 0 ,K @60 ] pp`l@T@Kl0 i4 T@Q`N ] X 1`i _o 0\0 @0  l@p 0p$D 0pp 0 p  0 ,pK    $@K    z` @ |T K A? =lD0  D`    W  e  `  0c\ 0@@p:0 @ / 8 D@ 0   )  o ! p   2 2 $pKQ `x 8    TK ,K  KDӷ0H-@Jf <@<@0d@oL-    PP4@o/᷷H-M`@p 0[0 `   P KH ꔷL-@ f  ?o   /t?o/~yL-@e  D?o   /,?o/cpL-M` 0c0 P >P KpL7AL-@e  >o   /p>o/+&L-@e  @>o   /(>o/0H-M00 YK0/L-@ te  =o     /=o/H- M P  03/ РҶL-@Ie 8=o   / =o/ẶH- M 0  Р謶L-@ #e  / РQ/ @  Q/O-M ` P@0pQD p0  q@Q Q # @ 0    RC pZ 0App P KO苜KKL-@P%c P  ) 1/0c P -xpxp?O-M`  PpQ ῜ @ QpY# U Z#    RP   R3X P ፜@@oKB@ QP Q Q 0S ?P@P: KOO-M@ pP ` pp@` P  P  `p=@ 0 `p    V `pV  0`gP  p 0 9P p@P 呛 P  p pY  @P iY@ P  P  x J  J P KO-M@P  `p@P  P 0 pᏛ 0! 0@ 0 p 0  P 0 @`ᢚ@ 0p `@P KOKO-,M`  @  P p@PP@  P P p@*0p @ 0 P@ 0  @Q 0 P@ 0p @@@ $- PP P  P  x I  I  P0@p 0@P cKO-,M@P     ` p@$P  P 0 ``ᦚ` 0# 0@ 0  0   P 0 ``ᷙ` 0 p@` $ @P KOKO-MpP `,   P? A@Q Q 9@ 0 !  QY@ ]@   Br R: YQ @@Q@p PY  0[P P @ P  H p@ P0.0 x H P p`P@ P T P ṙ@ @T@P 00@P  1KO-M@P ` p@P  P  0 px  0"  0@ 0 p 0   X  0劘  0p Y@P KOӘK0H-P<PDP0@0HrpT \D\/0H-M @PP@ K0qpO-M@PDpPKP `  RA 0P  P` ` AP 0K@qp$000SD0S/(]Tpp \D\/$ppO-,Mp`PDPK$P @`Qp$ 0& `P `ဘ 0^`0姗0 $ 0 @P KOop \D\/(np4 Q0 @00Q8 Q0 @00Q< Q0 @00Q@P/ @  P/0H-MP4@  p6pݱC=p06psCO-M8P*@@ `(R pl PC $<<C P , 2/P 1/8P8KnK-@[4P@PC <PD`dC <P[4C HP" PzC PU p` a E `gC  PKK;pO-MP l0     @C ,Pk T( @p"5%1 WA(p,:Q ( A( $C O P 0 ApXX > /O 0P P P SM1/ B ,lP B  @P KOlK-p42pCCM-MPpB @`+  B P 88K@(P `P@: $ppB $<<B p, 2/P 1/K8pn  A (/  R6 /  Br R4   R(  RP/Q/Q/H-   A 6T=K-M@ Q:A WP U} E W@BqaE A qp  0@BCQAU*RV :P  WPw U P``Vu V*$P q `Q`V Vv*P   P  "U `PEJUP Q     P 0  EB 0 P P K O >K P``V V4*O &1U  G` B"`  W !Y O ppK&1U  G` B"`  W;K-@P U 0;` V F U@BQqF A? 1 # PppW W"*uO '!qV0 0E0C#! 00U 1Y0  zO 0K-@`V p<P U*A U@  p@  QppW W(*-O ppV!!q 0E0C#!0  U` ! V  ,O p@K-@P U 0;` V F U@BQqF A 1 # PppW W"*N '!qV0 0E0C#! 00U 1Y0  N 0SK-@`V p<P U*A U@  p@Z  QppW W(*N ppV!!q 0E0C#!0  U` ! V  N p@H- n HO-lM` , ,K@o8rpPU  2/P@@. @$@ (@  p(K܁(X,@@0 @@@@@ @$@@7/p$$@ P 1/((@ P 1/@PpHP@TL$PH R 8?d@ 8<J $P4``? Y @pD @ I 4[P4@?  !@PHP d0Hp0T`p`3/,K,o$@P? $<Q<Dg? ? KqvU?))B@ H- @ HD   '!/L-@ 0  1@ 0  /0H-@P P   00H-@P P  0 0 0 0 / 0@ 0 0 /L-0G@0A@q@0 H- 0 @ 0  0@ 0 0 / 0@ 0 0 /0H-@P*  P  0 0 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0m@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0 @ 0 0 / 0@ 0 0 /0H-@P  P  P0 0@ 0 0 / $0@ 0 0 /0H-@P P  P0 (0@ 0 0 /0H-@P, P  P0pL-P@ `( 0 `0 0Q IUp 0@ 0 00 /0H-@P P  0 0@ 0 0 /0H-@P P 00H-@P P 00H-@P, P  00H-@ P}L P 0  0 _  0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 /0H-@P  P  00H-@P P  P0 0@ 0 0 / 0@ 0 00 / 0@ 0 0 /0H-@ P P  00H-@ P P  00H-@ P P  0 0@ 0 0 /0H-@Pc P  0 0 0 0 / 0@ 0 0 / 0@ 0 0 / 0 0 00 /0H-@P0 P  0 0! 0 0 / 0! 0 0 / 0! 0 0 /0H-@P P  P0 0! 0 0 / 0@ 0 00 /L-@L-@0H-@ PP00H-@ PxP0 0@ 0 0 / 0@ 0 0 / 0@ 0 0 / 0@ 0 0 /0H-@P( P 00H-@P\ P  0 0! 0 0 /0H-@P0 P  0 0@ 0 0 / 0@ 0 0 / 0@ 0 0 /H- 00  0  0 0 0 /  0  0 / 0  /L-@000Q  $HX48h_  Y @_ @   49 62=0H-@P=P 0 0@ 0 0 / 0@ 0 0 /0H-R@A T- PKA`,<4PXD,  _ " P00 _($  8   8 16@61=0H-@P P  P00H-@Po  P  P00H-@P^ P  P0 0 0 0 /0H-@P  P  00H-@ Py  P  00H-@Pg  P  0 0  / 0 0 00 /0H-@P P  P00H-@P P  P0H-M`Pp 0 @ & p 0KO- MP `p"171 R ` \+0 BBP*ABArA!/rPPp R qa`0S  ACA!3V!p\ 0@@0pP pPH a(Y= 0 !63 !\ +@AP* A!/rPP @R  T  DA B" 4 S@pW PUpWM0J ``V= $R8*0!23 !\ `'@AP0*A/xPP 0R !aHV @F@DA$@6@S@ pW 0L0@SL:Kp*{H-M`p @ P 0 0KK-P@U ( u(pEbQ`!U3 rP!P   ` 2 L  ` 2'O-Mp$`( A@QVP$Pj `P  `8<h ```` ``嘀8d4e$ $`````|`x`t`p`l`dPp Q jP` pPW` P P jP jpPDp`P 0$T똀`d 2E 8d4#$ < `p  `8< P` ` P@``嘀d@#  P|PxPtPpPlPdPPPP$-嘀``d D d@# <v pX` `0 `PPs`0 `PPh< !`0P&P @p@ $`P,`$`\ X @0 @`8`( p+HL 0D@` *`0`M'<D  0@`4`4-L `PD 80 @H<TD0@`HLPT,08@ Q @``@0 HP"@P 0Y,`(0,` @(0! !X8@`@Tr$KL:k9k:k:k8k@8k8k\8kO-MPC@Pg`@!pA@R1N@Px* DABA!/rPPi P V  G0 B"!  W 0S<  Iaq`F&B `2`S 1NLRLX 0W\1@ @S*ppS:R B@] X XKp W 0! B"0 ``` W0PKM-M@`PpW 0 W)*O pW 0`,`P `0 0K̶n  Q /Եn 尔괵n0H-P@=QM 8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0H4 0H0H) P[.  P* 2!0  0B CP!70H}0 0H 0H0HO-,M@P \` -p-.. 4S-*"' ` @BS *`P 0`V 0S` `B! P 7, @o2 | `K` pO W 0 @o P 0 0,p7/`00 P?$ 0  ( /  2/0`K-MP^ ^ ! ` @4S,*p2@1& ` R  0At CW!7^   q@`@ pG 0A $CR7]W K0H-P@O-  P* 2!0  0B CP!70Hq0K-@ `P p(-P   BBQK*PG PD QQ QP 8p5wW 1/pW7 ` 0 P P,V  V 003/pW,  P* 2!0  0B CP!7K0  62 ٳ6=K-MPp, 0 `C 0DFT7T*0B 1@ FqQ0  d V17, 0  pK 0H-P@n,  P* 2!0  0B CP!70H0H- \ \ ^/0H-P@8,  P* 2!0  0B CP!70HZ0/H-M P p `D 0`F FT7,   :KH- Q00R S Q0S 0 0l1 Q00R S*R0S RR0S Q 0S 군6j?jCO-M @`p TU: 0p!3 ! tAAW:AA 0 Q0Z S Q 0`V0`V0`0S  QX K KH- M 0@  РH-@ p`P P Q000R R R Kp`QP  0S R 0R0Q S R 0 S0 S00 S 0 00 녭6:?gC/gCK-@`P ABV* @@Y0*@Ar@/qY ppW" K 0`V0 !W GaA`F!P7PS`VpO-M@ `pPS aPP `pU d  0 0   P . 0@CP*ACqA!/rPP! $ K` 0pW  Ga B`F" 7 S  a` `p P UPA@00 y 0@RCQ4P &Pd*BbA!/rPP`W $J !0 pW `AGA!7S @`   P0 0  P*v "    0 0  PPv`0"  BBP*QK`cCMcC fCO-MRy P`p A@R?L@Pr* IABAA!/rPPc PJ  @pW@`p V  JAq@D$!B @040Vq0a S  A!!@@ Sap@K L BBW 0H 0R! 1@ @ S*@@ S:R B@ YPaP    K\H- Mq0 Р РL-@ T  $ ( ( , , 0 0 4 4  0 5 4 BBP7/1H- ,/0H-M@PP P+CP @PP"   0  *p0  BBP*QK09_CL-M@P K<  0 t*Ku^CH-@PRp>P $(`X80, !* 4 BBQA78H-`P@>P $(p:80, Hp*,/K-Mp@Pq0`W⥮`Wp4>P $(80, IF*AAVA7K28XO- MpPq0WvW@4`z>P $(p70, F *P Ap`{ 0)0  BBS*pWK pL-Rp`@?>P $(P70, npL)p0H-@8|HPU  $((,,0044  30O-M@p n 0 0   0 Q P0! 0PUP! P`0W  P 0 !  0` VW  @R /-"  40 ! 04 ,Q , 0,KM-M`@PpW p h) W  h) P@0 3 @KO-M@pP`#P&PB TN 6Pڌ0A G0ሠ0 V@QQ  @ FQ  ppP fQ PQ gX g  F0Bi{)KO-M@pP`"P&PC TP  ]Pڌ0A G0ሠ0 V@QQ  @ FQ  ppP fQ PQ AgX Dg F0h )KO-$MPp@ 0@'P@`g@Q0B@F0@0@`@  0 P  ` Q0B@F0@0@@   Qp*`-P p PQ0B@jF0@0@@  p`V PP>` -P2 U  P$ 0  q hPQ0B@)F0@0@p@   Pp `V,PU p @`Q0B@F0@0@P@ | ,PJ @0 l @PP PK 0@CP(*ACarA!/rPPp EQ0 PU pAEA!5S @KpK-MPp`EPڌ0A@E0@0 VpQ  KK-MP`p Pڌ0A@hE0@0 VpQ  KO- M@Pp0 p  BP@Q04 XX`  0p   BBX*XKL-Q  \ \ S A TQO- M@pP`R0P`` `l PH0 `] QP,P `- 0C PUP, P+P! Z  P `0 0   0  PUZ  @R /-"  P4 0 4 ,P P,0 ,KM-Mp`P@P Q Q V!1SQK H 0KPO-$M@`pV P  0P)PP (P Q Q V!1SQ  0`( 0 BBQb*`0 W000nPW 0  0CR /-"Y0 QY 0 4 BBQ6*  0 P p(`P    0  $  0   p  K1GCO-M @`pPPPP, P p A P$p P  0`Ki P ?#/B1A!`PP0,P(P$P $F(FP  p`pP PPPPp P$P(P,p0P4P8PKKKKKKKKKKKKnKKKKKKKK$PI@$s@ 0 3IP 0sP$@] 0fIP 0, 04 0CCR7K28KK(KKCCKK CMKKxKKKKn$@0  E` Kc$@PϚ@]{F@P0 Y, KKKCKKm4=FOXajs|O-MP expW! `̠t0G`&Dv`Ab`Vd`pgpGx0@VCpD W :@p6T  Rx0pd`pSeQ<p@\eP3ʄ`e ee`dt pQx0s Wz(t x0`d Q "r  p`xxQKH-@@ R p0S00p0S W P ,PU (`( +, 0s/0S 0 7 0]/O- M(`$(Pv (Y((l( P ,H},@8R9pT  $((,,0044  z$ @P@Z @@ @PP @P  @PUD9P`P<P<@HHpP  ^",@,KH-    5b67<H-    b6<H-    a6<H-    a6<H-    a6<H-    ma6o<H-    Ea6G<H-    a6<H-   } `6<H-   s `6<H-   i `6<L-@, 04 0CCR780H-@P$<, 04 0CCR708L-@, 04 0CCR78L-@r, 04 0CCR78L-@, 04 0CCR78L-@, 04 0CCR78L-@&, 04 0CCR780H-@P$㙘, 04 0CCR708wpL-M@$`ㄘP$㮗 P 0 nF 0` , KppL-M@$`aP$㋗ P 0 KF 0`, qKpH-M@$`>$h ,0 P40PEES(*q<P 0P=F0 p`P,`;-P $(@&0, jKH-M,P@ 4 BBQ*a$P,p p0  BBPq7,5 `5K280H-@$,P4, 0H-M@$PƖ`$ 0pE 0pTP$,`, 4 BBQQ7K28pL-M@$P㘖`$ǖ 0E 0&P$,`S, 4 BBQQ7K2p8bpL-M@$`P㜖 0E 0`, 04 0CCR7K2p8CpL-M@$`P} 0E 0`, 04 0CCR7K2p8$pL-M@$P,`$[ E, 04 0CCR*0 P$,@n_KppL-M@$`P/ YE, 04 0CCR*0 `KppL-M@u$P`PWB0 P`k, KppL-M@R$P`㾖P]jB0 P`H, Kp^H-M@/, 4 BBQ#*a$Pp㓖P$v [k m7B0 `Pp, K^0H-@$,PǕ8, 04 0CCR708K0H-M,@04 0CCR*$Q㭕p0c  BBPQ7K208,0H-MP$,@唕@$,P匕p0B  BBPA7K208 pL-(M@$,PrP$`$; B`, 0   ^ P P,   P P0K P u, KpH-0M@`,P 4 BBQB*q$ P$$  qB`,$0 p ]P P,  P P 0K p P &, KpH-M@$p㊔P$u 0C 0p`C0 `p, 04 0CCR7K28BM-M@$\P$G 0C 0,` 4 BBQ* qC0 p`KM-8M@,P 4 BBQb*$pmP$,`e`$2$(Pp$ Bp,( 0@ 0j] P P,  PP PP $K$0K` dP,`)P $(@P#0, KM-8M@>,P 4 BBQZ*$oP$,`g`$Ó($$?p,( 0@ 0] P P,  PUP PP $K$0K` P,`)P $(@"0, K6O-M@$,P㜓 $,`唓, 4 BBQ2*a$p$U ?Pi 0 ` P,`1)P $(@"0, `KM-M@$P;,P 4 BBQ&*q`?0 `nP,`(P $(@Z"0, #K0H-M@$P  <K0L-@X<LL-@Q<LL-@J<LL-@C<LL-@<<LL-@<LL-@ <LL-@<LL-@;LL-@;LL-@;L0H-M@$Pp 5 g<,K0L-@;L L-@;LL-@;L L-@;LL-@;LL-@;LL-@;LL-@};LL-@v;LL-@o;LL-@h;LL-@v;LL-@i;LL-@e;LL-@R;LH-M@h, 04 0CCR*Pp 0p`]g 0`p, 04 0CCR7K28A0H-M,@ 4 BBQ* Q=g0 P, 04 0CCR7K208 L-M@g, 04 0CCR*0 , 04 0CCR7K28lj0H-M@J;, 04 0CCR*0 P$,@O 0RK0hfpL-M@$,P;P$,`3`$ 0 `PzKpH-M@$,PP$,``$,p {p$א 0SKM-M@$,Pd$,`\`$,pTp$,PېLP$㨐 0 `pP KpL-M@$,P徐/P`$㈐ 0 `PKpH-M@$,P墐P{`$,p嗐p$d 0KM-M@$,P倐Y`$,pup$,PmP$: 0 `pPKO-,M@$,PQp$JP,`$@ [0Yp` `P p,PpW$  j $(   ! G` 0=<p,0  sX(P P,$  uP P  0, KO- M@ $P$͏`$㌏ P`</X Pp,*pW`  0, uhP  0KOKO- M@$Џp$㆏P$E$~ </X p`,`VP  0 ,0KOO-M@$p㭏P 0,> 0p` 0> 0pv+$1P$`pG   0  ;1/Vp,}`VP 0=, KO-M@($bp$P$㫎 ; .Y p `,J`VP 0 , KOO-4M@$㽎$㹎`$x$ㅎp p,04 0CCRb* P j$ L0${   !* /G0f; .YPP p,pW` 0,  $ W$0P P,,  ($P P(  0, KO-4M@r$:$6`$$p p,04 0CCRb* P j$ 0$   !* /G0!; .YPP p,ipW` 0,  $ }V$0P P,,  (\$P P(  0, KO0H-M@$P㠍 e 7K00H-M@$Pㅍ J 7K00H-M@$Pj / 8K00H-M@$PO  18K00H-M@$P4  R8eK00H-M@$P  ks8JK0H-M@$,P`,P 4 BBQ* q d0 pP`<, 04 0CCR7K28L-M@$  a: KL-@6LI0H-M,@ 4 BBQ* Qc0 P , 04 0CCR7K208DpL-M,@ 4 BBQ* acP 0 ` , 04 0CCR7K2p8pL-M,@ 4 BBQ* acP\ 0 ` , 04 0CCR7K2p8O-M,@ 4 BBQ*$pF.P$DT4Lc<b8c4 Pm, 04 0CCR7K28   5-67<0H-M@5, 04 0CCR*0  P$,@i 0lK00H- M@, 4 BBQ0*Q$;,0   xS P P ,   P 4 0K P i , K00H- M@S, 4 BBQ0*Q$,0   :S P P ,   P |4 0K P + , K0u0H-M@i4, 04 0CCR*0  P$,@Ɋ 0K0QL-M@H4, 04 0CCR *0  , tK3pL-M@$`AP$k $!0 (; 0` , OKppL-M@$`P$G $ 0 0  : 0` , $Kp0H-M@$P  : 0P~ , 04 0CCR7K208H-M@$pӊP$ $峉`0 |: 0pQ P$,@  0KpL-M@:PP `  p` 0&  0 , 04 0CCR7K2p8dABO-M@$pq$㱉P`pw pUpQ` VO `  P, wW3 Вp``P 00SVR 0 0 VR  8 2/ BPYwV` , 04 0CCR7K28O-M@$P$C!  $߈`帐(`P P  W0 Bp0S2V0P  `*9 0` , 04 0CCR7K280H-M@$P㵉': 0PC , 04 0CCR7K208pL-M@$`,cP$㑉9 0 P` , 04 0CCR7K2p8epL-M@$`sP$j 09 0` , 04 0CCR7K2p8CpL-M@$`QP$H 0a9 0` , 04 0CCR7K2p8!pL-M@$,P`㈈P$'{9 0 P` , 04 0CCR7K2p8R P N L-@$6LL-@$-LL-@$$L pL-M@,P 4 BBQ* a?_0 P`n KppL-M@h,P 4 BBQ* a_0 P`M KppL-M@,P 4 BBQ* a^0 P`, qKpwpL-M@,P 4 BBQ* a^0 P` KpV0H-M,@ 4 BBQ* Q^0 P1K070H-M,@ 4 BBQ* Q^0 PK00H-M,@ 4 BBQ* Q^0 PIK00H-M,@ 4 BBQ* Qt^0 PK00H-M,@ 4 BBQ* QW^0 PxK0~pL-M@p,P 4 BBQ* a&^0 P`UKppL-M@O,P 4 BBQ* a^0 P`4KppL-M@,P 4 BBQ* a]0 P`XKp^pL-M@,P 4 BBQ* a]0 P`Kp=0H-M,@ 4 BBQ* Qp]0 PK0 H-M@, 4 BBQ* `qP7B^ 0 pKpL-M@$,P`dP00 P`, KpH-(M@, 4 BBQH*Q$*,0   CNP P ,   P) $` pp $ P*@1p30 PpFP$,@ 04K  6y<H-M@"$,PpYP$,`Q`Qe0 `Pp, 04 0CCR7K28VO-4M@$,P彅.$,P嵅&P$㮅`,,mH,$0 ($P,  9P,P$v, 0   PhM P P ,  P& $`Tp(p$,0$ P*@1p2$0 ($,0Pp, K  F 6w<H-M@n$,Pp4P-d`0  Pp`, KpL-MPK. 0K@,`P $(P70, KpLlKppL-M@.` 0`%P., 04 0CCR*0 `, 4 BBQQ7K2p8Y0H-M$@( , 4 BBQ* Q 10PP P, s 0P!K0&0H-M$@( , 4 BBQ* Q00PP P 0PK0L-$@(L pL-M,@ 4 BBQ* aT[P 0 `P$`0 EKppL-M,@ 4 BBQ* a)[P 0 `U3 0"KppL-M,@ 4 BBQ!* a[Pc0 `` `2PY0 P`'2 0KppM-M@$,P׃HPZ`0  P` 0 `,p8#`W  $((,,0044   0G-p 0P,,=- 0P, (D ,` 0KO- M@$,`PV$OPY$ `$p5$%/$(d Q#pV%`P Y  P U$P VP,P ` V0 0;$(%KO  0 0 6~m>*BO- M@$,PQ$قPH$( `,Q) PpV 0Q"  0 0, 00 0C CR*,pW`h, 0, 04 0CCR7K28 0 0 5 6k>BpL-MPK, 0@,`9P $(P0, hKpLKpH-MP@U  0 P$`p`z.0 `PplKB0H-M$@(O S $P@[ 0PO 0PFK0HH-    6j<pL-h@dXTDPH4P8^ $$1( `T$Q!R PP@ UR(N@P:00,S` V00 0N@PP P  $Q 0 ̠R0P U 00^N@ P AQ: AR0S  pL-M @  0 0KpL-MP,@` CJ P PKp,  KpH-MP@~$`p`]U\-0 `pr, KO-MQ P` 0/ 0V@Xpw0  @G@ %0 @:,p8!@W  $((,,0044  > > 0 ,pX $(   0,@ 0`ZKO- M@$;ph`$f 0Pm/ 0,pP04 0CCR6*V1  0$P,p,`P]X\,0 P, "$(,P 됐,pKO-M@$ `m$ڀp$p 0 . 0^, V/ R 0N$P,p,`寀P]X\Y,0 P7, $(,P& 됐,pK0H-MP,@H P PZK0,  K00H-MP,@ @H P P;K0,  K0K-0Mp@,P 4 BBQg*$` $8P$bW$  - 6P` 0 -`,$0  nHP P,  PP PP 0K  P,`P $(@w0, @K0H-MP,@ @*H P PK0,  K0pL-M@l.PP `p  ` 06 0-, Kp聵BO-MpP@W`,F@pW KH- M  0 РO-$MpPz`~V @0T SRpxp P p0@pp SR  04K! IV 0,q T `P@0  0R ,Q,P 0 Q,PQ,PR Y Wtx ,``A !4q1 8Wp@V @ @$@((,,0044   , 0 P  @`, x,0@4 ``0DCR(*a, ,p0 R @W 0  P,0S KaO- MP,p;@ Z@ @p`J,*p`V 0KK-0M`@PP j #I, x   !G p#5, M 0g)P,0 `  E ,P P,(  $ P P$ 0, K cGc/aL-M@     ! KH- M   Р0H-MP,@ @E P PK0,  K0O-M`@PQ ,h@ Vp,W`V@ KO-MP$p,`|D$|`$|$WJ|W@@W p ,+` Z p@,@T`0 KO-M`pZ @ P,p@T 0KH-@PP P) 0@CP)*ACarA!/rPPp uQ0 PU pAEA!5S @,pɽO-M@`P LY@@ p,PpW  KH- M  0Q Р0H-MP,@ @D P PK0,  K0 #O- MP,@ 4 BBQ*  0` P`,p8PW ` `$`((,,0044   0`$(   'Z0  0,`LP $(p 0, { ` 0`,Pξ 0`, 4 BBQ7K28pL- MP@, 4 BBQ0*a$+{,0   mA P P,   P P0K ` Y, Kp裼0H-MP,@ 0p ,P.y yP庺 0p~KM-M$PP ("`(Z ^p@@T @pp@PPpP @@p`VD)`P`<P<@HHpW ,`  @$ 0@ ,K0H-M @ [P妺, 04 0CCR *0 PAK0F0H-MP,@  0> P P)K0,  K0pL-MP,@` Cp> P PKp,  KpO- M`@R 0A  J@,p!!,P20 P ,`,p P`8npY  $((,,0044 V     0`Q,` ,V  z價P 0PF-O 0P<r 0P3yX,p  κ 0P"K,PKpL-@$P (P`( pLpO- -$`(p4 PY@@Z P PWP P PP P P@TD@p@<P<@HH(@p,0 pYKH-M@P `吴0 P`,p8PW ` `$`((,,0044  妸 0`v$ v,P嚸 0`gKH-M@P `>0 P`S,p8.PW ` `$`((,,0044  WW 0`$$u,PE 0`KpL-M,@ 4 BBQ* aKP) 0 `KpC R R/4,0/PH-@P@``PPO-M`B@AP @AY ZY<*@r/qY ppW2* V# U @p@Y@ X  `  Y X UKBKԵpL-@P PJ^5 $C00UfPa&c5cQa11S AP(PAUSNAQ:$0fS@fT0$  NAQQ Qf3R $f0Q@PfU$@0^RNA Q  BR:0B!S`V0 pM-M0@fS:f0C 0`R0QDA0 R@Bq0QA0 0Ck1!0  0@ ACQBU *Q$P fQz* x`R`V& P  R*$P fQ}* {PppW'{ P 0Sw* u $P fQ* $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<** :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCUq1p06PppW' P 0S*00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@W``V  P  R *T pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCᘳq1p07P``V& P 0S*00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@;W``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @0H-Q @P P$00H-Q @P@T0M-M0@ S:00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@ተW``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @O-MP@pP  0 S S  R:Q  0 S S  R:U@*U U  P8 P0  0  - P 0   " P0 !   P0 !    0@`@ P```00C8/p +0 YP $     00 , 00  4K\X X0 0TP P0 0($ $0 0qB5j>TqBu5*>;qB5J> qB   /m0H-@&P 0   R%QP0P00H-P%P@P 0   R%QP0P0R/oBO-M@`PpC P01TDPHPLPPppQ 0 T Am /OX/ph\P0`Pdp&x tPPz` AS >% Q$Q(a,Q0Q4Q8lB0H-@P᫺ @  0 / cO- MP`|h!%Q'*   !ፉP @Txp    0`HP 2P噌 SPK  ehBhBhBhBzgBnJ<>ݨ5 <O-M$0 @( pp"p# K|p~GoP TPPP `p  X 8    ⠀ X$  ` \@<840,$PLHDT\@PP* (KΘ@  KPFIP  x߼ X D$ L $` o K`(K ͘ იP  njjHjjacBbBL-@(PTxLh(੼TLebBO-MA T  `&tv`qR Ur` P `& p%p%  R:!`pRsW cP ` q0!R !$q@KpL-MP@@P%0 0CCQ,*@ DR @ T@ aPP P d`  8  0pKp4 X0!P! ፶Kp譪5<pL-P@`DV@@T % PD`VpppK-M`@pp$! Pp7 $ @pP" PU !~0 R  0 RPS  R00p$0 0," p 2  R 0S000S P  R0$, W+ dP0 8 BBU*B\aQ0`0P`U0#00X@0Up! d\\p00@o K~=O-LM@$P x1/`K~+(Ux, $ 4P ,⭄` TD $0,(00  pm`P -pPt P p  1/t h p PL@@1/P ?2nO-M@T QPpK   NpnP`P`  00S 0T Y O 8 2/ tPp" PO`P  00S 0$ Y O 8 2/ <P:  "r P 0+Sb`OpP`  00S 0  W O 8 2/Z:PO`Pp   00S 0  W W O 8 2/hl R% * *J JUhl R `0J@pP0 @ P @`hlppGq R:@PO`'Pp ' 00S 0e  W O 8 2/Pq TP`V3|1h!0#u5!pp!R000 0pPp00 0   KKOM 0 0e5=iUBH-  d0 0CCP *C1S00Ao O-M@`x 00BpPWH @`A 0w`  0!3/ `  `! R RPX1P  `1 T  pP ;BpUKn00 t80S 00S/H- A@= H/O-M@PZ Y  PgP  6P   0 P( pp 03# `V !.p0W00S`Q 0S0 $ , p \BoQ  Q  ~ PLP ǀ`Pf*AxQZ <( tPG d0 0CCPN*C1SK!00 R> ;BoQ ᭌ Q ᨌ +b p p pٲxY  ᠲ  ˲  n@(PKxԡꨦ030/0 S S Q/Q //O- MpEbV>áZ;0S 03 R R1 R- R*  pP%AAZA!QA @`c05 A  0 2BTAt2W@ 4 PXP UpW: WB0 `G0pPUP0C P`!BPAR  @:AAUE KOK* 21/01/1/ 2/0/0H-M@PPP P K0pL-M0` 4 S7@X3  r0r$ 03 J! @T !.P0U00S@Q 0S0 $  ,  Kp0H-PBOQ G Q 0HA0H-M0p @py`P `  @D!T1`RXd VOT!X@ "5%QXK(Q/xq P/H- M 0+S^ РH/pL-`P@   P@pO-M`@ 0V A pp 03# PU !.p0W00SPQ 0S0 $ ,  X0|pP傡04EP*00A |A"18T\V,!0@P*AQr!rAPAPpw 8< ᅡ凑,10Q !pB A B 1SP$pG!,!04K PU !> `pVp pWPR pW  p$   ," 0|  BhP` P  @D!T1pRX t WOT!X@ "5%aXU?Kp4| B/L-M@!1! " @T !> Q Q@ R Q @$ ,"  KO- `pVp pWPR pW  p$ 4 ( ," 4(0I`P p: `An(0 ,ݎ  ڎ ׎wZ ώ R` p 0W (`p (0$` 】, `hl!|1pR t WY|!h "5%a KO- MP)p 4PLZQ  KO[ZJ  KO_Z 00? 0 0 8KZ2 q 0  KOZ A ?`PV @  0P pP@UZ  KO/KH-Mp@P WdR R-P2wP D lVn Vq P#wP  $Ve Vh  2Cw P+KHfw P*KH, P4| wPk PO PR O P}KH- PvKH@ < 8V VKKHKHV V=KH蠎KH覎KHKH觎KHÎKH|V @  0 Q T00R K0KQP L pl l0 0~\X  xXT T0 0p,( (0 0h5==B5;5Z=W``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCݞq1p07P``V& P 0S*500 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@သW``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @M-M0@ S:Q  @ 0 QQ P9 Q ``P Qw pAP UP KO-M `P  0S#$ P4p PU @a@ P @T: 00 3/KM- @`Q PPP Q pAP NV` Q`*M- @`Q PPP Q pAP *V` - `QPPP QpAP V` $6/-A     /L-@Lô(;mL-@0H- 0@ P0EPQA7P5@0H-M@`P 0 tBW : At ! "`PKO- M@P Q( A p``   p r` lD fHX$ \Kg>;_;3Ag>H-   >5;H-M@ 0T `DBU : A ! "`KK-@` AY/ 0@P9*AÁr!rAPAPp+  P0PU0p1`V  FPB@ 6W@   R00p0000/l7m/4K-M@`P B P:P'RK ppQP Q) P 㠟P  pP  0P`6/PP たP 峿pP pP p_P _dP Ṗpi0 A1G`p孖 0ትP GP /AH-`P@ tAAW:AAPQ  AtAW:AAApHaO-TMP@<8H  (L40,(@$D?   R9 p'51aB Q :$0 S Q0$ GPPpPE P   PUp R A?KO-dM@`PL`HX```` $`(`,`08\`D`@`<`8`P`4`T` 0`P  0t h,P  @X  0V  0( 8p0N@ ###0``အ` pP] P Q R0  Q  `` 0@0P  AdAV: @AAS@Q  AdAV: @AAB@ AdAV: @AA0@ 0Z`P \ Pg ``0Q 0 `0 0P`PU   Po  ATAU: @AA@Q]  ATAU: @AA@K ATAU: @AAҾ@7 0P-  }% P  6 Q R  $  & 0 V,PK}nAh{nkAyn(P/  >xnoAO- Mxp@ P  0T *` T@AAU:AAXa X QPPP XP   $  @ X P0 P DPX 0qpP  $֢PXP ͢  R ` `  ` pATAU:AA`Q  ADAT:AA߽0KO蛢Kxn9AWAAA5#AK-pQ$ @P` 瀀PPpVP   $r p@VunAM-Mp@PP 0  ` 004M dAAV:AA}a30  P@  KDunAH-``P x@pT `PPP  $pTP HhtnAA5O-Mp@P  0  ` TAAU:AAQYY PP P   $  @ Y R!  ADAT:AA Q  @`@@``p`0   Ksn{AsnAO-Mp@ dAAV:AAPᵼ0 P @ JPYpQ Ga pFW P`0 p `Q xppN'p'bb@@  KM-Pp@ dAAV:AA_ AdAV:AAN0P pc0C GAp0'! AIR :$ 0R0S0 $M-p`@ TAAU:AAQ  AT@U:@A p0 p  00`Rd Vᇼ  "5%pL-@8p0N^PC %CPP`30a&cScQaa1c1S A_``AVSNAQ:$0S@T0$  NAQQ QIR $@0TP`V@@$P0^RNA Q  BR:0B!S`V0 pM-M0@S:0C 0`R0QDA0 R@Bq0QA0 0Cᦋ1!0  0@ ACQBU *Q$P Qz* x`R`V& P  R*$P Q}* {PppW'{ P 0Sw* u $P Q* $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*e :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCᐊq1p06PppW' P 0S*00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@4W``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCӉq1p07P``V& P 0S*+00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@vW``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @0H-@P P $(,P04hZxZ   $KQ 3P  QpQ P ԶPU QpŸ;PPp  ;P =P# py p pp$0K $P 9 Pp y $0K $P (  +pP Px$0K$  Z4AO-,MP@`  6fp<AIQ  0 8  4  P DH X X  00  T   lT D t( h |8 D ` T4 xDTLdL @P(  $  @8tx`l00hx (    \ /~zvr  /]ie $` \ P P ] >_P ] Q P  b<V)p83s/ ] P> P 04 P  ^P   Q  '  G l P  6c P1 n)p P  P  P P1 J` P 0+Sc] }`|  Q p` .] _0   | 1 ws On4&pjU   b!^ P( & P P +] s`H ▭ PW P K173  .  ) $w & T   x, P" p ;P a Qp Q `p  1``  a0P  *p P P w\ ]pP +]! P PP \P H\ _] I `P P(|  ` |x P2 p P   @_P \ t_]'Y T P8 6/#pH P p \` [ K_0',/*(P P (P?.(, p Pb(p     p P 0PV/ M P p P a@# =p P-  1 w 'L$ Q `<p   P P $pH! f P p g[ ^` ӹ 0Pcan P   ^  9^^PZ}VROOK `pY   ] 0 PNa9 ^p Z ;^` ⁹ 0Pa  ^ T^`  <_p h 0P`  /_pW  P$ sa ka0 PpK  ^ p`;P $ 0`pTT 0 w6?0 04  i4~A4~AK-@T/ P@ ! 00a,P 㭯pP P Wp T P pPTKH-@M@ pP$ P (p$p,  +EZ` 240(,$p7Z u2(,pK0H-@ P PP3ZPY 0HZO-\M@ P `P @ZPY KOZP($ ,  H]p 0^$ I+ (^ 240(,$Y Y (^8`KpuY0 j^8`Ku 0b^ 1(,KO-\M@ PP `($,  PY [$ a+pPYp9Y PZ 140(,$Y &Y ]8`Kpqu[Y0 ^8`Kuu 0] 1(,KO-M@` PP `\XP`Pt@PU X0$ # [ `0兞CU 㽟;UU@ZU`$t 8 0 KQ` 4 $  $ 0 80K 夏@(T >V@T pX 0$`3[8@K3q YY# I@ AAZ$* T NX0 X$# .[D a& Z:DU,T PK;lO-DM`@Q QPP@@Q pP @($,@p`` 9YU $p AAX#*T W@gT0 'X:\T$ , 40(,8$KkO-dM@ P `P4 8K0,0 40T yUp(T W8 K;&, +p(,(,8Kip XpNT W0  tZ +<8(,KM-(M` pP P>p` X @ps X@S V p@ጲ 0:ZKM-(Mp @P P p` nX@lS .W p@_ 0 ZKK-(Mp P P @op >X `@-s 6X@S 0V0 YKM-(M` pP Po` X @pr X@HS T@@S V p@" 0YKM-M PP `@pձ 0PYKM-M $R  P V` W@pᯱ 0?Y vWKM-M $R  P V` \W@pᇱ 0Y NWKO-M  P p@P 84 < P< @ KX T  @8 \ R` fU@ K$ V4 +0 4(,@KU$K6@ 0@X PU$@K`% 0XbR@`)$0K @ $P T #)dP`(,TPDR U$`K@ 0X) ` ($(,PP!V4 *D@(,H@4P T U$`KPʰ 0zXKO-M@  P `p 4 P8KP TKT P4 08 0 L XL,Q mT8 K|#0 K*( ,( ,8PK4Tp 3UPx 0X0 .*@ < P( ,Dp0xTT KK#Q  T S UP 7#  nU  *` \(,PR  )D H(,TKPUp TP 0W ) (,$KK-M $R  Pp=Q T`@ 0W  SU@ S  Tp`د 0WKK-M $R  p`P lTP@ᱯ 0AW  TKO-LMP@p P  `T@ XU0 ჯ 0W PHU@W24P0PP8PPPp T0 O"F(@<(,0R iS pPN 0V-($ (,KH-MP @P `Pp T` T0 @V KHTH-MP @P `PpLP S0 @VKM-M` P @Pp,P R0 VPP@P KM'QpL-MP@`3 P 0@#KpO- M P pXP`O +Q@O ]S0 BVO PPKOPKO-dM@P pP P4 8K,(0 0DO P`O S8 K!O P P?P (' `(,(,8Kk +T`O R`0 U k  T0 #( '84(,<(KO-DM@P*p P P,( 0 $(O  qP` O R(   0 +# '84(,(O  6PPO^O p'(,KK-Mp P PMp`N  P@N RR0 7UKM-Mp P P$p`N O@N *R0 TKK-XM@ `P P0 4K , $8N OpyN Q4 K nN O P"O &$ p((,4Kj S2O &,((,0KO-DM@P% P Pp,( 0$#N lO`N Q( . N @O PN `{&804(,( "N i&(,KK-8M@ c P  pp  0 $  (07  $ 00p厗`PMpM`$%m$0($p,` 0 40 0 $0 K(KkM-XM@ PP `0 4K $, 8M Np}M Q4 K pi +R p`m #R`:dM O`\M P` %$((,4KKM %,((,0KM-XM@ PP `0 4K $, 8%M nNpM P4 K pgi Q p`l Q`M qP` v%$((,4KL j%,((,0KM-XM@ PP `0 4K $, 8L NpL HP4 Kg pi sQ p`l kQ`LpL N P` %$((,4KL  %,((,0KM-XM@ PP `0 4K $, 8mL MpeL O4 K ph Q p`k Q`@LLp@HL M O` $$((,4K3L $,((,0KM-XM@ PP `0 4K $, 8 L VMpL O4 K pOh P p`\k P`KpK \M QO` V$$((,4KK J$,((,0KO-K N0 r @g O@kK N 0 @g O MN N #,((,0K $R 0H-@ 0NPJ 0HcNK-XM@ PP `0 4K $, 8J !LpJ SN4K q pg }O p`lj uOpJ [M  pj bO`JpJ L N`  #$((,4KJ #,((,0KM-XM@ PP `0 4K $, 8dJ Kp\J M4 K pf O`J M` "$((,4K;J ",((,0KM-XM@ PP `0 4K $, 8J ^Kp J M4 K pWf N p`i N` J L` f"$((,4KI Z",((,0K $R 0H-P@I K@I 0HBMM-XM@ PP `0 4K $, 8I JpI M4 K= pe IN p`8i AN`I ;L` !$((,4KqI !,((,0KM-XM@ PP `0 4K $, 8KI JpCI L4 K pe M p`h M`?I L` !$((,4KI !,((,0KM-XM@ PP `0 4K $, 8H c@ IPD oFPD `HPD XHKpO-`?p$C^, $0(`8p < @0 0 (0 gy(KjpL-MP@`-  EKppL-MP@`1  4KppL-MP@`2  #Kp $R 0H-@q?Px> 0HA $R L-@ _A LAO-M>p @$@8B> ?@:> A0 n @Z B@g> A 0 @}Z B A EA  ,((,0K0H-@ P Pd@ @ P0+S> 0HAO- p0+S]= @  (,K ?CO-@ = @0 > @RY A@7= y@ 0d @MY A@ R` ?& @0+S<  @ 0F= @0+S< "@ <,((,0K ?CM-M `$R P=p<  @@pR 0BKM-M `$R P< @@p3 0BKM-@M@ PP `($,  < ?$  p 40(,$< (,KO-M P @p4 8K P TKLH0,0 L P4 ?8 KT0KBPDH(,TK< @J=`; |?0$ ABPAX @`P[ @PM; K?H` } E; ??,0 YB@<8(,,z; 1=P@; "?0$ BPű`@奈; ᶱ A Z$0`  0 0 0 `"vP(/ ` >0P$ @PA8KXT(,HPP[ @P  >0$ @A(,(,K0H-@ P P  0H?H-M@ $R  P >p`љ$ 0@AK $R @K-xM@ PP `0 4KD@$ , H(<: /<p: a>4 K : < P; >$((,4Kr@`: ;p: 0>@ O pW [?; PL(,@: ; PC; 0,(,4 KK-xM@ PP `0 4KD@$ , H( <Y: ;pQ: =4 Kd F: v;P:: $((,4K?`&: o;p: =@  pvV > PL(,@: 3;P:[:  m0,(,4 KO-|M@ P $`pD@H\4 8K0 VP >` : D=8 K @ 2(O ,(,8Kp0 00  $ ( ' $ g9`9p$ X$0($`,p 0 40 0 $0 $t@ (PL(,T@KjO-M@`P>8 < @ `P0 0  0p`P 0LHPd0,40;, T H <8(,,@ [RQ  P _P! (0 4 '00 p0 4 K00 PP )9PZ9p9 :p=9P$ iX$00 4 ,p (P $ 0  0 40K sP(8 ':p8 Y<0@K ?H CXT(,\HKjO-lM@P P P4088`8!3 0 00  $ ( ' $ PPPp5`"6P$NU$$0@0P 4 80 0 $0 tp(K@jO-MP  PpP66p<`K/X@ _:`5 6`5 7 6p`5 6p5 Z70 :ps5 6 <K8` Q 9p#5 e8  p:Q p9`55 8 0W;pl(,`p@ Pw5 \K/ TP(,Dp4 5`4 |6 0:`4 5<K  LP(,H\pKKO-dM@ P   8PK Pp $98`KPS 9P]4 5PU4 5P`4` 8K0,0 4E4 7, V94 78PK Q9 < 80( ,,`  (,(,@8`KP 8P@U 0  9KO-Mp P   8@K ``=PP 88`K@[S 8@3 M5@3 m5@PL`40T83 60 3 6 RLI @<(,0`38K`O@0 8L2 $ 0( ,`z L 8@K\X(,L P -8@8K UP YP *K0 08K _8KO-M P 0 0 \PK@p pO` 7\pKPR 7P,3 4P$3 4@KX \KT 3 [4P 3 6\@K0 >t xKplp t2 5x K 2 5 0Y38 K   J3T K  2 2@ %3 0 K 2 ID@H (,T@K? (,( ,8@K2L _b 0+S/   3h SX 0+S/ 2@  2 2` 2,@0  2 <`8(,@ ,`t2 @ x t(,h``\ X(,L`(,  K 0C0pL-M@P` P Kp P KppL-M@P` P Kp P KpO-,D  +P c TP(,0+SD( + Rp l(,`I8 4(,(@(,K0C0pL-@P( 6*`( V* *P ( 6* *P( >* *P( * *P v( *Pn(  * )Pb( pL)K-MP@P2WV ` $RppP RPA ᰾V` ᳾  P $RppP RP`A ᘾUP ᛾WV WY`WC 0p pb`E 0  0  pb r`C0p pb`E 0   pb `SA  0 pvb y? : `B   ` $R P R  Pq  V`    PSEKO-M`@PIWz p $RPPP RPA ֽWp ٽ  ` $RppP RPPA ᾽V`  $R`` P RPPA ᧽Y ᪽Wu WyPfB 0 p paPD 0  00  pa  PYD  <PB0p paPD 0   pa PU@  0  pwa z~ PD0 pcaq  k ܽP A~  P $R P R P  UP     婽  P  0$  `  } PB p $0 (_ !PB $  (0_   TP]@s}  P $R ppP R P  q UP s   ! PBA} $R pp P R P Q BZ E   PB} $R pp P R P Q Y  ʻ! PA|KpL-@P`Od``P (`,P0`4P8`<$`,T`@`D`H`LPPXP\``PpkK-MP @`N=Q P P pP JP  0p7/Kyy㼽 [ U O KAi| 0p7/`H-M@`P BAU :A!QAP05PpA0 ^g@KM-M PJP b`K'Q' Q Q= `P P`'pT@T2 Tpp@PP))*pP% @`x&P`0 p `7/p 0`7/`P@p`PX㏙`P``@PPPT\\O-M@` P  HP PQY2P (P` 0   P p Q P QP` ኹp叹`KO-DM@ )QV (Qş $@ (    Pp p P   0` P $ Q P (K $R Q R  Qq *V` -X(K&P$@  (P P(P`Hw  0pU$wP  >y X @K :Q` w:P fP PPU: d0p!ca QAPnp D 0 Pt P`P VI; 0  \V:   00P*0-`@FPR* Q0BA!.rPP PPD*P FPV 9P   pAWP  BBa @   0P@UC ߋ @  0 0|Q9nf%3@<@O-MPU U~pW~ `G @V* E~pW^ `G/ @V/*P1@  PY @TT@TQ PP~P :Q P:k  P = P 9@P] PP @T@T P %~P 'Q P:@ P P PPU @$(P $$PKPUP 0@CP)*ACarA!/rPPp ,.  0$Q pA!pG B'p1pS! $(p8M-0M@`0 C pPW `P  P P pU pWpK p0  {%3@O-DMP$T YK Y @ @uPP uQHP o@T: P@@p ``)@P%S" U$PP?(0( [P@P P ͶUQ  жPT @T $P`lQ QP X2 pTaP X pTWzHAP*AJbA!/rPP`@  ?  qX0 0H !0C B#1p8pU#HAP*AJbA!/rPP`    qX 0H !0C B#1p8pU  !PT)``/ @@ 01 pp ppluP ((pP) ARw0S`s TP$`pt>(@ 0(@@QZ @0p @7/(@8, @ 06@U: `P$ PGt@$p& @ $0K$  Z@ Xv v w t $0p7/PXP P  R  R  >z636:O-MP{p`W1 G V*@@  @P PUPU P {P X P: P  P KKO-Mp@ P $`V 0pYM6$`  tWpQ| 0WpZp 0S3 `@X Q$R  ! Q RQ@ p 0UP p 0@ `FSv PPKO- MP*{`pV F W@:p @!@Z Z P X P:[ P P+{P K ojV@*P  A * *Z@PV:FPP  5   Q1`F W*@@ @P   P F P: KO- MP K $Pg 1$ 4SR 0$R S QbQDP@  U0 $R ! 0  04S  ! 0 `$R 01  ܴ0S RSp  V` P H@QuK|XKL-@TTP9@PD0P P$PhkL-@LTP@PD0P P$L k/݊@H-@PQ A  PP`UH* VF"@  o!pr!  4 W   P:@o ` UP1U:O- M@Q P(U!  U` ZQ E X : Ka`Y9 pP W: pW (pW Q `P yP ` ``P yP` YKO-M@P ABU+ @@Y2*@Ab@/qY ``V$ ᨒq/4 S pCapG`F'qpP3PRqpKPUK`3pL-@P `To `$(,0`48<@DH`LPTX`\P U 1/pppp`p 2/pO-M@`<8@P pQT0sW]PT <$aTT PpPA<$!瀑0 dVP SV @ aATP RP@ Q :\2Q0 S\@ ⸠ pP  `03/"5%,Z,  01 p pqP P Q1AqQ (0pR, t Wc( , P,0So (P0 Cp'euaq`V`1`Fv`V<@P `QT0cVPT <$qT ,0 (T  Cp0c0C, `Wd0F S :4`07VP U+` , 40pR(P0P1@pP@P PT PsPT<QTTQTQK20H-P@Q1AqQ0 (0R, 4 Sb( , "5%Q,0H-p0`d p@0pP0 p$0(p,p<0p4p8pO-M` P@ #QK 'P$$p  aZ  Jp  W*00   0PXKW PY P:  0PX O-M`$ @o 008 B,@@S0P4 <@B} 004pW GDQAQ@DDPE@7@S0$o \a@4`Y , I p T*``  & `4P PUPU TP3W P:  P  P PTP4p= @$8n `pW 0G`@ T* p/X 4 P PPUPU T PV P:<  P 4pP 4p0 P`48P `4430 0@CP=*A@ A!CR/rPPP <0 a00 4pW PAGA!07S00 P p@(8FoP,Ql$ `pW G0@ T*` p-`  `4P PPUPU T PlX P:  P 4pP 4p0 P `"Pn P PX ,Xy   U y  ( 48P0 44X,P@0QPQp1$0K$  pS o,@Pyo   l ` 0 0@CPa*ACARA!/rPPP{ <W` 00 4pW PGaPE`F%P7PS 00ap0`4 8, @l500 R`@`@P (0pR,t W_( , "5%yA,   p<D@T+K s/ 0 0r뉶3><;u@O- M@P%P ^pW G` V*    PZ R Ppp"K V PX P : P    PZ O-,MP$0 ( D^p` PW , G V*PPY P P YY PPZ P:? P P p P4 0 0DL^`V pF Y :    QU PU  P Z P: P PPKp @Pj 0@*V  A * *J @&ꆀ@V:F@@  .  @ Q1`F Y * 0K  P  PP F P: P  KH-q; pP]Q 0 `P `&@c0@D 0`VA0dQP  R 0S000S Q UU 0 0[qq3&<#o@pL-0SS Q P@T  @TP@ `V R=@T; PL @d 01@0S B@+@d@PT@B@AP T A$` P T P0QPA0Q  R  Q ppO-LMx`0@ 0 4@0`8<|P@Qa`lllllllllllll|ll ld X *`0Pj@  tBAW:AAPP@ P Q@P P =Q  ( P(Kf5V   R0SpW'@Q:Ph j@  TBAU:AA0pP@ b\`VT FP@ U*eP;pj   DB@T:@AA0p]j T DBAT:AAna@R Vp L W Q P P P@PP0`+j@  tBAW:AA>P@ Y ᝀP 0Pj@ dAAV:AA!P@;i   TB@U:@A Q0@i p U TB@U:@AQ0@i` U pTBAU:AA P` P PP(K  ([P $Q  BR?B!#@R@q  z lip  DBAT:AA@Pp P Q pi@  tBAW:AAP@Q4 a .`P@ T% pR `n-(0K ( N wt @Z .iP  DBAT:AAA`PP# P @P ᲻QP  BR?B!#@RE@ &P  =Q 0< DZ`V PF U*ph@  TBAU:AAP@PP T<@7 0p Z`V FP@ U*h P  tB@W:@Aq0@h` W PtBAW:AApP`P @P %Q  BR?B!#@R@q  QCgh P  tB@W:@Azq0@Th` W PtBAW:AAeP`GP$ pP (K  X ([P $Qo  BR?B!#@Rd@ EP) =QTh@  TBAU:AA#P@P PGg@  TBAU:AA0pP@ Y`V FP@< Ud*h@z  @s'P k@P@ P `=P6 ߻@pOO @ P R @-P  PY` @U PWT P :@9 @P KPHYD(  PY8 @U P/T P :@ @P #P YP QQOPOP  QQ,@\  PY @U PT P :@ @P PY0p< X`V FP@v Uv*z<p@` AAZ$*   4M@@坾$@ (` (`K 03L@W  `.$  0(@ p Lpp` PX< 0p~X`Vp FP@A UA*Eg0< DkX`V PFa U*p6  PYF @U P=T P :@ @P 1P.Y*   PY @UPT P :@ @ P  PY p8wKpp' pP@ Y= UP5Z P: P ,P(Y$ pP Y UPZ P: P PY V0@S p R W<8 80 0k($ 0 0k%3;W@3;W@O- MP@$` 0 tBAW:AAV$ P  oWpW G` V*  ;  PYQ P$` 0 tBAW:AA~a KOB V PX P : P    PY PK-M@ ``@P b P$(,0P48<@DHPLPTXP\P V 1/pp`p 2/V P 1/҅ppp` PpdpWT p$pd(p,P0P48p`P0Dp PD*p-0@CQ.*C0LCQ/uQQ $ Pᛄ P0 qU 1EpC050R N0     ` VK%pL-M @0S  0S @Kp P $0 (  (K  +  GoP$!R  R%!R   R  QQ  Q  O-IMPU< P 0`@ p P pPqp `FR P RU R P`P  R P  `V< 匐P 0 pP @ P @`A@ pGR ` RV R P P?P  R P  ?%  ;%QP ) 0S  0R   S000R Q P 0R R RQ:KO-GM@ P !P 圠 Pp$ ` $UW) Q PQP U W PPQP $ $! K*O-M S@PT@ P `X 0" e  LpUqqpB# P UA%!P@T U!Ao$PP  R 0 S000S Q Y  PY Q P`gP` P` @ᕂ`  R R cp~@@Pr  @T @@YP PP @pWMppPA    E/2@ PU `!#@KO-MP `Pk  pWp] V pW   R R R p Rp  R R p R R  0P0S0S  R   P `P  R` ` RW VA p@㤁  P 0S0S0S @@P  P `P  R` ` R VKP P V0H-Q @P@T0O- M`@ =RPU Ep W*    PX#@T AP8PpPxcP (x @00xT PKPW PZ P :@`ͽ  PPX @ 0 0e3;@@O- M@ QpW G`P V*ᚽ   PZ @T 0KPVPU P:Py P PZ @O-M@|`P $p#0P PPEP$  TpQpW G` V*  <  PZP PK @PVPX P :P@  P @PZ O- M@ *QpW G`P V*   PZ8Z P K@ V( @PQ1AqQ (0pR,t WQ( , "5%Q,`Y``KPVPU P:Pᦼ P PZ @M-M@_P _/P( P'`p&'1 A `1kG`ZZ Aq RL 5q65 07 3 505K28$  odKf|39H-@PP P 0@CP%*ACarA!/rPPp `Q( U pAEA!5S @p O-M@ T9Pp`@W, G V*@@  @P XX PPZ P: P  P  P1  OPpW @G U:ʻ  aV `V P Z P:ᵻ  P  PPK@~z`W@*!   A * *J@!ꇀ@W:G@@  4   @ Q16pG U*p  P  ` P G P:W  K`KH-@PQ A  PP`UH* VF"@  o!pr!   W   P:@o ` UP1U:O-M@Q /~X  Xp `VA H Z :  0 q`pW( Y P:ٺ  P  P !R   R 0PU ! pa`KM-M0@ S:|;wH- M 0; РL-M@XN0 p:K<<=EF= E<=LP P6L 0 @)6K0 0 0~VD3;@pL-MP@`R 0 @ 6KppL-MP@ `Y  0@  5 KppL-MP@`  0@  5 KpH-M`@Pp/  0 @P  5 KH-M`@Pp  0 @P  5 KH-M`@Pp 0 @P 00  5 K0H-M@PN  0  q5 K00H-M@P%  0  [5 K0H-M`q@PpEM 0 @P 00  >5 KH-M`q@PphK  0 @P  #5 KpL-MP@` 0 @ 5 KpH-M`@PpHN  0 @P  4 KM-0Mp@`Wa oppP  0  0 7  K00Cp;?P7 0` P $4 K8iL-(M@P Ka K1pT 0   00 @0   CUK@ipL-MP@`M  0@  r4 KppL-MP@`sO  0@  Z4 KpH-M@P0 `p0  00P  p;4 KH-M@P0 `p0  00P  p4 KK-Mp@oPo0  1 P|0 ` p`3pP0 p`3 P0 p`3 ``K  /  /  //H-(M@`P  Lp p` `$pppp `$p(p,p0p pppp4`8p< @( "5%a@pWKPTd PQh0SUL!dh P$qc-O-|M`P@PU XTpW  2/PPU>Y?P1  ᓏ Ҁ$ ̀p1/P p K   t p@  2/P `? i ᬏPPPKP7 ` S   ސ @1/P {@ PK  l*@  2/p? [#f K8jlvlT?R?xilw?{::?`hlH- d0hP A0c$!  h TBh\ C A R8p0 <S Q0p T0H-@P P1@p RPTd Qh0# RL)dh P$Qhh0O-MPPQQ pPW M O@@$0`p堐  P6  P P   0X&  Q1AqQ P(, <@`R@ d VS=< @0 ("e% @@PWPrP -` @ Q1AqQPTd pQh0sWLdh `P$ahhKWA $@ `pP  @ @ P P q uPX  Q1AqQ(, <0`R@ d V << @( "5%@WKO轋0H-P@ Q1AqQ0(, <0R@ 4 S$<< @( "5%Q@00O- M@`PS QPJP `I`Q`Q Z $` p ! 0 @0@uJP P& P8 0Zd=JQ P6 P V`/ + P+ P ᵊY$ ` P P ᧊Y ᪊ `P P ᔊQ ᖊ Q1AqQ(, <0pR@ t W<< @( "5%A@Z~Z{KpL-@^ @1`DTQAQ P@PD U@QNAAT:$0̠S@ T0$  NAATT TR $̠0Q@P U$@0^RNA Q  BR:0B!S`V0 pM-M0@ S:qP X $P _ 0/S Pt  '@X  PH,PP, X K???hWlb9?W?C???K-M@p0` `P  o 㨐   P  U {X 0  `K iVl?D kXi kL-@L-@AO-,M@`pP  x x x| ~x߽d wx`P ox4 kxX pW@Q  ]x Xx` POx P` 0`(;Pz ;x`P W X 1xPO` P @|`7}P ~`+ aPp P @|p }P ~/ PwpP P @v|P}P ~/p@wPp⌬ (`刬 0( [( 0 (PQ $ R w| wd w L wKr9?=I?:?P>?sq9t?o9 ? ???,4<pL-M `\@1 PP QP @P PU:0 P  PP*P 9P  SP KpO-DM P< Nw`@V pW  P ᰐ B`Z׏p`V 2,K 0:`PV P, , K 0B p,`,` P V hl,`Y(`$` ```  JW*aV  V $(,Y J Pp  vh `DZ2 0P9 P,O P <0 AP0Sd0  A PPP gV hlpA JW:l  v\  vhplPz $ ` ,v v  }v޻  vv׻( $    iv(KK  ``vhlA JPB: pp  Qv$ hP HHv᩻8 Bv,  =vុ  6v ᗻ$ (    (v(K    vhpl`@A JV:  v$P (U P U K:?3=K-P@P `p` upW /0r `P@ u( t^ Kte9E3w3M-`PP lp@p t@T` t( t6 Mtꭾ9?>M-`PP lp@p t@T` t( t Mt 9 3u3H-MD!@P T  `@V ! 8$P `p` }tpW ttp` lt httɹp btH1/ 0T 4P T 8K?29?2T>~:?v3M-`PP |p@p 3t@TP )tpa "t$ t9?s3H-`@P@ tPpP tpW`H s`P3 s s59?r3L-@$ sT L@ZV:pL-@`P sT 1 0``sʄ spLV:u 3pL-MP @`Q  00$Ut0 0UX0 0<0 0 $0 0Kp3E?+???K-R$Pp`@ usd``  ls p fsW ĸ`FV3T:L-@T  Ns?O-???ѵ?{?H?:?&?8l3]???2?O- ML!@ P4 wt`x V  pW P ,P 0PpW` VT`X V pW P ,P 09pW` VDPH U d`V P ,p 0"`VP UiK?2;;]:H-Q ` PP ,p@ 0PUO-MQ @ P pP S`P Op`V ᫵ Dp奵 >pPv 7p? Q^ P0 PY 8  2@l "p8 Ep `P5P  pp@Q@ p) oQ1HDQ+ o| o Q QQ:T H o94 o( o . `V qQ pP  o o o`VpW PP礀`` P  o  opWX oKY92I2̮??OP9???O922k2H;1l2V??H-M0`@PXH p0 Z@ ZXK肭?H-M8P@`XX p0 Z @p ZXK>?H-M0`@PXH p0 Z@ SZXK?O-MXP@Xt$4p0 ZP`V v 4ZjHK4P 8p (p $P PP PPpP P$P(p  mL`Pp V  Pm-WP  mP  m m `  dRP\-  2/pL, Tn,`P0V     >-  2/p., o7n0V<@0QS ( R p emdQYP ]mY@ Vm0, Om?!??ė?Η?O-M@p PdiTa` \i@Td Ui eH NiPz4 HipP P& qZ  4i /iW  &iW`@``Y iYJt i@P T  im< iK贗??'92;329w2B4)2?3pL-P@@P p`@;P!0 ,8p DPp \h                t    OP@ P`  @P @@@pp@9?979Sv>$9x>;<9U?A??K-P `@FP'*A AA!.rPP P@*G pF AV  Y@ K蠕 @piK-P `@FP'*A AA!.rPP P@*G pF AV  uY@ Km @p6O-M@ Pp`(p$p p`00  0p ,`4p0p8p<@pDpHpLP p`` 0 p `Zpptpxp|` Z* Sp xt,Z(P$0ppp` qPvS q0(P,儐 p ( `,L@Z , $ `BWS 0$p W PGFPE`FP`FPA7S 08@P4 <PB(6S004p( W a`@G7S`F@000@H@PD LPBS@0Dp W a`@G7S`F@0@0KhO-M$( P* 0S! ,00pS0S ``"V``V` V `Pa@`V @"@DA ^Z $Z :P KP a P DR G($Z  `A AV* $0S' Q pa0  B@BQ T*AtV O ApBW: $0C@Y:`@D P P FNS  Qz  Y: Y6I @! ~!p03Q@nApAQW*qwQ A0^@^P: P P H 4S @$ ~!p03Q@nApAQW*qwQ A0^@^P: P P 3H R`P P XFRZ%K2 0`"/O-M `$p, 00GR  ppakけ PTPAU0PAU:Q  SLa P(Q p  ( `PC ,@0PU, ?`0@p58Q ppP `" P" $ 2 H@! 0 `P T BBQ * $ BA@DKM-P\ `0  B@Bq T*AtQ ML`AV:0H-P@P P 0HE0HQK-/ @ 0| !@>A`P刞@E PDApU*Qu W `A^@0\$S:0H-P@P P 0HG0HQ0H-P@Pm P 0H G0HQ0H-P@P[ P 0H-E0HQK-MP``@?U0 :K  Pp0! AKO-MRpWK@?T*`   WPpP  0 sA KOOO-$MP@ ?U :K`  )PVp`0! EA#KO-,MP@`?U p$0 `p:K`  OVp` 0! AKO-4M`@ a?Y p,0( p$` P:K` $P OVp`(0P @KO- 0 @@1Q/!q/H-M @`tQuNPQp  BBU :B1   RB e705 dpNK0H-@ Tp0N0O-MQ9 `At1 PU ppP V* R R *p R P P pp RA `@!P壺 A`BV:K P" P/ 0P"/0 8R p pR/ `" P/ p!/ R/0P/0P/ !.NH-` @tP!rN !HNO-DM $Ql @`P0+ CR0!`d p R `P 00/S000/S 3p / W p B`@V: `pw  `V`@@`p P   BYP*P P! $ 0p @YP*p@p} 0@P'*AÁR!rAPAPP" L( @p!!pHV PAFA6S@PE p@PP* @Q   w_@Pv*p@Q  1p 0CSX 1ddddXdXXXXXXXXXXXXXXXXXh(`@ P*p@Bp 0@P*AÁb!rAPAP` +L(P @  R!    !W PGaPE`FP7S@P@`F 0Q @ }p 0@Pl*AÁb!rAPAP` KP@pQ!T PDaPE`FP4SP`F QP (` @G(K *(@$ Q6 a 0@P#*AAR!rAPAPP K@ !!`W `AGA7SP"`Fp mP $PpAP*0CqavCPCP $P vK 0AQP `@A@1R`F@0p$(P* $ . 0@P*AAR!rAPAPPV =K` W PGaPE`FP7SP`F a`@pK``#V2 V `p`K `` 2`A/GqQ/$`t X0 R@P PP7 `p`K `` 2`A㠞AP: 0@P**AÁR!rAPAPP J( @p!!pHV PAFA6S@PE#P  u/ը2 9H-`@ 0@RCQ `P%*BrA!/rPPp kJaH V pAFA!6S @pK-@P`P*@B, 0@Pp*AÁr!rAPAPp_ -J( @㇑!`HV pAFA6S pG @ J` PPP ` 0@CP,*ACQrA!/rPPp I a0Q pA!pG B'p1pS! pp:O-CM`<pP0Q @ P ( 0 0  Pp 0 p$ 0p $bMp@4P(`@T  $BI 0 QR @ABA`2S@DJA(  P4P  0 ,p0@K-V`@VP P儠Kp,8 W@8@p  400P V@ `VPPp(Q9  4@ 00,00 pP` KU@VP ,@K8V8p  400PV@`pPVP$KU@VP ,@K8V8p  400PV@`pPfVPKH- M0 0 00 РO-*A 6*;`@CPZ*pGġAtGPGPr 4@4r@(`,08 <pS!  C@@3V@DL04@pp0p  4 < !4@`PUC:KP4@ppp4@P)p4@p4@p4@  %28K-@ `pTp w : >!@w*QQ!>  Or R03 0#P Pra K-@ `pTp w : >!@w*QQ!>  Or R03 0#P `ra  R/ AR0 A"R#*/jAQ#/O-\M$P#(p($`88L<@ Z <`Z@B0 0` AA,` T(` 8`4`0`$ ,0 TPAa?, `0 ( i00, `,` T $p(`<P,]0p ` (ZY@T: ,`:@(P$px< @ F< R@ KO! KOS <0000 1 0P ppp  0?K KOP 4P0P>00 @PPP P 0 " 84  0@K0 0 <6`0,, 4`0 0`>P00Q  `/ K: :@P0* *J@F TDS(P $p0 qp2 PZP0 0(0 ( @0 0(w2 $p (00 K,4Q0 , H8@ 0 < 0P , K  K#xk-x2/8H-Mp`@Q(P@ $@@R $P ARV   M  P @Qj@"Q#* t@KA 00  AQ0@PM-HM@PF0S!       @J   [ K8#S[[ [[[ SSS S4K[|KSS[LT [[ T  [[[ [[ X$Y[[[0 [[t [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[KtYLYt XL LZLdZ\U|>D# >?HM#l?\MM#\]l]|]]]]]]]]] ^^,^<^L^U\^Md?U`^d^h^l^$xND ?8X U$N $V @p@@A H tVVdAW@dW(t#D$$$W(%t%tN A%& (X4 `&NBO& t xhO &<\L\\\l\LTX XPBB 'B\'|\O ,C\\\\P\$ \,\'d\ ]|],]<]L]`PP'TL(`(|CXQl<t(CXQC\p(HDQ  RH[`[d[|[[[[[[()<)) \\,\),*x|*DhXD@EEEdR*R[[0F+Hl+FF G+ ,8\,,[[(pGx,GH`H[[ h L-H- -<...,/|//0l0!I0X!PII[[! 1\1!I11H"L22[[2$ "<3"33,4|445l55 6\666L7[[77<888,9|99[[:$ [[l:: ;\;;;L<<<<===,>K t`!r< ! 5=KM` ``;0P ``` `VKMKM t`!rd< ! h KM<KMKMa t`!rE< ! <KM t`!r1< ! <KM t`!r< ! <KM t`!r < ! <KM t`!r; ! <W  t`!r; ! <KM t`!r; ! q<KMqKM t`!r; ! t`!r; !I<KM t`!r; ! 5<KM t`!r~; !!<KM7 t`!rj; ! <KM t`!rV; !;KMBKMnKM.KMb t`!r3; ! ;KM t`!r; ! ;KM t`!r ; ! ;Y r t`!r: ! ;KM t`!r: ! ;P  t`!r: ! t;KMp`9 K I $ ( 9P(K 0KMx t`!r: !?;KM_ t`!r: !+;KM7 t`!rt: ! ; G!P Q* E!AQ&:KM t`!rP: ! :KM t`!r<: ! :KM t`!r(: !:KM t`!r: !KMKM t`!r9 ! :KMKM  KMKM KMKM t`!r9 ! p:KMm t`!r9 ! \:KMM t`!r9 ! H:KM t`!r9 ! 4:J  t`!r~9 ! !:K  t`!rk9 ! :N z  dp!rV9 !x9KM t`!rB9 ! 9KM t`!r.9 ! 9KM t`!r9 !9KM t`!r9 ! t`!r8 !9KM? t`!r8 !9KM t`!r8 !o9KMj dp!r8 !xV9KMqKM6O dp!r8 !x;9KMKMp dp!r}8 !x 9KM=Z dp!rg8 !x 9KMD dp!rQ8 !x8KM t`!r=8 ! 8KM t`!r)8 ! 8KMJ t`!r8 ! 8KM t`!r8 ! 8KM t`!r7 ! 8KM~ t`!r7 ! |8KM t`!r7 ! h8KM t`!r7 ! T8KM t`!r7 ! @8KMl t`!r7 ! ,8KM t`!ru7 ! 8KM t`!ra7 ! 8KM4 t`!rM7 ! 7KM_ t`!r97 ! 7KMN t`!r%7 ! 7KMC t`!r7 ! 7KM2 t`!r6 ! 7KM t`!r6 ! 7KM t`!r6 ! x7KM t`!r6 ! d7KM t`!r6 ! P7KMV t`!r6 ! <7KM t`!r6 ! (7KM t`!rq6 ! 7KM t`!r]6 ! 7KM t`!rI6 ! 6KM t`!r56 ! 6KM t`!r!6 ! 6KM$` t`!r 6 !6KM t`!r5 !6KM+KM t`!r5 ! 6L t`!r5 ! m6M t`!r5 ! Z6Q t`!r5 ! G6R t`!r5 ! 46T t`!r~5 ! !6U t`!rk5 ! 6KM t`!rW5 ! 5KM t`!rC5 ! 5Z R t`!r05 ! 5] ? KMn t`!r5 ! 5KMj t`!r5 !5KMn t`!r4 !5KMf t`!r4 ! 5KM{KMKM t`!r4 !a5KM` dp!r4 !xH5KMKMm t`!r4 !/5KM t`!rx4 !5KM& t`!rd4 !5KM= t`!rP4 ! 4KM t`!r<4 ! 4KM t`!r(4 ! 4KM+ t`!r4 ! 4KM t`!r4 ! 4KM t`!r3 ! 4KM t`!r3 ! {4KM t`!r3 ! g4KM t`!r3 ! S4KM t`!r3 ! ?4KM? t`!r3 ! +4KMZ t`!rt3 ! 4KM t`!r`3 ! 4KM t`!rL3 ! 3KM t`!r83 ! 3KM t`!r$3 ! 3KM t`!r3 ! 3KMC t`!r2 ! 3KM2 t`!r2 ! 3KM! t`!r2 ! w3KM t`!r2 ! c3KM t`!r2 ! O3KM t`!r2 ! ;3KM t`!r2 ! '3KM6 t`!rp2 ! 3KM t`!r\2 ! 2KM t`!rH2 ! 2KM t`!r42 ! 2KM t`!r 2 ! 2KM t`!r 2 !2KM* t`!r1 ! 2KMg t`!r1 ! 2KM t`!r1 ! s2KM t`!r1 ! _2KM t`!r1 ! K2KM t`!r1 ! 72KM t`!r1 ! #2KM t`!rl1 ! 2KM t`!rX1 ! 1KM t`!rD1 ! 1KM t`!r01 ! 1KM t`!r1 ! 1KM t`!r1 ! 1KM t`!r0 ! 1KM t`!r0 ! 1KMp t`!r0 ! o1KM_ t`!r0 ! [1KMN t`!r0 ! G1KM= t`!r0 ! 31KMx t`!r|0 ! 1KM t`!rh0 !  1KM t`!rT0 ! 0KM t`!r@0 ! 0KM t`!r,0 ! 0KM t`!r0 ! 0KM t`!r0 ! 0KM t`!r/ ! 0KM t`!r/ ! 0KM t`!r/ ! k0KM t`!r/ !W0KMr t`!r/ !C0KMa t`!r/ !/0KMP t`!rx/ !0KM? t`!rd/ !0KM. t`!rP/ !/KM t`!r-KM t`!r, ! *-KM t`!rs, ! -KM t`!r_, ! -KM> t`!rK, !, dp=, P 2`q V+P0 rGKM    0 Q! a  t`!r+ ! t`!r+ !,KM< t`!r+ !|,KM t`!r+ !h,KM t`!r+ !T,KM t`!r+ !@,KM?KMM t`!r+ !',KM! t`!rp+ !,KMKMuKM[ t`!rR+ ! +KM t`!r>+ ! +V M t`!r++ ! +[ :A t`!r+ ! +\ # dp!r* !x+KM t`!r* !+KMX t`!r* ! z+KM2 t`!r* !f+KMB t`!r* ! R+KMP dp!r* !x<+KM+ t`!r* !(+KMr_ dp!rl* !x+KMI dp!rV* !x*KM t`!rB* ! *KMB t`!r.* ! *KM4$` Pp 0`$p P  0pK t`!r) ! * K(K (@  p0  PPS )`0 )KP0 ` t!r) !g*KM t`!r) !S* p`P  "1 P  KM t`!r) !'*KM]KM?KM t`!rf) !  *KM$ t`!rR) ! )KM t`!r>) ! )KM t`!r*) ! )KMo t`!r) ! )KM t`!r) ! )I  t`!r( ! )S KMb t`!r( ! })KM t`!r( !i)KM t`!r( !U)KM `po  i t`!r( !5)KM t`!r~( !!)KM t`!rj( ! )KM t`!rV( !(KM t`!rB( !(KM8P`p t`!r(( !x(KML p@#t % p p p p p p  p  p      ( . 4 : }@ yF L eR tX p^ ld aj dp YkUqQwM}IEA=951-)%!  2>H-(M@0PK p  ppU&`0  psQKO-MP`@00  Q 0 p J  08 00pY`E  0 4 K 8 , (K8 Ke(p$LP0Q*L,H `AP*0CQavCPCPv T%H L0Q `@A1R`F@0LH0P@P4,[ [ [P8@<@qW+HL @aV$* P %@YP @ 0Q   0dXP\HPL8P<(P,KO-MPFp`A@(` 0 0  P!  0  P @POX8 wP$N`pP`%X^AW*@(GP*Fb!rAPAP` %aAW P  @G@7XP@ B@ $pYPX X X $pp$@04@ 8@ $80K  P@@@ @ ;8`KP (K (`$TX0Q*@T 0P @AP*0CđBQuCPCP@ \$P T0QaaP  @@A1R@DL0 Ph8`K P (K (`$TX0Q*@0PPT0-P PAPa*0CšBQuCPCP@S \Z$P TPQaa0 A@@1R@DLP T0PPX`GA>TCaV: $ $ *$ X$ 0`P@D "`PdPPT@PD0P4K@l@v  2q8H-(MPp`@Q Q QP P  y p` P  0K   2p8O-0 P 0:U8 N 0p @`0p00 `QP&  i 0^ 0pW` ` `0 PS 0 G 0Y A Q  ᪴KK(0K( KKH- P< 1``hpx````     1,8K-M 1 P}w@ T:` ̀|Y^_ T6pO7p7 #"`p`&OooTpbp  `p6`r_Wpp``oO"#oK^ Gq R L2q6Q3:|x  F`0/! 0!K`1"q"!CR GQKj1+8L- R R" R:O0I3 /< . I2C   2? o9"R  RR/ Q3Q3  ,oY3 .,/o"  Y2  0  Q2   2 H-M`@PT4P  P`K \ L  2/p &4KjjK-@p`V P!LpP< PIPT  4 % NF  %KkL  K%P  %  ke   %Ak K%P p  %\0/@"H@  Q4%$0/H u%jvo%0/I4LDQ៲ `% \%6  U% PU0,8@8P@PE Dw *%j6 "       \T  $T  K$ 9  $`@  $`HQ $HD<4  tW: >51>>>>)>5>>T>\2><>:jT:pj(j>>>>>><>>†>><>>>>|1>1#8߈>ƈ>y8H-MP0/`@TM3`  P`K ݇ P8  2/p( i1%t3KjjjH-M`@PT3P P l T$ bP`K ᢇ P  2/p .$93Kjt8jL-@0/L$jpL-M@A P ,    # 8  $  $Kpr8%c=M-Q0 OP0& @  `2p"`Rp ` @ 0` P  p2 r Wp pP  ` #0$ XO-M0 000 0 Q030V  pPpYv P 0 30"OR  0O0 P  @p4@rWpp@0O  p  %.Y ? sP>  P . 0@CP:*ACRA!/rPPP p  Q 0Q pA !pG B'@1@S!pPP`VP KYΠ1 /      /H-@RT \"@ @@@@@ @`0`@T^ 1 0@``0@T \ ! @@ \M- RQ RQ2OP0& @  `2p"`Rp ` @ 0` P  p2 r Wp pP  ` #0$ 5XOP0& @  `2p"`Rp ` @ 0` P  p2 r Wp pP  ` #0$ XpL-M` @PT1` PK ᳅ L  2/` ?#J1KpjjO-$M@P    3" ."P  L  "< " P   P " "  !pP `PU  ! P`U:PX !P< !1>   !\PP  ! !@ `Pp !PPU:K>S:K::dK:'>:/1>!j8:>>1pL-MP0/` @T30`P/ PK DŽ P"  2/` S"^0KppjLj@jO-M@W+ `P  >!K 0!  D ,!>0 %!pXKI1}g8W=K-@@P 0PP3Q @ 0AP**pGÁ1sGPGP  @ P1aQ` p@A1RpG@P`0 K-MP @ 0/ V P `V X   `W   K:jU=:H- ^!Q |l x   4 (T   `(D44Xlt@@   $ LTX(0 < `4l@xH 4H\T Ldp` Xx|l x  d     $ 0 <p  $| H( 0T`4, @LtX<d8 D pP \ h |t H      $0 < HT  $ 0 < H `  T ` l x l x$ 0 <      H , 8 D T ` P \ h t  $0 < (4@LH\Xpdp| ,8DP\ht(4@LXdp|$ . &VS]hmjgN8 ?J@=:FCA7;y ;8nkhOLIda^[XeJLIF|tld\GT|L1D< 4 ,m$jg t M- ! L63N =HMJGKHE?9M D `]Zxphd2\TZLH<@988o<854,]$`$z 3h\Y<JGZW;8;H@|B|D|Nt9l6d8`+X(P/H,@$8!0,-$ % "!"$ &  xph XPH@80(   ho ZIdg~@` x ph`\TKPhd txro|l|tIt-ph'x!$ |tlh d h`\ dh`X\ t h X` l     r [)&#  8o>o>r>r>s> "t>0u>xu> u>Yv>v> v>go> Gp>Pq>terr>4js>s>u>u>| v>(v>]v>` fv>v>L v>v>v>8 v>P+v>v>@\w>@[w>ew>w>0 x>$x>Vy>*o>o> p>q> q>s> t>t>t> 7u>Gu> u>u>u>$ @Bv>Av>v> w>Bw>Qw>Sw>cw>sw>w>w> x>Mx>Mx>]x>_x>x>x> y>y>Zy>_y>y>y>pz>qz>z>{>{>{>a>l>d>_>Pl> b>ql>yl>`>l>l>le>$`>l>b>l>b>l>b>b>f>m>)m>c>1c>*a>fc>Ya>\a>Sa>g>a>>g>7d> b>n>o>4o>Qh>~o>we>h>h>p>p>f>c>c>ii>Ef>i>c>wf>c>p>f>Kd>^d>^d>zq>j>q>k>e> e>Vr>dr>fr>uh>ph>rh>mh>|e>oh>jh>k>e>r>h>r>r>r>h>r>h>r>h>h>h>Bs>As>@s> i>6i>m>s>s>9m>8m>7m>6m>5m>s>?m>>m>i>Xm>"t>j> j>Wt>9j>]j>t>t>An>t>Tn>t>t>u>k> k>k>n>Uu>#k>u>:o>u>u>u>u>u>no>jo>u>u>xo>zo>k>u>o>v>o>o>_v>_v>_v>_v>^v>]v>Pp>v>v>v>v>v>p>v>v>v>v>q>v>v>v>Xq>bq>'w>q>q>q>\w>q>hw>q>~w>w>w>q>q>w>r>w>w> x> x> x> x>r>x>x>x>r>r>r>ax>jx>sx>s>x>x>x>x>x>x>x>x>x>x>x>x>s>s>x>s>s>x>x>x>x>s>x>y> y> y> y> y> y>Ot>y>y> y> y> y> y>y>y>y>!y>+y>t>Fy>Jy>Oy>Uy>\y>fy>qy>uy>ry>py>wy>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>17H-  Q9 4xP`Dl # x l l XPLH '@<  dm>*m>$m>gm>"m>'m>Pm>=m>m>Sm>m>m>91;7H- Q" |<L,\l l T  H @ 4 $  l>:l>+8l>I1K7ܿ:H- Q ` T` t,t@, "     | < ,5$  4% ( % x p k f ^ Y T| Olh  mk>gk>hk>k>[k>_k>k>k>]l>k>{l>l>k> m>tl>Rm>l>Sl>l>;Wl>Tl>=l>َ17k> ? /0H-@S_105@1 508   17//L-M@Q. @`0t [ZK<| K 0+S셻K/K8 >]K   k>*:j>17pL-P@0U 1 0     U *a} QPxPp!/!/0H-@PPPP PPP P$P(P,40  @DHITLP0\/ 0@!R/0S/O-,M 0 ho4X  h0HP 4 ^JP VKP   NLP   F<PP  =4 7< 1  ,@\p &D\\  P` tz 4  2/p y pPW ؃  `Z\U` Jz   2/P x $ @Z<  8sp@    P@U  `\T @K  z f  2/V x _Z` M @P 1 1/8 B @Po p@`DPV; K! 0 T@!%  npᦣ g c y p  2/p Bx p D`V`PV   p;[U `K y   2/p x T  KxM땹:h>ù:F>F>F>&h>?1T1g>1aT1jdg>vK>Ljf>f>zf>Pj`j4j`e>D81j~H>Tjf:H- XO-M@`$0P( R @ ` AAT<*@T $0( S `Pp@0,0PP@oB0 SP 0SP0pppp `ppp` p$p(p,`048 <@DH0I@tLp<@pPW VR `@0Bp2pQC   XF <@pX=@X8 Q@@ P:0@CQ*Ca0LCQ/uQQ $0 AU 1`0C@6@R0E C0   XP0` LPPLH@AP$*AA0PC 0S Eq`@Cp3pR@ `   LPPU=`PpU8 pP`` W:GAPS*ALBA1/sPP@  p0 aW` @@1@RG@  PDU@P0`0 (S R 0 HpW0PP 0HpW0RK١H-  R0 HQ0\ R 0 HQ0PpL- P LA!PDEQU:S PRaP``FV4`PU0T ^p 0 0둡%19\>L- P LA!0HQ @CDAT :Q @R AH@T S ^k 0 0i~19~\>L- P LA!0HQ 0@CDAT :Q @R AH@T S ^< 0 0}1b9[>O-MdP!Q`A/"O `3@DQ9 TX  !5"5%0\+ 0pW $Z@!. OMBAPZbE_-"Q@Apw P:H P\K 0 0F|19Z>H- @  $ (,048 <@DHL PTX\ `dhlptx | dp d /H-  0 0 {19Y>0 0CCQ7@ 5T5@50 1777/1H- x0 0CCQ7X 55@ 5/1H- lL-@X@ R       XDM-PX`0@D T R$R <TX @!5aX@) p@ @@@@ɠ@plp 0`R d VhL l "5%q@ T / 0@S/pL-M`@P  BR d00\L  05FP:FP``Kp  >w17O-M`PpA@GpT `0 p8Q;*D>C@RuQQ@. @ P@ ( @ 0 b p 00pW `AGA! 7S$ @& @`F 嬀 K@n/0  03 , 0S !΂ R   R0Q  R /L-0S @T@@2!@T0 ^ 0SΑ‘K-p`P@V pp`PP*pP ``pP  PA P jpL-M` @PTl ` PK u L\  2/`L sU Kp0j(jO-M@,0Q! Б`̡Pq p   t  o] j,P0AAU: Z0 Dq`@QpP8 VV  PV K9 FP P  R  R` Z` `AQP!Q ` ABBVKHR>c|119(81R>Q>pL-MP0/` @TP`f PK Lt P  2/` rKp脨j`jTjH-MP @`pTAAW"*4Q` !D PK t pp  2/`` riKݝ  0 0K묩jxj1p19O>0H-P@0/ 0Hj/k 0 00/ᄦjkM-@PP`P@PP P$(P,P0P48<` 0 Q   !/hc0H-P @ P@ @UA<P0 :@ C N ^ t P (P$``$p(<80 8@〲` p80 <8`q`p.80 8`e p%80 8`Y`$p剴80< 8@I` p後80 <8`:`p80 8`.p80 8`"`p@@ @80$ P`<@8DHL `噒 80<8 ,`pG44 02$<@808@P@ DHLPձ, ,PVpPPt `哐80P p PQ``P Q AP  Wp  8p` 0P+  7pP pK @ Q@( PPP Q$`  `AP  $P  QPPP Q `AP n X q `QPPP Q $AP V V` Y W: pGW ),8,0  8(/O-ί+  zRU Q  p B Ep2p `P Q PAP | V`  ` pQPPP QAP _ V`  b `P 0p0 PKO-MP@P P垰p `P2  P`Q PPP Q AP  X   Q``P QPAP  Wp  `QppP Q$PAP  V`  pQ` ` P Q0PAP  Z  Q`$` P QPz p Qu  @Q  PZ@ @P0 P0R:0P0EC1R*P0 0PPEERA*1P0AS9 0`PU3 W4 -W@@ R RT: B@T *  AAT* C@ 0p7/K0H-P@ PS 0H[M-MP@bVV``85p`P0 pp p` 0Pp5/K0H-P@j 0HO-4M@|P ZP: Sp Py `"Q\$PX P95aP,XC wP2 Pp5'(0,( 0`{Pp 0 Pmp#`! 0 P p^嵮P 0p 7/KM-MP` Ptp@ P;  Q0 Q0R:0@0DC1R*Q0 0@@DDR$*10 @0#T   P@Dw @DT@K؈M-MP@`] Z Pp@`p0 A WP @P`F? `FV/j  0 y#PKM-MP@U`  Pp@`ͭp0 WP P`F `FV@P P  0 v 0 '#PK0H-P@ P儭 0HO- M@ pW`n`kV KPWO` Q ppP Q AP V`  QppP Q`AP UP  PQppP Q$`AP UP  Qp p P Q0`AP Z  Qp$pP Q<`AP kX n} DKO-\MP;pP<p$ %4J@`80K (p8p c` p؄80K 4@ 8` T`@80K 8` Hp ,7@㈭0P 0P  4 80K,8  P0 ,P ( $p p,@ڈ80K 8` `p"40#  8 < 4 'H 8 K 000@4p`巎(4 80K$@8p  0 , (P $ @ܩ04p4@\,`PPn @嘈80K 4p `8p é@冈80K ``8p 嶩(@|80K 4P 8P `婩@l80K8P P P圩`@,80K 4 8 P厩P@姌80K 4 8 0P ~$ @$80K 4 8 0(0P k $0@4P,P4/@/80K 4` 8P U X 0`6/K  0 0|=܊gy1.t99/O-LMP$PBTpT WpT  pP`,40 4p` po40 8P4`@P嫇40 @4@ި ,`P (0d:P ᴩ840@p 4<@@pDH,峨,Pp 404 妨P`840  4<HP唨00(@Pq $PR40 8@p4@}P@40 4@pq P740,` 8`4`pcP&404`` `VP40p 84p`G`P`40 84p<`7 P݊40 84p(<`% 0 pP0``5/$p,`P,8`404    0`p6/K 0 0P=E 1n99M-Pp0 %$Q(@ P ` @`V'`p%$Q /Q GP MMK-MPp@`0 坧`@嵊0 `匧@pZ0 P  @"0  `lKO-M p$ @R``P RPPA T@  QPP P QpP@G Z  QPPP QP@I X KOKO-MP pP} @u X `P T \ p P %T P wDX KX oPH 0X  Ry H@@`0 Lp<TPPQ㡡! . R R(/x`P0X @` P H L0KL TL  D @坦P |\ pL@K `!P T(0KL@$  (@ ၦ`P  @TD p`` @`Q`\@ H `0  X #@`0PT`K` ` KddAPP T  P0K `T(P\` `0@7@L0KH p ,`L` p3@ `娀TL0KH  L@ p"@`߄L0K L@ `pքL0K L@ T` p$ Q\ <` 0X H `  /p|p@҄PH L0KT Lp D P pX 0@8PH L0KL` L` D ˥P PK\K  08@@p\`忨H 4L0K `L` 嫥`ZPp pc * _ Q` @L L0K p@J@L0KH  L 倥` @TL0KH p L` po@`,L0K L@ pc4`#L0K L@ pWT @@RT PL0KH L 8 D  pDH0P H@0 `$@0R\ `p  0  X #p`崣@(`KPp40< cD H L0KT L @ D  @ L P< 8 4@ @0 8, @PP(K`T P (@ P `K( d0TKZZ)* % Tp@x4L0KHp L  ؤpT P@L0KH` L  Dp PPŤ`P Tp `0`(,0 N$P` T @僃` dL0KH  L ᧤ ٦ 0p 7/Ϧp` KAAPp @X @@T** `P /V  BA/oo"2P* Z Z ZXXXHNjO-$M @PW 0 BP `~ 0  P1P` 0 P% `pe 0   @Ă 0 P KO-4M`@PpM $0 ($,ۣ@P p0 @  ƣp@P᪅($0 $,寣@p P`ᕊ (0$@$0 喣KO-MP @`Sp0 @}@@0 p@6 `0 ap@$0 T@0 pF@`_0 p@7 `݅0 p@'  0p@7/KO-MP@ P| `p@sPp\P岽D½PX ׽\ ᘽH㈽`T@L` P~\ X` ` K`uPm `p@ QA  d ^ Q R\ xpt p /tY@@` P0X P T0K` \T  L @墢X TpKP`X ( ,0K` p\,  $ p劢X @PQ P`冥T0KP  T@ pv`tN`gl`4圤p P` XAT @pp P8@XH@pQ 0`00L D  ,pʠp X\0Kh hdd 0XP\`   @< P㲼0 i `` X! P8 HpQ0(` 0D Lp`P剠\p\ KX0KP Cl@\$`X ӀX \T0KP  TP L X X0@`* P巤T0KP@ T 'A@@`dPK AAV/*q`p`P" P Td8P T0KT@  㤡\@P&`<X \T0KP TP  L 呡X l @XpK d\0` pl`P凤4T0KP  T` w` P{T P  TK2/\T0KP T  ^<@PpT0K TP Q\ pT0K TP EX`$ 00@P:X \T0KP  T L ,X (l` P啁\T0KP T p p\ @P/XT0KP T  L@ pX `PT0K P@ T` p  P囃T0Kp P T L@ pl P剃T0K P T L@ pӠ X` \@ P$@PQ(` `奣T0KP T 8P T0KT p 㳠P `({\T0KP @ TP @墠P`_T0K TP @喠`pVT0K TP @加@\` `` XTp8  P0S Q @Hp0D Lp`\PpDX \T0KP  TP L SX  ,@K`P`p[ 0X \T0K`@P  T@ L 8X l @XpK\0d   p3plP@.4T0KP 0 PTP @dX0PP@0N* J <` PzpT Po  TK2/\T0KP T  @P~T0K T@ 0P~T0K T@ ݟ\ @@؂X \T0KP  T L ˟P@pX L>jh<` `XT 8  H`Q4pp , 0@D Lp0PK@ &| y0( K,p ,0K +PK@ }l@ lp_p,0K(@ $  , p@pqpQ)PpK {l6`<l( ,0K,  p$@ hP@qpAZ `lpPxP0K L@ P pәT lP`Kd@P,}T X,0K\(  , $ p庙dp hp `pX`Lp P H` D T l< 8`P8 4 @P 8@< pp` P<0lLP Q T 0  P P@p0TX`KhKd KA D`  p& 4T0K @` p`T 0@XP|8P0KL P  (PHP [pP@N P0Kl` L` Pp K@p PsXP0KL  P@ :@PwP0K P@ .PpwP0K P@ "`p XP Lp <` \PX`$PP H` D @ p8 ` @<<0`  DL Q, H0 P T}D`PpwT XP0KL  PP H T K P\ 0@7T XP0K\pL  Pp H ʘT `KTKX0 !d p@ P``徛L P0K4 8`P` 嫘T0Y 0_l`* Z Q@ P0KPp  PML P0K Pp 儘@ PrXP0KL  P@ s@P0wP0K P@ g4P'wP0K P@ [X @@V{T XP0KL  Pp H IT ,j`\@Xp8PlL P@ Hp D @P < p8 h4 8`< pp PP@PP PP`K( dTK0T`L0K Lp 型`pL0KH  L` 压` pfTL0KH  L` ~`p;jL0K L` r@p2jL0K L` f@pT Qh@' *# T`k4L0KHp L  LT p`dnL0KHP L  Dp ;P , P QP Q P`B Wp $ 0@ P QppP Q P`B UP  PQpp P Q`AP Z `~khH L0K( L ܊T pmLKL0K @̊P  qmp=`L0KH  L` D @嵊`i` dL0KH  L @妊 詧 0pL7/KgiO-tMpP=`@ $` *Q   ` QS B( 4 P P u B`XPTK(, K, @ǨP1 ,0@@ 0R RS:#`F@S*R ``FFS*P` V`G` ` Y` K<K@28[PC , Q <K@ K⹅@@P4 <`KPP,P PU"* AAUe*4 ᝅ4@ RT TP Q U: B@U:Y`"P K?],P R RU: B@U *  AAU%*P弐4k4 ($ (0K$ ( {( `Q  PY` `Q  P R ``<`84PP *8/n$ dSP( Qq/n (K`2/( 2/$P0,0 ` $  P, @0@+$`PP@(P P`(KP@p4ډ0  T ( QppP Q PAP (P (P ҉0  0 0 )Pb0   $p Q `(`P Q HPAP dP g  Q  ``(@P  Q B PQ AT@ D:m TeD@ @0 0¨0, ,0 0ຨxii0g 08==08x==0H-P@ P k0 P P@0O-4M`@P P Ტpi"QPU o`@@ pP !0 0Px A@Q AP 0#@feQd Qb " AR! PIIQp PG PjZB @ p !0 0ජP    R QP F @ PN @Q P$Uup @`P*mP P U#( U&P$ )LPpP@T `PP@PPyy*PPu @ `@pP/|Y  P (P(Q0|mP P pPP A`0 P@ PQUP BQ3  2` BQ.* 0   +ጤ 7JPPI! `@P@/  5 j-0 ` @@VEb xP0 @呆P @a0 PP偆@Ae0 Pu@ ePU㶉0  $( , 0@YPe0 L 㼢ʡP P Pe0 5Pd0@ @'Pf0  @@`P0i0  $`@ @h 0 $` 0 P `5/ @QPPP Q`P`F T@  `Q@@P QPPI V`  PQ@@P QP`H sUP uP`@nd0 P啅 蘢 PKK-(M@p`P/P7"R Rᘡ/ a`K Q QP(84Ldt p `  Pl $ 8 , < L`L p p    $8H X h   ( < P d x , @ T d   x , @ X    0D Xl  p `  b QPZ KK%  KKN P< 8KKo PQf_KK+KKhKKKK  /-$  ? PKKKKKK&KKKKJKKKKRKKKK:)KK%KK_$KK$KK$KK KKq*65$  &>*KKK!bKKKKKKt Pe Pe KKXzTPo`  㽝A DKKC  KKKKKKKK KK KK KK* KK  0KKQ 0KKKK KK KK*#eP /S傃` 0p7/ Pe;$ KK.Pp` 0 p P` 0Pp5/KK>KKKKKK 0 &d%`$\#X%;'PKK*!G%C%?;KK2.*"P 0+S兂0 KKX KK  KKKK|KKg WKK#KKKKKK 0 0KK(KKKK KKkKK!KKKKKK- P d:$0 `KK" Z KKa iO-$MP@ Ϛṝp@   0a_0 p    2/^᎝KH-@PPmP"PP㤚P `VPp P PpPWPPO-tM@PT`p(dP 4@@ ` #`pLPa K, @ `P< ` Q  A} PQw8@4@P@/Q<`,pP (P0 P@<0K8 <  P4p (PC8U U|*ᇮ pA6\`H@|(L0KHP  L D P@@` < 8y(@WL0KL  P+y$@O00 p 0y`@!R@U|P]p{5{LL0KH <L` `D < 8K@ 8, 4( D$$ `x@PuY@L0KL  H@ `x`P[(L KL0KQ xP pl[L0KH@ L  D` xp@EYL0KH` L  x@`[L0K HP L D@ x `=[ L0KHp L  D@ xpTP,P*  `L0K Lp qxp 0`0@6/K,PKUO-M p @`& P`ٖP  Q 0 S B @Q0 0``FFR*100#Ty  Y 0`6/  PQ ``P Q @AP  Wp  pQ``P Q@AP  R   Q``P Q$@AP UP  QP P P Q0@AP Y a@KTO-MPV`4p=@Z(pk"Q`` 0 `?0 KP 0$p P@  R 0 ! R4  R Q Q 0 S B!0Q Q R#PC* ?  /I8 0Q` p``FFS*ap pP0RAp@4@K 0 AAY* (P jP W4PPpK`1](PL0$@L P TP@vp0 `0HP0K Lp Pp HP @v4 @ PI" R? P`K@rZL0P LpTPvP`uP0KLP PP  H vP`P0K PP v`@?P0KLP P`  H Pv*.HPK\4 `@!$@ V,:KK(@ PK`PL@L@ 0TPov4 A PLBZLY`00 40p8PpUv@`I00 4@0Hv` pP00 4P0`9vP`T00 P0P,vPLY 0 A p 0+S1 QgY00 04@(@@8P vpx `P 0pP`W,0K( ,  $@ up40P` A P 8uZ ,0K (p ,p $@ u0`PqZ,0K  ( ,p $@ u4 @, PM,(0@H8P XI \  ,0K` ( ,p $p @ `u4Q P00 0`uPPPt00 408=`<   ,0pP`Xz,0K( , p $@ pMuP,`0 00 <@PD@p:u` PP$p004` 0p8<$u` @ @p `P`x004 0p uPPK`F$004P0 8<@t`S000 t`Bwwp0P张[ $, ,0K($  (p  ` tPp]U00 4`0@@t`pW004P0 8`@t pTW 0040 8`@t PCW400 08`@tPps004P0 8<@{t 0p `7/ KWQ  ǔ>06O-M`@ P vP 0p7/@  "pЎP ppQ P Q AP UP   Q`` P QPAP Z  pQ``P Q$PAP Wp  pQ` `P Q0PAP X  Q`$` P Qi@ 0 /ip@`t0 pi@ `C0 @i`@G0 `i8k@G0 `h`@pQO,0p ,048`ph@nI0` pph` @tK0 `php@K0 `h0 P `5/KO-4Mp Pb@(pQPg` ,$)PJ p` `开J(0 ,P(0plhP`( 0 P \h`PMpt 0 `LhPp; 0 P@hp 0P5/KpL-MP@㾂` 0P5/KpO-MȧP@@ς` P㕂@PpFP0 g`あ@p3P0 gpj@ p Pf@0 g@ P_ 0pP7/ Q ppP Q PAP jV` m pQ``P QPAP RWp U Q``P Q$PAP ;T@ >M@KO-M@ p`vP P܁)j`@@ 0 P `P``,gp 0 `gp` 0p  Pg`p 0 `gp@w 0 p `Pf@` 0 @f` 0pP7/KO-$M@Pღ`ph]P PTi {p㑁P0p`  P`fpS0 `fp`_ 0p  Pf`p0 `zf0 ` Pnfp 0`P6/KO-4MPp@ QB`=&ڀրp P̀ph@ @pz 0 $ (%f`p? 0`A fp 0 `fpb`7h 0$@ e` pi@ 0 $@ `e@`D 0 @pe`D 0 pp @e@ ` 0 $(@pe`pIF 0 $@ ep@H 0 $` (p pe @@H 0$`` `(pep@^h 0$   se 0  $`jep@`?h$ 0   Te 0$  Ke@` 0 $@ >e`p 0 $@ 1e@p$` 0  (@, `0`e@ 0p`7/KO-DMP@p Q`p($@ P} g,``*00  4p08dp@(0 00 p` d@r00 0p`d(@`f004,p 0pd@ `?00 40@d@`RC00 0@d`HC00 0@{d`@00 0p48`kd@pD00 4`0\dp`uG00 4@ 08p,pJd `F00( 4@08pp8d F@$` g004 0p d `00p 40p d@f400 0@pd@`g00 04c 004@ 08c@ [F400, 0@@8@c [F`pf004 0@c p`@00( 40c@f004 0@c@`00 40c 004@ 08c@ZF000@p ,@48@ptc`h00 40pfc` p=00 4@@0`Vc`pB00 0`@Icp@ 0040 8<@p7c@A00 0`+c@m`C00 4@0ppc`@1F00 408`pc@ pE00 408`bp 0P$`5/KO-(0 (P_`ap(0(,@ 0@P4`` @`p_@(0 (p`b_`@(0 (`pU_@`O(0 ,@(PpH_@(`pE,0K(@ , p$  p1_@=(0( p$_@YaPxa`?(0 ,@pp(_`@(B (0, (0`p^ pA(0,P( 0`P^ @A,(0 (0`P^@p£$(0,@( 04P^@ 0p `7/KO-DMP@` Qbp{kyyByp`+y((0 ^` PpOpy((0A t^ 0$SP0p 00 p ( $ , ' ( pp~mpyCp;_,`(0( 408< @;^`p` 07/K\\fK-MP`xp@xBPF /U0 0@4/ Q @@P Q AP ùWp  ƹ QppP Q@AP ᬹX ᯹㾼Ϣ{@KpL-MP@pB`P /0_` 0P5/KpM-MP@Ix`fxpHBP //`匢0 pp p]` 0Pp5/KO-,MP@ Px_ Pw__ x`wx0xp剢0    `$(p@]` 0Pp5/KO-$M@ Pw]_ PwR_w`wpwPwB 0 p`P \P 0p7/KO-$MP@ᕜowpw`wAP  \{P) ``p7 Q Rz`/.V0 `p  0  `\`t `Cs P  FB `` Q `p ] zx yZ:`J`FV qp`^0 ȹGpQ0 Q  ᕣybP@!01Q p@@S*p P pW0Ri K 9O-lMP@ʛ`vr `W4:vB^0v8v@P  @P  P40 K8,pp0p zzPn 00` Q R`/./ ./.V00 `8@<04 < D`[80<0<p  p[ `6<0 @<p[`R:<0 `<`p[`t\p姓Q   pp Q pT\( 帀$ wjQ  z pp Q p 0X8@<0$ ,0KP (` ,` <`$ (P~V`@@L0K L` pPpV@ P0L0K L@ ppH `V@P5L0K ppL@ SVDP5L0K L@ pGV`8LPK@p~8^@( ,0KTP,  $` P0Vp5 XKⷽp0/00 P L P H '   L K;e@:`XVPX<L0KH LP @  Dp 0 S:080;0S @pCp ae`a`V2p1W0p W05`A`VR p W00S0#@ ᄡ 2 B!KO- H-Mp `Q@T 0 ` mPN0 `LK/0H-@ R 2R P2RM(pQ LP00H0HL-@8(qQ LO- MPq`tm @02pP3 `W } @Q д` `V`@PP @Q ᯴@)`WfP6 0 %p QƳ@ @0SD RkL@`pVeP 0 刕PghKLL@ 0p7/K-MPԋp l `0pQ4 W } `Q 5 @ Q_`PLp型`W eP!  EP 勋W |eP  2P #g h KM-p`@jPP[eP 0 Pg]h@M-p`@HPP9eP  Pf 1 B/Bc-iO-TMP@d`0` ~dp4p ddP K0K /BdP4K/P0K.p @ 4K.` @  00S 00Qq  Q Q: @Q ᴲ ` Rݱ @  @8,@`,0 iIp pL0  SI`p0* WJ,0K ( ,p $p :I`+ Sq( ,0K$  ,p "I@ + S`,Y8,0K(` `,p $@  ` I @4qpQ$p * 1K`,600 (` `, $  0 ,0K`H4pqpAW 0p`7/,@O-lM`+P qcp P (@(/P ZHD/D? 0 i(PTU\ U! @U$` @,c` 5cP Sc8`7c`.P Pp P <P .-K-K 0$P( p- [ @R0`SQ {U UL U@8 Pb b b` p,0 ,PP.Hp #@ÿ,0 ,pPH-PK-Kp( 0 p-[ @Q"` Q * b P崺,0 ,G@ #P兿,0 ,@Gp P,00p,@ 4pG @r Q  |b Pt,0 ,G@  #PE,0 ,@Gp P广,00p,@ 4pG @?q Q ᪰ =b&b@-P Pp @P <P -( 0@ p R$`@Q  q# ba@-P Pp @P <P v-( 00 @$` ?qR0Q3 49P Q]pG @(4 $`@@ QPu*,0 ,pFP `(J,,0!  pF,P`< z(p,0K ( ,` $` F,P(p( K,0K,` ! F,(@Pp,0K( 4@ $ ,` @ F,+-p( ,0K,` $ @ @P QٮpiG @(4 @@ QP),0, $`cFP `图pI,,0! QF,P`< 'p,0K ( ,` $` >F,P ( py( K,0K,` ! ,F,P(@@pf,0K( 4P $ ,` P F, u) pQ,0K(  ,` $ P F8 $peP QO`F$ (4 @ P`g),0 ,pPE` @I,,0A  PPE,@`< l'p( K,0K,` A PE,p@'P( K,` ,0K E,@'@Pp,0K4 ( $@ ,` E,@,p( K,0K,`  wE,p@,` <,0KP QLF$P p(Q4PPp0U$ U *q p$X,(P $B\`$ }9$ R($K-P($(_P $K_-P $K _I.0$W `,/ pG`GP*$a A0A!.rPP P`*$`nq GW` 0$pV$ yq 0,0P#U,=p aQPQP5PPhP9q `0 ( , 0 K  0P,` Gq 8$K-P0  b, ( a(  PUPVP,A PPPVPF5P` pW48< GQU.*p `W84<  8 4 0P8`p Z 7 4 0yPZ- p *PPQO-TM@6[ \P@-\ p`@4p$0 PDAP @{@D0a 1A<8" p `Q H @ Qq`4`B@PN8<,0K(@  , $ @ @" @pKpP4(K, ,0K @" ~KpP (K,0K,  @P@'p ( K,0K,  @@& C4P`p@8@,K,0K P@& C`p,K,0KP@ @@<p@@ 07/4KO-\Mp`@[ [.[D[P KX`pP; <0HP` < Pp@ 'Z<勻@0 ( , $  0 ,0K@`;@pDW<PD @ 0$  (@p `H<`p# 0 @@P @@MpWC  0! @@ P@!Ap@8,0K  (p ,P $P @? !@ Jp",K,0K  ? ! jJ<`p ,K,0KH@  @? P Y" p @( K,0K, ! @@? P U" p( K,0K, ! @? P S" pҺ( K,0K, !P P?D@ 0pP7/<KO-\M@VP%Z;ZY  QK0 p7/R@` P i p B p@ R P @ @ <`P" 0 @?P @pR@v [B  0! `? @@  @Pp<,0K (P , $ `>@ ` Ip P',0K (p $@ , > @ oI -!?P @,0K@` (P $ ,` > @ ! P( K,0K,`  > !?P @͹,0K (P ,` $ > !

Dq @  AP<p嗹@0 (P , $  0 ,0K`H>DqpQ% p,KP 3 m@`<@r@0 (` , $  0 0">DPqpAUP 0p7/<? KO-TM@*XpXP@X` (@弐  ,0K (P ,p $` = p$`pP]!(0 (=P @@A((0a  = (d R R/Q Q/Q*" !` Q ᾦ @ Q`p>@(Pĸ ,0K(@  , $ $ s=(M@ H`(P嫸,0K (` $ , ]=(F G`(P喸,0K (` $ , G=(P@r`傸 ( K,0K,  5=(@pP @`pk$ ,0K(` , $@ @  @= p@@ 07/B KQ  c]`/5haO-TM@W W@W @aQ   p Q4`= `@@@4`P 0 <P p@0P  @@<P8 T p,0K(  ,P $P @ <s 0Gp@ҷ,K,0K  <l G4`p@廷,K,0K@ m<@ p娷 ( K,0K,P  Z<P@d p啷 8,0K,0K H<@<4w KO-TM@V @Vp @bQ N P Qw`= `@P@P4`0 p<@ @p<E?01 P;p8@),0K ( ,p $p P ;@ qFP(P ,0K,p  $ ; ZF4P`@,0K@ (` $ ,p ;@ " ` ( K,0K,p  ;@ " >` p϶8,0K(` ,  $@ ;@<4 KO-dMp@VU@(V `?Q P ၤ B@ QP:< E > 0$ ( ,  ` ,Kc @P " >`,@嬶(0K A  $00;@@$  " >P,`咶(0K !P  $00P:$ ,@$ (0  PP: p@<0pk0 P:@ `P >0 :@`4qPD @0@`A :@  PD @0 @`:P0@p޵@@04q8p4@墲80 (p p, $  0 ,0KQ7@<"4P劲80 `(` , $  0 ,0K:7@< 4Ps80 `(` , $  0 ,0K#7`<  8P4@W80 (P , $  0 ,0K7Z<@,PK 59`4:80 (` , $  0 06<pW@ 0p7/4 K  .WG/5O-DM@ZpSQ}Q`QPTQ ($,`0P $`}$7p$P(0 (p , $  0 ,0K6P,c$`˱(0 ( , $  0 ,0K|6P,M$`嵱(0 p(p , $  0 ,0Ke6P,6 M7`$p嚱(0 (` , $  0 ,0KK6, 0p7/$sKO-LM@ɂpPP P`QP 8, a ,`,7p,O00 (p , $  0 ,0KP6`4,p900P ( , $  0 ,0KP5`4,p"00 `(` , $  0 ,0KP5`4 6p,P00 (p p, $  0 ,0Kp5P4,`00 P(P P, $  0 ,0Kp54 0pP7/,KO-LM`pZ?PPUP@ ``P 38  0`,4P8@ ,I@:,m6P,垰00p (P , $  0 ,0K`N5@4,P凰00 @(@ , $  0 ,0K`75@4,Pp00 @(@ , $  0 ,0K` 54  6P, @U00 (P , $  0 ,0K`5Z4@,K 47`,P900 (` `, $  0 0`4p4Z @ 0p`7/, KO-|M`@_Op[OdOP(0P OOQ K0K pp p  P Q: @`Q ṝ` P`V`@ ` Q@P @ K0 !4 !A` @K T<@,K`  6P@p唯<0K (P P, $  0 0PD4`8 Z@$@$8 <<0@  <P14 `0P,48p@<0 <`P4@ PS`w \7<<0 4$@P0 > 76

2(@ 5`Pt,0K$ (` $ , $2( i5`(P[(` ,0K$  ,  2(@ P5`PB,0K(` $@  @,@ 1( 95`(P+,KP,0K 1(   @$5`(P,0K(`  `$ ,` 1(   5 P@$,0K( $  ,` @1P 3P `@( W ߬ ( ,0K,  $$P 1@PT: `@o(0 ,P(`@~1 p   @p(0 (g1P p埩`x 4,P(0($ 0O1(P T2`p冬(K, ,0K@ 81(`Pps( K,0K, ! &1(P  ;p `\,0K (p $P $p, 1` A3PP:( p   =$(P ,0K,  $` 0` pW:pP(0 ,`(0@ 0p$7/K /M-P@ `Q ppP Q AP yV` | `QppP QAP aV` dswM9N / /O-LM` P#Q p @ Pከ 0 `a0` 0,04`8pS/,P ,p厫00 ( , $  0 ,0K?0P4 ,pw00 (` , $  0 ,0K(0T@4LP`    p \3    @ 00@ M3p 2p@  0 /@  , p-00 (@ @, $  0 ,0K@/4P`FU,P@4 00  P p@P0`p /KO-GMP@` P0 pP KO=:p# R W   0P <wxKd , 08``` ,pX!  d R8 PÐ0pQ# ᮉ`Y** A[P $P`PMP@`w 0 "0# %# 0,0( 3"@` TU*p% P_O `p`@  00S 0b T   8 2/ KO!Prp`  0DPU @$PQ :"$PUPY_$P@  P 0P   3   P@  PP70  $P-@ R 0 P  P0$P@0  0 V p` W < @ @8  0 4 @KP44 P0@K` "p@ 4P<0K0K $  0 0$Pz`8 V@@[8 <00K,  0 gK@`V`pY:@q /;   /pf/d pL-P@G"AbQ (<P$dx8L`(<,Pd@,Thxt@p|DX04l8<  $(,0p^ ; p pXppp*plpaPX PZ Pe!W p< ppCpp%pqppp/pppdpvpL pL p pj `50 {g!pp<pupppNpppp"pp:pp!pLpp*pGp|pp} pppppOpp-ppp pQ ppp8pppp pZpp ppp@pBppb!f!0p - %~foK-(MP@HN!⬄p  0$  ` 0B pp-,p0 kz:K4WeM-(MP@89.pZ{p`$   @@0G  +p0 -zf:KeK-(MP@G!M~p  0$  ` 0B pp%p0  tcE4K=eK-(MP@G!~p  0$  ` 0B pp%pZ0 s) 4Kl PWp0 ka!0KO  u0  j`30 jg  0( $p H0B$ p K0 j*KgeH-   -끡.5H-   -Y.[5pL-P@Y `0 jg!0pLO-4MP@@L`8>p(l!00  $0 0p  vp 0 ( v&` P Uk 0Cj 0D= P4P0 pBd @DT@@A@@@PU$@PPPUA0pSpP( P4P$P  *p(pKDP0Q Q 5p j T LQtP  0\   $$K0~ggt^; gg`;g@g$gg-^;O-lM@0T 0P ` P mm0P $@ 0QSH?X p0@$P`R`pa0 `@T``8 K  0 @PP @<<PY H$pY!(@8K$`K$  0Hp  $ 0YHp$Pu( 0@H`p 0 H `o 0p <0p0@7/$PH`?@0 8@K`Hp@80K H p980K  0p` 7/U*HA `@8KQq PP LQ P _ QLL$PKP B@PUk0P`  P   KQ  LLKgO-,M0\P @P M0\E  $ 00S 0S 0 R 0pWQ L$(0  a L*PQ QP   tP0\Kxg`gԽgO-M@T/a nR0N| hR$(Z \T [R, N4 SRp,P IR ER0A` @K ᖵ   2/P "R(P>P`P , pP k $ A@ Pjp  R@}  K 0   P 1 (`VP P  R  RZp`KH0 -q0 $0K$ $ PH `64 $0K $P PH`p$0K $P 4H``$0K $P P0 0PP ( ,`H }@Z KH/H/  j  j /A j/ $Q/L-@(84\($fhafL-@,84L($VLH{ (af/}E;O-MPp]]P,` @@` PQVP)P 0P QP q`KO-M@`V' p@ @` j j  Z z, 0$QQ R@Q ``@X8(9AP  KO-DM0@0( e,@F@ PU  `@@ @J$P 1  02S  PP*P10( `qP P@ P YT@9 5P ,P. P Y,P& ," Q"  $P$0pr(?P/ P P XP XU0 00 P0 0p4 0 3/U~Z @ `LF0P P V a Y`$Pj 0`@,(PBp ,K ,p 0P 0 )P| 0(p ,p p,V p((FAP*A,RAA!/rPPP $8( q!, V 0F !0C B#1p6pT  !@` Y0 @`0pP Pp 0p[ (p ,p $p ,K#($P (( CP @,0K,  90 0 p  7/Q, 0@CP<*ACARA!/rPPP( 7,0 (`V PAFA!6S ,K@0` p @P,0 @` ,0 00 p 7/,P(   P P (  $P`M 0X*0`,HAP*ABBA!/rPP@ 070@X1  H BA"!080VA @D `U*`,$0EAP*AABA!/rPPZ 6 a$`U  E BA"!050VP$'0 PZ*0`^,@JAPT*Aq bAA!/rPP`$ @60,@ $1Z1 0 0J!0C B`#1p:p T  !`$.t`p, @ P,DDDD D,DD, @0`  `  2/, (YX% 0J@Aql  0(pX+ 0I`$P X0p@P`V`k,0K , P`V IAP*A"A1/sPP 6X 0  H BA"!080V1 0U ,P$@'$ EAP*AA"A1/sPP k 5p$`@U  E BA"!050VA,p0(` P 0F@!:pPS,0@@!+0 `6/@%`,0K , `pP P,0K,  0p0 p 7/KgP  I봥gm@;%T.'4//O-777 0p7/f7+e7,$4$8$9$`~   `pP1 pPG`  K049hKOKOKOKO,KO^    `pL v   `pl 0 `>s6, `Q$P#s6  0p7/6+`KO{:$KO` 0p7/KK-MP@   ` p56 0'KO-$M`P@!  `pEl 0KO-MP@   `p 0d0  `    2/OKO- `po}k 0KH-(MP@/Ww 0   0 0 0 K 000Z` p0 M KأdH-(MP@"Ww 0   0 0 0 K 000%` p0 cM KdH-(MP@"lWw 0   0 0 0 K 000` p0 .Mg K0dO-$MP@> h ~ `pj 0KO-DMP @  E  [ p`a0 @t` @0 p``dp@!0 p`W `0 pH@`p`j( (0K$  3@`p2Kj(0Kp  $@ (@ p@``b0  pp `@ 0  pp@0  $p0 @ p4/  0 @KpL-MP@`` 0P5/ p KppL-MP@`` 0P5/ V Kp0H-MP@ 0@ `P  P>P@`H RV `)    R%@P >p  pW=p @  /PXX pHAP*AAX`ARA!/rPPP P!qXX  0H!0C BP#1`8`U !PP<j@80HD PqQhU `X`, K00X \\ \K\0E TPP@Q`l`hp`t`Q @qW-* p@ltp@W Ap|`x``XQO aV*e |@xP@UA &U|: p(K   `` V  ``` P Y` aV V` V UAo!WL,$  X0( \ pW@, `hP`@媳,$ (0KT ( \p p X@, K, \K0`D , L ,0(K P$, x(@ P0  | l P p L@Z`Z  $84P`@0p( `(4H0p0@X8@ppQ,( fP`@@@D0`Tp V<3@T  P p T@Q AT T@T WAo!K(lh0X@h \p@%``Y( TPP@K(80K4 p 8 lPP `80K 4p 8P \pP80K 8p PPHK`I4 ( K 80K8 0 , 1 :`80K 8p .`p徭80K 4` 8P `P94@ 8 0` 80KP PQ@>(4 80K 8 @ pr80K4  8@ p@媫80K 8p HK@H4 80K  8 0 , (` $ @勫80K 8p @pL80K 4@ 8 p@ů80K 4` 8 0p ` @C4 8 0p uHKQH4 80K  8 0 , (P $@  "HK H4 80K  8 0 , (` $ j`R(PpPC80K 4@ 8@ 0 U@,Y4 8 P80K Hp@HPK`R ?,4@ 80K8 0 ,  .H`K@P9 PjC 4 80K 8 0 , ( ,$ p P(PP@IC80K 4p 8 0p , pP P @<,4P 80K8  @ PT80K` 4 8@ `@P匪80K 8@ ` `僪80K8@ @ @`< p4 80K,8  @`8@K(pPFH0KD` H  `@ p<` @P 80K4` 8  `{P售80K 4@ 8 0 `lP<@F,4 K8p !80K X`A,@p80K 8P H`}(Pի80K 4` 8 6PO8K80Kp p'` @ͭ(4 ,8 0 p80K P$`K0`-4-F6086O-M-M@0p 8 ` 0P<` Q $PDQ HQ@Q Dp@p@PHpPP @DP Q$`   |   v $P Q:A `V Q4Q0 $.^P, @ 0+Sg PNP ` P. 3p6P;P7  0  )/@Qd` @0 ` Pp P2`@0  =p@P D (KЍ Q|  Q: 0sp0 AH l *  Q   tB 0L@00P0TPX\`dhl p@=D0PEP((P@pMp 0P `5/%$Q*0P% P$@p 徫@D40K  0 4 ,` 8  Q0  2p6P60P P00<K 8Kp80< `   6/LPpW1p;Pe($0  $lp>$0  ($p,`\8 @p6M`p 0bAO-(@$PP<@( ,0K , $ `PL P`PP p Q 0pQ .H@+@$(0, (P04@ Q.-p pP %r &B P P$P%0 {PH@?$ (`,  (004ၦPP`@(0( `(@p`2?@ ( K,0K,P P PuH@? (0,(  0PP4b@F`(0,(P Q`K  }-3O-LM@0`   0r 0qA``PPc pV^P7 @ ` 张˪ 3?( ,0K  , $ 00W 0*GAP*AAA!/rPP  @^0 ! 1W  0G !0C B#1`7`U  !P`pX@pp@T*P)DAP* AbAA!/rPP` P T`  D  BA"!040W @T*p)DAplAbAA!/rPP`Z pT   EA0H"!``S`@PT* P$ DAp8A" AA1/sPP *  TQ  GA0J"!``S`V" p`ᢧA>( ,0K p,  $ p@P 4`C$ p@ @㋥`p(5 0 P P@p9 0$P pP( P@ޥ$ 0 @@(pPP3` v$@@ 0 P`3p$P 0  Pȹᥥ 0p $ P(@pP`@ 0 `p@ @p:`  0 u @q`p=(K, ,0K@ ` p@ܦ`=,0K( p , $@ pL`p @  p P}=( ,0Kp,  $` p-`@T P@ 0 $` pK`r`H-@V  P6 vP< oP `W倦Q /)pL-M@0 oP& Qv Q0 Q0R:@0`0FC1R:*Q0 0``FFR^*10 0 KpP``  R RV@* @@V<*Q:_` BAV:(P` ` R RV* @@V*Q*4 BAV:KpDpL- @0S S&$P P l*p 4S ` R$S0SRS p @ P{)Pp  $PP@ P 3* ` P\)@ Qp> /]S:H-  j  !3$/L-@   x-$/ 0S 0S/0 R  0S/H-  H/0H-0P0H L-@ 8 N j Cw-3$/L-@  4 jw ) %Q Q QX T 4 $  3w-a3v-66m-3߱6$/L-@[  T 3v-$/ 0 S@o"/ 0 S/Q/L-LL-@6 % su-$/0 /0 R  0S/oQ /0 R  0S/PQ!/pL-@PA`O;PIpL40H-@ ,P Px  s0Gt-O- M@ P7HP  Pr 4  pLPu`r   2/P LPu0 ` 6/P 2q Q Q  Zo P 1/p q Kff$/0/0 R / 0S/Ao/0 R / 0S/Q/pL-0`PpLL-@,T $wq-$/ 0S/"0 R /H-  H /0H-@@RP`0HKH- Mݺ Р$/H-  H- !H2/$/ 0S 0R S03 /0 R / 0R S03/H-  H/0H-@ PP 0HL-M@↺4 6( ( 0 S -K;o-4 M:$/H- $0$ 0 Q  H4L: 0R S03/x0 S0R 2H- l H /$/L-@LpL-P`@Q PP AoBppL-P`@Q;P @Q@p0H-@ rP0HkL-M@   SKm-$/ 0R S03 0S /0 S0R 2 0S /H-  H /pL-@P%`3pLL-ML @H0 S ] , Y ⠹KP4I:k-$/$/ 0 S@o"/ 0 S/Q/0H-@P0H0H-MP@ P ,  ]K0j-$/@o/P//H- Q Q QL  H  (    H:H:9a-;3H:$/ 0 S@o"/ 0 S/Q/ pL-@Q Q    Q Q QX  T  4  $  =TG:uG:l-F:F:_-3F:$/ 0 S@o"/ 0 S/Q/0H-@,P&0H0H-MP@P , P ◸K0g-$/ 0 R 0S / 0S/Ao/ 0 R 0S / 0S/Q/pL-@ P`@pL0H-M@ Q Q Q'    P P   0 (  K0  zO6B6\-3J6 f-$/pL-P`@Q #P QAoBppL-P`@Q  P Q@Q@pH-P@ `O;pI5`/P=H(0H-M@⹷0P Ph P c PK0d-$//H- Q Q QL O H J ( E   >:#>:Z-3&>:$/$/$/H-M`@P`[P t pppW P 1/!Krg$ $c/$/H/l//////Q/Z/c//u/~// ////-////6////?//8/\/ ////Q/4/X/|/Z/// /c/T/x//Q* $X<H0xh /v/q/8////{/ /H-   V-3 Q/ (dHp8|X(//x////% ///h/H-   U-3 Q/ (dHp8|X/X//////* ///H-   jT-3 Q/ (dHp8|XH////// ///8//H-   .S-3 Q/ (dHp8|X/x/(/9 / //////H-   R-˵3 Q/ (dHp8|Xh//////> //X//H-   Q-۴3 Q3 (hHx8X//H/`/ /p//C //8/H-   vP-۳3pL-M`P0P0 @0   @$`(PKp3:ZepL-M`P0eP0 @0   @h$`(PKp3:ZepL-M`,@ET0 P0  W  PG'$ Kp*3:YeH-M`@8p#d0 0  '00 0 $(p,P0`K2:@YeL-M@,H0 0  $@K.2:XeH-M`@8p`0 0  ,    $(p,P0`K1: 0p pp`> 0p pp`U> 0p pp`pTVP> 0p pp`a W>  0Qp pp`R = D0Zp pp`C = h0cppp pp`3 e|= 0ppp pp`#H fD= 0uppp pp` g = 0~ppp pp` < 0ppp pp` ]< 0 ppp pp`h ^d< @0ppp pp`0 _,< d0ppp pp` &; 0ppp pp` a; 0-ppp pp` b; 0ppp pp`P L; 0p pp` ';p 0 ppv q:p <06p ppg r:p `0 ppY :p 0 ppJT uP: 0p pp`: s: 0?ppp pp`* 9 0ppp pp` 9 80p pp` p Yl9 8\0p pp`8 [49 \0 p pp` 9 0ppp pp`80 0pp pp8( 0ppp pPL8 0Qppp pp p4pp pp70 4pXpp pp707 X|0pp p`td`7 |0Zpp p`d,` p pp60T` pp pp60A  p pp`601x`  pcp pp@608` 0Tp pp60 Tpxpp pp`50c xp pp`50S  p pp``UP0TS 0p pp`S 0q wp pp`S 084gp pp`S 08v\p pp`lS 0`ㄗp pp`0S 0{⬗p pp`S 0p pp`oS 0 p pp`_xG $(p pp` p pp` K 0p pp` K 0̯p pp`   p pp`l 0  P L 0p pp`  0DpHPp pp`  0l`pPp pp`t  0Pp pp`b \ 0C p pp`Q CP 0p pp`>  0 Qp pp`,  048Qp pp` L 0\`Qp pp` Kt-e+ep+eL+e,+e:*e*e*e*e*e`*e<*e*e)e)e:)e)ep)eT)e0)e)e(e(e(e(e :\(e@(e (e(e'e'e'e|'eX'e<'e : 'e&e&e&e&ep&eL&e,&e&e%e:%e%ex%eT%e,%e%e$e$e$ep$eH-   E-G|3H-   -|3H-   }-{3H-   s-{3H-   i-{3H-   _}-{3H-   UU-W{3H-   K--/{3H-   A-{3H-   7-z3H-   --z3H-   #-z3H-   e-gz3H-   =-?z3H-   -z3H-   -y3H-   -y3H-   -y3H-   u-wy3H-   M-Oy3H-   %-'y3H-   -x3H-   -x3H-   -x3H-   -x3H-   ]-_x3H-   5-7x3H-    -x3H-   y-w3H-   o-w3H-   e-w3H-   [m-ow3H-   QE-Gw3H-   G-w3H-   =-v3H-   3-v3H-   )-v3H-   }-v3H-   U-Wv3H-   --/v3H-   -v3H-   -u3H-   -u3H-   -u3H-   e-gu3H-   =-?u3H-   -u3H-   -t3H-   -t3 0 S$$@o"/$ ᣵH-p`@P$  0H/L- ,@ $ L6N-H-   r-s3H-   h-s3H-   ^y-{s3H-   TQ-Ss3H-   J)-+s3H-   @-s3H-   6-r3H-   ,-r3H-   "-r3 0 S$$@o"/$ H-p`@Pᕅ V 0H/L- ,@ F$ L?`6L-H-   -q3H-   e-gq3H-   =-?q3H-   -q3H-    -p3H-    -p3H-    -p3H-   u -wp3H-   M -Op3H-   % -'p3H-    -o3H-   u -o3H-   k -o3H-   a -o3H-   W] -_o3H-   M5 -7o3H-   C -o3H-   9 -n3H-   / -n3H-   % -n3H-   m -on3H-   E -Gn3H-    -n3H-    -m3H-    -m3H-    -m3H-   } -m3H-   U -Wm3H-   - -/m3H-    -m3H-    -l3H-    -l3H-    -l3H-   e -gl3H-   = -?l3H-    -l3H-   {-k3H-   q-k3H-   g-k3H-   ]u-wk3H-   SM-Ok3H-   I%-'k3H-   ?-j3H-   5-j3H-   +-j3H-   !-j3H-   ]-_j3H-   5-7j3H-    -j3H-   -i3H-   -i3H-   -i3H-   m-oi3H-   E-Gi3H-   -i3H-   -h3H-   -h3H-   -h3H-   }-h3H-   U-Wh3 0S/$$HL-@$uㇲL脲H-p`@P  0H/H-   H$6lB-H-   W]-_g3 0 S$$@o"/$ IH-p`@Pʂ  0H/L- L@ {$, t$ Ll463 -PA-H-   =-?f3 0S $ $0S( (0S,,/pL-P@,(`$pLH-p`@Pm . 0H/L- ,@ $ L6?-H-   -d3 0 S$$@o"/$ ᭱H-p`@P.  0H/L- P@ j"   L6 c3>-H-   r-c30 R$ $0S/((Ao/0H-$(@PnZ0HWH-p`@P؁  0H/L- D@ $( ( L|l6o-=-H-   },b3 0 S$$@o"/$ H-p`@Pᒁ S 0H/L- D@ C( = L6T5W-x<-H-   e,ga3 0S $ $0S( (0S,,/pL-$@(P`,ᾰP̰ḰpL走H-p`@P6  0H/L- h@ $HL  j$$  L5-_3:-H-   s,_3 0S $ $0S0 00R S03 /((pL-@$P0`(DVT`bNpLKH-p`@P̀  0H/L-M p@ |$ßH s< <00 S j  fK85/-4949-H-   ,^3 0S, ,0R S03 /$$0H-@,P$0HH-p`@Pi * 0H/L- H@ 4 4,0 S  L 5 497-H-   ,\3 0 S$$@o"/$ ᠯH-p`@P!  0H/L- @ $Q Q QX X < < L  b59 9,[3 96-H-   SM,O[3 0S$ $0S /((pL-@$P(-?`M9pL6H-p`@P x 0H/L-M <@ g$⮞ ^K55-H-   ,Z3pL-P`@Q $$Q ((P 00AoBppL-0$@P߮`ٮpL֮H-p`@PW  0H/L-M T@ $N, 0_7 Kd5[,|3-H-   e,gX3 0S $ $0R S03( (0S /,,?H-@$P(`,j|pኮvtHqH-p`@P~  0H/L-M p@ \ \$0 S @ (ܝ  K5@{49,1-H-   +,V30 R"2S ( (0S/$$oQ /H-$@R(`p `HH-p`@P~ B 0H/0H- \@ 2@P P+( &$ 0H5,0-H-    , U30 R$ $0S/((Ao/pL-($@Pᾭ㪭`ḭ᤭pL衭H-p`@P"~  0H/0H-M lP $@2(P @ ( K05,.-H-   ^y,{S3 0 S$$@o"/$ PH-p`@P}  0H/L- @ $Q Q QX X < o< Lj  P5,989I,KR319H--H-    ,R30 R$ $0S/((Ao/L-$ (@LH-p`@Pl} - 0H/L- ,@ $\ L5+-H-   ,P30 R$ $0S/((Ao/pL-($@Pᶬ㢬`ᰬᜬpL虬H-p`@P}  0H/0H-M lP $@*(P @ ( K0p5_,p*-H-   VY,[O30 R0 00S, ,0S /( (0S/$$Ao/H-($P0`@H4pB.P<(H%H-p`@P| g 0H/L- ,@ W$O LP5(-H-   ,M3pL-P`@Q$$Q ((P 00Q44AoBpM-`$P0p4帀Ϋ@ܫȫ@(«@ЫἫM蹫H-p`@P:|  0H/0H-M l@ $1DP P0A4 4<4 K05,&-H-   v,K30 R$ $0S /( (0S/,,Ao/H-$P(`@,mYpgS`aMHJH-p`@P{  0H/L- D@ |(3( v,ձ Lo85;,\%-H-   I,KJ3 0 S$$@o"/L-@$LH-p`@P{ B 0H/L-M <@ 1$x (K 5<$-  /O-4M@`(P$p,`0o$ 0 0LP  K `@P6  P 4~ pptP p` hP  K  j,G3O-Mp@ P`ᇾP K@  0P}p@P |0 ܝ`0 Pѝ@ျP Q ppP Q `AP UP 0H-M@P P帺@P!0$,PPPP4P,@, 0  @傝PK0O-4M@`G@PpP (PPPPPPPPPPP(($,P`0$0  ?P PP:?($,PA0$0  P ,p pP*0  P pp PP  K  L1,3C30H-M@P Pz@pP@1pP,@, 0  @PK0pL-MP@` `忹 0 P B` Kp``` `KpH-M`@p P p囹0  zP p Kppp pKO-,MP@p pvƽ@P L8@Hp  KpppP`W F$ 0  P( 5 PKpL-MP@` `0 0P B` Kp``` `KppL-MP@` ` 0P B` Kp``` `KppL-MP@` `  0 P B` Kp``` `KppL-MP@` `Ǹ 0 P B` Kp``` `KppL-MP@` `夸 0 P B` Kp``` `KppL-MP@` `偸 0 `P B` Kp``` `Kp M2  B RA0!,l\|<LJV RW R x XH-   k,;3 G2  BR$0!(H8h0  00  0H-   6,:3L-@l T  @ @'Fd//pL-M @`t @PpPe /Q Q +PT ` PP PB ` !@P yP2 !@PjP#$X @P 0 `  6/ <  @ _  PKpH-MP@p `P_P _㺅P ` ` 0 p` Q ppP QPP PE V` Pᆴp`P_P _P ` @ 0 pԙ` QppP QPP@E V` K/pL-M@P`A P AP7 `0 CD0@Y P$g@P0 ` P6/n% KS`Kp/M-p`P )` Q @@P QpP pG V` `ѳ (@ QppP Q`PPF T@ MM"A Q> 0`Pp@ t           H-   3,23pL-M@P`[ P [P2 `Û0 %m_0@t@P 0 `  6/፵D _r`KppL-M@P` P P3 `z0 0@*=@P 0 `  6/C _(`KppL-M@P`Ȳ P ȃP3 `s0 ˵0@@P 0 `  6/ᰵ _ބ`KpO-DM  P$ @ _,Q  Q _wP  P_ P _eP ? $R     R SP1  /Q Q AP  Q!@  ⡃P  Q!@⑃P? P$K  Q!  P ! P  Q! P !pP8 !  Q  Q !P ױkP  C !0 $R     R !ƂPB  Q! P !㴂P0 @ $R ($0Qo,$0(0R 0   400 p0 S/o"8 $p4pS0 00 Q <,8 PR$KP Sp !0 $R     R !hP  Q! P !VP w㍱   $R  P =P p`᭺ ` &  0  ㋖p 0`6/_ !  Q Q ! P2 P*  %4 p(00p6`P @p 0`6/#$K ? @P $0 p  7/ # ڳ$ @ _ pK   $R P ⩁P `pN ` p㑰 pj !0 $R     R !ㅁ`P  Q! P` !p`P` p  Q@  ́P  Q@⽁PPp 0 b  (0   07   00㾤`  p傖0 Sz5pb 0 0۵d9cq,&%5U5K-M@ Q!  P@ !P;p`m`pP% 0P p BP $R ppP RP `A UP  ɱ Q! P@ !㰀P;p`T`㘯pPׯ 0P p P $RppP RP`A UP  {KK-MP@bP P P ` 0p7/ !P !HP `KP ;P  %wpD&`H$|` 0 @ ピ`P P fdP P D%VP P %_P _P Awp`w0 A1{F`@P4w 0* J#_P _`P| P 0 @L- M@!0 $R      R !P  Q!P !PjQX0 $R  00@QOoB@$0 0R 0   0 @0 S/o" $@@S  Q R QQP PPP  R@oKKKO-DM@`& 6 L!p0P! 0!P(P`p ( ,0K , $ N`0 `$P $!~P(PpM ( ,0K , $ ,$ Q $Qf P,0K ,` P@`Q $Q pG p`,0K , `@,0K (` ,P ߒP`Pc @,0K( ` , `ƒ@ P;m,0K(  ,@ `嶒P@vq,0K P,P `婒@PV ( ,0K , $  @ `喒((`P6 ( P( (@Iq,0K , Pz P( 2/(@ၶ8@㴕( ,0K ,  $ ` ` [P8P@"q,0K(P P , PH K  2/@p,0K,  P2 0@-u ( ,0K , $ P P`@( ,0K ,P $ @ 0p7/K//0H-M? $R     R }Q6  P P o}Q" @PP 0 @  4/ᯮf _~K00H-MPt@@pPE /Q  Q +}P4 P P P }P" @B @P 0 P  5/[ _@~@K0H- bAQB tH H'HHHHH  e땰,3pL-M? $R     R |Q:  P P w|Q& @ `i@P0 P `5/᳭j K}KppL-M@? $R     R 6|Q=  P P "|Q) PI X`KTTTP 0 @  4/[ @}Kp0H-M@ R $  RK0H萓P0@ 8K00H-MK4 $R     R K{P  PK P, K{P'4 $R     R {Q3  Q P {Q PP 0 @  4/Ȭ |K0pL-M P@ ! Q Q!G{P#  P!P !5{P I@PP K4 $R      R K{P QKPn KzPi 4 $R      R zP QPJ zPE Q!@ ;{P Q!@+{P ? $R      R zP QP zPm `PI@P 2`NCCP>Pp P 0 `  6/ ᴫ k P {` O` P 0 P  5/ ᒫ I @ v{ `Kp `P Q! zP Q!uzP `lM-P` $R @@P RP pA  V`   $R@@P RPPA X MH-M @P  Q QyP  PP yP pP  Q yP QyP q !0 $R      R !\yP Q!P !JyP L 2 $R      R 4yP QP* "yP% `d@ $R      R @yP6 QP @xP$  @P 0 `  6/ @  @ $z PK qp@ Q P @xP QP @xP&  0`6/ Q P @x r,ឪ K4 $R      R KxxP QKPL KfxPG 4 $R      R TxP QP( BxP# _< $R      R _0xP$ Q_P _xP u @P+0 p  7/ P" Q@ fxP Q@VxP N P# Q! ?xP Q!0xP  PP Q xP QxP UtK-M@ Q P; zwP6j`fp㐦P㦦0Pp  ËP $R ppP RP `A xUP { J QP; 1wP6!`pGP]0Pp  zP $RppP RP`A /UP 2 KK-M@PT@ Q P @vP8 QP< @vP6`㹥pP0Pp  P $RppP RP`A UP  㜧KK-M@ Q P; }vP6y`ip㓥P㩥0Pp  ƊP $R ppP RP `A {UP ~ M QP; 4vP60`!pJP`0Pp  }P $RppP RP`A 2UP 5 KO-MP`V' @P LvP  Q@ Vj0 A p9 `0 N`j0 A %+Sp `0 6p 0`6/ K+Sp?CpL-M@P!P !rP Q $Q@O <P,l P   P@0,P&  _P _trPP krP 坒 P `rPP 壉PKpC` QPH-MP @P pP ` 0p7/$P 'r`P  0p7/` _\s6 `KpL-MP @P `P  0P5/KpO-LM`ڠP 0P @ p@U 0@qP  0` p6/ @@G40 4P ``408pp 4PpP`d40 pp4P`d40 4PppV $r7`$#  4 , 8 `L4 0`Pj`$帆8404 < @DHppp帅0$pqPp $ 3Pp $ `$ DPed40 4`喅p$ 2/P!f408p4p p偅P`h4084 @P$`PMe(DWe(..( @`60  p `@ pPf(0K $` (` K,K&e9@Q   ` Q3@ÀKO-4M@㉚p㟚 n` P ~fX p(0 ,p(``0`P 0p`7/KO-DM@PR`h 3p开 Cf Z` P,0K,p  (P $` ` ` j 0p`7/KO-,M`p@Pw P ݙhPd KydBP[ Kpd @S wP'xLw  @0  0@`0 ~@V0 t@90 kpd  $0  '00  0 00 0p cᐜ@KbO-,M`Ep@bGP P \P KcBP KcP 0 P P P P P @n  PG7 (p @v0  0@0 @夀0 @囀0 pPc$ Qpc@  2/  2/   0Xbۛ@K(eK-0MP@`p㭘 և @P K @iP= g u  p~0 mpFE0 cp;0 Y"` (0   00'  000FbရpK`bO-dM0@uR`, Lp$0p t(㊘,^W 0K?iP0KiPP,pIQW  @P ,K @(iP8 `p0@ 4s4 Po~0 P0 "X'<0  ( $0  700I  ( K₌#bK.RF 00Q.  K,KrbBP,Kib0   Q  MP ,P Rt P _'Q7"R RK Q 04张 W_ ($ (0K, (` |47 0@P 0K@qhP `P: `0y  P  BP Q P}0$8404 ,<@ | 㞘 p50@~@#qQ;P @0 帀`,PXh@e0@` 0p  0 G0"‰aK0`4q4 P-}0 @ 0 0# Po0 p"" <0 (  $0 7   00B( Kp.` :~($  0|` Q P Q pAP V` 0PPpX  ~E`N 0>  ~0 2 0-,0 ((0 #0`p U 0 00 d_`Otb,bO-dM@,  ( $   ! 1p G0@8@K`P]80(0Kp $P (P pu@P`%Ux0 p@puP `uO0 PptP`S0 PtH@8:w< `S0 PtP`px0 @t` p8O0 P`tP`tS0 PtL@< w8 `aS0 PtP`E0   $@@p(P@t`(K (@ P% ( ( P5S0 `@ftP( 2/ v` 0p 3pPP`@P4` PT40 BtTP0 `YWD0 4t@ `V@0K 't` 0p P7/KM-Mp@㤎`P `垎 V _P  P _P R _P  0p7/KO-4MP@`Fb@PxX X X 0 0 0 0 D D D D l l l        H    0 , D X l @ T P h d x | KOKOKOKOBKOoKO  KO`pPc QKOKOKO5KOgKOKOKOKOKO|KOKOKO&KO>KOm`㠋p!P !\P  P "P p 0`6/`KOKO(KO KOMKOKOfKOKOdKOKOKO!KOl`るQp张 aWX `` pp 0p p` 0Pp5/!KOKO`PAS`}SP`KKOp /f90H-MP@R P$ [PP0@KP K[P P @ 0 !p@K0O-lM@TP`$ (,048@d0LHD@X<\@ @@ @ @@RQ* | x  4@qp 00 0S4S0 40 "5%A44 4Q 0  0 B"u%q !0CCR'*A0S 4 ,a4pAQ  BBP*@DQ T @@ %  PI @`DVT@!%QPP  PP `D`V4 AAPp!P xP d P Q H`P  ȬpQ `04 00C#e5Q``0A W P `1pAt t0P   `` q/0S X  `04 <` 0 0S4S04 !%q44/P   m`` A嬡40 pC0 0cP4p C A R:< 0R0 S + <LPKPw Q@@P) AQ$Pp` p`  )` UR `R `PAAUpPKsKqe9$me,19(99999s9n99u9L999O-4Mp<P @0# pQ p@aFRҩ!VP3RUK  ` 2ZN P4  " 0 Q  @`DV(T0@ 0#u5! R70CS*$ R  Q  p_D `VZ,P0`V  2Sp01S `¦pp0,P0`F @Q:Q" 0pH`V4`0r`qR Q 0pH`V 4`0r`qRKJee9Lje9H-@p`P@AV WV:*@r/qVppW0*  @0 R00LAVA!A1S 0Q000R *0BF 0O-MP@|p:|` A BQA*\> PQ<  Qy ,6r R 0  @t ABW7 Q Q p0 P AtAW* BW : a @.@KPp:Q'Q Q p R 0S002!0S Q W: P  BP  QQ a@@18APQP!@!P)   P! @Q QP P [L P  0p7/0 VG  = +R2O-,M@P'{`#{pPL{0P A BQr*0pX`l PQj  @ Q ,6| P @`$ ( qW  0~P Yʛ j= P p P  0^p"W @ d ABV7Q Q  P AdAV* BV:P a   K`$ (P'  PP q =P8UP}QzPx !@aq@T  P E 0 P T 堐$ (  0PP * p<Pp  0H@`  +M2O-M`@zPzpAz A BQ*`a pV P P Up7) P0 0 P* @Q QP P JP  0P5/vs !  P@᧚ pG<`埚@V  << "  P#, $(<048L@DH\PTXl`dh|ptx  PP@@ d ABV7Q Q  P AdAV* BV: a @qKQ+SL2O-M` Hy Dy@ @yP jy0p A BQ*P @Y @0T  0P? T p 06@P   P;@@ @ P UO7y p ;@ؙpT  u; "  P'S, $(<048L@DH\PTXl`dh|ptx  P @ p0 t ABW7Q Q  P0 AtAW* BW :a   P@0@ AK   H~!+#G2O-M@px`Rap x P   BBP*pqW  PS  :R'R $R ``V2 @0T02 !0S``R1 Q.: @   @`pP  ,`P  @:`` @@`0 4 p@``p` P  0 P Ԙ @t: @ AtAWa7V V + P tAAW: a/ @KK-M`@pwP 0C@Q#*X @pY 7Q Q P @@Y:`   p KO- M`@wPw 0  BBQ*QU Q p T ABU7Q Qn P~ ATAUe*sYprw   BBQe*Pb p W p9YPXw 0$0CCR7 PYPU  00"P pPU T ABU7Q" Q JP ATAU *BU: BU: aCq KK-M`p 0匀FTAA!AU*@Q Q P ATA!U:b  @KK-Mp`@QP K@vP 0C@Q*X @ 0@ Y 7Q Q P @@Y:`   @ H- RJ @T<SP0 PSPS0S9 0PS5 0D0S5TPQ PQP `PdV`a `a``PPpp'W:W ptWP PP ptW` ```pp:W'W U  P H- \0^ R0S: R R R  R R  R R 0^ R0S: R R R  R R  R R pL-`P@P p$㡖$`*80 R 0R0R0R0 0! 0R 0R0R 0R0R 0 P pL-@P  0, tLP  0 jLP  0 `L P  0 VLP  0 LLP  0x BLP  0T 8LP  00 L-LH8 88888X808M-pCw`VG Pp @p@@'T:T @DT@ @p @DT@ @@`@@:T'T W&`@`@@'T:T @DT@ @` @DT@ @@P@@:T'T VX ^@Ht@T: PO- MpP Q P0Q xP) Q qP"0Q jP@Q cPPQ \P `Q UPpQN NPJ さp , $(<048L@DH\PTXl`dh|ptx`@T  PP EPB PPUKp0H-MPU @EQ 'Q:Q  P K0Q R 2RR  'R:R P RQ2Q K00H-P 0@"RG P@R@U) @R@U@\8 @R(@U 0@R8@U @@RH@U P@RX@U `@Rh@U p@Rx Uot \ k@\ $@\ 4@\ D@\ T@\ d@\0S:0@"RG PR@PT) PRPTP\8 PR(PT 0PR8PT @PRHPT PPRXPT `PRhPT pPRx Tt \ P\ $P\ 4P\ DP\ TP\ dP\0S:0H-`P@PP @ , $(<048L@DH\PTXl`dh|ptx RM H@RVS= RV! R(V 0R8V @RHV PRXV `RhV pRxV!tS S $S 4S DS TS dSppp"H @ TK-Mt`P 0  P@  p 0P04"I`VK蜹8L-? 0@@T0@ 0T0S 000@@'T:T @DT0 00 @DT    @@:T'T S  R  R  0@T 0 @T ^O-M@pP U( `  R  RP PP PP  RP P RUK PUb `@p\P P: PZ6 `V `W*P P *P ` ` P @pAP  @P PP`U` RP P RUK0H-P@qQ \  R00@00:S'S 04S0 0@PU 0Q20!QPS T: 0 S 0CQ 0Q R03H-M@`V$ pp0 P 4 ZHP `P  R` ` RVK;8   /H-@p0 P`p`:P'P P `P `PP  00:S'S 04S L-0S @T@@2!@T0^ Q%#% O- Mp`PU @PP PP  RP P RUK㨑   PUO  @`P0Z PP* P  P@w``@Pj  P PP  RP P RUKO- Mp`@P K< p  pW~ ` @Qa P R  2! RPS QP RZ , PP""* P PP20 C0BC!LR(S 0R<AP0S: P@ݐP @P  P pP  Rp p R WK 2H-\T 0SQ0\M  PUI @T R 0 R&PU:PUP @`EPDEAFT/U PT.aqW(PU: p`V0 p 0`V R  R  p`V p `V S1K-`p@E P@ WP   `:P'P P `@T@P@V*PP*PP @PpW p`pP  O-MXU \ p`THA@  ,Eв PXP PZ ZU:A@U* Z    BBU*P P  R  RXK1d3,8ɩ8K-`Q P7 P3P1`Q P* P&P$p@P`Q P PPP U:`Q P P``P`L-\< 0S9 \5 0S10S0S*0S  0S 0@T  0 @T0S 0S 0@T 0@T RK-pPW6 @T P `+`)$$`x00 R 0R0R0R0 0! 0R 0R0R 0R0R 0 P `Q P  q@`pP Q  p WQ P  WO- Mp`@KP 㑎 p pWu `07@T @PP *P @@P@0b 0 0PV0  $ Q QP Q  R  2! RP QQ P P pP  Rp p RW KP/K-p` /$pW ll||       L-\"00:S'S 04S 0S @T@@2!@T0 ^ 0Q%%#K-pP`᪍ @J/P  0P㙍P` p:P'P P ppQv  PpL-@P P`P ^ P.`pppL-M@ P Pt`P A P.`PKpP/O-M p@' P.`p@V  . p", $(<048L@DH\PTXl`dh|ptx p@KpL-@P P`P ֌ Pv.`ppO- M `p@ Œ Pb.0P  &! @富p@  夌`@Q  qKO-M`pP჌`@` @@U`   @T@`@PP*`P @`PZpPN  KM-MPq P @ 0`P - p-`pKM-qPP @ 0`P  p-`O-M@P qW   0P X`p -`P `P  0z`"V KP/"pL-MP@  dBAV:AA 4AKpK-M`p 0@T ABU7 Q Q P ATAU* BU: @@K/Q @/ R,6/8  RQ @/H-   :p+2O- M @$R`PP\ j   BBQa7 P P E :R'R $R pWs `0V02 !0SpRg Qd: Ud P `Kj0 0C$CR7 Q    PA00:S'S 04S `V0 Pp0W02P!0S`U$ Q!:pW YPP0`pC0FCQGU S 0UqaV0S:K0KO,O-M` PiP@dP`p4P0P,P(P8cAA"rPP`: &  $ X  0H" 0C B@#`8\@0 `@0  B "$ 1@$ ( P) (K `P"  @)`އ @~)I P P  (K0u`"VP@g`,0 @0PRDT U(Y@ D, "5%@aDT PDP@$ TD (KP $ ( P p  `P ㈇ p()`$ PRT# (PKP $ ( P p 0` P d p) `$ @RTP(K  1l(ś+1//  Q /ᐨc  pc/ԇ8O-MP `Pm  pWp_ V pW P PP pPp PP pPP  0R*0S0S  P  P `P  R` ` RW VA p@㰆  P 0S0S0S @@P  P `P  R` ` R VKP P V0H-Q @P@T0O-MP `Po  pWpa V p W  P PP pPp PP pPP  0R*0S0S  P  P `P  R` ` RW VE p@؅0   0P 0R*0S0S  @@P  P `P  R` ` R VKP P V0H-Q @P@T0K-@`P ABV* @@Y0*@Ar@/qY ppW" _ 0`V0 !W GaA`F!P7PS`Vp&O-|MD3`@pPVpPP PpPPP p$P(P,P0p V%*   $a,`'(`4P 8P

, ` Q PPP Q P @B / V` 1 40` P$  R>` Q @@P Q0P PC V`  $P} ( AA 4 qP6PO 5P. 4Pk , Q `P1P $0 0CCP`*aQP QAP ҙV` ՙ(;( P,  0P1P $0 0CCP0*1 V(  ( P,  0P1P $0 0CCP*1 7( p[@TpKk+1K-p`P 0AC!   R `$B@QW*@B/yQQ@H  y aH V @AFA!6S @PP  0@CP(*ACaBA!/rPP@ x W @AGA!7S @@@.O-LM0   R , @Pp`(K4  $ 0  (',0 T  $  0 0 #   t$ ,(`PQ  QJ P'`P1P   BBP*aW*`( GAP*A ERA!/rPPP 0@Ex,Q a W 0G ! 0C B#1`7`Y  !pX p@(`$R P, 0< P,T $ ,04  RT ,QT  40S01C BBQJ*q@ 0  J@ QP T2 P P P1P 0 0CCP$*QQ P QP ` 0,UP 0,4 QK`+KN8M-`@ pV WP$AP|P l-P  qA4 Da }-pW x-MܛdJ8J8+pL-@`U V pLO-\M0`D@PT  $(<840H,L@T tDr0w!Tbp3   ` 2 p0 P`S$ @d0VH P$ 0#u5A$ @ P %51aA$  P:,0S P 0,E  4Q;CV@0}XᥗZ] P p !0 0VP QP6P 5P P U P>pVP (!  0@R$ D TdH $  "5%Q$pWU0 X9   $Q^"  0pR$ t W-H $  "5%A$QBKM-M@P`pW 0 W*)vpW$ 0P($  4S  R, 0 B[` V 0 DT  R, BK`Z$`( V 0 DT  R, B8`ZP $RQAhRP pP  Rp p RWKO-M480X @ $QjOpn $RPPP RP$`A BWp E  `R Q pPQ PL1O Q@ O`P I0 `@=4p@ $RPPP RP`A Wp  $RPPP RP`A ڏWp ݏ0P P  R  RX]KK-@`P ABV* @@Y0*@Ar@/qY ppW" Oo 0`V0 !W GaA`F!P7PS`VpO-CMpT PpP@ T\PXP`P4 d toPX```\`@8T ,p0`h`(,0AA$@@ \}*\$@  G$@t \o*\Z 0pW AQ~  ( Tlx`T Tl  @   TTTTTTTTTTTTTTTTTTTTTTTTllllllllllllllllxxxxxxxxxxxxx````````````````````````````````````  TT`TTl`TTT `l`lxTTxx`xx`Tl TT TlTTTT   T T T a  ^ [  X UlBN.BL.B  L Q  B!B: <{ 4p   /4$d  1P  0BSw=BS:0 BR*(L (  H  B @ r R3,0 ABBZm8@TD,p0@P@Z+PK K$0 uKKH-M`@Pp20 @P @PKM- MP @ P   0Q?o20$  P  0 Ro$00R    QCP Q6 Q  A3 Q- P0 a ` QppP QAP  |V`  |`2={PKKKKpL-M@P`H20 @P KpK-M@p*`32P0 `Wp*P20 `P'W PP10 `P*`P`pW 1Pr0  ``P1p`0 Pp10 P`PPKO-M@2_op`U 10 0  `o`7 *P1p0 `YPPN p{10 P`I`p[1W0p  p2`pT10 P`%`iP UP`P 21p0 P PK `VO-M@P`j!7AQ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""8(H" ""X 8H"""" <8 ""$"""""" , """"""""(""""""""""""" X"thp H `h"|"$"""""""""""""""""""""0!"""""""""" 4 ! #""""""""""""x""""""""@= P Q3 @ ( `4S  Q(  S00000pWQ$0+@  P Q  0 QL3 P Q 0 Q+ P Q 0 QN6 P Q 0 Q+ P Q 0 Q*@P 4S T P Hp RoX p S0000lphp`0`p0W?o2p0  W  R@&Xp0QS   p P Q 0 Q*{ P Qy 0 QX)l@P0 Q    T0P0H 0 pRorXp 0 Ql0h0`p0Sop  S  R@%pQB  @ ; @P 4S H Dp Q/o"L $pHpS0p000TpP0p0`SoobX`$pTpS  Q@rL R HPi XPN Tpc RI HT P[ P Q 0 Q4 P Q @Tp`P hl XQ P P@TpU`1W0 `?U @W%w@P0 $R T0P0H0pQorXp 0 R    l0h0` 0 pRorpp  R  Q@%pP  Q  @ 0R0S)@P0 $R H0Dp0SoL$pHpR p   TpP `p W/o"X $`T`W  S@rLX QRcTDP q0S PQqC @P 4S H Dp RoL$pHpS0p000TpP0p0`SoobX`$pTpS  R@tLQ Hp X RV TP QQ H T0R3 P Q 0 QL*@P0 $R H0Dp0SoL$pHpR p   TpP `p W/o"X $`T`W  S@߁LX QRDPQc R 1 RT R0 tW    0 `0 S/o" $``Wppp`Qoob `$ppQ  S⢁ R P P P@P0 $R H0D0pQorLp$0H0R 0   T0P p0 S/o"X $pTpS  Q@jX Rv TPb LPp THPq@P0 $R H0D0pQorLp$0H0R 0   T0P p0 S/o"X $pTpS  Q@1X R= TP) PVP`  1P  R R R$T @P0 Q    T0P0H 0 pRorXp 0 Ql0h0`p0Sop  S  R@?#pQ  z`` @, XPpPH!PpP hl  `Q@  P Q 0 Q)~@ p`P hl  X Ry 0P Tp @0#@P0 $R H0D0pQorLp$0H0R 0   T0P p0 S/o"X $pTpS  Q@_X Rk TpO Pf D`QppP QAP 5uV` 8u/ P Q 0 Q* P Q 0 QO0 P   P Q 0 Q2@P 4S H Dp RoL$pHpS0p000TpP0`p0W?o2X0$`T`W  R@LX0QSDPP @P 4S T P Hp RoX p S0000lphp`0`p0W?o2p0  W  R@!Xp0QSS  @  a #   0+S_` Q ppP Q AP dtV` gtHp`$,0 pp` QppP  Q P Q. 0 Q0!`%@P0 $R H0D0pQorLp$0H0R 0   T0P 0 pRorXp$0T0R  Q@.!XP Q  @  0+S?0+C wD` @P0 $R T0P0H0pQorXp 0 R    l0h0` 0 pRorpp  R  Q@%!pQL P  a  G@p`P hl XP P aT0 `ApV0"3&31@07 P Q{ 0 Q1n P Ql 0 Q'_@ p`Pa hlj XPZ P 0aT `ApV2316!@ Q P  aR R>    ~ 1P  R R#  `;`+c+N+tZr 1PaBn `4S p R,S00000pWR$  P Q 0 Q1 P Q$ ?@g P Q 0 QE-@P0 $R T0P0H0pQorXp 0 R    l0h0` 0 pRorpp  R  Q@ pPu Q|  a  p P Q~ 0 Q,q P Qo0$ P@@PPK P  aR `RV     +b jz A0C P  R zP p    @ @@0! P Q  0 Q -0 A    0+S`K P Q P  0n P  aRI R m_ o_  o+_b j a  0+P0?G P:2tS sS:pz3A2! a$ BR7 p ÒXP  jQ  0 Q1+S&0 A^RQ Q ``Q  zX R  jQ   pQ  zfL R  ^jQ  A 0YP  a  _  0+SA` Q ppP Q AP FqV` Iq H`QppP QAP .qV` 1q(Q  ~j  X0S5  rjR/   m@ 0   @ 0 3HT A+H T0RHT P9@L APd Q a `s(Ph0T lp! "oDP PDPQX q0SR p 4S    p p `Roob`$ppS00p0So $ppS  R{ Q Tp`0W* Q  P Q AP npY qpV@ PTR  4S   @  @p `Roob`$ppS000pQor p$00Q  RA{ @ Q ppP Q `AP pT@ "p @S(g Pwv AjXP'  jQ!  0 Q1+SO0 A\H`` Q ppP Q AP oV` o D`QppP QAP oV` o$*LP HT RtS 3C! AQ pÑ jXPl   ` p K [  ` j;+Kc+d+PK;d; 2 Q1+SZ0 AQ @  +J j+0 Q /G10#0  z /0P @ r   0+S5` PRe  @ a p^a)P P=!Q 61Q    RQ   4S  p Ro$ppS0p000p0p0`Soob `$ppS  RQ  @  P@(K )$0PR`H @Q ppP Q `AP nT@ n (@QppP Q`AP nT@ n`Tp P@P  P0@P@@Pe ,($ n` QppP QAP knV` nn$G0`P`Oa  H`QppP QAP @nV` Cn& `P H`QppP QAP nV` "n% @ 00 Qq-8(P `WQ F1Q    RQ   4S   p Ro  p S00004p0p(0p0`Soob8` S  R2 Qy  @ u0 QQr@(K'$( 0K ` Q ppP Q AP mV` m D`QppP QAP }mV` m#>a ?   0+SR` Q ppP Q AP WmV` ZmHo$mAP =mV` @m$/`&a JH  1*1H- M@p0S> CSv aS 0 TU  0`0So$` `U `   ` `P U/o" $``U  Sw PRr 0 sT 0 TU  0`0So$` `U `   ` `P U/o" $``U  Sw PRHRC PV P>K 0 TU  0`0So$` `U `   ` `P U/o" $``U  Sw PRR PTKK  T 0RsTBT 6KK0H- M@ P Q   0P?o20$  Q  0 Ro$00R    PwQ p PK0K0P  K0P K00H-8M@ P P $  0Q?o2(0$ $ P 0 ,0 Ro4$000R    Qv4P 0QL (Q $0 "I , QC 0 r8P6 AP2 4S  ^/o" $S0So$S  ^ vQ pK0 K0 K0VK0M-8MP @ Q $ 0P?o2(0$ $ Q 0 ,0 Ro4$000R    PBv4Q 0P (P $0 K K0@Px 0Sr p 4S p`Qoob `$ppS 0   0 p0 S/o" $ppS  Q u RE 0QA `Q ppP Q AP jV` j0 ` QppP QAP jV` j ,PKb K0H-HM@8Q 04  RQK0K00  @b01DP2 @BT"4  0K  K0H-8Mp P Q $ 0P?o2(0$ $ Q 0 ,0 Ro4$000R    Pu4Q 0PC (PQB A0S4Q2 @ 4S @`Qoob `$``S 0   0 @0 S/o" $``S  Q Uu R 0 1R K K$0 1KpL-HM@. 8Q 04  RQKpKp00  @c0S`$ PC13U1%0K0K  KpM-8MP @ Q $ 0P?o2(0$ $ Q 0 ,0 Ro4$000R    Pt4Q 0P (PQ 1Q p 4S p`Qoob `$ppS 0   0 0 pRorp$00R  Q Zt %PS P0Pp4PPk )` Q ppP Q AP &iV` )i `QppP QAP iV` ih*PK K$0 QKi!Q4 PR 0 R R R Q pPP R QpP KPKH-HM@*8Q 04  RQKK0 @ PB `bQ2U?U0"&pQ%)0K  KL-P $R 00p0p@pW W$(,pR0   p (00p0@pW 0W $@?,0(@@0 00 P Sᰌ ᰌ0H-HM@8Q 04  RQK0K00 04@ P0 0K  [ K0M-MP@8P 04 d QPQ( Q_ Pm 040 q`0@0@ 1 ` QppP QAP gV` g|)@CpP< hl ; X R5 0P Tp P0Q0K  (0 04p Q@0>@ K 0P@/@PP@0 KKKHPKO-4MP @$R 0Qo$00R 0   $0 0 pRor(p$0$0R    QnrP Q@K(Q $ R R @P $3@` V Q4 $p3 $Y iBR B S`yM@@p`y$0K @ $p M `Pl$0K @ $` @ @@` Q ppP Q AP fV` f `QppP5 Q'&p Q P Q AP fWp f QppP Q AP fV` fi(F"Q""(R"$R""BP_,(t$ttt Z:pf $0K $` pz  Q $0K  $ p$0K ` $ p`P`Z p ) $0K $` h   **0M-(M@ P$R  0Qo$0 0R 0   0 0 pRorp$00R    QJqP QPG R Q QP=P Q4 < 1Q R(  R B+ z$Pp` 0 $P p `@ 0 $P ` PPK""Q0"(R"$R""BP1 ,($ s` QppP QAP peV` sehI'  )ɒ*0O-LM$@ P$R ,(0Qo0$0,0R 0   804 0 pRor PR>RB `V  FC  `pC 0 $` ` QppP QAP cV` cf0 Q 7 @(@#` QppP QAP cV` cfi%K $R0 00L-M0@0S,R  S  0S $0N   0+SAKL-M DT    0S(T  S  0S $ 0A   0+SKH-8M@k!QUU PP0 Q8 qQ0p Q $p p`Poob(`$p$pQ000,p0So4$p0pS   P8n4Q UA U0P@0 tW $ `Vo($$W00000,p0So4$0S  Vm `VpU Ul4Pi 0@Pe*P` PQppPS QED4PO 0@PK 4S   p Ro $Sp0So$S  R imQ 0Q PQppP Q $`AP @bUP CbKKM-HM @ Q    0P?o2 0  Q4 0 ( 0Q?o280 Q  Pp^P (^P 8P a  Q  a (^QMQ 3Q 2!Qx# P   ` d0K  ` Q ` Q PPP Q pAP aV` a8P  P /0K  P( Q P QppP Q`AP baUP eaKL-M@ P  R  0 Q0 A   0+S'KH-8M@ K@ P $  0R?o2(0$$P0,0pSor4p$p0pSp pp Rl,0!SJp 4S    p `Roob `$ppS00p0So$ppS  R kQ P PQppP Q`AP `UP `KKL-P $R 00p0p@pW W$p(,pR0   p (00p0@pW 0W $@0,0(@@0 00 P Sᰌ{ᰌM-pM4 @P  , 0 0pSor(pK$p,p Pp p $ p`Poob`K$p p P  S4KGk0 0qS qS$pa00S0 $0apWp80` $R @`<`PP_oRDP$`@`R   0 L0H 0 `RoobP`$0L0R  P8kp Q `$ ` 0P?o2(0$ $ Q 0 , 0Q?o240$ 0 Q  Pj `<QLPQ4Q H` 1, pW0` L0  Q8:pW020 tW P P/o" $PPW0p000p0p0PS_oRP$ppS  P j R  QQ K<` Q PPP Q pAP a_V` d_ ,`QPPP QpAP I_V` L_%!K/j7M-M 0  P $R ppP RP `A _UP _ @ $R``P RPPA ^T@ KM^KM-M 0  P $R ppP RP `A ^UP ^ @ $R``P RPPA ^T@ KM^KM-M@`@P pJ>@ @0H p@@ @$@(@,p0@4@8@ PP @P @Q @ RP CQ Q  R 0S,Q,  (A  ?PpP PZ P Q*  Q +p~/@ pu/ 0 @S pC`@pGP3PR     0 0pW-   0CpCRQ*@ TD@ (X (X P p` 0  1/P  /O 0,P @ P  @2P"@R/@P P/O  @ #!(P,U 0$0#"?oR O @2  "P/oQ "V`!@ 0PO  !  @20"@R/@0 /OP T @0@P@0O R3P`PPVO 0@   P20"PR/P0 0/O    )0' ,@  02 2OS00,@  /O^:T,@,@ `20"`R/`0 /OY:  $ 0 p pWP | @`D@T 0#%5QHV@p@T % a pPXgO-M P  T  qPRp0f  1P  O P`5PbPV` `P_O.": < 06 ` P p, 0@CP*ACRA!/rPPP - ` q0 pW PAGA!7S  `@@ T  Pz !   7 @ To O`XL  0 30"0R    Pp5PrPWpp 0   !&  03  pW#P'-p P- S PCEP@3R   @ p 0  }  @ T@@KbO-M@oXl p p   ( p ( , P `\PpqW:? P`qqK`Q V:@ P`q;`QV:`PV pxP sP `UP P( `U p@WPPppp pVKO-M` Q , pAP8*0CǁrAtCPCPp* U, @0AqQP A@@1RP@@N0p1 p P% #!%KpO-$M p`V( 2 S00#@?o/OP@2P00Ѐ @P4@R@UP P@PP(@)P `Q@1=sP U: Q A `CvP*  !  @ 1!x0P uP-   /OpJ ^ 0  `P6`R`UPP !? 0YZ @ 0 x0:P.  O /p`@Z  0Ѐ P 5"_R  P   (P)  0WP@K  @,*0O-\M0`S Q @ @ $ ((@ , (,@ 0 $PKp@PT: P,pK@P@pT:? ,PK@pp@PT:  Z9 ,@KO, P 0 30"R  0P  `p6`rWpOp` @ 0  ! % \ Y  D@H<< Y @%  0 30"R  00?O  `p6`r_Wpp`0`oO    ! P$KbP@X@@ p  "/oOQ"0  "p/o$pQ"`@` `@!p 1_PP_OP&.R P`5P b V ` ` PP_O `$PUK:W 1oP `P_OP !5 0 30"R  00?O$ P 3:<W 1oP `P_OPV*PtW 1P0O R *@P W@@PD  P`)`P<P<@圖HH YHP ,K`( @ 2/P@Z3T,pD 2/P @8 2/PW:P YpP8`K  KO 2/P = 2/@ 2/T P%  K 0J`'KJ 0AKP   2/PK 2/P  KK-@`P 2/p 2/W P p pP  2/pP   2/pP p 2/P  2/P  2/P pppO-M `pP@ 2/P(  2/P  2/P  2/P @@@@KO-M 2/p@ 2/T P P  2/P     2/P P `@ 2/P pPu   2/PEP p` PpKO- MPAp`@P-D 2/P  2/@ 2/T( PB F 04| 2/@ 2/Y P3 9 0FpbP`  2/PV RP  2/P  2/P> 9   2/P P, ` 2/P @ `v   2/`FP @Y @P@o᠂K 00  /G AR_ A" R#*/%AQ3/L-   RQQ  @001 00 R R @0  4S  R,H- R@ R<S    ^  R,R/S 4S  R,R"^   S0 000R00S00S S 00S 00S  H-@P 6 6 y 6p` 6p` `6` 6Pp 6 6$ H64I696gk06/3@ 1<000  0 0$0(/*i0L-@="LabL-@0  LBQ* 0 0/!0 /*H-MP@ 0 dBAV :Ah!   A R `' & K*O-M@P 6 Q, pAA p`` P | 5 5X2 5D 5 X$ KO5-3h0h0#* -3H-    *h0pL-MP 0@ dBAV :Ax!   A  R!@  $! L L Kp*O-M`P ABV8 @@Y?*@A>s@qY pqW1 N!€ `V @ @ H V FrApG!P6S@ P@ pGK`VKp /L- @0H-@ P@0pL-@ `P ppL-@ `P0 p $R/ / $R/ /0H-@ Pi Q 00H-@P pT`PW  Q H-@P p:`>00 Q  0  Q/0H-@  P Q @@o0H-@ pp `PQ @ @oH-@ `` pPQ 0/0 @ 0RR0H-@ `` pP Q p ? 0@ 0RR0O-M 0 /PU, @p @P  {` R 00 P P   R U K0 S QO-M  /Z, @ ` @ qp 9P= R 00 P P   R ZKQKpL-@ 4S ``Q  S QQ ?T@ pL?pM-@P Q  ppP Q `AP ?UP ?XPE-BPEUpL-@ 0 4S ``Q  S QQ Z?T@ pL\?pM-P` @p0 0$R ``P RPPQ +?X M-?M-P` @ppt $R ``P RPPQ >X M?pL-P@ `E $R ``P RPPQ >T@ pL>p A0H-@ PPEvAPEU00H-@Px?P QP0O-M  >Y p@  a ` @P`/ @0 S P`0R R P   R8Ja` @PQ  ? 0@ RRPP P O>P P P P @> P QQ P P ,>P P~ P >Pv rK/pL-@ `dPh  Q @%Q =Qp PJ Q @ppL-`V @ PP7QgP `VPppL-P @ P0 `   QP`HaUpO- MXT B`@@ p P R" 00 @PPAQ 0 qtt`l XXX X  0XK R  $R  R $R @o/O-MPQ,$@  6 p@P < PP oJ @PIPN@㙒P@#Q+ pE@I p0$R  Q* p+@/  Q Q QC AR:QP  Q Q PQ.'Q@ 9Q  Q R   04S    00S 00S: 04S "QQ` YQ. QU Q MQP pᙒLP  Q Q P9 P 1R/  Q R   04S    00S 00S 04S RQn @p P  P P R  04S    00S QH `I@M  Q P@P  Q Q Q  Q p P 噒PQ$9PK pP  Q$pPQPQ$B$Q Q`,P HxNqNPA PG` QH-M@ PP p`  Q   Q  R  0 CR Q KKC0H-MP   @P%* Q0 Q0R:0@0DC1R*Q0 0@@DDR*10 0S K0K0QK0   {)K0H-P @P R   p%`)  Q PU0H-M0@ &R9a2 B/R:0!K0R* RR  @@>P 0PU U S:  BB!S*U   AAS*!0!\$@ @P@3@aL-@~Q  0BS?BSSR$  8 R 0Ao;@A  0 4S H- RB0 BR 0$R N~P/L- ^ 0 Q@@A @@@T  0RH-@ 1/P QppP eQ`_KQ @Q @Q Q 9PU0H-P@  2/Q' QR 0\00S<QR\U P \  U 1@P @ PP% 0S 0"P 1/(a0H-@,"Q 1Qv 7-0apL-P`@ 0}F B T,PLD K $  ( `, @ @ `4{@  0p0 L--M@  A 0 A` 4  a`P H I A 0 A` | ++b a P +`I  Q@0+S@K m\m\H-M @P R aP Pᶿ`pf 0  KpL-M 1+CKP;q`;+q+[uPc uPb PbPbU= +@@b[9Kckd[n[7Kd+ncK;eKN;a;bkNeKnKbkna+d+N`f;Nd+n+f;n `KbN  cKNbn@cKn@K`1 Q`K4+SZU KpLKppL-M 1+CKP;q`;+q+[uPc uPb PbPbU= +@@b[9Kckd[n[7Kd+ncK;eKN;a;bkNeKnKbkna+d+N`f;Nd+n+f;n `KbN  cKNbn@cKn@K`1 Q`K4+SU KpLQKppL- -M P@  凿ᄿ`ဿ}ːP o ` m `˴ P a `XR ) ) ( (ZPPCP۴``M@ L+K;`n9 `۰nL ˴a N˴M+Na n M+nK⻴`N˻b;N`nb;nI 㛴I+a Nɛc+Na n@ c+n@+a 0 Qa+2+SkU @K p ` 0H-M@@Q @P K0@OP @#U @K0pL-M_lR : @P_`P2V P Q% P `P P c`"Q  P R P `Kp@R @P. _ Q _yQ P`iP``<P ^0P  _ `BQBcU`BGP U``S0 _ U@_ Kp30Q   U RK--M@QA `P` _UP" p[ AZ R P 0Ipp `N 1+S0 QJ_V  U  K_ /_ /_ /_ /_ /_ /_ /L-M@0S 0P   m0K/_ /_ / _] _YL-M@0S 0P   A0K_ /_ /_ /_ /_ /L-M@0S d0P   0KpL-M@0S GP 0P`P _0P V9U 0Kp10 A Z0"(0 A n0 A 00b0 A  0 Q1+S_000V 0U_ /_ /_ /_ /_ /L-M@0S 0P   0KL-M@QK Q P K_P _Q ⱼ0 A ZK 0+A KL-M@KQKKP K R yP K$0P lKQ 0 $ KKL-MQ @Q PP K RA!PL-M@QK0P K R $P K(0P Q 0  TKL-M@ R P  KH- M^P_ РK-- MQ`R (K@FP@<PP  P/P  zP_  _P`QU a`X Z` Q P! P P `ۺpዻ` AӺ Aᄻ0 A 0 #`U P P  _dP P _dUK-- MQpR (K@PP  P  _ b _\PpQY pX p Q P! P P pBP`p A: A0 A 0 pY?P :P  5_tP /P _tYH-oP `@@  p   HH-oP `@@  p  HH-oP `@@  p   HH-oP `@@ ~ p u HH-MQPR K @P  Q 'P P|`p, 0y ` `P V P P\`p 0Y` `P`P PPV PP_\P PKPpL--MPQ  R`PQKp@PPV PP`P# PZ0 AH  ⨹U 1 A` 0 AH  ᛹H 1 A````_  _ R sP P ø0 A  J ὸ 1 A` j 1 A`  _PV P_TV O-M- MQPR (KЍ@PP| 1 A` ) 1 A`P  uP  _ C _=PQ\ PPZW[PPP9 APp0 ` pCR _TP0 P _TP& 2kHK1 A +0 A;; b;N+ ;sb N;c N;+s`;c +2 Qp0+SpPZ MPYQ FPK M- - M`@PQUH ` A A@Pp;Pd Aa0 A@ 0@L@˵ʛp`p ɫH AˋpAK   P+pI+p˵aNQJ+2 QaN+S@K AO-M- M`@P{QU?  _pZP `  A0 A  2[F1G -[ A+A  ;xp㋴pcKHKNd; cK+`KN+ e 0 Qd;3+S*(KЍ pL--MP`#@QT Kp@ ` A Aᬷ@Pᨷ 0KE 1+ANNJKKIC ICK--M`@P 2QU# PqpP`Ḷ Ai0 AqK+1I2[F ;:*Q 7SjqWqW KQrU"qR!rW z *0 Qpp1+SK--M`@P QU K Pq A"piP`0 A : 1[F0I+;Sz0pP#PPRP P'PRP#rKQ  *0 Qpp1+SKK--M`@P QU K P*ڶpP`! AҶ0 Ap1[F +:2I ;SS1 0@ 0#0W*q@ Rq 1 Qp0+Sp_ /K/H--MPQ  R`PQ(K@ PㅾPV }PP PP .PP _ 寿  _㩿 R WP" P NP `Wp AS A᜵ Aᙵɋpp0 A૴IN+S`N Q PH--MPQ  R`PQ(K@ PPV  PP sPnP PP _ ;  _5 R P" P ڽP `p Aߵ A( A%țpp0 A IN+S`N Q! | xP_ /L- 0@@ LH-oP `@@  p۾  HGH-oP `@@Ⱦ  p῾  HH-oP `@@ᬾ  p᣾  HH-oP `@@ᐾ r pᇾ i HH-oP `@@t V pk M HH-oP `@@X : pO 1 H>H-oP `@@<  p3  HcH-oP `@@  p  HH-oP `@@  p  HL-MOH@Q @㜼P@KpL-M` PR` @ᇼPP P`Kp/ " /M-MPp zwɼPa @W`pU W V* GPpU @`WV 㨼P@ HP`P -`P &PV U KU ㇼP _LP _Q P _Q P`T0 A1[FZK JP`0 A1[FKL-MBPL BٻPF!@PB !!@ϻP<_LP8 __LŻP2BCBP. BBC㻻P(AP$ A㱻P@P @㧻P@P @㝻P @D@P @㒻P@KpL-M@P` P VPKp `pPU iP _\P _`P P _XP bP`᪲0 A1[FJ ⣲P`S0 A1[F PP@P ⨻P  @1PP @(P RPPPPPL-M@@}Q _P K _E0H-P@ᱭ 0H:L-M@@WQ @) KL-M@QK ͺP K4P ºP K0P ᷺P K_,P _㩺Q  R R ⚺P_P _㑺Q ♲0 A J߱ 0+A KG@cQ3/% @R0!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    //H- 7 HpL-@P `a G0EcQ2p=QB //L-@  R@Q!@ᣂ 0 /pL-M@P ``P E  0 PA$KpH-M@0P`P p  ' p0 P `A  gPPP  PPKM-M @T w`P `p ``` ```` `(`,`0`8`@`H`L`P``'P v8w 0`' `P mKH- M@@P P  @u  <嶠 { P `p pppp pppp]  8} c ``pP ] @`@`P }V `P wP  K K0H- M@ P  @'  <h - K0H- M@@PP @` p    <F  @`0!0AS4 1PP P'  @R#0!h<X<@P ,<Q6  Q0,    a)c/y)z6P 0 !X,D L@ApQ3/AAo/H-   빆)/P/@oo/O-$M P`R U t Q l000tl  `JKStQ K Qn 000DdlEqQ*t  \K  `KS0 㺱P6 PK 0    K  KO   `DK  `K  KU 0    6ك)/O-SM@$0 PKpKP  t  8y `  ( ,` 嬐 t  |` ` ` ` ` ` 娠 |` ` ` ` x J4 D$K <4plP48x 4`l8 T`P`L`H`D`@`8d```\`X`hyJ( `0p(@ 4$@@  pp]]\]p]L)L)Ł)u6O-$M `pP_PWW  ʰPpW °P @S 0 PpJP*AP+ A㥰P&KP K㜰P P9 Z Z9AP A㋰Pc ` 0 PP6P0w 0/P`װ  ]: 0 P38JpPP& ػ R JP[ 6|0  yZMP:`6 0 PP~8]KP KP7 `  0 PvPP 0  A4P P00  1P P 0 u!P ݯP P` 0 P2Ps8 0PKPN K-(M p@P ` 0P`P @Q:P S 㝯P P.0K @ @KI Pt(((`` P sP? `GwPV կP 7D P VPI 57 _P _IPD `H _P" _;P 0 KP K*P `R0K @ @^50  0 { 0 s 0 k  y)/pL-M0@`PP " Kp%P S ծP @f 0 P}F P/(((`AP_ A㰮PZKP K㧮P}P 㞮PpP:  0 DP ㅮP= 4.` 0 PP`ݮ <8AP AbP" `d 0 PP4 0 P  Pa0 KP K6P `8 0 PPr4P P `" 0 PtP\4_P _P0   u)/H-M0`@P @Q:P S PpڭP @k ` 0 1K   KH踛EpP KP K㵭P& 7EP*@P @㣭P@ _P3! U) 5_㓭Q 3P ㅭPwP(: 3 0 `  `P  0 ` 0  K  Ys)[/O-$M p`P @0P@P* @Q:P S 0P @ 0 ` KJP*KP KP >, 0+SKOZ! JP**P P' z 0+S KP PPb: O5 PI  0K ZAZ @3 0 ` +`_P _㼬P 2@P @㭬P 3@wP P  P P 0  K 6  E p)/M-M0@P`Q$P PLPKM~S [P @P0 KFpPP ?P# 20 P FP"$$$`p8VVJ⃬QC j20 K`Q43`{0 PUP` pޙ`0 P?P`) p0+S P*2p0  P P`?pϘ P0 [O-,M p@ P0PP @Q:P S ㌫P] P @ 0 @K vP*  0 Q! a  vP   +b j a J 0;RpGE Rz2dW2cW>:`j3A31 a40CS60r0Ó-H P-pLD((KP KP E1 RdW 3G1 AQ0rÑKOP{ P 0 @ Q@KP* KP%@pPP ժPP:  0  UFKP K㽪P~ vP6:v@PKP. K㨪P)P 㟪P 3 AP ㊪P P PP  `Pt3p㉗$ 0 (` `ƾ eP @`ڵ R LP/ {0CP P%A29@pP(P⢪   o$4&P┪   oJ4P P J0 P P  P  0|PC: " 0  |mP4:  0  m^0  eV@P @ǩP &0P P H4pl  rlh h0 0j@< <0 0b84 40 0Zd)/d)B1W6d)b1X6md)"1X6pL-M@`S0 P~P P 0 @ս@KpU 0 0H-M@Pa0 @巽K00H-M@PS0 @好K0K-Mp@`PPUk0 @ 函@ % 0 `x@K0H-M@P_/0 @dK00H-M@PG0 @RK00H-M@P0 @@K00H-M@P0 @.K00H-M@P.0 @K0L-F0+C B  ?+1+Ab j `, G % S2\\:3 A@J2! a$ BR4 s ÒL處RD\ 3L! AQ sÑL芕L臕AO-M`@PpT1Pi0   p娼 GK_A'QK $$$$$ $$$$$$$$ $$${nhH-   ])/}A Q (@XXXXXXL4....H-   ])/bQ dQ cQQ PQMQ/kH-   _}\)/_A1QO 44444(44444444444444444444444444444>H-    [) /~Q }QK.L.H-   Z)/H- M_AIQ  dxdx((((((<P((((((((<P(((((((<,@Th(0D|X((l((((( РH РH РH РH РH РH РH РH РH v РH РH РH9 РH8 РH> РHD РHC РHM I РH РHB РHu РH РH РH= РH  РH РH РH% РHE РHL РH РH  Р РH РH РH$ РH+  MV)O/0H-M@PC,0 @bK0L-@`P $0<HT  $  YU)A1M-M@PpT W1 Do᠂q`WT $RQPdq ᩗP[PW 0 $aRPQ PQPPVF0S:C $RQP9F~P0P, 0 $qR`a `a``W0S:P\PP 0 qaV0S:KpL-P`@Q;P @P 0 aQU0S:p@pM-MP $R P,QٗQQ p 0@TUppaq ppV@ T:KKpL-M@$P Kp `P0 ``E$Kp0H-P@  BT :2 RB0"0 50K- M` PV 0  0pW ptp0 R!  0W@Tp @哜 0@e@KO-M @ P9*T7P`pp0Y p @Wp P0 Ϡp]  R0qPp@P @pp P*@T`V:@KO-,MP`0$  @ Z :"P@0505Z  0P *@JPpF QO: 0$ WpPEP:u| e0t PP2*$ @P $RU$Y p@W$p $  įp q@p@ Ō PQ:59$ e 0 $ R$0@TY 0p W 0p?=2p0 0Č p11 0000S:$0A00 KO KpL-M@PR  T:aT0#Kp$P Kp `@P0 ``尷$Kp0H-MP`@ +0` K0M-MP`q۔P. `P `P`$ϔp)AQ`Q ` ƕ 0`@ `qᬔPK 0 0I)r1=6`/0H-M@`PP`喕 Ô0` K0 0 0I)ҫ16=6`A`/`/L-@`\LL-`A]P L^0H-@`P )R HQ Q`0`Q`ౠ/H-  0 08G)1<6L-@`9H-@`Pq`P ``p )R P ``pL-M@ @"@PP`@ݓP ߓ) AR@@ΐܓP KpO-MP AU6 @YD*BA/?c!@Q@Y `@bV4 rRP冒 U pEb pGr pF PE` pG\0r@KPU  K`H- M ͜Q@ РpL-`@JH  PP @$(,048<@D  PPRP 0@T 0SPPP  p舂b0H-MPP K0@協0 ȵK00H-M@P0 㵵K0/pL-M@ `Py0 `噵Kp0H-M@P0 @况K0M-M`@PpN0 @Pq@PP  n R0 @\KL-Q @  #R$@oO-M@` pP0  P`-@0 PP K0H-P@ Q P,q0HpL-P @0Q`Pl Fc WpLpL-M@P`x 0۴KpO-M@DpPP *p@@`Dp p@`V !בY#@ 1H,4$<D    J 0ᖴK  >)/O-MpDP P *@`@D@ V@` V ! ዑ@列 0bK0H-M@4P K0 P^ 0  H4K00H-M@0P K0PC 0  -0K0݌یO-DM`P P RpZ>P@$@0 @$  (p@0 @PQ_0 @pγ0$p $RPPP RP@A |Wp <QC(p;IPPp ;@psj 0ZI\ (P 7@,  , K00@@@Pp儕 0K @ @o84<08, p,0KP(P ,p p$  pZPP  /O?!F@h0 ,0K(P , $  p>0K萂b_P/0 ?O?!&H-MPP" `@ߑ 0p pp 0` R 0p# 0pKH-MpFAQ@P`0 txx (08@H`x 8@HPXt||40H`Xdx ?* KHG.ix|z bLMN KH KHH%&*suw KHU\ KH/)z KH{ KH KH KH <0.0p P`pP`20$2? j}hnya 0P`p@S 0PpjX_Vp`PZ KH KHAK  KHpxP8 KH/-pKP#v 0 - KH KH\ KHp0 P` 'K &0PQK  0KHS0  f0)$6O-,M0`P0p R$Q & Q  R@Ő 0 $  P(ְP 0 ?O?!p@pv 0$ P P崰@ Pp' 0 $P @声@pa 0 @嘰PpX 0 @匰PpppQ$P< P@. 0$ pn P P P @  0 $  (PP 0?O ?!; Q @ϐ 0 $ P.P@W 0 $P p(KO-M@p`JQ$P P' P PPҏ 0  pPPP /O?!0  p`PͯKO-,Mp@ R$Q% Q  R`叏 0  ᡯP 0 ?O?!P PE 0 ワ0  @$RPPP RP`A 1 T@ 4 @P  0$  (PP  ` 0$P @ (@KO-M@p`{Q$P P' P PP 0  p PPP /O?!0  p`PKH-MP@  0S$ Q:KH薇`p㏇ 0@ ή@KM-M@PP$ au`p @ `bp0 `p圮`p @0 ㊮KH-MP@`pP20  @prKO-$M`PpP 0 1K  @ 00  PP;P@ pp孈0  p@)@p0 @pߌ0 @pP  Q @啎0 P @] 0  p ޭKO-MP`@p R v0 KC p40@P  尭KO-4M@`P D0A oKP P` ` 0\0 P~0 P p$RPPP RP`A , Wp / `п (0,(p0 pPP 0!@ `$(0,P(@ 0p;KO-MP`@p R ׽0 K壿 p0@P  KH-MP@ # 0S S $ ?"@R:? 0KHŅ`:p? 0P㼅0  @Pެ@KpL-MP@Q Q$ ?"@ r0❅ `@ 0㗅 }00 KpM-M@P`夿 0 `埬`S0pq p`匿0 P刬P<0q p{0r puPx0 PlKO- MP@`p00 Vp"0 @J@0q <p0q 20r ,@P0 @!KpL-M@P` &0@EKppL-M@P` &0@6KpO-DMPp` R$Q q  0$p ( q㐄$ 0 p  ϫ0  x 0p  㷫0 @߽0(0K$p (  填p@ƽ`P(0K$ (  含@DP$ `34(0K$p (P  |P  `#(0K$P (@  @᝽ 0$p ( ]KKOꀽ@P $ 0 P O-,M`P 7`@0  P.0 e݃p@_ 0$P `( `@  P弍 0$@ p(` pC0 P KO-TM@p, @顃 PQ$Q: P, (0K$p ( ㅃ8_0 q4@ (0K $p ,P(P 嶪@ P*(0K $ (@ 壪P(@_(0K (P 喪 P Ḽ8(0K$  (p 刪@P ᒼ(0K$@ @ (p @yP$p p (0K$  @@(P fpP"(0K (p @Y@4 P ሼp0` ,`(0K$ (`  @ @ @E P(0K(  @8P l(0K,@ $@ (` )P0` pᝄ(0K $ (P P@ӈ(0K (P 4 -p @P #,(0K$ ` ( `(0K(  ``$ $ (0K  ( `ݩ@0坈(0K(  `Щ@P4ۻ,(0K$ (  `©P0p(0K $@ ( `嶩@(0K `4`$P (  @ 媩P(0K $@ @( @垩 (0K $P (   @呩 0@ P(( (0K pど@4Pᴻ8(0K$ $` (` pqP p (0K $@ (P aP@ (0K (P T@pᅻ,$` (0K(  @ D` (0K (P 7(0K0p P$ (@ *@4`(0K, $ ( @ PP(0K $@ @( @(0K $P ( @ PKO-,M@`P㪁0  `0 P' 0$` p( pԨP㈁@  `w 0$P @ (pKO-`t$pK  0$P ,@ (P`,t  $ 0,@ `,t  $ $@K,p0`   ,0$ ֛`p   0$` ǛpPEHY:, P$Kn$(0K  ( ,`$@K  PU `pV(0K$ ( 噛(0K(  咛, ,P8, p`9(0K ( }(0K(  v( ,P, p`(0K ( a(0K(  Z ,P, p`(0K ( E(0K(  ,@=`嚰$0K $ 0`P$pK, 0$` P`(  0$P P`ݷ  0$P P`η $P  0p P P P0,@P ,@0$0K $p ֚PK  +(:/O-TM0 (r0R Q0 P`@0  ,  0  88,4,,,,40``zQ F`!,  X d dd d d $pP0凭($ $0K `ず(04sP0x($ $0K `n(0 0>s,P,@,P P`PP0$KP60$K$[P0 ,@P   0p0@,K(PpJ`0r $0K(@$  @#$ $0K@,E@$044 8@P,Pz0`b0p 0r $0K( $ PO` 0r  0$ 4` h0@6P+p HP(P0 0r $0K$  ə j6P0p JP*P0 0r $`K $  00p嫙P  40$ ᛙP` g0 ᨫ0p`Cr $0K( $ 偙 P ᗫ`0r $PK$  0n`@ yp40r   $ 0X 0@ bp0r P 0$` P0pB@` O  40$ P3P4` ? @ $0K $P $8@$H@DZ00P$K®00P$Kî(,0K ,  0p0 P$K⫮ `@p嬵,0K( , @,K,  0@4 0P$K⍮0 p`厵,0K , @Ҙ,  0@˘8 0P$Kq0 p`r,0K , @嶘,  0@寘4 0P$KU0 p`V,0K , @嚘,  0@哘0P$0K $ @兘P0`P$pK4 0$P @tP0`?8  0$P @dP0`/4  0$P @TP0` $P @ 0EP Pp P P{0@0=P 0@01$0K $ %EEooP4,P1P0 P+0P@app04 d8Y@`$0KP $ P$0K p $  P p $0K$ P48!("0p  ap@0P `p$0KP @ $` Pʗ$0K @ $  P —((K  ](_./ @ R ?AQ XTXT\d\d!,(,(@@0808///H-   (-/ @  R?AQ  30 /0/? /H-   Ƿ(-/ @ R ? @P31/1H- ,(  ൷3/(,/H-MP@PA`0P? CP8 x`o|0  @$K $  0p0\ P Pb pK  \q(s+/M-P@R' `$RppP RPA V` @ $R ``P5 R PAP'( `$RppP RPA V` @ $R``P RPAP jT@ MlAQ 8TTTH(Bo 0+S6p 0XopH-   ֶY([)/AQ <,o 17o 03ooH-   ౶((/AQ <,n 1o 0onH-   9(;(/K-0M @ pP幭0 P p`n0  P$(  ,@ `w0  P $(z0 ЕKO-4M@Bp Q*xP pp1W` 0 0 媕uP圭pPWn 0  $(,  0叕P:w 0 偕PY  `0n 0  $ (,  0i$  P( ,z 0 GqxP`m 0  $ (  ,-K  R[ ( $/O-,M@C p Q5 A2r6 Q3:! kp1p0r !Q PP0 Pp`m0   P$  (۔ `v0 ȔP  $y0 寔q`p[m0  P  $啔KP[(#/K-0M@ቐȦP5m 0 t0  嫧 `$RPPP RPpA "V` %B  =m 0 nPl` pv $0(`$P ,*P`Cw $0($,   KbM-Mp`QXP R @ 0 ``l0 `KH-Mp`@Pl 0@T KH-M@`PQpl0 `` `崓P R @奦0 P`奓PKL-^ 0X Aq@T*q0S:  ߳I[}(/O-,M@ `0P 0` pŸ PPEu0S*u0p1W`:lH lA Bl 0 Qs `@Psq@PP$$0 $p`!p IP$0 $p`p`  0k PZ $0 P( $p$ 0  +Pץ$0 $p`Ւ  X:Pk 0PF K  I[i(k/nkO-M@Pdk ` ῤpXk0 㖒k 0 z ;kp` ዤp/k0 n[\k0 zKO- MP@ ``pj0  `;`fp@@0 &K0H-M@Pk 0PK00H-M@Pj 0PK0H-O-M@P 0p# `00CsPU*s0pQW0:DP *pQ@Dp@@S P pj j  0>pUppPP{ P M` JPph剤 0 `p向` 0ajpޣPw p 0 `w `P_ 0  PeP岣 PPp0 `pV`Z X 0 `pH`P F 0 `p:` aY:K  C[)(+/O-,M0@P po0 p`i0   P$  (Pi0   $  (@ Pr0 ϐ  $函u0 嶐ppQ$Q  0Q$p7P徢`Ni0pp p卐P P P`4p 0   P prP 0 ?O?!^z嚦Pp`i0    $pNKO-M @PpT$@D0 P *p p@`Dpp V@` V ! @m!*m@  Kt 0 Q P /O?! pW) DP*@c@D@@W @`u 0 Ώ@W KO-TMp  1"0 @  8  D  H0LP0<!Z.8`P@P H,4$<D      $P  U@P0 $Y@ 0 4 0*`P@PJ H,4$<D      W$P U@4@`8P 0 pD    00  0 R@ p $(,0 4K$  h9[9[9[8[i5( /O-4Mp0@ .`/$Pg0  P  $@`  uP Ag0  @  $Ž@PO$`og0  `  $婎@Pۤ` Vg0 @ $呎 0<KM-MP `@pRT0(qP g 0K 0\KO-LM`@  < $0ㄤpc$Pf(0  ,(PP0  4P8p @@ r(0 ,pp(P'@ P Ppm (0 ,  (@0P P 0 ?O?!PO @ pf,(0 (@ Pp ,(0 (׍,@(0(  ΍@P p}f,(0 (@㻍@P Ɵ(0 ,@(宍@ޣP[$pYf(0  ,(p0  4咍  @H ៟P;f(0, (zpP@ c(0 (pkp Ο ጟ P@ ᖣ (0 ,p(P0  4O@p QkꨟPe(0, (@7@ P PP m (0 ,  (@0P 0 ?O?!@CP_$pe(0  ,(p0  4@)p7$Pe(0  ,(PP0  4P݌@ pe,(0( PPʌ@p  (0 (0  4,@P嶌(sp P,0K (@ , 㢌@(,PASe,0K  ( ,@ $   卌 00$08KM- RPU p@ ! 00aɧP៧ pTPH-MP@ R `9 0 PGP `RWꔞp.e0 P0K e0H-M@ R P0 @@K0K-MPpB@C$`d0  ``  `&pG$@d0  @  `ۋP @`K$pd0  p  Ἃ```KM-M`P@ pWn0 P 堋 pFn0 P 吋P  `3n0 P }KM-M@`pP  Pn0 aP  Pn0 NPPK Pm0 7KH-MP0`p@ 0  P 0 KO- M`@PS #Pإ P3 TF QpP|DP * ` a@D`W@W  @Qa  @~m 0ʊK 0QpP| G* pbKO-MPR #PyPB UU Q`PlD@T *@p@D@V@pV  PQ T *@P@D@U@PU !g@m 0\K 0Q`Pl F oKO-MP`PpP<(Pe@S$b0  (bw PP @0 0 bK,P(pW$@b0 @ ݉,p@,`b0  `  ‰vbKM-MpQ@ `Qϛ Pb 0 @噉@KH-M@Pp妛`?b 0 p~KO-Q9P `Dt TP X $ ` T  PX  0 H,t<hp , ` 0t 0i P0\P團p 0M`巙Z P0=p} P0-) 0" P0p͙ 0p} P0P`嬗pX4 Q 0` 0` 0` 0 0 0 0P姖 0 P0z P0mp嫖 0_ P0Rp# 0C` 07` 0+` 0`, P0p| P0p哘 0 0p_ P0P`幘pX4 Q 0 0P] Vp  Qb꟎*U0  p,| p0p  s 0y 0np嬕+ 0`p1 0Q`^ 0B` 06` 0*`7 0` 0` 0` 0` P0P-pV  ppQ 0 0p. 0p$s P0p( 0p`u 0p` PX pQ5rpS0 zp 0p  00$(B 0H` 0;`pXX ` `Q?> 0`+ 0`+ 0` 0`4pX ` `Q܌gS0  iz`0 ` $ 0pp 0 0pRW 0pI P0|pԓPV  ppQ+hR0  y p0    $9 0Ap噓`Q ppQ,R0  yp0   $yKR0  y p0   )sR0  uy` 0` 00$ ;NjRR0  Ty0  P ꩋ4R0  6y0 P 00$( z0  vP(,E5O-MT   H`K( 02l@KxtPKWLpKW K0K 'Q pA  r_Klq q  q q  q q  q q  |q xq t hq lq d \q Xq T Lq Hq D 5al>5aaa>1<5K-M`Lp* P l 1/  P= !0  0hP$ S  0P# pP`ᬗPU  0 @4/PUភY KXT T0 0ߖD@ @0 0ז\pԄaa|)0F(60=^4aF(00O-M(0@4  $PK0p.  t`K u|pK T}PK} K0K  }q Pa  KtQ Q  Q Q  Q Q  Q Q  Q Q | pQ tQ l dQ `Q \ TQ PQ L DQ @Q < 4Q 0Q , t$ Q A S pPQ Q,@0PK ㇱtK0A 0qQՁPh.4A8<@!DQHQLQPHpQlQhQdQ`Q\QXQTxMHt4  P  R QPuKȑDvH`ADaQ40a#V0 ``u< HD<@V<0 `u<X@ڋP<3XqUND0H! p  `u@<P(p <:\P A5ND0H! @  `ou(w<@型P<XqND0H! p  `Su喝P x,Q*8@ỰptxA MO 0` (,tqM$@`) BP&8W<@W8 P<R<AMD0H! (  `$Pu` 7"R R `4 ju(<M <4(0  8  <07 00 8 `` X+aMpp@( $<P U<80 8 t  Y@,P$p( PHD<@hY 0tPHPP  0ㅿQ  0M <7MM_@w @i؆P0K ' 8PT" p,@K d' p翃  2/`ᯂ %tK,K, T4PK @u [PPK 4 0t0K @iPPPL @1/PT P  F`P\ PKOK 8Wp0e`P QB8@a 0U*P P;S Q #P`(p 7 "<p`P  YtくPP.  p`,0A40D Pqpp Ⰰ`Vp@D p0`@Pyp RPP $,$ (PZ:DP@8p` 帐  "$(,0@4P p 0帐A 000  p$(,0@4PK@ZDZZZ 0O-LMPST @,a $0L%40  0  ,0 7  0 K00oxp,5j` N 00K ,P 0` ( $  0ipP  0 p,PP({c{`B00K,  (p0p i` p |C00K , 0` h`p G00K `0` hpQ{A{Pk, 00K( 0 `hP p EC00K , 0P `hpP ~G00K 0p `h 0+S`B` pG00KP 0p Php `~A, K00K0   Ph`P I00K,p 0  |h  p "K00K,` 0  ( kh` +G 00K0  ^hp`!{(P00K0  NhP` H00K ,p 0 @h`  p J00K,P 0  (` /hP$@Ph(\h@z@{00K 0P hPK  f,^ (o.pL- M@ PPKpQ xx``` `PI0 ``g 嚔L0 `gKpO-$MR@`,`T`TKOiQKOJPAz0` g`KO  }0 `` {gpPL0 phgP pA0P XgPF0 KgPp z0`` `>g  pE0 `)gp`bL0 pg`PG0 p gp PI0` pf`PJ0   pfpK  <(j.O-,MP ` y 0 PPf@`zzp|y 0` @`f$ 0 P`Pf@ ` A 0$ @Pf@` OE 0 @f`p FE 0 @zfP@xp(?$ 0  gf@ p @ 0 $` @Xf@` E 0 @Lf`p E 0 @@ftx@pz 0 P P-fp> 0$ P pP f@ p @ 0 $` @Pf@` D 0 @Pf`p D 0 @Pe@p F 0$@  Pe@ yF 0$`  PeP@uh@{$ 0  (Pe@`pJ 0 $PP @ep @$@ 0 $PP pe@\D 0 Pe@p#F 0P $ @Pe@DD 0 PP we@J 0$  Phe@ ;P`E 0$  Oe` pG 0$  (`>epWH$ 0  (`-e` KO- oP:׋Q Z7P0@ PS0 @p㾋< ePoTQ -R++RQ Q p0 Gr R. P ' bP▋Q Zp1PS0 @`0V UZWA/  \e&0f&@wpSaS3W0`@U p00Gp P:pA@  CN 0R CpSp-\`f PW D` Q T%OP V V,pU0 pT W Jopp2 @5  10 B000M A!Z0 A` ``H-    QO-M-MR% @ P@(`0 p Q NPGP: W W PE`u Q(KЍpp+W -W U 0U 0p0`0W P IWx狟P nPP fPP iPP nP P iP P tPP yPX `V (Pq Q UNPEP: U U `PQ  xP␋Q P0a`E@U0pE03 Wpp3v`V:0AUs:FUZPm0X0 @f0Gp P2& ` 0@/  V `p   wPwp0WP     p P8U3S pP0 Gr R: 7,P`V .WFX& : Z X V0P P&p0 Gr0 S3VN`p0W Uk: oP6ߋQ Z7P0@ P0X0W @ Pʋ< ePsZP -Q++QP P P0Eq Q/P ( bP⢋Q Zp1P0X01 @p0WRZV(  de6 pf6@ Au`W3VPW0AR Pp0Ep P: QW N0R @N |-Pa PPX Pq QH`LP(EP: U U. PpZ & X@o 2@# @ &10 B0&00 A!T0 A` P QsH- 0M0,0(0  002"$0 C $@Q :P PTP   `Pa 0 Q Р,(  `Y'[N.0H-0M@PP@PPP P$P (P,P "PK0`L-@ ,PQ Q $AQ 4D(oLwP$L?d  'M./0H-0MP@D.P0΃0c4U40 pP 0 QQ`H-  gfFBBSC!/10@ 000AP\H-/ H--M A@!!1 BH+i a+N+ pK K00z`6Pp 00  PPp`6 d0 @H``p 0$pQPO0 EO6O0 >OOPNZ  -   OT  .    OU ~ ZO@ PTO,P$OOKPKD0H--M A!K1 AH a Nr0 Q f@0K@@0 0PP  @K0f 0@ 0@ 0@ CK0M-M`PpNX+@hB-@W  -  U 0 0  p .  N: E0N P e   @NN@ PNKH--M A! `Kp K$0eP+@0 AHp 00  `N1 QpCPA P A!NZ  -   R8$+P`P BN$ A0LNP9 . 0 0` $`CQ P: F P  N  A@ +0 CP@pPM0 `N+M$ G0NQN@ PKNK%4K--M A!@0 AH`NkU< AG %I z u   V 1Bq+a;a; 6J. P2Mp0 ` jK p;cPP  b KsK M$pqMt 9W/`V`ppAW0 N4O$JL.W^!9L 0V  0PK/G03Dp0@`W :`@A 0 Va aLKU0ap@` Q 0y<0 A`y  pGZ-p@@笋 PP Q 1/硋 PP  #90K]`VD@ @0 0| |3{3aa '?0d4zp00H-MP@တ g  P  00  A QK0K-XMP`1Uk@Th ( 0p`0A P*DQ*T0 @ R 3R 0D 0C`0`F V``30SQ `0P?DG8-Q)`T7 p0A P: TIIQ.(p` 0``0 A  j 0``U 0RpQTIIQ T`NQN a!ob`K /@ *@ +B /O-SMP@ @ P K@ PE  P: 5P0Tp{  `BVK  ]Pa| h                         0I|0Tp,  `BV  ]Pa|@H@@@t@@@@@@@<@@@@@@@@@@@@@@@00G 5q`0PFuP UR` 0S  A$ K @51p0`Gv` VRp P0{G P@`0VPEu0G P@`0VPEu0P/@01v` ?? \Q% `PEp0W 0`PE0@Ftp/@ W :apFV@wpW:ApF6@wpW *vp2p=? \#Q  P@@0TQPEu00 P@`0VWPEusjVpp@pV`@0g g` `GVSSǠ ϠP Q0`P^A`F0 N03 R3v`V: o@DPU G R: ?0P4/01t@ ?? \Q @PE`0V 0`PE0@Ftp/@ W :apFV@wpW:ApF6@wpWv*2vp=? \DQkR1  + jVpp@pV`@0 g `GSǠVSϠ0`S ` Q3R0 B R/o@DPU`" ~ J 1$\  A jVpp@pV`` @Gg`SgTo0` `gS@ P  @Რ 0 PZA0C0`J3 V3s0S:  o BPU@G R 00RH 0BjVpp@pV`` @G `g0SǠTϠS0`S  003S00C S?o PU2 `AG ^^ J $0\{  A 3 Z 1%So  A ( 49%  UyU'W3./O-M-M̋P@0TP@Z0Q7 /0`tp` R1P UX @@p0W 5  A U" X `⣋@@tPqQ ZxEP U UZꅛ UIy*@R0R IQ9R pi? 069wQr Q @ @ 0E01S00C S ?o RA2@I/  AKIX(?aN0@p  p!Q2 EP W W/?0@XpI  Pp 0 0Pp0J $7S  A  _8 APH 0KЍpO-M-M̋P@0TP@Z0Q7 /0`tpa R1P UZ @@p0W [  A U" X `⣋@@tPqQ ZDP U UZꅛ UIy*@R0R IQ9R pi? 069wQr Q? @  7R0 B R /oQ"@-  AI\' @N@pp 01 Q4 0 FDP Q Q/? 0@ p RpI  Pp00Pp0J $7S  A  7 APH 0KЍ O-M-M@Pދp0W@PERpPE0Gq`/ V :aGq`VV:AGq`6V?*w` r*~ \@T y  AQ`Q pHYW:Ƞ hY Qh p  0B?R Q:a`BVA B"R#/opW QT S?y0@pTPEHwpa Rc UCP W WV?0@US'? ERP0@ qfQ: ``CP V V0? 0@P RH P P0 0PP  0 J 1$S  A  6 Ap`H (KЍ O-M-MPBA܋p@0TPLW/0Q>/`t@` P7PUa @L00S   AU' X%Ⰻ@@tPa&Q WBP OtP: U U{ WꍛUI*@R0R IQ R 0i6  QQA @  1R0 B R /oQ"@/8  ARP( LUp @6Q <  xBP(AP: Q Q,  p RI  P00P0PJ 1$S  A  5 A H 0KЍ O-M-MPBA܋p@0TPLW/0Q>/`t@a P7PUa @L00S   AU' X%Ⰻ@@tPa&Q WAP OtP: U U{ WꍛUI*@R0R IQ R 0i6  QQA @  7R0 B R /oQ"@/N  ARP( LUp @6Q <  AP(AP: Q Q,  p RI  P00P0PJ 1$S  A  4 A H 0KЍ O-M-MBP@䋟@`0V@PERp`PE0Fq/ P :aFVpP:AF6pP>*v*  \@T   A PP HWP:Ƞ hWP p p 0B?R Q:a`BVA B"R#6oPp YT S? 0@`PE Bv Qj U  @P OvP: Y YV? 0@US( ERP1@fQ; `@P(FP: V V, P RH P 00P  0 J 1$S  A  3 A`H (KЍO-M@ P @ ;  P. )PE -`p【@(PA Q '@PEP: U Uz` V$P -`@p@PQ ?P U U` V P$$P 1/1/$P K P  P d0:ǁ@ Q07  0Wp0W:/`Z aW:V`Q@AW:6`QP@Qp P 02" P@ P0 pp 03/T0 "P W o(`@@PQ :v?PEP: U UHpYP P-P +P ` V` V P P 0Q Q 0xS 0Q  Q xR Q0 0R 0 Q6 0S00S00B S : PaR:W0S PAR:7PA0:AG@ Q07  0W`0V:/pZ aV:VpQAV:6pQPQ` P 02" P P0 `` 03/X0 "P  $K V p@PAQ s>P U Uk`YP P-P +P ` V&` V" P P 0Q QZ 0xSP 0Q  QL xRK Q|0 0R 0 Q9 0S00S00B S : PaR:W0S PAR:7PA9!0S aR BR OR  PsbR oR!0S aR BR OR  PZbR oRh 0H-M@0,PPE C_o0RPPkiP$P(K0(hO-M- Mp 0RpAZ狟S `MP`0U</P`Ar NaŸ ^Cp W1 A@0T W* \(`o0P`@㾋 rpA6Q! Z =P W WZ0`S WS 7 `v @  AH (KЍ*PR00R HY8R @h?` 0684`Y2 R0; P ` 007S00C S ?o R`2P)`\% 0AX@   Aƴ Q@0@N=P T T;0@0S HP @0@0 @P@p p `1T" rS   0 Av`Sjm@n 0H- 0 S9S@ @ 0S|@T 0PT(@ CR101T1S2@Cl'2T00 S0LS*01S0}>!R L RPNU0 0 0 R00 RH- 0~ S&s: :J3! !L00S ;R ;R R*       S R  R R|  80s00 r  "b!r/\ b#/pL-0l ! @S@PT  P@`@3 QPPV PpD:ZQ/Qd//Q/ Q   BRH- H/K--MP@0 AqH@`p0 KRU R R R. Q 0p`GP Q 0p `P  Q 0p `P Q 0p `W  ToQ'S .L-M@;   NNK 0   0    /M-@P@P `pF80 R GFAPrESM O-M@  M0  0 pW 'GpAa qPP`  0PU  G Bp `r`GS I   "  0 RX  Q3 T HpAa q PP`l  Pᙉp  PU p0H0C`0pspFR0L pp QpIp\a wPP`C n  0PU IA` q FSG `ApA8 BA[  PB  0A A AK`F``D P 4 0  ӝ *$6Z`x`aaaaXaM-Mހ `⭎MpP@ 0 0 0 0pW K`Gp'AQ qPPP Ԉ P0Q  G Bp `r`GSH  PKP(*O-M@P'@#R zPppP p% `@p%AQ qPPP ᆈp0pW PA q ESFY  K)O-M@Pp`Y`Q `%@p% xPP D `0^  ` BpvpBS Hp   CTK)0H-@p  PB[ \  00H4૜ P $   徜 aaaaaO-MP`@D Q %pA qPP p  \ 0D0C` 0pspFR 0J pp Q  Q2 U IpA xPP@ ᥇p `V p0I0Cp0@s@GR0H pp Q Jpq yPPpy  @y`  @T 0J 0C`0pspFR0I ``Q ;( pHpT yPPI G;@  0`V  H Bp @r@GS I @@p @` @ 0 0 0 ` 0 @K%@]pm(O-MPJ `?P@cT" `VpWH  Qn `p&Q-W  Dp Aq qPPp ᴆ`0 `V D Ap@q@GSH[W  GpA q PP @ᄆ@ \ @0G0Cp 0@s@GR 0N @@ QIpq xPPp X@`0 Q `pIpG`p@v@GSH@@ d0 G qo@ p0QQ_ , @ 0^ @ G Bp @r@GS  B @@ `000 G q=@ p0QQ0  @ 0^ @ G Bp @r@GS  B @@ `0Kp Npv9'(`K-@pPW & Gp) Aa qPP` ᨅ 0Q  G Bp `r`GSH P#@`&O-MP@u`V & Fp* Aq qPPp f  0Q  F B` prpFSH P  @Kp&O-MP`1@T * D p0 Aq qPPp$  0  0Q  D B@ prpDS B P  `Kpk&O-M@` P PcU `/PU0 Q EpZ Aq qPPpK DŽ`0 `V E ApPqPGSH KOA Ep/ Aq qPPp# ᜄ 0Q  E BP prpESH P KOpp%,`K-p@W 'PGp+Aa qPP` W `0Q  G Bp PrPGSH  ` 1K`%K-@$p? `W ` Gp% AQ qPPP P`0`V G Ap q GSHPPk%H-@` 0P BB aAp[$  0  B B B    b |  P0~4W P $   j (ada@aDaaZ  @/H- 0 \0L- 0 @^ C H- 0 r R0@  CRL- 0@s0S @ 02 BR0 N O-M@PU  @0 wp'PD 'P/ PWP QP ``?'p$ W S  0;0  +  $4 :`?pp$ 1 D (`?P▅(ᆓ     P UWHT\dTTTTTT(TT,p `` p嗆(RD L0 P Uc` ۖp嗆(: Ӗ4 ͖P UK Ė 0pS  u`( ౖp嗆(  ੖  ࣖP U! ` 0RZP# ኖ" k` Q`p Qp8 qP8`# h dŒ  Y` 0RP# I T @` 0Rpo# 0` P qQ`@  @P`   0;0s  +   U Khd  f`x`H.́44544M}4|4440~4~4V09~4~44}4~4~44'-44^0׀44.0O-M`@pT  ȕP .p` PC ෕= ౕ  ` `媕0 क `垕A PF < F$ K{4{4{4{4\{4Y{4O-Mp0C@SdP`AS- Npm A D qPP` ' V  D0 B  W 0S=  D C B` prpFS03N S X  W\0@ @S *A0Ap\0CppR @u" X p"K0pW ``WK6"O-M` ` rP@` p7FU @`F0v0jQ6q`p@4U P`F0v0ZQ+ `  [    qx PK 0 0Xe|x x0 0Pehd d0 0He$ 0 0@e$2_4_'/4e'/w4E'/#4%'/4H-  pL-PP5@`)V/000  $V/00  V/00  V/00  Ut/00  UT/00  U4/00  U/00  U.00  U.00  T.00  V.00  Vt.00  TT.00  V4.00  V.00  V-00  V-00  bT-00  T-00  Tt-00  TT-00  DW4-00  9T-00  U,00  }U,00  xU,00  sU,00  vUt,00  eUT,00  `U4,00  _U,00  ZU+00  UU+00  PU/00  KU/00  NU/00  AU/00  @U/00  +Ut/00  2UT/00  -U4/00  (U/00  #U.00  pS.00  U.00  T.00  Tt.00  TT.00  T4.00  T.00  U-00  T-00  S-00  V-00  )St-00  TT-00  U4-00  T-00  R,00  T,00  T,00  T,00  Tt,00  TT,00  S4,00  fS,00  R+00  R+00  R+00  R+00  Rt+00  RT+00  R4+00  R+00  R*00  R*00  R*00  R*00  Rt*00  RT*00  R4*00  ^R*00  ]R)00  R)00  kR)00  fR)00  5Rt)00  4RT)00  OR4)00  NR)00  MR(00  HR(00  /R(00  .R(00  {Qp(00  rQL(00  kQ((00  dQ(00  aQ'00  SQ'00  xQ'00  tQt'00  mQP'00  ,R,'00  $R'00  R&00  R&00  R&00   Rx&00  RT&00  Q0&00 !/w4 w4w4w4v4v4v4v4v4v4v4v4v4v4v4v4v4v4v4v4lv4Yv4Ev4Dv41v4!v4v4v4u4u4u4u4u4u4 Q%00  Q\%00  Q8%00  Q%00  Q$00  Q$00  Q$00  }R$00  wR`$00  R<$00  R$00  R#00  R#00  jP#00  MS#00  vQd#00  =S@#00  7S#00  vQ"00  pQ"00  iQ"00  UQ"00  CQh"00  1QD"00  +Q "00  )Q!00  Pp!1 0_u4!1 0_u4tu4eu4Vu4Fu45u4$u4u4u4t4t4t4><1t4t4t4t4gt4Yt4Kt47t4&t4t4t4s4s4s4s4s4s4s4s4s4s4s4s4s4s4s4}s4qs4ls4hs4Vs4Qs4Ms49s4%s4 s4s4s4s4r4r4r4r4r4r4r4r4wr4Wr48r4:r4=r44r40r4r4r4r4r4r4q4q4q4q4q4Gq4Bq4?q4*q4q4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4p4j'N/>b4j'r/p4M-PP@`p7O`Fv 000 jP<8 80 0U_($ $0 0M__Yh'/J49h'/n4M-PjP@`p7N`Fv 000 ZP<8 80 0"_($ $0 0__g'B/x4mg'"/^4pL-P`ZP@H"000   "00  !00  !00  !00  !00  tX!00  i0!00  ^!00   S 00   H 00   = 00  fPptp p0 0z^HD D0 0r^^4G474'44 444 4444d'/4d'/4pL-0fSJD0 @Pa40Cas@@ 1``Pa0`a0P0```0`a0P0```0`a0P0```0`a00```0`a0Pppl l0 0^D@ @0 0^_4ة`4`4`4l`4Ԡ`!c'/4Ac'/4pL-3\{l<Ÿ@?0< <P@`0001 0PPP 0PPP 0xPPPQ 0 @```HQApLPP00APP1@@`0APPPQ1@@0@PPPQ1@@0@PPZQ1@ @0@PPa1@@0`PP``Pptp p0 0t]HD D0 0l]444444}4t4q4l4i4l4`'j/4`'/]4/W4O-MPR RKGOO Q*34 B0 `p B0` G S Q3$`AR Y pP`Q 3`@u (F, B$Op04@ K pGT:0T `OတSpG T, 0`K0 A( p@P0K UP(D ,H $@ HK  0O*Co4 _`0?P@PpQ PC0HP `cP C1fR0PKLHH8<@8@pH L0K D 8 @ P<b p@5HJ`@LV4 K7F4LPy4p41 V` Q\00,/4p$F 0pp4Pe @ j J*P`41 40 ` 0R00: $ LB R4 0`p4P  ( @(p`L4@A0 @g6'$ @GT3$@0  A pp ,P00 4`R*0@@ 0 4R 喐`` v'p p,pp`Y^0P(pPP3UR *@`0Y 0:Y PpT0pW0V: 00C04 pP0PWPPP3Y I*W *CkoO`FP ppT0@K@A40K , 0 ( $O D H F@ HK@80HDp@` (14 R`A@VH 7V4V(080 P$,pZ4@0 #(H@ Q 0 H`p PX  LHRJH(@X W0:X0 ~`14QJ@ 0a7!# 0AS4#X0  >0 ,p@H pSp:T @0Zp\05P W@ @30QP,P(PRP* PWP:00 pP@W@:@W00^Q 4:@ A \ ` R@3W* R `* `S`OH`(40 c @CT#5  (p6Tsp`W0`*@`W@P`R`*`PWo`Pu`:`R`: RpW R: YP  @I0r :R 0  0AQ0:P1P`,@( Y*U00PS@m:S 0Q P!Ya:\ 0 @!Y4P S:p'Wp@7! @ Q@#F $pR@S@ *@S@* @R@Y@J*@$@ O^Q@^`P`#Vd@ PSP ::0_0]@pP,0(`W*T @ P :P S0`W`:P*T@I P$A=W@: \@P@#@ `S`*0YR`0S*0 \0 0L0s :R  000 AQ0:P10@S 4J K  Y R' - Qf|hhhTTT@@@(((( CP 8@P1 @P*?@P#@PP|QcPd P P /H-   KY=P';-//L- P  @ P.L- P  @ P//0H-  @P ԡ0 P P@0/@o/0H-@,P ᰡ0AP P٠@00H-@ Q,P Ꮱ AP PḠ@0P Q/Q  P@o / / RQ/Q/ARo/O-MP @P (!  !  ЇKPP `p 87   㻇,P * A P PR@ *H @ P FKO蜠 04Y'-O-MG@JFPP Q 3`@koORVK V 8VJ1fF~0:A1FaPrJ@` ᱀ӱ '8# V7!xᢧPP , P,L@0:2cP1b``AA@C0@@6V  f 0: F @P^f. `"J0p2 AQp 0ᇱ '8# Z7! 0fv23 FQpP` FP 0`0` BP` z A :pa L 0LL`E@0$!0!A0&  @@0 `9 0p5 0bAYMB0 @0@0 !@0411@000:|:@d@0 DR$!!A 0  *bdaqpB0p pF`0`da~aA0 "@ 04 W)4411@0000A0B0e4v f 0pA:W4403W2"7 ZQ  0 @p|0<v#`<P , P,L@0:2cP1B@@qqpC0pp  0 CP 0p0p BP000  0 @OP%E 0R@ RP 0RQQ Q 00pW@@QaKK-V @P@0 p  0ui P z A: Pp , 0,Lr Ppp0pa`@0``GpAP``pGPYM DAa`E0``AE0@bA0#2Z|Z@5@03WRr"!!@ 0  C 0 A0 p"Uq , ,L U1qpEP0pp 0Rp p0CR p LYM DEa`I0``pqqAp0ppZ|Z@qqA}bpA0wpp&pqbeqAp0pcS9PpA0F0C0ppY , ,L Y1qpI0pp p0GRp p0CRO-@r)pbS1 /  @吩!g` G!pG:RWP1W05`WobgZTp@p ?p G@R/ RY @r0* !`B0B! bpP3V7"0& P1 P@P@0 0:S    AQʪ(R `b0r @BƇ@pb PgT1ĠV0U校1TV 1 p`b0wp GR p @N SL@㚩i `D@VAPDapda@D0%T'1$2wuUtTPP  f: @F>VT>P1"T&$F@Z@ L` LR @0 P@ @     \@@FAV@@D 0d DR032 #  P P@P@0 0:S    AQ:P11pL-M@P`T P `  nTKpO-M@T X @`U p @DPUZ P b b X @ KOhT0H-M@[  R? [[\PPK0H(P(b @D#X @ , 2/P 1/K0``h_K-P `@FP'*A AA!.rPP P@*Pb pF AV  Y@ K @pH- ;!H M-M  @H\a`PU D 2/P0@0 @`@ @  0 p K(X,@@ @@@@@ @$@@7/`p@ P 1/  @ P 1/`<8P00  0P8P Y 08p0D`p`3/HKaak1@ H- @ H葯 0H-@P P Pa UP a 0 0 0R5'/340H-$[@\[@ @P\@U[  P 0 0R0M5'/4O-M-8M|P U ra  pPWw ,@⤋`DPS|Py|  Q  P(pWP   o lZ *aU R `Pb,,P ?a pW+  P,(Q$#HS*! $#(0 `b,,P a pWpP   [$/ B?S[[/R[o(KЍ$ 0 0Q AI2'//O-M|pW> @T8 `pP@ p 0P  -bP ` Z @ Xp [$0A/R[[0/R[Q KU|KO- M@@@D`(R|PU pW6 GA` T` :W `V()`P PUPU T PX P:7 P P `ZV Q KpL-@(H`P[\PV[$xQ @[PU K\@[UpO- MPL LLl @l@J PB0   B p0B!e&f&@QPP`- @_ 0 Z0@p q IQ@0@ 1qa XpP KO耭 K`H 0H-P@P QQ0PPGP P QLH00H-@P  GD8 @  _ @0 00@0P )000 0    R 0L  H P /H- MP@n P p(W,W`QQ V nPKP_ P p(W,W`[QQ VmP0H-M@ ᷑뾑P P0᷑PK0//////0H-@P  PPP P$P(,PpPtPxP|PPPPPPPPP(Q,Q0Q4Q8Q<@QQQQQQQQQQQQQ*8pO<@ @pS GO @Q  0S' ?S0[_U _U xtPခ@P MDD<@DBR pO@ @ X@P,[P+ F@)"M`V: @%`XXP0 p pp7/p @`XXP0 p pp7/p `XXP0 p pp7/@` _UP[oV oV  PMp@ 0  p7/ ;P  0@aLr@P<p<BJ PKO-MB0 pp JQR![Y "\ ?o2O 1@PUc _UP[oV oV Pp@ 0 p 7/`P? @ A0#!Q0[ @0 P X*,[PᨃF)"oE@pa@P ];D`;B6J  KO-MP&@`Op PU @  X ,[P \ E)"#E`VKO-M@p`V.*@OPP U P0 Y @  X ,[P ! F)"D`V:KO- MBp[p0 HQR![[ "Q ?o 21P@TJ OT@[oV oV  @pP0  p 7/@PT"*O` p @  X ,[P᳂D)"zD@T:KKO-MP`0 pvP`ѕH 0 v`W *A ,pp0  0W : 0S*ap $00(p S:p0p AaR![1 "Q ?o|`2  `@T OT@[?S ?S @Op  KKO-M0P`s R0ѕ J ps01V *@p,``0p@V :``B0#AQq[/ |'Q ?o 2 @pW Wp[?S ?S  @`   WKKO-MP`0 pvP`ѕH 0 v`CW *A ,pp0  0W : g0S*ap $00(p S:p0p AaR![1 "Q ?o|`2  `@T OT@[?S ?S @}p   KKH- Hӕ 0$ (}@H- @Hƕ P/ R  /H-  0 08&1//4P/ R /H-  0 08u&*1/}/4P/  /P//P//P/0H- 01/E0L-@P  0R 2/@ Q/L-@P 0\TL HL < P (L L <1O.4I.4B.4B.4L-@@  00+S $ L .4.4#.4(.40+C @ a 1 A ` `   /@?A1+C +@ @ b  `N1 Q/@A@@1+CP     C\/ Y@*+@@ b 2 A `N/@A@@ 1 A/ 1+C R / @0H-0+C0 @ZUT/+1;BZ\Q  T0;B Z\     R 0Y@ @ `/` `/H-`p@P( `$0 A DP0 (::,`L-`@ 1 AW q 8+0+8p M p (PЌA:Ќ0H-MP0 @@P8P0P(P PPP $PPP|) S @~0`@nr V-- = @>`2Dnp-- }  x)|)  0\0+S(@ 0@  $ X0+S@   0PXTD QP*0P:" S P @  +K";x@Kp+q[@[ ;s[rKkc;ekhȘ6L 퓮++ ++9 n+ +p+ `+|| L+ p+ +?@  + +"+H P+B$+ +&++@+ 0!Kx.[+p@[;rk@k Ktks[{dKf{0T: )H Q *0:" SX \0: X \*W;b;+@K;bKK , Q ,0<" SP X T0< P X T,N  0,(h      $ ( 0 4 8 < @ H L P T X uKcK;@+[Kc[[\ @ " K@ +@+;p;c`;;L, Q H,0H<" S H0L< + 0@'h           j+S(PPPP 7lP (KЍ 84  N/T/4^4^4___9&; -L-1+C.  1ڜ=xI S =2 ^ ,L̃ ̀ -"L̂ , D>|) S @N0@>B S-- ̈́ @΀@2DN-- ̓  x)|)H-@P/  - *K[D kA+t vKuA-$  ;t  P / 0 0H&`0p`00`x00(`00H`00\_0+C@ /)0p.K;@K+q[@[ ;t[rKkc;ek;b;+@K;bKK / Q 0+C@ /" ;@ @+p+b`++/H-@P/2. K>k? t[{u`d2+v;w P. 0\ >& HH6&`0hp3 b0D0`Z0<0`0R040`HJ0,0_H-P@.=  K ;[s@D $ u+t PH.`0p0/(`0/HP 0/_O-M-BMM@PE,+`  H01H  狟: K Ht T*pR& K 6 K 8 K (( K $ K D K > K @ K B K H K J K( 0 K* 2 K, , K. < K0 4 K2 F KbP 㶛Y P 0r` i 9ySp p0 R@;E+S(p @[  Kl$`&+K(.0 "; [{Hk` px0 J K  K T K ^ K v K$ K& K" K Kz z K| | K~ ~ K K K Kj r Kl h Kn j Kp l Kr n Kt p Kv Kx t KZ Z K\ \ K^ x K` ` Kb b Kd d Kf f Kh KKpX ` T KR+TV: (( " H `@ K8 *,;.02{46(˔ K @  h @ AA t t  | "+Kl $;Kp &KKx ([K 0 K  K < K  @ K  K  P*kK ,{K.K0K2K4K6K8K:K @+ B; DK F[ Hk L{ N P R  P Q _ Q  1Q>0 0 p Rbd _ ˀ80-ۓ>x R 0 Q 00r \ \ ;|Sp p0 R㌛@I B 0 A쏫 `+ a+b(KPI Po.0 AR P 0S0 0P0H_* p+FR( ʛ{ P 0R` k 9[`S `0 R@ 0 A `+ a+b [|r0+S [Xr tr \r r [ d [@ f [B [$ & [& ( [( * [* , [, 4 [. " [0 . [2 [ < [ > [ @ [ B [ D [ F [ H [" L [ R [ 0 [ 6 [ $ [ 2 [ 8 [ : [4 0 A `+ a+b 0 0 p R  80K˰-x Rۓ> " 0 Q 00b \ \ ;lS` `0 R㎫@J ʃ 0 A `+ a+bPI(N` P.0 AR P 0S0 0P0H[* phd+SaPa`@aX [`TaD8 :<>ۍ@: [tp* 6 [p$ 8 [Hq& D [p H [8q J [p > [0q @ [p B [p ( [ & [" F [  0 [, 2 [p < [ , [ 4 [ " [ $ [  [ p`KЍ<8  7* A4Z- 44R44ݓ&,K--Mx@TPx+ p` y!x + L7H y 6p PP0 ApG pP ,QQP  ;:K r p$  *C+30;0 bA[Bk@{  &`劻`%&'@ 0RX` \`@P |ۍ a  ^XK>4t4^U&q40+C Q H> . R // .H /0+C+ R ; +2 R˃ ˀ//0;ˀ /0+C Q  . R // . /Q/0+C.h8h q /MpL-BM@`P 0 P \6`0 0KpLЍ/`_+  p@ b1 Q/ 0 Q/0H--Q ʐ\5 D Q 0 RN XJ 8\Z SP P0\Tʐ\P ) Q 0 BP Y 8I S@ @0\@  0 A a+`+ b 0 Q0Aΐ\ 0 Q /\.0 R 0 0R  p0S  0 Q/L--x ^0+C  Q  @  2 LL!8<R0 0 ^@ ꊁ 0 A a+`+ b 0 QAL-@ P" 0 Q.0 AR P 0S0 0P0H* p 0 Q " @  0 Q/ @  0 Q /h @ 0 Q/ A0H--ː\ * Q 0 BP [ 8K S@ @0\@  0 A a+`+ b 0 Q0 AH--`Vp @0+C01{D R 0 @   0R+0q1{TR0 0 `V{D@ ΀ 0 A a+`+ b 0 QAL--\ ( Q 0 B  8S 0\@ ᙀ 0 A a+`+ b 0 Q A0H--̐\ *X Q 0 BP P\ 8TL S@ @0\@ a 0 A a+`+ b 0 Q0 AL--L̐\H ( Q 0"N K 8+S 0\@ * 0 A a+`+ b 0 QAM--& q@" @  @  h @cL,R+H _ P 0Rn k 9[`S `0 R@  0 A+ +b;`;@ +ዴc  ^^,Z,R 0X\ P 0bp P| 8TlpS p0 R@  0 A a+`+ b  h x 0 Q AA0H--D| ^@0+C = Q  @  BP]!8MR@ @ ^@ e 0 A a+`+ b 0 Q0 ApL--`M+Cx T H Q  @ ɫ2 \ \ :<R0 0 @TH@C " 0 A =`+ a+bD.| R@0 Q 00@ ɋR @ M 8]SP P0 R@ ~ 0 A a+`+ b z0 QpA 0+S @0H--D>| S@ ,  Q  BP]!8MR@ @ 0S@ ~ 0 A a+`+ b 0 Q0@AQ//L-@x0 A M-p@`"&P!2AX <P Q q  PP 0xQM&P0,?"`@pP~'`' pP`Vl_ $  8 R 0 0R    0A /L-@   B4 RQ'@PP Q/  ' @R/K-P ` p0P2 ,OP m A@ Pl` 07PQ ,P m A@ PlPP  Q /0S/   R P/O-Mp@P PE`PB P> @9 pO P 4m B`X]lp,p P mp A` PElpP `P``KH-P`@ P l Bp Ql` HL-M@ ~ R R R pl  #Q TQ    R Q 0SKz&,K-  L   RH p,=PEP l` @`Vk`p@pQ* P l @Pkp @7`Q P hl @Pk`Q 0 ,4$<D./P/1/^/N/G/H-   n#x&,K-M`P$ @Pp7FPp p FC>Do#0  KX_|_O-  >  B P_OP 05'p0'0W @60S 6P >c` c`PF @aT `HZ0 !H$,4<D.1^PNGP  R0!H$4,<D.1P^NGPPx L  , R P4P 0 D @8 @PPP 0 P [P  @ ( 0@$ !0T P 1/喋K1R.PR *^R&NR"GRp00QH,4$<D.0P010^0N0G0@p 0piK`\  h!됹_!w&aw&-3333v&3ж_\n\m=u&51d_|_v/#1p&,<&Լ\ipL-@`P@< $(PP,048HL0D P  0S  8  R 2/P J!p^_H-)M@ i7 R P7 RL1/KpL-M@ P`! P1 P-DL(Q( @ P*paP1D`$ &P(Q,$P P<P0<&04P`VKp,P zi AP Ph`P $  P0H-P  Q 1 @ QD'Q@0@0M-@`p,P .i AP PWhp$ P PPH R@QAPK-MP ,@p`,  0* F Q@ vhKK-MP  0@p`㵘  Q@ OhKH-@`t P p RP PPDTa4 8 _3_3H-@pPPP T`pDT<4 8 \_3_3K-MP`QD UI D  R3p5 R @N6 RL1/D@P H@U @` RP tlT \ u8 K($  D33_3_3h&,H- M000 0 РK-)M@ p P`RQD("D8!P m5 R `5 RL1/p D `Q0H `P0`@0SP XPTu@ 8 Kg3n3@_3d_3pL-)MP ` PADB#@ 5 R `5 RL1/`DxPHPQP TLT)<<  8 Kp _34_33O- p `0PPe ぺQ@ Pp  Q  Cp@P=  S2XP, P f@,P fA Pe$@p 0Bt P L@, PzvP, Q   Q '@Q Q6 3 P' % P"`  0@p壖 㿹@ QL <  P@ P P T uP( P/ P#P  0@p` 〹 Q@ e LQ @d KAp P6e@$1/  P @ ;v   h__0/_a_&c,H- M  d РpL-M@PP P,P P1/BPWQ( e0/ P ៀP $P8 PQ1o P< $ KpLR`0Sd0$H g  6KpPDJP8<0_L//_Z//./O-Mp  @ P 9e` P`Vad`@P. A P ep BPpWBdp@  P O0, @P d  `KAP Pd@  @Q d`@ P`Vd`@pDP LP D ,P, Q> $=6 P@` 0`刔 @ Q !dQ % 1/    <~d__+/O-4M` @P P!P@@$,@(@ @@0@$@ <P0<D P0P4`U? @@P0T ,@,@Q-(`pDGQR*@@!.rQQ QF* F* G @W V,@(0 R* QpDDPGa !P  WpVPT@ P p   U UP y% P p R RQ P P P Q PP Z(,@@Z:P P DA"PCPp@ Fy BRPQQR# P ! "PY P (,AAY*  0@Sz SQs 1u$ 0ju,0PP ,,((@`@FPx*AQA!.rPPi PPl*l) pF Q!V -,T(p0PP v) $@P    0`@PC*A@R!/rAPAP6 PP6*6) p0Q@V  @Xp$P@P >)  R 1( 0NP .) (P ,)) KPpPpO- MQ" @Rg P  ` =`PV ```` P bKB`Xa@`V*% FJQ0* @a@!.rQQ$ Q`$*( pJaZ  oY` ( 5`P ( FoK`p$0$  0aO-Mp@ppp<P0<D0P4@U5 p  @W $ pGGPK* HA!.rPP P?* @J( G `W  pT Y( PP @GDqD `P T@PWAU*0 P@UP 2( Z .( KK-`pPW Pa 0PPZ 0P QpQ,P a:5@p  ` `Fl\V0W0KD P aA@ P`p B@ Q`p x@p| `0`Fl|V 0K 0 0M&Z..pL-PP5`@88P P " $ 0pLS P P!P $ 0Mp  bL&,O-,M `P7 Q  4R $Q   Q  4Rv B$Q  5R  r   P(qa$$Q V VPX@oR V V@X @oB PQ" `pU* @pQ4 <44P3Q O@pW_pU  0}KP(sKO^Q {`p $ PP? (P0 @0p@3s)0)"/o"#0@Q U`p -pz @0p@3s)0)"/o"Q#0P 2`p$Qu  `P !`Py P `Q  `@pW6_pQPpW)_p Q  B$Q '# T@ P) 3]!T PRePOy  SP _p#wp) Q%zP ypQ _pP 5 P(tPPh P} 1/pHP, P;  0KOV}`pW^pP[PP4TP /e @ Pu^``@PB @C0@`P@Yg pPap@Y0Y@YD^py 9v  0l  `pW (^pP\YPPT=P -PpW ^pXPPT P  0L{p0,$@Q^PpW]p@K P#  fx  SPz ^p pQ ^p `Y]p BP PP C QP fP) @ nP    pRpQ} 5^  Q  +&x  SP? ^pG  `pW >]pPUP`PTSP 7EP@P$Qt ]{Q ]p  `pW ]pPTP`PTP ) @Y\p+p P ] B@ Q\p tp tPP& > 2@Y\pw t  0PpW\pRPP`TPt.4C .T k,T$ a9T7 W ?s=yꔈ_ &{:r6jT-(`T# *VA1N9Fp꜇_:=mPL  ___@__̂_x}_z_|_|_y_|_<_ _@__}:&,p, l< @P 0/8Q/ BQ'B w_H- M D P Q  Рzo РO-,M` @Q R\ P R{[ @ $ (<P0<D04 `Yy @p(`X `$$ Q- P@HDQ *@@!.rQQ Q* 3" pDa aT U$ p(` ?"  QpW7 W  R  R R X `P7Q1: Q- X   ?P! @ 0 @P 0 P $! KW Q Q V Q X(X `$ P`$`6 PPrD Pk Qc cHHPg*AQA!.rPPP PP[*! @HaQ`X OW$` @(P ! P F@AT:@P h! 0  G $AQ 03 0Pz i! wXH @oP@{yP @c$`33˳3ʲ3M-M@P ; 0   ppW  pBdpW  +p p@`V S 00S 0Bt0S +# LP 0=`VP E /o0"CPH ZK&Q P(mKMX V P;   !RdPy DUbKqW.Pm%0EF?o/o 2"$#EP P PY@K @ PYK%VW,C@oင,P8%0EF?o/o2 "$#%@Pxes  G}p_x_o_xo_o_w_n_m_O-MP@p0Y ` ` `T`TVPT D TBA A@Y< T@TY- ` ,P     A  P* c TKO-4MP`  Q F=` ?QQ σP  P  pP6pT`P. p( P@@t pp@$p(p,p0pQ P 6  0KO #pPPDLPHP: H W  0pK$pQ  !RQ.pQq p R 003D  0R2@a q  %4 R 0 S 0p:PP p2  R   R p00sD 0 ^  q0+S3  p  R  pRp:$Q @Pp  pPQ  3KQ: Q @P XX@ Z~W@6 P< Pp 0Cm_.,.0H-M K000S00 #j2 0  a : P@ X 00S@P:K0Hո P R W @AO-$M `Pp@p QK PP $Q  @ PQ W`PePp $D4$p P9t pp@ppp p PP $p Q  B$Q 'oP@Q P   {x$VX VPQPFV C  O$PU pPb Q@or[ `eq!Tp`VUV`P  ,p9Q3 p7  0kUp-oP!Q h@,P V p A` P V@$p#V VW pQ@pPp0,    0 0 "&υ,"&f.4.pL-@  R> (   4 R  @  PP V ` PUP   P 0  @opO-Mp P P RV@ `@TzU@P Q P 7Vp B`pW`UpP  P `oO , PP Vp 0A`pW6Up`PoOP P  0`p## ? Q@W S  PQ UP @ QTP@DP PO D P- Q? 47 `pP 0々  Q@ UKQ A 1/   2 @P`pP  00S 0 . W   8 2/@__[_.O-DM`@P  Q \pH R@ R t PQ QBP  g 0  RN K Q@ > Q;p0  `P@`% AQ@ HQ5<P1DLPH0P00 K  Q P  0lDLPHP  0p`V `T C* p,P T A PSp$1/  :p P@ 0`Q `嗄 㳧@Q SK\_DX_N.\_pL-M@PP  P*` `MP  PP+  G @1/`   KpP  KpL $P PQ PnD ,Ds U_..23.O-$M@PPp h 4 PXt [$ 0$ jt$ XpH PGm`m  P Q P@Qg0pPd X`w ` $Q  @ Q pS`$  *j`* QEQQ$Q#P J Pm `@LP1/KP O  P SP `Q  S ` P P.RwwP_G#Y:" PQ R ` QRPK bkP $ P `l  sP R0`VQ`PP=$$P  KsK qK P R XQ pi 0$ 0 qp@ RQ `7 BP P.P C Q`u P`TP  8PD $  `R `QM )RS$) P% 0S>Q0pc`P X XZPt N``k  sPG Q0OQcpX Q`O` P Q Bp QP` h` hp@P^ $0p` qs 0SP0pa`PL X XZ PP $  pPQ0KE ;L K I pM 0 XHH pF 0 XG` 0TP  \pO_S_\_3Q_73v33L_ҏ3K_33K_R_xS_a3q &so,O-4M`,P(0<0P0<D 04Yy @0 P`0pZ p,, X0(P@JDQ*@a@!.rQQ Q`* 0DqaT @0U,(00` @ 0 X`0` S P1 p S  R RL ZD00Z PbEY@J@  !R R3U@  !R R QRt$@U:EPP@ QR^$@W WX gP U*0W WX3 S @Q Q: W Q4 Z0Z p@,,(JHP4*AA!.rPP% P(* / 0@Hq X 0,S(@@0 8 EP8@@ !R R QR#(p Y Q Q W Q Z0Z p,,-T+`@L JHP* AaA!.rPP P`* @HqaX  Y,(@0`  ` P(JAAT U$: ERP#Q4Y:EP/*PPUP 0 h(P , KPUP R U U @UP P 0pp pq W 2ZRR @8Q $ TJ*Q  $0( V( ,AAR AP  0( 0hP I AoQP U@  B0  @@`@D  R3ۄ33I&Kf,և3R0/0  1S0S"0 QS"H-   &e,O- M@p W Q5 N` `PPPK0V! @" P#)P%Go EV`   P2*@`VM`v0  Q P # P "  V` PN PG pOPpP0 0@T 0& S   8 2/`pP`0 0@T 0& S  8 2/ `KiK!aP?_H_>_G_@>_G_F_O-MPp 0 Z @ @ @Y @ T P  YYp I YBq ~p Zx a`B5@ Q:GSP P1/A P5 `    OA^O P TMX P 0 kApXpLp`X \``P*  YK(;_:_9_O- U@ H`P!Gp@ hP dKX T P 8 <K@ D H L 4 0 , x @( x KDP0Sd! t R 2/X@ p  <x@K\  ` x nfQHPPx  D D`@<@8p`L@P ,GPPXP 50Xp0d`p`3/hP K Z!hn{4(_`~.l38^/_^\^,_^^D._@^O-dMP Qyl @  ppP LG @`PsF@pl  $048  EPLHD@<T X\ p`  D`0S   R 2/0po`, (Q@PP D9  @P }FK KO`"_^*_^O-M@|Pxtplh``x@Q4@`C@pWf H 2/p`DPH`/ t` x` V PxK(X ,`` 0 ````` `$``5/Pt@t` P 1/xx P 1/XPHDPPpH\@T|`8<p@P qFp pWDEpDP@ @0hP x dKX T P  C8 <K@ D H L 4 0 , 1@( x KDP0ST! t R 2/X@ p ,x@K@P\ ` x  DPQHP@x  D ` 8<@P EHPPP 0Pp0\`p`3/`P K V/`(4 _ `u.c3D^&_^O-,Mt# R  `0 P*  @0P  `P E` pX D`PQ P EpB pWDpP -P O 0, PP EPP zE!A` PDP$`P) dE`0  @Q DP@0   P+ PP -P  `  @P fD`D V  0u ~`` @P DK KO  0 0;\_%>.%O-M4 8 < @ D H P PK4Q4 E@pW  2/pPHP/ $P (P | `(K4(X0,PP PPPPP P$PP6/@$`$P P 1/(( P 1/HX@PpH\`0T `0p  P* 8P<0Dp@ @ P4` Dp 0 RpCp0@a P pD@B0 @TC@ 0`( K D`P O(0, @P HD@P ?D"A` PgCD`@$pP/ (Dp6 PQPC@)0K)K P6 @)[PP  0s Yp!p @P$CpD@ 4PW@ 0s 9 pp@ 4P8<P@P  aCHPPP j0P`F0\P`P3/PP K Y! P ,( (0 0_p`ln.\3\3m%"9.%O-dMP@Qf  |8 ET$04PLHD@<X @\ Qp`  D`E0S   R 2/0pp, ( Q@PP D  @P BK KO(_^8_8^O-MD |xtplh``0@Q4@C@pW  2/pPHP. tP xP 圱 `xK⼂(X,PP0 PPPPP P$PP6/@t`tP P 1/xx P 1/HX@PpH\`TD@ `@<8x P I4 dPKXP TP 8P   D QHP@8x  D  <@@P DAHPPP 0Pp0\`p`3/`P KD U/`=:4j__f.EU3^ _ ^O-tM`pQ&  @`P 6   F PF_,[ P 80p4 @ D H` \ X T P L d`h l Pp  D`0S# $ R 2/@P(N P`<8    0 QP`P  T pP  @@P  UAK P  3 PO AY0 P0p4@@DH `\XTPLd`hl @|`p  D0S$" P$ R 2/@`( `<8   .0  UQP`P @ T @ pY@p8 0p4@DH `\XTPLd`hl $`p  D0S  $ R 2/@`( `<8    QP`P B TS ? KO _^_^]_]`^_$^O-MH|xtphhL@Q0@4VP@T  2/@`P`. t` x` y pxK؅(X,``0 ````` `$``7/Ptpt` P 1/xx P 1/P`PX@Pdp\ L@HP p<5 @ D`~E0E PT,P 80 4p Lphp d KX T P 8 < K@ D H L 4P 0 ,` x [`( x KDP0SH$ t R 2/X` p  xPK8` \ ` x H0 L QH4pP@x  D  DP PL 8@ PQ .@Y804@ TLh dKX T P 8 <K@ D H L 4P 0 ,` x `( x KDP0S" 4t R 2/X` p ^xPK8@ \ ` x H0 L QHP@x  D % DPT DZL?@L@ h@ dKX T P 8 <K@ D H L 4P 0 ,` x `( x KD@DP0Sh! t R 2/X` p @x@K8`\ ` x   SH 0L QHP@x  D  <@@P L?PPXP 0Xp0d`p`3/hP K _!hSs0_l_`^.L3]d_x]]x _]X] _]O-dMP@Q}  8ET$04PLHD@<X @\p`  D`0SH!  R 2/0p Ei,( zp P > `Q>p`  }Q@PP D  @P ^>K KO_] _4]O-MD|xtplh``4QpC@pWG X 2/p@H@. t@ x@ 8 `xK(X,@@0 @@@@@ @$@@6/`tPt@ P 1/xx P 1/HX`PpH\PT  @  P<LD 8x P B4 d@KX@ T@ 8@ <@K@@ D@ H@ L@ 0@ h , '@( x KD`0S! t R 2/DX@ p  pA\ ` x @ P >  `Q A=@x@K D QH`P8x  D = <@@P =HPPP 0Pp0\PpP3/`P K ]!4`%4^l_\U.C3$]_]O-,M4$ R ` 6   P* pP @`P = ` P<`PPP = pP<Pq P k=P B`PU<P`p P O , pP G=P @(P 0 PZPfA`PU^<P`p(P# 0WmH$pP =p @P:<pDP( $` /O@P`p  00S 0 W O 8 2/ P  0l )P @ P U<K KO  0 0^%Z.&O-MH, 0 4 8 < @ H HK@QP4@UP@T7 t 2/@`P`. $` (` ( p(K0(X,``0 ````` `$``7/P$p$` P 1/(( P 1/P`PX@Pdp\  <Hp 7@ L  P*  `P  @D@P 6< LQD^;P8PP  < L D@PDH;PQ P <` B@`V0;`P( KP O( , PP ;`H@PDP 80; P[@gA@`V:`P [PDP8 #0kK$@P ;@DP DP LP:@DP( $H ` /O@`p  00S 0? W O  8 2/H@  0\k Ǝ@<L@@ P  :PPXP 0Xp0d`p`3/HP K ^!H 44a($ $0 0kH^0_M.;3%f.&O-lM`@Q  `p6P PFPFD (@,8<@ XTPLHD\``dPPh  D`0S!  R 2/8P @P`40  0  QHPAx (@,8<@ XTPLHD\``dPPh  D`0S   R 2/8P `P40  G P  0PHP L @P :K KOp^]`^]]L^]O-ML |xtphhh@Q4@PTP@T 8 2/@PPP. tP xP ި pxK(X ,PP 0 PPPPP P$PP7/`tptP P 1/xx P 1/P``X@Pdp\Lp PHD5`@ PEP<E8EL@ h@ dKX T P 8 <K@ D H L 4P 0 ,` x `( x KDP0Sp" t R 2/X` p )HxPK<@8`\ ` x  uH0 L QH@AL@ h@ dKX T P 8 <K@ D H L 4P 0 ,` x }`( x KDP0Sd! t R 2/X` p <xPK<@8`\ ` x  / H@0}@HPx  D D@@P L8PPXP 0Xp0d`p`3/hP KL U!h14^ ^ _C.23]^@]h]^<]O-MP`Q& @pP E E0sP RPA 8K KOx^O-|M`, 0 4 8 < @ H HK0@Q{0@B@pW  2/p8. $ ( s P(K⼑(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD   P p4@zP F F 0P `AR4 @88P@P 0@p0LPpP3/HP K V!H Tz0t^d_H>.V-3O-LMPQ4 p  @`K0E2K@%E 0` vPP@ P 7KKO  0 0C ^% .(3O-MPt`plhd`XX@Q ;@ 40  @P @5K KO,0PPPpl l0 0\X X0 0$ 0 0^]4]%-v&E%-W 3%%-1O-M`|xtphh8@Q4@ tp@Tǣ  2/@pPp/ Dp Hp 帣 PHK3(X0,pp ppppp p$pp5/DDp P 1/HH P 1/P`X@Pd0\ p P K P P*H`0G` GPL`Q}@8@0< DPP@ P 4 B P Q3@ H`p D` @Q@ HKP$0 0H0 8 8 (p 4` @@< D , 00 < DP f@@DP> p;@D@ ,0 H   L@P P3PPXP 0Xp0d`p`3/hPK W/h8H`P@@4\ 0 0fpl l0 0^84 40 0V^_\/.3b3^]]]%-Μ&%R-3}%2-1O-|MpQ  p`@7P p Q ᛒP G P@`PPP pv B$P  '`P 3p  @pW 2p`: `D@K @ 0<0 <3@0  D 4 $ 0 8 D( , <840,( @QL Q 4 0* 0PDKs` P DP \pV p@` P<> @;@< (0 D   @P P2K   @0 S 0  `,` 0 /4@Q<`8@A `LP>5A$PD P YP p@(AW #A ]P $@`Q P P8 0b Oppp@p KO   Nb^] ^/1\O-MD|xtplh`` Qk VP@Ta  2/@PHP. PPR pⰕ(X ,PP 0 PPPPP P$PP7/p`PP 1/P 1/HXpP@H\`T  < `D@ P4p @@ Q P@! 0ppD4`8P P  B$P  '`P G2@@hP  @8T k1@`:D `@ HPK D 0@0 3P0$  H 8 ( 4 < D, 0 \`QL Q 4D08 0Z)0D PHK@P DP ،@T. @8P4`0p> D;@@ ,0 H   <@P pd1HPPP m0Pp0\`p`3/`PoKD   @0 S 0  @@ /@QDDw@@@1=?PP WP `P?V?ƫP 8P4`Q0pD RP 0Oa 㹄@v@q@r@@p [!`Bo  64cI^_%.3\^)1\O-tMPQ  @ ` 8P P p P 1  `P +0p@ P B$P  '`pHP 0  @Q 0` ` 0 @ B< DK@ `D` 4 $0 00 8 D ( ,  0D Q ᔋP @`BP @ P`<   `@0 S   $ /(,@Q\p40p8<@DH<P>p> 0P >PP> @;@< (0 D    @P /K KO^<\\O-MP|xtplh``@Q50@e`@Tɞ  2/@pHp. pp庞 `⤄(X,pp0 ppppp p$pp6/`pP 1/P 1/HX`P@H\T  <p@ @84 :P  P  B@ P /  `P .@ P  B$P  '`@JDpP /p  PDQ .P` ` 0 D Pr@ HKp$ `H` 8 (0 04 < D , 0  D Q L@<P9   @0 S   `` /@Q@P`娠:PB=@?=4 0P P@8p> ;@D@ ,0 H   `D@P P.HPPP 0Pp0\`p`3/`P K a!`0^_d.y 3\\O-lM4@Q ` P0 P  pB$P  +p 0DP .` S-`p*0H@ $rL D p h D TdX@PD`\,($ pQ_L ppQ 0T % 0PD&`PO DP GPVP $@(,048 H;@L `0D   @ P -KP KO  5H^\Ծ^Y1 \O-MD|Pxtplh``@Q 4@D@pW  2/p`H`. ``农 @<(X ,`` 0 ````` `$``4/@`P 1/P 1/HX@PpH\T pD08 P  B$P  +@@0 D;@@ ,0 H   p8 @@P ,HPPP 0Pp0\`p`3/`PK@ W!`  @  4^ȩ_.3\8^1p\L-,@0P 4L@ Ȭ]L-,@0P 4L@ ꈬ](r*L-,@0P 4L@ 4](p*L-,@0P 4Lq@ ]L-(@0P 4蠫]L-,@0P 4LR@ d](o*L-,@0P 4L=@ ](v{*L-,@0P 4}L(@ 꼪](of*L-,@0P 4hL@ h](xQ*p/p/0 P $  0   /l^^ Q/ Q/ Q/T Q/P Q/ Q/ Q/ Q///Q/M-P`p 0@4/PpW  v%+ Q/H- LH/O- Mp@pP5`'@= 0.(Q,048` ``<` `q?` ``@DaHaLaPaTXa\a`adhalapatxa|aaaaaaaaaaaaaaFaaa Q  ```   DKH-MP@-DQ (ayP (p`7VP fQ K-q 0CK謺^O-MHaLq@V P (0P|  ``WXa\qV !  kPj ``Vhql W `P 0 03/  `p Wxa| V P P  pRY `` Va匡 V  RD[ `` Vq圑 W `" {`p Wq嬑 W PA\ l`p WKKO-M@p  A@+1P`V @ @pP`p P  BkpP~  /O@P@`  00S 0 V O 8 2/   p/O@`@@P  00S 0 U O  8 2/P @/Op`@  00S 0 W O  8 2/ `PvPKK-8MP@Pp0($@a,`aV04P 4P R P  2/ PDJ$@!  ᨀq(Q` j_ V0DP 0@QP{aU  ` R P  2/PF `Io 8P FJ 弑P㨀 0 A3/X !,P $ )J,0 $K]l]0H-(@0QthP Q+P P R P  2/Q00H-@(P ^ 0HUpL- M`(` @@0QHP P2 R P  2/P8Q;c; R P  03/`p+ ;485;i 0E\ 0D  BQ0R(ڬ R P  2/8;a \ !0 P 0 B03/KpP PEE  x]ܯ^Ui%W+]K-0HP PKP P `@ P P+a:0 =XpGTP`Pq P *G:0 h=`TO- M0lPU 4I(壯 AF  0O0L X PPU -F  0;0dPU _ :  0,0tQPU _9  00hPU (P ʸ P 9  0(P P \( 0XqGTP`Y*90P+A`T0, (SReN(Q PP ( i_`6* ((PP#@`qQ P LQpP` 0 A3/W@TP K7 K贬^ 1/D]Q/0H-MP4@I(嵮 SE 0aK0Q/0H-MP@@E 0NK0Q/0H-M@P^9 0:K00H-MQ P(Pʸ@ P 8 0K0M-M@0Pt PRP   03/^p 9`u) 9 0JZ49 P  0PP 0 A0KM/KO-M@PᨀQ ` ppP  PKpP 0 A3/ `V@APk pG\(!`0@SP0  03/@A4848p1^ 49Z 0Y@ALPP*@LL)H!0@CP>*ACarA!/rPPp0 TgAH1 LAT pADA!4S R@N     @P㨀 0 A3/KpꦙO-MP0HQF 0S0 Q    2/0>jx @$ T$ `4 L8 Z p0acP4P Ep 0@ZP㨐 0 A KO/KK-M@pP`VP`  03/` R P  2/P( 2A ^J7 R8p( 0~S HKO-MPP$@ `qQ PJeOpP` 0 A3/W@TKM-@PPP ` R P  2/7 RYP` 0 A3/( pO`OQ@V{>(upOPOQ@UPu OPOQ@UPQML<^'O-MP4@Q\ 4DPX@p0|! @ p0 $AD! 0 P 0 B03/@a`\V p p R P  2/` pEo CP QE  54Z4K脍]`]H- M! 0     0!  @L !0 P 0 B03/ Р]]O-DMP PD  p0(p$pp,p0048p<P  P,fP#@ K`qQ PiINpP` 0 A3/W@T, !MKЊ]]]pL-M@PPQo @td d @KpL @QQV  T@W&  @QQI  G@Q&P46Kp @QQ6  440 8Kp` R P  2/25Y WKpQ @QQ  ~4 0KpH-M@sA"rPPp$ + b0P 0HV pAFA! 6SP @" @pG @KpvO- MP@`PQ pdDTD|4 {" |6X%Xp R P 0  0CS0R 0 W p R P  2/ 4  68QJXP~ K}40$ 9q %X Yz p W. ~$WP R P  2/p 4?48QXP- J,J( J5p  R P  2/p 4 N8QXP, J+J 4X Y j4% TJ J 3 X Y 4I8P nV  7 J 3  MP@ 0 AKO/KO-$M`PPP:p4d0`@$t` p p@@ @@@ppWp @W@spppP 0 B03/ 0K @0@  KOW0`@s` p p@@ @@@ppWp @Wapd@9 R P   03/ K030`PDr` p pPP PPPppW( f0`@q` p p@@ @@@ppWp @W2p5iF@0 = bp PW27XFp0 = A@@@P 0 B03/0 5K;Fp0 = @@@@P58)F0 =@dppppP 0 B03/ 3V 0'TK]̀]]~]$]X}]~]}]H-M@<P R! 0S 0S0S: RP Q QQ`v (p`<pQ 0IKO-Mp@`P*p@ @K 0@CP/*AC>SA"rPPP! hr@ @W `AGA!7SP @" @`FKP궓H-P8P5 @JP0 8QP @ 0@CP%*ACarA!/rPPp A T pADA!4S @pupL- M@1P` 0 P P `PPPPU PK\E P0M` @PPPP00S  BP5/Kpy]y] r! !L- M0@  @@ @ @@@@@T  @K^D = <@@@@0S  B@4/Kx]x]L- M0@  @@ @ @@@@@T  @K^D = <@@@@0S  B@4/Kw]8w]/M-PM@DQ `(p U ` `$ (,p0p4 8%ۡ+pL- MPD@P  A0`pPD P `` ` `````V`K\6`P 0 B03/ `Q@  0@4/PPU  0@4/PPU@<  KpB@ `= tq],q]U=%W+pL- M@P0p  @a @`    R K^  BH =T`P 0 L3/ CKpo]to]pL- M`@ ` P0    P!Q0P0  2/`-> :L !0 P 0 B03/Kpn]hn]M-M@R4q4! @QPT U ` R P  2/ `== P U =  PUBPU4W4qKO-MpP D4@8 0 ` Q@`<`D0H LpP0pTL4X0\0`0d  $$D P$(,0@@p Ph( P```p|A0@804,=  Q3 8P 00P 4 (0 0, $0 <0K1< 0S0 @KS0@< P 0 B03/. 0^&X\@@W[*8 5? p`W`rX\@RH*8>4EP3@K`A4 vFP"p AQ PDDP]DCP$8`K0 p4` 8` 0 ,   D0P 48 00 0 P PD4@ 0 , 8K(P 8 $  AP  KP ?PD4< A 0 8 DKDKw^dc]b]O-dM@D P 0pppP0, P$0(lb````,00`48<0@   $>DQ P8 KPQ?P dCPq>DP' CP$8`K0 p4` 8` 0 , 1 gC0P 48 00 0 P PD4@ 8`K0 , a(P 8 $  d@P  KP >D4 A 0 8 Q pPP>CCKu^`] `]O-P?P `< D @`KH`K(Y0pp@ß$@ ,pp( 0`ppWp8`KWpS;$p0 (= h`P 0 B03/HK:@K :p R P  2/6P R P  03/p\? 0P?P R P  2/p# P'D 0`P$P (p,0,4p8!   0p8@ 0@ 4 (0 0, $0 Q< 0S0 `KS0`90`804,= < P 0 B03/ `8@ d20@ 4 0 0(` `, $` Q<0 0S0 PKS0P90P804,=$` < P 0 B03/F `o  >$08@ 8@ 4 0 Q, < (` :P  KP #9 P->8H A 4 < >=K(a^M]0M]TK]xI]H]K-@Mp@؁PWpqDa? p$(,04`8Pp R P  2/PK  L&C>@  0000  !PR  0KR  8 n؁(> Q  % R$I: =% R MW@'>=K[^G]pL- M`@ ` P0    P!Q0P0  2/`s% /L !0 P 0 B03/KpF]tF]O-|MPpDaAHL?PT@@HX@\d`lh@p`XᨀP  2/ᨀYᨐ P  2/ᨐ@⨐Y@  P Hp( $ , 0 A<@DPT  2/iJ e% = P 2 0 p  !PR  0KR  7 nH@=   4$ 8$==D@t<$(, 0@RCa: :J  ( ()j j@PWBT%U%@AQPP`H 0Y 01  $0(`V 6S !$PD@ 8|$ ;  4t$Hj= # 9 m$P P [7Hi= #8 $P(H<K`ꁅY^LD]O- M@Pd Q y5PU:#P`q 0@4/P<pW2* A*J aG@#@7z4 X$ X!  ]4`V:#`pQ 0@4/PPU($  $4K1 %3p+ q:K-P0H Bo$@pG` 0c-\`P*`\\,X!0@P-*AAr!rAPAPp d^ᇑ`X1\aV pAFA6S pG X\`KpꮄO-LMP@ F$PP@*/!0@PI*AAb!rAPAP`3  !熑1qW `AGA7S `F $P@堑 , @ 0pW0Pp"  2/p R P  2/` R P  2/ ``V `PV ` R P  2/V@Q. 0P0w@8P4p p@@@< D@,@@,ppWp @KW pF@@,@P 0 B03/$P p@ N! " P "  # p"pQ@PK $0 Pᨠ R P  2/  ZO$p  P av(;`0,,. 0/,` 31D2` PO !  0P `$pP@ P  C  0 pH` R P  2/p V$ 00 8 4@0<D,,P$(0 RPP p4 !04 , 80< P 0 B03/@TL 0 &pB pP 0 A3/$@p R P  2/$@Q !P  7! 0Z$Q+ `$9P 4($ g !4 0*4($ Up !` $@*! Q: ` 0S0 P   03/ @ 9P 4($ (Pp  4 0c*P  !p( 0< K$48p004 =<c`,( (0 0I;];]:]:]%d-2L- MQ 0@  @@ @ @@@@@T K @K^3 = <@@@@0S  B@4/K4]@4]H- MPp`6P P0! P 0 P% KPP0@,a P` `@@ @ @@``V`@KV`3 ! 0 P 0 B03/Kn3 `0= L@@@@P 0 B03/l/K3]2]<3]p2]L-@p()O-MP 4Q4DPXp0|!  p0  &*D! 0 P 0 B03/ @a`EV p p R P  2/`  p.oO  vP S.   h4X4K1]h1]O-DM0Pp`7p R0 P   03/p ' Q @@(G(P040P, $010$00S0 S@2 (, $ 004 P- 0 B03/(n200(@, M4$P 0 B03/ m.@P P  0r L (P400P,$$P# PN5P (P 400P,$$P KP2 (, $ 004 P 0 B03/N7P 4( վ@4 @0 (  0P?XK`/]`/]M-M`@PQFP pXt`,QX   0K`qL K`FgZ!Q P00CS0Q0` < U+ KP3 P@?Z`0 :"U1Z` 8U rKU8P4KC4K4ZP z0 P"K !KH-P`@6P 4($  p4 0E'M-p@PwA`( 0'lpP*`llh!0@P**AÁr!rAPAPp t!Q`h1laV pAFA6SP"pG hlp!p 0H-P@ 0q!R R%0H r1S0! ! R%O-lM@hDQ `(p U ` `$ (,p0p4 8PP<UP R P  03/( q`p!R 8 0 4 ( , $ <K< PD KPC1PP R P  03/( 9`(p!R 8 0 4 ( , $ <K< PL KP p4P <`0P 4( ŷ@( x4 $@0!(p  0P8p *(84< 00, P 0 B03/( 08`P 0 A3/X( 5K (%K@v,(  8,(  2x$>+<]<]H]H]$n-M- M@PR Pp0(! P 0 P PWKN*`O! 0 P 0 B03//P 4($ p4 0J Kl] ]O-\Mp00P@5P R0 P   2/x,@X(p `P  4d$X,@(p  )D0/ ( $ p 4 ' $` $TPxP, | d\X`hlpt儐$L@D @HI0@  (Ϭ 0(@p $V @@,`80<40#   0 $,\ aX  0p7/P`VG 0p7/P`V:8P 40 00 8 P  P,p ,`@408`<@#   0O # (KF.8P 40 00 8` P  P@`#HP D@ 00 HP P X  D@F @@ .(,`@0  ? P#X5(,⨀@0  -p R P  03/ ,{  Q   0-P㨀 0 A3/  q `,@0pQp% : 0&` !-$ P@###p(P 0 G3/`( T P `V( ,`P   2/(,@y0   W$VP  aP  0p7/P`V  0p7/P`Vhd  ,@PDQU   p Y" K<]Q$S+K- P`@  D p(,`0  E6 @O- M@0`P Rp P   2/(0 `/"`)" `(۪  0& fP@ 0 AKO/KK-(M@Pᨀ000p $, 00`P C!p R P  2/  s,Pp 0 A3/@! P  00  P PP㨀 0 A3/KK- M@ᨐ("Pp` 0S0 Q`P   03/P  Z 0Lp` 0S0 Q`P   03/P  ? 0!KQ t R@!<2@ 0   0D !0 P 0 B03/ 0 \,P㨐 0 A 3/ᨐa 0pQ`# F 0$`pWpP  2/p R P  2/P !+ vu@ l= 6 Kl\<\H- MPp0p@QP P @@ @ @@@@@T@K\@n @0= t````P 0 B03/DQU  p P K\p\H- M@DpP  0@P @ PP P PPPPPUPK\P P0= \````P 0 B03/q!RK\,\K- MR P`@p?.P?2P @pPpWh0pQ ? .R? *R*R0p 0  K!KK 0P@0q Pp p@@ @ @@ppWp@W(p@@@@P 0 B03/`pQ(_   K!KKp p0=   I$K+t\,\O-$MpP@0`  ?.Qp?R02Q pP0  03/ P2P 0 `P P$`% !0 P 0 B03/  PpP  P P 0 P 0 B03/ pQ ?.Q?*Q v) 0( r 4P@ 0 A3/K\L\O-$MpP@0`  ?.Qp?R02Q pP0  03/ P2P 0 `P Px`y$ !0 P 0 B03/  PpP  P PGI 0 P 0 B03/  PpP  P P 0 P 0 B03/ 0pQ*( r iP@ 0 A3/K\\0H- MP@P 0 0L !0 P 0 B03/K04\\H-@PQ `p?.P?2P `pPpGP: HH-   ;$*H-`P @Pp pWH- M0@DaP @p` `PP P PP``V`PKV+`PPPPP 0 B03/` R P  2/V 5K, `0=  0 0̪p\(\5$,E2O-K Q  0 !K  0"K84 40 0'\h\\\\\\\$V,g2O-LM@P 娠` ? .R@? 1R@P `1 ? .R  ? /R `V20p 0  RP  2/ @ @VTpp R P  2/@( 0` R P  03/ f b0@p 4P# ( $Pp p$@ H@T @ p 04P8@Ÿ!@@ D@0@H @@0@@T ,@ \# @&848 0!<0@ P 0 B03/ 0$`7u<@408=@qpp0pP 0 N03/@ppQ(4$ (0 AV`"P" @pP: 0 P @ R P  2/  P 0 A 3/KX\ \|\\pL-@`P R P  2/TpL 0 0$,) 2K-Mp@ @ `P P E@TPpQF(⋡  R  0 ?.Q ?/Q*"K 0!KM-M@ P 0 pQ P ` PU "K 0 pP P ` PU #K0H- M0 Q@ P    R K^  .( =@PP 0 L3/)K0\t\ ? .R000?0L- M7S,.R@ ? 7R  1H 00 0100R%0! 0 P7 0 B03/K0@  @@ @ @@@@@T  @K^ = D@@@@0S  B@4/K謴\\\\L-@LH-(M`@ R R*P2 @0@0 PP PPQ00SH t $0R(P0R0 (PP D P< <Pp0 @ @ P p1000S0K\X0QPPPP 0 B03/Go<0PKS!%+ PP  B03/PP# 0@oK@ 0m h0000P 0 B03/KK0 `m p \\D\\0H-MP@P  P  PP  B03/QP K0 0@o@K0pL- M@P&@PPTT0TH\x0@`8Ÿ @ `` ` `````V`K\b`P 0 B03/`pQ(PAU <KpKpLV;Kp0@P a @` `PP P PP``V`PKV!`PPPPP 0 B03/1KpKpL}@ `=  `0=   ೣ\\\\y$*H- MPp?.P?,Q;.P@P?,PP 0p`P p PR P@ @P@PPUP@KU_@P% $  PP P 0 P" PY   00 PN PJcPH _PD vDP C( 0,($  01Q 0KQ`0qpppP 0 B03/ @MP   00 PKP0 $@(  PP$($vDP $P  00 $P P0  K  (0 p$,M ꜙ\`\O-    DP00Pp @P AT** DP1@0P P   00  P0 IV $`ɩKp0Q 184P0 0@pp< Dp,pq,00S0 pKS'0ppp,pPP 0 B03/ @ P   00 P P800p4P< V̈\\O-LM` `pP$`(`DpPQ ` RL `@P DP  HP Z*P$P+P Z:pJGP*IaA!.rPP P`*G!QW` VPT$ `( %p@ AX:`AP  l P? (v >    DP00EPp @P AT** DP1@0.P P   00  P0 DV $`ĨKp0Q 184P0 0@pp< Dp,pq,00S0 pKS'0ppp,pPP 0 B03/ @ P   00 P P800p4P< U븄\p\O-DM `P(px3@0P,0 08p$p4 <@p$000Y`S0 pKS0p0p(0,4=<@ b``$``P 0 B03/ p@ Q  l00(p, m4<@SR P q!R Rc?.Q?*Q(@$0 Qꨐ R P  2/ 1 0@(P0P, 80$04 <@10$00S0 pS0`p$pP 0 B03/ pT pQ(@ғ0T BP 0 A 3/ AXv:P & PKl\\H-q`@PP P P P!(  0 $  0@( $  0M-(MP@ EP rPpQ,P4P0 @0`Ds@p p`` ```ppWp`KW\pb```P 0 B03/ hcnP @0`tr@p p`` ```ppWp`KW/p2 0 @`q@p p`` ```ppWp`KW3p6p 0= p 0= Ha```P 0 B03/ pQPKp 0= ````P 0 B03/ppQP5Q5 (4Q0 Pt~\,~\}\|\}\{\H- M R Р 0R Р  РH-   )G$*pL- M@`P R P  03/ `P0 P 0 P KPFPGl! 0 P 0 B03/  0AKp,z\y\O-4M`p P5@@TP  03/@ R P  2/  R 0p$ ( ,pp0pppQ pQ $P0 =(` rpppP 0 B03/pP(⛑ PJ` ! uP(| 0? P` (e U([ 0 v ;=k(C 0 @#Kx\x\ r1S! ! O-MPppQ `P*p`,!0@P3*AÁB!rAPAP@% ڰᄡq`1qW @AGA7S @D 尡(֐ KO@$RO-LM`( p0 0P1 R P   2/@pQPn ($P@ p 800P4 ]<@D5X P BY 0& 00`8`4 @0,0< D10,00S0 pKS @0Pp,pP 0 B03/Z($P@  pY 0& XP N0& Ks\s\L-@LH-   ٔe>$g*4H-M p@P  Q ` 00  `>wDP P  00 P PKqDP/H- H/M-MP pp0 0@̾KO- M`@pP $ (D0P AQ 0!D0Pt A! Z: 0匾KK- Mp`@HP- p0` p `` ` ``Q`Q6@a```P 0 B03/ PQePEp04 p   Q\@, @0= " @0= PPPPP 0 B03/ 1H ovPDP Kn\Xn\m\p,ʑ1 $^p,A1pL-M`@P KpP BE?#A1?#/0B! RQ!! KpO-M@b  pr P  Z0 p` P UjV`R 0pWR0 P Bb DZ,pq@ ㄗ0 P UpWZU`001S'zV U*0@C2PS1`PVP  RKD@ @0 0 0 0 $m,1 $m,1/M-0( ! 100A@@QPPa``pppp```p```p```p```p```ppp0  DP DP pM荔HTM覔H]M]M]G]M]XM]M]M]xM]`M]dM]PM]XM]5*4B]T/L]M-M@pQPT뀀l zP _\ 1/H pP p,P PP_   ,` `凶  `}p  `sL  `i(qpP  `Y  `Qܦ p u 2/`t-ᓇKXd`A]F]E]N]K]K]K]K]E]tF]`N]PK]Ȍ1D]D]D]dD]xM]0M]?]™,L-@L-M@, KpL-M@P U@u 2/`t᩶Kpx>]H-`@pPV TTeCP }EPPpP Ī/tH]L-@MpL-M 00 @0P WPpXU `jPUKpLЍ/pL-@0 WPpXU `QPUppL-R @P`D@TppL-`@ P p0P  cQ *0 S o T OP J ᠱ  0(J000 pL1D/;f*+D/D/#Q/M-MP@j Q`R- a p2   Pe ?P# : W  KM/O-MRdq @Pp` PYt8|H\X\\8H\X \ o i0 S * 1/0 S : $ 1/ 0 Cs q^Q,R   R p  0刴LYK  %빟/#b*1p%$/Q/ K-MQ0S& `pPp@P Cs q^Q,R  P R J  0E0SK1o%/H- M0 Aq^Q,R P  R < K K  Р РHX?1n%x/0H-P@T    J   c J0*L-M@ Aq^Q,R X  R @ ޳  ٳK31m%h/L-@Q  L-@CL-@PQ  0M-M@`p(,`0 8` pSP4PcR( < 0pQ5 <4`@ p *< 0ᄏ@@P  @ <P*@P P PrKP QpL-0 Ss0!,8HXq qP@qP<q ^9@!q R R q \ q P@,lDlPllll\ \ \ \ \S S q\ \ O-$M<`@VVK(P PQ, ~ P & p PO@0 0 0 000`Ts(P岍P P  ` P#P(4 <0@pp宎K$<]}10]M-M@rP P  ` PP  P ` p妁;"WuPK U Umi ( R*`,0 SS0p^Oe4pQaWfc!sqQp'`Via<Qlm   P  pP k(p a`p`d ` PpU ᣠK0p l1p00 0G/VX UP(p a` qp0 qp+<Q Q < < Q<Q<Q q`\\}@)P U W  PpppKK(p ``hz1y1*z1y1y1Qy12y1O-$M  QeV (`V,0

PH- M0  ݊ РL-M@(  @ YKO-\M  0 pP Q< W%(  $ @ R $ PP0 Q0 C0֫4 P0 P, J Pp@`Q  PX P`,$@`Q ` 8P P Q8P`4 0P@0p, P8P (P0pWS*<A`Q d8$P @ $PR 8 `( 0p W,p<`J`pP1A4@pY  @,  0 Pc<(`KQ(K<tT (p@W0Pg@ i(0pWD``0@TPD RP0P_D_` (PP  @  P#`08 Q%0QY  W P  QM P O,PX P @:40G8  R!!, @~y Q,  $pY hy (PQ% 0/ $(P0) 44  T@@pWp p @@0S  0 @    Q 0 @ TP$x0Q 40, 8@8(K  ɞ(pK40 p0p@8@ p W:Uq(U ,P.<``a0p PQ p @pW%pPYA < 4@ P,@(YZ @` , P(ZD`x`Q p` P6 @@pWp`,$P Y@#Psx<Qh88@40(K8  &(pK40 p@8@ ,B@  P @`<Q%D0Q#  ! $P  Q P O,P6 P @0G 4 0pP pU4@suK@<  h|@< <0 0`|&]h&]&]&]#- ] ] ]D ]#:?,Gb1O-M p PeV;@Pp 6 P 1;P% @ %0 0RR wPwd#P Q `pV P K @ PpK0H-P@)&0L-@ 1/T LM- M `=PpGP  @QP   0P`P s @Q`   0` p *pp0p P pJ  ֺ K1_/_-_H- M0 00  KR* Р  РO-  KQ35 P2  $KPao 2p p R$ pG FPV0 `  P KO a @ K NPp PPCaJPPpWPp(KP PBa.PPpW  P KP KPKK KP KPKpL-P(@Y `C(S CM C(@pH-PP& @/n?P P  Ap(+`4  0!3/`pA]M-P P% @ P P  Ap(`0  0!3/`pA]H-P P& @ tP P  Ap(Α`4  0!3/`pA]L-@ P P  dP @<8 80 0v($ $0 0}v6##',K1#',|K1K-@P0`p`VQ P P  dPQ (mPqQ P (\pV pL-@P$P`$`V$p 0 0/pL-P@`U P PVPU Pp  R/\/0S/pL-M@`PP  R V ф " 0PP 0  V QDKp 0 /H-M@P` 000ขT ,` P ંDূp`W P VKtH1^H1QH16$ 0   0/L-@`O-MPQ/ q`7@P  R T NB 00 T QPWK0H-P(@A> 0HrF1F1 00/ᙿ#K-p@ 2P`V PP`W*P P*PP ``PP pAPO- M@P{ P QQ Xn Q*`PP `P 0S` `0S V `X$P 5X P pP pQ p RPpA?2ᒃWY `V `PP*P ` `P K pMPpAPjKH-  R 0S00ࠁ0S  ^  RM- PU `@p0W00SPP  R pW  + 0M0H-P@wP0pL-@E`PV @@ 0EP `P  R` ` RVpLDB1B1!,pL-M@` P```` `$`(`0a4a,ac0P8% < ```$`0`<`H`T`@a`a\aHaLaPaTaX㒂T0P  D `00FKp  su#/1#L,H-Ha@LqV PU P ᆂ`W,Q0aU P {PV\VHP Lp80,P 0i >H-HAPLqT `V P S@WHAPLAP THLP HM-@P P `p6Y@Q pEMlO-M0@,p2pGS@P" ԊP pL1/ P`A7)E 0J J, Ẋp?W(P$ pPTQ㺁0 p   p,CWA( 00Q p,, p00  V |KLTQpc/#O- M `     8!q#X'0Appp@AT T `$@! @!"!R :<8A   01SSP KFp 0  pP]ϋA`H PD P# @PO P  @@ሦP +  /Oî 0 PLPP*PLLR ,! AB!  R 00KA#L-M@QTP Kƀtt0   0   ,C\@( 00KkTK蓐/9#L-@   -_ 0 ! L-@֮L-@P ̮Q/0H-@P0H=K-P `@FP'*A AA!.rPP P@*VpF AV  .Y@ K@p-K-P `@FP'*A AA!.rPP P@*#pF AV  -Y@ K@p-K-P `@FP'*A AA!.rPP P@*pF AV  -Y@ K@pr-M-@pW p`! pWPuSTS   p P ኹX B` QpXU 0MiK-M@ P  PpP: [  0 P`qP B PPkpP 0KK `YLpK-8M@pa P  PP,`P   0P @KPP ߸K)3K `PPKK-8M@`@QD  0P@`3`P   %2P  q PJ ᙸ`R  0`Pl ; 0` Z~pP D 1/~pPW  0pRPB `  !R4HQ1 `? 0` % P`Vz`p~~pP bD 1/s~pP  0pR`p~K``@< <0 0PoH \\;,o11$\\E# ,;,H-8M`@I  PE:P0'000@p0W p00pp000?   @R p$P(p,P04yP@2P @Q ' 2@oD@KK-`A @ P<: Q P ᡷ pPʶPPP  P:끐P ့ pPᨶX oH-`@PpRf*Qc  Qb \8hDPp8 DPfz u 1/? 6 P8p W2* Q0 p8|Xd8DXd4 1/C > 1/ ? 7 P    %n땣#*K--HMP 0@P(@$1P   `P2 ǶP)%P ?P 0   0  Q 00Q Q4 0* K pP`P CO-MP$Q7 `@p P 0 0m 2! Q |0403/P@ P ۵K KO,( (0 0mm\t\q#&,/#n,C(1O-|M, 0 4 8 < @ H HK@Q4@xB@pW$ ` 2/p`8`. $` (` $ P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P@`p PHD!D1 0l 2: Q6 |0403/@P p88P@P A$0@p0L`p`3/HP K  H zoj4o84 40 0lL\X] 3,-'1\#,/ɝ#~,S%1O-M-`MPQ  `  !Rd `,`< 0lH  R D@     +b j a * 0+Q0$00?G% Q:2tSsS:@pPZ3tpG2' pg't0GS5#PRtS 3t0C# 0CS 0q0Ó$X Q P  @%D R1 !R0p( P P մ P  pP PP '0P Q 06 P@ R LHPPTX\HAXP5 @ Q $ P Q P Q:  ˃ 0Qp  P rP123`Pp P$P P  0 $PU:t  P Ri `@@0RA<8   J j a 5 0P /G00 P*2dRcR`':0`:3d`F1Ơ `ffT ER P3b R`RdR` 34 B2 BR 0R:$S*  k X:HuX P`Pk /P` @P [8KЍ  Q $Q!P@ P Pa b6^B@PUӲPp%P] QX  $ RP* `O @&`o" 6p  Kjp@`pP  00S 0 U  8 2/ Pᒂ` ,` P  p;  A@ P P^ p$ZZ $Q O $@P0P0 00^`M  00S  0 ᨋ OR030. +`8 2/0 DP @ RJ DR @`P @ R J@DAT@PU: T*J@ P $ZP*  D$Z:EP`$@R 0WPq`p'&apD@W6wPW!pp'pD p,p( `n 04pp R:$ T * 0 gP wR`:`  rPv 8KЍO$ 0 0rip\͐#+_##+>/O-M-Mp\ ` d h l p x xK@DQs(^P@T  2/@`X`1 T` X`  pXKĭ(X ,`` 0 ````` `$``7/pTPT` P 1/XX P 1/Xp p@P匠 L PT !R ,< 0h@O  R |x     +b j a 1 0+Q0?G@, Q:P2tSXsSp":p`j3tpG @X2' pg't0GpS6# XRtSp 3t0CXp# 0CS 0q0ÓJX\@ Q kP \@@ %T R5 !RX`0pp) @ P >@ `@Pd@@@,P Q 02\@@ R @T X Pp L HKD XK⧩H[P6 @\@@ Q @ Q @ Q:  / 0Q`@ P װ@Ǡ pgnjt GpR3  R S:RtRp34 B2 BR 0RS: :S*  HU:XKԨH[ p<Pf )@<@PLT@ P 廯PP 0p0`p`3/xPv8KЍ  Q\Q!@ Pb 2_BP@T$@`%@\ PZ QU 00SN*<OxPp o"ᇶ`= f@` p`P  00S 0c U  8 2/p~X<@, P ፯A@ P Pᱮ\^ࠁ^ @Q O 80<0P800@PH400SpM8  00S  0\ 8\R40540O. 8* p`8 2/40 DP @ RJ E RH aPpP X @ R JPEA UPXY: U*J@ P Z* DZ:0POHKO\X X0 0dHD D0 0d  dԾ\E~#G)~#6+1a~#+t1O-MD , 0 4 8 < @ H HK@Q0@D@pW  2/pPHP. $P (P  `(K|(X ,PP 0 PPPPP P$PP6/@$$P P 1/(( P 1/HX@PpH\TD P ` 0 %$Q p<07 %$Q4P8`c|a|`oO@P P  @ B`@T5@`PoO ᛂ cPp@P  00S 0ᘅ X  8 2/ Pp P  0 @0`V` 0v S  8 2/@ 0R:8P. HP0 {84@@ @<P D$HPPP -0Pp0\`p`3/HPKD 0! R(=0P HD H Sf0fhd d0 0cTP P0 0c   |cغ\],21x#)-y#++1 y#+ 1O-$M200Sq `@00Ph %4QcQ00<Q p p Q 0 @KAP@`W @`᠟9pT @@` 0 `6/ @ TajA`P p 0 @0Q UKO  0 0b먵\v#f+0O-M, 0 4 8 < @ H HKp@QL@XC@pW: @ 2/p`X`. $` (` + P(K(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/Xh@`pXlPd  pPP@` %$Q{Q  < Q    Q0 `XP`P 0`p0lPpP3/HPKKATPR@D@H ᠏RH @R4 pgt0GpS<㠡0q0Ó RtSp 3t0Cp# 0CS0 q0Ó  ` 0Q #! R#Z   Q   QZ 1 MP p@<@DPHLhd`\XT@n @P#PTp<@` ᫈២LP D`#P @   PpT\ R΋@ΛpΫ PV: ,(   J j a < 0;R`oG7 Rj2TVSV0:P 3TPE 3Š PeU`NV0V`V P:KRTV3PF` @P`U P :9 A  P/* T* ` !` /OP ! 00S0  * P O  P803/@pTm@ Pp @#;   0PTd $@P ɨ8KЍ 8KЍO84 40 0W` A\al#+;#Ir#+XY/O-M-MT @QL@G@`V  2/`php. Tp Xp  PXK|(X ,pp 0 ppppp p$pp5/@TPTp P 1/XX P 1/hx@p`h|PtT@ 0 Pp Q&6 0_P0`S  R d`     +b j a 5 0Q0?G`0 Q: 2tSsSPp%:p`j3tpG K\ !PX@KpPKp ᮆᢠ`[P hp !P T@ #`@P/}[#2+>0IX#+)0O-M, 0 `4 8 < @ H HK\@L Q44@@UP@T ( 2/L`@pPp/ $p (p  P(Kd(X`,pp0 ppppp p$pp5/$P$p P 1/(( P 1/P`X@PdP\`L` @pPHIJ$ (   B4 RDp qI@@ 00@0#T#3 0Z0 0@0SpW00Q@Q^<7@@ Q@^@<0<0< 8@@#P <P @Z T 1PllLl `Z AZ W@ 0000 T |xLPT0 01:` 0(K @.P W  p P< P 8PL ` P P83 PLQLD0@@H AQ oPPXP x0Xp0d`p`3/HP K  H \L`4\HD D0 0Y@< <0 0YД\]+0R#V+8/V#ʸ+0R#6+a0O-MP,Q1 `@p Q 0 0Y  QP ~P@ P K KOHD D0 0Y40 00 0Y(\Q#~+8/)Q#޳+M0 Q#+R0O-|M, 0 4 8 < @ H HK@Q4@B@pW h 2/p`8`. $` (`  P(K$(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p QLH!H1 0 Y  Q2P5 x}@P pP8P@P Y0@p0L`p`3/HP K  H [p4[TP P0 0X@< <0 0X딍\z]h+0-O#+<6/)N#ް+M0 N#+R0O-M" R p@P   Rhd"d2 0X0`VQ`g  Rt 0 0  w u  s+b j a / 0Z0?G`, Z:2$S#S%: `j3$ B<  bŒ$ BR6  z Ò VR$S3$ C2 BR 0z ÒVjV0  V:C <0 3/ `P 0`@ P xK KO84 40 0 X A\1K#+#UM# +d4/O-M, 0 4 8 < @ H HK@Q0@C@pWO  2/p@@@. $@ (@ @ `(K⌃(X,@@0 @@@@@ @$@@6/`$P$@ P 1/(( P 1/@P`Hp@TPL  @4`P Q"2 0WpWQp`  R <8     +b j a / 0Q0?Gp, Q:2$S#S%: pz3$ B<  bŒ$ BR7  q Ò WR$S3$ C2 BR 0q ÒWzW  W :A <0 3/pP p@P 4Py@PHP 0H`F0TP`P3/HP K  H Y0Y@< <0 0VA\t]|+0F#+#=I#+L0/O-M ! R;  `p@   R 0 0V      P PP }P LPPP@P K KOl\ F#¨+-/O-M4lhd`\XPP@Q0@lB@pW T 2/pP8P. 4P 8P  `8K(X ,PP 0 PPPPP P$PP6/`4@4P P 1/88 P 1/8H`@p8L@D p4 `P Q40!01 0'V4 8 0 , (K$ P 8@K{([P0P L@P@@ P c8P@P l 0@p0L`p`3/PP K  PXe0X \ AR: pÐ Z:RR 3 B BRpÐ Z:Z*OP@DTh\@@`@d`PtX / D p P:P@DThXp\@`@d`Pt HPX@ P( @Qo POP@DT@\@`@d`h@l`pPtX  p P$:P@DTXp\@`@d`h@l`pPt ۝HP X@ A M P @QZ& p  T, %P@DT,X\@`@d`h@lpPt ᦝ  0Y P p$ p$(0X p$P1 ,Dp@@   T, P@DT,X\@`@d`h@lptg 0nYx $Z:(0 pYhA Q]:Q* {(0\ I@DYP40   J j a 7 0P /G2 P2$^#^+: (03A l8|tG p\: \ Q*R$^3 N AQR  Q* Q*,p A,pP@P 埑8KЍ 0 04I#r+0H-P @` P  p P` 2R2RA  r ! / 0 Q R0R O-\M0`Q @0p :$QQP  R $ ( [  Z Z0 Qq   Q  , 0 [ ~ zZ U P*O @ P Qf @ 4 8  [ [ WZ @@Qx h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a ` 0RP_G[ RZ24U3UT:0:3A< aAQ3rÑ C $  F_ J_  L+_b j a 2 0RP_G- RZ24U3U&:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UN3E1 AQ0rÑCR4UK3E1 AQ0rÑ@R4UF3E1 AQ0rÑ;R4UD3E1 AQ0rÑ9R4UA3E1 AQ0rÑ6 [/?S* 4 [/?Sr[ [/?S [/?S[rP [/?S[P [/?S*@ 0+S[tP@P `儎K KOUD@!@1 0F 0 0F 0 0F 0 0E 0 0E`\  E<8 80 0EHD D0 0EK\#Ze+^"#e)=#e+ҍ0#e+̍0#:e+BY##e+Ӎ0#e+э0]#f++O-M, 0 4 8 < @ H HK @Q0@L@pW  2/p``` . $` (`  P(K☬(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Q 0  Qz  l p  [ p lZ W8`<0* P  QW`  tp  M IZ j@Qk xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a ` 0R`oG[ Rj24V3VT:0:3A< aAQ3rÑ C AA TP  _ _  +_b j a ) 0R`oG$ Rj24V3V:0:3A< aAQ3rÑ   LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VM3F1 AQ0rÑBR4VH3F1 AQ0rÑ=R4VB3F1 AQ0rÑ7R4V?3F1 AQ0rÑ4R4V<3F1 AQ0rÑ1[/?S* /[/?Sr[/?S[/?Sr[`[/?S`[4P[/?S*@ 0+S[4P$`8<@P 2`PXP ;0XpK0LPpP3/HP K  H tE0EPL!L1 0B 0 0B 0 0B 0 0B 0 0Blh  BHD D0 0}BTP P0 0uB>\ ,]+ˋ0"W+""X)"FX+&0q"&X+ 0"W+K#Q"X+'01"W+%0"fX+G+O-MP(Q p` :4QQ000S0$ (0 [  Z : Q @0p Q 0  Qz@ , 0 [ o kZ @ R*`P pP QS 4 8  [ H DZ @Pe  ``< `  `&  `^ & ` i `  `# C< @  [4 1  /+b j a  0RG R 24P43P:0:3A> aAP3ࠡrÐu AA\X _ _  +_b j a  0RG R 24P3P:0:3A> aAP3ࠡrÐLH E_ H_  J+_b j a  0RG R 24P3P:0:3A> aAP3ࠡrÐ<8 }_ _  +_b j a  0RG R 24P3P:0:3A> aAP3ࠡrÐ,( _ _  +_b j a  0RG R 24P3P:0:3A> aAP3ࠡrÐL P  [_ _  +_b j a  0RG R 24PY3P:0:3A> aAP3ࠡrÐR4PQ3@ @PrÐFR4P3@ @PrÐR4P3@ @PrÐR4P3@ @PrÐR4Pb3@ @PrÐWR4P3@ @PrÐ  E D H  [   +b j a + 0SG & S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP 3$@ @P sÐ*1P[_U P  [   } TP     +b j a c 0SG ^ S 2TPSPW: PZ3$ B> b$BP5ࠡsÐFRTPC3$@ @P sÐ8  B D@  F D  B+b j a ( 0SG # S 2TPSP: PZ3$ B> b$BP5ࠡsÐ RTP3$@ @P sÐ   A 40 _ _  +_b j a  0SG  S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP3$@ @P sÐ  L1\ $  Z_ \_  ^+_b j a  0SG  S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP3$@ @P sÐ   T X  [   +b j a q 0SG l S 2TPSPe: PZ3$ B> b$BP5ࠡsÐTRTPQ3$@ @P sÐF*q0P[_U P p1*q0P[_U P p *q0P[_U P p*q0P[_U P p[P*1P[_U P  [@ 0+S߳P@P `KKOe!1 0=!1 0z=!1 0r= !1 0j= 0 0b=  \=pl l0 0T=|x x0 0L=hd d0 0D=AU" C+"q"sC)"C+k0"C+|k05"B+6#"B+""bC+k0"BC+k0 "C+s+O-M, 0 4 8 < @ H HKL0Q4O@pWw  2/p@`@ . $@ (@ h `(K쏟(X,@@0 @@@@@ @$@@6/`$P$@ P 1/(( P 1/`KP` Xp ` LP T  @`p0 :$QQ  R d h  [  Z < Q 80 QO  Qm  l p  [ c _Z < Rz*-4` P QK ` t x  [ @ <Z `j@P] xH`0JG '|  [f d  b+b j a y 0;RGt RZ2UUm:3@30 `40CS1rÑ\|x / -  ++b j a  0;RG R 2TPSP:PZ3A31 a4CP5 AAlh _ _  +_b j a  0;RG R 2TPSP:PZ3A31 a4CP5\X @_ B_  D+_b j a  0;RG R 2TPSP:PZ3A31 a4CP5LH s_ u_  w+_b j a  0;RG R 2TPzSP:PZ3A31 a4CP5s" _ _  +_b j a  0;RG R 2TPUSP:PZ3A31 a4CP5NRUQ3E @PrÐFRTP3@ @PrÐRTP3@ @PrÐRTP3@ @PrÐRTP^3@ @PrÐSRTP3@ @PrÐ  E  " [   +b j a + 0SG & S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP 3$@ @P sÐ*<1P[oV P  [   | tp     +b j a b 0SG ] S 2TPSPV: PZ3$ B> b$BP5ࠡsÐERTPB3$@ @P sÐ7  E d`  E C  A+b j a + 0SG & S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP 3$@ @P sÐ   A TP  _ _  +_b j a  0SG  S 2TPSP: PZ3$ B> b$BP5ࠡsÐRTP3$@ @P sÐ  H\ ] D@  Z_ \_  ^+_b j a  0SG  S 2TPSP: PZ3$ B> b$BP5ࠡsÐr+RTP3$@ @P sÐi0    _ _  +_b j a } 0SG x S 2TPSPq: PZ3$ B> b$BP5ࠡsÐ`RTP]3$@ @P sÐR*<q0P[8PoV P 8Pp:*<q0P[8PoV P 8Pp&*<q0P[8PoV P 8Pp*<q0P[8PoV P 8Pp[`*<1P[oV P  [@ 0+S ሮ`8P4@P P喀`PXP 0XpK0LPpP3/HP K  0H : 0;lh!h1 08!1 08 0 07 0 07 0 07|x  7XT T0 07d` `0 07PL L0 07">-+B""-)!"-+U0"-+U0i"-+&!#I",+""-+U0"v-+U0A"-+]+O-\MH`Q @0p :$QQP  R $ ( [  Z Z0 Q5  Q  , 0 [  Z U P*@ P Ql @ 4 8  [ a ]Z @P@Q~ h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a a 0RP_G\ RZ24U3UU:0:3A< aAQ3rÑ D $  F_ J_  L+_b j a 4 0RP_G/ RZ24U3U(:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UO3E1 AQ0rÑDR4UM3E1 AQ0rÑBR4UI3E1 AQ0rÑ>R4UH3E1 AQ0rÑ=R4UF3E1 AQ0rÑ; [/0_U* 9 [/0_Ur[ [/0_U [/0_U[rP [/0_U[P [/0_U*@ 0+S[2P@P `B}K KOUD@!@1 04 0 04 0 04 0 04 0 04`\  4<8 80 04HD D0 04\"R +V"" )5" +H0" +H0}"2 +:#" +H0ս" +H0U" !+P+O-M, 0 4 8 < @ H HK$@Q0@ M@pW  2/p``` . $` (`  P(KⰬ(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Q 0  Q  l p  [ v rZ W8`<0* P  Q]`  tp  S OZ j@Qq xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a a 0R`oG\ Rj24V3VU:0:3A< aAQ3rÑ D AA TP  _ _  +_b j a + 0R`oG& Rj24V3V:0:3A< aAQ3rÑ  LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VN3F1 AQ0rÑCR4VJ3F1 AQ0rÑ?R4VE3F1 AQ0rÑ:R4VC3F1 AQ0rÑ8R4VA3F1 AQ0rÑ6[/0oV* 4[/0oVr[/0oV[/0oVr[` [/0oV`[4P[/0oV*@ 0+S[4Pܧ`8<@P y`PXP 0XpK0LPpP3/HP K  H ,40Y4PL!L1 0c1 0 0[1 0 0S1 0 0K1 0 0C1lh  =1HD D0 051TP P0 0-1[ \O+G0ٯ"+~"")q"&+;0Q"+;0"n+v#1"+;0"+;0"F+'C+O-\MH`Q @0p :$QQP  R $ ( [  Z Z0 Q  Q  , 0 [  Z U P*o@ P Ql @ 4 8  [ a ]Z @@Q~ h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a a 0RP_G\ RZ24U3UU:0:3A< aAQ3rÑ D $  F_ J_  L+_b j a 4 0RP_G/ RZ24U3U(:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UO3E1 AQ0rÑDR4UM3E1 AQ0rÑBR4UI3E1 AQ0rÑ>R4UH3E1 AQ0rÑ=R4UF3E1 AQ0rÑ; [/0B_U* 9 [/0B_Ur[ [/0B_U [/0B_U[rP [/0B_U[P [/0B_U*@ 0+S[ᎤP@P `vK KOUD@!@1 00. 0 0(. 0 0 . 0 0. 0 0.`\  .<8 80 0.HD D0 0-([ "+q")"+)"Z+:.0":+4.0"+"e"+;.0E"+9.0ţ"z+[6+O-M, 0 4 8 < @ H HK$@Q0@ M@pW5  2/p``` . $` (` & P(KⰬ(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Q 0  Q  l p  [ v rZ W8`<0* P  Q]`  tp  S OZ j.@Qq xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a a 0R`oG\ Rj24V3VU:0:3A< aAQ3rÑ D AA TP  _ _  +_b j a + 0R`oG& Rj24V3V:0:3A< aAQ3rÑ  LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VN3F1 AQ0rÑCR4VJ3F1 AQ0rÑ?R4VE3F1 AQ0rÑ:R4VC3F1 AQ0rÑ8R4VA3F1 AQ0rÑ6[/0BoV* 4[/0BoVr[/0BoV[/0BoVr[` [/0BoV`[4P[/0BoV*@ 0+S[4P8`8<@P Fs`PXP O0XpK0LPpP3/HP K  H -0-PL!L1 0* 0 0* 0 0* 0 0* 0 0*lh  *HD D0 0*TP P0 0*@[\5+!-0I"*d"e"g("*v 0"v*p 0)"*""V*w 0"6*u 0"*(+O-\MH`Q @0p :$QQP  R $ ( [  Z Z0 Q  Q  , 0 [  Z U P*@ P Ql @ 4 8  [ a ]Z @@Q~ h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a a 0RP_G\ RZ24U3UU:0:3A< aAQ3rÑ D $  F_ J_  L+_b j a 4 0RP_G/ RZ24U3U(:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UO3E1 AQ0rÑDR4UM3E1 AQ0rÑBR4UI3E1 AQ0rÑ>R4UH3E1 AQ0rÑ=R4UF3E1 AQ0rÑ; [/0_U* 9 [/0_Ur[ [/0_U [/0_U[rP [/0_U[P [/0_U*@ 0+S[P@P `oK KOUD@!@1 0' 0 0' 0 0|' 0 0t' 0 0l'`\  f'<8 80 0^'HD D0 0V'[}"2*6W""("*0"*0]"*"Ո"*0"j*05"*+O-M, 0 4 8 < @ H HK$@Q0@ M@pW  2/p``` . $` (`  P(KⰬ(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Qo 0  Q  l p  [ v rZ W8`<0* PJ  Q]`  tp  S OZ j@Qq xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a a 0R`oG\ Rj24V3VU:0:3A< aAQ3rÑ D AA TP  _ _  +_b j a + 0R`oG& Rj24V3V:0:3A< aAQ3rÑ  LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VN3F1 AQ0rÑCR4VJ3F1 AQ0rÑ?R4VE3F1 AQ0rÑ:R4VC3F1 AQ0rÑ8R4VA3F1 AQ0rÑ6[/0oV* 4[/0oVr[/0oV[/0oVr[` [/0oV`[4P[/0oV*@ 0+S[4Pᔚ`8<@P l`PXP 0XpK0LPpP3/HP K  H &0'PL!L1 0$ 0 0$ 0 0 $ 0 0$ 0 0#lh  #HD D0 0#TP P0 0#[\+0z"n*rI"z"(Q{"*01{"*0z"N*V"{"*0z"*0q{"&*+O-\MH`Q @0p :$QQP  R $ ( [  Z Z0 QI  Q  , 0 [  Z U P*'@ P Ql @ 4 8  [ a ]Z @d@Q~ h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a a 0RP_G\ RZ24U3UU:0:3A< aAQ3rÑ D $  F_ J_  L+_b j a 4 0RP_G/ RZ24U3U(:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UO3E1 AQ0rÑDR4UM3E1 AQ0rÑBR4UI3E1 AQ0rÑ>R4UH3E1 AQ0rÑ=R4UF3E1 AQ0rÑ; [/0_U* 9 [/0_Ur[ [/0_U [/0_U[rP [/0_U[P [/0_U*@ 0+S[FP@P `ViK KOUD@!@1 0  0 0  0 0  0 0  0 0 `\  <8 80 0 HD D0 0 [m"*<" n" (n":*/en"*/m"*"En"*/%n"*/n"Z*;+O-M, 0 4 8 < @ H HK$@Q0@ M@pW  2/p``` . $` (`  P(KⰬ(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Q 0  Q  l p  [ v rZ W8`<0* P  Q]`  tp  S OZ j@Qq xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a a 0R`oG\ Rj24V3VU:0:3A< aAQ3rÑ D AA TP  _ _  +_b j a + 0R`oG& Rj24V3V:0:3A< aAQ3rÑ  LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VN3F1 AQ0rÑCR4VJ3F1 AQ0rÑ?R4VE3F1 AQ0rÑ:R4VC3F1 AQ0rÑ8R4VA3F1 AQ0rÑ6[/0oV* 4[/0oVr[/0oV[/0oVr[` [/0oV`[4P[/0oV*@ 0+S[4P`8<@P e`PXP 0XpK0LPpP3/HP K  H @ 0m PL!L1 0w 0 0o 0 0g 0 0_ 0 0Wlh  QHD D0 0ITP P0 0A [|\*=/)`"*."E`"G(`"v*V/`"V*P/ `"*ƶ"`"6*W/a`"*U/`"*w*O-\MH`Q @0p :$QQP  R $ ( [  Z Z0 Q  Q  , 0 [  Z U P*@ P Ql @ 4 8  [ a ]Z @@Q~ h@` p` p+` pb` p` p` p( <8  4 0  .+b j a  0RP_G RZ24U83U:0:3A< aAQ3rÑ yAA ,( _ _  +_b j a a 0RP_G\ RZ24U3UU:0:3A< aAQ3rÑ D $  F_ J_  L+_b j a 4 0RP_G/ RZ24U3U(:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ    _ _  +_b j a  0RP_G RZ24U3U:0:3A< aAQ3rÑ  40 _ _  +_b j a  0RP_G RZ24UY3U:0:3A< aAQ3rÑ R4UQ3E1 AQ0rÑFR4UO3E1 AQ0rÑDR4UM3E1 AQ0rÑBR4UI3E1 AQ0rÑ>R4UH3E1 AQ0rÑ=R4UF3E1 AQ0rÑ; [/0"_U* 9 [/0"_Ur[ [/0"_U [/0"_U[rP [/0"_U[P [/0"_U*@ 0+S[ᢐP@P `bK KOUD@!@1 0D 0 0< 0 04 0 0, 0 0$`\  <8 80 0HD D0 0x[]S"*""yS"{(S"*/S"*/=S"*"S"j*/S"J*/T"ʶ**O-M, 0 4 8 < @ H HK$@Q0@ M@pWI  2/p``` . $` (` : P(KⰬ(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/`KP@ Xp ` LP T `0@P :$Q4Qp  R d h  [  Z zP Q' 0  Q  l p  [ v rZ W8`<0* P  Q]`  tp  S OZ jB@Qq xH`0J lh  j h  f+b j a  0R`oG Rj24V/3V:0:3A< aAQ3rÑ p \X  3 1  /+b j a a 0R`oG\ Rj24V3VU:0:3A< aAQ3rÑ D AA TP  _ _  +_b j a + 0R`oG& Rj24V3V:0:3A< aAQ3rÑ  LH  D_ F_  H+_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  D@  {_ }_  +_b j a  0R`oG Rj24V3V:0:3A< aAQ3rÑ  d`  _ _  +_b j a  0R`oG Rj24VY3V:0:3A< aAQ3rÑ R4VQ3F1 AQ0rÑFR4VN3F1 AQ0rÑCR4VJ3F1 AQ0rÑ?R4VE3F1 AQ0rÑ:R4VC3F1 AQ0rÑ8R4VA3F1 AQ0rÑ6[/0"oV* 4[/0"oVr[/0"oV[/0"oVr[` [/0"oV`[4P[/0"oV*@ 0+S[4PL`8<@P Z_`PXP c0XpK0LPpP3/HP K  H 0PL!L1 0 0 0 0 0 0 0 0 0lh  HD D0 0TP P0 0됏[|\d*/E"N*R"E"(1F"*/F"ƨ*/yE".*6"E"*/E"*/QF"**0H-@  RP* 0   R 1   Rg! 0 0H!hd d0 0TTP P0 0L 0 0D[D"ʦ*+.UD" *U/5D"*I/O-|M`, 0 4 8 < @ H HKh@Qq4@PB@pW 8 2/p8. $ ( ~ P(K(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD@H04 Q065 Q1ኵ s@8P@P 00@p0L`p`3/HP K  H i4tp p0 0`\ \0 0($ $0 0렀[n\t*/EA"*(.A":*/eA"*y/0H-@  RP 0   R A(0 0HHD D0 0[ 0 0S}[Q@"*'.q@"&*q/O-|M`, 0 4 8 < @ H HK,@Qj4@B@pW  2/p8. $ (  P(K⸡(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD@90- Q)Fᣴ ጠ@8P@P I0@p0L`p`3/HP K  H 4TP P0 0($ $0 0|[Pj\*/="~*T%.="*/O-M T 2/p`8`. $` (` / P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  @`pP QH    R Pv 0(@L4XdK 0b ~`@ P U8P@P 0@p0LPpP3/HP0K!9}LJ \ fP``  H 34HD D0 0    d_[L\8*I/"("*.O-MX! R8  `p@0 P,1 P5 4(LPP@P UK KO\X X0 0 HD D0 0   [[U"W("F*2/q"&**.O-|M, 0 4 8 < @ H HK@Q4@B@pW  2/p`8`. $` (`  P(KX(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@pJ PFK PO4(jP@P p^T8P@P g0@p0L`p`3/HP K  H i4hd d0 0 TP P0 0    Y[tG\*/%"'}(a"}*/A"|*.O-M`  R# @pP 0X §Q@ S K KOV[O-|M, 0 4 8 < @ H HK@Qv4@B@`V  2/`@8@. $@ (@  p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ۃ E@ Q@ tS8P@P }0@p0L`p`3/HP K  H 4 U[xC\*/O- M! Re `p@\ B$QW P Q@?P PPU P P ?P K?PDP P tS  @ RR  @P%0㙃 㵦P@P @RK KO  0 0v S["w*-O-|M`, 0 4 8 < @ H HKH@Q0@0C@pW  2/pP8P0 $P (P  `(KВ(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/H`8`@p8L@D  @4pt B$Qo P` Qr>P `PV P P F>P }>`PD` P R  P R Q `% 0͂ `4@ P R8P@P 0@p0LPpP3/HP K  H Y <0 ($ $0 0 Q[?\T*ҡ/E"s*j-O-M`  R# @pP 0r ㎥Q@ Q K KON[O-|M, 0 4 8 < @ H HK@Qv4@B@`V  2/`@8@. $@ (@  p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ @ Q@ @Q8P@P I0@p0L`p`3/HP K  H 4 M[:\*/O-M`  R# @pP 0X ¤Q@ P K KOJ[O-|M, 0 4 8 < @ H HK@Qv4@B@`V߿  2/`@8@. $@ (@ п p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ۀ E@ Q@ tP8P@P }0@p0L`p`3/HP K  H 4 I[7\*/O-M`  R# @pP  0㌀ Q@ %P K KOG[O-|M, 0 4 8 < @ H HK@Qv4@B@`V  2/`@8@. $@ (@  p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp  0@ y@ Q@ O8P@P 0@p0L`p`3/HP K  H 4 F[X4\*/O-M  R!  ` p@2 B4P P@P [OK KO  0 0xD["ri*X.O-|MP, 0 4 8 < @ H HK@@Qw4P0@$B@pW<  2/p8. $ ( - `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  @4P`p 22 B4P- @P pN8P@P ڽ0@p0L`p`3/HP K  H  ~0@ ($ $0 0J`C[1\0*j/-"f*-000S/A[O-tMd`\XTPHHQUA@`V l 2/`P0P< $P (P 偽 p(K((X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<VQ @O08< 03/VHP K  H@[T.\*/O-TMX+ R  P$ 0 394  P 402,  B$Pp0 7D8PQ PHQ   @72  0~ 㣡J  @` P [6[q-/5-/!Y*/!Y*x-!RY*4*!rY**O-M, P0 4 8 < @ H HK@Q<@L@pW& x 2/p@dP `@ / $@ (@  `(K0(X ,@@ 0 @@@@@ @$@@6/`$P$@ P 1/(( P 1/`KP` Xp ` LP dPT $P (  p037\ P1d BP@D4T0QX ` PHQ   @22 0I{ eD P P J@ @P `\`Q J@P PhP J` ``QJP 㐛 0``d@hPP J PPIhP@P`.@Y   d`L@P@ JH PPIhPH@@P J8 PPIhP8@ @P qJ@P`l PP`YIhP@\ PX<PQ LDppOP   @`@ 00S 04 p"4 pO0\  @803/0P`S L $" d( K dH08y DpP`hP 9d(K LH0 P. @DpP I PPI@-  @ ;d@pOO0PpP `0@T@ 0t" S   8 2/dp` P1 P` 00@T@ 0J" \  8 2/dhPP |I `DYHPdhPP dIp `pDWHpPdh`P LI `+ P DRpH ` P<P ?<@ P0 (K00   (KP 00 DpP`J P# L `@P dP 0|"  HQ P D0<"  HPPY.0P@ @ Q 2  Q-  PP, H@T\X@ P JH`PXP S0XpK0L`p`3/HPKn `YGP  H z< 0 0 0 0| |0 0TP P0 03[ \؈*^/)[|-z/M|-z/!~L*x/!^L*D-i!L**!>L*ė*O-M@! R1 ` pP2 P 0 0c03 P*P@P G K KO($ $0 0=%[!FK*x/!J*w/O-|M, 0 4 8 < @ H HK|@Q4@dB@pW L 2/p`8`. $` (` z @(KR(XP,``0 ````` `$``4/@$$` P 1/(( P 1/8H@@p8LDP  p P@`2 P,(!(1 0034 P0* AP@P `G8P@P 0@p0L`p`3/HP K  H Po4}40 00 0$[@\dz*v/%!H*v/!!G*%u/O-TMPQ @` 060 Pxt"t2 0Yp7 @P1x,Q(0D{ 0P0@a x @ 0p PO ,p 0 A   ` Rd@ ` @P @KKO  0 0G [!!.*F-O-M, 0 4 8 < @ H HK@Q0@B@pW  2/pP<@P/ $P (P 冯 `(K✒(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/<@P`Hp@T@Lpq BPl`  @CP 04@ P8  @ Q<? `P @ < <  ` R ? p <`48@P ?@PHP 0Hp0TPpP3/HP K  H 7I0d($ $0 0n[[^*#\/!r+*-M-M@  B4 R Ppl Qh+Pt pPdsPDPXP pD`PP0 Q+P `PV P P w+P +`pD` P ?0 p0S>0`P_ 0^ o KM W P P 8+P o+pPDp P ? `PU>PpO-DMP@,0,  `0P$P  t?  R$> $P`g`(` QP$ ($  @5 P10P B? ($PP$k>@eQpOPp@`  00S 0 V(` O  Z8 2/Z$, ,P;`P, 0`pPA7焠 QQ KViP 0$ W@P$ Ჟp$  (0,PV(`5 $PR00Hpt$ ,  ,^. T  (p$ @DQ@QZ) Q0, P > Q=@,p0P {>p(W@@    Q *P3 T9j @Y=p Px P$@A  i  Q)P3 T99, sTpP2 pOP@p`  $00S 0 V$P(`(p$V (`O z$P(p, sTpP pOP@p0 0`V(` 0 S O 8 2/ P$@A    Q^)P T $P(p$0, IsTpP pOP@p0 0`V 0E $$S| Ov (`(p8 2/$P,Z t 0Pz P  0pPj    0[0SN PO0`@P 0pW 0 S O 8 2/ pPP0 @O`P  00S 0 T O 8 2/ (O0 R pK 0 0u!**J/O-,Mp ` @0$ XQp ` T` p P NX O  8 2/   PA 0O 0 0 R  080 X O  8 2/ PP [< P;N@`j  4P  Z@ e PO  M P  QC dP O , P 8P @0P0 P, ]  PA '0O 06 0 R1  00 ) `   0``8$ pYf `@OpP` 0 R 0oPY O 8 2/UT P P  0@P4   0S[0*`@P"POp`  00S 0& U O 8 2/K(O0 R ($ $0 0ZZZ@Z!*c*O-MpP ` P 3; @ R[: `pcPQS 0 0 `6 P2P ; pP):`#MpOp `@ 00S0@ @ 0V O  Z803/ 0ZKO-4M  00  R$t  $0  (^T  $0PΆP (P :@ `  `@T$9@P p(P0 y:Pp7 $0P POp@P  00S 0 Z| Ov smPU$u9Pp P_ + $0PY pO`p  00S 0 \ O  8 2/ +$0P) POpP0  0@T 0 S O  8 2/$Y2KKM-M 080; 00'0PG@+0`0p#sv`@ScS:S@t@~@$@CP`` Vp!CP ` S ? 8&(   0 KVi4H@<   0 0뭭!b*=/>!ɭ!(pL-PR@@   Q%P p  `ӆ nQpH-8M@p Pp2P- `0@0S p/p@QP pP$@@(p,`04DYpKO-M`@ p/OPtnP`@  }1 /OP+ ' ` P 8 BP Q7` P  DP ᠓p;W@ p5 @1 P  Q p%Q`XP`Z f PQSp 0ph ҋK 0 0둩!F *<*K-8M@p PpXP4 `0@0S p p/@QP pP$@@(p,`04C  0ppW pKO-LMp@ PP``v2Q 0DW 0kP0@`a v P:_@T: Q,Q( MbP$ ` 0`@P$  $@ ( ,p048<@D`HB  0Gp@T @  0I@@K0CL000SP/-@pPQL2/|ZO-|M, P0 4 8 < @ H HK@Qc4@A@pW  2/p8. $ (  `(KX(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP-$Aq PRL2P@@P Х0@p0L`p`3/HP K q"H 46Z[8*n6/L000SP/5@pPQL2/ZO-|M, P0 4 8 < @ H HK@Qc4@A@pW  2/p8. $ ( q `(KX(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP5$Aq PRL2P@@P 20@p0L`p`3/HP K r"H k4pZ@[D6*4/000SD/ZO-tMd`\XTPHHQUA@`V l 2/`P0P< $P (P  p(K((X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<DPQ @Ⲥ08< 03/DPHP K  H4Z [ 4*2/O- MpQd ` @0] 4$QX`, `P0_OpP 5 AP P4P`_O` `0 p@0PUP@0pU 0\  803/ @PAQ 5K KO  0 0tZ!^*.//O-M, 0 4 8 < @ H HK8@Q0@ C@pW  2/p`@`0 $` (`  P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P`p0q 4$Ql @,4`80<P 4 A` P 4@ `O `0 0@T 0  S O  8 2/<48 @@AQ N4@PHP W0Hp0T`p`3/HP K  H @0($ $0 0LZ$[ 0*3./!!)+/O- MpQd ` @0] 4$QX`, `P0_OpP ^4 AP P3P`_O_` `0 p@0PUP@0p  0\  803/ @PAQ 3K KO  0 0DZ!))/O-M, 0 4 8 < @ H HK8@Q0@ C@pW  2/p`@`0 $` (` 僢 P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P`p0q 4$Ql @,4`80<P 3 A` P2@ `O `0 0@T 0(  S O  8 2/<48 @@AQ 2@PHP 0Hp0T`p`3/HP K  H +@0X($ $0 0bZ[**(/!B)&/O-MP`QY p 0Q 5$AqQJ*@ 0Pp` 2p Sp$2p@ P 2 `  R 2 `0ZwP @P X2K KO  0 0LZ!b)$/O-M<, 0 4 8 < @ H HK@Q0@C@pW9  2/pP@P. $P (P * `(K⨒(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L `P0<k 5$AqQd*@ 80P4 p:2 p Sb1 @< @P #2  RK1 @< 0v@48@P 1@PHP 0Hp0T`p`3/HP K  H G0($ $0 0PZ0[$%*#/A!)!/O- MpQd ` @0] ,$QX`, `P0_OpP 1 AP P0P`_O ` `0 p@0PUP@0p8  0\  803/ @PAQ 0K KO  0 0Z5!)F/O-M, 0 4 8 < @ H HK8@Q0@ C@pW۟  2/p`@`0 $` (` ˟ P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P`p0q ,$Ql @,4`80<P 0 A` P0@0 `O `0 0@T 0p  S O  8 2/<48 @@AQ 10@PHP :0Hp0T`p`3/HP K  H s@0($ $0 0Z[*I/!b)/O- MpQd ` @0] ,$QX`, `P0_OpP A0 AP Pj/P`_OR ` `0 p@0PUP@0p 0\  803/ @PAQ /K KO  0 0'lZ!V)/O-M, 0 4 8 < @ H HK8@Q0@ C@pWv  2/p`@`0 $` (` f P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L  P`p0q ,$Ql @,4`80<P u/ A` P.@ `O `0 0@T 0  S O  8 2/<48 @@AQ .@PHP ՝0Hp0T`p`3/HP K  H @0;($ $0 0EDZ,[*/!)*/O-MP`QY p 0Q -$AqQJ*@ 0Pp` .p Sp.p@ P . `  R- `0rP @P ;.K KO  0 0Z9!)/O-M<, 0 4 8 < @ H HK@Q0@C@pW  2/pP@P. $P (P  `(K⨒(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L `P0<k -$AqQd*@ 80P4 p. p SE- @< @P .  R.- @< 0'r@48@P y-@PHP 0Hp0T`p`3/HP K  H G0($ $0 0ܾZȬ[*/~!)0/O- M" R `@p|  84 R 9$Pr  rW "2 0  Rh  j h  f+b j a / 0PP_G , PZ24U3U%: 0:3$ B<  bŒ$ BR3  p Ò rʺR4U3$ E2 BR 0p Òrʪ*rP@ P ,K KO`\ \0 0P40 00 0HAZ%|!)J!E|!)/}!)/O-M, 0 4 8 < @ H HK@Q0@C@pW  2/p`@`. $` (` | P(K⌣(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/@P@Hp@TPL  P4`p 8$Q 9P qWʔ"2 0Q<8    +b j a / 0+P0?G, P:2DSCS%:@J3A2! a$ BR4 p ÒqʺRDS3C! AQ pÑqʪq@@ P 4+@PHP ǚ0Hp0T`p`3/HP K  H 0-pl l0 07D@ @0 0/ AZ[l* /w!v)zF!w!) /y!) /O-M! R.  `p@&  84 R 9$P!0A KPPLP@P D+K KO<8 80 0($ $0 0PZav!) /Av!)j-O-|M, 0 4 8 < @ H HK@Q4@pB@pW X 2/p`8`. $` (`  P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P@`p? 8$Q 9P5:H ᬜPPL@P p*8P@P 0@p0L`p`3/HP K  H t4HD D0 040 00 0زZ̠[*+/}s!2) /]s!)2g-O-MPQ+ `@p$ 8$Q 9P E E0ߛP@ P 7*K KO<8 80 0($ $0 0Z)r!)/ r!)d-O-|M, 0 4 8 < @ H HK@Q4@hB@pW P 2/p`8`. $` (`  P(K (X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P@`p= 8$Q 9P3 8H H0A@P p)8P@P 0@p0L`p`3/HP K  H v4HD D0 040 00 0 렮Z[t*/Mo!)/-o!)a-O- M" R `@p|  84 R 9$Pr  rW "2 0  Rh  j h  f+b j a / 0PP_G , PZ24U3U%: 0:3$ B<  bŒ$ BR3  p Ò rʺR4U3$ E2 BR 0p Òrʪ*r3P@ P (K KO`\ \0 0f40 00 0^AZ}l!2)6;!l!R)@.Qn!)/O-M, 0 4 8 < @ H HK@Q0@C@pW  2/p`@`. $` (` 咗 P(K⌣(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/@P@Hp@TPL  P4`p 8$Q 9P qWʔ"2 0Q<8    +b j a / 0+P0?G, P:2DSCS%:@J3A2! a$ BR4 p ÒqʺRDS3C! AQ pÑqʪq4@@ P 4'@PHP ݖ0Hp0T`p`3/HP K  H 0Cpl l0 0MD@ @0 0E AZ[).h!)6!9h!).Qj!).D000S P/,4PQL/긤ZO-|M, P0 4 8 < @ H HK@Qa4@A@pWp  2/p8. $ ( ` `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP,4 PRLP@@P #0@p0L`p`3/HP K  H \4,Z,[).D000S P/44PQL/PZO-|M, P0 4 8 < @ H HK@Qa4@A@pW֕  2/p8. $ ( ƕ `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP44 PRLP@@P 0@p0L`p`3/HP K  H 4ġZȏ[).D000S P/84PQL/ZO-|M, P0 4 8 < @ H HK@Qa4@A@pW<  2/p8. $ ( , `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP84 PRLP@@P 0@p0L`p`3/HP K  H (4U\Zd[0)b.D000S P/94PQL/ꀝZO-|M, P0 4 8 < @ H HK@Qa4@A@pW  2/p8. $ ( 咔 `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP94 PRLP@@P U0@p0L`p`3/HP K  H 4Z[).O-MPQ.  `p@' BP" P _xPUPPP@P $K KO  0 0Z]!ƿ)6C-O-|M, 0 4 8 < @ H HKl@Q4@TB@pWғ < 2/pP8P. $P (P Ó `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D @P`p@ BP;(K ( 全P w UP@P p[$8P@P d0@p0L`p`3/HP  K  H s4($ $0 0봙Zć[).UZ! )z@-O-MPQ.  `p@' BP" P cwPYPPP@P #K KO  0 0Z!Y!ֻ)F?-O-|M, 0 4 8 < @ H HKl@Q4@TB@pW֒ < 2/pP8P. $P (P ǒ `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D @P`p@ BP;(K ( 剧P v YP@P p_#8P@P h0@p0L`p`3/HP  K  H s4($ $0 0ĕZ؃[)+.eV!)<-O-4M@PQ p0 B$Q(p p$0 @  P q#` B@`V"` @pL PG $POP@  Ppp@X@P m+ P@ P @A@pP @/@$P/  0   @ ! @5$@(@P "K KO  0 0+$Z.S!f)9-O-ML, `0 4 8 < @ H HK@Q0@SP@Ty  2/@PPP0 $P (P i p(K|(X,PP0 PPPPP P$PP7/`$p$P P 1/(( P 1/``P `X@Pdp\ 0 PL B$Q @D0HP P x"p BPpW!pHP@L PG @``4OP< P@@@_ P P t+ P8` P @H `4@ P `/`HP6 ( 0 8  <  ` @`L@;@D@P P!PPXP 0Xp0d`p`3/HP K  H 0,( (0 0PZh~[$)..iO!)5-O-MPQ.  `p@' BP" cP tPVPPP@P 9!K KO  0 0$Z1N!)V4-O-|M, 0 4 8 < @ H HKl@Q4@TB@pW < 2/pP8P. $P (P  `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D @P`p@ BP;(K ( ͤP t YVP@P p 8P@P 0@p0L`p`3/HP  K  H s4($ $0 0ԊZx[).uK!*)1-L-@|Q B$Q  D  L  0 0똁Zo[h).?!)"&-O-M" R p <48 dP$K$  B@`V  2/`@ 1 0pD@p p@1(X0,  $7/pD@DP 1/@@P 1/@K0p 8` @ ,@ 00p4 l`}l@`zU l@01/V h@@PP8P 8`K0V0P3/$Kt84<@P K KO|Zj[a!F+-F+O-M|xtplh``@Q4@C@`Vދ  2/`@H@. @@ϋ pS(XP,@@0 @@@@@ @$@@7/p@P 1/P 1/HXpP`H\TP   @ D <@ c`$K$ RPpW  2/p@ 1 8@儀倀w P<2(X0,  $5/@PᄀP 1/倀P 1/@K0@ 8p @ ,P 8@4 kpk PgyV k! 01/W g@@`P8P !08pK0,PpP3/$Ky@<D@P HPPP 0Pp0\PpP3/`P K  `;4hyZ h[)S.f[]!B+IB+O-OMM\Q9 0pP@`1 BP,P/p0 @P $뜂@, `PP  Ap P&@# 93 DP 47(TP .@  `0>P O 000Cp(5ppWx6 =,P ,uW O1/PL1/P ,uWB@P TvP ܣ  }\P p>QQ \ ģ ` >! /O 0Q Q TQ ॣT6P^P@.pppGwp W4ppW(ppWP 00S00S60P0 x0pW@P K KO+ 0 0"tp p0 0`\  uZ|Z|zZa.nZP...mZ.{Z;.oZ.3!B)-m3!").Q3!S'O-iMM|Pxtplh``@QDP0@VP@TO  2/@`H`. b b @ p+KL(X ,`` 0 ````` `$``7/pPb P 1/ P 1/HXpP@H\PTD P @`F B4PAhPD4 <@P d@,@8PP = Ap Pf@# 92 P wTO n@4 0>@ P_O000Cp(5ppWw6 D+K~,P +K,@T +^K1/PL1/P ,@TLC@P <&0TN$   ZP p>QQ  @4 >! /O 0Q Q eQ L@TwN4ޡ@.pppGwp W4ppW(ppWP 00S00SP0@0 x0pW8<@ P DHPPP 0Pp0\`p`3/`PK  `k0@ 0 0J| |0 0Blh  <oZ][|)<.uZsZe.gZT. ..fZ.tZ;.hZ.-,!)R- ,!Ž)P.+!'O-0@p0L`p`3/HP K 7!H w0XZG[).D000S P/*4PQL/VZO-|M, P0 4 8 < @ H HK@Qa4@A@pW  2/p8. $ (  `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP*4 PRLP@@P 0@p0L`p`3/HP K o"H 4 0VZtD[)*.O-$MPQc  p@!XXT!T1 0`@ CP ` M"P PP  P" "Q  PPP P @P K  KO@TZ!y)-O-M`tplhd`XX@Q4@C@pW  2/pP@P. 4P 8P  @8K⤢(X ,PP 0 PPPPP P$PP4/@44P P 1/88 P 1/@P@Hp@TL  P8<@!T!1 01p@ BB4` 8p 0@ , ( $ 8K"[P @P 8K)P "[Q8 `P@8P8<@@ P <J@PHP S0Hp0T`p`3/XP K N/X@4n),O-|M, 0 4 8 < @ H HK`@Q4@HB@pWR 0 2/pP8P. $P (P C `(K졟(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p !R ! 1 0AP }P r}@P p8P@P ~0@p0L`p`3/HP  K O/H n4EGZ6[).I !k),O-MD! RI  `p@ !R 0 0/B$Q  PP   X   P QM@P@P ^K KO$EZ!vj),O-|M4, 0 4 8 < @ H HK@Q0@B@pWH~  2/pP8P. $P (P 9~ `(KH(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `Pp4 !Rhd!d1 0B$Q  @P B  Y 4 k4 @ QL@@@ P 8P@P }0@p0L`p`3/HP K =!H W0$CZ1[`).!g)Z,O- M@@! RH pP` !R 0 0B$Q  P  0Z0 0  Q#@ P > K KO@Z=!e)z,O-|M4, 0 4 8 < @ H HK0QB@pW(}  2/pP8P. $P (P } `(KL(X,PP0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D  p `P4 !Rhd!d1 0e@B$Q  @P    U 4 H 4 @@ Q#@@P P 8P@P |0@p0L`p`3/HP K >!0H W0 ?Zd-[).!Nc),O-M@! RH p`@  0 "S 0 0 B4 R  P,P  @PA P PUGP Q@  K KO| |0 06$ 0 0.A Z r.)v ] /)V.= .)V. .)V. .)V. .)d.} 2/)_)O-M, 0 4 8 < @ H HK@Q0@pD@pWio X 2/p`P`. $` (` Zo P(K(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/P`@XpPdP\ @`p0 :$Q40QP  R LH   Z PNx  QdX: D@  X TZ Xp*_Pu'x  0P@  <8  6n 2Z  ! |`4@P PPXP n0Xp0dPpP3/HP K  H 0 <8!81 0 0 0 0 0 0 0 0 0 0 040 00 0 AZZ])Fc. V))Z A ))Q.! ))Q. ))Q. ))Q. v))_.a *)Y)0H-000S" 0@ P PLP5@5E0X3o1175@508$ 0 0ࡶ0HZ >()Ͻ%O-|M, 0 4 8 < @ H HK$@Qp4@ B@pWm  2/p8. $ ( m `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP,  0p```0 @@T,@@T(*LPP@@`EXoob` p@P m0@p0L`p`3/HP K  H ˸4($ $0 0$ZZW)]. %)S%\000SP/+4Q 'PL/YO-|M`, 0 4 8 < @ H HK@Qf4@A@pW4m  2/p8. $ ( $m P(Kd(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD  +4 R '$QLPP@@P l0@p0L`p`3/HP K '.H 4H)E. 'H- $000S  Я`YA C 'H- pM     ( LP (K *R/( qQP@Tg  2/@P0P. P P g pK⼀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<   mYZ<)C. 'H- $000S  ZYi k 'H- pM     ( LP (K *J!( QP@Tf  2/@P0P. P P f pK⼀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<   $YZ:)'B.ݦ 'H- $000S  Y 'H- pM     ( LP (K *Q!( 共QP@T0f  2/@P0P. P P !f pK⼀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<   LYZ9)v@. 'L-000S 0 +DP 'DPL  0 0RYM ),O-|M, P0 4 8 < @ H HK@Ql4@A@pWe  2/p8. $ ( e `(K✑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D 0ppp- `+D`V `'D`V#@P0@P Je0@p0L`p`3/H@P K M!H 傰4寰($ $0 0๭YZ6)`>. ),O-M  R+  `p@ # +4Q '4Qq nP Q B  @P K KO  0 0qYɠ ~)s,O-|M, 0 4 8 < @ H HK`4Q~HB@pWd 0 2/pP8P. $P (P d `(K졟(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D @p`P=  +4 R  '4 R3 r kn倐 Q B  PP@8P@P Ud0@p0L`p`3/HP  K R!4H 厯w4廯($ $0 0ŬlY$Z@3) ;. )Ç,0H-M@  R!PPPK0 PZ 0 PPLK0 K0HYO-M`lhd`\XPP@Qu4@B@pWc  2/p8. $ ( c P(K⠡(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD@QP@ P(K ,0K, B,PP8L@P@P c0@p0L`p`3/PP K G!P幮4YZ/)7.P000S4 P@/H-  0 0߫Y 6(,O-tMd`\XTPHHQZA@`V/c  2/`0. P$P (P c p(KX(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<4Q P@P8P b08p0D`p`3/HP K g!H!N($ $0 0X$YZ,)(5.e (ܑ,d000S 4Q P/PQL/8YO-|M`, 0 4 8 < @ H HK@Qh4@A@pWb  2/p8. $ ( xb P(Kl(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D  4 R PP@@P :b0@p0L`p`3/HPK PRL /H m4嚭YPZ`*)2.O-MP,Q9  p`@ P 0 04 P!  0a  P@P K KO,( (0 0WY|g*! (0|,a (؍,O-M<, P0 4 8 < @ H HK@Q4@B@pWa t 2/p`@`. $` (` a @(K0(X,``0 ````` `$``4/@$$` P 1/(( P 1/@P@Hp@TL p`P< PTP!P1 04 8P; A< @ 0 9  i@8@P @PHP &a0Hp0T`p`3/HP K [/H _e4匬84 40 0YZ&)C/.d* :(y,] (Ԋ,O-$MppQ `0P %$Q 0P*4 `0P @ P $ YM @p P@ P P BP R1 P@ P{O lP Q*@ P p APpWpP@ Q`P, P  `@ A `@T@`PoO{ppj pP @p  00S 0H `ZoO  8 2/PYl @@  0A Q 0K 0 0  KO: 0 0|x x0 0tp p0 0y`\ \0 0qXT T0 0i Y (9).) ('. ().Ɍ ~(@,] (). ^().O-M, `0 4 8 < @ H HK@Q<4@UP@T_  2/@pXp0 $p (p _ `(K\(X ,pp 0 ppppp p$pp6/`$P$p P 1/(( P 1/h`X ``@XlPd 0L@p %$Q 0P*4 80P P P T LYTPH`DpP@<@ P p B`pWpP Px LP Q*POP \ A`YP Qq`O,P =P A@PUfP` @p ep T p/O`Pp  00S 0 Y O 8 2/PpZLH8L @@ < @0AD Q 0XP`P ^0`p0l`p`3/HPK($!$1 0 o!H 庩4 0 0 0 0| |0 0lh h0 0٦d` `0 0ѦYܷZ)'. ^(".Ɇ ~(. >(".i (, (i#.I (".O-Mp  R P,@`, B Q@ K KOYO-|M4, 0 4 8 < @ H HK@Qq0@A@pW]  2/p8. $ ( ] `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P @`p 4 NBQ@` p}8P@P ]0@p0L`p`3/HP K _/H 忨0YȰZ) !.O-Mp  R P,@`,G Q@ 6K KO̿YO-|M4, 0 4 8 < @ H HK@Qp0@A@pW#]  2/p8. $ ( ] `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P @`p4 FQ@` p8P@P \0@p0L`p`3/HP K ^/H 0-Y̭Z)$.000S@YO-tMd`\XTPHHQXA@`V\ x 2/`P0P. $P (P x\ p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< @P0P8P B\08p0D`p`3/HP K !H{ᨧꄼY`Z\).O-M`  R# @pP 0 @Q@  K KO꼺YO-|M, 0 4 8 < @ H HK@Qv4@B@`V[  2/`@8@. $@ (@ [ p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@" >@@ Q@ m8P@P v[0@p0L`p`3/HP K b/H 實4ܦ̹YZ)9.O-M@! R0,`pP  (@0P A P A0A  ?@P  K KO  0 0ण댷Yy J( a,O-|M, 0 P4 8 < @ H HK@Q4@b`@T  @Z l 2/ P@`8`4 P$` (` Z p(K2(X0,`` ````` `$``7/$p$` P 1/(( P 1/8H@@8Lp | PD p@`D@0\ H \ H0Hb A?@P `p8P@P yZ0@p0L`p`3/HPK ! PH 履 Pf4ܥ,( (0 00YZ ). .v R((^,O-M@! R0,`pP  (@0P A P A0A  >@P  K KO  0 0\Yeu (\,O-|M, 0 P4 8 < @ H HK@Q4@b`@T  @Y l 2/ P@`8`4 P$` (` Y p(K2(X0,`` ````` `$``7/$p$` P 1/(( P 1/8H@@8Lp | PD p@`D@0\ H \ H0H 5>@P `d8P@P mY0@p0L`p`3/HPK ! PH 奤 Pf4Ф,( (0 0ڡYZ)..mr "(Y,O-MPQ 0 @  Q~5 Q* p  P 0 8b`,D\8thP(b`a`a`a`a` a` a`a`a`a`^ 0PP  `/ pP 0  @PW@p 0 r=P @P K KO4 0 01 0 0)\X  #hd d0 0(Y&))))))))9))o &)o ~(e,o ^( G qo &()O-M`, 0 4 8 < @ H HK00QD@pWWX  2/pP@P0 $P (P GX `(K⸓(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/P`@ `Hp@T@L P0  Q6<` Q* `  P408 B@,D\8thPB@\B@HB@XB@4B@ 8B@ $B@B@B@B@\ 0kPf (K Kp-  @P  `P<@< 0y X<`48@P @PHP W0Hp0TPpP3/HP K !0H Ǣ0 0 0 0 0hd  tp p0 0ȫYZ) .)w)k))j)i))w)))j &)j (H`,j (?B j Z((000S@,YO-tMd`\XTPHHQXA@`VW x 2/`P0P. $P (P W p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< @P0P8P V08p0D`p`3/HP K !H;ЦYZ(.000SBYO-tMd`\XTPHHQXA@`VV x 2/`P0P. $P (P V p(K4(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@< BP0P8P PV08p0D`p`3/HP K v!H剡ᶡ꼤YZ( .O-M` Q" @pP0_ :Q@  K KOYO-|M4, `0 4 8 < @ H HK@Qv0@B@pWU  2/p8. $ ( U P(K⨑(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P4 @p0 J:Q@ py8P@P U0@p0L`p`3/HP K !H 廠0YZ(r.O- MPQ+  `p@ Q'dP  E 0P@P !K KOHD D0 0ೝ 0 0૝븟Ya f(& a ( .O-M<, 0 4 8 < @ H HK@Q4@tB@pWT \ 2/pP@P. $P (P T `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L  ` 8P@< Q@(Kp(p dP2 ( I0p28@ P @PHP T0Hp0T`p`3/HP  K ]/H Ÿs4TP P0 0($ $0 0HY@Z(-^ ~(*# ^ (%-O- MPQ+  `p@ Q'cP  E 0vP@P K KOHD D0 0ज 0 0|Yu] *(! ] J(-O-M<, 0 4 8 < @ H HK@Q4@tB@pWS \ 2/pP@P. $P (P S `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L  ` 8P@< Q@(Kp(p cP2 ( I0p8@ P q@PHP zS0Hp0T`p`3/HP  K r!H 峞s4TP P0 0($ $0 0 YZ(-Z B( Z b(-O- MPQ+  `p@ Q'bP  E 0P@P K KOHD D0 0 0 0@Y9Y ( YY (-O-M<, 0 4 8 < @ H HK@Q4@tB@pWR \ 2/pP@P. $P (P R `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L  ` 8P@< Q@(Kp(p bP2 ( I0p8@ P b@PHP kR0Hp0T`p`3/HP  K s!H 夝s4ѝTP P0 0ۚ($ $0 0ӚЕYЄZ(-QV ( qV &(-O-M`  R @Pp 6 Q@ K KOYO-|M, 0 4 8 < @ H HK @Qr4@A@`VQ  2/`@8@. $@ (@ Q p(K☑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `P@p Z6Q@ p8P@P Q0@p0L`p`3/HP  K !H ˜4,Y0Z(R-O-M` Q" @pP@0 6Q@ : K KOYO-|M4, `0 4 8 < @ H HK@Qv0@B@pW&Q  2/p8. $ ( Q P(K⨑(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P4 @p@0p 5Q@ p8P@P P0@p0L`p`3/HP K !H 0*Y ~Z(V-O-M`  R# @pP 0! =5Q@ l K KOČYO-|M, 0 4 8 < @ H HK@Qv4@B@`VZP  2/`@8@. $@ (@ KP p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ 4@ Q@ 8P@P O0@p0L`p`3/HP K !H 14^ԋYzZ(X-O-M`  R# @pP 0U q4Q@  K KOꔉYO-|M, 0 4 8 < @ H HK@Qv4@B@`VO  2/`@8@. $@ (@ O p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ 3@ Q@ #8P@P ,O0@p0L`p`3/HP K !H e4咚꤈YwZx(S-O-M` Q" @pPU0 3Q@  K KO`YO-|M4, `0 4 8 < @ H HK@Qv0@B@pWN  2/p8. $ ( N P(K⨑(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P4 @pU0  &3Q@ pU8P@P ^N0@p0L`p`3/HP K a/H 嗙0ęlYtZ@(I-O-M`Q& @pP )T0   2Q@  K  KO(YO-M<, 0 4 8 < @ H HK4@Q|4@B@pWM  2/p@. $ ( M `(K(X , 0  $6/`$@$ P 1/(( P 1/@P`Hp@T@L  P p< @8` S0  3 O2@8Q `}@PHP M0Hp0T`p`3/HP K }!H 忘y4$YPD@PH 0}@P pR8P@P [K0@p0L`p`3/HP K b!H 唖z0 0 0˓tp p0 0Ó`\ \0 0໓LH H0 0೓tyYhZH(-1: (!,: Ɯ(-9 (Ȝ&9 (-O-Mp! R,  `p@$ )/P5"0@PS5  P@P K KO7 0 0a 0 0Ytp p0 0Q`\ \0 0ILH H0 0ApvY8 >( ,i8 ("!,I8 (V-)8 ޚ(& 8 (-O-|M, 0 4 8 < @ H HK@Q4@B@pWJ  2/p`8`. $` (` uJ P(Kp(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p> CIPO"0@PSO  :@P p8P@P J0@p0L`p`3/HP K c!H Qu4~ 0 0 0 0| |0 0xlh h0 0pXT T0 0h|tYcZP(J-%5 ڗ(,5 (,4 (-4 z(&4 Z(-O-M  R$  `p@Q  <PTP@P K KO  0 08qYq3 &(,O-|M, 0 4 8 < @ H HKD@Qx4@,B@pWjI  2/pP8P. $P (P [I `(KС(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p6Q  PT@P p8P@P I0@p0L`p`3/HP  K Y/H ?}4l($ $0 0vpY@_Z(B-0 (h,O-M  R$  `p@Q  PTP@P K KO  0 05mY/ (d,O-|M, 0 4 8 < @ H HKD@Qx4@,B@pWH  2/pP8P. $P (P uH `(KС(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p6Q  ~PT@P p8P@P H0@p0L`p`3/HP  K e!H Y}4冓($ $0 0|lY[ZP(-E- (,H- $000S  |jY, &H- pM     ( LP (K *q!( QP@TG  2/@P0P. P P G pK⼀(X,PP0 PPPPP P$PP7/p`P P 1/ P 1/0@p8@0D`<   iYXZ`(-e+ g&L-M@ '0P ZL8@HP$  P[XY 0 ,KO-M@Z`.Pu `ⰧPp XT\D T2/XP ` P p B@pWp` @P m` `V` @   Q@Q 0p0@T@T! XP @ATTT@T XP @5TTX@l L@KX@bL`L xP @OOL0Q  D `fD 5f@fP`y`vO- M`  R, @,pP, & 0Pl +@P M K KOldYRO-|M4, 0 4 8 < @ H HKH@Q0@0B@pW9F  2/p8. $ ( *F `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  P @ p`4( K ( (0P x *`@P p8P@P E0@p0L`p`3/HP K ~!H t02PcYRZ$(-RO- M`  R' @,pP, C U0$ @*Q@ o K KO`YO-|M4, 0 4 8 < @ H HK0@Q{0@B@pW\E  2/p8. $ ( ME `(K⼑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D  P p @`4( K ( U0 )Q@ `8P@P D0@p0L`p`3/HP K !H .z0[_YOZ(-O-M`  R# @pP 0R n)Q@  K KO]YO-|M, 0 4 8 < @ H HK@Qv4@B@`VD  2/`@8@. $@ (@ |D p(K⨑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `Pp 0@ (@ Q@  8P@P )D0@p0L`p`3/HP K -H b4叏\YKZl(-O-M`  R @,Pp, QLP  RA K KOXZYO-|M4, 0 4 8 < @ H HK @Qr0@A@pWC  2/p8. $ ( C `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P `@p4 KP RA@ p]8P@P fC0@p0L`p`3/HP K i!H 城0̎|YYHZP(-O- MhQH  p0P@A B$P<  `0P   X   ` )`   (0 R 0@P K  KO  0 0zHWY {(+O-M8, P0 4 8 < @ H HK@Q0hp0t`p`3/xP K m!x LM 0 0W 0 0O\X X0 0GXT T0 0?JY9ZT((-|  2/p8. $ ( A> `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP P@   `p4  AEP RA@ p8P@P =0@p0L`p`3/HP K u!H +0XCY3Z(-O-Mp  R P,@`,C PA K KO|AYO-|M4, 0 4 8 < @ H HK@Qo0@A@pW=  2/p8. $ ( = `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP   P `@p4 HCPA@ p,8P@P 5=0@p0L`p`3/HP K c/H n0囈@Y0Z(-O- MD@Q? p`7 B$Q2tP P M   Rt P JP@P K  KO  0 0R>YM c(r+O-M<, 0 4 8 < @ H HKPQB@pW<  2/p@@@. $@ (@ < `(K@(X ,@@ 0 @@@@@ @$@@6/`$$@ P 1/(( P 1/@P`Hp@TL  `8p<P B$QK3t@ P  4P  P R 4P@<  p@8@ P @PHP "<0Hp0T`p`3/HP K f!H [bሇ($ $0 0(+5>({->(+>(-O-Mp< P@ D H L P X XK@QtTP4@VP@Tu3  2/@`PpX`/ 4` 8` e3 p8K8(X ,`` 0 ````` `$``7/P4p4` P 1/88 P 1/XhP`@XlpPpdT `@P0. Q*7 :+   R' 4L0 0S7p 1@`DP80P HP<@ ^@ `\T@TP`P`AP F 0` o"8PK`0` 4` 8 E@$K  ` $P PH 8K` oOPPp8`P  00S6TU\3 0P 8応8P *PP Lp,8 P  @Vy LpQLp 0``YPTLp@@TU\ OdLp0`8 0 ,@ (K 4@ P@Q@-80 @ R  P Q@8K ` $ $K  @T@@D <0@0H@P !XP`P *20`p0l`p`3/XPK$K4P 8 8K$ #LpP803/ !X O}4|} 0 0z 0 0~zxt t0 0vzpl l0 0nz\X X0 0fzDYZn(-$Y7(x-7(+7(Cz-r7(x+R7(x-O-MPQ  `@ Qp07 00S* `0a`0` @P @ T@@ @``- P, ` pP: @PP  00S U\ 0pd U\ O `` p@@P p#K 803/KO,|x x0 0ytp p0 0yHD D0 0y@< <0 0y,YZ4(Xu-e4(+:4( E3(+O-M, P0 4 8 < @ H HKt@Q4@\D@pW0 D 2/p@LPP@/ $@ (@ 0 `(K(X ,@@ 0 @@@@@ @$@@6/`$P$@ P 1/(( P 1/P``XpPdPLP\ H 0@ Q` 6   R*< @0 180p D@P P HPTL@Ppp.P. pDPPM <@`8@  00S TX 0Pi-O-,M`$ @0p P  BP R: @P dQ  0 Q@P p `@ Pp Y`  Ys` apT Aq QN@O,P ẾP ApPUP@:@3p $0 $ wPOp@P  00S 0> 0W O 8 2/ 0 Y`Y@ P A P  0Yz `p$ 0KO-4M@(T X $KP +  T  PO`@%$ppQ$  @ `P ,p P  Ȓ  P @A P"pO PX   $ 0 p0r wp BSsSZ#CU0s`q&2nE0b0 pKp WgCd Uppvxp poh"(/0 `R"'|@P$@P  PP ሽ  Q尼 P(*PO   Z:=BP R @OQ+ p`P  QP H QqP(P Op `W$ @ `PpQ: Q PP|TT<<<<<<<<<<<<<  P 0  PI pRBp0S0pd R Q| @@ `p`PP  QP Ƽ  Q P(hPL 0p`WEBPPpWջpPQ8 ``  @@P  P  PP | Q奻 P(P  Y @ `Pp@P pK Kd4D,(  }s  wsj&ݸ:(O-4M`@(T X $KP `  T  pO@%$PPQ @ p ,pP Ȣ  P 0AP PpO P$P    0 p0r wp BScSz#CW0sPq%2^G0R0 `K` V@ Wpp vxp oph"(/0 `R `"'|@P-@ `P'  P#P sp @pW固pP(v@ "P UO5 $ X:NBP0Sz0OQ= $`P+  Q'P &p @pWNpP(`)@P U $` 0O X @ pPQ: Q $`PPLL|  P Ϻ0  PV ĺ ^BP0S0Pd R Q  p@P)  Q%P ᔺp @pW弹pP(`@CP UX 0$`XPBP R PQE  p@   P'  P#P @@ `@Th@P(`CPp $`W  Z` @ pP@P P壹K Kb4^B,(  6q  0qNٯ&(O-HD  m$  mXXS-S-S-n()+&O-LMP& RQ  0Pp`P  P%5 0Wmb $Q] @b P^P 0 `pP  BPX+@4p O,PeL` KOE'|0P WPN PPQ P ˵ Z:A0 R(0(0 PZ:( 00JCP*FaA!.rPP P`*P{0PC( a!S00 )0Q `P4d0P ,@JD$BT( `  ` q 0@4P@ QP @PT P P P @ D@P CP PUlP@`@ P @9@ǠP N@+ A` P @"ᰠP t0/04 ,p\(4P  `@pP  00S 0᥍ W  8 2/$0P `Zb(  0T@U {  @P  RKPL L0 0k<8 80 0kj(XXa(,F-^'+>'z@-O-M< @ D H L P X XK@Q0@G@PU(#  2/P@\`@/ 4@ 8@ # p8KL(X,@@0 @@@@@ @$@@7/`4p4@ P 1/88 P 1/\`p`hP`tpl  0`p@P  Phd&d6 0ckz $Qu Pz Pv4`80 D@@-y.'~+Y'J8-O- MPQ[  p0@P  P!1 0iC $Q>5C Q?* `D P@,0P J A Pr`PP@P K KO%lh h0 0SiXT T0 0KiD@ @0 0CiXXB'X7-Q'|+1'g'}+O-M<, P0 4 8 < @ H HKd@Q8P4@HC@pW 0 2/p`@`. $` (` x  P(K쒟(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L8` Pp(P  P"2 0h<0Z $QU3<0Y QU* @Z PV,P j A` Pᓰ8`@<P@@ P @PHP 0Hp0T`p`3/HP K f/H %kE4Rkxt t0 0\hd` `0 0ThPL L0 0LhXY\"(5-hX'3-u*'x+U 'c5'y+O- M " Rh @`P  P!1 0hO  4 RJP 5N   RJ* pO PKA,P ὰ A Pp ' QnHP@P *K KO%lh h0 0gXT T0 0gD@ @0 0gXXe'01-'Pv+ى';an'"0-O-M, P0 4 8 < @ H HK@Q0@C@pW l 2/p`@`0 $` (`  P(K$(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/@P@Hp@TP PL `@0`P  P@<"<2 0-gi $QdpP@P@P 吮K KO0 0 0#f 0 0fd` `0 0f84 40 0 f@X,XՄ'*-F'o+1'QQ' *-q&'b)-O-M, P0 4 8 < @ H HK@Q (@`@ P 18P@P :0@p0LPpP3/HP K !H sf]4f 0 0c 0 0c|x x0 0cD@ @0 0cdXY8("-HXz' -yb'-My'HyB' -my"' -O-MQA  p@P0TP  P40!01 0Zc) %P$ `06' %P" P& @`@P 哫K  KO%lh h0 0%cXT T0 0cD@ @0 0cصXķXmx"'8-wN',yw.',Yw'-O-|M4, 0 4 8 < @ H HK@Q0@B@pWZ  2/pP8P. $P (P K `(K‒(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `PpP  P!1 0b4@ %P;4@4? %P:U P> 4@@@ P Ѫ8P@P 0@p0L`p`3/HP K !H ea0@ext t0 0Jbd` `0 0BbPL L0 0:bԳXdY (-Xau',--t'+, t' ,s'/-O- M@Qd p` P  P!1 0b 0T0S ' 0T0S" PB P> P ᯪ@P K  \  ѩ P  P@PAP  KO@< <0 0a84 40 0a넰XpXqn'-s'-qN'b-O-M, 0 4 8 < @ H HKp@<Q8@TC@pW < 2/<pP@P/ $P (P  `(K(X ,PP 0 PPPPP P$PP6/@$`$P P 1/(( P 1/<@P@Hp@T`L p@P 0P  P"2 0'a  0d0S : 0d0S5 `\ PX P ҩ$@` @PHP k0Hp0TPpP3/HP0K  Y 4 4 `<  P @` PA * !H c<;8cLH H0 0`D@ @0 0` XY(5-Xm'-oV'l-mr'-O-MP" R\  `pP  P!1 0}`C  4 R>P<B  D R= p@2@ 0t0S; @ P< A P= B P> p@P@P p囨K KOF 0 0.` 0 0&` 0 0` 0 0`|x x0 0`hd d0 0`dXPXl'-kr'X+kR'-}k2'-]k'-=k'-k' -O-|M, P0 4 8 < @ H HK@Q4P0@C@pW@  2/p`8`/ $` (` 0 P(KT(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D4 PP  Plh"h2 0z_\ $QW 01[  D RV @2Z pdpWU 4`Y PU Z PV [ PW p@@p@ P 嚧8P@P 0@p0L`p`3/HP K !H aB0b 0 0_ 0 0 _ 0 0_ 0 0^ 0 0^tp p0 0^pXY@'-DXh'-Mg'S+-g'- g'-f'{-f'-fb'-O-MPQA  p@0TP  P40!01 0^) %P$`06' %P"jP& @P@P K KO%lh h0 0w^XT T0 0o^D@ @0 0g^ X Xej' -d',dv',dV' -O-|M, 0 4 8 < @ H HK@4 Q0@B@pW  2/4 p`8`/ $` (`  P(Kℒ(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/4 8HP@p8L@D P`pP  P!1 0]A %P<@4@ %P;P? 4@@A Q "8P@P +0@p0L`p`3/HP K !H d`4 _0`xt t0 0]d` `0 0]PL L0 0] XY' -XbV'l-ma"'k,Ma'`,-a'z -O-TMPT@Q  P  P$4 0U] %$Q`6  %4 Rp   R R*  0S0QL0 0P*0 0P*R[ p, 0<@PDHPLP妰$P4@ PF \ $QW T PP, 0<@`DH`LP$P4@P @ R : $Q5 1 P-ZAo"?P  @P  K KOg !1 0\ !1 0\!1 0\ 0 0\ 0 0~\ 0 0v\ 0 0n\ 0 0f\ 0 0^\ĝXX}]2'-]]'-Y`'$-]ҿ',\',=]'X\'-\r'-\R'-}\2'-O-MP|xpp@Q4@up@T  2/@pXp. Lp Pp  PKP(X ,pp 0 ppppp p$pp'diS'*T'g,O-M, 0 4 8 < @ H HKx@Q4@`C@pW[ H 2/p`H`. $` (` L P(K(X,``0 ````` `$``5/@$P$` P 1/(( P 1/HX@PpH\PT  P`8p HP  P"2 0Ye Pa* < 1d P`* @ PQ 0#DD@S 0 Q1@a  hd!d1 0`YP  ⓡ@`<@P 8嬡HPPP 0Pp0\`p`3/HP K !H [;4\d` `0 0%YPL L0 0Y 0C؏X|Y',X]Q'(,ON'+`yO.'&P:',O-M$ R   p ` PhP Phd$d4 0XP0P00S00    +b j a 2 0KUG0- @U 2PCP#:0@J34C03Ƞ 0hÌ4CP4uÐ RDP 34@00 @P0uÐ: PP"2 0X0PP PMQ    +b j a / 0Q0?GP* Q:2DSCS!:P@J3TPE<Š PeŌT0ES4à0q0Ó RDS 3T0C 0CS0q0ÓZ4 R xqlp 1/PP@P P A h @PKP P ᖫL KO#XT T0 0WD@ @0 0WAXXJZ'J:'>NR'h,M'4+O-M|xtplh``0QPE@pW  2/p@H@. @@ `℅(X,@@0 @@@@@ @$@@6/`P@P 1/P 1/HX`PpH\PT  pP $ R R$4 0^W 4 I00S0 D @0    +b j a + 0kS@OG & SJ2TT: *3@6` `d`FV2 s ÒRT 3D @P sÐ* PPTP#P3 0V00SS  `IP < 8    +b j a + 0;RG`& RJ2TT:`j3@30 `40CS60r0ÓRT 3D0 @P0rÐj4 R @op 1/PP%@`A@4P @`HPPP 0Pp0\PpP3/`PKP ` L !0`Y0HY|x x0 0RVAPL L0 0DVAXvY',̇XMD'Dʦ'}H2'H,G'.+H- 8M  0S/ 0  @0 $( ,04⥩P@P   4 R  @o Р 0 0UBb''O-( Z( $0(,p |X؃XO-M4 8 < @ D H P PK\4QDE@`V6 , 2/`P`P. $P (P '  p(K蔟(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/`pph``t@l, p0D ,P @0 @ p`Zip@$ ( , 0  QAPD  `L@ 8 ᇦ`@pPAP  00S 0u Y O 8 2/ P 0 ( , 0$ 8&( $08 0, P`V`@!2$0 ( , 0  !4P V&@`p 0@,{ ]tS+"P%0'P%(!}!'p' %x'0PZ2;E+r+`+nzT+0  ( $ ,p X\( $01+C`nHL [`nPTD<@@ P `PhP  0hp0t`p`3/PP|K4~Vp(K Y0K Y00Kp D{XjY'~,~XO- MQh  p`@0a B$Q\ `0` P  BP Q@` H'0# P   P`P  Q `'0 P PP@P eK KO  0 0RuX6'+O-M, `0 4 8 < @ H HKp@Q4@XC@pWF @ 2/pP@P2 $P (P 5  `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@`T@L p0P} B$Qx <0@ P D B8PP Ql8P@ I'0& P" 0 8P P@P  QI@'0 P 8P0 P@<@P P厚@PHP 0Hp0T`p`3/HP K !H T24T($ $0 0RsX4cYX',!3֕'F+O- M(! R: p@ P 0 #A`PP ᤚ A  P̙`jP@P K KO  0 0QoX1z'P+O-M<, `0 4 8 < @ H HK@Q4@B@pW t 2/pP@P0 $P (P  `(K,(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/P`@`Hp@T@Lp8P<@J <`@`@P  A  P(`vi@8@ P< z@PHP 0Hp0T`p`3/HP K !H Se4S($ $0 0PhnX^Y<',.'\+O- M  R5 ` pp@@P P ᖙ A  QP 5P@P K KOkXO-MP, 0 4 8 < @ H HKlQXB@`V @ 2/`YP', QVq',*6q':*000S/DKXK-pM$ ( , 0 4 8 @ @KQRxA@PU" ` 2/P`0`: ` `  p K(X ,`` 0 ````` `$``7/@p` P 1/   P 1/08P@@0 1P9 @E 0Pp L``@p 0C @ አ 0Q P@ P  rK KO  0 0?d%XI',O-MP, 0 4 8 < @ H HK@Q4@B@pWR  2/p`H`. $` (` C @(KXR(XP,``0 ````` `$``4/@$$` P 1/(( P 1/HX@PpH\TP  Pp 0X 1PS  @H8D @0P#XYy',F'ޒ,O-M@  R" `pP 1$P A0F@@P j K KO  0 0= XE',O-|MP, 0 4 8 < @ H HKD@Qx4P0@(B@pWK  2/p8. $ ( < P(Ka(X`,0  $5/@$P$ P 1/(( P 1/8H@@p8LPD`  p4P@`4 1$P/ A 0@@P `߅8P@P 0@p0L`p`3/HP K !H !@}0N@($ $0 0X=XYlu',eC'N,O-M@  R" `pP 1$P A0b@@P 内 K KO  0 0=(XiB'R,O-|MP, 0 4 8 < @ H HKD@Qx4P0@(B@pWg  2/p8. $ ( X P(Ka(X`,0  $5/@$P$ P 1/(( P 1/8H@@p8LPD`  p4P@`4 1$P/ A 0@@P `8P@P 0@p0L`p`3/HP K !H =?}0j?($ $0 0t< X Yq',?',O-M@  R% `pP  14 R 0{@@P 埄 K KO<8 80 02<($ $0 0*<X>',b>'1,O-|MP, 0 4 8 < @ H HKp@Q{4P0@TB@pWu < 2/p8. $ ( f `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `4P@p7  01$S27 0@@P p8P@P 0@p0L`p`3/HP K !H H>z0u>HD D0 0;40 00 0w;DXTYn',;',;'e,O- MD@Q? p `08 BP3 P 0P  S8 P ጢ@P@P 儃K  KO  0 0;X]:'*O-M<, P0 4 8 < @ H HK@Q8@B@pWe x 2/p@@@. $@ (@ V `(K4(X ,@@ 0 @@@@@ @$@@6/`$$@ P 1/(( P 1/@P`Hp@TL `p<N BPI @ P j  Y 4咂4 @<@@@ P ߂@PHP 0Hp0T`p`3/HP K !H !=d8N=($ $0 0X:XYi',e7'*O-MP  R @p`@ Q@ 厂K KO(XO-|M, 0 4 8 < @ H HK@Qn4@A@`V|  2/`@8@. $@ (@ m p(K∑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `P@pZ@Q@ p8P@P "0@p0L`p`3/HP  K z!H [<4<\XxY0f',O-M@  R' `pP SR1/ DP )@@P Ɓ K KO<XO-|M4, 0 4 8 < @ H HK0@Q{0@B@pW  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  @4`PpQP8/ DP @@P pC8P@P L0@p0L`p`3/HP K y!H ;z0;8 XXX c',K-  R `P@p 1$Q{APQ p K  0 08 X=/'&|,O-|M4, 0 4 8 < @ H HK8@Qu0@ B@pW  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `P@p42 1$Q-@P pt8P@P }0@p0L`p`3/H@P K !H :0:($ $0 07 XX_'j|,j-'y,L-x000S 0 1DQ $ 0 07LX,'y,O-|M, P0 4 8 < @ H HK@Qf4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D 0ppp' `1D`V" @P0@P 0@p0L`p`3/HP K }/H 94&:($ $0 007XX\'[y,z*'v,l000S 14Q @/H-  0 0 7X9)'"v,O-|M`, 0 4 8 < @ H HK@Qc4@A@pW[  2/p8. $ ( L P(K|(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D* 1$Q% 8@@P@P 0@p0L`p`3/HP K !H E94r9($ $0 0|6XXY'v,''s,O-M@ Q" `pP 1P0Bi@@P ~ K KO  0 0;6X&'r,O-|MP, 0 4 8 < @ H HKD@Qx4P0@(B@pW  2/p8. $ ( z P(Ka(X`,0  $5/@$P$ P 1/(( P 1/8H@@p8LPD`  p4 P@`4 1P/0B @@P `~8P@P &0@p0L`p`3/HP K !H _8}08($ $0 05XXdV's,]$'Fp,O-MP$Q?  `p@ !R 0 0m5@1$Q Q O@1P@0  f@P@P }K KOWn#'*O-|M, 0 4 8 < @ H HK@Q4@xB@pW ` 2/pP8P. $P (P  `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p !R@  `p@ !R 0 0_4@1$Q Q @1P@0  Y@P@P |K KOW6'*O-|M, 0 4 8 < @ H HK@Q4@tB@pW \ 2/pP8P. $P (P s `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p !R<8!81 03@1$Q Q ?@1P@0 @@P p{8P@P 0@p0L`p`3/HP  K !H =6c4j6tWXHN'k, 'F*O-MPQ- p@`% 1P  $ P EA  P@ P {KKO<8 80 023($ $0 0*3Wͷ'f,b'h,O-|M, 0 4 8 < @ H HK@Q0@pB@pWv X 2/p`8`. $` (` g P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P4`p> 1P9> P:@H `@@ P 4{8P@P 0@p0L`p`3/HP K !H B5t0o5HD D0 0y240 00 0q2DWXJ'g,'c,ɴ~'e,O-M  R$  `p@ 1$P AcPP@P zK KO  0 0-2Wn'b,O-|M, `0 4 8 < @ H HKH@Qy4@0B@pW|  2/p8. $ ( m P(Kԡ(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p6 1P1I P@P pz8P@P 0@p0L`p`3/HP K ~/H P4|4}4($ $0 01\WX0F'c,!' `,@000S P/P QL/WO-|M, P0 4 8 < @ H HK@Q`4@A@pW  2/p8. $ (  `(KL(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP P RLP@@P t0@p0L`p`3/HP K !H 343lWX@C' a,X000S  Q /H-  0 00WI'_,O-tMd`\XTPHHQ\A@`V!  2/`0. P$P (P  p(K`(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<$    R P P8P 08p0D`p`3/HP K !H3>3($ $0 0H0W8X@'^,%'],X000S  Q/H-  0 0*0Wb'&],O-tMd`\XTPHHQ\A@`Vz  2/`0. P$P (P j p(K`(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<$    R PP8P 108p0D`p`3/HP K ,Hj22($ $0 0/PWX(>'_\,> '[,O-DM! R9  `p@ "P 0 0y/K K  A0A  ᡄ[P PP@P wK KOLW '&*O-Mlhd`\XPPt@Q4@\B@pW D 2/p`8`. T` X`  PXK(X ,`` 0 ````` `$``5/PT@T` P 1/XX P 1/8HP@p8L@D  P@`p!P$ ! 1 0.KK H0HXK  [P XKP@P p!w8P@P *0@p0L`p`3/PP K !Pc1i41WDX:''Y,> 'Ə*O-LMPQV  `p@  Q!1 0y. PL K  UP4 Z9*!K!K" E0E Ꮓ![P E 0PA pPP P @P vK KO$tp p0 0-.`\ \0 0%.($ $0 0.LW'&*y.'Wn'U,N' *O-M`tplhd`XXd@Q4@LC@pWc 4 2/p@@@. T@ X@ T PXK(X ,@@ 0 @@@@@ @$@@5/PTT@ P 1/XX P 1/@PPHp@TL  P<p@ Q " 2 0- Pj K 8}PR  @TV*!K!KB F0F<XK ᵂ![P  FXK0@@ pP<@<@8@ P <u@PHP 0Hp0T`p`3/XP K "X0E4-0| |0 07-lh h0 0/-40 00 0'-WLX5'VT,>'Ɗ*V''Q,v'H*O-MPQU  p@0N PJ*`6 Qtp!p1 0, 0Q8   j7 4 0 Q캆0E  PP@P uK KO\X X0 0,0, ,0 0, C8W>'S^'P,j'*O-M`, 0 4 8 < @ H HKH@Q0@0C@pW  2/p@@@. $@ (@  P(KԒ(X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/@PPHp@TL  P@ 0i Pe*p7 Q!1 0, 40QS<8  jR O 0 Q0F  P`@4@@P @Ft@PHP O0HpP0T```p3/HP K !H .I0.hd d0 0+<8 80 0+ CWXX/'N,ٙ&&VL,q&&m*O-M! R5  `p@- P)* 20 S 0 0z+ JpP QL  P@P sK KO 0 0X+pWe&J,&*O-|M, 0 4 8 < @ H HK@Q4@tB@pW \ 2/p`8`. $` (`  @(KR(XP,``0 ````` `$``4/@$$` P 1/(( P 1/8H@@p8LDP  pP@`H PD* 2 Q($!$1 0* JpP QL  @P `%s8P@P .0@p0L`p`3/HP K /H g-k4-($ $0 0*WXX*'I,}2&G,q&&m*O-$MpP`኎V  # @pP#@pTA pyA pQjZf@AQ QTP7   FQ0 pS  a pP    ၐ EE`   0!3/ ` pp*E` X  0!3/ `p@@ZKWWO-4MS0b @ `  P pU4YgfPL  倁[YPfP|  QYrPfP  `QYPfP  QYPfP  QP P >R  XだD`T( 0!3/@倁 P   !P぀yD`' 0!3/@ P` `p]D`P' 0!3/QP  P?D`& 0!3/`Pp&D`h& 0!3/Q`XpD` & 0!3/QP  JPC`% 0!3/`P3pC`8% 0!3/QP  PC`$ 0!3/`P`x  A  ( QAp P K2/P p W ( PP (Q P 1/Y#PfpP  QWC`P# 0!3/ ` QzPPpP  Qぐ1C`" 0!3/@Q` a $P]Z^ $@<QV PPPPPPPPPPPxPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPD0@PpW0 Ar R!0PAU pPU YpP&V PfP   Qpp぀B`l  0!3/@QKVxWDWWTWWWWHWWS p0 0SB`( 0!3/ @ ` 倡P   !pぐA`' 0!3/@@ p` `぀A`x' 0!3/@ @qP  pA`' 0!3/@ ぀A`& 0!3/@@q `^぀rA`@& 0!3/@ @qP  KpRA`% 0!3/@ 4぀;A`T% 0!3/@ @qP  pA`$ 0!3/@ ` r    0 QAp @K  2/P pW 0 P @0 Q P 1/ @Y pfP  q぀@``# 0!3/@ @qzppP  q぀@`" 0!3/@ @q`d$P_Z` $@<QW TpTTTTTTTTTTDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT0@ PX0 Ar R!0pA W pW YpP(V fP   倁pp@P?`p  0!3/`P倁KT̼VWWPWWlWW(WWXWW(WWO-M@TpN P@` AR}!0x whQfA ^^>  N 00 07P QOA ^^:  !0N0 PP0! P1Z<^ ! !  Q00!   AR  1  @RY~K  $y{{$O-M@p P``p  00S 0E U O 8 2/ " BQKO-MPU @` J P p@Q*PUKO-MpW Q`@ P P  EQ*pGW PU:KO-VdU p$ G*P ` @$Q* UPUP'VvU Z`$ pP  G$Q* 6PEpW*U  `0KVU Z`$ pP  G$Q* PEpW*UHDŸV  FU,`(0$p40 $  0,O-M4 P8 < @ D H P PK@Q6xP8@I@`VX l 2/`@h@ . ,@ 0@ I p0K((X,@@0 @@@@@ @$@@7/p,P,@ P 1/00 P 1/hKXp `` h TP \ x P 0T P* `6   R* H0pWE00S0 l p0  [   +b j a  0;TpG Tz2TWSW:P *3TPE35 Pe5TpEW27R$W3$ G2 BR0 t ÒW  D 0 Pw t + Q3@pL3x`p thpP 0p @  p AtP4BT x)T R 0  p Tx@ $0K0P P gPU 0K*p@A0  D!0l 劥<P P g B` Rf x`PT@pd 9tpQ 0Ppl@P1dh@POP`  00S 0.@ Vx` O~ {8 2/u ATPpl@jtP L`0+UU\UUqX0t t HpAAR*h 0/zd `/OP@`  00S 0? U O  8 2/`l@x`XtpXLP@TPpX \0Q0 B  ft U@<p Qh4 d0tt0x HP BB! R P p0 - QxePU x`  06TPpHPD@P P9fhP`P B0`pK0T`p`3/PP KzWy 0 0  "P p 8 8 0 0| |0 0xt t0 0($ $0 0ЧW,X&,=a&aR&/r}a2&8a&,]a&,O-MPQb @ 0[ 2PV`6Z PV* Pw0 3PV p 7J PFpS@PVʱ @tP pthpP0 _AP  P@P  oeK KOM 0 0 0 0 0 0 0 0 0 0 0 040 00 0̝W _&,^&K6I^&^^&,^~&,^>&F*i^&,O-M@, 0 4 8 < @ H HK0QSPpW  2/p`@`2  @$` (`  P(K┓(X ,`` 0 ````` `$``5/P$$` P 1/(( P 1/@PPHp@TL @  0P u 2Ppp7t Pp* P(K( 408 #Pp ` 6d P`( ,Y&{*Yv& ,O-M@Qz  0r 2PmP5q Pm*`6q Pm*  0q  P  d  \Ic p U W/PP` 0)?/0` *` 0H(@ @ P  kcKKO,|x x0 0hd d0 0TP P0 0@< <0 0WV& ,V&?.Vr&ZVR& ,O-M@, 0 4 8 < @ H HK@D Q4@SP@T,  2/D @PHP/ $P (P  p(K‣(X ,PP 0 PPPPP P$PP7/`$p$P P 1/(( P 1/D HX`P@H\pT @@p 0 2P`6 P*7 P* Q <08@P c@ SD@Fb@P@P l S.`PD 0(<.0D @)D 0G'@8<@P DkbHPPP t0Pp0\`p`3/HP K "H D (4 0 0tp p0 0`\ \0 0LH H0 0 WX&,RF&,qR&&)QR&V1R&,O-M`XQ \ (`  2P0 Q* 2 Q  2,   %4 R Q-d    00 00Q 0X$S Q Q_@0`S Q`d0LQ6<0Km- P@p P&pH``PP`9(P  1/T.(P Wg<  pW  ]d0<K 0D<p,pO PU a\0PS Q4Pd0HPpW2<0K( P@p P!HpX`PP`'P  1/'P7 W<  pW  O P^ yaeBPY`p\ 0@H` P (jLp@`D\`4< 4 R0,0QU78 P0 $`p  p/O,0  p 0P U ppW (pp=P<K*D `pR,0$(pp=BP< ,P4 `pU p ` W0W0 /O @ip 0@}t` RB PP 0C ep@00RT\pP`dW \0s /OP ` @ 00S 0c9 T O  8 2/\ @P@X```p@TP5 1< d0HP<K 0%C<p*,@O P! p`@*`pp\WDP@HP PP @! H HP\ BP R{_ HP@@ P i@ p  p PP`\ 0`_4< 4 R0,0aV98 P0 $,0 p/OT  p 0` V ppW (ppS<P<KB TR,0$(ppATP< ,`4 pV  0P0`` Rp0R0 /O @h@ 0Cs`` pPP@ PP B  U  00L@X@@\<`P RdT d0rD@0 #@ HPP x_ X`Q^@T4@pP338 f@OP@ p ``00S 07 W O  8 2/``WHPU=p R 0dS dr@@@ /O` @   00S 07 X O  8 2/\PU``pPP P/Od@p @`  00S 07 V O 8 2/8\P: X`K4QH`  T X (@HV P ̎W1/ @/OP`p@  00S 0F7 W O 8 2/  0L @/OTp`@  XP00S 07 W O  8 2/XPW\<pT`L@@@DPP pʴ f< PP`P@H@ PP @ 0 ! $WWB@ QG]P` sP,@0 \pO`p@  00S 06 T O 8 2/,@ 0 dH q? $@ X-H X"ꨋWhWe @0040K<PA 1dS?L`@ Q@` Pldp40 <Q@V ,`V  Pi`  P0  `P ]  R\\ `p0\d  ,P0 `OP@`p  00S 0 6 W O 8 2/,  `H@ U  0 0040K<PA 1d> TQ@@ `cP40 <Q@T ,@T  `  @ו`  f@0 `P \ Xp R\ `Pd0x~ ,@0 P 0PO`@Pp X 00S 0z5 W O 8 2/,  T (@P,P "\$`@(P )\K KOO   0 0 0 0 0 0 0 0 0 0pl l0 0\9$0|V9&+9n&9N&+y9.&+Y9&+99&+z&O-EMt\ ` d h l p x xK@Q<@_P@T  2/@PP . P@tYP@T \ 2/@PxP. d` `0 0PL L0 0HZPW8AX&+JWdJW?Vy .m& Y m&+ t&+&O-M-M`@Q  pD Q +; 01@ P*  0A<0PHpL  MP PW wO @ 2P6 pL$000P@PU P00@X@ d0 0T0 ?P    @RLKR@@ <` 8 4 dK[`PP@PdKZPP  P: PU u[ 0s8 y[@  0|sp  .`PP @P  1/@PR  0`PP# pP`FO @0P  P  @⪮P A@VP@V Tt $P@PP,a  (@SX4 p @H`$P  0P 00  ᠖PP pHQ@ M`PE  <PP SO z DP zNP$PL P `P``\X  I`N j, 0P`1V 8 0 @p᱗@S@ T @ 0b @044P(Uh  dK0`QPL @CL P  <@Po N L Pv PXQ*TTP L I`N QD: `P @  Q  ] X d`Kd T P L H Dp @ < 8P 4 oY`PP@  P| 4D04(P P@U:D @ AP@ `@p$P,H`T:D0P M0L @PH`Pad`    +b j a B 0P /G@ P*24R(3R:@0PZ340C1 0c4 CR5P$ 00 ]P" HQU  0R4Rw34 B BR p ÒVmJViPH`L D@P `M0KЍ R,Q ,0 `pP 40@⬆ 0 SP  V@P @@` 00S0@  00 Q*ّ GPl@3 PX`Td P:u R ` @aP iITl@  `P/ [I8PH P U P*@<8 $000P@PU P00@\@ h0 0X0 ?T    @RPKD@ @p < 8 hKTdPTl@@hKZl@P /PUPLPh h&O0@P0U P00@\@ h0 0X0 ?T    @RPKD@ @p < 8 hK|TdLPP.Tl@@/ hYlG`T] l@ 0OP\ `0Pdd 0chKl@P ȸP 0+P T X`0K(/ @0 d\0廏P 0@` `HQ `Y ' IAP*Aa DRA!/rPPPj KA Y 0I! 0C B#1P9P Z  !l`LPUz `p  Q sW \ hPKh X T` P L H D @ < 8 RdPT@lP+  P: PQ pPd P0P d \0/PzPPhpP @@PhpX`TKd  `Pzd 09 `P G`@Rhp Z hPK,  뛟4H00`tp `H 唭dP`PT@P  4PP G ᮶P |PFPhPKPp P"  I`N PL  Q V \ h X T@ P L HP hPKD @ < 8  RdPT@P.  P:"Q" 0($, dPT@dP  hQ P%`DpPt@`P FV ZA  I`N K0P1 LQ `@^ AP  Q U \ h X T@ P L HP hPKD @ <` 8 vQdPT@PPP \Q  P:ᇨPU P P. 0@CP*ACBA!/rPP@ ppQ0 PU q@GpEpG'p5pS 00q pl@hpL`V: P hPK 0:dPTL@`\`hPKL`P \0 @P !PRQ":G 0u vR   Q9P4P" F ((/0P phPPP4 P(pi Wy pȹ Pu+W]Q&) RE P0hPK`(VB d@ ` \ X T L h d` 0@< QPKL` iP! P ` P:$RL @dT l0dX@L l@`DhPKD`P 1/ P p( PP S PpLP  L0Q04PP cE hPDPL d P8`p\ (0P P P:3PP ~ hp}Dx `hp hQlWDl@` `P: EPD:P? hQl7D`l@Q00X`TS*dS0 R  00W4PPX`TDPh PlD`l@Pn  P d+ |x d  `N *R d 0! PJ PHQ= X`hK#dV  0WhKک`PH@ @P x@     0 R' Q# #PE|KX dQ3PhpX`Tpt@P `C0KЍ|@Kl@` K0rhP hK〈 R 00WhPK~BQ PQl@` @pP3 P|K<OP D` x  0KЍO(A@0P.C` Px l@PL L0 0$뭷( A VVP%W W(Wj&J:&O-M-M@PtQ-p`Vc  2/`pPp/ dp hp S PhK⨏(X,pp0 ppppp p$pp5/Pddp P 1/hh P 1/PP`Ԑ̀ ``p  Q/? 0 0 Q*ᢋ DPp@唐4 `㈀ P:= R: @ p` QP 1CPV  @PA !CJ @  Ph\吐 P*h` $d000p@pW p00@\@ h0 0X0 ?T    @RL@ P H D@ @ < 8 hKxNdpPT@hKP P|h h&O0@p0W p00@\@ h0 0X0 ?T    @RL@ P H D@ @ < 8 hK=NdpP-T@. YAPPVW  0Pv P` 0%hK⵼P 勲 |0P  ㈀K/0 Y@0 0倉P P@XHQ Z 'JAP*AErA!/rPPpu KxQ Z 0J !0C B#1p:p T  !@pPb p P  Q :Q \ h`Kh X T P L H D @ < 8 LdPT `@1P `   P*PQPǣQ P |0׊P  0PpPqp@@PሀPK0 T h@K4<T H \p`8@0|p 堀pdPT@P  \@P dAPተP HP@@吐Pr P.  I`N x@  Q dP \ h X TP P L H@ h@KD @ < 8 KdPT@]P/  P:Q# 0PT LdPT@<P  @Q P&@l|@P a@T-h@K X; ,  I`N  K XP1xDP~ p[A`  Q O \ h X TP P L H` D @ 吐`0؝`h@KpPW% dP ` \ DX KT L 8h ` 0@d QPKLp cP( p`@ @DP *`吐|l@w:8&¾)LRDY  0gRpKᶤ᳤@Z@lV 1/P @PP )xP  x0Q0\D`P ;? HPd>`x 0`XP0 @pP `p P: `P UlP@`吐pP &lD@u 0 @PP. p`N@刀p  `Q >@@PA >JG` 0#@P! >@X@0刀S*SX R  X0QKKⴣP@ꈀl@ pY=P@Y `P=@@Pr  P #+ *  `N *R 0PO `HQA pZ P@hK̢딐 T   03QhK⃣P:@p ` x@ r    0 R Q #@d|KZ 唐Y'@`p刀吐,|@KPK 0)bPE hKC R P0PPh@K 2Y @ሀp@PK@ P ^=PP g0p0`p`3/P60KЍYP@pP3 P|K,OP =x \V "tAP P<@x tLH H0 05$0 AU W\W|WP&j &O-MPPQ2  `p@+ 2P&1* P&* 2* P&*ӛPPP@P <K KO!\X X0 0RHD D0 0J40 00 0BPVM&;o+-& &NO-|M`, 0 4 8 < @ H HK@Q4@B@pW  2/p@8@. $@ (@ | P(KH(X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/8HP@p8LD  P@pD 2P?1C P?* 2C P?*#P``@ P <8P@P 0@p0LPpP3/HP K "H Ro4hd d0 0TP P0 0@< <0 0yVWlN&=p+)&l+ &k&*D000S P/24PQL/VO-|M, P0 4 8 < @ H HK@Qa4@A@pW  2/p8. $ ( 囪 `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP24 PRLP@@P ^0@p0L`p`3/HP K "H 4VWJ&l+O-DMPp  0Q P T0 K$ 0$p, , R04AT O 00P `p0W 0S `@``Q  P~GP P`_O  X 0  F`, $,Q0 40A/(0P0<40@  @ 0p W ppW@8ppfP$ @Rh40<8ppP$4@,T pU,00 P0W( P*0 <40 `/O  ` 0@ T ``V @8``( KP$ @R$PTP40<8``P$4@,T=pʴP8P4P KP,0 $04A@1 ! P U 0  E`pV @P`P D7P @0A PTP0,    0 0!#$&?D&O-DMPp  0Q P T0 K$ 0$p, , R04AT O 00P `p0W 0S `@``Q  PFP P`_O  X 0  F`, $,Q0 40A/(0P0<40@  @ 0p W ppW@8ppP$ @Rh40<8ppP$4@,T pU,00 P0W( P*0 <40 `/O  ` 0@ T ``V @8`` fKP$k @R$PTP40<8``yP$4@,T=pʴP8P4P KP,0 $04A@1  P U 0  E`pV P@`P Dk6P @0 PTP0,  0  0 0($Z&>&O-M@P  0 R  pW R  0`pP p  Pƀ&`@pK 0P  `dPt 0plh`xp p JVP    0@r@@ 0'@p>H H R LPZ h$ P0A(@,P0P48Ph<( @, 0 R0R0 /O @A( 0,K(R B UU ,00E0,0(`,`0,0E100,80,AS8P $'`$ 0H@ H RLP0Z8D pP @oL XP0 `/O  ` 0P U ``V\T``9PPP@ \RIP0XT`` pP@PHPZjpp @9ʴ  0@@D P#L XP0 `/O  ` 0P U ``V\T``HP@ \R7@e@ QR(`,  R0R0 /O @3@`( 0,J(` @ PP , @0!, (0,0 P0XT``nP@PHZpʴ@ , 剕!  , 80 , "@ BS8H0PA 1$2P@TPPP ^@K. K  Bz^+  $O-4MPp pt@  00`Qt @@@ʐƠZ@?? `(@ "  RQb  @ CP$^ PpP`p U @ X $ 0 H D@ P $ 0 : @(PV 0pY$  (P$0K @$ ( % x 0AA QP@@@ $KKTKKO-4MPp pt@  00`Qt @@@ʐƠZ@?? `(@ "  RQb  @&CP$^ PpP`p U @ X $ 0  D@ P $ 0  @(PV 0pY$  P$0K @$ (  x 0AA QP@@@ &$KKTKKO-MPJqpQVA < P<@P 5` APp`V4`pP@P#  2/@P 5   R4  @0ZK-/]IL-@ U   /U/GI/@IL-@n U   /U/*I// 0  x{   000S/0 H 0  S/0 00 H //0H-P@  0J{ R    R:0HT0O-$MDP  @pQPAa  P 2/P X  P pP R P 1/w 0 3/P @ P @T@KUHHL-@ (U   /U/nH Q   ?R 0 @S:VT / /0  S/ XG0  R/000KG@@//00 0CCQ*@0S   Q 1/1 (T /H- H-@M@ Pp `0@ #ᯬ`, pP   0P @` JP  @0S     R*``T`KG/GL-@  U     /U/G0 [GL-@  TU     /m)Z%7})O-M  R   `p@ P* A a%P@P .K KO  0 00Vy.% O-|MP, `0 4 8 < @ H HK@@Qw4P0@$B@pWk  2/p8. $ ( \ P(Kȡ(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D @4p`P2 P.* A $@P P.8P@P 0@p0L`p`3/HP K  "H B~0o($ $0 0yVW&j8+%{O-M@  R  `pP P*@ $@P - K KO  0 0<묽V%O-|MP, 0 4 8 < @ H HK<@Qv4P0@ B@pW  2/p8. $ ( { `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  @4P`p2 P.*@ #@P p -8P@P )0@p0L`p`3/HP K /H b0($ $0 0똼V$Wh& 5+i}%O-DMPQO @`p 0H BPC`@ p0 K $K% 7 P8 @ $,  PF}TpO @ #XX, p3L1S00' @PPR ,[ 3`P@`  00S 0 U P   8 2/ P@,``p  00S 0x WpO   8 2/PU@ `P+PpO00S0@PP ` 00S 0< V   8 2/@ P o,Pp Bp`PU+P@  3( p0O`@P`  00S 0 T   8 2/0(P ` ` @ 00S 0 T  P XV,P @( $((`$p @` 00S 0  WpO  8 2/ PE,IPH(O0 R 0Q5 1 8 2/ XL @ Q @@ P +` BP`V*`@ ZP P,P +p A@pW*pP@ PQ@U5PP, (/O @P  Pp 00S0, , WpO  803/0   4 PT PP PUP(pO 4 0 IZ J$@P$ [  @P *K  KO<8 80 0+($ $0 0#(Vsf%Y)sF%)+O-M, 0 4 8 < @ H HK@Q4@[P@To  2/@P`P 0 `$P (P _ p(K⠊(X,PP0 PPPPP P$PP7/p$$P P 1/(( P 1/`KPp X@ ` L T   `Pp 0a BP\8 H ( K( KD0L" 7 PR (@ h  PzTL@TOO #ZP@Z ` 1L1Sd0% LP`PQ ;*YP 0Lp`Pp  00S 0 VT`   8 2/T`Phpp@  00S 0 T@OO   8 2/`VPH PP)`@0OO00SLdP`` p 00S 0z W  8 2/P P )`Pp BPp@`V(`@POOT X0d d`Pp`  00S 0; U  8 2/ddp ` ` P 00S 0 TU  P ZVhP @\ X\dpX@ `p 00S 0T T@OO  8 2/TPE`IPJ(O0 R 0Q5 18 2/T ZL0 P Q @P P (` B@`V(`@POOTX P8p,P (@ AP@T'@pP pQP W5pPh d/OPp p@ 00S0` H` T@OO  803/d  4 pU pP pWpd@OO4 dIX HL @P  <8D @@HPP '`PXP ޖ0XpK0L`p`3/HP K /H P4DHD D0 0N40 00 0F(VW&(+=h%bN)h%e+O-,MQ  `P BP K $  p  wWu  `P 0(0Qoက@WOO0 $X P P" p0 0`V 0]@ OO S  8 2/ @OO ZPp   00S 0@0 @OO UP`  803/$pP$ @P &K KO  0 0wФVd%K)O-M, 0 4 8 < @ H HK`@Q0@HD@pWƕ 0 2/p`P`. $` (` 巕 P(K샟(X,``0 ````` `$``5/P$@$` P 1/(( P 1/P`PXpPd@\  pHPLp BP( K( K (@  v`Tu  D`4P8`6B P> P P P0 Q0 0P0'-P @P EK KO<8 80 0($ $0 0XVa}%*A|%S*O-M, `0 4 8 < @ H HK@Q8@B@pW  2/pPD`HP/ $P (P  `(Kℒ(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/X`HD`PpH\@T p P0Z PV@@4Y PU `<0P  SD4=4 `D`0@i,@<@P HPPP 0Pp0\`p`3/HP K /H W8HD D0 040 00 0VVGW%~* y%W*y%*O-M0PQB p `@6: P6 P P P0 Q00P -P @P K KO  0 0SVYx%k*O-M, `0 4 8 < @ H HK@Q8@B@pW  2/pPD`HP/ $P (P ԁ `(KL(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/X`HD`PpH\@T p @@P04R PN `<0P  SD4 4`D` @0q,@<@P WHPPP `0Pp0\`p`3/HP K "H ]8($ $0 0QVBWЧ%*Et%W*O- M0LQA p `@: P6 PP Pm0 Q00P .P@P K KO  0 0pOVzs%w*O-M, 0 4 8 < @ H HK@Q4@B@pW  2/pP@P. $P (P 尀 `(K@(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L ` Pp0R PN @<80P  S 00@< -@8@P 6@PHP ?0Hp0T`p`3/HP K "H xa4($ $0 0hMV,>W<%o* vp%s*O-$M@Qg `p_ P[* 0 0 0   PPP P   pPPL% DQ 0 0tQ QQ QQ QQ QQPLP@P KQ  KO  0 0)JV ^n%;O-M<4 8 < @ D H P PKT@Q4@_% O-|M, `0 4 8 < @ H HKL@Qz4@4B@pW{  2/p8. $ ( { P(Kء(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p7 P3*I 0JP@P pA 8P@P J{0@p0L`p`3/HP K "H {4($ $0 0,9V*W%*\% O-M  R%  `p@ P* A 0 PP@P K KO  0 0x6V[%w O-|M, `0 4 8 < @ H HKL@Qz4@4B@pWz  2/p8. $ ( z P(Kء(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p7 P3*I 0aP@P pX 8P@P az0@p0L`p`3/HP K "H {4($ $0 05Vd&W\%z*IX%O-M  R%  `p@ P* A0 PP@P K KO  0 0 3VAW%O-|M, `0 4 8 < @ H HKL@Qz4@4B@pWy  2/p8. $ ( y P(Kء(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p7 P3*I  0xP@P po 8P@P xy0@p0L`p`3/HP K ".H {4($ $0 01V"W%*ZU%7O-dMPp, aP  A@ P `( K!P& [P#  ` @ 0: ]P@Q  O @ R   " @0@$ /48@Qk<$`2H@LPPTPO (@P `Y Pp $^ Q< `?P$^$U$ 0P, P(Q%       R   B4 R '#  ˽$|$ @PPKP PO-M@ `0RpP  09 09 ]@P 6 KO- `PUP@PDQ Y@(Z @PYP"P 0P{6 Y ՀP Y   4 R@`($Q@``PKO-$Mp@t< BPP [`P pp`V`pP0 0 0   P  Q L  @qD @Rk @OOr) QD0S% * Pp`P  00S 0 V  A @<@Q2Z @ 0@5 P Z @) @# 0@6 4YRP,P  A@ PP  0@K 8 2/@O-,MTQe P@] QY* `6] 00SY*pfP P 05PX 00ST* ` p @W@  0l@P pR 0]`, 0 $@(`)P @ @P  K KO8 0 0l 0 0d 0 0\XT T0 0TPL L0 0LV Uj?%GJ?%U ?%*(u*?%(5>%B(O-MD4 8 < @ D H P PK@Q0@C@`Vs  2/`pHp0 ,p 0p ~s P0K\(X,pp0 ppppp p$pp5/@,P,p P 1/00 P 1/HX@P`H\PT Dp @w Qs*P5w   Rs* ` 08s 00So*@``{<@@ p48T @ 0qpD` @@R 0aP D0, 0K(p $P 0 (P<8 P4@P  HPPP r0Pp0\`p`3/PP K #"P 90L 0 0V 0 0N 0 0Fd` `0 0>\X X0 06V Wxn%*U];%=:%:%(:%/(:%(O-M `pV P@XQPP <O  P/ 0O; 0N'p `V  0 P p 0 UpUpSB0 S  O0F   P `y0 B` R00  ` 0`rP P   0`aP pP  pKO-MP0Qj  @ c P_*` 6b P^*p7a P]*  0P P`*   OQ P`P@   0 PP P ` `DQ PUP`@P bK KO!\X X0 0HD D0 040 00 0V5%gj5%J5%O-M`, 0 4 8 < @ H HK4QC@pW-q h 2/p@@@2  `$@ (@ q P(K(X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/@PPHp@TL `  P w Ps*p8 7v Pr*@<4u Pq*(K(K   00P @% `  OQ @W ( K  0P @ DQ @ T@8<@P {@PHP p0Hp0TPpP3/HP K 6"4H 彻94hd d0 0TP P0 0@< <0 0 VWd%*1%gj1%J1%O-M  R `@Pp @P p K KO  0 0स@ VJ0%N(O-|MP, `0 4 8 < @ H HK,@Qr4P0@B@pWo  2/p8. $ ( o P(Kⴡ(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p4-P@P p8P@P o0@p0L`p`3/HP K 9"H κ0($ $0 08 V V`%׆*-%ҳ(O-MP@Q pT O`Q@Qh 0P P P00 SPL P:bP? E xH p P: 0P PY P3P #  P:[b R u P` PU P0U0P@ P K000  `N :S0#pCP KO0, ,0 0K AVۄ*+*1*%k[%O-M, 0 4 8 < @ H HK$$@ < R8@TP@Tn  2/<@PHP/ $P (P n p(K⨣(X ,PP 0 PPPPP P$PP7/p$`$P P 1/(( P 1/<HXpP@H\`T  `PT# /O pR@ R  0@ P @0/ R@G P: |a<P: A4 @oG3 p P :  0@ Pp @ 3  P: Va R <0s @_ 04S @#0T0/@P@P pHPPP m0Pp0\`p`3/HP(K0@@00D@ % `N :S0 "p A@ ."H <8"84 40 0,AVVZ%}***j&%V%O-Mp  R P,@`, A0A! Q@ \K KOhVO-|M4, 0 4 8 < @ H HK@Qq0@A@pWIm  2/p8. $ ( :m @(KQ(XP,0  $4/@$`$ P 1/(( P 1/8H@@p8L`DP P`   @p4  A0A;!Q@` p8P@P l0@p0L`p`3/HP K /"H %0RUVdU%|*K-p  R! P,`@, 0? AS0! APR  KhUO-|M, 0 4 8 < @ H HK$@Qx4@ B@pWl  2/p8. $ ( vl @(KQ(XP,0  $4/@$`$ P 1/(( P 1/8H@@p8L`DP  P p `@ ? J S0 !!@Q @8P@P "l0@p0L`p`3/H@P K #.H Z}4凷UxVTR%y*O-M`  R @,Pp, A@0b# Q@ K KO8UO-|M4, 0 4 8 < @ H HK@Qq0@A@pWk  2/p8. $ ( k `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP P`   @p@04  A"Q@` pW8P@P `k0@p0L`p`3/HP K 1"H 噶0ƶ`U\V4O%v*O-MP(QZ ` p@Q PM* P^zPG @ PW  z@P? TP PTH/PP 0RS DPP@P KKO7 0 0d 0 0\ 0 0THD D0 0L@< <0 0D4UJ%'5%u*%s*%U %}s*O-|M4 , `0 4 8 < @ H HK@Q0@|C@pWj d 2/p@8@. $@ (@ xj P(K (X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/8HP@p8LD4P pj Pf* Pw(K( yP`  Pq K yPZ 4 @TP PTHDPP(  0RS 4Y`@@ P 48P@P i0@p0L`p`3/HP K4 7"H (I0U 0 0_ 0 0W 0 0OTP P0 0GLH H0 0?UV\J%q*6%!%ڂa%po*% A%io*O- Md! RA  p0@ 9 P5*` 68 P4* 0$P P$ PP      P`@P PBK KO<8 80 0ձ($ $0 0ͱUY%9%O-M, 0 4 8 < @ H HK@Q4@B@pWi  2/pP@P. $P (P i `(Kh(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L `8PS PO* @4S PO*p <$P $ P    R P<@8@P @PHP h0Hp0T`p`3/HP K &"H г_4HD D0 040 00 0UVD%l*!%%cO-M  R& p`@ P   R*  ?R xZP PA &K KO  0 0๰U%{O-|M,  0 4 8 < @ H HKh@Q4@PB@pW Ph 4 2/ p80 P$ ( g `(K衟(X , 0  $6/`$@$ P 1/(( P 1/8 H`@p8L@D  `@Pp; Q7*?Q YpPA 8P@P g0@`F0LP`P3/HP K P/H ղ t4($ $0 0 UV\@%]h*1 %ûO- M(# R  `p@ P*PI  R     +b j a + 0P0?GP& P:2$S#S: PZ3$ B<  bŒ$ BR5  p Ò R$S 3$ C2 BR 0p ÒZU* QG d8pLX8LXhRzu 1/ 1/ P@P K KO%| |0 0HXT  B40 00 0:AU %v  #% %O-M, 0 4 8 < @ H HK@Q0@D@pW}f  2/p`@`. $` (` nf P(KD(X ,`` 0 ````` `$``5/@$P$` P 1/(( P 1/@P@Hp@TPL @`4P P*pEQ<8    +b j a ' 0P /Gp" P*24R3R:0pz340C1 0c4 CR7R4R 34 B BR p Òz W* Qj x8Xh8XhC!4bRL 1/ 1/ `@ P 4@PHP e0Hp0TPpP3/HP K )"H ʰ0 0 0hd  D@ @0 0 A`UlV4:%bb*Ѣ%q# %O-,MH@QX pP`Q %PL KtP`pP I PE* QG $  9 5Z  r8R>@ 0QA*@ Q P*   0  P_P@`Q0 `R R Rc Ra0`0 @@T@F:p@`A@TE@^/P+ pS`VA@Tl@@^\ P@\ `V@Q q@ 4I` @P `KT`? @ Ps P/p`   PP @%U  P 0  Pe  0`Y` A@ lP3 P,p`@  PP @%U  P 0@Pe 0@`T@`o`m  KOC 0 0p 0 0h 0 0`| |0 0Xlh h0 0PXT T0 0H`UŜz$$*Z$:$QX*e$hX*E$ZX*%$<8*O-M, P0 4 8 < @ H HK@Q@@G@pWc  2/p@X@0 $@ (@ wc `(Kd(X ,@@ 0 @@@@@ @$@@6/`$P$@ P 1/(( P 1/Xh``pXlP Pd `p@r %Pm(KrPLp l Ph*  Qj Gp TP  X TZ ( rWR]D@ 0Q`*@ Q P*  0  Pg@H@D@0H( R ( R RZ RXp PO:@<p\0@u P2pH H0p3H0@TPpg0ݎ$PK*r$J*R$=K*=$K*}2$JK*$M+*O-M, `0 4 8 < @ H HK4@Q<D@VP@T`  2/@pPp0 $p (p ` `(K⼕(X ,pp 0 ppppp p$pp6/`$P$p P 1/(( P 1/``P `X@PdP\ @ pP %P(K?oPL@  P*  Q(q@ pgt0GS<㠡0q0Ó  R D H  [   +b j a 7 0+Q0?G`2 Q:2tSsS+:p`j3tpG2' pg't0GS6#RtSo3t0Cs 0CS0pq0ÓcRtS 3t0C# 0CS 0q0ÓSjVTZV@L`$ 0 A@`p@P@ԁ Q@N`Tpp``LPR Q T0`P0Q@@PAPe&X ( @ P) 80 40,L^ 0 @ PO A TP    J j a 1 0QpGP, Q*2tRsR%:pPz3TPE 8Š PeU@P7Pp WRR 3tPBu PEUPp UZpZ E< DPP,48@0H<0@ %༇HLD0@T0  ,842Y (P# iA@)D (@ Pz   4L0YH0㣋㣛士@D,@!PF L P  [   J j a / 0 RpGP* Rz2dWcW#:`Pj3TPE0Š PeŌTpEW6ǠpW  RdW 3dpGg pGWp`W  ZQcU<8@PK D 4`CH0YAP pIZ pT- 8D,|X'!      p 03/H0 P ZD$4$O-M  R  `@p P*QP@ P K KO  0 0!@}U?>$PO-|MP, `0 4 8 < @ H HK<@Qv4P0@ B@pWoL  2/p8. $ ( `L P(Kġ(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D P`@p41 Q-*Ȩ@P p8P@P L0@p0L`p`3/HP K ""H G0t($ $0 0~,|U`mV$o)<$MO- M" Rp p`@ pP PAE AQ:QP R P  N+b j a 1 0+Q0?G Q:2TSSS:PZ3@2 `$ BR5 q ÒTP KRTS3C @P qÐ  KO40 00 0AyU:z$&O-M, 0 4 8 < @ H HK@Q4@C@pW9K h 2/p`@`. $` (` *K P(K$(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/@PPHp@T@L P@pp `PAE A  R:Qj<8 m k  i+b j a C 0+Q0?G Q:2dS+cS:`j3@2 `$ BR6 q ÒT@PHP J0Hp0TPpP3/HP KRdS3C @P qÐ  *"H /4D@ @0 0 APwUhV$$)6$B000SA/sUK-pM$ ( , 0 4 8 @ @KQS|A@PU6J d 2/P`0`: ` ` 'J p K (X ,`` 0 ````` `$``7/@p` P 1/   P 1/08P@@0P& GQ!OP PpP 00S0 O 803/P@P K KO  0 0`oU0:$)O-M<, `0 p4 8 < @ H HK @Q4@RP@TH  2/@P@P0 $P (P H `(K┒(X ,PP 0 PPPPP P$PP6/$`$P P 1/(( P 1/@PH@@T` `L P8R@<P2` Q:@QUP& FQ!P ` 00S0< 0L0< O 803/8@@P @PHP H0Hp0T`p`3/HP K ;"H QK4~($ $0 0$mUh^V$)%-ڏ$|)O-Mp  R P@`  RA K KOiUO-|M, 0 4 8 < @ H HK@Qn4@A@`VG  2/`@8@. $@ (@ G p(K∑(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD `P@p] RA pI8P@P RG0@p0L`p`3/HP  K :"H 勒4帒iUdZV$#)X000S Q/H-  0 0௏ gU)v$)O-tMd`\XTPHHQ\A@`VF  2/`0. P$P (P F p(K`(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<$   R PP8P F08p0D`p`3/HP K /H($ $0 0&dfUWV<$)'R$t)O-$M@Q `p PS<  0 S l S00R<   0 SyP0P< 0  0RmP P{<   0 SbP0Pm< 0  0RoP P_<   0 SlP0PQ< 0  R(0 0C<Pu Pq P_ WgS P*<   y P<   m P<   b P<   o P;   l P;   ( Q Q#P9<  0 S ) Q;;PP@P `K) Q  KO  0 0\dU"b$)O-Mtplhd`XX0@Qs4@F@pW9E  2/p@@@. 4@ 8@ *E `8K⼅(X,@@0 @@@@@ @$@@6/P4`4@ P 1/88 P 1/@PPHp@T`L  P8p@0 P,8K : (40 S(  2/p@8@. $@ (@ > P(K⠒(X ,@@ 0 @@@@@ @$@@5/P$$@ P 1/(( P 1/8HP@p8LD  @pPJ QF*S  W  R[R 0 ``P7P2@ P d8P@P m>0@p0LPpP3/HP K /H 妉i4Ӊ 0 0݆ 0 0Նtp p0 0͆`\ \0 0ņLH H0 0ཆFU`7Vԛ$E)y.i$ 9h$'h$)h$)Yi$)O-M  R, p`@  B4Q0> @P PA @P K KOBUO-|M, 0 4 8 < @ H HKD4Q,B@pW=  2/pP8P. $P (P = `(KС(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D p`@P  B4 R 0>   @ P`A Q@`8P@P V=0@p0L`p`3/HP  K I"4H 又v4弈tAU2VH$F)O-M`X! RN @p P/ ⌝P* L1/P,P fPA PPP  >@P@P K KO ?UO-Mlhd`\XPPQB@`V<  2/`p8p. tppp< Pp`(X ,pp 0 ppppp p$pp5/Pt@tpP 1/ppP 1/8HP@`8L@D  P @ pp4 aP/ pP* L1/`,P PA0 P0`P  >4@`@ P )8P@P 2<0@p0LPpP3/PP K J"PkRᘇp=U.VH$l)000SP/:UO-tMd`\XTPHHQUA@`V; l 2/`P0P< $P (P ; p(K((X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<PPQ @;08< 03/PPHP K ~"H4:U+V $Q),000SPLPP/8UO-|M, 0 4 8 < @ H HK@Q^4@A@`Vk;  2/`P8P/ $P (P \; p(KH(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@DPLPPXP @P !;0@p0L`p`3/HP K n"H Z4准8U)V$W)O- MP4P  p@`EP B$Q 8  Q  Q pP}  > 00t 00 000Cs0Sj:Rd   0P PeUPi Pe*  P1P PP P|P l;T`T^T!TT 0S,T0 `'@P(6@P0 0 OX0PU j P7P@P@@P `7K  KO84 40 0‚06UϹ)5U)0U)[)u) X$oO-M8<, 0 4 8 < @ H HKx@Q4@`TP@T : H 2/@P@P. $P (P 9 p(Kd(X`,PP0 PPPPP P$PP7/$p$P P 1/(( P 1/@PH@@TpL` `P<@p8@P B$Q 8  Q  QEPu  > 00l 00 000Cs0Sb:R\   0P Po08Py Pu* P PP0P STx]! 00SS @'@P(68 080 (O0 R F<@0@@P@ P @PHP 90Hp0T`p`3/HPK z"H Q4~D@ @0 02U$Vd$)+) 1U)l+U))ٴ)%S$O-Mp" R, p P P` @  P⷗Pk @8UoP @eP.T@oP@QTL1/P P YBB@Y(@PY4  >+ /O 0 0 R Q ,Q )RT\!R1/ P8  @P@P @CK KO-U3U)'U)O-M4`tplhd`XX@Q0@SP@T%8  2/@@1 P|x8 px3(X0,  $7/|`|P 1/xxP 1/@PH@@T``L PZ8p4<x⾖Pk x?YoP `ix@5V`oPQ `TL1/@ P YBB`Y/ `@Y4  >+ /O 0 0 R Q ?TQ D0Q8T[,(Q1/ P8  8@@<@P I@PHP R70Hp0T`p`3/XPK {"X兂0岂+UxVԀ$)O)/U­)#U܀)O-M@  R% p`P   B4 R  @ PA @K KO&UO-|M4, 0 4 8 < @ H HK,@Qz0@B@pW6  2/p8. $ ( 6 `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  p`@P4  B4 R ! @ P`A o@`8P@P t60@p0L`p`3/HP K /H 孁{0ځ%UPV{$)O-M`pPP @ A\PH#  8RP* B$P%V H PD P>P  P8 /O 000S3 00S .P @P K;(K2 0($K /O 0`00S P @PO `0 0R P P`` >  0 @ `O%'0 ' S A& R &Q >@`@`{P P `L1/P P P 1/P``  `Po KO|#Up$U ,UP#U)O-M@|xtplh``0@Q;<@UP@TC5  2/@PHP0 pPP35 `⸔(X ,PP 0 PPPPP P$PP6/`PP 1/P 1/XHP@H\`T  P p` D@P@@#  R@P@- B$P(@ R ` P\\ hPVP @ PP /O 000SK 00SG4p8`#@D@P `HPPP 40Pp0\`p`3/`PK@z:(K2 0^~($ /Op 0`00S P 8`4p@@O 0 0R P P >  0 @  O%'0 ' S A& R &Q >@@ @P ⟔P @L1/P ᓔP P 1/@ PD D@ @Y R"`U<ixUVLu$)`U'U@U|)L-@H  R 8P PP S9@ LUX"UO-tMd`\XTPHHQ`A@`V3  2/`0. P$P (P 3 p(KP(X ,PP 0 PPPPP P$PP7/p$@$P P 1/((P P 1/0@p8`0D@<P PP 80Q@P8P {308p0D`p`3/HP K "H~~U V`o$) UL-000S 0 BDQ@@0P L  0 0{U<$&'O-|M, P0 4 8 < @ H HK,@Qr4@B@pW3  2/p8. $ ( 2 `(Kⴑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D 0ppp3 `BD`V.@`pp@0pW pp@@P0@P 20@p0L`p`3/HP K Q"H }4~($ $0 0 {U,Vxl$N)::$'O-Mp  R+ @Ph`Tlt 6sP@P E K KOHU@O-|M, 0 4 8 < @ H HK<@Q~0@$B@pW22  2/p`8`. $` (` #2 P(Kȑ(X ,`` 0 ````` `$``5/@$$` P 1/(( P 1/8H@@p8LD Pp4"h@k rkP`4@ P 8P@P 10@p0LPpP3/HP K S"H }w0.}4UVi$)(O- M@! R; p` 0IcPe Ur~~PP ~ 0PP P@P WK KO]]UO-|M, 0 4 8 < @ H HK@Q4@tB@`V@1 \ 2/`@8@. $@ (@ 11 p(K(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/8Hp@`8LD Pp`@ 0b@ee( q~~&@P2 ~ 0@P* @@ P 8P@P 00@p0L`p`3/HPK %.H {g!]]4(|lUV@e$^)hO-M@  R `pP B$Q1 @@P m K KO  0 0y U1$*'O-|M4, 0 4 8 < @ H HK4@Qt0@B@pWO0  2/p8. $ ( @0 `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `P@p41 B$Q, @@P p8P@P /0@p0L`p`3/HP K A"H ({0U{($ $0 0_x U'TO-Md`\XTPHHxQdB@`V?+ L 2/`P0P. lPhP0+ ph(X ,PP 0 PPPPP P$PP7/pl@lPP 1/hhP 1/0@p8`0D@<@h`dTឱT PDh` ֢@$K$@ Oh` ʢhhp$@K yb 2/PiarP崱0P8P *08p0D`p`3/HP K F"Huh+vdT U$Y'i$˄O-M@Dp|xtplh``\@Q8@DSP@T' , 2/@`H`0 P4` 8` ' p8K䒟(X ,`` 0 ````` `$``7/4p4` P 1/88 P 1/HXP@H\ppT P ` PA *|PA (KP 0P\T(w((P P y@ P 8P@P !0@p0L`p`3/HP K  -H 1mo4^mK 0 0gj(K@ 0@\P(w((@ P iy0  /vTU)$9])TD\)[)TV#3$000SH-  TK-pM$ ( , 0 4 8 @ @KQXA@PU! x 2/P`0`. ` ` ! p K4(X ,`` 0 ````` `$``7/@p` P 1/   P 1/0@@8P0Dp<P0P8P L!08p0D`p`3/@@P K w"@ llTU&$Z)000S@/TO-tMd`\XTPHHQUA@`V ! l 2/`P0P< $P (P  p(K((X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/0@p8`0D@<@PQ @ 08< 03/@PHP K N"Hl0lTUp$$X)L-@P  R #8 0T L:@ LTpTK#O-tMPd`\XTPHHQbA@`Vw  2/`@0@. $@ (@ h  p(K\(X ,@@ 0 @@@@@ @$@@7/p$$@ P 1/(( P 1/0@p8`0D<|# 0Tᦊ90@PP8P ( 08p0D`p`3/HP K "HakkDT0U"$U)TJ#X000SL-@@#49,TD9\TT)TO-|M`, 0 4 8 < @ H HK@Qd4@A@pW  2/p8. $ (  P(K`(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D `"D9TC<98P@P 0@p0LPpP3/HP K "H j4jTU$}S)R)0TH- 000S"00 Sxt t0 0g00 SLH H0 0gP0PL0HTy.#q'A#/)O-|M`, 0 4 8 < @ H HK @Qw4@B@pW  2/p8. $ (  P(K⨡(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD   R 0 0[g 00 S 0 0MgP0 QL0P@@P 0@p0L`p`3/HP K j"H i~4jTU$P)q&#o'9#')D000S P/LP/hTO-|M, P0 4 8 < @ H HK@Qa4@A@pW\  2/p8. $ ( L `(KP(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  LPP@@P 0@p0L`p`3/HP K /H Hi4uiTеU$M)000S B4Q  @pPL25/1P/ H-  0 0\fTu*#j'O-|M`, 0 4 8 < @ H HK@Qk4@A@pW  2/p8. $ (  P(K☡(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD2  B4 R-  AqQ*LPP@@P T0@p0L`p`3/HP K m"H h4h($ $0 0eTU$AK)#:h'L-@  R QQ *LL R-@ L  0 0eܾT]#y O-|M, P0 4 8 < @ H HK@Qi4@A@pW  2/p8. $ (  `(K┑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D0 Q,Q(*L R8@@P@P 0@p0L`p`3/HP K /H g4g,( (0 0dTU$JH)(#Gw L-@  R QQ *LL Rj@ L  0 0dĻT~E~#v O-|M, P0 4 8 < @ H HK@Qi4@A@pW  2/p8. $ (  `(K┑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D0 Q,Q(*L R8@@P@P 0@p0L`p`3/HP K M"H g4/g,( (0 09dTU$`E)}{#/t x000S B4QP>PL/ H-  0 0d븸TI{#na'O-|M`, 0 4 8 < @ H HK@Qd4@A@pW`  2/p8. $ ( P P(K|(X , 0  $5/@$P$ P 1/(( P 1/8H@@p8LPD+  B4 R&P >QL P@@P 0@p0L`p`3/HP K u"H If4vf($ $0 0cTU $B)y#*_'0000S LPP/صTTO-tMd`\XTPHHQaA@`V  2/`P0PB $P (P  p(K\(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8`0@p0L<D@QPPQ x08p0D`p`3/hLPPPHP K v"Hee`TlU8 $ܸT%@)'000S Q H- PL L0 0ZP/PQL/HTV#='O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0KZP PRLP@@P 0@p0L`p`3/HP K &.H \4]tTUH# )1T#@;'000S Q H- PL L0 0ZP/PQL/XTSʵ#$:'O-|M, P0 4 8 < @ H HK@Qn4@A@pWF  2/p8. $ ( 6 `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0YP PRLP@@P 0@p0L`p`3/HP K a"H %\4R\ꄏTUX#D)AQ#P8'000S Q H- PL L0 0HYP/PQL/hT%Pڲ#47'O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ ( z `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0XP PRLP@@P 00@p0L`p`3/HP K ^"H i[4[ꔌT~Uh#~)QN#`5'000S Q H- PL L0 0XP/PQL/xT5M#D4'O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0XP PRLP@@P t0@p0L`p`3/HP K b"H Z4Z꤉T{Ux#)aK#p2'000S Q H- PL L0 0WP/PQL/ꈇTEJ#T1'O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0[WP PRLP@@P 0@p0L`p`3/HP K _"H Y4Z괆TxU#)qH&#/'000S Q H- PL L0 0WP/PQL/ꘄTUG #d.'O-|M, P0 4 8 < @ H HK@Qn4@A@pWV  2/p8. $ ( F `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0VP PRLP@@P 0@p0L`p`3/HP K /H 5Y4bYăTvU#*)E6#,'000S Q H- PL L0 0XVP/PQL/ꨁTeD#t+'O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0UP PRLP@@P @ 0@p0L`p`3/HP K ]"H yX4XԀT$sU#e)BF#)'000S Q H- PL L0 0UP/PQL/~TuA*#('O-|M, P0 4 8 < @ H HK@Qn4@A@pW  2/p8. $ (  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0'UP PRLP@@P 0@p0L`p`3/HP K c"H W4W}T8pU# )?V#&'000S Q H- PL L0 0TP/PQL/{T>:#%'O-|M, P0 4 8 < @ H HK@Qn4@A@pW"  2/p8. $ (   `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0kTP PRLP@@P 0@p0L`p`3/HP K ["H W4.WzTLmU#)<f##'000S Q H- PL L0 0$TP/PQL/xT;J#"'O-|M, P0 4 8 < @ H HK@Qn4@A@pWf  2/p8. $ ( V  `(Kℑ(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D   R 0 0SP PRLP@@P 0@p0L`p`3/HP K Z"H EV4rVxT`jU#)9v# ',000SP PL/uTO-|M, 0 4 8 < @ H HK@Q^4@A@`V  2/`P8P/ $P (P  p(KH(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@DP PLXP @P y 0@p0L`p`3/HP K "H U4UxuTgUL#),000SP PL/sTO-|M, 0 4 8 < @ H HK@Q^4@A@`V3  2/`P8P/ $P (P $  p(KH(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@DP PLXP @P 0@p0L`p`3/HP K "H "U4OU8sTeU #),000SP PL/hqTO-|M, 0 4 8 < @ H HK@Q^4@A@`V  2/`P8P/ $P (P  p(KH(X ,PP 0 PPPPP P$PP7/p$@$P P 1/(( P 1/8Hp@`8L@DP PLXP @P Y 0@p0L`p`3/HP K "H T4TpT`cU#(O-M@! RZ  0 p`R ?$PM  PP  r V᜙P\` 2/P + 0@pU  0]P@p@p0 P@ P  ʙK KO  0 0]QoTy0.#(O-M, 0 4 8 < @ H HK$@Q4@ C@pW  2/pPHP. $P (P  `(KⰒ(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/HX`PpH\@T P ` 0pn ?$Pi  @8D0P ᱙ `Wژ@ 0\@ 2/`P h 0pU   0V\P@p@p<8@@ @DP  HPPP 0Pp0\`p`3/HP K "H ISE4vS($ $0 0PmT_U#(-#v(O-$MPQb  p `[ #$PV[  #4 RV @ `     00j\( 0   ^`P'V@` P@P mK KO<8 80 0O($ $0 0OiT+#(*#(O-M, P0 4 8 < @ H HKh@Q0@LC@pWB 4 2/pPPP. $P (P 3 `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/P``XpPd@\ `Ppu #$Ppu  #4 Rp @y#B&O-|M, 0 4 8 < @ H HKt@Q|4@\B@pW- D 2/p`8`. $` (`  P(K(X ,`` 0 ````` `$``5/P$@$` P 1/(( P 1/8HP@p8L@D  P`@p: =P5:( 2(K @@P p弒8P@P 0@p0L`p`3/HP K }"H Ly4+MHD D0 05J40 00 0-J STEU#(v#(nv#r&O-M@100SA @ 005 |bby ypyPy5T y@ 0E o  @PAQ :KKO  0 0ItPT=t#&O-M|`xtplh``@Q0@B@pW  2/pPHP0 PP  `L(X,PP0 PPPPP P$PP6/`@PP 1/P 1/X`H `PpH\@T @<@8QaD`cNy 4xpyPByQ5T D`3y@ 0E4 o8<@P@@P 向HPPP 0Pp0\`p`3/`P K "`K]0K($ $0 0 INThAU#j()q#&O-MPQ(  `p@! B$Qp=P! =->@PPLP@P 0K KO<8 80 0H($ $0 0HKT p#2& p#B(O-|M, 0 4 8 < @ H HKt@Q|4@\B@pW D 2/pP8P. $P (P  `(K(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D `P@p: B$Q5<P: <=@PPL@P p啐8P@P 0@p0L`p`3/HP  K s"H Jy4KHD D0 0H40 00 0HJT=UX#5(= m#b& m#r(O-M@  R& `pP Qlh h0 0G壿@@P - K KOGTu *m#&O-|M4, 0 4 8 < @ H HK0@Q{0@B@pW  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `P@p4 Q 0 0VG@@P p姏8P@P 0@p0L`p`3/HP K B"H Iz0JFTX9U#(]k#l&L-@p  R  =$Q ;w@ L  0 0GlDTi#(O-|M`, 0 4 8 < @ H HK@Qc4@A@pWO  2/p8. $ ( @ P(K|(X , 0  $5/P$@$ P 1/(( P 1/8HP@p8L@D* =$Q% ;w8@@P@P 0@p0L`p`3/HP K O"H 9I4fI($ $0 0pFCT<6U|#(zg#( /0H--M@PP@PJ tP PP@@PJ tP  @`8w+SP K0))0H-@R@Q 0@8PP P0)S(  /M-MqPp[P ``'FV P 1/`@P  R * R@`P `P`K1UMQM-M@PxqQ`p@P[P X TEX P 1/P  R * RppaP 똠 QKiQ 0@HDPP ?PK5)l0UttLQ(H-)M [P "]P @ P]@PPTD@0P 0@0 0JK( (-&/O-MP@Qb p` #$P@ 0S V 0RH %] 0 P' P# !1 0D   &5 "Z * " 0 3/@P@ P K KO\X X0 0D0, ,0 0DA`C\X X0 06C$ 0 0.CAD6TrZ#zNZ#(Z#\(O-M, `0 4 8 < @ H HKPQ0PC@pWu  2/pPHP. $P (P f @(K⤒(X ,PP 0 PPPPP P$PP4/@$$P P 1/(( P 1/HX@PpH\T p4``0W :$QR<08`QS@  RU D@  EU AZ JPJo 0`6/`8<@P 4HPPP 0Pp0\PpP3/HP K "H (E[0UE| |0 0_Blh h0 0WB40 00 0OB A@4T&U#(AV#J6W#(aW#(L-000S 0 :DP  @L  0 0B0TeV#}(O-|M, P0 4 8 < @ H HK @Qj4@A@pWg  2/p8. $ ( W `(K┑(X , 0  $6/`$@$ P 1/(( P 1/8H`@p8L@D 0ppp+ `:D`V& `@`@P0@P 0@p0L`p`3/HP K "H JD4wD($ $0 0A0T"U܅#*( S#{(H000S  0L P/-TO-|M, 0 4 8 < @ H HK@Qf4@A@pW  2/pP8P0 $P (P  `(Kh1(X0,PP PPPPP P$PP6/`$@$P P 1/(( P 1/8H`@p8L@D  L0  P0X@ @P f0@p0L`p`3/HP K "H C4CL-TU #( (O-M  R `@p :$QzP@ P K KO  0 0@H+TJP#*x(O-|M4, 0 4 8 < @ H HK4@Qt0@B@pW  2/p8. $ (  `(KQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP  `P@p41 :$Q,@P p劈8P@P 0@p0L`p`3/HP K /H B0B($ $0 0@8*TU #(M#u(O-MP# R, @,p\# Z P `  R0`Q  0D 0;R2@a  "2 0?S: p P s` B`V`p p@ PlP,t4,d  CU  L  K C   :  1  (      h  O `p@P yK KO 0C'Tܺ(@L#|#O-M, 0 4 8 < @ H HK@Q)<@D@pW]  2/pPPP. $P (P N `(K|(X,PP0 PPPPP P$PP6/`$@$P P 1/(( P 1/P``XpPd@\ P@  @ D #  P p` Pp@DQHL0D 0P0@a  #3 0t>Z:p8@ P /@ B4@TW@4po@ PbL,l,Dd( K  L( K  WD( K  <( K 4( K  _ ,( K  v$`  ( ( K 8  ( ( K( K /( K p8@D@@P @?PPXP H0X`F0dP`P3/HP K "H @<@0C#TUy#(ص(LG#tw#p000S0H- 0@P:TPQL@0TO-|M, 0 4 8 < @ H HK@Qj4@A@pW  2/p8. $ (  `(KtQ(XP,0  $6/`$@$ P 1/(( P 1/8H`@p8L@DP,  0p```P``:T@P`TL`@P p@P 0@p0L`p`3/HP K "H ?4? TUs#(O-dMPQ  p`@6  Q= 0 P@P 0K Q  P  0X 0屄0  0`V;  00a4PD@0P*  P V }  0 P 0z0  P @  P0,0(  0 0%0S0  R 0 $00#D+N; 2;^> @;c+ !1 0:<: q@  0nI\    ! 0+Q 0#D1@a  lh h0 0 <i  0#n#9=#ݫ(O-Mxxx<QJ`E@pWG H 2/p@`@. T@ X@ 8 `XK(X,@@0 @@@@@ @$@@6/PT`T@ P 1/XX P 1/`pPhp`t`l  P pD@7@ `Q+= 0ㇴ `D@P @у`PhP 0hp0tPpP3/xPK Q 8`` P  D T 4@4 ` 008`pW"  XK0TPD@XKAP   8``P  P`  P 4 4 `8`P @  0\0X@ 0`0!0S0``V` 00#DT0P`R;+ 2;V6@;c+ <8!81 0:: q@  09\  LH  (8 0+Q4 0#D1@a   0 0:g@ 40`86/ "<xI=<v=&0CT< U\m#(18#h#}28#!( /A @@ j a/ 0 Rr/ 0 Rr/0+C1 A/A @` j  a/ q/ s /O- MPp  pII pIPPڠpP  1 P-0 R *  0SB*RM* XP `QV*` @T*WP`p0 D`V:@PqU*R@ PT  R2 55P  Pp`  JPDVIDQR* 0 R* 0 R* R : Po 0PR:Yg@0 Pb0 R*p@0zR: W:PS [NVpPF`<YQ9*l P*R * R *R 5 5R*  R pp 0pS *`q AS:0 QK YQ*R%* )I 0!@K P *R* R* IP*'R*R 5 5YQ*IKR* YQ*IP*P*KpL-P@^*U*PU*P@PU*P@ @^*@@`T*@P@T *@PP@T*@PP@T*@PP`V*`P0`V *`0 0S *0 p p p pM-M0ASp1hhX 0QS05 A50 `R*V7*0`: 0pQS*WX*p AyA0 mr0 `R*VN*0`QV*V `05`5W^*p0A R5 5VV?*V `05`5:V0 *0`  pWB P p`r0V* @0t   @DV:  P`U# 0S# 00QS05 A5V0 *0`  0QS*0 A Q *  Q 55@o᠂KO- MPp  pII pIPPڠpP  1 P-0 R  0SBRM XP `QV` @T*WP`p0 D`V@PqUR@ PT  R ĵǵP  Qp`  KPDVIDQR 0 R 0 R R Po 0PRYg@0 Pb0 Rp@0zR W:PS [NVpPF`<YQ9l PQ   Q Q ȵȵQ   R pp 0pS `q AS0 QK YQR% )I 0!@K P Q R IP'QQ ȵȵYQIKQ  YQIPPKpL-P@^UPUP@PUP@ @^@`~@PUPP@T @PP@T@PP@T@PP`V`P0`V `0 0S 0 p p p pM-M0ASp1\\X 0QS0 A0` RS4`07pQ 0SWUp AvA0 lo0` RSK`0NSS 0`0W[p0A NS?S 0`0:S` `0  pWB P p`r0V @0t  @DV  P`U# 0S# 00QS0 AS` `0  0QS0 A Q   Q @o᠂KO- MPp  pII pIP=Qڠ/ p'Q !P@0-0 R *  0SB*RM* XP `QV*` @T*WP`p0 D`V:@PqU*R@ PT  R2 11P  Pp`  JPDVIDQR* 0 R* 0 R* R : Po 0PR:Yg@0 Pb0 R*p@0zR: W:PS TNVpPF`<YQ9*l P*Q *  Q *Q 11Q *  Q pp0p S * `r  BS:0 RK YQ*R%* )I 0!@K P *Q* R* IP*'Q*Q 11YQ*IKQ * YQ*IP*P*KpL-P@^*U*PU*P@PU*P@ @^*@P`U*PP@T *@PP@T*@PP@T*@PP`V*`P0`V *`0 0S *0 p p p pM-M0A0Sp1\\X 0QS01 A10` R*S4*`07pQ 0S*WU*p AvA0 lo0` R*SK*`0NS*S 0`101W[*p0A NS?*S 0`101:S` *`0  pWB P p`r0V* @0t  @DV:  P`U# 0S# 00QS01 A1S` *`0  0QS*0 A Q *  Q 11@o᠂KO- MPp  pII pIP=Qڠ/ p'Q !P@0-0 R  0SBRM XP `QV` @T*WP`p0 D`V@PqUR@ PT  R ıDZP  Qp`  KPDVIDQR 0 R 0 R R Po 0PRYg@0 Pb0 Rp@0zR W:PS TNVpPF`<YQ9l PQ  Q Q ȱȱQ   Q pp0p S  `r  BS0 RK YQR% )I 0!@K P Q R IP'QQ ȱȱYQIKQ  YQIPPKpL-P@^UPUP@PUP@ @^@`~@PUPP@T @PP@T@PP@T@PP`V`P0`V `0 0S 0 p p p pM-M0A0Sp1\\X 0QS0 A0` RS4`07pQ 0SWUp AvA0 ko0` RSK`0NSS 0`0W[p0A NS?S 0`0:S` `0  pWB P p`r0V @0t  @DV  P`U# 0S# 00QS0 AS` `0  0QS0 A Q  Q @o᠂KO- MPp  pII pIAP{Qڠ/0 p/Q !P0'0 R  0SBRM XP `V` @T*WP`p0 D`V@P1UR@ PT  R P  Jp`  DPDVIDQR 0 R 0 R R Pl 0RYd0 P_0 Rp@0:R W:PP SKVpPC P,Q6iPR  R R  R   Q pp0S  `r   BS 0 RK QR& *I 0!>KPR R  QKRR  Q KR Q P PKpL-P@^UPUP@PUP@ @^@P`UPP@T @PP@T@PP@T@PP`V`P0`V `0 0S 0 p p p pM-M0AC1Sp1DDTx 0S0 0DRV40`6 pSWTp rA 0 nk0DRVK0`MVV` `0WXp0R QV<V` `07V `0  pW> P p`V @0t   @DV P`U 0S 0 0S0 V `0  0S0  Q Q@o᠂KO-M`p  pJJ  pJPAP{Qڠ/0 p/Q !`0 2/P   2/@ 2/T\ Pl  Us  2/P @ T * W p@I 2/P: 2/P T T T  2/P Y  p  PdY{JDQrfP  2/P   2/Ps m@ 2/P TA T> @ 2/P@Z3T,pD 2/P @8 2/PW:P YpP8`K  KO 2/P = 2/@ 2/T P%  K 0J`'KJ 0AKP   2/PK 2/P  KK-@`P 2/p 2/W P p pP  2/pP   2/pP p 2/P  2/P  2/P pppO-M `pP@ 2/P(  2/P  2/P  2/P @@@@KO-M 2/p@ 2/T P P  2/P     2/P P `@ 2/P pPu   2/PEP p` PpKO- MPAp`@P-D 2/P  2/@ 2/T( PB F 04| 2/@ 2/Y P3 9 0FpbP`  2/PV RP  2/P  2/P> 9   2/P P, ` 2/P @ `v   2/`FP @Y @P@o᠂KO-M`p  pJJ  @ pJPQڠ/0!p9/Q !`0 P 0 Q@1+S4/P ( 0 Q@1+S4/P 1+S@0 Q4/U[ P P @Y 0 Q1+S,P, @P @P dK KO. 0 0pl l0 0\X X0 0HD D0 0xS %&E]"D&%]ڿ".(]"E&\"-/(O-MtPplhd`XX@Q4@C@pW h 2/p@@@. |@x@ `x$(X ,@@ 0 @@@@@ @$@@6/`||@P 1/xxP 1/@P`Hp@TL `<-x8c221/QK)M@E 0@epQ o 0@i+PL Q  0|@ ho 0R+PE 8@@<@P d@PHP 0Hp0T`p`3/XP K "XT@4 0 0|x x0 0hd d0 0{TP P0 0s\S$T0"h-(Y%0&1Y"@&Yƻ"*(X"A&X"+(O-Ml! RS  p ` @- 121/Q@0KoL @Pt P cP#   NP@P |cK  P cPP,( (0 0 KOhSWʹ"*(O-Mtplhd`XXQB@`VQ  2/`P@P. |PxPB pxt(X ,PP 0 PPPPP P$PP7/p|@|PP 1/xxP 1/@PpH`@T@L Pp<-x80j11/QJK`@t P+ JcP6  ᝶`8<@P b@PHP 0Hp0TPpP3/XP"K4 PIb4@PXT T0 0@ *. XM "ꬓS|T")(T" '(O-M@" R p-u001/QI;K,P,Q b `PaPPP` @P >bK P: P bP BP Ra P` [m0O @` V 0  `?`      @RC$` (P,`0P48m P@P PPP KOꘐSɋ%O-MPtplhd`XX4@Q8@D@`V  2/`@@@. |@x@ px(X ,@@ 0 @@@@@ @$@@7/p||@P 1/xxP 1/@PpH`@TL p@-xz//1/Q<@I?J,@,Q a `P`@`P @p  P :`oO P$ a4.p<@@@P p-a@PHP 60Hp0TPpP3/XPXKB` R` `4 oOp4 Fl0 @p W 0  `?`px    @R/4``xl|<@P@xP ``` /X"8O갍ST"M#(u%O-M@# R P- ./1/Q*HiI,`,Q ` pP``P`p  @ P l`K P:`oO P ` B` R_ ` oOp  k0 @p W 0  p?p $    @Ro,p(04p8<@)lP$@ppP- ` :P¿P&*`  V(S @ /O(`k`i KO"`\ \0 0wLH H0 0o84 40 0gTSy&H"U(Hv"L0&HV"<(O-M8tplhd`XX,@Q"4@E@pW  2/pP@P. |PxP `x⸤(X ,PP 0 PPPPP P$PP6/@|`|PP 1/xxP 1/@P@Hp@T`L   ` P@-x X--1/Q<@FH,@,Q _  pP ^@Pp@<@ P _@PHP )0H`F0TP`P3/XPK P:pO P f_0 Bp R^ p0 O@8  'j0 @p W 0  @?@x    @R0@@xj|P@@xo@P- p :P~dP.8pO0@  T. @ (fpYpW "X4hlh h0 0XT T0 0 D@ @0 0(SwT"(,t&IC"()Cޥ"*& C"(O-M@# R P`-;,,1/Q P`EF,`,Q ^ pP]`Pp@P @P ^K P:P_O P Y^` BP`V]`Pp_O i0 @p W 0  p?p $    @R,p(0`4p8`<@iP$@`d`P  :PZP0`  VP"u KO-| |0 0lh h0 0XT T0 0 D@ @0 0So&m?""(M?"&&-?"( ?¡"'&O-M<tplhd`XX8@Q8@ E@pWG  2/p`@`. |`x`8 PxĤ(X ,`` 0 ````` `$``5/@||`P 1/xxP 1/@P@Hp@TL   ` pP-x *b+1/QwDE,@,Q @]4pp  PP f\P4p@P@@@P@ P \@PHP 0Hp0T`p`3/XPK P:4PP _OP \0 BP R#\ P0 _O@4  g0 @P U 0  @?@x  4P  @R0@@x^h|P@@x@P  :P}P%<)@  T'<P+4P_ "Xw8p 0 0xt t0 0d` `0 0PL L0 0{S`nT\"(|j&9r"1 (9R"(!&}92" (]9""&O-Mp# R  @pP``PpJ  R      +b j a + 0P /G P*24R3Rp :0pz340C `< 0c4 CR7 pR4Rp 34 B BR p Ò p᲍  {))1/QCADP P [` B@p`VZ`pPP7 @< P, @)) 0'ݍ P@RP @P [K KOlh h0 040 00 0AuS5Z"xSxS xS5z" (O-MD|xtphh@Q 0@TP@T  2/@PPP. PP pT(X,PP0 PPPPP P$PP7/p`PP 1/P 1/P`pX@Pd`\  @8DPp`EQLH    +b j a ' 0P /G" P*24R3R:0pz340C< 0c4 CR7R4R 34 B BR p ÒM4  F(( 1/ QA Cp P Z` BP`VY`DPppOQ PP (( 04 '嫌 P@R@<< 8@@P YPPXP 0Xp0d`p`3/hP K "h.0[|x x0 0eD@ @0 0] ArSdT"(y0."sSsSXsS0N"(H-)M@  R.P-PP '(1/QA[B @P ֬P Q,  K KHmSqSqS8qSO-MPd`\XTPHHPQ$P`P@P rXK KO($ $0 0`iSmSmSlmS+ʍ"'O-M, 0 4 8 < @ H HK@Q4@B@pWP  2/pP@P. $P (P A `(K`(X ,PP 0 PPPPP P$PP6/`$@$P P 1/(( P 1/@P`Hp@T@L@c =P^Pp0fLP PKtbSaS#M-xMP@`u 8@P, (PᬀP Q pKᣏ 0أ=!LP PK`aS`S#O-Mh@`@ @`P?(v(`KXpY`p pV  0@ 4/`V9K'L-08 @0@0 @@  2Q Q(/Q(2/H-   W (/] _ H- 3HjH-   D   iL-@ + UR     /TR/iH-@P`p)P P  P T T T(20 K0 HȖ(0(0  eSˁ iL-@  SR     /SR/ipL-@`PדP p  pL莖  #//pL-@PP   lPP```pL&&o&0H-@HPlhptx|@0H-M@Q$ Q(([PQ[De(80@p`@`0 N?  Q+ )pt p A,QX@`X`&pp&[@@@Q[K 0 0 }"'(/H-M@hP`P Np 0h(  n@hK KHm0H-!XP0@3Q: :J @@Q005508D@ @0 0  0 0 J|"!'j|"t't//0H-PhQ@ @h0O-M`Ta `p1 0 PP* EpPQ: :JU%`@U%AFPCAPA: :@QPP 5 U UM0Q  V   Q    PX`p  -WᠯHLPTKL-@t (RQ  $0X\`dO-dM`p(PH"@V  fV  `V  ZV $ TV 0 NV < H pa @ TL U㫪 UA㪪J@DP @ @7<`p@G PA* *@A QPP UPUMP Q0 W00Q =@嫪 :#SBP(W2:x80,8 2/*8N,8 2/H8,8 2/8?,8 2/98k,8 2/e@08@ R=PA  (  0000 X d H8   L  $ 0HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHddddddddddddddddddddddddddddddddP0`@`, A 03 q0W:# OQ ,pW:G0B0SqW: `0@P@, A 03 q 80P     /O P <QOpW:0 <   pW:@P0`@ 40t40   01C@R4!U0 P <QOp@4WO:P 0  U0 P <QOpW1:wP - R0 U P <QOpW:Y$ K$ 0N$  ?RY04 5 00@@0P`P4@8@ 0QCH 4P1C @44 pW:0 4 0 , `@PP0 0 !A4@A0P3$(4, 3@!W: ,`0@P@ 0( 0!BP5 CB!!R!?W:0 ,`P@00$( P1E ,P5C$!r$q$Wc: ,`0@P@8+0  A3 QR (P  0@P@@  A2 q 1W(:n K 0c   ?RW:Z0  N<P P <QOpW:?0 <  ZpW:2  R<Q P <QOpW: ,`0@P@(0  A3 QR (Pe h ,`0@P@  A2 Q   0 RqW:f0 <  BpW:& ,`0@P@  A2 qWq: ,`0@P@$$(P !B50!Q 2/P(  8@  Y @P@ (WB:@`4P@ 540  R 01CP5!<P P <QOp4W:Y ?R<P2L ,`0@P@  A20 Oo$ 1  $ 0 S0  P <QOpW: ,0@P@@  A2 Oo 00R0  P <QOpW:0 ,`P@00$( P1E ,P5C$!ቿ$W{: ,`0@P@#0  A3 QR (P # ,0@P@@  A2WC:O0oa {@ ,`0P 40  04 0 0C >( qQ C 0$(,> ,0@P@@  A2  8Z,8 2/TO 0? S <PP <QO 8 ,8 2/W:(KW:W#K QK  lh ,0 뜾TP P0 0 @< <0 0T@S:SBSUWV qsV -U"' U"'K-(M@p PPPM PF@PA dd P KP00  1S  $PPP PPQ PP?PH`` ws P `( P KP-,P .J,P #JA` PLIP Q*|P(pWQ `p` P] 00SX  0"TPW Pk PTPi*PPaP] PY P\PW( Pd!R $ PP  P@pPp  00S  0R"R O  R O 8 2/(KL^:P* wP A` PHP tx Q*ttp  K#P P   ()@p P(P   DU!f  1/ (00  d; 0pS:`GPA#~p; 0pS6*r H F  D+b j a + 0P /GT P*24R3RM:0pz340C1 0c4 CR7 lθ;R4R834 B BR p ÒC A84 40 0A,7S&RU M"e%H- M0 P Р 0 0L"'(//H- M0 40R 00 Р, Р8/L/X/d/p/|//(Q/(o/-S0H-@PT U0 Q/H- M 08 РH/@ 80@0P/H-  0 0TU K"ɽ'K-8@0p`P@`0t@0 0x1Cp7p !Q ?RW  P P  O) 8 2/K-8 @@P ` @ H(p @ ADdP hpG l5DGq$W/$q@a p   /oB ppR`T`  P V  `   /O) 8 2/JM-8 @@ `Pp  @@@H!Fdx@ |`6"pDGq"W1"!q @  ?@`  P@R P P   0O) 8 2/O-M8 @@H0@@ `@` pP0P `@` tA@8@`,6 6 ! Q KH-  0 08F"'O- M p8@ P0`P$@ (A 2 @ ቖ(P ` Y  03/ V`P t  0PP  `P``KTQt UQ @ T⏗#S<#SSL-@DQ (P 0IBQ&SL-@(P , %P |P pP t dP h XP \ LP P ,P 0 QL-@P tP x <P @ 0P 4~ $P (y P t  P o P j H- HZ%/t( H D (LR/H-  0 0@B"'O-M@8@ @ R3  r0r S B  #P3`8@ p00$1H (@ F90 mP  8@ @ RK 0 0A"'/H-p8@ Q0`@P` 4@ 8!B 03" "1Q" Q6(=0S H[Q \Q[@ @0)$Q QQ $!$O-dM`PpV  W*( $o($<  8 o@0 "4 ) ,@, @0<8}78,8 2/8(,8 2/"8V,8 2/PGBP(WP:GBP( !QW?:GBP(?W2:8,8 2/z8,8 2/8,8 2/8,8 2/8,8 2/@08@ RKPA (D8 DDDDx | l$h $$$$$$$@($$$$$$$$$$$$$$h  $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$, D$ \@l $$$$$$$8hHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHddddddddddddddddddddddddddddddddP0`@`, A 03 q0W:1 OQ J,pW:"G0B0SqW:`0@P@, A 03 q 40P!    /O P <QOpW:P 0  U0 P <QOpWp:@P0`@ 40V40!  01C@R4!U0 P <QOp@8W=:$ K$ 0m$QT0 <   QpW%:yP !R0 U P <QOpW:[  BW:N ?RZ08$ > 00`@@0PP4@ 8@ 0QCH 4P1C @48 pW:0` 4 0, @PP0 0 !AA0P3$4`( @8,3!W: 0@P@@  A2 q { ?R<P0 ,`P@00$( P1E ,P5C$!׵$q$W\: ,0@P@@  A2WB: ,0 OW9: ,`0@P@$$(P !B50!Q 2/P(  8@  ፵ @P@a (W :^ ,`0@P@  A2 QH   0 RqW:? K 0   ?RW:+@`4P@ 40! R 01CP5!<P P <QOzp8W: !R<Q P <QOhpW:t ,`0@P@  A2 qWw:@ ,`0P 40  0 40 0C >( qQ C 0$(,>0  y<P P <QOpW/: ,`0@P@  A20 Oo$ 1  $ 1!S0  P <QOpW:G0 <  VpW:: ,`0@P@ 0( 0!BP5 CB!!R>!W:O0o  ,`0@P@$0  A3 QR (P@ C ,0@P@@  A2 Oo!01R0  P <QO^pWe:f0 <  pWX: ,`0@P@#0  A3 QR (P 0 ,`P@00$( P1E ,P5C$!ᙳ$W:s ,`0@P@<"0  A3 QR (P  ,0@P@@  A2 W:78L,8 2/FO 0? S <PP <QO 8 ,8 2/W:(KW:WK QK`\  zPL L0 0r84 40 0i S S< S' '"['^'"R'K-(M@p P%P$PM PF@PA dd,0!P ,,JKKP00  1S  $PPP P$PQ PP?PH`` g P `(uP KP-,P >,P >A` P=P Q*|,P(pWQ `p` P] 00SX  0TPW $Pk PTPi*PPaP] PY P\PW( Pd!R $ PP  P@pPp  00S  0R O  R O 8 2/(KL:P* wP A` P<P tx Q*ttp K#P P   (@p P(P   U!@[  1/ (00  d; 0pS:`GP~#~p; 0pS6*r H F  D+b j a + 0P /GT P*24R3RM:0pz340C1 0c4 CR7 l8;R4R834 B BR p ÒC A84 40 0>AS4Q" %H- M0 P Р 0 0}2"'(/$/H- M0 40R 00 Р,! Р8/L/X/d/p/|/%/(Q/(o/DR0H-(A,QT U0 Q/H- M 04 РH/@ 80@0P/H-  0 0"q'K-8@0p`P@`0t@0 0x1Cp7p !Q ?RW  P P  O) 8 2/K-8 @@P ` @ H(p @ ADdP hpG l5DGq$W/$q@a p   /oB!pqR`T`  P V  `   /O) 8 2/贯M-8 @@ `Pp  @@@H!Fdx@ |`6"pDGq"W1"!q @  ?@`  P@R P P   0O) 8 2/eO-M8 @@H0@@ `@` pP0P `@` tA@8@`,6 6 ! Q KO- M p8@ P0`P$@ (A 2 @ (P ` Y  03/ V`P t  0PP  `P``KTQt HJQ @ TRRRL-@DQ (P =BQRpL-@@P`` d ` PpQ/L-@ dL/pL-P`@ V pcV pLZ0H-   @P :0 P P9@0NK-P `@FP'*A AA!.rPP P@*pF AV  zY@ KrN@p;K-P `@FP'*A AA!.rPP P@*pF AV  GY@ K?N@pK-P `@FP'*A AA!.rPP P@*SpF AV  Y@ K N@pխK-P `@FP'*A AA!.rPP P@* pF AV  Y@ KM@pꢭK-NMpP` @ӑ@ 0 )Q@CKQO- M`P딀PB `04P `00,<0` p(@7/  5F(T#P%P  PP 9K  `P 8PK0 3  0 0R'}2"s'O-DM<@ P8 @ P($K@8 @ P~ L(`Pp ,(  ~(`(P , 0pQ *9 p RT8  8@@  0$00`@ 0 0p4 8  01Cp@7(Q8  pᾬ$( 0@  @P 2 5/(,(, 0@(P  f8@L8 @ P$KKH- =HLO-M  @TE:IPN U*@T;倠A〠HO@0` 3pI 0 @`T 0TAHO0` p0I p@0T#1&00T :apE@wpWp P%2p3P T*PuD KO-M  @TE:IPN U*@T;?ښ 倠?C〠HښM@0` 3pI 0 @`T 0T?ښ ?CHښM0` p0I p@0T#1&00T :ApE@wpWp P%2p3P T*PuD KO-M@pQ00SQ`@`Aศf Qb@AQPHpG0Q B@$Q( Op0 s s1 3  @( A5Qڷ  OrQ$P_|:$0 AI p` 0 B`V P :G 1 A \$0 AI p` 0 B`V P :G 1 A \#f@@LXʙ AI p`0`0 C$ V P :G1 A  ` $噉 0A㙉I P,0(00090AP0ZS :Z(00 ,  4X@ Z0,( P! UP PE"%Q:Q 0 Z PE  0% (00e0P, >#AQ!P! 0K4 K, P0 ( 4U pP;E0@SP ;1(I |<P,`t 8 .5iF 1+ E'H @ HKD (9f @pPPP p(0K90 , (`0p0" S0% 0C&+eR:0PZP /`Z`0C `@ ``(001f, ` p@Wgp pO @SG@S O@=^<N\NQ07\pnVP2<_njQ2QV p`<00(,!n`1 !NPp N  NR `np:R p9^qq<ppp#R9P` R :$ΫO0`eP" P Ϋ0$O VE * V= %& V"  R 7/pF .PCvS`0  p WP000D *0;@0 S P*\ 51; QK($  8L@R   O-M-8MM@y @(KЍ@`+QpG _ ZV Q 4@͋O㉯ + (   0STdXh8P G ! q%H H 0Q  G"  0 S Rr S A L-_   WP1/ 2/@@Pȣ  2/@@P  2/x@@P ` 2/P@@P 8 2/SPQSxS;%LSBr' Sq$S~$H- P1/ $2/PH/dSXSL-,A@Pu  2/@@Pb  2/@@PO  2/|l@@P< T 2/<P(,P*p(@T Q 848O=$`@pA qPPm  pXp  ᘤV(p$,  PNN 1/ 1/ ?7 Qj ` @(Q K`"V`K! K!V 0"& K K!`K 0`"9 0K0K"K!K pK`V`@T;~WZ P #GP  COW `  pK`V`'spK K `' K'spKK pK`V C P 60$@(` F 0v;PT (@lK  PQ N/@P ;!0PP^ h$@T  :ãO- M`E  P{ v pKǐW@`PPP` U@Pv: Vr  @<P P JWM`p%@ T&:u T7 703$ T Q0 37 T Q0 3  P703@P  T7 03$  P703@ p` W@@H Jp`Y @`PPP`UvV@0  @;P)  JY"`%P@ P @T703$7  Q0 3 `PV @KO-Mn`  P< 7IJ 08P@P:JpT\P``   0 PP`V 0` AX ` ?J 0HUP@JpZK@P` `   0U PP`V @  0`AXt `@- 0PA :P IWZ `P   0`@TD 0PqA@ :Pc I WU@ P@`  0P Z?  =;PB I P`  0iP@T    ;P ^I @`P 0@ Z @ Y>`K 0 0:~#!'"#O-MY +P`Pg  `p`@PT0 0S^ 0P00%S ^ 0P0PfS 00%S 0P0fS00C S: 10BS0'0B2fUs 0PE U P1 ER'PEu RU 0`pP@ 2@P`@^ P P P b`V TPPoPl Vi %?@%!P* @/? @eaPU:`u^  %R!  Zl@^  0fS dPV V 0 0fSX00C S: p10GS0'0G2fRNsL 0 B R 1pBWE' BrB ‚\?|P:@@p|P|`aP*`` V "|Q #%C %01QD*0^E B; YKKK-P `@v'@ @P@!pA#T tڄpp @V  dY@ K@UK-P `@v'@ @P@!pA#T tڄpp @V  3Y@ KX@$O-M@PP*%pp$ @p AQ qPPPx j`%PpX  YP P vp7U03%W*pp# GpZ APQ qPPPJ 9`PXp  ϟYPP Fp 7 R03W*K`Gq(@q pQQp PpV សX p KO?KP`P`pPꄟ0 @ R #a B"R#;:*A5Q9 //H-@`C pP G\Q  QR  QH-`CV%P@`uV) 0CS%P0fS 0C Q: 01pCW'C2fRq 0 B R 10BS' Br QPfU`0E ^: P1pEW'E2fV~ 0PF U P1`EV'PEu ^`fVP0@F T: `@1pFW'@F2fUt 0PE U P1`EV'PEu BTH-@`C pPG ΞQ  R  QH-PCU%PPuU( 0CS%P0fS 0C Q: 01pCW'C2fRq 0 B R 10BS' Br QPfU@0E ^: P1`EV'E2fT~ 0@D T @1PDU'@Dt ^@fTP0@D T: `@1pFW'@F2fUt 0PE U P1`EV'PEu BTpL-(MP@  `  @@@@@`P @ A` KpPQO-MP@Q   5   R pKPh 䡟`P p P P*  `Q IVP R;  PoBP< D`|P#  P 0 Xp 0 $  pL AH0 0 0@ 0#V'YV'T'%R%RH-(M@`S `F```& P ``p` `F p>P ` Ap V  PKܣQxMQH-M`!@DK P0X|Q 00P$pp( 8p4p0p,p<``P@`HPpTpXp\`phpdplpptpxp|ppp8pD<04pQ pppp  K,,, Kppp z [ U/pp p/`PpPt`PdPPT40 8:DK KC'ܢQTKQL-@ P* 0 0'(, 8Q X\Q @* *JAQ :L L0 (0xQ, ,0 0#Q'qEQ'E, B>R- 0s0 @0t@0t0q0q  q q p @0  0@@F/ u 0 0@o0'00*00.00@p @p@p@p@Sl@G$ $0 0iA@?p%|%u%?='>'L-0Mt@0 00 $ 00000   ( <K Q\7QH-Mp@`PP9P KW 1(DDDDD((dDDDDDDDD(DDDD((DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD444t  GR0!x    $TD    $<.. GRR(;P"0  3<''='pL-pM`P@  !0 @KpO-OMpPT/t0 @` PH`D`L `@\@X@T@P@@dPhl@  AZPHpK k 2/`j` D` H (@` <  HK4@0@,@(@8(@ ,@ 0@ 4@ 8@ JP D@@8 A(0[ $H  (T ( XZ`$P  @,0P0 `   xpr0S`  0  oPW`xa ,`0 A0S:pHPK kb 2/`Ri[$P *_`DHpKP$Y   H D 尤K y VpHPK j& 2/`Wi嘠  YpHPK j 2/`9i PHKP$HpK☠$@Kh`XP @ ! H D KHKH @~`@  VI Y 1ȶV$P`O@p 4|l  x  DDDDDDDD DDDD  , DDD  l x , < D$ H P0  \ @ h L< X T 8d $ 0 pH< H t T   ` T   `` 0   lxlx< ( H T ,p |4 D P ` l  d p 8| x   (       ,  8 , D 8 T ` D P \ h t tO@lO@dO@\pTO@LO@DO@L@;L@8L@5L@2L@/L@,L@)L@&L@#L@ L@L@L@RL@L@:&'L@ L@ L@L@QL@L@ M@M@M@%'L@L@HK@L@pRL@L@L@L@L@L@-QL@L@J@J@J@J@ K@lK@K@K@K@K@K@tJ@J@J@J@J@$'J@J@J@J@YJ@J@J@I@8J@e 2/` c  D <  PHP @ @@@ @@1`0[HP  (y PXP1:X \@,@Q0P @ `gt:oKI '!'s!'s!'''x' ' '[!';%'&'%''R '!'m!'"'$''S ' ' ' '!'!',"'p"'"'"'$'%'9%'''''''Q'u$'''''''''';''W'M'?'';''~'''N''''l'X''$'0'l''' 's'&'7'''' ''''Y'Z''g'g''''''{''',''U''v'v'''''''''''5 ''A '']'b'''''''''i'q'U '] '''!''' '8'#'"'"'T'S'r"'' !'n'$!'''q#'%'c'!'c#'!'!'!' '#'#'!'!'!'#'#'!'$$'0$'-"'N$'K"'n$'j"'t"'$'$'$'$'$'' ' ''q' 'EB`4kQI'a''''o?nR0H-(Ml@  P 0  0 P @P yK0QO-MP P`P p@o@ T@D   @Dᠭ V" Q P  P V*P@>PR @@@@@@@@@@@@@@@@@@@@@@@@PP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F0P  6Q ppJ'pp 0 0p 00V$ppPW*P p `ZaPK E%K%+E%L-@( yL$-P QL-l@hPlXP\HPL8P<, YL-PbQ Q /L-l@pPt`PdPPT@PD, 5L,aQ@ Q /O-$M@P@P`hhh<<0dP  0 PKP Pv @@?Py    R9 p|@: 0Q RR pn9 0C PL pfP RE pcPt P# 0PSl ) ~h)h9 0xPP PS ppqPPw RP p)ʤ8 0 "Ap QC p8 0T"P* P5 pPP P  P PPDDD,DDDDD,DD,,DDDDDD,,,DDDDDDDDDDDDDDDD,,DDDDDDDDDDDDDDDDDDDDDDD,,,DDDDDDDDDDDDDDDDDDDDDDD,L,DDDDDDDDDDDD,,,,,,  ,,DD,,,,DD,,,,DD,,DDDDDDDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,DDDPR  P  @>P0L$4 0QL$H4 0J<$<4 0D"P3 0 3 0 #3 P0!p p#p3 0d#`3 0I#3 0h3 0p pP `HSP `YP P p 0 `"0 ` `P42 0m PP Rl 0S ! P$2 0/!"2 0}P{!|1 0lP \1 0 P Q P]!1 0v/!0 0nK !1 0q1p0 q1p0 V 0 0OP-< <0 0 '_>%}'=%G>%2>%;%o=%6%8%S=%9%alJ;%'m'aRmn}'l%': '{>%';=%C%[<%!;%=%;%n'S<%dB%;%/=%V=%l;% 'l 'm'l '}l'M-Mp@p` PP q  !1 p0p0 0P  0P! R `p p `l0 `0H0 0`n` `K&8%&&#G8%0#O-Mp`BP@YWy4q pY pp V$   U 0@@Y0 S `00 Y S   UEKO-MRM @p@Q*PD @tn@`Hp?*T@T<@=DP Q *I A0` `PQP& E EQ *@0@I`SA`` R ELJXP pH @P  KA  `0@`V@p0W 0H0C0`s`AWG0p `W P@@WG`H KdO-M` HL 0 PKAp0 0pP0KH DpK4pK$pKL pP(p pW Wp$(0$(  (0$@ 00 W0 P Q*lx h| | xp@t` lP W3? 0 P x P Lh  |  P$8 ,8 H Pl PDPP /0 : 8 8? 0 |P `LPP*`$Q R 0S / Y $P\ / ? 0N y`@P LPP* (P$ P  \@ @-   (  (\H L,0 @S*@A< <`L`K R `qH  R Pq*L /\ \`H` L`K R `qKD P 4  4 \K` `X T R |p@A?Q  p#020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202D#L#T#\#l#X\`P P0uP*Ph/h? 0 Rz PqL PK  0X\H L,0 @S*pP@t`L`K Rd `qH P PBX\PP `0vP Pl/l? 0l l$d d`H` L`K R< `qD T TPj  \K` `X T R |p@A?Q  |&222222222222222222222222222222222222222222222222222222222@&H&P&X&x&\ P `L` R `qH D D \K` `X T R |p@A?Q  ......................................................... \K` `X T P |p@@?P \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.X\.\.\.\.\.\.\.\.\.\.\.`hpD`P`  R pr`P` \ 0@ H h h$  $H H$Q R 0tS /  `LPP^*P `L` R `q H %/? 0{`P` pQ `qP P `LPPW*h s`L` R `qH P Pg TGP  `L`K R `qH X XEP $ Q RB  7[ , ,"0  0`@P LPP*`= ` `  . L L E% RN t qH RRP$P, P) P w  X/X? 0L/L? 0tP 0@P! *AÁr!rAPAPp/ T a !0`S pACA3V@pG p@lPHLP L RR&&/%tP 0@P *AÁr!rAPAPp T a !0`S pACA3V@pG p@H M&$QP PP0 y`&$QptP lPP0TRtP 0@P *AÁr!rAPAPp T; a !0`S pACA3V@pG p@HLP lPA /? 0/ ? H` 0'/P?  LP 09/ ? D` 0f/? 0/P?  LP 0l/ h? H` 0sT/ P? D` 0 | 0 PPP L `LPP *`R&R& 0@PP*AQr!rAPAPpj T a !0`S pACA3V@pG p@HLl/ r\/ jl@P:X\ppQ pګ @JDr!Tᤂp3 8~  ` 2ppt  P $VPF F 0FB\lPTPP$Ft  0@P*AÑb!rAPAP` TtQ Pp0t p!S `ACA@3W@`F p@HLPP lPxt  0@P*AÁR!rAPAPP{ T>at p0p!S `ACAQ3W@`Fp@HLP lPHC}O[&+%o%%%&%%O&%&%%k%V%K%]%t  0@PU*AÁb!rAPAP`7 TQt Pp0p!S `ACA@3W@`F p@HLPP H'#%{%AN&%% Ns&%%M&{%%?| 0`b`HP` $PP' @@V"*L X\`PT 0q ROP # P $VPFt ,p`0B!QA /  0<L&Lv&?| 0`!`HP` $ R   BBV*L aVx x|P0 AUvE Ux/  0T.> 0>0. GlPr?0/  >`Kw0  2\`[PLVP`P*`P0 0@P}*AÁr!rAPAPp TQt P`0`!S pACA@3V@pG p@HLPP lP$Q05$F%A&\KxP`AUx505UqPE  0PKhPL pG PEP0HL P0KH DK4K$KBPKL P` K  b`lP M:%d&%\KxP`AUx505UqPE  0PKwhPL pG PEP0HL P0KH DK4K$KBPKL S P\` K0@ <&=&\KhK  0PET`V xP AU E U !H&"%xAUx505UqPE  0PKhPL pG PEPlPP>H0L P0KH BPKD0K40K$0KL P` K c  `@lPp@!L&%&%f&%~&tP 0@P?*AÁr!rAPAPp$ T a !0`S pACA3V@pG p@HLP lP/%/ ^&}E*&xP|0AUx505UqPE  0`Kh`\ pG PEPL pppmpNp %x  X\0U0 @\ SlPQ TPQT@lP  &? %&C&%\KxP`AUx505UqPE  0PK8hPL pG PEP0HL P0KH DK4K$KBPKL  P` K  `@p@lPDx|0AUx505UqPE  0PKhPL pG PEP mlPK&&xP|0AUx505UqPE  0`Kh`\ pG PEP\PHL0A,!QtAK Q05$ElPt `P `lP^\PZP qP`P p,Pl<  0`P @ 8<` K0 @/`PX : \:J AB"P1*t@"0pQ pp301 ``R0u P^ ppX` `pp|+  0`T P  ,+  0@BlPQe\t$PQXP * A*Ja@"p1  \0p `W` @0pp`p` WPp P p:` K0 `)@9  0`@ \PHL 0A,`b!Q tAj ppQ055 $ElPtQ p@:(0 vv&`PP`pQ05Lp\\ `pp /0P PQ *PBN&r&&y<&&&t0AP*B2!rAPAP0 Tt0p ~ t Q0tp0pS ! PB C B 3W@PE p@ !pp H LP` V:\lPTPP$At&&4' 07 0?`T& P6 06|p<\KP ,6` K0 ,P `Q X %5 0%5 0 \[P $X0Q <@AAS*aT` VT`V xP AUE}U.p% l5 0|pX\KP H5` K0 P `Q X %5 0$4 0 \[P $X0Q <@AAS*aT` VT`V xP AUE1U0`$ \4 0|pH\KP 84` K0 P `Q X #3 0#3 0 {\[P%$X0QW <@AAST*T # 3 0f`G#3 0# 3 0Y"" 2 0P|p\KP 2` K0 FP `Q X t"t2 0l"l2 0 -\[P$X0Q <@AAS*aT` V A!  >T`V xP AUEU4" 02 0t>$" 2 0" 2 0!1 0C! 0 lPp@ pP= oQ:Q P Kl!l1 0 K,&@!@1 0 0 0 0 w,.&\ R+,&+&H&(&R((i&')&&&*&,Ry*`+ѿ&e*&)ξ&RI)0*&5)a&%&$&_$&&0&&$Z&($=,5$($-'\$&$ '&&(&&E&&r&5&&M-M@P`P P"2 0MP P"2 0=P; P 0*P}  `LPpPA:H 0@P~*AÁR!rAPAPPg T!apH0LpWV `AGA7SP"`FG 0 0 P;  `LPpP*p`LLKH 0@P5*AÁR!rAPAPP! T!apH0LpW `AGA7SP"`FHLP KPP,(  vlRu$&R5$&EG4K-Ph`@P P  p pW W) $P(P  PPU U0pE p0P 0 0^$ $0R   PW M-@H` 0B!QAQ0L5P% P LP P  LLpPLP Q   LL^PpU:MUO-Mp@H LP\ @,0S *0U`L` vpWWK$QP``PPQ0  QIUPP00  K蘠 UuQ P)Wl\WTv H 0  PK&&&Q&\QH&K-M@h@ 00CP!UEUU0l5UapE P( 0kh`F pGPY,P HP pB, 1RBR0L5$EKK-M`H P@pR  pG0,aSR ` K$ TR  @ @  C0 p G @ K蠶&M-M@$P q`h 0 0P8pP`LP*`pLL7 0@ 0KH 0@P-*AÁR!rAPAPP T!q`H0LpW `AGA7SP"`FHLP KP1tm&LR$R0H- M@$P qP 0l 0  0K0 0@ 0K0u&RRO- M0SU HpL0A!P @Q*@LL4H0AP9*QB!rAPAP T`Y AH0L`V !PF BPEP6S@P@ B  !0H LPpW:HKKsM-M@ AP \ttttttttttttttttttttttttt tttttttttttttttttttttttt tttttttttttttttttttttttttt tttttttttttttttttttttttttttttttttt,DKM  & KMl  KM KMLeP Ph` 0B!VFV+ KMKM!1 0ZWV0l5Vq`F  0AhpG `FPP:  `LPpP*p`LL-H 0@P-*AÁR!rAPAPP T#!apH0LpW `AGA7SP"`FHLP KPsr&O-M`۽PM PF>PHhP8P8 x`H`H hP8P8hP8P8hP8P8hP8P8hP8P8hP8P8hP8P8P04" 02 0~P0 P0P0  j `h  0B!VFVV0l5VApF`  0\h @D pGPY= pPP`L`P*`pLL-H 0@P-*AÑR!rAPAPP T;@!q`H0LpW PGaPE`F@7SP0`F 00AH@LP KPq0&O-MX\P $@QT@@` Q*\0\<A: :J㪊 A᪂@Q;BT%U!@@@PQQ+ d€ X\0 Z 0J0L X  `5B5B @ X\` $A$@A0AK)qH-P@ @P**a rB!rAPAPp  !!0(U EA`A5Sp`F ppM-M@Hp P0 0CabU U*0p C0 A`K\0$0SS0 0 E0DU: KҦ&M-MQ- H0Lp@pGqa10Q  p!Pw u`V V!0@S:L@RD @ V0 5 0A7(  @ KLPXPޥ&O-MR `p ARLPLP* IA! !rAPAPq  @pW0@0 `p V @ B1q0C࣡B04V 0 pGq0a S  A!P@P S@ap@K L ¡W 0J 0R# 1@ @ S*00 S0:R @ 'pYPa P    KoO-M@P AU- @Y5*Abq@Y `@aV' aqo S pCapG`FqP3Rp`FqpKPUK`oM-M@P `Rj 8V- FR:- FRe*Q  0 pLPP*PpLLEXFQ *QT!T1 059FQ?QH 0@P;*AÁb!rAPAP` T!qPH0LpW `AGA7SP"`F HLP K`4 00 0  $o$&mo!5&M-M@P `Rq 8V!- FR:- FRl*Q  0p~  0Px`LPP*P`LLEXFQ *QT!T1 0e59FQ?QH 0@P<*AQr!rAPAPp TQ a燁 H0L`V pAFA6S pG HLPKp4 00 0"  nܟ&%'&M-M`@ P P M 0 P?  0P`LPP*P`LL.H 0@P8*AQr!rAPAPp T a燁 H0L`V pAFA6S pG HLP Kp$  0 0'n K!K- Mp@`ppPpp圂園 P pWP  0PP 1P1P`1P 1Pp1P 1pPU01 pPU1pPU1p R1pQ1pQ1pQ1pQ1p Q 1p!P:P!P1 0DD 0Pp5  00`LPP*p`LL-H 0@P.*AQr!rAPAPp T! a燁 H0L`V pAFA6S pG HLPKppm&U&H- $BMQb DD||||||||||||D||||||||||||||||88|||||||||||||8|||||||||||||||@@|||||||||||||@ \< <0 0  sͬu&O-M-VMp 0P刐K PT 0 00K B |PK@JhPKTPK  #P`(@P$PU! U,(0T((   (0 (p0p 0 0pU4Ppp8W 0    0   pp p0p ppp8p40 8Pp  Q*@K@Kp  pX d  开 V$ w\  |  \ HPPPPPPPP PPPPL | ,PPP ,,   8D h8D P8PD<PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPhPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP" E/0 # TT? 0 TXP *:[#[@0  0`开 ?$Q R 0S / $P /? 0t@P (P%*:[#[@0  0`开 [P P  H@KPtRRRRRRRRRRRRRRRRRRRRRRRRRRRh?|?RRRRRRRRRRRRRRRRRRRRRRRRh?|?RRRRRRRRRRRRRRRRRRRRRRRRRRh?|?RRRRRRRRRRRRRRRSRRRRRRRRRRRRRRRRRRRSS`@ pP 0KK pP_ K 0PTXP*P:[#[@0  0` .\\< <D D: :J  @B!D0R @rXX R Pq PPK R Pq xxPP PK R Pq| 00mP Pgllj K P R @A?Q 0XbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXb00000 `d`P| PHuP*P} /? 0 Rq Pq K 0 P : T:Jd @B!D0R PP @$PPK RT Pq  `dPP `HvP P.> 0nPy<PPt8BS kP  K P R @A?Q 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffff88888 PM PP R Pq  PP PK R Pq| pp! K P R @A?Q L-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-- -(-H- P P `QO qfPP kd H@K{``$Q R6 0S . |P*:[#[@0  0`开  K P Pq @@?Pt]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],]]]]]]]]]]]- ---$- *@ @$dd'P P*:[#[@0  0`开  Q͌&P PP R Pq Ќ&d/d? 0$`` PQ `q 44PP Rv Pq tt &u&Ph PK TyP  pPPK RV Pq& +0QPR $ QF R* TPP- `E>P(P?<,<<,< ?$<<<$<<< ?<,<<,<?<,<<,<?<,<<,<?<,<<,<?<,<<,<?<,<<,<?<,<<,<P0HH-L L'@PQ P*:[#[@0  0`开 K||88 !hh  R  q RRP$P PɱP 8/? 0/? 0 : :J@z z@@@PAU%U%@AQ*PPp \`p P:[#[@0  0 0R P p2S p%pἀ @PP<PP8= : :J@z z@@@PYAU%U%@AQ*PPp \>`p P:[#[@0  0 0R P p2S p%pἀ @P P<PP+S8<QP PPHe0F<QPP嫊 㪊JO&& : :J@z z@@@PAU%U%@AQ*PPpG \`p P:[#[@0  0 0R P p2S p%pἀ @PP<PP{85vd/d? 0eX/PT? P 0Q8/4? P 0w /? |P 0o/? 0E/P? P 0`A/? P 0X/? |P 0P/? P 0G/? 0/? ` 074t/p? P 0//? 0/? P 0"(Q/? 0/P? P 0   RQP`d@HQPP8 40 0  8 EdPP<EP $ E`dAHPj  Q_ `/`? 0T/T? 0~& : :J@z z@@@PAU%U%@AQ*PPpc \`p P:[#[@0  0 0R P p2S p%pἀ @PPb<PP]8l U : :J㤠@z z@@@PqAU%U%@AQ*PPp \V`p P:[#[@0  0 0R P p2S p%pἀ@PP <PP8I`Pp夠僤0nQK 0PGTXP|*P:[#[@0  0`开 ,Qi|&xQ> 0PPK 0P "P`9.d(C0@S:*`cPT @1cDpQB* @*JHu$`Q p@ yP$ P3p@P <PP0㔠P`4 0P@@Dp    RPA`Ym 0 j0Q? 0P(PP , R  BU* K@0KP-<PP(P ! $? 0PP|`P @$pQ AU* 兢 儠K`P*p:[s[@0 p0 -/0 p(@? 0PPP 9.`(Cd@U\*P@T peD0qeQB* Hu@*J$`Q p@  PJ `Ptp@P `<VP 0`P 0Pd`DPP<PP  <F y}&x&0/ 0/C 0 ? 0PCPP , R  BU* K@0K딐[`TXP*`:[#[@0  0P / /? P 0mH? 0P P|P $ R$  BU*" 20KP K P/<PP* 8 !. > K0PK 0epP p0 t@S:pp. d.`> P 0 #L> K0`` P  R 0S /  $Pl p0R/? 0< @@@V:*K 0`Z PU PEa 0K0Kp `F PEPa?v& $)r&$+$Ǫ$$> 0PJP`P $ R2 T: X :J B!U)*`夠a` V[ PrUX PE @q 0K0Kp pG PEP@s&$q&,/0 cJk$$K$6$'$9$At&$?$ǩ$ܢ$> 0PPP ,`Q AU*儐KP*`:[#[@0  0P Ot&D. wꓩ$ע$0.0> 0@ t&S$z$> 0PP  P*:[#[@0  0`开 Hyq&e.q& : :J@z z@@@PAU%U%@AQ*PPpZ \߾`p P:[#[@0  0 0R P p2S p%pἀ @PPm<PPh 08 b.0 . n@Pf:``dQ p9CDbY!T`3`` `  ` 2`开`P`d@HQPP8 40 0  8 FYdPP<F)k& : :JZ Z@ @@PGAU%U%@AQ*PPP \,qp :[ P#[@0  0 0R P p2S p%Pp`@P[<PPV8W dM : :J㤠@z z@@@PAU%U%@AQ*PPp| \ҽPa #[:[@0  00pS  `3W  `! p@Pd<PP_Q VW$J$ : :J㤠@z z@@@PAU%U%@AQ*PPp& \yPa #[:[@0  00pS  `3W  `! p@P <PPP PpHED\ .p ;? 0PPP $ R)   BBU$* aVu P@Uq PEq 0K0Kp pG PEPZl&/ 0l&?0/ Ø$?0/嫊  ઊJK 0p[@TWXpP*p:[#[@0   0 DPl&$:f&$hk&՛$j&3$d&o$ Z Z@ @@P|AU%U%@AQ*PPP \a pp:[`#[@0  0 0R ` p2SP p&P`p@P*<PP%@PK80 @ 8 P$ 80K4  8 8[P @4P㼀 c&bj&$@KP0T 0K B @J|KhKTKK P K|p @P<PP4`8`0@pǻW 0    0    _h&$$g&&h&$㫊 @᪊JKyP0T 0K B@|KhKTKK d KH@嘠P <PP 4`0PlpU 0PP 8pPpڸ`8908 > 8A,P` 00P@ P: Q  ,P' @$ K8K 0B`V P@U PEq 0K,0Kp pG PEPe&Dd& @pP P0T B* *J0KA |0Kh0KT0K K` KbPi<PPd @ P 0 K8@0KL 40㢺P @D   RGAY 0 ᏺ : :J@z z@@@P AU%U%@AQ*PPp: \p`p P:[#[@0  0 0R P p2S p%pἀ @PP<PP  / }^s * *J@` pA@2 Q *([[0  0 E@z 㪊 zJ㪊@0A@P BU%U%@AQ*PP \@ p8[P[0P0P  0PS  p3U@ p"@꼀p@ `V p@`Q <QQp 0  pp[0/C 0p@o P)pp` `  %P `@d0UH @pS Q Pp @Q@; p @8 `d @HR PR R@ `&Y&\&K@P0T 0K B @J|KhKTKK B` K pP @PY<PPT0@4p  @D   RgAAT 0"X& ^ * *JA@p: P Q*P([[0  0 P[&\&\&a\&S\&@z zJ `᪚ 0媚@A@ P BU%U%@A pQ*PPp \@᣸ 01P8[`[0``0p  0pS  `3WP@ `"P@꼀0p@  Zw/? 0`p @F E @pP@<PP;p`tPP A JWQ * 0A PY pW p 0@ 8C1008@ 8B 4@ 开PD P<PP  <E 0Q <QQ p 0 0 唐P(PPpp UuPsP P q PP P/PL? 0P ? K0GP` 9>d8C` A!PL*@"0Pq3`01 ``Hy$0P,0  0 R (p@W /0 0 ppd(0@P PT0,P C: :JDB!`pB P P딐P`开P `/ P 0@P@ 0吠P@<PPTP` p 84`l ,0P"0U `   pp p0p ppp8p40 p @    8p`0۶P @D   R$AY  0Ƕ : :Jz z@ @@P AU%U%@AQ*PPp \᪶`p P:[#[@0  0 0R P p2S@ p%@p@PP<PP 80K8  [8 `p开.> 0pW @> P0P0pp4P& p Q *p#[:[@0  0 CZ ZJ㪊 㪊@0A@P/ BU%U%@AQ*PP \0 `1p3[@p:[0p0p  0pS  `3W! `"!꼀  Z:p D`0P`d@HQPPP<8,0 4 p0p 0 (`Q 7@ /`8 '08 F3  8 @040`p` 0p0/DP& 8  4QH PE8 AP0@ KSPP 뤐U PEq 0K 0Kp pG PEPX 开PpPPP*Ppp:[#[@0  0 C㼀p? : :J㪚 㪚@ @@ P4AU%U%@AQ*PPg \qpP#[ `@0:[ 0 0   0R ` p2SP@ p&P@ p` @PP<PPp* t*J8`@@DQ*@մ@ D@@`7/0 p` 2` pἀ@pᑡP pP Wڇ pG @a 0K 0Kp `F pGP `@P  0 P*0 :[#[@0  0 0G&P|P `P P P  `   `. P,pp@ 0t/C0 7P@P`开p U 0;@ P 0pW0080Gp 9  뼀Z U 0@@0X 0   0@  {$>C& 0@ @开840 0ͳ@8pp<D`dA9C@<@ pC&/?` 0ppPm Pp D& 5U 0@04p决Y 0    0   C&pp p0p ppppp8!8C@$B"p1  $0PS00C 吠AHqp` U"P PP pʼ>0 K@`.> 0 b@ `:&PDD 0@Q`<QQ        <EZ 4@ P 0PU008  Zq긐 0!P@D @   R AaV 0    Q    0 8B Xp 084p 0PPP p`P P8 P08  u p`V:p 뼀@P(깝+; 0"9&*: 0 KP : K0P Q l*l: 0d*d: 0y[P $0Q <@AAS*a` `@Vs PKUp PEq 0K0Kp pG PEPY)9 0@ KP 9 K07P Q D)D9 0<)<9 0[P$0Q <@AAS*a` h$V0&.0&`嫊 @V㪊Jt PUq PEq 0K30Kp pG PEPZT(P8 0@KP 08 K0P Q '7 0'7 0[P$0Q@ <@AAS=* '7 0 '7 0P PUP [P[@[P[1PP[1P}`[1P[1P[P|p[1P[1p@P[T{0[1[p@T1~P[p@T1z [pQ1y[pQ1pQ1pQ1pQ1p Q 1p!P :`p&p6 0HppK 0P~8K 0yTX@P*P:[#[@0  0`开 De$-& : :J`z z@@@P+AU%U%@AQ*PPpG \`p P:[#[@0  0 0R P p2S@ p%@p开P@P<PP 0@ K@ < K8 B`pp$4 0!$ 4 0S<#83 0(KP 3 K0P Q "2 0"2 0[P$0Q <@AAS*a` VDA<" oV`V6 PQU@3 PEq 0K0Kp pG PEP4"42 00",2 0A<"82 09!1 0C!1 P0@)@Yl!p0 `P:  Q:Q Pp!p1 0(KЍ@!@1 0 0 0 0 dN뭍"&QA("&-Y"&&&8zQl&q&AV!&QՋ-!& &Ɋ&Q]D&Iu&  &T$z'&V&&^$"&&W$ٍ[$1`T$]R$ R$E&&-& %&a$&%}&!&M&AQ D(4 .: 0+S8 0H-   s 0ϓK-(M@`ɘP LP<$84 0iᾘP P$4 0YP P P0Pp pXTP1*p[![0  0TP T] 0m P0eP pXTPZ*p[![0  0TP TP : :Jj @j@@PAU%U%@AQ*PP` \Pqp [p![0  0P T0S p `3R `'PPPRd<PPN 80C# 4>KP : :Jj @j@@PTAU%U%@AQ*PP`? \᮫Pqp [p![0  0P T0S p `3R `'PPPd<PP K0 8G 4UK`t`,(  PLvQl&uQ&A,CO-M@p$`Q Q  X X6 ,(0   0P  PPU U0KK0#E  p0P` 0 ` K0 P ( (0R    X Pp PpO- M@PPPW P T`XPR T TKT媚 p㪚@P" 0XQ T T0@ J@  PdUU@Z*PP \ᯪ*` `ચ (骚@P0TPU `5S `"P@P TXpW:K : :Jz z@ @@P+AU%U%@AQ*PPp \sLP! H`P0TpW `7SP `!P PTXKpKM-MPP`T$pA J@ @@ T P P P K0L C0 #KP 4 04K&K-P@ @B1* *JV3*0EpCGqW0* 㪚@ U:CTU@@PUတY+  payK S p3RP p&P@F    p9KO-M`P pT: :J@ @dB!D0R 0W  T ԠzPUUK<QPppPP0 `QWpp00  {K蔀Wwq PڋUhXUP H 0 pRK&&&#ZPe& #dZP&O- M@(`p'V pF `Q( 0mp PE pGPX4P PAd<PQ=p* t*JX AI 8p4  8pD4P*`@ D`@ Y 0p0SppY 0p0Spp8` RdPPDP d<PP4 <EKK-0M@$P! q   0 0pX TP*p[![0  0TP TB!1@ 0KP : :Jj @j@@PPAT%U%@AQPP`A \uPqp [p![0  0P T0S p `3R `'PPPd<PP p0h  ` 8 Ab 4$K`Iqq &gQgQ(fQH-8M@$P4 q` K0 P 0L 0GPd<PP0 (8G PdP: 4fK 0@ 0Kn5 &|eQdeQdQO-M`dQ 8Cq\Q@P0B7. @QPPP! lᯧp H aLI`@dP們HpU H`FHPEH ?IT`((G8C`d B ` P 00S  ` `v   p oO-MPP@PL P P0  {` f`Q  0 巶@DpW` P  0@SpGw  0?` 0 `e@D 0pW&@ R10!H,4$<D    `1!  pGW  00 K  0zO-M@QKdp<PQP TJ`PL0@BP PPW0 X0 C@PM* પ@ P$ CB!T%U%@QPP \ 0F p0 PpP Pp Wၠ P 5W . T  R 0FpA ` P 0WPPTXE LNU 0@ P0&&T T^/ Pᅠ  1@ @ S * @ 0 S @T T:R UUMQ0 1GYTQ  FA Q  K|FM-MX2 P z T0zJ@0CC10C0!0X  p Pw u`V V 0 @S:L@RD @ V0 5 0A7(  @D K JPJP%O-M00 P`80 0>PZ TZJd @B!D0@BQpp@GTG*00pC 0 0P Tp @Q @@@@P% R'0!H,4$<D    @0a ``V0W:K  ฉtO- M@PpDP*`ὤ @D`@ U  0PU0Z0G 0000P  0P 0Q P KO-M@ PR `8 U!EQ:EQ*P 0TX`P#*!0  0T TOX EP *P"2 0Be9 EPlPP : :Jz @z@@PcAT%U%@AQPPp1 \&p `!0  0P T0S ` p3R p&P@PPd<PP8`4pDP @0 p0@0D8 VK4 00 0`Y  ่BE^% pM`a%O-$M@p R 8 Z)JQ:JQ* P%  00P  0TXP#*P 0  0TP TPX JP * P"2 0{g9 JPn PP : :Jj @j@@PeAT%U%@AQPP`8 \_Pp p 0  0P T0S p `3R `'PPP d<PP8`4DQ p.@0Dp`@0   8 K4 00 0 O  yDe[x% m1]E%L-@( LO  /PQM- @``,` PVpmpp`0$( P `$(P,00458<QpL-@Q5. Q` 㐖@`$/8<8P8`UN <<P p뚖8A8T P 吖᎖P 剖$pL28P! /8P8U <<P Ku8a8V P kiP d$`84<Ph<8P8`U <p%%% %?# J%% pL-@`P` `````DH BA $(, 04`8`@`<`D`HL`P`T`X\```d`hl`p`t`x|```̠ C``p$H-@P  RA `᳠p @$B pA u@U* U : 0Ppp AuSAuS@u:  H-@,P0 R( $A `bp(, @A( ,(pA,0 U : 0,000,S"Q ,L-@K-M`@ #Q W pP{Ep@WppP  P ( 0@CP(*ACQbA!/rPP`  ! W `AGA!7S @K`>A  l M-@,P0 Q($B pᵟ`(, @&A( ,(`A,0 ,,0 R( $A `ᘟp(, @ A( ,(pA,0 U : 0,000,S"Q , ! "M-P,0@ R( $Apb`(, @@( ,(`A,0  @,,H-P,0 @Q($B `=p(, @@( ,(pA,0 ,@M-P,0 `Q($B p@(, @@( ,(@A,0 ,`,0 Q($B @`(, @n@( ,(`A,0 ,K-P,0 pQ($B @ٞ`(, @J@( ,(`A,0 ,p,0 Q($B @἞`(, @-@( ,(`A,0 ,,0 Q($B @៞`(, @@( ,(`A,0 ,K-`,0 $pQ($B @{P(, @?( ,(PA,0 ,KM-`,0 $PQ($B pU@(, @?( ,(@A,0 ,AM|K-p,0 $`Q($B @-P(, @?( ,(PA,0 ,B 0KM-@ P `RA ぀p @w? pA ??00S 0@U9 U: 0pp&)&R 0U0*0000\U *0pppp3\pU3:  H-@,0 PQ($B `ᡝp(, @?( ,(pA,0 ,C,0 R( $A `ოp(, @>( ,(pA,0 P,,M--M@,`0 Q($B p]P(, @>( ,(PA,0 ,DkH,0 R( $A P>`(, @>( ,(`A,0  ,, KM-M@( ,0PpCP pP,| 0@PO*AÁb!rAPAP`A !qP|0pW `AGA7SP"`F | ,0 R( $A P؜`(, @I>( ,(`A,0   ,,K`.>48 /O-MP( ,0pC `JR A pᣜ@ @> @A pV : 0000c"Q 圠I H렀K/( ,/H-@p PB Pb` @= `A W : 0000s"P O-MP@h( ,0 C  p RA だ +` @= `A W : 0000s"Q  PB`p @t= pA g pp(, `P> P PAPP @ R= PA  G=|P  GJp`0P``FPFaP<#`P##KK-@P Q  RA Pᖛ` @= `A ^g 3R 3P 0p0G PQB pd` @< `A U : 0000S"Q !g`  RA p8P @< PA V : 0000c"Q  p RA P` @< `A W : 0000s"Q ` PB  RAp @T< pA  J< 0    $ ( , 04 8 < @D H L PT X \ `d h l pt x | 00 0 */K-@㛚@`pp pppppDH BA $刚(, 04p8p@p  P@H,4$<D@@|@~@}@{@o@  Q$B `᳖p @$8 pA PU@ `@  R$PA ぀Ꮦp @8 pA T : C!VPU9 @P3H,4$<D@|~}{o  Q$`B ぐ Gp @7 pA PU@$0`0S0 AA0$@A 30!7*!0 (04 AU80UMPC* A*J Q  Q0B`p @h7 pA   ` P`A pԕ` @E7`B (P 04p8P CpEZ ZJB!Gqu$ R$PA `ᮕp @7 pA T : 0000C"Q ($@48 X~  p$  RA Px` @6 `A   5  QB PX` @6 `A   QB P;` @6 `A $  QB P` @6 `A  XA($Xl p(  R 0A ` @a6 0 A`  p  QB Pϔ` @@6 `A  p RA P᳔` @$6 `A Y :  塓!W  $ X 0@ @ 30 7* 0 (  DHQ  Qp0BPi` @5 `A p pPA PG` @5`B `(0D H0 CBA R$pA P'` @5 `A T : 0000C"Q I(DpH W9 $@0 P R0A $` @`5 0A$ `  X : 塃!Y8pP0 W0 00@ $@@ 30 7* 0 (dhQ   Q0BPន` @5 `A   p$ PA P|` @4`B ` RA Pb` @4 `A   0 R CPF` @4 `A  p   QB P)` @4 `A (d h0  CBA R$A P` @w4 `A T : 0000C"Q (d h0  CBA R$pA PՒ` @F4 `A p$TA : 0````C#R0    @0$@@   30 7* 0   Qp0BPᓒ` @4 `A p  pP APr` @3`B  ` RA PX` @3 `A   (@P pTp Q$@B P2` @3 `A p  Q$pB P` @3 `A @ ( @ R$pA P` @f3 `A T : 0000C"Q (` pHP- @ R$PA ぀Ñ` @43 A` T : 0000C"Q (`@ $@@ 30 7* 0 txQ  QB Pထ` @2 `A   ` P`A P`` @2`B (0t x0 C: :J! R$pA P?` @2 `A T : 0000C"Q ($@txQm pW$0H,4$<D@|~}{o  0 Q$@ B P` @]2  0`A   Q$@B P̐` @=2 0 `A CP$@(8 p QB Pᢐ` @2 `A #  RA Pᅐ` @1 `A X : 塃!W  QB PZ` @1 `A D  RA P=` @1 `A [  QB P` @1 `A 0 B8  QB P` @l1 `A C  RA Pޏ` @O1 `A   QB P῏` @01 `A A$@GPn p\l  QB Pᐏ` @1 `A A  QB Ps` @0 `A C  RA PV` @0 `A p9  QB P9` @0 `A D  RA P` @0 `A pp:  QB P` @n0 `A B  QB Pߎ` @P0 `A p  QB PŽ` @30 `A  $Q AA0A 30!7*!0 ($(P  QB Pᆎ` @/ `A  P A Ph` @/`B  `(0$ (0 C: :JB! R$pA PE` @/ `A T : 0000C"Q  H ($p($WV $P Q$B P` @/ `A (A J@A$  R$PA ぐ ` @Z/ `A T : C!X$ pW 0@ $@@ 30 7* 0 (P  QB Pᣍ` @/ `A  P A Pᅍ` @.`B  `(p 0P C: :JB!S$ R$pA Pa` @. `A HT : 0ppppC#R0    @0$@@   30 7* 0 (dhQL  QB P` @. `A   P A P` @n.`B  ` RA P` @T. `A   0 R CPnj` @8. `A     QB P᪌` @. `A A  RA Pፌ` @- `A   QB Pp` @- `A  (d h0  CBA R$pA PM` @- `A T : 0000C"Q  H (dph0W8 $$0(* *JA@$  RA P` @-$0 `A T : C!XpW 0@ $@@ 30 7* 0 (DHQ  QB Pɋ` @:- `A   P A P᫋` @-`B  `(0D H0 CBA R$pA Pዋ` @, `A T : 0000C"Q ( PH$pD@H`T V@@ @ 30 7* 0 (TXQu  QB P<` @, `A     P A P` @,`B  `(0T X0 C< " Z":$T  p`Q: R:Z  `P@P pW :` V *WP@T*00S^ @0X: Q:X ` pPU:`V:Q  p 0p`PU:pW*UO-0S\ 0@ X : RK 0pZ* REX `PpW:`V:Z p`PpPU:` V*UXP\:R Pp`V:PU:\ @`P p@PU:` V*U00K-P`@A@U+ 0FCP/*ACA!/rPP! &pa' S qPCEpGP3PR ``'pt' 00 )!!6 Q 4a !#/ Q  /TPH-dpP`@p'P @@T:@T @D,P0H-@'Pt RP'Po ~'Pl y'Pi t'Pf o'Pc j'P` e'P] `'PZ $['PW (V'PT ,Q'PQ 0L'PN 4G'PK 8B'PH <='PE l7'PA <1'P= ,+'P9 %'P5 'P1 'Q0(000000000 0 0 0 0 0000xP`PT%xO@%,%%%i%L-  @LP(/H-   i땒 PD/PD/ P(/H-   iv#u#= v#L-@x| BL`@pL-M@ Q P  5cx` 2' P  5W  2 KpO-DM`P@  5 =xp 2  " 2.@"@`  5  2`@ 0ẇ 0S 0ᛎKO-\M@  p  $8P`Ut  Pn, (04x @(, B  0@!(0@!By,q0P*p,(0,-( @0@CPg*ACBA!/rPP@+ 40! q(p,`V @F 1@D0C$@6@W 01 `,(00 A P ( PU @ ( s(p @P, P Pp`A@AT,(0( 8x  ÕPK)%pL-8MP @P `@`@VS  0 0   㑕KpVPKpS  0  @ 㵑M- MP`AAQ&@ lDXp  6 2㹛 2T9 AAK  hy{H- M 0x00s РpL-MxP @g` 2> _KpM-@MxP(K`L͎ @p/ 5㙆 2^ @ 5㎆ 2S  2W(AŮ 2}$KM-HMxP(K듎`M 2k `@{ 0 ``s`@啋  0 ``s@劋ҝKpL-Mx@R` 0`Pw 0`Pp  0`PiKpO-tMp<8`|x AP  @P^P!||UTBl#Lr Td8 -\ XDmD(Dqtg`8@.h("mmyXy$_\ `q6t+>0f 1vx tcR%K8nP\zVwLa0|HjH <~9r {}<}'d^x(8#dR{}J 8 JT @\piotyLis8gt$yx4Tk<C K?xD#,|rJ<4lDst?-XKk$d$(|o\Z*,8x`\eXe0Vh@Lc$c$jg(xjkd \> d!Hh|Xh`)5xWLeKp- !'|"pXmpeX-!$m %'p[A(-A$2dSM.Xbl\1@ "T3(a@P  5n  23 T% 09 /"0@B1*>@rpp$p!P1! pԒ0ppp! ᷗ ,$( ݚ( Ẋ<0q q2$! N<P2q q@ ,DPHLh@ ` "<q q0 @! p1C<2q q@ DP@P PՒ " o ㋚<pTP3 P/,0(bpp$p!p1! `H c(P @<0q q2$! ᘘ<p q0q!@0`@ DpHLh/K pVP@`8e+< !1 "@0!( pVP@`8I+< !1 "@0! )7P   U)#,0(bpp$p!p1! `巑 ҙ(P ᯉ<0q q2$! <p q0q!@0`@ DpHLhL@P8 `*  2 ,0(bpp$p!p1! `f す(P ^<0q q2$! .<q q0 p! `1;,0(bpp$p!p1! `+ F(P #<0q q2$! <p q0q!@0`@ DpHLhΐ/P   T2 $0!1 ᅓ7P   Tr $0,!1 E2 $0!1 ے  @0$P`( ,őPơq5!#@yz%#@P5@$!  2"1~#@Zz8<`#@P8 `)  2ѐ,0(bpp$p!p1! `[ v(P S<0q q2$! <p q0q!@0`@ DpHLhg2! ὕzPr6 !1 0$ D0@0H!Lh@ p'W2! ᙨMP   T@P8 `4)  2D/P   S@ ش@P0X `e @EuT3fpd@P U:_2 $0!1 P  d Sy2$ ,0!1 |2! ᥢ,0(bpp$p!p1! `h プ(P `<0q q2$! <p q0q!@0`@ DpHLhێ@rpp$p!P1! p'0ppp! ,$( 0(  <0q q2$! ᡕ<P2q q@ ,DPHLh@ M ` "j<q q0 @! p1ᖕ@P8( @(K4  2  "0H2 $0!1 ᐢ ,0(bpp$p!p1! `垎 㹖(P ᖆ<0q q2$! *<p q0q!@0`@ DpHLh兊! ᦦP  ' R<! k@P8 `'  2ノ2! ᗟp$!1 ᢫!N TP  2$ @w 1 PA0@ 03) `@r d 㜑6 !$1  Q児$qUa @0  U 0 !$1a  !$1  !$1p$!1  !$1  Q$1d 0` $pQa7@Gr !$1 @1 p$!1 &p$!1 p! ",0(bpp$p!p1! `) D(P !<0q q2$! ᵎ<p q0q!@0`@ DpHLḣr@@`8( (q-  2r7  !$1 @P@ $`a-p  ס1 ,2B<! j< 0@ `! !! 7p$!1 ᑥ@P@ $`ᨬa-p  ᑡ1 G !$1@8 P < ! 0 ?@0p1 D rH RP @ ~ !$1O@P@ $`^an-p  G1 p$,!1 ἣ@ D@P0X `e @EuT3fpd@ P U: @rpp$p!P1! p 0ppp! P ,$( ( ~<0q q2$! <P2q q@ ,DPHLh@ 0 ` "M<q q0 @! p1ᵍ<2q q@ DP@P P ") ~ !$1K !2 $0!1 0 1  pVP@`8< !1 "@0!  !$1p$!1 ፤ !$1!0` ,P$@aőq4m@o,0(bpp$p!p1! ` +(P ~<0q q2$! `<p q0q!@0`@ DpHLh奅  !$1  !$1 @ܪ@0pPX @CcT` cT7@@$ P0 U:^  !$1Y p$!1 ᐦ0` $pQa7@do0` $pQa7@So @ pP$`(K +@ooA<8  ( ,03@*o# PU !.@0T00SPQ 0S0 $L@ , L@  YX PR@UUD\`@@ 0n 0h W"0 ! ṗR,0(bpp$p!p1! ` (P |<0q q2$! r<p q0q!@0`@ DpHLh̀0` $pƑa7.2@n6 ` @rQr 0 P`Ñ1Q6(&@`dn0)!2! ×@2`DQ$@! fD! @2`DQ$@! VD1  @g@0pPX @CcT` cT7@@$ P0 U: @@`8( ()  2r~w@@`8( ()  2ruh@P@ $`(a8*p  ! 11 " M ANp$1! ქC0` ,P$@aőq4}@m @@0pPX @CcT` cT7@@$ P0 U:h  @ 0$ 2c_@m8<``!1 ፦ 0n'dPA@I@P @ᕨDa)p`D1`    0`  0p0< 0 C @l@0pPX @CcT` cT7@@$O P0 U: @1! g !$1@@2`DQ$@! D1  Rp@P@ $`$a4)p  ! 0` ,P$@aőq4@l !$1 ᢤ< !$1!1 (!1 0` $pQa7@l@P@ $`a(p  ᩜ1  ٥` @⭧@0pPX @CcT` cT7@@$ P0 U:/@P@ $`ጧa(p  u! I0`$P( ,a@őq4So@3ls!1  @2`DQ$@! ;D1  M !!1 @ @P@ $`6aF(p  ! P   8 DF @2`DQ$@! D! 0/M 0` $pƑa7 @k2! /2  @ 0$ 2@k8<`2 $0!1 p ! ,0(bpp$p!p1! `坁 㸉(P y<0q q2$! e<p q0q!@0`@ DpHLh !  !$1 03@)kpQ$!1 8.p$!1 П  Q児$qUaw @0 k U !$1a@P@ $`"a2'p  1 0` $pQa7Q@j @1! !$1 |6 0<! # @1!    0ᒝ  !$1  @2`DQ$@! ᜑD! 0ᮢ  q$aWQ  0 W  !$1@P@ $`ᇥa&p  p! 0ᠣ'@P@ $`ra&p  [! 0@P@ $`^an&p  G1  X 0` $pQa7@j"0@i8<` @P$`($qW(/&` P   % !D  !$1c,0(bpp$p!p1! ` (P w<0q q2$! b<p q0q!@0`@ DpHLhI  5@%*@Pq  2Ѕ ! ᫛  !$1 ᜝  q$aWQ(  0̘ W  !$1 & Q ( cx @@P   5p 2s 2? Q@P  5p  2\@0D@ ?P  0{ "-i i P  $! RD 0d PM ,0(bpp$p!p1! `~ (P v<0q q2$! ᩅ<p q0q!@0`@ DpHLhu2! Q p$1!  !$1 q$aWQD  0ޗ W  0` $pQa76@Dh!/0c0!   !$1 o  @1! w ! ሙ  !$1 G  @1! Uy  Q$1  .  မg 0<! x< 2 [^2! G 0` $pQa7 p@gt !$1H@@ H1 :  0P4@@`8( (8#  2rPU <@0D @  HLhp@}0` $pQa7 *@gg.H@@ H1  0P  0Pi2$ ,0!1 ,0(bpp$p!p1! `R} m(P Ju<0q q2$! <q q0 p! `1'<q qD@^H@@ H1 Ო  0P嬝  0P妝< 0WP   %AH@@ H1 Y  0PS  0PM  0PG< 0# !$1 0H@@ H1 S  0PM< 0 @,0(bpp$p!p1! `| 㫄(P t<0q q2$! <q q0 p! `1)<q qD@2 $0!1 ၐ! ,0(bpp$p!p1! `6| Q(P .t<0q q2$! ᆂ<p q0q!@0`@ DpHLhr90` $pQa7 @e0` $pQa7 @e0` $pQa7 @e2! Œ"2! Ǝ,0(bpp$p!p1! `{ ǃ(P s<0q q2$! <p q0q!@0`@ DpHLhO{ 03 I@JeMpP1) p P$: Po P} P 1  0b  !$1 ᴜ2 $0!1 X$! ,@P8( ( 0v2$ ,0!1 ߏi,0(bpp$p!p1! `z (P r<0q q2$! Ł<p q0q!@0`@ DpHLhvp$!1 ᾗ !$1 t  ! ᢒ%  1M 2/p $P`$! 1 }@ ᜟ@P0X `e @EuT3fpd@P U:# P 03 R@@dV( w(P0X `e @EuT3fpd@P U:/ Mr $0,!1 B| pVP@`8< !1 "@0! yu! ᬑl! lc,0(bpp$p!p1! `y (P q<0q q2$! Ⴠ<p q0q!@0`@ DpHLhy@8 P< !1h " @ 1 {2 $0!1 ᨍ! S% ] P$ p!1 |$ !1 X{$ 01!`0` ,P$@aőq4 g@2ck@P5@$!j  2,@P8( ( 0 @ ¡$QU   2*x@P5@$!j  2Wd,0(bpp$p!p1! `x (P p<0q q2$! K<p q0q!@0`@ DpHLhnx<q q $0,!`1 B2! !  pVP@`8< !1P "@0! x@P8( @(   2 pVP@`8< !1" 8"@0! `oP@  tq`8 0< 0 Ṃ i ,0(bpp$p!p1! `1x L(P )p<0q q2$! ~<q q0 p! `1~%[ 2@a!0` $pƑa7.@a2P   ;$ r!0$1 pz$ ` @rQr 0 P`Ñ1Q6w@`a02B<! J< 0@ ᅉ@ⴜ ` @rQr 0 P`Ñ1Q6I @`Ta0 %  1! 2.p `$! 1 y  QP @`  5h  2}b0@<`! p< 2 ᚈ<@ P{2DP@P vP@w<@0DP@P  vP`7w(8s,0(bpp$p!p1! `w "(P n<0q q2$! }<p q0q!@0`@ DpHLhv<q q $0,!`1 }<q q,Dp@p@  2Pw ":u ~<`  0]{H,0(bpp$p!p1! `v ~(P n<0q q2$! ^}<p q0q!@0`@ DpHLh_m0` $pƑa7, @0` 2 $0!1 x e~@P5,@$!g  2v|H@P5@$!g  2U|v%  1 2/p `$P,! 1 w_\H,0(bpp$p!p1! `u  ~(P m<0q q2$! ~|<p q0q!@0`@ DpHLhl<q q $0,!`1 u|P  v 9(V 2  2㋆,0(bpp$p!p1! `}u }(P um<0q q2$! |<p q0q!@0`@ DpHLhuP  $! E9 0"P   Y-9P   IM9 0} Pf,0(bpp$p!p1! `t }(P l<0q q2$! {<p q0q!@0`@ DpHLht<q q $0,!`1 {<q q,Dp@p@  2Pu "-s |KHHH,0(bpp$p!p1! `t |(P l<0q q2$! {<q q0 p! `1'{<q qD@@rpp$p!P1! pLt0ppp! y ,$( U|( 2l<0q q2$! {<P2q q@ ,DPHLh@ rt ` "r<q q0 @! p1z<2q q@ DP@P PMt "kr k |<p, {@P5,@$!>e  2z PpUp pWRR P O( lP< @0D@?P ! n "Y@0 0 , L@@\ 2(= `V !.P0U00S`Q 0S `V  !.p0W00S`Q 0S @T !.p0W00S@Q 0S@P8( @(  2~ `V !.P0U00S`Q 0S,``;`  0 $P( 0ᑋ Q03$@\H `V !.P0U00S`Q 0SQ03@[ `H_P_5 `!$ (,04@8 @ <@pDMc@ 0 0 ' @TZ !.p0W00S@QL 0SI PUM !.@0T00SPQ? 0S< @T@ !.p0W00S@Q2 0S/ @T3 !.p0W00S@Q% 0S" PU& !.p0W00SPQ 0S PU !.@0T00SPQ 0S P 1>PpUppWQ P PU !.@0T00SPQ 0S @T !.p0W00S@Q 0S PU !.@0T00SPQ 0S PU !.p0W00SPQ 0S P 1>PpUppWQ P @T !.P0U00S@Q 0S@ 0 0  @T !.p0W00S@Q 0S 0 I @T !.p0W00S@Qs 0Sp PUs !~0 R  0 RPSe  R0baWt({  Sm 0ᣉ  0ᙉ 0ᔉ @TD !.p0W00S@Q6 0S3 @T7 !.p0W00S@Q) 0S& @T* !.p0W00S@Q 0S @T !.p0W00S@Q 0S  @T !.p0W00S@Q 0S @T !.p0W00S@Q 0S PU !.`0V00SPQ 0S `V !.p0W00S`Q 0S PU !.@0T00SPQ 0S,F]`d]  0 $P( g@P8( @(    yz PU !.p0W00SPQ 0S W W PU !.p0W00SPQ| 0SyP 2@X "X `V !.p0W00S`Q 0S `V !.p0W00S`Q} 0Sz(`P~`勈A 2P "0OvA  0Zh`@@ 00 (ȓ0 $L@ ( 0 $ L @ 00 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 5O0 $L@ 0 $L@ 0 $L@ .0 $L@ 70 $L@ ;0 $L@ C0 $L@ J0 $L@ 0 $L@ T4O0 $L@ 0p$0L0@00 $L@ t0 $L@ v0 $L@ y0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ 0 $L@ , L@H   2bW , L@H 0r,@" LQt( ,0@5W# 0S . PP0 Q P  0 $L@ , L@4  q, L@@W  2H2W Yd@di0 .d, L@H 0rT, L@H I, L@  0:, L@H 0aq*, L@H 0q PU !.`0V00SPQq 0Sn, L@H*, L@  0, L@  0T, L@H9, L@H0  p, L@H , L@L, @ L ɑtQ( ,0@V# 0S . PP0 Q P  0 $L@ , L@ 0oa, L@  0P, L@H, L@H 0 ō4, L@H0  %q%, @ L ɑtQ( ,0@U# 0S . PP0 Q P  0 $L@ , L@ 0Gop*O, L@ H  !B1 p P:<@` PQp 5\  2Jv<@P 5@\  2q0㔋, L@H, L@H 0 ," L@HP"00"@T<`# pW > P PpR P  0 $ L @ , L@ H00!@p圕 G!@0 !ច: <q8 ( ,03 @T$2$ @T !.P0U00S@Q 0S0 $L@ , L@HPP ! t@EPE ! iEPE ! _E PE  `! V(✏ 0փ, L@H2, L@H(, L@  0(, L@H  0/, L@H  0G, L@4  , L@HP>QPtX" hn, L@H %`o 0 `Q 5^Z  II1  v 91  0v ,Lr l$ 0 0~;OpIoI;$0H-P@OP0X"x0H8gO- `p( ,03 >Q$ PU !.@0T00SP @Q 0S0 $ , "Xe`VKM-8MP `p @P  0x  ,c$0S  x Ln(Q /o1 B?ox  tApP P 1P, P* xv|A1 2P xP" , xP@"K\p^"-eKM-M@040C S`1(Htd0   K0 0 `$ Á1` QP0 0 P$ q1c ?P` ; ( K0 0 `$ Á1U P 0 0 `$ Á1T P@  $19WK PUP .p0W00SPQB 0S? `VB .P0U00S`Q4 0S1 PU4 .p0W00SPQ& 0S# PU& .p0W00SPQ 0S0 $  0 $  0 $  0 $  #,  , @ ,  , ` 0VK  08.K-8MP@`P P;p } xP 0 \ 1 xP"0$0 !1Ee 0 0dK  7-H- 04S S0  $0!0V0 0%V  7,pL-@ R*0@1 "x`D00!vc Pp"pLnc  7[Imo,L-8M R !  Q  0 */0 @2 x@L 0  dmK  l7([I+H-P` @ p,wRRhT ' $`(P * @1 ,!xHc  @7N\ZI+K-8MR'*@/ @2!  x`p0  ppQ㰓[L 0 pp簓 [K  7YI%'*H- ( R 0`00 2o/o$PU%U%E @3#3#C0 //@ !!@ O-TM@ ` Q; PxPr ;pyk  0p]#xPP J0  p  6bUTsP p  6QU 2j| B! Pv#TEPq xP'HP u|QAMH$X(PXTP $ lY8xp8Ἀ=]` ' 0 EZ 5T 2i0   _  2c$K"a8⏈ x` P  .!0^+Qp@ "Q@@9 0yJP 6"0j$K7[U33UEEJ33Cp!` 1! @1@ 1  H@@P 0x  bU oA5?ox pZ x 0Xj P  0x  bKxPR$PDPx gUO-MT X KPqt\x 2"R0x!0F\K 038uL ; P005S 2"R|xP 2hK ohd; P005S 1QxP 2hK Qjz `Pp5SX @ `85Sx( T 1 1  pP(P0X `e EuP3fp`@P U: 031'(KX+/0I3<0x!K/QPK IPP!xPK `V0 !.p0W00S`Q" 0S `V# !.p0W00S`Q 0Spx!Q32K0 $D8 0 $4( , D8 2"R8pPaPPKPP K /IxQ P 2K?@ 0xI3oKD0ppNpK P PxP KxP8@ᄆ[p`P P0KL P XK@ r],FP`K(%0R( 0z 1(0pPX @CcT` cT7@@$I P0 U:(`ZPQ`pP XP0KPp Lp K@  /]놀P`K@%0@R 0y Pp Lp P0KK@8 @  ]P`K%0@sR 0y, 4(  $E 5 @P05@R 1gQHxp0X g @GgT3`P@Pp W:ixP 2#mKx`8@AZpPP P0KL P XK@ \,EPPK(%0 R( 0y0xPKᓅPP0X `e @EuT3fpd@P U:x8 z80@PX CsPp`& `cP4f` P0 U:" 20 40 oX . |P`K5Q  2l8JP 2 k8 2am;P@@(Y(0`8P?8IPP K GPP P 2NKPpKXK  x 0VKP @@ 2j8 2Nl(K0 nP 2mPKP@KXK  0nVxP 2jK K  2QnÄP 2l4RI(RIQIQIHQIEIEI DIDIH-   /녩 pL-@P >^  $1! `p"Tr Q"R PP@ URjτN@P:1,S` V00 N@PP P Q !̠R0P U 1^N@P AQ:!AR0S hl^ | %1! `"U%Q!R PP@ UR̈́N@P:1+S` V00 hN@PP P  |Q !ˠR0P U 1^N@ldP pAQ:x!AR0S x@D^ T %1X! `"U%Q!R PP@ URVτN@P:`1+S` V00 `@N@PP P  TQ `!ˠR0P U `1^N@D<P HAQ:P!AR0S P,P0xMDPH0P4pNH- HK- MPp@`Q W48 KKb  6 L 0a 0YK Pb@  6L 0aKH- mI  .ikM-8M@8P P, l P`,00 `P$0 s4 p p0``0`p(0 pp{s02`00HWP8 pRPPpWp  1S Rpp<P   6`xL 2Ba@ An0 4 p<P `  5P]L 2"a@ AiKpL-M` 03 D! PU !.@0T00SPQ 0S0 $  , P)xT   (  Ar R)ƕ)ƅKpKp  0+SKKp  8-M-M@0ptW' W Wpp  0$p(P, aǁ1'_6Db5$!KKpp  0 p$ Q1NDQ pW& .P0U00SpQ 0S `V .p0W00S`Q 0S0 $ 0 $ ,  0eKK,  5LKK  ,EGpL- 0X@ WT *0 ,M J &0(C@ `$R29 "24 2E -E 2@ &  E 2@   6  4 6 4 V *2 0   p  ,끛H- hG  ,UWM-M@$(0q q 03"C# `V !.p0W00S`Q 0S0 $ ,  P儀Q  {U Px (":49$(SB`(rp 2p(FP(@ppp F@@`` `0(p@DP 7PC"0L` PKxOH- F  j+멘 0 =H- F  Z+ik 0 =H- F  J+)+ 0 %H- F  :+ 0 %/H- ^Qg |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  )/pL-@P ),4 aV( RpP᾽P 㩿 㷿w(pOH-@dP )P`U p,PD(,PV O0H-@<P Pჽq (0O0H-@0P Pn1(0POL  R/L-@]  G LTO@  R/L-@G  LOpL-`@PmX$P*@+40p+ -P R /R/,,Q/L-M$ @(  P pM 4P0 P4 PK 0 0(#}$M!0H-M@(P R 4P0 P44P0 P4K0\ PX UK0K0{$pL-@(P1 )PpP R P$ ` p 00S$PP `  00 QPp( R/) R /   pK-MPPt`@p`(P  4P0P4 pWKz$K-MQ P@Pp`p`(P ~ 4P0P4 pWKy$//( R TbH- M4 R Р0 0R4 Р Рwy$/( R TFH- M4 R Р0 0R4 Р Рy$0H-M@(PP ,% 4P 0 P4d (P  4P 0P4 O ? .R ?  RP K0(P TK04P0 P4K0+ K0x$/x$w$//( R TH- M4 R Р0 0R4 Р Р3w$0H-M@(PP  4P 0P4  (P \K04P K00 P4K0 K0v$[v$O- M@(PP Ly 4P 0P4  P= `PPpQ (P Z 4P0 P4 Z P(P @ 4P 0 P4 ~ Y`VKu${u$0H-M@(PP  4P 0 P4 Y (P \K04P K00P4K0@ K0Wt$t$0H-M@(PP  4P 0P4" (P \K04P K00 P4K0  K0{s$'s$pL-MP@Q (P l 4P0 P4 Q (P  4P0 P4 Q `(P z (` 4P0 P4 P ddKp4P Kp0P4Kp  Kpr$7r$q$q$0H-M@(PP @ 4P 0 P4 (P + 4P 0P4j (P `K04P K00P4K0 Q K0p$p$Gp$0H-M@(PP  4P 0P42 (P X 4P 0P4 (P  4P 0P4  (P  4P 0P4$ (P hK04P K00P4K0  K0o$go$o$n$kn$0H-M@(PP z 4P 0P4 (P \eK04P K00 P4K0 K0m$m$0H-M@(PP C 4P 0P4 (P \.K04P K00 P4K0 i K0l$l$/O-M@.Pᓗ.(pW PtP` P(P  4P0 P4= `V.Kk$K-M@PQ (P  4P0 P4 Q|`p `(Q  4Q 0Q4pWKSk$j$K-MP@Qx`p`(Q  4Q 0Q4pWKKj$/( R TuH- M4 R Р0 0R4 Р Рi$0H-M@(PP T 4P 0 P4(P ? 4P 0P4 ~(P `*K04P K00P4K0eK0?i$h$h$L- @a LK-P@elP 0 P=H R- L R- P R- @ R- S  R Q `QpPUmkP`  㸹(P )P#  (P )PZ\KKO(P )PKB3 kipL-`P@`~ qv pf h_ PX 8Q pLI60;y>He$K-MP@;Q`p`(Q , 4Q 0Q4kpWK>d$O- MP@QH`q pH9V (0? .R ? /R P S $0P (S 4P0 P 44P0 P4Z`VK4PP+( 0P4U$)K(vc$cb$<* R   b$0H-M@(PP x 4P 0P4(P \cK04P K00 P4K0 K0a${a$0H-M@(PP A 4P 0P4(P \,K04P K00 P4K0 gK0`$`$( R TH- M4 R Р0 0R4 РK Р/`$0H-M@(P K0HP$ P.(Pa, ,t(P4P K00 P 4K0P +K0t_$_$( R TH- M4 R Р0 0R4 Р Р^$( R TH- M4 R Р0 0R4 Р Р_^$M-M @p`?.P`?*PV țP P@PP3(P 4P00 P&4)(P 4P;0 P1444P0 Pa4U,4P)0 PZ4"pWL.U 8(z KPiU(P 4P0P 44P0P4 PCU`TK30U+\$&C\$Ln[$ /O- MP@$Q`(P `(P 4P30 P)4,*P?.P?7P )K4P0 PF44 pP( E0 P<4>pW(P# pPl P  k 4P0P4PUKWLP# pP  P  6 4P0P4vPU KY$X$Z$Z$Y$K-MP(P#@P``p(  4P0 P4BpWKX$O- M@P$`Q(P*PE?.P?7P=)K(P, P# pPȡ  P   4P0P4PUK4P0P44 pP( 0 P4W{P# pP P  e 4P0P4PU KU$U$W$V$K-M@(P#`PPPp( 2 4P0 P4rpWKT$pL-MP`@Vc8FP(P 4P0 P 44P0 P4 P:U8,Kp+hO5rS$-/pL-MP@@ (P 4P0 P 44P0 P4 `VX@<,KpgOR$اO.pL-MP@(P 4P0 P 44P0 PC4 `Vd``_PXU( P 4P0 P 44P0 P4 PUH3</KpxuwfQ$oȦOP$a,O- MP@(P 4P0 P 44P0 PZ4 `KVP QC 4p0a `$51 P  ( R 4P0 P 44P0 P4`  Z``` pAW:4KdO$mOO$@OQ*pL-MP@(P 4P0 P 44P0 PC4 `Vu``pPif( P 4P0 P 44P0 P4 PUHD<@KpbM$k OL$(0H-MP@*( P 4P0 P 44P0 P4 P\U0$K0ML$L$'0H-M@(PP  4P 0 P4/(P  4P 0P4 (P `K04P K00P4K0K0K$[K$K$H-   F\0H-M@$ R ( P?o+R,  R  (R P 4P'0P4 ( 4R P%0P44P0P4K0PUdZK0PU,M K0K0#I$WI$/O- M @P* `PqP}(P 4P0 P 44P0 P4dXpW`KH$0H-MP@(P 4P0 P 44P0 P4 P5U0$K0&+H$sG$#//!( R TH- M4 R Р0 0R4 Р РG$O-,M`@?@7P}P P@Th   T(h|h|(p  4  0p@  4L(P KOd4P50PW(P 4P0 P4(P BE(P/4P00PhKO႕ KOKO*P   KO (P  (P#4P0P) ,KOdQHkp`(Q  4Q 0Q4%pWKOKO(P`PZ KPp(  4P0 P4pWrKO(\KOKO>P\i p`(P } 4P0P4pW?(P dQ (PQ $Y  (P$ P.(Pa, ,<(P(P H0(P34PB0P8:KOE P `,XqP^(P 4P0 P 44P0 P4EXpW`Qgp`(Q  4Q 0Q4pWKOKO.B.(pW PV`P(P  4P0 P4`V.K0Vc 8FPN4P;0 P|444P|0Pu4u4P`0P4Y4P0P44P0P4`VFd`AP:7 (P 4P0 P44P0 P4$;PgU.[)4P0 P4LH(P < 4P 0P4 3(P K4P0P4KK P `xRPpQ (P  4P0 P4Z P(P  4P 0$P4 Y`VX(P tz 4P 0P4 ? .R ?  RP4(Py4P.0 PP +Q` p`(Q > 4Q 0Q4}pWKx?$;$o;$D$A$A$:$E$@$9$&}C$|Y=$[PO;<$B$SA$8$D$>$sA$nB$!;@$RO5\=$@$O-dMMGpP  `` X 3@ O  0@? 4+ @ +@2 Q)0 AU  PgK#KP P@p  # p DQ':#~K 0X 3`@  mP #K p#~,TW X 3A W' X 3A$2#K 0m  9PM #K g#d> #K42 b#K P #K 0E]L%#K #   03m:  7 #K   #K-g p  PZQ @#K#^ # `  V  yPD?|۽#X@ T T T#N PU#nK}0`0 aRcP#.K=PPxKP`M u#K  P]1 dB00 @ pP ZT TZQP  <#N 8U P#K-PPPA  PQP@#.K!=  BO- M`pPYI @0 ZP {!Y0  I0r :R 0  0AQ:Q 1KL-@B =H- "R00"S Q" ""Q00"S /L-QBQ  "NB"B#< 0" R " R  "Q Q " B1S/A0SQ /H- " ""R0!!0"S2R 2R""O-MP`pap2WPRR R P P 0/0 L`HD@<8 4 0 , ( $ @pO0I/  0 B 0 H  0 B  0 B  0 B $ 0 B ( 0 B , 0 B 0 0 B 4 0 B 8 0 B < 0 B @ 0 BD 0 BH 0 B`O# }TPP0$,$ S0&TPX  QX"PX\XP%LP @%P9  BR6` @ pa0pGP0`OU:& }TPP &X $ R$<\"PTX0  QX"PX\XPP A!R@ RP KO- MQPKQ70㝗\GO0 P)R`p0 BI&."'.$r`0(~S 0 Pg&b''~Q0B5R S(0 S%D P2p`Pq'rP&nUP P;RQ'~r&^&nU 0BRS pP  "IIPqQA2 "Pa G0apa!"!6#bpWR!K  >LH7pL-!M@$ }  P`& % R%< "0  Q"P  KpO-$MPP00rS R RII P@O B00`//@ p0Gp P :aGV@pP:AG6@pP*0@p P :V a@pP:6 A@pP/0@p P/ :Va@pP:6A@pPV 0@p P : Va@pP: 6A@pPV//0@qP U :aP@VuPU:AP@6uPUqV0PNuP U :aNVqPU:AN6qPUb`V/0PFuP U :aPFVuPU:APF6uPURP @ p B@ R@pD PPFP@  0S_BPB0 00pCw`/p V :apCw`VpV:ApCw`6pV*00RQ@BT @Q@DBQT K  M3OM-@P  Q"pA0SIR 2AAC1 R0W A "  "2 pR pa R&S@"p 1ap WP "0qp''S@Q  1ϔ0H-  "R0@PB0SP  2 BB C1P0U9 A 0  1H-pP  Q"`A0SGR 2AAC1 R0V  A  "R@"` 1AD@baoQV ! B21RP A!R@ RP   */L-"R 4 I2IRSCB?@ BR!c0An A>214<B RS1  .L-"Ra 0A!"!4,B0SR!0H-Q2 QQ 0!0BS 0"RP0@!Q"!%.R@#> T \ " !%R€##>Q0  -O-M"> Q 0!0bS KQ)#`1r@sS%21,>2`2!'^R$V S "rq"0,.‚2!.!RK  TQ,SO- Mb@VpʆV`$0!AA0rSW0P  `pApU1 #r2`P".Y0 p0  W%R`E#2Nr".GFQ PJ@p q P@T<` V  Q  I1S 0B" R Y K  U*WO-MP"U R 0!0rSp  Ѡp  ZR  2R KZ  0Q -Q  Q AR& @ `@ 0b `Pt3A00 0 C " 0  `0`4B"0@P R @ 0   #",20P PP   YT  PY@P $I"I 2PRBr/0 2Pb pA0aa!"!6#bpWR!K   ' O-M r b 0SV@FPQ "@@ B1Q0T" 2C 0 r BSQp5  n"pBB 2wa RpRpQ`PpufgaQD!R@A RQ 7_f@p  9P( 2 " pW2QB`!`PB!DB0S@S W S^AR:0CPExK  Ye$gM-P`RUBPU<  B@T 1AA" D BABQ" QR @Q B"QR "1C21"QPH-2S* b@ Ra0Pc0LU `@@%r%VP`Vh  2S 000C0C0@0Pp 0C@P rRR000F2"S5A0!7P7`0RF T0P3P @PRR UN0`3PPP U7`0`3PPRT U7`0`3PPRX U7`0`3PPDRZ U7`0`3PPDR, R7P0P3  DB"@DS@C0P  p7` W0`3ppA r R  \/20S A/M-  2b ’@Tp"\P P A`Vp VTV^qQ:`F BO-Mb 0  “@P`T r`ppVKTK^T aH`aH ^ ` ``V@` `p W#W T b `! W Ub ``W R```P:`@pGIVPKQ/P/Q*SH-   Y[Q*SH-   !#H- 90R RQ*4  1HSR  ÀHQ*0  SH-   }tH0H-?@P `0 QE0 A[! @/ ! 0yPD?HH- Wπ,00Ό0 HH- Q Q QL ;H ;( ;  M . $57. /M-P@ Q @qW* ``` P@U O-Mp@pp p `P FZ*P VPP    p$ppp(p,0pKyO-M@P!P P pP GX*` W``    P$PP(P,0PKHK-@Q  PP EaV*pUpp   ]pP0#p`(P,00 O-M@P!P P pP GX*i` W``   * P$PP(P,0PKO-M@pp p `P FZ*;PVP P    p$ppp(p,0pK $( , 0/O-MPP@P PQ @Z*`p pp `@V  P$PPP(P,0PKO-M`B@` `Q @QU*ppp P@U  `$``(`,0`KRO-MP@ Q @aV*ppp P@U fp 0(p,00 K"H-P@pQ@`VAQD`(DDT R  0:b6 BQ *00 R(( R RR(( R  Br RAqQ(00Q0, ,D,   = vO-MCXOP`pH! @AR JA!R * @@q?*R Rt R:: JNRN @ \ 00W^W p 1@ @ S*@@ S:R B @@ V `W 5 ! 0 LV@ H!  ` Wa ` L@JR  p}0 p@W  q`YP  K0/0H-P@@委 @0M-`  R9 (6 @0Qq:Q. G Q+j`fP`pP {  ``P m`O-LM`R P`(P$P,P@ `TFq WW**P$(,ZS p8,U `(P(PB $@EDP=*A1A!.rPP P01*P pDaaPT X(P$p,`  @p pP ` Q ( /P@p'P T@ `DFqV W*P@w@Z lp @p7psqP @ $$P PpP2 qQ`:X @kPHEP*AA!.rPP P*zpE`AU  >PY Ap`VjP`P P*P p@l, P@Pv* Ar!/r APAP Pph*; AU@`   pTl D @ TqW3 0Pp @ 0P P`P PpYF  P+pW TW7 Q3DHP pDD)@`@P *A2!/rAPAP P0*P Pခ炁Ypp @V P Zp`V@ 00 48 Q @QU*@@@ 48P@U g@DQ QU*@@@@DP@U K`P0 P` p@P D4P 8VpWEPpY vW r$PW (mT0 HD@<84oPZ pWa 0 48Q @QU\*0@@@ 48P@U @@DP ATB*PPP@@D@X T D@4P 8PKZ2p WPY@P D4P 80M@@TnO-MU 0j 巀A QX (U 0R: RN @ RKQIT., P% P P2`@V1`@V- @Aoo1,P @0P0`@VP  T T T``@V@PW``K `P FqW7*YpPV   `PP`p`@P _  `PP PKO-DM,      Q Q&*,/@Q,幯,Y , 0@Ps P} `Q N0 @0SM0`p P ^c ,`  @,$? PPzK^$( $@ Q;  Z:5 0S pP C/ `ae`a`V2 1R0R R0PեPQ`VQ  Rp`$@( z:P ,P  P~Y ,Q s }  PPj  PP N @  PDMP PQ N` @`V.M`P  +@`Q MP` @PUMP`OP P:@ Pl  $ fZ!f@ Q_  $Z@ 0HQQYS ,  pp0IS`*@? @0T S , 0KO0A@S*,` Pp 'C 0qs0AW3zWhP uPr %b!eS. 0@$Q:F}  PP [M}@ xPp`P$   c ` @PH /MPP@pP $M `` $(*["[+",0 GP`!@,0K T0!S W00T6800$0?8!pol@(p T PTS`PO pPULP``pP   p $P ` PKP, P`(0 O@81, 0lpQ' LP-` PPKP@ @" P0Y0`Qi qLq`PUKPDQ  }`pP0  )T)W $!( P,@`@Qg  L@l p $P(*["[+",0@PZ4KP` BP ,K ([P1  ,K}P* ,K0 p0P" p@DPzY   `PpP  x@\PXJ@圩P@P PP T p`Qi K o@,P,@@` p P@@P   PP$( $ (*[[+,,0 @K,P@Y Px 0L@Pn p $(*["[+",0&@ R^J `<e1`^@,Km  EWH4OO-M@0 p`P ppPF Q %$Q Q8 I @`P pPP   PP0 $p( +",00pK /PJO-,M`P @c 0p<P  @P P  PJ B`XI P@ P@p0'cqs0AW3WzW@ t@r $ ! G@!`0 V0!C P W00V680p?8!/,@ % V Vp/.@sVWy! @ p Z @Q J`@ @E` R+I `@P 'Pp  @Q I pQ@` RI  `@@ܲ~p@P`P   `` $ (+,0pK1  2 PpL-M`@ @@@```)P P@ @8P@U ll||@PU Q 48`AP 0U PKpO-TMp@Zy P  @Pg ` 0,$0( @D`HPI `V 8A@0 @P8X` @`1`V)   Q @AT1*  @@T ϼ\\]]` @8`P VZKKw/O-M@pB@HQAU#W pU7*@a.qU``V-*PXPP"  z`@@U@ Z Y U `FV   aBK%O-M-&K$Y@T@@P]0CA$I"@QPPPM e `gHe Z) E`JP@ @p@@@p   0000 0 0      000000 AX  `P`U@ P H@EP BVPKP`굻M-@P Q @qW+* ``` p@W ˻Q qW* ```P@U ᱻyO-MP-&K㒔@I@ P0CH" $!@QPPt i d`@ Q @Y_* p  `@V giZ8, (@ Cp(J P@08P8PP(0C 8pG  ````(`D   5577Q P`0`S 48@CP 0o V0KM-@ `pgP P@@ SQ@ P  PPL-M r0S ~Q /-" 0KK-MP@QU3 E 0 `Vpopmbq`PU pB~Q/-" pUKH-  R  01 R R /-" P/  R /-" P// /0 0/L-@00 L $(, 048<@ DXH 0h\ `d00l pt0xd O-MP$ pQ(0sW $( $D@KQ((   }40A@$ }{}P K xDK ; 0Z Z@B* *J@PAAU%U%@Q*PPP!  P @@ 0pW P7S@ P!@  w`p{P 'w@P($ P$ (P:$  @$ ` $ATJ $q @P=|D` wHp"  R!% w  w wP Jw H?}Q /-" 0Zp$Pc  (Qr(p0 G$pgPS( pGSpE W :0Pp3U@ T,P ( 0p0R~:A$ R  v(@P x`  Tt`PJ $@8<0Q-*@8.p$P) v` jv(0H L@R*`@@H H v Wv(0 @R @@ 4 pAGPi*0CGQbCq/wPP` @4 80qAQ@ `@AP1PR@04 @T H`(L Q*(DKH H4D0z zJj Aj@@P%BU%U%@AQ*PP` Pp `( DKD0HpW `7SP `"PD HL @TD0z z@B* *J@PAAU%U%@Q*PPp P a` @@D0HpW `7SP@ `!P@DH LX 0p1A01 0R @TG %@Q (` 3 媚 㪚@@ J@ PUU@W*PP P. a`(  0pW DK `7S! `"! DK  @TP @0!(@! $ K 0@$@$ <{ /{P PB 4`8pV DKpx!Q  PV PN 0qqQ0pSB Q;$ { pv @@( P  0$PQ    RL   G p` Q ApPTP`Wp`1 @0S @$ @ @$ z @Pt(U PK@ x 0l$@$ z @@t(T @$ 0`V @p D`K $ zx@TpK0vH@v4`vvP ,@H4P( v0`}Q   P 0 PAQPQ PqpWp0Q @P ( v vP(Q 0 S "P  P 0!0P0 paa0P0S 0!0PD`K $ A$  zyP DPK `Ks@p  0$@$ yyP4P0 KOOO-,Mp`XP@4U0 HA$灡 XppPPPpP PPpP\r`!TPTXg``P  @aVpEEQ P@ ` @Q  P  P d0 Pp $n`$PP $0 R(p#R $( $灑P((KK-MP p20 S "P  P 0!0P0 @aa0P0S 0!0P KO-LMWP@pPP  Kz`pP Zt QS  Z{  1PoZZJ,pK nt(t t )uP& p(&uQ   0!a ! Qu uP `  0!q ! Q{pP:U Q     0!q ! Q JQ(0,A KmJqQ:PqpPZZ (> 0?p 0  P`CR /0-"!pY0 `R  R 0 p1a01 0RS ? =2!0pP@Q K/ -p"1KO- MP@P PrQ* 0 A0wrQ* / -p"1K$ q$ p   R#  BS 0 2q@R   K 0} r1p`"p W ` @PL$rPsQc "1ir`pqW^P\  Q  / -" 0pP" JqPFQ1qP9Q  "p171 "p171 Rp  ? =2qQp/ -"1p`VxP@Q  ? =2qK/ -" 0WP_ P` P0 P PQ|qPLQ< "1B mq`p +qW7P5  Q / -" 0pP" #OqPQ "p171Qp/ -"1p`VKx Ox OOh0S  R   R0\  R\/L-X R 0@T@@0@T S \ h R 0S000S  h0S  R   R0\  R// R/H- xR R/H- xHO-M@ssPxP  ` P  /pQ   P&` Pp PP P l  $XD $P pP P  $PU $ j $Pq`  x U 2/p EᆆN%rrPP K 2 NM-M0@ S:0@ P$U PPE%eU`AP@P 0P`4PU0PD U@PpM-M0@ S:;C 0`R0QDA0 R@Bq0QA0 0Cᄧ1!0  0@ ACQBU *Q$P  Qz* x`R`V& P  R*$P  Q}* {PppW'{ P 0Sw* u $P  Q* $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*C :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pCnq1p06PppW' P 0S*00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@W``V  P  R *m pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pCᱥq1p07P``V& P 0S* 00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@TW``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @0H-Q @P@T0M-M@p P@ `  `` `$`(,`0`4`8<`@`Dᮨ0 `HC@ˤKz#O-M@P  004p0SPp3Su04 $Q4  4 4Q +"Q 0P0? 1@ 3Q0Q@e 4P P<04aU0`A0Qp $RP W 4`R@ P :<02Sp W0<0< 71R `P1@Q#Q\0/!@ #P P @0@0444QKO-TM! AR!@ ` t |  ,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4 ,, ,,,,,,,,,,,,,,,,,,,$,,,,,,,,,,,,,,,,,,,,,,,$,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$EpP Pc a2Q 444444444444444L4444444444444444444444444444h4D Q0 P p0 `pV QR B O @ P ` Q @00p 0ppU4P000P p  @ Q  @0@P  $QUP p@ @P P aզ00 0pp V@ ` `P  @@p @  @Q㲦00 0u004 0Pm00 p(@P(0K@ ,( R@ `僦(0K ( F(0K$  (@ >` @ (0K@ $( .@4 0pէD(0K$@ (`  @ `O(  @ Q   KOf! @ QQ@ aPPP Q pAP  V`  @  `! @ Q Q@ a PPP Q  pAP  V`  @  0 "P P    P  @0$R aV R@@P R pAP @ `E @ Q Q@ a PPP Q  pAP " V` % @  0 !J @ QQ@ aPPP Q pAP V`  @  @ Q Q@ a PPP Q  pAP V`  @  0 g!,k $RX0 0V P  PR P P p(K@ 00@ P$ 0P@(` 00@ ,0P004  0@P@ `֤0PP00W @0$R aV R@@P R pAP F`K @ Q Q@ a PPP Q  pAP (V` + @  0 H" P@ P@ ` q 00 0PP6 ( @a00 0PP$Wp00 408p<@ P`Hp @A00 0PP00 4<08P`+@ p$00 0PP00 408<P@ x @0$R aV R@@P R pAP ` @ Q Q@ a PPP Q  pAP aV` d @  0 [`{ @ QQ@ aPPP Q pAP ,V` / @   @ Q Q@ a PPP Q  pAP V`  @  0   `@c00 40@` pT40@ P E`E0  KON @0@P  $QUP000PP P`@ p00 0PP004 0`P @ a 'K `P  @@ @ P @pޢ00 0PP004  0pP00 P@p@ (0K  ( P@ `屢(0K (P Pt(0K$   (@ Pl`@ @ (0K ( P\@4 0pD(0K$@ (`  PL@ `}(P P(0K @ ( @P P0 (0K@ p4 ( p%@(K` (0@ $ (p @ A P@P pp00 0PP` @&00 0PP @0 40 00 @  0P`p @00 0PP@0  40C00 0@  P` @ p00 0PP00 4 08`<PDpW: @0 `0VWQ, P `@PpP D@P  RPP  E DP   `600 0W @ け( ,P `傡00@ 0@@D` pu0@@00 ꒜P P@ 0@$ @ 0C P   P @aQ  0P Q Pp 0@ V` 0@  P   @ Q` PPP QPp 0@ V` 0@  QT  K`@TPP RPQ  pUP6 L 姤" Q @PL o QP T DP 0p0WPP 噞 KO긛p@TPP RPQ  =PU  `L U X`P@ `s00 40@*` pd00 40@ @ P @@0 偡2` p@;00@ 0@@Z004 0@ @k!P`Q  pP QQp`PP  00 @  40  8᳾ `@P 0 @ 4!004  0嚾`p$0R ` p @ 4P1S $Q 0S$ ?0 S S 0$!0!0K` P v@ `嗟00pP 0PPX004 0pPPPcp`e@ x00 0:004P0 P1@ `b00 0%4000@ P`.@ pJ00 0 004 P0P 0 PG `@P 0 @ 4!004  0`ppP  @0 偡` p00@ 0@@ŽZ4000@ 廽pPi!Q P Q QQ@P 00 4p0፽p `@P 0 @ 4!004  0t`p 0@ 4! 4 000 _ @ aK @t]p`\ 0 P@ 4!004  0P7`H 0 @ 4!00 4  0P"4000`P ` pK00 0PP4000` P@ PK$ 0 `d@0 1`040`8000<  @ QP P P Q0`AP Y `@ ?p00 0400 0 巼P` @ p00 0妼004 0P垼00 p @0@ Q4`9D(0K$` (P  傼` @ 0@Q4p$D(0K$P (p  m@p(0KP $P (` `p`|(0K$P P (@ PR`_ @Y(0K $ (p pP?@K(0KP $P (` p2$ (0K(@  pp ) 6@0(0K $ (` pp@`#(0K$P (  p $ (0K(@ p   04p00008  <p Q@@P Q$`AP Wp  X/ X3*aH@ј  @P`p @Z    fPp` 00 40@埻 @ p偑P` X7 0$!01 K `@ 00 pp嬜00 0nP f@垜00 0a` m@r00 4P0pO@c004` ` 0`B4000@ :PHp@M004 0`)@= 400 0 0040@ @ 0 1  QPP P Q`AP Z p @aQPPP Q$AP V`  @AKp  Q@@ P Q`AP Z _ @QpK  KOꈗO-M@PP< paW  H0P0H00VR ` 0k  ` 0^ @ ちKQ/  0SQ/K-M` @0QUPPap @k 0` ``-0  P`%K @P/ @/ @!0/O-MP` dPQpG @`P ppGQ@ aV QPPP! QP @ ` @P\ @0S  @0 @P\ H PK @/O-$M@ pP0P  ` 0 4@ !0  倹  0 @ 4!0   f 0p @ 4!0  V 0 pN 0  E @ K @P/M-M0@ S:`0P @U4  4 !11U4 PK  uWO- Mp`(P@z0 @z0  @KO-< 0< @ ,P3p`4ePx<   0@p 4 0Sx@<8 @P庂,@0Dp@@ H0P@44p`x D@`@04 0!x@D8 a@p凂T(0K$` (@  П`pV'<`4@رP sx(0K$ (p p p0P屟@ ex$ (0K4  (@ p`够p$@qT.<` 4  4 !11T< 4 @K  ۿmoMO-M@ p P` PW: W1p  0M  X 4  4 !11X4 K  !#LO-LM@  P$0 ap  PVX *wXoP` X Xf`@ ` ^P0p@`P P !(@ `,  ( 00Ϟ0  `$P a q a q(@,  i<$p (0K(`  ᱞP`0@p  V4  4 !11V4 `K  IO-M@`⁴P @y 0` xڮ  P0 \ OpP w0  `DpP0 7P `p Pp  Pق 0 P `;pv0  PKO-M-M@  P  (鋟+S` PV`bT0 Tʝ+SPUT0 T彝 Va P0+SDT0 T嬝 @`DTp 0Tᛝ` W 0X`T`厝0 ŰX  TP0< h 0@  <`Dw`7@ 0@@<`h0  埰@ 

N"pL-MP`@P =`|@)0 4Kp !/ !R/0 \ R\0  ! $ / !R 0 \ R\0  ! $ ! !$5 1S H-  \ S\P0  $010 1H28 1S H-  \ S\P0  $010 1H9H- (M B{a Q0:0Q03%   0 $ !R !1$0   4 РH- (M B{a Q0:0Q03&   0 $ !R !1$0   4 РL-(M0@CC{0a S0:0^03  R:)R3S  ' 01 00 $0@  !R !A$@ 1  m4KK-(M@ A PY P`0,($|xqW m=R>Q6 pq1qW X==>Q pqqW C=(>Q pqqW .=>Q pq qW ==Q pqqW ==Q pqqW <=Q pqqW <=Q pqqW <=Q pqqW <=Q  pqqW <=Q  pqqW <k=Q pq pP =`@{0f  S:9S30070pP =`@{0f  S:9S300<0pP =`@{0f  S:9S30050pP r=`@{0f  S:9S30080pP Z=`@{0f  S:9S300:0pP B=`@{0f  S:9S30090pP *=`@{0f  S:9S300;0vpP =`@{0f  S:9S30030^pP <`@{0f  S:9S300=0FpP <`@{0f  S:9S30020.pP <`@{0f  S:9S30040pP <`@{0f  S:9S300600U $P 3 U3P! P Y YP    $    2K  ŮH-(M@ A P P`0DXl$qW ;;!R5 p 0w/qW :;!R p 0wqW :;!R p 0wqW :;!R p 0wqW :;!R p 0wqW :v;!R p 0wqW z:_;!R p 0wqW c:H;!R p 0wqW L:1;!R p 0wqW 5:;!R p 0wqW :;!R p 0wqW ::!R p 0w 0p`0 V:i0V03``C` 0p`0 V:i0V03``H` 0p`0 V:i0V03``A` 0p`0 V:i0V03``D`~ 0p`0 V:i0V03``F`n 0p`0 V:i0V03``E`^ 0p`0 V:i0V03``G`N 0p`0 V:i0V03``?`> 0p`0 V:i0V03``I`. 0p`0 V:i0V03``>` 0p`0 V:i0V03``@` 0p`0 V:i0V03``B``U p$ P 3 U3S! Q P PQ    $   /K  ЮAC pL-(M@ A+PP h aV 89 Qd `0v^aV 89 QS `0vMaV 8{9 QB `0v<aV 8d9 Q1 `0v+aV h8M9 Q `0v0 J`0 K`0 L` 0 r`0 M`    `0 0U$3 U3QP Q P PQ    $   .Kp  ҭIK0H-(M@QQU 78 Q P0uQU 78 Q P0u 0     O 0     N    $ Q P PQ    $   z.K00H-(MQ@U 7r8 Q P0u0     P    $ Q P PQ    $   3.K0M-(M@PP F7Q pq`p`P 8{0e@ S 0:y0W03ppp pp S 0 $ P V VP    $   -KK-(M@,APu P`$ xtqW 67Q pqqW 67Q pqqW 67Q pqqW 67Q pqqW 6t7Q pqqW z6_7Q pqqW e6J7Q pqpP 7`@{0f  S:9S300d0pP 7`@{0f  S:9S300g0vpP i7`@{0f  S:9S300e0^pP Q7`@{0f  S:9S300f0FpP 97`@{0f  S:9S300h0.pP !7`@{0f  S:9S300i0pP  7`@{0f  S:9S300k00U $P 3 U3P! P Y YP    $   d,K  H!#M-(M5QSaP@V l5Q6Q pq`p`P 6P{0e@ S 0:y0W03ppp pp l 0 $ P V VP    $   ,K  띖M-(MaP@V  55Q pq`p`P A6P{0e@ S 0:y0W03ppp pp j 0 $ P V VP    $   +KpL-(MQ`U 45@!R R 0 R  01010r 0  m $ P R RP    $   T+KpXMpL-(MQ`U f4K5@!R R 0 R  01010r 0  o $ P R RP    $   +KpMpL-(MQ`U 44@!R R 0 R  01010r 0  n $ P R RP    $   *KpMH- ,QRTH-(MpoaPV 34@!R R 0 R  01010r 0 p` ` $P P R RP    $   R*KPMpL-(M`PP L4@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   )KpMH-(MpP PP 3`!0R- R ! R & 01010r P 3@!R) R H!0 R " 01010r  P0 U`P:IPTP3@@@ @@` ``P 0$0    $ P R RP    $   v)KDMMpL-(M` ;PP m3@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   )KpM :pL-(M` ;PP 3@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   (Kp8M Z;pL-(M` <PP 2@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   l(KpM ;pL-(M` [;PP b2@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   (KppM ;pL-(M`Q <PP 2@ Q Q 0Q 01010q0 @ 0 U   @ 0$3 U3PP P Q QP    $   'KpM G<0H-(MPP 1@!R R 0 R  01010r 0    $ P R RP    $   i'K0M0H-(MPP d1@!R R 0 R  01010r 0   $ P R RP    $   'K0xM0H-(MPP 1@!R R 0 R  01010r 0   $ P R RP    $   &K0DM0H-(MPP 0@!R R 0 R  01010r 0   $ P R RP    $   &K0M0H-(MPP }0@!R R 0 R  01010r 0   $ P R RP    $   5&K0MH- Q `0H-(MPP  1S St100S ! ! 1$@0 /G!0R R ! R 0r  00C{a Q:IT3@@@ @@%@@ $0 P R RP    $   %K0M0M0H-(MPP  1S Sx100S ! ! 1$@ 0!/G!0R R ! R 0r  00C{a Q:IT3@@@ @@&@@ $0 P R RP    $   S%K0MxMH-(M@P 0aV Va``V`P0QPQ a1$`0 !.Q1S S 01p00Sspp @{0a@ SP:9PSP3`0 V:iV3U``'`P1`P 0$  P W WP    $   $K4MMH-(M@ p`h7PW P .!R p 0wP .!R p 0w 0ppp 0pppp0 0V$   3 VP 3`U 3 U3QQ1 Q P PQ    $   e$KpL-(M@ P6`P u-!R 0q 0U $   3 U 3V3 V3QQ1`P  Q P PQ    $   $KpO-4M`#V P Q: P . p Q} Q 0Qv01010qmpQ7 P - @PQG Q ,Q@Pq8P - @ QG Q 0Q@01010q7P - @PQP Q HQIPqAP -p@{0g  S:9S30 00?0 p0 p    p0(0Z,3 Z3P $ PI Q? QAP? 6P -p@{0g  S:9S30 000V(  ,@ 3  V` 3Z3 Z3P!Q1$ P X X  ,(  # KMMMlMO-4M@`P"VP P , Q p0wpP +Q( q#0 p 0 U  p(0,3 U3Q P$ QK PA PCQ6 @P -p@{0g  S:9S30V 000( ,b  3 V 3U3 U3P!Q1$ P X XP   ,( h"KpL-(M@ `4PV P ^, Q `0vP K, Q `0v0 `0 !`    `0 0U$3 U3QP Q P PQ    $   !KpM-(M@ `p4PW P +!R p 0wP +!R p 0w 0ppp 0pp"pp0 0V$   3 V 3U0P03 U03S0S`01 X3 X3S! Q P PQ    $   !KM-(M@ `p4PW P w+!R p 0wP d+!R p 0w 0pp p 0pp#pp0 0V$   3 V 3U0P03 U03S0S`01 X3 X3S! Q P PQ    $   !KH-(M@ `p3Pμq`W **!R p 0w 0p0p$ppU 0$ ` 3 U3Q Q P PQ    $    KO-,M@ pA3`P *Q PqPP *p@{0g  S:9S30Z0(00$  (B  3 Z 3V3 V3P!Q1  P X XP   ($ M KK-(MqP`@W ^)C*Q pqpP *`@{0f  S:9S30U0)00 $" 3 U3P! P Y YP    $   KO-,M@ p4`P )Q PqPP 5*p@{0g  S:9S30Z0(00$  (B  3 Z 3V3 V3P!Q1  P X XP   ($ K Q4O-,M@ p;3`P )Q PqPP )p@{0g  S:9S30Z0(00$  (B  3 Z 3V3 V3P!Q1  P X XP   ($ %K 2O-,M@`pP0 4(Q qP k)pAP d)`p@ @ P:9S3P ` U:YU3PP1\P00P3 \P3P0P!$`(p   P P X XP   ($ K0H-(M@PP 'Q @ s 0  S0:0Q03 10 $P Q P PQ    $   gK0O-,MQ`p@U w'\(Q PqPP (p@{0g  S:9S30V0,00$  ( 3 V ` 3X3 X3P!Q1  P Z ZP   ($ KpL-M` P@0 0KpO-,M@ p}0Q`U &'Q PqPP /(p@{0g  S:9S30X0-00$  (B  3 X 3V3 V3P!Q1  P Z ZP   ($ KO-,MQ`p@U &z'Q qPPP 'pAP '`p@ @ P:9S3` 0 V:iV3P`1X`3 X3P.`!`$0(p    P U UP   ($ KO-,MQ`p@U !&'Q qPPP U'pAP N'`p@ @ P:9S3` 0 V:iV3P`1X`3 X3P/`!`$0(p    P U UP   ($ KpL-M` @P'1 0&KppL-M` @Pt0 0Kp i0O-,M@ pa0`P p&Q PqPP &p@{0g  S:9S30Z0(00$  (B  3 Z 3V3 V3P!Q1  P X XP   ($ KH-(M@p`PP &!R 0q 0V| $   3 V 3U3 U3QQ1 Q P PQ    $   K0H-(M@ /PP % Q 0q0  U  }     3 U 3R $P Q P PQ    $   yK0K-(M@ `.PP p%Q pqpP %`@{0f  S:9S30U0~00 $" 3 U3P! P Y YP    $   KpL-(M@ Pn.`P %!R 0q 0U $   3 U 3V3 V3QQ1`P  Q P PQ    $   KppL-(M@ P.`P $!R 0q 0U $   3 U 3V3 V3QQ1`P  Q P PQ    $   tKpK-(M@ `-PP k$Q pqpP $`@{0f  S:9S30U000 $" 3 U3P! P Y YP    $   KL-(M@Q' Q QnP  $ Q+ 0q&P # Q 0qP # Q 0q0 0 0      $ Q P PQ    $   K  M M-(M@ P&,`P #!R p 0w 0p0pvppU 0$   3 U` 3PV 3 V3QQ1 Q P PQ    $   @K0H-(M@PP ;# Q 0q0  U  x     3 U 3R $P Q P PQ    $   K0H-(M@p`PP "!R 0q 0Vw $   3 V 3U3 U3QQ1 Q P PQ    $   KO-,MQ @PqpPpP `@"  0R3 R3X@`@3 X@3T@T@1{Pa@ U:iV``3TyP@1P @$( 0 P W WP   ($ C KL-(M@P ?" Q 0q0z      $ Q P PQ    $   KpL-(M@`PP !!R 0q 0V{ $   3 V 3U3 U3QQ1` Q P PQ    $   KpM-(M@PP  `Q Q pQ`qppP !{0e@ S 0:i0V03``` ``  0 $ P W WP    $   WK蘋MH-(M@!PpR R !` R$pr``P !{0a@  S0:y0W03ppp pp0 $P P V VP    $   KHMM-(M@PP  Q pq`p`P  {0e@ S 0:y0W03ppp pp t 0 $ P V VP    $   KM-(M@PP Q pq`p`P  {0e@ S 0:y0W03ppp pp q 0 $ P V VP    $   ^K0H-(MQ@U qV  Q P0u0     u    $ Q P PQ    $   K0pL-(MaP@V )  Q `0v0 r` 0 U   ` 0$3 U3QP Q P PQ    $   KppL-(MaP@V  Q `0v0 s` 0 U   ` 0$3 U3QP Q P PQ    $   yKp0H-@PP /0L-@ppL-@P`P  tppL-(M`PP @!R R 0 R  01010r 0 @ @ $ P R RP    $    ,KpMH-(MPpQaV @!R' R !0 R  01010r aV ~ Q! `0v0 ` ` $ P- R# R%P "0 `     `  $ Q P PQ    $    KMH-(MPpQaV @!R' R !0 R  01010r aV g Q! `0v0 ` ` $ P- R# R%P "0 `     `  $ Q P PQ    $    K~MH-(MaPpV @!R R 0 R  01010r 0 ` ` $ P R RP    $    K|MH-(MaPpV >@!R R 0 R  01010r 0 ` ` $ P R RP    $    vK@{MH-(MaPpV Z@!R R 0 R  01010r 0 ` ` $ P R RP    $    "KyMH-(MaPpV @!R R 0 R  01010r 0 ` ` $ P R RP    $    KxML-@,R SIL-@,R SH-(MaPpV  @!R R 0 R  01010r 0 ` ` $ P R RP    $    XKvMH-(M@`PP 0 Q Q Q  ! ! qp 0 W:y0W03ppppp0 $p` ppp P Q QP    $    pKuMO-,Map@V  rQ Q HQqZ  3 Z 3W0`03 W03S0S01P  U:iV3`S01P 0$ (p PP P Q QP   ($  PKtML-(M@q  !Q1 0 s0 00 00000000 $ Q P PQ    $   'K 0H-(MQ@U 6 Q P0u0        $ Q P PQ    $   K0L-(M@P  Q 0q0      $ Q P PQ    $   KL-(M@P  Q 0q0      $ Q P PQ    $   XKL-(M@!0R r0 0Q 000 00 0003 Q03S0$0 Q P PQ    $   K0H-(M@P ) Q P0u0 P     P $ Q P PQ    $   PK00H-(M@ c"PP  Q 0q0  U      3 U 3R $P Q P PQ    $   K0L-(M@P  Q 0q0      $ Q P PQ    $   CKL-(M@P W Q 0q0      $ Q P PQ    $   KL-(M@P  Q 0q0      $ Q P PQ    $   KL-(M@!0R r0 0Q 000 00 0003 Q03S0$0 Q P PQ    $   }KM-(M@PP xQ pq`p`P P{0e@ S 0:y0W03ppp pp 0 $ P V VP    $   *KO-,M@PpP ;Q `q`P  :@Z 0 S:9S30U000$ ( P3 U3P!  P X XP   ($  KK-(M@P`P Q qppP `AP P`@ @ R :9 S 3P 0 U:YU3RPPP 1P 0$`  P W WP    $   d KO- @Pq9P `QT pqOP Qc `q^pPPj  % `BP  ^PP~ Pp P p`GP| GP  BP  PppPY p pJP^ PJP ` pU`P< P BQz  0t`@ @ P:9S30P U:YU3PP1(PVPZP0034p Z`  $ `@ @@C Pp @ @ p P@ P :9S30A S:9 S 3P0p1  W:y W 3Pp1Z(pp3 ZW`p3P`p!004P $,p4P A P :9S30P S:9 S 30U`(0P`10PW4p `$3 W3P!V03 V03Q0!,0 P` ^V ^XPV M @ Pp  P:Q30 S:9 S 3PA01  Sp:9pSp3P01p W:y W 3pP(pXpp1004` $0S3 S3P!, P \ \  40 BKO- Z4 Z6P4  +PA 0 S:9S30U0^00 $p P3 U3P! P X X  $   KH- 0GH- !0AO-4M0@Q @pqPpP `Q (0Pr BQP  (@Xs@Y0  S`:9`S`30Xpp3 Xp3Vp!` V:)R  3W_`p1 `$p(0,  P U UP   ,( sKH- M0 РO-,M@PpP c Q `q`Q  0 pPA 0 S:9S30U0`00 $ P3 U3P! P Z ZP    $   KM-(MP@R aV   Q pq`aV   Q$ pq`p`P 6 P{0e@ S 0:y0W03ppp pp Q p`P  P{0e@ S 0:y0W03ppp pp R 0 $ P V VP    $   {K   s H-` @Ppkp" @  >0H-M@q PPP @K0pڔ@PP@P@K-MR&@P`pp PPpڔPP pڐPpWKP H- j H@/L-@P  @0 Q H- M РHS@/0H-@PP   T@0H- Q Q 8 0   ऀ!P!H-   acPH- (M B{a Q0:0Q03%   0 $ !R !1$0    РH- (M B{a Q0:0Q03&   0 $ !R !1$0   Y РL-(M0@CC{0a S0:0^03  R:)R3S  ' 01 00 $0@  !R !A$@ 1  %K/O-M` @PPPP`pWBQ*PQ*p' 0ACP?*C0ERCa/vPPP#  0Qqq` AP@1RL0PpWP P  Q K5< Q/  @BQ3/ Q/ 00CCQ*/M-oP@ oGp ppp' `LHP@PpTpWxVpUpH 0PU GHApuGS  @d/MO- Mp `PH+@ "( E1 @`P p@ P@  00S 0᭠ XO  8 2/P @P 0 0pW 0ዠ S  8 2/L @@1/P  %KH-MPVP K`@F'P,V pUW  P L @P0@ PTQW   D0 BS C T  P05WQ 0TL`CPP @$0o  pO?B !&KHy+MA'Q/ V/pL-@UP( L`P @P @ tPTQV  D0 BSCrT05`` T`LPAPp)M R/H- M B$/o  "  O? N!& РO-MPP  P P  @pI=@@ pN9X*@@@. HpAa qP PP` Pʘ P @0@ S P`JppHpGPpspER pPPP@Tp*P*DpAa qPP` ᔘ P P` 0PU pD JpG@pupDS p P `Z/L602`n`````&`MP` x8 QP7*P1!QQ  Qt  Q  Q @TQ @ Q 0@Ap&Ba qPP`  p P 0PU p`D@GpupDS@@pa tPP`s ٗ p 0PU p`D@GpupDS0ppp Q@Bpa tPP`K ᮗ p 0PU p`D@GpupDS0ppp Qg@Bpa tPP`# თ p 0PU p`D@GpupDS0ppp QD@Bpa tPP` X p 0PUU p`D@GpupDSKP@p^a uPP` 4 p @ 0@T p`EPGptpES0ppp QPBp4a uPP`   p  0@T p`EPGptpES0ppp  XK`V`  {P8&M=M-M`VP KpPG'P,V @UT  P L @P0@ PTQT   D0 BS C T  P05TQ 0TLpCPP @$0o  pO?B !d# KMHM0H-P@ 0AS PK: @X1P0!Q3 Q:  R: P3P1-HyP%D, QP 3 P3R!0HHD D0 0z  zM=?9|MLMdMY9U!M-M`VP Kp@G'P,V PUU  P L @P0@ PTQU   D0 BS C T  P05UQ 0TLpCPP @$0o  pO?B !g" RAKMKTMH-  0^ 0C00H?pL-@P  `Ar P`VLpL-@ 0@P0ASP L0<P P1 r@s6  y5L/pL-P `@r PLp0H-@  0PBH E B VL0@Q) tP`pxhX/////////H-   y4M-`P @PDH@RU6p GQ6 @P`pxhX    BR AQ@5  )y2H-MP@ @PKH` &R6p GQA `P`pxhX    BR ` AQ`‡  BRZ5  K  x1pL-M@HP`` AQ` @P00 AQ0݅0‡  BR(5  KpO-MP`@AP,* pFp3 A qPP' ᘓp15 AS pF`F pG `Fp`PsPGRppKPU``K4 000    / 000  / Ao/ Q/ R/@o/ R/ P/ R/ P/ 0S0S/ P/ R / R 0S  0S \ 0Q / R/0S¥ R/ /K-@p`P G pp P(,048P<@DHPLPTX\P@o `` 0$``BCF1FP@ RP!0 5R q`㵒P $ P r Fp `@@V:$  0 0ywL+!0H-@ P0P ,0 @0RD 4 S(@ D, "5%QD0 Q 0 R R  R  R/\/O- M@XP @ ,0"5QPz `D00#u5qq05paWi pP QR  pQ  Y: Q     p  Z7 P P PQT 2/ TU  2/ 0 3/U PPPpXPPqS 000 p P`F P`P@ ,0"5QPDP 0`0%#u5q!1S p pB W S  @BqW:L`+V0p W`` L00@,CqWW W  @XK 0 0uv'!pL-@ P`QT 2/ TV  2/ 0 3/V PppL-@ P2 ` R. R V 0S`` PV  PQT 2/ TU  2/ 0 3/U PpP/ P/ R/pL-P@P p Q P Q `QT 2/ pTV  2/ 0 3/V PppL-PPp@ Q  `QT 2/ TV  2/ 0 3/V PppL-@ P`P ,0 @0RD 4 S(@ D, "5%QD   ` P PXpM-P@`pP pPpQWt Pp3P P ,0 @0RD 4 S(@ D, "5%aD W  @ ` `X P Q  `QT 2/ TV  2/ 0 3/V QQ Q Q 0S Q0H-@$ QPPPp     PPP0 0 0t !K-RR#@`P$ qPTPPp P    ppPU 0 0t3!pL-@$  aP/ Q& P Q PQT 2/ TU  2/ 0 3/U PpO-M`S: pV K/P$ P# Q  @QT 2/ TT  2/ 0 3/T PPU`KK-P@ 0 BBQ!:`BqVF/\P $ P r G踀 pW:* 0 0s%C! 0 0R/P  P r 000   /H-  0 0s띹R!0H-@ $0 BPBU:  Q0PPq 000  0 0 0xs!M-R$ `@@kT$ 1` V P``P`v Pppp P` 00Q 0 0Cs/!RR/0$0 R /pL-, 0@@^ $1D`E!UQAQ P@PD U@QDNAAT:L0ˠS@ T0L , NAATT T@R Lˠ0Q@P UL@0^NA 0(Q 4  BR:<0B!S`V0 <QpKH-   rO-M@P ABU+ @@Y2*@Ab@/qY ``V$ ḍq?/ S pCapG`F'qpP3PRqpKPUK`/M-M0@ S:;C 0`R0QDA0 R@Bq0QA0 0C/1!0  0@ ACQBU *Q$P  Qz* Yx`R`V& P  R*F$P  Q}* <{PppW'{ P 0Sw*, u $P  Q* $ W"U `PEUP Q    0 P 00EC0  P BQ : A0SpW0K$ `RC0QQPppW'@ P 0S<*Ì :$BK000qQ  CBP  S,! 0Qp CP:0@SpW0`K000qQ  CBP  SM-@ PR 0N0QA0 R@B0aAp 0pC-q1p06PppW' P 0S*G00qQ0 0B`0C#100R1 Q0 BP: @RpW M-@PQ pM0 pS *Gp S@` p@-W``V  P  R * pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @K-@ PR 0O0QA0 R@B0aAp 0pC1-q1p07P``V& P 0S*ቋ00 aQ0 0Bp0C#100R1 QA0 BP: @RpW K-@PQ pN0 pS *Gp S@` p@,W``V  P  R *. pp%  qQ` `C`F&a`  S a 0Q` CP: @R0S @H-  @ /A/O-MQR p@P 0 \ P@ p8@AP<*A">rPP `ᴊ `R@ p0pW b PF`G`F&`7S ` PE  @Pb p@PY:A@K+ A/ A/H-@P|qP T ` ` `,`<`L`\`l`|`````````` `@`$P(`,`0`4`8P<DPH`LPTX\`dhlP?`  ```P3pB  ```P& /OF ```P  n9q !A0 0S C/@@/0   BR *   BR/!   BR:/H-   n%' H- 000CS *000CS*@P:00CC2S AQ H   nik0H-M R\0!hDDlx$-@ R6 ?K0K0)kK0DK0+K0 P0 K0$4K0 0+SK0rK0K0K0K0 P P5@K0<8  /n 0 0'n롣V6O-M@p @ 0 S B@@ 㙿 0p0Q: @@p [PO`pP  00S 0_ X O 8 2/@AAT:pA0p @  BgQ@pTKH- 0S  R  2! R0 ^  RHK-MP0pA0GCQ0pA0GCQ0pA0GCQ= 0 0  @ `V @@`PP*@P ``@pW$npPApP b((K  9mK--M+CȋHj @@pW   BQQpP  :`PA`EFQ`PA`EFQ`PA`EFQB p`+pW @@@p PZ@P p KK)p@`VD ``<P<@HH K  lL-M@hpK0 A LAR0 A LAR0 A LAR  0 0hK  l  0H-M@P@ENDQ@PAPNAU@PAPLAU @PPK0  SlMOO- M`P @  ` B,10r QQ P<0 A NAR0 A NAR0 A NAR$  0 ,E@ !Q:  A   r 0S2SK  k͚O- MP@Wp `A   b 0S2T P;0 A LAR0 A LAR0 A LAR#  0 @ !Q: A   b 0S2TK  kIKO- MP@Wp `A   b 0S2S P;0 A LAR0 A LAR0 A LAR#  0 @ !Q:K A   b 0S2SK  1kŗL-M@LpK0 A LAR0 A LAR0 A LAR  0 03LK  jL-M@PpK0 A LAR0 A LAR0 A LAR  0 0PK  jL-M@TpK0 A LAR0 A LAR0 A LAR  0 0TK  j=?L-M@XpK0 A LAR0 A LAR0 A LAR  0 0XK  YjegL-M@\pK0 A LAR0 A LAR0 A LAR  0 0[\K  #j덓L-M@`pK0 A LAR0 A LAR0 A LAR  0 0%`K  i뵒L-M@dpK0 A LAR0 A LAR0 A LAR  0 0dK  iݑpL-MP`APFEA Q*P`APFEA Q*BP@APDEA Q: ``Kp  i!# Q 0, $ /H-   mi뵐H- M 0B NAR0 A NAR0 A LAR   u Р  >iL-M0@ 0D NC"BR*@ 0 B0NB"CR *@ 0 B0LB"CR: 00 CK  i13H- 000CS *000CS*@P: A"  h띎K-p@AQ *pAQ*pAQ6: P `V PP`QQ*PQ ``PQ$ȃ@AP ((HB  hEGH- 0 C0LNS0 C0LNS0 @0L@S     hh롌L-Q 1$,00000C0 0S& @T@@2!@T0 ^ 0S0Q @\$,0@000CQL  hik Q 04 $ @/H-   gO-M`   PA \  0 0SZ1  Q* @L p0p2 PURR  ! Q:L 2 0S 0rS  r pWJ`ZK  g땉}  /0H-P@U P vv00H-P@{P ((@0vP P0D BBQ*0  ig#륈/(/O-$MPBY@ Ev@U UAC`P0BVN gP ᭲PFYP* 7p* *JP@EPHAA* *@QPP vU UM0Q   U A #WCPUUA v`V:X@@P T P 1/Kd#KO-M@`PPP*`pK K  Z]i`k  qQ"R& /L-(M@q@r @@@ @@@@ @ Q P DlP ?lKR///O!O!K-(M0R0000 0000  @ တpwQ `P`P0 @ P P lP lK0 R0 0L-2OoO-M < 0`q0 AAJ XP@@p:P   PPP0P|YH0  Q 0 S2p3KM!   q0H-M@qPQP K00R/QBo/ Q/1L-@L/H-PQ@`P& @{pp ጋ vP P Pd |t@ r$  \ZēK%C!}][_0H-@  tPU V0H` OL IT8 0HB >t0HD>K!R>y5K!O-M@pB@QU#W pjU7*b/q@U`@aV-*jPXPP"  r`@U Z Q U `FV   YKO- M @0rPUPP* K p@P+* A0!/rAPAP P*Xj` 牁PW  Z `P KO K`O-M@P*K Pp@P,*A 1/sAPAP P*j` 爁W U ` KOǷK`O-MPp@JP2*@`ApA"rPP" P"*pi0J p`@Z @@D`  V KO舷KPK-P `@FP+*B AA"rPP P@*ipF0BV    XY@ KP@pO-MP `@P/*pB A!/rAPAP P@ *bi0 p AV0   Z@ KOK@K-@`P AV+ @ȑY1*Ar/q@Y p@qW$ W%*%iᇁ `V Pq  B`ARU Kٶ`VpO-UM@0LK ( t pQ LK өx \p hK`p hpKTp X R0(` hppp8q@W8 P hh8(L@K p0P g$ p`@p!>!C!e\3!*KK-P`V pW hP dflP@GlU P ffVp`PP\P `f( f 耂K)KM-8MP Kw}@!(08q 0a8App` @P`@U P ffK bwH- H6 X /O-gMP`(P@ @T T$(0urP$(  (0$p 00 T0`8ĐQ `0 Q % p Gr R*0S:Q /? X05JwP1( @`p0S?00@@P S# V&?0/PK ](t/@0 XS @/ X$V 0`0p0PQ QApP:APpPP3`C0<v  PU! U' Q" EpQ 9Up Q  Q@Z y0Q"`Z:P@@ᰝK-P*@崐 K Đ` @Rt:pVh*PJP:Z  Z `P*x Q/*@P 0o  P * `/ K(@) K(@`" pxPLؠ對K P*崀 K V@`Đp`V: $(p Q* ⸀K⬠0000x00 0 p崀SV du ( 8p X $`D  l X  x 4 (Lt P@hlX|0P P#R/0 6 DD? 0៨ PP*ĀPP@P @P(*PXP Re T EPMNNNNNNNNNNNNNNNNNNNNNNNNNN= =NNNNNNNNNNNNNNNNNNNNNNNN= =NNNNNNNNNNNNNNNNNNNNNNNNNN= =NNNNNNNNNNNNNNN\NNNNNNNNNNNNNNNNNNNNNN pP^ 0KK Pp  0@!P P^*@PLL$Q R 0S / ᪖$P[ /? 0;, ,4 4` 0 AS*A$ HH R PqAGPPK R Pq hh|PPP R Pq  gꈌL@ @`8!7!hK K P RJ p@A?QN 8!E+#7!!7!6!Z7!-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaax-----) Rj Pql r0K 0 p 0 @S*@P@ Đ PPK RS Pq \\H6!@PJ PuP*P.> 05!4!@PX `vP PX/? 0xxppPPP R  PqPPQQ"0A28 QPt   P RG @A?QK V2!4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e44444 P PP RM Pq   ``PP  P RG Ā@A?QK )$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]$]p)|))T))'   PPQ @@?PUL]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L]L](L]L]L]L]L]L]L]L]L]L]L]L*T*\*(p*Z @@ PQ  q@ @  @tt30 0-TT/$QO Rb 0@S / PP *P<P PP Rl Pq9 ?.> 0PP `Q Pq] bLP PP *PQA$!D$!$$[PP Rl PqPi R TuXPO @ !`LPPK RT Pq ddPK $ Q R TDXPl `E>Pgp;4444 ;4 54 5 ;4444;4444;4444;4444;4444;4444;4444Pp088#< <P@P @P *P:ll(( XX K s R Ā q  RRP$P{ PxWPI @ S8/8? 0U!!!@Ā 0@P{*AÑb!r APAP`g j@ Q p0!S `ACA3WP"`F @p P3 PP.  0 K 0R * 0@P'*AÁb!rAPAP` Hj@ Q p0!S `ACA3WP"`F @ p PPP@@PQ !0o PP PPmL0W@ĐP PP^L0꽅! 0@P*AÁb!rAPAP` i@ Q p0!S `ACA3WP"`F @ p PGPPB@@PQ< !0o? u!/? 0/P? P0[/? P 0}/|? P0td/P`? P 0jD/@? P 0aX(/(? 0$!uL/ ? P0Pu.> @ 0F.> P 0:.> 0u/? P0,/? 0f/? P 0=/? 0W/P? P 0 ĀX|tL   RQP@Q,PPTP P/? 0'@ 0@P*AÁb!rAPAP`R h@ Q p0!S `ACA3WP"`F @ p PDPP?Q !0_o @ 0@Pg*Aqb!rAPAP` h@ QP p0!S @`ACA3WP"`F @p PPPD/D? 0X0K 0`PPP*`PĀ-!HpL~!? 0PѠP0K 0P/P/&I0@AS*c  P@ P PP2p  I` @ Q4Q  0S0 Q :"xKrPp@ jrL? 0PiPP , R  BU* K0QQQ 0:hsL? 0P9P䀝P$@Q AU*b `P*`@/0 oqL? 0P PP /&I@AU@*e  P@UP p@TP"` @4Q R0 Q "wP@ @`̀P 0B!QLAࣘpL0/ ? 0P察PP , R  BU* K0P`Pq*`PĀ/ nyi!? 0P偟PP$ R/  BU**" 20P 0K PYPPT@@Pb@qQ *Q4 !0o3/ )x/t? P 0\? K04@ 0P`P0 t@S[:. /? P 0j? K0PP pP R 0S / Ip $Pl p0Rl/h? 0< @@@U*Q 0@9U @0p ATDগ> 0P庞PP$ R T: X :J B!U*A@T@ P0 AU>Ez><.0 > 0P冞PP ,@Q AU *` `KP*`@Đ/ N/? 0@I? 0;P P  @PP*PL}uW!#CA !BC<BBB !B;tW !KB6B#B5@AK>t ! p0@PZ*AÑb!rAPAP`S |e@ Q p0!S `ACA3WP"`F @p P PP P1@0K Q$* A:s; !/0 (pA:/ `s !?AfA@P:Q pڗ@IGRX!W@P3R  ` 2Pr !`Q9  BQ,RQ2 TP! % P 0@P*AÑr!rAPAPp dPA ``0!S pACA3V@pG Pp P PP @@`R@qQ *ĐQj !0oi U!!@Ā 0@PL*AÑr!rAPAPp nd@Q ``0!S pACA3VP"pG @p PPP ,!!PĐ 0@P*Aq!rAPAPi #dPA ``0!S PpACA3V@pG P崀 PPP vh/h?@ 0[5 0P@PP $ R   BBU* AT P0 AUEU T!/ 0p!h/d? 0fP?0L/ ^PPPP @TQTAD@D?0/ 7t0 ?P`UPQ *P`;D!s2 !b8@ 0AQ*@q!r@Q@Q c@a P`0!S @pACA3VP"pG @  ĐpP|PPw%p QpQ05D崀U   !c7 U5!KP@0AU505UaPE 0 `F PEPP KQ QQ  B p6.  2] !h!p.w!-P@0AU505UaPE 0KN `F PEPʜlPp`TK@ FK@K@K@K iPP V`pV@  P V V@ @1@QQQ8 B8,l84A  [崀~!5f!0K 0P@T P0 AU EHU#40AU505UaPE 0K `F PEPʼP.lPp`@@KK F@K@K@K `P rUPpU@  P hUfU@ QQQQ Q:/p? 0XpIp @ x @Ā 0@P*AÑb!rAPAP` 1a@ Q p0!S `ACA3WP"`F @p PPP@FP8@ @@ @u@Q!k Q@*QKk %Kp"K`Qp`p`* ! / GP0AU505UaPE 0K `F PEP0̀PUO p0|P!@ Q*@嬠70APN *aB!rAPAP p`PA0@嬠S  CQ BPE 3T`DPE  ̀QP0|PpW pPPP  ```Q` 2 #+.  ^X P@0AU505UaPE 0K `F PEPʜlPp`K@ FK@K@K@K PP S`pV@  P SS@ @QQQ /p? 0Xpp墇 +0pA \L m c P0AU505UaPE 0 `F PEPʼPQQQ /? 0XR `@0A!QAΐQ05D 0K &'Q QQyp@ |T"kpp`PW嘀P PPp P  `pPK 0ooL@P pp@|P p`@XUPSP qPP .P> 0P ˆ> K0hP ?6I AB!P+*|P"`@1`F`&v PX Y / 0嗆P@ / 0ႆpPpPPCp@ $ 0@P7 *AAb!rAPAP` Y^ Q p 0!W GPA7S`BPENp PPP 0/,? 0XP Pp0Pp0T505T|aPD@ 0K `F PEP@崀`YL P@p!@ Q*@嬠40AP *Br!rAPAPp ] A0@嬠S !pB C B 3T`DpG ` !ഀ p@P U|P, PP' P:/? 01``@ rP`xP㰍K P*M a @ VP`xP㰍KP*㴀]P@`pPq P PFp@0@K}P*@pP:H/D? X0)0K $|`|@@PpPmKP *P` z  KPp v@ 崀0ST? 00T 0r0S$/ g| T 0bKgf  Pu0 #@ S "@`0`P]KXP*P KPp0㬠 KkuP0Ȁ AUEU505UAPE 0q @D PEPPWD Pp``P*`p2 0@P *AÑB!rAPAP@ 8\P!q``p0S ACA@D3W`B@D`P pPPP /? 0Xⴀf>/0  T&P &HP P`0 AVFX@ K@P@ @ @ @    0ppN O `v  P  @A pP 0o@lPvPcK;P*`0 Kⴀ pQ1`:u 7P @r Rp `p+p @8(R*Q !0_o%K$ Kp㴀관Q`05PPY @PP'0 Q *嬠崀>; 0AP*qBR!rAPAPP [ Q笠0pS !PPB C B| 3W`DPE|0 ` P! PpP@T:@P@Q,PP /? 0XṂ8 Qldl D ,PPD;@hpQ1 P@qQB@@pLP4  (T "0`S̐  ` 0 000s0S 3//o` QPldl' D ,PPDP P | D AP Q p/p? 0` P@Q,PP PpTP)1P7dp@T`hP dMlPlU P MMFTQ~ ,VP,FyhD/?@ 0ʁPf[P @q R:@pP3 NPx`P@0@K帍`P*@崀 Q* [  ! D ?0/ K/@0K Xu  b hJMhp0P@U0p P \MZMpP00 BM} V@505VA`F 0KA  @D `FP@0P}  P`QC*`Pp p ! Q !PPQ2S CqpW:Cq0S3BPDpP*pu`P0@K]KP*@P0K K+pⴀg 0`P 8 0hp@ B /O`?!D8 P\ @?0000, @0 K 80Kb` Q  q @0@ /@? 0@ 0_ ? 0 K0 0@`@ 0* @Q /A&Ia@|0"p1  0@0p `W` @ppP` X"Q  P p> K0ᰐ  /@? 0@ Q `i@ 0A!QAtQ055 D|P K嬠崀y 0AQ*@Ar!r@Q@Qp WQ `0 `!S CAPA3VpPEp PPPP /P? 0XP,> 0K 0K 崀 pQ1P$K kp Q PP R/ @pP*QPpQD1B 9P@u  P  ppP 0opp@Q]e 00KPP0@ 8  h8 `0p@ B h/O?!D`8 P@``K0 ;p崀?0/ K1 /@0K X~n X0 #>0@0C!qQ 1o: qP 0Fp 㴀UU RqQ 1o K pp Q QQqQ 1o ypp  ! 0Q"! qQ 1_o ^pP"0A0u@8Q- R Q 7 Qh"0PA`8Q00 0p C0h?OG?!P7p pp0@ P800K o8 0P K) Q@<0<,<  Tp-+; 0}Peq6l +; 0}p KP : K0֎P Q *: 0 *: 0}[P0$Q <@AAS*A@ T@T P0 AUE#UA) }p) -  )9 0~}Ā P 9 0sP Q h)d9 0 X)X9 0X}P0$Q <@AAS*A@T@T P0 AUEUA( *}㴀(|8 0}hP X8 0P Q (8 0 (8 0|P"$0QH <@AASE* '7 0|P (8 0| K $} B P @TP [P[@[P[1PP[1P`[1P[1P[Pp[1P[1p@P[T0[1[p@T1P[p@T1 [pQ1[pQ1pQ1pQ1pQ1p Q 1p!P:&6 0}|Pp  0@`|0K 0wPP*`P5 0@P-*AAb!rAPAP`= OT Q p 0!W GPA7S`BPEN pPPP %4 0X|P` $4 0|$4 0L#3 0{lP \3 0P Q #3 0 # 3 0{P0$Q <@AAS*A@T@T P0 AUE6UAT" {=e e "2 0{@"2 0{"2 0{%P"P2 02|Kx"t2 0v{!0 m{ `R@P @  Q:Q P K !1 0H{KK!1 0!1 0\!0 84  8($  8 qs.Y&ڻ LM&4' 5&] 0  LL|  | 9%N xL$% $ѹ #Ҹ LI#0$ 1#Y )( "&%T{Ppq 9"|l tLq   u$ δ EY f" 9!} m m U A eٵ M-M@pP 0l`E ``,`@4P 8F0P0`U P FFKK-MP@`>P P/? 0z>P P/? 0}zP Pz 0 ~PY  @P$*@L 0 f 0_P  @P*@ 0@PD*AÁr!rAPAPp 6Rሑ燑@0@T pADA4S pG 帐PPPEFzP8@l                                0                                  tdT       d            ,8L, hP t     P\PP 0oo 0@P*AÁr!rAPAPp1 qQሑ燑@0@T pADA4S pG 帐PPP K8 6 Kp p`PpP  P 0_os`PpP @Q !0_o_`PpP @Q  !0_o K`PpP @Q !0_o7`PpP  @Q !0_o#`PpP @Q !0_o A AK+0A +0A * `Pp`P @Q !0_o`PpIP @Q !0_o `Pp.P P 0_oPP 0oo`PpP P 0_o`PpP P 0_ow`PpP @Q !0_oc`PpP @Q !0_oO`PpP @Q !0_o;`PpP @Q !0_o'`PpP @Q !0_o AuK AK8'0A K'0A ,KYK& KK& & KPP6 0oo71|&0 XtwK lP`vP  _P`vP@` PJ*`3 E`v  P  @A pP 0o*Pl@vP`P*`K P`uP@@ P`uP@ P`uP@ P`uP@ P`uP@ P`uPP@ P`uP@~@ P`uPlL P`uP!|u L P`uPD 5  |P`uPd@P)Pg*P^@ aP`uP,(@ SP`uPp@ EP`uP< @ 7P`uP@PP"*P@ P`uP@PP*PK ^K  2o/  t R 1 ( ȫ 9 LLLL LL LL K-PА`@P P  p pW W) $P(P  PPU U0ME p0P 0 0M$ $0R   PW M-@` 0B!QA~Q05P% P  P  pP Q   }PpU:M}M-M@p `0 0CQbV V*0 C0 !,uK00SS0 0 F0~V:P P KP,pp,Q 848 4`P K 0 8 O-Mp@ P @0S *0U`` vpWWKQP``PP=/0 Q6/UPP00  tK蘠 UuQ P/Wl\WTv H 0  PtKќ ǜ JU PJ K-M@ 00CP!UE}UU05UapE P( 0l`F pGPX,P P8pWP4PX@a 8GyV8hGV V 0 0X-t8y0S Cq R3p R 888QXP pB 1RB}R05EK  K-MPp @`R `F0aSRPK TR  @ @  C0| p G @sKP O-M@$P Pq  00d 0d`uЀxpP*p`9$4@ 0sK 0@P*Aá!rAPAP8 KPቑap0`V FQAPE6S PE QP帐 PPPGp`V*8p,pP   W'1%U  0,!PP ( ,0({ ,P qQ 1o 20 ",P i"0 X sg p 0Q QQ,P IQR#V#N* `p   Z", ppP(@P /0Ab8p P ! KbK}P*`!K KP p0(xp` FU$KCq R3 KKJ[4LQ U hKKO-M@$P3 Pq  `0_c upwP0z  0uPPPEpP*8,p Q"2@ 0FrKU1Q Q,Pp  10!,P z!0 XrR Y" 0,&PB ( ,0( U`,P qQ 1o p  Q,Q@P /0AnpP (v0Xp` F{$K]ɓ KK@J}H  KdKO-O-$MpP KP `@(,Y *P..`@( (J$PIPQ*A> p"rAPAPD PD*h<0pY `@ " `B G I0 `F  XP p$P2 pU$0(, R<(Q(LKORhK O-MP `@P/*pB A!/rAPAP P@ *<0 p AV0   Z@ KO蹉K@O-M@FBP_PDp Lx(T0\Ht$ P | , X  `v #%q  35q  CEq  FHY 0 Ppp3P7  .PP1 P) 0_o*R0 PP 0oo BP`vP84R0 PP 0ooR0 wPP 0oo P`vP  P`vP@aP *` h)/0  KOn9`v .`v #`v z  z  z z -/`v =?`v MO`v ]_`v mo`v }`v `v `v z z ~z spw0 0gpw0 0[pw0 0Opw0 0*,CPu ?A8Pu TV-Pu ik"z ~z  z `v `v `v `v `v `v  `v  "`v 46`v GI`v Z\`v mo`v  *P`uP@QP*PY 0 `PppP  PP P| 0_o}Y 0 EPppP|  PPv Pn 0_ooY 0 *PppPn  PPh P` 0_oaX 0`ppP` P `Z PR 0ooSX 0`pplP^ gP `X PP 0ooQX 0`ppQPV LP `P PH 0ooIX 0`pp6PN 1P `H P@ 0ooAY 0 PppPF  PP@ P8 0_o9Y 0 PppP8  PP2 P* 0_o+Y 0 mPppP*  PP$ P 0_oY 0 RPppP  PP P 0_oY 0 7PppP  PP P 0_oY 0 PppP  PP P 0_oY 0 PppyP  tPP P 0_oY 0 Ppp^P  YPP P 0_oY 0 ppP`BP  =P P 0_oY 0 ppP`'P  "P P 0_o Y 0 ppP` P  P P 0_oꃎ S 0xp`ᘐ P ` ` P P 0ooe S 0X`v 嘐 P  P` pP 0ooS 08`v 嘐 P  P` pP 0ooS 0`v 嘐 P  P` pP 0ooY 0 pw嘀 nP `  hP `p PP 0oY 0 pw嘀 NP `  HP `p PP 0oY 0 pw嘀 .P `  (P `p PP 0oY 0 ppP`P   P P 0_oY 0 }ppP`P  P P 0_oY 0 bppP`P  Py P 0_oY 0 GPppP  PP @Q !0_oY 0 )PppP  PP @Q !0_oY 0  PppP  ~PP @Q !0_oY 0 PppeP  `PP @Qz !0_o|Y 0 PppGP|  BPPv @Qj !0_olY 0 Ppp)Pl  $PPf @QZ !0_o\Y 0 Ppp Pi  PPc @QW !0_oYV Y 0 tPppPX  PPR @QF !0_oHY 0 VPppPH  PPB @Q6 !0_o8Y 0 8PppP8  PP2 @Q& !0_o(Y 0 PppP(  PP" @Q !0_oY 0 PpptP  oPP @Q !0_o%/9 |P`uPTP oP`uPGC bP`uP:6  U`"0PA"0PvP?;  <`"0APvP,(  )`"0APvP@  `"0APvP P`uPT P`uP$ P`uP  P`uP  P`uP  P`uPp  P P`uP$  Pu  P  @A pP 0o Pu  P  @A pP  0o  fPu  P  @A pP 0o  J`v  P  @A pP 0o .`v  P  @A pP 0o `v  P  @A pP 0o `v  P  @A pP 0o pw  P  @A pP 0o pw  P  @A pP 0o pw  P  @A pP 0o Pu  P  @A pP 0o jPu  P  @A pP 0o NPu  P  @A pP 0o@ 1P`uPH@D@ #P`uP: 6@ P`uP,(@ P`uP@ P`uPp @ P`uP<@QᘿPi*P_@ P`uPHD@ P`uP:6@ P`uP,l(@ P`uP8@ P`uP @ P`uP@Q7P*PKlzPP_zPPRzPP Ex`"0PA"0(Pe@ E E 0P@⸁߾P*lv"0pAPG lv"0pAP3lv"0pAP+ 0 P @a᜾Pm*`d|w` 0|w` 0 |w` 0(P@qkP<*p3zPPzPP s zPP@ ḡ6P*K Kr r yq [q Ru GVGbV? V@*p.R0` Z   ` p  "" 0B D J 0C Y pPPrr @$2 @Y$0(, -( NKpq0H-PRBPSBP#QBTT  r   S"0" R"@" s   P0X 0H-PRBPSBP#QBTT  r   S"0" R"@" s   P0W 0H-PRBPSBP#QBTT  r   S"0" R"@" s   aP0,W H-@|Pq`&U0 #!Q 1o@qW &U"0p"'> 0@p!Qr`w !dQxU M-MX- 0@0C1h!0X  p!Pw u`V V!0@S:L@RD @ V0 5 0A7(  @` KLaJJM O-MP`Q   R( 0 s-@@2pD姀rp`Vs` 0   B  0 Kd @`0 @0` <0  07q @ 0KF kF P O-Mp@`T pp@PP*pP @@pPU:,P`PPWq~Bf !$t `pQ R 4P 4P0 Q` 傻"KOHQ/0H-@P0HyO-MP `@P/*pB A!/rAPAP P@ *+0 p AV0   Z@ KOyK@MO-MP `@P/*pB A!/rAPAP P@ *+0 p AV0   SZ@ KOIyK@O-Mp`@P偡tQ Q' Q/P{X% KO/pQ$   ! RQX PUXAKGW GpP:GpP3 չ p0S,X K J M-P@`p P :PP** AP  0@0/W pQHPQDpp@ PqQ 1opP/pP* ޾p ! Q!Pʾ EpQTA R *Q8Q  KK O .J IL K-`hPP P up@eP@1  (U"0"  !qQ 1owp  0!Q"0"# Q  P RT    !VQܗK7H nG pL-M@Pቺ uPU RqQ 1o *p ! Q!0PUPPPqQ 1o 0PUq`p 0P 000?OE?! w` QKpF L L pL- M@8P` 0`!  0i```QP )<`P$)P0\  i5PP x5) @0P(qKpmE nK IK M-M@ 0`PS| 8V- FR:- FRw*Q  0pP*PpEXFQ *Q!1 0Z]?9FQQQ 0@PM*AÁb!rAPAP`1 E5!qP0pW `AGA7SP"`F  PPP Kx t0 0X`4 00 0]{  uUh? R@ aC aI M-M@ 0`PS 8V!- FR:- FR~*Q  0p  0P`P*P`EXFQ *Q!1 0\?9FQQQ 0@PN*AQr!rAPAPp2 4 a燁 0`V pAFA6S pG 帀PPP Kx t0 0Xp4 00 0_\t  F뽠< P-> @ F O-Mp@ A0Q c0RPpDP @ 00cT P 14@ $` @KL-L!3^  T 0 S @ T0H-  C^ : 0@@#\0 00 S* P:@$^@@TPAH,4$<D@|~}{o0 SB0  MO-M@`PP  Q  QRA ` Q*`P)0AQ**BÑr!r@Q@Qp 3!aPHV pAFA6SP"pG @ KpP@o `/ PRoQ 0o@ ` ` bP3/P/ P/Q q`/H- %pH/0 S/1H- OpH/R00R1R1R/H-  ""0Srs ^sH- P#0# Rsr\rH- 0S SP10O-MP@`@KUpV 0A}q  R#v 0^qU 0UqVA 0AGq  V $H-M@4P' $(,0oUn@kF GP  `Q(j& 7P  `rQ0Z&H 'P  `bQJ&  P5  PR,Po,2&,P  P/P,U  &,Ph \PP,U &44P- P 0pP `P P P  0P pW WSR WSUPV4   1h \`PR@S0T PUP VV PV %UPWUSPV,PVQ ,T@PP %KPTP,E? ? > > > W> Q> > > > }$= = = < < < < pL-M@  xP P ,0yP `,0nP=F%| | WP P`P @0S`P!  Kp$D"D!M-@Pp`P%P P P Q:@P @P @ 5PP@$ `zK-PmUpW`w@P pPP wPpWpEV  vP 0/0 R 0S/Ao/  /0H- @0% $ 0PU  @o"0O-MQ`O`iBmm >m@ 9mQeqaPpV  Z 0j @0 fV pFT:ST Y  KO-,M_ o @ 0 o@Oq  0n4$p'" @s0$! n%`P6# r5#   $0 @p 0? ቐr p p# 3R`0_0@s`#@3T PSRぐ  @$p?W: ' # 0p  W  KO-M@4a`l4a lp  QlZc!d@`IpR ` 1p# i PJQ*0_ pPP 0A@?V `W:RW @KO-$M` @1@RqP@1RU OnPUp @0GnP0'"pp%"P  8n8p&"p("0 A@@p加p P `Q`Y`*`ቐ`oቐq @P^ `p@@PW@ *@ /0_?00 /0@0S PoPUP`P3`@` @PTpZp: @pp*`%p 0  KQ-Q=,L'%+A!dTN/       /       /) '0 / !" 2!%*!"A  +!/H- -00 A!?CR:&!8 p |CR` CR2* rqJ` x z Qj0 Ag0 Qg+i;!+Ie"IgKh+#KI!+Ig;h$;I"IiKf+#KI!+I1 A$ "+i;p+#;;B s pFQ A`B+C;;AC++ACKD[[AD;;ADKKAD++AF[[AB;;AKKAaF++AB r p$ p `#$++@$@$;%KK@%++@%;;@%[[@'KK@"++@ z0 Q 1 A ++@ q p q0 Q =?uI?;h(.Ÿ?YlUDU?ȊY*@}oԿUUUUUU?K-':\3&-DT! @-DT!?\3&<-DT! @H- -/ A/CQH x &/!DQ%Q x&! QIH 8 z1 Q0 A p z0 QH 1 A q 0 Q 8 x Hz0 Q1 A! x0 QH 9B.?0 AQ !5 qbڊ5 `0 Q /GQ p0 Q/H- 0Rd @* 606#2#1CA: q3@QH@ ?Py 0 Q / q n+ a A0 Q/o +Q @;A?O pQ+aKbF; F[[DF;;DFkG{{DG[[DGkkD;b;D+KPK`K`# ;ta@;Bt q p> 0 Q/P6+@+`b  *;+B qP #K;pKbKA t  R0 Q/+tKA p0 Q/ p0 Q/+p A0 Q/PCDR>?˖dF?Y"$I?x ?xq?UUUUU??v?x ?˖dF?xq?Y"$I??UUUUU?PCP0cL0H--@0 AQCU:= p XCU % P9+pKʂ2 ` x ] ^ I^ ! I^+_;`";I I_+`K#+I!KI ^_" $ z Q0 A 3CU i(: AT p pS q1JO+`@a `/+0;;A0++A0K1[[A1;;A1KKA1++A1[[A1;;AKKAa A0 Q00 Q(K2 A;p#;;s p;t;Q r q p p`T`1 Q0 =?uI?;h(.Ÿ?YlUDU?ȊY*@}oԿK-':UUUUUU?\3&<-DT!?\3&-DT!?u<7~L--0 A@GP: p >0CpP*0 QP 0 Q- 1 A q"P:H++@૰ :z2 QE1 A! z y0 Qꠛ +y૰z2 Q51 A q z0 QJ0 A`T`1 Qu<7~9B.?00 A!4DR :0?GRP! R p0 Q/CR *g+p/R-*0 Q/ 8R* R*+p; prQ Fc p0 Q/ R*++@ p +p p  +`pb/;0KKA0[1k2;kA;A1[2K[AKA1k2;kA;A1[2KKA[Aa+bq Q !++P   r q`a 0 Q/ @0 Q/ q0 Q/u<7~":? v$K{?/lj,DR-ޭQ=Рf ?mt򰳿n LE?q#q$I?똙ɿ UUUUU?-DT!-DT!?DDPDH-pbApP1+C_G0 AWp`apW p0 Qvqp #  TV#WI WE WGj %H1W WY  q0 QVQS K+;p qc 0 QW W W= F 0 Q8>  p0 QF=P +, BWsp 0 Q0 AW ( ( (  W W W` 0 Q q x p-DT!?-DT! @-DT! -DT!!3|!3|@-DT!-DT!?`K`K`K8aK``K_K_KH- M ACPQ P* GP:@ p `3CP++@@++@@++@`1*+"+`+@+@ r P* P4 P^ 0 Q QP:+`3CP;KKB;;BKKB;;BKKB;bz*;b;@ ;B sCP,+- 0 Q QMPK* ` y 0PQGP:+`;KKB;;BKKB;;BK[`KaKER+E p` Z@2@;K#;`b[[P;@ puL 0PQGPB:+`^;_KKB_;;B_KKB_;;BK[`KaKERZ+E/+`3CP=;>KKB>;;B>KKB>;;B>KKB;b *;b;@ ;B s` CPKCPK@4@;b[dk;@kR pv p0 Q Р@4@;b[dk;@kR pv p` 8ı!>RO~>wQlVLUUUUU?|Z:=+Z}W>a*?IUUUUU?O-M- Mp V!/CQU {)  DU VCGS U pKQ pQH!9!DU2 K+@ +A  BPEbʸ* ! U;p3+S;S*%*bR7%bKp pp3 R;t3+S;S*A2Q, b t;ts);R;p; /GU-:@ p  w U p p+p @T!`aнsp.m0_?1cba=`a=sp.;.;I %{9@T!?1cbaнpAp>+ `/Op%* ;_@*E1 BVK%* P qa +,($   (80qa +`@D00PE,( H$p,B@ (G$L J P( * E*B $pPv@!.$ qI@o pp 1b_VK a+P + + R pVXVKv_0pa+@V;+C ;KH^+Da;$PV(K+;D  + KH^;DaKV+;KB  + ;PE^KCa+V;K+C P;KPE^+DPV+;C! )_+p p p+ P_LP HPdP`P\PXPTPPPd pv p tc``  n  ^+JB ppKGH@$llVK˴,ۺHpK$ a @ *@q!A  R1 Q . A h0 Q0 A, 卋R J `840@Q$Q4$A @R 0\H ( 0tPS t0G0 R, pK(R!R R??0@( 50R ϋ0ˠ @O ?@@0 @, 0@\ H:P  Q0 A, 0`8@BX : @@1Q0APYQ QQPq2 U0   N N 0@0+A@V BHpR :9 Q b( @}0 A   ,   `  A      p (H BP  QRX60 AH!Q  A` `@;?[[D?;;D?[[D?kkD`;;DK` [ ;u;qr+q0+AP  P q s pp1 Q/ a`1 Q/a1 Q/iW @9B.@Q0-I+eG?vkA,%jV?lf>UUUUU?NK4NK|h h g pNKXMK MKL-@0 A` ? /CS p 0 QQ& 0 Q p5BQ*0 Q1 AB+Q q*;`r pr 0 Q t+1 A aa`1 Qu<7~L-0 AQ ! P qVZ5 `0+Q0?GQ p0 Q@POCQA 0 Rd? 0@* 6   "BKC[DkE{F1 B qp+a;b[CKkCK`CK`:[[C:{kp{C6 R+b+C3 BA +t, @ p p A, +p;c[)K+bKs+@ u s p t0 Q  0 Q p 0 QPCDR>?˖dF?Y"$I?x ?xq?UUUUU?? eG?.=P۪UZ?GKGK00 A!?GR:p1 Q/89B" \0 Q /)`1 R!6 J$K$[%k1@+;a+c;{bKB;kB;B+b;Bc1 Q1 A+a +q+r p @1 Q/ PCIJ`? $(?QD迒a?H- M! A/CP PGP: `++@@++@@++@ ` GP:@ 0 P" P= PF  PQGP:`+;;A++A;;A++A;!K`;`;D Q D` 0 0PQGP|:+`;KKB;;BKKB;;BK[`KaKER{+Ei 0 Q QP * ` 0 Q QP* T+`3CP`;aKKBa;;BaKKBa;;BaKKB;b*;b;@ ;B 3=+`3CPH;IKKBI;;BIKKBI;;BIKKB;b *;b;@ ;B s$CPKCPK@4@;b[dk;@kR pv 0 @4@;b[dk;@kR pv p`  Q Р |Z:=+Z}W>a*?IUUUUU?8ı!>RO~>wQlVLUUUUU?IUUUUUſH- M ACP GP:@ 0 + ` Q Р+;\!Q /CRV P/ pC(4 ?CR :A \@`a M N pq 1L `R`J+K;LKM[;A[AL+MK+AKAL;M[;A[AL+MK+AKAL;M[;A[A[@ `A++AG  p: +`,` p p` p p q `` /P 0 Q1 R;2 A0 BKr;Bd+q;B A` /  ` /\3&<-DT!?ztp*>2?sS`u󾦒7~?h&0?eDC?W?(V"mm?n&?7d?A?z?cUUUUU?L--0 ABACT 0 Q3T2 A r1:+b p p,5DT 0 Q`2 A B ADT1 QT 1 A a+GT: ` a0 QB0 A`  `0 Q}3@|L--0 A@GP:T # p15DP0p0CP#: CP: p0 Q 1 Aq `xh p  p  `0 Qv 1 A! q1 Aa ta 0 Q u<7~DO-Mp`l@  L8咘D @P  PL 4P0P,P(P$P PDP@P4P0P,P(P$P PDP@PP-b AQ@" @2P 0ACO?! ! r K00,  )  0 0!B>Bq0H-MP  P-b AQ@" @2P 0ACO?! ! r K00,   0 0AjAL-- +C@ h0 QV ` @@  0 Q /!0 ! 0 Q /H- U 1 A H0 Q/ @@L-@  !0 !   U 1 A 0+S @@//0H-MP P-b AQ@" @2P 0ACO?! ! rK084 40 0k  e?f?pL-MP@P[P ``V P 1/P @Kp L$'H0 LO-$MtSP[P \`X` UV P 1/P" R4 2/P/ ͌UN? Q?OSן hAQOI  DL &i dL|6", '0p"ph'x#p&d&l#`` 0p.p} w  P2 P 0`ḺV' ͜UN SL .QOJA y΄Ll")"p'T  %Pp"p9 l'y'0#dX#4#0p&p<>P <p `m  8%'8$#!, (,"UN" )QO ~΄Ll"SljA."p'V8#6"0%Pp# p L'~'!VH!!p%p K0, ,0 0M L`&Hl L7F@F9:iO-M"UN׏ QOSㅚAH!!@. Li~$I!@&`p$pᗬX%\'`*Ʌ^&i'`,K 0 0]:O-MP@QE%  ` p !0  !'-"x"&- # #`" S P`0 { 0t '"mÆ` p! `&#}'&x'pKH- 0KPD 0@$P $#-""%-s+,`"(p&' '  @0a a0 0cQ2pL-  @@! 0!"=##$=c;,P#`%8S0&` @j1F q0Q ppL- 0+#M c0$K,"P$`%X .W!-"`&(" `pM-R @`@$= &0 #;40#`#%m&8&(  R O-M-PMpR$ (0>:W D @ < 8 H$PP(WP1U $(1S8    p` P0  A 00 4`pkd &`! #m&@ X&"mc`$@&c@0 A p `0 QT$Z(* P E< >MpX !!   G .  G, ` T:Q, 8 X X P V P:Q,  P  P!  P4`0 VzW@*0 P  A * *ZP`W:G``  1   Q18LM  !!    Fpࠇ X:P  PY R @ @ P@TP:KO-4M` pP0 R Q:@U T*K@@` P `p(pX! Y P :p`*P0`p P 9P6PU2N P@\ @@T% < E>M  !!    Dࠇ X0:PO 00 PPU@T `@ P' @DP* A!/rAPAP P* PaTp  T@Z  P`pV:0U ^ D1^Q7  D p@Ѐk@+dK$( `& 0$#8 P&7)]%@ X% 0c:1 Cqa @ZQ9 0A`P` B0@ B^Q P@ `Q@K @ /0 v(P @oT  P fY bKHD D0 0Jӳ 0 0A * -*KO-M@T  p@ @ E <>MW!!    g .  G  V:N  Z Z P X P:N  P  P! @VzW@*A@ P  A * *Z@PW:GPP  c   Q1 ~pG V*N@ P  !P G P:N  @Ta KH-  UN? Q?O# 9 4L SA.#!!.K-P `@P(*B A!/rAPAP P@*Fp A!V0  вY@ KR@pDzH-@PQ A PP`UH* VF"@  o!pr!   W   P:@o `مUP1U:O- MQ Qd* P  Y p@TN PI ` Q : M PPP PKqX5 p`V P: MP@$P !R `ppQ @ 0# "  @PA@pXK# 0 0/KK/'-H- T[ L40%P  C%K\KzBK h0P P! P PPPPPnh.p GpXK.l00p @Q }.plCB pl0hpXK.`K 9~BK h0 P! P PPPPP(h-p PcXK.lp @Q  8.pllPXKS.`K 9~BK bh0P P! P PPPPPg,p p#XKZ.l00p @Q -plB=A pl0ppXK .`K 9q~BK h0 P! P PPPPPg+p {PXK.lp @Q  -pltPXK-`K 92~cBK h0P P! P PPPPPbg*p ;pXK-l00p @Q q-pl H@Z?i>_=J&<: pl0xpXK-`K 9}VBK h0 P! P PPPPPg)p PQXK-lp@P &-|P| QpP` 2/ 2/xKp#-X`K,/0  c| ש 0Pp B?K  ށTH` ይ`劂XKtpRK!-p@P , `|ᣩlQp㖩P` 2/ 2/lKp,X`K.0  | q P~ pB?K  x렬`  p$`#XKtK,plP@Q PX,lp`PXKr,`K 9|TBK h0   fT-p pCXKz,pl@Q ,ppXK3,`K 9|"BK Bh0P P! P PPPPPeX,p ࡬pXK:,p t`@Q +lJR9lppXK+`K 9Q|BK h0 P! P PPPPPeD+p [PXK+p0`0l @Q +PJ8pPXPK+`K 9 |YBK h0   9e.p pt+xp@P I+ p|,Qp P` 2/ 2/xpKpF+X`K/0  |   0ЏP B?K  k` ᮫`孀XKtuKD+p@ Q  *lp6543220l`K*X`K.0  2|= ᦧ~ PpB?K  ` Z`YXK"K*pl@P * `|rpQp dP` 2/ 2/Kl*XK(-0  |  @ 0|Pp B?K G᱀` ` xtpK*l@P (* `| pQp P` 2/ 2/lKp'*XK+0  g|  ۦ 0p{Pp B?K ~L` Ꮺ` xtUK$*pl0@Q 0)lp`K)X`K|*0  |> ᑦXz Pp B?K  ~땮` E`DXK K)pl @Q  z)lp`K)X`Kd)0  |? I@y0P p! B?K  P~` `~XKK)p00l @Q 1)lp`Jv/ lp0`KE)X`K,(0  |@ x Pp"B?K  ~뷮j` ᭩`~XKuKD)p00l @Q  (plp̾Ju3., ,+ pp0`K(X`K&0  2|A ᦥĆ0P # B?K  }ͱ` Z`Y~XK"K(pl@P (`|rQpeP` 2/ 2/pKl(X`K\%0  | @ P0u$ pB?K  G}/F~`  p`}XKtK(lpP@Q P'(pl`PXKA(`K 9xBK Ph0%   a#p నpXKI(lp @Q  'plpXK(`K 9fxBK h0P& P! P PPPPPa"p opXK(l00p @Q 'pl*J pl0pXK'`K 9x8BK h0' P! P PPPPPPa!p )PXK'lp @Q  `'plPXK{'`K 9wBK h0P( P! P PPPPPa p pKXK'l00p @Q$ 'plBo(m'ĵJZl &j$i#~h">g\!e*  JZd\jmJ] pl0pXK'`K 9wBK )h0) P! P PPPPP` p PXK"'lp@P &*P|ᣣ(pQp*㕣P` 2/ 2/lxKh&XK!0  |* *Pn  qB?Kp PP v{븋|` #`"| tpK&hl@P V&*`|9pQp*.P` 2/ 2/KlV&XKp/0  |*   0DP+p B?K {뗋{|` ᾦ`{ xtpKS&l@P %*`|բpQp*ʢP` 2/ 2/Kp%XK.0  2|* ᦢ 0~P,p B?K z@|` Z`Y{ xtp K%p@P %(`|qhQp(cP` 2/ 2/Kp%XK|/0  |( ? 0PP-p B?K Fz&{` `z xtpK%p@P '%(`| hQp(P` 2/ 2/Kp'%XK-0  g|( ۡ 0P.p B?K y딉L{` Ꮵ`z xtpUK$%p@P $(`|ᦡhQp(㛡P` 2/ 2/pKl$XKx.0  |( v 0L~P/p B?K }ywz` *`)z xtK$lp0@Q 0]$pl`Kx$X`Kh/0  |B ,D Pp0B?K  3y@z` `yXKKw$lp@P $(`|hQp(P` 2/ 2/Kp$XK/0  U|( ɠ 0P1p B?K x:z` }`|y xtpCK$p@P #(`|ᔠhQp(㉠P` 2/ 2/pKl#XKh.0  |( d 0<~P2p B?K kxՇy` `y xtK#lp0@Q 0K#pl`Kf#X`KX/0  |C 4 Pp3B?K  !x뮓y` Σ`xXKKe#lp@P #+`|dQp+ٟP` 2/ 2/pKl#XK/0  @|+ ᴟ 0P4p B?K wZ%y` h`gx xt.K"lp0@Q 0"pl`K"X`K.0  |D j~ Pp5B?K  qw}|x` `xXKK"l00p @Q R"pl[J pl0`XKg"`K 9rHBK vh0P6 P! P PPPPP[8/p բp7XKn"l00p @Q  "plYJ pl06pXK"`K 9r-BK .h07 P! P PPPPP[ .p PXK'"lp @Q  !plPXK!`K 9ErBK h0P8 P! P PPPPPu[4/p NpXK!l00p @Q !plVXLV pl0pXK!`K 9qBK h09 P! P PPPPP.[.p PiXK!lp @Q  >!pl PXKY!`K 9qpBK hh0P: P! P PPPPPZ0/p ǡp)XK`!l00p @Q  pl2UF pl0pXK!`K 9vq,BK h0; P! P PPPPPZ.p PXK!lp @Q  plPXK `K 97qBK h0P< P! P PPPPPgZ-p @pXK l00p @Q v pl T? pl0pXK `K 9p(BK h0= P! P PPPPP!Z,p P\XK lp @Q  1 plPXKL `K 9p BK [h0P> P! P PPPPPY +p ຠpXKS l00p @Q pl~R P4  pl0 pXK `K 9hpBK h0? P! P PPPPPY)p rPXK lp @Q  pl$PXK`K 9)pBK h0P@ P! P PPPPPYY(p 2pXKl00p @Q hplO* J pl0(pXK|`K 9o;BK h0A P! P PPPPPY'p PMXKlp @Q  "pl,PXK=`K 9o:BK Lh0PB P! P PPPPPX&p ૟p XKDl00p @Q pl*N M pl00pXK`K 9YowBK h0C P! P PPPPPX%p cPXKlp @Q  pl4PXK`K 9oBK h0PD P! P PPPPPJX$p #pXKl00p @Q Ypl-, pl08pXKn`K 9n+BK }h0E P! P PPPPPX#p ݞP?XKvlp @Q  pl<PXK/`K 9nsBK >h0PF P! P PPPPPW"p pXK6l00p @Q plHT pl0pXK`K 9Mn/BK h0G P! P PPPPP~W!p WPXKlp @Q  plDPXK`K 9nBK h0PH P! P PPPPP>W p pyXKl00p @Q4 Mpl. )5QnJL`J88J~3{J1YZ0xJ.`-i!&9sJ *v(z pl0HpXK8`K 9mBK Gh0I P! P PPPPPV!p ঢ়P XK@lp@P lLPJ!0P 9P&K!0 .T&L!0 #XpXKl `K 9;mBK h0M P! P PPPPPlV"p Ep xtlp0@Q 0zpl\pXK`K 9lBK h0N P! P PPPPPP*V#p peXKlp @Q  :pl`pKUX`K $0  |E  Dt Op B?KP  q{r` ᾜ`qXKKUlp@P d3`|֘pQp3ȘP` 2/ 2/KlXK%0  0|3 ᤘ 0uPPp B?K pr` X`Wq xtpKl@P h3`|opQp3dP` 2/ 2/KpXK0'0  |3 @ 0\wPQp B?K Gpq` `p xtpKp@P (l4`| (Qp4P` 2/ 2/lKp%XK(0  e|4 ٗ 0xPRp B?K  oJq` ፛` PptSK"pl0@Q 0lpp`KX`K)0  )PS 0  pqp<* JpIpKxPpl @Q  ~lpXPKtp`K 9j묵BK h0T   -T@+p phpt`@lPQ P<PxpXKX`K 9jnBK gh0U   S@,p Śp'XK^x@P P|p|pQpҖP` 2/ 2/lxKdXKT-0  8| ᬖ 0}PVp B?K n뛭p` ``_o tp&Kdl@P  `|vpQpkP` 2/ 2/KlXK.0  | G 0 PWp B?K Nno` `n xtpKl@P /`|pQpP` 2/ 2/Kl/XK 0  o|  0pPXp B?K m>To` ᗙ`n xtp]K,l@P &$#j#!>J \*R zW`|ᗕpQp㌕P` 2/ 2/KlXK!0  | h 0@qPYp B?K omn` `n xtpKl@P P`|3pQp(P` 2/ 2/KlPXK"0  |  0rPZp B?K mߥun` Ḙ`m xtp~KMl@P `|ϔpQpĔP` 2/ 2/KlXK$$0  ,| ᠔ 0PtP[p B?K l뵥n` T`Sm xtpKl@P `|kpQp`P` 2/ 2/KlXK%0  | < 0uP\p B?K Cl닥m` `l xtpKl@P $`|pQpP` 2/ 2/Kl$XK4'0  d| ؓ 0`wP]p B?K kaIm` ጗`l xtpRK!l@P `|ᣓpQp㘓P` 2/ 2/KlXK(0  | t 0xP^p B?K {k1l` (`'l xtpKl@P \`|?pQp4P` 2/ 2/Kl\XKD*0  |  0pzP_p B?K k l` Ė`k xtpKYl@P `|ےpQpВP` 2/ 2/KlXK+0  8| ᬒ 0{P`p B?K jl` ``_k xtp&Kl@P `|wpQplP` 2/ 2/KlXKT-0  | H 0}Pap B?K Oj(k` `j xtpKl@P 0`|pQpP` 2/ 2/Kl0XK.0  p|  0Pbp B?K i]Uk` ᘕ`j xtp^K-l@P `|ᯑpQp㤑P` 2/ 2/KlXK 0  | ထ 0pPcp B?K i려j` 4`3j xtpKl@P ZJ^]>PVJ I dSJ <MJNC.HJM`|0pQp%P` 2/ 2/KlMXK$!0  |  0PqPdp B?K iUrj` ᵔ`i xtp{KJl@P `|̐pQpP` 2/ 2/KlXK"0  )| ᝐ 0rPep B?K h j` Q`Pi xtpKl@P `|hpQp]P` 2/ 2/KlXK4$0  | 9 0`tPfp B?K @hi` `h xtpKl@P ! `|pQpP` 2/ 2/Kp!XK%0  a| Տ 0uPgp B?K gHFi` ቓ`h xtpOKp@P `|᠏pQp㒏P` 2/ 2/KlXKL'0  | n 0xwPhp B?K ug:h` "`!h xtpKl@P V`|9pQp.P` 2/ 2/KpVXK(0  |   0yPip B?K g{h` ᾒ`g xtpKSp@P `|ՎQpȎP` 2/ 2/KpXK`*0  0| ᤎ 0zPjp B?K fţh` X`Wg xtpKp@P `|oXdQpaP` 2/ 2/KpXK+0  | P< k | B?KpP DfAg` `f xtpKp@P %`|dQpP` 2/ 2/Kp%XKx-0  e| P؍ l} B?KpP eJg` ፑ`f xtpSK"p@P `|ᤍdQp㙍P` 2/ 2/KpXK/0  | Pt m0 B?KpP |ef` )`(f xtpKp@P ]`|@`Qp2P` 2/ 2/KpZXK 0  |  0pPnp B?K eֲf` `e xtpKWp@P HN+`|Ќ`QpŌP` 2/ 2/KpXK 0  -| ᡌ 0qPop B?K dkf` U`Te xtpKp@P `|ldQpaP` 2/ 2/KpXKd"0  | P< pr B?KpP Dd볲e` `d xtpKp@P %`|dQpP` 2/ 2/Kp%XK#0  e| P؋ qt B?KpP c띲Je` ፏ`d xtpSK"p@P `|ᤋdQp㙋P` 2/ 2/KpXK\/0  | Pt r, B?KpP |c덲d` )`(d xtpKp@P ]`|@dQp5P` 2/ 2/Kp]XK-0  | P s} B?KpP c%d` Ŏ`c xtpKZp@P  `|܊dQpъP` 2/ 2/Kp XKL,0  9| P㬊 t| B?KpP bd` a``c xtp'K p@P  `|xdQpmP` 2/ 2/Kp XK /0  | PH u B?KpP Pbc` `b xtpK p@P 1 `|`Qp P` 2/ 2/Kp1 XK.0  q|  0h~Pvp B?K aCVc` ᙍ`b xtp_K. p@P  7 `|ᰉ`Qp㥉P` 2/ 2/Kp XK@/0  | ၉ 0Pwp B?K aJb` 5`4b xtpK p@P i `|L`QpAP` 2/ 2/pKlh XK.0  |  0~Pxp B?K #aDb` Ќ`a xtKe lp0@Q 0 pl`K X`K-0  ^|F ҈|} PpyB?K  `WCb` ᆌ`aXKNK lp@P  <`|ឈQp<㑈P` 2/ 2/lKp XKd/0  |< l 08Pzp B?K s`"a` `a xtK pl0@Q 0S lp`Kn X`K/0  |G "\ Pp{B?K  )`9a` ֋``XKKm p pl @Q  lp`K$ X`K`.0  d|H ؇<>P 0| B?K  _Ia`- ``XKSK" p lP@Q P P.66p`XK `K 99[JBK h0}   jD,p CpXK xp@P Pz  p|]Qp PP` 2/ 2/xpKpw X`K/0  |  + 0쎟P~ B?K  2_ѽ`` ߊ`_XKtPKu p@ P   `h/0 p\$'D/0 e8(' /0 Z,'.0 O0Kp X`K.0  D렞P  0 A_ѱ2`` u`t_XKt<K p@Q  lp~l4`XK `K 9&ZBK h0P P! P PPPPPVCL-p /pXK p00l @Q e lpJlp08pXKz `K 9Y BK h0 P! P PPPPPC8,p pKXK pl@P  <p+0P {xpKp/ X`Kt+0  od 0PP m^&^_` ᡉ`^XKtgK6 p@Q plp^ͶlpD`KX`Kp*0  ,`*P 0  )^D _p* \p[^$Kpl @Q lpOJZHlHpKX`K\)0  L9P0  0 ] ^p) p^Kpl @Q  IlpLpKdX`Kx/0  |I T PpB?K  ]-^` ̈`]XKKcpl @Q  lpP`KX`K/0  \|J Єp0P p B?K  \-A^` ᄈ`]XKLKp00l @Q plp  plp0T`KX`K/0  |K p PB?K  \-]` 3`2]XKKp00l @Q flp9( lp0X`KwX`K`/0  P?P0  0 \,]p/ p\K~pl @Q  lp\pK7X`K/0  w|L \ PpB?K  [-\]` ះ`\XKgK6pl @Q  lp``KX`Kh.0  /|M ᣃD~0P p B?K  [-]` W`V\XKKp00l @Q plp5J plp0d`KX`K\/0  |N Q8 PB?K  X[-\` `\XKKp00l @Q 8lpBp8J$H8J 8J7J{6/4J'pq-[ lp0h`K9X`K/0  y?P0  0 v[,g\p/ ੆p[qK@pl@P Llp4/0 :pKpXK.0  /~Pp 0 ,[\` ``_[ xptP&Kp@P 4t`.0` xKpXK-0  Pp 0 `Z[` `[ xptPKp@P JP|`8/0 禅pKlZXK/0  Pp 0 Z[` ˅`Z xtK`lp0@Q 0pl`KX`K/0  Y>P0  0 VZG[p/ pZQK lp@P dpL/0 @'(/0 KpXK.0  |O x ~PB?Kp  YZ` ,`+Z xtPKp@Q _lpOl`KtX`K/0  |P (0P p B?K  /YZ` ܄`YXKKsp00l @Q plpH plp0`K#X`K/0  c|Q ׀댏 PB?K  XHZ` ዄ`YXKSK"p00l @Q lpV lp0`KX`K/0  |?P 0 0  YZp4/ CpBY Kp00l @Q wlpG lp0pKX`Kx.0  h.P 0  XYp . pXKp00l @Q /lp lp0pKBX`K/0  ?P0  0 XpYpP0  0 \W MXp. pWWK&pl @Q  lppKX`K/0  |S ~x PpB?K  VX` G`FWXKKp00l @Q {lp<d%J lp0`KX`Kd.0  T>P 0 0  VWp . pVKp00l @Q 3lp2B lp0pKFX`K`/0  P/P 0  V tWp/ ඁpV~KMp00l @Q lp 8#J#J: lp0pKX`KP/0  :@?P0  0 7VR(Wp. jpiV2Kpl @Q  lppKX`Kp/0  |T n}L P pB?K   uUV` "`!VXKKp00l @Q Vlpؗ lp0`KkX`K<.0  ,>P 0 0  U*Vp- ۀpUKrp00l @Q lp lp0pK$X`K`/0  dP/P 0  aUvRVp/ pU\K+p00l @Q lpRW lp0pKX`KT/0  D?P0  0 UVp. IpHUKpl @Q  ~lppKX`Kt/0  |U M|P PpB?K  TTU` `UXKKp00l @Q 5lpsW2 lp0`KGX`KH/0  8?P 0 0  TuUp. pTKNpl @Q  lppKX`KT.0  GD.P 0  DTO5Up- wpvT?Kp00l @Q lp7@ lp0pKX`Kt/0  d?P0  0 STp/ /p.TKp00l @Q clp#P{7 lp0pKtX`Kh/0  X/P 0  STp/ ~pSK{pl @Q  lppK4X`K/0  t|V zdP p B?K  R$YT` ~`SXKdK3p00l @Q lpqa lp0`KX`K\/0  "L/P 0  STp/ R~pQSKpl @Q  lppKX`K|/0  l?P0  0 RSp$/ ~pSKp00l @Q FlpI lp0pKZX`K|/0  l/P 0  R?Sp$/ }pRKap00l @Q lpS? lp0pKX`K|/0  Rl?P0  0 OR@Sp$/ }pRJKp00l @Q lpPA lp0pKX`K`.0  P.P 0  R$Rp. 8}p7RKpl @Q  mlppKX`K/0  |W  lp0 pKX`K/0  0?P0  0 -QRpH/ `|p_Q(Kp00l @Q lp3 lp0pKX`K.0  .P 0  PQp8. |pQKp00l @Q MlpꇿׄD lp0pK^X`Kp-0  `=P0  0 PzQp- {pPKepl @Q  lppKX`Kh/0  ^|X wD PpB?K  OCQ` {`PXKNKp00l @Q lpgJ lp0`KX`KH/0  8?P 0 0   PsPp. >{p=PKp00l @Q rlp;C lp0 pKX`KT/0  D/P 0  OPp. zpOKp00l @Q *lp; lp0$pK?X`KX/0  H?P0  0 |O mPp/ zpOwKFp00l @Q lp( lp0(pKX`K`/0  7P/P 0  4O%Pp/ gzpfO/Kp00l @Q lpV lp0,pKX`KL.0  <>P0  0 N!Op- zpOKp00l @Q Slpӷa~~ lp00pKgX`K8-0  (-P 0  N Op, ypNKnp00l @Q  lp곶k}'}T|| lp04pKX`K\/0  \L?P0  0 YN~!JOp/ ypNTK#pl @Q  lp8pKX`Kh.0  |Y uD~ P pB?K   M.&O` Dy`CNXK Kp00l @Q xlpJV{ lp0<`KX`K4-0  |Z Au}P p B?K  HM'N` x`MXKKp00l @Q )lpKDzz lp0`K=X`K+0  }+P 0  zM'kNp+ xpMuKDp00l @Q  `lp +HyyOx xSww `lp0DpKXK*0  -:P0 0 *M~(Npp* ]xp\M %Kpl@P  Hp*0 wL()0 wP()0 wT()0 wX(p)0 w\pKpwXK$)0  P 0 L/M` w`L xtK}p@Q plpꢮRvlp` `KT 1X`K(0  q8P0  0 nL/_Mp' wpLiK8p00l @Q `lp꣭Euu `lp0d pKP XK&0  %&P 0  "L?.Mp& UwpTLKp00l @Q lpꃬNt t lp0hpKXK%0  5P0  0 KO.Lp% wp LKp00l @Q AlpgZss lp0lpKUXK$0  $P 0  K:/Lpp$ vpKK\p0 P0l @Q  `lp Gor+r'gq#qZpp `p0ppKXK#0  D3P0  0 AK5/2Lp8# tvpsK<K pl@P tp"0 vx("0 u|("0 ut-\"0 uP(8"0 u,("0 u(!0 upKpxXK!0  P 0 J@K` u`J xtK~p@Q? plp7ۦConJn^m_lkjjHjI3jhI.j@I$jI jIGi/hahgLgߜfLfeMe{hd$dcIcIcIcIwc`Icc8INcIKlp`KX`K8/0  ?(?P0  0 Dp* npCKp00l @Q 2lpI[I[IZIZpIZHIZ IZIZ lp0pK9X`K)0  y)P+ 0  vC#gDp( npCqK@p00l @Q lpIZIZIqZXIbZ0ITZIFZI lp0pKX`K'0  '7PK0  0 $C Dp|' WnpVCKp00l @Q lpY lp0pKX`K&0  /P- 0  BCp/ npCؿKp00l @Q DlpXX lp0pKXX`K/0  ?P.0  0 BCp/ mpBᐿK_p00l @Q lpWW lp0pKX`K.0  P.P/ 0  MB>Cp. mpBHKp00l @Q lp꫅VlV lp0pKX`K-0  =P0  0 BԅBp|- 8mp7BKp00l @Q llp[vU2U lp0pKX`K,0  ,P1 0  AƅBph, lpAḾKp00l @Q $lp?TS lp0pK8X`K+0  x;P20  0 uA븅fBpT+ lpApK?p00l @Q  `lp귁SR{QQCP}P}OBO|UNNO{MLzKKx `p0pKXK.0  /P3 0  A뗅 Bp/ MlpLA Kpl@P TpM-0 ok *?-0 dk$*-0 Yk|(*Ad-0 NkX,*B@-0 Ck40*C-0 8k4*Q,0 -k8*E,0 "k<*F,0 k-G,0 kD*Rh,0 k\H*ID,0 j8L*J ,0 jP*K+0 jT*S+0 jX*M+0 j\*N+0 j`*Ol+0 j`d*H+0 j<h*Q$+0 jl*R+0 jp*S*0 jt*U*0 }jx*U*0 rj|*Vp*0 gjXPK`K 9p:#BK ,h0W   #)p jpxPt`!@ P l pVT)0 jpKpX`K)0  PY  0 ?؄?` Bj`A?XKxtPKp@Q pvlpJJlp`XK`K 99;BK h0Z   ##'p ip^XKp00l @Q 2lpwIIvHHuGGktFFKsEE lp0pK8X`K&0  x&P[ 0  u>ˆf?pT& ip>pK?pl@P pW%0P 8ipKlXK%0  ,|[ e  du]B?Kp P PP=f?` Ui`T> xtKlp0@Q 0pl`KX`Kt$0  |\ WePt Pp^B?K  ^=>` i` >XKӺKlp@P @`_#0P hpKpPXK8#0  ( 0PP =븇>` h`= xt刺KWp@Q plpqlp`KX`K8"0  N("Pa 0  K=<>p! ~hp}=FKp00l @Q  lpyD5DCIC\IC4IC IrCI[CIHCI2ClI#CDICIBIB̽IBIB|IBTIB,IBIzBܼIgBIVBIDBdI1BKg>=<<Ie)<d$;:Ic:b.98g_ 65w5Id5|IH5TI55,I5I5ܬI4I4I]U4 \h3$32lI2DIY1jX0IV.>U -S+xIR*ܙI~P~( p0p `K?XK 0  1Pb0 0 |<=m=pP! gp< wKFpl@P pc!0 ?g*Y!0 4g*e "0 )g*f0"0 g<-gT"0 g`*Zx"0 g*i"0 f*j"0 fKpX`K #0  sPkp 0 ;<` g` P_P` 2/ 2/KlfXK/0  ঴| _ 0P^p B?K !7f8` b`7 xtp唴Kcl@P  `|^pQp^P` 2/ 2/KpXK`.0  B| ^ 04~Pyp B?K 6'8` jb`i7 xtp0Kp@P  `|^`Qpv^P` 2/ 2/KpXK/0  ޳| R^ 0Pzp B?K Y6붆7` b`7 xtp̳Kp@P : `|^,pQp^P` 2/ 2/Kl7XK.0  w| ] 0h~P{p B?K 5[\7` a`6 xtpeK4l@P  `|]pQp]P` 2/ 2/KpXK /0  | ] 0~P_p B?K 56` ;a`:6 xtpKp@P o `|R](pQpD]P` 2/ 2/KllXK/0  ଲ|  ] 0xP}p B?K '5명6` ``5 xtp嚲Kil@P  `|\pQp\P` 2/ 2/lKpXK.0  G| \ 0}P~p B?K 4R,6` o``n5 xt5Kpl0@Q 0lp `KX`K /0  |] q\~ PpB?K  x4O5` %``$5XKKp00l @Q Ylp lp0$`KpX`K/0  ఱ?P 0  0 465p/ _p4ᨱKwp00l @Q `lpN'IRMr% `lp0(pK$XK.0  d.P 0  a4G;R5px. _p4\K+pl @Q  lp,pKXK/0  $?P0  0 !4>5p/ T_pS4Kp00l @Q lp lp00pKXK.0  ߰.P 0  3A94p. _p4װKp00l @Q  DlpK#2Jq" p04pKXXK/0  ?Pa0  0 394p/ ^p3ᐰK_pl@P <8p$/0 Y^<KpXK.0  N~Pp 0 K3B<4` ^`~3 xtPEKp@Q lpHl`KX`K/0  ?P0  0 3XB3p/ 8^p73Kp00l @Q llp \IGr lp0DpKX`K.0  ࿯.Pb 0  2sB3pl. ]p2ᷯKpl @Q  $lpHpK?X`K/0  ?P0  0 |2Dm3p/ ]p2wKFp00l @Q lpvE,I lp0LpKX`K.0  7.P 0  42D%3px. g]pf2/Kpl @Q  lpPpKX`K/0  ?P0  0 1D2p/ ']p&2Kp00l @Q [lpClFB lp0TpKnX`K.0  ம.Pc 0  1<2p. \p1᦮Kupl @Q  lpXpK.X`K/0  n?P0  0 k1%\2p/ \p1fK5p00l @Q lpA lp0\pKX`K.0  '.P 0  $1*2p. W\pV1Kpl @Q  lp`pKX`K-0  =P0  0 061p/ \p1߭Kp00l @Q Klp+@> lp0dpK\X`K/0  /P 0  071p. [p0ᔭKcpl @Q  lphpKX`K .0  \>P0  0 Y0CJ1p/ [p0TK#p00l @Q lp=< lp0lpKX`K/0  /P 0  0D0p. A[p@0 Kpl @Q  vlpppKX`K.0  Ѭ >P0  0 /P0p/ [p0ɬKp00l @Q 5lp ;44I: lp0tpKEX`K /0  .Pe 0  /몗s0p. Zp/}KLpl @Q  lpxpKX`K.0  E>P0  0 B/&30p/ uZpt/=K p00l @Q lp9~g8n lp0|pKX`K /0  .P 0  .k/p. *Zp)/Kpl @Q  _lppKzX`K.0  ຫ>P0  0 ./p/ Yp.ᲫKp00l @Q lpg7G6s lp0pK/X`K /0  o.Pf 0  l.]/p. Yp.gK6pl @Q  lppKX`K.0  />P0  0 ,./p/ _Yp^.'Kp00l @Q lpG5#4 {  lp0pKX`K /0  .P 0  -.p. Yp.ܪKpl @Q  IlppKdX`K.0  प>P0  0 -!.p/ Xp-ᜪKkp00l @Q lp #3  2 p 1  lp0pKX`K/0  W.Pg 0  T-E.p. Xp-OKpl@P Tp<.0P XKpXK-0   p0PP  - -` >X`=- xtPKp@Q qlpz / W .l`KX`K/0  ©/P 0  ,5-p/ Wp,ẩKpl @Q  'lppKBX`K.0  >P0  0 ,Ap-p. Wp,zKIp00l @Q lpa->, lp0pKX`K-0  7-P 0  4,B%-p- gWpf,/Kpl @Q  lppKX`K,0  +bB" lp0pKXK 0   P 0  &녛'p$! FQpE&Kpl@Q {ppKX`K!0  ֢|^ JMq0P p B?K  Q%&` P`%XKƢKxp@P 3`n"0 P,"0 P ,"0 yP,#0 nP$,o<#0 cPxKpX`K#0  WsPp 0 T%E&` P`%XKtpOKp@P  )`|L\pQp)LP` 2/ 2/KlXK$0  |) nL 0 uPp B?K u$%` "P`!% xtpKl@P V )`|9LpQp).LP` 2/ 2/KlVXK|&0  |)  L 0vPp B?K ${%` O`$ xtp儡KSl@P $ )`|KpQp)KP` 2/ 2/KlXK(0  2|) K 00xP p B?K #ˣ%` ZO`Y$ xtp Kl@P ( )`|qKpQp)fKP` 2/ 2/KlXK)0  Π|) BK 0yPp B?K I# $` N`# xtp张Kl@P *, )`| KpQp)KP` 2/ 2/Kl*XK+0  j|) J 0@{Pp B?K "O$` N`# xtpXK'l@P 0 )`|JpQp)JP` 2/ 2/KlXK,0  |) zJ 0|Pp B?K "S#` .N`-# xtpKl@P b4 )`|EJpQp):JP` 2/ 2/KlbXK$.0  ࢟|) J 0P~Pqp B?K "w#` M`" xtp吟K_l@P 8 )`|IpQp)IP` 2/ 2/KlXK/0  >|) I 0Pp B?K !7##` fM`e" xtp,Kl@P < )`|}IpQp)rIP` 2/ 2/KlXK 0  ڞ|) NI 0pPp B?K U!"` M`" xtpȞKl@P l1 )`|IpQp) IP` 2/ 2/Kl1XK 0  q|) H 0pPp B?K AV"` L`! xtp_K.l@P D )`|HpQp)HP` 2/ 2/KlXK/0  |) H 0Prp B?K 뚤!` 5L`4! xtpKl@P iH )`|LHpQp)AHP` 2/ 2/KpiXK4.0  ੝|) H 0~Pp B?K $ Z!` K` xtp嗝Kfp@P L (`|GhQp(GP` 2/ 2/KpXK/0  E|( G 0~Pp B?K 놤*!` mK`l xtp3Kp@P P (`|GhQp(yGP` 2/ 2/KpXK/0  |( UG 0pPp B?K \p ` K` xtpϜKp@P =T (`| GhQp(GP` 2/ 2/Kp=XK.0  }|( F 0}Psp B?K Zb ` J` xtpkK:p@P X (`|FhQp(FP` 2/ 2/KpXK,0  |( F 0`|Pp B?K D` AJ`@ xtpKp@P u\ (`|XFhQp(MFP` 2/ 2/KpuXK+0  ൛|( )F 0zPp B?K 0.` I` xtp壛Krp@P ` (`|EhQp(EP` 2/ 2/KpXK|)0  Q|( E 0PyPp B?K v6` yI`x xtp?Kp@P d (`|EhQp(EP` 2/ 2/pKlXK'0  |( `E 0wPp B?K g볣` I` xtښKlp0@Q 0Gplh`KbX`K&0  ࢚|_ Ev PpB?K  e` H`XK⒚Kalp @Q  pll`KX`K/0  Z|` Dt0P p B?K   ?` H`XKJKl00p @Q pl^a pl0p`KX`Kl/0  |a }DH PpB?K  묚` 1H`0XKKlp @Q  fplt`pKX`Kh/0  |b 4DD0P u B?K  ;S` G`XKⰙKl00p @Q pl> pl0x`K/X`K,.0  o.P 0  lP]p- GpgK6lp @Q  pl|p`KXK4-0  .$=P0  0 +bp, ^Gp]&Kl00p @Q pl\XnQ pl0pKXK+0  ۘ+P 0  ?p+ Gp ӘKlp @Q  @plpKZX`K*0  |c Cz Pp vB?K  ` F`XK⊘KYlp@P ( `*0 SF,)0 HF,)0 =F,w)0 2FKpXKX)0  'HyPp 0 $e` XF`W xptPKp@P `(0` EKpXK<(0  ܗ,xPp 0 `m` F`  xptPԗKp@P B`t'0 Eh,P'0 ED,,'0 E ,'0 }E,y&0 rEKp'XK/0  gPp 0 dRU` E` xptP^K-p@P `.0` 'E-.0 E,z.0 EKpXKT.0  D~Pp 0 `٦` 8E`7 xtPKp@P l`/0 D,/0 D,{/0 DpKpgXKL/0  ৖<P 0 뙨` D` xt垖Kmp@Q p lplp`K#X`Kx/0  ch?P0  0 `Qp / Dp[K*p00l @Q `lpNd `lp0pKXK|/0  l/P 0  "p$/ JDpIKp00l @Q-  ~lp&*J'!ݻ#/O8*I6*I!)I )I(Ix'IP'I('Iٵ'Iµ&I p0pKqX`K-0  ౕ=P0  0 )p- CpᩕKxpl@P 4 p-0 rC,,0 gC,,0 \CKpXK/0  QP}p 0 Nӡ?` C` xPtpHKp@P `.0` CKpXK/0  Pp 0 ` ` 8C`7 xtpKp@P l= (`|O?hQp(D?P` 2/ 2/KplXKT.0  ଔ|(  ? 0(~Pp B?K 'ͮ` B` xtp嚔Kip@P  (`|>hQp(>P` 2/ 2/pKlXK/0  G|( > 0~P~p B?K  ,` oB`n xt5Klp0@Q 0pl`KX`K(/0  |d q> PpB?K  xn` %B`$XKKlp @Q  Zpl `KuX`K.0  ൓|e )>}0P p B?K  0n` A`XK⥓Ktl00p @Q pl W%I%I~`%I  pl0`KX`K,0  ^|f = PpB?K  C` A`XKNKlp @Q  pl`KX`K/0  |g =~0P p B?K  ` >A`=XKKl00p @Q rpl t@$I[$IB#Iڲ pl0`KX`K.0  |h 5=~ PpB?K  <` @`XKⱒKl00p @Q pl pl0 `Kh /X`K/0  o?P0  0 l]]p/ @pgK6l00p @Q ӿplհ/O ĮIII pl0 pK޿X`K/0  /P 0  놿 ph/ N@pMKlp @Q  僿pl$pK➿X`K.0  ޑ>P 0  0 6pt. @p ֑K⥿lp @Q  Cpl(pK^X`K/0  |i < P pB?K   끶` ?`XK⎑K]l00p @Q pl@|I pl0,`K X`K.0  M>P0  0 J*;pX. }?p|EKl00p @Q 屾pl=ƫ pl00 pKd ¾X`K/0  /P 0  PpL/ 2?p1Kɾlp@P g4 0p` .P >8KpuXK.0  ൐t~ p0PP ` >` xtP子K|p@Q lpFFl<`K/X`K/0  o|j :d P pB?K   댹T` >`XK_K.p00l @Q ˽lp1  lp0`KݽX`KH.0  8>P0  0  p- M>pLKpl @Q  傽lpDpK❽X`Kp/0  ݏ|k Q:L P pB?K   XI` >`XK͏K✽pl @Q  :lpH `KL SX`Kl/0  |l :H Pp B?K  x` =`XK⃏KRp00l @Q lpЦ lp0L `KH X`K@/0  A|m 9 P p B?K   &` i=`hXK1Kp00l @Q 坼lp.y lp0P`KⲼX`K .0  =P 0  0 p/ "=p!K⹼pl @Q  WlpTpKrX`K,/0  ಎ|n &9 P pB?K   -` <`XK⢎Kqp00l @Q lp'T lp0X`K"X`K-0  b=P 0  0 _+Pp- <pZK)p00l @Q ƻlp/O  lp0\pK׻X`K,0  ,P 0  dp|, G<pFK޻pl @Q  |lp`pK◻X`K+0  ׍;P0  0 p/ <pύK➻p00l @Q ;lpꢿZ? lp0dpKMX`K/0  /P! 0  F{p/ ;pᅍKTpl @Q  lphpK X`KX/0  MH?P0  0 J;p/ };p|EKp00l @Q 屺lp s;< I?$ lp0lpKX`K8/0  (/P 0  Xp. 1;p0KȺpl @Q  flpppK⁺X`KD.0  4>P0  0 p- :pṌK∺p00l @Q %lp ߹ lp0t pKD 5X`K -0  u-P 0  r*cp, :pmKP0  0 m p- L9pKKp00l @Q 倸lp _GDZm)ǰ lp0pK⌸X`K/0  ̊/P 0   p/ 8p ĊK⓸pl @Q  1lppKLX`K/0  >P0  0  zp/ 8p ᄊKSpl @Q  lppK X`K /0  L|o 4~ P pB?K   B1` t8`s XK<K pl @Q  婷lp`KķX`K/0  |p x4~ Pp B?K   P ` ,8`+ XKK÷p00l @Q `lpAp lp0`KrX`K.0  ಉ|q &4P pB?K  -  ` 7` XK⢉Kqxpp lP @Q PP,@p`XK$`K 9{BK 3h0   x.p 7pXK,x`p@Q PʶPpom)o??^?~:f"eppXKҶ`K 97뵉BK h0"   f@/p ?7p塍XKضp@P Pwp!/0P 6-"/0 6-#/0 6-x/0 6l-%T/0 6xpKpZX`K/0  & 0PP  j ` 6` XKtP咈Kap@ P T`'<.0 \60-.0 Q6 -)-0 F6-*/0 ;6-+/0 06-/0 %6--x/0 6l-.T/0 6H-/0/0 6$-# /0 5-1/0 5-2/0 5-3/0 5-/0 5pKpႵXKD/0  ‡4P5 0   ` 5` xt幇K∵p@Q p'lp!ۦWۥn*lp`K9X`K8/0  y(?P60  0 v ]g p. 5p qK@pl@P ޴>p7p.0 :5d.L.0 /5@.9(.0 $5 .:.0 5.;-0 5KpôXK-0  }Pp 0   ` 45`3 xtPKɴp@Q glpꛤ?Nl`KyX`K/0  ๆ?P=0  0  G p/ 4p ᱆K‴p00l @Q lp ZF lp0pK1X`K.0  q.P> 0  n 9_ pl. 4p iK8p00l @Q ճlp:7 lp0 pKX`K-0  *=P?0  0 '  p\- Z4pY "Kp00l @Q 厳lp lp0$pK⤳X`K/0  /P  0   p/ 4p ܅K⫳p00l @Q Hlp lp0(pK]X`K.0  >PA0  0  p. 3pᕅKdpl @Q  lp,pKX`K-0  ]-PB 0  ZK p- 3pUK$p00l @Q lpb lp00pKֲX`KH/0  8?PC0  0   p. F3pEKݲp00l @Q zlpH`H8HHHӛP~H~H~tH lp04pK′X`K-0  -P 0  @p- 2pḄK⇲pl @Q  %lp8pK@X`Kd/0  T?PE0  0 }np / 2pxKGp00l @Q lpo~LHN~$H8~H!~H ~H}H}\H} lp0<pKX`K .0  ,.PF 0  )p/ \2p[$Kp00l @Q 吱lp 4H} H}H}Hs} lp0pK➱X`K/0  ރ>PG0  0 p/ 2p փK⥱p00l @Q  ClpO|{o{tHU{LH;{$H%{H{Hwz p0DpKLX`K/0  /P 0  zp/ 1pᄃKSpl@P DHpI,/0P L1LKpXK.0  A~J p0PP ?0` s1`r xptP9Kp@P 姰,P`K.0 1TKpḰXK-0  Pp 0 @` )1`( xtPK⾰p@Q \lp OyRy/xFxwFwlX`KjX`K.0  ં>PM0  0 Epx. 0pᢂKqpl @Q  lp\pK*X`K/0  j|r , PpNB?K  O` 0`XKZK)pl @Q  ǯlp``KX`K/0  "|s ,0P pO B?K  a` J0`IXKKp00l @Q ~plp vIvߏuIuߎtit plp0d`K⊯X`K.0  ʁ|t >,p P%B?K  E` /`XK⺁K≯pl @Q  &lph`KAX`K/0  |u +0P pQ B?K  f` /`XKqK@p00l @Q ݮplp Ísbskfr"r plp0l`KX`K/0  ,|v +| PRB?K  ` T/`SXKKpl @Q  刮lpp`K⣮X`K/0  |w W+x0 Pp S 0 0B?K^` /` XKӀK⢮p00l @Q ?lpkqAqKp lp0t`KQX`Kp/0  `/P 0  p/ .pቀKXpl @Q  lpxpKX`K/0  Q?PU0  0 N?p8/ .pIKp00l @Q 嵭lpp/o lp0|pKɭX`K/0  /PV 0  p8/ 9.p8KЭp00l @Q mlpn lp0pK⃭X`K/0  ?PW0  0  p@/ -pK⊭p00l @Q 'lp ꛇnmomHom|lHK lp0pK4X`K|/0  tl/P 0  q!bp$/ -plK;pl@P ٬pY.0P 4-pKpXKd.0  )TZ 0PP '+` [-`Z xt!Kp@Q p召lpljjlp`K⤬X`KX-0  ~H-P[ 0  |p- -p~K⫬pl @Q  IlppKdX`Kd,0  ~TP^0  0 p/ B,pA ~K٫pl@P wdp_L/0 +@.&(/0 +pKp}XK/0  }Pa 0 ` +` xt}K⃫p@Q p"lp.flp`K9X`K.0  y}>Pb0  0 vgp. +pq}K@p00l @Q ݪ`lp}Be `lp0pKXK/0  0}/Pc 0  -8p/ `+p_(}Kp00l @Q 唪lp|/d lp0pK⩪XK/0  |?P0  0 p/ +p|KⰪp00l @Q Mlp{cb lp0pKaXK/0  |/Pe 0  p/ *p|Khp00l @Q lpz)ba lp0pKXK.0  Y|>Pf0  0 V"Gp|. *pQ|K p00l @Q 彩lpya` lp0pKѩXK/0  |/Pg 0  2p/ A*p@ |Kةp00l @Q ulpwx`_ lp0pK≩XK/0  {?P0  0 Bp/ )p{K␩p00l @Q -lp;w^^O^xHv]t\\s[[rZ lp0pK5XK.0  u{.Pi 0  rFcpX. )pm{KP'0  0 ,,wp. (pzKPl00p @Q `plZqY `pl0pKXK/0  ?zt/Pq 0  P{0  0 -p. %pwKypl @Q  lppK2XKx/0  rwh/P 0  oM`p / %pjwK9p00l @Q ֤lpmO`HMO8HeN lp0pKXKl/0  'w\?P}0  0 $:p/ W%pVwKp00l @Q 勤lp GNHdMcLL lp0pK⛤XKH.0  v8.P~ 0  q,p- %p vK⢤pl@P @ p/0P $$pKpPXKD/0  v4 0PP o,` $` xtvKWp@Q plpgbKKlp(`K X`KP/0  Lv@/P 0  I:p. |$p{DvKp00l @Q 尣`lp ?aJ{J`IhI p0`l,pK⿣XK(.0  u>P0  0 p- /$p.uKƣpl@P d0p/0 #4KpuXKL/0  u<Pp 0 _` #` xtPuK{p@Q lp_H|Hl8`K-X`KD/0  mu4?P0  0 j2[p. #peuK4pl @Q Ѣlp]GrGl<pKX`KP/0  'u@/P 0  $p. W#pVuKp00l @Q 勢lp\FlF[E[E lp0pK✢X`KD/0  t4?P0  0 p. #p tK⣢pl @Q  AlpDpK\X`KP.0  t@.P 0  p- "ptKcp00l @Q lp EHZD lp0HpKX`Kp/0  St`?P0  0 PAp/ "pKtKp00l @Q 巡lpoYCfC3XBBB lp0LpKȡX`KP.0  t@.P 0  >*p- 8"p7tKϡpl @Q  mlpPpK∡X`K/0  s?P0  0 p/ !psK⏡p00l @Q ,lp3WAWA lp0TpK@X`K/0  s/P 0  })np/ !pxsKGp00l @Q lpV@C@Tn?*? lp0XpKX`K.0  5s>P0  0 2)#pp. e!pd-sKpl @Q  嚠lp\pKⵠX`K-0  r/P 0  p/ %!p$rK⼠p00l @Q Ylp>4HSt> lp0`pKlX`K.0  r>P0  0 p. prKsp00l @Q lpRx=4=gQY<< lp0dpK!X`K-0  ar-P) 0  ^o)Op/ pYrK(pl@P Ɵ|hpd/0P ! lpKp֟XK/0  r 0PP !` H `G xtrKݟp@Q p|lp;̠H?Pf;lpp`K⑟X`KD/0  q4/P 0   p.  pqK☟p00l @Q 5`lpO\:: `lp0tpKGXK(.0  q>P0  0 up/ pqKNp00l @Q lpN\99 lp0xpKXK(/0  ?q/P 0  +*;=) lp0pKX`K4/0  _m$?P0  0 \7Mp. pWmK&pl@P Ěpl.0 pKp՚XK .0  mP 0 U8` F`E xt mKۚp@Q pzlp)b)H<(lp`K⎚X`K /0  l?P0  0 R8p/ plK╚p00l @Q 2`lp:' `lp0pKEXK/0  l /P 0  M8sp/ p}lKLp00l @Q lp 'X'dH>'P0  0 6GC'p/ iph1lKp00l @Q 坙lps9& lp0pKⲙXK/0  k/P 0  DCp/ "p!kK⹙p00l @Q Vlp S8%`%+7$P$5# lp0pKeXK.0  k>P0  0 oBp/ pkKlpl@P  `pH/0 f</$/0 [pKpXK/0  Pk܏P+ 0 MF>` ` xtGkKp@Q p嵘lp4lp`K͘X`K.0  k>P0  0  Np. =p<kKԘp00l @Q q`lpN"n3?!2  p0`lpK⁘XK-0  j-P 0  Şpl- pjK∘pl@P & p,0P /,0 v/,0 k//0 `KpXK/0  Uj p0PP Si;D` ` xtPMjKp@Q 店lp1l`KϗX`K.0  jt.P 0   [<p,. ?p>jK֗p00l @Q slp0 lp0pK⇗X`Kp-0  i`=P0  0 =p- piK⎗p00l @Q +lp .nd~H- lp0 pK:X`KH,0  zi8,P 0  w>hp+ priKApl @Q  ߖlppKX`KT+0  :iD;P0  0 75(p* jpi2iKp00l @Q 垖lp,  lp0pKⳖX`KD*0  h4*P 0  Tp) #p"hK⺖p00l @Q Wlp+ lp0pKkX`K0)0  h 9P0  0 롨p( phKrp00l @Q lpO* lp0pK#X`K(0  ch (P 0  `fQp' p[hK*p00l @Q Ǖlp3) lp0 pKەX`K'0  h6P0  0 뚲 p& KpJhKp00l @Q lp' lp0$pKⓕX`K%0  g%P  0  뚜p% pgK⚕p00l @Q 7lpCwH5XwH lp0(pKIX`K$0  g4P0  0 ?wp$ pgKPp00l @Q lp&%o$8sH$sHsH lp0,pKX`K#0  6g#P 0  3Y@$p@# fpe.gKpl @Q  囔lp0pKⶔX`K"0  f|| jr Pp B?K  q'3` `XKfKⵔp pl @Q  Rlp4`KlX`K!0  f|}  `!P  B?K  '<3`! `XKfKjp lP@Q0 PP*|sH"!\ US=S\7 Y  Q  K  J  A x4C94*p8`XK`K 9]pBK kh0   .p gpjXKxp@P P垓<;p|(pQp;sP` 2/ 2/lxK<ᙓXK/0  e|; M 0Pp B?K T,F` ` tpeK▓<l@P 4@;`|pQp; P` 2/ 2/Kl4XK(.0  te|;  0}Pp B?K EY` ` xtpbeK1l@P ВD;`|pQp;P` 2/ 2/KlВXK.0  e|;  0~Pp B?K E` 8`7 xtpdK͒l@P lH;`|OpQp;DP` 2/ 2/KllXK@/0  d|;   0Pp B?K 'E` ` xtpdKil@P L;`|pQp;P` 2/ 2/KlXK/0  Hd|;  0Pp B?K E-` p`o xtp6dKl@P 夑P;`|pQp;|P` 2/ 2/KlᤑXKD.0  c|; X 0~Pp B?K _aE` ` xtpcK⡑l@P @T;`|#pQp;P` 2/ 2/Kl@XK,0  c|;   0|Pp B?K Vp. p`bK/pl @Q  ͏lpdpKX`K@.0  (b|~  ~ Pp -B?K  a ` P`OXKbKp00l @Q 儏lp lp0h`K●X`Kd/0  aT/P 0  p / paK➏pl @Q  <lplpKWX`Kp.0  a`>P0  0 p. paK^p00l @Q lpj   lp0ppKX`K/0  Pa/P 0  M!>pl/ pHaKpl @Q  嵎lptpKЎX`K.0  a>P0  0  px. @p?aK׎p00l @Q tlp  lp0xpK≎X`K/0  `/P 0  px/ p`K␎pl @Q  .lp|pKIX`K.0  `>P0  0 wp. p`KPp00l @Q lpJ *5 lp0pKX`K/0  >`/P 0  ;,p/ npm6`Kpl @Q  壍lppK⾍X`K.0  _>P0  0 p. .p-_Kōpl @Q  clppK~X`K-0  _| 2  P pB?K   9` `XK_K}pl @Q  lp`K6X`K.0  v_|  ~ Pp B?K  H[` `XKf_K5p00l @Q Ҍplp P plp0`KX`K/0  #_|  렏 P B?K   ` K `JXK_Kpl @Q  lp `K< 嘌X`K.0  ^| L |~ Pp B?K  S?` `XK^K◌p00l @Q 4plp IH plp0`KDX`Kl/0  ^| H P B?K   Pi` `XKt^KCpl @Q  lp`KX`KP.0  ;^| ,~ Pp B?K   ` c `bXK+^Kp00l @Q 嗋plp /: plp0`K⦋X`K /0  ]| Z P B?K   a`  ` XK]K⥋pl@P CL`.4.0P KpSXK-0  ]} p0PP f` ` xtP]KZp@Q lp)=l`K X`K/0  I]/P 0  F7p/ y pxA]Kpl @Q  宊lppKɊX`K.0  ]>P0  0 p. 9 p8]KЊp00l @Q mlp8K lp0pK~X`K/0  \/P 0  -px/ p\K⅊pl @Q  #lp pK8 <X`K.0  |\>P0  0 yqjp|. pt\KCp00l @Q lp c*c>" lp0 pK4 X`K/0  .\/P 0  +gpT/ ^ p]&\Kpl @Q  哉lppK⮉X`K.0  [>P0  0 p`.  p[Kⵉp00l @Q RlpA6 lp0pKfX`K/0  [/P 0  pP/ p[Kmpl @Q  lppK&X`K.0  f[>P0  0 cTp\. p^[K-p00l @Q ʈlp lp0pK݈X`K/0  [/P 0  > pH/ M pL[Kpl @Q  傈lppK❈X`K/0  Z?P0  0 Zp`/ p ZK⤈p00l @Q Alp: lp0pKTX`K.0  Z.P 0  pH. pZK[pl @Q  lp pK0 X`K-0  RZ?P0  0 O@p/ pJZKp00l @Q 嶇lp\x@H_ lp0 pK, ŇX`K.0  Z.P 0  p. 5p4YK̇p `l @Q  ilp pK( 假XK-0  Y=P 0 0  Fp/ pYK∇pl@Q &ppXKB`K 9:BK Q^h0P/ P! P PPPPP.p p^XKIx`p @Q Sq-ppXK`K 9_:BK ^h0 P! P PPPPP-p iP]XKpt`@Q 堆pPXK⻆`K 9 ~:BK ]h0P P! P PPPPPP,p )p]XK†x`p @Q `cb[t0ppXKs`K 9A:BK ]h0 P! P PPPPP +p PD]XK{pt`@Q pPXK4`K 9 :BK C]h0P P! P PPPPPɿ/p p]XK;x`p @Q م#X#z6ppXK`K 9Q9BK \h0 P! P PPPPP傿x/p [P\XKpt`@Q 咅pPXK⭅`K 99BK \h0P P! P PPPPPB|.p p}\XKⴅx`p @Q R{7YpApXKe`K 9_9BK t\h0 P! P PPPPP/p P6\XKmpt`@Q  pPXK&`K 9+9BK 5\h0P P! P PPPPP廾.p p[XK-x`p @Q ˄^ppXK`K 9G8BK [h0 P! P PPPPPPw/p Pp[XKx`p@Q 凄lpl pK☄X`K/0  V| L~  pB?KP   T` `XKVK☄pPl @Q  5lp` KNX`K-0  V| } Pp B?K   s` `XK~VKMp00l @Q plp o plp0`KX`K,0  8V| t P B?K   ` ``_XK(VKpl@Q 啃p`KⰃX`K/0  U| d~P p B?K  k` `XKUK⯃xpp @Q MP +Pp`XK``K 9aBK oZh0   t-p p/ZXKfp@P P -pQp -P 0pxKl X`K,0  LU|-  P`| pB?K  71` t`sXKtP;UK lp0@Q 0娂pl$`XKÂ`K 9(bBK Yh0   Y+p 2pYXK˂lp@P i (p*0` ,!|*0 0pKpnXK0*0  T P 0 `"` ` xtTKup@Q plp_lp4`K,X`K0)0  lT )P 0  i:'Zp( pdTK3p00l @Q Ё`lpu `lp08pKXK(0  #T8P0  0  a'p' SpRTKpl @Q  凁lp<pK⢁X`K '0  S| Vv P pB?K   ]'` ` XKSK⡁p00l @Q >lp lp0@`KSX`K%0  S5P0  0 ,p% pSKZpl @Q  lpDpKX`K$0  SS| t PpB?K  <8` {`zXKCSKp00l @Q 寀lp &hb_ # lp0H`K⿀X`K#0  R3P 0  0 <pX# /p.RKƀpl@P dLp "0 P! "0 T!"0 X! |"0 p\!X"0 `K0(,TP<84D`dH@hL dX\@P K$Zt(HH#[^avgv2 HӽHȽHHlHO-GMM@ $`,PXK(pP 9  =0P  V0$   9P  PuVXK@(, Q  JKK-xM `@P 7`V  0p7/`V 7P8 ` P QC t fp9 ep pe 0 etP P KKH4HfY:K-@CQ3 p PG`6"  O C # x% /OAP ~x P0 0 0>6&ֽO- M, @P# H  (0 R 0W P  P P L P P P T P}  v  o  h  a | 0P+ PPP 0 LP P h0 PP P0Palp p` O0Q 0W8p a0Pp p` O0Q 0V 0p a0PpŅb p` O0Q 0V$4pP `8p\A V ? p `%W :w 0Ppᐅ- `p O0Q 0VpOPbp 0 R 0VX O  8 2/pp 0 R 0uVX O  8 2/ 0P3  bOp `P  00S 0CV U O 8 2/H | P L P T  ~   w   p P j PEquP 0P{ n hP 0Pq d P 0Pg Z P 0P] P QO*bP 0PN A P 0PD 7 \Q6*ZP 0P5 ( P 0P+  Q*P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  lP]p` V0P  Q*Qp   `W :Pj 0P  Q*]PT 0P   P0  P  P 0P z LP 0P} p P 0Ps f P 0Pi \ (P 0P_ R @P 0PU H DP 0PK > P 0PA 4 P 0P7 * P 0P-   P 0P#  P 0P   P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  <P 0P  pP 0P  x 0`P xP` `0P  P 0P  $P 0P  (P 0P  P  0 P z P  0 Pz m P 0Pp c P 0Pf Y XP 0P\ O P 0PR E $P 0PH ; P 0P> 1 P 0P4 ' P 0P*  8P 0P  HP 0P   P 0P  tP 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  P 0P  ,P 0P  0P 0P { 4P< 0P~ q lP 0Pt g , 0P^ H`DP!C.(0\ , 0㬁I HP!$!0H 0 㕁2 hPP 0㉁& P P0a pz p` O0Q 0R  <  @`DP x0  P0S 6w0`/\  D/D?  L`P w0  P0S w0/  ppP`P w0  P0S v0/  pֱ}oP w0 p  P0 pS v0/  |} ~o,P w0  P0S v0/  Z} lP ew0  P0S v0L/  8} oP Cw0  P0S kv0 .  } oP !w0  P0S Iv0 D.   | o$@ P v0  P0S &v0 -   | @ | 0$P` b ] X S N I D ? : 5 0 + & !              ی ֌ ь ̌ nj @Q `u`  `(Up  0]PZ @`OO`0 0PU 0N S   8 2/  #  0+P( `p`0 0PU 0N S   8 2/   0P `p`0 0PU 0VN S   8 2/  ŋh  0̀P `p`0 0PU 0'N S   8 2/  㖋 0㞀P `p`0 0PU 0M S   8 2/   g  0oPl `p`0 0PU 0M S   8 2/ $ 8@ 0@P= `p`0 0PU 0M S   8 2/ (    0P `p`0 0PU 0kM S   8 2/ , ڊ 0P `p`0 0PU 0 09 04 0/ 0* 0% 0  0 0 0 0  0 0 0! 0" 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0{; 0v< 0q= 0l> 0g? 0b@ 0]A 0XB 0SC 0ND 0IE 0DF 0?G 0:H 05I 00J 0+K 0&L 0!M 0N 0O 0P 0 Q 0R 0S 0T 0U 0V 0W 0X 0Y 0Z 0[ 0\ 0] 0^ 0_ 0` 0a 0b 0c 0d 0e 0f 0g 0h 0i 0j 0k 0l 0m 0|n 0wo 0rp 0mq 0hr 0cs 0^t 0Yu 0Tv 0Ow 0Jx 0Ey 0@z 0;{ 06| 01} 0,~ 0' 0" 0 0 0 0 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} 0x 0s 0n 0i 0d 0_ 0Z 0U 0P 0K 0F 0A 0< 07XS 1S0bpq B r`{`{{k  @P jKM-Mp@P@P& ` ]p?lP ` h @p04 TB 1KtGrGO-M @(`KP N0KPK ` p0 nXPK 6 p  _`K (p Qh`K p`p |ppK` W}Pz`mPi pPxK <  V @PK &L`KP PK 0GpK 0@1   0P K# PKKPK 0`K 0 0P K PK_K]PKp 0p`K 0p: 0_P K PK8K6K 1`KP 9PK 0pppK 0I 0%P K oPKKPKp 0p`K 0pK{ᒷ 0P Ko BPKhKPK 0pe`K 0p^KOq 0P KF &B_K` 0A 0; 05븀 ƿp`0 `"  x0   P` t`` 08p 0N 0bdP ` 8P;`9耍e`p ^pPuqBKKxPKKKnP :`` Y밀K 0pK 0XKpPm``P\  0P K[ .PKTKKIP`KF`hKCpWK f@0   KᠶP8 밀K 0+`K(KB?K  "pxKP W 0P KPK`I .׾` .8(KPKPKFKDK DP` Dfp` 70` 0PK 0؀KB?K a BK 0p   9pppKu`q   0P. KpTPe``KbpxK_ 0?0P,R`O -KI`F D.KPK@BKK(P `K.밀K 01`KB?K Q )p P  0ᐿP KpBKP 0P 0P 0P ` cㇽPP0 `( 70 K  ᥸p 3 p㘽 P Eᠽ p0P 0 -耍`%P| MpLPr 62BKK9PK_K`TP`KQ`DP@ 7GPhK?`2P. %5`P 밀K 0-pK 0&B_K0 `(萍P`  0{Ps K( PpKpP ݼP 0耍p E p㪼P ` W᲼ (0P0 ,`ぼPp yቼYJBKWPK}BKKPK 0x`KB?K  pap0^  0ݽP KTMH `P BKP 0 pPE蠍 0 P>PP0 p6(!P`P ၿ 0ᕽP- BK (`pP 0P0 +PFDBKB KPK7K5뀀KxKP +8p(PKP`Kx(v0trpn`lKjKhf dpKbhK``K^XK\@RKD0H-pM@PE|x ~? fPPႼ4P@8-0+()ʹK0KNXO-M@cP^ LK0P冰ᥰPSKV b<0 K Ppp $T`KP 3P`-뜐K" jb0Kp  `p`P8 np\K w㙺  ڵdPKp h 0 lKP XtpK QP  0P 0PPKK?K ,q P㥺P 0`َ \K P P㊺ w oo`K P  \\KPK qFK AK pKP 0PiPPK 0`aKK?K ( , `YLK2` ᔾ 0ĻP D: ?CK4KAKKP KKK` 0`Q_ 0`G0 А̀`LK`㡹 J 0z(P KKչK\KPK ἫAKGHP_ QLPKᶴ`㲹p` ἹKW ᘴ̀` &}  0x `p np i p\KPK a  AKSDBGOG_uQKKKBPKhPK`K 0a 0[\KLpKI ᔪpAKB  _p0+S삹 0 `PXP K-  0IPK"KK 0 ĀK 0`K 0P KTK\KpKPK`AKp `LPK 0  ᬯP KKPKKBĀK?=TKpAK0  ڭpE =Co 6㠸 0 0pKK?K ,a tpAK0 赌P KKPC ˩  h`P HTKnPk  0T|`P 4K_K 0bQ 0[L` ᘼ 0ȹ(P< KK?TK8P5`IG"_20$ `WG_` C  rh`Ep  0`QQ_jKKhCoP <|KPKKLJKHtp㼷`EAKpIA 0A =K뜀K 0 0K 0`AK0 PċP K4PK KbKK 0Q 0Go0 PJq\Kj`AKg B`` 0p僋(P KKX4`KPPAKM ᘨ  g(PKp :`A7 Ⴈ  g` TK&`#  0 `P P 0p 0| 0` K 0{P= TPK`(KpD"9^D0L  Dp K㳶pP``I 0|P 㕶PTK`!  0ᘩ|u|Py4`KP ԧZKI(KGGT4PKQ yG KK\pKj? 0n  0hGo0 P`+RK`AKH #`AA ጧ`: 0^(P/ KK34K`' P ~f`pTK0  `  GQ_GkiKKg4KKCPh KKK 0Q_ 0A`AK0 pP(P< KK\KPAK ᠧP` :G 0̠ 0 `|0 |P{PK0 載 P G`PAK ЦPh W  ePp Ci`Af ᱦ`J 9  e`t 'TKM`J  04 l`P |P 0BDp 0; 05&` r 0ᢶP= |TPK`p"4K"`\4 0( (K, $ 04Kp rڴpPt``I 06HP D㼴PTK`t!  0ῧP+D)|'㠴`P ዦlrtpn{P G_QlCQ_KKK`PKKKKy NPK 0{`K0K  sLKLp  0޵P KULK6K 0SKK 0MQo 0Fp ׳G_0 p夠2$ ሷPK0 ᛵLK P p  [dP`TK PIA 0AҳP  . KKxpP qGoQ_+'%K#KPKK໳`\KAKP xA_p pyTK 0 IۦEOLKHFCDB @K>KV |R'0d pxp|x`p`P P`"UR0xxp| `P% ^Ph cẾP 0x` 08Kấps  0LP KᖾxP%#V8K  ᖥPe`K TF= ᅿ` mX` 堠 0Pxp 0PP0P(0 (` _  0 k  J44[))P (P ῿> P ᵿP 0P6x 0PP. ᛿0p 0P"4P 0p phP``(` 08K |P x ĽĽP0S⬿xOMpۿ`hؿp`տ(Pѿ Ϳ 0_8K⌠ ኿ሿX↿`ℿh₿p‿P KPQ8K ᒤ0 PP9P KX୩0 9KK`KKlD%O-4MpP@l PtP ᄛ ~  ㋛ `c0@( $  $K` အK\DO-EMp@+(`KP ḾPKx0K x` `K 07 7p8Mj 0ᤧXPP \KPK|\KzPK` ᠬPK` oƹ뼀K 0K 0 EoK\0K \P ᰹OK 0ٻʻPKǻ`ẴPᶴ * 0>P KPK᭻ 0`QK w㇥`ᘻጴPሴ ᏥS_` ZI 0刻p 0偻`\0K \P yDk 0m^PK[`NPJ  0Ҧ(P IPHSA  0 sp` ᳺ 0`QK-  0`P` ᝺t` 0`!Lp 0`$ 0`` 0p$yxP@ tܤPS`ݳ ቫPܺ\`Kp 04K/'L4Ҥ0D, ( $ (Kn)$ᑸPP Lሸ$PLtljwつS` ᑺᅳpၳ xሤ XXc` thpd kQ_Kb\pK` 0fnt/KtW0\L L|P  `ᬺ⪺⨺⦺I⤺ OKOK.PKp"` ᾪEoKpKwusKqʹKȹKƹKiKuD,sDO-M@pK$0, (0xpK a帷PK Z 屷먀K 0߹АK 0 ع`KH0K DP Hp ϹᚷẹP᷹`᪲Pᦲ ᝪ᭣P㐣`ᗲPᓲ + 0P KHK 0咹nK 0勹K|pxKyPlph _oP RpYPU ۦ 0 ܤD$,P HKQxKJPKG(  0P K^K;᤹HK⢹K0xPK`,p` " pc` Ȭ `P ᠩPJK pǶHPK 0pnK 0p  7g 0\DP HKᦶ^K5HK3xK(  0 pKP  2ቶ㚢PK⫸៱`ᛱ ᒩᢢ 0`NKP fJK⌸ 0P K W }Pz  0PR_K` @HK` 0`mtq ~K^?K x `c?`P 0psvDP HKH^_K ίnK;NK5 0K~K)ᒸHKᏸ K` (, 0`lnKP ቷP 0P 0PNK 堑 K^K 0ᘡ P١P 0p vDP# HK^K WnKշ᪵}KϷᤵNoKɷ឵ķᙵ኷^KᗵPe KNK᳷}KP᯷(, 0P]` v`  0`夷`roKV? \qX囷wpሷ 0`uP KV_ NoKsH}KmBh=.rK;r_KaʷKȷ !^K.^_KTίK⻷HK⹷xKGPKDH`Kp 0HPK/H 90t ^K ($,x  PpјጷPK `  P KH`Kp 0 K/OH 0t ^Kx ,  Pp噘T^K ^NKݶᲴàPxKԶȯ`į pˠP @pᖴ㧠PK⸶ᬯ`ᨯ ៧ᯠPr ${ᡶ  0P  `kJK⑶pᎶ`HK 0㓶ᛒK/G ᄠ0,P^Kt   x  p`"HKݶkpKh`HK 0muK/G ^0^Kx t   p`HK⸶1P A5`1 ݦ8nP ᬵK 02^K 0+^K H0KH @  roD`  PK4Qx`K0a史ဲpr}Pppl cspkPh`[PW N^PL`H ἟ 0 ,ϝD( PP) HKDr=뀀K`9pM/C0608Q  $BVP) xK` p /^C0 08Q  $BrƯVƯV_U SHKQrKOKM^KKKIn⢱ ⠱r➱✱K⚱K☱RK▱ K┱NK⒱K␱JK⎱KᛯPKK*(K&KxK}pK KL-M@XXT 3 !GP@ᮜ`@KeO-M@ᙜp㕜P`㐜㌜㈜ㄜDK 0`xD 0`q 0 ``i 4 P X 0 SDK!HP DEdS00 >+DPK5➱D✱ᚱBKL-M@XT ? FP@$֖@uK=O-AM@p -LPK 0p1Q TK `d|K 0 p| 0pT40K 4` pݰᶕo W|` 0F ^ ៕TpKሮሮ}}  LP ᒰg|K 0啰|p 0厰T 0到y` ۞ Xl,  0xP |K_LX0 Z*|PQT⺰Ḱ|KⶰDP  =3 0P< 㱯|PK 06|` 0/L pa l 0᜛xP |KD 0y OLKϐ|Pn|Kl< 2 P4 oƭ|KP 0P| 0PPTP 0ᲭXP[ TLϯP|` xj, ᩮ, :ᐭ 2'0`  63 2& "2,p$p(p pE 0 0` 0 2! ` ")(P"$H!0ʢ{( 0)0` 0pppp 0`" t0P 5 2&0P 5 2&0P  6 2&P 2  "P0 4P008p$PK"PG{( ,`(`2㰅8 p $p '$PK"9FdP ( ,`(`2㰅8  P"  0z(`P 5 P $P  2"(` 5  2"( `2,`(`尅8$K" (p 5  2"r 0p! 0P ?(0,`(` 㰅8T"㋉ :H4KFO-TM @  p㸓2  p P(p $p ,p ~$K! 2`帓 PG,PK"0 帓 ` ` 5\  2&"0  帓$K"\0 㸓 ` 53  2!x0  帓$K 2帓 P & 2㸓  P 0  2! 0KK-PM@0 `P  PP | "2 0 ;p 0d  2 "V(`K[@p 2ɌP  6  2m!O@ 0 06XP  5  2bK!0  A ( 4( 2mh"KO-LM P0@`p 0  0 0@"`  ```Jp  5& ` 2 p  6  2    2!#KO-DM Pp0 p@帣p p8`  6  2  "2 0S` 0|  2 " 0nUP  5  2 0 㸣 (  |U (3]G= 2㜇(㗜"KpL-@MP@  5}  2bA P  5q  26 P@ 0  0``P 5^  2( P `` 0`  5C  2  EKpO-\Mp@$p(Pp  p p5p#  2(P 5  2(P 5  2 0 P"(` 5  2`"(6/3 Ot(0,( ?8 y J(P  5  2LP  㧜 0㍙ 㜜(P  5  2d(P@ 09  0P5>(p` 5  2Q(p 0  29"R>KF0pL-0M@(@2 ɇP 5`Q  2 0 ``sKpO-M P@ 5u-  2 P 5"  2 O / P 5  2 P 5  2,`K  ( 0 8 @ H X$ , 4 < D L TĜ g P 0p  2$PK"h ` 5  2 ` 5  2 0{2$ t4`K"(6 1 "1 02$ t<`K" p 5  2{G" 02$ toD`K"C 1 І"u 02$ tQL`K"c@ 1 㲆"W $ 2t03T`"EJ t1 㔆"9P $ 2t0 P 5  2$K h 2P  ` 5 2b  0` 0? 0$  t0`p"㧄VEKFK-8M@ᄐP 㤑 `  6 2ri`  6 2^`  6 2S`  6~ 2H^? 0< 0pP  5f 2+P  5[ 2 P  5P 2P@ 0 0p kㄐ 0 ? p"KO-TMpp@pߛ P 5 2` P 5  2 P@ 0 0: r P 0@ 2 P 2P  ` 5 2  0 0p  0$  ?0 Y"㐃?KO-tM@,p( p勐 2  ۔0P  6 2M0`  6x 2B0`  6m 270`  6b 2`+0K$ "m `p`pY`p 4 0 2@<"O`Yp   5, 2  6" 2pG`FWY  :?` 2,  6 2 :HYY  J= 0㺗(P ᘇ"㵃0`  5 20`@ 0py 0 00` 4`0`帕@pk"㟃㄃N 0P  5 2t0P  5 2i0P  5 2^0P@ 03 0 㴏0P  5} 2B?004`0` 㸕@"PK O-LMP׀@`U P! 5R  2T"Dp@4  5Q@  2U X @ 0  0q DQP  5@!  2  9Dp`  5  20(@@P  @@射Pp  5  2?@@0Ⰴ(  P 9K x u r0H-M@P ŎK6!0~`KM- MPp`@Q  6 PK  53 0p  5( 0KpL- M@*P 5e 2PA  0 2P 5 2( =' 2zKpO-TM P@ 5 2 P 5 2 P@ 0j 0 $ 20  ` 0M  0   "Ӎ`! p 07  07 P }i5!0GP $ 0 0 2p !x Pe  0`_ 2 P  0`R 2 0b{P $ t0P` 0 $ tr0P`"=  P 5 2 P@ 0 0pL 00[ $ Tp 0$  T0T P` 0` 2 P  0@ 2 $ 00 pp! VKO-TM$K@` ( 0 $ , 4 W~4K@B 0ㄌ(u 0yA P2 PP尃 % 0y` 5{ 2J 2 PP尃F     PP2㰃a ,`K"s % 2Zy`  0O 2  㩏 2 P  6 2 >yK00H-M @# .y P  6 2 P  6 2 y㻌K00H-M P@  6 2n xc㣌K0O-tM 2<@4,$80(   " @ D@2kPu 0   㹈"@ D@0fP 8Xx@0D @ fP "2b{ 0 @P 0 23 (p "E@P 0 0@0D@ fP@P 0 0m P@` 5 2@`  6 2 2 k@0D@f P? "8"e "@ P0D@fk 8w@0P  D[@fR "2z 0 @` 09 2  "@` 0* 0*p@` 5r 27@`  6g 21 2k @0D@ VP"g 2hz@` 0 0@0P D@V` @p  6# 2  2' "/8 0A@P 5 2@0{?` D@vP`" v Be}@P  5 2 @P 0{  0{@0P  D@v{n"u0T@P 5 2z@0 D@vP`Q"u(7P0!0^PKM- M@ᄀ |r 0p`} 0P  6o 29 vK0!0) 0p 0p  0  0ps"㄀&uKO-\Mp@/( ,(Pb00P4PPP`lWp ( ,(00P4PPP`\(p 0 0` ,((08 `fJo0Xb0 P3( ,0(P0P4PPP'؄PQ @$( ,2( 8 p p"0V :vh(0P Ph`,( 8PM(p  5 2e "th! Phl`$P P彇  P&  u(p 5p 25  㝇p |"0{0 R Z 0{ c_[ WP`㄀ ㉏ ,( (80{`( ,(0u{8T u 㟐 ㄀u(` 5 2   tu(P  5  2  eu(P  5  2 ( ,(2u8(P  5 2  ?u(P 5 2{ "sKFɻ2Q??O-M@PK  ( $ , B+@ 0@@M  0@@E@ ័  0jX  5v @ 2  b 0` :,0K P$@Kp A  0B v 0 k  PPc@S 2PPc>  0PPc u,K "F P  PP2c " 9 Jy3PP0c   K0C B   P` 0  0@7$K "` 0B  0@& 0`㸃  @`B^ 0 @ u0⸃   `J` 0hr  0p<$K D`@ 0J  0p` 0=  0p=,K '@ 2X  0p Ls@K1*KK- M`@pPQ W 4 KK;  0@  5[ 0 K  5 N 0  5 ` KO-TM@SnP  0 ( $ , ҅,pK C`  6# 2  `儐w 5 0 ``  5 2 㢀$K" 0& 2|0?C E  2帣 0  帣 Y` `p  0f  6 0w 0p" 2帣 $`K "0  ?Cr 0p?F p0+SYy" 2 0pP  6p 2: P Č H 0ZPP  5S 2 rKpL-M@$+(P Ջ0` Ћ:v08 `0 @ MhKpL-0@{L O-tM @ChDK ӫ  `MhDp%v0$ $<(P  `@nDpK` 0PP$P 0  0`V u | w vDPK0݋@$JHKdCpL-`@PV pu m| pLvpLvL-@u0L茉O-tM @gDK T  `gDpu0 $<(P `$mDpK` 0P咋P$P 0㋋ 0E{`V u | v vDPKf0_@$̋ʋKhCL-0@▰L&O-4M @^g   `hg p@u0L$K $ (  `\m0%KжCL-0@ҺLO-tM @*gDK 㺪  `4gDp u0$$ $<(p  `'mD`KP 0pp$p 0 0ዺ`PV xt u{ uuDPKȱ0@$.,KCL-0@fL興O-tM @fDK P  `fDpt0$$ $<(p  `lD`KP 0p半p$p 0ㆊ 0@v#`PV t  { uxuDPK^0W@$ĊŠKXC 0#O-MP,K$  4TK40@ @F@4@ 0?0`/  {x ֈ9f( ɩ^p`=f(@t0$K $ 0 $` `@ p`pl,K·TpK͇4 ÇÇ@ PNᧉK$CH-0MP@ 0p؉0ɉ` +x p 0pẰ#KO-|MLpP 0屉$ 0㩉s=`I%$` s x k~ 7@bs w 7@O M9   00`((O0 e@Ye:feps:s0p$K@$  k@$@ሉL↉K踮CO-[M p$@"eHK 㲨P-eH`s0pK p @l  ` p k8HPKp0Kp ` ppK 0 0֯K0K ` p `ՈK 0PΈ 0Ljx 0P 0廈( 0嵈0 ᥈ 0Oᡯ ᚈu`ᔈ v > ኈ/ V  ix` + w$P 0FKHo  i(pP` 0sa Z 0`(똠K )P I 0` B `: Pp6 0+e  /(apPK(⌈P⊈x∈ↈK℈ ႈ @zHKxKCO-|MLpP 0$ 0@%$ Ȇ  ӷ 7@q v u D ᦆq@ ᬀ`ᨀ u [   00`n nᕮ0 c@c
cpqq0p$K@$  ^i?@?$@e·L̇KЧCH-M@Pp` x06`1p* u 0 oK{0O-4M@e  g`P8 0qX)O p I D P0K( -xK 3Q p;b, 0= `,Pp0$( (K4 $ `Bg8P PpK ` 0̃ P0 @bὃ ݅@8J`HFDKBK@><K`CO-M @aDK hPaD`o0lK l <h p  `gDPK` 0p㤅lK 0 p坅L 0p嗅$p 0吅  0qာh  `P0`Plh 0  p p=LP6lK]U=o  I 0pb $pF$00 L=6@ᣅᡅlK⟅DK❅K輠C/H- 0 O-[M@PK8000 (`P04 (,0K 8< xK `` PPK 0 ᣃ 2 먐K f븠0 ᐐ`P 0`%$ ႃ ᢂ ᢂɫp`nP`h"hn0,@ $@pDpPe ! t t ᛫ ᔄhp` 0`嘄@P 0㐄> .! 0oKs(0 `yj0 g_X ^`PV l s SnFn ♃H◃p╃HKⓃKՉ"L- @ 00( 8 LO-KMLpKP$0  0tK 0 ᮷ ខ:$ ΁@ 7@1 ᇁ 2 @`K 0Ԃ@ 0̂z j] 05nᯩ] 0 ᦩ$00 ᝩ0 \@ 0嗂ጩ.n, 0`@pN@(`0@pPp @ 0$TP$( X 0qTXP*GT(ToGł@TP@TT6 `PP V*@%`FFP*JQA!.rPP PP*HFpAV  `Y WP(@P (PP  (2/ (`P \k yPT $0B, ,L\  PpTPS (@`0 0$@p Q^*p 0h lᾨ$P PD  $K2/宁pZ Mk  Jr ll Pp(@T`@ V: X PpW TP (@WPTp$\KtKLKK#  0?M O|@p Q,5p607/1H-   댷? |H-HM@  ` 0 Y] 8 0,4000(00800I0KPK KlP  k`0p Qp Q ` Q,0`P2 W P 1/,P0KXEO-M\PK`@<0 0 p(8 @p 9[KP@]X@ +srrr![K蘟O-DM@],]`](]]p]P֗ӗN0 0\0\ $K $ 8 ,A( `pP)U]KTCK-M@ $/y( q0P q>\8`0 r@p$0K P $ ` Nr| 6p ZP@F]W@ rqqqZKtO-DM@)],%]`!](]]p]PDAN0 O0[0\ $K $ 8 ,A( `pPT\KQCK-M@ ၟ$x( Gq0P Bq[8`0 ~q@p$0K P $ ` q| k>p Z'P@\fW@ r`q^q\qYKOiO-M @\4\`P\0\,\(\$~\z\XKp 0Pmq8 0 Pfq 0 V i\ PፖpኖPZM0K 0C[0x P$K $ ( 4A0, ($p`S<\ qqKNCK-M@ Þ$w( p0P pZ8`0 p@p$0K P $ ` p| 6p WYiP@[V@ Iqppp?YK臘qO-M@`[gP@4`K 0O[P4 |Pp4 uPH8`D!p<1 00PP Pq$T pP XP  0P'FffˏL &PR 0Pfpf iihiᩏh@ixK iPK idhKd.CO-MDKPp@`  0@h< 0 @h@@ 0h 0  rX`\aXa  V 0S Ztp;R I 0p`EfFh hDKhKL-M@XT 8 PP@9SM@PK{pyO-dM@$Sᥠ`SP <0FGfG 0QHD(PᏔp`@0K *0N0p `  $ ( 40,$K(PqGO#eXK!eK$CK-M@ W$sk( d0P dN8`0 Td@p$0K P $ ` d| 8p LP@ON0\ $K $ 8 ,A( `pPF:OKCK-M@ ő$j( c0P cM8`0 c@p$0K P $ ` d| 9p YLkP@NI@ KdcccALKRayO-DM@N NNNPN`NNpNN  P0ya(va8 qa(P` 0 ,0(00 08P ` V P 1/8U P 1/KDaDyK-M@  $&j( b0P b5M8`0 c@p$0K P $ ` Ec| 9p KP@=NH@ cbbbKK^O-M@`NBZP@4`K 0FBNaB4< Bp45 B@8`p  0 0U P 1/HV P 1/`X P 1/K\D _(D_vK-M@ >$Zi( b0P aiL8`0 ;b@p$0K P $ ` yb| )9p JP@qM#H@ bbbbJKi]O-lM@`SMvYP@4`K 0zADMA4p Ap4i A!1a p0q`  pP8P<0$ ` 8 0@(HP0`p pW P 1/0V P 1/HU P 1/K0D[Dsߜ[K-M@ {$h( Aa0P L%Ґ6LaXKaKCK-M@ ὎$g( `0P ~`J8`0 `@p$0K P $ ` `| X9p QIcP@KF@ Ca```9IKTYO-DM@K,K`K(KKpKP\<0 0J0\ $K $ 8 ,A( `pPACKK` CK-M@ +$Gg( _0P _VJ8`0 (`@p$0K P $ ` f`| e9p HP@^KF@ ` ```HK{RO-DM@AK =K:K6KP2K`.K*Kp&K"K  P0](]8 ](P` 0 ,0(00 08P ` V P 1/8U P 1/K|DUD$kK-M@ p$f( 6_0P 1_I8`0 m_@p$0K P $ ` _| y9p HP@JUE@ _O_M_K_GKO%O-M@`JVP@4`K 0>vJ>4墄 )?p4囄 "?@8`p4σ V>!1a p0q`  pP8P<0$ ` 8 0@(HP0`p pWW P 1/0V P 1/HU P 1/KD ODDeOK-M@ $d( ]0P ] H8`0 ]@p$0K P $ ` ^| 9p uFP@IC@ g^]]]]FKKO-DM@H HHHPH`HHpHH  P0[([8 [(P` 0 ,0(00 08P ` V P 1/8U P 1/KTD|MlD@OK-M@ &$Bd( \0P \QG8`0 #]@p$0K P $ ` a]| 9p EP@YH C@ ]]]]EK7HO-DM@FKBK-M@ u$b( ;[0P 6[E8`0 r[@p$0K P $ ` [| 9p DP@FZA@ [T[R[P[CKA9O-M@`FRP@4`K 0:{F:4姀 .;p ';@8`@ YjXhXfXAK6vO-DM@C,C`C(CCpCP}}40 0rB0X  $ 8 ,A($K`pP;oCKBK-M@ $_( W0P W%B8`0 W@p$0K P $ ` 5X| 4:p @P@-C=@ XWWWv@K4MtO-DM@C, C`C(CCpBP+}(}30 60A0X $K $ 8 ,A( `p:BKTBK-M@ i$^( /W0P *WA8`0 fW@p$0K P $ ` W| A:p ?P@BN=@ WHWFWDW?Kg2 rO-M@`~BNP@4`K 06oB64| "7p 7D8`@!p81 ,0PP Pq$T pP X|P@ A;@ \VUUUR>K*kO-DM@@ @@@P@`@@p@@  P0S(S8 S(P` 0 ,0(00 08P ` V P 1/8U P 1/K(D02@DAK-M@ $7\( T0P TF?8`0 U@p$0K P $ ` VU| :p =P@N@;@ UTTT=K='hO-DM @1@,-@`)@(%@!@p@P@@10 U0?0\ $K $ 8 ,A( p`P7?KBK-M@ ᇂ$[( MT0P HT>8`0 T@p$0K P $ ` T| :p =-P@?l:@  UfTdTbT=K%fO-M @??<?8?4?(?,?0?P|?`x?8K0 $T`pK@0 @eT@ 0^T 0N{GT!(p 0;1>T-R R 7{,-P,T`@00K ~0)>08 $ ( <4 $K0 `pP6"? uT`KsTSKtBK-M@ ᧁ$Z( mS0P hS=8`0 S@p$0K P $ ` S| :p ;<MP@>9@ -TSSS#<Ka!cO-M@`>JP@4`K 02>24x `3p4x Y3@8`8@ aSRRRW;K_O-DM@= ===P=`==p==  P0P(P8 P(P` 0 ,0(00 08P ` V P 1/8U P 1/K< HMNP 6?dLN *< 4MWL WL ~u N`NNqN < KMP` 0`nN`p 0``fN8 0`_N `  5n* < Lc* < LW* < LKK#u3*Y , oNц,P80@$ 4`(` $ (K(p pP/@K.`t *Y , FMᨆ,P704(` (K$  ( pP/@K.8t)Y , "Mᄆ,P704(` (K$  ( pPf/@K{.KtY 0+SY7X}@Kl.Ptr@`K e- 0Y p*U.8M`MMMMMKMhKMK BO-M00@$ Ct(pK0 .M0PK L 5t(XK0K p fM`K0K P ^MK 0XMK0K p QMK>K q JMK 0CMJ 0=M  07M 01Mpށ L(JJtZ,؀ KK᪍P~Jo K%0KJKJsᢍP KK Px KKXPKJs(`KL(p : KL0 0 s ;,fK 0jvJ,P1Ks(`KL : KL  0~spZ\ 8K 1K 0(`K4vKQJKxsP0 `vLp`0 ``nL,0KPP ZL 9 07Ss P` 0SL8p 0LL=L F: K3L0 0sP  K Lp+ 8 0 7s4 J0KLp1 8 07 r 0uI`ZL XL,PI r``P 0PK(pKK( 9 JK0 0PrP~ nJ J X8< 17r 0\u yI8` L LPLKr 0pKP`0 `pK` 0ppK 0K`$HIor hK( q9 JJ ^K0 0pEr 밐 I 9 I ÓP, #J  9`p 0 6-r4p8`x $pP 0  `<r^ 0'Pz Y9 ᰀ06r(pK 0tPH ^3^K`\KZKXKЀKqJ( 8 IPJ0 `0`q``p 0J qIᮑ I$ 0pS'paz 8 0.6q 0YtvH K q,P (KJN5q 0+S64 3z5q-z5J JJJKJKJKJKJKJXKJ0K-J(K+JKO-QM  @ 'q0(K PJqPKx0K`xP P  PMJxK0K ` PFJK0 `P?J` 0P8Jp 0P2JHp 0P+J@ I 0+S^4 G~ H GxPKGq# H# G XI 6 0k5Pp` 0PI(K I 7 H I ! 6ᅉp I f6p 0?5p  0jsxKGJX pp(KI`4Hp 0+SH3DPKp` 0PI(K I 7H hH |I ! 66 6pp 04lp  0s:GI_p yp4 Wpyh4@IHIpIIKIxKIPKI(KIKO-QMP @ p(pK0 HoP`Kx0K  xp *IxK0K p #IK0 pI똀 0Ip 0IH 0 I@ vH 0+S<3 F} G FxKpFoW| KGH G@FW `H f5xPK0 >4op 0H(`KH 6 GH  6YPH :5p0 4o 0=rxKZFHP p|o(KuH23Hqo 0+S2iPKgo 0fH(PKVH ` ^6H 7GKH  6p 4 03:o 0qPKFHpK,o%H .6H` GH 0ԇ 0qE  ow3ow3@GHfHpdHbHK`HxK^HPK\H(KGKL-M@u\X 1= I0[P@2-@80K53M-M@ nu 5= %07P @2v- @22`2p2P2 0pP/K2M-M@22`2p2P2 0pPKH-M@ u 5= /P @j2- @`2P\2`X2pT2 0p/K`=1H-M@A2P=2`92p52 0pKH-M@ t J= {/P @2, @2P 2`2p2 0pW/K;/H-M@1P1`1p1 0pKL-M@tt\X T= +/=P@1|,@z/Kn.rM-M@ Pt V= /P @1X, @11`1p1P1 0pP.K-.M-M@x1t1`p1pl1Ph1 0pPKH-M@ s a= .P @L1+ @B1P>1`:1p61 0p.KC,H-M@#1P1`1p1 0pKH-M@ s k= ].oP @0+ @0P0`0p0 0p9.K+H-M@0P0`0p0 0ptK0H-M@Vs v= .P@0^+@0P0  0"0-K0:E*0H-@0P0  0k"0H00H-M@s ~= -P@d0+@Z0PV0  0>"S0-K0%)0H-@?0P;0 j 0#"0H700H-M@r = }-P@0*@0P0 = 0! 0\-K0(0H-@/P/ " 0!0H/L-M@~rXT = 5-GP@/*@%-K&O-M/ P/(pK  !D0@K  D MtpB ikBX@K  0PDKP  0PDK  0PDK  0PpD 3y  #C   TC  7y@  7s$ PK`  0`_DK  0ppXDRK  0`QDnK  0pJDfK  0DD ᵌ@ %$  B :$RK.K 0/ "k    B $p@ =P < 2 K B(KA -@ <P < 4 -0  (# s0KA  ㇋@  b2 K }B ᶄf@  0@C,  0@C K  0@@CzK  0 @C  0Cϟ 0R,fOLAHA PT KX \B j$P@ 0 @lj(`KQApK PA, wj  0@Yj@>A m 1  PEB ufK  B h'A 'AK Nj   6 @  㭁A AzK 6jr  0@@7C   6  㐁@ @ j /f/K A Qh@ @uCN j .mCkC KiC,gCfeCRK ip v K A - ,@ f"6 ,00,  `P ,P@$@ fg  ,0,0  ,P`@#0K }(K @ n(@0   Wr0Kx@  L@  '1 K BAfOK g@ i f" ,0,,P0  #L@K L@K si  7} K A  7q@ P;P L; ^0 K 7A "@ 3,@ :;P 6; 2 =,(@0 s q0K@  ׉@ N 0 K @  @  7"p  0@ :  2 K  0B`fzK@  0@A^  0@Ar  0@A~  0@ARo  0@A  0@A  0@AЀ  0@Ap  0@A`  0@@AX  0@@Ar0Pz_K,P48R<,@DH Lpf?P`T@MK  @ h /- h$p@  0@ (PKO?`K N? uh  0@>? >?r eh  0Ӕ/? /? Vh  0Ĕ ?  ?R Gh  0嵔? ? 8h  0妔? ? )h  0嗔> > h  0刔> > h  0y> > g  0j@> >XP g  0Y> >K g 30 `0߸ g  N@  )/  D? 5*  0Pge@ (*  0PP刚(Kv@P *  0y  P ; N —   0%p  0p呙 7*0  p则p>РK > ?g  م@   E 㑗   0  0`@0p  pX0PK@0  pO $+X@K  g *0( ; fKf@Kd@RKb@K`@K^@ \@KZ@KX@V@??KD>HB>O-M@m 9? <(NP@*%@***p*P*`*` 0 1* (K&O-M@***p*P*`*` 0 KO*O-YM00pK 0@,  &?K)8`K0 ?`PK0K ` p \?눐K 0 U? =Gf@?P=? $ 0yp 0밐K` 04?r >5"s)0 (pP>  PY  ^$`P(0(  P`p!ppP` 0`>뀀 0>`X` 0>( 0y{s k= d=G = 0r 0&*e 7㪅` P0 0(08$ (K, (( $ `Pl 0KM<KM<tenP0"0j(08(K$  ( pP  s`Pd0 0M(08(K( $ , p `P+ 0K N 0+S'  0jx 0p 0K;p; e0 ! m>Xk>i>g>d 8PK;``K;W>pKd=@N>L>==K?CHBL-M@|kXT F? 3&EP@(#@#&K O-M@((((P(`(p(( 0KO(L-M@-kXT U? %P@(5#@%K O-|M@`m(4HpK 0`^(PHb   p[mPN " 7'0(, 0K p0 pPX  <'HP0 <` ` 0=p ;  0x::c 0:P0K]&`8'0p&0( $K$  PP&Hp<`0K 0&0($ $K   Pp`HKw =s<K~BL-M@OjXT >= %P@'W"@$K)O-M@P'3PHPK 0'`Ha 3  `}lpp0"0Y&08, 0K$ `0 {  _0p, 0D< (p : Ӹ ;Hja $ 0dp00K]%:Pb&0`&0( $K$  pp`%p%P0K D0%0($ $K   , ($pPKHK 0Pb F 0س5<K({BpL-@֔|@|@pBD0H-    0 > 0`p` `0YO3LK!2L0D0, $,pᢾLpKP 0P2 1P,P 02 ig Y1 1$?{ 1pHb~I 0c 51 ѾX0Y{p\ I0p2LPK<0cYs,",\0$ $K4   `@2K(P  ! , P    P    P    ޫP xxx   8Fd F@ F@ FF4 F F F FF F F F FtF F F F F`F Fx Fx Fh F8FFHFFF8UBM-Mp @P0 ላ 0㓋 0`㍋ 0㈋ *p 0` 0`70 `KM- `@p P ` 0L 0MJpL-@ PӼ` 0:pL-M@_XT 0 P@q#@KujH- M@\PX` 㥈pU  ]! >0< `aBKNBL-M@^XT R? P@$@uKodM-(M@P1( P06V`1V p 0KO-]M P` 圹x 0@0P 0@0-p%xpKP  $P PPK0KL0 0P t  x ` @P hp <_@hW P 1/@ pU P 1/xPP0 W( 00 v z/U0P  P嫉Q0  P墉  0P圉  0P喉  0(pK /PK@ 0@O0@x@K0K p PF0렀K 0P?0$P( 7@w.'0cPpK0  W( 0i-WȐ@ 0@0@@ 0 0(K/p 7 wPc 0wV 0:p- V(K-xPK-F0 D0V?0=0PK;0/$ 7v@P(@( (@ `. PK"P0Ht xK  pPpx m-V  U/P V0; P @*_P PK/Pu0x xKH t @ P * /x/K0DDpHBL-M@]XT Z1 P@V@KS,M-(M@@c&P 0g`bT p( 03KL-M@\XT [? k}P@ @[KAM-(M@P&PP 0;`T p 0K0H-M@g\| _? 0P@o@P 0K0`0H-@P 00HK- M pPޅ`b0@, @岇X0 @婇{  M e0| pp`e  "㣿 N p 0`KdCB0H-M@[| 1 P@;@1P- 0K0z0H-@P 00H}L-M@[XT 1 btP@@RKTO-%P:%  %+$0 t * * *S  74sP%p % cLP0  Sp0` GP4K"Q4 ,$ (Kh0( @ `P  R<K+Pp$P$ #뜐 *4K/40,P(K$  ( ` ( 7`rDK)tK)$,L,t,R)( 7urDK6)tK5)\R0 㓄etJ  7ZrtPI0|LLP `o  7GrrDPK((++K++**K9BL-M@XXT 1 uP@@eK蠬$O-$M@`( 7qp 7q0( # 7qp ip` ᛂE " z 0ㅄ 0P 0P 0P!0@  p` KT4BL-M@0XXT 2 P@8@K~M-(M@qpmi`( 7eqP 7_q0( 㙃 7UqpYPR/㐻;0<   $ P ?K2BL-M@WXT '2 㔿P@!@rKXO-2 P@Z@KOtK-(M@  ܀``0, 㰂Yp"㽺h0$ p P P@ p h"㦺Q   P$ 0` Kd/BL-M@VXT N2 㱾P@>@K臥̺O-|M@)p P#$ ( 7pHK 0P )0H (@P0 ( 7o !` ! , 'xH`&q&&O K0 ((,@80,  7op P(` (p $0  `M8Y P 1/@K(HI(HK(KC0H-M@#V| 2 P@y+@oPk 0K00H-@[PW 00HL-M@UXT 2 㲽P@? @K͢жK-(M@*&  s`0, GWp"T0$ p P P@ p^ "=   P$ 0` K)BL-M@UXT 2 6HP@ @&KN(M- M@P `0, ݀ / 0t pp` "ظ  p0`1 K0(BO-4MP@@ ~w  GLpBP} `U0H$K $ ( ` pPp K$'BL-@L C   /C/'$oL-@1 C   /C//L-@  XC     /@C/ 0 ~L-@  C     /C/ 0 ~L-@  C     /C/ 0 j~L-@  DC     /,C/q 0 J~L-M@-TXT 0 P@5 @KQ{M-HM@mPi`e 08P 4@ 0    0p@p(p @W P 1/KTCO-]M0P@}( 0`S_K0T %,p 0``&\K 0`&넠K 0 &Z $&$n 0wL0; PrT## L H&F& 7l\ P  P \K2/pP# \`K 0%Y $ ( ,P  K0`K6/\`KL&\K CEP\`0PT  $ Kp` 0, T0 "\K 0 P`|%K 0Pv%K 0Pp% 0Pj% 0Pd%lP 0`]%  Z # e`, ($(E |pd $\ $ PK 0 (L  72l"  7*ld"K"L=P4K"Z40, (K$ $` (` P)TP, 0!xp4K"740,(K$  (` `p,p 0m!d"\"PK"lK@ 0T" "K$eYP T#$ץ딐0 K$`4KW 40,(K$ $ p ( p`w P" P"  PvKd n$` k$ 3$ 1$l$$$K$K$\K$#Pk\K!㩵\T0TK  ㄀ p`y( `IpO\K"㍵\80T K℀  pp=,$KT $PS`-\K/k\0TK℀  pP `w,n$ #K*, BL-M@QXT 0 Y kP@ @I KlOO-LM@`p 0   0 $`0P(0 <@P  z@U P 1/(Y P 1/KHCCL-M@8QXT 1 P@@ @ K蠐O-LM@yt`pp  c@ 0 (0P< @P0  `@U P 1/(X P 1/KCLCDO-,MP@z |z, BSHp P2` 0@$ $ (` pPKBL-@|C   /C/H- MP p P "  00 PKBL-@ { C     /C/ 7 izL-@{tC   /\C/bO-$M`%Rp]!ųp 0  PPpp`o!㭳X 0P  @p~_ KB/&L-@T{ HC   /0C/ 0H-M@O 0 㙷P@& @ P L0ᢚ 7 i b K0e`0H-M@ P <0ၚ 7hK0H 0H-M@|O 0 3 EP@ @ P 80N  K0._oZ0H-M@ P (02K0H 㤉㢉㠉=㡌㟌㝌L-@(^L衇L-@(^ L/L-@(^ L"O-iM`(K@ 0 0K XKp 0pPK!K 0pE!K 0p?!K 0P9! 0P3!Z$ @[  0p&!PxP 0!U 3 0 H0 B GpPp 0 (@ 0  U   0_ G 0v G8!6!x*ꠀ 0p xp 0P qU aS 0/ G 0F G!!@PUȀ ?2a$$ ]xp w  PK ( w    cpK0 P bG 7lg(K- h0K& cpr l  g pKXK 0 3G  c @c 0 K G 7*gp 7$gP j [ (K X0PK F$ 06@   gFP@ 0@xp 0@ @ ʠ 0B FZ P:AP $ pX(,($0 @.P@P pX(,($0@ xPF 0$ KKKXK0K0(K.K@BBO-MLK@P `  0`\Tp 0`U, 0`Ow 0D^   0  ,F 4S 0 `Č,pTF S 0` `完Fp PV  }@  (0$   $KAP p D?  P(0$   $K! #,5T3LK1KDBBO-M`\K @ 0@P 0@\ 0 PT L Dp NS >1_P9a k  pa ca % 7e@S   (aP0 f ) 7`eL!q  \ Kf ` 0  4EP 04DN@94K"w4"0,$ (K ( p@B@R ᧚ 4K*.O40,(K( $  @p^`@ eT  7dLpD  \@K0 F D A 0ŕ"DP p@X ,? $4 4K0  0p P@#= $4 4K0  0P @DD wL@psTP o 0  p -+ )\\KKLBpL-M@J Y? ȲP@U@KPG`C 0Kp:pL-M@1P-`) 0KpH-M@ J [? p ゲP @ @P`p 0p"LK9ȋH-M@P`p 0pKO-ey gpL-@M0(P` `,(0` 08P `G@ V P 1/8U P 1/KpXCHCQ 3/1H-   PcAx CpL-A@0; QPL  !yp`YYY pLY>O-M `@p8 P4 лCCO-MpDK`@P 0@\ 0@4 0 0 `0PE 0( ` E Lo@  b\`>( D0K`a 0qb 4@ 0 @\ >(  0&cD@K> y KA0 Q  !n>O-dM`$K@ 4P 0 p 0 6P9W U$KHHo><$K@<<c>`[@KO-\M@P_Q^~HPU4"㓨4>0< `  P`4P 0``-` ` 0&K ᶓ   > l 0 =g eKAM-PM`pP @8 0P p P0PKp p,0 0  $  0@ P 0paE@0W P 1/ U P 1/K$CCL-M@ 7]   0|KH-M`p@P@D 0+@KO-TM@ P p 4PK04; 8 w`sppP 0f%J (nJPR !m 0N`   0O`5=40& /Kx >A0R Q  !zm >pL-`@PJ DW pLpL-@MP@000<`=I 0 P ` (P`,0(    08P `rD@ V P 1/8U P 1/KpCCH- Q::pL-M P@`[Cp2ll   P`O. KpLC<unL-@O.LpL-M P@`'Ct2pp  UPz,w Kp萬CJmL-@f LpL-MP@Y4QY`ROR` 72KppL-MP@Q@?`8N8`! 7KpL;O-M`$KP LK@ 0@ 4 0 @ p 0@+V 0q; la  ;P@N@! 7; ; @& $" {KM-P`@  QZIp Iἇ zP@M / 3MXK-hM`$KP 4@ 0@x p0K  @p =  11X;APj@c)Nc@! 7C; :; 3@ KM- M@P`pH  l ( - f 0` `4PC I 0yKAM-MPp@H` Z C 0@q@C  0KMJO-TMp,P`@ 0@ 0@@gH Wʆ O ? C 7 0: + 0,@}:L  0KpL-M P@`A`?\\  5ӨPaKp@CAeO-MPKp@EDK 0@9L 0@`2 @   Z  Z 0D @< 0p 0` @`9  MD@K  0`9 ` j s<` 0v  0 P7P p  098  08 9C7 jhKaApL-M P@`?`q4\\  OaaPAKp蠞C-y_K-`M@pP`l ,4I 7Xp8!80 @P8p 0` 0sPz pv  0x8#Ap8AK_AH-8MP@Kp 0` 0WF h &hM" p0+S}  %8PK pL-M P@`>`4\\  n〦P`Kp0CA*[O-EM@`p$P 4 ,4c`mP 7Wg0(K PKp 0pxK 0 pp `0P 7  0j$P 0Php 0PP@ 0P z7 sP  |WL|Pu;JuPA 7U#7 %%L78p 0P ( 0 0`76 #  7-W6 7$W6   o@ $P ;0= 7W(` p 0668P  7V6p 7V6 d0    6(Kp `P 0`P$(db `@hxKPK TK[O-MPhK0p@  0@h 0@|@ 0@v 0@p D  P@ P`@ 5A@  ݑ   $ )@` $ K 8 0= 7S `  p 0220P   7R2p  7R2 d    2 (Kp ` P 0 P f d b 8 `  xK PK V K|KO-MPl@K0` 0` d 0` < 0`y  0`s  !@   L`LpCd  8=<     $ ,`p @@K $0K 80 < 0@ ` `0@   ,20T P 1/lK2 ` 0Zd2 $ D p(@@K<  @ $K8 DK4 00@ `10T @ P @ 1/<1 ` 0 Mp1  0, <* d( lK& K$CCO-MP@` Mp  \ 0 `17   00p `d`` 0d 2C0 ` yd 7xQ`LpS`O V0 cKpL-M P@`7`5\\  㶟PDKpDC@O-M@-`($pD 44p圃 7Q0$K ` LKP 0P PDP 0 @  0PZ090 P30   c  7pPP`P   0pb  7PP`P 90  pb, ` 0@n0pP 0` k`g n]`Y   9pW0 0@8c D LK $K K@H-MP`@65  㪞P8/`+pT ,4㤂[ 0*#tK(|C> <<H-M@P `p@ ,4[ 0KHO<H-M@`p 7OP` 1`p TN` b 0b 0pb 0pa0 paK0H-MP@N65  PSPd ,4 7O 7OK0yCA::0H-M@pPlP ,4 7aO 7\OK0H^9pL-M P@`5`5\\  b㯝P=KpdxCz8O-M@`%P!pC@PK 0@Hh@C- `@<- $ ,4,p~hPK 0<  ` wpK0   7(NxPK0 p`H0p LPHpH 0p.`  00p0(K@ppp@($PW P 1/H0  084 0 0Pg.p0 '0`q0(K, ( 8 $ $ (`pPpK)xK &p`%HPK.,@K hpKB. 0xKpKKt8yCAO-MP<K@ DK 0 l@K 0``d` 0  7N; 0-<`0 @ 0- ` 7Mp; } 6 ?p4K5 40(K ( ,$ {-<`K|<|- @( 4@ P# ( K04K3/l@Ke<-DPK<K# ̤AO-dMPp @M M` M $K 04@ 0 `P  0`J`;-4  *@ Z @ 0-p 0/V9  `0-p@j hKH-MP`@336  OaP`pT ,4[Z 0+K@oCVy/0H-M@P`p@ ,46Z 0KHn/H-MP`@?3;6  PD`pT ,4~\ 0}KmC..H-M@Pd``p@ ,4~\ 0_KHV .pL-M P@`2`D6\\  㧚P5KplC,O-CM@pP``K 0 ppK 09 oM .$E  -$E  /$E 0Z+80p; Pp ~+o4`K0 {)0 tDh@0@`` `@ 0` 0p 7K` L0<0P 4 8  8pK(p pZ(W P 1/8K0  084p+=0 ]94K4`-$*Eh   08+p/$E@ 0 =+`5 p0 %G .+'됀K`#0 6`+ 0] } { yKs`KqK.,\mCpL-M P@`1`6\\  XVjPJKpgC'O-[M@P`p8 44Q} 7JZ0LK sR0TK k|K 0 `K 0` 0` 0`l 0`D 0` 0`68 &DP%D`X{ KM5    $p p@L`KP%$K8 @K<  D 0`@ l0 A*0Y P 1/|K2*lLpK`D P0 mK"* $ DP Px<  p@ $K8 DK4 l0  0*0Y P 1/)lpppLPK`D P 0f)PlP 0 )2 )27 531/K-|K+TKLKK(`hCgCM-0M`pP z)k@ut0K pp0 p0P ) W P 1/KeCK-0Mp`e>P@L<@ 7f4)@ 4>|0K`` 0 0 0  0 `K) V P 1/KeCM-0Mp`0 >PF@?<?@ 7(p@t0K ` `0 `0p ) V P 1/K(dCH-MP`@/6  PZbP`pT 44\{ 0*,K_C}\ H-M@P`p@ 447{ 0KHH-M@`p 7HPbY Xp G` ;[ 0F[ 0p@[ 0pZS0 pZK0H-MP@/6  [˖PY PPLd 44z 7AH 7e' P]` Z 00p0(K@ppd@($`W P 1/0 0 0`8pN0 [0P30(K,(( 8 $ $P``KpKxK p`Hp 'J%@KhPK' 0BfdxKpK^K\]CAO-MP<K@ DK 0 l@K 0``d` 0  7F|4 0A&<`0 @ 0~& ` 7FpO4 ? b/ D8p4K5 ֐40(K ( ,$ =&<`K><>e& ^@[( 4@ P# ( K04K3/l@K'<J&DPKB`dKԇAO-dMPp @F F` F $K 04@ 0 `  0` `% a @  @ 0%p 0(2  `0O%p@- +KH-MP`@_,7  ]$Pd`pT 44x 0KRC H-M@P`p@ 44w 0KHvL-@pL-M P@`+`7\\  ^PNKp\QCO-CM@p6P2``K 0$ppK 02 F 6$>  5$> 0|$0p; Pp w$-`K0 #0 Dh@0@`` `@ 0` 0p 7D` &E00P 4 8  8pK(p p(W P 1/ 8K0 c08`O60 V될 \6-KW 6$N>h`@p 0v$ o l 0 \~e$ ^됀KpZ0  mpS$ 0W!@ K`KK<RCpL-M P@`*`7\\  㡒P/KpLCy O-lM@pP`$K0 < 0 PPP 0 0PW # 5#8 6 KO- MP@p^ [` 0V0 pV ]5`? 0pVK0H-P@. 0H*O- M@`p P  0C!` VFP 0^V8P 0PV4P 0BVP `P 0 fK0H-P@ B@ 0HpL-MP@7` 5 ` 7Kp0H-P@ 0HO-|M@ ,pK0 m04K 4P<0K8p <  ` 0"PK PC @ 0"$` P. $ K0 K3/4K 0:%,PK|`y  /F4`E pk"+) K0H- MX@P @P@@Ps@U P 1/K0IC0H-(Mx@ P 0   K  PPO@U P 1/K0LICpL-M`P@ 0!!P KpLH-M`P@p 0p!!P KH 7ApL-MP@`u A0!KpL!K-@` p P @p O 7 KO-MP@0p: 7`F$0 T;$0 T 0`!A!`  `"3p 0eT3` 0VTK0H-P@ ) 0HpL-P@  `  pLpL-M P@`'t8pp  {㍏P vhKp@C)L-@ LdpL-M P@`'t>pp  EWP @2Kp?CxQL-@ L.pL-M P@`\'`8\\  -!PaKp0?CHyO-TM@P`p 0`4. $: U E` A0J + ` B04P 0$K8 K<0`$ p @``bP@V P 1/ 1?P%  5KACpL-M P@`&`8\\  pゎPbKp0 K p $  aP u '4',KjApL-M P@`%`8\\  fxPXKp8CEO-M@p`@ 0P 0 , q 8   >D 7`>`O 0q@  $P 0 @PK @ $K8 K4 9uP P C uC`:7Cp Y1P E 0R 0E 0EDKp 0ppO-tMDKP0p @ 0$` 0`  0`?%7  @ .  7/0 'B  7/0 B  7/0 B  7/0 B  7/0 A  7/0 A  7/0 A`v$puT! 0__PGKM-M@  R1 }P @u' @kg%``p\PX 0PWKhM-M@B>`7p3P/ 0PKM,O-MpDK0P 0Pd 0P < 0P 0P @ j  0P> 6`  7.P P 0 TP4<2d0DK.KL-M@eXT s1 ".}P@m@ Kf(O-4M@_P `p 0  0@du\) PQ   0vKXO-M0`0p@`>o5$PK0 LK 0`G< 0@ 0`:+ 0 %  ţ 7.p>` =?`p 0p0Pp` K IGK詶pL-M@z 1 1!C|P@@P `0 M KpPb|pL-@Pb `0 /pLO-M@`0p.=4P.  7Pz- 'P(K 0  Px  PPK 0pKxK 0pEX 0 p>Y  pQ x0K  / K(pK xPK 0/    \Z XPp bPKP 0PxK 0 PPX` 0P&P 0G    p  0pPvv   0= PU (  % *|`( 1?(Ko0p p>Pf0 p>U 0 DNPK 0`^xPK 0W Hp0  `X 0 p>/ ` `| 0 &  7x,PY p 0 fP K jHp 0 n>P p CXPx0K \BV- PK |H`\@X`dhP 0$( ,  U P$hU P xPK41/LH``\@XhP 0$(,  PU P$hU P 1/xPKFm H1PKP+(K) K1\C̰CSB,BL-M@XT ]2 #yP@R@KXO-4M P 0240 p  0- `@ 0`gK0H-M@;c P; 7*P 02JK0L-M@XT 2 :LyP@@*KyO-EM@PLK 0PPp`TK |K 0p댐 0 Pd 0PP /'*p |PK 0p ဿ< t<i0D` p`TK(d( O < 0OP 0G` t LK `  0   :c t: 7*p  0VITpKd  4KV Gt40( (K, $ `H F LK<:|K8KhAL-M@mXT ? $6xP@u@K4sHO-M@p `HKP  0``q0PK D```808     0x 99` Ypg8P 0Y 0Q  0> 8 'T)C0K s0,0x$K $ ( N` 0d;HK|z`xPKKAL-M@XT 2 dmvwP@@TKa~HO-M@P LKp  0PP'( TK0 ||`Kd0 dR  V Od<0p <d {L < d m`0 Ž E|ጽ<d r<u0D ^T`K6|pK5\U<p 0Y 0Q 0>L`K 7G4K r400,( (K$   !TP 0j: d~|K|TKKAL-@ : B     /xB/ՇH- M0  { РLJL-@9B   /B/ᯇpL-MP@ 7` ( 0 4:Kp虇L-@ 9 B     /pB/၇K-XM@p 7 '0` 0P 08 (Tb 0p 0 97^KO-M$0pP{DL`YDK"qDB0d< @PTP `b@D@Kp 00X 1PK F,`6P@0HPTP p@ `Pp 0(` 0 `(@ 3 0Y  0W0.D`Kϻ$@o"PP X 0((,aK A0H-M@H | P0 ZuP@P@P 0%K0J0H-@P| 00H0H-M@ | W0 [tP@d@ZPV 0K0JŘ0H-@FPB 00H0H-M@ | ^0 \tP@*@ P 0qK0=Iݗ0H-@ P 00HL-M@ tp e0 Q]ctP@@:p:KtHL-@)pL0H-M@f  k0 ^/tP@n@P qK0G%0H-@P q0H0H-M@(  r0 _sP@~0@tPp 0sqK0F-0H-@]PY 0s0HY0H-M@  y0 `sP@>@4P0 s2K0E-0H-@P s0HL-M@ XT 0 abssP@@QKD5H-HM@P`Rb p` @p (`K0$0 0(    ` (pP P(W P 1/V P 1/KXB,B0H-M@C  0 a sP@K@P 0sK0SC0H-@xPt 0s0HtL-M@ tp 0 crP@Y @O)oRKfBL-@>oL@0H-M@  0 drP@%@P vjK0Aɏ0H-@P v0HO-M@,Kp P[PTKP0 U\ `  U |Vm]|f` \ t`K `ɸP"PnP0X((, ``ս 0 0 J P9 ,WP`0 }፸ 㚸`r0$$ $K  ` pӽ`,K3TPK $`w  (PBPZ| 0@TTPK0,`K(@K@0H-M@ | 0 XqP@@P 0eK0<0H-@P 00H0H-M@ | 0 EYWqP@@P 0+K0;Ŋ0H-@P 00HL-M@T XT 0 WqP@\@K:݉H-XM@0Pp` 0``` 0 0:!p h yKL-M@ XT 0 jpP@X @K:H-XM@C0Pp` 0`5`` 0. 0  / 'zxKL-M@XT 1 ggypP@@WKX9MO-GMP<`K0 d@K0K ` pK 0 0\@ 0 / Y b `Q4@ 0  0 M 0 r 0+S   `g 0KV 0    oPzaq4K_ k4Z0(K ( ,$ B 0ᓽK014p0H-@.P* 00H0H-M@| 0 sKjP@ĺ@P  0YK0`3o0H-@P  00H0H-M@| 0 9-KjP@ؿኺ@οPʿ 0mK02n0H-@ếP㶿 00HX0H-M@H| 0 .jP@ឿP@ᔿP㐿 03K01m0H-@ဿP| 00H0H-M@| 0 ż/iP@d@ZPV 0᫼K00l0H-@FPB 00H0H-M@| 0 iP@*ܹ@ P  0qK000l0H-@ P  00H0H-M@| 0 Q1ciP@ᢹ@P 07K0a/(k0H-@ҾPξ 00Hp0H-M@`| 0 2)iP@ᶾh@ᬾP㨾 0KK0.@j0H-@ᘾP㔾 00H6L-M@&XT 0 ݻ3hP@|.@ͻK-XiO-M@g`bp\\PK 0`O u lP 0:Dp 03 0 `,Rs j g` ^ w[ R  FU 4K- @d40,$ (K P( p #l ~4K- d4ʼ0,(K$  ( `ph D _®4K- d4᫼0,$ (K(  гpH  @`elᜮ4K 4ᅼ0,(K$ p ( Ppoዽ rႮ4K 4k0,(K( $  WsY 0UL\`KLLZ0; GL DlKp@dyL-M@XT 0 YgP@/@်K+rdO-MHK@ 0pP ` ' `K0pP-MP PPB$`A$  Xtq, pk,h P㖻`P  LI9 ` 0@{P+߻  2#  0``dP/  M  0@IP:㭻 ỿ   0@4P  hK P 0`03c6(`X`p 0N  k(  ^( _]~P x EH KP` NPp 0p X 0 `p` ᏾ dڬ  `0`HpP ;j᢬D5@< 8p<<l#08`K @.0Z P 1/Pp@XP?fd44[8P<HX  pP 0PIPXP80 8A\  Ҿ k #`Kɯ ~ཻ PhK )0 <) 0 4)Pp0 +)` 0") 0)`KᡰHPK'`̹ x`XX\0ݳ ~hK|K#ccbBaN`.`TB^<]@pL-M@M 0 [eP@᣺U@ᙺP㕺`㑺0 eᒺKp!BZpL-@~Pz`v0 JpLvAvL-@o(蔚B   /|B/)vH-M`@ p: 000>)  0KHO-AM\PK@0 0&   +$   7`Kp 0t 0ݸP  7 P  Dt  Ẹ0  ( lP0 Dp 0 0ƪ4Kg4᰸0,$ (KL `(` Я  08  7pvP}py pмP * @w0  'P}4K]!_4f0,(` (K$   `P副\KQ`0 ; LHKD P P P6zPG4K]!_400 ,( $ 0 dP-4K]!k_40 ,( $ (K P9ɮt` 5 0FDp0  +'lP0 (ᇹLJFKD\KBK@L-M@yXT |0 0BcP@ϸၳ@ K>TM-(M@P㹸 P0` cp㢸$ 0^KSL-M@.XT 0 abP@ᄸ6@յKSM-(M@nP 0啬뵬` pV$ 0KRL-M@XT 0 bbP@8@ትKQM-(M@P"EPP 0Ii`D ˬp $ 0KhQL-M@XT 0 Lk^bP@ᝲ@<K14QO-MPַ\K@ 0@K 0@p .\`40 4p@㶷yyS `B@4@ 0  0? 0| ᇻ  ᄠK 0 hx4K_ ]4a0(K ( ,$ I!\p CT ;L KT@L-M@XT ;0 [aP@&ر@wK, NO-MP\K` 0`K 0`p i\@40 4p` @}`4` 0  0> 0= U \K 0- ᷧ4K_ \4ᠵ0(K ( ,$ ሬ`\p_  -ᓶz'ዶ7 KP@L-M@tp 0 Ƴs`P@e@[!^᯳KKKL-@JLLL-M@| 0 t`P@1@' 'xK{JL-@ LpL-M@ 0 Xmj`P@ᩰ@P` 0`թ9KpIpL-M@ӵPϵ`˵ 0`廩KpCDK-M@Y ,0 o"`P@᯵a@᥵㡵㝵p㙵P㕵`㑵 0`fKsHK-M@{wpsPo`k 0`@KH-M@  :0 ಲx_P @Q @GPC`?p; 0`uᏲKFH-M@)P%`!p 0`WKH-M@  C0 dpv_P @ᵯ @P`p 0'AKEH-M@۴P״`Ӵpϴ 0 KL-M@_XT L0 q(_P@ᵴg@KDO-4M@p㟴P㛴㗴㓴㏴p p` 0 !ቴp 0KpL-M@  Z0 ±r^P@a@WPS`O 0`?ᣱKp;CpL-M@=P9`5 0`%KpK-M@ b0 |v^P@ͮ@  pP` 0`ҨQK#BK-M@p߳P۳`׳ 0`謨KL-M@g;!KL-M@[;KL-M@OT< KL-M@C=KL-M@7[<KL-M@+ =KL-M@D=ٰKL-M@W=ͰKL-M@j=KL-M@=ᵰKL-M@=ᩰKL-M@=ᝰKL-M@=ᑰKL-M@=ᅰKL-M@$>yKL-M@<lKL-M@;_KL-M@B<RKL-M@5<EKM-M@ { $0 2OD]P @Ѳჭ @ƲP 7`p 02` 0 ᰲK+=M-M@㚲P 7`ἰp 02` 0 KM育L-M@XT .0 ȯP\P@g@ḯK;M-0M@pQPM`Ipp 0< 08>%  0`"KL-M@XT =0 wQ\P@Ȭ@gK?:M-0M@pP`pp 0 08  0`ѥ7KL-M@oXT L0 &R8\P@űw@K8O-[M@p㯱`㪱h㣱ar`H`KP 0pppK 0  0qPK` 0`q``K 0j ׳ 0ٱSQdK 0  gP  `p0p pPp4p 0 p-ïp `  0  㢯 ៶ 㒯 p卶H 0` P`  0 ``  v  ᲶPp0 P0 M J`ww ᱰ pWKKpKyPy`:p6^ 0pHKKL-M@hd 0 ʭZP@i@_eᶭK3L-@QLVL-M@XT 0 SZP@;@ጭK2O-DM@ 0` '#   7 P 7   7 p̮`ӽpϽ ᒸ֮ U 0   OPРp)Qp`p 2/ 2/ 0幨KhCL-M@8XT 1 ZP@Ꭿ@@߬K\0O-IM@y[ q`(l,hd$ 0 H`Kp 0pOpppK 0PGK 0PP@   0ᯯ)` 0P*Xp 0P#0 0P%% 0ž 0ሯ`oOឭ  Ჷ㖭0 ߾p㋭ ៷pロ BpPK w ዷpo0 幾pe yp]  `0 X,PK(p$ 0  0 X뀀 0PX 00J 0|X 0040 `㗟  pO `0 F`@ ` ᩱPK %ެ p `լ0 `Xˬ ߶`ì Ⴑ & 0( ,PfkapK_HK]KK-8MP@p 0㙽` 0Mv sP 0@i }pP 0Y P 01὞0 P KO-lMD`P0p 0@@@ 0g ʰ 0t wpy@渀   p`0x  3Z 0 c DKL-M@XT 2 |WP@>@ᏪK&O-SMP)$@ (K 0K 0@XK 0뀠K 0 K 0 0pp 0 | {X@K0`KK(0K `Dj᏿  `@ uH` 0  0 H Ci #`  0S |`@f`b Я y HK\`K(@K0KX K0ᘠ pa K\C@ 0 አ KKXK0KK,%%O-lMP$Kp <@0`  0` K@ 0`  ဵ` ፯ ᖿ` 0 0㻪0 l 0@㥪`ᬹ@ᨹ ៱ᯪL  0`? 0@zၹ@} )ᄪ@! 0`@@ 0z 0QV 㩲pCK Rp @`< ԭ &` -p) ᝭ ܾ 0%m$5<$K߿KL-M@XT _2 sUP@ĥ@cKe/M-XM@pP``0` 0pp 0 0 0},*KL-M@bXT n2 +UP@Ḫj@ K O-TM@ᣪ`㞪P㚪,p 0卿 0 冿 0  0mဪ gx ˿ɿKL-M@XT = วTP@W @ᨧKQCM-XM@Bp`=0P 0`0`` 0) 0`M)!trKL-@ 0㳹L'0H-@P 00HZ5 0L-@ 0L苹0H-@Pݚۚ 00H4M-M`@˚˚ 0jPLpᙷ 04$?0 剹`(50 `!KpL-M@ᙚcᙚ 09P` 0(`㏚ 0KpK-M8P@p 0Z` 0R᧟ 0Ʃ@< 0PKH`K  p 0,0 00  D  H  P 8` p8V P 1/ U P 1/  0KPڻj8hK`VB4VBL-M@XT ? UygSP@ᦣ@EKO-M@ߨ 0へp_  \ $H`KP 0p岽pppK 0㪽x 0㣽   0P` 0吽(p 0㈽P   ^>@  0c 0`6P aP0$p``  `* A` 0IA 0' Ⴙx(, 0P *P` 0 `*A 0`A p0t' KxPͺ(`P^HK A 0$Ṻ 0J9pK75KL-M@mXT n3 $z6RP@çu@KO-MPᴘᲘ 0pQ\@K  0啼`%0dK >대K0K  ~K 0xဘMဘ 0 ᕳ@  @ t㡦`@Z'Z 0ᴷ= ㉸ 3 , 0pp !@å  0K ̻K@ 0@CK 0쀍 0 0 0t 0 L 0 @ ȟ80 $COK( $@,04 7 `@ȗƗ 0   7ᵗ4K Ep㿗4@ᗥ0,$ (K ( @@ pK⼀K 0ፗt዗ p 0`KAh  7r@  7l 0 0%tL  7V@O6M 0᧶  7<@  76p  70`04K "nL40,(K$  ( { K0K᧷x 0 mK˸  7`@% 0M  7  7p  7@= 0_і4K "L4Ấ0,(K$  ( @p @ K0KHO 0A᱖ᯖ  0Kf  7`X@ᐖw᎖ 0  7}  7wp  7q@= 0l4K/K4U0( (K, $ @p @嶛K⼠K 0O 0I0G  0 @ᠵpKL #ť 0 Z% # 0}۷d`K ePK\@K 0w ]t[YWUCKSQ ᪹MK᤹GK輡<$x@0H-M@}| F4 4~FOP@Ӥᅟ@ɤP㟣 0mK0>30H-@ᵤP㋣ 00HXH- M 00) РH- M 0%) РH- M 0) РH- M 0) РH- M 0) РH- M 0( РH- M 0( РH- M 0( РH- M 0( РH- M 0( РL-M@XT 4 NP@+ݞ@|KO-M@DK 0 lKP 0PL 0PP`D p^t(0 P @8L@ DK g PᓶLpᒶDK 0Oჶჶ᣸ợ Q P 1/8(Q P 1/DQLlKDKKABABO-\M4`P @ 0py  0 prN  ᱦ 0[t@0pp G`! H 08 ᦸ4⤸KK-`OPϡ @ǡ Ⴊp㿡 ӫ Ḩ@㳡 ᰨ㫡 f@㣡 ᷫ@㛡 ^L-@ =B   /K%Ⴉ i0H0H-M@ 0 TfGP@ᥗ@P %c :1K0谮0H-@̜PȜ $F 0Hœ0H-M@Q 0 GP@᧜Y@᝜P㙜 $' ᔜK0芭0H-@လP| $  0Hv0H-M@ 0 ༙FP@[ @QPM w$ HᙙK0c0H-@4P0 Z$Ψ 0H*0H-M@ 0 pFP@@P +$ᯨ VMK0=u0H-@P $ᒨ 90Hޛ0H-M@m 0 $6FP@Ûu@ṛP㵛 #s ᰛK0E0H-@᜛P㘛 #V 0H蒛H-M@! 0 ؘEP@w)@mPi`ep #` # ᤟ Y᪘KH-@EPA`=p f#` a# | H00H-M@ 0 vEP@Ǖ@ P  00YK0{C0H-M@P 00K00C0H-M@{ 0 2eDEP@њვ@ǚPÚ " ᾚK0b}0H-@᪚P㦚 " 0H蠚L-M@/XT 0 DP@ᅚ7@֗KDMO-IMPp gBP@5@+P' Q F ypK0; 0H-@ P 1 & Y0HH-M@ [1 DVBP@ᕒ@ٗP՗`їp ?` : ֜ƗKH-@ᲗP㮗`㪗p `  ᯜ}H螗0H-M@- g1 AP@თ5@yPu ფ pK0葙E0H-@\PX f 0HR0H-M@ n1 AP@7@-P) SG ~$uK0i0H-@P 6* a0H0H-M@ u1 L^AP@ᝑ@Pݖ  2ؖ)K0C0H-@ĖP  0H躖0H-M@I _? AP@៖Q@ᕖP㑖 ΰ ጖ݓK00H-@xPt ᢣ 0HnH-@P`p  ᵚHM!H-M@ c? ࡓ@P@@@6P2`.p W` R !#tK躔9H-@P `p 0` + X HL-M@XT 1 AS@P@ᒐ@1KBO-P:  00ጒK0YhC0H-M@%P! 00K0CL-M@XT 1 ejw?P@ᶏ@UKIK-XM@P` 0p 0`٩ 0 `ҩ6 0[V 0 ព i 0 ᒖ ]㋓ᷔ んᮔ K0H-M@5 1 >P@ዔ=@ၔP}  xɑK0 e0H-@dP` Ρ 0HZ0H-M@ u? ࠑ>P@?@5P1 [ᯡ ,}K050H-@P >ᒡ i0H0H-M@ 1 Tf>P@᥎@P s :1K0΋0H-@̓Pȓ V 0H“0H-M@Q 1 >P@᧓Y@ᝓP㙓 7 ᔓK0荊0H-@ဓP|  0Hv0H-M@ 1 ༐k=P@[ @QPM w HᙐK0e0H-@4P0 Zޠ 0H*0H-M@ > p=P@@P  00SK0GuB0H-M@P 00K0$B0H-M@ Ku 1 ,>=P @K˒} @KP㽒 O00 K0ֆepB0H-M@ᥒP㡒 O 00K0B0H-M@ K+ < i<P @Kၒ3 @KwPs G00K0超=LB0H-M@[PW G 00K0BN0H-@K<@<@0AL-    PPA/NM-p` 0 Q@P`P 5/MפL-M@XT J0 `r<P@᱌@PK6bH-XM@`0Pp 0`ܦ`` 0զ s ᤥ ʕ Y 02WὑQᵑKL-M@>hd a0 <P@ᔑF@HᐑKeL-@:L聑L-M@XT g0 ǎ;P@f@᷎KH-XM@`P0Pp 0`C`` 0< ڤM Mp -# p0+SZ ᷒ 0ᐑ fdK L-M@XT 0 Pb;P@ᡋ@@K"H-XM@`ِ0Pp 0`̥`` 0ťs c ᔤ M 0&K᱐EᩐKL-M@2XT 0 m:P@ሐ:@ٍK~M-XM@Pr0p 0Pe` 0P^  o -opP N2 p0+S{ ؑ វ$ P0+Sk  0ᡐ,$wuK?CL-M@XT 0 `r:P@᱊@PKu|bO-aM` @(PK0 ᐤPpKx0K xP @ѤᜢἤxPK 0@pK 0@庤 h 0- ẏPK 0@墤p 0@囤 3?s 0눀 0@傤` 0 @{ p.㒀 P㊀  0ޏXs 3B` G  0ᅀU ᨤᦤ8눠 0 @9` 01  0ᤏ 8P 0@p 0@ 7S @0+SL ᩐ 0ႏ  YW8d 7580 @ ʄ(@KᢡPPKᡡ4 20K.K,xK*(ၣK X@L-M@ZXT 1 #9P@ᰎb@KYw&O-AM@ᛎ P㖎㑎H`Kp 0儣PpPK 0}<  R p崑 F ᩑ *QP 0R`` 0K8 0 D  p P ա  pK 0៎ , 0 3Pg ᢏ ᦡhf P0+S5 ˏ Ρ 0+S) я 0_  <8hP.~ M`~ Z cљ 3Afᾍ`   04ᫍ HKK AL-M@1XT i1 7P@ᇍ9@؊KrH- M@rPn`jpl~ !3 U08 yZK$@0H-M@ q1 7P@<@2P. 80,}K0rV%0H-M@P (0K0H굦L-M@XT 1 Se7P@ᤇ@CKq.O-M`݌ٌ##K/K7<K0K   P 0zp@ 0@r M 0_@l@ 0` ; 6xtKr|KlK?  P pK ޞ"K/KמDK0K _ጠl 0  A/KḞ @ ᭞ " ᦞDpP 0P 0P  ɞ{4K R  In ,W <H4` K-&K\   W/ >  ܚܚ!4 ߛŚ ὚Ἒܜ4 Ί᭚\ p 0ԜŜ pἜ`x4K` .4Ṇ0,$ (K ( `}y\KxᘜS` B᎜} 9ᅜ 0|px4K` -4y0,(K$  ( pd}== М4paZI Q`ex ` - N04K4 0  `9}ᥜ\⣜⡜K⟜᝜K?L-M@XT 2 1P@*܁@{KZO-tMP@8Kp {0 0 @` 0 @ 0@9 @ʅ`w0K!0-0ۅ $K0$ ( P Û@ 㫅$ 0Zxц $ "{Kr O-MP@(K c0K _8K 0ប@K Uh`K 0@ܔh 0@֔@p 0@ϔ 0@@Ȕ(K 0v ᶻp@h@0K 0@Kg ᧻(K⠔` ᝔  09q@ᖻ p0 @+ዻ8K ე`န@ h~ 0@pq@ޔhܔhKڔ@K3 10K/(K-KL-M@ \X ?> |r)P@`z@ J|K;o BL-M@\X ? |)P@<y@ &|K:Vo L-M@\X ? y|q)P@y@h|K9nL-M@\X ? U|g)P@~y@D|KK96nL-M@z\X ; 1|C)P@~y@ |K8mH-M@ V 4 |)P @~^y @p~P~`~ 0S~{Kg8mH-M@p~P~`{~ 0RKHy~H-M@  4 {(P @^~y @pS~PO~`K~ 0RK~{K87kH-M@p5~P1~`-~ 0RKH+~H-M@  4 q{s(P @~x @p~P~`} 0jR}N{K6jH-M@p}P}`} 0LRKH}H-M@ l A> #{5(P @}tx @p}P}`} 0R}{K4niH-M@p}P}`} 0QKH}H-M@ 4 z'P@t}&x@pi}Pe}`a}0 p>Za}zK36hH-M@pK}PG}`C}0 p ZKHA}0H-M@п 4 z'P@&}w@}P} 0`}jzK02f0H-@}P} 0_0H}K- MP@{`{m 0S {0t pp`r `{0p `r|KZf ?M-Mp@~    0P` 0` 0`0 ` 0 `KM-Mp@G#    0P` 0`0 `0 ` 0 `KL-@LpL-@P Vm ` Nm  pL`0H- 80@i/P;m ᜅP3m 0H0H-@P(m 0H0H-@Pm 0HL-@> 5L8/O-M`@!,DKP 0P4p 0PڐP P 0Ӑ k ᥏ ^ ~DK ᖏ  0`{᥷ v p;zP}z 0{ᇷV  0l{4z  0l{4m 0l{{ ΐ4̐DKʐKM-`Pp yl ~@ ql ~ ᄄ    5}. ֎ MΎO-QMp0P @ |$ [HPK` 0 pK 0K 0 3N.y J~ 0d{޶|y %~ ဎ 0㦴Pgy0 P2[yPK0 sRypK0 j PpP0 妏`` 0埏8 0㘏቏ 9} 0{ၶzyP  ˼   o3P 0-`k }  80-`vk ׃`nk } %}0`0 10Xa 0 6#` P P*yPx$0( P (P,px  0 x 0렐Kp` 0   0㛸8 ᷌ ޵K 0㏸ Ҏ |`p` 0Oz0␎ǵ Pbx m| fq$ 0P 0 Ki gK pKHKKpL-`@P2x =| 6A 0` 0pL-M@XT 1 v}#P@ty&t@vK&XO-LM@_yPZyp 0PM7 ix;x`Hj0K"01x0( $K p$ `So`0j0K =j0Px0($K$  `P pvoy,00  bK?VL-M@ᘻXT 1 Ova#P@xs@?vK#oVO-iM@xP px$xHK 0pÍpK 0p彍K 0p巍`K 0p對pp 0㩍W 0yᖴ6BА P  0免xp 0~P 0x$  0HKpPW,b[ ppK`PK 0 4 OGv  z 9pK 0ᘠK 9P/(` 0/x堐A0$p - 0K xzPx v t͌ˌK z똀K ᦋ$HPK 0sxp`Kᗼwᑼwܳ  0Gpriw< :864KL-M@lXT z? #u5"P@wtr@uKKQO-tM@PwσDKp 0PPkw`Dʱ Ql 'P$P 0ヌv z  @```vPDnh, ,K(  $ 0 ,P( V P 1/$P@DK mᦌKAH-`@P ڊz`Lh ᭀpDh z ÊO-MDpK@` P 0P  ᫊`0 0P ᔊ ŊPu`DŽPÄ z 0Jw IJ -bP dA1   ᑊl R`pg $Pg 1z :rN g<P0@ )g(`0 ,xg$ `gp$o 0B00P  @Pe/@U P 1/DPK 3P(DK○K茋AL-M@θXT 2 s P@$vp@usKQGKO-CM`@vp v$(K r0K nXK 0PK 0@ 0@X 0 P0 0@ۊቿ y pk߁ 3)PYt y ] q@K Q ᕻ 0vᙱ7t x@X K0vቱ 7 7$K @*( 0P  (@,pjp!0 PguXKN2t(K E0pK0PX: 0 xf@ 7> # @  0)@ 0 HupXnlKjXKh ΈK0H-M@᜷| 3 SreP@to@tPt 09rK0F0H-@tPt 00H0H-M@b| 3 r+P@tjo@tPt 0qK0E0H-@tPt 00HL-M@(XT "3 qP@~t0o@qKODK-XM@ht`dtp`t0P 0S 0L   ܇ 09=t$Y  Y$t %t xvKL-M@᮶XT 5> eqwP@tn@UqKBO-M@\K 0`PK 0P݈K 0`׈K 0`шK 0`ˈIK 0`ňSK 0`忈]K 0``㸈gK 0P岈qK 0`嬈{K 0`妈u 0P堈k 0`噈a 0`哈W 0P午M 0`冈C 0P倈s~sA  0& g/K   PP {/K!p%B2")ABAKq/K ]KKIK`Ku``0 *SK 9)dTrp"dp"`p r0 H HxLp-i P0 ᴇpp` 0``H` 0߇ᚼ ኆև(  0VsЮ 0dᛅᛅ®ệ  %#|KᳮrA_\K~K᥮qrrK᙮ j  7 7pqT`PPIKwqDDSKkq88]K_q,,gKS $b  7V 7QpIq  qK2Sq{K&pp 0&Pa/Å C/ἅP᧷ Kᴅg/Kᭅ-W/ᦅ  ៅFAqr8qqLuޭ 0 `cF'40Kt0  p L HH0 $PP4@ @pX0OXU P 1/W P 1/bTpPbp"pp0HHx L```Pg p0 >pP 0`倆`H` 0yj% a 0q[ ++RK `ᵆ᳆ kCapA\PKa5  78 73`^rpW k 7 7`SPp΃ ˃˃C  I 7 7`S.pᬃ ᩃᩃMЬ`ႺgK qd`᣷ fR K_߸W/X[: Nat᛬pH0` pH`噅H 0 `咅 0㋅V}v`# `Pa yPa s P $$pJ   `oPQa4K"4:o0( (K, $ `P^fP уq   - A_&py wu΄̄CoMmWkaikgue{KcqKagK_]K]SK[IKYKWKUKSKQ\KOK?zAyA0H-M@ᄲ d4 ;mMP@oj@oPo omK020H-@oPo 0HoL-M@FXT l4 lvP@oNj@lK'1O-MP@opoDD`K 0@pl@ 0pipDp 0bp    0C :`p 0p`8 0 p幂P 0p岂S 0p$nឩ `  iPb bቩᇲWc  7 K q p  ``K @p n 7hp  P   D =p: 08pKb⛂ ᙂ`◂ % 0^bℂK₂ဂK,u,~)L-M@ᵯXT 5 lj~P@ mg@\jK&M-XM@`lpl0P 0``` 0݁ 0`T̨wlĨql(&KL-M@^XT 5 j]'P@lfg@jK1%K-M@l`pllYE  0ppP 0P 0PKK}lH-M@  (5 i{P@blg@pWlPSl`Ol0 pUOliKY?$H-M@p9lP5l`1l0 pUKH/lpL-M@ᾮ S> ui~P@lf@ lPl`l0 YlTiKpb#pL-@kPk`k0 XpLkpL-M@v 95 -i?P@k~f@kPk`k 02k iKp.!pL-@kPk`k 0s2pLk0H-M@. A5 hiP@k6f@zkPvk 3WxkhK0` 0H-@dkP`k W0HakL-M@XT H5 h^P@Fke@hKO-lM@0k`+k'kD 0P 0V ~ 7p `  ~ 7Pp ?wp~i rp 0孤ni0p : 0p 0p p 0P p0$ 0pi0 p'$,D` u~ti0, pZ}ၦjpz0 P\jKL-M@XT }5 gP@fje@gKOO-qM@`PjPLjpnv @8`K0s^8p ^P8i ^` 8p`< z``KP 0PpK 0PP밠K 0 K 0 0P~ ᗿ0᣿,\ }hP0 ~Ѐ T~` K0 4`̥P 0~K  0PbḥK|ᰥ` 0`~뀐 0 `P~Xp 0P~P ~H ` ~@ ~~ pp< 800,$PP P`*rk~Ph~0 `K``8PK(_  ^ᛣ,|ᖣ_X PP"|@~H~ ~ ~ ~~~~``K8 |1<0 4 ZPpK | 8PK^S^z~x~ v~Kt~r~KO-M`$KP  t}LK@ 0@}A/YbL-@ >A   />A/pL-@M@ (P`  0,00(     @@8P `c@ V P 1/8U P 1/Kp>Al>AL-@ =A   /x=A/~ ayL-@ H=A   /0=A/cJapL-@M  7P ` ! 0, 0'ppL-M@PGa0` `=a0 `4a0 `xKp0H-@Pr 0HM-0MP@  7-` 㷼p  0 0``0 `>`0 `5`0 `,` 0vCX u> 0vStԝ=wKK-0MP@ " 7ͽp W` o 0z 0pt 0p `0 p~`0 pP 0vW hu> 0SNtuvKO-M@P$ ` 0 b\ 00  0  @ n 0Yp m 0XpKM-@$ pP᯻` 0&\ 0ʥ0  0L-M@ᴣXT p0 k^} P@ a[@[^K2O-M@`P p```PPK 0puxK 0puX 0up0p 0us ct`U t   c 0!a ᛜؚ  fp$ 0 $P(&`.+ 0 0 0`0j  .   0'  0"  0 պP  0L[ 0 l `   0WPDQ$%RQ`z_$p&_0(K ( ,$  `pPW0  [  7PὩxpK s s  7Pᨩ s s _PK ݛ PU 0`Лj 0`03uX1u/u -uKh^?H-@P `>p 0Z 0nH-`P@ 'p 0ZK-M`N @P+^pm^ 0p$ P 0wZW^0 - 0( 0#KM-M` Pp@s 0W@ 0K0H- 7@HP] gP] 0HbH-M 7@P,`^pm`m vg ^0 AK0H-@P!P 0Hb0H- 7@ŬPP 0HohH-MR @P]` 7lpl 3g]0 K 0 0ܽu*E6M-M 7@PẺ`]pl`l g]0 KO-KM\pK`0 0@s널K 0 @s 0@ys  7{A@O g@ O a 0^P  7Zp @!P 0Px 0 Pr 0Pl0 Pf  0qp 딐 rP rdp 0s<@ 0 s 0sO  a 0s^<] pppޙ-] ppp  7޹ᚙ@i\ }f@a\  a eqB 0 Npᬙ  7 ᵹPrpr 9@ Qp 0p 0p 0p 0 plPN4Ky 4r\0(K P( ,$ @ZSp5pr<rdrrrR 7\@0\P7k@3k e:\0 rrKr\KrKS?K-M` @ῷP!p 0pS 0pM 0pG0 pAKM-M` p@ᔷP ` 0`( 0`"0 ` 0 `KK-M@ z = 1ZCP @\W @\\\p\P\` 0P\ZKqJK-M@\\\p\P\` 0PKK\M-Mp@[` P ` 0` 0`0 ` 0 `KK-M@ Pܶ`!0p pp 0pj 0pd 0p^KO-|M0K@00   p[$PK0 p@`0 Ppq 0 ppn pᣥ o 7 np0 %nn Ηpp 4q2qp pP 0|p@`0p Ppp 0ppn᧗ppZ Jo 7㧷hnP  7㜷P!00 0  0 !0  0[PxL0Ky 0aZ0l( $  $KJQ@P%n`Kpp p႕KTK?O-M`8K 0@o`KP 0Pp3pp@p 0,p00K 0@ P%pȲ u `^ n] 0[ L0K/R0Y0( $K $ @@Q P 0l8Kmmޖ ZYPK0K"%0Y0($K  $ PP P 0^lK0K ^K0pY0($K$  @TQ @ 0@l8PKom@nm`ᔖo@o@o`KoOoKI?M-P@p`*  ] Un 0MZM-`t P@p  ] 6n 0MZM-P@p` nt @į {] n 0MZO-M(@KP   0nlPK` 0`po` 0pp o8 0 `o 0K @ `n l ngB$㳯 mA$㫯 `mn 7l l  Ǖn 7ϵ ]PpK0 6Zᯕ  0J`T \ 0 !Zᛕ oo onWnKM-8MP@`p 0n amP" 1/`XqXPpOXI 0KP3lZnKuM-8Mp@P` 0Nn 'm l1$ζ m^X/XpP 1/`XI 0p`lKPk{nKtL-M@ᲛXT 2 iV{P@YS@YVK脥*K-PM@XX` <p 0m /? vlt0  PI,K/ ,W0t K  $  POXᡔF 07JXnK@?L-M@8XT 2 UP@X@S@UK軣BM-HM@yXPuX` p 0bm Š k0 XI,K!,AW0t K  $ PdNEX,G 0PI9XmK>?L-M@ÚXT 3 zUP@XR@jUK;nO-TM@`XWWPW`$` 0l% kH {pHV0h$K $  pPiNjᵓWmK=?L-M@RXT -3 UP@WZR@TK蟠O-}MPW`Wp,WHP@K  0xl7 kx@K 0jl k0`e 5kp   M(K@ 0@ClK 0 0QHiT᭒@K( j`k0e Gsiᚒ@ 0@kh 0@k@ 0kk@.04 48p 4pᯐ@G4`jU0<$ (Kh $0( A @pEMh`@ 0g(@ 0 VF4 8k@_G4p7U0<( (K$  $``@L@p@  0Va FhȐ k$VwkhukskPK,0T p@x`K00 ppp&T0 &G Ujj jAk?kK=kK;kK9k7k5kKp7?0H-M@l 3 #S5P@UtP@UPU tUSK0芚0H-@UPU ^0HUL-M@.XT 3 RP@U6P@RK譙M-(M@oUkU`gUpPfF/OT0@   $` PKRUK 3?L-M@ޗXT 3 RP@4UO@RK胘H- M@UPU`UpF !W T0< p`%KUK1?L-M@ᒗXT ? IR[P@TO@9RK輕O-aMP@TTTTp 14p=HK 0ipK 0@iK 0@il`  2@t p4 W `hH@K 0Tp 0@ WpK 0TK 0`iK hР hL` @ gȐK gKg9@FE"/S0x x|@@RJ@ 7) f f@Kf `p 0h@ 0@i@x@ 0hᬝ g 0jT!f f ُ`p 0hH@ 0h  0 hz jg\ 08T ᲏ ff᧏h hph0 `KhS hhpQhxhhKhIhGhKhKhpKhHKhKF.?H-M@ 4 PP@pS"N@fSPᕍ`_Sp[S 0p'XSPKH-M@CSPr`BP0\X X `G0K@  0b c@cp 0eX` 0e e@ 0YQӌA0!!0O 8 `0I Ὄ 7Ǭ@A0 WpA0O08  ` pHG`@00K 3bPXeeቌ P 0eXp 0~e0Koe`  0 @P f@sA0/0\O 8  0`@nIJ0 0Le(@0 d  7FFA քmpPA(O0( (K$ $  p`F0p` 0a%P e0 CdleXjehe0Kd@6`A/DN XX\P0IJeKHeXKFe0KdK "?M-M@ { 4 2M DP @OJ @OPO`OpO 0PMK跁NM-M@OPO`OpO 01KM-M@ + 4 LP @O3J @wOPsO`nOpjO 0LK^M-M@XOPTO`OOpKO 0KL-M@ۑXT 4 L P@1OI@LKkΰH- M@OPO`Op 00@ /L M0@ p`ENK~?L-M@ᆑXT 5 =LOP@NI@-LK0~zO-M@PNNN ျp \K 0Pct` 0cN >b1P kbt p Q\K Zb bp  Q Kb`xN _o?\MPi?L"LRM0T($  $APsD QtP b`JN1LP 01c$ 0)c kQ 0NR P p?4K![4M0,(K$  `( P*D N ᝒP>4K"=4L0,$ (K (` ! Dp 7>4K s `>4PL0,( (K$  P `dD 7M$cLctc\KcK ?L-M@HXT V5 J P@MPH@JKxO-,M@MMMP ι`p 0nb 7p( ?a 7d 3a 0ᗻ 0ᒻ၇UM<i 0BbKL-M@׏XT n5 J P@-MG@~JKwO-|M@pM`MMP 0*`@` 0app 0aỹ B -P 0]M׈ 0` 0f>LĈo`=0K"0K0( $K $ `Bp 7㴨`=0K Dۆ=0K0($ $K  ` 6C 7㒨La@aKv?K-pP  @` 0 kG 0$ 0  㸸@ o 㳸 0Dp p 㩸 0 DpL-M@xt 5 IP@=LF@3L へ5LIKtL-@!L oL"LH-Pp @ዦ` 0G 0Ỹ Tpq O 0HCL-M@ᏎXT 5 FIXP@KF@6IKrO-$M@KK` < Y<pJ0 0 PP@p B p</J0P  AS` P 0xF 01 ʷpq ŷ 0'C0 oKKt ?O-M`8KP 0_`K@ 0@pI`p@p 0B`00K 0 @;` ^@ˠ  0p P  y)<0K I6<0J0( $K $  @A8K]]<$Ip;0K":0I0($K  $ P A@;0K x;0pI0($K$  PnA8@K]P]`ᴆP_@`@``K`n_K ?0H-M@I 5 HP@JQE@JP 0 ; KGK0m0H-@~JP ˶0 ;0HKH-Pp @` 0ZE 0 㬶pr 㧶 0HBL-M@XT < G!P@=JD@GKkO-$M@(J$J` q!; ~H+;pI0 0 PP@p b@ Mp:/;H0P   @᫶` YP 0D 0ቶ "pr  0A0 ]IK?L-M@SXT #6 GP@I[D@FKiO-M@pI`II  0 EP Pʵ0(K $^PK 0 pf^xK 0`^`p 0]t 㦵` Ӟ L ]x`K 0I -0  m5(PK[[^x` ]p ]H 0^ 0 ^P᷒ \ \ p 0ps `[[ `[ ބ [[[ф ]`] 0H ,^H*^] ]xK$^PK"^(K{]KqL-M@WXT g> F P@H_C@EKcO-M@H`HH 7㌤ 0Ŷ[Gp 7}]VPYV P`G0 㗶 04KOcHL-M@XT 6 EP@HHB@EKgb*O-4M@p2HP.H`*H&H  0p]n> [ 7уpF PpF WK [ 7p 02F 7UU  9PF0   0G pḃQ 0`;]KL-M@QXT 6 EP@GYB@DK_O-MMP`G@pGG\K 0p{\K 0pt\ 0`n\`|` 0g\t [l [= Z J Z @Z  @ 0p7\ 0`/\  p  0`  sl@Y\K Y 8$F`84K"P4E0,$ (K ( `=` t0XᛐpK Z} ZY Y ʂ[` a !fp  0p@  p0  0pp  0p74Ky 4E ,(K$ ` 0(` I?Kፂ74K!4E ,$ (K(` `@0e?|vE 0@ 8F뤐 gt _[`pp74K/4YE ( (K,0$ n?[D[l [ [|[ [K[\K[K>O-UMpP,K`, ܈w<@p 78`2``K\  0` P` 4p(@PV P 1/48 l@D04K Z``K0K  @ZK 0@pZK 0pZ 0pZXځ E 5` ,K 0K@ p @巤 0p@a0 , z4KZ`@DpS@S H KOY @DpS@S 0KD0 H  @ s ܱ 00==  0$`嬳D$jD@w6p"p`D0xLHt H@;0  V[6p y8p 7N@a6p`9D0xHH, L `@<0@ V xp0tPpp( `V P 1/C$@R`R JC4K W`KWKC4p0 $6@0 `zV|EՀ ,K 0`ߤK̀p 0YH 0Y0p @C`R@R JC@ 0bC`R@R G :X  nz@ yY`lRhR  GH X 0A~pHCpQ 0  0ᠲH%Wp K8 7 T0 㟰`O5< xv~pY5<@1C0,( (KD $ 4@ p`: 0UH@V~Y |Y  7@tYKrYKpY`KnY4KX,KhAK@H>@L-M@ឆXT 7 UAgP@C>@EAKSڃO-lMP(K}C@Cp 0m`40" 0B08  pP9V00K \X0`  XC((K0 `倡 0`HC }  7㇟4 x}`0KgX@4fB0$ $K$  `@:  7bfC0X0KX(K@K軃>L-M@XT 7 @P@AC=@@KZPO-]M@+C 'Cp'5H`KP 0XpK 0 X V$pί0 C`K 0W oPA H <P,( BKp` 0`W`` 0PW 0PPW !E 05C~MA pHH(` X 0WP0P 0W D 0 C ~ pA  0PH|p sp` 0 P`PA P 0\,` 0ᙰp0 ~뀠 U09~0 n(` 0`. T0WXWK~A 0 T  ~$ eP@`OPO G@P  0ᆮ@`OPO ,EpK U|A}  , 7םP2X gv{`2Xp@00 0`4, `U8{AHPK}{A`K}7B VVKVVVVK>L-M@)XT o8 >P@A1<@>KrIzO-EM@,K04K V^A`ZApX 0vPQ2\K"\:@0K p, T ``PZ7P 71$ 74P*Pa7`\K 0V儀K 0VX P |PxPx0P0p(`kU P 1/`@004KK,K ٞxp 0`UP 0`US| ᡭ E ',`K KP0p P4K嫟  0 PU0\K  n?$?`18"8?0@(K$ ,p (p `6`\ K0,R18 +u18P?0@(p (K$  $ `P ]7P\ K40KR0( 4@<@ 8HHZ P 1/xP!SP`G|4 7 PT@UU\K7|0P`K,K K04K>+|  75p51x t\z`U<1x?0,PP T `6  7@KgU\KeU4KT,K_=Ky>D@@L-@ ̲@   /ᴲ@//L-@  茲@     /t@/ 7 ǛL-@ ǭ 4@     /@/ 7 㨛H-0MP@`p 0T iS 7㎛ᴕ 0?t{TKO-Mp$K ` PSLK@ 0@fT\ 0@`T4 0 @YT  0@RTL@K 0 P?9{\\@ R f ㌫$K QQ#{ g ~ QQ{ i q QQ { 㣙P S ṭ 0ĭ@ 0@00 @*UT4ST\QTLKOT SKO-Mp`@?DKP 0PSlK 0PSt =S`Y wPP=`LL AD KSRL 0S 0uxthQ3=D0 pJS/@Ÿ84<>@88a=` PgLcL  @L R`p4p 0 @$(`(V P 1/lKQLFz\4 0 @$(`Ұ( PV P 1/lKP4P8DRLSDKzt`PlpKPzߪ o 0PR0 6R_S]SKp,@Ĭ@H-@P `႘p ㇬ 08 0ᗪH-p@ᡪP f` k 08 0{ pk  0Hp5L-M@OXT 0 ;P@=W8@:K^:\kO-MP=p=pK@ 0|R` 0tR3 0=ay2& 0fWya=]=X@ 0PR0` 0IRp 0pBR  P h QHK 0 pp,R  Q  7'M 0=  y vR P9 PpHpK 0Q P 7 0@c=xFR`  0d< xp 0px} 0p(R&R $R"RpK RKL-M@WXT 0 : P@<_7@9K6|gO-M@<p<< S\ 0P}Q4` 0PvQ 0PnQ Pᔒ =PPDPK 0YQ /P 7Tz 0<:xQ Of PDPK 0*Q P 7%K 0< xtQ 0P + 㘖`j T ᬪ 0㷪 0p㱪 0p 0p; w`  0`4Pw } 0` ,Q*Q (QKL-M@`~XT 0 9)P@;h6@9K2cM-0M@;p1:P ` 0P+ (Oᣀ0 ᜀ0 㻩ᕀ0 㴩uw;^wuo;PKL-M@}XT 1 8 P@P;6@8KbO-M@:;,\G1;`-;p5LPK 0PT 0P 7= N 7 (&:? P<`$P 0P(/H/  0PP+0 o+0908 $K p$$  (` `P1<0Tv+0 Wo09 8$ $K 0,`3LPKv400 POK>*L-M@4}XT Q1 7$P@:<5@7K^O-M@u:(F `l:Pg:$c:`P`K 0pUOx 0OOP 0ppHO 7J o N 7=X9x?  `8P p0 Z.  0`4P#+, n0+,`904$ (K`  ( AP$PP#1`ᨃPp M M8/u o 0x u*,o,8 ( (K4 0$ (P2P`Ku<00  PO OOK>IL-M@K|XT e? 7P@9S4@6K*L[O-UMP9`p9@964\K 0 prNK 0@kNK 0peN 0p_Nt 0@YNL 0@SN$ 0@MN  7 Nps M  7A\8I>  ނ@ L  L)*4K m6*4@80,$ (K ( @pp/$@t 0ὓtL @Kp@atI 0}*}8Kt)4K{ '47 ,(K( $ 01Ltq}8tptf}8\Kt@ @0뜠 t7 l  0$NLNM MKMKMMK>O-M@p#`$K L,K L4K L\KP 0PsMT 0PmM, 0PgMٕ$$K 0,PK \KP ` Ct X5jP@72@H5K#TO-M@7`7p7 7`L`K 0LL 0PL 7“ [ XK 7㵓p6t0  P ($ :l($`60$$K $ ,  p p`p.$P` 0xL  p`P'dsw7L^sJ 0N)k7L`KQs<00 U$LLLLK >O-YMPڌ,(K K0K K8@K K``K 0(LpK 0!L ᓔ $(K 0, pp@0@Kp@ `,(rK 0K 0K뀀` 0`KX 0 `KK` ( a@`' n: J8@KK`| lJ: 0:7 r K`' 4@`' A: J(KK ` K0rK@X  7㔒@Kp )J%~ "J , p0 0rK 7t@+ J~ J)I Pr .J KIKAr%5(BR,p 0 (G6K.rX @ 0@@)!r @@(KKAt 0r`u 0 XqKoKmKKkKKiK`KgK8KJ0KJ(KJKL-M@xXT 2 P3bP@50@@3KLO-aM@5(P5p5`<58545HK0 0PPJpK 0pJK 0PPJK 0pJ 0pJp 0PJ5 3I  7㐑ᵋ ^I  7パ4(^>pK $0`w&h j&hp\408@,@p D4hL-@㖢蔅@   /|@/PH-M@P `p`I0 pD 0KHs9L-@g@   /@/!H-@P `p2I 0}D 0HrL-M@vXT 0 1&P@'4.@x1KPEH- M@4P4` 4p 0&% { B 20D p`P*3Ks>O-M`0@o 0儗Pb2 _9 p iPᄠ{ cx0 `ݡ 0ס 0ѡ0 ˡ0 šm0 彡 # 0峡20 `޲KpL-Pv @`Ὗ 7h 0pLK-HM@`P|!p @ P` 0`0400    0P@`(pv(W P 1/@pV P 1/ 0`0R p$K@@ 7H- MP`@ $1p$ "B 100 `)K脩>H- MP@S  7KH܎`#1p# " 100 `(KȨ>0 M-M@`p#1P1I 0P@$KM-MpP@P  0KM͠#z1`[1I 0`P$KO-M`HKP $ 0@bGpK 0@@[G0 0@@P/nn 90 0@np0 0@n@mPm@0 W  0@8(P 0 00@ ?P? ;5p KE0 70x@K0 Fv0pK0 F`P0 p@FDmFFp 0m8P 0F0?@ ? 4 BE30  07 P0Pom@OmpKm0 P0p  x8P@Dgm0  7x@K/D/ 6K%DKF T4H@K` 01FAm 7K@/ 0m@0 v4p KD$ |P$ 0e(0 [0p ~E/C8P,0 ,pEClE/  6/  6P 0Plp 0PPll   0l$ 0p"0PCE O3p@K8p 0,1FkEl` FKdExKbEFHKF(KM-M@` P.6 pP p0 @ 6MC 6 0/ 6KM:CO-}M\`Pp. tHK0p`PK DxK@ 0@SEK 0@LEK 0pFEN!N!PG!덀G!L@!뉀@!H8!w8!@Kl 0"Epင Cὒ`Dkd 13 C  7` `@ 0Dp 0D. 0h@כ 0ȠKp  K| x  x`倠Cki0k+E)E\. 0k@?.`=@= 2 KC 0T?t E2 >CH@K  D C C ]` 0`|Dp 0`uD`@ 0@mD X]D 0/WkODd` 4 0@p  4BD@ 4 0p  4B-hp 0 kAAkTD` 4 0Ȓ  4ȀA 4 0㵒  4 A- `0`jpA@Aj@D>DH @0T> 74@<p?*- '4P0 @?p d$l(,`/  '<@A:@- 1` B, 1 KA, 0 AȀKA=j  2@-`#<@< 4&-`, h0j@,p<@; 3-; 4,@;p; ~0 A, p 0p|,` @ ppp0ۜo,  0@М 0@], 0t`0 nB|x`||㵛0 pB`lP xt  `婳V P 1/xP|@BP@KH@x`KG@Knirp;@;@bi\@ -KXi ` 0@@KFiVN"?,0x x|  #P@K??#iBPBBAAAKBK}BK{ByBAH@KATAXAAj*K::j@̒>O-Mp0`@++ P 24p(K WAPK 0AXPK KA   0`?Yp*K 0ApP 0A0 0/- h XKu?u?hB B  7㢈^hP -+ A5 /뀐K` 0`pApP 0`{A`H` 0tA 0,chXK\A `P 0paAv 7@%p=:P9: . $@ ?9h P `  0~>*+P +I` 0 P`m Aq(K>> zAHP hXpK>뀠K >lApjAp` 0@ gŘw LP@!0 |p(K>s ?` ? P 0  *P* I 0P >pgP K?L* 0gP P   0*`u*I 0`PPPKX>g(@Kw@`p@K@XK;@@7@KsO-dM$K`P@  p?4 0a@  0Z@ 0O0 p > >;gcp >  > 0g )@@ @@ ?KO-tM8Pp`  0@@ 0 @@@ ?t >ᡀ=?ᩀᬺ 0q+ f0Kd 90)0$K $ (  p)0 pϹ f?P? +@ )@K`>K-8MPp@  0?`  ?wv  7㩆 -@e= s> 7㘆V= V= }fv?@>? ?KpL-P@`0 pLM- @`pP .`v 㴖 7_ - ->y 㣖` - > 7?~ 0M*H-M`@Pp0 @KO-MDK`P@ 0@?< 0 @?p 0@? @ m>0  e << e<<e>P>3? 1?/?KH-P@`pኖ{  ,0 H+*H-M@Ml 3 '%P@)U$@p)P)`) 0p)&KH-M@pz)Pv)`r) 0pKHp)L-M@kXT 3 &NP@U)$@&KzO-lM@@)`<)P6)2).)p 7*`' 0d`D0 ]D(0T pL `hPDp 0p= 0p='pP66  (,PD 0W)dᤋ`6p6 d.''pX' P 0`P嶗J'P Pp p0`娗<'  0p@鞗2'` @ 0唗('  0`@銗 (DPydm(==K>L-M@kXT 4 %=P@h(#@%KO-tM@S(PN(pJ(`P 24ö 8p 00= 0 )=}0 ^ 0(d 0( d0K%.S0&0P$K `$ ( !( U=S=KÏ}>O-MP`@px&&0,K <4K D<U {  7уc4K:Lp 0<<PN& b0PF& + ;,K <`}&P5`5 ,-& W:W:~clzl[O-MDKPp`  0D7d 0 =7X0\ 6k 5[x 6/s!@)4"g4!0T   <@54`@ 07  06j 0o"]@ 0d"] 0|B7@7 ]\@4 4 ]P6@6 (7 &7Kf>O-TM@ `xj! p `@8@$ <8  0`H@0p'e0W P 1/HPT P 1/Bj 0$   <8  ``PH@0pdP0W P 1/HT P 1/R ! 09K;@:@:@\:@L-M@cXT M> ?P@8!@KK-XM@"!P!` 00p 06 06 0\ 0  \ 0 E6C6KL-M@zcXT 4 15CP@ @!KfO-M@ ` P  p <K 0PV5DK 0 `P5LK 0K5]v  5tpK 05 >i U4LK?3  L4.i E4^`kt"tT0|PL< L `s # 4 L 3\5tPK` 0`15tp 0`*5`L` 0"5 i 3 j 3  0 \  7 |DpK2$` 04h 3  0<K22[F52 [P_`$"$0,4K0  4 `2$p 04xh 3L`4K"40,(K( $  `<Kb2b2[4tPKY2[L4t44$ 3tKP 0Ppv4t` 0n4PLP 0g4LKW4 " 0O[  7Y{ 0㓚$ 227[4`Ka,4 p0 I 11 [4t4tK4 4DKP 4L-M@aXT d5 XjP@@HKCO-lM@pP`  24L$K 0w3,K 0r34P 03bh R2 2  03^g =2  0p喫 Z 3  0P 7z$pK`H1,PKD14`C1jZ3``3P]3 0o33KL-M@`XT 5 FP@M@KZO-M@p73DPK` 0`%3pTp 03 g 1 f 0Z  7zY NJv N 7yzs,Pp 0`2`` 02  "! 0RY0   0P PYd00 㶪3,3T3DK 3K  0 0|XY@7qpL-P 7@y`oPv+`r+ 5&ypLMkM-MP`@p@K 0m2HK 1EP                           h1P>8"|8'0H@ @`PI8P 0`2`` 02 0wY#HpK/@PK/X//X1@L2J21F2K  {=lR>pL-@PP  7x`P*`* l%pLj0pL2O-MDpKP@ 0`1T 0 `1 Gf 70  0X  7xp]@d*p`* #%gU0H-M@P $0K00H-M@ h^ F6 A1P @p @P 40K0ݵM0H-M@P $0K00H-M@  ^ e> P @v( @lPh 40K0 I0H-M@QPM $0K00H-M@ ] Y6 >P @. @$P  4 0`pK0JD0H-M@ P $ 0EK00H-M@ ] c6 GGYP @ @P 4 0(K0<0H-M@P $ 0K00H-M@ H] m6 JP @P @P 4 0K0C40H-M@yPu $ 0K0O-M`8Kp 0.`K@ 0@Q/Y DEPR @"@;0HH P^@P 0@,/@@ 0%/ c - o! 0V 0K N% 0P0( $K$  @P @P8K,a`K - ?0 ,U 24[ 0K%.00($K$  @8PK, , U.@/@/ /j.KF>VL-M@C\XT 6  P@K@KO-M@P`{p` ;0@ D`K 0a.4 0 Z.n0 @FU ` 0G. 0@>]J1U]B. 'U 0`]/ .DK.KO-\M@P$K 0-,`p 0p.pp 0- , lm 0kT`{@ T B , T ჴ@? P"@6 K , k@? 8"@7 3 , \$@Km+m+TP-@-,-P-KO-cM@a$ 0P\`Kp 0Pq-PPK 0j- 0pYTW  0 0]\KDT 0pnW $0  ㄆF 2P$ I 0Pv K, P0K  `  `- 0`-*T y,| 0`-T 0`,W(3 A 0p 0@SPy 0@ S`SPS0  p*|*; 0[,P p 0`, W_T 0)S4K"40, ( $ (K$ X*|X*,T}S u, & W+\|jSc,PKs7zPC`J%PF%  1+P( 0j U 0*(0 ㆅN0 P=)` (0I `Pn `)T,|~,+P SpK!to,m,+ + +cKc,\Ka,K@<>H-@Y` d+ P _+p Z+[)y)s)L-M@rYXT 7 )B;P@z@K%FO-tM@Pp`4 ;0n 8p 0+ 0+ l0 tR0KO"¼0m0t$K `$ (  q XR 0 ++K7>O-SMp\K( @ 0@`C+K 0@P<+``K 04+@@ 0-+l 0'+d *\ *T *  )   0R 7 r@  0(`Pv P 7q  0P ( * 7q@P#@# c\( * 7q@P#@# e~cTv( *@ 7q0 \Ki(KQv 0 @ L,"˻,v040 4K P4P $P  q,RK`,@S040 4K  4P `@o d ( 4* 0\( ** 0T'7d"@/,"m,040 4K$ 4 @= !@ )P`I 0`@E\`K'P(@v A 7p  0@ '\'T',P 0) )@]j0 `PLP ) _l` ( )@P4K"40$( (K, $ 0 @j \@K0 ,)tP0; nfP(z @ n`  0 0 G)0@ @僂0 @|\ 6)@] 4T@*)PQ ( da0 X( (d(l}){)Ky)Kw)\Ku)K3>PL-M@VXT S8 aCsP@@QK&K-M@Pᮀpp` ;0  ` ` 0nKKH-M@XV h8 O!P@`@Pp` 0pKH-M@Pp` 0pKO-4MpP 7@ooC0 㥁 ` 0`W( 0`Mp 0ᐁ 0`!OJ1O 0z<(KO-M0` @+$pH"[H0P$ P$  p& H` 0p' 0' 0P `Nt`I ` 0%N P)('(0  ZH 0' 0'P0K"00( $K $ `Pp0  N|P]I 0B%iN ''HP` 0`e' Z :&9eLN'H 0`K' ` 0C' ~p { ~ z 0$N  7.n2Np#0K"a0 0$ $K( p0d'b'K)>L-M@TXT 8 PEbP@ @@K K-pM@Pp`0 ;0 4p 0&  0&Hg0 8M,KR",0p K ` $  M 0X &&K蜽$$>pL-M@T 8 RP@n @dP``\ 0Kp*޺pL-@LPH`D 0pLO-M`HL0D P @ L8} $|~HK< 0&p`K 0 &pK 0&@ @ 0pLS&Q&LpspK@(  0%嘠K 0%`,  0C L$w }H0D I`K@p 0p%QXH0K #L@7< 0@pҎ@qfp%  0 %p@KsLK%%@Kw,K p 0#%K 0`% @ 4## # "K"0"@"4" #KL-M@PXT 9 n S〸P@ @^ K跀ZO-M@ `   $K 0"LpK 0`"O-MD0p0 @4F8U @P < P $zy`HK 0!PK ! 0z y. 0 PPȊpw (`xDPQP 0p0` 0zPK<TH K  w xP3k0,`=b  `0`1HxKp 0`G!렀K 0`@!K 0`:! Pp q 0 HK P 0  G؀K@0` BK0KP P P!G  ^ K 0PGp` 0P  0 P  0PP U 0J Gpp 0P PHP 0    ' 0( GmGp < P4 H -CYАK WpV }GPKu < Fl 0QGVPR IY  ))H p LG4p ? A Phpp@ 0 HxHLD8 $pP`X pK  0 zm`PBK  pKPF`K<  T R P N xKF0FP xdp4 (8 @ 0 ` ԐPV P 1/PKyF0],0 DP`KfHpKeF@KxKGK >,?O-QM$ 0`X ptO0(K P'0K 8K 0@p0@K pKD@ @ 0HP @T똠KH0K @L 0Fx 0@ 7Bf@ P@  W  7"f@P@  W@K 0Bx  Ex  $ 00PK@} p0pE Pm 0EP@ 0pp(p 0lP   0' E8K iE PdE0  @Ѩ(pKP$ 0 TT({E tDEP@E0 ᮨPd p 0pά0  pȬ ,@+RE@8K!xp .8P4  pK  7 Be@K@* P0 0  pw(PxEpk8K@ DPD0 D(pK@$ 0dpPKD@ TRKPN 0KKL-M@}KXT u; 4QFP@@$KkrO-M@pH`K 0pPK 0h 0DR 4p&^ᑘ 0xD Ϸ@`p 0t  ^0 h`^Dl$W`8P`@0 㞮@I0@ Hp` PP`"P v  pp 00pKD@P 0P 0 P  7dP`P U@P 0 kC` 0` CV 0P` 6@4hpCU 0`%pK#HK!K=L-M@XJXT ; !P@`@KfޓO-M@P HK0 P`HA BpHA ;zPD ;0? Ỷ8p 0_ 0X\0 DCT0KQ"㒭0=0$K $ ( `HpK (CU 0 8Ks=L-M@IXT > s6ㅱP@@cK3bnO-4M@pPsx :s 0Pl`K P 0    B 0J KL-M@SIXT +< P@[@K3cʏO-mMP@p\K 0K 0@|`K 0@u@@K 0nP \ =c3$\ 2 2Wb6@ @    7 p9b` 73bK K p 0@ 0[0 @@pA넀K 0 p0 @`@K K\KA  0x rM@K0 C)'Ap@`  0 sKrA`@ 0@뜐 0t 0@q@ 0@  0gAL@ 0g$` 0`KQ 0NA܀KF1[@ 0&ACKt  7 =a@`  ` ~0 0  \s  p$A@`4K"N40,$ (KD ( P  @J @4K"%40,(K( $  @  ٶp@`W k `O 0 @`I 0`@tb$L뜐 @h@o`k  r p0 r=`c@܀K[@ I0  k `KK@>@H0  T@K:@dH0 ; p3KK\KK=ʇL-@-r 8?   / ?/ IL-@r ?   /?/Ͽ E˿L-@q @@?,   0  0/?/᭿H-M@P 0MQ`p0 `E 0KHaBꌿL-@q ?   /?/vHrL-@q ?   /|?/\ ҲXL-@q P?   /8?/BcH>L-@lq  ?   /?/( 螲$L-@ Rq$@@?H-      P P?/O-dM@p0 P0$ >P4P`  0L  ( 7 Xo`(P0$K`$ 0     40$ q4P>0K=O-\MP40@` 0`  0`cL S `:$mX  7^p ?^`  `   abX_  4`0 e> ` 0bZ> 7b^` 7\^  ld@4 4KO-dM`$Kp@ 4P 0P+  0 P$ 0uO$K   > 0Ƒ =$PK@ d bKK-0M@`pP 0 7] Yl  ~ 0厑=0KL-M@hDXT 0 a1P@p@KP}O-[MP`p(K$0K ,0K O` 0 TK 0~|K 0xK 0r 0l 0fl 0 _D 0XPŸ(0 |PK$ PT@K@`K`pp  $T4=( @ 0IN=$= 0;N/= 0 )N= 0 N P< 0 Rl`< 0 i <n 31/-K+|K)TK'K :L-M@^CXT 0 b'P@f@KLyO-MP`@p(K$0K ,0K B` 0  0?Q jTK@ 0@d|K 0@^l 0@@WD 0@QL(0 D $|PKlpPP p$pP 0<( `@ @0 :!< 0 @ *< 0 @ D@<gecTKaK:L-M@BXT 0 OcaP@@?KIvO-[M` p  P(K$0K  ,0K  {p  0  0|P`   jTK  0|K  0K  0  0  0l  0D  0ytŸ(0 K|`K`T@K@  $ $ t T;(P p@ @0 L [ B;  0@` L KK 2;  0  @ L 8 ;  0  @ L $ ;  0  @ P l@ :  0  ` g : KIG EKC|KATK?K<:L-M@vAXT B1 -?P@~@KE$rO-]M@` p   P(K$0K  ,0K  Up  0  0VO  0PO`    h  h TK  0@n|K  0@hK  0@b  0@\  0@Vt  0@OL  0 @HtŸ00 K|`K`T@K@ $$(  ,D $:( @P p 0PpR K ) :  0C K K :  0  0 K  9  0   rK ` 9  0   O 9  0   f L@ 9 UK|KTKKx9H-M@E@ 1 eP@M@P`p 0(%Ka@`m@H-M@nPj`fpb 0K@O-[MP(K$0Kp  `w,0K  p  0<  0M` D  gTKP  0P!|K  0PK  0P  0P  0P l  0 PD  0PŸ(0 |K K$T@K    @$ 8 p P P(@ 0 5/ TJ |K 8X ` ` 0P P6/ >J K 8X ` `   0 P6/ %J  8X ` `   k0 P6/ J  u8X ` `   R0 P6/ SN ul \8X   <0 P:/ >e _DP E8 lK|KTKKD9H-M@> > f㠦P@-@#P`p 0(gK:g@H-M@P`p 0Kh@H-M@> 1 6gHP@@P`p 0(_K_9Hf@H-M@P`p 0<K @H-M@'> 1 P@}/@sPo`kpg 0(K 8d<@H-M@PPL`HpD 0K谞@H-M@= 1 i㘥P@%@P`p 0(_K6c@H-M@P`p 0KT@O-M$K`pP  ALK@ 0@, 0 @@@ 0 5p 0 0 6 8p 1 _ _  6 0V Q Q x6 qP  3KM-PMp`@P p  ` (`p 0N xP PP$ P  00P  I)6K9p9pL-M@PS ` 0] KpLO-M`(K 00K 0pXK@ 0@Px 0@P 0P@(@ 0 $p  \\  5xP y  5 @0Kp9W5Wp@XK 0PPPP 15@0@K(K 0(ɜ ^ 0pXK5@>xP59> P C(KAKO-M  @0`    e @  pz   !o  pg   DKp 0p9lK 0 p2LP 0p+$@ 0p$?  p7  ,  !  0u4P p3 @ @;lK4@@ 3 @)L4 3 @$ 4 3 @ LlKDK KO-0 KpnHpL-M@+P'`#0 KppL-M@6 .2 i2{P@@P`0 IKp|NGpL-M@P`0 |KppL-M@j6 62 !.3P@r@P`0 OKp.FpL-M@P`0 4KppL-M@"6 >2 /P@x*@nPj`f0 KpEpL-M@SPO`K0 Kp0H-M@5 F2 *㣝P@0@&P" ǎݐ!rK0C0H-@ P ᮎĐ0HH-M@5 R2 M+_P@@pP`zU 0p(T@'KBH-M@pP`YU 0p3@KHO-lM@D `P 0P 0PP    1K Ek?  p6 P   p 0   =`?d `7\ D`0 )."` PP P#A  TO4p 0 ` P-@` TDRKH-M@4 &> @,RP@@Pp`mT 0pG?Km>H-M@Pp`LT 0p&?KHL-M@54XT s2 oP@=@KZ=O-M@uPq8K  0,?`pK` 0Tp 0Mh  0p5-  [PP  l-DP 0 0f<`   8 xu㊚P@@hKR 7M-(M@`p5h Pd0 p   @ P!C U P 1/KLu?7L-M@q2XT 2 (v:P@y@K, J6M-(M@`p)h Pd0 p   @ P! U P 1/K0t?5L-M@!2XT 3 wP@w)@K  5O-TM@a4K 0pQ1`0 1{4pP @0oi($0,p( @@($ `p@aT P 1/$4@P(4KK4r?O-MP`p Qh Q@dLP* 4pLKP0 0tK 0hp | u  !? @4 @>t K  ;P$ Pn  $K2/l);@<h $ 0(pd p@p;$ PC  $K2/lC)T 0^Q\ =X 0SQ` 2P;p`<hO$ P (0@d @p);P  2/b)T 0Q\ X 0Q` P;^pW<Wh $ P0(@d @p:P  2/ )TP 0PP\ X@ 0PP` P;p;h $ P0(  pP:PPw  2/tK(Pi  2/K(P[  2/LK(Pl +r:PE  2/EK(V1 HP0}LP+  2/CMEK@KN@L8JH@KCDA<?=KtKLKK**L-M@/XT 3 0ؖP@e@K(H- M@PPL`H0\ p @pp/W P 1/Kf?L-M@.\X >> |㎖P@@kK 'O-M$ @`P  <KP0`P$DDK 0WLK RtK 0 `|p 0`PTP 0, 0`[  f _P  9 TQ%DK` opkk ';<`K2 YjS,R|y',# B<b5 E3Z' O`Lp 5 4  Ꮒ ሂ  <K  $K0P@ PP$ U P 1/T 'DK$`LpKP {V| 0P<K,e c|atK_K&\& &%c?$L-M@-\X 3 D}VP@@3KC"O-TM,@Pp 0` 0w 0(&  0w&KO-MDPK@0 0`94 )@`D`P 0x @Tw K 7W  Vp  V 7cF?? D K0B&P 0PBp 0P;P3 x ,  0嵿& PP p1/` &ssDqvD`K p D"HD0L  pP2 1 DPP  D2/DPK%1Ks뜅=M-(M`@$opP0 04  $ @p P Kx=O-M `P8K0  0I@@ 0@p 0@  Z`a@]  0 _%`)%%%@f0K4 㤏0O0p$K $ (  @0  p` 8@Kp)%P!@@K =L-M@+XT 4 w㉓P@@gKO-MP\K@ 0@l 0@D 0@p3@0 t Kp`p  p 09<@0 n` 0\2 @ ` \ K6m@ t`p D@ " U@ \`X l  n4K3 㬎4W0(K ( ,$ {\pB$< :f9J @0+S{ \`K > 0+Sn  @Dl` 0 $-& $ 0 w$  a_]K,=L-M@*XT < F3XP@@6KO-M@ P`,0,K p4K 0pj<K 0PdHK 0<`8P`P80 @p8 0`# 0 y`ah` d 'k@5 Ip\`4KYHP\0@ $K  $ AP~  C# <`K9- P" )P`P b8 4K P H`0@ a- `` ",pK TR<K K8{=L-M@)XT 45 :LP@@*KO-M@\K 0P`48 0TRPTp4 0QX@PPPhp"1/U P 1/  ὕP  ᷕ`0,Ip,'I뀠`(  0O+P2`.  P`  @`/ f}  Cx  A: 0P 0`  ! X0 ;0\X  $X4 8PAp<P 0PX 0 P`P  P@pb/ RE;u H   i ! ! < t(Pp w(L 0s*0D 'p 0h O4PK  ` !PYX4 㗋XB0`4K0 $8 4 ` PD)!` 0`P'`X` 0 @p. :u 0!4K 9P4`0,$ (K0 <( p` P 8DP L`0T(K$  ( `P \KX  8 <0(ppP L`0T4K0  4 `P s\PKr d ,P` `4K4 ߊ40,$ (K8 ( aP uL`x0T4K4 0  `P~X (\KKP?P?\u=pL-M@ & 6 ȎP @U @KPG`C0  0`KphP pL-M@.P*`&  0`KpO-M@XK`pP 0  02 R0UpXR@O p`QUHP  8s p`00!9 1/XU P 1/\pKf&   Pv P 7?P(0  LH` 0`  0` p 0 ` 0Kщ0|0( $K< `$`  fePr0K"㰉0[0($K  $` pPP\0K i0pA0($K$`  G H\KXKKD?D?k=L-M@%XT 6 㒍P@@pKO-M@ `Pp  OT2  0"HK 0`X` 0PPP OH J o v`P KHK@ P@PP, 0`0 p(PB 1/@V P 1/XPf  HpXP QHKPw0`%lP iP \ 0w# !XKCA?A??L-M@$d` 6 㿌P@L( @  K^  aO-cMP@,`'JpLK 0Nm 0mD0TK 0\K K 0PK 0Ԑ 0  0u  yr ޓy+ P` ) `P  KF7 BpPK 0LK.PK* *  ԐTPKHnD\K ? eP 0K PYi 0AP= 4D pPp 0p?H` 0pp7  0p1 "p  0pTK P"4K3 `4 0,$ (K0 `( P`, \K.P.` 'p 4` Ph.p4K3 $40,(K$  (   PWp`4K4 40,(K$  ( ` pP`04K4 0  `PZ PYyP|0P p0 4 pPp0 4 Pp4K L`K% HpPKS`L K\KTKK)a=L-M@"d` 6 㤊P@1( @ K8=  pL-M@ " m> hzP @ @P`0  0`GKpJ{pL-M@P`  0`KpL-M@e"XT 6 .P@m@ KO-M`LK 0@PT L  400@P4 ?4 8pw10 s d 㱅 \0$K $  PDPA 0/TL  (L@K  0/  p 0( T@   @ 0 E~4@$a [K@[=O-CM@pKP 0p` 0ph 0p` F F<Aq `w(#0,`   H`K00K400 \ D  H 00@ (P \P@8` 7"P8V P 1/@X P 1/W 0p { 0PSh\ R,h($PwL (0$`, L\8 a0p 0K,p  (p 0$ H`K p `cd0P, 8V PP 1/1/P K 0>[``\0 lLpPKh\0 p~]p d 0 @hLJHK2?1?0?L-M@| XT X7 3EP@@#KAvO-M@P 4K0P`P8 4 c< 4 Z@ pD n4 0KDK`  0+ 0ppP 0PPHP 0p p 0 $ 03 `d)p`Kxx  0o,i A%pp` 0~ wGp ᔑPhKl Z ڑ 9 _ ` KA` 8KSH`P 0PS p 0PL` 0+SP 8d,  0.2 &hK      `PK  us` P P  04z pWUpK OKO-GM@K 0P` 0K E 0+P 0`p 0 m$ 028p 0P 0  `   0K ZKZeP lph TT"8pKX`   P`KT0K40 8 0 X KL  P TP (p @` P@V P 1/(`W P 1/KKP8p`0R 0+Sp N+  P  0<`8PK8 Hp P` U P 1/HW P 1/PK`K@`QOKK >>pL-M@} Q8 44FP@@P`0 xKp˃zpL-@P`0 xpLL-M@5XT Z8 P@=@KyZO-M@Pu 4K0P`p4 P4 `UD 0I< 4 1 0%e<p 0H !D  06 ` 0 p Pp cDp 0v P  K P 0 x4K /KL-M@fd` 8 /P@n( @   K蛰  O-M@DK` 0`lK 0 `pP d0@  0(P^dp;<` 0y t :z $Pj IP4`0   *,0 P @ 0DK P ` ADK0 4,P ` 0 FwdPl`K ( 0DpK <@ $BB@KL-M@xd` 8 /AP@( @ KfZ  *L-M@Nd` 8 P@V( @ KO  O-MLpK@`$  P 0PxPDP 0q ( pK0` ,@$K(0p48` 38Y P 1/LKCp0 p` W P 1/DP%LKKx??M-0MP@0Kp`  P  P P  P K2/  0PNKH-0MP@`p 0  Y t   i   ^ l S - HZ " = K 2  R '(  )  /  _|  q  f  04K0H-M@ > 㞀P@+@!P 80clK0?0H-M@P (0cK0Ho0H-M@ :9 BTP@@P 80]c"K0s0H-M@P (0AcK0HaL-M@AXT C9  P@I@KlH-M@`~0 0_aP;B Ap /` D 0D 0pD 0pC,0 p}CKHPL-M@XT 9 P@4@KO-M$@K` ,PK GTK@ 0@P4 0@  0@ W27$*  70 70 n7p  %4@ 0 8  0  xz$PKpuM7  =S"0 B>,@K^  ] |pyP0 TpKqX0; jc 4# !KpL-M@  > '~P @S @IPE`A@0@@ 0  'KpڛzKw 2pL-M@&P"`0000 0  Kp[v O-lM@_ P P  p840p* ` PpP*V00p  PAp804` p#0P 0PCd@L PPP@$8KPPP (P$P Pcp* P*X p` PA`( $p  JPP8K ($ 0 ]$\ PPPR$(KPPP A  (A8[ 0A@ HA0 8AHD@ pe*` P*V@@p  P^ApH@D` D!@P 0Pc  PPP$8KPPP VA@P` HOA([( K & ` 8[0P  08[ 0,A([ 'AK05|W0H-M@ : FqX}P@@P40 00(K08SM0H-M@P$0 0K0,MO- Ir[|P@@P40 00!+K0WξtI0H-M@P$0 0K00H-M@P$0 0K0>0H-@<<@<@0t>L-    PPD>/jM- Mᔿ  t }08 K=JL-@x< @@>,   0  0/>/,K-(M@PT p `^P60@   $`9K=M-M@P:v t: 7*   0YItpd`R 0`8`S 0K c 9O-,Mp0P`  W"@Gp 0H`0$$( A@T@PtK4=pL-@;|@|@p>0H-    /opL-MP@0 8`㥾 `ᚾ  e  0"10 T` KpL-L-@[; @@|>,   0  0/\>/pL-MP@0 7`E `  00 0`` KpL/܈L-@ ; \>   /D>/ƈL-@ hLj꺈L-@: >   />/ᤈL-@ qhLHꘈL-@: >   /|>/ႈL-M@0 KL!qL-@:>   />/YM- M@p0 {` { 0 P\ p_0< ` KL=+L-@Y: (>   />/FL-@?:>   />/H- P@Q `pP iPH؇0H-@:<@<@0$>L-    PP>/ἇM-(MQ"$r08  $ 0K =0H-@9<@<@0X>L-    PP(>/ဇO-,M@Pᨼ 8 p@貼P0@$ $ (`iK =U0H-@9<@<@0`>L-    PP0>/90H-@ P"r0H&L-@T9 @@>,   0  0/>/K-(M@P0 p `:P0@   $`K =݆L-@ 9 >   />/dž 8ÆL-@8 >   /l>/ᭆ/ᩆpL-@8|@|@p@>0H-    /ፆO- M`P @ p@0  0tpP / 09KYpL-@8|@|@p$>0H-    /=K-(M 0P`@p_S"pH0<  ` $K=pL-@B8|@|@p4>0H-    /O-4M`@  0pP% `0L$Kp $ ( A P ᭿K=ŅL-@7 >   />/ᯅ 0+St AL-@7 >   />/Ꮕ vꋅL-@7|>   /d>/spL-M @ P (`# |0 hKpVL-@7>   />/>0H-M @ P 0 ;K00H-M@  0 sP@C@9P5 80V3K0ysd30H-M@P (0VK0Hß0H-M@  0 ZlsP@@P L0uV0 5K0lr<.0H-M@P <0TV0 K0Hꪞ0H-M@O  %0 sP@W@P 80!VK04q0H-M@P{ (0VK0HwꈝpL- M`P@  p @` @T P 1/@2PKpl>O-MTK    0p*|K  0p$K`K  0K  0K  0 RK  0  0B  0p  0P  0@  0h  0 @  0KKRK $B(,p| K0P0K`4@ @8<  $@ @( , P ( K,0Kp$K7/TK xK  ( $ C, P ( K,0Kp$K7/TK dK  `$ (` , P ( K,0Kp$K7/TK ORK v(` $ A, P ( K,0Kp$K7/TK ; b`$ (` , P ( K,0Kp$K7/TK &B M(` $ B, P ( K,0Kp$K7/TK  9( $ ., P ( K,0Kp$K7/TK  $( $ /, Pl ( K,0Kp$K7/TK  ( $ , PW ( K,0Kp$K7/TK h `$ (` , PB ( K,0Kp$K7/TK @ (` $ , P. ( K,0Kp$K7/TPK |`K  q @3h1/-+B)'RK%K#K!KK]0'90H-@PS 0HCpL-`0 @P4 040 4s0 4k0 pL4K-Mp@ 0P4 !` &5@@0 4G0 @4 ?d" @|S 0 4 0KK4L-M@XT g0 pP@;@KgɔO- M@&P"`p up 0H4 0C4 0>40 640 .4 0@[KOL-M@xXT x0 /ApP@@KeO-uM@P` (8<ypPK 0PxK 0PK 0PK 0PK 0P{ 0Pu 0Po 0Pi` 0PcX    0@`3  00p3  03%0  30  3 <`41 18 $ n  K p P   xPK1 N1P=`  p 3P 0P3 0PP30 P30 2 0P,20 P20 P20 P2  0 2{  Ps 렠K 0!  P P,XpB`KA h  11X P  PPPXE 4 p2@0P P`w2 0Pq20 `h2 0r2(`V `  P P!p ? P P pK& D `2Dp0L$ (Kt $P<( (P,巺PϴDݴpD`0L$ (K8 ( P p`吺Pqpp h0 /P៴D /`㩴D0(( (KL $   ` P`AAha @400`P/VgXKKKxKPKK<<O-MHP@   01 0*  0p @ p @ / W/`0K"Ei00$K`@$ (  ˹ @   0R3 1K<O-M 0p `0<K sDK0 jlK 0`K 0`K 0`K@ 0@`CoK 0E_ 0@ 0@ 0@ 0@yt 0@sL 0@m$ 0@g@%   0' " PG  0 @9P!@(`$ |E  @`   LP X lK 0 D@KP` 4K!Gh40,$ (KT ( `R P4K!'h40,$ (K ( PP`ϲ4K! h40,(K$  ( `޷ EO 0 & g @t0  @᷄L 9 7ᖲ4K!g40,$ (K ( ᤷPU`}4K!g4f0,(K$  ( `錷 KD@KKP_4K!g4H0,(K$  ( Pn`00 0CM$`3tECKKK lKDK<KK<}}O-QMP `, d,p HK@ 0@pK 0@똀K 0@ 0@x 0@P 0@( 0@  0 7  0 @E 7㞾 @ 7p ww  ?@㻰 @㳰 )H@KxP 0P 0 ᾫ H ᙂ SR ;;a Z@W 0@(@%L PxKpK KO-IM\pK`P 00K@ 0@) 0@#l 0@D 0@ 0 0@P3pP4K"Le40(K P( ,$  ҵ Wl@ PK  7 u㦽P@ DP [  pMn@ Fg *@ D0 兰bo"P h" @Kp-ᅯ !0 @phD8p^ 00 0bK\@KR0  NDPFlKK<pL-@LL"K-`M8P@` 0`) 0 `"p  51 `0+SJ  㗼`   @ IGK AO-MpXK@`P 0P8 0P 0 Pˮ0K*. d0ᴼ0( `$   $K@ճ@xo* ) 0U 8XKK<L-M@*|x 2 gP@ွ2@v00" 0mJȺK EqL-M@a 0" 0XJK>L-M@XT 2 ॺgP@D@ᕺK DpO-SM@/`+P&p"\K 0PK 0PK 0P딀 0Pl 0Ph 0C    ~ U\pK v UPK n  Kg 0  lp| 0pK@P 0PpPP 0ᘭ$0 pxp4 $N U 0lP<@c}pp4K"b4Y00(K ( ,$ @p|p) (  0p4A 09I@p% 0,h}}{KyKw\KuK4<pL- MP@ xt `! `V P 1/@PKpH>L-@}LL-M@{hd 2 2DfP@ѻჶ@ǻͻKi>!kL-@ṻL辻L-M@MXT ? fP@᣻U@K=ijO-|M@Ꮋ$' pㄻPH`K 0訯H ,H %H p(p 0T  P T0K"a0=0$  p$ ( pP$K("  0`0 & J(~K<O-\M4`p  0  :$  7 P@ 0 ~  7㷹  ٹ0; I* (K0H-M@` ? )eP@ᶺh@ᬺP㨺00 0K0X:ff0H-M@ᓺP㏺ 0 0iK0>f0H-M@ =3 ӷdP@r$@hPd00 0>ᶷK0f9ee0H-M@OPK 0 0%K0Re0H-M@ F3 dP@.@$P 00 0rK0t8dd0H-M@ P 0 0K0fdpL-@ P s` k pLpL-@P \` T pLL-M@fXT ? /dP@Ἱn@ K,9bH-(M@KP 㡹`㝹p㙹qY`'p` 1  p?1/e}+Kl>L-M@XT ~3 ྶcP@]@᮶K7QapL-(M@H DP@`< 8P5'`` 0KK `1/IKp>H- Mp@`P s `@p `V P 1/%`P B%@K舜>O-\M$K`pP 9,@ 0@ 0 @ @{H ^I "I 0  0Ӥ^ ^ ~@ BKK-8M@Ppၩ$b㏩㷷$`c0`,   K` p辯0 K\<K-0MPp@` 0= :4pF 79N{ 0 0)EKpL-@P`D 0pLO-LM`@ pHP0$ $  $K`` pPЮ0  `p 0 2P -  !!0DK蠽<O-dM<Pp@ 0@ 0 @ @  7`z 6 ?!  ʺ %H Ho 0᭨: : aZP" KO-M4 p@P  ` ˹ 0p P( I,   `   CHpK$` 0`pPK 0`` 0`8 0`  ~    s`  k     \`  T  0@ ( T`uçp A0, $`t㾧  "P㶧   ɿP㪧  `㢧   ᵿ 8`  Px0'7pp P`P&M4 0RCCpKHKKH-M@P`pD A0 P@'KH- M@P`p6-/ 7 ' `P@7KO-M$P@p d Pᒻ z D`KP 0PL 0 Pw Ⴘ {8x D< ,(0@ 4`  ( 80 `M n Pɦ - % Ծ <ᡦ'  7$ '`pDPKKr K謐H-(M@P`pzu 7 /07   '`P@KH- M@P`pcV/ 7 ' `P@`KM-`M8P@` 0`+`` 0$p ~  3+ ᴶ@XVKL-M@XT 4 DV_P@ᕯ@4K$iOO-QM@δ`ɴ 8KP0`P`K 0`K 0`밠 0 P 0P` 0PP8P 0`= -eM ^] <  0B  J 7nw` P 0X8  'M`pK P P ሐK 0 / 79Nw`  `p 0ppS8K ֩K  0PP=  0` ᴩ밀 0PC눐  0P`PC` Pt00 0@8p] 0P@)' % #!K`KKKL-M@TXT L5 ^P@᪳\@KJO-WM@xKP 0P`K 0P 0P~ 0`x` 0`rtppᓿH 0`虧빧 6 0  20Z`.  P 0 s P  0P> HFDKBxK@KJ>t>%HqDL-M@sXT 5 *<\P@ɱ{@KmCO-dM`<@ 0@P4 , 㢱㞱 00ȥ@ P|  :4 @   2 U 4P40  8 . ,@P#4O-M Kp@P b(K  0 DPKᶖ L @`P P0K@ H  @@@ 0e( K 0r 0  Mt  A .,*˪ ɪKL-M@XT 6 ສ*WP@Y @᪪KA1O-M@Dp@P`;DK 0`.< 0 `'`` 0   0Q} 0ቭ  0/̿̿ 0 +I G EKL-M@}XT 6 4FWP@Ӭᅧ@$Ky)/O-M@ᾬ< dK 0PpK 0PK 0PK 0PAK 0PPAo 0p܀ 0p 0p 0pp{}ᠸtp 0㦠t *t #pᷠPP  p> +t  `ladP0 dpK ڿ ӿ= B\ T  <K$0  P[hp` ᢿ= ӿ( 08K*.4R8ߪ00$ (K ( ` p ᨿTᓾ\᏾AK᏾   0`q; K( 0 `qp`᨜8K"Q8ᑪ0(PK( 0 $ p`崡` 0\TKAKJ q  0-;  ݿ`<`W0 J#dIPK K0˫E( 0E6pP%p! y Ծ P\p 0p   tӠ vK$ ݩ(< Kl0pP$` p\ j(K p$88 4 00 , 8K 08P4 8Z P 1/(K ᶿt~A<p0U pp9ܠ l0< pp9P<A 0p7`p<0 007 PTN\LdJ AKKKK߿dKݿK@<*0e>'L-M@XT 7 ȧ+TP@g@ḧKy%O-M@Rp$ PLo` ` Şp 7lhL H#$ @<D@@ @@@@᳨(p0 0l $h|xp $`K 0tP p`P P0< P/0U P 1/$L`$Ppx ܀ 0$ P0x<KEdK|t0P$ PPy8|q$0 0Pw6<P@ ,*(Lɦ|ɾdKǾK &`>#/7eL-@ e t]>     /\]>/eH-P@`H` P Q Bp Q@P`HdL-@ $ \>     /|\>/dL-@嗧LŻdL-@ @@,\>,   0  0/ \>/d0H-MP @ 0 @:K0H蔻d0H-@<@<@0[>L-    PP\[>/dL-MP 0@0 @ KsdL-@  Z>     /Z>/[dL-@LBPdL-@~ Z>   /tZ>/:d/6dL-@d HZ>   /0Z>/ dpL-p 0 pLdpL-@=|@|@pY>0H-    /cO-LM`0 @4㢦 pP` 400 K@ (( ,K, 0( p$  p-,P( (W P 1/K0Y>cL-@ $@@dX>H-      P P,X>/cM-M@` P=p P `K 0pA_tK0.sp 7j &  0 KMc0H-@({$@@<@<@0W>L-    P PPPV>/-cO-LMP( ` @9pM "M 60( $K@ p$ `X5   `< p0($ $K  @`p `$ , p `$$ PX,K $K `(K  0P1/Kz<lU>bL-@$$@@@@T>H-    P P P PT>/bH-M`P@P嫻 p` 0pPPtsK 0Arp咻 7i 8    0pK]b0H-@($@@<@<@0S>L-    P PPP`S>/=bO-M` @wi (K PWp KP 1 `p1/BP   $P BPp0  (X, $!(P6Pp 0PP(P 0 0 (pK$`nỸK IᢺKR>8v<aL-@ @@,Q>,   0  0/ Q>/apL-M@P` 0  KpLrL-M@Dhd 0  PP@ᚥL@v {KL-@h {LpL-M@ 0 ͢OP@l P@E`60 ᱢKpJ9pL-@ P.`0 pLpL-M@ 0 OP@-ߟc P@`0 ŘrKpg=pL-@K P`0 pL識pL-M@ 0 OaOP@᠟$ P@`ḣ0 ᆘ3KpApL-@ P`ᡣ0 pLnpL-M@Y 0 "OP@ᯤa P@`y0 GKpEpL-@ Pq`b0 pL/pL-M@ 0 ѡNP@p" P@I`:0 ᵡKpIpL-@ P2`#0 pLpL-M@ 0 NP@1g P@ `0 ɗvKpMpL-@O P`0 pL豗pL-M@ 0 SeNP@ᤞ( P@`ἢ0 ኗ7KpQ pL-@ P`ᥢ0 pLrpL-M@] 0 &NP@᳣e P@`}0 KKp$U pL-@ Pu`f0 pL3O-dMP l@ph<` 0l 0 e  0ףQ 㖪 ` 7@`3 0@i#  (! 0'㻡 Ḩ |<zK0H- @PP ᥨ@㠡 0H蜨pL-M`@P 0@!#KpO-O-M0P`.(K0 90K 04`@K4 80K 8 sHp 0pk  0pe  0ءRK0KH0 ppcH<   ޴0K (0K 9 %5`Qp`p 2/ 2/ PU 0  㧗 P  K2/  A SHQ`KO0K⨵(K⦵K荼$*?O-M@(K` PJx PKx0K еp 0T8pP4`@0oxK 0帵堠K 0P㰵PPK 0㩵?   C4  ݣ 0 1 U@`<b, *P ͣ>(0@ S\pKP 0P_FK 0 PPWK 0O 0(KPK (K,   8.͠  &РPZ_K 0#@㹞  ͨ`㱞  `o 8 ᭳㞞< c ᢳp 0&P P 2/ZKCKo  შPg & ᣳ eP h  ZK2/렀KZK 0㦴H4 TP` > ɢ 5  :;P=ᔟ{@  -` Т M} sƴ`KW K⼴FK⺴K⸴ᶴᴴxKⲴxK` 0`pFPK 0`?K 0p9K 0p3FK 0`, K 0p&ZK 0p  0pJ 0p| 0` ؠ 0 `㜝0` D ៲㐝 9 ᔲ ㅝ . ቲz # K~o -Ksd   hY  ] N  RC Z/KG 8 J/< - ֡.0K@PK8P(0Kp  pFKqP pP  4p Q0 㞏P]  2/fxK ̣p6 3 0r 7ᒎ "@㞎pv0  PxP|@ xp ԓ<,PP x x2/ppkRp8 ? P@`Pݛ k`՛ Ң 0`6P4 `㰛  ĥ`㨛 g88(0  T0H0P00 0 D |  xP@D@P删}`Z P 1/4U P '1/@P 7 0 70Dp` sP 0㴱J0  NA.kkᢍx YᅱxPp凛0,PP T` Ppe<P P P2/}PϱD(J_ հ렠 а` 0`Vxp 0`OP` 0HU>0 尐` 'P2BDp/B P#  @P0   pW" 00JD<P   D2/DP/LB @ 0 00J4POxMK⤰⢰ZK  7P  z` p s0 MZ<P  2/śKVD0<0 pPU @ pJP  2/@ prX18 1NP 7 7   0`S!``P 0f P xP x2/0`0`_F*0p W ՌxP;  x2/0▰PK((K! P  2/0+~ |JzxZKv KtFKrKpKnKlxKjPKh(KK訶>S<X.>,.>]O-dM@H 0Pp8`0  0  `0 V P 1/H pX P 1/ 78P` 0`岯 0`嫯 L 0   dd [[K%>O-M 0`@"?0@ MP ᙠHpK 0e8P 0^@  ᫝ 0Ś?P 0@֘ `p͘ ጝ ѭ 7 p`v P   K2/%P  7^, pѬ Ѭd8 0 7?Pヘ ᗢ`{ : P P  K2/ܙ`ᏬᏬ"8 HKKpL-M`@ PG ՟`? < 0{KpO-MLK @  0`㈮tK  0`傮K  0`|K  0`vK  0`pEK  0`iOK  0`c ~ x     0 @˟V?K KKh t@Kd K` K \  lA pA J *t ԙp  0(@`P D D2/$K  ൙  0P E  ᠬP DP D2/K d @PP!  6ᥫ ᤫK  uPA  6`{@፫ ፫EK ׉P L K U ˉ /O_K  I o 4 @ 0 p   2P  D`  0倭  0PpO le P  0@T 0K` { ߛ$  2  0@/(@P   fK2/ND⡭LK 1 ۘ @ 76 K[$  ͫ  7* P   *fK`  0`   0`b  0`  0`N  0`  0`@  0`p  0`߬똠  0 `جp  0`ҬLbPTNX\`şfKH0 DlD $  ƫfK  P 0ጧ )(`P $  $K2/塗  2 0n P $  $K2/儗b k   ^0  J P $  $K2/` G   :0  & P $  $K2/D^M-8M@pP`H K0 `` 0\ 0 3C<@ᩩKO-MH`K@$0p  0P0pK 0 P)K 0P#K 0PK 0PK 0PZ 0ეPPp` 0Ѐ 0 0@G`} B ၧ r  vH ;Px0xp 忨 $` 0p`Pᠨ 0p  "p㹄 / 8ᄨ 0PPᑓxp 0Fx 0PrP` 0PPjP(P 0c ᢖ  ᗖ 0ǓA 0 8  0^ 00$  pᑨᏨ ፨P  ⁨ڧ}{pK D.K᳦pPK`K 0w $0  `MQp@`P 2/ 2/0GP#  `IK  .`p 0pP㳧pp 0㬧 0 P0@   0PNᛒ KKKKpKHKK>K-(MPH`p@ ?E`p ᇘ`  0- 7MM p`WP/0D   $`͈2K&<O-M 4p`༒  8iEDK@ 0@ \ 0@4 0@ P 0@㋐  4 Ꮵ【  ) ᄥu  \@ xDK ᝤnP  0p v ^  0 i 4P  0 [ DK@XB  0 M \Kb5O-M@8K ` @K hKP 0PpH 0 Pi p 0b PPFh K80Kp ;E F =pO0K"7080T$K $ (  pP6hK p 0 N 0 P  g9p`0K"Q70 h( 0$   $K` Pw SHQhKO@K⨥8K⦥K"<!<O-YM<`@Pထ QH p"XK@@K `p pT P 1/@|KX0K`pKpp   p@p,`W P 1/pK 0啥K 0句 0剥 0僥` 0} @  0C` Დ  7j, Z$@@ ᜓ K ᑓ ݎ ᆓ` Ҏ {p գƎ o ʣ  K8 0  0? =Y  0s`  0(@Pt  መ@l +#8pK$0  <0 40@0K<008 0 4  8 @P 0PH(p @@(W P 1/HX P 1/(@ $7 0  700@ 88 0y Ḓ 0 0 Wg8K J8@p`K0@K @ 0< $  @p`cF ᙤ0@K(P808P (,`∤↤ℤႤK․HXKQ P 1/K}==<==<O-M 0P@`࣏ 7 P np { ᄢ 0"BHKp 0pѣ8 0pˣpp 0ģ  C ^P V  08 JS {L t b? /"p pđ W  PD  Pj 0P @  K2/oHKV ᠑ 3P @  K2/X⫣8⩣HK⧣K蟾O-DMP( 7`=  w@I ᪗pA ᷑ .<0@ jA@ f㣌p㟌 , ᗓPU p  0p G ጡ  0p@ 0pڢ(~ Vp~ c l~ Cp~ PpV% 5p0 $  0@ 0 @ P3KH-0MP@`p 0~Z ὐ  7upI ᬐ 0܍VῢKO-QM@HKp  0PKp`K 0PD똠K 0 P=  0 @PQ~ ᵐ 0᥍  =j@  0pZ *0?C f@PO ᠒p$3렀P` 0``x` 0 P 0apePP 0ס(` 0С}  N 0>'PP   `p$P A 0 ` 7 $PHKhPP  # 0HKU(Pxx apPF ( 0 )PP` 0i}    Fᯡ N` 80 >$` HK FP 0)( 0 "BP9} ᝏ 0ፌ  `q )H`K͞  0὞ P N$`xKIK 0 2 wP  ^HPKᕞK%pK#!KO-MDpKP` 0@㬠d 0 @奠< 0@垠 0 @嗠|  1|   @%|  |    4[  0ՋO   ( 0<:    0`p@É l Ǟḉ a ἞ @  Q 0။  d<bd`DK^KO-M P@(`K Z0pK U Y8K O 7 P ឝ`PK` 0`˟h 0`ğ`@` 0㽟 k 00 P { ᠔o 8Kh(PKbb႟ .PC{ J{ ᠖Y#8PK7@p6](KV08  0WH Y K  GP8K3Y  ԏ "p ʏ%p 0wP88K 0(K `0 :Yp0`Kp 50 :  05Pᵜ8pԞ@A᚞@=h;`K98K⒞ᐞ(K⎞KPMO-Mp` 7@ /  7`P LPK 0㪞X HlP  l2/LPKPWU L`K 0pㅞlP 0p~D 0px0  "p ᯌ   p ᲌D` 0ˉE  7O  >LK  1 7i Yy0'P啛uKM-Mp 7P 7`\py @y ʍpᣔ 0(0 S@y z z@xy ّ@py ដ KM%O-\MsPp@ 0B4` 0`1  0`+ Ր㹆  x4` 0 ᑈ  0 `   0 y ]4[KO-4M P@sP P P` KOp ṛR`p w  0ʜ ?;`\pS `K H 0`S C `1 ؊ 0KM-M@` pPS`0?C :p ᔍ tP P7` 0K0KMO-dM(@KPp ᰛ0` 0`2`` 0K @ * ˚  ٙٙ  ۚ_ ]ᶛK蚜O-DMpPh$K@ Z` 0ߛ 0` 3ጛKO-MM4 ` pPgpK0 @ 0HP @嶛K 0@尛 0@㩛,p` F@0`}( W%$Y`p `80  8`兛w ' HK 0 吐(  ppK` p ^W k R\  ,`:$  uI0چ8@ 0,4 0Y-ရpK `ໆ 8ఆ0` lp  ٙw T'@v8* 6,8 (K0( @$ ~`<╚8 6 4HK0Q P 1/K T;O-M$`h( p@` ThK 0姚PK 0堚K 0嚚@K 0哚K K  p (v  pv  FKP 0aN 0ZB Ǚ 0PK@@$@>= pK5K 0ppAhKPI%Dυx ᖙ@  0Ḡ 0vPl 0@q  @K0 gp ##yN KKx⤙K$@ Lx0  x@љPGp 0 K @ ᭙K 0 ChpK} i ᙙ@ᖙ 0P C@u %ᙄKp P @ 0@v@@0 Ppm5 2 +RK:$ Aj ኇ @ xP 0P+PPP( p( 0! 0 0 x@$ @D븐 Ԗ  P͖P WUS@! HF⟘❘@Kӿ + ᰗpr pt`/* @PK$00xBwFKKqKoKKhK (Q P 1/Ko5O-lMDP@`p 0p刘pp 0じt $% `pOW @pxt ٌipP  0 d< 80P  @ @R* $ኘመKpL-P@` P-t ᎌpLpL-P@`  PlKt ЇPt ipLO- MP`p@r `W W ! Zp PsP 0塒  UF C0 匒   @1 .0 wVVKr O-M`HK P@ 0@w@p@ 0pK  h@ Ζ@ 0pSpp 0K @ K  0p81V p0 @$ H Kpp  0@x@vϖHK`ంs@.P(@,HQ@   0  @xhP/  h2/ p@ ){pϽyPU t@P  @2/NvpHKK]낊;\O-MPKP@0  `HP xK`0 `p㙖` 0`哖8 0p጖p 0`兖J`   0g ` HK000 8S\ ?` )x`K 0p7HK  04+0PHU ts0$ P  $K2/u|8z`xxKvPKϕ0Q P 1/K誜눆M-@M`pP 0: 2 Ŕql@  @Cм  ᪔q @u ' p``KK- M@P`p0 W  pppppp   ?wP  2/K@ppppp  0pyK%;`;O-dM<@P` 0npp    @0 p 0 pG B$  "  @\pNq ᯉpFq ᪃ p< %  u@ 0M @pL0 0p tSKO-lM`@pP@ 0@@@ 0ٔ@ 0L@Ļ  0  @᳻]P/ 1/P( 1/p@P UPQ  0 q P  K2/ 0 s@K+K-XMp `@,P 0PpPP 0i 0 z`  0K J 7QP ቂ pP P  K2/@,'` ?z20P?G s2`P 1/ I uP   K2/a,_K衚=&~O-MpP@DK` 0`4 0` 0pPP~ P l QP: 1/P` p P$ `1/P SXp(,0p` 0 4DKK-H}O-kMp@ `KP Xp @K∀K  0m 0fK 0` 0Z` 0SG@u ` `K03,Q XK㠐 0 K~  ` ؠK 0K ` t~M} E ؑ`nhk =$h| pD@0`@/wչ~~ 0@ቒ @@@h@@` 0Ē 0ὒ 0`ᵒ  Q 0 @ ``@ 1ᖹᏒ  ހh0 ~ᇹn0'pM@Mtm@ `}n4Kl #4f| ( (K, 0$ ` v@⿒h⽒@J}` CCqᨒ⦒K⤒K⢒K⠒`KXK@Q P 1/K4zyd;Dy=wO-EM(K@  㐑0K  ㌑ XK 0pK  0p  0p``  0 ` p ᘐ  `K@XPK0K(@K  00 Ѹʑ 0 K ø80@K᷑0 @  8``P`P ᭸  0㮑X K(0K `0 PD2 ᚸ  0@Kፑ(0`P P8 ჸ| -} m    spّבKՑXKӑ,(K*K2tO-M$K@P ѐLpLK  0LU` 0`N$E 0 ` U   0p &@`(@B L0(pp` `@Q P 1/LPT| $0p^LK\$KⵐK%rO-KM`z0<K 㞐PK @dK 0ݐp 0@Ր 0ϐl 0ɐD 0ÐP 0弐D   V  0dPKP᝷<G|ᒐ 0 Uጷ6|(xlP b dK  0@,oz ~D ItlpPK pP@pU${J AνP]  :P@mp h @ 0Dcz [~ P@ pl4Kw P!4y P(K( ,$ 0pxt@0 P pPoEDClA?K=dK;<K┏Kppo;O-MHpKP` 0@pK 0@ṏ 0]@ @\ 0!{ᛶx 0圏Pp 0p唏 Hp000P @~|&{ 0@$y }  0   0 Kp 0n ᫏x⩏HK:z @ ?-0p?G -@ E0 /zpK₏ဏKzlkO-CM\KP` 0p dK ytt@K 0 0pL 0p$ 0p&C   ᅍ  0dpKp@ E ʵtzᾎ \pK0ᶵ<`zRL@ ግ0K  pWᚵDzx |$ p @pj4Kn 4}x T0(K( ,$  @pr$ g z |\K ? 0sdpK@K  0 ᯎL⭎t⫎ᩎ9Xy0 ` p`nᓎKjizi;h5hO-AMHK@Pp 0pP`K ል뀐xK  0`  0pX 0p;Bp"  ᚌ  0@p\ ly֍c0p 0׍   ᭌip1,(Qp$p(( 2/( 2/0`C( p-r0᝴  7H`K  8  7i p$ Qp p ` 2/  2/0`  `pr0ōWPy`BX ,xK  0PpKHKp 8xw {{  0ol ው≍ ᇍXx0 ` p`lqKf>>dd,dM-M@xPxwpw`w!  p`P7KO-Mpwww`wPw@HK ( @p ;00X 0 0㹌 @ 0Y0@HK X@ $`@@K(P, @XᎳHK⇌   0@~(@Q  0B Pi(  P  K2/ 0B Pk0ˌXɌHK"(Q P 1/KM-M@TwPPwLwpHw`Dw!  p`PKK-(M@5w1w-wp)wP9?`(ho!fv 4 0 $p `XpK;O-dM@wPvpv`v( 0 ,@(P@P@X@@ 8 0 P  U P 1/8Y P 1/XQ P 1/K==K- MP@vvvp>`g  ߨ u 00`oK;M-M@vPv{vpwv`sv!  p`PKK-(M@dv`v\vpXvPh>`Wgr!@u 4 0 $p `oKж;M-M@4vP0v,vp(v`$v!  p`PKM-M@vPv vp v`v!  p`PKK- M@uu`upuPu pP`KK-(M@uuupuP=`f]/t 4 0 $p `nK萴;K- M@uPuuu`upu!`pPKO-,M@u|uxutuPpu`=pofv!Xt 4$0$ ( PpnK0;K- M@LuPHuDu@u`Tq>.L-@ȅ=   /ᰅ=/.K-MP@p0 ` c |`c )v 2  0 KKrV.L-@ =   /ᨄ=/@. 7h:.L-@h t=   /\=/$. 7L/.L-@ K $=     / =/./.L-@ 0 ܃=     /ă=/-//L-M@᪴doKO-IM@rPqpq$qqq (K T0K Pp妄XK` 0`Ԇ뀀K 0`͆ 0`džp 0 `Pm ]P \`h PM0K!XPK(pK  0%Ꮽ9rᄆ 0$p PpP z$r0`Kn\(T0TP @PX`Pdhlppp(@pdZKX K(0K` p&N q.pT0 (p 0A  0p ( ! 0$I`eᆆ ߅p₆ K~XK|0KՅ(KӅKh8"8IL-M@᭳gnKO-M@qPpp ppp@`p 0Ꮊ ~q}7 pp0  ` $0(P$pp,048P@P <@K(` @@ ` ᜬo0  ``` 0 qeKH-M p`@P' 0 mKO-MP@ ` 4P 08 0 ,` (` $P X p^`0` 0W  (@'p 80K`;1o0  IwbXP(Z P 1/0{XyK|=K-8M$K`p  PyЂp0K  ǂ |@ᑷ ᎃ@ ᭂ }@ r` Ls gፂ yKO-|M`P pM 0PM0 P PL0Q0Q Q QL Q O0QO 0 @KoP  h@DK@ 0@刄, 0@偄`$`   r  L 1D@K0V   r  ` p;@AooP @&  0$@ ܃,DK}KM-pP `@n fr ᫂ PnpP  ?L N M轁O-3P  2/ P'  2/ eᱡP {K{K{K {K {XK{0Kaz(K_zKee@&$'"v;m!L-@  Q=     /Q=/U! ExO-M` 8/C0 V5̉Qp5㿉PA 2/ 2/8FpHoPH_o@rRpP 0PQ@0A? C/aX/L HppHX0( ( L \  L H8<(\d0t T 4!!!"`"""<###$d$$%\%% &($*+,|,\--.\/0d0012t334(55677|889\999<::D;;<T=>D8EEEFFGIJtLMxNdQQHRRS4TUlVWXX,YYY0ZZZ4[[\d\@]$^^^L__(``bdcdf,hHjj@kkDlllmnop rr\ssht0Pp 0;<8/; a0Pp 0;.; aNX0Pp 0:. Q0P@ 0:D0P@ 0:l:0P@ 0:00P@ 0:&0P@ 0:0P@ 0:x0P@ 0:T0P@ 0:0,/ :[a<p;0 *U@ ru  lu᧟@*N  ;*; K0P@ 0e:\X/90 %a 0+Sdb80P@ 0R:/B0 aA&0P@ 0@:.T0 aӝ0P@ 0/:.\0 `᭨0P@ 0:`\.d0 `&0P@ 0 :$ .l0 `0P@ 09-t0 `0P@ 09/K0 `B0@P 09/0 `x00@P 09xt/0 `f0P@ 0984/0 u`-;,B(;pAᶰ B@THK]/D Ha0pK p @l ,( @Y`0P@ 0w9LH.? 7`:@: = 0P@ 0Z9/2 `<:.0P@ 0E9/0 0P@ 079/0 _;@Ap@ : 0P@ 09/0 0P@ 09/A? _@@{: 0P@ 08/> _U: ;@@p? : 0 0P@ 08HD/1 _.:@@p8: 00P@ 08/*1 j_A@: W@0@P 08/g1 R_W0@P 08\X/1 @_W 0P@! 0n8/61 ._QA@9 ]0@P" 0V8/> _]0@P# 0D8/j? _]?> ;>0p@$ 0/8/> ^9A(P>@$,9 K uHK 0PpvpK 0PjvK 0PdvR j@wR dp@KHPK 0aC(0m RK tK t4PK@ 0@4vK 0 @-vHR$ ,j@?R d 0a @(P[ 0RKsKsKk 0RKPs@KsKVvKTvu9HHvpKFvHKDv0P@% 0s7/|0 3^1:G0P@& 0a7/0 !^8+ 0P@' 0P7/0 ^: \;#&V&J&%%0P@( 0,17/1 ]U@( ?9$9@@ 8@H@Kp 0ruK tK pK h P @ @pP X@ \ 唠 p pK $0唐 ( d `P 儐 Kp KHK@ 9uZ8OH]XT P %%%w%[%?%0P@) 06/ 2 ]9,'8(>ȭp? *8@QHKr!SH^0@ p @l ,(pK Vkg$#$#F#o#6#z"60p@* 0w6/2 7]=([=@7 #8 PHK@ 0@tpK 0 @tK 0@,tC^(  +bH@K 0 `ᔛ 7㞻@,^  te 0h 7㈻7KIrpKp 7z@^ Pe 0F 7fs7@K&rMaG,x""E"b"i;%!"0p@+ 05TP.2 \@7(H=<@F7 7 y$HK@ 0@tpPK 0@t,嘐K 0@ t]  aH@K0 y_P$ 7@]  d 0ƚ(0 % qp@KК:I q ǚF ,-t+t# 0P@, 0X5.? \OHKv!t ZK "0P@- 0?5/B2 [OHKBH@ l p pKh b0P@. 05XT/K2 [7,7(z6$< p,>}6@hOHK^//t b 0P@/ 04.b2 [7,7(I6$< p=L6@7OHKz!uH ]0pK p @l ,($ @T 7 F 0P@0 04/}2 ][[7,W7(5$Z;s@g<ᖫ p=5 ($,0PM  0P@1 0a4/? ![; 5p}=@5 0p @O&cV 0@P2 0;4|/)3 ZlU/ 0@P3 0(4/3> ZB0@P4 04/73 Z10@P5 04xt/>3 Zd 0@P6 03/E3 Z0@P7 03/? Z 90@P8 03lh/3 Z'0@P9 03/3 ~Z0@P: 03/3 lZ0@P; 03/3 ZZ 0@P< 03/3 HZ M0@P= 0t3hd/4 4Z  0@P> 0`3/S3 ZX0@P? 0M3/Z3 ZE0@P@ 0<3hd/a3 YT4S 0@PA 0)3/? Y!0@PB 03/o3 Y==0@PC 03tp/v3 Y` G[0@PD 020,/ 4 YbI0@PE 02/4 YP70@PF 02/4 Y>%V0@PG 02/G4 zY *0@PH 02/E> hY ];0@PI 02/Y4 UY "0@pPJ  02[5/0 p:Y0@pPK  0i2V>/0 p#Yp0@pPL  0Q2@4/ 0 Y'0p@M 092/4 X3:(V;$,3똠KP   oK oK oHK@ 0@sppK 0@mpH@KK 0 OX Qp}jA  0@K?p2i@ .i c5Z$P(@ 0t# J3?CpK %  Z 0,b#PKp@ Y $0L+3 C spHKqpoKoKo50P@N 01/g5 XX2K aoHK@ 0@oppK 0@o,嘐K 0@o HK0 ᒵ Ȗu@Km m἖gm m ᱖o2B ,pp dB X;f0P@O 081/5 W2K oHK@ 0@opK 0@oK 0@,{op  ]H@KpK 0Z_@K.mpK-m T $m$mKDoe2ZB,o oHKoo?0P@P 00/5 W<2DPV;0P@Q 00/5 W~3,"202p0P@R 0084/5 bW`3,22pX@JHK| 7HX0@ p l pK, @@PR/0P@S 0j0/5 *W1@1 E-꦳ 20(>0P@T 0O0/6 W 3,HK 3#8@g9p1@ ,@ 0i; '> '>V ^h'>0P@U 00 /6 V2,HK 37@49p1@ ,@ 06; ('> &>7 0P@V 0/PL.6 V2,79pV1@  0 ;NJp2 >0@PW 0/-6 {Vꜱ 0@PX 0/XT-#6 hV t 6 f 0P@Y 0/,'6 OVM2,HK 2c7@8p0@ ,@ 0:H0K  B $> z|$>H 6<$>0P@Z 0V/ ,+6 V2,-7q8p0@  0u:I0  ,B. #> #> ^p#>< 0P@[ 0/<8+/6 U1,668p0@  0::Ip1  0,:.P 0@P\ 0.hd*36 U Z:~.0P@] 0.*~6 U1HK ;26p7@60H0K  p@*:J 0P@^ 0.lh)<6 aU6HK@ p 20  02>d+=6x+=M 0+=0P@_ 0w./Y6 7U6HpK@ 1/ 0 >@ Fip Ai 020 k *0P@` 0C./j6 U6HK@ 1/p^  0l90P@a 0./J6 T6HpK@ 1/ 0K0P@b 0-/6 Ta/,0@HK e15p7 _/ HK,0 90P@c 0-/i> T5/,0@HK 915p6 3/ HK,0 ;0@Pd 0-/6 bT10@Pe 0-.6 NT0@Pf 0|-.6  S/(.@466p., 06( 0 ,zC 0P@l 0,/7 S /@Q.p_.0 ? (F0P@m 0,|.37 S HK@ 0@kppK 0@k .@Ṛ&.Ὗ iᠫDZd.h>Uk XE;0P@n 0,/G7 BS-@t 0P@o 0l,|x/Q7 ,S-@ Y#7 V125z z@,0@,0 p :,.\7 R -( 2$HK  0jpK  0jK  0~jK  0xjK  0rjK  0ljNOK  0ej^K  0^jbK  0WjpK HK K K K Kf/Kj<<}  0 Q+p+@DHKV HR0@ p l pKI A. M0P@u 0*/5 P+@+  \w .0P@v 0*/ 9 P2,#3(1$0٠pi+0HK @ ($ ,0v ~;~60p@w 0) /9 P2(@1 ,7+$0HKP 0@@hpK 0 @h "D \@D V 0nS @K0ᐕ ($0 *:=P ю^ 0)ၠ@R2P ,x!$ (0@ E*: \^#0P@x 0G)/C9 Pk2,1p*0HK@ :  0,-A=j0p@y 0)/R9 OB2(@0$/HKP  0@@ggpK 0@ag |C [@tC U @ pK 0R@@K0$P 0( ᯀ ,G:O ,1J* ,?^ 0|ԟ@П (0@,`D ,h0P@z 0(/}9 dO*0HpK@។ *:NN.0P@{ 0(40/9 @O1,@W0p  0@xHK@ 0fP U ]e)9 ᨍ51@) 0B@  0,)7\7~K0p@| 0#(/9 N1(.P )$,/@51 0HK  0[fpK 0TfoB Z@gB Tp@K 0Q 4DBK -P0$PKP  (NG8)-9K@ 0@fK 0 @f)B  Z@!B T@K 0tQ(@_ 0B)8 ތ 0tB(8 ,;fK9f/G0P@} 0h'/9 (NK0@( g0A40P@~ 0M'/9 N *@,0p( Zpr0P@ 0/'/9 M //,.p(0HK@ "0P@ 0 '/9 M./,-pw(0HK@   0,zb(W8 MC0P@ 0&/ : M)@/pI( pj0Asp z7p o 0p@ 0&/: tM/'P'(HK 0epK 0,d 78 ?@ A lY@A ySHKp@K 0UPϋ@K0w  '7*M  @Ὃe 0@'7pK,en z(,; 0@ 0F&|x.>: M '@{/ s'0HPKp< "o  0@ 0%&-K: L]/ U'@ '0HPKp V ' }7L hh R4f0P@ 0%`\/8 L-,pG-@n9 HK 0pEdppK 0=d  eQH@K0 O&,p 7 /@KΆN@8' 0  KD6 ndHK0@P 0%PL/7 ]L,0@P 0% /7 KL.60P@ 0v%.> 6L&@.n0P@ 0a%xt.t8 !L&@y.qe b0P@ 0J%$ .8 L&@b.s0P@ 05%/8 K&@M.|Ᶎ0P@ 0%/7 K&@6.0P@ 0 %/ 8 Kp&@!.0P@ 0$/8 K[& .(HK@ 0@Dc@\0P@ 0$l/(8 K=&@-,0P@ 0$/G8 K(&@-NGF0P@ 0$/8 hK&@+HK,p  0pbpppK 0b 0ᩨ ߉ ,5؉550P@ 0q$/78 1K%@v+HK,p  0pbpppK 0b 0r ᨉ5ᣉ ,5cI0P@ 08$/7 J%@=+p2an0P@ 0$/7 J%@#+pG0P@ 0$/V8 Jm%@ +p}/0P@ 0#/j8 JU%@*pe5";0P@ 0#/~8 J<%@*pa 05!0P@ 0#,(/8 wJ%@*pC 0q50P@ 0#.8 WJ$p*(HK@ 0@apppK 0a,嘐K 0@a ᅖ 0JM Ĉ H@K0 >MḈ(4ᲈ4 ,bb7zXr0P@ 0?#/> I$p+(,>*$*HK@ 0aH cRK  N `$  O `( ,Q+=4 Th4 b 0P@ 0"/: I@%p[$,HK(  05apK 0 @.a 0\E=$24 3$(4 ( 0M=&$4 na~^0p@ 0"/; ZI$P@r*(+HK$ 0@`@p@K 0`A 0RL ̇¬,$ 7Χ@ 7ȧ  7§Ṫ  (N 0X$(@ 0 ,W 0&3pKᐇtJ 0~0 &z.0P@ 0"0,/~; H$,@$HK 0@e`pK 0@_`pK 0@X`  ,NHKp0K K B\#^p@K6P#^+?3`(;rDʿn0p@ 0!-V; vHt$ p$@HK ,$HDP)(*$ 0ֆHPK 0_p@K 0_  { "N 0RK̆ "2ĆI$ (0"@;K!I0, K   ,@"2pK`HK`0P@ 0/!+; G#@eIplX@hX PoI@j0P@ 0! +W: G"E0P@ 0 *a: GW;PW;@ 0YpK"0 ZꞽiJ0P@ 0 $ *o: G0"@>" "0P@ 0 )z: pG"@%" 0?;6,40P@ 0 \X): SG:Z 0P@ 0 ): BG!HpK@ 0^ M p]1ᾅK)@! 0:a&0P@ 0L PL(: G!HpK@ 0^I L :]1ህ! 30.^0P@ 0 ': F!HpK@ 0m^ L ]o1Vx! 2:63]/"Z0P@ 0&; F",HKp  00^e pL \ 7(G0 ^ 7B!'@& ̄ Nn(0 1 ,W^0P@ 0PL%; FFD"p$ 7@ ,HK "&H K3 0 ,  0 m0 2 H B0P@ 0>84$< E!HpK@ "$ 7㕤 /4 7㌤ 0|0P@ 0#: E @u9HKv|H_G0L@ @p l pK=9r 0P@ 0": E"( @&pY z0p90P@ 0": E&@ pѕ0c T9H0@P 0!> gE -2!E0P(` ,[,8@0 ὧP@U  0p7/PU ᭧0 8<,`(pP $0@TP( 0<4DCK1/Kr\HK]0,;^E f  jbԍ nNv7©^ۿ>;L:WC n C H=d=O-IM@ P"DK0 `fㄵpH P L  cU:U U`N(` cPpK &W 0p PK 5kT X Qp5k`XXpK 2/X 2/P`K`p0P [H P `D K`0X0KpCp 0HD!I< pDT4+D P`P@[Hp ͦPpU  0@4/PU ὦP @TP [0H <K DP[ HDK K0,  }P==== O-dMP@}&`1%p KP@ X1@@0H,@((L@80@@ @0  T P 1/8X P 1/XY P 1/ KCK<<T<@<=L-@k <   /</'L-@^LR.L-@K <   /</GL-@ 2 t<     /\</ %K-0M@$`$P#p 0Z 0 J S- ځg%0 7- 6[KM-0MP@pT#` 0Z 0]Uᩁ6%0 6-[KyL-@㧳l<   /T</aL-@LX LKXO-$M`@pD$vp#P)%zP  0 pP6<cX-K8:O-MPp@ GU#`$҇ 0P@  5/7,-}BKO-MPv )@#$$(K rY0K nY8K iY@K eYHK 0YPK \YxK 0@Yx 0@YPp 0@Y(` 0@Y@HK(K  0pḀx PK 0@pK0Kp`  ᨀ Y`Y0 ;6 S 0Fp(KY@Y`|R@xR LC@mR`iR LpC$ 0  {,Pb (@ 0PpK pTHKMY@JY`2C 0`:6`(K 9Y@ 6Y`)R@%R L,C$ 0m ;,(YPYxYxKYXHKX@KX8KX X XKO-MpP@ H"%"`#⢆ 0P@  5/+MAKO-M@"\"(#$$Kp   @X,`K ;X4PK 6XT 0X, 0X`!0 Xpv0 65pN 0A` XP{Q`wQ K~B$P(` 0 +, n gX 0  0l XX4K X,KX XKL-@xL.O-\MP` p'B@4 0pAX  0p;X@40pP đ ޑ `@U4 #U U uX sXKpL- P@`@0+S@B VFpGpH-M`P@@pA$ 0}4KO-eMP0<K @WX! "DK AWLK p#`Pp$U 0j@5(TK  ;g H-M@P`p11 0 pKO-oMM`TKP  0T|K 0TK _TK 0TK 0TK 0TIK 0TSK 0T]K 0TgK 0TqK 0T{K 0TK 0TK 0TK 0TK 0TK 0TK 0T 0T 0T 0T 0zT 0tT 0nTy 0hTo 0bTe 0\T[ 0VTQO 0OTG 0 HT 0BTKKIKSK]KgKqK{KKKKKKKppKpyoe[p (@@쐍Z 0 T KSzܜ P  0,@K/: 0 qP KQ|KQKzP  ,@K" 0UP KQ|KQKzP  ,@K" 09P KvQ|KvQIKzP  ,@K^! 0P KZQ|KZQSKzP    7〚P K?Q|K?Q]KfzP    7eP K$Q|K$QgKKzP   p@"=0 rqxP KQ|KQqK'zP  e P KP|KP{Kz 1K zP  I,@K]!S 0P KP|KPKyP  - cP KP|KPKyP  ,@K{ ! 0YP KP|KPKyP   ;%$P K|P|K|PKyP   !,$P KbP|KbPKyP   +P KHP|KHPoyP  P K3P|K3PZyP   4$P KP|KP@yP  ~ 8$P KO|KO&yP  d 9$hP KO|KO yP  J @ᶆgP KO|KOxP  - m:$1P KO|KOyxP  ,@K/ 0UP KO|KOoxP  ,@K! 09P KvO|KvOexP  ,@Kd  0P KZO|KZO[xP  ,@Kg  0P K>O|K>OQexP  ,@Ke  0P K"O|K"OGIxP  ,@Ka  0P KO|KO-xP  k,@KV u 0P KN|KNTKx.@&JvPKN|@KNxPpfQGdQQbQ[`Qe^Qo\QyZQXQVQTQRQPQNQKLQKJQKHQKFQKDQKBQ{K@QqK>QgK`Pi p @ 0 (P 0,0(    08P p+}@ W P 1/8U P 1/K<<L-@ 4$LL-@ 8$LL-@ 9$LL-@ @ L}L-@ :$LH-MPp@`/ 0KH-MPp@`!x 0KH-MPp@`d f 0KH-MPp@`g T 0KH-MPp@`e B 0zKH-MPp@`a 0 0hKH-MPp@`V  0VKH-P`p9P@) V :=CᰋP A 0K .j@ 0C 0C w 0.j,~@PK@ i `K A,@@ OCMCpi wK A J_0 P.h6C4Ci @`T hA ㅃ A,~@똠K ~@i ,Pq@p,` 0 B`@pK`@ik,T@ T@ {iGPeX(@!z! t!n-W,0$ hlh `x#Bo@pPK@;i~3B 0y,B@BBAAFAAJBKBKBKBKBBHKBKH   2BAFA,:~ H-HM@(`KP@pP@ p $ ` (@ @ P@@(P` P@pn@(U P 1/V P 1/Kq<q<H-HM@(`KP@$ P@` (@ @ Pp@@(P` P@p6@(U P 1/V P 1/Kq< q<H-HM@(`KP@pP@ p $ ` (@ @ P@@(P` P@p@(U P 1/V P 1/Klp<p<H-HM@(`KP@$ P@` (@ @ Pp@@(P` P@p@(U P 1/V P 1/Ko<o<H- MpP`@+ 0\& !d +04 p`P1"K :L-@  pm<     /Xm</O-\MP@` p40@, I@  0@ 0zz >*>4> g*>y@y /  m>4@l>Pg @@ @ Q@@K/fL-@㔙 k<   /k</P |/KL-@y pk<   /Xk</5pL-P @}`u 0o>pL-@L j<   /j</ F/L-@ 1 j<     /j</O-\MP$K`@  pv?,`  0? 0? 0~ =)= =f)=x@x . /~ = = f ?@ @@ v?KL-@㼘 h<   /h</x .sL-@㡘 h<   /h</]pL-P @{`(t 0o:=p/EL-@s  h<   /g<// .M- M`p@S ^<)PP  0  p`g%L _d  0p`z%00K耆::K-(M`p@ ^)P P  $0p@R%P$&d 0p` e%00K蜅:̅:O-,M`p@  q^ (P P  (0p@ ;%T(c 0p` M%00K謄::O-,M`p@  4^ (P P 0(p@  #%X(cp` 04%00K踃::H-0M`P@l`P =Y)0 >Q)0 =I)0  =`@)0( =$ p4`0 8``@@ (`p&W P 1/(V P 1/PUUKhc<c<pL-@KPP EP' .PaA 0pL L-@&(= ====L.&0H-@P=P CP1P 2P );2)z;0H=pL-@'P1PpL=P=`(V`!@U`P  ' .`J;0H-@jP!@9PP ' .P00H-@Q@ 0HpL-Pa@@ 0pLxH-MP3@P*`pp@&0 8:3KH=pL-M@PU`@&0 8KppL-@ P1P pL< P<`(Vv:(<L-@00(<L(0  0 (:pL-M@P `@o&0 7KpH-M@P`p@X&0 @D8KH-M@P`p@D&0 P08KK-pM K`@P  <a:(PK <Z:8p 0p<pp00 40P~< * 0'gc`<@ k,-: S< 㳓 $:J<@q * 0'?c 8<@<<; ;KK-HM @KPp` ;9(`K ;900  4@0`< 9  c< epe c* :;p +9; G9;p {* : @<;;KpL-@P`T d,pL'KpL-@@W%P`= M,pL'pL-M@P`+0 6KppL-M@  !R ?` `c0 62P`0 _6Kp  0 0C=4H=-c 07L-@h  !R Ϡ\0 0<0 Ly2 0 0dB=Jc 6`G=K-MPQ60p/pr 0Q2`$ +pM@ᝒ0 5@?`Ꮢ0 5@K  0 0(B=F=Yb \50H-@P$ 0H+O-MP Q0`ؐ/0 灒 ~1p@K [+&p!R  ? ႓0 pK  0 0@=TE= ` 4H-  X001S 0ϠH00<!0 H 0 0ࡄ?=>` 3DD=0H-@P$ V+ 00H50H-@P# 0HB+H-M@P`pؑ0 P5KH-M@PQ0p/pr 0Z1`^pᮑ0 P5K  0 06L>=B=^ 1M-MP`Q2p/pr 0#1p'@w0 `v5# ~*@`c0 b5K  0 0p==B=f] 0K-MPpH!RE ,a? `c0 ^0@`+0 p*55# 2*@`0 5!# *@`0 5K  0 0@<=@=1[ 4/L-@ L"H-M@P "`p )0 P,4KH-M@P m "`p )0 P4KO-$M@Rrp W WF PRPb@SB  "pW )p Y``03 I X` Q p@ - -`PXK  Y M-M@ `tpPQ" N)0 3K/M-M@ `TpP1" .)0 w3KM-M@ `6pP" )0 Y3KM-M@ `pP! (0 ;3KM-MRN@P!4(l r!`p (0P + \`up! (0P F`_p! (0P 2KK  EGV M-MRN@P!4(l u!`p) l(0P + `{pX! U(0P `epB! ?(0P 2KK  ಁT H-  X001S 0ϠH00<!0 H 0 0x3=YT \'8=H-  X001S 0ϠH00<!0 Hm 0 0u2=S &7=L-@h  !R Ϡ\0 0<0 LLP. 0 0Pt2=ER H&7=L-@h  !R Ϡ\0 0<0 'Lo 0 0+1=fR %|6=H-  X001S 0ϠH00<!0 H 0 0 P1=1Q 4%5=L-@h  !R Ϡ\0 0<0 L- 0 00=RQ $h5=L-@h  !R Ϡ\0 0<0 ^L4o 0 080= P $4=H-  X001S 0ϠH00<!0 H 0 0ࡀ/=>P #D4=L-@h  !R Ϡ\0 0<0 xL|- 0 0|$/=O "3=L-@t  !R Ϡh0 0<0 SX-Ln 0 0T.=U O X",3=L-@h  !R Ϡ\0 0<0 *L.- 0 0.-=rN !2=H-  X001S 0ϠH00<!0 H 0 0\-==M @!1=L-@h  !R Ϡ\0 0<0 L, 0 0,=^M t1=H-  X001S 0ϠH00<!0 H 0 0H,=)L , 0=0H-M@PU 7|   0t\K00H-M@P? 7|   0^\K0H=\0H-M@  !R  ?P PS0 pu,P 7^|   00\K0  0 0b+=/=BK L-@L[pL-M@ Pa`@0 0KpLL-@P 8P 4P!813,%=L-@DP 4P! 8808L$=O-TM,P`@  0p4 0p4 # 0I [ 4p@`@U0 / c0 4y2 [ 5 5KO- MP`?  0;ᩂpi@p-pl- %s0 媎KO-YMPHK `0 0`4pK 0@pW4 0@a@5\` " 2,A- u" 0 [Kp 0p4pp 04 P" 2Xh 0u Z  h 2` 03ph0@ h`@3h 0@@31Z@ 0 @3 0@33`/|pA${t V2B$st 0#Z 7zipe !hp 0   @Z 7z븐 M1될 L133oZ@` 0 1 0p`K413 3 3TZ`Lp0 ~l0 0 13K3/Z3HK3KjO}JH-P `@p} 0HK- MPp@U + #`` 0 U @0  `H00KU:K- M P`p@ 9  0`ex 0TP "D0      00KgT:O-Mp(K  $ 0P20K @ 2XK 020KK P `2먀K 0`2K0K @ `|2@ P  0`ሀ TP  X0K @XKSYK 0`T2 0`N2 0`H2Ѐ 0`A2E1  y  0` r`e 0(f 0  YrbN 0Ή U$P ?  0 ` 6  00K /K/X<&   @0 MXqyf h0P 0t1`x0@ xP@1x 0@@1x/XP 0@1( 0 @11Pz`A$Tr /0B$Lr 0 @ uX 7xA` < x`0 [X 7ex&/&/ 11IXPP 0PI1P(P 0B1$` @  0  ㈈ s 0X  i  0K.3  0ЀK.X  0_2  0`K.^1P\1xZ1X10@W| 0  02  0s.3111/1K-1Wi K R@$` 0KP00  $   P(K f.뀠K e.KW 6 K R@ $PU0  $   PX 9. 9. `W Y0@K0K0 0XK00K0 0K_,uL:+O-gMHKPp 0:0pK 010@ `  0φ=~@ ~ p_ 0 `WK 0 0K 00 0/  4 .~p`) ! .Tyd`K 0 EVi   0 1VU$@\d L.p 0X/`x0@ xp@/x 0@@/\-VP 0@/(` 0@}/n/ wpA$8p .B$0p 0ZV  7dv& p" xp 0 AV  7KvȠ -렐  -//,Vp @$0 1 0p`K,/ / .ЀVl  @ p0 :1 0,[/KY/KW/U K %Q@`  pT 0$   K  @*/HK(/KKfm>HE:O-$MpP@  Q h ` % ,P '0 p)@ 0    KC:O-\M`4p@$K -  0C)P/102m Q WL K$PK ,2.P`X c,pP 0-. 0 `&. 0 UPL`@0 (  6% $K++T _.].$K+$`KP- 0t) -K$ =$/002/$ =0H-@/H002`P ZP+0 =0H-@NP HPu+0pL-`P@ V 4Pa+pM-M`P@f  V fPF+. 0[($`\POp0 D( KM=0H-M@P 00(K0HX$H-MPh`@PPpᵄ0 ( KH,=  M-XM0@P`p 0p-pp 0- 0~S gSX-V-KH-M(@/102yP0 sP* 0'#P_P 4P`hPp50 ' KHPT=,=0H-@P 0Hw0H-@P 0HmM-`M8P@` 0`~,`` 0w,p +;*&  0YS#@ 0<'f#**?S8,@,,,KO-M@&00(",BPQ2寯 0 * A#`Epᕃ0 P't  *PP )0K$ 0 0v=| ==%% (K-XMP@eam jSp 0&0P 0`+`` 0+J  0#R; 8 0#'c)R++KM-M`@5p:PPQp 5: Pp2/ 2/P(W+`pH 0pK$=pL-@P8$`?  pLH-M`@P P( 0&9"pP6V V `pᎂ0 % KHn  u<MO" 0H-@AcP%  0HiL-@$ 2LqH-M@4P`p@[0 % c04KO-lM@g 0V%p8<`P 0P* 0 P* 3 0 {Q\Iu0$K $  p] 54PIpJ`P@0 B% c0 4( DQ * *K3:M-MP!`np@0 %`p}b@(* 0@ KO-TMp@t,`P 0P * 0*  0vP4Pp`!P@0 $ c0 4' P8* 6*KO-dMP @P   $`K -)Q'4 0  `p)p p 0) o' P)`  p() q@ 0@ @g$0  w  $`K5' 5'\P) )) K<O-dMPi `P   -$K ( '4p 0 @4)@ @ 0,)&P)p  '  0@O` 9ቀ0 `$$D0  @ $`K&4p& @O>)<)( K<O-M@0 0((`Pp@T0 #0K !(8K (`KP 0P(pK 0P(h 0 P(@ 0(;] +'ល 0sOC&T0PK<&`pK;& bO2&C,&,& SO _PP P 0O(1o %'8K& !0K &`K &1O(`P> |'0  ( $ (KA 8K%0K%`PK%ODQD/,1020  `P(p@0 "0PKp' 08`K'00%@4(h2(K0(`K.(''K$ 0 0ql*:x<<q& tH-M@P`@C0p p"`PR 0p"D`pl 0n `?  KHOL-@} X<   /@</9L-@PZ 8P 4PW8130<L-@M <   /</ L-HQ @4P, 8808L+<//L-@ .P .P -P -P l-P X-Q Q0 00 0!/  /ᩮZ7@<Q0 00 0!/  /aY7<* @/N6//H- -P$ 0Q  0 00 /\Y7$ 0Q  0 00 /  /X7//H- v-P5$ 0Q  0 00 /X7-$ 0Q  0 00 /  /WX7/ဵoF'!(ȿ!F'̿еFh' FнеFh `') FнF Fh!hB' h'(h ` FеFHxDh0 `'`` Fн<еF' `неFHxDh F Fн<oF@𤾼FEh 's (~dh F'F F'd(F1oFh'(h-F(.H0!xD JoQ@˦BBhCB? x F)F10B hCB? ~ F)F1$BhCB?z  F)F1BhCB?m  F)F1 BhCB?`  F)F1B؀hCB?S  F)F1BˀhCB?F  F)F1BhCB?9  F)F1BhCB?,  F)F1BhCB?  F)F1BhCB?  F)F1BhCB?  F)F1B}hCB?  F)F1BqhCB?  F)F1BehCB?  F)F1~BYhCB?խ  F)F1rBMhCB?ɭ  F)F1fBAhCB?  F)F1ZB5hCB?  F)F1NB)hCB?  F)F1BBhCB?  F)F16BhC!B  !F)? )?􂭄B F '2 IFyDK H I JxDyDzDh hh0 ` F'MF F'0(F0|<~<<|@ pG| pG| pGipGJzDhh5-A Bah 8 'F_I"HyDxD  F H JxDzDh Fh'FF F'(F0<N=<<iCi@ pG|@pGipG@ipGiAaFеFHxDh0 ` FO0! Fнp<еFO0!нFHxDh0 ` F!QI jyD hG`jG kGkG F4<p<ڿoF@ºlpGldFpGipGеia!G FнFB F F! F)F)l!dld F!ihi`a F) FMFj FF Q& )FP&0 FG>p]-F FjjB҆0F ̀F(ˀ0F ́F ')FvIwJyDzD hh'O O`kkBҀ ~͂Fx ')+kIkJyDzD hh'O lilBҀ fFp ')`IaJyDzD hh'&`hh`h`h`jjB(j 6hj 0$O jOb !j*jQ B ajjjQ B j0bjB`kkB(k 0O `kc k!*kP!0B!01icbkB lilBk c& lhd kkQ B 0(d!lB0F ̺PF ̹HF ̸@F@2  '&(IJyDzD hh'JFFPF FHF ̸@F F0<<<<<<<<MFHxDh0hlhhF2IyD hHhi !GFhF.d1h] FhF F0<H< FIyD h)hhFIyD hhi!FGFhF)h F FhF F0R<<L dFpGMFHF1xDFh h@F1F*F&i1*F;!h] F@F(F0*<oF1MFFF!F F)F0F!]F@F F0MFFFhF!FG(F1Fo0F!F|]M FIFyDh1hhFVIyD hlhKj)F"FGFhFQ1h F] >FhFB F0H<<IyD h1`pG<еF A #R  (! b@ FFl!dlddMFHhh`&h F`h`i(aHi1 j(b`j&bhbjfbbjbb kb(c`k&chckfcckcc lc(d`l&dhdfd]𽰵 FFl!dldd FF lldldldd-F1H F xDFIhhhi`h``h`h`h`!i`(i)aai ahiiaIF`a@FHF1F0FAF@F!j(j)baj bhjibj`bjbjbjb!kb(k)cak chkick`ckckckc!lc(l)dal dhlid`d  H<apG|@ pG| pG| pGipGݻiCٻi@ pG|@pGipG@ipGiAaFŻеFHxDh0 ` FO0! Fн<еFO0!нoF@lpGldFpGipGеia! FнFB F F!Y F)Fnl!dld FM!ihi`a Fn FMFHxDh0hlhhFIyD hhj !GFhFd1h(F] FhF F0<< FIyD h)hhFtIyD hhj!FGFhFp)h F `FhFc F0<<ldFpGMFHF1xDFh h@F>1F*F?i1*F6!h] $F@F((F0<MFFFhF!FG(F1F 0F!F]M FIFyDh1hhFIyD hhKk)F"FGFhF1h F] FhF F0?|<<IyD h1`pG:< FFl!dldd FFl!dldd FFlldldlddapGеFHxDh F Fн<oF&̽@𞽀oF1zhhGܵhGܽ^@^GhiGBPpGhiGеF 0 F@O0нB `hpGhjGBhpGhIjGhjG2BR=B`FpGhjG!B `Q pGhjO1G#Ba`FpGhRkGhkGFH%FxDh0E (F! F<F H F1xDh0(`(h`h` i(a`ihaiaia(F< FF01h`h` i(a`ihaiaia(F-FH FxD FIF@FQ&HF1F]0FAFY@FNhh`h`h`!i`(i)aai ahiiai`aiaiaiaa  $B<hpGhpGipGh`pG0pG@ipGipGipGiapGiapGapGpGpGO1!`pGO1!`pG pG pG- FFF&B@HF*Fh ` hj FGAI %.DFE0F 𽀵oF ̀O0pGеFhAj FG0O0h`hнO0pG- FFF&!B IF*Fi.D a hBk FG06  FE0F O0pGMFh `&IhP !PF hf`P %(F+O0` F]F H%xDh %  F@/O0P FB<pGMFh `OIhP !PPh``h!hP Q f)F0FldlHd F]MFH&xDh "`  F@/Jhb` hN`R ,)Fl eld`e F]<еF FнKhBhC` hJ`hS FF?(F% hP D%F% F/<<- FFF?(F% hP D%F% F.<<MF/H FxD!F"I8  hP D#IyD h!hhQ Vjci%"G hP DiC F] FF(F%B hP D0%rF%n F.)!<<MF/H FxD!F"8  hP D#IyD h!hhQ jci%"G hP DiC( F] jFFk(F% hP D%F% F.<<MF/H FxD!F"u8  hP D(#IyD h>!hhQ jci%"G hP DiC F] FF(F%n hP D\%F% F.UM <<MF/H FxD!F" 8  hP D#IyD h!hhQ kci%"G hP DiCT F] FF(F% hP D%4F%0 F.8<4<MF/H FxD!F"8  hP DT#IyD hj!hhQ Vkci%"GI hP DiC F] ,FF-(F% hP D%F% F.yd<`<@hpGF!HxDh(h ``hF!F"9 hP DiF0 `` hP DiAO2)hF %M hP D;%}F%y F.4,< FFA(p F- FHFFxDh(h0hP 0DhFIyD hhi !GFhF0FIFBF#F*hQ FhF F.<$<-F=HFFxD F ``!F"г `hXE hP 0XAQE  1a`P 0X" hP DiA")P Di2C (p F % (p hP Dr%F% F.kcl<MFHFxDh h(hP (DhFIyD hhi !GFhF(FAF2F"hQ] FhF F..h<<- F1HFFxD ``hF!F" hP 0XhABHF01a`P 0XJ!%%0!*P Di1C% F h% hP D%F% F.<- FHFFxDh(h0hP 0DhF<IyD hRhi !GFhF80FIFBF#F*hQ "FhF% F.<\<-FAHFFxDF ``!F">=YEahB#F  hP 0X`hF0`` hP 0XAah" hP Di`h"Aa`" h)P DiBCq-  F %( hP D%HF%D F.<- F3HFFxD ``hF!F"x(HE hP 0X*AahBa`ahIE hP 0XAahBa`"" hP DiC F :$ hP D$F$ F.<FHxDh(h ``hF!F"M hP DiA hP DiAO0*hQ $f hP DT$F$ F.ME<MF'HFFxD ``hF!F" hP ) DЀih j1F*FGB`` hP DiA\iAV F] $ hP D$>F$: F.*<MF)HFFxDh(h ``hF!F" hP ) DЀi F0вBȿ2F FAF~iA hP DiA`h*hQ] >$ hP D$F$ F.z<MF)H F!xDh0h ha`P Di!hF!F"H hP ) DЁiIF)F0 hP DiAiA1h F] $U hP DC$F$ F.<4<F(H!xDh(h ha`P Di!ihF!F" hP ) DЁiAF0 hP DiALiAF)h F $ hP D$0F$, F.<F HxDh(hhF!F"P hP DixhiG0 hP DiAO0*hQ D$ hP D$F$ F.h<MF#H FxD O0 (`"T hP Dih "# 0F"G  ]$i hP DW$F$ F.PH<- F,HFFxD hP Di!x!F"  !hQ !Di h]i #2FCFG@0 hP DiAQ  F $ hP D$7F$3 F-2<- F+HFFxD hP Di!!F" !hhQ !Di hi"CF2FG@0 hP DiA  F 4$ hP D$F$ F-n<MFh `&IhP !PF hf`P %(FO0` F]F H%xDh %  F@/O0P F<pGеF0 FнhQ D0еF0 F@hQ DMFh `OIhP !PPh``h!hP Q f)F0FldlHd F]MFH&xDh "`  F@/Jhb` hN`R ,)Fl eld`e F]<еF FнKhBhC` hJ`hS hP DiA!!*P Di1C F] $`h( hP D]$F$F(F$n hP D\$F$ F-UM@<MF/H FxD!F"{8  hP D#IyD h!hhQ hci%"G hP DiCV F]FF(F$ hP D$6F$2 F-<<@<- FIyD hThj !GFhF:(FAF2F"hQ]$FhF' F, <$<- F1HFFxD ``hF!F" hP 0XFHЩBHF/01a`P 0X!#V#!*P Di1C F #: hP D(#jF#f F,!<- FHFFxDh(h0hP 0DhFIyD hhj !GFhF0FIFBF#F*hQ ~FhF F,԰<ذ<-F@HFFxDF ``!F"=XEahB#FJ hP 0XR`hF0`` hP 0XSAah" hP Di<`h"Aa`" h)P DiBC-  F #{( hP Dc#F# F,\T\<- F3HFFxD ``hF!F"x(HE hP 0XAahBa`ahIE hP 0XAahBa`"" hP DiCT F # hP D#:F#6 F,L<FHxDh(h ``hF!F" hP DizA hP DiA O0*hQN# hP D#F# F,x<MF'HFFxD ``hF!F" hP ) DЀih j1F*FGB`` hP DiAiA F]#l hP DZ#F# F,SK<MF)HFFxDh(h ``hF!F"x hP ) DЀiF0вBȿ2F FAF~iAb hP DiAX`h*hQ]# hP D#@F#< F,6<MF)H F!xDh0h ha`P Di!hF!F" hP ) DЁiIF)F}0 hP DiAiA1h F]># hP D#F# F,~<F(H!xDh(h ha`P Di!hF!F" hP ) DЁiAF40 hP DiAiA)h F#^ hP DL#F# F,E=Ϋ<F HxDh(hhF!F"qP hP DixhiG0 hP DiA^O0*hQ# hP D#HF#D F,$<MF#H FxD O0 (`" hP Dih "# 0F"G  ]R" hP D"F" F,<- F,HFFxD hP Di!!F"  !hQ !Di h]i #2FCFG@0 hP DiA  F "e hP DS"F" F,LD<- F+HFFxD hP Di!t!F"i !hhQ !Di hi"CF2FG@0 hP DiAO  F " hP D"5F"1 F,*<Fh `IhP !PF hP %(F?O0! FеF HxDh "`  F@/(O0! Fн<pGMFh `IhP !P hhP Q %V(F1F.l!dldd F]𽰵F HxDh "`  F@/ hR ,)Fl!dld e F<еF Fнh hR ,S < F)FClldldlddеFA` phP Di)l# p FнеF@hhQ Diiѹ@y`hhQ DihiG0 `hhQ DiA_ Fн"!"W xpGGеFhP DG FнеFhP DG Fн-FIH FxDh hQF (RP PDkdiPFIF*F3FGHP XDiAl!hXFFFVF(F!xP XDe!F! F+]Un<<,<-FDHFxDh hYF (GP XD9IyD hFP lp-IyD hhj !GFdiPFIF*F3FGHP XDiA=!hXF~FF}F(F!P XD!F! F+F<\<<-FEHFFxDh hAF}(JP @D19IyD hFF0P lh-IyD h-hj !GFdDiQFXF2F+FGHP @DiA?!h@F FF)F(F!KP @D8!zF!u F+0(<.<֕<-FEHFFxDh hAF(JP @D9IyD hFP lh-IyD hhj !GF{diQFXF2F+FGHP @DiA !h@F LFFLF(F!P @D!F! F*<<<-FFHFxDh hYFO (KP XD;IyD hFP lp/IyD hhj !GFd jPFIF*F3F GHP XDiAu!hXFFFF(F!P XD !KF!F F*<ԓ<|<-FEHFFxDh(hAF (IP @Dj9IyD hFjP lhQ-IyD hghj !GFMdDjXFQF2F+F GHP @DiAy)h@FFFcF(F!P @Dr!F! F*jb<<J<-FEHFFxDh(hAF (IP @D9IyD hFP lh-IyD hhj !GFdDDjXFQF2F+F GHP @DiAH)h@FFFF(F!P @D!F! F*`<t<<-FDHFxDh hYF (GP XD@9IyD hUF?P lp&-IyD h<hj !GF"djPFIF*F3FGHP XDiAP!hXFFF:F(F!\P XDI!F! F*A96<L<<-F=HFxDAFP @D#Іi% FF~0F0 F=PFDTF}P @DiA=iA7@FvF F!P @D!F! F*!P @D!F!F<MF$H FxDh0h!Ft hP DiIF)Fj0 hP DiAm1h F]F^F(F! hP Do!F! F*h`<MF'HFFxD!F hP Dih k1F*FGB hP DiA| F]FF(F!* hP D!ZF!V F* b< hR ,D |O1!`pGi# h"2"#GMF"H!FFxDFh(h  hP D|2ih 22FCFG@0 hP DiA )h F ]>F F*v<MF!H!FFxDFh(h ] hP D|сihh CF 2FG@0 hP DiAL )h F ]F< F*Wڋ< h`IhR ,PpGIyD h  1pG<е F1bh`"iQ ZP!h`biQ BPi`н FIKFyD{D hh1D @ IyD h4 ` 1F F(F*<6<&<pGеF 0 Fн0hQ D 0еF 0 F@8hQ D- FHh ` FhO P !PPh``h!hP Q 1F@FHlHlHLh`)iP P(h `iiP !Pi` F MFH%FOxDh "` 0E Hh``hP (F1F HlxDaeHhl "`e4 0)`` F]"<<еF FнHxDpG`oF*в_1I""yD`#"9`L|D y[HxD%(F!(( FH!FJxDzDh(F!Ro=P<<o=oF6IyD1`ژ;oF F)IyD h1`<oF FuIyD h1`<oF@𐿿[HxDhQBA#+ѿ[pGˆ<MFkNFBIB 5F@ET4T M knFF\4"L ŝB8dFB81F!` i@ FH!xD`]?.n=- F@l FE HE ؠkNF@FT@T Nk"˸F"\@L kBfddFIE8IF!` i@ FH!xD` ?m=-FjFjEFB&HBصAMM jO QFF( i@ FY`jQF&bF( i@ FLbjfb!jA ajA j0b?oF@JzDxpFpG:t<oF"@oFIyD1`;J9zDh2!pG< `GoFGh[iG𠺀oF@ZoF BГxpE ӆE 31EP O0 oFF""`F BpG;pCCcX@J9zDh2!pG< `GoFGh[iGHoFD@oF BhpE ӆE 31EP O0 oFF""`Fa BpGpCCcX@J9zDh2!pGL< `G`G`G`G`G `G$`G(`G,`G0`G4`GɹoF@-FJJFzD  yO2+Fhi"FGF(H(J E)F0F8HxDh0FKF)F0F1HxDh0F<F0hi1F(FG0hi 1FG !F*FE@ &@ 1n >     F F &1N > F1FFF3 F)6@<Pr<B<-F !FF*FHe-xDhh" (F(FFn $  O!bFSF x v^hp0=2 3EO  pa@DF8i0hhh_GF& / x()њ  8i hhhGF_Bњ @B = p0&= p4 E " (D(QFx* x RJhB"p>0 1E ( 0 L $  $f0FF1FI !&-*Fd` 0 hE %  %`V0F0@ e@ x( 4 E@F" hHF#FF F)<-ðHFF FxDhhBFF:1FD " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! :QFBFKFM F<AA A)߿  ` @FSFBFhCF`  L F0FF &$ (Fu0@ @ 1 1B h FC.F 11 F)<-ðHFF FxDhhBFF:1F4 " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! :QFBFKF= F<AA A)߿  ` @FSFBFhCF  uL Fq0FF &$ (Fd0@ @ 11B h FCz.F 11 F)b~<-ðHFF FxDhhBFF:1F" " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! :QFBFKF+ Fz<AA A)߿  ` @FSFBFhCF  dL F`0FF &$ (FS0@ @ 11B h FCh.F 11 F)>|<-ðHFF FxDhhBFF:1F " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! :QFBFKF Fj<AA A)߿  ` @FSFBF^hCF`  TL FP0FF &$ (FC0@ @ 11B h FCX.F 11 F)z<-ðHFF FxDhhBFF:1F " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0F~0 ! A0F"p08F F} ! :QFBFKF  FZ<AA A)߿  ` @FSFBFhCF`  DL F@0FF &$ (F30@ @ 11B h FCH.F 11 F)w<-ðHFF FxDhhBFF:1F " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0O%.L40 [FCCDB#)OP OK "0Fn0 ! A0F"`08F Fm ! :QFBFKF FJ<AA A)߿  ` @FSFBFhCF  3L F/0FF &$ (F"0@ @ 00B h FC8.F 00 F(u<-ǰHFF>xD F)FhhF "A"2*ѝ8 ! A"O0F8q *  F  ++E *L F0FF &$XF0&SO .O<8 SFC+DB")OP OJ"(FU8 ! A(F"G8 F FU, 1  >AFJF+F F.H+ hH*( A)߿  ` (F2F h3F  L F0FE %$XF0@ 0h@0`00F h FG-F0~0| F(ts<-ǰHFF>xD F)FhhF "A"2*ѝ8 ! A"O0F~8q *  F  ++E *L F0FF &$XFp0&SO .O<8 SFC+DB")OP OJ"(F58 ! A(F"'8 F F5, 1  >AFJF+Fo FH+ hH*( A)߿  ` (F2FYA h3F  L F0FE %$XF0@ 0h@0`0x0tF h FG-F0^0\ F(Tzq<-ǰHFF>xD F)FhhF "A"2*ѝ8 ! A"O0F^8q *  F  ++E *L F_0FF &$XFP0&SO .O<8 SFC+DB")OP OJ"(F8 ! A(F"8 F F, 1  >AFJF+FO FH+ hH*( A)߿  ` (F2F}A h3F  L F0FE %$XF0@ 0h@0`0X0TF h FG-F0>0< F(4:o<-ðH @ FFxD!B I!1)FHxDhIhyD hj:G " A"2*ѝ0 ! A "O 0F$0q8 , F, L F+0FF &$5(F0N%.K40 SFCCDB#)OP OJ "0F0 ! A0F"08F F! ! :!BF[Fr F  "0F_p-JzDFh0F( h`L F0FF &$ (F0@ ѸhFh@` 0400B h FC.F FF 00 F( l<,[<2m<m- E.xmhu@E  h +E0``PB`BQ`-!B+! p, &.@6B E ,)) )ьBO0,H`xDh]0 EЮ( 0(I yD` h ]lj<0j<MFHFxDh(h`FF0FAFF F)h0F]@pGHF F(F(F>i<M}D(y[(h, F+( IyDAp")FFWF F~(F(T=7J9zDh2!pGLi< `G`G`G`G`G `G$`G(`G,`G0`G4`GûoF@}-FJJFzD  yO2+Fhi"FGF(H(J E)F0F8HxDh0FEF)F0F~1HxDh0F6F0hi1F(FG0hi 1FG !F*FE@ &@ / >     F F & > FFF- F(04h<h<Bh<-F !FF)FHe-xDhh" (F(FFh $  O!bFSF x v^hp0=2 3EO  ma@F8i(hhiAFGF& - x('њ P+8i hhiGFEњ @B = p0&= p4 E "4 (D(QFx* x RJhB"p>0 1E ( 0 L $  $f0FF1FI !&-*Fg` 0 hE %  %`V0F0@ e@ x( 4 E@F" hHF#FF F'f<-װHFF FxDhhVFF<1F " A"2*ѝ0 ! A "O 0F0q8F, , L FP0FF &$5(FC0L%.I40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! <QFBFKF& F@AA A)߿  ` @FSFBFhCF`  L F0FF &$ (F0@ @ / / V h FW.F // F'zd<-װHFF FxDhhVFF<1F " A"2*ѝ0 ! A "O 0F0q8F, , L FD0FF &$5(F70L%.I40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! <QFBFKF F@AA A)߿  ` @FSFBFhCF  zL F0FF &$ (F0@ @ //V h FW~.F // F'bb<-װHFF FxDhhVFF<1F " A"2*ѝ0 ! A "O 0F0q8F, , L F80FF &$5(F+0L%.I40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! <QFBFKF F@AA A)߿  ` @FSFBF%hCF  oL F0FF &$ (F0@ @ //V h FWt.F // F'J`<-װHFF FxDhhVFF<1F| " A"2*ѝ0 ! A "O 0F0q8F, , L F,0FF &$5(F0L%.I40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! <QFBFKF F@AA A)߿  ` @FSFBFmhCF`  cL F0FF &$ (F0@ @ //V h FWh.F // F'2^<-װHFF FxDhhVFF<1Fp " A"2*ѝ0 ! A "O 0F0q8F, , L F 0FF &$5(F0L%.I40 [FCCDB#)OP OK "0F0 ! A0F"08F F ! <QFBFKF F@AA A)߿  ` @FSFBFhCF` WL F0FF &$ (F0@ @ //V h FW\.F // F'\<-װHFF FxDhhVFF<1Fd " A"2*ѝ0 ! A "O 0F0q8F, , L F0FF &$5(F0L%.I40 [FCCDB#)OP OK "0F0 ! A0F"t08F F ! <QFBFKF F@AA A)߿  ` @FSFBFhCF JL F0FF &$ (F0@ @ //V h FWN.F // F'Z<-߰HFF>xD F)Fhh^J "A"2*ѝ8 ! A"O0F8q *  F  ++E *L F0FF &$XF0&PO .L<8 SFC+DB")OP OJ"(Fo8 ! A(F"a8 F F! 1  >AFJF+F FD+ hH*( A)߿  ` (F2F. h3F  /L Fv0FE %$XFg0@ 0h@0`//^ h F_4-F// F'W<-߰HFF>xD F)Fhh^. "A"2*ѝ8 ! A"O0F8q *  F  ++E *L F0FF &$XF0&PO .L<8 SFC+DB")OP OJ"(FS8 ! A(F"E8 F F! 1  >AFJF+F FzD+ hH*( A)߿  ` (F2FzA h3F  L FZ0FE %$XFK0@ 0h@0`..^ h F_-F..| F&uU<-߰HFF>xD F)Fhh^ "A"2*ѝ8 ! A"O0F8q *  F  ++E *L F0FF &$XF0&PO .L<8 SFC+DB")OP OJ"(F78 ! A(F")8 F F! 1  >AFJF+F F^D+ hH*( A)߿  ` (F2FA h3F  L F>0FE %$XF/0@ 0h@0`.|.z^ h F_-F.d.` F&YzS<-װH @ FFxD!V I!1)F%HxDh IhyD hkHxDiFxDhvHxD hh0F FrHxDh0F FhYFBiG A)P@F-)+) hi FGJ pF(0x0(px@ x( hi F0!GJ p hqxi FG6J pVE Ъ1F xx;)BiXFGFO%+AH]EOAAHB85 h1xi FG6J pVEjBdCxx B hj FAFRF+FG* dhVEj`-N!h F-< F%5D<B3<@E<-G@<0 GDF?HxD=IG$ G, % G0 yDSh "l` GHܥFFh[F F@%& FRF1FFh,00xF<QF@F842F+F FYFW< W2W@ )FWD WHW$ QF>FW<  F%B<-G<<,G@F@HxD>IG$ '( % G, yDSh"GD@% F(F F1FCF& FRF1FFh008F8QF@F9402F+F FYFW8 1W 2W< )FW@  WDW$ QFFW8  F%A<-G@<0GDF>HxD6=<-FHF=iFxDHxD h(F FHxDh(F FhBiG 0F1x-)+) hi FGJ pBF F(.ݘFF0()јFF@ x(" hi F0!GJ p hi FGFFJ p~5x0 (6BӝA)oаE pAF xx;)Bh iGFO %- AH]EO AAHB85 hi FG  J pE  B'Cxx B5x(Fr(?6BӇ h0j FAF2FGD 1x.) hi FG6J pB hhG6J p h0j F1FGDB -  F- F% =<^+<Z=<--[HFFFxDWI% % RhyD0 JF,{F,J !9F(i |cF0 & SF  F, FMf FZF1F:FDEh^ˀF(FO YFPFX 2F+F FIF$U 2)FHF@F$"%)h F&F F+F@FF F%$Z:< -F-HhxDhh G%F F!%F FJF)FFIF0FHxDh0F FY*F3Fj@F DAFG FE21FhQVF F%8<&<J9zDh2!pG8< G`G`G`G`G `G$`G(`GjoFf@$- F7IhyDy hi!FG QGJ F@FA*HxDh@F FC0h-1F iiG0F5F T)h F00F$5HF1FB F FF F%7<7<-G<<, G@FiFxDhwHxD hh0F FsHxDh0F FhYFBiG A)P@F-)+) hj FG  `F(0x0(px@ x( hj F0!G  ` hqxj FG6  `VE Ъ1F xx;)BiXFGFO%+AH]EOAHB85 h1xj FG6  `VEBdhhC B  hk FAFRF+FG dhVE`,!h F, F$yz5<5<5<-F3H&,xDGFZF ȿ(ۅ h*Fk FGB/.h mF(F1FG h k) F2FGFhFEѨ (ۅ hQF*Fk FGB $ FFhF F$3<-G@<0 GDF=HxD;IG$ G, % G0 yDSh "B` GHܥFFh[F F@%U& FRF1FzFF<QF@F842F+F FYF5W< W2W@ )FWD #WHW$ QFFW< y F$|2<0 -G<<,G@F@HxD>IG$ '( % G, yDSh"GD@% FF F1FCF& FRF1FFT00F8QF@F402F+F FYFW8  W 2W< )FW@ WDW$ QFFW8  F$1<H-G@<0GDFiFxDHxD h0F )FHxDh0F "FhBiG )x-)+)*F hj FG  j`F F(.ݘFF0()јFF@ x(" hj F0!G  ` hj FGFF  `~5x0 (6BӝA)oаE pAF xx;)Bh iGFO %- AH]EO AHB85 hj FG   `E B+h)hE BF 5xq(F(?6BӇ h0k FAF2FG0 1x.) hj FG6 0`B hhG6 0` hk F1FGB ,^  F,J F$B-<-<.<--а^HFFFxDZIO % RhyD0dJ F,F,J !F(h |F0 F r F, FOf FZF1FFLEFFO  YFPF 2F+F FAF' 2)F<FHF~|O)h FP&F FFHFZVF F$y+< -F-HhxDhh2 G%-F F!%F FJF)FFIF0F6HxDh0F F8*F3Fk@F AFGFE1F2hQ3F F$)<Z)<J9zDh821`pGD)<hhG`G`G`G`G `GM~i A$@ AG]-H FFFxDhh0FHxDh0F ^F O .@Հ"CjHFG%(#xiEFF  E€ @FSj"GE(F0.Jxi B @F xSj"G3F>(! FhHFGFhHFGB F  \ X FyiB#Ж  )ɲ!0FF#hNjhF!FRFG  FFF.~i^F FmL Ft0FE %$PFe0O e F[A) ѳFyiE#L FF0FF &$?5PF60F@ -F L F#0FE %$PF0@ @ h F 0-F F$.(<v<zoFv@4 pGMLN|D%hF N,hiF*hQ]M:%S%H:%%<- FFPFFIiGxB-YP1FCF FJFi -FHFxDh hF0F HxDh0F F (FCF"hQF F#$<D<MFPFF hGF"0F)F"F( !$^!$]-FHFxDh hF0FHxDh0F aF (FCF"hQ.F F#4$<|<MFPFFIhGF"s0F)F"FG !$ !$d]-FHFxDh hF0FCHxDh0F FC (FCF"hQF+ F#.h#<<MFSF!F!F*F)xI D(`d(lplp0`]-FHFxDFhFh (FHxDh(F FA8(d C9lsl{l~lllllllllllllllllC9MMll9lllWlllWll".XFXF XFXFSF%XFSF@iHhIfJD 03cHdI/XFXFyXFSoQHM!h$]XFAF_IHII MXFPi XF"IXFPhGxBhhC-r0-XF)XFXFq+H)FxD xp 1FPXF#F hQ RXF1F#FEiXFGXFvF F#%H:%M:%S%Y-%m-%d"<<66MFSF!F!F*F)hB*0`A(`]MFSF!F!F*F)h(0`A(`]MFSF!F!F*F)hB *0`A(`]MFSF!F!F*F)h0`A(`]MFSF!F!F*F)h (80`A(`]MFSF!F!F*Fa)h;(0`A(`]-FFFO   0h0hP00hD $5(F0%,0hA)0hP00hD  0`$(F0@ @,MFPFFhGFx @`h!{ J"ihBh@`h"0F)F"F )( ) ( ]MFSF!F!F*F)h<(0`A(`]MFSF!F!F*F)h(0`A(`]MFSF!F!F*Fl)xI\lp0`]MhFFFP-00hD  0`$e(F0F@ $@3%0hh !h"Kj FG%( 0h0hx0 0hD @ 0`$U(F0@ ,@]-FhFF FP00hD  0`$e(F0F@ $@%0hA) !@ @O PF"CjHFGF0hy !@" CjHFGF0he @0hHh0 0hOQO  O0`0 ](FRF0h1 FI !%ۑ?A)ڤP800hD  0`$](F)0@ ,?0h@0`J9zDh821`pG<hhG`G`G`G`G `GM~i A$@ AG]-H FFFxDhh0FTHxDh0F FR O @̀0h")hFCk0FG%(!E0h"O Ck0FGE(F0nyiB2hh0FSk"GFb0h! h0FGpE#0h!h0FG(ѥ FF0hi0FGF0hi0FGE2 FHF FL F0FE %$XF0,O M FzF0h!h0FG( PFFhMjhF!FZF GFE'0EFT FI0FOPO$?=XF70F@ 6 L F#0FE %$XF0@ @ h F -FE F#H<<0oF,@ pG-FHFxDF "Fh0hI (FyD CF# FQFJF 2hQ <e5- FFPFFIiGxhP?F-SJFCF F1Fi -FHFxDh hF0FHxDh0F sF (FCF"hQ@F F#X<d<MFPFF hGF"0F)F"F_( !$ !$v]-FHFxDh hF0FWHxDh0F FW (FCF"hQF? F#B<<MFPFFIhGF"s0F)F"F !# !$]-FHFxDh hF0FHxDh0F F (FCF"hQvF F"<<MFSF!F!F*F)xI D(`d(lplp0`]-FHFhxD  Fh h `PFFHxDhPF AFA8(g D9ovoyo|oooooooooooooooooD9OOoo9oooZoooZoo0;Fh (F3Fh (F3Fh  (F3F h(F2F%ѻh(F2FhFh@`rIyDCrIyD@h (F3Fh (F3Fh (F3FibHF2FQFxDF(Fx@x@ dFhYFoh (FAF3FiTIyDPF "z U(FPih (F3F&P(FPhG2FxFPo`F-^hhpF/h (F3F(h (F3Fh (F3Fk&IPF,"yD" ,h2FYF(F"hQ͸h (F3F(h2FYFFih(FGh (F3F^F+ F".<<&a5@a5jw6x6`5MFSF!F!F*F)hB*0`A(`]MFSF!F!F*F)h(0`A(`]MFSF!F!F*F)hB *0`A(`]MFSF!F!F*F)h0`A(`]MFSF!F!F*F)h (80`A(`]MFSF!F!F*F`)h;(0`A(`]-FFFO 0h0hP00hD $5(F0 %\0hF!hPFG(0hP00hD  0`$(F0@ @,MFPFFhGFx @`h!{ J"ihBh@`h"0F)F"F )( ) ( ]MFSF!F!F*F)h<(0`A(`]MFSF!F!F*F)h(0`A(`]MFSF!F!F*Fl)xI\lp0`]MhFFFP00hD  0`$e(F0F@ $@3%0hhF h"Ck FG%( 0h0hx0 0hD @ 0`$U(F0@ ,@]-FhFF( 0E  % XF0F@ %h@lO F h@!2Fh FG(Y h1F"hCk FGFe h1F"=Ck FGFX @PZ0 OQO  O0  XF@F1FI !O -ۑ,F h@!2Fh FG(h@`O HF`0D  $ XF0@ ,h@`FH:xDh802`  HxDhT0` ` FF F(F"& < <-F]H FxD F !"#"`A# 3+ 1Bq"#"`@# 3+ 0Bv "`A"2* 1B y!yD!1|)x |!|D!1)y !D!1)z !D!1))F F F&ʃFFHxDhPFGHFG@FG0FGv%p* =Ou`*x =-Ѡ%`*r = F XF"c <V <FH:xDh802`  HxDhT0` ` FF F-(F"< < <-F]H FxD F ~!"#"`A# 3+ 1Bq"#"`@# 3+ 0Bv "`A"2* 1B y!yD!1|)x |!|D!1)y !D!1)z !D!1))F F F<ɃFFHxDhPFGHFG@FG0FGv%p* =Ou`* =-Ѡ%`* = F XF"y <<FHxDhpGpGpGpGOu`*b =Ou`*X =-Ѭ%`*R =- F@/<MFHxDhpGpGpGpGu&*( >Ou`* =-Ѭ%`* =- F]@𴾬< 0еL!sF*2[\%+1#F*2BsF*2 D[xy+d+Om+Y+@1sF*2[\%+1#F*2B#F*2BsF*2 D[xd+πm+@1sF*2[\%+1#F*2B BBՀ @xd(@̀ н1sF*2[\%+1#F*2B#F*2BsF*2 D[xm+@𦀡 qF*aD y%)  #F*2 B B1qF*aDIyy)  @yY(u н1sF*2[\%+1#F*2B#F*2BZsF*2 D[xd+Qѡ qF*aD y%)  #F*2 B B13qF*aDIyy)  @yY(" н1sF*2[\%+1#F*2B BB @xm( н н0pG0pG0pG0pGppGppGppGppGppGppGppGppGppGppGFH:xDh802`  HxDhT0` ` FF Fe(F!tV<H<-F]H FxD F b!"#"`A# 3+ 1Bq"#"`@# 3+ 0Bv "`A"2* 1B y!yD!1|)x |!|D!1)y !D!1)z !D!1))F% FU* Ft΃FFHxDhPFGHFG@FG0FGv%p =Ou` =-Ѡ%` = F DXF!~<<FH:xDh802`  HxDhT0` ` FF F{(F!<t<-F]H FxD F !"#"`A# 3+ 1Bq"#"`@# 3+ 0Bv "`A"2* 1B y!yD!1|)x |!|D!1)y !D!1)z !D!1))Fa Fk@ F̓F0FHxDhPFGHFG@FG0FGv%p =Ou` =-Ѡ%` = F ZXF!<&<FHxDhpGpGpGpGOu`v =Ou`m =-Ѭ%`f =- $ F@}<MFHxDhpGpGpGpGu&= >Ou`4 =-Ѭ%`- =- FF]@P< 0е~OQ ! rF+"R! %*1bF+ BrF+"Rhy*d*8m*]Y* rF+"h%*1dF+@BbF+ 2rF+"hd*\m*~rF+"h%*1dF+@BbF+ 2ÀrF+"hm*{зrF+"h%*1dF+@BbF+ 2rF+"hd*rF+"i%*1dF+@ B 2u @im(m нrF+"i%*1dF+@ B 2Q @id(I нrF+"i%*1dF+@ B 2-rF+"Riy* @iY( нrF+"i%*1dF+@ B 2 нrF+"Riy* @iY( н0pG0pG0pG0pGppGppGppGppGppGppGppGppGppGppGF H9xDh0I`yD h ` FF F(F!;;-FNHFxDhh(FIHxDh(FLFG0h"Cj0FG%(  E>0h"Cj0FGO(FE- E=0h"Cj0FGЙXF0FO F(F%FhhhFYF#GF0h"Ck0FGO(FE- E=0h"Ck0FGXF0FO F(F%FhhhFYF#GF;F H:xDh0|HxDh0 ` FF F7(F F;;еF0H F@%еF0= F@ڼJ9zDh2!pG;hhGh iGoF hRiGoF hiGoF hiGoF hjGhIjGhjGhjG帀oF@ pG pG!"`*pG@"2!"`*pG@"2!"`*pG@"2!BR`ppG pGHpGHpGJ9zDh2!pG;hhGh iGoF hRiGoF hiGoF hiGoF hjGhIjGhjGhjGooFk@) pG pG!"`*pG@"2!"`*pG@"2!"`*pG@"2!BR`ppG pGHpGHpGJ9zDh2!pG;hhGh iGoF hRiGoF hiGoF hiGoF hjGhIjGhjGhjGoF@O0pGO0pG!"`*pG@"2!"`*pG@"2!"`*pG@"2瀵oF!-"`! pGHpGHpGJ9zDh2!pG;hhGh iGoF hRiGoF hiGoF hiGoF hjGhIjGhjGhjGoF{@9O0pGO0pG!"`*pG@"2!"`*pG@"2!"`*pG@"2瀵oF!-"`!] pGHpGHpG-F*H:FxDh 32H "D"2* FI"D"2 * %FE$ "D"2 * &FF0 "D"2* F FF HxD0FG(FGHFG@FG FPF ;>;MFfH FxD vFF0Fnii 0F  0pi  0F  0pi M)i0FG)Fc.8)j$8' (FHF)F>JzD!$Fhh!@!@1)4IyD$/(ij0.IyD01F@+.*0@" -/,0D1F" (J U  ]F(8F ' F^0FF($F - F t;<;-F-H:FxDh 32H "D"2* FI"D"2 * %FE$ "D"2 * &FF0 "D"2*xhJ FF FF HxD0FG(FGHFG@FG FPF |;;MFHI%FxDyDhh0E 0G$GG(FG F]@y;;MFHI%FxDyDhh0E 0G$GG(FG FW]@h;6;zpG@zpGoF 10oF1*oF$1$oF01kpGlpG@lpG-F*H:FxDh 32H "D"2* FI"D"2 * %FE$ "D"2 * &FF0 "D"2* F FF HxD0FG(FGHFG@FG FPF ;";MFfH FxD hFF0F`ii 0F ~ 0pi  0F t 0pi ?h0F9(Fc48)j$*' (F:F)F|>JzD!$Fhh!@!@1)4IyD$5(ij0.IyD01F21400@" 3520D1F" (< G  ]F(*F  F^0FF(F  F X; -F-H:FxDh 32H "D"2* FI"D"2 * %FE$ "D"2 * &FF0 "D"2*xhJ FF FF HxD0FG(FGHFG@FG FPF d;;MFHI%FxDyDhh0E 0G$GG(FG F]@k;f;MFHI%FxDyDhh0E 0G$GG(FG FI]@P;;zpG@zpGoF 1"oF1oF$1oF01kpGlpG@lpG-F+H:FxDh 32H"D"2* FI"D"2 * %FE( "D"2 * &FF4 "D"2* F FF HxD0FG(FGHFG@F( FPF ;;-FH FxDl u(pVF~F0FNii  F O0 `i  F O0 `i , )i,F d"PFHF0F`  @FQF 1)F@.(A )jF d"PFF0F`  (QF '  FF!F3bJzD!$Fhh!@!@1)YIyD (/ ijF d"PFF0F`F  4QF GIyD 4AF*+.*0 D" -/,0 HAF"  lmZ(HxD(HxD(HxDF'F'-+FV0FF&F0F>F0F0Ff0F(FNF Fz8;ZD84R74J-F.H:FxDh 32H"D"2* FI"D"2 * %FE( "D"2 * &FF4 "D"2*xhJ FFU FF HxD0FG(FGHFG@F' FPF <;~;MFHI%FxDyDhh0E 4G(GG(F' F]@Ҹp;>;MFHI%FxDyDhh0E 4G(GG(F' F]@l$;;hpGhpGoF1oF1oF(1oF41lpG@lpGlpG-F+H:FxDh 32H"D"2* FI"D"2 * %FE( "D"2 * &FF4 "D"2* F FF HxD0FG(FGHFG@F'F F,PF;;;-FH FxDl (pFF0Fii  F O0 `i  F O0 `i  hF d"PFF0F`  @FQF (F@4(A )jhF d"PFF0FZ`  (QF n'  FXF!FbJzD!$Fhh!@!@1)'YIyD (5 ijF d"PF8F0F`F  4QF $GIyD 4AF1400 D" 3520 HAF"   Mlm(HxDF(HxDB(HxD>F' F'-+FV0F&F0FF0FFf0FFF F;^*34"24-F.H:FxDh 32H"D"2* FI"D"2 * %FE( "D"2 * &FF4 "D"2*xhJ FFU FF HxD0FG(FGHFG@F'~ F dPFs;N;MFHI%FxDyDhh0E 4G(GG(F'X F]@ :D;;MFHI%FxDyDhh0E 4G(GG(F'2 F ]@Թ;;hpGhpGoF1oF1FoF(1@oF41:lpG@lpGlpGJ9zDh2!pGt;pG `G`G սoF @-ǰzHFzJ-xDhzDFh F 1FqHxDh j! #Fqhd  #dIF2  BF(\ _HQFxD xp hj  FQF+FG c(0f̀F(w@FO#-!:i &x#3 +\B+DcFY(4\E>I#pyD (AѸ@F P0 D  $%HF0@ @  !  GF FG,HxD!cF @F F -F !  G(FV;&;; ypG- }FH FIxDyDFhF# hh(&!$p# @#3+!#F#3+!#D#3+!#B#3+ 8 !#I#3+  0' d HpFaFaih`p O hp ǂ`0F  &5(F0&%.@' (n@ɀ&`0D  $5(Fo0$%,@cF@(xi_h!@!ԝx H_B@Ȁ.ŀ(€#B%$#$$`&hBѸi ihB `6 (@𸀝( )@𯀪I @@ H X0QXB(Ӏ)bFX ɲFxB@m_A)6yih .HFz`0F  &5(F0&%.@A)yih HFDD;;~$B #B%$##$$` (ڀ(ag0ZD Xh FF'SD<+)FSCDsE О`.yih&`8@F fB@׀fND H FxB@ $e(F0F@ `@(`,@^%B@S (O`0D  $e(F0F@ `@(,,@*%A)!yih @@ hB i F hJ`p 8 iih hB@X FxB@nXA) mH FxB@ʀR8i!pHA) F Z FFE4xxB 63F-h  FQDE#`!0D  $5(F0 %DB hhH  FD@EZ  88i!p(B &O  @B4X0D $e(F0F@ `@(" %AF]B6$!B.  0h$Fh@`#HxDhGGGGG%!%&G h F }$ F HxDhGGGGG%!%&G F;>;F F)F 6HJxDzDh Fh=F F (F8;:;-YHFYJ xDhzDFh & !FPHxDhT! Fahd eAF2 ZFH>i0x 0h!pq` @(hi(F-!GF0F(hi(F0!G #QxB3B0FF P0 D  $%@F0@ @ 8 !  G& F',F F  !  G F *;;b;-F FI(yD h hHxDhFFhj(FG0`(h)Fj0FG )HxDhFFhj(FG0`(h)Fj0FG1 =$p@ e@0F !F!1)&(h)Fi0FG1 =$p@ 7@0F !F!1)&z(h)Fi0FG= I$p@ @0F !F!1)&L(hh(FGp(hi(FGhp)F(hBi FG= I$p@ @0F !F!1)&(hh(FGp(hi(FGhp)F(hBi FG1 =&p` ` F !D!1)&(h)Fi FG1 =&p` g` F !D!1)&(h)Fi FG! -&p` 9` F !D!1)&p` ` F !D!1)&^(hAj(FGi` h˪;x;H;-FhFIF BD!@$O4HxD!F XFرVE(`)h(`jhFG(h J zDDhj`(h D [;,;-FhF!IF BD!@$O4HxD!F XFVE(`)h(`jhFG(hJ zDhj`$(hD 2;;MxtFlԳB F.h@EɬBxm.uF  .hBѠ 1.ȿ  PB(h8B `]J9zDh2!pG<;pG `G`G -oF )@ -}zHFzJ6xDhzDFh 1F rHxDh ! 'Fqhp  'dIF2 BF(] `HQFxD xp hk(  FQF+FG  !ˀF(w@FO'-!:i( &h#3(+XB+DcFY,4\E=I#pyD< (BѸ @FtP@0D  $&HF00@ @  p !  G F },HxDv F @F, IF 6F ? !  G(F<4;;;~#-}FHFIxDyD hF F h#h*(!&p% " @#3+!#F#3+!#D#3+!#E#3+!#B#3+#0)$dQpFaFdi#ih`00 hp (  EF + HQ0F & & XF< 0.O .@)\(j+@&`0D  $XF 0,O ,@ڀFhPF@!BFGhBѸi ih `6!#HE@.(%B'&%.&&`&+ (@𻀝( )@𲀙I @@ +P `0QXB_(I)܁F` FhB@t+BwFhPF!G(N^F``0F  &XFN0.O .@ AFhPF!G((F;;. i&B %B'&%|&i &`(S(ր0΀D Fp0 5FF)])D (W5p02Fa "FB *hhPF!G(ѝp0F@@ Fb( F ӀbF`F04E h!hBeF5p0H FB$`0D  $XFq0 O 4f)hB pH  F Bh/hIP FhB0 3 $ XF-0F@ `@(,@O $B@(P` 0D  $ XF0F@ `@(,@̀O FhPF@!G( hB i F h ``8i ihhB}` FhB.`A) P FhBo8i!pPA) F @ !8ip; (F &O  x @B7X^0D $ XFM0F@ `@(#O < xAF hQ&B6!&!B-  ((h$@(`%HxDhGGGG %h'!'(G h F }$F F HxDhGGGG %6'!'(G F( $;;-ZHFZJxDhzDFh r !FQHxDh ! #Fahp  #eAF2  ZFP>i0x 0ph!` p`#@(hj(F-!GF0F(hj(F0!G #hB3B0FF Pa0 D  $%@FQ0@ @ !  Gr Fs,xF F n !  G Fkc;;;-F FIF(yD h hHxDhFFhj(FG0`(h)Fj0FG!@F)HxDhFFhj(FG0`(h)Fj0FG4!@F>!` @F!`0F !F!1)(h)Fi0FG4!HF>!` @F!`0F !F!1)(h)Fi0FG>!HFH!` [HF!`0F !F!1)c(hh(FG `(hi(FGh`)F(hBi FG= I!` !HF!`0F !F!1))(hh(FG `(hi(FGh`)F(hBi FG2 >&p` ` F !D!1)%*(h)Fi FG3!PF=&p` ` F !D!1)%(h)Fi FG#!PF-!` PF!` F !D!1)!` jPF!` F !D!1)r(hAj(FGi` h(Z;4;;-FhF!IF BD!@$O4HxD!F XF&VE(`)h(`jhFG(hJ zDhj`$(hD ?j;Ȫ;J9zDh2!pG;pG   GܵhGн oF @ --FHFd!xDJqXzD$8d(%&FJ%zD$&h$.FF(F%&?#FVHxDh#kh$j G",PF,4$ x-9N & x ! "K! 1) h "!"I! 1)"!"E! 1)  !#1FS%T DEݝh X0PYB2 h X0PYDDe(,F(`"FF "F&ch(*DR % PFD2hQF .F,0F.HxDhGGG# , F(Fq@Fr|%& D B @F VFF0FHxDhGGGF#  F;];?Z;;-FIFyD(HxDhFAFhfj FG(`mF h!Fj(FGC OHxDhF&Fhj FG(`mF h!Fj(FGF Rj FG(`mF h!Fi(FGR ^j FG(`mF h!Fi(FG@ƀ &p` `(F !E!1):&p` `(F !E!1)Ѣ&p` `(F !E!1)hF% hh FGhp hi FGhmFp!F hBi(FG &p` l`(F !E!1)hF% hmF!Fi(FG &p` >`(F !E!1)ф&p` `(F !E!1)hF%b hh FGhp hi FGhmFp!F hBi(FG &p` `(F !E!1)hF%( hmF!Fi(FG &p` `(F !E!1)hF$ hAj FGi`x;;;- LF Fi&`pyj`H](>T8ihi !G J 0pjBhxB(*䀸j+hF  D;;B"xahQ)ǀ(h FxQpxi(  CXF0B Ґ)ۚhɲ!IԼ DF! 9$ 1, F (FW0 @F m%& u s qF VFF0F  $F$  F ;;-FIFyD(HxDhFuFhvj FG(`mF h!Fj(FGG!HFQHxDhFYFh.j FG(`mF h!Fj(FGJ!HFTj FG(`mF h!Fi(FGV!HF`j FG(`mF h!Fi(FG@̀!HF!` HF!`(F !E!1)<!` HF!`(F !E!1)Ѧ!` HF!`(F !E!1)hF hh FGh` hi FGhmF`!F hBi(FG &p` `(F !E!1)hF$ hmF!Fi(FG!PF!` jPF!`(F !E!1)щ!` KHF!`(F !E!1)hF S hh FGh` hi FGhmF`!F hBi(FG &p` `(F !E!1)hF$R hmF!Fi(FG!PF!` PF!`(F !^;E!1)hF hAj FGi`4;;-jFF$&`p ( ?U8ihj !G$  `jxBhJ)*္j( Fh`F"@B B "xahQ)(h Fh`xi@(  F  hE 8i hh@!G$(8k(/UFF  Y `Eغ8ihj0!G$ 1A 1 ڪFiA EО Q(F x8ihj0!G $`6O1# - B9jP0`` rB) O F\)O1FF&FY-+0s*`EiBF!hh@Bj6."x`hP()h` Fo0F ; +( (- }H"FFxDFF FHxDh F9hF$FxVQeh(*h1Fj(F-!GE % p DK @0( ` !H!1) !D!1) 4!!"#@)FRhLxOP Eݝ` P0P Y B2 ` P0P YDDe( Ӏ.FuF(OдFFF$F h hkh !( F #  0F2h1F XF (  #" 1h F }> FFFv e b#" F;;J9zDh2!pG;hhGܵhGܽhRiG YoF U@ O0pGoFh 6pGJ9zDh2!pGX;hhGܵhGܽhRiG 'oF #@ O0pGoFh ^pGI:yD h1pG;I:yD h1pG; oF @ I:yD h1pG;I:yD h1pG; ฀oF @ I:yD h1pG;I:yD h1pGt; ¸oF @ |oFIyD h1`J;MF*H F*IxDyDhh1h0QAp)F"R( 1h@F]* (F@FhF)F JzDhF!% FXX!@!P1)F#vFhF#rF@F U(Fd;,;zoF_sqFIyD h1`Z; ToF P@ I:yD h1pG<;I:yD h1pG(; oF @ лI:yD h1pG;I:yD h1pG; oF @ -FH9xD0!%IFI_yDUHF" HNxDh~D`h1F0AM` FH1F%xDh0AM` FHIxDJyDhzDF0A( sR FH1F%xDh0A M` FH1FxDh0A(M` F 8PF!(F F)FH1F%xDh0A0M` FH1FxDh0A8M` FH!xD@F(F F)F X!(F F)FH1F%xDh0A@M` FH1FxDh0AHM` FH1F%xDh0APM` F"H1FxDh0AXM` F)}H1F%xDh0A`M` F/xH1FxDh0AhM` F6sH%xDh0Fpu` F1FI`yD h(` F)F_:HAF%xDh0A(M` Fe5HxDh0H0P FAFk FF-HxDFh bFFFHF#p F S(Fb^:Ҡ;z<;\;4<6<;*;;;<;֟;Ɵ;;̟;;;;Z<;;;r;;Ξ;ž;;;Ԟ;Ğ;<F )` F Fbh `=ahb` FF F(FFH FxDhoF(F!F@Ν;FH FxDh]F(F!F@;FH FxDhKF(F!F@|;FH FxDh9F(F!F@jN;FH FxDh'F(F!F@Xf;FH FxDhF(F!F@F";FH FxDhF(F!F@4;FH FxDhF(F!F@";FH FxDhF(F!F@;FH FxDhF(F!F@Λ;FH FxDhF(F!F@b;FH FxDhF(F!F@ڽF;FH FxDhF(F!F@ȽB;FH FxDhF(F!F@ ;FH FxDhsF(F!F@𤽆;FH FxDhaF(F!F@^;FH FxDhOF(F!F@J;FH FxDh=F(F!F@n";FH FxDh+F(F!F@\Z;FH FxDhF(F!F@J:;FH FxDhF(F!F@8;FH FxDhF(F!F@&;FH FxDhF(F!F@ښ;FH FxDhF(F!F@;FH FxDhF(F!F@𼚚;FH FxDhF(F!F@޼z;FH FxDhF(F!F@̼Z;FH FxDhF(F!F@:;-FH FQxD 0(F! 0F!F hXE(F $P$ 4(h  ?F1F"~XF!F 3F1F"XF!F 'F1F"XF!F" F1F"XF!F( FHO2xDh0XF+ FrF F"HxDh0 `XF!F# FHO2xDh0XF& FHO2xDh0XF) F1F"XF!F/ F1F"XF!F5H FHO1xDh 2!1FA !F!1) 4FD!F!1 ) FH$ !F!1 ) FI0 !F!1)ћF0F XF1FH `FeHO1xDh 2!1FA !F!1) FH!F!1 ) FI$ !F!1 ) 4FD0 !F!1)ћF0FXF1FL FHO1xDh 2!1FA!F!1) FH!F!1 ) FI( !F!1 ) 4FD4 !F!1)ћF0FXF1F{L FHO1xDh 2!1FA!F!1) FH!`:;;;;;D;F!1 ) FI( !F!1 ) 4FD4 !F!1)ћF0FXF1F,Op ^FHO1xDh80!` AF|HxDhT0` `XF!FOp =FtHO1xDh80!` AF4mHxDhT0` `XF!F FfHO1xDhaAF`HxDh0 `XF!F FO0`AFVHxDh0 `XF!F FQHO2xDh0XF FJHO2xDh0XFXF F+5HxDh F FGHFG@FG"J+HxDh F FGHFG@FGG #HxDhHFFG@FG FGG0F  F F(FFXF F $P$ 4(h F7";“;;; ;;;”;;;;b;;;M}D(|[h F(` FF F(F}<FH FxDh!F(F!F@R2;FH FxDhF(F!F@@;FH FxDhF(F!F@.;FH FxDhF(F!F@;FH FxDhF(F!F@ ʅ;FH FxDhF(F!F@;FH FxDhF(F!F@f;FH FxDhF(F!F@ԸF;FH FxDhF(F!F@¸J;FH FxDhF(F!F@2;FH FxDhmF(F!F@z;FH FxDh[F(F!F@R;FH FxDhIF(F!F@z>;FH FxDh7F(F!F@h;FH FxDh%F(F!F@V^;FH FxDhF(F!F@D>;FH FxDhF(F!F@2;FH FxDhF(F!F@ ;FH FxDhF(F!F@ސ;FH FxDhF(F!F@;MF#HFO1xD0!*@F(F B@F%P%5  F]F(F" F@FF F0F:-FH FxDF0O1F0F!I" F@/yD"" B0F%P%5 _p -FIF"l F)F !FIF" F)F _p] FIF" F)F FIF" F)F FHO2xDh0 F F (F"HxDh0(` F)F FHO2xDh0 F FHO2xDh0 F_`@RH FHO1FxDh 2!K !E!1) F!HE!1 ) .FF$ !E!1 ) FJ0 !E!1)љ F(F F)FH ]FjHO1FxDh 2!K !E!1) FH!E!1 ) FJ$ !E!1 ) .FF0 !E!1)љF(F F)FL FHO1FxDh 2!K!E!1) FH!E!1 ) FJ( !E!1 ) .FF4 !E!1)љF(F F)FzL FHO1FxDh 2!K!E!1) FH!E!1 ) FJ( !F:* ;;|;b;ލ;<;E!1 ) .FF4 !E!1)љF(F F)F-_p [FIF"t F)F OFIF" F)F_HprOp ?FHO1xDh80!` IF|HxDhT0`(` F)FOp FuHO1xDh80!` IFnHxDhT0`(` F)F FgHO1xDhaIFaHxDh0(` F)F FO0`IFWHxDh0(` F)F_` FPHO2xDh0 F FIHO2xDh0 F FF-31F3HxDh0FFGPFG@FGXF"&F)HxDh0FFGPFG@FGXFG F!HxDhPFFG0FG@FGXFG(FF(FF"FF F(FFHF%P%5 F\;z;;;;Š;;;t;X;L;$;X;>;-FpHFxDF0O1F@F!iI FIyDHF" B@FF&P&t6 _ p F)F F)F_p F)F F)F F)F F)F" F)F: F)FR_` F)Fg F)F F)F F)F F)F F)F F)F F)F_p F)F$ F)F< F)FT F)Fl F)F F)F_Jp F)F F)F F)F F)F_` F)F F)F& FFHF"F@FF F(F%P%5 F: MF H FxDh9F F1FF(F2F]@cb;MF H FxDhF F1FF(F2F]@G.;MF H FxDhF F1FF(F2F]@+t;MF H FxDhF F1FF(F2F]@;MF H FxDhF F1FjF(F2F]@y;MF H FxDhF F1FNF(F2F]@׺V;MF H FxDhF F1F2F(F2F]@";MF H FxDhuF F1FF(F2F]@;MF H FxDhYF F1FF(F2F]@R;MF H FxDh=F F1FF(F2F]@g;MF H FxDh!F F1FF(F2F]@K;MF H FxDhF F1FF(F2F]@/;MF H FxDhF F1FF(F2F]@ք;MF H FxDhF F1FnF(F2F]@;MF H FxDhF F1FRF(F2F]@۹n;MF H FxDhF F1F6F(F2F]@:;MF H FxDhyF F1FF(F2F]@;MF H FxDh]F F1FF(F2F]@;MF H FxDhAF F1FF(F2F]@kn;MF H FxDh%F F1FF(F2F]@O>;MF H FxDh F F1FF(F2F]@3&p;MF H FxDhF F1FF(F2F]@ځ;MF H FxDhF F1FrF(F2F]@;MF H FxDhF F1FVF(F2F]@߸;MF H FxDhF F1F:F(F2F]@øN;MF H FxDh}F F1FF(F2F]@;MF H FxDhaF F1FF(F2F]@;MF H FxDhEF F1FF(F2F]@o;-F1H FO1xD 0FF!)!0F}&I FKyDXF"HF}E0FA$0hP$n4PFIFBF%HFePFF F FHFVXF!^0FPFA(FPƖ: MFFF F3Vph@i0FG1hQ%+1hA%@]F F (F#MFH%F&xD0E P& 6 ! (F F]@:oF@ã B A`pGP!pGoF  %IJyDzD hh/;;oFH!xDIyDAFi<i<oFFHxD05i<M}D([Шi F(a FF F(F~ri<еFh `d FнiеFh `Y FнеFhZ FнFh FH(hN h(`(FMF)H)xDh h(Р FF 0FFhF1F(iF(F")hF!.(FP!h@F] SIFyDlHJxDzDh(FhsF F(FTFhF!F(F F<};T};};MF FWF1F"(F%` F]F(F F-F-H*xD-Р FF F.F $h0FbFhF1FjF(F!FCFhF!(FPHF& IFyDHJxDzDh(FhF F(FFhF!|F(F# Fp>|;S|;|;- F FFF1hFJFCF_(F%`D F F(F FH- F FFF1hF CF(F%`# F F(F F'oF h1- FFZ FF)hF2FCFV,h@ F @F F(FMF,HFxDh hNF@F)Fz(F1F)FA)K{D !O2 F!!)F0Fq !!h]>F!F@F9(Fz; еhFRQ ( н нFHIxDyDh h(h A h[0 JhFzD Fa`h*hQ8y;{;lеhFF F@j- E@FpFoBhFs+#KF{D!O2! `pF oMFsO ihFaB.i0 xxB10;+  @ Њ oF@hIhGpG[IyD hQ/2A#+ѿ[B`pGy;MF*H F*IxDyDhh1h0QAp)F"\( 1h@F]4 (FJFhF)FJzDhF!%FXX!@!P1)F!FhF!|F@F_(Fn.x;y;OF F)FHJxDzDh FhF F(FNx;MFH FIxDyDhh1h0Q(xhiAp"(` 1h F] IyDhF*FhFFhF!F F(F .w;x;NF HxDhh1!` F@F F8(F(x;oF@- $H $FxD@FDmFDh(F1F 0iF(F!@F!.&O60F ,F! FZv;MF$HmFFxD&F(Ff{5")F HFf` F" 0&x)F`sZ0hF!V]FhF!H F@u;MF*H F*IxDyDhh1h0QAp)F"( 1h@F] (FFhF)FJzDhF!%mFXX!@!P1)F FhF F@F(Fu;v;LMFH FIxDyDhh1h0Q(xhiAp"j(` 1h F]D IyDhF*FhF@FhF F F(FRt;u;6LF HxDhh1!`@ F@rF F$(FwPu;oF@"- %H $FxDh(h@FDFDhHF1F 0 &FhF  ,$O4)h F FhF F F"~s;- F(HmFFxD&F(Ff> IF "Ff` F" #F%xSohIFFnrhF  hF F FhF (Fr;oF@p* pGHxDP"@ pG5HxDpG5 MP}DO Fh0,U$@$ÂBp5еLF|Dh+T#0 B2BнFн@5еLF|DT#0 B2Bh+Fн5е F)! FL( < FнMF F .h. 0F>.h( >@ŬB F]е F) F\( 4 FнMF F .h.0FH.h( 6@ŬB F]FpGFBpG+)8 FвpGеPO FȀ,(FKBнеL;)s|D$h#`нIyD`нq;5еFHxDhh1!`!{  F@|q;oF@nеH F( t F( <н FнMF F.xq)]0F)x( 9B F]еH F( F F( 4н FнMF F.xq)/0F)x( 1B F]FpGFBpG++FJ?ȿFpGFBpG+?ؿF +MF.H F.IxD:yDO h,H hxD3h1 `Ap)F"( a 1h F] (FFhF)FJzDhF!%iF  JJ!@!P1)F FhF F F(Fo;p;~5.GMF H F IxD:yDO hH h3hxD1 `(xhiAp"Z( a 1h F]4 IyDhF*FhF1FhF F F(FBn;o;5fFoF@,oFFpF F(xf B FoFFF F(x B FMF*H F*IxDyDhh1h0QAp)F"( 1h@F] (FFhF)FJzDhF!%FXX!@!P1)F FhF F@F(F>m;n;EMFH FIxDyDhh1h0Q(xhiAp"~(` 1h F]X IyDhF*F'hFTFhF F F(Fzl;n;DoF@PMFF$(FF($(F( Cp(F( C0(F( C(F\( C(F|( Cp(Fz( C0(Fv( C(Ft( C(Fp( C F]-4HFFFxDO FZ4h,PFZ$P F (h@(` F(h@(` F(h@(` F(h@(` F(h@(` F(h@ (` F(h@@(` F (h@(` F (h@p(` F(h@p(`56E@F5-pp@    FFA.h0F໸0Fʨ0Fp0F80Ft0Fع0Fʨ0Fx0FH0F5B,F F-pp@    FFA.h0F40F4ʈ0F2P0F20F0F,ʸ0F,ʈ0F,X0F,(X0F,85B F,F瀵oFF"ʀF F(hŬB FoFFʀF F(h ŬB Fh FdF(FF F\(FF FR(F-FFFF5x@F(FF F6J[6EHFF F&(F}MhFFF0FF(Fp4F]bF(F F`X-FFFF4hF FF(F`DF K6EPF1F(F F/'oF@վ` `pG` `pG` pG pG pGB8FpG pGF H9xDh0` FF F(Fg;oF@- tHFFxDFhh0h6B.Fhj F hhZȂF h(FDFȀFPFFȸ^bBUFB3h0F!F0F$`jB8<+K0 p,ѸhFh ^F6B0h(h.F.FAEE hQ  h  PhF(FAFRF~F0Fh 4DPhhBѸh` FƱ0FFv0F FPF F\f;-FlHFyiFxDhh x4ELFPUF(hhjF8i AF UFFXFȀF0FXKxiFh 8iEnPFLE#hBFXF)F"F0F6-\yih0`EP,F4E x(LFLF8iEMEѵ  hQziQF"hFXF)FBFFF0F-QFzihzi%Dh]F hB `P  *(F0F Ff0FF0F F zd;- F$IhFyD"`hFhF!2FJF(Fp(  hqB iF"h0;V&`p(  Q `F(Ff Fb;MFhVF !"F(FLO0h D@ ]F5(F4F F pG-FFFO O$D%DUEиhEF(F!FF0F,Р(XFSF0F FQIoFh  <:oF*@MFJFzDhNh"h"0bhzi ``"hQ] a;-<} `0ծ(؀X pC0#pC0#pO hO%B&VE.0,-ڬ/ 0,\@H +!0,\@4 4p0\@ epe0\@ph` 6+S +q4 |E\OlP-dpuO)@[F@ o#DPEV`O OC0#%4pD@cpC0eD3pC0`O0(X0 0pC0 eepC0p  MFJFzDhNh"h"0bhzi ``"hQ]|^;->} `p0 h +x+Cx+o?6.?k5E ?+DKE O@CD@X@$ pp@(D\@ h0`0hBu@DEo5xMEjh(%p-b-؈(_px+X?@HEP -؈(Jsx--(<-:؈(9ۖ-x -! p0. ((! (? ?@0DKE   .. .?T  x+0`>` pG pG pGFFhO K->zFvF. xF. FxF.цxF.  OOPBl,  --ء ,򀀜@.y?DBq  g-ء ,hۜ`- -!,![-Yآ,Uӡ ,Qۜ`- -!p0, A,: ,6-?E ?,DB+  !,! , ,D?D4 ?D ?,DB  E8Ek pGoF#@MFJFzDhNh"h"0bhzi ``"hQ]Z;-<} `0ծ(zX pC0#pC0#p;i@thO OO Xh BY%XOT-.@J/ .AF`H+O ѹ1F`&F6'F`&FFpF`. jpF` jpjF`ph0`B  MFJFzDhNh"h"0bhzi ``"hQ]vY;->} `p0 h +x+Cx+O?CC0 ?@ ?tE{ 4`(D`0hBs`NEmҕ(IJtEd ,`,H(]hx+V?@ tEQ,H(Ikx,,(;,9H(8hx,, p۲0+'( (?#C ?tE + + +?u  x+0`_` pG pG pGFFhO K->zFvF. xF. FxF.цxF.  OO@,۝B  {--ء ,yۜ@.s?DBk  a-ء ,bۜ`--,U-Sء ,Oۜ`- -!p0, ?,8 ,4-?E ?,DB)  , , ,D?D4 ?D ?,DB  E8Er pGFJFhzDh"h<  `Fhzi ``"hQ$V;FJFhzDh"h<  `F8hzi ``"hQϾU;` pG pG pGF0Fh`F|@OX pG-{h ի(=ۿ pK01OO O , B-xDXO(Ы.(!k/ (IjNpp1 (۰ jHp0 j0pp12B  - ) hx(Px(]JAENҒ(Ų۩EE <-A-ؘ(>Px.7?@ME/ &-+ؘ(*Px-x-,,,??@0HE ![DB    x(2` pG pG pGM{HF՘F( xF(PxF(ѐxF(1 GP-ۦED1=,@,]-;Mx.6?EtE.1',*]-'Nx,,---$?D?,DtE10`E8Bӈ]{@OX pGFJFhzDh"h<  `Fhzi ``"hQjΞR;FJFhzDh"h<  `F~hzi ``"hQ@JR;` pG pG pGF0Fh`F+{@OX pGFJFhzDh"h<  `Fhzi ``"hQ;Q;-<} `0ծ([X pC0#p@thO O7 Ah ^EB&XO=O+3C03 +,C0Oc%#SE(EP%+DpC03 jpC0ph0`B  𽰵FJFhzDh"h<  `Fhzi ``"hQ^͆P;->} `p0 h +x+Cx+0` O|I:3x $N#XOд\O; CE"4,6۴xF-Op #?3C @ KEF O|I+`0D`0h^E<PUE B8   ` pG pG pGF0Fh`F->zFv F. xF.FxF.  O O|IOp(1`P $E+XOд\O'ЛE%   ,ۜ@.&?6F%E$\DB   E8EӬ|@OX pGFJFhzDh"h<  `Fhzi ``"hQPjN;-<} `0ծ(aX pC0#p@thO O7 Gh ^EH&XOCO +9C0pC03 &+,C0Oc(#SpEP%E#pC0pC03 jph0`B  𽰵FJFhzDh"h<  `Fhzi ``"hQ&M;->} `p0 h +x+Cx+0` O|I:sx $N#XOд\O; CE"4,6xF-Op #?3C @ KEF O|I+`0D`0h^E<PUE B8   ` pG pG pGF0Fh`F->zFv F. xF.FxF.  O O|IOp(1P` $F+XOд\O'ЛE%   ,ۜ@-%?5E%E$\DB   E8EӬ|@OX pGM{hը(Op!  BxDXO Ш(0 Npp21B  ]-{H՘(x(Px(2^OxJIE O DXO ( 2! B B8 ` pG pG pG{HF ՘(Fx(FPx(F0;!aEF8B x-ex1E%uE٠{@OX pGM{hը(O`!  BxDXO Ш(0 pHp21B  ]- {H՘(x(Px(2^ IE E xEXO!K2B B8  ` pG pG pGM{HF ՘F(xF(PxF(1; `E F8B ex)!F0kF%uE٠]{@OX pGFJFhzDh"h<  `Fjhzi ``"hQTrH;FJFhzDh"h<  `Fhzi ``"hQ*H;` pG pG pGF0Fh`F;{@OX pGFJFhzDh"h<  `Fhzi ``"hQȒG;FJFhzDh"h<  `Fhzi ``"hQ>G;` pG pG pGF0Fh`F{{@OX pGFJFhzDh"h<  `Fhzi ``"hQtȲF;-<} `0ծ(܀X pC0#pC0#pOhO O B&hSE+0,-ڮ/ 0,\@I -!@- eP3#p0\@ kpk0\@ph` 6-U +sT |E\OnP-fpuO)@[F@ o#DPEX`OO C0#4pD@cpC0D3pC0#cO `O@(` 0 pC0 kkpC0p  FJFhzDh"h<  `Fhzi ``"hQRnD;->} `p0 h +x+Cx+o?3.?k5E ?+DKEOkCD@X@ pp@(D\@ `h0`0hBu@DEo5xMEjh(%`p-b-؈(_px+X?@HEP `-؈(Jsx--(<-:؈(9ۖ-x -! p0. ((! (?+C ?DHE `  .. .?W  x+0`A` pG pG pGF0Fh`F|@OX pGFJFhzDh"h<  `Fhzi ``"hQ66B;FJFhzDh"h<  `Fhzi ``"hQ A;` pG pG pGF0Fh`Fq{@OX pGFJFhzDh"h<  `Fbhzi ``"hQVA;FJFhzDh"h<  `FZhzi ``"hQA;` pG pG pGF0Fh`F{@OX pGoF@𔻀oF@oF@oF@| J9A`B.AzD!h2Aa`"*pG@"2A;oF JKO. O,zD!h2 P"a@"2*рA;еFHxDh F@  F@tdA;oF@,еFHxDh F@t F@X0A;oF@zpGhpG@zpGhpGoF 1.oF1(oFI""yD`"73eoFI""yD`"p3oFI""yD`"eoFI""yD`"gL3 FFFA HxDh0 ` F)F FF Ff(F\@;MF=H FxDh0h;d? FFF HxDh0 `(xhi Fd FF F(FS?;oF@еFAp" ` Fн- F#HxDh(hx0FJxhF2F0FˁF@FfFHFp&pB/E p *hQ FHF F=;еFh Fн FFF' HxDh0 ` F)F FF FP(F=;MF=H FxDh0h3B3F3J3N3R3V3MnN~D4[0k]4 F (Жx[eMfI}DyD(FdIyD bIyD`IyD$^IyD0\IyD<~ZIyDHxXIyDTrVIyD`lTIyDlfRIyDx`PIyDZNIyDTLIyDNJIyDHHIyDBFIyDIyD$IyD F F F (F<<30;7;<HxDX[HxDP0X F o(M"I}DyD(F@P/""^ HP JxDzDh F F F (FTF<<[ 0;^7;.<HxD\[HxD\0\ F -(M"I}DyD(F@\/""v H\ JxDzDh F LF F s(F<<3/;6;<HxD`[HxDh0` F (M"I}DyD(F@h/"" Hh JxDzDhx F F F 1(F>< <\.;V6;&<HxDd[HxDd F (H"IxDyD"`" H IxD JyDhzD8 F F F (F<<̀3.;<5;<HxDh[HxD 0h F g(M"I}DyD(F@ /" "V H  JxDzDh F F F (FL6<|<i-;N5;<HxDl[HxD0l F %(M"I}DyD(F@/" "n H JxDzDh F DF F k(F <<3x-;4;<MF$H" FxDOh0hAp((` 1h(F]p FmFF(F!FJzD(F!4Fh"h!@"2*RFFhF F,;AMFH F"xDh0hxhiAp>( ` 1h F] IlF F*FyD FFhF| Fu+;еFh Fн`-FH$ d FxD d!hh2; D 7      OpO0%  HFL,!0D@K!@1) O qq Es(۩h = ,  1FBFp, XF%! S,0 1EF,hBhFh@`Px) 2 Eh F hA`F")hPF#<FF| F';-FhFBЉFxH(ۚhF!I@@&0F)h"hKj(FGh!I)h"0 1EF,hBhFh@`Px) 2 Eh F hA`F>")hPF#FF, FP ;-FhFB5ЉFhhF(Fh@!2FG(h1F"Ck(FG (h!F" Ck(FGA0IE(h h@!h(F"FG(@@&IE@0F-FH  ,!xDhh*PFΞH X$xDFHxDF0Fd!ZFSF ̥T1Fc0Fd!BFSF(F1FY 54,эH MxD  }DO F Fd!BFSF(f0F!F< Fd!*FSF\!F1 6  zL |D(Fd!"F3FD p)F d!(F"F3F8 p)F IFc"0F+F t O0F !F!1)HIFr"+F0F t O0F !F!1)IFx"+F0F t O0F !F!1)IFX"+F0Fu t %p RtR0F !F!1)* h+:˂;YV-}FH 8,!xDhh@F } X H 4 %xDHxDP Fd!CF*  ˁFQFd"[F"FHFpT8)F Fd!CF&F  FhF(FQFd"[FF0Fh(F 55-ӰH O xDHxDFO Fd!H  ʁF d"FHFpd@F)F Fd!ZF ~F (Fd"F0Frh?   ӼJ zD Fd!v @RF d d"PFlF(FDp  pQFWJ zD Fd!N @*F PFd"FF(Fp  pQF/IFc"CF F$ u  p!`(F!` F !D!1) IFr"CF F u  p!`(F!` F !D!1)IFx"CF F u  p!`(F!` F !D!1)IFX"CF F u  p;!` `(F!` F !D!1)i h }$%HxDF(F$2|Fu(F*trpnlF0F dFHFZFf0FRFHF FNFX- FxFFO !F#h#9E * Cch  Fa#xO hFµB"@! xOX p F 𽀵oF"IyD1`9:F HxDh i1!` F@ F F(F;oF"IyD1`\9:oF"yIyD1`9:F HxDhh1!`p F@F F(F;oF"IyD1`89:-EFFbAOPO ++@𸀹kК  P-#%7 ,OH,D,@ 2BBpB)HB80F8vH> ,O,,pO` ,Om,n,` x0x0FBF @ k0FF-F)6 WH,?,=,8с ,O4,Opq ,Ob,c 5 ,O,< ,OL,WO@p7HOpLO@p(@PF!" #OpOpК8O1PAPD!ApO`PF !@@@  PF!" #Tή@0PF!""8 T-FFbAOPO+++@րxMF 0Uo  F(F CB[BL BR0R,. O:л5л@ H= O𢀻𵀻@}O` Oxwg F @ {F,W 2C`HLлFѐ OAл!Op~ Onлnл% = Oл%л+ OPлZлO@p8HOpMO@p)@HF!" #OpOpЙ9O1PA !A`O`HF !@5@@  HF!" #D@0HF!""8A F HhxDh0 `BРh F@˿F F%(F;oF@|oF@toF@loF@doF@\oF@ToF@LoF@DoF~@.p F]- FFE F"xx;+B!FAF0FF$)HF ͋FFxp0FBтBF M FF FRO FD&P]MFFPm FBФ)F F.` F]- FFP F"hhB'O 0FIFF)@FQFFh`FBBF -F+HFBxDЙF FF `FF0FJF"h B   Q"* "@B Or H JO3s O@Bq!H ;-F$HFBxDЙF FF `F0FJF"h B ! 0"*"@B Or"OA*oAO2F$ ;-F&HFBxDД FF-4B<Fh 0`F FJFB2h 3`B  QH CCCA1"*л-@B Op;-F#HFBxDД FF-4BFh 0`<F FJF2h 3`B   Q1"*л-@B O0;-F#HFBxDД FF-4BFh 0`F FJF2h 3`B   Q1"*л-@B O0@;-F'HFBxD!Д FF-4BLFh 0`F FJFRF0h F1`B ! 0V"( O1O0!XBA-FF;-F0HFBxD* FF 0`SiF FϟA ݟ  ՟ O" " BП   "( 0h( G;-FHFBxD FF 0`iF F82h BП  Q A "*(;-FHFBxD FRF 0`FiF F`2h BП  Q ^A "*;-F?HFFxD"xOR !F 9 P+Rc#BDB  1F@F*FQ!B Fn)RE CF B F x `h)D;;B"BT !x@ p`` FFD F=;-  F$FF OI  @F`F FB  F -F?HFFxD"xOR!F 9 Q+R##BB  1F@F*FQ!B F)O ZE CF B F x hµB"@!  !x@ p`` F FQ F;-F&HOB'FF,OX     OOJFOIFB!I HFa  IFyD H I JxDyDzDh hh0 ` FF F(F,?];;; 𦹀oF @ȻHxDpGGpG0P1@*pG [\/SL1)*[ pGoFhhG 0P1@*pG0P1@*pGеF0[PJ@#+)[н hh FG F@h[y [\/SL1)*[pGh iGCh [/[FY pG\/Bѿ[L+ѿ[pG pGhO5 FF@5- FɰqomoFhɀeߵ IyD h!h"7"hQIyDнGz::pGpGpG pGpGEе@B9@B@``pG pGCoHDF3#F Q[CCMFxF F !F#h#9B * Cch j F#x fh%0F)FBF pU xh pe` F]е< O^bF@xOTE89h-TcE8FcF@MFFF F:F0F)F"F]@λ- FxFVb #6h#; B ! 1F F"3Fh ( eh  HBq  hT xH pa` `hHD 𽰵Fx `h  F)F x `h(DD-FNHFFxDF!x bh  n(Jc#B!DB  1FHF*FH  FAFFJOQ !!9 ZE CF B F(     !x A!p``!  B!x `h  F F F:MFxF FfhB ݱ* B8FRAP xqH pa`  F] Fе Fx" Aha Fне Fx Aha FнxOT- cFMx\hldEh hB8%F^ ]MFFFFF(F1FBF#F]-FxFFF MehMEKӥ B8F !!h!9s DCE+FB F (  FEѸкh AF!x(DA!p``!  F 1Dv FMR_| Lxl. FcF]R_|   aF𢹐R_|   aFGR_~  aFID-F!HFhxD FF @F(x hh Q1,(FF FnF F:еFx RBhBB8F 0h,FF"Fl FнE]MJFzDjF0Fpp FppII]:x 0hpGx 0hpGpGMFxTHRxEJBO3 eDDS!FBO3F]𽰵FxIEBO2 [lcDbF!FBBO2F- FxFN i(FϦBO4x  +*FFAF @EO4 F 𽼵K{Dh#hx[E5 B ٨ F@)O0O0"hQn:-x]^FxOPB8.F@E(F+ L2@E0oCCB FoB Fo@<eF =lBCFF+ \; B9E`Fp`EFO0F-xtNFB8&FB F+ 1ИB/oCCB"FCBFo9eF   lBFVF( \8)BЪ E`Fp`EFO0+F-FxFUFNhHFVE85Ft1FB)( 3ЁB1oCo BFCB  Fo  aF-xCO0Bٻ bD FtF0[8xB2B F BO0]M_tO\ O0ñEDbD F F0[8xB2rErF rEO0]- FxFNhHFO1B FLF1k9xB3BFBO1F Mx\HVxENuBTT)FB0F<(O4 F]MFxFLFFmBTL0)FB@F<(O4 F]- FxFLEEHFNxDEFL(1FBHF<(O4 F ׾- FxOR VxENE 0F)Fl 4EO4 F - FxFFMFVB2HFAFL 4BO4 F - FxFM Y@F̥B F @F1F' 4BO4 F _sO\ :@:hpG@hpGF `xё(F!(F(Fе FF@#@"A# 3+не FF@#@"A# 3+нpGhpGеF ` Fc FнеF ` FW FнеF ` F FнMF"HB!ҐF F)`   OҰQF`F(F!FBF E$](F  IFyD H I JxDyDzDh hh0 ` FF F(F?a:::F F` F xShBӉhF`E8F FbF F Fx H@hpGx 0hpGеF F` x^ XB ӉhqF F Fн FеF ` Fy FнеF ` Fk FнеFxh Fнh pG xR1!pGеFB xQ/ FaFZ FнpGMFxF&#h#^B * Cch ) F1F* &h*F0F+ F% xh pe` F]MFx F!0F h!`0xq`аhg0F!`)F0F! E!1)0F]𽰵Fx F!(F h!`(xi`Шh=(F!` F !D!1)ѰtFF FF(F!F@dx#F;#hC`#pGA`pG0pGIppGpGx 0hpGx 0hpGx 0hpGx 0hpGxI0pGxI0pG xR1!pG xR1!pG x 1hpG x 1hpGx 0hpGxI0pG xR1!pG x 1hpGx@pGx H@hpGHpG?x h 8pGx [ChBҀoF#IS`ppGh#B!0A`pG- F x FFF! 9B 3F`pB F x  )FBF 8!xpA!p``!I  F x#IS`ppGh#B!0A`pG"-FYHBj%x OU   8EQF)&1!NBM.  O O qBٱO@҈FOM҈ O O!UIFF !O hFJIFHFp@ `OJ p F  IFyDHIJxDyDzDh hh0 ` F6 IFyDHIxDJyDhzD h0h ` F F FF F(FF(F@?:::c:::(1 0 8pGA`pG`pGpGoF!"qx!ph" `!A`pGx H@h@ pGx 0hpGx 0hpGx [ChB* 0hpGoFx [ChB* 0hpGoFoF FS/cFO^F@foF FS/cFO^F@RFF FF(F!F@BеF FнM FxF!9N!B " F(F(xШhqi`F( F !E&@A`]MFxFV#&"SB `pQF F3FBॱ( *FX!xpA!p``!H  F]𽰵 xFF^?kB8h,qFbE8FbF@xA`IppG-F?H FABY!x  :IBPE8h( 00 OAFF0FQFZFhyiBFh   -PF A!`F  F  IFyD H IJxDyDzDh hh0 ` F;F F(F?:::- F5IFHBDӚ  /HBPE8h(!0 O-҈FhFF$0FIF"Fbh 8i R-HF(H`PF IFyDB HIJxDyDzDh hh0 ` FF F(FO?:::oF! FFFˀ1x O2QJp09A`!`pGx 0hpGx 0hpGxI08pGxI08pGMFx F!0F h!`0xq`аh0F!`)F0F! E!1)0F]𽰵 xFF^?kB8Th,qFbE8FbF@oF BˀMFxF F!F#h#9B * Cch j F#x &h)FBF0F> F% xh pe` F]iеFx\?FSbF@-FxFF VfhBE#"h"SB pF F3FX)E(  r  IFu AF@EEAFAFHF*Fe!xpA!p``!J  F FMFxTOUE8h."FcE8FcF]@MFFF F`F0F)F"F]@o-FxFFF NfhNE;ӭ!!h!9B 3FpB F(     )FBFN!xpA!p``!J  F F- FxFV"#6h#;BO ! 1F F"3Fh ( %h q E)E! xH pa` h 𽰵Fx h F)F[ x h-FQHFFxDF!x hO tмK 0B#B  1FHF*FH  FAFFMO OQ! A XE CF B F    !x A!p``!J  B!x h F  F@ Fr:MFxF FfhB!* B8FR xqH pa` H! F] Fе Fx" ha Fне FxO ha FнFx\hOTFcF-FxFFF MPUEvӥ hB8F!!9s DB (+FBHFHS(  B&F53 B FFAFF"F BF&AE @E@EFAF2FD &F AF"F(DA!K HFHFMFx\_uuEhhB8.F,cFU]MFFFFF(F1FBF#F<]-FxFFF MehMEJӥ B8F!!h!9s DCE+FB FT (  FE AFRF!x(DA!p``!K  F 3 Ft_|  MxF^Oh lO OsFaF]_|   QO aF_|   QO aF>_|   QO aFC -F"HFhxD FF @F x h Q0- F;F  FF F ,:еFxF RBhBB8F) 0h"F`F FнcMJFzDjF0Fpp FppII]tͪ:x 0hpGx 0hpGpGMFxTHFxP_huFBO3!FBOO3F]𽰵FxIBO2 bF!FABOO2F- FxFN i(FͦBO4  *FFAFh @EOO4 F 𽼵K{Dh#hx[5BjFF@)OO0O0"hQF:Mx F^hHhxD xT_h MFB82FB@F"F1FKBOFO0-F]:MFxFIH xDBh8 FB(FbF1FABOFO0,F]:- FxFN i@F*FHBxDBFh85FpB. HF)F BOFO0,F :_sO\00sBS:S(аO0]MFxFI0|BQN@F!F>(аO0]-FxFM YPFːEEFMbPF1F=(ШO0ž- x[8FxPOhtFB O (F!Fg(6EO0 - FxFIB ٍ2HFAFE(4BO0 -FxFL JHFhDE٥FO HF1F(4BO0_sO\ (ѰO0]M FxFI0BQN(FAF>(ѰO0]MFxI@FBQ<FN@F)F>(ѰO0]_sO\00BS:SƱ:C-F*HFO "xDhh'IyDh|F_p5(FBFF hF"(B@` h0FAFxF F :-F)HFO "xDhh&IyDhF_pe(FBFXF0hF"(pB p` h FAFF F J:͌-F*HFO "xDhh'IyDYhF_p5(FBFF hF"(B>@`: h0FAFF( F :-- KF;H%"xD8IyDU\F`_p XF˟#A ݟ" $՟\E ` KH̷0h"(F F Gʮ:R-F(HO"xD%IyDshF_p%(F"̀F0h"(.BZ@`V@FFF F >ĭ:L-F)HO"xD&IyDh|F_pu(FF hF"(B ``0FAFzF F :-F*HO "xD'IyDhF_p%(FńF0h F"(sB@`HF!FF F P:݈-F)HO"xD&IyDYhF_pu(F^F hF"(B? ``<0FAFF* F #:"-F*HO "xD'IyDh`F_p%(FˁF0h F"(B@`HF!F\F F Ԫ:f-F7HF"xD iFA"2*ѝ ! AnF"0FL#M}D F`D0F!F"*FpKF(FBlF" F% F D P0(hFbFhFR F K:k-F7HF"xD iFA"2*ѝ ! AnF"0FaL#M}D F`D0F!F"O*FpKFJ(FBlF" F%8 F D P0(hFnFhF F (:-F7HF"xD iFA"2*ѝ ! AnF"0FL#M}D F`D0F!F"*FpKF(FBlF" F% F D P0(hFrFhFb F [8: -F7HF"xD iFA"2*ѝ ! AnF"0FqL#M}D F`D0F!F"_*FpKFZ(FBlF" F%H F D P0(hF~FhF F H:a-F8HFFxD" A"2*ѝ ! A" FM$N~D FhE F)F"`2F(FB"% F F D P0(Fp F hX:] -F8HFFxD" A"2*ѝ ! A" F~M$N~D FhE F)F"l`2Ff(FB"% FT F D P0(F F d:- -[F:HxD  "A"2*ѝ ! A"(FȊN%L|D FpF(F1F"h"F(FB"% F F D P0([ Fv F oj:ŀ- -[F9HC+"xD A"2*ѝ ! A"(FN%L|D FpF(F1F"ph"Fj(FB"% FX F D P0( [ F F j:- -[F9HC+"xD A"2*ѝ ! A"(FN%L|D FpF(F1F"h"F(FB"% F F D P0([ Fz F sn:y-F5HF!xD"!hF`! AnF"0FL#M}D F`D0F!F"r0a*FKFF)ۡBlF" F%\ F D P0(hFFhF F x:2-F5HF!xD"!hF! AnF"0FL#M}D F`D0F!F"0a*FKF|F)ۡBlF" F% F D P0(hFi&FhFY F : 2-F5HF!xD"!hFx! AnF"0FL#M}D F`D0F!F"0a*FKFF)ۡBlF" F%t F D P0(hFFhF F :D2-F5HF!xD"!hF! AnF"0F(L#M}D F`D0F!F"0a*FKFF)ۡBlF" F% F D P0(hF>FhFq F :l2-F7H!FxD"F!! A" FM$N~D FhE F)F" 2FF)۩B"% F F D P0( F F +؝:2-F7H!FxD"F!! A" F;M$N~D FhE F)F") 2FF)۩B"% F F D P0(NF F :2- -[F9H F!xD"!! A"(FJN%L|D FpF(F1F"("F(F)۱B"% F F D P0([ F F 5:2- -[F8H!FxD"F!! A"(FCDkN$L|D FpF(F1F"/("FF)۱B"% F F D P0([ TF F :2- -[F8H!FxD"F!! A"(FDkN$L|D FpF(F1F"("F0F)۱B"% F F D P0([ F F <:2-FHxDFB ! xF!  FJFP1F*FF(4BDF F:! FxF Z pG-FHxD"ЅF  hF  FJFX1F*FF04DF FJɈ:! FhF  pG-F%FhF[ GX\FFME YT G(\EFPF@@ pG-OFH FxDhh hF_pe(FRF.F0h"(BD p` h FȆ:JFzD(F#* bF)F HIxDJyDhzD h0h ` F~FF F_(F s:::JFzD(F# 0F)F HIxDJyDhzD h0h ` FLFF F-(F RsL:L:L:-OFH FxDhh hF_p%(FRFzF0h"(nB@` h F2:FFjhhB8"FlhhB O8O0FFjhhB8"FqhhB O8O0IyD h1`pG&:!pGF FFHxDh(hhhG`hB !h@@ *hQ4:1H@Z@C@ pG-mF"HFxDG lF@F)FOb0A0h('M}D(x@JOaCFzD(F8 `(FF F)FW  mdxҔ:JqHxDpG!qoF_ I""yD`"" qе L|D y[ HxDн (HxD0 F:;h9,;HxDpGj oF_ I""yD`!"r]pFF_HxD0HxDP;; M}D({[  FE(HxD0` Fv;9oF! hiGoF! hiGMF$HFxD h xF @`h(I FyD2hqhnFhi0FG!qB FhF F !D!1)]xFhF F :PMFHmFxDFh0h (F*F FhFHxDh0 ` 1h F ]8FFhF F N::F `xё(F!(Fv(FMF#HFxD FnFF0F)FW2F. FZhFVHxDh0 `  F ]F>FhF8 F 1:":MF H!KmFxD{DhF0h" (F *F FF hFHxDh0 ` 1h F ]FFhF F :_F:- FHFxDF (FF*F FHxDh0 `h  F 8FF F V::-F#HFFxDF F,nFF0F)Fm2FD FphFlHxDh0 `  F FVFhFP F IƏ:N:- F!HFmFxDFI yDb"(F*F F[ hFHxDh0 `h  F FFhF F ":D:𸀵oF@MF FF HxD F1F+FW H JxDzDh Fh6F F(F |;*:,:pGjhhpGoFEFh0!%%` IyD1kеFh(r `н IyDkoFa \ pzM&IyDE`u)J F)F#& IKJFO1 Iu &.AF F!F0h(]ʚ;e6eɚ;:HxDy[HxD0( L|D F EF l(F B{;${;4{;еIFyD  FнIyD A jMFFU ohhph0h<6,F hB(F@F]@tF(Fz@Fm0FߵK{Dh#hB##i1a 0iFe!h߽0":ܵ JzDh"h#B`Ah1A`iF v!hܽދ:F !FP F%`еFhv Fнhh¿8oF@pGеFh`` FнеFh`` Fн- F&HFxD !_,ҦhM0BرInF0F+0 F1F:hFT FVFhFB F :MF F F)O F]𽰵 FFchB*```h)h(`ha`ihh`h`h``h` `еF@hh9`B hV Fн IFyDx H I JxDyDzDh hh0 ` FF F(F {gz:|:~:- F*HFxDh0h !O6O hKB bU-%M iF FhF81h FFhF' F '?: FFchB*`` `h)h(`ha`ihh`h`h``h` `еF@hh9`B h FнеFV FнoF`΀oF΀oF y" hT(IyD IyDe f- F*HxDyx FNAHFFAJ0F!F# IJrIaHI)h@F(n( IyD IyDqo/hYʚ;5ed6eɚ; :eeM FF,FhH F0F!Fhr!*h)q)`AF]@սF F(F 2h HxDpG} oF*!+I""yD`X" I""yD`"I""yD`H" I""yD`."I""yD`A"eOeeefL|D y[HxD%(F( FH!FJxDzDhb(Ft;:*:t;oFIyD1`69MFHxDh0h(Fd F)F8HxDh0 `1h F]F F x:::oF6@hIhGpGMF$H xDh0h@Fr(} hFhhi@ha`@Fs1h] nFMJzD(F!} H JxDzDh(FhFF(Fk@FK0F b:Ts;ކ::MF&H xDh0h@F(} hFhĹhi@hah)F@F1h]l FJzD(F!! H JxDzDh(Fh.F(FF@F0F :r;&:(:- F'H FxDh h@F(} hFhQƹIF\hi@ha@F!h  FJzD(F! H JxDzDh(FhFF(F@F0F \:q;n:p:- F)H FxD@F`(} hFh̹1Fh\)F@F\  WF6JzD(F!f H JxDzDh(FhsF(FVF@F40F B:&q;:: F(F `i@`a(F@MFHxDh(h   F/ Toz~)h]B!FmF_F F Z:MF@i FA  0F)F`i@] `a(Fd hh F]@GFHxDh(h   F)hF~ F G: {FZ JzD F!H JxDzDh FhF Fz(F &no;::M F`F F20} 0Fpi@pa F;(F] <F JzD(F!K H JxDzDh(FhXFF(F9 F0F n;z:|:еFh Fнh!` F FF F(F еF *I"yD h1"" ` Fн:MF#HxDh0h h@}"!hLݹ%hhh(JzD! @F)(FAF2= hl1h F]F FWU: n;F F)FnI JyDzD hhL F+4$:&: h hFG JzD F!w H JxDzDh FhF Fg(F Hm;Ҁ:Ԁ:h@ =F JzD F!LH JxDzDh FhYF F<(F l;|:~:MJzDh2hhmF(F F)FhF1h]T FJzD F! H JxDzDh FhF FFhF](F d~:ll;::h@ F JzD F!H JxDzDh FhF F(F t l;::MJzDh2hhmF(F F)FhF1h] FeJzD F! H JxDzDh FhF FFhF(F ,|}:k;::еFh FнFh F h (h ` FF H%FxDh0E   (F F@޽~:oF@oF$@е FIyD h1`н<~: l̰0  FF0(F!FE[oF8Sе (!F Fн-yMFFFFDt Z# ID= J a Fh@(bihJ1i`zD"c F++CGNLC(X踀oFQ :еF(0` i1@jpGFKM #Aai@C( T,hD <`PD h` NLC++CGMFQ/FLP(NChO%$Ecs@#Cj;bR? ` F!`]NLC++CGMeFJ3 ICc"Y@C(T,*RB2D,hBD,`Ah9A``jh*`X]Xn++CGNLCMnFhhFNQ(/MKhF %Fc +Cсi?9aAi!`Ѳhw0]@F `]1a@iNLC++CGеF8[PJ@#+)[ Tx FG F@не xhh KL #Aaa@C@hн нNLC++CGMh,FJT(Kfh!Q@QѩiIBaAh1A`!` F > F#(i++CGNLCX8[P1@*ѿ[pGh KM# Dbj@Ch[Q/2A#+ѿ[ NLC++CGF#`F[P1@*ѿ[U| ``@` ID( Jb`D IyD h1`pG^: oF@.HxDpG>MFH xD!Fh*F0F 1F(!F*FI!HJxDzDɬI:> ? I(yDF[HxDhRB+ѿ[pGE]: I(yDF[HxDhRB+ѿ[pG)\:mh3HxD 'K(L #Eee@+C4#K$LZ@cY@ChG EhO`hhTFW lhH xDhh i)FGW IhyD hhGFH)F"FxDRIHyDxD hK I"F HyDxD hCNLCGNLC++CG++C\:0H:!>@H:Z>?ZH:>oFHIxDyD`-G:A>-]lFoFFHFxD. `АF FYѻo%0F0DsI Ap yDv"1"r3rT"rVr_"ra"!"!hPiO2"% KF(c ABX x.(\0F!PIO2yD1`a FBJI yD  $( 3EI yD X Bx_) &0 F B & "O  B B/IyD O -` oO`OfxF HF?!N& `J.% h(FF"%O6F 0 FY:=99=$=<Fh Fh(FGhy((h!Fi(F@G F!FJj`DTMFAp%vhB)`(h( q\.`LBp  F]еFFQ B FнеFFQ B Fн- FHFFxD@@?( D  Q zȼV:-FHxD @xG*T*:B+xS.@C+H+-I+Dc+@Ԁ0XF(@YXF(@SXF(MF p!FHJxDIzD01O 4( $,S1F XF('FS0 cF P#`HQLhU!3`BP tF(@IO XFyD 9(ˀ^FVqh0F)F'BxE)XF(+ЁAxR)mV)@ʁ0XF!O v(F p!FHJxDIzD0-0XF(F p!FHJxDIzD0B Oxv8OPXF;(@{XF(uF p!FHIxD HxD0XF!O (U FXFcBw x_*tHsHxD 60YF p!sIJ6yD1N$%)0XF(Bxv)0 XF'^F  V qhXFh(0FIF.(F(YF(FXXF+F_F(π p!F}H~JxDjIzD0jV:9:990:0XF"(F p!F\H]JxDVIzD00XF (F p!FNHNJxDIIzD0 s0XF!O +( tLI XFyD0XF(cF YF" BBUx_)R0XF(JЀF p!F4H)IxD0 `<0XF!O F p!qF)H)JxDIzD0(0XFȱF p!ZFHJxDIzD0  0`O HF 979L7~9969O9F977~96Z9h9899h89еZE М n*  `bFEx0; +SL0< ,\ `F#FEн!нp F!F#h!)F-FHxD !ρxA9-Ɂn:6Juj:":*2:JRai}rI BU\&r+&V-1FBS\K+1BS\F+D+1BP\o )"@2B@O( F[BeP `B1x0; +,!F"%&BQx_)@L0 ` FV(DFp!#+AFF23EP ` F?(nFp!ZI[KyD[J{D1O(\PxO ))V*TTTT&TTTTTTTTTTTT*T.148T;?TTTTB*FTT_&T** F>P ` F(Fp!5I5KyD2J{D1 `B```aBłP ` F(𽂁F F(𶂀Fp!F#Hiq!xD)q@0(`P ` F(فFp !pIjyBqyD "P ` F(ŁFp !\ IjyyDBq "1q@€*`P:|9:ڈ9$:999P ` Fk(Fp ! &0iyJAq@zDq``<(2Pxt(. F(yh)tBo xI)@k F!P(b(ʀPxe8(ŀI"B F5F-HAIyDIyDoIyDlP `p!IKyDJ{D1IyDP ` F!IyD2IPyD ` FIyDIyDwIP ` FyDIyD9IyDP ` FIPyD ` FIP ` FyDIyDP ` FB?9xI(5 F!c(u FBx_(ѐ ` F4%("Fp!IJyD1UF F( FBx_)@0 ` F (Fp!AFJF#F FIyDZIyD}IyD}IyD|IyD{IyD`zIyD}IyD* ` F( F+x  Q4kIyDd9@29 2z9| 7 72 e7ob72|2[I FyDd(B5x1:Ҳ*0!F"%DBox_*kB"`BRxp)O0 `p!<1IFEH&#+FO)uxD230 b+aHBx_)0 ` FMೀFp!FAF"#. FhFB(x_)%0 ` F0Fp!FAFJF# F!Fp!#+FAF23% y91M2A26x96 555555'665l9,9oF E xB1B -FH FxDBxL*0 ` bxZ+#S+XN+[шBxN)@0 ` F6h`BxO)@- ` B0 ` Fu(FByxE*@uB"`B^xs+@=0 `eI ` FyDZFp!#IJyD1F`T*P@xt(MѳI FyD0I FyD F)FhFp !IJyD1F + F)F(#B xI)@)F-! F"(  hp F Fv(BxI(xR)- `  (ryI yD F(sI FyD   FBxE*xL*0 `BxM*0 `(Ѱ NxC*ZD* I*S**T*C FkC)LAxA t)5 F&8 F)!() FQFJF9 Hp$)@xt( F(oF@F1FB(FIF*@xC( F(YF@F(FQF(M FQF(FF@F F(:0 `%!B29/xd)0 `!F"B x_)0 ` F)FN(G: F)FD(  ` F1  Q^"++1 }92,}9hB pGx .)E)pG_) pG- FFHxD  xJ+L+4X+0 ` Fh6 F @&FhV/0 `O0F)FZBxE)7 F(*AxZ)0 ` FnHB xE*1!`  Q  F @;0 `!FBFIp!IJ6yD1NC:z9-FF@hhB"!FQ IEOe O iHFF ` hF%0FIF*F&`b``𽰵 FhhF)Fh`-pF$!FF9iP` JKzD2#B0 y9MF'HxDh0hB:xh)0(`)F"$bB,B'x_)$0(`$!xv)0(`)F"$HBB x_) 0(`)F"$5$1h F]A: Fc$>:s9Fr9p F!F>IJ-hyD#h1&` r9#FBxr(2 BxV)2 @BpGxK)Q@pGеp F!!Fн-FJHxDh0hB_ x T+\1!`Bx_(% F(KEBDx_(Aєj1!`(5I FyD7iPp!F.H+I"xD0#  TB>L OjOp@EOJ@Fj́FL!H P% 2hQ(OJvˁFHFAFRFtL  TPPP ::3h9MhF F0hx`h!pN IJ3hyD1.!h`5`hh!Ap]hg9FHxDh(hB$xD)!A!`B xt* xT)0 ` F(B xE) I0 `jFyD F *hQ49:- F@H FFxDhy$)цh( p !6I3JyD1F `B xC* J*`BKxI+%ъ!*`"BB *@ xD*=Hx0 *7#'1Ј(`   !Bx1 ++P(` !(FAFH  (F!Fz  Q #8:Jm9-F Hz FxDO hhHxDxB)!0(`)FEPF!Iy ` IFqB$ h FȚ7:l9-FH FxDB1xU(&zI FyD (shF!F"%BWx_)@0 `p!FlHhI#xD0B18( F9hI FyDp&FmFVqhO F(N0F)FBxE)0 `hF!FBFp!FRHJI#xD0 F)F F= F)F@(8>I FyDxAxO)q)o)OmIyDAxv)dl)m)Oo)‡ ( 0E/x x z 0HF(?7F p !(FHxDI0@ IyDIyD0HF(?HF(?JzD1 B]x_)@YIyD0IyD0IyDIyD0HF(?F p!FHJKxDzDI{D0 ] `@0PIyDSOIHFyD@IHFyD(?MFUih(F1FBx_)HF{(IyDl0IF"F p!y#!IyD0HFIyDIyDK0HFL(?dHFC0HF=(?UIHFyDK20HFp(IyDMF 0U/0(F1F*BxE)QHF($0HF(?oIyDHF0B? xf(T(HF(?F p !F`HxDHF(?\JzDL0HF(?HF(?۪SJzDHF0HF(?ʪFHF(?êF p!FDHEJ+IxDzD0S L@IyD0JHF(?:JzDHF ~0HF(?FHFq(?F p!{F,H,JxDIzD0  0@`S#IyDJ0HF1H_9*  Ie ;w0^9b rg ʄ /Փ\9aZ94JՂ >X9 X9IyD0HFF PF 0IF"F1HF+(?IFHFyD((F!FBxE)HF(۹0IF"F t! FFHI#xD0 F!FHJKxDzDI{D \0g40IFBF p!FHIxD#0C#{0IFBF p!#1FFgHFc(?| uF!(FlF`(F!fAF2F#IHFyD](SАHxDHF?(?XR.FL.NHF4(?MF F-0F&FFAB?@xTFO E)0 p !(3FH HFr(?!F p!FlHmJmKxDzDI{D0 ;IHFyDHxD`& p!FaHIxD0SP0IF p !UFF)PF3FIHFyDHxDkHIF2F p!#AFFIHFyDHxDMIHF,FyD(HxD IHFyD0HxD%F4IHFyDHxDIHFyD{HxDIHFyDqHxDIHFyDgHxDIHFyD]HxDIHFyDSHxD Z9Y9[ ˥*V9A  X9 bT9uIHFyD*sHxDrIHFyD pHxD~oIHFyD(mHxDkIHFyD hHxDthIHFyDeHxDjeIHFyDbHxDSbIHFyD_HxDV_IHFyD\HxD?\IHFyDYHxD5YIHFyDVHxD+VIHFyDSHxD.SIHFyDPHxDPIHFyDMHxDMIHFyDJHxDJIHFyDGHxDGIHFyDDHxDDIHFyDAHxDAIHFyD}(>=HxDchA*    <    ~  ~ ! ~ ! ~ ! \ ! M~ j! ~ } B! !  } ~ `4m } } H p} y  # } |  }  | | | p F!FI#hyDJ )F K-FHxDVB(xL(@hBIxT%)D BBBBBBBBBB&BvBB(6BBBDQBB_lxIXFyD(XF(B xE*@1XF(FhFYF"&eBxE)&0&E. p!YIJyD1&r.5F(Fm@mIyD IXFyD8( @TIyD  (> $,B4F ). (% $,(4F ) (  $,4F )@IyD @IXFyD F@zIyD @ԀuIyDJf@ǀpIyDM@mIyDL@gIyD>@WIyDJ1@QIyD#@CIyDwIIyD kDIyDXF@ :f1IXFyD,(J iFXF,DE?КE(; p!0IyD&E+КE(' p!'IyDEКE( p!IyD J1`B`  Qv*vl! 2 ubJK9K9K9N9MF%H&IxDyDh0h F Fe!F"%B&x_)"0 ` FHFI FyDz!F"%eB Bxp)0 `%1h(F]: u- FFF5F(F0pFp!<IJyD1F *ZK9MF FFhFp!IJyD1&a ]*LK9MpF!FFIJ6hyD#x1-xFsCs]*K9-F^HxD\I yD F F(BxI( F!( Fv F)F2FBxE)< F(m>I FyD*K9еp F !kIJ#hyD1нG9p F!FVI#hyDJ)Fеp F!?b!F.н-FHFFxD1F"TBBxE)00`p! I JyD1Da  Q*0:*E9еp F !IJ#hyD1+#rн*E9MF Fhh(I FNyD~DJG FGI FyDJG)ixn( I FyDJ9!Dji FP( F]@] c'Vе FILyDz|D (F!Fb@;;>- F)IyD 0@ (;"F\2dx0 .0( 5 .oV8o/&Dk*x x;)B!(FNʝ (F J! zD *@F)F  Ϻ:޽- F(IyD 0@(9"F\2dx0 .0( 5 .oV8o/&Dk*x x;)B !(Fɝ (F J ! zD0*@F)F3  h:- F(IyD0@(9"F\2dx0 .0( 5 .oV8o/&Dk*x x;)B(!(Fɝ (F J(! zD*@F)F >:j"M F I NFyD F~DJGh!F I FyDJG F3F]@G qеp F!1IJ4yD1н*B9 FIF FyD| F@u μMF7H FxDF(!(~hȳ!F F !U F.FV/I F !(O F ! F8 I FyD 2h0 F !u F' F !lh!FU5I FyD 2h F)h F !U F)!N]::)hPMFH(!xDh(h+H IhxD0!hhF h)!)h] u:A9-FO0Mh Fлe`I FyD N%~D  F1F`!F5]E0_/d ڻ-F4H F4IxD yD @F e(*I FyDJZ(I F(MyD}DJGh!F%I FyDG FG!I FyDGpi!FsN F~D 1FZFG @F1 F1FZF@ZP:  [ (ZoF# cE xxB21E M N FF~D FG I FyDJG(i!FI F3FyDJ]@G 9MN FF~D FGI FyDJG(ihh!FG I FyDGhihh!FGI F3FyDJ]@G_L Eӎ亰Fh F I FyDJy !FI FyDJ@lY ĺ-FH FOxD&F_pUF YF FMeh!FP&{`h6B OBѽ- FpF1FO F&(FAF2FY 𽰵L M|D4E*?9M FINFyD F~DJGh!F- I FyDG !FI F3FyDJ]@G_ y6F{ F( I FyD I FyDh{(I FyDh!F@{e MFHxDh0hBxD(T( F9F(1h F]@Ҿ FF(1h(F]Z :MFHxDh0h(F(FBxI((F!$4((FF$1h F]t :p F!FIJ-hyD#h1&`=9MF;HxDBx08 ( F]@6-I FyDXB+x08 (' F{&%I FyDz F!((FB$xI(! F!%( FF F F`p !QF H IxD0C%(F]&. :<9еp F !)IJ#hyD1н!:=9MF!H%xDh0h FP SBIDyD"` hFNp!FHJ IxDzD0%iF FF1h(F]x :H89еp F!нFh FOI FyDh!F@C oFh hRiG_-FH FxD xa +(CMeo )PxN(PS(Pn(d(@IyD)PxV(Dv(De(l(Aa(@wI ` FyDUo)lPxx(@hIyD)bSx l) ZZZZ IyDq)JPxu(@FIyDg)@PxM(ˀS(ˀs(ˀm(@3IyDT)-Pxs(@)IyDR)#Qx v)m)Ѐo)Ѐl)@IyDI)PxO(q(o(@IyD&)Pxt(ke(@IyD-)PxS(Ȁt(Ȁi(րs(e(@〧IyD)݀PxI(L(m(l(Ci(D)ˀPxw(߀e(g(7t(a(@𼀞I ` FyD)PxR(,r(-o(@𩀘IyD)Px08 (򞀐 ` FL( Fb}IyDIyDIyDuIyDuIyDIyDIyDa(xcIyDL+tсIyDIyDIyDIyDih!`hU i FX(  (p FPIyDlPIyDiJIyDyJIyDcOIyDsMIyD] `p!FIFK>JyD{D1N'LIyDPLIyDE :/ ` F`Fp !:I(JyD1&  Qh2IyD(4IyD%5IyD"4IyD7I ` FyD1IyD0IyD ` F2IyD ` F/IyD/IyD ` Fx hihi?Dkoh49c4BG<u0d89]3D ?>O FIF FyDJhhh!F@G^ ܽеp F! !Fнеp F! !Fнеp F !IJ#hyD1нn69еp F!!Fнеp F! !Fнеp F!!Fнеp F! !Fн FIF FyD  h!F@;G^ FIF FyD h!F@%%H FIF FyDh!F@oFh hRiG-LM|D4E*59Fh F Fhi!F@޽M FINFyD F~DJGh!F I FyDGh!FI F3FyDJ]@G 5crּMpF!FF IJ6hyD#x1-hF`t]+59F| F` F[!h!F F]! F.!h!Fuhy+9ɲ)I FyD3h!F@clF FF[!ih!FRI FyDJh!FH F]!W(iy+9ɲ)I FyD(i!F@2tlTL M|D4E* 59Fh F!F F{!  !Fl F}!@(M F I NFyD F~DJGh!F I FyDJG F3F]@G }M LM|D4FwEP]*49F F0"I FyD y I FyDsh(I FyDk F !hI FyDJ_!FI FyDJT(i!FiI FyDJH!F I FyDJ@;K 9% U 'LM|D4EP*49 FF F (i!F? F@^M FIMFyD F}DJGN!F~DGI FyDJG !FG I FyDJG!FG I F+FyDJ]@GO G4(UpGMFH FIxDyDh 0h FH IxDh0hF!F I FyDJ1h]>v9B/9~0ݺ FIF FyDth!F@eȺp F!FIJ-hyD#x1&s%39h(pG  K{DF K{DK{D1K{D2FF4 IuJKhzD{DS!0R!pG699T99xMFH FxDh0h({( I FyDJhhBiG F1h]2,9W JMFH FOxDiFh0h(F(BD)`1h]9MFh Fhh!FG I F NyD~DJG FGI F3FyDJ]@G[M F I NFyD F~DG FGI F3FyDJ]@G/йM FINFyD F~DG FG I FyDG!FI F3FyDJ]@G{ͼmM|F FF[!!F F]!@xB*x_*BB$x0 +0pG_* 00 *  aE 0: *pGBBFpG;0; +pG_+ pGp F!FIJ-hyD#h1&`19Fh FI FyDh!F@(еp F !_IJ#hyD1н$19h(pG K{D K{D K{D  K{D K{D K{D FF- JKhzD{DS!0R!pG"69@69θ i2hhh"#B$ pGhP" i2hhh"#B$ pGhP" i2hhh"#B$ pGhP" i2hhh"#B(pGhP"hhG i2hhh"#B(pGhP"hiGm FIF FyDJ!F`hX!hD >(I FyDJI FyDJ@ >Fh Fh!F@ oFh hRiG( FIF FyDJh!F@oFh hRiG 0F F IF FyD !F4 F]!@ݸf pG pGFh Fphh!FGh!F(I FyDJwh!F@  F&IF FyDJd!F!I FyDJYhh i!FGiI FyDJiI FyD @i@I FyD 6 (( IyD IyD F&i !F@U/ _xlMFh F; I F NyD~DG FGI F3FyDJ]@GwwF-F~HxD(FGzIF(FyDp0wI(FyDF_tI(FyDb(FJ(FBxE)@0(`p !IFfH_IxD09cI(FyD<б.FVqhO0F!F,BxE) (FT(hO 0(`)FBFIp!FKHBI#xD0HI(FyDBFxF*CB*`BxY)0(`(F FY 6N7L~D|D (F (HFAFBxE)"xv)0(`(F1F(F!F($  QN$$0(`)Fp !I JyD61JAav9zP ^/9Y/9l.9-FFHxDB=xU):0 `!FVBc;IyD (GpA ( !hhF!FeBF F(AЁFp!((I$JyD1e3 FF FIPFp!IyyD01`!0Vqq0F FpFp!I JyD1V  Q 9-9-9-9еp F! !Fнеp F!!Fн- #IFyD !HxDI FyD HxD I FyDHxDF F!%FEp!FHIxD05F(F O O~upgaO -9 F IF FyD h!FI FyDJ@r F IF FyD!F+ F)!@Խ_ pG pGеh Fhh!FGI FyDJ@r F(IF FyDJf !F#I FyDJ[hh i!FGhiI FyDMhiI FyD Chi@I FyD 9(~(( IyDIyD F*iH F !mi!F@T3 crjMFh F9 I F NyD~DJG FGI F3FyDJ]@G DFh FI FyDJ F@Ҹϳ,hhh$Fh Fhh!FGhI FyDh I FyD h@XI FyD @hhiGMF} FI FNyD~D G FGI F3FyDJ]@Gh!FI FyDehI*i F^F!FI FyDJ]@O!ENML%N |DuV])9L M|D4E)9 pG pGhhhGFHh F(!hD ](I FyDJI FyDJ"I F!F!F I FyDJhh i!F@G 02hFh Fhh!FGh!F h!F IyD IyDJ Fh!FI FyD@ק Fh F h!F(I FyDJhh i!F@Gn⺰ FF F{ F !(i!F@ͺhMhF F0y (0F{"I F"MyD}DG FGI F+FyDJ]@G0h!Fh0FGh!F(I FyDJ9h!F h!F( I FyDJ)I FyDJ]@ & MhF F0y (0F!]0F!FR h!FW(I FyDJhh i!F]@GmBеIyD h!hhy) JiFzD  "hQн9hFh Fhh!FGh!F( I FyDJh!F h!FIyDIyDJ F@eFH Fh F h!F(I FyDJuhh i!F@GlȹhFh Fhh!FGh!F( I FyDJRh!F h!FIyDIyD F@<G Fh F h!F(I FyDJ#hh i!F@GkvFh Fhh!FG F@dh+ # `#P `pGlм pGL#O O #`pG-FHFFxDFO hh _p@UFE _`  F !O_Ha-D08 (0HZ}E؀O10\A*̀ F!#O  AoB F !O H( F!#O  F ! !#O 8@" F!O})O O QooEsҊ2\ *}z F!#O . Z(\ъ1\R  @B*L1#AB F! O 9_p<!0#" FO )!0#% E%Ҋ  q\ E F !:rU#0\0@2   F! F!3 hQ9MhFF) 1 -0F)F"FC( +-0F- q0F"F( ] H@^6 I JxD KyD LzDh{D|Dd F F9e,MhFF) 9 , 2h(F!FC( +,(FI, #q(F( ] HOJv I JxD KyD LzDh{D|Dd Ft Fv\d9t~-FKHFFxD)/)o.PPF !E(I&O % 2F#h!PFx @ C6.: %F( PF !йOE B3Fh*F@hPF!H5(  Q.PF !( HOnv I JxD KyD LzDh{D|Dd F F99mU4FFFF F+Ph FF ) FFFFM mF#H fxDG 0FB `1F(FSnF(F1F+H  !F*FG(( (  W Q m], ` "F# T9- FF K)cpG)cpG )BcpG )@! pG H@T I JxD KyD MzDh{D}DE F@ FB(9OSF! Fа&ѕAع AH@B0 B`` H@e I JxD KyD LzDh{D|DT F FP9GRMF!FFFа(єAع AH@B0 B`t`X] H@f I JxD KyD LzDh{D|Dd F Fv9FHxDh(h x#F F*hQ8@ 0$9еF F@еFAH@HB(@ н- H FFxDFh(h FJxk J0FAFzD  *hQ ˌ9aFIFyD h)h!iF"( )!+h@29-FbHF%xD Vhbhb1!(wаBu hFP)h+%hF+YFCF3X0D?FEVCEOcO 3O O f.. .H:M#}D%3M}D%7M}D%C v V 63Fx-BFDBHBJDV!X>%%lQ% (F H@.6IxDJKyDLzDh{D|D H@56IJxDKyDLzD{Dh|Dd F F9j9z99!f99M}ihtFT^5FHFFDOTEoi]a*iHxDbb  HxDpGp($   HxDpGHxDpGvHxDpGuHxDpGuHxDpGtHxDpGtHxDpGsHxDpGsHxDpGrHxDpGrHxDpGqHxDpGqHxDpGpHxDpGpHxDpG`HxDpGnHxDpGmHxDpGmHxDpGlHxDpGlHxDpGkHxDpGkHxDpGjHxDpGjHxDpGiHxDpGiHxDpGhHxDpGhHxDpGgHxDpGgHxDpGfHxDpGfHxDpGeHxDpGeHxDpGdHxDpGdHxDpGcHxDpGcHxDpGbHxDpGbHxDpGaHxDpGaHxDpG`HxDpG`HxDpG_HxDpG_HxDpG^HxDpG_HxDpG^HxDpG^HxDpG]HxDpG]HxDpG\HxDpG\HxDpG[HxDpG[HxDpGZHxDpGZHxDpGYHxDpGYHxDpGXHxDpGXHxDpGWHxDpGWHxDpGVHxDpGVHxDpGUHxDpGUHxDpGTHxDpGTHxDpGSHxDpGSHxDpGRHxDpGRHxDpGs PHxDpGPHxDpGOHxDpGOHxDpG`r s r r r }r zr wr tr qr nr kr hr ||q q q q q q p p p p p p p p p p p p p p p p p p p p p p p p p p q p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p 4О</ / / / Q/#:P ?o/o C02 P@  !P@ !!P!@ #!!P@ !!P#2!///o b0/PQ @-@A/Q0  aB Q 00`BS /ooB  S0C !S0C !!S!1C "!S1C !S""!\`B/<`B/3//o b\3`B/PQ @-@A/!1#0@-@P40y JZtPe@ 0!"# 0!6U0Ơ! p6#6 r04W @D uΠ2S PE RΠ#SQZ|Q:Q:`l@*rU*\0@D1?o 0 0C S  b 1 b0@T0@@T @@ d010 @d d001046#!@PE 40 010ʰ#0E208Q00 FV100/0@-K2@P0/0@-K2@Q`B a43!/23/0@-MQ /0@-P /0@-QZpK2@!˰\    ! 0bà01@O ! 02BC< ",#pp@-̌!J#Z 4 5\ @D!VK 6R#2"<$!R \dUV@L*0b `VP0b ǠV`F P! !0b V`F P!!0b V`F P!,!0b V`F P!! R&^b1>!,°T \JUVp!@ Ptp@T:8#Z 4 5 4F 5 5Vm ``M@xPc{- Ѝ10/p1QQP!1/Ɛƒ /  0@-PpC--3#---3# *& *Z>>*SJ51:3////- 0BC Ѝ0RP1/BİCİ / @-PpC--3#---3#QO-`ppp`S rp0\@^P  06\oooo `U?o?o 0`c` UX 303:@X Pr 0V j T   U T! !`V@P Q V X0@pP "0# ЍSRO-`p9SOoOo @Qoo @a P5WV33: `V p(Tj V   0 W V11@T` p   Z 0R b0A1Q A1/ 0R bAQ0A/ /= /MxGFhMxGFGOxGFMxGFMxGF%OxGFHSNxGFQWxGF|]xGFlMxGF MxGF଎MxGFpMxGFTMxGFP~MxGFxGFMM4M4ДM 4M4M4M40MHL4LL4PL4TL40XL48\L4PXXL4XL4xp`L4@pL4`tL4pxL4xL4|L4L4$L4HL4L4L4lpL4L4L408L4fL4xM4M4M4 M40M4P M4^ZbjL4tL4M4M4ddM4(M4,M4T\4M4n8M4=a4@ @@a4 BBha44D0Da4dF`Fa4HHa4Jb4 MHb4NLb4Ntb4NVO`Otb4Pb4SSb4 UUb4WW$c4YYLc4$[ [tc4,](]c44_0_c4\aXac4ccd4eDd4h|d4id4id4 kd4kd4@ld4md4DnPnbnnnd4od4ppe4Hqxqe4lsp>v44?v4 @v4@v4AAv4AAv4Av4 Bv4ZBv4Bw4BB4C,w4\CdC4w4DEw4Gw4Gx4GG0x4bHTx4xHH`x4Hdx4Jhx4Klx4LLL`x4BN>NHNTx4NXx4O\x4P`x4zQQQTx4RRPx4@STx4SSSS@x4PTDx44U\P\(x4\]$x4`](x4]]$x4 ^&^ x4^$x4^^ x4D_L_x4_ x4___` x4P`x4````w4ax4bx4v~4~B>~4R~4XX~4~40~4ܵ~4 ~4vr~4~4Ķ~4~4f~4~4ȸ~4$~48~4L~4n~4~4ֹ~4~4κ@~4̻~4~4L^~4~4~40~4~4L~4~4~4J~4~4~4D~4~4~4 ~4D~4~4~444t~444<4 4lD4X4T4P4ZL4H4``X4\4`4\4`4d4h44|44*4>4L`4z4424vv4x4rt424:| 4 4&4444<4T4D4R44B4J444t444l444h 4$4(4,404&44j84<4D@444L4H4"D4~H4L4P4`T4X44\4X4:\4`4\4D`4d4`4d4Xh4d4"h4^l4h44J4l444Ā4.4VT4̀444Ȁ4܀44l44048H4`4x4X44ā4܁4x40 4$4<4\4l|4T4<4(܂44 4<4\444ȃ4t4\4D448X4(|444 4fh44H4Ȅ4,̄4TЄ4|tĄ44lp444Ld44؄4܄4H44d ,4 H4   T4    P4 T4, X48 h4 l4 |4< 4 4 4 4" 40 4 @ 4L 4X 4 4&4X4p4ԅ4h44444 484`4|T4P4@<DHL4h44P4Ԇ4,؆444H 4 484<44L4XP4p4,4x44PЇ44(424L4|444(4$4HX 4b`44484lP4T4$l4Tp4l444444 h`44 4l d p 4   4!H!@!4""4%4%4&4@&4'4h((4($)4P)H)`)X)؈4h)܈4 *4L*d*܈4+4+؈4@+8+:+++++4,,4 -4h-4-Ĉ4/Ȉ4(0̈4p0Ј41Ԉ41J2T2Ȉ43̈44Ј4D4Ԉ45؈4x5܈4864z646677Ј407Ԉ4X7`7\7Ȉ4|777777788 88|4p8h88p4999d4;x4;|4<4h<4x<4<4<4\B4B4B4K4K4NO4GetAlignedPointerFromInternalField(0)) == (nullptr)static node::PromiseWrap *node::PromiseWrap::New(node::Environment *, Local, node::PromiseWrap *, bool)420args[0]->IsNumber()static void node::AsyncWrap::QueueDestroyAsyncId(const FunctionCallbackInfo &)AsyncWrapgetAsyncIdasyncResetsetupHookspushAsyncIdspopAsyncIdsqueueDestroyAsyncIdenablePromiseHookdisablePromiseHookregisterDestroyHookasync_hook_fieldsasync_id_fieldsowner_symbolkInitkBeforekAfterkDestroykPromiseResolvekTotalskCheckkExecutionAsyncIdkTriggerAsyncIdkAsyncIdCounterkDefaultTriggerAsyncIdkStackLengthconstantsNONEDNSCHANNELFILEHANDLEFILEHANDLECLOSEREQFSEVENTWRAPFSREQWRAPFSREQPROMISEGETADDRINFOREQWRAPGETNAMEINFOREQWRAPHTTP2SESSIONHTTP2STREAMHTTP2PINGHTTP2SETTINGSHTTPPARSERJSSTREAMMESSAGEPORTPIPECONNECTWRAPPIPESERVERWRAPPIPEWRAPPROCESSWRAPPROMISEQUERYWRAPSHUTDOWNWRAPSIGNALWRAPSTATWATCHERSTREAMPIPETCPCONNECTWRAPTCPSERVERWRAPTCPWRAPTIMERWRAPTTYWRAPUDPSENDWRAPUDPWRAPWORKERWRITEWRAPZLIBPBKDF2REQUESTKEYPAIRGENREQUESTRANDOMBYTESREQUESTSCRYPTREQUESTTLSWRAPProviders562(provider) != (PROVIDER_NONE)node::AsyncWrap::AsyncWrap(node::Environment *, Local, node::AsyncWrap::ProviderType, double, bool)563(object->InternalFieldCount()) >= (1)executionAsyncIdtriggerAsyncId651!object.IsEmpty()static void node::AsyncWrap::EmitAsyncInit(node::Environment *, Local, Local, double, double)652!type.IsEmpty()731(env) != nullptrnode::async_context node::EmitAsyncInit(v8::Isolate *, Local, v8::Local, node::async_id) (:)771!obj.IsEmpty()static Local node::AsyncWrap::GetOwner(node::Environment *, Local)../src/env-inl.h../src/base_object-inl.h83(obj->InternalFieldCount()) > (0)static node::BaseObject *node::BaseObject::FromJSObject(v8::Local)321info.Data()->IsExternal()static node::Environment *node::Environment::GetCurrent(const v8::FunctionCallbackInfo &)129(async_id) >= (-1)void node::Environment::AsyncHooks::push_async_ids(double, double)130(trigger_async_id) >= (-1)Error: async hook stack has become corrupted (actual: %.f, expected: %.f) 287args[0]->IsObject()void node::SetupHooks(const FunctionCallbackInfo &)292env->async_hooks_init_function().IsEmpty()init303init_v->IsFunction()before304before_v->IsFunction()after305after_v->IsFunction()destroy306destroy_v->IsFunction()promise_resolve307promise_resolve_v->IsFunction()promiseisChainedPromise191(default_trigger_async_id) >= (0)node::Environment::AsyncHooks::DefaultTriggerAsyncIdScope::DefaultTriggerAsyncIdScope(node::Environment *, double)370void node::RegisterDestroyHook(const FunctionCallbackInfo &)371args[1]->IsNumber()372args[2]->IsObject()65args.IsConstructCall()static void node::AsyncWrapObject::New(const FunctionCallbackInfo &)66env->async_wrap_object_ctor_template()->HasInstance(args.This())67args[0]->IsUint32()37(false) == (object.IsEmpty())node::BaseObject::BaseObject(node::Environment *, v8::Local)38(object->InternalFieldCount()) > (0)817(insertion_info.second) == (true)void node::Environment::AddCleanupHook(void (*)(void *), void *)async_wrap../src/bootstrapper.cc31args[0]->IsFunction()void node::SetupProcessObject(const FunctionCallbackInfo &)44void node::SetupNextTick(const FunctionCallbackInfo &)runMicrotasksnode,node.promises,node.promises.rejectionsrejectionsunhandledhandledAfter116void node::SetupPromises(const FunctionCallbackInfo &)117args[1]->IsObject()kPromiseRejectWithNoHandlerkPromiseHandlerAddedAfterRejectkPromiseResolveAfterResolvedkPromiseRejectAfterResolved_setupProcessObject_setupNextTick_setupPromises_chdir_cpuUsage_hrtime_hrtimeBigInt_memoryUsage_rawDebug_umask_shouldAbortOnUncaughtToggle165bootstrapper->Set(env->context(), should_abort_on_uncaught_toggle, env->should_abort_on_uncaught_toggle().GetJSArray()) .FromJust()void node::SetupBootstrapObject(node::Environment *, Local)symbols../src/callback_scope.cc45!(expect == kRequireResource) || (!object.IsEmpty())node::InternalCallbackScope::InternalCallbackScope(node::Environment *, Local, const node::async_context &, node::InternalCallbackScope::ResourceExpectation)55(Environment::GetCurrent(env->isolate())) == (env)63(env->makecallback_depth()) >= (1)110(env_->execution_async_id()) == (0)void node::InternalCallbackScope::Close()111(env_->trigger_async_id()) == (0)../src/cares_wrap.cccares_wrapgetaddrinfogetnameinfocanonicalizeIPstrerrorAF_INETAF_INET6AF_UNSPECAI_ADDRCONFIGAI_V4MAPPEDQueryReqWrapqueryAnyqueryAqueryAaaaqueryCnamequeryMxqueryNsqueryTxtquerySrvqueryPtrqueryNaptrquerySoagetHostByAddrgetServerssetServerscancel1945void node::cares_wrap::(anonymous namespace)::GetAddrInfo(const FunctionCallbackInfo &)1946args[1]->IsString()1947args[2]->IsInt32()1948args[4]->IsBoolean()19700 && "bad address family"node,node.dns,node.dns.nativelookuphostnamefamilyipv4ipv6unspec../src/req_wrap-inl.h29(false) == (persistent().IsEmpty())virtual node::ReqWrap::~ReqWrap() [T = uv_getaddrinfo_s]126(req_wrap->original_callback_) == nullptrstatic node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_getaddrinfo_s, T = void (*)(uv_getaddrinfo_s *, int, addrinfo *)]396(request_waiting_) >= (0)void node::Environment::DecreaseWaitingRequestCounter()countverbatim1836(p->ai_socktype) == (1)auto node::cares_wrap::(anonymous namespace)::AfterGetAddrInfo(uv_getaddrinfo_t *, int, struct addrinfo *)::(anonymous class)::operator()(bool, bool) const2005void node::cares_wrap::(anonymous namespace)::GetNameInfo(const FunctionCallbackInfo &)20062007args[2]->IsUint32()2014uv_ip4_addr(*ip, port, reinterpret_cast(&addr)) == 0 || uv_ip6_addr(*ip, port, reinterpret_cast(&addr)) == 0lookupServiceipportvirtual node::ReqWrap::~ReqWrap() [T = uv_getnameinfo_s]static node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_getnameinfo_s, T = void (*)(uv_getnameinfo_s *, int, const char *, const char *)]service1936(0) == (uv_inet_ntop(af, &result, canonical_ip, sizeof(canonical_ip)))void node::cares_wrap::(anonymous namespace)::CanonicalizeIP(const FunctionCallbackInfo &)211static void node::cares_wrap::(anonymous namespace)::ChannelWrap::New(const FunctionCallbackInfo &)(args.Length()) == (0)361task && "When an ares socket is closed we should have a handle for it"void node::cares_wrap::(anonymous namespace)::ares_sockstate_cb(void *, ares_socket_t, int, int)channel../src/memory_tracker-inl.h246(CurrentNode()) == (n)void node::MemoryTracker::Track(const node::MemoryRetainer *, const char *)247(n->size_) != (0)27(retainer_) != nullptrnode::MemoryRetainerNode::MemoryRetainerNode(node::MemoryTracker *, const node::MemoryRetainer *)Node /261(channel->timer_handle()) == (handle)static void node::cares_wrap::(anonymous namespace)::ChannelWrap::AresTimeout(uv_timer_t *)262(false) == (channel->task_list()->empty())EADDRGETNETWORKPARAMSEBADFAMILYEBADFLAGSEBADHINTSEBADNAMEEBADQUERYEBADRESPEBADSTRECANCELLEDECONNREFUSEDEDESTRUCTIONEFILEEFORMERRELOADIPHLPAPIENODATAENOMEMENONAMEENOTFOUNDENOTIMPENOTINITIALIZEDEOFEREFUSEDESERVFAILETIMEOUTUNKNOWN_ARES_ERRORtask_listnode_ares_task_listuv_timer_t1793(false) == (args.IsConstructCall())void node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryAnyWrap]17941795resolveAny605virtual node::cares_wrap::(anonymous namespace)::QueryWrap::~QueryWrap()name679(0) == (uv_async_init(wrap->env()->event_loop(), async_handle, CaresAsyncCb))static void node::cares_wrap::(anonymous namespace)::QueryWrap::Callback(void *, int, int, unsigned char *, int)../src/util-inl.h383!(n > 0) || (ret != nullptr)T *node::Malloc(size_t) [T = unsigned char]327(b) == (ret / a)T node::MultiplyWithOverflowCheck(T, T) [T = unsigned int]730(status) != (0)void node::cares_wrap::(anonymous namespace)::QueryWrap::ParseError(int)error1222(naddrttls) == (a_count)virtual void node::cares_wrap::(anonymous namespace)::QueryAnyWrap::Parse(unsigned char *, int)1267(aaaa_count) == (naddr6ttls)8110 && "Bad NS type"int node::cares_wrap::(anonymous namespace)::ParseGeneralReply(node::Environment *, const unsigned char *, int, int *, Local, void *, int *)void node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryAWrap]resolve4void node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryAaaaWrap]resolve6void node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryCnameWrap]resolveCnamevoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryMxWrap]resolveMxvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryNsWrap]resolveNsvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryTxtWrap]resolveTxtvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QuerySrvWrap]resolveSrvvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryPtrWrap]resolvePtrvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QueryNaptrWrap]resolveNaptrvoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::QuerySoaWrap]resolveSoavoid node::cares_wrap::(anonymous namespace)::Query(const FunctionCallbackInfo &) [Wrap = node::cares_wrap::(anonymous namespace)::GetHostByAddrWrap]reverse706static void node::cares_wrap::(anonymous namespace)::QueryWrap::Callback(void *, int, int, struct hostent *)T *node::Malloc(size_t) [T = hostent]T *node::Malloc(size_t) [T = char]T *node::Malloc(size_t) [T = char *]2044(r) == (0)void node::cares_wrap::(anonymous namespace)::GetServers(const FunctionCallbackInfo &)2053(err) == (0)2077args[0]->IsArray()void node::cares_wrap::(anonymous namespace)::SetServers(const FunctionCallbackInfo &)2094arr->Get(env->context(), i).ToLocalChecked()->IsArray()2100elm->Get(env->context(), 0).ToLocalChecked()->Int32Value(env->context()).FromJust()2101elm->Get(env->context(), 1).ToLocalChecked()->IsString()2103elm->Get(env->context(), 2).ToLocalChecked()->Int32Value(env->context()).FromJust()21250 && "Bad address family."../src/node_mutex.h143(0) == (Traits::mutex_init(&mutex_))node::MutexBase::MutexBase() [Traits = node::LibuvMutexTraits]../src/connection_wrap.cc(wrap_data) != nullptrstatic void node::ConnectionWrap::OnConnection(uv_stream_t *, int) [WrapType = node::PipeWrap, UVType = uv_pipe_s](&wrap_data->handle_) == (reinterpret_cast(handle))46(wrap_data->persistent().IsEmpty()) == (false)static void node::ConnectionWrap::OnConnection(uv_stream_t *, int) [WrapType = node::TCPWrap, UVType = uv_tcp_s]82(req_wrap) != nullptrstatic void node::ConnectionWrap::AfterConnect(uv_connect_t *, int) [WrapType = node::PipeWrap, UVType = uv_pipe_s]84(req_wrap->env()) == (wrap->env())91(req_wrap->persistent().IsEmpty()) == (false)92(wrap->persistent().IsEmpty()) == (false)static void node::ConnectionWrap::AfterConnect(uv_connect_t *, int) [WrapType = node::TCPWrap, UVType = uv_tcp_s]../src/stream_base-inl.hvoid node::StreamResource::RemoveStreamListener(node::StreamListener *)101(current) != nullptrvirtual node::ReqWrap::~ReqWrap() [T = uv_connect_s]+ [:Luv loop at [%p] has active handles ../src/debug_utils.cc2990 && "uv_loop_close() while having open handles"void node::CheckedUvLoopClose(uv_loop_t *)[%p] %s Close callback: %p %s Data: %p %s (First field): %p %s node:alpnBuffernode:arrowMessagenode:contextify:contextnode:contextify:globalnode:decoratednode:napi:envnode:napi:wrappernode:sharedArrayBufferLifetimePartnerhandle_oncloseowneroninitaddressaliasesargsasyncasync_ids_stackbufferbytesbytesParsedbytesReadbytesWrittencachedDatacachedDataProducedcachedDataRejectedchangechunksSentSinceLastWriteoncertcbcodecwddestdestroyeddetachedAAAAACNAMEMXNAPTRNSPTRSOASRVTXTdurationemitWarningexchangeencodingentriesentryTypeenvPairsenvVarSettingserrnoexitCodeexpireexponentexportsext_key_usage_externalStream_fatalExceptionfdfilefingerprintfingerprint256flagsfragment_getDataCloneError_getSharedArrayBufferIdgidhandlehelpTexthomedirhosthostmasterignoreinfoAccessinheritinputinternalIPv4IPv6isClosingissuerissuerCertificatekillSignalkindmacmainmaxBuffermessagemessagePortMessagePortminttlmodulusnetmasknsnameOCSPRequestonaltsvconchangeonclienthellooncompleteonconnectionondoneonerroronexitonframeerrorongetpaddingonhandshakedoneonhandshakestartonheadersonmessageonnewsessiononocspresponseongoawaydataonoriginonpriorityonreadonreadstartonreadstoponpingonsettingsonshutdownonsignalonstreamcloseontrailersonunpipeonwriteopensslErrorStackoptionsoutputorderParse ErrorpasswordpathpendingHandlepidpipepipeTargetpipeSourceport1port2preferenceprioritypubkeyqueryraw_readHostObjectreadablerefreshregexprenamereplacementretryschemeserialscopeidserialNumberservernamesessionIdshellsignalsinksizeInvalid SNI contextsni_contextsourcestackstartTimestatusstdiosubjectsubjectaltnamesyscallthreadIdonticketkeycallbacktimeouttlsTicketttltypeuidurlusernamevalid_fromvalid_tovalueverifyErrorversionweightwindowsHidewindowsVerbatimArgumentswrapwritable_writeHostObjectwriteQueueSizex-forwarded-forZERO_RETURN../src/env.cc103(0) == (uv_key_create(&Environment::thread_local_env))void node::InitThreadLocalOnce()NODE_DEBUG_NATIVE175file_handle_read_wrap_freelist_.empty()node::Environment::~Environment()process(node:%d) WARNING: Detected use of sync API at [eval]:%i:%i at [eval] (%s:%i:%i) at %s:%i:%i at %s (%s:%i:%i) 541(now) >= (timer_base())Local node::Environment::GetNow()../src/aliased_buffer.h33(count) > (0)node::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t) [NativeT = unsigned char, V8T = v8::Uint8Array]390T *node::Calloc(size_t) [T = unsigned char]72(byte_offset & (sizeof(NativeT) - 1)) == (0)node::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t, const size_t, const AliasedBuffer &) [NativeT = double, V8T = v8::Float64Array]74(sizeof(NativeT) * count) <= (ab->ByteLength() - byte_offset)node::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t, const size_t, const AliasedBuffer &) [NativeT = unsigned int, V8T = v8::Uint32Array]EACCESEADDRINUSEEADDRNOTAVAILEAFNOSUPPORTEAGAINEALREADYEBADFEBADMSGEBUSYECANCELEDECHILDECONNABORTEDECONNRESETEDEADLKEDESTADDRREQEDOMEDQUOTEEXISTEFAULTEFBIGEHOSTUNREACHEIDRMEILSEQEINPROGRESSEINTREINVALEIOEISCONNEISDIRELOOPEMFILEEMLINKEMSGSIZEEMULTIHOPENAMETOOLONGENETDOWNENETRESETENETUNREACHENFILEENOBUFSENODEVENOENTENOEXECENOLINKENOLCKENOMSGENOPROTOOPTENOSPCENOSRENOSTRENOSYSENOTCONNENOTDIRENOTEMPTYENOTSOCKENOTSUPENOTTYENXIOEOVERFLOWEPERMEPIPEEPROTOEPROTONOSUPPORTEPROTOTYPEERANGEEROFSESPIPEESRCHESTALEETIMEETIMEDOUTETXTBSYEXDEVnode::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t) [NativeT = double, V8T = v8::Float64Array]T *node::Calloc(size_t) [T = double]node::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t) [NativeT = unsigned int, V8T = v8::Uint32Array]T *node::Calloc(size_t) [T = unsigned int]node::AliasedBuffer::AliasedBuffer(v8::Isolate *, const size_t) [NativeT = unsigned long long, V8T = v8::BigUint64Array]T *node::Calloc(size_t) [T = unsigned long long], '': -> '../src/fs_event_wrap.ccfs_event_wrapFSEventstartcloseinitialized127static void node::(anonymous namespace)::FSEventWrap::New(const FunctionCallbackInfo &)137(wrap) != nullptrstatic void node::(anonymous namespace)::FSEventWrap::Start(const FunctionCallbackInfo &)138wrap->IsHandleClosing()141(argc) >= (4)144(*path) != nullptr182static void node::(anonymous namespace)::FSEventWrap::OnEvent(uv_fs_event_t *, const char *, int, int)2030 && "bad fs events flag"static void node::(anonymous namespace)::FSEventWrap::GetInitialized(const FunctionCallbackInfo &)../src/handle_wrap.cc75virtual void node::HandleWrap::Close(Local)120static void node::HandleWrap::OnClose(uv_handle_t *)121(wrap->state_) == (kClosing)HandleWraphasRefrefunrefbuildEmbedderGraphcreateHeapDump../src/heap_utils.cc41!val.IsEmpty()node::heap::JSGraphJSNode::JSGraphJSNode(v8::Isolate *, Local)edgesisRootwrapsto heap_utils../src/js_stream.cc112(send_handle) == nullptrvirtual int node::JSStream::DoWrite(node::WriteWrap *, uv_buf_t *, size_t, uv_stream_t *)147static void node::JSStream::New(const FunctionCallbackInfo &)167Buffer::HasInstance(args[0])static void node::JSStream::ReadBuffer(const FunctionCallbackInfo &)JSStreamfinishWritefinishShutdownreadBufferemitEOFjs_stream30(req_wrap_obj->GetAlignedPointerFromInternalField(kStreamReqField)) == (nullptr)void node::StreamReq::AttachToObject(v8::Local)155static void node::JSStream::Finish(const FunctionCallbackInfo &) [Wrap = node::WriteWrap]158args[1]->IsInt32()static void node::JSStream::Finish(const FunctionCallbackInfo &) [Wrap = node::ShutdownWrap]readStartreadStopshutdownwritevwriteBufferwriteAsciiStringwriteUtf8StringwriteUcs2StringwriteLatin1String../src/module_wrap.ccstatic void node::loader::ModuleWrap::New(const FunctionCallbackInfo &)88(argc) >= (2)90args[0]->IsString()93105109(sandbox) != nullptr113args[3]->IsNumber()args[4]->IsNumber()try_catch.HasCaught()!try_catch.Message().IsEmpty()145!try_catch.Exception().IsEmpty()170(args.Length()) == (1)static void node::loader::ModuleWrap::Link(const FunctionCallbackInfo &)171linking error, expected resolver to return a promise233static void node::loader::ModuleWrap::Instantiate(const FunctionCallbackInfo &)234235252(args.Length()) == (2)static void node::loader::ModuleWrap::Evaluate(const FunctionCallbackInfo &)254257args[1]->IsBoolean()Script execution timed out.Script execution interrupted.cannot get namespace, Module has not been instantiated365static MaybeLocal node::loader::ModuleWrap::ResolveCallback(Local, Local, Local)linking error, unknown modulelinking error, null deplinking error, not in local cachelinking error, dependency promises must be resolved on instantiatelinking error, expected a valid module object from resolver/673static void node::loader::ModuleWrap::Resolve(const FunctionCallbackInfo &)675second argument is not a URL string744static void node::loader::ModuleWrap::SetImportModuleDynamicallyCallback(const FunctionCallbackInfo &)745755static void node::loader::ModuleWrap::HostInitializeImportMetaObjectCallback(Local, Local, Local)775static void node::loader::ModuleWrap::SetInitializeImportMetaObjectCallback(const FunctionCallbackInfo &)776linkinstantiateevaluatenamespacegetStatusgetErrorgetStaticDependencySpecifiersresolvesetImportModuleDynamicallyCallbacksetInitializeImportMetaObjectCallbackkUninstantiatedkInstantiatingkInstantiatedkEvaluatingkEvaluatedkErrored478(0) == (uv_fs_close(nullptr, &fs_req, fd, nullptr))Maybe node::loader::(anonymous namespace)::CheckFile(const std::string &, node::loader::(anonymous namespace)::CheckFileOptions)484513(0) == (uv_fs_close(nullptr, &fs_req, check.FromJust(), nullptr))const node::loader::PackageConfig &node::loader::(anonymous namespace)::GetPackageConfig(node::Environment *, const std::string &)index.mjs.js.json.nodenode_modules/ERR_INVALID_ARG_TYPEERR_MISSING_MODULE703MaybeLocal node::loader::ImportModuleDynamically(Local, Local, Local)import() called outside of main contextmodule_wrapresolve_cachepairstd::basic_stringSIGHUPSIGINTSIGQUITSIGILLSIGTRAPSIGABRTSIGBUSSIGFPESIGKILLSIGUSR1SIGSEGVSIGUSR2SIGPIPESIGALRMSIGTERMSIGCHLDSIGSTKFLTSIGCONTSIGSTOPSIGTSTPSIGTTINSIGTTOUSIGURGSIGXCPUSIGXFSZSIGVTALRMSIGPROFSIGWINCHSIGIOSIGPWRSIGSYS../src/node.cc628void node::AddPromiseHook(v8::Isolate *, node::promise_hook_func, void *)636void node::AddEnvironmentCleanupHook(v8::Isolate *, void (*)(void *), void *)645void node::RemoveEnvironmentCleanupHook(v8::Isolate *, void (*)(void *), void *)655!recv.IsEmpty()MaybeLocal node::InternalMakeCallback(node::Environment *, Local, const Local, int, Local *, node::async_context)MaybeLocal node::MakeCallback(v8::Isolate *, Local, Local, int, Local *, node::async_context)node-do-not-add-exception-line844(end) >= (start)void node::AppendExceptionLine(node::Environment *, Local, Local, enum ErrorHandlingMode)%s:%i %s 858(off) >= (0)878(off) <= (max_off) %s905err_obj->SetPrivate( env->context(), env->arrow_message_private_symbol(), arrow_str).FromMaybe(false)912!er.IsEmpty()void node::ReportException(node::Environment *, Local, Local)%s %s %s %s: %s %s %s: %s %s: %s:%s:%s%s Assertion `%s' failed. 1215(0) == (uv_key_create(&thread_local_modpending))void node::InitModpendingOnce()1369void node::FatalException(v8::Isolate *, Local, Local)1419!try_catch.HasTerminated()void node::FatalException(v8::Isolate *, const v8::TryCatch &)DeprecationWarningtitle1703process->SetAccessor( env->context(), title_string, ProcessTitleGetter, env->is_main_thread() ? ProcessTitleSetter : nullptr, env->as_external(), DEFAULT, None, SideEffectType::kHasNoSideEffect).FromJust()void node::SetupProcessObject(node::Environment *, const std::vector &, const std::vector &)v10.15.1versionshttp_parsernodev8uvzlib1.2.11ares1.15.0modulesnghttp21.34.0napiopensslarcharmplatformandroidreleaseltsDubniumsourceUrlhttps://nodejs.org/download/release/v10.15.1/node-v10.15.1.tar.gzheadersUrlhttps://nodejs.org/download/release/v10.15.1/node-v10.15.1-headers.tar.gzargvexecArgvenvfeaturesppid1852process->SetAccessor(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "ppid"), GetParentProcessId).FromJust()_eval_print_eval_syntax_check_only_forceRepl_preload_modulesnoDeprecationnoProcessWarningstraceProcessWarningsthrowDeprecationprofProcesstraceDeprecation_breakFirstLine_breakNodeFirstLine_deprecatedDebugBrk_invalidDebugexecPathdebugPort1989process->SetAccessor(env->context(), debug_port_string, DebugPortGetter, env->is_main_thread() ? DebugPortSetter : nullptr, env->as_external()).FromJust()_debugProcess_debugEnd_startProfilerIdleNotifier_stopProfilerIdleNotifierabortchdirumask_getActiveRequests_getActiveHandles_killdlopenreallyExituptimeinternal/bootstrap/loaders.jsinternal/bootstrap/node.jsglobal2212(sigaction(signal, &sa, nullptr)) == (0)void node::RegisterSignalHandler(int, void (*)(int), bool)--help--abort-on-uncaught-exception--abort_on_uncaught_exception--prof%s: bad option: %s NODE_PENDING_DEPRECATIONNODE_PRESERVE_SYMLINKSNODE_PRESERVE_SYMLINKS_MAINNODE_REDIRECT_WARNINGSOPENSSL_CONFNODE_OPTIONS2681void node::AtExit(node::Environment *, void (*)(void *), void *)beforeExitemit_exitingexit2989(argc) > (0)int node::Start(int, char **)NODE_EXTRA_CA_CERTS1114mp == nullptr || (mp->nm_flags & flag) != 0struct node_module *node::FindModule(struct node_module *, const char *, int)FATAL ERROR: %s %s FATAL ERROR: %s debugtls_alpntls_snitls_ocsptls1229(uv_key_get(&thread_local_modpending)) == nullptrvoid node::DLOpen(const FunctionCallbackInfo &)process.dlopen needs at least 2 arguments.flag argument must be an integer.Module did not self-register.The module '%s' was compiled against a different Node.js version using NODE_MODULE_VERSION %d. This version of Node.js requires NODE_MODULE_VERSION %d. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or `npm install`).Built-in module self-registered.Module has no declared entry point.node_register_module_v64napi_register_module_v12063bootstrapper_v.ToLocalChecked()->IsFunction()MaybeLocal node::GetBootstrapper(node::Environment *, Local, Local)1538void node::GetBinding(const FunctionCallbackInfo &)1550exports->SetPrototype(env->context(), Null(env->isolate())).FromJust()natives1516(mod->nm_register_func) == nullptrLocal node::InitModule(node::Environment *, node::node_module *, Local)1517(mod->nm_context_register_func) != nullptrNo such module: %s1596void node::GetLinkedBinding(const FunctionCallbackInfo &)No such module was linked: %sLinked module has no declared entry point.1565void node::GetInternalBinding(const FunctionCallbackInfo &)code_cachecode_cache_hashnatives_hashInvalid number of arguments.2223void node::DebugProcess(const FunctionCallbackInfo &)killError: Attempt to revert an unknown CVE [%s] /dev/null2382(0) == (sigaction(nr, &act, nullptr))void node::PlatformInit()__metadataprocess_name10.15.1thread_nameJavaScriptMainThread2.8.0642948(node_isolate) == nullptrint node::Start(uv_loop_t *, const std::vector &, const std::vector &)2975(node_isolate) == (isolate)inspectorT *node::Malloc(size_t) [T = const char *]../src/node_api.cc1258(node_env) != nullptrvoid napi_module_register_by_symbol(v8::Local, v8::Local, v8::Local, napi_addon_register_func)1270(((env))->open_handle_scopes) == (open_handle_scopes)(((env))->open_callback_scopes) == (open_callback_scopes)1373(env->last_error.error_code) <= (napi_callback_scope_mismatch)napi_status napi_get_last_error_info(napi_env, const napi_extended_error_info **)Maximum BigInt size exceededERR_NAPI_CONS_FUNCTIONConstructor must be a functionERR_NAPI_INVALID_TYPEDARRAY_LENGTHInvalid typed array lengthERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENTstart offset of Int16Array should be a multiple of 2start offset of Uint16Array should be a multiple of 2start offset of Int32Array should be a multiple of 4start offset of Uint32Array should be a multiple of 4start offset of Float32Array should be a multiple of 4start offset of Float64Array should be a multiple of 8start offset of BigInt64Array should be a multiple of 8start offset of BigUint64Array should be a multiple of 8ERR_NAPI_INVALID_DATAVIEW_ARGSbyte_offset + byte_length should be less than or equal to the size in bytes of the array passed in4126func != nullptrnapi_status napi_get_threadsafe_function_context(napi_threadsafe_function, void **)4127result != nullptr4137napi_status napi_call_threadsafe_function(napi_threadsafe_function, void *, napi_threadsafe_function_call_mode)4144napi_status napi_acquire_threadsafe_function(napi_threadsafe_function)4151napi_status napi_release_threadsafe_function(napi_threadsafe_function, napi_threadsafe_function_release_mode)4157napi_status napi_unref_threadsafe_function(napi_env, napi_threadsafe_function)4163napi_status napi_ref_threadsafe_function(napi_env, napi_threadsafe_function)763global->SetPrivate(context, NAPI_PRIVATE_KEY(context, env), external) .FromJust()napi_env (anonymous namespace)::v8impl::GetEnv(v8::Local)24(isolate) == (context->GetIsolate())napi_env__::napi_env__(v8::Local)25(node_env()) != nullptrInvalid argumentAn object was expectedA string was expectedA string or symbol was expectedA function was expectedA number was expectedA boolean was expectedAn array was expectedUnknown failureAn exception is pendingThe async work item was cancellednapi_escape_handle already called on scopeInvalid handle scope usageInvalid callback scope usageThread-safe function queue is fullThread-safe function handle is closingA bigint was expected576void (anonymous namespace)::v8impl::CallbackWrapperBase, &(anonymous namespace)::v8impl::CallbackBundle::function_or_getter>::InvokeCallback() [Info = v8::FunctionCallbackInfo, FunctionField = &(anonymous namespace)::v8impl::CallbackBundle::function_or_getter]void (anonymous namespace)::v8impl::CallbackWrapperBase, &(anonymous namespace)::v8impl::CallbackBundle::function_or_getter>::InvokeCallback() [Info = v8::PropertyCallbackInfo, FunctionField = &(anonymous namespace)::v8impl::CallbackBundle::function_or_getter]void (anonymous namespace)::v8impl::CallbackWrapperBase, &(anonymous namespace)::v8impl::CallbackBundle::setter>::InvokeCallback() [Info = v8::PropertyCallbackInfo, FunctionField = &(anonymous namespace)::v8impl::CallbackBundle::setter]]816obj->DeletePrivate(context, NAPI_PRIVATE_KEY(context, wrapper)) .FromJust()napi_status (anonymous namespace)::v8impl::Unwrap(napi_env, napi_value, void **, (anonymous namespace)::v8impl::UnwrapAction)466static void (anonymous namespace)::v8impl::Reference::FinalizeCallback(const v8::WeakCallbackInfo &)(((finalizer->_env))->open_handle_scopes) == (open_handle_scopes)static void (anonymous namespace)::v8impl::Finalizer::FinalizeBufferCallback(char *, void *)(((finalizer->_env))->open_callback_scopes) == (open_callback_scopes)../src/node_internals.h505node::ThreadPoolWork::ThreadPoolWork(node::Environment *)3892((env)->open_handle_scopes) == (open_handle_scopes)virtual void (anonymous namespace)::uvimpl::Work::AfterThreadPoolWork(int)((env)->open_callback_scopes) == (open_callback_scopes)534(status) == (0)void node::ThreadPoolWork::ScheduleWork()ERR_NAPI_TSFN_CALL_JSFailed to call JS callback961(napi_get_uv_event_loop(env, &loop)) == (napi_ok)napi_status (anonymous namespace)::v8impl::ThreadSafeFunction::Init()ERR_NAPI_TSFN_START_IDLE_LOOPFailed to start the idle loop1069napi_throw_error(env, "ERR_NAPI_TSFN_START_IDLE_LOOP", "Failed to start the idle loop") == napi_okvoid (anonymous namespace)::v8impl::ThreadSafeFunction::MaybeStartIdle()ERR_NAPI_TSFN_STOP_IDLE_LOOPFailed to stop the idle loop1051napi_throw_error(env, "ERR_NAPI_TSFN_STOP_IDLE_LOOP", "Failed to stop the idle loop") == napi_okvoid (anonymous namespace)::v8impl::ThreadSafeFunction::DispatchOne()118(0) == (Traits::cond_init(&cond_))node::ConditionVariableBase::ConditionVariableBase() [Traits = node::LibuvMutexTraits]1231obj->SetPrivate(context, NAPI_PRIVATE_KEY(context, wrapper), v8::External::New(env->isolate, reference)).FromJust()napi_status (anonymous namespace)::v8impl::Wrap(napi_env, napi_value, void *, napi_finalize, void *, napi_ref *) [wrap_type = (anonymous namespace)::v8impl::retrievable]../src/node_buffer.ccval->IsArrayBufferView()char *node::Buffer::Data(Local)219obj->IsArrayBufferView()char *node::Buffer::Data(Local)227size_t node::Buffer::Length(Local)size_t node::Buffer::Length(Local)258actual <= lengthMaybeLocal node::Buffer::New(v8::Isolate *, Local, enum encoding)282MaybeLocal node::Buffer::New(v8::Isolate *, size_t)325MaybeLocal node::Buffer::Copy(v8::Isolate *, const char *, size_t)343(data) != nullptrMaybeLocal node::Buffer::Copy(node::Environment *, const char *, size_t)375MaybeLocal node::Buffer::New(v8::Isolate *, char *, size_t, node::Buffer::FreeCallback, void *)414MaybeLocal node::Buffer::New(v8::Isolate *, char *, size_t)424MaybeLocal node::Buffer::New(node::Environment *, char *, size_t)425length <= kMaxLength(data_) == (static_cast(obj_c.Data()))node::Buffer::(anonymous namespace)::CallbackInfo::CallbackInfo(v8::Isolate *, Local, node::Buffer::FreeCallback, char *, void *)146(data_) != nullptrsetupBufferJScreateFromStringbyteLengthUtf8copycomparecompareOffsetfillindexOfBufferindexOfNumberindexOfStringswap16swap32swap64encodeUtf8StringkMaxLengthkStringMaxLength1047void node::Buffer::(anonymous namespace)::SetupBufferJS(const FunctionCallbackInfo &)asciiSlicebase64Slicelatin1SlicehexSliceucs2Sliceutf8SliceasciiWritebase64Writelatin1WritehexWriteucs2Writeutf8Write1066zeroFill1073binding_object->Set(env->context(), name, value).FromJust()argument must be a buffer457(args.This())->IsArrayBufferView()void node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::ASCII](ts_obj_data) != (nullptr)472!error.IsEmpty()Index out of rangeERR_INDEX_OUT_OF_RANGEvoid node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::BASE64]void node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::BINARY]void node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::HEX]void node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::UCS2]void node::Buffer::(anonymous namespace)::StringSlice(const FunctionCallbackInfo &) [encoding = node::UTF8]619void node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::ASCII]argument must be a string"offset" is outside of buffer boundsERR_BUFFER_OUT_OF_BOUNDSvoid node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::BASE64]void node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::BINARY]void node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::HEX]void node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::UCS2]void node::Buffer::(anonymous namespace)::StringWrite(const FunctionCallbackInfo &) [encoding = node::UTF8]439void node::Buffer::(anonymous namespace)::CreateFromString(const FunctionCallbackInfo &)440653void node::Buffer::(anonymous namespace)::ByteLengthUtf8(const FunctionCallbackInfo &)488(buffer_obj)->IsArrayBufferView()void node::Buffer::(anonymous namespace)::Copy(const FunctionCallbackInfo &)489(target_obj)->IsArrayBufferView()(target_data) != (nullptr)723(args[0])->IsArrayBufferView()void node::Buffer::(anonymous namespace)::Compare(const FunctionCallbackInfo &)(obj_a_data) != (nullptr)724(args[1])->IsArrayBufferView()(obj_b_data) != (nullptr)681void node::Buffer::(anonymous namespace)::CompareOffset(const FunctionCallbackInfo &)682701(source_start) <= (source_end)702(target_start) <= (target_end)524void node::Buffer::(anonymous namespace)::Fill(const FunctionCallbackInfo &)(fill_obj_data) != (nullptr)221(nbytes % 2) == (0)void node::SwapBytes16(char *, size_t)889void node::Buffer::(anonymous namespace)::IndexOfBuffer(const FunctionCallbackInfo &)890args[2]->IsNumber()891899900(buf_data) != (nullptr)928(offset) < (haystack_length)../src/string_search.hlength > 0 && data != nullptrnode::stringsearch::Vector::Vector(T *, size_t, bool) [T = const unsigned short]280(1) == (pattern_.length())size_t node::stringsearch::StringSearch::SingleCharSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned short]216(pos) <= (max_n)size_t node::stringsearch::FindFirstCharacter(Vector, Vector, size_t) [Char = unsigned short]217(max_n - pos) <= ((4294967295U) / sizeof(Char))220(pos) <= (subject.length())(subject.length() - pos) <= ((4294967295U) / sizeof(Char))293(pattern_.length()) > (1)size_t node::stringsearch::StringSearch::LinearSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned short](i) <= (n)size_t node::stringsearch::StringSearch::InitialSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned short]node::stringsearch::Vector::Vector(T *, size_t, bool) [T = const unsigned char]size_t node::stringsearch::StringSearch::SingleCharSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned char]size_t node::stringsearch::StringSearch::LinearSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned char]size_t node::stringsearch::StringSearch::InitialSearch(node::stringsearch::StringSearch::Vector, size_t) [Char = unsigned char]963args[1]->IsUint32()void node::Buffer::(anonymous namespace)::IndexOfNumber(const FunctionCallbackInfo &)964965args[3]->IsBoolean()968979(offset) < (ts_obj_length)void node::Buffer::(anonymous namespace)::IndexOfString(const FunctionCallbackInfo &)777782815996void node::Buffer::(anonymous namespace)::Swap16(const FunctionCallbackInfo &)1005void node::Buffer::(anonymous namespace)::Swap32(const FunctionCallbackInfo &)245(nbytes % 4) == (0)void node::SwapBytes32(char *, size_t)1014void node::Buffer::(anonymous namespace)::Swap64(const FunctionCallbackInfo &)269(nbytes % 8) == (0)void node::SwapBytes64(char *, size_t)1025(args.Length()) >= (1)void node::Buffer::(anonymous namespace)::EncodeUtf8String(const FunctionCallbackInfo &)1026376T *node::Realloc(T *, size_t) [T = char]../src/node_config.ccconfigpreserveSymlinkspreserveSymlinksMainexperimentalModulesuserLoaderexperimentalVMModulesexperimentalWorkerexperimentalREPLAwaitpendingDeprecationexposeInternalsshouldAbortOnUncaughtExceptionbitswarningFiledebugOptionsinspectorEnabled../src/node_constants.cc1302os_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()void node::DefineConstants(v8::Isolate *, Local)1306err_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1310sig_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1314priority_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1318fs_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1322crypto_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1326zlib_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1330dlopen_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()1334trace_constants->SetPrototype(env->context(), Null(env->isolate())).FromJust()UV_UDP_REUSEADDRsignalsosfscryptotraceE2BIGEOPNOTSUPPEWOULDBLOCKSIGIOTSIGPOLLSIGUNUSEDPRIORITY_LOWPRIORITY_BELOW_NORMALPRIORITY_NORMALPRIORITY_ABOVE_NORMALPRIORITY_HIGHPRIORITY_HIGHESTUV_FS_SYMLINK_DIRUV_FS_SYMLINK_JUNCTIONO_RDONLYO_WRONLYO_RDWRUV_DIRENT_UNKNOWNUV_DIRENT_FILEUV_DIRENT_DIRUV_DIRENT_LINKUV_DIRENT_FIFOUV_DIRENT_SOCKETUV_DIRENT_CHARUV_DIRENT_BLOCKS_IFMTS_IFREGS_IFDIRS_IFCHRS_IFBLKS_IFIFOS_IFLNKS_IFSOCKO_CREATO_EXCLO_NOCTTYO_TRUNCO_APPENDO_DIRECTORYO_NOATIMEO_NOFOLLOWO_SYNCO_DSYNCO_DIRECTO_NONBLOCKS_IRWXUS_IRUSRS_IWUSRS_IXUSRS_IRWXGS_IRGRPS_IWGRPS_IXGRPS_IRWXOS_IROTHS_IWOTHS_IXOTHF_OKR_OKW_OKX_OKUV_FS_COPYFILE_EXCLCOPYFILE_EXCLUV_FS_COPYFILE_FICLONECOPYFILE_FICLONEUV_FS_COPYFILE_FICLONE_FORCECOPYFILE_FICLONE_FORCEOPENSSL_VERSION_NUMBERSSL_OP_ALLSSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATIONSSL_OP_CIPHER_SERVER_PREFERENCESSL_OP_CISCO_ANYCONNECTSSL_OP_COOKIE_EXCHANGESSL_OP_CRYPTOPRO_TLSEXT_BUGSSL_OP_DONT_INSERT_EMPTY_FRAGMENTSSSL_OP_EPHEMERAL_RSASSL_OP_LEGACY_SERVER_CONNECTSSL_OP_MICROSOFT_BIG_SSLV3_BUFFERSSL_OP_MICROSOFT_SESS_ID_BUGSSL_OP_MSIE_SSLV2_RSA_PADDINGSSL_OP_NETSCAPE_CA_DN_BUGSSL_OP_NETSCAPE_CHALLENGE_BUGSSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUGSSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUGSSL_OP_NO_COMPRESSIONSSL_OP_NO_QUERY_MTUSSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATIONSSL_OP_NO_SSLv2SSL_OP_NO_SSLv3SSL_OP_NO_TICKETSSL_OP_NO_TLSv1SSL_OP_NO_TLSv1_1SSL_OP_NO_TLSv1_2SSL_OP_PKCS1_CHECK_1SSL_OP_PKCS1_CHECK_2SSL_OP_SINGLE_DH_USESSL_OP_SINGLE_ECDH_USESSL_OP_SSLEAY_080_CLIENT_DH_BUGSSL_OP_SSLREF2_REUSE_CERT_TYPE_BUGSSL_OP_TLS_BLOCK_PADDING_BUGSSL_OP_TLS_D5_BUGSSL_OP_TLS_ROLLBACK_BUGENGINE_METHOD_RSAENGINE_METHOD_DSAENGINE_METHOD_DHENGINE_METHOD_RANDENGINE_METHOD_ECENGINE_METHOD_CIPHERSENGINE_METHOD_DIGESTSENGINE_METHOD_PKEY_METHSENGINE_METHOD_PKEY_ASN1_METHSENGINE_METHOD_ALLENGINE_METHOD_NONEDH_CHECK_P_NOT_SAFE_PRIMEDH_CHECK_P_NOT_PRIMEDH_UNABLE_TO_CHECK_GENERATORDH_NOT_SUITABLE_GENERATORALPN_ENABLEDRSA_PKCS1_PADDINGRSA_SSLV23_PADDINGRSA_NO_PADDINGRSA_PKCS1_OAEP_PADDINGRSA_X931_PADDINGRSA_PKCS1_PSS_PADDINGRSA_PSS_SALTLEN_DIGESTRSA_PSS_SALTLEN_MAX_SIGNRSA_PSS_SALTLEN_AUTOPOINT_CONVERSION_COMPRESSEDPOINT_CONVERSION_UNCOMPRESSEDPOINT_CONVERSION_HYBRIDdefaultCoreCipherListECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIAdefaultCipherListINT_MAXRTLD_LAZYRTLD_NOWRTLD_GLOBALRTLD_LOCALTRACE_EVENT_PHASE_BEGINTRACE_EVENT_PHASE_ENDTRACE_EVENT_PHASE_COMPLETETRACE_EVENT_PHASE_INSTANTTRACE_EVENT_PHASE_ASYNC_BEGINTRACE_EVENT_PHASE_ASYNC_STEP_INTOTRACE_EVENT_PHASE_ASYNC_STEP_PASTTRACE_EVENT_PHASE_ASYNC_ENDTRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGINTRACE_EVENT_PHASE_NESTABLE_ASYNC_ENDTRACE_EVENT_PHASE_NESTABLE_ASYNC_INSTANTTRACE_EVENT_PHASE_FLOW_BEGINTRACE_EVENT_PHASE_FLOW_STEPTRACE_EVENT_PHASE_FLOW_ENDTRACE_EVENT_PHASE_METADATATRACE_EVENT_PHASE_COUNTERTRACE_EVENT_PHASE_SAMPLETRACE_EVENT_PHASE_CREATE_OBJECTTRACE_EVENT_PHASE_SNAPSHOT_OBJECTTRACE_EVENT_PHASE_DELETE_OBJECTTRACE_EVENT_PHASE_MEMORY_DUMPTRACE_EVENT_PHASE_MARKTRACE_EVENT_PHASE_CLOCK_SYNCTRACE_EVENT_PHASE_ENTER_CONTEXTTRACE_EVENT_PHASE_LEAVE_CONTEXTTRACE_EVENT_PHASE_LINK_IDSCould not instantiate contextmakeContextisContextcompileFunction../src/node_contextify.cc218(args.Length()) == (5)static void node::contextify::ContextifyContext::MakeContext(const FunctionCallbackInfo &)226!sandbox->HasPrivate( env->context(), env->contextify_context_private_symbol()).FromJust()230args[2]->IsString() || args[2]->IsUndefined()238241265static void node::contextify::ContextifyContext::IsContext(const FunctionCallbackInfo &)static void node::contextify::ContextifyContext::CompileFunction(const FunctionCallbackInfo &)972976982args[4]->IsUint8Array()987args[5]->IsBoolean()993args[6]->IsObject()9971006args[7]->IsArray()1013args[8]->IsArray()1044val->IsObject()1055val->IsString() createCachedDatarunInContextrunInThisContext625static void node::contextify::ContextifyScript::New(const FunctionCallbackInfo &)630633(argc) == (7)646648654657661node,node.vm,node.vm.scriptContextifyScript::Newfilename804(args.Length()) == (4)static void node::contextify::ContextifyScript::RunInContext(const FunctionCallbackInfo &)806(contextify_context) != nullptrRunInContext819822args[2]->IsBoolean()825Script methods can only be called on script instances.RunInThisContext780(args.Length()) == (3)static void node::contextify::ContextifyScript::RunInThisContext(const FunctionCallbackInfo &)785788contextify../src/node_domain.cc18void node::domain::Enable(const FunctionCallbackInfo &)enabledomain16letin1naryfferutf8utf-8asciibase64ucs2ucs-2utf16leutf-16lelatin1binaryhex../src/node_encoding.cc!encoding_v.IsEmpty()enum encoding node::ParseEncoding(v8::Isolate *, Local, enum encoding)106(encoding) != (UCS2)Local node::Encode(v8::Isolate *, const char *, size_t, enum encoding)../src/node_file.ccstatic void node::fs::FileHandle::New(const FunctionCallbackInfo &)args[0]->IsInt32()!closing_virtual node::fs::FileHandle::~FileHandle()closed_file_handle447void node::fs::NewFSReqWrap(const FunctionCallbackInfo &)(wrap_->req()) == (req)node::fs::FSReqAfterScope::FSReqAfterScope(node::fs::FSReqBase *, uv_fs_t *)795void node::fs::Access(const FunctionCallbackInfo &)797801access808(argc) == (4)node,node.fs,node.fs.syncfs.sync.access821void node::fs::Close(const FunctionCallbackInfo &)823831(argc) == (3)fs.sync.closeopenopenFileHandlereadfdatasyncfsyncftruncatermdirmkdirreaddirinternalModuleReadJSONinternalModuleStatstatlstatfstatsymlinkreadlinkunlinkwriteBufferswriteStringrealpathcopyFilechmodfchmodchownfchownlchownutimesfutimesmkdtempkFsStatsFieldsLengthstatValuesbigintStatValuesFileHandleReqWrapreleaseFDFileHandleCloseRequse promiseskUsePromisesClosing file descriptor %d on garbage collection failedClosing file descriptor %d on garbage collection!maybe_resolver.IsEmpty()MaybeLocal node::fs::FileHandle::ClosePromise()!reading_virtual node::ReqWrap::~ReqWrap() [T = uv_fs_s]236(close) != nullptrauto node::fs::FileHandle::ClosePromise()::(anonymous class)::operator()(uv_fs_t *) constuv_buf_t342(handle->current_read_.get()) == (req_wrap)auto node::fs::FileHandle::ReadStart()::(anonymous class)::operator()(uv_fs_t *) const../src/node_file.h168finished_virtual node::fs::FSReqPromise::~FSReqPromise() [NativeT = unsigned long long, V8T = v8::BigUint64Array]continuation_datavirtual node::fs::FSReqPromise::~FSReqPromise() [NativeT = double, V8T = v8::Float64Array]paths(paths.size()) > (0)std::string node::fs::FSContinuationData::PopPath()1594(argc) >= (3)void node::fs::Open(const FunctionCallbackInfo &)1597159916021610(argc) == (5)fs.sync.open!has_data_void node::fs::FSReqBase::Init(const char *, const char *, size_t, enum encoding)../src/util.h313!IsInvalidated()void node::MaybeStackBuffer::AllocateSufficientStorage(size_t) [T = char, kStackStorageSize = 64]334(length + 1) <= (capacity())void node::MaybeStackBuffer::SetLengthAndZeroTerminate(size_t) [T = char, kStackStorageSize = 64]328(length) <= (capacity())void node::MaybeStackBuffer::SetLength(size_t) [T = char, kStackStorageSize = 64]static node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_fs_s, T = void (*)(uv_fs_s *)]1625void node::fs::OpenFileHandle(const FunctionCallbackInfo &)16281630163316411901(argc) >= (5)void node::fs::Read(const FunctionCallbackInfo &)19031906Buffer::HasInstance(args[1])19111913(off) < (buffer_length)1915args[3]->IsInt32()1917Buffer::IsWithinBounds(off, len, buffer_length)19191930fs.sync.read1175void node::fs::Fdatasync(const FunctionCallbackInfo &)11771185fs.sync.fdatasync1197void node::fs::Fsync(const FunctionCallbackInfo &)11991207fs.sync.fsync1123void node::fs::Rename(const FunctionCallbackInfo &)1126(*old_path) != nullptr1128(*new_path) != nullptr1136fs.sync.rename1149void node::fs::FTruncate(const FunctionCallbackInfo &)115111541162fs.sync.ftruncate1241void node::fs::RMDir(const FunctionCallbackInfo &)12441251fs.sync.rmdir1390void node::fs::MKDir(const FunctionCallbackInfo &)1393139513981406fs.sync.mkdir1469void node::fs::ReadDir(const FunctionCallbackInfo &)1472scandir1488fs.sync.readdir1498(req_wrap_sync.req.result) >= (0)848void node::fs::InternalModuleReadJSON(const FunctionCallbackInfo &)"main"864(0) == (uv_fs_close(loop, &close_req, fd, nullptr))auto node::fs::InternalModuleReadJSON(const FunctionCallbackInfo &)::(anonymous class)::operator()(...) const914void node::fs::InternalModuleStat(const FunctionCallbackInfo &)932void node::fs::Stat(const FunctionCallbackInfo &)935943fs.sync.stat962void node::fs::LStat(const FunctionCallbackInfo &)973fs.sync.lstatvoid node::fs::FStat(const FunctionCallbackInfo &)9951004fs.sync.fstat1053void node::fs::Link(const FunctionCallbackInfo &)1056(*src) != nullptr1059(*dest) != nullptrfs.sync.link1024void node::fs::Symlink(const FunctionCallbackInfo &)1027(*target) != nullptr102910311039fs.sync.symlink1080void node::fs::ReadLink(const FunctionCallbackInfo &)10831092fs.sync.readlink1219void node::fs::Unlink(const FunctionCallbackInfo &)fs.sync.unlink1701void node::fs::WriteBuffer(const FunctionCallbackInfo &)170617111713(off) <= (buffer_length)171517171718(len) <= (buffer_length)1719(off + len) >= (off)write1731fs.sync.write1753void node::fs::WriteBuffers(const FunctionCallbackInfo &)17551758args[1]->IsArray()1767Buffer::HasInstance(chunk)1776T *node::Realloc(T *, size_t) [T = uv_buf_t]288(index) < (length())T &node::MaybeStackBuffer::operator[](size_t) [T = uv_buf_t, kStackStorageSize = 1024]1800void node::fs::WriteString(const FunctionCallbackInfo &)18021862(argc) == (6)1425void node::fs::RealPath(const FunctionCallbackInfo &)14281437fs.sync.realpath1661void node::fs::CopyFile(const FunctionCallbackInfo &)166416671669copyfile1678fs.sync.copyfilevoid node::fs::Chmod(const FunctionCallbackInfo &)195119531961fs.sync.chmod1978void node::fs::FChmod(const FunctionCallbackInfo &)198019831991fs.sync.fchmod2008void node::fs::Chown(const FunctionCallbackInfo &)2011201320162024fs.sync.chown2041void node::fs::FChown(const FunctionCallbackInfo &)2043204620492057fs.sync.fchown2071void node::fs::LChown(const FunctionCallbackInfo &)2074207620792087fs.sync.lchownvoid node::fs::UTimes(const FunctionCallbackInfo &)210421062109utime2117fs.sync.utimes2130void node::fs::FUTimes(const FunctionCallbackInfo &)213221352138futime2146fs.sync.futimes2160void node::fs::Mkdtemp(const FunctionCallbackInfo &)2163(*tmpl) != nullptr2172fs.sync.mkdtempcurrent_read../src/node_http2.cc85!session_handle_.IsEmpty()node::http2::Http2Scope::Http2Scope(node::http2::Http2Session *)setting header table size: %d setting max concurrent streams: %d setting max frame size: %d setting initial window size: %d setting max header list size: %d setting enable push: %d setting enable connect protocol: %d 319(nghttp2_submit_settings(**session_, NGHTTP2_FLAG_NONE, &entries_[0], count_)) == (0)void node::http2::Http2Session::Http2Settings::Send()Http2Priority: parent: %d, weight: %d, exclusive: %d 373(header_string_len) == (0)node::http2::Headers::Headers(v8::Isolate *, Local, Local)389(header_contents + header_string_len) <= (*buf_ + buf_.length())(header_string.As()->WriteOneByte( isolate, reinterpret_cast(header_contents), 0, header_string_len, String::NO_NULL_TERMINATION)) == (header_string_len)428(origin_string_len) == (0)node::http2::Origins::Origins(v8::Isolate *, Local, Local, size_t)(origin_contents + origin_string_len) <= (*buf_ + buf_.length())454(origin_string->WriteOneByte( isolate, reinterpret_cast(origin_contents), 0, origin_string_len, String::NO_NULL_TERMINATION)) == (origin_string_len)639(fn(&session_, callbacks, this, *opts, *allocator_info)) == (0)node::http2::Http2Session::Http2Session(node::Environment *, Local, node::http2::nghttp2_session_type)(flags_ & SESSION_STATE_HAS_SCOPE) == (0)virtual node::http2::Http2Session::~Http2Session()freeing nghttp2 session(current_nghttp2_memory_) == (0)closing sessionterminating session with code %d751(nghttp2_session_terminate_session(session_, code)) == (0)void node::http2::Http2Session::Close(uint32_t, bool)using frame size padding: %dusing max frame size padding: %dusing callback to determine paddingusing padding size %dreceiving %d bytes [wants data? %d]881(ret) != (NGHTTP2_ERR_NOMEM)ssize_t node::http2::Http2Session::Write(const uv_buf_t *, size_t)beginning headers for stream %dcomplete frame received: type: %dinvalid frame received, code: %dframe type %d was not sent, code: %dstream %d closed with code: %dbuffering data chunk for stream %d, size: %d, flags: %d(nghttp2_session_consume_connection(handle, len)) == (0)static int node::http2::Http2Session::OnDataChunkReceived(nghttp2_session *, uint8_t, int32_t, const uint8_t *, size_t, void *)Error '%.*s'Remote peer returned unexpected data while we expected SETTINGS frame. Perhaps, peer does not support HTTP/2 properly.1250!session->stream_buf_ab_.IsEmpty()virtual void node::http2::Http2StreamListener::OnStreamRead(ssize_t, const uv_buf_t &)(offset) <= (session->stream_buf_.len)1259(offset + buf.len) <= (session->stream_buf_.len)handle headers frame for stream %dhandle priority frame for stream %dhandling data frame for stream %dhandling goaway framehandling altsvc framehandling origin framewrite finished with status %d1542(flags_ & SESSION_STATE_WRITE_SCHEDULED) == (0)void node::http2::Http2Session::MaybeScheduleWrite()scheduling writewants read? %d1576(flags_ & SESSION_STATE_SENDING) != (0)void node::http2::Http2Session::ClearOutgoing(int)sending pending data1648(outgoing_buffers_.size()) == (0)uint8_t node::http2::Http2Session::SendPendingData()1649(outgoing_storage_.size()) == (0)nghttp2 has %d bytes to send1658(src_length) != (NGHTTP2_ERR_NOMEM)1726(padding_byte) == (frame->data.padlen - 1)static int node::http2::Http2Session::OnSendData(nghttp2_session *, nghttp2_frame *, const uint8_t *, size_t, nghttp2_data_source *, void *)nghttp2 has %d bytes to send directly1734!stream->queue_.empty()submitting request(*ret) != (NGHTTP2_ERR_NOMEM)node::http2::Http2Stream *node::http2::Http2Session::SubmitRequest(nghttp2_priority_spec *, nghttp2_nv *, size_t, int32_t *, int)1787(stream_) != nullptrvirtual void node::http2::Http2Session::OnStreamRead(ssize_t, const uv_buf_t &)receiving %d bytes1790stream_buf_ab_.IsEmpty()1801(stream_buf_.base) == nullptr(stream_buf_.len) == (0)1812(static_cast(nread)) <= (stream_buf_.len)fatal error receiving data: %di/o stream consumedtearing down streamHttpStream ) [starting headers, category: %d1929!this->IsDestroyed()void node::http2::Http2Stream::StartHeaders(nghttp2_headers_category)1941void node::http2::Http2Stream::Close(int32_t)closed with code %d1955(nghttp2_session_resume_data(**session_, id_)) != (NGHTTP2_ERR_NOMEM)virtual int node::http2::Http2Stream::DoShutdown(node::ShutdownWrap *)writable side shutdowndestroying streamint node::http2::Http2Stream::SubmitResponse(nghttp2_nv *, size_t, int)submitting response20192026int node::http2::Http2Stream::SubmitInfo(nghttp2_nv *, size_t)sending %d informational headers2033let javascript know we are ready for trailers2039void node::http2::Http2Stream::OnTrailers()2050int node::http2::Http2Stream::SubmitTrailers(nghttp2_nv *, size_t)sending %d trailers2070int node::http2::Http2Stream::SubmitPriority(nghttp2_priority_spec *, bool)sending priority spec2086void node::http2::Http2Stream::SubmitRstStream(const uint32_t)2105(nghttp2_submit_rst_stream(**session_, NGHTTP2_FLAG_NONE, id_, code_)) == (0)void node::http2::Http2Stream::FlushRstStream()2114node::http2::Http2Stream *node::http2::Http2Stream::SubmitPushPromise(nghttp2_nv *, size_t, int32_t *, int)sending push promise21192131virtual int node::http2::Http2Stream::ReadStart()reading starting2149virtual int node::http2::Http2Stream::ReadStop()reading stopped2171virtual int node::http2::Http2Stream::DoWrite(node::WriteWrap *, uv_buf_t *, size_t, uv_stream_t *)queuing %d buffers to send21872199bool node::http2::Http2Stream::AddHeader(nghttp2_rcbuf *, nghttp2_rcbuf *, uint8_t)2224!stream->IsDestroyed()node::http2::Http2Stream::Provider::Provider(node::http2::Http2Stream *, int)reading outbound data for stream %d2262(id) == (stream->id())static ssize_t node::http2::Http2Stream::Provider::Stream::OnRead(nghttp2_session *, int32_t, uint8_t *, size_t, uint32_t *, nghttp2_data_source *, void *)stream %d has pending outbound datasending %d bytes for data frame on stream %d2290stream->queue_.empty()deferring stream %dno more data for stream %dfailed to set next stream id to %dset next stream id to %drefreshing state2420static void node::http2::Http2Session::New(const FunctionCallbackInfo &)session created2433args[0]->IsExternal()static void node::http2::Http2Session::Consume(const FunctionCallbackInfo &)destroying sessionrequest submittedcould not submit request: %srequest submitted, new stream id %dsubmitting goawaysending rst_stream with code %dresponse submitted%d informational headers sent%d trailing headers sentdata flushed to jscreating push promisefailed to create push stream: %dpush stream %d created2664(stream->SubmitPriority(*priority, silent)) == (0)static void node::http2::Http2Stream::Priority(const FunctionCallbackInfo &)priority submitted2714(nghttp2_submit_altsvc(session_, NGHTTP2_FLAG_NONE, id, origin, origin_len, value, value_len)) == (0)void node::http2::Http2Session::AltSvc(int32_t, uint8_t *, size_t, uint8_t *, size_t)2719(nghttp2_submit_origin(session_, NGHTTP2_FLAG_NONE, ov, count)) == (0)void node::http2::Http2Session::Origin(nghttp2_origin_entry *, size_t)2737(origin_len + value_len) <= (16382)static void node::http2::Http2Session::AltSvc(const FunctionCallbackInfo &)2740(origin_len != 0 && id == 0) || (origin_len == 0 && id != 0)2779(Buffer::Length(args[0])) == (8)static void node::http2::Http2Session::Ping(const FunctionCallbackInfo &)2875(nghttp2_submit_ping(**session_, NGHTTP2_FLAG_NONE, payload)) == (0)void node::http2::Http2Session::Http2Ping::Send(uint8_t *)req_wrappaddingBuffersessionStatestreamStatesettingsBufferoptionsBufferstreamStatssessionStatsPADDING_BUF_FRAME_LENGTHPADDING_BUF_MAX_PAYLOAD_LENGTHPADDING_BUF_RETURN_VALUEnghttp2ErrorStringHttp2SettingidflushDatapushPromiseinfotrailersrespondrstStreamrefreshStateoriginaltsvcpingconsumegoawaysettingsrequestsetNextStreamIDupdateChunksSentlocalSettingsremoteSettingsNGHTTP2_SESSION_SERVERNGHTTP2_SESSION_CLIENTNGHTTP2_STREAM_STATE_IDLENGHTTP2_STREAM_STATE_OPENNGHTTP2_STREAM_STATE_RESERVED_LOCALNGHTTP2_STREAM_STATE_RESERVED_REMOTENGHTTP2_STREAM_STATE_HALF_CLOSED_LOCALNGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTENGHTTP2_STREAM_STATE_CLOSEDNGHTTP2_NO_ERRORNGHTTP2_PROTOCOL_ERRORNGHTTP2_INTERNAL_ERRORNGHTTP2_FLOW_CONTROL_ERRORNGHTTP2_SETTINGS_TIMEOUTNGHTTP2_STREAM_CLOSEDNGHTTP2_FRAME_SIZE_ERRORNGHTTP2_REFUSED_STREAMNGHTTP2_CANCELNGHTTP2_COMPRESSION_ERRORNGHTTP2_CONNECT_ERRORNGHTTP2_ENHANCE_YOUR_CALMNGHTTP2_INADEQUATE_SECURITYNGHTTP2_HTTP_1_1_REQUIREDNGHTTP2_HCAT_REQUESTNGHTTP2_HCAT_RESPONSENGHTTP2_HCAT_PUSH_RESPONSENGHTTP2_HCAT_HEADERSNGHTTP2_NV_FLAG_NONENGHTTP2_NV_FLAG_NO_INDEXNGHTTP2_ERR_DEFERREDNGHTTP2_ERR_STREAM_ID_NOT_AVAILABLENGHTTP2_ERR_INVALID_ARGUMENTNGHTTP2_ERR_STREAM_CLOSEDNGHTTP2_ERR_FRAME_SIZE_ERRORSTREAM_OPTION_EMPTY_PAYLOADSTREAM_OPTION_GET_TRAILERSNGHTTP2_FLAG_NONENGHTTP2_FLAG_END_STREAMNGHTTP2_FLAG_END_HEADERSNGHTTP2_FLAG_ACKNGHTTP2_FLAG_PADDEDNGHTTP2_FLAG_PRIORITYDEFAULT_SETTINGS_HEADER_TABLE_SIZEDEFAULT_SETTINGS_ENABLE_PUSHDEFAULT_SETTINGS_INITIAL_WINDOW_SIZEDEFAULT_SETTINGS_MAX_FRAME_SIZEMAX_MAX_FRAME_SIZEMIN_MAX_FRAME_SIZEMAX_INITIAL_WINDOW_SIZENGHTTP2_DEFAULT_WEIGHTNGHTTP2_SETTINGS_HEADER_TABLE_SIZENGHTTP2_SETTINGS_ENABLE_PUSHNGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMSNGHTTP2_SETTINGS_INITIAL_WINDOW_SIZENGHTTP2_SETTINGS_MAX_FRAME_SIZENGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZENGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOLPADDING_STRATEGY_NONEPADDING_STRATEGY_ALIGNEDPADDING_STRATEGY_MAXPADDING_STRATEGY_CALLBACKHTTP2_HEADER_STATUS:statusHTTP2_HEADER_METHOD:methodHTTP2_HEADER_AUTHORITY:authorityHTTP2_HEADER_SCHEME:schemeHTTP2_HEADER_PATH:pathHTTP2_HEADER_PROTOCOL:protocolHTTP2_HEADER_ACCEPT_CHARSETaccept-charsetHTTP2_HEADER_ACCEPT_ENCODINGaccept-encodingHTTP2_HEADER_ACCEPT_LANGUAGEaccept-languageHTTP2_HEADER_ACCEPT_RANGESaccept-rangesHTTP2_HEADER_ACCEPTacceptHTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALSaccess-control-allow-credentialsHTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERSaccess-control-allow-headersHTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODSaccess-control-allow-methodsHTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGINaccess-control-allow-originHTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERSaccess-control-expose-headersHTTP2_HEADER_ACCESS_CONTROL_MAX_AGEaccess-control-max-ageHTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERSaccess-control-request-headersHTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHODaccess-control-request-methodHTTP2_HEADER_AGEageHTTP2_HEADER_ALLOWallowHTTP2_HEADER_AUTHORIZATIONauthorizationHTTP2_HEADER_CACHE_CONTROLcache-controlHTTP2_HEADER_CONNECTIONconnectionHTTP2_HEADER_CONTENT_DISPOSITIONcontent-dispositionHTTP2_HEADER_CONTENT_ENCODINGcontent-encodingHTTP2_HEADER_CONTENT_LANGUAGEcontent-languageHTTP2_HEADER_CONTENT_LENGTHcontent-lengthHTTP2_HEADER_CONTENT_LOCATIONcontent-locationHTTP2_HEADER_CONTENT_MD5content-md5HTTP2_HEADER_CONTENT_RANGEcontent-rangeHTTP2_HEADER_CONTENT_TYPEcontent-typeHTTP2_HEADER_COOKIEcookieHTTP2_HEADER_DATEdateHTTP2_HEADER_DNTdntHTTP2_HEADER_ETAGetagHTTP2_HEADER_EXPECTexpectHTTP2_HEADER_EXPIRESexpiresHTTP2_HEADER_FORWARDEDforwardedHTTP2_HEADER_FROMfromHTTP2_HEADER_HOSTHTTP2_HEADER_IF_MATCHif-matchHTTP2_HEADER_IF_MODIFIED_SINCEif-modified-sinceHTTP2_HEADER_IF_NONE_MATCHif-none-matchHTTP2_HEADER_IF_RANGEif-rangeHTTP2_HEADER_IF_UNMODIFIED_SINCEif-unmodified-sinceHTTP2_HEADER_LAST_MODIFIEDlast-modifiedHTTP2_HEADER_LINKHTTP2_HEADER_LOCATIONlocationHTTP2_HEADER_MAX_FORWARDSmax-forwardsHTTP2_HEADER_PREFERpreferHTTP2_HEADER_PROXY_AUTHENTICATEproxy-authenticateHTTP2_HEADER_PROXY_AUTHORIZATIONproxy-authorizationHTTP2_HEADER_RANGErangeHTTP2_HEADER_REFERERrefererHTTP2_HEADER_REFRESHHTTP2_HEADER_RETRY_AFTERretry-afterHTTP2_HEADER_SERVERserverHTTP2_HEADER_SET_COOKIEset-cookieHTTP2_HEADER_STRICT_TRANSPORT_SECURITYstrict-transport-securityHTTP2_HEADER_TRAILERtrailerHTTP2_HEADER_TRANSFER_ENCODINGtransfer-encodingHTTP2_HEADER_TEteHTTP2_HEADER_TKtkHTTP2_HEADER_UPGRADE_INSECURE_REQUESTSupgrade-insecure-requestsHTTP2_HEADER_UPGRADEupgradeHTTP2_HEADER_USER_AGENTuser-agentHTTP2_HEADER_VARYvaryHTTP2_HEADER_VIAviaHTTP2_HEADER_WARNINGwarningHTTP2_HEADER_WWW_AUTHENTICATEwww-authenticateHTTP2_HEADER_X_CONTENT_TYPE_OPTIONSx-content-type-optionsHTTP2_HEADER_X_FRAME_OPTIONSx-frame-optionsHTTP2_HEADER_HTTP2_SETTINGShttp2-settingsHTTP2_HEADER_KEEP_ALIVEkeep-aliveHTTP2_HEADER_PROXY_CONNECTIONproxy-connectionHTTP2_METHOD_ACLACLHTTP2_METHOD_BASELINE_CONTROLBASELINE-CONTROLHTTP2_METHOD_BINDBINDHTTP2_METHOD_CHECKINCHECKINHTTP2_METHOD_CHECKOUTCHECKOUTHTTP2_METHOD_CONNECTCONNECTHTTP2_METHOD_COPYCOPYHTTP2_METHOD_DELETEDELETEHTTP2_METHOD_GETGETHTTP2_METHOD_HEADHEADHTTP2_METHOD_LABELLABELHTTP2_METHOD_LINKLINKHTTP2_METHOD_LOCKLOCKHTTP2_METHOD_MERGEMERGEHTTP2_METHOD_MKACTIVITYMKACTIVITYHTTP2_METHOD_MKCALENDARMKCALENDARHTTP2_METHOD_MKCOLMKCOLHTTP2_METHOD_MKREDIRECTREFMKREDIRECTREFHTTP2_METHOD_MKWORKSPACEMKWORKSPACEHTTP2_METHOD_MOVEMOVEHTTP2_METHOD_OPTIONSOPTIONSHTTP2_METHOD_ORDERPATCHORDERPATCHHTTP2_METHOD_PATCHPATCHHTTP2_METHOD_POSTPOSTHTTP2_METHOD_PRIPRIHTTP2_METHOD_PROPFINDPROPFINDHTTP2_METHOD_PROPPATCHPROPPATCHHTTP2_METHOD_PUTPUTHTTP2_METHOD_REBINDREBINDHTTP2_METHOD_REPORTREPORTHTTP2_METHOD_SEARCHSEARCHHTTP2_METHOD_TRACETRACEHTTP2_METHOD_UNBINDUNBINDHTTP2_METHOD_UNCHECKOUTUNCHECKOUTHTTP2_METHOD_UNLINKUNLINKHTTP2_METHOD_UNLOCKUNLOCKHTTP2_METHOD_UPDATEUPDATEHTTP2_METHOD_UPDATEREDIRECTREFUPDATEREDIRECTREFHTTP2_METHOD_VERSION_CONTROLVERSION-CONTROLHTTP_STATUS_CONTINUEHTTP_STATUS_SWITCHING_PROTOCOLSHTTP_STATUS_PROCESSINGHTTP_STATUS_EARLY_HINTSHTTP_STATUS_OKHTTP_STATUS_CREATEDHTTP_STATUS_ACCEPTEDHTTP_STATUS_NON_AUTHORITATIVE_INFORMATIONHTTP_STATUS_NO_CONTENTHTTP_STATUS_RESET_CONTENTHTTP_STATUS_PARTIAL_CONTENTHTTP_STATUS_MULTI_STATUSHTTP_STATUS_ALREADY_REPORTEDHTTP_STATUS_IM_USEDHTTP_STATUS_MULTIPLE_CHOICESHTTP_STATUS_MOVED_PERMANENTLYHTTP_STATUS_FOUNDHTTP_STATUS_SEE_OTHERHTTP_STATUS_NOT_MODIFIEDHTTP_STATUS_USE_PROXYHTTP_STATUS_TEMPORARY_REDIRECTHTTP_STATUS_PERMANENT_REDIRECTHTTP_STATUS_BAD_REQUESTHTTP_STATUS_UNAUTHORIZEDHTTP_STATUS_PAYMENT_REQUIREDHTTP_STATUS_FORBIDDENHTTP_STATUS_NOT_FOUNDHTTP_STATUS_METHOD_NOT_ALLOWEDHTTP_STATUS_NOT_ACCEPTABLEHTTP_STATUS_PROXY_AUTHENTICATION_REQUIREDHTTP_STATUS_REQUEST_TIMEOUTHTTP_STATUS_CONFLICTHTTP_STATUS_GONEHTTP_STATUS_LENGTH_REQUIREDHTTP_STATUS_PRECONDITION_FAILEDHTTP_STATUS_PAYLOAD_TOO_LARGEHTTP_STATUS_URI_TOO_LONGHTTP_STATUS_UNSUPPORTED_MEDIA_TYPEHTTP_STATUS_RANGE_NOT_SATISFIABLEHTTP_STATUS_EXPECTATION_FAILEDHTTP_STATUS_TEAPOTHTTP_STATUS_MISDIRECTED_REQUESTHTTP_STATUS_UNPROCESSABLE_ENTITYHTTP_STATUS_LOCKEDHTTP_STATUS_FAILED_DEPENDENCYHTTP_STATUS_UNORDERED_COLLECTIONHTTP_STATUS_UPGRADE_REQUIREDHTTP_STATUS_PRECONDITION_REQUIREDHTTP_STATUS_TOO_MANY_REQUESTSHTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGEHTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONSHTTP_STATUS_INTERNAL_SERVER_ERRORHTTP_STATUS_NOT_IMPLEMENTEDHTTP_STATUS_BAD_GATEWAYHTTP_STATUS_SERVICE_UNAVAILABLEHTTP_STATUS_GATEWAY_TIMEOUTHTTP_STATUS_HTTP_VERSION_NOT_SUPPORTEDHTTP_STATUS_VARIANT_ALSO_NEGOTIATESHTTP_STATUS_INSUFFICIENT_STORAGEHTTP_STATUS_LOOP_DETECTEDHTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDEDHTTP_STATUS_NOT_EXTENDEDHTTP_STATUS_NETWORK_AUTHENTICATION_REQUIREDrefreshDefaultSettingspackSettingsnameForErrorCode476(nghttp2_session_callbacks_new(&callbacks)) == (0)node::http2::Http2Session::Callbacks::Callbacks(bool)558(session->current_nghttp2_memory_) >= (previous_size)static void *node::http2::Http2Session::MemoryAllocatorInfo::H2Realloc(void *, size_t, void *)clienthttp2markmeasuregcfunction54(previous_listener_) != nullptrvoid node::StreamListener::PassReadErrorToPreviousListener(ssize_t)42(stream) != nullptrnode::http2::Http2Stream *node::http2::(anonymous namespace)::GetStream(node::http2::Http2Session *, int32_t, nghttp2_data_source *)43void node::StreamResource::PushStreamListener(node::StreamListener *)(listener->stream_) == nullptr793(++statistics_.stream_count) >= (0)void node::http2::Http2Session::AddStream(node::http2::Http2Stream *)!http2_state_void node::Environment::set_http2_state(std::unique_ptr)streamsoutstanding_pingsoutstanding_settingsoutgoing_buffersoutgoing_storagepending_rst_streamssecond59virtual void node::StreamListener::OnStreamAfterShutdown(node::ShutdownWrap *, int)virtual void node::StreamListener::OnStreamAfterWrite(node::WriteWrap *, int)current_headersqueuevoid node::MaybeStackBuffer::AllocateSufficientStorage(size_t) [T = char, kStackStorageSize = 3000]void node::MaybeStackBuffer::AllocateSufficientStorage(size_t) [T = char, kStackStorageSize = 512]T &node::MaybeStackBuffer::operator[](size_t) [T = uv_buf_t, kStackStorageSize = 32]T *node::Realloc(T *, size_t) [T = unsigned char]settings refreshed for sessionsession../src/node_http_parser.ccHTTPParserREQUESTRESPONSEkOnHeaderskOnHeadersCompletekOnBodykOnMessageCompletekOnExecuteM-SEARCHNOTIFYSUBSCRIBEUNSUBSCRIBEPURGESOURCEmethodsfreeexecutefinishreinitializepauseresumeunconsumegetCurrentBuffer369static void node::(anonymous namespace)::Parser::New(const FunctionCallbackInfo &)type == HTTP_REQUEST || type == HTTP_RESPONSEParser516(http_parser_buffer_) == nullptrvoid node::Environment::set_http_parser_buffer(char *)199(num_fields_) < (arraysize(fields_))int node::(anonymous namespace)::Parser::on_header_field(const char *, size_t)200(num_fields_) == (num_values_ + 1)215(num_values_) < (arraysize(values_))int node::(anonymous namespace)::Parser::on_header_value(const char *, size_t)(num_values_) == (num_fields_)415parser->current_buffer_.IsEmpty()static void node::(anonymous namespace)::Parser::Execute(const FunctionCallbackInfo &)416(parser->current_buffer_len_) == (0)417(parser->current_buffer_data_) == nullptr418(Buffer::HasInstance(args[0])) == (true)442static void node::(anonymous namespace)::Parser::Finish(const FunctionCallbackInfo &)467static void node::(anonymous namespace)::Parser::Reinitialize(const FunctionCallbackInfo &)468473477(env) == (parser->env())494static void node::(anonymous namespace)::Parser::Pause(const FunctionCallbackInfo &) [should_pause = true]static void node::(anonymous namespace)::Parser::Pause(const FunctionCallbackInfo &) [should_pause = false]502static void node::(anonymous namespace)::Parser::Consume(const FunctionCallbackInfo &)../src/node_messaging.cc248main_message_buf_.is_empty()Maybe node::worker::Message::Serialize(node::Environment *, Local, Local, Local, Local)Transfer list contains source portMessagePort in transfer list is already detachedarray_buffer_contentsshared_array_buffersmessage_ports338(owner_) == (nullptr)virtual node::worker::MessagePortData::~MessagePortData()incoming_messagesAdding message to incoming queue364(a->sibling_) == (nullptr)static void node::worker::MessagePortData::Entangle(node::worker::MessagePortData *, node::worker::MessagePortData *)(b->sibling_) == (nullptr)(uv_async_init(env->event_loop(), async(), onmessage)) == (0)node::worker::MessagePort::MessagePort(node::Environment *, Local, Local)Created message port(uv_async_send(async())) == (0)void node::worker::MessagePort::TriggerAsync()Closing message port, data set = %d491(port) != nullptrstatic node::worker::MessagePort *node::worker::MessagePort::New(node::Environment *, Local, std::unique_ptr)Running MessagePort::OnMessage()MessagePort stops loop as requested520!data_->receiving_messages_void node::worker::MessagePort::OnMessage()MessagePort has message, receiving = %dMessagePort drains queue because !can_call_into_js()566data_bool node::worker::MessagePort::IsSiblingClosed() constMessagePort::OnClose()The target port was posted to itself, and the communication channel was lostNot enough arguments to MessagePort.postMessageStart receiving messagesStop receiving messagesReceived StopEventLoop requestpostMessagestopdrain60(id) <= (message_ports_.size())virtual MaybeLocal node::worker::(anonymous namespace)::DeserializerDelegate::ReadHostObject(v8::Isolate *)(clone_id) <= (shared_array_buffers_.size())virtual MaybeLocal node::worker::(anonymous namespace)::DeserializerDelegate::GetSharedArrayBufferFromId(v8::Isolate *, uint32_t)MessagePort was found in message but not listed in transferListERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LISTCannot transfer object of unsupported typeERR_CANNOT_TRANSFER_OBJECTDataCloneError154!domexception_ctor.IsEmpty()void node::worker::(anonymous namespace)::ThrowDataCloneException(node::Environment *, Local)Found invalid object in transferListERR_INVALID_TRANSFER_OBJECTCannot call constructor without `new`ERR_CONSTRUCT_CALL_REQUIREDERR_MISSING_ARGSCannot send data on closed MessagePortERR_CLOSED_MESSAGE_PORTmessagingMessageChannelregisterDOMException760void node::worker::(anonymous namespace)::RegisterDOMException(const FunctionCallbackInfo &)761dataMallocedBuffer----eval-pe../src/node_options.cc!value.IsEmpty()void node::options_parser::GetOptions(const FunctionCallbackInfo &)getOptionskAllowedInEnvironmentkDisallowedInEnvironmentenvSettingskNoOpkV8OptionkBooleankIntegerkUIntegerkStringkHostPortkStringListtypes../src/node_options-inl.h(it) != (options_.end())void node::options_parser::OptionsParser::Implies(const std::string &, const std::string &) [Options = node::EnvironmentOptions](it->second.type) == (kBoolean)void node::options_parser::OptionsParser::Implies(const std::string &, const std::string &) [Options = node::PerProcessOptions]void node::options_parser::OptionsParser::ImpliesNot(const std::string &, const std::string &) [Options = node::PerProcessOptions]156 is not allowed in NODE_OPTIONS requires an argumentgetHostnamegetLoadAvggetUptimegetTotalMemgetFreeMemgetCPUsgetOSTypegetOSReleasegetInterfaceAddressesgetHomeDirectorygetUserInfosetPrioritygetPriorityisBigEndian../src/node_os.cc76void node::os::GetHostname(const FunctionCallbackInfo &)gethostname225args[0]->IsFloat64Array()void node::os::GetLoadAvg(const FunctionCallbackInfo &)(array->Length()) == (3)void node::os::GetCPUInfo(const FunctionCallbackInfo &)161args[1]->IsFloat64Array()163(array->Length()) == (6 * 8)args[2]->IsArray()void node::os::GetOSType(const FunctionCallbackInfo &)unamevoid node::os::GetOSRelease(const FunctionCallbackInfo &)void node::os::GetInterfaceAddresses(const FunctionCallbackInfo &)uv_interface_addresses%02x:%02x:%02x:%02x:%02x:%02x331void node::os::GetHomeDirectory(const FunctionCallbackInfo &)uv_os_homedir(args.Length()) >= (2)void node::os::GetUserInfo(const FunctionCallbackInfo &)uv_os_get_passwd393413void node::os::SetPriority(const FunctionCallbackInfo &)422uv_os_setpriority433void node::os::GetPriority(const FunctionCallbackInfo &)434441uv_os_getpriority../src/node_platform.cc(0) == (uv_thread_join(threads_[i].get()))void node::BackgroundTaskRunner::Shutdown()223(0) == (uv_async_init(loop, flush_tasks_, FlushTasks))node::PerIsolatePlatformData::PerIsolatePlatformData(v8::Isolate *, uv_loop_t *)(flush_tasks_) != (nullptr)virtual void node::PerIsolatePlatformData::PostTask(std::unique_ptr)virtual void node::PerIsolatePlatformData::PostDelayedTask(std::unique_ptr, double)296(loop) == (existing->event_loop())virtual void node::NodePlatform::RegisterIsolate(node::IsolateData *, uv_loop_t *)308existingvirtual void node::NodePlatform::UnregisterIsolate(node::IsolateData *)(it) != (scheduled_delayed_tasks_.end())void node::PerIsolatePlatformData::DeleteFromScheduledTasks(node::DelayedTask *)std::shared_ptr node::NodePlatform::ForIsolate(v8::Isolate *)58(0) == (uv_thread_create(t.get(), start_thread, this))std::unique_ptr node::BackgroundTaskRunner::DelayedTaskScheduler::Start()WorkerThreadsTaskRunner::DelayedTaskScheduler80(0) == (uv_loop_init(&loop_))void node::BackgroundTaskRunner::DelayedTaskScheduler::Run()(0) == (uv_async_init(&loop_, &flush_tasks_, FlushTasks))BackgroundTaskRunner(0) == (uv_timer_init(&scheduler_->loop_, timer.get()))virtual void node::BackgroundTaskRunner::DelayedTaskScheduler::ScheduleTask::Run()(0) == (uv_timer_start(timer.get(), RunTask, delay_millis, 0))node,node.bootstrapnode,node.perf,node.perf.usertiming../src/node_perf.cc242void node::performance::SetupPerformanceObservers(const FunctionCallbackInfo &)320void node::performance::TimerFunctionCall(const FunctionCallbackInfo &)node,node.perf,node.perf.timerify367void node::performance::Timerify(const FunctionCallbackInfo &)368observerCountsmilestonesPerformanceEntryclearMarkmarkMilestonesetupObserverstimerifyNODE_PERFORMANCE_GC_MAJORNODE_PERFORMANCE_GC_MINORNODE_PERFORMANCE_GC_INCREMENTALNODE_PERFORMANCE_GC_WEAKCBNODE_PERFORMANCE_ENTRY_TYPE_NODENODE_PERFORMANCE_ENTRY_TYPE_MARKNODE_PERFORMANCE_ENTRY_TYPE_MEASURENODE_PERFORMANCE_ENTRY_TYPE_GCNODE_PERFORMANCE_ENTRY_TYPE_FUNCTIONNODE_PERFORMANCE_ENTRY_TYPE_HTTP2NODE_PERFORMANCE_MILESTONE_ENVIRONMENTNODE_PERFORMANCE_MILESTONE_NODE_STARTNODE_PERFORMANCE_MILESTONE_V8_STARTNODE_PERFORMANCE_MILESTONE_LOOP_STARTNODE_PERFORMANCE_MILESTONE_LOOP_EXITNODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETEtimeOrigintimeOriginTimestampenvironmentnodeStartv8StartloopStartloopExitbootstrapCompleteperformance../src/node_process.cc78env->is_main_thread()void node::Chdir(const FunctionCallbackInfo &)Bad argument.void node::CPUUsage(const FunctionCallbackInfo &)108(array->Length()) == (2)uv_cwduv_resident_set_memory197void node::MemoryUsage(const FunctionCallbackInfo &)(array->Length()) == (4)args.Length() == 1 && args[0]->IsString() && "must be called with a single string"void node::RawDebug(const FunctionCallbackInfo &)argument must be an integer or octal string.invalid octal stringAssigning any value other than a string, number, or boolean to a process.env property is deprecated. Please make sure to convert the value to a string before setting process.env with it.DEP0104static node::Environment *node::Environment::GetCurrent(const v8::PropertyCallbackInfo &) [T = v8::Value]static node::Environment *node::Environment::GetCurrent(const v8::PropertyCallbackInfo &) [T = v8::Array]static node::Environment *node::Environment::GetCurrent(const v8::PropertyCallbackInfo &) [T = void]../src/node_serdes.ccserdeswriteHeaderwriteValuereleaseBuffertransferArrayBufferwriteUint32writeUint64writeDoublewriteRawBytes_setTreatArrayBufferViewsAsHostObjectsSerializerreadHeaderreadValuegetWireFormatVersionreadUint32readUint64readDouble_readRawBytesDeserializerget_data_clone_error->IsFunction()virtual void node::(anonymous namespace)::SerializerContext::ThrowDataCloneError(Local)arrayBuffer must be an ArrayBuffersource must be a Uint8Arraybuffer must be a Uint8ArrayreadHostObject must return an objectarrayBuffer must be an ArrayBuffer or SharedArrayBufferReadUint32() failedReadUint64() failedReadDouble() failedReadRawBytes() failed432(position) >= (ctx->data_)static void node::(anonymous namespace)::DeserializerContext::ReadRawBytes(const FunctionCallbackInfo &)(position + length) <= (ctx->data_ + ctx->length_)../src/node_trace_events.cc52static void node::NodeCategorySet::New(const FunctionCallbackInfo &)61(env->tracing_agent_writer()) != nullptrcategoryGroupEnabledgetEnabledCategoriesdisableCategorySetisTraceCategoryEnabledcategories136(args.Length()) >= (3)void node::Emit(const FunctionCallbackInfo &)150args[2]->IsString()159179args[4]->IsString()args[5]->IsNumber()args[6]->IsString()194args[7]->IsNumber()category_value->IsString()const char *node::GetCategoryGroup(node::Environment *, const Local)(category_group) != nullptrconst uint8_t *node::GetCategoryGroupEnabled(const char *)trace_events../src/node_types.ccisExternalisDateisArgumentsObjectisBigIntObjectisBooleanObjectisNumberObjectisStringObjectisSymbolObjectisNativeErrorisRegExpisAsyncFunctionisGeneratorFunctionisGeneratorObjectisPromiseisMapisSetisMapIteratorisSetIteratorisWeakMapisWeakSetisArrayBufferisDataViewisSharedArrayBufferisProxyisWebAssemblyCompiledModuleisModuleNamespaceObjectisAnyArrayBufferisBoxedPrimitivefile:%40localhostftp:gopher:http:https:ws:wss:%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37%38%39%3A%3B%3C%3D%3E%3F%41%42%43%44%45%46%47%48%49%4A%4B%4C%4D%4E%4F%50%51%52%53%54%55%56%57%58%59%5A%5B%5C%5D%5E%5F%60%61%62%63%64%65%66%67%68%69%6A%6B%6C%6D%6E%6F%70%71%72%73%74%75%76%77%78%79%7A%7B%7C%7D%7E%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF../src/node_url.cc(type_) == (HostType::H_FAILED)void node::url::(anonymous namespace)::URLHost::ParseHost(const char *, size_t, bool, bool)937void node::url::(anonymous namespace)::URLHost::ParseIPv4Host(const char *, size_t, bool *)971(parts) > (0)%d::%x..parseencodeAuthtoUSVStringdomainToASCIIdomainToUnicodesetURLConstructorURL_FLAGS_NONEURL_FLAGS_FAILEDURL_FLAGS_CANNOT_BE_BASEURL_FLAGS_INVALID_PARSE_STATEURL_FLAGS_TERMINATEDURL_FLAGS_SPECIALURL_FLAGS_HAS_USERNAMEURL_FLAGS_HAS_PASSWORDURL_FLAGS_HAS_HOSTURL_FLAGS_HAS_PATHURL_FLAGS_HAS_QUERYURL_FLAGS_HAS_FRAGMENTURL_FLAGS_IS_DEFAULT_SCHEME_PORTkSchemeStartkSchemekNoSchemekSpecialRelativeOrAuthoritykPathOrAuthoritykRelativekRelativeSlashkSpecialAuthoritySlasheskSpecialAuthorityIgnoreSlasheskAuthoritykHostkHostnamekPortkFilekFileSlashkFileHostkPathStartkPathkCannotBeBasekQuerykFragment2169(args.Length()) >= (5)void node::url::Parse(const FunctionCallbackInfo &)21702173args[2]->IsUndefined() || args[2]->IsNull() || args[2]->IsObject()2176args[3]->IsUndefined() || args[3]->IsNull() || args[3]->IsObject()2177args[4]->IsFunction()2178args[5]->IsUndefined() || args[5]->IsFunction()username->IsString()node::url::url_data node::url::(anonymous namespace)::HarvestContext(node::Environment *, Local)1275password->IsString()2198void node::url::EncodeAuthSet(const FunctionCallbackInfo &)2216void node::url::ToUSVString(const FunctionCallbackInfo &)22172218(start) >= (0)T &node::MaybeStackBuffer::operator[](size_t) [T = unsigned short, kStackStorageSize = 1024]2251void node::url::DomainToASCII(const FunctionCallbackInfo &)22522271void node::url::DomainToUnicode(const FunctionCallbackInfo &)22722408void node::url::SetURLConstructor(const FunctionCallbackInfo &)2409../src/node_util.ccvoid node::util::SafeGetenv(const FunctionCallbackInfo &)alpn_buffer_private_symbolarrow_message_private_symbolcontextify_context_private_symbolcontextify_global_private_symboldecorated_private_symbolnapi_envnapi_wrappersab_lifetimepartner_symbolpushValToArrayMaxkPendingkFulfilledkRejectedgetHiddenValuesetHiddenValuegetPromiseDetailsgetProxyDetailssafeToStringpreviewEntriesgetOwnNonIndexPropertiesstartSigintWatchdogstopSigintWatchdogwatchdogHasPendingSigintsafeGetenvALL_PROPERTIESONLY_WRITABLEONLY_ENUMERABLEONLY_CONFIGURABLESKIP_STRINGSSKIP_SYMBOLSpropertyFiltervoid node::util::GetHiddenValue(const FunctionCallbackInfo &)122114(index) < (arraysize(methods))Local node::util::IndexToPrivateSymbol(node::Environment *, uint32_t)135void node::util::SetHiddenValue(const FunctionCallbackInfo &)void node::util::GetOwnNonIndexProperties(const FunctionCallbackInfo &)32util../src/node_v8.ccvoid node::SetFlagsFromString(const FunctionCallbackInfo &)cachedDataVersionTagupdateHeapStatisticsArrayBufferheapStatisticsArrayBufferkTotalHeapSizeIndexkTotalHeapSizeExecutableIndexkTotalPhysicalSizeIndexkTotalAvailableSizekUsedHeapSizeIndexkHeapSizeLimitIndexkMallocedMemoryIndexkPeakMallocedMemoryIndexkDoesZapGarbageIndexkHeapSpaceStatisticsPropertiesCountkHeapSpacesupdateHeapSpaceStatisticsArrayBufferheapSpaceStatisticsArrayBufferkSpaceSizeIndexkSpaceUsedSizeIndexkSpaceAvailableSizeIndexkPhysicalSpaceSizeIndexsetFlagsFromString492(heap_statistics_buffer_) != nullptrdouble *node::Environment::heap_statistics_buffer() const(heap_space_statistics_buffer_) != nullptrdouble *node::Environment::heap_space_statistics_buffer() const497(heap_statistics_buffer_) == nullptrvoid node::Environment::set_heap_statistics_buffer(double *)507(heap_space_statistics_buffer_) == nullptrvoid node::Environment::set_heap_space_statistics_buffer(double *)../src/node_stat_watcher.cc70(0) == (uv_fs_poll_init(env->event_loop(), &watcher_))node::StatWatcher::StatWatcher(node::Environment *, Local, bool)97static void node::StatWatcher::New(const FunctionCallbackInfo &)104static void node::StatWatcher::Start(const FunctionCallbackInfo &)!uv_is_active(wrap->GetHandle())../src/node_watchdog.ccnode::Watchdog::Watchdog(v8::Isolate *, uint64_t, bool *)node::Watchdog::Watchdog()Failed to initialize uv loop.(0) == (rc)4851183(has_running_thread_) == (false)int node::SigintWatchdogHelper::Start()189(0) == (pthread_sigmask(2, &sigmask, &sigmask))(0) == (pthread_sigmask(2, &sigmask, nullptr))(0) == (pthread_join(thread_, nullptr))bool node::SigintWatchdogHelper::Stop()276(it) != (watchdogs_.end())void node::SigintWatchdogHelper::Unregister(node::SigintWatchdog *)(0) == (uv_sem_init(&sem_, 0))node::SigintWatchdogHelper::SigintWatchdogHelper()node::SigintWatchdogHelper::~SigintWatchdogHelper()Creating worker with id %llu../src/node_worker.cc99(isolate_) != (nullptr)node::worker::Worker::Worker(node::Environment *, Local, const std::string &)100(uv_loop_init(&loop_)) == (0)isolate_data_(env_) != (nullptr)Set up worker with id %llu152(platform) != (nullptr)void node::worker::Worker::Run()Starting worker with id %lluCreated message port for worker %lluLoaded environment for worker %lluExiting thread for worker %llu with exit code %d275thread_exit_async_Worker %llu thread stops285(isolate_) != nullptrvoid node::worker::Worker::DisposeIsolate()Worker %llu dispose isolate295(uv_thread_join(&tid_)) == (0)void node::worker::Worker::JoinThread()Worker %llu thread stopped332stopped_void node::worker::Worker::OnThreadStopped()335(child_port_) == (nullptr)363virtual node::worker::Worker::~Worker()thread_joined_Worker %llu destroyed382static void node::worker::Worker::New(const FunctionCallbackInfo &)(uv_async_init(w->env()->event_loop(), w->thread_exit_async_.get(), [](uv_async_t* handle) { static_cast(handle->data)->OnThreadStopped(); })) == (0)static void node::worker::Worker::StartThread(const FunctionCallbackInfo &)419(uv_thread_create(&w->tid_, [](void* arg) { static_cast(arg)->Run(); }, static_cast(w))) == (0)Worker %llu is getting stopped by parentWorker %llu called Exit(%d)452void node::worker::Worker::Exit(int)634(worker_context_) == (nullptr)void node::Environment::set_worker_context(worker::Worker *)The V8 platform used by this instance of Node does not support creating WorkersERR_MISSING_PLATFORM_FOR_WORKERworkerstartThreadstopThreadWorkergetEnvMessagePort469(port->CreationContext()->GetIsolate()) == (args.GetIsolate())void node::worker::(anonymous namespace)::GetEnvMessagePort(const FunctionCallbackInfo &)IsolateDataEnvironmentparent_portuv_async_tZ_NO_FLUSHZ_PARTIAL_FLUSHZ_SYNC_FLUSHZ_FULL_FLUSHZ_FINISHZ_BLOCKZ_OKZ_STREAM_ENDZ_NEED_DICTZ_ERRNOZ_STREAM_ERRORZ_DATA_ERRORZ_MEM_ERRORZ_BUF_ERRORZ_VERSION_ERRORZ_NO_COMPRESSIONZ_BEST_SPEEDZ_BEST_COMPRESSIONZ_DEFAULT_COMPRESSIONZ_FILTEREDZ_HUFFMAN_ONLYZ_RLEZ_FIXEDZ_DEFAULT_STRATEGYZLIB_VERNUMDEFLATEINFLATEGZIPGUNZIPDEFLATERAWINFLATERAWUNZIPZ_MIN_WINDOWBITSZ_MAX_WINDOWBITSZ_DEFAULT_WINDOWBITSZ_MIN_CHUNKZ_MAX_CHUNKZ_DEFAULT_CHUNKZ_MIN_MEMLEVELZ_MAX_MEMLEVELZ_DEFAULT_MEMLEVELZ_MIN_LEVELZ_MAX_LEVELZ_DEFAULT_LEVEL../src/node_zlib.ccwriteSyncparamsresetZlibZLIB_VERSIONstatic void node::(anonymous namespace)::ZlibStream::New(const FunctionCallbackInfo &)dictionary160(false) == (write_in_progress_ && "write in progress")virtual node::(anonymous namespace)::CompressionStream::~CompressionStream() [CompressionContext = node::(anonymous namespace)::ZlibContext]162(zlib_memory_) == (0)(unreported_allocations_) == (0)174init_done_ && "close before init"void node::(anonymous namespace)::CompressionStream::Close() [CompressionContext = node::(anonymous namespace)::ZlibContext]544(mode_) <= (UNZIP)void node::(anonymous namespace)::ZlibContext::Close()554status == Z_OK || status == Z_DATA_ERROR!(report < 0) || (zlib_memory_ >= static_cast(-report))void node::(anonymous namespace)::CompressionStream::AdjustAmountOfExternalAllocatedMemory() [CompressionContext = node::(anonymous namespace)::ZlibContext]compression contextzlib_memory6140 && "invalid number of gzip magic number bytes read"void node::(anonymous namespace)::ZlibContext::DoThreadPoolWork()Failed to reset streamZ_UNKNOWN_ERRORFailed to set dictionaryvirtual void node::(anonymous namespace)::CompressionStream::AfterThreadPoolWork(int) [CompressionContext = node::(anonymous namespace)::ZlibContext]412(refs_) > (0)void node::(anonymous namespace)::CompressionStream::Unref() [CompressionContext = node::(anonymous namespace)::ZlibContext]unexpected end of fileMissing dictionaryBad dictionaryZlib error(env()->context()) == (env()->isolate()->GetCurrentContext())void node::(anonymous namespace)::CompressionStream::EmitError(const node::(anonymous namespace)::CompressionError &) [CompressionContext = node::(anonymous namespace)::ZlibContext]193(args.Length()) == (7)static void node::(anonymous namespace)::CompressionStream::Write(const FunctionCallbackInfo &) [CompressionContext = node::(anonymous namespace)::ZlibContext, async = true](false) == (args[0]->IsUndefined() && "must provide flush value")2080 && "Invalid flush value"222Buffer::IsWithinBounds(in_off, in_len, Buffer::Length(in_buf))Buffer::HasInstance(args[4])Buffer::IsWithinBounds(out_off, out_len, Buffer::Length(out_buf))init_done_ && "write before init"void node::(anonymous namespace)::CompressionStream::Write(uint32_t, char *, uint32_t, char *, uint32_t) [CompressionContext = node::(anonymous namespace)::ZlibContext, async = true]!closed_ && "already finalized"(false) == (write_in_progress_)249(false) == (pending_close_)static void node::(anonymous namespace)::CompressionStream::Write(const FunctionCallbackInfo &) [CompressionContext = node::(anonymous namespace)::ZlibContext, async = false]void node::(anonymous namespace)::CompressionStream::Write(uint32_t, char *, uint32_t, char *, uint32_t) [CompressionContext = node::(anonymous namespace)::ZlibContext, async = false]WARNING: You are likely using a version of node-tar or npm that is incompatible with this version of Node.js. Please use either the version of npm that is bundled with Node.js, or a version of npm (> 5.5.1 or < 5.4.0) or node-tar (> 4.0.1) that is compatible with Node.js 9 and above. 460args.Length() == 7 && "init(windowBits, level, memLevel, strategy, writeResult, writeCallback," " dictionary)"static void node::(anonymous namespace)::ZlibStream::Init(const FunctionCallbackInfo &)482args[4]->IsUint32Array()759(window_bits >= Z_MIN_WINDOWBITS && window_bits <= Z_MAX_WINDOWBITS) && "invalid windowBits"node::(anonymous namespace)::CompressionError node::(anonymous namespace)::ZlibContext::Init(int, int, int, int, std::vector &&)(level >= Z_MIN_LEVEL && level <= Z_MAX_LEVEL) && "invalid compression level"766(mem_level >= Z_MIN_MEMLEVEL && mem_level <= Z_MAX_MEMLEVEL) && "invalid memlevel"(strategy == Z_FILTERED || strategy == Z_HUFFMAN_ONLY || strategy == Z_RLE || strategy == Z_FIXED || strategy == Z_DEFAULT_STRATEGY) && "invalid strategy"args.Length() == 2 && "params(level, strategy)"static void node::(anonymous namespace)::ZlibStream::Params(const FunctionCallbackInfo &)Failed to set parameters../src/pipe_wrap.cc(false) == (env->pipe_constructor_template().IsEmpty())static Local node::PipeWrap::Instantiate(node::Environment *, node::AsyncWrap *, PipeWrap::SocketType)62(false) == (constructor.IsEmpty())PipebindlistenconnectPipeConnectWrapSOCKETSERVERIPCUV_READABLEUV_WRITABLEstatic void node::PipeWrap::New(const FunctionCallbackInfo &)157node::PipeWrap::PipeWrap(node::Environment *, Local, node::AsyncWrap::ProviderType, bool)185static void node::PipeWrap::Fchmod(const v8::FunctionCallbackInfo &)uv_pipe_open229static void node::PipeWrap::Connect(const FunctionCallbackInfo &)pipe_wrapstatic node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_connect_s, T = void (*)(uv_connect_s *, int)]../src/process_wrap.ccprocess_wrapProcessspawnstatic void node::(anonymous namespace)::ProcessWrap::New(const FunctionCallbackInfo &)uid_v->IsInt32()static void node::(anonymous namespace)::ProcessWrap::Spawn(const FunctionCallbackInfo &)gid_v->IsInt32()file_v->IsString()(argc + 1) > (0)(options.args[i]) != nullptr(envc + 1) > (0)(options.env[i]) != nullptr260(wrap->process_.data) == (wrap)294static void node::(anonymous namespace)::ProcessWrap::OnExit(uv_process_t *, int64_t, int)(&wrap->process_) == (handle)132fd_value->IsNumber()static void node::(anonymous namespace)::ProcessWrap::ParseStdioOptions(node::Environment *, Local, uv_process_options_t *)98static uv_stream_t *node::(anonymous namespace)::ProcessWrap::StreamForWrap(node::Environment *, Local)../src/sharedarraybuffer_metadata.ccsource->IsExternal()static node::worker::SharedArrayBufferMetadataReference node::worker::SharedArrayBufferMetadata::ForSharedArrayBuffer(node::Environment *, Local, Local)(partner) != (nullptr)102target->IsExternal()Maybe node::worker::SharedArrayBufferMetadata::AssignToSharedArrayBuffer(node::Environment *, Local, Local)Cannot serialize externalized SharedArrayBufferERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER../src/signal_wrap.ccsignal_wrapSignal71static void node::(anonymous namespace)::SignalWrap::New(const FunctionCallbackInfo &)node::(anonymous namespace)::SignalWrap::SignalWrap(node::Environment *, Local)../src/spawn_sync.ccreadable || writablenode::SyncProcessStdioPipe::SyncProcessStdioPipe(node::SyncProcessRunner *, bool, bool, uv_buf_t)lifecycle_ == kUninitialized || lifecycle_ == kClosednode::SyncProcessStdioPipe::~SyncProcessStdioPipe()134(lifecycle_) == (kUninitialized)int node::SyncProcessStdioPipe::Initialize(uv_loop_t *)148(lifecycle_) == (kInitialized)int node::SyncProcessStdioPipe::Start()(input_buffer_.base) != nullptrlifecycle_ == kInitialized || lifecycle_ == kStartedvoid node::SyncProcessStdioPipe::Close()421(lifecycle_) == (kHandlesClosed)node::SyncProcessRunner::~SyncProcessRunner()MaybeLocal node::SyncProcessRunner::Run(Local)455Maybe node::SyncProcessRunner::TryInitializeAndRunLoop(Local)463(uv_loop_init(uv_loop_)) == (0)518(exit_status_) >= (0)(lifecycle_) < (kHandlesClosed)void node::SyncProcessRunner::CloseHandlesAndDeleteLoop()552(false) == (stdio_pipes_initialized_)553(false) == (kill_timer_initialized_)561void node::SyncProcessRunner::CloseStdioPipes()564!stdio_pipes_.empty()565(uv_loop_) != nullptr578void node::SyncProcessRunner::CloseKillTimer()581(timeout_) > (0)582r >= 0 || r == UV_ESRCHvoid node::SyncProcessRunner::Kill()(lifecycle_) >= (kInitialized)Local node::SyncProcessRunner::BuildOutputArray()js_uid->IsInt32()Maybe node::SyncProcessRunner::ParseOptions(Local)791js_gid->IsInt32()js_timeout->IsNumber()js_max_buffer->IsNumber()832js_kill_signal->IsInt32()9250 && "invalid child stdio type"int node::SyncProcessRunner::ParseStdioOption(int, Local)(lifecycle_) < (kClosing)uv_pipe_t *node::SyncProcessStdioPipe::uv_pipe() const68(buf->base) == (data_ + used())void node::SyncProcessOutputBuffer::OnRead(const uv_buf_t *, size_t)(child_fd) < (stdio_count_)int node::SyncProcessRunner::AddStdioIgnore(uint32_t)933!stdio_pipes_[child_fd]945int node::SyncProcessRunner::AddStdioPipe(uint32_t, bool, bool, uv_buf_t)946967int node::SyncProcessRunner::AddStdioInheritFD(uint32_t, int)spawn_sync../src/string_bytes.cc286(reinterpret_cast(aligned_dst) % sizeof(*dst)) == (0)static size_t node::StringBytes::WriteUCS2(v8::Isolate *, char *, size_t, Local, int, size_t *)val->IsString() == truestatic size_t node::StringBytes::Write(v8::Isolate *, char *, size_t, Local, enum encoding, int *)3850 && "unknown encoding"443str->Length() % 2 == 0 && "invalid hex string length"static Maybe node::StringBytes::StorageSize(v8::Isolate *, Local, enum encoding)448static MaybeLocal node::StringBytes::Encode(v8::Isolate *, const char *, size_t, enum encoding, Local *)737Cannot create a Buffer larger than 0x%zx bytesERR_BUFFER_TOO_LARGEFailed to allocate memoryERR_MEMORY_ALLOCATION_FAILEDCannot create a string longer than 0x%x charactersERR_STRING_TOO_LONGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/0123456789abcdef../src/string_decoder.cc(MissingBytes() + BufferedBytes()) <= (kIncompleteCharactersEnd)MaybeLocal node::StringDecoder::DecodeData(v8::Isolate *, const char *, size_t *)Encoding() == ASCII || Encoding() == HEX || Encoding() == LATIN1(MissingBytes()) == (0)MaybeLocal node::StringDecoder::FlushData(v8::Isolate *)(BufferedBytes()) == (0)MaybeLocal node::(anonymous namespace)::MakeString(v8::Isolate *, const char *, size_t, enum encoding)string_decoderkIncompleteCharactersStartkIncompleteCharactersEndkMissingByteskBufferedByteskEncodingFieldkNumFieldsencodingskSizedecodeflush259(decoder) != nullptrvoid node::(anonymous namespace)::DecodeData(const FunctionCallbackInfo &)270void node::(anonymous namespace)::FlushData(const FunctionCallbackInfo &)../src/stream_base.ccint node::StreamBase::Shutdown(const FunctionCallbackInfo &)int node::StreamBase::Writev(const FunctionCallbackInfo &)(offset) <= (storage_size)int node::StreamBase::WriteBuffer(const FunctionCallbackInfo &)Second argument must be a buffer318void node::StreamBase::CallJSOnreadMethod(ssize_t, Local)360virtual void node::EmitToJSStreamListener::OnStreamRead(ssize_t, const uv_buf_t &)(static_cast(nread)) <= (buf.len)388!async_wrap->persistent().IsEmpty()void node::ReportWritesToJSStreamListener::OnStreamAfterReqFinished(node::StreamReq *, int)int node::StreamBase::WriteString(const FunctionCallbackInfo &) [enc = node::ASCII](count) == (1)279(data_size) <= (storage_size)int node::StreamBase::WriteString(const FunctionCallbackInfo &) [enc = node::UTF8]int node::StreamBase::WriteString(const FunctionCallbackInfo &) [enc = node::UCS2]int node::StreamBase::WriteString(const FunctionCallbackInfo &) [enc = node::BINARY](storage_) == nullptrvoid node::WriteWrap::SetAllocatedStorage(char *, size_t)T &node::MaybeStackBuffer::operator[](size_t) [T = uv_buf_t, kStackStorageSize = 16]../src/stream_pipe.cc22(sink) != nullptrnode::StreamPipe::StreamPipe(node::StreamBase *, node::StreamBase *, Local)28sink->HasWantsWrite()is_closed_virtual node::StreamPipe::~StreamPipe()(size) > (0)virtual uv_buf_t node::StreamPipe::ReadableListener::OnStreamAlloc(size_t)125virtual void node::StreamPipe::ReadableListener::OnStreamRead(ssize_t, const uv_buf_t &)virtual void node::StreamPipe::WritableListener::OnStreamAfterWrite(node::WriteWrap *, int)181virtual void node::StreamPipe::WritableListener::OnStreamAfterShutdown(node::ShutdownWrap *, int)213virtual uv_buf_t node::StreamPipe::WritableListener::OnStreamAlloc(size_t)virtual void node::StreamPipe::WritableListener::OnStreamRead(ssize_t, const uv_buf_t &)224static void node::StreamPipe::New(const FunctionCallbackInfo &)args[1]->IsExternal()94source_v->IsObject()auto node::StreamPipe::Unpipe()::(anonymous class)::operator()(node::Environment *, void *) const95sink_v->IsObject()stream_pipeunpipeShutdownWrapWriteWrapLibuvStreamWrapsetBlocking../src/stream_wrap.cc128!sw.IsEmpty() && sw->HasInstance(object)static node::LibuvStreamWrap *node::LibuvStreamWrap::From(node::Environment *, Local)(persistent().IsEmpty()) == (false)void node::LibuvStreamWrap::OnUvRead(ssize_t, const uv_buf_t *)(type) == (UV_UNKNOWN_HANDLE)278(args.Length()) > (0)static void node::LibuvStreamWrap::SetBlocking(const FunctionCallbackInfo &)static void node::LibuvStreamWrap::AfterUvShutdown(uv_shutdown_t *, int)static void node::LibuvStreamWrap::AfterUvWrite(uv_write_t *, int)auto node::LibuvStreamWrap::Initialize(Local, Local, Local)::(anonymous class)::operator()(const FunctionCallbackInfo &) conststream_wrap204Local node::AcceptHandle(node::Environment *, node::LibuvStreamWrap *) [WrapType = node::TCPWrap]206Local node::AcceptHandle(node::Environment *, node::LibuvStreamWrap *) [WrapType = node::PipeWrap]Local node::AcceptHandle(node::Environment *, node::LibuvStreamWrap *) [WrapType = node::UDPWrap]virtual node::ReqWrap::~ReqWrap() [T = uv_shutdown_s]virtual node::ReqWrap::~ReqWrap() [T = uv_write_s]static node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_shutdown_s, T = void (*)(uv_shutdown_s *, int)]static node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_write_s, T = void (*)(uv_write_s *, int)]../src/tcp_wrap.cc(env->tcp_constructor_template().IsEmpty()) == (false)static Local node::TCPWrap::Instantiate(node::Environment *, node::AsyncWrap *, TCPWrap::SocketType)(constructor.IsEmpty()) == (false)TCPreadingbind6connect6getsocknamegetpeernamesetNoDelaysetKeepAliveTCPConnectWrapstatic void node::TCPWrap::New(const FunctionCallbackInfo &)node::TCPWrap::TCPWrap(node::Environment *, Local, node::AsyncWrap::ProviderType)static void node::TCPWrap::Connect(const FunctionCallbackInfo &)290static void node::TCPWrap::Connect6(const FunctionCallbackInfo &)tcp_wrapvoid node::GetSockOrPeerName(const v8::FunctionCallbackInfo &) [T = node::TCPWrap, F = &uv_tcp_getsockname]void node::GetSockOrPeerName(const v8::FunctionCallbackInfo &) [T = node::TCPWrap, F = &uv_tcp_getpeername]309static void node::TCPWrap::Connect(const FunctionCallbackInfo &, std::function) [T = sockaddr_in]310static void node::TCPWrap::Connect(const FunctionCallbackInfo &, std::function) [T = sockaddr_in6]../src/timer_wrap.cctimer_wrapTimernowsetupTimersstatic void node::(anonymous namespace)::TimerWrap::New(const FunctionCallbackInfo &)node::(anonymous namespace)::TimerWrap::TimerWrap(node::Environment *, Local)HandleWrap::IsAlive(wrap)static void node::(anonymous namespace)::TimerWrap::Start(const FunctionCallbackInfo &)static void node::(anonymous namespace)::TimerWrap::Stop(const FunctionCallbackInfo &)static void node::(anonymous namespace)::TimerWrap::SetupTimers(const FunctionCallbackInfo &)args[1]->IsFunction()../src/tracing/agent.cc(uv_loop_init(&tracing_loop_)) == (0)node::tracing::Agent::Agent()(uv_async_init(&tracing_loop_, &initialize_writer_async_, [](uv_async_t* async) { Agent* agent = ContainerOf(&Agent::initialize_writer_async_, async); agent->InitializeWritersOnThread(); })) == (0)(0) == (uv_thread_create(&thread_, [](void* arg) { Agent* agent = static_cast(arg); uv_run(&agent->tracing_loop_, UV_RUN_DEFAULT); }, this))void node::tracing::Agent::Start()agent_->started_node::tracing::Agent::ScopedSuspendTracing::ScopedSuspendTracing(node::tracing::TracingController *, node::tracing::Agent *, bool)../src/tracing/node_trace_buffer.ccnode::tracing::NodeTraceBuffer::NodeTraceBuffer(size_t, node::tracing::Agent *, uv_loop_t *)../src/tracing/node_trace_writer.cc15(tracing_loop_) == nullptrvirtual void node::tracing::NodeTraceWriter::InitializeOnThread(uv_loop_t *)53(0) == (uv_fs_close(nullptr, &req, fd_, nullptr))virtual node::tracing::NodeTraceWriter::~NodeTraceWriter()${pid}(uv_fs_close(nullptr, &req, fd_, nullptr)) == (0)void node::tracing::NodeTraceWriter::OpenNewFileForStreaming()Could not open trace file %s: %s virtual void node::tracing::NodeTraceWriter::Flush(bool)187void node::tracing::NodeTraceWriter::StartWrite(uv_buf_t)(write_req_.result) >= (0)void node::tracing::NodeTraceWriter::AfterWrite()truefalsenull":"NaN""-Infinity""Infinity"C\b\f\n\r\t\\\"\u%04XTTYgetWindowSizesetRawModeisTTYguessHandleType../src/tty_wrap.cc(fd) >= (0)static void node::TTYWrap::GuessHandleType(const FunctionCallbackInfo &)UDPFILEPIPEUNKNOWNstatic void node::TTYWrap::IsTTY(const FunctionCallbackInfo &)static void node::TTYWrap::GetWindowSize(const FunctionCallbackInfo &)139static void node::TTYWrap::New(const FunctionCallbackInfo &)uv_tty_inittty_wrap../src/udp_wrap.ccnode::UDPWrap::UDPWrap(node::Environment *, Local)sendsend6recvStartrecvStopaddMembershipdropMembershipsetMulticastInterfacesetMulticastTTLsetMulticastLoopbacksetBroadcastsetTTLbufferSizeSendWrapstatic void node::UDPWrap::New(const FunctionCallbackInfo &)176static void node::UDPWrap::DoBind(const FunctionCallbackInfo &, int)1950 && "unexpected address family"static void node::UDPWrap::BufferSize(const FunctionCallbackInfo &)uv_recv_buffer_sizeuv_send_buffer_size267static void node::UDPWrap::SetTTL(const FunctionCallbackInfo &)268static void node::UDPWrap::SetBroadcast(const FunctionCallbackInfo &)static void node::UDPWrap::SetMulticastTTL(const FunctionCallbackInfo &)static void node::UDPWrap::SetMulticastLoopback(const FunctionCallbackInfo &)static void node::UDPWrap::SetMulticastInterface(const FunctionCallbackInfo &)281298static void node::UDPWrap::SetMembership(const FunctionCallbackInfo &, uv_membership)static void node::UDPWrap::DoSend(const FunctionCallbackInfo &, int)336337args[3]->IsUint32()339340506(env->udp_constructor_function().IsEmpty()) == (false)static Local node::UDPWrap::Instantiate(node::Environment *, node::AsyncWrap *, UDPWrap::SocketType)udp_wrapvirtual node::ReqWrap::~ReqWrap() [T = uv_udp_send_s]void node::GetSockOrPeerName(const v8::FunctionCallbackInfo &) [T = node::UDPWrap, F = &uv_udp_getsockname]static node::MakeLibuvRequestCallback::F node::MakeLibuvRequestCallback::For(ReqWrap *, node::MakeLibuvRequestCallback::F) [ReqT = uv_udp_send_s, T = void (*)(uv_udp_send_s *, int)]%s[%d]void node::MaybeStackBuffer::AllocateSufficientStorage(size_t) [T = char, kStackStorageSize = 1024]void node::MaybeStackBuffer::AllocateSufficientStorage(size_t) [T = unsigned short, kStackStorageSize = 1024]T *node::Realloc(T *, size_t) [T = unsigned short]void node::MaybeStackBuffer::SetLengthAndZeroTerminate(size_t) [T = unsigned short, kStackStorageSize = 1024]void node::MaybeStackBuffer::SetLength(size_t) [T = unsigned short, kStackStorageSize = 1024]346!IsAllocated()void node::MaybeStackBuffer::Invalidate() [T = char, kStackStorageSize = 1024]void node::MaybeStackBuffer::SetLengthAndZeroTerminate(size_t) [T = char, kStackStorageSize = 1024]void node::MaybeStackBuffer::SetLength(size_t) [T = char, kStackStorageSize = 1024]../src/uv.ccerrnameUV_E2BIGUV_EACCESUV_EADDRINUSEUV_EADDRNOTAVAILUV_EAFNOSUPPORTUV_EAGAINUV_EAI_ADDRFAMILYUV_EAI_AGAINUV_EAI_BADFLAGSUV_EAI_BADHINTSUV_EAI_CANCELEDUV_EAI_FAILUV_EAI_FAMILYUV_EAI_MEMORYUV_EAI_NODATAUV_EAI_NONAMEUV_EAI_OVERFLOWUV_EAI_PROTOCOLUV_EAI_SERVICEUV_EAI_SOCKTYPEUV_EALREADYUV_EBADFUV_EBUSYUV_ECANCELEDUV_ECHARSETUV_ECONNABORTEDUV_ECONNREFUSEDUV_ECONNRESETUV_EDESTADDRREQUV_EEXISTUV_EFAULTUV_EFBIGUV_EHOSTUNREACHUV_EINTRUV_EINVALUV_EIOUV_EISCONNUV_EISDIRUV_ELOOPUV_EMFILEUV_EMSGSIZEUV_ENAMETOOLONGUV_ENETDOWNUV_ENETUNREACHUV_ENFILEUV_ENOBUFSUV_ENODEVUV_ENOENTUV_ENOMEMUV_ENONETUV_ENOPROTOOPTUV_ENOSPCUV_ENOSYSUV_ENOTCONNUV_ENOTDIRUV_ENOTEMPTYUV_ENOTSOCKUV_ENOTSUPUV_EPERMUV_EPIPEUV_EPROTOUV_EPROTONOSUPPORTUV_EPROTOTYPEUV_ERANGEUV_EROFSUV_ESHUTDOWNUV_ESPIPEUV_ESRCHUV_ETIMEDOUTUV_ETXTBSYUV_EXDEVUV_UNKNOWNUV_EOFUV_ENXIOUV_EMLINKUV_EHOSTDOWNUV_EREMOTEIOUV_ENOTTYUV_EFTYPEargument list too longpermission deniedaddress already in useaddress not availableaddress family not supportedresource temporarily unavailableEAI_ADDRFAMILYEAI_AGAINtemporary failureEAI_BADFLAGSbad ai_flags valueEAI_BADHINTSinvalid value for hintsEAI_CANCELEDrequest canceledEAI_FAILpermanent failureEAI_FAMILYai_family not supportedEAI_MEMORYout of memoryEAI_NODATAno addressEAI_NONAMEunknown node or serviceEAI_OVERFLOWargument buffer overflowEAI_PROTOCOLresolved protocol is unknownEAI_SERVICEservice not available for socket typeEAI_SOCKTYPEsocket type not supportedconnection already in progressbad file descriptorresource busy or lockedoperation canceledECHARSETinvalid Unicode charactersoftware caused connection abortconnection refusedconnection reset by peerdestination address requiredfile already existsbad address in system call argumentfile too largehost is unreachableinterrupted system callinvalid argumenti/o errorsocket is already connectedillegal operation on a directorytoo many symbolic links encounteredtoo many open filesmessage too longname too longnetwork is downnetwork is unreachablefile table overflowno buffer space availableno such deviceno such file or directorynot enough memoryENONETmachine is not on the networkprotocol not availableno space left on devicefunction not implementedsocket is not connectednot a directorydirectory not emptysocket operation on non-socketoperation not supported on socketoperation not permittedbroken pipeprotocol errorprotocol not supportedprotocol wrong type for socketresult too largeread-only file systemESHUTDOWNcannot send after transport endpoint shutdowninvalid seekno such processconnection timed outtext file is busycross-device link not permittedunknown errorend of fileno such device or addresstoo many linksEHOSTDOWNhost is downEREMOTEIOremote I/O errorinappropriate ioctl for deviceEFTYPEinappropriate file type or formaterrmap(err) < (0)void node::(anonymous namespace)::ErrName(const FunctionCallbackInfo &)setKeysetCertaddCACertaddCRLaddRootCertssetCipherssetECDHCurvesetDHParamsetOptionssetSessionIdContextsetSessionTimeoutloadPKCS12setClientCertEnginegetTicketKeyssetTicketKeyssetFreeListLengthenableTicketKeyCallbackgetCertificategetIssuerkTicketKeyReturnIndexkTicketKeyHMACIndexkTicketKeyAESIndexkTicketKeyNameIndexkTicketKeyIVIndex_externalSSLv2_methodSSLv2 methods disabledSSLv2_server_methodSSLv2_client_methodSSLv3_methodSSLv3 methods disabledSSLv3_server_methodSSLv3_client_methodSSLv23_methodSSLv23_server_methodSSLv23_client_methodTLSv1_methodTLSv1_server_methodTLSv1_client_methodTLSv1_1_methodTLSv1_1_server_methodTLSv1_1_client_methodTLSv1_2_methodTLSv1_2_server_methodTLSv1_2_client_methodUnknown methodError generating ticket keysPrivate key argument is mandatoryOnly private key and pass phrase are expectedPass phrase must be a stringPEM_read_bio_PrivateKeySSL_CTX_use_PrivateKey../src/node_crypto.cc586!*issuer_int node::crypto::SSL_CTX_use_certificate_chain(SSL_CTX *, node::crypto::X509Pointer &&, struct stack_st_X509 *, node::crypto::X509Pointer *, node::crypto::X509Pointer *)587!*certCertificate argument is mandatorySSL_CTX_use_certificate_chainCA certificate argument is mandatoryCRL argument is mandatoryFailed to parse CRLIgnoring extra certs from `%s`, load failed: %s Ciphers argument is mandatoryCiphers must be a stringECDH curve name argument is mandatoryECDH curve name must be a stringautoFailed to set ECDH curveDH argument is mandatoryDH parameter is less than 1024 bitsDH parameter is less than 2048 bitsError setting temp DH parameterOptions must be an integer valueSession ID context argument is mandatorySession ID context must be a stringSSL_CTX_set_session_id_context errorSession timeout must be a 32-bit integerPFX certificate argument is mandatoryUnable to load BIOPass phrase must be a buffer1139static void node::crypto::SecureContext::SetClientCertEngine(const FunctionCallbackInfo &)1140Multiple calls to SetClientCertEngine are not allowedTicket keys argument is mandatoryTicket keys must be a bufferTicket keys length must be 48 bytesinitivupdatefinalsetAutoPaddinggetAuthTagsetAuthTagsetAAD2572static void node::crypto::CipherBase::New(const FunctionCallbackInfo &)2585!ctx_void node::crypto::CipherBase::CommonInit(const char *, const EVP_CIPHER *, const unsigned char *, int, const unsigned char *, int, unsigned int)Failed to initialize cipher2600(iv_len) >= (0)Invalid key lengthUnknown cipher2645(key_len) != (0)void node::crypto::CipherBase::Init(const char *, const char *, int, unsigned int)Use Cipheriv for counter mode of %s2667static void node::crypto::CipherBase::Init(const FunctionCallbackInfo &)2679args[2]->IsInt32() && args[2].As()->Value() == -1Missing IV for cipher %sInvalid IV length2726(args.Length()) >= (4)static void node::crypto::CipherBase::InitIv(const FunctionCallbackInfo &)2748args[3]->IsInt32() && args[3].As()->Value() == -12762IsAuthenticatedMode()bool node::crypto::CipherBase::InitAuthenticated(const char *, int, unsigned int)authTagLength required for %sInvalid authentication tag length2802iv_len >= 7 && iv_len <= 132808(mode) == (0x6)Invalid GCM authentication tag length: %u2829ctx_bool node::crypto::CipherBase::CheckCCMMessageLength(int)2830EVP_CIPHER_CTX_mode(ctx_.get()) == EVP_CIPH_CCM_MODEMessage exceeds maximum size2843bool node::crypto::CipherBase::IsAuthenticatedMode() constPermitting authentication tag lengths of %u bytes is deprecated. Valid GCM tag lengths are 4, 8, 12, 13, 14, 15, 16.DEP0090static void node::crypto::CipherBase::SetAuthTag(const FunctionCallbackInfo &)2903(cipher->auth_tag_len_) != (kNoAuthTagLength)Invalid authentication tag length: %uplaintextLength required for CCM mode with AAD2980static void node::crypto::CipherBase::SetAAD(const FunctionCallbackInfo &)29813008MaybePassAuthTagToOpenSSL()CipherBase::UpdateResult node::crypto::CipherBase::Update(const char *, int, unsigned char **, int *)3031(*out_len) <= (buff_len)Trying to add data in unsupported state3075out != nullptr || out_len == 0static void node::crypto::CipherBase::Update(const FunctionCallbackInfo &)3126mode == EVP_CIPH_GCM_MODEbool node::crypto::CipherBase::Final(unsigned char **, int *)3131(1) == (EVP_CIPHER_CTX_ctrl(ctx_.get(), 0x10, auth_tag_len_, reinterpret_cast(auth_tag_)))Unsupported stateUnsupported state or unable to authenticate datadigestHmacUnknown message digest3253args[0]->IsArrayBufferView()static void node::crypto::Hmac::HmacUpdate(const FunctionCallbackInfo &)3273static void node::crypto::Hmac::HmacDigest(const FunctionCallbackInfo &)3291HashDigest method not supported3398static void node::crypto::Hash::HashDigest(const FunctionCallbackInfo &)3407(mdctx_) == nullptrSignBase::Error node::crypto::SignBase::Init(const char *)dss1DSS1SHA1Not initialisedEVP_SignInit_ex failedEVP_SignUpdate failedPEM_read_bio_PrivateKey failedPEM_read_bio_PUBKEY failedsignSign3632static void node::crypto::Sign::SignFinal(const FunctionCallbackInfo &)3635verifyVerify3819static void node::crypto::Verify::VerifyFinal(const FunctionCallbackInfo &)3822generateKeyscomputeSecretgetPrimegetGeneratorgetPublicKeygetPrivateKeysetPublicKeysetPrivateKeyDiffieHellmanGroupGroup name argument is mandatoryGroup name must be a stringInitialization failedUnknown groupKey generation failedp is nullg is nullNo public key - did you forget to generate one?No private key - did you forget to generate one?Other party's public key argument is mandatoryOther party's public key must be a bufferInvalid KeySupplied key is too smallSupplied key is too largeInvalid key4228(size) >= (0)static void node::crypto::DiffieHellman::ComputeSecret(const FunctionCallbackInfo &)4235(data.size) > (static_cast(size))%s argument is mandatory%s must be a buffer4266(num) != nullptrstatic void node::crypto::DiffieHellman::SetKey(const v8::FunctionCallbackInfo &, int (*)(DH *, BIGNUM *), const char *)4267(1) == (set_field(dh->dh_.get(), num))Public keyPrivate keyECDH4334static void node::crypto::ECDH::New(const FunctionCallbackInfo &)First argument should be a valid curve nameFailed to create EC_KEY using curve nameFailed to generate EC_KEYFailed to allocate EC_POINT for a public keyData must be a bufferInvalid key pairERR_CRYPTO_ECDH_INVALID_PUBLIC_KEYFailed to compute ECDH key4431static void node::crypto::ECDH::GetPublicKey(const FunctionCallbackInfo &)Failed to get ECDH public key4441Failed to get public key lengthFailed to get public keyFailed to get ECDH private keyFailed to convert ECDH private key to BufferPrivate key must be a bufferFailed to convert Buffer to BNPrivate key is not valid for specified curve.Failed to convert BN to a private key4521(priv_key) != nullptrstatic void node::crypto::ECDH::SetPrivateKey(const FunctionCallbackInfo &)4524pubFailed to generate ECDH public keyFailed to set generated public keyPublic key must be a bufferFailed to convert Buffer to EC_POINTFailed to set EC_POINT as the public key4561group_bool node::crypto::ECDH::IsKeyValidForCurve(const node::crypto::BignumPointer &)4562private_key45694649void node::crypto::RandomBytes(const FunctionCallbackInfo &)465046514652args[3]->IsObject() || args[3]->IsUndefined()4655(offset + size) >= (offset)4656(offset + size) <= (Buffer::Length(args[0]))4794void node::crypto::Scrypt(const FunctionCallbackInfo &)4795args[1]->IsArrayBufferView()4796args[2]->IsArrayBufferView()47974798args[4]->IsUint32()4799args[5]->IsUint32()4800args[6]->IsUint32()4801args[7]->IsObject() || args[7]->IsUndefined()5179args[n_opts]->IsInt32()void node::crypto::GenerateKeyPair(const FunctionCallbackInfo &, unsigned int, std::unique_ptr)5182args[n_opts + 1]->IsInt32()5188args[n_opts + 2]->IsInt32()51915204args[n_opts + 5]->IsString()5209(mem) != nullptr5217args[n_opts + 5]->IsNullOrUndefined()5244void node::crypto::GenerateKeyPairRSA(const FunctionCallbackInfo &)52465254void node::crypto::GenerateKeyPairDSA(const FunctionCallbackInfo &)52565264void node::crypto::GenerateKeyPairEC(const FunctionCallbackInfo &)Invalid ECDH curve name52745277param_encoding == OPENSSL_EC_NAMED_CURVE || param_encoding == OPENSSL_EC_EXPLICIT_CURVE5288ctxvoid node::crypto::GetSSLCiphers(const FunctionCallbackInfo &)5291ssl5394void node::crypto::VerifySpkac(const FunctionCallbackInfo &)5439void node::crypto::ExportPublicKey(const FunctionCallbackInfo &)5471void node::crypto::ExportChallenge(const FunctionCallbackInfo &)5488void node::crypto::ConvertKey(const FunctionCallbackInfo &)Failed to get EC_GROUP55145539void node::crypto::TimingSafeEqual(const FunctionCallbackInfo &)55405543(buf_length) == (Buffer::Length(args[1]))openssl config failed: %s 5614args.Length() >= 2 && args[0]->IsString()void node::crypto::SetEngine(const FunctionCallbackInfo &)certVerifySpkaccertExportPublicKeycertExportChallengeECDHConvertKeysetEnginepbkdf2generateKeyPairRSAgenerateKeyPairDSAgenerateKeyPairECOPENSSL_EC_NAMED_CURVEOPENSSL_EC_EXPLICIT_CURVEPK_ENCODING_PKCS1PK_ENCODING_PKCS8PK_ENCODING_SPKIPK_ENCODING_SEC1PK_FORMAT_DERPK_FORMAT_PEMrandomBytestimingSafeEqualgetSSLCiphersgetCiphersgetHashesgetCurvespublicEncryptprivateDecryptprivateEncryptpublicDecryptscryptOpenSSL 1.1.0j 20 Nov 2018%.*sgetPeerCertificategetFinishedgetPeerFinishedgetSessionsetSessionloadSessionisSessionReusedgetCurrentCipherendParsercertCbDonerenegotiategetTLSTicketnewSessionDonesetOCSPResponserequestOCSPgetEphemeralKeyInfogetProtocolsetMaxSendFragmentgetALPNNegotiatedProtocolsetALPNProtocols2480(SSL_set_SSL_CTX(ssl_.get(), sc->ctx_.get())) == (sc->ctx_.get())void node::crypto::SSLWrap::SetSNIContext(node::crypto::SecureContext *) [Base = node::TLSWrap]2241Buffer::HasInstance(alpn_buffer)static int node::crypto::SSLWrap::SelectALPNCallback(SSL *, const unsigned char **, unsigned char *, const unsigned char *, unsigned int, void *) [Base = node::TLSWrap]237!exception_v.IsEmpty()Local node::crypto::CryptoErrorVector::ToException(node::Environment *, Local) const!array.IsEmpty()exception_v->IsObject()(status) >= (0)void node::crypto::CheckEntropy()748(x509) != nullptrX509_STORE *node::crypto::NewRootCertStore()-----BEGIN CERTIFICATE----- MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNV BAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBa MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdS b290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQDaDuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtI K+6NiY6arymAZavpxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCO XkNz8kHp1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3 dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DP AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRg e2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUFAAOCAQEA1nPnfE920I2/7LqivjTF KDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY7 76BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9 LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr +WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMX R2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMT Ckdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQL ExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8o mUVCxKs+IVSbC9N/hHD6ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7 SqbKSaZeqKeMWhG8eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQ BoZfXklqtTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feq CapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8E BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IHV2ccHsBqBt5ZtJot39wZhi4w NgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxzaWduLm5ldC9yb290LXIyLmNy bDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEA mYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkI k7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRD LenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7TBj0/VLZ jmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQG EwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1h cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3 MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlT aWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2 R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6 yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFU okWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyo w0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBte HRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my /uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC/Y4wjylG sB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0xuKh XFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVz dC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJl Zi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0 ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4 KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0 Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVm LiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl ZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtK TY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/EC DNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ /cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzWnLLPKQP5L6RQstRIzgUyVYr9smRM DuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVC wQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQAD ggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6YfzX1XEC+b BAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKTJ1wD LW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAG A1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1v cmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjEL MAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEi MCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2ygu zmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo 6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3z yZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkC AwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1BE3wMBIGA1UdEwEB/wQIMAYB Af8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27 TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukM JY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhS NzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67 G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UE ChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3Jr MSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoX DTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYw JAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1 c3QgRXh0ZXJuYWwgQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3 GjPm8gAELTngTlvtH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCw SXrbLpX9uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63u bUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5 aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0WicCAwEAAaOB3DCB2TAdBgNV HQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMB Af8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYT AlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwg VFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJ KoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw56wwCURQt jr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355e6cJ DUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49O hgQ= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAU BgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMg aW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwg SW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X DTA2MTEyNzIwMjM0MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQK Ew1FbnRydXN0LCBJbmMuMTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29y cG9yYXRlZCBieSByZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4x LTArBgNVBAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poB j6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypo wCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+ SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rV vDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2 HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB /zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSME GDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQCT 1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISMY/YP yyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE 2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPc j2A781q0tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYD VQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIw NTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2Vv VHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEH CIjaWC9mOSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386D GXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvo cWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9 qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1luMrMTjANBgkqhkiG9w0BAQUF AAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VS syShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfO EVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQd tqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeX xx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UE ChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0 MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdl b1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZI hvcNAQEBBQADggIPADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckU HUWCq8YdgNY96xCcOq9tJPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDg FgDgEB8rMQ7XlFTTQjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEY fyh3peFhF7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+ 59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xdVHppCZbW2xHBjXWo tM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCXteGYO8A3ZNY9lO4L4fUorgtW v3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2 Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3 wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGj YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8G A1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG 9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRcaanQmjg8 +uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2qaav dy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG 8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzn s0ccjkxFKyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3k t0tm7wNFYGm2DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkD MBmhLMi9ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6 ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UE ChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcN MDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0G CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6Gq dHtXr0om/Nj1XqduGdt0DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSC egx2oG9NzkEtoBUGFF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O 64ceJHdqXbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaq W9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IEr KIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73y/Zl92zxlfgCOzJWgjl6W70v iRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuU YbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xf BHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQID AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQ KzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+zdXkzoS9t cBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ4T7G zKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEn cKpqA1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8p RPPphXpgY+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp 8RW04eWe3fiPpm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Bas x7InQJJVOCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH 6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSL akhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYD VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNl cnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIw NjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklT QTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAa BgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQCvV95WHm6h2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVI sZHBAk4ElpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzz lr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0 lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBA MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMe zUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytM iUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1k k5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGI xHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw ++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt398znM/j ra6O1I7mT1GvFpLgXPYHDw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UE CAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21v ZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0 MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdy ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENB IExpbWl0ZWQxITAfBgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686td UIoWMQuaBtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe 3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8Ioa E+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULi mAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7S w4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYD VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDov L2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0 dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG 9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLzRt0vxuBq w8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z8VlI MCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcG A1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYD VQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTR vM16z/Ypli4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtf fp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZ yH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospUxbF6lR1xHkopigPcakXBpBle bzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4wPQYIKwYBBQUHAQEEMTAvMC0GCCsG AQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUw AwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCB xxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBw YXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJhY3RpY2Vz LCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEWFmh0 dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJN MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRp b24gQXV0aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0 aG9yaXR5ggQ6tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70 mpKnGdSkfnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe /QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsT IlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJD Wl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOKSnQ2+Q== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNV BAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0w NjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBR dW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqG SIb3DQEBAQUAA4ICDwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4Gt Mh6QRr+jhiYaHv5+HBg6XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp 3MJGF/hd/aTa/55JWpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsR E8Scd3bBrrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp +ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI 0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2 BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIizPtGo/KPaHbDRsSNU30R2be1B 2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOhD7osFRXql7PSorW+8oyWHhqPHWyk YTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyP ZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQAB o4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwz JQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1Zh ZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUvZ+YT RYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgt JodmVjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q8 0m/DShcK+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W 6ZM/57Es3zrWIozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQj rLhVoQPRTUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6y hhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO 1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAF ZdWCEOrCMc0u -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNV BAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0w NjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBR dW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqG SIb3DQEBAQUAA4ICDwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTP krgEQK0CSzGrvI2RaNggDhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZ z3HmDyl2/7FWeUUrH556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2Objyj Ptr7guXd8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mta a7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJ k8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1 ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEXMJPpGovgc2PZapKUSU60rUqFxKMi MPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArl zW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQAB o4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMw gcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0aWZpY2F0 ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYBBQUH AgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1 XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEb MBkGA1UEAxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62g LEz6wPJv92ZVqyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon 24QRiSemd1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd +LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hR OJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j5 6hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6l i92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8S h17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7 j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEo kt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7 zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UE ChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJv b3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEY MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0 aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8 V6UMbXaKL0u/ZPtM7orw8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzG jGdnSj74cbAZJ6kJDKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1ae V+7AwFb9Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OV YNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZ aNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG 9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g0dNq/vu+m22/xwVtWSDEHPC32oRY AmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7K aEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKq L8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfci oU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UE ChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoX DTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UE AxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAX SjWdyvANlsdE+hY3/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gX GM2RX/uJ4+q/Tl18GybTdXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7 Jp12W5dCsv+u8E7s3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCW ctRUz2EjvOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu 8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0T AQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB BQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zilzqsWuasvfDXLrNAPtEwr/IDv a4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEIcbCdjdY0RzKQxmUk96BKfARzjzlv F4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHa PJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj 4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkG A1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJh bXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlm aWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjEL MAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMb WFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY JB69FbS638eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5df T2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3 hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSP puIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJ KwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O BBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwu eHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcN AQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxtqZ4Bfj8p zgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8nnxCb HIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz 8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UE ChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAy IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYy MFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjEx MC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAw DQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWiz V3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HF iH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44 dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLEsNKR1EwRcbNhyz2h/t2oatTj MIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2oatTjoWekZTBjMQswCQYDVQQGEwJV UzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRk eSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJ KoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYX MP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQHmyW74cN xA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VILs9R aRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b vZ8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UE ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENs YXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5 MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2ll cywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRo b3JpdHkwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N 78gDGIc/oav7PKaf8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMe j2YcOadN+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4Umkhyn ArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W 93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRb Vazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0fhvRbVazc1xDCDqmI56FspGowaDEL MAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAw BgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1ep oXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJlxy16paq8 U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJDKVtH CN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 QBFGmh95DmK/D5fs4C8fF5Q= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYD VQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9y aXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAu BgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJ KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN8 6aXfTEc2pBsBHH8eV4qNw8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOU T0b3EEk3+qhZSV1qgQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQk clSGxtKyyhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBq nTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUq dULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FCVGqY8A2tl+lSXunVanLeavcb YBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNt sea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6O M5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMB AAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkG BGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZTulStbng CnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6TjZwj/ 5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1 AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0 dDzpD6QzDxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5L KlwCCDTb+HbkZ6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05e r/ayl4WXudpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v 3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAw MDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1 cmVkIElEIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOA XLGH87dg+XESpa7cJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lT XDGEKvYPmDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/l bQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcX xH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQE AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF66Kv9JLLgjEtUYunpyGd823IDzAf BgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog68 3+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqo R+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+ fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe+o0bJW1s j6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBa Fw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBS b290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKP C3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscF s3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt 43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6g SzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSii cNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYD VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgw FoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1E nE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDi qw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBA I+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQkCAUw7C29 C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2 MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERp Z2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNl cnQgSGlnaCBBc3N1cmFuY2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBAMbM5XPm+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlB WTrT3JTWPNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeB QVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5 OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsgEsxBu24LUTi4S8sCAwEAAaNj MGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9H AdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3 DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1 ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VH MWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCevEsXCS+0 yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkG A1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkg Q0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8G A1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxv c0NXYKwzCkTsA18cgCSR5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLR YE2+L0ER4/YXJQyLkcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v 0lPubNCdEgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC 40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNV HQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQw MC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29tL0NSTC9jbGFzczIuY3JsMA0GCSqG SIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5t n9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabg lZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW 2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7l7+ijrRU -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYD VQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENB IFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRh bCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdA wRgUi+DoM3ZJKuM/IUmTrE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwG MoOifooUMM0RoOEqOLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4X Lh7dIN9bxiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkq tilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw HQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqGSIb3DQEBBQUAA4IBAQCjGiyb FwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikugdB/OEIKcdBodfpga3csTS7MgROSR 6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaL bumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir /md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06Xyx V3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNI MRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0g RzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMG A1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIIC IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJC Eyq8ZVeCQD5XJM1QiyUqt2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcf DmJlD909Vopz2q5+bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpi kJKVyh+c6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT 28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdV xVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02yMszYF9rNt85mndT9Xv+9lz4p ded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkOpeUDDniOJihC8AcLYiAQZzlG+qkD zAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR7ySArqpWl2/5rX3aYT+Ydzyl kbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+Zr zsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E FgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn 8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDovL3JlcG9z aXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm5djV 9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr 44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8 AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0V qbe/vd6mGu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9Qkvfsywe xcZdylU6oJxpmo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/Eb MFYOkrCChdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3 92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG 2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/Y YPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkk W8mw0FfB+j564ZfJ -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gx FTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAt IEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTAT BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcy MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dO cbpLj6VzHVxumK4DV644N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGi TSf5YXu6t+WiE7brYT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi 0R86TieFnbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH 6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyC bTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jM qDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/ +dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBsROopN4WSaGa8gzj+ezku01DwH/te YLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIj QAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calI Lv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV HQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0cDovL3Jl cG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P4JUw 4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcS H9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkD lm4fS/Bx/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakM DHiqYMZWjwFaDGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHk Flt4dR2Xem1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29 MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI 4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s 5Aq7KkzrCWA5zspi2C5u -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYD VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJp bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYy MzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQD EyhHZW9UcnVzdCBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92 /ZV+zmEwu3qDXwK9AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa 9OBesYjAZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0 EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s 0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV HQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZIhvcNAQEFBQADggEBAFpwfyzdtzRP 9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z +gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD3 2sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJly c1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkG A1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlv biBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0g Rm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3Qg Q0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTAT BgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBE aXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6 ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3 /AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29 dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk6KHYcWUNo1F77rzSImANuVud 37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9 yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+ Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G A1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7OR tvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAXxPcW6cTY cvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89jxt5 dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkG A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQ cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcN MzYwNzE2MjM1OTU5WjCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBW ZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0g RzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8 RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70PbZmIVYc9g DaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ0 23tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9 r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MU CH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNV HQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqGSIb3 DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU 7qKEKQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMt EMze/aiCKm0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7 MzVIcbidJ4vEZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYD VQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNl Y3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UE BhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1 cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7C T8rU4niVWJxB4Q2ZQCQXOZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29 vo6pQT64lO0pGtSO0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZ bf2IzIaowW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj 7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xH CzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIE Bh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE /f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYjaHR0cDovL2NybC5zZWN1cmV0cnVz dC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDt T0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQ f2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cp rp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR3ItHuuG5 1WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYD VQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNl Y3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYD VQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNl Y3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxV aQZx5RNoJLNP2MwhR/jxYDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6Mpjh HZevj8fcyTiW89sa/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ /kG5VacJjnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPi XB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGC NxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9E BMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJl dHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IB AQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQV DpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895 P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xcf8LDmBxr ThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkG A1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9y ZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZp Y2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQsw CQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxm b3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRp ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECL i3LjkRv3UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI 2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7eu NJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC 8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQF ZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVIrLsm9wIDAQABo4GOMIGLMB0GA1Ud DgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw AwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9D ZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5 t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/RxdMosIG lgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmcIGfE 7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYD VQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAw WhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1 dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBB dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xG zuAnlt7e+foS0zwzc7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQ NJIg6nPPOCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1 QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMh qxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA 106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MFIGA1Ud HwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25z Q2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ot t3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVR DuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH /nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3HtvwKeI8lN3 s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxDydi8 NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UE BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEa MBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlm aWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTEL MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2Fs Zm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0Mg Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmC FYX7deSRFtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZ SBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq hkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDmfQjGGoe9GKhzvSbKYAydzpmf z1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeAU/7dIOA1mjbRxwG55tzd8/8dLDoW V9mSOdY= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkG A1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAw NTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUg V0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5 NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJp Z2h0IChjKSAyMDA1MSIwIAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYD VQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSL tZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dy oJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg4E8HsChWjBgbl0SOid3gF27n Ku+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3RLoGbw9ho972WG6xwsRYUC9tguSYB BQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+ rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEB AEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VF vbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8 vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXahNVQA7bi hKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEYokxS dsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZS MRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMw NVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczER MA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ 1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lI zw7sebYs5zRLcAglozyHGxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxr yIRWijOp5yIVUxbwzBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJb zg4ij02Q130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0T AQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AU Gu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlt eW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEG CWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl 1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxA GYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9q cEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/QwWyH8EZE0 vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UE ChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRl cjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAw WhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVs ZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1 dHNjaGUgVGVsZWtvbSBSb290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQCrC6M14IspFLEUha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1c Os7TuKhCQN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1 Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFh mHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0G A1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB /wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f7 6Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSY SKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juw zTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mUCm26OWMo hpLzGITY+9HPBVZkVw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMP Q3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2 MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5j MR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO2 1O1fWLE3TdVJDm71aofW0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2O lTEQXO2iLb3VOm2yHLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeW P032a7iPt3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQID AQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2 CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJs aWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8GA1UdIwQYMBaAFLYIew16zKwgTIZW Ml7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ej hVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24C JJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+z v+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jWWL1WMRJO Ecgh4LMRkWXbtKaIOM5V -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYD VQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsM IWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0z NDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29t IENvLiwgTHRkLjEqMCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U 82N0ywEhajfqhFAHSyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrB p0xtInAhijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZr xQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ad o4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffAsgRFelQArr5T9rXn4fg8ozHS qf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ETOxQvdibBjWzwloPn9s9h6PYq2l Y9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUa dCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+Xk wY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3 pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLHClZ87lt4 DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B01GqZ NF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnV vwdVxrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltab rNMdjmEPNXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc 7b3jajWvY9+rGNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8 GrBQAuUBo2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS /jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C 6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yI VMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4 EZw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREw DwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQx NzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lH TjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBALczuX7IJUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oq rl0Hj0rDKH/v+yv6efHHrfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsA fsT8AzNXDe3i+s5dRdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUo Se1b16kQOA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNC MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPx fIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJLjX8+HXd5n9liPRyTMks1zJO 890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6 IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KT afcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI 0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5V aZVDADlN9u6wWk5JRFRYX0KD -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkG A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdl b1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1 c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAw MFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJ bmMuMTkwNwYDVQQLEzAoYykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg dXNlIG9ubHkxNjA0BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRo b3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz +uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD6 14SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeD XTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/WJmxsYAQlTlV+fe+/lEjetx3d cI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ 6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB /zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqG SIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTT Od8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGDAWh9jUGh lBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33st/3L jWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UE BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3Rl LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmlt YXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQsw CQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0 aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3Rl IFByaW1hcnkgUm9vdCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFS eIf+iha/BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/ MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZI zj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3KMqh9HneteY4sPBlcIx/AlTC v//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3Krr0TKUQNJ1uo52icEvdYPy5yAlej j6EULg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkG A1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlv biBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0g Rm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg Q0EgLSBHMzAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJV UzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZp Y2VzIERpdmlzaW9uMTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0 aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu 86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/E th9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3To O39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY7CFJXJv2eul/VTV+lmuNk5Mny5K7 6qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiY nODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQAD ggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1but8jLZ8HJ nBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC8rZc JwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UE BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1Ry dXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3Qg UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoX DTM4MDExODIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMu MTkwNwYDVQQLEzAoYykgMjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl IG9ubHkxNjA0BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp dHkgLSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf 691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC AQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSW WaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7mndwxHLKgpxgceeHHNgIwOlavmnRs 9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2npaqBA+K -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkG A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBh dXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTla MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMu IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbna zU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWHH26MfF8WIFFE0XBPV+rjHOPM ee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL729fdC4uW/h2KJXwBL38Xd5HVEMkE6 HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ 79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQAB o4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEw X6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1UdDgQWBBS2 d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3Y8xu TPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahf YtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tew XDpPaj+PwGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WI g0vvBZIGcfK4mJO37M2CYfE45k+XmCpajQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UE BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgw MTE4MjM1OTU5WjCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8w HQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJp U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQw djAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmD iWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3vefLK+ymVhAIau2o970ImtTR1Z mkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYI KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoas jY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYw HQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgm YFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTER MA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFu w7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwws TmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjEx MTUwODIxWhcNMjgxMjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFw ZXN0MRUwEwYDVQQKDAxOZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lh ZMOzayAoQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkg KENsYXNzIEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFtt vzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn 7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5VA1lddkVQZQBr17s9o3x/61k /iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7 GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiL o0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpn k/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ 5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C +C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzCbLBQWV2Q WzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5KfnaNwUA SZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwG A1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJs YW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjEL MAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwi U3RhYXQgZGVyIE5lZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD ggIPADCCAgoCggIBAMVZ5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZ qhQlEq0i6ABtQ8SpuOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU2 54DBtvPUZ5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV 3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9 whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2U uIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V6548r6f1CGPqI0GAwJaCgRHOThuVw+ R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/ Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymY NqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYD VR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNVHQ8BAf8E BAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUAA4IC AQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz +51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUX vQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sU OlWDuYaNkqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fM dWVSSt7wsKfkCpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2t UKRXCnxLvJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8s V4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXq ZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOL nR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNV BAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4X DTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSS HSL22oVyaf7XPwnU3ZG1ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8g PW2iNr4joLFutbEnPzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7j EAaPIpjhZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208 o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQE AwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsCmEEIjEy82tvuJxuC52pF7BaL T4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37piol7Yutmcn1KZJ/RyTZXaeQi/cImya T/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgC IDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES 7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4Jx HYB0yvbiAmvZWg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UE ChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJl U2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNV BAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRww GgYDVQQDExNTZWN1cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEA/XeqpRyQBTvLTJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1y fIw/XwFndBWW4wI8h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyK yiyhFTOVMdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V 1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsCh8U+iQIDAQABo0Iw QDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKChOBZmLqdWHyGcBvod7bkixTgm2E5P 7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI 6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAY ga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR 7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN QSdJQO7e5iNEOdyhIta6A/I= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJI VTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMM Hk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0Bl LXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQG EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNV BAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5m b0BlLXN6aWduby5odTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG 2KfgQvvPkd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDH QWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqp GrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV 87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQF MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAf BgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3pp Z25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5Dw pL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775tyERzAMB VnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02yULy Mtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi LXpUq3DDfSJlgnCW -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMX R2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMT Ckdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQL ExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5Bngi FvXAg7aEyiie/QV2EcWtiHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0M K66X17YUhhB5uzsTgHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL 0gRgykmmKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613 t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQD AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0G CSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7lgAJQayzE4aGKAczymvmdLm6AC2u pArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdW PoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0 095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJr lAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH WD9f -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMx QjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwg Q0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNV BAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zl c2lvbmFsIENJRiBBNjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDK lmuO6vj78aI14H9M2uDDUtd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOS L/UR5GLXMnE42QQMcas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9 qFD0sefGL9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2 f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44 I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCyZ/QYFpM6/EfY0XiWMR+6Kwxf XZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy 9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF 8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mV BngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8C AQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZpcm1hcHJv ZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAAbABh ACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+ xDLx51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5x hOW1//qkR71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5 eTSSPi5E6PaPT481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5Fl ClrD2VQS3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2 gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYD NEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhr JKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIyS xZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYD VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcN MDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwL SVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQDJ03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5Tz cqQsRNiekpsUOqHnJJAKClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpz bm3benhB6QiIEn6HLmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJ GjMxCrFXuaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8 hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG7 0t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyNBjNaooXlkDWgYlwWTvDjovoD GrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+0rnq49qlw0dpEuDb8PYZi+17cNcC 1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQD fo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNV HREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4g LSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAxMCBWaXRv cmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE FB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9 fbgakEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJO ubv5vr8qhT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m 5hzkQiCeR7Csg1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Py e6kfLqCTVyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqt ujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZ pR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6i SNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE4 1V4tC5h9Pmzb/CaIxw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJF VTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZp cm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1l cmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4 MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYD VQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEg Uy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+ JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCG hSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072QDuKZoRuGDtqaCrsLYVAGUvGe f3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL +8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9 ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esH nFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2w sWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhjya6BXBg1 4JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2EQID AQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4x CzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQg d3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNV BAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2Ug Um9vdCAtIDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI hvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I 6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0 /gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk1 8pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rc f+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+K MjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb 0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1DefhiYtUU7 9nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRgOGcEMeyP84LG3rlV 8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJF VTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZp cm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1l cmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAe Fw0wODA4MDExMjMxNDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UE BxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9h ZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwG Mi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7G706tcuto8xEpw2u IRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBA spjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/ LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkB fSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9 kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al /3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r 6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9JhwZG7SMA0 j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMBAAGj ggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkG A1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cu Y2FtZXJmaXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMS QUMgQ2FtZXJmaXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAt IDIwMDiCCQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEF BQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv 4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWC koQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIa dJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJ jUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uY lDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3L m6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4gev8CSlDQb 4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z09gwzxMNTxXJhLyn SC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNV BAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29t LCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAt IEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAw DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5 LmNvbSwgSW5jLjExMC8GA1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3Jp dHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3 gElY6SKDE6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH /PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLI jWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6 gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGRtDtwKj9useiciAF9n9T521Nt YJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3 DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC 2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95 kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo 2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPOLPAvTK33 sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNV BAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBU ZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRl IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJ BgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYD VQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQg Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSu S/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhh dM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dNdloedl40wOiWVpmKs/B/pM29 3DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbUJtQIBFnQmA4O5t78w+wfkPECAwEA AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n 2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWU XuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox 9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg 8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/KpL/QlwVK vOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZc2T5 NnReJaH1ZgUufzkVqSr7UIuOhWn0 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNV BAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBU ZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENl cnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1 OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNk YWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJT dGFyZmllbGQgU2VydmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2 dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS 7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufehRhJfGZOozptqbXuNC66DQO4 M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFBrMnUVN+HL8cisibMn1lUaJ/8viov xFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC AQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBL NqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynV v/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkdiEDPfUYd /x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jzaYyWf /Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMx FDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFs MB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNV BAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTW zsO3qyxPxkEylFf6EqdbDuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U 6Mje+SJIZMblq8Yrba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNA FxHUdPALMeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1J dX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8w DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAFis 9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M 06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1Ua ADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjip M1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclN msxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMx FDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5n MB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNV BAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWRE ZY9nZOIG41w3SfYvm4SEHi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ /Ls6rnla1fTWcbuakCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXL viRmVSRLQESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp 6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKB Nv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0w DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAIlX shZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t 3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA 3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzek ujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfx ojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMx FDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4X DTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoM C0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG 9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64t b+eT2TZwamjPjlGjhVtnBKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/ 0qRY7iZNyaqoe5rZ+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/ K+k8rNrSs8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua 2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/ 9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+SqHZGnEJlPqQewQcDWkYtuJfz t9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m 6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKP KrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNC MEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMgNt58D2kT iKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC6C1Y 91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQ wUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFo oC8k4gmVBtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5Yw H2AG7hsj/oFgIxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/ qzWaVYa8GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAlo GRwYQw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDAS BgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAe Fw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQK DAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcq hkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQU X+iOGasvLkjmrBhDeKzQN8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR 4ptlKymjQjBAMB0GA1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTAD AQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9C a/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYD VQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlm aWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0Ew HhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UE ChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmlj YXRpb24gQXV0aG9yaXR5MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIB IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/ 91sts1rHUV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmt VSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM +44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8xAcPs3hEtF10fuFDRXhmnad4H MyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQI ds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEB AKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsi srCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv 94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI03YnnZot BqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UE CgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBf MQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSow KAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bi hSX0NXIP+FPQQeFEAcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQ sIBct+HHK3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJb KdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxY A7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud DgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG9w0BAQUFAAOCAQEAPNV3PdrfibqH DAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqG fczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4g umlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKu D8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UE ChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29t bXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTEL MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAl BgNVBAsTHlNlY3VyaXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz3 35c9S672XewhtUGrzbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonC v/Q4EpVMVAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhw Hyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCca dfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQE AwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBMOqNErLlFsceTfsgL CkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8 AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g6 9ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR 50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkG A1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChO SUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNh Y2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAo YykwMzE1MDMGA1UECxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRh bGFuZXMxDzANBgNVBAMTBkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTla MIHzMQswCQYDVQQGEwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZp Y2FjaW8gKE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3Zl cmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNh Y2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfC Q2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6 PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST 2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n 5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8EBTADAQH/ MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYDVR0g BHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0 Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/ sXE7zDkJlF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPp qojlNcAZQmNaAl6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7Awa boMMPOhyRp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6 Un/10asIbvPuW/mIPX64b24D5EI= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNV BAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4g QXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5z dGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1Mlow gZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFy Y2ggSW5zdGl0dXRpb25zIENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNh ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0a e50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsm LIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD75O6aRXxYp2fmTmCobd0LovU xQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH3N6sQWRstBmbAmNtJGSPRLIl6s5d dAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNV HQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUw BoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3 DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p 6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8TqBTnbI6 nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD/md9 zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N 7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQx DjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEn MCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIw MloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYD VQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRo ZW50aWNhdGlvbiBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bE pSmkLO/lGMWwUKNvUTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW 1V8IbInX4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63 igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8 oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RH ILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8lEfKXGkJh90qX6IuxEAf6ZYGyojnP 9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4 RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U 5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/j Vo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbtifN7OHCU yQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyIWOYd iPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjR lwKxK3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2ryk OLpn7VU+Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2T lf05fbsq4/aC4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst 842/6+OkfcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VL kn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDz zFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7y FIrM6bV8+2ydDKXhlg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYD VQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQ UyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMC R0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9v dCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2 mfRC6qc+gIMPpqdZh8mQRUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkc hU59j9WvezX2fihHiTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE 2gfmHhjjvSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA 0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L6 8MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV HSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuy ZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2cGE+esCu8jowU/yyg2kdbw++BLa8F 6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5B uO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWh PBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/ rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN ZetX2fNXlrtIzYE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UE CgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290 IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAb BgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIg Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1 aeTuMgHbo4Yf5FkNuud1g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXl zwx87vFKu3MwZfPVL4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FV M5I+GC911K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfg olXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkBarcNuAeBfos4Gzjm CleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T 3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1L PC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIH ZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVe e7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+Bi koL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h 9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462sA20ucS6v xOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EIosHs Hdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlq YLYdDnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6 OBE1/yWDLfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6w pJ9qzo6ysmD0oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYK beaP4NK75t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h 3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv 4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UE CgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290 IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAb BgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMg Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEG Mnqb8RB2uACatVI2zSRHsJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fk oF0LXOBXByow9c3EN3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOo TyrvYLs9tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX 0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux 9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6a ny2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5 GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon 74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3i iZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFM OVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/l b+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdVcSQy9sgL 8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+GuIAe qcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshA pqr8ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjEN SoYc6+I2KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr1 8okmAWiDSKIz6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2X cEQNtg413OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN 12TyUb7mqqta6THuBrxzvxNiCp/HuZc= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNV BAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lz dGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNz IDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzAp BgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQt U3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENs YXNzIDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3Z JNW4t/zN8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys5 2qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HM VDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6 tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0B AQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ 85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/ vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT 91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuImle9eiPZaG zPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYD VQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwf RUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNr LmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVF MSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0 aWZpY2F0aW9uIENlbnRyZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLq I9iroWUyeuuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajm ofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAd TX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE1CV2yreN1x5KZmTNXMWcg+HC CIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E BAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUF BwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkw DQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQi ZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5uuSlNDUmJ EYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU3j2L rTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM dcGWxZ0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYD VQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIg MjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUw EwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENB IDIgMjAwOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/W UEWJNTrGa9v+2wBoqOADER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23D EE0NkVJD2IfgXU42tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/ RcPHAY9RySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8 gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMB Af8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYD VR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRS VVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21i SCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10 cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZI hvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0o3/U37CY Aqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEVdT1B /yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYD VQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIg RVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRF MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAz IENBIDIgRVYgMjAwOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3 MKCOvXwEz75ivJn9gpfSegpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut 8Mxk2og+KbgPCdM03TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsT l28So/6ZqQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDY D8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB /wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9NteaHNxnMA4GA1UdDwEB/wQEAwIB BjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0 L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89 RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBo dHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2 XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp 3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05nsKtjHEh 8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lXANtu 2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjm JuVvw9y4AyHqnxbxLFS1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNL MRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBD QSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkG A1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAX BgNVBAMTEENBIERpc2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQCio8QACdaFXS1tFPbCw3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9 vgMsRfYvZNSrXaNHPWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwA FjxfGs3Ix2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4k LlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SO fW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912H9AZdugsBbPWnDTYltxhh5EF 5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYEkoopKW1rOhzndX0CcQ7zwOe9yxnd nWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhb hZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6IN fPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/ MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFMtCQSin1t ERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVVsRHF qQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QO y7W81k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kH bA7v/zjxmHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOG dGSVyCh13x01utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+ boE+18DrG5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3v QCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUND VlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAe Fw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQ MA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqG SIb3DQEBAQUAA4ICDwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPf mt4ftVTdFXxpNRFvu8gMjmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM38 02/J+Nq2DoLSRYWoG2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkX hBilyNpAlHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJ cRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eHk6fGioozl2A3ED6X Pm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/474KElB0iryYl0/wiPgL/AlmXz 7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE 3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbh dQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQAB o4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3Yu ZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2VuqB5TbM jB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyMHj+9 MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAA UgBhAO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUA IABUAGUAYwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4A IABFAGwAZQBjAHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUA KQAuACAAQwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUG A1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3Mv Y2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREE EDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7Uwo ZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTK FpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/ +QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA 9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH7ehVRE2I 9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5hI6zppSSMEYCUWqKi uUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1XgNce4hL60Xc16 gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew +f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbR D0tVNEYqi4Y7 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNV BAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwg Um9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRX MRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0Eg R2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zE booh745NnHEKH1Jw7W2CnJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvV avKOZsTuKwEHktSz0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XT P3VfKfChMBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWof wpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/ T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6m OL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/pyJV/v1WRBXrPPRXAb94JlAGD1zQb zECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJr nu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53 L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL 1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsnLhpNgb+E 1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M8VeG TslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg /eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRd gFlglPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92 a6O2JryPA9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/Zuepi iI7E8UuDEq3mi4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZz JBPqpK5jwa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIG A1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcN MDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEf MB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIP ADCCAgoCggIBAMK+6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3 t+XmfHnqjLWCi65ItqwA3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq /t75rH2D+1665I+XZ75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1 jF3oI7x+/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs 81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAg HNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzT jU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMusDor8zagrC/kb2HCUQk5PotT ubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7Rc We/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUB iJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB /wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjAN BgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx0GtnLLCo 4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfWpb/I mWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KF dSpcc41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrE gUy7onOTJsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQ mz1wHiRszYd2qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfuj uLpwQMcnHL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRS MQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtu b2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlm aWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9y aXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8w DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xv amlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWth c3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq98 99SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0b QNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSFQ9OArqGIW66z6l7LFpp3RMih 9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+gElIwcxmOj+GMB6LDu0rw6h8VqO4l zKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3 fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2o MoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QO XVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+LznrFpct1pH XFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5dUyQ 5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB /wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQD AgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd 0dCrfOAKkEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/ u6Au/U5Mh/jOXKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1 Q9Jauz1c77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 +GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5 TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4 R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDY wKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186 zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9 I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNV BAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lz dGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNz IDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzAp BgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQt U3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENs YXNzIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl 82hVYAUdAqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcx lkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1q lVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZwI18gfNycJ5v/hqO2V81xrJv NHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0B AQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSp p+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joi fsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN9noHV8ci gwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRv cyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3 MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3Qg MjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQCVhTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI41 9KkM/IL9bcFyYie96mvr54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+ yj5vdHLqqjAqc2K+SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFs Q/H3NYkQ4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMB AAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/ MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgGA1UdIAQRMA8wDQYLKwYBBAGw LQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4G kGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0 BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQP OLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYV qL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDEL MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1Zh ZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJ BgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRp cyBSb290IENBIDEgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjuny bEC0BJyFuTHK3C3kEakEPBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/ gpqG7D0DmVIB0jWerNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOG MAqNF34168Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh 4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5 cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnA AZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2Y fF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVd YdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7 a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfn kduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOCMTaIzen7 xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3GPoa jOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvr iBbP+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCk eF9OrYMh3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ +p6Q9pxyz0fawx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTD vdbJWqNjZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwS tIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDEL MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1Zh ZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJ BgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRp cyBSb290IENBIDIgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjc V4g/Ruv5r+LrI3HimtFhZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WV HhLL5hSEBMHfNrMWn4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs +L5u+9ymc5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8M SPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPj EiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKqIcGY5jDjZ1XHm26sGahVpkUG 0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIh O4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoos FCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4 r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66AarHakE7 kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7KpVMN qT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9 sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDb Il9qxV6XU/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+ D77vfoRrQ+NwmNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpn IdsPNWNgKCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0Z iC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDEL MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1Zh ZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJ BgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRp cyBSb290IENBIDMgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47q FJenMioKVjZ/aEzHs286IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O 2YIyC0TeytuMrKNuFoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMB OSBDGzXRU7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f +IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCT ZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzweyuxwHApw0BiLTtIadwjPEjr ewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqiMd5mBPfAdOhx3v89WcyWJhKLhZVX GqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUC f+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/J xHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3pxKGmPc+FS kNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzSt/Ac 5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2Nn L9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE 8/nxoGibIh6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8 XgBCH/MyJnmDhPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H 6QrG2vd+DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDY WGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIw MDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1 cmVkIElEIFJvb3QgRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82 ckmIkzTz+GoeMVSAn61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxN EP4HteccbiJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO7 04gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8 p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQF MAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTOw0q5mVXyuNtgv6l+vVa1lzan1jAN BgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTU iaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LR dWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70 CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwoIhNzbM8m 9Yop5w== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t MSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAw WhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk IElEIFJvb3QgRzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0F FfLvC/8QdJ+1YlJfZn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+ CW7if17QRSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBk AjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2 U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv6pZjamVFkpUBtA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBa Fw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBS b290IEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/ RrohCgiN9RlUyfuI2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxps MNzaHxmx1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F 8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9 RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G A1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcN AQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVn NeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2Z L7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUT Fy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTflMrY= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t MSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0z ODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAX BgNVBAsTEHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290 IEczMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu8 0JX28MzQC7phW1FGfp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6I p6FrtUPOZ9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/ EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q 3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8sycX -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYD VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAw WhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVk IFJvb3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAi MGkz7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/W BTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw 2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+ EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1 EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADk RSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+ 9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m8 00ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn1 5GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQADggIBALth 2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYYZhsj DT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXIN wBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfR nGTZ6iahixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhV Mt5xSdkoF1BN5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbS pKhil9Ie4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIVi HTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq 6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkG A1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9y ZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCB hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMH U2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBS U0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQCR6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7E pi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrk m2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFI Q2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+8 6V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4 jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZED LXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RM hnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4EFgQUu69+ Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ KoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA 1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4 sjn8OoSgtZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrr kguhxuhoqEwWsRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpj IXUDgIiKboHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0 QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN /4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog 88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHBNVOFBkpdn627G190 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkG A1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4w HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0Eg Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5 WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJU cnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B 3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTb f6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshy Z9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3K fyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq/nROacdrjGCT3sTHDN/hMq7MkztR eJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+td Omw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugT ncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE 9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAdBgNVHQ4E FgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB Af8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1V eCkZ7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jR Ra8YFWSQEg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9s pnFixdjQg3IM8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwX tuhxkYzeSf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL3 9ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnu Wih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1 cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UE BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYD VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2Vy dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCB iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBD aXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVz dCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQa rFRaqfloI+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQW BBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB /zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpk ue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbR qZtNyWHa0V1Xahg= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UE CxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMw EQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEk MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxT aWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5 049sJQ6fLjkZHAOkrprlOQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5Rikqtlx P6jUuc6MHaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE FFSwe61FuOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UE CxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMw EQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEk MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxT aWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9 Xb/pOdEh+J8LttV7HpI6SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwz ocWdTaRvQZU4f8kehOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMC AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguD nFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL +SvzZpA3 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwG A1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJs YW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjEL MAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwi U3RhYXQgZGVyIE5lZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQAD ggIPADCCAgoCggIBAL4yolQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKe zIJnByeHaHE6n3WWIkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+ tjzk7FqXxz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHga mPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXL CCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N86U78dULI7ViVDAZCopz35HCz 33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwF dozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXN o42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke2 75dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1Ud EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BDU5cqPco8 R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPqKqrM CQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkv RtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox +wrZ13+b8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzh VNXkanjvSr0rmj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgS KL59NVzq4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR 1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U6 7cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwG A1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJs YW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJ BgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0 YWF0IGRlciBOZWRlcmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A MIICCgKCAgEA48d+ifkkSzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79 VWZxXSzFYGgEt9nCUiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs 3NZmdO3dZ//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd 4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5 m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxCKFhmpUZtcALXEPlLVPxdhkqH z3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV0b5GnUngC6agIk440ME8MLxwjyx1 zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8J OV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZB iFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsIeK9p0gtJ 3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmuc0iH 55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq 5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLld RqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW 2HNnh/tNf1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy +TSrK0m1zSBi5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCj uTaPPoIaGl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB 4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYD VQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVy Y2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYD VQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVy Y2lhbCBSb290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k9 1DNG8W9RYYKyqU+PZ4ldhNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1e hm7zCYofWjK9ouuU+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQf Yo3fw7gpS0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sO dBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz 4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjKVsk9+w8YfYs7wRPCTY/JTw43 6R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzVWYfCP04MXFL0PfdSgvHqo6z9STQa KPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h 9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHw cz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH6oi6mYtQ lNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pgghst O8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gj mmmVYjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l 2xPE4iUXfeu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lz zY9GvlU47/rokTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2 gXjtw+hG4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgG pRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYD VQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGlj IFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQsw CQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVi bGljIFNlY3RvciBSb290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2 IpT8pEiv6EdrCvsnduTyP4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2L qEfpYnYeEe4IFNGyRBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1 B5+ctMlSbdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF /YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbh uaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH0 1bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy9yLxkA2T26pEUWbMfXYD62qo KjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyhLrXHFub4qjySjmm2AcG1hp2JDws4 lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYP Qxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsby VtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qjt2odIFfl AWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7AmgjV QdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S 3OFtm6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHW chezxQMxNRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF 5PgLZxYWxoK4Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57I cXR5f1GJtshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXws BOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAU BgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9y aXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0 aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UE BhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVz dC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBm b3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6 hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3 gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWNcCG0szLni6LVhjkCsbjSR87k yUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKUs/Ja5CeanyTXxuzQmyWC48zCxEXF jJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+ tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1Ud DwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2f kBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZRkfz6/dj wUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDginWyT msQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ 19xOe4pIb4tF9g== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMC VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5u ZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3Ig YXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRp b24gQXV0aG9yaXR5IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8x CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3 LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJ bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQT ydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9 ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/ BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLdj5xrdjekIplWDpOBqUEFlEUJJ MAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHv AvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZB WyVgrtBIGu4G -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4G A1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD DAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYD VQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQDXXWvNED8fBVnVBU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCj Z9YMrM8irq93VCpLTIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3Iv HWOX6Jn5/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp 7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wm nvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXS G7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvPa931DfSCt/SyZi4QKPaXWnuW Fo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBF DWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUp dPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900Pvh tgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj /i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIBACXGumvr h8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9qecsA IyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua 4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9B C2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rU QElsgIfXBDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZeP glr4UeWJoBjnaH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4R UHlzEhLN5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe /v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV 2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UC Kc2Jo5YPSjXnTkLAdc0Hz+Ys63su -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIx DzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2lt IHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTD nFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBI NTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0G A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktU UlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQq L/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOH p3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh34khon6La8eHBEJ/rPCmBp+Ey CNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1 nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/ dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4g wPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB AJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwqURawXs3q ZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJllpKQ d/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8 B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UE ChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRp bm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkG A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAz MR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP ADCCAgoCggIBANTMCQosP5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4 kkjW4znuzuRZWJflLieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9 n+ws+hQVWZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZ ZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b 8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM6 6A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3tFvYk9CcbXFcx3FXuqB5vbKziRcxX V4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC6 3M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb 1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB /wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0 2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsFAAOCAgEA fj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iVWVO9 0CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20R oFAXlCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5n U7aJ+BIJy29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrj cOa4pvi2WsS9Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu 6AdBBR8Vbtaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrH xuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1Ph Z7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYD VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBF bmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0x NDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdX SVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9P SVNURSBXSVNlS2V5IEdsb2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEA2Be3HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvY D06fWvGxWuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX 1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn2 1HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiND ecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9rM2RYk61pv48b74JIxwIDAQAB o1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs +TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4ey mYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHE thYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3Z wLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02IcNc1MaRVU GpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTEL MAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4x GDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQz MzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93 YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQC3vD5QqEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj 5/QqGJ3a0a4m7utT3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd 3BucPbOw3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0Bw PLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMB AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlK GLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOCAQEAtXP4A9xZWx126aMqe5Aosk3A M0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2 onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcP v5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4M NIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkG A1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsT HkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0 ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGA MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUG A1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0g VHJ1c3RlZCBOZXR3b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9 +Xj45tWADGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn 0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/ j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxS iyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq 28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130GO6IyY0XRSmZMnUCMe4pJshrAua1 YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz 5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXX cPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqC lnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n 3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0G A1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN AQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ 2vuAL55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BN XuMp8SMoclm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3 lEu6LaTaM4tMpkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVI eVheO/jbAoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bIND d82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXa QHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlF w5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbiDrW5viSP -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNV BAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIElu c3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWlj IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIx WhcNNDAwNjMwMTAxMTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIG A1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0 LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJ bnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFB zh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioN mToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe104S+nfK8nNLspfZu2zwnI5dMK /IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXdFPQf/7J31Ycvqm59JCfnxssm5uX+ Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1 NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS 5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZ YeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZaycBw/qa9wf LgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/ MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg 2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6Hwb ISHTGzrMd/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkN aeJK9E10A/+yd+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRG ar9KC/eaj8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZd wJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+j qk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoX xdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODf qiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9qp/UsQu0yrbYhnr68 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcT BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3Rp dHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFu ZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcx MloXDTQwMDYzMDEwMzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBC BgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2Vy dC4gQXV0aG9yaXR5MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2gg SW5zdGl0dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvkt TpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kq MAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTAGiecMjvAwNW6qef4BENThe5SId6d 9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRt m8rifOoCWCKR -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJ BgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBD QSBHMTAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREw DwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJ KoZIhvcNAQEBBQADggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTY j+eJZJ+622SLZOZ5KmHNr49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8 KvzsiNWI7nC9hRYt6kuJPKNxQv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y 1/oA/caP0FG7Yn2ksYyy/yARujVjBYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f 6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTvLRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU 8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S// Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc4nBvCGrch2c0798wct3zyT8j/zXhviEp IDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd4F6H50boJZwKKSTUzViGUkAksnsP mBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEjjy3LKCHyamz0GqbFFLQ3ZU+V /YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+ob0V8rqHDz1oihYHAgMB AAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSowcCb kahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHYlwuBsTANBgkq hkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh66Ryj5QX vBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPGYX2e EeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/ 2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0l pu+F6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7 BlXGEilXCNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+ aLHsIqKqkHWetUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ 8uQKTuEVV/xuZDDCVRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5 g4VCXA9DO2pJNdWY9BW/+mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/Qmue D6i9a5jc2NvLi6Td11n0bt3+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNV BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBH MjAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYD VQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49 AgEGBSuBBAAiA2IABM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/ aWfYeOKmycTbLXku54uNAm8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSps BqNjMGEwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5 jtpMxjwjFNiPwyCrKGBZMB8GA1UdIwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqG SM49BAMDA2gAMGUCMHD+sAvZ94OX7PNVHdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8r zfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjlvPl5adytRSv3tjFzzAalU5ORGpOucGpnutee 5WEaXw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJ BgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290 IENBIEcxMB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIx EjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIi MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICk ES3d5oeuXT2R0odsN7faYp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1c JwzdMOWo010hOHQX/uMftk87ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHc YTSSjFR077F9jAHiOH3BX2pfJLKOYheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGP uY4zbGneWK2gDqdkVBFpRGZPTBKnjix9xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntq p66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01B G2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq3ywgsNw2TgOzfALU5nsaqocTvz6hdLub DuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oin6+Sx+31QrclTDsTBM8clq8cIqPQ qwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9URQIOTfLHzSpMJ1ShC5VkLG6 31UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqrTJOVoSfupb7PcSNCupt2 LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU l0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/PxN3DlCPaTKbYw DQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000EPLuHIT83 9HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2CvuVnN 35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+ WVLhX4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4 Fdvb8e80nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvy DEsMpZTGMKcmGS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4 poEL0L9109S5zvE/bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/Ky Pu1svf0OnWZzsD2097+o4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumP v+i2tCqjI40cHLI5kqiPAlxAOXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJ BgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290 IENBIEcyMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIx EjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIi MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqW ON2ic2rxb95eolq5cSG+Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf8 5KxP6O6JHnSrT78eCbY2albz4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWP yKwlCm/61UWY0jUJ9gNDlP7ZvyCVeYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fE FY8ElggGQgT4hNYdvJGmQr5J1WqIP7wtUdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJL HB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8a pwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6l Pzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz9bGTXOBut9Dq+WIyiET7vycotjCV XRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR00dX+G7bw5tYee9I8y6jj9Rjz IR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGTy3HCOV0GEfZvePg3DTmE JwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU ajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59M4PLuG53hq8w DQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamzGj5oXScm p7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keImUEi yTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6m VskpEndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8 oValX9YZ6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1R GUFcPk8G97krgCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK 2gKgW0VU3jg9CcCoSmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eA iN1nE28daCSLT7d0geX0YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasv c0rQLW6aWQ9VGHgtPFGml4vmu7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNV BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENB IEczMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQ BgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcq hkjOPQIBBgUrgQQAIgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa 3RTqnVkrQ7cG7DK2uu5Bta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMU muXZl5mjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRH d8MUi2I5DMlv4VBN0BBY3JWIbTAfBgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAK BggqhkjOPQQDAwNpADBmAjEAj6jcnboMBBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1 NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmT k51V6s2N8fvB -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkG A1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUw EwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBP MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3Jv dXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC ggIBAK3oJHP0FDfzm54rVygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj /RQSa78f0uoxmyF+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7i S4+3mX6UA5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3Hs LuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02 dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUvKBds0pjBqAlkd25HN7rOrFle aJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFuhjuefXKnEgV4We0+UXgVCwOPjdAv BbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymC zLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC 1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZLubhzEFnT IZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV0nxv wuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztX OoJwTdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIu vtd7u+Nxe5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1N bdWhscdCb+ZAJzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4k qKOJ2qxq4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcY xn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNV BAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAe Fw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQK DAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEB BQADggIPADCCAgoCggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuO i5KOpyVdWRHbNi63URcfqQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qs NI1NOHZnjrDIbzAzWHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhf TzC8PhxFtBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z 374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1 TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo /CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7wk5HlqX2doWjKI/pgG6BU6Vt X7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ47xVqCfWS+2QrYv6YyVZLag13cqX M7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5 QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAw DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn 9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDDnFFlm5wi oooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+sD8+N b/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6 NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71 uSANA+iW+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8 TxxuBEOb+dY7Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj 2zs3gyLp1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B 9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9ba RRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViA qhOLUTpPSPaLtrM= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQsw CQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAx MB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNV BAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOg Q3pOsqTQNroBvo3bSMgHFzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9 tBb6dNqcmzU5L/qwIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAw hmahRWa6VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L 93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrI qg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYE FIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUAA4IBAQCY8jdaQZChGsV2USgg NiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PMCCjjmCXPI6T53iHTfIUJrU6adTrC C2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V 8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJc JmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeX eGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQsw CQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAy MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNV BAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEB BQADggIPADCCAgoCggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBv IITplLGbhQPDW9tK6Mj4kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZM UnbqQ523BNFQ9lXg1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6 PBJTYv9K8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r 2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18 JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh 32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6ZjmUyl+17vIWR6IF9sZIUVyzfp YgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vn SUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3y VAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8G A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPl Uq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY+gn0oJMs XdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LEYFiw zAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq 2WWQgj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JO cQ3AWEbWaQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn 9Kr5v2c69BoVYh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG 6lzWE7OE76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H 9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYD VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4X DTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoT BkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49 AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6A F2hiRVd9RFgdszflZwjrZt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGG MB0GA1UdDgQWBBSrttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWS oxe3jfkrBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM YyRIHN8wfdVoOw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYD VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4X DTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoT BkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAi A2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhF XRbb/egQbeOc4OO9X4Ri83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYD VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc 84ZtV+WBMAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJ ElMzrdfkviT8tQp21KW8EA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjEL MAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0 IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYD VQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xv YmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNM PIf5U2o3C/IPPIfOb9wmKb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJI cRHIbjuend+JZTemhfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy9 5iJMHZP1EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCG p4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9 MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5mj5wWEWCPnolvZ77gR1o7DJpn i89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/a4ebsypmQjVGbKq6rfmYe+lQVRQx v7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbW TLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8 xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5 MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0 Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT+Et8szAd BgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZFO1u ecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89Bv olbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaX cozrhAIuZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8w kbIEa91WvpWAVWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx 9xIX3eP/JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbD WjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBN vUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2 KuGUaJPHZnJED4AhMmwlxyOAgwrr -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNV BAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtu b2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRp ZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBT U0wgS29rIFNlcnRpZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUw ODI1NTVaMIHSMQswCQYDVQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYD VQQKEzlUdXJraXllIEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAt IFRVQklUQUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1 bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA 027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjF xlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wcwv61A+xXzry0tcXtAA9TNypN9E8M g/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K 18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESo lbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1 +DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifhAHe+SMg1 qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yclNhO T8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X 8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04x MjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIz MTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNB VEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09U MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92 hhJCfVZmPoiC7XJjDp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlK CvLriXBjTnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVE s7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4a Rjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12ZuGR224HwGGALrIuL4xwp9E7 PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsMR6flPri9fcebNaBhlzpBdRfMK5Z3 KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo7 0e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLww oC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeF d3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfgp8xoWLoB DysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9H5r2 XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1j PLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw 9C+df/KQHtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3 cbK1daFQqUBDF8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrX mKGcjBBV09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0L cIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3M boPoDKi3QWwH3b08hpcv0g== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQ QTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1 c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0 ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0 MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFt YTEUMBIGA1UEBwwLUGFuYW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4g ZGUgUi5MLjEnMCUGA1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYD VQQDDBZUcnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5O Gy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nP Uu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme9J7+wH5COucLlVPat2gOkEz7 cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYf YW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2Mw YTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOx CbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcN AQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I /5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yfke+Ri7fc 7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6CqFqT vsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P 3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBB MQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVz dENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRl IEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQx MjMyMjNaFw0zNDEyMzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1h MRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBk ZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNV BAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2N yuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfD QiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp 8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOObXUm4TOJXsZiKQlecdu/vvdFoqNL0 Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3 GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz2 7Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjx klb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3 mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh8N0JqSDI vgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU2f4h QG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7 tu/hOsh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYnd Afrs3fnpkpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40 /W5ulop5A7Zv2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARpp v9JYx1RXCI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2U mw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk 2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFij MDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimT HpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUou wpaYT05KnJe32x+SMsj/D1Fu1uwJ -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQ QTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1 c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oX DTI5MTIzMTE3MjgwN1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNV BAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4x JzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1 c3RDb3IgRUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb 3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHi p1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/N yFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4OuowReUoCLHhIlERnXDH19MURB 6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7 zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1 zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNV HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVw m8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2 AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11FhcCF5yWP ldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0XsJ5F9 5yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMx DjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9y YXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBS U0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwG A1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlv bjExMC8GA1UEAwwoU1NMLmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCC AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/Wv pOz6Sl2RxFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9 ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZ pEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+ PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6 niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lv OCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96S CvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2sn YxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNVHRMBAf8E BTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQEAwIB hjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E +ZUfijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52j vATGGAslu1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3 oFRuIIhxdRjqerQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfd SSLBv9jra6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJ BjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh 1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpB C8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAM BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRp b24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0Mw HhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UE CAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjEx MC8GA1UEAwwoU1NMLmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAG ByqGSM49AgEGBSuBBAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtH llirLZXI7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQF MAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGG MAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D 5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht 0nxpbl/f5Wpl -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVT MQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBv cmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3Jp dHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYT AlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENv cnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRo b3JpdHkgUlNBIFIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDX tOlG2mvqM0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKf ydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/P gN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYRaZfqhbcPlgtLyEDhULouisv3 D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9ZhCBHqurj26bNg5U257J8UZslXWNvN h2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghT reyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK 2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUC YHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW gBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20ZpqJ4w DgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 ++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkcl f7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgY CdcDzH2GguDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S 9ksrPJ/psEDzOFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOC sp0FvmXtll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7 fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3 kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2K i+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FF Y6GsdqnC+w== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAM BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRp b24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBF Q0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwG A1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlv bjE0MDIGA1UEAwwrU1NMLmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVD QzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjK AMTH6kMAVIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1Ud EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/ BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZytRrJPOwPYdGWBrssd9v+1a6 cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mmm7I1HrrW9zzRHM76JTymGoEVW/MS D2zuZYrJh6j5B+BimoxcSg== -----END CERTIFICATE----- rERR_INVALID_ARG_VALUEdynamicSO_PATHLOADEngine "%s" was not foundBad input string3545(signed_sig_len) >= (0)MallocedBuffer node::crypto::Node_SignFinal(node::crypto::EVPMDPointer &&, const node::crypto::EVPKeyPointer &, int, int)new_size <= sizevoid node::MallocedBuffer::Truncate(size_t) [T = unsigned char]PUBLIC KEY3708BIO_reset(bp.get())node::crypto::ParsePublicKeyResult node::crypto::ParsePublicKey(node::crypto::EVPKeyPointer *, const char *, int)RSA PUBLIC KEY3717CERTIFICATEmodp1modp2modp5modp14modp15modp16modp17modp18../src/node_crypto.h(group_) != nullptrnode::crypto::ECDH::ECDH(node::Environment *, v8::Local, node::crypto::ECKeyPointer &&)4595status == 0 || status == UV_ECANCELEDvirtual void node::crypto::CryptoJob::AfterThreadPoolWork(int)4600(false) == (async_wrap->persistent().IsWeak())4606wrap->IsObject()static void node::crypto::CryptoJob::Run(std::unique_ptr, Local)4607(nullptr) == (job->async_wrap)4609(false) == (job->async_wrap->persistent().IsWeak())5023errors_.empty()void node::crypto::GenerateKeyPairJob::ToResult(Local *, Local *, Local *)5028!errors_.empty()5038biobool node::crypto::GenerateKeyPairJob::EncodeKeys(Local *, Local *)5043(EVP_PKEY_id(pkey)) == (6)5051(public_key_encoding_.format_) == (PK_FORMAT_DER)5056(public_key_encoding_.type_) == (PK_ENCODING_SPKI)506350765091(private_key_encoding_.format_) == (PK_FORMAT_DER)5092(private_key_encoding_.cipher_) == nullptr51085118(private_key_encoding_.type_) == (PK_ENCODING_SEC1)5121(EVP_PKEY_id(pkey)) == (408)513651375157(format) == (PK_FORMAT_DER)void node::crypto::GenerateKeyPairJob::BIOToStringOrBuffer(BIO *, node::crypto::PKFormatType, Local *) const4853(bn.get()) != nullptrvirtual bool node::crypto::RSAKeyPairGenerationConfig::Configure(const node::crypto::EVPKeyCtxPointer &)4854BN_set_word(bn.get(), exponent_)4714void node::crypto::PBKDF2(const FunctionCallbackInfo &)47154716471747184719args[5]->IsObject() || args[5]->IsUndefined()1834certstatic void node::crypto::SSLWrap::GetPeerCertificate(const FunctionCallbackInfo &) [Base = node::TLSWrap]1603(ext) != nullptrLocal node::crypto::X509ToObject(node::Environment *, X509 *)1606(1) == (X509V3_EXT_print(bio.get(), ext, 0, 0))0x%x1651DNS:0123456789ABCDEF1872(len) == (SSL_get_finished(w->ssl_.get(), buf, len))static void node::crypto::SSLWrap::GetFinished(const FunctionCallbackInfo &) [Base = node::TLSWrap]1895(len) == (SSL_get_peer_finished(w->ssl_.get(), buf, len))static void node::crypto::SSLWrap::GetPeerFinished(const FunctionCallbackInfo &) [Base = node::TLSWrap]1912(slen) > (0)static void node::crypto::SSLWrap::GetSession(const FunctionCallbackInfo &) [Base = node::TLSWrap]Session argument is mandatorySession must be a bufferSSL_set_session errorUNABLE_TO_GET_ISSUER_CERTUNABLE_TO_GET_CRLUNABLE_TO_DECRYPT_CERT_SIGNATUREUNABLE_TO_DECRYPT_CRL_SIGNATUREUNABLE_TO_DECODE_ISSUER_PUBLIC_KEYCERT_SIGNATURE_FAILURECRL_SIGNATURE_FAILURECERT_NOT_YET_VALIDCERT_HAS_EXPIREDCRL_NOT_YET_VALIDCRL_HAS_EXPIREDERROR_IN_CERT_NOT_BEFORE_FIELDERROR_IN_CERT_NOT_AFTER_FIELDERROR_IN_CRL_LAST_UPDATE_FIELDERROR_IN_CRL_NEXT_UPDATE_FIELDOUT_OF_MEMDEPTH_ZERO_SELF_SIGNED_CERTSELF_SIGNED_CERT_IN_CHAINUNABLE_TO_GET_ISSUER_CERT_LOCALLYUNABLE_TO_VERIFY_LEAF_SIGNATURECERT_CHAIN_TOO_LONGCERT_REVOKEDINVALID_CAPATH_LENGTH_EXCEEDEDINVALID_PURPOSECERT_UNTRUSTEDCERT_REJECTEDTLSv1/SSLv3w->is_waiting_cert_cb() && w->cert_cb_running_static void node::crypto::SSLWrap::CertCbDone(const FunctionCallbackInfo &) [Base = node::TLSWrap]CertCbDoneOCSP response argument is mandatoryOCSP response must be a bufferw->ssl_static void node::crypto::SSLWrap::GetEphemeralKeyInfo(const FunctionCallbackInfo &) [Base = node::TLSWrap]DH2118args.Length() >= 1 && args[0]->IsNumber()static void node::crypto::SSLWrap::SetMaxSendFragment(const FunctionCallbackInfo &) [Base = node::TLSWrap]Must give a Buffer as first argument2288static void node::crypto::SSLWrap::SetALPNProtocols(const FunctionCallbackInfo &) [Base = node::TLSWrap]2294w->object()->SetPrivate( env->context(), env->alpn_buffer_private_symbol(), args[0]).FromJust()Key must be a buffer../src/node_crypto_bio.cc2010 && "Can't use SET_BUF_MEM_PTR with NodeBIO"static long node::crypto::NodeBIO::Ctrl(BIO *, int, long, void *)0 && "Can't use GET_BUF_MEM_PTR with NodeBIO"node.js SSL buffer(read_head_->read_pos_) <= (read_head_->write_pos_)size_t node::crypto::NodeBIO::Read(char *, size_t)(expected) == (bytes_read)(cur) != (write_head_)void node::crypto::NodeBIO::FreeEmpty()(cur->write_pos_) == (cur->read_pos_)353(current->read_pos_) <= (current->write_pos_)size_t node::crypto::NodeBIO::IndexOf(char, size_t)380(max) == (bytes_read)395(write_head_->write_pos_) <= (write_head_->len_)void node::crypto::NodeBIO::Write(const char *, size_t)411(write_head_->write_pos_) == (write_head_->len_)444void node::crypto::NodeBIO::Commit(size_t)read_head_->write_pos_ > read_head_->read_pos_void node::crypto::NodeBIO::Reset()498(length_) == (0)519(BIO_get_data(bio)) != nullptrstatic node::crypto::NodeBIO *node::crypto::NodeBIO::FromBIO(BIO *)NodeBIO::Buffer../src/tls_wrap.cc(sc) != nullptrnode::TLSWrap::TLSWrap(node::Environment *, node::crypto::SSLWrap::Kind, node::StreamBase *, node::crypto::SecureContext *)static void node::TLSWrap::Wrap(const FunctionCallbackInfo &)149static void node::TLSWrap::Receive(const FunctionCallbackInfo &)192!wrap->started_static void node::TLSWrap::Start(const FunctionCallbackInfo &)wrap->is_client()write_size_ != 0 && count != 0void node::TLSWrap::EncOut()*err == SSL_ERROR_SSL || *err == SSL_ERROR_SYSCALLLocal node::TLSWrap::GetSSLError(int, int *, std::string *)462written == -1 || written == static_cast(avail)bool node::TLSWrap::ClearIn()(written) >= (0)virtual int node::TLSWrap::DoWrite(node::WriteWrap *, uv_buf_t *, size_t, uv_stream_t *)Write after DestroySSL574(current_empty_write_) == nullptr589(current_write_) == nullptr603written == -1 || written == static_cast(bufs[i].len)629(ssl_) != nullptrvirtual uv_buf_t node::TLSWrap::OnStreamAlloc(size_t)667!(data == nullptr) || (avail == 0)virtual void node::TLSWrap::OnStreamRead(ssize_t, const uv_buf_t &)697static void node::TLSWrap::SetVerifyMode(const FunctionCallbackInfo &)698args[0]->IsBoolean()699700(wrap->ssl_) != nullptr728static void node::TLSWrap::EnableSessionCallbacks(const FunctionCallbackInfo &)Canceled because of SSL destructionstatic void node::TLSWrap::GetServername(const FunctionCallbackInfo &)794static void node::TLSWrap::SetServername(const FunctionCallbackInfo &)796799837static int node::TLSWrap::SelectSNIContextCallback(SSL *, int *, void *)pending_cleartext_inputenc_inenc_outreceivesetVerifyModeenableSessionCallbacksdestroySSLenableCertCbgetServernamesetServernametls_wrapssl_node::crypto::SSLWrap::SSLWrap(node::Environment *, node::crypto::SecureContext *, node::crypto::SSLWrap::Kind) [Base = node::TLSWrap]/root/node/out/Release/obj/gen/node_javascript.cc111129target->Set(env->context(), internal_per_context_key.ToStringChecked(env->isolate()), internal_per_context_value.ToStringChecked(env->isolate())).FromJust()void node::DefineJavaScript(node::Environment *, v8::Local)111132target->Set(env->context(), internal_bootstrap_cache_key.ToStringChecked(env->isolate()), internal_bootstrap_cache_value.ToStringChecked(env->isolate())).FromJust()111135target->Set(env->context(), internal_bootstrap_loaders_key.ToStringChecked(env->isolate()), internal_bootstrap_loaders_value.ToStringChecked(env->isolate())).FromJust()111138target->Set(env->context(), internal_bootstrap_node_key.ToStringChecked(env->isolate()), internal_bootstrap_node_value.ToStringChecked(env->isolate())).FromJust()111141target->Set(env->context(), async_hooks_key.ToStringChecked(env->isolate()), async_hooks_value.ToStringChecked(env->isolate())).FromJust()111144target->Set(env->context(), assert_key.ToStringChecked(env->isolate()), assert_value.ToStringChecked(env->isolate())).FromJust()111147target->Set(env->context(), buffer_key.ToStringChecked(env->isolate()), buffer_value.ToStringChecked(env->isolate())).FromJust()111150target->Set(env->context(), child_process_key.ToStringChecked(env->isolate()), child_process_value.ToStringChecked(env->isolate())).FromJust()111153target->Set(env->context(), console_key.ToStringChecked(env->isolate()), console_value.ToStringChecked(env->isolate())).FromJust()111156target->Set(env->context(), constants_key.ToStringChecked(env->isolate()), constants_value.ToStringChecked(env->isolate())).FromJust()111159target->Set(env->context(), crypto_key.ToStringChecked(env->isolate()), crypto_value.ToStringChecked(env->isolate())).FromJust()111162target->Set(env->context(), cluster_key.ToStringChecked(env->isolate()), cluster_value.ToStringChecked(env->isolate())).FromJust()111165target->Set(env->context(), dgram_key.ToStringChecked(env->isolate()), dgram_value.ToStringChecked(env->isolate())).FromJust()111168target->Set(env->context(), dns_key.ToStringChecked(env->isolate()), dns_value.ToStringChecked(env->isolate())).FromJust()111171target->Set(env->context(), domain_key.ToStringChecked(env->isolate()), domain_value.ToStringChecked(env->isolate())).FromJust()111174target->Set(env->context(), events_key.ToStringChecked(env->isolate()), events_value.ToStringChecked(env->isolate())).FromJust()111177target->Set(env->context(), fs_key.ToStringChecked(env->isolate()), fs_value.ToStringChecked(env->isolate())).FromJust()111180target->Set(env->context(), http_key.ToStringChecked(env->isolate()), http_value.ToStringChecked(env->isolate())).FromJust()111183target->Set(env->context(), http2_key.ToStringChecked(env->isolate()), http2_value.ToStringChecked(env->isolate())).FromJust()111186target->Set(env->context(), _http_agent_key.ToStringChecked(env->isolate()), _http_agent_value.ToStringChecked(env->isolate())).FromJust()111189target->Set(env->context(), _http_client_key.ToStringChecked(env->isolate()), _http_client_value.ToStringChecked(env->isolate())).FromJust()111192target->Set(env->context(), _http_common_key.ToStringChecked(env->isolate()), _http_common_value.ToStringChecked(env->isolate())).FromJust()111195target->Set(env->context(), _http_incoming_key.ToStringChecked(env->isolate()), _http_incoming_value.ToStringChecked(env->isolate())).FromJust()111198target->Set(env->context(), _http_outgoing_key.ToStringChecked(env->isolate()), _http_outgoing_value.ToStringChecked(env->isolate())).FromJust()111201target->Set(env->context(), _http_server_key.ToStringChecked(env->isolate()), _http_server_value.ToStringChecked(env->isolate())).FromJust()111204target->Set(env->context(), https_key.ToStringChecked(env->isolate()), https_value.ToStringChecked(env->isolate())).FromJust()111207target->Set(env->context(), inspector_key.ToStringChecked(env->isolate()), inspector_value.ToStringChecked(env->isolate())).FromJust()111210target->Set(env->context(), module_key.ToStringChecked(env->isolate()), module_value.ToStringChecked(env->isolate())).FromJust()111213target->Set(env->context(), net_key.ToStringChecked(env->isolate()), net_value.ToStringChecked(env->isolate())).FromJust()111216target->Set(env->context(), os_key.ToStringChecked(env->isolate()), os_value.ToStringChecked(env->isolate())).FromJust()111219target->Set(env->context(), path_key.ToStringChecked(env->isolate()), path_value.ToStringChecked(env->isolate())).FromJust()111222target->Set(env->context(), perf_hooks_key.ToStringChecked(env->isolate()), perf_hooks_value.ToStringChecked(env->isolate())).FromJust()111225target->Set(env->context(), process_key.ToStringChecked(env->isolate()), process_value.ToStringChecked(env->isolate())).FromJust()111228target->Set(env->context(), punycode_key.ToStringChecked(env->isolate()), punycode_value.ToStringChecked(env->isolate())).FromJust()111231target->Set(env->context(), querystring_key.ToStringChecked(env->isolate()), querystring_value.ToStringChecked(env->isolate())).FromJust()111234target->Set(env->context(), readline_key.ToStringChecked(env->isolate()), readline_value.ToStringChecked(env->isolate())).FromJust()111237target->Set(env->context(), repl_key.ToStringChecked(env->isolate()), repl_value.ToStringChecked(env->isolate())).FromJust()111240target->Set(env->context(), stream_key.ToStringChecked(env->isolate()), stream_value.ToStringChecked(env->isolate())).FromJust()111243target->Set(env->context(), _stream_readable_key.ToStringChecked(env->isolate()), _stream_readable_value.ToStringChecked(env->isolate())).FromJust()111246target->Set(env->context(), _stream_writable_key.ToStringChecked(env->isolate()), _stream_writable_value.ToStringChecked(env->isolate())).FromJust()111249target->Set(env->context(), _stream_duplex_key.ToStringChecked(env->isolate()), _stream_duplex_value.ToStringChecked(env->isolate())).FromJust()111252target->Set(env->context(), _stream_transform_key.ToStringChecked(env->isolate()), _stream_transform_value.ToStringChecked(env->isolate())).FromJust()111255target->Set(env->context(), _stream_passthrough_key.ToStringChecked(env->isolate()), _stream_passthrough_value.ToStringChecked(env->isolate())).FromJust()111258target->Set(env->context(), _stream_wrap_key.ToStringChecked(env->isolate()), _stream_wrap_value.ToStringChecked(env->isolate())).FromJust()111261target->Set(env->context(), string_decoder_key.ToStringChecked(env->isolate()), string_decoder_value.ToStringChecked(env->isolate())).FromJust()111264target->Set(env->context(), sys_key.ToStringChecked(env->isolate()), sys_value.ToStringChecked(env->isolate())).FromJust()111267target->Set(env->context(), timers_key.ToStringChecked(env->isolate()), timers_value.ToStringChecked(env->isolate())).FromJust()111270target->Set(env->context(), tls_key.ToStringChecked(env->isolate()), tls_value.ToStringChecked(env->isolate())).FromJust()111273target->Set(env->context(), _tls_common_key.ToStringChecked(env->isolate()), _tls_common_value.ToStringChecked(env->isolate())).FromJust()111276target->Set(env->context(), _tls_wrap_key.ToStringChecked(env->isolate()), _tls_wrap_value.ToStringChecked(env->isolate())).FromJust()111279target->Set(env->context(), trace_events_key.ToStringChecked(env->isolate()), trace_events_value.ToStringChecked(env->isolate())).FromJust()111282target->Set(env->context(), tty_key.ToStringChecked(env->isolate()), tty_value.ToStringChecked(env->isolate())).FromJust()111285target->Set(env->context(), url_key.ToStringChecked(env->isolate()), url_value.ToStringChecked(env->isolate())).FromJust()111288target->Set(env->context(), util_key.ToStringChecked(env->isolate()), util_value.ToStringChecked(env->isolate())).FromJust()111291target->Set(env->context(), v8_key.ToStringChecked(env->isolate()), v8_value.ToStringChecked(env->isolate())).FromJust()111294target->Set(env->context(), vm_key.ToStringChecked(env->isolate()), vm_value.ToStringChecked(env->isolate())).FromJust()111297target->Set(env->context(), worker_threads_key.ToStringChecked(env->isolate()), worker_threads_value.ToStringChecked(env->isolate())).FromJust()111300target->Set(env->context(), zlib_key.ToStringChecked(env->isolate()), zlib_value.ToStringChecked(env->isolate())).FromJust()111303target->Set(env->context(), internal_assert_key.ToStringChecked(env->isolate()), internal_assert_value.ToStringChecked(env->isolate())).FromJust()111306target->Set(env->context(), internal_async_hooks_key.ToStringChecked(env->isolate()), internal_async_hooks_value.ToStringChecked(env->isolate())).FromJust()111309target->Set(env->context(), internal_bash_completion_key.ToStringChecked(env->isolate()), internal_bash_completion_value.ToStringChecked(env->isolate())).FromJust()111312target->Set(env->context(), internal_buffer_key.ToStringChecked(env->isolate()), internal_buffer_value.ToStringChecked(env->isolate())).FromJust()111315target->Set(env->context(), internal_cli_table_key.ToStringChecked(env->isolate()), internal_cli_table_value.ToStringChecked(env->isolate())).FromJust()111318target->Set(env->context(), internal_child_process_key.ToStringChecked(env->isolate()), internal_child_process_value.ToStringChecked(env->isolate())).FromJust()111321target->Set(env->context(), internal_cluster_child_key.ToStringChecked(env->isolate()), internal_cluster_child_value.ToStringChecked(env->isolate())).FromJust()111324target->Set(env->context(), internal_cluster_master_key.ToStringChecked(env->isolate()), internal_cluster_master_value.ToStringChecked(env->isolate())).FromJust()111327target->Set(env->context(), internal_cluster_round_robin_handle_key.ToStringChecked(env->isolate()), internal_cluster_round_robin_handle_value.ToStringChecked(env->isolate())).FromJust()111330target->Set(env->context(), internal_cluster_shared_handle_key.ToStringChecked(env->isolate()), internal_cluster_shared_handle_value.ToStringChecked(env->isolate())).FromJust()111333target->Set(env->context(), internal_cluster_utils_key.ToStringChecked(env->isolate()), internal_cluster_utils_value.ToStringChecked(env->isolate())).FromJust()111336target->Set(env->context(), internal_cluster_worker_key.ToStringChecked(env->isolate()), internal_cluster_worker_value.ToStringChecked(env->isolate())).FromJust()111339target->Set(env->context(), internal_crypto_certificate_key.ToStringChecked(env->isolate()), internal_crypto_certificate_value.ToStringChecked(env->isolate())).FromJust()111342target->Set(env->context(), internal_crypto_cipher_key.ToStringChecked(env->isolate()), internal_crypto_cipher_value.ToStringChecked(env->isolate())).FromJust()111345target->Set(env->context(), internal_crypto_diffiehellman_key.ToStringChecked(env->isolate()), internal_crypto_diffiehellman_value.ToStringChecked(env->isolate())).FromJust()111348target->Set(env->context(), internal_crypto_hash_key.ToStringChecked(env->isolate()), internal_crypto_hash_value.ToStringChecked(env->isolate())).FromJust()111351target->Set(env->context(), internal_crypto_keygen_key.ToStringChecked(env->isolate()), internal_crypto_keygen_value.ToStringChecked(env->isolate())).FromJust()111354target->Set(env->context(), internal_crypto_pbkdf2_key.ToStringChecked(env->isolate()), internal_crypto_pbkdf2_value.ToStringChecked(env->isolate())).FromJust()111357target->Set(env->context(), internal_crypto_random_key.ToStringChecked(env->isolate()), internal_crypto_random_value.ToStringChecked(env->isolate())).FromJust()111360target->Set(env->context(), internal_crypto_scrypt_key.ToStringChecked(env->isolate()), internal_crypto_scrypt_value.ToStringChecked(env->isolate())).FromJust()111363target->Set(env->context(), internal_crypto_sig_key.ToStringChecked(env->isolate()), internal_crypto_sig_value.ToStringChecked(env->isolate())).FromJust()111366target->Set(env->context(), internal_crypto_util_key.ToStringChecked(env->isolate()), internal_crypto_util_value.ToStringChecked(env->isolate())).FromJust()111369target->Set(env->context(), internal_constants_key.ToStringChecked(env->isolate()), internal_constants_value.ToStringChecked(env->isolate())).FromJust()111372target->Set(env->context(), internal_dgram_key.ToStringChecked(env->isolate()), internal_dgram_value.ToStringChecked(env->isolate())).FromJust()111375target->Set(env->context(), internal_dns_promises_key.ToStringChecked(env->isolate()), internal_dns_promises_value.ToStringChecked(env->isolate())).FromJust()111378target->Set(env->context(), internal_dns_utils_key.ToStringChecked(env->isolate()), internal_dns_utils_value.ToStringChecked(env->isolate())).FromJust()111381target->Set(env->context(), internal_domexception_key.ToStringChecked(env->isolate()), internal_domexception_value.ToStringChecked(env->isolate())).FromJust()111384target->Set(env->context(), internal_encoding_key.ToStringChecked(env->isolate()), internal_encoding_value.ToStringChecked(env->isolate())).FromJust()111387target->Set(env->context(), internal_errors_key.ToStringChecked(env->isolate()), internal_errors_value.ToStringChecked(env->isolate())).FromJust()111390target->Set(env->context(), internal_error_serdes_key.ToStringChecked(env->isolate()), internal_error_serdes_value.ToStringChecked(env->isolate())).FromJust()111393target->Set(env->context(), internal_fixed_queue_key.ToStringChecked(env->isolate()), internal_fixed_queue_value.ToStringChecked(env->isolate())).FromJust()111396target->Set(env->context(), internal_freelist_key.ToStringChecked(env->isolate()), internal_freelist_value.ToStringChecked(env->isolate())).FromJust()111399target->Set(env->context(), internal_fs_promises_key.ToStringChecked(env->isolate()), internal_fs_promises_value.ToStringChecked(env->isolate())).FromJust()111402target->Set(env->context(), internal_fs_read_file_context_key.ToStringChecked(env->isolate()), internal_fs_read_file_context_value.ToStringChecked(env->isolate())).FromJust()111405target->Set(env->context(), internal_fs_streams_key.ToStringChecked(env->isolate()), internal_fs_streams_value.ToStringChecked(env->isolate())).FromJust()111408target->Set(env->context(), internal_fs_sync_write_stream_key.ToStringChecked(env->isolate()), internal_fs_sync_write_stream_value.ToStringChecked(env->isolate())).FromJust()111411target->Set(env->context(), internal_fs_utils_key.ToStringChecked(env->isolate()), internal_fs_utils_value.ToStringChecked(env->isolate())).FromJust()111414target->Set(env->context(), internal_fs_watchers_key.ToStringChecked(env->isolate()), internal_fs_watchers_value.ToStringChecked(env->isolate())).FromJust()111417target->Set(env->context(), internal_http_key.ToStringChecked(env->isolate()), internal_http_value.ToStringChecked(env->isolate())).FromJust()111420target->Set(env->context(), internal_inspector_async_hook_key.ToStringChecked(env->isolate()), internal_inspector_async_hook_value.ToStringChecked(env->isolate())).FromJust()111423target->Set(env->context(), internal_linkedlist_key.ToStringChecked(env->isolate()), internal_linkedlist_value.ToStringChecked(env->isolate())).FromJust()111426target->Set(env->context(), internal_modules_cjs_helpers_key.ToStringChecked(env->isolate()), internal_modules_cjs_helpers_value.ToStringChecked(env->isolate())).FromJust()111429target->Set(env->context(), internal_modules_cjs_loader_key.ToStringChecked(env->isolate()), internal_modules_cjs_loader_value.ToStringChecked(env->isolate())).FromJust()111432target->Set(env->context(), internal_modules_esm_loader_key.ToStringChecked(env->isolate()), internal_modules_esm_loader_value.ToStringChecked(env->isolate())).FromJust()111435target->Set(env->context(), internal_modules_esm_create_dynamic_module_key.ToStringChecked(env->isolate()), internal_modules_esm_create_dynamic_module_value.ToStringChecked(env->isolate())).FromJust()111438target->Set(env->context(), internal_modules_esm_default_resolve_key.ToStringChecked(env->isolate()), internal_modules_esm_default_resolve_value.ToStringChecked(env->isolate())).FromJust()111441target->Set(env->context(), internal_modules_esm_module_job_key.ToStringChecked(env->isolate()), internal_modules_esm_module_job_value.ToStringChecked(env->isolate())).FromJust()111444target->Set(env->context(), internal_modules_esm_module_map_key.ToStringChecked(env->isolate()), internal_modules_esm_module_map_value.ToStringChecked(env->isolate())).FromJust()111447target->Set(env->context(), internal_modules_esm_translators_key.ToStringChecked(env->isolate()), internal_modules_esm_translators_value.ToStringChecked(env->isolate())).FromJust()111450target->Set(env->context(), internal_safe_globals_key.ToStringChecked(env->isolate()), internal_safe_globals_value.ToStringChecked(env->isolate())).FromJust()111453target->Set(env->context(), internal_net_key.ToStringChecked(env->isolate()), internal_net_value.ToStringChecked(env->isolate())).FromJust()111456target->Set(env->context(), internal_options_key.ToStringChecked(env->isolate()), internal_options_value.ToStringChecked(env->isolate())).FromJust()111459target->Set(env->context(), internal_print_help_key.ToStringChecked(env->isolate()), internal_print_help_value.ToStringChecked(env->isolate())).FromJust()111462target->Set(env->context(), internal_process_esm_loader_key.ToStringChecked(env->isolate()), internal_process_esm_loader_value.ToStringChecked(env->isolate())).FromJust()111465target->Set(env->context(), internal_process_main_thread_only_key.ToStringChecked(env->isolate()), internal_process_main_thread_only_value.ToStringChecked(env->isolate())).FromJust()111468target->Set(env->context(), internal_process_next_tick_key.ToStringChecked(env->isolate()), internal_process_next_tick_value.ToStringChecked(env->isolate())).FromJust()111471target->Set(env->context(), internal_process_per_thread_key.ToStringChecked(env->isolate()), internal_process_per_thread_value.ToStringChecked(env->isolate())).FromJust()111474target->Set(env->context(), internal_process_promises_key.ToStringChecked(env->isolate()), internal_process_promises_value.ToStringChecked(env->isolate())).FromJust()111477target->Set(env->context(), internal_process_stdio_key.ToStringChecked(env->isolate()), internal_process_stdio_value.ToStringChecked(env->isolate())).FromJust()111480target->Set(env->context(), internal_process_warning_key.ToStringChecked(env->isolate()), internal_process_warning_value.ToStringChecked(env->isolate())).FromJust()111483target->Set(env->context(), internal_process_worker_thread_only_key.ToStringChecked(env->isolate()), internal_process_worker_thread_only_value.ToStringChecked(env->isolate())).FromJust()111486target->Set(env->context(), internal_querystring_key.ToStringChecked(env->isolate()), internal_querystring_value.ToStringChecked(env->isolate())).FromJust()111489target->Set(env->context(), internal_process_write_coverage_key.ToStringChecked(env->isolate()), internal_process_write_coverage_value.ToStringChecked(env->isolate())).FromJust()111492target->Set(env->context(), internal_process_coverage_key.ToStringChecked(env->isolate()), internal_process_coverage_value.ToStringChecked(env->isolate())).FromJust()111495target->Set(env->context(), internal_readline_key.ToStringChecked(env->isolate()), internal_readline_value.ToStringChecked(env->isolate())).FromJust()111498target->Set(env->context(), internal_repl_key.ToStringChecked(env->isolate()), internal_repl_value.ToStringChecked(env->isolate())).FromJust()111501target->Set(env->context(), internal_repl_await_key.ToStringChecked(env->isolate()), internal_repl_await_value.ToStringChecked(env->isolate())).FromJust()111504target->Set(env->context(), internal_repl_recoverable_key.ToStringChecked(env->isolate()), internal_repl_recoverable_value.ToStringChecked(env->isolate())).FromJust()111507target->Set(env->context(), internal_socket_list_key.ToStringChecked(env->isolate()), internal_socket_list_value.ToStringChecked(env->isolate())).FromJust()111510target->Set(env->context(), internal_test_binding_key.ToStringChecked(env->isolate()), internal_test_binding_value.ToStringChecked(env->isolate())).FromJust()111513target->Set(env->context(), internal_test_heap_key.ToStringChecked(env->isolate()), internal_test_heap_value.ToStringChecked(env->isolate())).FromJust()111516target->Set(env->context(), internal_test_unicode_key.ToStringChecked(env->isolate()), internal_test_unicode_value.ToStringChecked(env->isolate())).FromJust()111519target->Set(env->context(), internal_timers_key.ToStringChecked(env->isolate()), internal_timers_value.ToStringChecked(env->isolate())).FromJust()111522target->Set(env->context(), internal_tls_key.ToStringChecked(env->isolate()), internal_tls_value.ToStringChecked(env->isolate())).FromJust()111525target->Set(env->context(), internal_trace_events_async_hooks_key.ToStringChecked(env->isolate()), internal_trace_events_async_hooks_value.ToStringChecked(env->isolate())).FromJust()111528target->Set(env->context(), internal_tty_key.ToStringChecked(env->isolate()), internal_tty_value.ToStringChecked(env->isolate())).FromJust()111531target->Set(env->context(), internal_url_key.ToStringChecked(env->isolate()), internal_url_value.ToStringChecked(env->isolate())).FromJust()111534target->Set(env->context(), internal_util_key.ToStringChecked(env->isolate()), internal_util_value.ToStringChecked(env->isolate())).FromJust()111537target->Set(env->context(), internal_util_comparisons_key.ToStringChecked(env->isolate()), internal_util_comparisons_value.ToStringChecked(env->isolate())).FromJust()111540target->Set(env->context(), internal_util_inspect_key.ToStringChecked(env->isolate()), internal_util_inspect_value.ToStringChecked(env->isolate())).FromJust()111543target->Set(env->context(), internal_util_inspector_key.ToStringChecked(env->isolate()), internal_util_inspector_value.ToStringChecked(env->isolate())).FromJust()111546target->Set(env->context(), internal_util_types_key.ToStringChecked(env->isolate()), internal_util_types_value.ToStringChecked(env->isolate())).FromJust()111549target->Set(env->context(), internal_http2_core_key.ToStringChecked(env->isolate()), internal_http2_core_value.ToStringChecked(env->isolate())).FromJust()111552target->Set(env->context(), internal_http2_compat_key.ToStringChecked(env->isolate()), internal_http2_compat_value.ToStringChecked(env->isolate())).FromJust()111555target->Set(env->context(), internal_http2_util_key.ToStringChecked(env->isolate()), internal_http2_util_value.ToStringChecked(env->isolate())).FromJust()111558target->Set(env->context(), internal_v8_prof_polyfill_key.ToStringChecked(env->isolate()), internal_v8_prof_polyfill_value.ToStringChecked(env->isolate())).FromJust()111561target->Set(env->context(), internal_v8_prof_processor_key.ToStringChecked(env->isolate()), internal_v8_prof_processor_value.ToStringChecked(env->isolate())).FromJust()111564target->Set(env->context(), internal_validators_key.ToStringChecked(env->isolate()), internal_validators_value.ToStringChecked(env->isolate())).FromJust()111567target->Set(env->context(), internal_stream_base_commons_key.ToStringChecked(env->isolate()), internal_stream_base_commons_value.ToStringChecked(env->isolate())).FromJust()111570target->Set(env->context(), internal_vm_source_text_module_key.ToStringChecked(env->isolate()), internal_vm_source_text_module_value.ToStringChecked(env->isolate())).FromJust()111573target->Set(env->context(), internal_worker_key.ToStringChecked(env->isolate()), internal_worker_value.ToStringChecked(env->isolate())).FromJust()111576target->Set(env->context(), internal_streams_lazy_transform_key.ToStringChecked(env->isolate()), internal_streams_lazy_transform_value.ToStringChecked(env->isolate())).FromJust()111579target->Set(env->context(), internal_streams_async_iterator_key.ToStringChecked(env->isolate()), internal_streams_async_iterator_value.ToStringChecked(env->isolate())).FromJust()111582target->Set(env->context(), internal_streams_buffer_list_key.ToStringChecked(env->isolate()), internal_streams_buffer_list_value.ToStringChecked(env->isolate())).FromJust()111585target->Set(env->context(), internal_streams_duplexpair_key.ToStringChecked(env->isolate()), internal_streams_duplexpair_value.ToStringChecked(env->isolate())).FromJust()111588target->Set(env->context(), internal_streams_legacy_key.ToStringChecked(env->isolate()), internal_streams_legacy_value.ToStringChecked(env->isolate())).FromJust()111591target->Set(env->context(), internal_streams_destroy_key.ToStringChecked(env->isolate()), internal_streams_destroy_value.ToStringChecked(env->isolate())).FromJust()111594target->Set(env->context(), internal_streams_state_key.ToStringChecked(env->isolate()), internal_streams_state_value.ToStringChecked(env->isolate())).FromJust()111597target->Set(env->context(), internal_streams_pipeline_key.ToStringChecked(env->isolate()), internal_streams_pipeline_value.ToStringChecked(env->isolate())).FromJust()111600target->Set(env->context(), internal_streams_end_of_stream_key.ToStringChecked(env->isolate()), internal_streams_end_of_stream_value.ToStringChecked(env->isolate())).FromJust()111603target->Set(env->context(), internal_wrap_js_stream_key.ToStringChecked(env->isolate()), internal_wrap_js_stream_value.ToStringChecked(env->isolate())).FromJust()111606target->Set(env->context(), internal_deps_v8_tools_splaytree_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_splaytree_value.ToStringChecked(env->isolate())).FromJust()111609target->Set(env->context(), v8_tools_splaytree_key.ToStringChecked(env->isolate()), v8_tools_splaytree_value.ToStringChecked(env->isolate())).FromJust()111612target->Set(env->context(), internal_deps_v8_tools_codemap_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_codemap_value.ToStringChecked(env->isolate())).FromJust()111615target->Set(env->context(), v8_tools_codemap_key.ToStringChecked(env->isolate()), v8_tools_codemap_value.ToStringChecked(env->isolate())).FromJust()111618target->Set(env->context(), internal_deps_v8_tools_consarray_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_consarray_value.ToStringChecked(env->isolate())).FromJust()111621target->Set(env->context(), v8_tools_consarray_key.ToStringChecked(env->isolate()), v8_tools_consarray_value.ToStringChecked(env->isolate())).FromJust()111624target->Set(env->context(), internal_deps_v8_tools_csvparser_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_csvparser_value.ToStringChecked(env->isolate())).FromJust()111627target->Set(env->context(), v8_tools_csvparser_key.ToStringChecked(env->isolate()), v8_tools_csvparser_value.ToStringChecked(env->isolate())).FromJust()111630target->Set(env->context(), internal_deps_v8_tools_profile_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_profile_value.ToStringChecked(env->isolate())).FromJust()111633target->Set(env->context(), v8_tools_profile_key.ToStringChecked(env->isolate()), v8_tools_profile_value.ToStringChecked(env->isolate())).FromJust()111636target->Set(env->context(), internal_deps_v8_tools_profile_view_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_profile_view_value.ToStringChecked(env->isolate())).FromJust()111639target->Set(env->context(), v8_tools_profile_view_key.ToStringChecked(env->isolate()), v8_tools_profile_view_value.ToStringChecked(env->isolate())).FromJust()111642target->Set(env->context(), internal_deps_v8_tools_logreader_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_logreader_value.ToStringChecked(env->isolate())).FromJust()111645target->Set(env->context(), v8_tools_logreader_key.ToStringChecked(env->isolate()), v8_tools_logreader_value.ToStringChecked(env->isolate())).FromJust()111648target->Set(env->context(), internal_deps_v8_tools_arguments_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_arguments_value.ToStringChecked(env->isolate())).FromJust()111651target->Set(env->context(), v8_tools_arguments_key.ToStringChecked(env->isolate()), v8_tools_arguments_value.ToStringChecked(env->isolate())).FromJust()111654target->Set(env->context(), internal_deps_v8_tools_tickprocessor_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_tickprocessor_value.ToStringChecked(env->isolate())).FromJust()111657target->Set(env->context(), v8_tools_tickprocessor_key.ToStringChecked(env->isolate()), v8_tools_tickprocessor_value.ToStringChecked(env->isolate())).FromJust()111660target->Set(env->context(), internal_deps_v8_tools_SourceMap_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_SourceMap_value.ToStringChecked(env->isolate())).FromJust()111663target->Set(env->context(), v8_tools_SourceMap_key.ToStringChecked(env->isolate()), v8_tools_SourceMap_value.ToStringChecked(env->isolate())).FromJust()111666target->Set(env->context(), internal_deps_v8_tools_tickprocessor_driver_key.ToStringChecked(env->isolate()), internal_deps_v8_tools_tickprocessor_driver_value.ToStringChecked(env->isolate())).FromJust()111669target->Set(env->context(), v8_tools_tickprocessor_driver_key.ToStringChecked(env->isolate()), v8_tools_tickprocessor_driver_value.ToStringChecked(env->isolate())).FromJust()111672target->Set(env->context(), internal_deps_node_inspect_lib__inspect_key.ToStringChecked(env->isolate()), internal_deps_node_inspect_lib__inspect_value.ToStringChecked(env->isolate())).FromJust()111675target->Set(env->context(), node_inspect_lib__inspect_key.ToStringChecked(env->isolate()), node_inspect_lib__inspect_value.ToStringChecked(env->isolate())).FromJust()111678target->Set(env->context(), internal_deps_node_inspect_lib_internal_inspect_client_key.ToStringChecked(env->isolate()), internal_deps_node_inspect_lib_internal_inspect_client_value.ToStringChecked(env->isolate())).FromJust()111681target->Set(env->context(), node_inspect_lib_internal_inspect_client_key.ToStringChecked(env->isolate()), node_inspect_lib_internal_inspect_client_value.ToStringChecked(env->isolate())).FromJust()111684target->Set(env->context(), internal_deps_node_inspect_lib_internal_inspect_repl_key.ToStringChecked(env->isolate()), internal_deps_node_inspect_lib_internal_inspect_repl_value.ToStringChecked(env->isolate())).FromJust()111687target->Set(env->context(), node_inspect_lib_internal_inspect_repl_key.ToStringChecked(env->isolate()), node_inspect_lib_internal_inspect_repl_value.ToStringChecked(env->isolate())).FromJust()111690target->Set(env->context(), internal_deps_acorn_dist_acorn_key.ToStringChecked(env->isolate()), internal_deps_acorn_dist_acorn_value.ToStringChecked(env->isolate())).FromJust()111693target->Set(env->context(), internal_deps_acorn_dist_walk_key.ToStringChecked(env->isolate()), internal_deps_acorn_dist_walk_value.ToStringChecked(env->isolate())).FromJust()111696target->Set(env->context(), config_key.ToStringChecked(env->isolate()), config_value.ToStringChecked(env->isolate())).FromJust()internal/per_context0ff4727815a247cbb8c2cf39683bf3b675773823ec5e31398e7c346ce2316c7f111703target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/per_context"), FIXED_ONE_BYTE_STRING(env->isolate(), "0ff4727815a247cbb8c2cf39683bf3b675773823ec5e31398e7c346ce2316c7f")).FromJust()void node::DefineJavaScriptHash(node::Environment *, v8::Local)internal/bootstrap/cacheea45ac3fb56b6fdc863267bb9390f0de8e999b1d70ba362c474cfcef17d6130f111706target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/bootstrap/cache"), FIXED_ONE_BYTE_STRING(env->isolate(), "ea45ac3fb56b6fdc863267bb9390f0de8e999b1d70ba362c474cfcef17d6130f")).FromJust()internal/bootstrap/loaders131f633da16eca9c3bf104f5dfcca0ad991f0ff396cd5373b903d5f863c27b4f111709target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/bootstrap/loaders"), FIXED_ONE_BYTE_STRING(env->isolate(), "131f633da16eca9c3bf104f5dfcca0ad991f0ff396cd5373b903d5f863c27b4f")).FromJust()internal/bootstrap/node36895f240df48cb605881c864be2c4dbf6ad2ece7cd6dc890ee8e714cf5d2d7e111712target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/bootstrap/node"), FIXED_ONE_BYTE_STRING(env->isolate(), "36895f240df48cb605881c864be2c4dbf6ad2ece7cd6dc890ee8e714cf5d2d7e")).FromJust()async_hookse6d7e04f7ddc8829bae3609f2b050396c188f5d273bf36944935954a902fda96111715target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "async_hooks"), FIXED_ONE_BYTE_STRING(env->isolate(), "e6d7e04f7ddc8829bae3609f2b050396c188f5d273bf36944935954a902fda96")).FromJust()assert92e98bffb9722ca6d1f3b317c12b3593e8797a873fc22768717e38d348cb539d111718target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "assert"), FIXED_ONE_BYTE_STRING(env->isolate(), "92e98bffb9722ca6d1f3b317c12b3593e8797a873fc22768717e38d348cb539d")).FromJust()95ad9b1a3ed18d70976285b3578da4983377d47de594c1a6c57353acefbee551111721target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "buffer"), FIXED_ONE_BYTE_STRING(env->isolate(), "95ad9b1a3ed18d70976285b3578da4983377d47de594c1a6c57353acefbee551")).FromJust()child_process061b35ad4b8490b2d1c8f2e8e1dc4d0bb3c38512a835b583e746e28b8c5cf4ee111724target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "child_process"), FIXED_ONE_BYTE_STRING(env->isolate(), "061b35ad4b8490b2d1c8f2e8e1dc4d0bb3c38512a835b583e746e28b8c5cf4ee")).FromJust()consolefdcb62b220b00deeaf0a7f2fc135d08106be18a114d041d93d6b7f19c45fb63e111727target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "console"), FIXED_ONE_BYTE_STRING(env->isolate(), "fdcb62b220b00deeaf0a7f2fc135d08106be18a114d041d93d6b7f19c45fb63e")).FromJust()82627b7511858669fc05dd80736ab4b602e467769bd7807cb152bb0c72afcd36111730target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "constants"), FIXED_ONE_BYTE_STRING(env->isolate(), "82627b7511858669fc05dd80736ab4b602e467769bd7807cb152bb0c72afcd36")).FromJust()1d42270cd8e4d26fe9604dd46fc5f1733e0d950d1019fb76b8e5f2edfa355a61111733target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "crypto"), FIXED_ONE_BYTE_STRING(env->isolate(), "1d42270cd8e4d26fe9604dd46fc5f1733e0d950d1019fb76b8e5f2edfa355a61")).FromJust()clustera088b566544013f794054e153fba69835db32b1b5d7f8466c6c4ef83d0a18cdf111736target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "cluster"), FIXED_ONE_BYTE_STRING(env->isolate(), "a088b566544013f794054e153fba69835db32b1b5d7f8466c6c4ef83d0a18cdf")).FromJust()dgramef7486d49eec8e20020fdd1c337a2afafecdfbeb71ec75aee8c1528d356a114e111739target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "dgram"), FIXED_ONE_BYTE_STRING(env->isolate(), "ef7486d49eec8e20020fdd1c337a2afafecdfbeb71ec75aee8c1528d356a114e")).FromJust()dns54b723b2081bc1ca8d35e430edaae20da547d176c072ead28f00c98969039981111742target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "dns"), FIXED_ONE_BYTE_STRING(env->isolate(), "54b723b2081bc1ca8d35e430edaae20da547d176c072ead28f00c98969039981")).FromJust()9ced7d0d3e01bb0bbe8c345f1d83df1c1004c0767d4f4cc2d5872db5a80ed11a111745target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "domain"), FIXED_ONE_BYTE_STRING(env->isolate(), "9ced7d0d3e01bb0bbe8c345f1d83df1c1004c0767d4f4cc2d5872db5a80ed11a")).FromJust()events4f336ce4e6708bcaafbe00b4efbc6cd747c1e8700479b1b4ea1a500c3f704901111748target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "events"), FIXED_ONE_BYTE_STRING(env->isolate(), "4f336ce4e6708bcaafbe00b4efbc6cd747c1e8700479b1b4ea1a500c3f704901")).FromJust()16a36a309a1de8a01add7550bfd20d5650d71cbb3d082fe74513bb27d26881d7111751target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "fs"), FIXED_ONE_BYTE_STRING(env->isolate(), "16a36a309a1de8a01add7550bfd20d5650d71cbb3d082fe74513bb27d26881d7")).FromJust()http8fa92e72a565a4b688207805e7c2e2b797f9d0b12f7987f5b57a3796fc7e61cc111754target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "http"), FIXED_ONE_BYTE_STRING(env->isolate(), "8fa92e72a565a4b688207805e7c2e2b797f9d0b12f7987f5b57a3796fc7e61cc")).FromJust()02495c5c877cdd1479d8aaeb7487ece990d118dff865fb9bb5a71af53f90e1f6111757target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "http2"), FIXED_ONE_BYTE_STRING(env->isolate(), "02495c5c877cdd1479d8aaeb7487ece990d118dff865fb9bb5a71af53f90e1f6")).FromJust()_http_agent4e159f3c7f5133d67c7640d6f47107ddfa26a39ab500270aa724d682bc99996f111760target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_agent"), FIXED_ONE_BYTE_STRING(env->isolate(), "4e159f3c7f5133d67c7640d6f47107ddfa26a39ab500270aa724d682bc99996f")).FromJust()_http_client4477000099cf2e152d425cae1b1e3106588a7d9363506e5b43d56650cd0f0043111763target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_client"), FIXED_ONE_BYTE_STRING(env->isolate(), "4477000099cf2e152d425cae1b1e3106588a7d9363506e5b43d56650cd0f0043")).FromJust()_http_commonc2663d5782abecc8639b854089d739f64fa7c7dcd0b5229c26a88aee1afd0aef111766target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_common"), FIXED_ONE_BYTE_STRING(env->isolate(), "c2663d5782abecc8639b854089d739f64fa7c7dcd0b5229c26a88aee1afd0aef")).FromJust()_http_incomingefa03932919378dd3e3ec418ef8ad3a0588e33a007b73fe5c02957eea0272078111769target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_incoming"), FIXED_ONE_BYTE_STRING(env->isolate(), "efa03932919378dd3e3ec418ef8ad3a0588e33a007b73fe5c02957eea0272078")).FromJust()_http_outgoing3c1453d3c2e1eb483458bc8d6ea99f90d12fb39badcc2b7c197aef3c6fed4477111772target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_outgoing"), FIXED_ONE_BYTE_STRING(env->isolate(), "3c1453d3c2e1eb483458bc8d6ea99f90d12fb39badcc2b7c197aef3c6fed4477")).FromJust()_http_servered97a6b075ef8a96b87c1c1d7dd8e23027793aacef60c8e1c3b0934ea0ae6350111775target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_http_server"), FIXED_ONE_BYTE_STRING(env->isolate(), "ed97a6b075ef8a96b87c1c1d7dd8e23027793aacef60c8e1c3b0934ea0ae6350")).FromJust()https3be627c81579931167e158d2be3a2593db30551dc95bba0716dc8caecea93436111778target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "https"), FIXED_ONE_BYTE_STRING(env->isolate(), "3be627c81579931167e158d2be3a2593db30551dc95bba0716dc8caecea93436")).FromJust()543c7dc7bdc389f2c6bb84975768ce0d64345b435b96fe552e95ec8f1e3d2639111781target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "inspector"), FIXED_ONE_BYTE_STRING(env->isolate(), "543c7dc7bdc389f2c6bb84975768ce0d64345b435b96fe552e95ec8f1e3d2639")).FromJust()moduled26548838997ac64e99b462a15e200926ed31381232243841741bc9abd0ca629111784target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "module"), FIXED_ONE_BYTE_STRING(env->isolate(), "d26548838997ac64e99b462a15e200926ed31381232243841741bc9abd0ca629")).FromJust()netfc85e356dc054e067c30aecb695f1187ec400dc790c91b695e32bd90d69b3984111787target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "net"), FIXED_ONE_BYTE_STRING(env->isolate(), "fc85e356dc054e067c30aecb695f1187ec400dc790c91b695e32bd90d69b3984")).FromJust()83aa4961533db457ec8fd68fb1ca3f8e7d9185cbc660f60258a65d088f21ad6c111790target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "os"), FIXED_ONE_BYTE_STRING(env->isolate(), "83aa4961533db457ec8fd68fb1ca3f8e7d9185cbc660f60258a65d088f21ad6c")).FromJust()51cc4a60470627a3e5a8a61bab7f7ae1d286e5ca4b47cbd3eee36b78c4ebb89e111793target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "path"), FIXED_ONE_BYTE_STRING(env->isolate(), "51cc4a60470627a3e5a8a61bab7f7ae1d286e5ca4b47cbd3eee36b78c4ebb89e")).FromJust()perf_hooks63365aec133bcf210be26dea82c418afbf4758ccfb06782026ce5641cc5b560f111796target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "perf_hooks"), FIXED_ONE_BYTE_STRING(env->isolate(), "63365aec133bcf210be26dea82c418afbf4758ccfb06782026ce5641cc5b560f")).FromJust()d03f60dc708c826e0ea8c56ab7fcc1f5ca1480e8d0d26f2929ca73ee6e30ea5f111799target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "process"), FIXED_ONE_BYTE_STRING(env->isolate(), "d03f60dc708c826e0ea8c56ab7fcc1f5ca1480e8d0d26f2929ca73ee6e30ea5f")).FromJust()punycodedf0d890ad33a232fbbc7f2d957e1341a52830d0e114586a80f60cced808abe04111802target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "punycode"), FIXED_ONE_BYTE_STRING(env->isolate(), "df0d890ad33a232fbbc7f2d957e1341a52830d0e114586a80f60cced808abe04")).FromJust()querystringbc891810ba4713ec4fb45e6f15353043b8fbedc6dc452b8101270110720828f9111805target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "querystring"), FIXED_ONE_BYTE_STRING(env->isolate(), "bc891810ba4713ec4fb45e6f15353043b8fbedc6dc452b8101270110720828f9")).FromJust()readlinef85b2a6520bf9e25442ceeac2246e300d027c6766837a45e820906117ddf6d59111808target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "readline"), FIXED_ONE_BYTE_STRING(env->isolate(), "f85b2a6520bf9e25442ceeac2246e300d027c6766837a45e820906117ddf6d59")).FromJust()repl13649223ddef58498f6feeccb9580ff5e212c24bc0171bf0e83f0319603c49fc111811target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "repl"), FIXED_ONE_BYTE_STRING(env->isolate(), "13649223ddef58498f6feeccb9580ff5e212c24bc0171bf0e83f0319603c49fc")).FromJust()streama93d45e35a94172eacbf362e36f60b0b26c4645b9651b5f7f3da372646468e08111814target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "stream"), FIXED_ONE_BYTE_STRING(env->isolate(), "a93d45e35a94172eacbf362e36f60b0b26c4645b9651b5f7f3da372646468e08")).FromJust()_stream_readable453358ca1132e44d260d0489139a4fcb9b37f4aa8dfe0ed3c5b5b0899659bcca111817target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_readable"), FIXED_ONE_BYTE_STRING(env->isolate(), "453358ca1132e44d260d0489139a4fcb9b37f4aa8dfe0ed3c5b5b0899659bcca")).FromJust()_stream_writableb399537f57ecdcbbf6c0eaef173285e8339f9f284ed792fedafc585cbd546e6b111820target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_writable"), FIXED_ONE_BYTE_STRING(env->isolate(), "b399537f57ecdcbbf6c0eaef173285e8339f9f284ed792fedafc585cbd546e6b")).FromJust()_stream_duplexf5f0164ee0e9ec6bde0e9920e5d9bffe533717bd08b0135adee5cdaf225c7a47111823target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_duplex"), FIXED_ONE_BYTE_STRING(env->isolate(), "f5f0164ee0e9ec6bde0e9920e5d9bffe533717bd08b0135adee5cdaf225c7a47")).FromJust()_stream_transform12b74f53d9c7d022ec84f41f7bcad57ce0700e6b553693bd81a2e0ae0e357300111826target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_transform"), FIXED_ONE_BYTE_STRING(env->isolate(), "12b74f53d9c7d022ec84f41f7bcad57ce0700e6b553693bd81a2e0ae0e357300")).FromJust()_stream_passthroughb3d232937503155c6cdf8b3c150ea5ec41a22ead435fa16dd8af1f28a660e3ab111829target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_passthrough"), FIXED_ONE_BYTE_STRING(env->isolate(), "b3d232937503155c6cdf8b3c150ea5ec41a22ead435fa16dd8af1f28a660e3ab")).FromJust()_stream_wrap0eaedaa732b46490b35737084b7d4a60ff5a87f77b134483d552f6d4fb0576c3111832target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_stream_wrap"), FIXED_ONE_BYTE_STRING(env->isolate(), "0eaedaa732b46490b35737084b7d4a60ff5a87f77b134483d552f6d4fb0576c3")).FromJust()19292bbf20174a9f4597c2b5b5871aa024afedb0f794bae3c7b656e4d64b34da111835target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "string_decoder"), FIXED_ONE_BYTE_STRING(env->isolate(), "19292bbf20174a9f4597c2b5b5871aa024afedb0f794bae3c7b656e4d64b34da")).FromJust()sys7bb5a5d0c04ba6a6bdeb78fc91cf6f80444c124791fda5cef15d057ed9f435b7111838target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "sys"), FIXED_ONE_BYTE_STRING(env->isolate(), "7bb5a5d0c04ba6a6bdeb78fc91cf6f80444c124791fda5cef15d057ed9f435b7")).FromJust()timersda13f382be1298a0ba2f365f2625dfd04ca8b6009f2f2b63dd3b815019eaa640111841target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "timers"), FIXED_ONE_BYTE_STRING(env->isolate(), "da13f382be1298a0ba2f365f2625dfd04ca8b6009f2f2b63dd3b815019eaa640")).FromJust()0d615763fd908fb488534f9437c3debf1edb1849642737a87e7015ee2115671d111844target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "tls"), FIXED_ONE_BYTE_STRING(env->isolate(), "0d615763fd908fb488534f9437c3debf1edb1849642737a87e7015ee2115671d")).FromJust()_tls_common91c80c8bbff4f03791f51f8a4e606486eeb4a20aeb034e4010cd9e9f5e4f8ad5111847target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_tls_common"), FIXED_ONE_BYTE_STRING(env->isolate(), "91c80c8bbff4f03791f51f8a4e606486eeb4a20aeb034e4010cd9e9f5e4f8ad5")).FromJust()_tls_wrap47303d0efa05db0cf89a5ea2df8e33393ba02d08574a48482b24f4b18d80d3cf111850target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "_tls_wrap"), FIXED_ONE_BYTE_STRING(env->isolate(), "47303d0efa05db0cf89a5ea2df8e33393ba02d08574a48482b24f4b18d80d3cf")).FromJust()3ab1fbe7c77f890e46719285bd73c421391a79bce49f12443cfb9d01838e9686111853target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "trace_events"), FIXED_ONE_BYTE_STRING(env->isolate(), "3ab1fbe7c77f890e46719285bd73c421391a79bce49f12443cfb9d01838e9686")).FromJust()ttyf0800cf6d5405a4cf78cce3cc9ea41f8326a50f683b2f8234ab6a4aace5fec0f111856target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "tty"), FIXED_ONE_BYTE_STRING(env->isolate(), "f0800cf6d5405a4cf78cce3cc9ea41f8326a50f683b2f8234ab6a4aace5fec0f")).FromJust()a69a2cebab73fd7e7721774d33316eb267314095a95bd3c2827b8d4457a04b98111859target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "url"), FIXED_ONE_BYTE_STRING(env->isolate(), "a69a2cebab73fd7e7721774d33316eb267314095a95bd3c2827b8d4457a04b98")).FromJust()bab332d4e104def0a8b404149293892244933c6217950e378ef1e9e262a8eeb8111862target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "util"), FIXED_ONE_BYTE_STRING(env->isolate(), "bab332d4e104def0a8b404149293892244933c6217950e378ef1e9e262a8eeb8")).FromJust()f0220aab3cb92d75cf5972a48b87883e28a9e8268203976d9b7f40ee994edfb7111865target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8"), FIXED_ONE_BYTE_STRING(env->isolate(), "f0220aab3cb92d75cf5972a48b87883e28a9e8268203976d9b7f40ee994edfb7")).FromJust()vm25ebebf3b94791c82b53f30fccb46178add523d485c3ba63e430a3549c8f67f4111868target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "vm"), FIXED_ONE_BYTE_STRING(env->isolate(), "25ebebf3b94791c82b53f30fccb46178add523d485c3ba63e430a3549c8f67f4")).FromJust()worker_threadsd084c3b6cd7e1f3c3a0c1222dc5e67e179137e0cee1467698905e097292c0089111871target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "worker_threads"), FIXED_ONE_BYTE_STRING(env->isolate(), "d084c3b6cd7e1f3c3a0c1222dc5e67e179137e0cee1467698905e097292c0089")).FromJust()cd5f4b89cca9194ccc3ef3e680a5dcc83bb85416cc6666dfa3450c9735eece3a111874target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "zlib"), FIXED_ONE_BYTE_STRING(env->isolate(), "cd5f4b89cca9194ccc3ef3e680a5dcc83bb85416cc6666dfa3450c9735eece3a")).FromJust()internal/assert9178b15b2bd3806a97b5b390a8a06cf4d5189a84df33e8d7762ceb17c6525a32111877target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/assert"), FIXED_ONE_BYTE_STRING(env->isolate(), "9178b15b2bd3806a97b5b390a8a06cf4d5189a84df33e8d7762ceb17c6525a32")).FromJust()internal/async_hooks12990f668c3c73b898556597bcc1cce1521478ff40d4d36f38bd3e30600b332a111880target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/async_hooks"), FIXED_ONE_BYTE_STRING(env->isolate(), "12990f668c3c73b898556597bcc1cce1521478ff40d4d36f38bd3e30600b332a")).FromJust()internal/bash_completion908edeab7fae4122d8035d1d717a4951576efe86047c0ce69217ed9b2dd7f69f111883target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/bash_completion"), FIXED_ONE_BYTE_STRING(env->isolate(), "908edeab7fae4122d8035d1d717a4951576efe86047c0ce69217ed9b2dd7f69f")).FromJust()internal/buffer2d753d20697cd10d24ce56447c847fa8d1dbb5ca5810133cb3f7a21c9a5d21f6111886target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/buffer"), FIXED_ONE_BYTE_STRING(env->isolate(), "2d753d20697cd10d24ce56447c847fa8d1dbb5ca5810133cb3f7a21c9a5d21f6")).FromJust()internal/cli_table59f09f1685b8d40037b689e41035060cab6011e8a5d941d037b1031c11b59452111889target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cli_table"), FIXED_ONE_BYTE_STRING(env->isolate(), "59f09f1685b8d40037b689e41035060cab6011e8a5d941d037b1031c11b59452")).FromJust()internal/child_processf60b5e19a4609ee07bf4dc713a150095f88e78b9bb004d3287a69c35bf1f0c23111892target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/child_process"), FIXED_ONE_BYTE_STRING(env->isolate(), "f60b5e19a4609ee07bf4dc713a150095f88e78b9bb004d3287a69c35bf1f0c23")).FromJust()internal/cluster/childfe8990f4b6ee0bfe82e551332800ed9455269de45ee4e07cd6a9244b5e3ea445111895target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/child"), FIXED_ONE_BYTE_STRING(env->isolate(), "fe8990f4b6ee0bfe82e551332800ed9455269de45ee4e07cd6a9244b5e3ea445")).FromJust()internal/cluster/mastera8c30b4e07e94536e6996443f3d0155e5252430c4437d8535b70e07530f562c4111898target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/master"), FIXED_ONE_BYTE_STRING(env->isolate(), "a8c30b4e07e94536e6996443f3d0155e5252430c4437d8535b70e07530f562c4")).FromJust()internal/cluster/round_robin_handlea2539f0456c6649aae9acf6ffa2bf96927971d36b13bb3e434754207c310fba6111901target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/round_robin_handle"), FIXED_ONE_BYTE_STRING(env->isolate(), "a2539f0456c6649aae9acf6ffa2bf96927971d36b13bb3e434754207c310fba6")).FromJust()internal/cluster/shared_handlee6797b81b28e4152719949b2dc8767783d996d01bcd426f18ffbb9b3f72b3f1b111904target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/shared_handle"), FIXED_ONE_BYTE_STRING(env->isolate(), "e6797b81b28e4152719949b2dc8767783d996d01bcd426f18ffbb9b3f72b3f1b")).FromJust()internal/cluster/utils774b5be8a06580ca514fa926ac96e24e3d8a4e325f0d04103fa0c08742918a38111907target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/utils"), FIXED_ONE_BYTE_STRING(env->isolate(), "774b5be8a06580ca514fa926ac96e24e3d8a4e325f0d04103fa0c08742918a38")).FromJust()internal/cluster/worker8b9c839e5eb79c0b5836da14bde5c499489fb41f7a6f144a5775840946a40695111910target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/cluster/worker"), FIXED_ONE_BYTE_STRING(env->isolate(), "8b9c839e5eb79c0b5836da14bde5c499489fb41f7a6f144a5775840946a40695")).FromJust()internal/crypto/certificate165c8d72ee7e6c066a81bae78a45ef50b7f1061696517a78c51df2b44a83af7d111913target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/certificate"), FIXED_ONE_BYTE_STRING(env->isolate(), "165c8d72ee7e6c066a81bae78a45ef50b7f1061696517a78c51df2b44a83af7d")).FromJust()internal/crypto/cipher85234f8f875565f3f1969206324d3fb5f1ee42b2a5edd0f9b809710da0f2fcd0111916target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/cipher"), FIXED_ONE_BYTE_STRING(env->isolate(), "85234f8f875565f3f1969206324d3fb5f1ee42b2a5edd0f9b809710da0f2fcd0")).FromJust()internal/crypto/diffiehellmaneecd0fcde33e36abbb2162e5a21738f424d747858422085da3dfd0f311912013111919target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/diffiehellman"), FIXED_ONE_BYTE_STRING(env->isolate(), "eecd0fcde33e36abbb2162e5a21738f424d747858422085da3dfd0f311912013")).FromJust()internal/crypto/hashcc6caebf6bfcb1ff1cd0bc81033299ae879c769ca9bdce349fe57c49e3da9e5e111922target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/hash"), FIXED_ONE_BYTE_STRING(env->isolate(), "cc6caebf6bfcb1ff1cd0bc81033299ae879c769ca9bdce349fe57c49e3da9e5e")).FromJust()internal/crypto/keygenb55d02aaa7332fbbf3ada9e1737eda9b32316e32399a505407e92d9442cc3fe3111925target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/keygen"), FIXED_ONE_BYTE_STRING(env->isolate(), "b55d02aaa7332fbbf3ada9e1737eda9b32316e32399a505407e92d9442cc3fe3")).FromJust()internal/crypto/pbkdf220f89a0f98bf8564543d1e320e12b325c9e962a52b479c536e5a0910292583f1111928target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/pbkdf2"), FIXED_ONE_BYTE_STRING(env->isolate(), "20f89a0f98bf8564543d1e320e12b325c9e962a52b479c536e5a0910292583f1")).FromJust()internal/crypto/randomf45ade768a1b773f4b809decb0b72627b47407725941839b03bd457f7bdac34a111931target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/random"), FIXED_ONE_BYTE_STRING(env->isolate(), "f45ade768a1b773f4b809decb0b72627b47407725941839b03bd457f7bdac34a")).FromJust()internal/crypto/scrypt899c0051516bee4861b30da8bea1ddf68c194fb214059b69d26cb1f8fb90737b111934target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/scrypt"), FIXED_ONE_BYTE_STRING(env->isolate(), "899c0051516bee4861b30da8bea1ddf68c194fb214059b69d26cb1f8fb90737b")).FromJust()internal/crypto/sigf8633e2ec5d46b1d0898115df5c5365925a90edd89febf99d8fbe7f8f670ec5b111937target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/sig"), FIXED_ONE_BYTE_STRING(env->isolate(), "f8633e2ec5d46b1d0898115df5c5365925a90edd89febf99d8fbe7f8f670ec5b")).FromJust()internal/crypto/util66b2f0bf1b450aa85d71a6c8313db386b519c95c1a65aff486df9c5a12a5ad98111940target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/crypto/util"), FIXED_ONE_BYTE_STRING(env->isolate(), "66b2f0bf1b450aa85d71a6c8313db386b519c95c1a65aff486df9c5a12a5ad98")).FromJust()internal/constants4eba89d015dd53e52607dbcaca57fc2f7eae1e0fac2a338139dddc4ed37e1f1d111943target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/constants"), FIXED_ONE_BYTE_STRING(env->isolate(), "4eba89d015dd53e52607dbcaca57fc2f7eae1e0fac2a338139dddc4ed37e1f1d")).FromJust()internal/dgrama1d2134d984a5833b3497cd0e0676fcc85d498de1a8c3707965f8c696182b6c8111946target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/dgram"), FIXED_ONE_BYTE_STRING(env->isolate(), "a1d2134d984a5833b3497cd0e0676fcc85d498de1a8c3707965f8c696182b6c8")).FromJust()internal/dns/promises45736b0f767d60136d6d963a2b9dc5b4513f07a8fc05628f08e439bf51a79f74111949target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/dns/promises"), FIXED_ONE_BYTE_STRING(env->isolate(), "45736b0f767d60136d6d963a2b9dc5b4513f07a8fc05628f08e439bf51a79f74")).FromJust()internal/dns/utils50f81afcb3fa619aa640f00deffeebc5363df3318a4db9d0f9635d6fb09e33c6111952target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/dns/utils"), FIXED_ONE_BYTE_STRING(env->isolate(), "50f81afcb3fa619aa640f00deffeebc5363df3318a4db9d0f9635d6fb09e33c6")).FromJust()internal/domexceptione6fdc1fce5f32f9157c7016bff24742eb28c7865ad986625aa24a0b538e918d7111955target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/domexception"), FIXED_ONE_BYTE_STRING(env->isolate(), "e6fdc1fce5f32f9157c7016bff24742eb28c7865ad986625aa24a0b538e918d7")).FromJust()internal/encoding928e98f98ad63f685490f3ef482cbe0217adab69c5c142dec7b8df2e8892b171111958target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/encoding"), FIXED_ONE_BYTE_STRING(env->isolate(), "928e98f98ad63f685490f3ef482cbe0217adab69c5c142dec7b8df2e8892b171")).FromJust()internal/errors0e943023e4b7700ef494b3a812e2ce941625203e03a8db437033fe16ac7e195c111961target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/errors"), FIXED_ONE_BYTE_STRING(env->isolate(), "0e943023e4b7700ef494b3a812e2ce941625203e03a8db437033fe16ac7e195c")).FromJust()internal/error-serdes58d269b16501d3456f1807e3a5d801b9deb99de8ae0f437db1d37cba4fb75474111964target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/error-serdes"), FIXED_ONE_BYTE_STRING(env->isolate(), "58d269b16501d3456f1807e3a5d801b9deb99de8ae0f437db1d37cba4fb75474")).FromJust()internal/fixed_queue2f06fbce1dee20069930ec2e558b4a8113401be18f74a8d63bd0ee0ca2907ca6111967target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fixed_queue"), FIXED_ONE_BYTE_STRING(env->isolate(), "2f06fbce1dee20069930ec2e558b4a8113401be18f74a8d63bd0ee0ca2907ca6")).FromJust()internal/freelist1418f96493a67b55e7779001f1020b30be61e7687b86126c0eebeb98eb020f24111970target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/freelist"), FIXED_ONE_BYTE_STRING(env->isolate(), "1418f96493a67b55e7779001f1020b30be61e7687b86126c0eebeb98eb020f24")).FromJust()internal/fs/promises84f9e769ccee471ce9b7b7307ab0c9fb7b34863267ccd09bac1e2292324d7cde111973target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/promises"), FIXED_ONE_BYTE_STRING(env->isolate(), "84f9e769ccee471ce9b7b7307ab0c9fb7b34863267ccd09bac1e2292324d7cde")).FromJust()internal/fs/read_file_contextfc0c1ed88e444a80596daeca6d5aaeb726ca3eba7087eef52619d46243f1ea20111976target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/read_file_context"), FIXED_ONE_BYTE_STRING(env->isolate(), "fc0c1ed88e444a80596daeca6d5aaeb726ca3eba7087eef52619d46243f1ea20")).FromJust()internal/fs/streamsfa0e4a31d40d60e38e01f81865ca0be954de01cd069f008c67eaf7c1ecec430a111979target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/streams"), FIXED_ONE_BYTE_STRING(env->isolate(), "fa0e4a31d40d60e38e01f81865ca0be954de01cd069f008c67eaf7c1ecec430a")).FromJust()internal/fs/sync_write_stream0a39fc980ef23f87a16f7a37ebb4d99082b9284bd76b01dc3aa7a81bc43211d8111982target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/sync_write_stream"), FIXED_ONE_BYTE_STRING(env->isolate(), "0a39fc980ef23f87a16f7a37ebb4d99082b9284bd76b01dc3aa7a81bc43211d8")).FromJust()internal/fs/utilsbe50ae7a1419e6c98ca945170a63dfb59c9d38da919861a915d2ab3949737925111985target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/utils"), FIXED_ONE_BYTE_STRING(env->isolate(), "be50ae7a1419e6c98ca945170a63dfb59c9d38da919861a915d2ab3949737925")).FromJust()internal/fs/watchers9ba1ac914128f3df798c4d855268b24a2a85e7d9ba4a4e397cdb7ce660aaddb4111988target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/fs/watchers"), FIXED_ONE_BYTE_STRING(env->isolate(), "9ba1ac914128f3df798c4d855268b24a2a85e7d9ba4a4e397cdb7ce660aaddb4")).FromJust()internal/http2e21eb99956c31a6283237bac5960ddfd63edaa5d9078cd15917414da3d6024a111991target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/http"), FIXED_ONE_BYTE_STRING(env->isolate(), "2e21eb99956c31a6283237bac5960ddfd63edaa5d9078cd15917414da3d6024a")).FromJust()internal/inspector_async_hookcd2fa39c68dcc44d60d3bfe1b862d879f7a243a13f43be3070010416a9a7d429111994target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/inspector_async_hook"), FIXED_ONE_BYTE_STRING(env->isolate(), "cd2fa39c68dcc44d60d3bfe1b862d879f7a243a13f43be3070010416a9a7d429")).FromJust()internal/linkedlist8ac6a12942071517bddadf9bd31819ce664655378c7fcceb92e6370d4154da21111997target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/linkedlist"), FIXED_ONE_BYTE_STRING(env->isolate(), "8ac6a12942071517bddadf9bd31819ce664655378c7fcceb92e6370d4154da21")).FromJust()internal/modules/cjs/helpersfc00134e0f7bf3bb49d1be96e63ffd88885faa1dc3be26d683837406a4f1125e112000target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/cjs/helpers"), FIXED_ONE_BYTE_STRING(env->isolate(), "fc00134e0f7bf3bb49d1be96e63ffd88885faa1dc3be26d683837406a4f1125e")).FromJust()internal/modules/cjs/loader83c7abe7925f68ceef813bde9aeee926582b0ff0354c8f7611f7b0036f9cd7fc112003target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/cjs/loader"), FIXED_ONE_BYTE_STRING(env->isolate(), "83c7abe7925f68ceef813bde9aeee926582b0ff0354c8f7611f7b0036f9cd7fc")).FromJust()internal/modules/esm/loadercbf80f305686b36462ffc9a11720f16b48ea048a97c7f5903240f9f109c69c94112006target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/loader"), FIXED_ONE_BYTE_STRING(env->isolate(), "cbf80f305686b36462ffc9a11720f16b48ea048a97c7f5903240f9f109c69c94")).FromJust()internal/modules/esm/create_dynamic_module7c188cf1a1b6f953f12af0487feed2cf056ab5d62c233db0ba54916f71d2fe48112009target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/create_dynamic_module"), FIXED_ONE_BYTE_STRING(env->isolate(), "7c188cf1a1b6f953f12af0487feed2cf056ab5d62c233db0ba54916f71d2fe48")).FromJust()internal/modules/esm/default_resolved0ca641ba9360c65d35dc1905623149424488a076b7023e6a280c5d2ba3f851a112012target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/default_resolve"), FIXED_ONE_BYTE_STRING(env->isolate(), "d0ca641ba9360c65d35dc1905623149424488a076b7023e6a280c5d2ba3f851a")).FromJust()internal/modules/esm/module_job029a5b7896af474500c50ff2749b18fe0f5b1ae2fd08cf17882e17387047846d112015target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/module_job"), FIXED_ONE_BYTE_STRING(env->isolate(), "029a5b7896af474500c50ff2749b18fe0f5b1ae2fd08cf17882e17387047846d")).FromJust()internal/modules/esm/module_mape76a17b65a0cf204577c4bef0f0bb84516037252319482d295b6b7d8e5ed7ae2112018target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/module_map"), FIXED_ONE_BYTE_STRING(env->isolate(), "e76a17b65a0cf204577c4bef0f0bb84516037252319482d295b6b7d8e5ed7ae2")).FromJust()internal/modules/esm/translators84ff99b5a0de4f0564c4a87fe44b6961f9ba262d8a01866954d0a1b2e3f59694112021target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/modules/esm/translators"), FIXED_ONE_BYTE_STRING(env->isolate(), "84ff99b5a0de4f0564c4a87fe44b6961f9ba262d8a01866954d0a1b2e3f59694")).FromJust()internal/safe_globals3f0814b3765b7561fa13be9136ec534ffea7090ae3e7c02cf4a844d1bd30b3a8112024target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/safe_globals"), FIXED_ONE_BYTE_STRING(env->isolate(), "3f0814b3765b7561fa13be9136ec534ffea7090ae3e7c02cf4a844d1bd30b3a8")).FromJust()internal/nete2380f42f880d3ab3cf0d844e3c8309e6e1cb897287ca3e3d3b4e21548468e48112027target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/net"), FIXED_ONE_BYTE_STRING(env->isolate(), "e2380f42f880d3ab3cf0d844e3c8309e6e1cb897287ca3e3d3b4e21548468e48")).FromJust()internal/options236810dd90a9013757a6ab3050862971abe66eeca2463907c8b31d27df5c2416112030target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/options"), FIXED_ONE_BYTE_STRING(env->isolate(), "236810dd90a9013757a6ab3050862971abe66eeca2463907c8b31d27df5c2416")).FromJust()internal/print_help542fe062a4bff5cd9771034c724a7fd402369fe133b963db637c886c763eb120112033target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/print_help"), FIXED_ONE_BYTE_STRING(env->isolate(), "542fe062a4bff5cd9771034c724a7fd402369fe133b963db637c886c763eb120")).FromJust()internal/process/esm_loaderfc13d0b5a9bbe1a7ec6ae50302d7ee48b6e0306555baa20602b4dd01baf3aa07112036target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/esm_loader"), FIXED_ONE_BYTE_STRING(env->isolate(), "fc13d0b5a9bbe1a7ec6ae50302d7ee48b6e0306555baa20602b4dd01baf3aa07")).FromJust()internal/process/main_thread_only885c640b1a7aa27043c89fb7cffeeedbc435365e8e81e63b3b179b3a44cfe3ef112039target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/main_thread_only"), FIXED_ONE_BYTE_STRING(env->isolate(), "885c640b1a7aa27043c89fb7cffeeedbc435365e8e81e63b3b179b3a44cfe3ef")).FromJust()internal/process/next_tick456ca7f9662c21a1e0c32b71dd965f5a063356c171967cf3984fbf11e2b44e28112042target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/next_tick"), FIXED_ONE_BYTE_STRING(env->isolate(), "456ca7f9662c21a1e0c32b71dd965f5a063356c171967cf3984fbf11e2b44e28")).FromJust()internal/process/per_threaddd84a7ddbbf70176748c018d5fced218620f2d34e0babd004641852d42d060e1112045target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/per_thread"), FIXED_ONE_BYTE_STRING(env->isolate(), "dd84a7ddbbf70176748c018d5fced218620f2d34e0babd004641852d42d060e1")).FromJust()internal/process/promisesfa67bc6758f2276a9ba185f949b3eaed3d6ed371202a62ba413828ee4488a18f112048target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/promises"), FIXED_ONE_BYTE_STRING(env->isolate(), "fa67bc6758f2276a9ba185f949b3eaed3d6ed371202a62ba413828ee4488a18f")).FromJust()internal/process/stdio6abb5dc267919c6bcf37dff40680b858346661e2fc648b2833d56b14584803fb112051target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/stdio"), FIXED_ONE_BYTE_STRING(env->isolate(), "6abb5dc267919c6bcf37dff40680b858346661e2fc648b2833d56b14584803fb")).FromJust()internal/process/warning76762b8de716899d88bebb53dd2d93430e2e76dfc7766112afa39312657df5ff112054target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/warning"), FIXED_ONE_BYTE_STRING(env->isolate(), "76762b8de716899d88bebb53dd2d93430e2e76dfc7766112afa39312657df5ff")).FromJust()internal/process/worker_thread_only8b82bbe5dc8415b1283bac40b5249d7d7dee2dff5a2ffd244e07c22c481c9580112057target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/worker_thread_only"), FIXED_ONE_BYTE_STRING(env->isolate(), "8b82bbe5dc8415b1283bac40b5249d7d7dee2dff5a2ffd244e07c22c481c9580")).FromJust()internal/querystringb71a0ca429f76808c39989c5b6e41593df951d1bba7585ebf1d26b35bcea1458112060target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/querystring"), FIXED_ONE_BYTE_STRING(env->isolate(), "b71a0ca429f76808c39989c5b6e41593df951d1bba7585ebf1d26b35bcea1458")).FromJust()internal/process/write-coverage566a19ea0e4b998f01d4396e109057e95bb4621ed64ec5a74d01abbf5c324e33112063target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/write-coverage"), FIXED_ONE_BYTE_STRING(env->isolate(), "566a19ea0e4b998f01d4396e109057e95bb4621ed64ec5a74d01abbf5c324e33")).FromJust()internal/process/coveragecb81ed1ec3649713fd677d91166dc9e331a4a0b2579966b6685c13f719743c88112066target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/process/coverage"), FIXED_ONE_BYTE_STRING(env->isolate(), "cb81ed1ec3649713fd677d91166dc9e331a4a0b2579966b6685c13f719743c88")).FromJust()internal/readlinec3bb6589fde1debc6d23dd6f06fbca0b7e6fe78b20d3133f62d48e48779e6ea1112069target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/readline"), FIXED_ONE_BYTE_STRING(env->isolate(), "c3bb6589fde1debc6d23dd6f06fbca0b7e6fe78b20d3133f62d48e48779e6ea1")).FromJust()internal/replb7b9f8cde92c4d3d726bb143bf91586637a11364eacb9bc704439ed1cf552859112072target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/repl"), FIXED_ONE_BYTE_STRING(env->isolate(), "b7b9f8cde92c4d3d726bb143bf91586637a11364eacb9bc704439ed1cf552859")).FromJust()internal/repl/awaitefdb9ee2bd24b4e4aec330543bdbddfe7266ff3eab335dc4c0d119e14caed0d3112075target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/repl/await"), FIXED_ONE_BYTE_STRING(env->isolate(), "efdb9ee2bd24b4e4aec330543bdbddfe7266ff3eab335dc4c0d119e14caed0d3")).FromJust()internal/repl/recoverable72a7af803d255ef1373f90d61a0859d22ae39a51b312cb1c0d96aba364a5a3e6112078target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/repl/recoverable"), FIXED_ONE_BYTE_STRING(env->isolate(), "72a7af803d255ef1373f90d61a0859d22ae39a51b312cb1c0d96aba364a5a3e6")).FromJust()internal/socket_liste5355380a62c13733c1ab7de176979784c002201b29c54fca457dabdadd91197112081target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/socket_list"), FIXED_ONE_BYTE_STRING(env->isolate(), "e5355380a62c13733c1ab7de176979784c002201b29c54fca457dabdadd91197")).FromJust()internal/test/bindingec2edd5d2021072804d7a673c5c5c03b65d32e7a0178b9552596988cfd9d456c112084target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/test/binding"), FIXED_ONE_BYTE_STRING(env->isolate(), "ec2edd5d2021072804d7a673c5c5c03b65d32e7a0178b9552596988cfd9d456c")).FromJust()internal/test/heapc7130621c08a49f3c3f5d5dd0aa04474901765921610825e8db9a1ad75a396ae112087target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/test/heap"), FIXED_ONE_BYTE_STRING(env->isolate(), "c7130621c08a49f3c3f5d5dd0aa04474901765921610825e8db9a1ad75a396ae")).FromJust()internal/test/unicode551a307f7cb579ae55fecd1e06dd809c24855d3ba4aa2b9c1802191045fb45be112090target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/test/unicode"), FIXED_ONE_BYTE_STRING(env->isolate(), "551a307f7cb579ae55fecd1e06dd809c24855d3ba4aa2b9c1802191045fb45be")).FromJust()internal/timers93e9990d1faec988a23750fa7f2d68b4f3258416e4f8cb74c8cab4e12f7099c0112093target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/timers"), FIXED_ONE_BYTE_STRING(env->isolate(), "93e9990d1faec988a23750fa7f2d68b4f3258416e4f8cb74c8cab4e12f7099c0")).FromJust()internal/tls6287ce60754f68fa39199c2396b85862c5bc266687879ad15525840f8ab9ba7c112096target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/tls"), FIXED_ONE_BYTE_STRING(env->isolate(), "6287ce60754f68fa39199c2396b85862c5bc266687879ad15525840f8ab9ba7c")).FromJust()internal/trace_events_async_hooks84f900e5cd3137a807c51889f1e2cac6988883bc3e305acff760ab0128178ee5112099target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/trace_events_async_hooks"), FIXED_ONE_BYTE_STRING(env->isolate(), "84f900e5cd3137a807c51889f1e2cac6988883bc3e305acff760ab0128178ee5")).FromJust()internal/ttyefac6587ded6119b6220ec662a85dc1a7e0c97038db78854ca4885e57bdafcf8112102target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/tty"), FIXED_ONE_BYTE_STRING(env->isolate(), "efac6587ded6119b6220ec662a85dc1a7e0c97038db78854ca4885e57bdafcf8")).FromJust()internal/url95b26d405a0132d15e66f017232d440a68a894d68dd8a3fe2d00e43fa0451c17112105target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/url"), FIXED_ONE_BYTE_STRING(env->isolate(), "95b26d405a0132d15e66f017232d440a68a894d68dd8a3fe2d00e43fa0451c17")).FromJust()internal/util9806bb3b7f2f4d2768acb79deafd7c7cc12327423ed5c3eff3dedccf5b57f45c112108target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/util"), FIXED_ONE_BYTE_STRING(env->isolate(), "9806bb3b7f2f4d2768acb79deafd7c7cc12327423ed5c3eff3dedccf5b57f45c")).FromJust()internal/util/comparisonse9b66ebe2181b7d8ea6931b3300312b0f0b2aff4fad6d6be4db9b57a6d26d52f112111target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/util/comparisons"), FIXED_ONE_BYTE_STRING(env->isolate(), "e9b66ebe2181b7d8ea6931b3300312b0f0b2aff4fad6d6be4db9b57a6d26d52f")).FromJust()internal/util/inspect453adc251726bf1e0972ec567e1168e493106fded652f427c89bd6514b1d0762112114target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/util/inspect"), FIXED_ONE_BYTE_STRING(env->isolate(), "453adc251726bf1e0972ec567e1168e493106fded652f427c89bd6514b1d0762")).FromJust()internal/util/inspectorfb59814e491c8bf42683da0a876b300bc473125ded2d1ffd09c82d7f90f7ad9e112117target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/util/inspector"), FIXED_ONE_BYTE_STRING(env->isolate(), "fb59814e491c8bf42683da0a876b300bc473125ded2d1ffd09c82d7f90f7ad9e")).FromJust()internal/util/types538dfc628d313ff3376ba3d61724d013d330b064b1804f72e9a95dd89be9ab13112120target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/util/types"), FIXED_ONE_BYTE_STRING(env->isolate(), "538dfc628d313ff3376ba3d61724d013d330b064b1804f72e9a95dd89be9ab13")).FromJust()internal/http2/corecfedfb5aaecf9ec0377ca047456fc09961d56da587915ee20a8fa46cdc102e42112123target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/http2/core"), FIXED_ONE_BYTE_STRING(env->isolate(), "cfedfb5aaecf9ec0377ca047456fc09961d56da587915ee20a8fa46cdc102e42")).FromJust()internal/http2/compat2c8461b081541450fbcc56169fa6c0cb25bbcfbe874522a7408048c018afb4bd112126target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/http2/compat"), FIXED_ONE_BYTE_STRING(env->isolate(), "2c8461b081541450fbcc56169fa6c0cb25bbcfbe874522a7408048c018afb4bd")).FromJust()internal/http2/util9ed41a09ebc90b7923dab55faddd741978115ab37cd66bb45b217c315d6ecdea112129target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/http2/util"), FIXED_ONE_BYTE_STRING(env->isolate(), "9ed41a09ebc90b7923dab55faddd741978115ab37cd66bb45b217c315d6ecdea")).FromJust()internal/v8_prof_polyfill848e591740e29c816355dc7cd26a42f92005ec00cdaed4a3ce69738399c1651d112132target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/v8_prof_polyfill"), FIXED_ONE_BYTE_STRING(env->isolate(), "848e591740e29c816355dc7cd26a42f92005ec00cdaed4a3ce69738399c1651d")).FromJust()internal/v8_prof_processorb24a03579b5e2c284ccaf5d4b7050ceaba2dbae8baa44e5d8234171fb6147e22112135target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/v8_prof_processor"), FIXED_ONE_BYTE_STRING(env->isolate(), "b24a03579b5e2c284ccaf5d4b7050ceaba2dbae8baa44e5d8234171fb6147e22")).FromJust()internal/validators29851d565875041b34da02201308b9e0a8905c121d358cfc7718c77242aab984112138target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/validators"), FIXED_ONE_BYTE_STRING(env->isolate(), "29851d565875041b34da02201308b9e0a8905c121d358cfc7718c77242aab984")).FromJust()internal/stream_base_commons9e2686de7ecaf9ec8adaa3c9e82423d20f74dfcbee7a08eae67b42dfbc933302112141target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/stream_base_commons"), FIXED_ONE_BYTE_STRING(env->isolate(), "9e2686de7ecaf9ec8adaa3c9e82423d20f74dfcbee7a08eae67b42dfbc933302")).FromJust()internal/vm/source_text_module39c4ff061d279b140e9c3589231290ccf4859c1a5254bf837ea00ac288e6efa4112144target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/vm/source_text_module"), FIXED_ONE_BYTE_STRING(env->isolate(), "39c4ff061d279b140e9c3589231290ccf4859c1a5254bf837ea00ac288e6efa4")).FromJust()internal/worker957080c2392f08267c70280ffb9ede04a01b8b424a1dd8fd88f0c33ee8a99e3f112147target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/worker"), FIXED_ONE_BYTE_STRING(env->isolate(), "957080c2392f08267c70280ffb9ede04a01b8b424a1dd8fd88f0c33ee8a99e3f")).FromJust()internal/streams/lazy_transform080ad2bfcb7de80843127d522e1a55548326645d0aea4754c22e9657a223916c112150target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/lazy_transform"), FIXED_ONE_BYTE_STRING(env->isolate(), "080ad2bfcb7de80843127d522e1a55548326645d0aea4754c22e9657a223916c")).FromJust()internal/streams/async_iterator341936445c00d30f75d2148678c51fb243ab2dbf148b2880433f0f941982a26e112153target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/async_iterator"), FIXED_ONE_BYTE_STRING(env->isolate(), "341936445c00d30f75d2148678c51fb243ab2dbf148b2880433f0f941982a26e")).FromJust()internal/streams/buffer_lista8f46896b29e285f22937f1bb4bc16ab26144a2b8939543a67cecb66c51debab112156target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/buffer_list"), FIXED_ONE_BYTE_STRING(env->isolate(), "a8f46896b29e285f22937f1bb4bc16ab26144a2b8939543a67cecb66c51debab")).FromJust()internal/streams/duplexpair3804a4dfabe4981615c2954bdf3b4b889453ee08d202d4d02fcc1b5c691df761112159target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/duplexpair"), FIXED_ONE_BYTE_STRING(env->isolate(), "3804a4dfabe4981615c2954bdf3b4b889453ee08d202d4d02fcc1b5c691df761")).FromJust()internal/streams/legacy93a66365869e09f2af8f4e12e7f4c0d5cbfd770a5b77c96984a5ace3841b640b112162target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/legacy"), FIXED_ONE_BYTE_STRING(env->isolate(), "93a66365869e09f2af8f4e12e7f4c0d5cbfd770a5b77c96984a5ace3841b640b")).FromJust()internal/streams/destroyd2f739394a322ce54b13a5bd6105fadec2b367a68c21b787c36eb75b256a8600112165target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/destroy"), FIXED_ONE_BYTE_STRING(env->isolate(), "d2f739394a322ce54b13a5bd6105fadec2b367a68c21b787c36eb75b256a8600")).FromJust()internal/streams/statec00d3ff4889b9e30c7fcaecf64ec0f13ba889b08caf1198c53e9cf552a77cdc6112168target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/state"), FIXED_ONE_BYTE_STRING(env->isolate(), "c00d3ff4889b9e30c7fcaecf64ec0f13ba889b08caf1198c53e9cf552a77cdc6")).FromJust()internal/streams/pipelinebb0e8a4fde498b56a1b2f8827545e2be188d5f337d69ce63e3d7b65095fd9885112171target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/pipeline"), FIXED_ONE_BYTE_STRING(env->isolate(), "bb0e8a4fde498b56a1b2f8827545e2be188d5f337d69ce63e3d7b65095fd9885")).FromJust()internal/streams/end-of-streama317e09add100e101c9b7284be20ebe0fa5e0863f948e6093b82509dab82625f112174target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/streams/end-of-stream"), FIXED_ONE_BYTE_STRING(env->isolate(), "a317e09add100e101c9b7284be20ebe0fa5e0863f948e6093b82509dab82625f")).FromJust()internal/wrap_js_stream94b91ba3c201715009f49f06444840af0bb187104ca9d779a9d78edbe0d2981d112177target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/wrap_js_stream"), FIXED_ONE_BYTE_STRING(env->isolate(), "94b91ba3c201715009f49f06444840af0bb187104ca9d779a9d78edbe0d2981d")).FromJust()internal/deps/v8/tools/splaytreed5f8a71d6deb0d45a940bc7f26d232e94ac3a32def3de65bedacc4740394d499112180target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/splaytree"), FIXED_ONE_BYTE_STRING(env->isolate(), "d5f8a71d6deb0d45a940bc7f26d232e94ac3a32def3de65bedacc4740394d499")).FromJust()v8/tools/splaytree112183target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/splaytree"), FIXED_ONE_BYTE_STRING(env->isolate(), "d5f8a71d6deb0d45a940bc7f26d232e94ac3a32def3de65bedacc4740394d499")).FromJust()internal/deps/v8/tools/codemapb6e2b0f865da537502da4774a227d666e9c54f2accb157af6e91e1cf6ededf5d112186target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/codemap"), FIXED_ONE_BYTE_STRING(env->isolate(), "b6e2b0f865da537502da4774a227d666e9c54f2accb157af6e91e1cf6ededf5d")).FromJust()v8/tools/codemap112189target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/codemap"), FIXED_ONE_BYTE_STRING(env->isolate(), "b6e2b0f865da537502da4774a227d666e9c54f2accb157af6e91e1cf6ededf5d")).FromJust()internal/deps/v8/tools/consarray36835f37a8c6c20ee89c3c36d94f33043e8189b748c784aaf5d0166b767d88fd112192target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/consarray"), FIXED_ONE_BYTE_STRING(env->isolate(), "36835f37a8c6c20ee89c3c36d94f33043e8189b748c784aaf5d0166b767d88fd")).FromJust()v8/tools/consarray112195target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/consarray"), FIXED_ONE_BYTE_STRING(env->isolate(), "36835f37a8c6c20ee89c3c36d94f33043e8189b748c784aaf5d0166b767d88fd")).FromJust()internal/deps/v8/tools/csvparser6d4b75ff2de85a724cd33a6006e5fc033c164179cb5930620eee3dc1fb75912e112198target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/csvparser"), FIXED_ONE_BYTE_STRING(env->isolate(), "6d4b75ff2de85a724cd33a6006e5fc033c164179cb5930620eee3dc1fb75912e")).FromJust()v8/tools/csvparser112201target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/csvparser"), FIXED_ONE_BYTE_STRING(env->isolate(), "6d4b75ff2de85a724cd33a6006e5fc033c164179cb5930620eee3dc1fb75912e")).FromJust()internal/deps/v8/tools/profile9d201b5f7468080c3f813c710568f5d89df4fb6ec408e010067d125906e60dbd112204target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/profile"), FIXED_ONE_BYTE_STRING(env->isolate(), "9d201b5f7468080c3f813c710568f5d89df4fb6ec408e010067d125906e60dbd")).FromJust()v8/tools/profile112207target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/profile"), FIXED_ONE_BYTE_STRING(env->isolate(), "9d201b5f7468080c3f813c710568f5d89df4fb6ec408e010067d125906e60dbd")).FromJust()internal/deps/v8/tools/profile_view5b324f314ac0c9ab09c2df07f25b4bf078ff85a995edb1dfbaa0859c21c9c778112210target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/profile_view"), FIXED_ONE_BYTE_STRING(env->isolate(), "5b324f314ac0c9ab09c2df07f25b4bf078ff85a995edb1dfbaa0859c21c9c778")).FromJust()v8/tools/profile_view112213target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/profile_view"), FIXED_ONE_BYTE_STRING(env->isolate(), "5b324f314ac0c9ab09c2df07f25b4bf078ff85a995edb1dfbaa0859c21c9c778")).FromJust()internal/deps/v8/tools/logreader1973064df2dad5652a1aff539b14d5b443d9a64f775874fcf300ff54c998d497112216target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/logreader"), FIXED_ONE_BYTE_STRING(env->isolate(), "1973064df2dad5652a1aff539b14d5b443d9a64f775874fcf300ff54c998d497")).FromJust()v8/tools/logreader112219target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/logreader"), FIXED_ONE_BYTE_STRING(env->isolate(), "1973064df2dad5652a1aff539b14d5b443d9a64f775874fcf300ff54c998d497")).FromJust()internal/deps/v8/tools/argumentscb4b44a77f41b0407f07ca2979e20e0b61419f6c13bcdf5deeec072251edc287112222target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/arguments"), FIXED_ONE_BYTE_STRING(env->isolate(), "cb4b44a77f41b0407f07ca2979e20e0b61419f6c13bcdf5deeec072251edc287")).FromJust()v8/tools/arguments112225target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/arguments"), FIXED_ONE_BYTE_STRING(env->isolate(), "cb4b44a77f41b0407f07ca2979e20e0b61419f6c13bcdf5deeec072251edc287")).FromJust()internal/deps/v8/tools/tickprocessor28a947521501397c61df407eb4274ea00b685013be466d79bec4ee16f1b0b64b112228target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/tickprocessor"), FIXED_ONE_BYTE_STRING(env->isolate(), "28a947521501397c61df407eb4274ea00b685013be466d79bec4ee16f1b0b64b")).FromJust()v8/tools/tickprocessor112231target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/tickprocessor"), FIXED_ONE_BYTE_STRING(env->isolate(), "28a947521501397c61df407eb4274ea00b685013be466d79bec4ee16f1b0b64b")).FromJust()internal/deps/v8/tools/SourceMap600c0deb9138af220f2a0cd8110517a2243409018eeb2d495fb1a59c572ae4f4112234target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/SourceMap"), FIXED_ONE_BYTE_STRING(env->isolate(), "600c0deb9138af220f2a0cd8110517a2243409018eeb2d495fb1a59c572ae4f4")).FromJust()v8/tools/SourceMap112237target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/SourceMap"), FIXED_ONE_BYTE_STRING(env->isolate(), "600c0deb9138af220f2a0cd8110517a2243409018eeb2d495fb1a59c572ae4f4")).FromJust()internal/deps/v8/tools/tickprocessor-driver4942d8d51c13abf49ed191892cd889eb2ed7ce626b9e5cf5e416bf7c760ee543112240target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/v8/tools/tickprocessor-driver"), FIXED_ONE_BYTE_STRING(env->isolate(), "4942d8d51c13abf49ed191892cd889eb2ed7ce626b9e5cf5e416bf7c760ee543")).FromJust()v8/tools/tickprocessor-driver112243target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "v8/tools/tickprocessor-driver"), FIXED_ONE_BYTE_STRING(env->isolate(), "4942d8d51c13abf49ed191892cd889eb2ed7ce626b9e5cf5e416bf7c760ee543")).FromJust()internal/deps/node-inspect/lib/_inspect0cbddd51ba7d2898c81212720e31d7ee2c361648239e23e00151caca1358d029112246target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/node-inspect/lib/_inspect"), FIXED_ONE_BYTE_STRING(env->isolate(), "0cbddd51ba7d2898c81212720e31d7ee2c361648239e23e00151caca1358d029")).FromJust()node-inspect/lib/_inspect112249target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "node-inspect/lib/_inspect"), FIXED_ONE_BYTE_STRING(env->isolate(), "0cbddd51ba7d2898c81212720e31d7ee2c361648239e23e00151caca1358d029")).FromJust()internal/deps/node-inspect/lib/internal/inspect_clienta4c1772d2ed87c4c41f5616ef4cd24b5c4869d0bb8584d6dd273cf270df4f0ab112252target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/node-inspect/lib/internal/inspect_client"), FIXED_ONE_BYTE_STRING(env->isolate(), "a4c1772d2ed87c4c41f5616ef4cd24b5c4869d0bb8584d6dd273cf270df4f0ab")).FromJust()node-inspect/lib/internal/inspect_client112255target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "node-inspect/lib/internal/inspect_client"), FIXED_ONE_BYTE_STRING(env->isolate(), "a4c1772d2ed87c4c41f5616ef4cd24b5c4869d0bb8584d6dd273cf270df4f0ab")).FromJust()internal/deps/node-inspect/lib/internal/inspect_replb3afe43a83e887d3e9d345ce6f9d5c9c9d21cdd0640e0476127fcd6dfd528de1112258target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/node-inspect/lib/internal/inspect_repl"), FIXED_ONE_BYTE_STRING(env->isolate(), "b3afe43a83e887d3e9d345ce6f9d5c9c9d21cdd0640e0476127fcd6dfd528de1")).FromJust()node-inspect/lib/internal/inspect_repl112261target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "node-inspect/lib/internal/inspect_repl"), FIXED_ONE_BYTE_STRING(env->isolate(), "b3afe43a83e887d3e9d345ce6f9d5c9c9d21cdd0640e0476127fcd6dfd528de1")).FromJust()internal/deps/acorn/dist/acornc2d34aa399981c68cf83ae5d50f41a9a0040fbbbe1d94b38653a569e48f9a7d5112264target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/acorn/dist/acorn"), FIXED_ONE_BYTE_STRING(env->isolate(), "c2d34aa399981c68cf83ae5d50f41a9a0040fbbbe1d94b38653a569e48f9a7d5")).FromJust()internal/deps/acorn/dist/walkb93049b6374665f57d5851c54bc31e3effce1a1fb9f16242048928b2e80cadf2112267target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "internal/deps/acorn/dist/walk"), FIXED_ONE_BYTE_STRING(env->isolate(), "b93049b6374665f57d5851c54bc31e3effce1a1fb9f16242048928b2e80cadf2")).FromJust()f995683df278dc8b83a2c4428a385a0689c5a6bb7b8ee2359d62a8e2d7ad7436112270target->Set(env->context(), FIXED_ONE_BYTE_STRING(env->isolate(), "config"), FIXED_ONE_BYTE_STRING(env->isolate(), "f995683df278dc8b83a2c4428a385a0689c5a6bb7b8ee2359d62a8e2d7ad7436")).FromJust()%s%s%s%srequest does not fit in an intrequest does not fit in a size_tout of room to push charactersinternal error: inflate stream corruptcompressed data errorrequested length does not fit in intinternal error: deflate stream corruptinvalid block typeinvalid stored block lengthstoo many length or distance symbolsinvalid code lengths setinvalid bit length repeatinvalid code -- missing end-of-blockinvalid literal/lengths setinvalid distances setinvalid literal/length codeinvalid distance codeinvalid distance too far backincorrect header checkunknown compression methodinvalid window sizeunknown header flags setheader crc mismatchincorrect data checkincorrect length checkneed dictionarystream endfile errorstream errordata errorinsufficient memorybuffer errorincompatible version../deps/uv/src/fs-poll.cctx != NULLctx->parent_handle != NULLctx->parent_handle->poll_ctx == ctxUV_THREADPOOL_SIZE../deps/uv/src/threadpool.cuv__has_active_reqs(req->loop)checkfs_eventfs_pollidlepollpreparetcptimerudprequdp_sendworkUnknown system error %d../deps/uv/src/uv-common.cerr == 0Unknown system error[%c%c%c] %-8s %p R-A-I-1.23.2/proc/self/fd/%d../deps/uv/src/unix/async.cw == &loop->async_io_watcher../deps/uv/src/unix/core.c!uv__is_closing(handle)0handle->flags & UV_HANDLE_CLOSING!(handle->flags & UV_HANDLE_CLOSED)sockfd >= 0fd > -1fd > STDERR_FILENOcb != NULLfd >= -10 == (events & ~(POLLIN | POLLOUT | UV__POLLRDHUP | UV__POLLPRI))0 != eventsw->fd >= 0w->fd < INT_MAXloop->watchers[w->fd] == wloop->nfds > 0HOMETMPDIRTMPTEMPTEMPDIR/data/local/tmpno error../deps/uv/src/unix/fs.cpath != NULL.req->result == 0../deps/uv/src/unix/getaddrinfo.c!"unknown EAI_* error code"req->retcode == 0../deps/uv/src/unix/getnameinfo.c../deps/uv/src/unix/loop.cQUEUE_EMPTY(&loop->wq) && "thread pool work queue not empty!"!uv__has_active_reqs(loop)../deps/uv/src/unix/poll.c(pevents & ~(UV_READABLE | UV_WRITABLE | UV_DISCONNECT | UV_PRIORITIZED)) == 0../deps/uv/src/unix/process.coptions->file != NULL!(options->flags & ~(UV_PROCESS_DETACHED | UV_PROCESS_SETGID | UV_PROCESS_SETUID | UV_PROCESS_WINDOWS_HIDE | UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS))err == pidcontainer->data.stream != NULL0 && "Unexpected flags"signum == SIGCHLDQUEUE_EMPTY(&pending)n == sizeof(val)../deps/uv/src/unix/signal.c!(handle->flags & UV_HANDLE_CLOSING)r == sizeof msg || (r == -1 && (errno == EAGAIN || errno == EWOULDBLOCK))ret == 0../deps/uv/src/unix/stream.cfd >= 0!uv__io_active(&stream->io_watcher, POLLIN | POLLOUT)stream->flags & UV_HANDLE_CLOSEDuv__has_active_reqs(stream->loop)stream->write_queue_size == 0events & POLLINstream->accepted_fd == -1!(stream->flags & UV_HANDLE_CLOSING)server->loop == client->loopqueued_fds->offset > 0stream->type == UV_TCP || stream->type == UV_TTY || stream->type == UV_NAMED_PIPEuv__stream_fd(stream) >= 0nbufs > 0(stream->type == UV_TCP || stream->type == UV_NAMED_PIPE || stream->type == UV_TTY) && "uv_write (unix) does not yet support other types of streams"!(stream->flags & UV_HANDLE_BLOCKING_WRITES)stream->type == UV_TCP || stream->type == UV_NAMED_PIPE || stream->type == UV_TTYalloc_cb!uv__io_active(&handle->io_watcher, POLLIN | POLLOUT)stream->type == UV_TCP || stream->type == UV_NAMED_PIPEstream->alloc_cb != NULLignoring non-SCM_RIGHTS ancillary data: %d start + CMSG_LEN(count * sizeof(*pi)) == endstream->shutdown_reqreq->handle == streamfd_to_send >= 0req->write_index < req->nbufsstream->write_queue_size >= lenn == 0n == 0 || n == -1req->handle->write_queue_size >= size../deps/uv/src/unix/tcp.chandle->type == UV_TCPUV_TCP_SINGLE_ACCEPT../deps/uv/src/unix/thread.cb->in == 0b->out == 0../deps/uv/src/unix/udp.chandle->io_watcher.fd == -1handle->send_queue_size == 0handle->send_queue_count == 0addrlen <= sizeof(req->addr)uv__has_active_reqs(handle->loop)!(handle->flags & UV_HANDLE_UDP_PROCESSING)0 && "unsupported address family"q != NULLhandle->type == UV_UDPhandle->recv_cb != NULLhandle->alloc_cb != NULL../deps/uv/src/unix/proctitle.cprocess_title.len + 1 == size../deps/uv/src/unix/linux-core.cloop->watchers != NULLQUEUE_EMPTY(&loop->watcher_queue)w->pevents != 0w->fd < (int) loop->nwatchersop == EPOLL_CTL_ADDtimeout >= -1timeout != -1(unsigned) fd < loop->nwatcherstimeout > 0/proc/self/stat/proc/statcpu/sys/devices/system/cpu/cpu%u/cpufreq/scaling_cur_freq%lu/proc/cpuinfounknownclock_ticks != (unsigned long) -1clock_ticks != 0cpu%u r == 1%lu %lu %lu %lu %lu %lunum == numcpus../deps/uv/src/unix/linux-inotify.ctmp_path != NULLw != NULLerrno == EAGAIN || errno == EWOULDBLOCKsize > 0/proc/self/exe.0""nullptr"unreachable code{"":[]},{"pid":,"tid":,"ts":,"tts":,"ph":"","cat":"","name":"","dur":,"tdur":,"scope":","id":"0x,"args":{}}topleveltracing categories exhausted; must increase MAX_CATEGORY_GROUPSchunkedHPE_OKsuccessHPE_CB_message_beginthe on_message_begin callback failedHPE_CB_urlthe on_url callback failedHPE_CB_header_fieldthe on_header_field callback failedHPE_CB_header_valuethe on_header_value callback failedHPE_CB_headers_completethe on_headers_complete callback failedHPE_CB_bodythe on_body callback failedHPE_CB_message_completethe on_message_complete callback failedHPE_CB_statusthe on_status callback failedHPE_CB_chunk_headerthe on_chunk_header callback failedHPE_CB_chunk_completethe on_chunk_complete callback failedHPE_INVALID_EOF_STATEstream ended at an unexpected timeHPE_HEADER_OVERFLOWtoo many header bytes seen; overflow detectedHPE_CLOSED_CONNECTIONdata received after completed connection: close messageHPE_INVALID_VERSIONinvalid HTTP versionHPE_INVALID_STATUSinvalid HTTP status codeHPE_INVALID_METHODinvalid HTTP methodHPE_INVALID_URLinvalid URLHPE_INVALID_HOSTinvalid hostHPE_INVALID_PORTinvalid portHPE_INVALID_PATHinvalid pathHPE_INVALID_QUERY_STRINGinvalid query stringHPE_INVALID_FRAGMENTinvalid fragmentHPE_LF_EXPECTEDLF character expectedHPE_INVALID_HEADER_TOKENinvalid character in headerHPE_INVALID_CONTENT_LENGTHinvalid character in content-length headerHPE_UNEXPECTED_CONTENT_LENGTHunexpected content-length headerHPE_INVALID_CHUNK_SIZEinvalid character in chunk size headerHPE_INVALID_CONSTANTinvalid constant stringHPE_INVALID_INTERNAL_STATEencountered unexpected internal stateHPE_STRICTstrict mode assertion failedHPE_PAUSEDparser is pausedHPE_UNKNOWNan unknown error occurred../deps/cares/src/ares_destroy.cvoid ares_destroy(ares_channel)ares__is_list_empty(&(channel->all_queries))ares__is_list_empty(&(channel->queries_by_qid[i]))ares__is_list_empty(&(channel->queries_by_timeout[i]))void ares__destroy_servers_state(ares_channel)ares__is_list_empty(&server->queries_to_server)%lu.%lu.%lu.%lu.in-addr.arpa%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa/etc/hostsLOCALDOMAINRES_OPTIONSndots:retrans:retry:rotatefb/dev/urandomrb255.255.255.255../deps/cares/src/ares_process.cvoid handle_error(ares_channel, int, struct timeval *)query->server == whichserverares__is_list_empty(&list_head)void end_query(ares_channel, struct query *, int, unsigned char *, int)sendreq->data_storage == NULLSuccessful completionDNS server returned answer with no dataDNS server claims query was misformattedDNS server returned general failureDomain name not foundDNS server does not implement requested operationDNS server refused queryMisformatted DNS queryMisformatted domain nameUnsupported address familyMisformatted DNS replyCould not contact DNS serversTimeout while contacting DNS serversEnd of fileError reading fileOut of memoryChannel is being destroyedMisformatted stringIllegal flags specifiedGiven hostname is not numericIllegal hints flags specifiedc-ares library initialization not yet performedError loading iphlpapi.dllCould not find GetNetworkParams functionDNS query cancelledandroid/net/ConnectivityManagergetActiveNetwork()Landroid/net/Network;getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;android/net/LinkPropertiesgetDnsServers()Ljava/util/List;getDomains()Ljava/lang/String;java/util/List()Iget(I)Ljava/lang/Object;java/net/InetAddressgetHostAddress.onion.onion.sctpdccp%u../deps/nghttp2/lib/nghttp2_helper.cint nghttp2_increase_local_window_size(int32_t *, int32_t *, int32_t *, int32_t *)delta >= 0SuccessOut of buffer spaceUnsupported SPDY versionOperation would blockProtocol errorInvalid frame octetsData transfer deferredNo more Stream ID availableStream was already closed or invalidStream is closingThe transmission is not allowed for this streamStream ID is invalidInvalid stream stateAnother DATA frame has already been deferredrequest HEADERS is not allowedGOAWAY has already been sentInvalid header blockInvalid stateThe user callback function failed due to the temporal errorThe length of the frame is invalidHeader compression/decompression errorFlow control errorInsufficient buffer size given to functionCallback was paused by the applicationToo many inflight SETTINGSServer push is disabled by peerDATA or HEADERS frame has already been submitted for the streamThe current session is closingInvalid HTTP header field was receivedViolation in HTTP messaging ruleStream was refusedInternal errorCancelWhen a local endpoint expects to receive SETTINGS frame, it receives an other type of frameThe user callback function failedReceived bad client magic byte stringFlooding was detected in this HTTP/2 session, and it must be closedUnknown error codeNO_ERRORPROTOCOL_ERRORINTERNAL_ERRORFLOW_CONTROL_ERRORSETTINGS_TIMEOUTSTREAM_CLOSEDFRAME_SIZE_ERRORREFUSED_STREAMCANCELCOMPRESSION_ERRORCONNECT_ERRORENHANCE_YOUR_CALMINADEQUATE_SECURITYHTTP_1_1_REQUIRED../deps/nghttp2/lib/nghttp2_rcbuf.cvoid nghttp2_rcbuf_decref(nghttp2_rcbuf *)rcbuf->ref > 0../deps/nghttp2/lib/nghttp2_session.cint nghttp2_session_reprioritize_stream(nghttp2_session *, nghttp2_stream *, const nghttp2_priority_spec *)pri_spec->stream_id != stream->stream_iddep_streamint nghttp2_session_add_rst_stream(nghttp2_session *, int32_t, uint32_t)headers_frame->hd.type == NGHTTP2_HEADERSnghttp2_stream *nghttp2_session_open_stream(nghttp2_session *, int32_t, uint8_t, nghttp2_priority_spec *, nghttp2_stream_state, void *)stream->state == NGHTTP2_STREAM_IDLEnghttp2_stream_in_dep_tree(stream)int nghttp2_session_adjust_closed_stream(nghttp2_session *)head_streamint nghttp2_session_adjust_idle_stream(nghttp2_session *)headssize_t nghttp2_session_mem_send(nghttp2_session *, const uint8_t **)nghttp2_is_fatal(rv)request HEADERS: stream_id == 0request HEADERS: client received requestrequest HEADERS: invalid stream_idHEADERS: stream closedrequest HEADERS: max concurrent streams exceededrequest HEADERS: depend on itselfint nghttp2_session_on_response_headers_received(nghttp2_session *, nghttp2_frame *, nghttp2_stream *)stream->state == NGHTTP2_STREAM_OPENING && nghttp2_session_is_my_stream_id(session, frame->hd.stream_id)int nghttp2_session_on_push_response_headers_received(nghttp2_session *, nghttp2_frame *, nghttp2_stream *)stream->state == NGHTTP2_STREAM_RESERVEDpush response HEADERS: stream_id == 0HEADERS: no HEADERS allowed from client in reserved statepush response HEADERS: max concurrent streams exceededHEADERS: stream_id == 0PRIORITY: stream_id == 0depend on itselfRST_STREAM: stream_id == 0RST_STREAM: stream in idleSETTINGS: stream_id != 0SETTINGS: ACK and payload != 0SETTINGS: unexpected ACKSETTINGS: invalid SETTINGS_ENBLE_PUSHSETTINGS: server attempted to enable pushSETTINGS: too large SETTINGS_INITIAL_WINDOW_SIZESETTINGS: invalid SETTINGS_MAX_FRAME_SIZESETTINGS: invalid SETTINGS_ENABLE_CONNECT_PROTOCOLSETTINGS: server attempted to disable SETTINGS_ENABLE_CONNECT_PROTOCOLPUSH_PROMISE: stream_id == 0PUSH_PROMISE: push disabledPUSH_PROMISE: invalid stream_idPUSH_PROMISE: invalid promised_stream_idPUSH_PROMISE: stream in idlePUSH_PROMISE: stream closedPING: stream_id != 0GOAWAY: stream_id != 0GOAWAY: invalid last_stream_idPRI * HTTP/2.0 SM SETTINGS expectedtoo large frame sizeDATA: insufficient padding spaceHEADERS: insufficient padding spacePUSH_PROMISE: insufficient padding spaceCONTINUATION: unexpectedHEADERS: invalid paddingPUSH_PROMISE: invalid paddingssize_t nghttp2_session_mem_recv(nghttp2_session *, const uint8_t *, size_t)iframe->state == NGHTTP2_IB_IGN_ALLnghttp2_buf_avail(&iframe->lbuf) > 0unexpected non-CONTINUATION frame or stream_id is invalidDATA: invalid paddingint nghttp2_session_recv(nghttp2_session *)proclen == readlenint nghttp2_session_add_settings(nghttp2_session *, uint8_t, const nghttp2_settings_entry *, size_t)int nghttp2_session_pack_data(nghttp2_session *, nghttp2_bufs *, size_t, nghttp2_frame *, nghttp2_data_aux_data *, nghttp2_stream *)bufs->head == bufs->cur&session->aob.framebufs == bufsnghttp2_buf_avail(buf) >= datamaxint nghttp2_session_set_stream_user_data(nghttp2_session *, int32_t, void *)frame->hd.type == NGHTTP2_HEADERSuint32_t nghttp2_session_get_remote_settings(nghttp2_session *, nghttp2_settings_id)uint32_t nghttp2_session_get_local_settings(nghttp2_session *, nghttp2_settings_id)int nghttp2_session_upgrade(nghttp2_session *, const uint8_t *, size_t, void *)int nghttp2_session_upgrade2(nghttp2_session *, const uint8_t *, size_t, int, void *)ssize_t nghttp2_session_mem_send_internal(nghttp2_session *, const uint8_t **, int)int session_prep_frame(nghttp2_session *, nghttp2_outbound_item *)stream->item == itemsession->remote_window_size > 0session->last_sent_stream_id < frame->hd.stream_idsession->obq_flood_counter_ > 0session->last_sent_stream_id + 2 <= frame->push_promise.promised_stream_idint session_pack_extension(nghttp2_session *, nghttp2_bufs *, nghttp2_frame *)session->callbacks.pack_extension_callbackbuf->pos == buf->lastint session_after_frame_sent1(nghttp2_session *)int session_close_stream_on_goaway(nghttp2_session *, int32_t, int)rv == 0int find_stream_on_goaway_func(nghttp2_map_entry *, void *)stream->closed_next == NULLstream->closed_prev == NULLWINDOW_UPDATE: window_size_increment == 0WINDOW_UPDATE to idle streamWINDOW_UPADATE to reserved streamDATA: stream_id == 0DATA: stream in idleDATA: stream closedDATA: stream in half-closed(remote)DATA: stream not openedDATA: stream in reservedHEADERS: could not unpackPUSH_PROMISE: could not unpackIgnoring received invalid HTTP header field: frame type: %u, stream: %d, name: [%.*s], value: [%.*s]Invalid HTTP header field was received: frame type: %u, stream: %d, name: [%.*s], value: [%.*s]int session_after_header_block_received(nghttp2_session *)!session->serverint session_process_settings_frame(nghttp2_session *)i < iframe->niv../deps/nghttp2/lib/nghttp2_stream.cvoid nghttp2_stream_reschedule(nghttp2_stream *)stream->queuedint nghttp2_stream_attach_item(nghttp2_stream *, nghttp2_outbound_item *)(stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) == 0stream->item == NULLint nghttp2_stream_defer_item(nghttp2_stream *, uint8_t)stream->itemint nghttp2_stream_resume_deferred_item(nghttp2_stream *, uint8_t)int nghttp2_stream_dep_remove(nghttp2_stream *)stream->dep_prevvoid nghttp2_stream_dep_remove_subtree(nghttp2_stream *)void insert_link_dep(nghttp2_stream *, nghttp2_stream *)stream->sib_prev == NULLvoid stream_obq_remove(nghttp2_stream *)prevvoid unlink_dep(nghttp2_stream *)../deps/nghttp2/lib/nghttp2_submit.cint nghttp2_submit_origin(nghttp2_session *, uint8_t, const nghttp2_origin_entry *, size_t)(size_t)(p - (uint8_t *)ov_copy) == nov * sizeof(nghttp2_origin_entry) + len + nov../deps/nghttp2/lib/nghttp2_frame.cint nghttp2_frame_pack_headers(nghttp2_bufs *, nghttp2_headers *, nghttp2_hd_deflater *)int nghttp2_frame_pack_priority(nghttp2_bufs *, nghttp2_priority *)nghttp2_buf_avail(buf) >= NGHTTP2_PRIORITY_SPECLENint nghttp2_frame_pack_rst_stream(nghttp2_bufs *, nghttp2_rst_stream *)nghttp2_buf_avail(buf) >= 4int nghttp2_frame_pack_settings(nghttp2_bufs *, nghttp2_settings *)int nghttp2_frame_pack_push_promise(nghttp2_bufs *, nghttp2_push_promise *, nghttp2_hd_deflater *)int nghttp2_frame_pack_ping(nghttp2_bufs *, nghttp2_ping *)nghttp2_buf_avail(buf) >= 8int nghttp2_frame_pack_goaway(nghttp2_bufs *, nghttp2_goaway *)int nghttp2_frame_pack_window_update(nghttp2_bufs *, nghttp2_window_update *)int nghttp2_frame_pack_altsvc(nghttp2_bufs *, nghttp2_extension *)nghttp2_buf_avail(buf) >= 2 + altsvc->origin_len + altsvc->field_value_lenint nghttp2_frame_pack_origin(nghttp2_bufs *, nghttp2_extension *)nghttp2_buf_len(buf) == NGHTTP2_FRAME_HDLEN + frame->hd.lengthint nghttp2_frame_add_pad(nghttp2_bufs *, nghttp2_frame_hd *, size_t, int)nghttp2_buf_avail(buf) >= padlen - 1../deps/nghttp2/lib/nghttp2_hd.cnghttp2_hd_nv nghttp2_hd_table_get(nghttp2_hd_context *, size_t)INDEX_RANGE_VALID(context, idx)nghttp2_hd_entry *hd_ringbuf_get(nghttp2_hd_ringbuf *, size_t)idx < ringbuf->len/index.html400404500gzip, deflateviagdatetalinfrohosvarrang:patallocookiserveaccepexpec:metho:schemupgradrefresrefere:statuif-rangif-matclocatio:protocokeep-alivset-cookiconnectiouser-agen:authoritretry-aftecontent-typmax-forwardlast-modifiecontent-rangif-none-matccache-controauthorizatioaccept-rangecontent-lengtaccept-charseaccept-languagaccept-encodincontent-languagwww-authenticatcontent-encodincontent-locatioproxy-connectioif-modified-sinctransfer-encodinproxy-authenticatif-unmodified-sinccontent-dispositioproxy-authorizatiostrict-transport-securitaccess-control-allow-origiuint8_t pack_first_byte(int)../deps/nghttp2/lib/nghttp2_hd_huffman.cint nghttp2_hd_huff_encode(nghttp2_bufs *, const uint8_t *, size_t)avail../deps/nghttp2/lib/nghttp2_http.cint nghttp2_http_on_header(nghttp2_session *, nghttp2_stream *, nghttp2_frame *, nghttp2_hd_nv *, int)nv->name->len > 0../deps/nghttp2/lib/nghttp2_outbound_item.cvoid nghttp2_outbound_item_free(nghttp2_outbound_item *, nghttp2_mem *)../deps/nghttp2/lib/nghttp2_pq.cvoid nghttp2_pq_remove(nghttp2_pq *, nghttp2_pq_entry *)pq->q[item->index] == item../deps/openssl/openssl/ssl/record/rec_layer_d1.cSSL alert number assertion failed: len <= SSL3_RT_MAX_PLAIN_LENGTHassertion failed: 0read headerread bodyread doneRHRBRD../deps/openssl/openssl/ssl/record/rec_layer_s3.c../deps/openssl/openssl/ssl/record/ssl3_buffer.c../deps/openssl/openssl/ssl/record/ssl3_record.cGET POST HEAD PUT CONNEassertion failed: mac_size <= EVP_MAX_MD_SIZEassertion failed: n >= 0assertion failed: t >= 0assertion failed: rec->orig_len >= md_sizeassertion failed: md_size <= EVP_MAX_MD_SIZEassertion failed: data_plus_mac_plus_padding_size < 1024 * 1024../deps/openssl/openssl/ssl/s3_cbc.cassertion failed: mac_secret_length <= sizeof(hmac_pad)CLNTSRVR../deps/openssl/openssl/ssl/s3_lib.cNULL-MD5NULL-SHAAES128-SHADHE-DSS-AES128-SHADHE-RSA-AES128-SHAADH-AES128-SHAAES256-SHADHE-DSS-AES256-SHADHE-RSA-AES256-SHAADH-AES256-SHANULL-SHA256AES128-SHA256AES256-SHA256DHE-DSS-AES128-SHA256DHE-RSA-AES128-SHA256DHE-DSS-AES256-SHA256DHE-RSA-AES256-SHA256ADH-AES128-SHA256ADH-AES256-SHA256AES128-GCM-SHA256AES256-GCM-SHA384DHE-RSA-AES128-GCM-SHA256DHE-RSA-AES256-GCM-SHA384DHE-DSS-AES128-GCM-SHA256DHE-DSS-AES256-GCM-SHA384ADH-AES128-GCM-SHA256ADH-AES256-GCM-SHA384AES128-CCMAES256-CCMDHE-RSA-AES128-CCMDHE-RSA-AES256-CCMAES128-CCM8AES256-CCM8DHE-RSA-AES128-CCM8DHE-RSA-AES256-CCM8PSK-AES128-CCMPSK-AES256-CCMDHE-PSK-AES128-CCMDHE-PSK-AES256-CCMPSK-AES128-CCM8PSK-AES256-CCM8DHE-PSK-AES128-CCM8DHE-PSK-AES256-CCM8ECDHE-ECDSA-AES128-CCMECDHE-ECDSA-AES256-CCMECDHE-ECDSA-AES128-CCM8ECDHE-ECDSA-AES256-CCM8ECDHE-ECDSA-NULL-SHAECDHE-ECDSA-AES128-SHAECDHE-ECDSA-AES256-SHAECDHE-RSA-NULL-SHAECDHE-RSA-AES128-SHAECDHE-RSA-AES256-SHAAECDH-NULL-SHAAECDH-AES128-SHAAECDH-AES256-SHAECDHE-ECDSA-AES128-SHA256ECDHE-ECDSA-AES256-SHA384ECDHE-RSA-AES128-SHA256ECDHE-RSA-AES256-SHA384ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384PSK-NULL-SHADHE-PSK-NULL-SHARSA-PSK-NULL-SHAPSK-AES128-CBC-SHAPSK-AES256-CBC-SHADHE-PSK-AES128-CBC-SHADHE-PSK-AES256-CBC-SHARSA-PSK-AES128-CBC-SHARSA-PSK-AES256-CBC-SHAPSK-AES128-GCM-SHA256PSK-AES256-GCM-SHA384DHE-PSK-AES128-GCM-SHA256DHE-PSK-AES256-GCM-SHA384RSA-PSK-AES128-GCM-SHA256RSA-PSK-AES256-GCM-SHA384PSK-AES128-CBC-SHA256PSK-AES256-CBC-SHA384PSK-NULL-SHA256PSK-NULL-SHA384DHE-PSK-AES128-CBC-SHA256DHE-PSK-AES256-CBC-SHA384DHE-PSK-NULL-SHA256DHE-PSK-NULL-SHA384RSA-PSK-AES128-CBC-SHA256RSA-PSK-AES256-CBC-SHA384RSA-PSK-NULL-SHA256RSA-PSK-NULL-SHA384ECDHE-PSK-AES128-CBC-SHAECDHE-PSK-AES256-CBC-SHAECDHE-PSK-AES128-CBC-SHA256ECDHE-PSK-AES256-CBC-SHA384ECDHE-PSK-NULL-SHAECDHE-PSK-NULL-SHA256ECDHE-PSK-NULL-SHA384SRP-AES-128-CBC-SHASRP-RSA-AES-128-CBC-SHASRP-DSS-AES-128-CBC-SHASRP-AES-256-CBC-SHASRP-RSA-AES-256-CBC-SHASRP-DSS-AES-256-CBC-SHADHE-RSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305ECDHE-ECDSA-CHACHA20-POLY1305PSK-CHACHA20-POLY1305ECDHE-PSK-CHACHA20-POLY1305DHE-PSK-CHACHA20-POLY1305RSA-PSK-CHACHA20-POLY1305CAMELLIA128-SHA256DHE-DSS-CAMELLIA128-SHA256DHE-RSA-CAMELLIA128-SHA256ADH-CAMELLIA128-SHA256CAMELLIA256-SHA256DHE-DSS-CAMELLIA256-SHA256DHE-RSA-CAMELLIA256-SHA256ADH-CAMELLIA256-SHA256CAMELLIA256-SHADHE-DSS-CAMELLIA256-SHADHE-RSA-CAMELLIA256-SHAADH-CAMELLIA256-SHACAMELLIA128-SHADHE-DSS-CAMELLIA128-SHADHE-RSA-CAMELLIA128-SHAADH-CAMELLIA128-SHAECDHE-ECDSA-CAMELLIA128-SHA256ECDHE-ECDSA-CAMELLIA256-SHA384ECDHE-RSA-CAMELLIA128-SHA256ECDHE-RSA-CAMELLIA256-SHA384PSK-CAMELLIA128-SHA256PSK-CAMELLIA256-SHA384DHE-PSK-CAMELLIA128-SHA256DHE-PSK-CAMELLIA256-SHA384RSA-PSK-CAMELLIA128-SHA256RSA-PSK-CAMELLIA256-SHA384ECDHE-PSK-CAMELLIA128-SHA256ECDHE-PSK-CAMELLIA256-SHA384IDEA-CBC-SHASEED-SHADHE-DSS-SEED-SHADHE-RSA-SEED-SHAADH-SEED-SHA../deps/openssl/openssl/ssl/s3_msg.c../deps/openssl/openssl/ssl/ssl_asn1.cSSL_SESSION_ASN1ssl_versionciphersession_idmaster_keykey_argtimepeersession_id_contextverify_resulttlsext_hostnamepsk_identity_hintpsk_identitytlsext_tick_lifetime_hinttlsext_tickcomp_idsrp_username../deps/openssl/openssl/ssl/ssl_cert.cssl_clientssl_server%s/%sOPENSSL_DIR_read(&ctx, '')Verify error:SSL for verify callbackassertion failed: ssl_mac_secret_size[i] >= 0../deps/openssl/openssl/ssl/ssl_ciph.cassertion failed: ssl_digest_methods[SSL_MD_MD5_IDX] != NULLassertion failed: ssl_digest_methods[SSL_MD_SHA1_IDX] != NULLgost-macgost-mac-12gost2001gost2012_256gost2012_512RC4-HMAC-MD5AES-128-CBC-HMAC-SHA1AES-256-CBC-HMAC-SHA1AES-128-CBC-HMAC-SHA256AES-256-CBC-HMAC-SHA256DEFAULTALL:!COMPLEMENTOFDEFAULT:!eNULL%-23s %s Kx=%-8s Au=%-4s Enc=%-9s Mac=%-4s RSAPSKRSAPSKECDHEPSKDHEPSKSRPGOSTDSSNoneECDSAGOST01GOST12DES(56)3DES(168)RC4(128)RC2(128)IDEA(128)AES(128)AES(256)AESGCM(128)AESGCM(256)AESCCM(128)AESCCM(256)AESCCM8(128)AESCCM8(256)Camellia(128)Camellia(256)SEED(128)GOST89(256)CHACHA20/POLY1305(256)MD5SHA256SHA384AEADGOST89GOST94GOST2012(NONE)TLSv1.0SUITEB128ONLYSUITEB128C2SUITEB128SUITEB192ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384ALLCOMPLEMENTOFALLCOMPLEMENTOFDEFAULTkRSAkEDHkDHEkEECDHkECDHEkPSKkRSAPSKkECDHEPSKkDHEPSKkSRPkGOSTaRSAaDSSaNULLaECDSAaPSKaGOST01aGOST12aGOSTaSRPEDHDHEEECDHECDHENULLADHAECDH3DESRC4RC2IDEASEEDeNULLAES128AES256AESAESGCMAESCCMAESCCM8CAMELLIA128CAMELLIA256CAMELLIACHACHA20SHAGOST89MACSSLv3TLSv1TLSv1.2LOWMEDIUMHIGHFIPSEDH-DSS-DES-CBC3-SHAEDH-RSA-DES-CBC3-SHASTRENGTHSECLEVEL=../deps/openssl/openssl/ssl/ssl_init.cssl3-md5ssl3-sha1RSA-SHA1-2RSA-SHA1../deps/openssl/openssl/ssl/ssl_lib.cassertion failed: s->sid_ctx_length <= sizeof(s->sid_ctx)TLSv1.1DTLSv0.9DTLSv1DTLSv1.2assertion failed: ssl->sid_ctx_length <= sizeof(ssl->sid_ctx)../deps/openssl/openssl/ssl/ssl_mcnf.cname=section=, cmd=, arg=../deps/openssl/openssl/ssl/ssl_rsa.cSERVERINFO FOR ../deps/openssl/openssl/ssl/ssl_sess.cSSL SESSION PARAMETERS../deps/openssl/openssl/ssl/statem/statem.c../deps/openssl/openssl/ssl/statem/statem_clnt.c../deps/openssl/openssl/ssl/statem/../packet_locl.h../deps/openssl/openssl/ssl/statem/statem_dtls.cassertion failed: s->init_num == (int)s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTHassertion failed: len == (unsigned int)retassertion failed: s->init_off == 0assertion failed: s->d1->w_msg_hdr.msg_len + ((s->version == DTLS1_BAD_VER) ? 3 : DTLS1_CCS_HEADER_LENGTH) == (unsigned int)s->init_numassertion failed: s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH == (unsigned int)s->init_numassertion failed: item != NULLassertion failed: ((long)msg_hdr->msg_len) > 0assertion failed: i <= EVP_MAX_MD_SIZE../deps/openssl/openssl/ssl/statem/statem_lib.c../deps/openssl/openssl/ssl/statem/statem_srvr.cassertion failed: !(meth->ext_flags & SSL_EXT_FLAG_SENT)../deps/openssl/openssl/ssl/t1_ext.cclient finishedserver finished../deps/openssl/openssl/ssl/t1_lib.c../deps/openssl/openssl/ssl/packet_locl.hDSA../deps/openssl/openssl/ssl/t1_reneg.cassertion failed: !expected_len || s->s3->previous_client_finished_lenassertion failed: !expected_len || s->s3->previous_server_finished_len../deps/openssl/openssl/ssl/tls_srp.c../deps/openssl/openssl/crypto/asn1/a_int.c../deps/openssl/openssl/crypto/asn1/a_object.c + ; = =#../deps/openssl/openssl/crypto/asn1/a_strex.c\W%08lX\U%04lX\\%02XASN1_TIME../deps/openssl/openssl/crypto/asn1/a_time.c1920Bad time value../deps/openssl/openssl/crypto/asn1/a_utctm.c%02d%02d%02d%02d%02d%02dZ%s %2d %02d:%02d:%02d %d%s GMT../deps/openssl/openssl/crypto/asn1/ameth_lib.c../deps/openssl/openssl/crypto/asn1/asn1_lib.cEOCBOOLEANINTEGERBIT STRINGOCTET STRINGOBJECTOBJECT DESCRIPTOREXTERNALREALENUMERATEDUTF8STRINGSEQUENCESETNUMERICSTRINGPRINTABLESTRINGT61STRINGVIDEOTEXSTRINGIA5STRINGUTCTIMEGENERALIZEDTIMEGRAPHICSTRINGVISIBLESTRINGGENERALSTRINGUNIVERSALSTRINGBMPSTRING(unknown)BAD RECURSION DEPTH Error in encoding %5ld:d=%-2d hl=%ld l=%4ld d=%-2d hl=%ld l=inf length is greater than %ld :BAD OBJECT:BAD BOOLEAN:%u[HEX DUMP]:%02X-00:BAD INTEGER:BAD ENUMERATED:[cons: prim: priv [ %d ] cont [ %d ]appl [ %d ]../deps/openssl/openssl/crypto/asn1/d2i_pr.c../deps/openssl/openssl/crypto/asn1/d2i_pu.cPKCS8_PRIV_KEY_INFOpkeyalgpkeyattributes../deps/openssl/openssl/crypto/asn1/tasn_dec.cField=, Type=Type=../deps/openssl/openssl/crypto/asn1/tasn_enc.c../deps/openssl/openssl/crypto/asn1/tasn_fre.c../deps/openssl/openssl/crypto/asn1/tasn_new.cASN1_OCTET_STRINGASN1_INTEGERASN1_ENUMERATEDASN1_BIT_STRINGASN1_UTF8STRINGASN1_PRINTABLESTRINGASN1_T61STRINGASN1_IA5STRINGASN1_GENERALSTRINGASN1_UTCTIMEASN1_GENERALIZEDTIMEASN1_VISIBLESTRINGASN1_UNIVERSALSTRINGASN1_BMPSTRINGASN1_NULLASN1_OBJECTASN1_ANYASN1_SEQUENCEASN1_PRINTABLEDISPLAYTEXTDIRECTORYSTRINGASN1_BOOLEANASN1_TBOOLEANASN1_FBOOLEANASN1_OCTET_STRING_NDEFASN1_SEQUENCE_ANYASN1_SET_ANY../deps/openssl/openssl/crypto/asn1/tasn_utl.cX509_ALGORX509_ALGORSalgorithmparameteralgorithmsINT32UINT32INT64UINT64ZINT32ZUINT32ZINT64ZUINT64../deps/openssl/openssl/crypto/asn1/x_int64.c%d %u %lld %llu NETSCAPE_SPKACNETSCAPE_SPKIchallengespkacsig_algorsignature../deps/openssl/openssl/crypto/async/async.c../deps/openssl/openssl/crypto/async/async_wait.c%04x - %02x%c %c%*s%02X:../deps/openssl/openssl/crypto/bio/b_print.cassertion failed: *sbuffer != NULL || buffer != NULLassertion failed: *currlen <= *maxlenassertion failed: *sbuffer != NULL0x0123456789../deps/openssl/openssl/crypto/bio/bf_buff.c../deps/openssl/openssl/crypto/bio/bio_lib.c../deps/openssl/openssl/crypto/bio/bio_meth.c../deps/openssl/openssl/crypto/bio/bss_file.cfopen('','FILE pointera+ar+wfflush()../deps/openssl/openssl/crypto/bio/bss_mem.cmemory buffersecure memory buffersocket../deps/openssl/openssl/crypto/bn/bn_lib.c../deps/openssl/openssl/crypto/bn/bn_mont.c../deps/openssl/openssl/crypto/bn/bn_print.c%09ubn(%d,%d)../deps/openssl/openssl/crypto/bn/bn_shift.c../deps/openssl/openssl/crypto/buffer/buffer.cCMACOpenSSL CMAC method../deps/openssl/openssl/crypto/cmac/cmac.copenssl_conf../deps/openssl/openssl/crypto/conf/conf_mod.copenssl.cnfmodule=%-8d, value=, retcode=OPENSSL_initOPENSSL_finish, path=ssl_conf../deps/openssl/openssl/crypto/conf/conf_ssl.c%s:%d: OpenSSL internal error: %s ../deps/openssl/openssl/crypto/ct/ct_log.cCTLOG_FILE/etc/ssl/ct_log_list.cnfenabled_logsdescriptionkey../deps/openssl/openssl/crypto/ct/ct_oct.c../deps/openssl/openssl/crypto/ct/ct_policy.c../deps/openssl/openssl/crypto/ct/ct_sct.c../deps/openssl/openssl/crypto/ct/ct_sct_ctx.c../deps/openssl/openssl/crypto/ct/ct_vfy.cOpenSSL PKCS#3 DH methodX9.42 DHOpenSSL X9.42 DH method../deps/openssl/openssl/crypto/dh/dh_ameth.cDH Private-KeyDH Public-KeyDH Parameters%s: (%d bit) private-key:public-key:prime:generator:subgroup order:subgroup factor:seed:%02x%scounter:recommended-private-length: %d bits ../deps/openssl/openssl/crypto/dh/dh_asn1.cpglengthint_dhx942_dhqjvparamsint_dhvparamsseedcounter../deps/openssl/openssl/crypto/dh/dh_gen.cOpenSSL DH Method../deps/openssl/openssl/crypto/dh/dh_key.c../deps/openssl/openssl/crypto/dh/dh_lib.cOpenSSL DSA method../deps/openssl/openssl/crypto/dsa/dsa_ameth.cPrivate-Keypriv:pub: P: Q: G: r: s: ../deps/openssl/openssl/crypto/dsa/dsa_asn1.cDSA_SIGspub_keypriv_key../deps/openssl/openssl/crypto/dsa/dsa_lib.c../deps/openssl/openssl/crypto/dsa/dsa_ossl.c../deps/openssl/openssl/crypto/dso/dso_lib.cECOpenSSL EC algorithm../deps/openssl/openssl/crypto/ec/ec_ameth.cPublic-KeyECDSA-Parameters%*spriv: %*spub: ../deps/openssl/openssl/crypto/ec/ec_asn1.cECPARAMETERSECPKPARAMETERSX9_62_PENTANOMIALk1k2k3X9_62_CHARACTERISTIC_TWOmp.onBasisp.tpBasisp.ppBasisp.otherfieldIDcurvebasecofactorX9_62_FIELDIDfieldTypep.primep.char_twoX9_62_CURVEbvalue.named_curvevalue.parametersvalue.implicitlyCAEC_PRIVATEKEYprivateKeyparameterspublicKeyECDSA_SIG../deps/openssl/openssl/crypto/ec/ec_curve.cSECG/WTLS curve over a 112 bit prime fieldSECG curve over a 112 bit prime fieldSECG curve over a 128 bit prime fieldSECG curve over a 160 bit prime fieldSECG/WTLS curve over a 160 bit prime fieldSECG curve over a 192 bit prime fieldSECG curve over a 224 bit prime fieldNIST/SECG curve over a 224 bit prime fieldSECG curve over a 256 bit prime fieldNIST/SECG curve over a 384 bit prime fieldNIST/SECG curve over a 521 bit prime fieldNIST/X9.62/SECG curve over a 192 bit prime fieldX9.62 curve over a 192 bit prime fieldX9.62 curve over a 239 bit prime fieldX9.62/SECG curve over a 256 bit prime fieldSECG curve over a 113 bit binary fieldSECG/WTLS curve over a 131 bit binary fieldSECG curve over a 131 bit binary fieldNIST/SECG/WTLS curve over a 163 bit binary fieldSECG curve over a 163 bit binary fieldNIST/SECG curve over a 163 bit binary fieldSECG curve over a 193 bit binary fieldNIST/SECG/WTLS curve over a 233 bit binary fieldSECG curve over a 239 bit binary fieldNIST/SECG curve over a 283 bit binary fieldNIST/SECG curve over a 409 bit binary fieldNIST/SECG curve over a 571 bit binary fieldX9.62 curve over a 163 bit binary fieldX9.62 curve over a 176 bit binary fieldX9.62 curve over a 191 bit binary fieldX9.62 curve over a 208 bit binary fieldX9.62 curve over a 239 bit binary fieldX9.62 curve over a 272 bit binary fieldX9.62 curve over a 304 bit binary fieldX9.62 curve over a 359 bit binary fieldX9.62 curve over a 368 bit binary fieldX9.62 curve over a 431 bit binary fieldWTLS curve over a 113 bit binary fieldWTLS curve over a 112 bit prime fieldWTLS curve over a 160 bit prime fieldWTLS curve over a 224 bit prime field IPSec/IKE/Oakley curve #3 over a 155 bit binary field. Not suitable for ECDSA. Questionable extension field! IPSec/IKE/Oakley curve #4 over a 185 bit binary field. Not suitable for ECDSA. Questionable extension field!RFC 5639 curve over a 160 bit prime fieldRFC 5639 curve over a 192 bit prime fieldRFC 5639 curve over a 224 bit prime fieldRFC 5639 curve over a 256 bit prime fieldRFC 5639 curve over a 320 bit prime fieldRFC 5639 curve over a 384 bit prime fieldRFC 5639 curve over a 512 bit prime fieldB-163B-233B-283B-409B-571K-163K-233K-283K-409K-571P-192P-224P-256P-384P-521../deps/openssl/openssl/crypto/ec/ec_key.cassertion failed: eckey->group->meth->keygen != NULL../deps/openssl/openssl/crypto/ec/ec_kmeth.cOpenSSL EC_KEY method../deps/openssl/openssl/crypto/ec/ec_lib.cassertion failed: group->meth->group_order_bits != NULL../deps/openssl/openssl/crypto/ec/ec_mult.c../deps/openssl/openssl/crypto/ec/ec_oct.c../deps/openssl/openssl/crypto/ec/ecdh_ossl.c../deps/openssl/openssl/crypto/ec/ecdsa_ossl.c../deps/openssl/openssl/crypto/ec/ecdsa_sign.c../deps/openssl/openssl/crypto/ec/ecdsa_vrf.c../deps/openssl/openssl/crypto/ec/eck_prn.cGenerator (compressed):Generator (uncompressed):Generator (hybrid):ASN1 OID: %sNIST CURVE: %s Field Type: %s Basis Type: %s Polynomial:Prime:A: B: Order: Cofactor: Seed:../deps/openssl/openssl/crypto/ec/ecp_mont.c../deps/openssl/openssl/crypto/ec/ecp_nist.c../deps/openssl/openssl/crypto/ec/ecp_oct.c../deps/openssl/openssl/crypto/ec/ecp_smpl.cX25519OpenSSL X25519 algorithm../deps/openssl/openssl/crypto/ec/ecx_meth.c%*s %*sX25519 Private-Key: %*s %*sX25519 Public-Key: engines../deps/openssl/openssl/crypto/engine/eng_cnf.cengine_idsoft_loaddynamic_pathLIST_ADD2EMPTYdefault_algorithms, name=../deps/openssl/openssl/crypto/engine/eng_ctrl.cdynamic_ctrldynamic_get_data_ctxdynamic_loaddynamic_set_data_ctxENGINE_addENGINE_by_idENGINE_cmd_is_executableENGINE_ctrlENGINE_ctrl_cmdENGINE_ctrl_cmd_stringENGINE_finishENGINE_get_cipherENGINE_get_digestENGINE_get_firstENGINE_get_lastENGINE_get_nextENGINE_get_pkey_asn1_methENGINE_get_pkey_methENGINE_get_prevENGINE_initengine_list_addengine_list_removeENGINE_load_private_keyENGINE_load_public_keyENGINE_load_ssl_client_certENGINE_newENGINE_pkey_asn1_find_strENGINE_removeENGINE_set_default_stringENGINE_set_idENGINE_set_nameengine_table_registerengine_unlocked_finishENGINE_up_refint_ctrl_helperint_engine_configureint_engine_module_initalready loadedargument is not a numbercmd not executablecommand takes inputcommand takes no inputconflicting engine idctrl command not implementedDSO failuredso not foundengines section errorengine configuration errorengine is not in the listengine section errorfailed loading private keyfailed loading public keyfinish failed'id' or 'name' missinginit failedinternal list errorinvalid cmd nameinvalid cmd numberinvalid init valueinvalid stringnot initialisednot loadedno control functionno indexno load functionno referenceno such engineunimplemented cipherunimplemented digestunimplemented public key methodversion incompatibility../deps/openssl/openssl/crypto/engine/eng_fat.cstr=RANDCIPHERSDIGESTSPKEYPKEY_CRYPTOPKEY_ASN1../deps/openssl/openssl/crypto/engine/eng_init.c../deps/openssl/openssl/crypto/engine/eng_lib.c../deps/openssl/openssl/crypto/engine/eng_list.cOPENSSL_ENGINESIDDIR_LOADDIR_ADD1id=../deps/openssl/openssl/crypto/engine/eng_pkey.c../deps/openssl/openssl/crypto/engine/tb_asnmth.c../deps/openssl/openssl/crypto/engine/tb_cipher.c../deps/openssl/openssl/crypto/engine/tb_digest.c../deps/openssl/openssl/crypto/engine/tb_pkmeth.c../deps/openssl/openssl/crypto/err/err.clib(%lu)func(%lu)reason(%lu)error:%08lX:%s:%s:%sunknown librarysystem librarybignum routinesrsa routinesDiffie-Hellman routinesdigital envelope routinesmemory buffer routinesobject identifier routinesPEM routinesdsa routinesx509 certificate routinesasn1 encoding routinesconfiguration file routinescommon libcrypto routineselliptic curve routinesECDSA routinesECDH routinesSSL routinesBIO routinesPKCS7 routinesX509 V3 routinesPKCS12 routinesrandom number generatorDSO support routinestime stamp routinesengine routinesOCSP routinesUI routinesFIPS routinesCMS routinesHMAC routinesCT routinesASYNC routinesKDF routinessystem libBN libRSA libDH libEVP libBUF libOBJ libPEM libDSA libX509 libASN1 libEC libBIO libPKCS7 libX509V3 libENGINE libECDSA libnested asn1 errormissing asn1 eosfatalmalloc failurecalled a function you should not callpassed a null parameterinternal errorcalled a function that was disabled at compile-timeinit failfopengetservbynameioctlsocketopendirfreadsetsockoptgetsockoptgethostbynamefflushNA%lu:%s:%s:%d:%s ../deps/openssl/openssl/crypto/evp/digest.cassertion failed: ctx->digest->md_size <= EVP_MAX_MD_SIZE../deps/openssl/openssl/crypto/evp/e_aes.c../deps/openssl/openssl/crypto/evp/e_camellia.c../deps/openssl/openssl/crypto/evp/e_chacha20_poly1305.c../deps/openssl/openssl/crypto/evp/e_des3.cassertion failed: l <= sizeof(iv)../deps/openssl/openssl/crypto/evp/e_rc2.calg_section../deps/openssl/openssl/crypto/evp/evp_cnf.cfips_mode../deps/openssl/openssl/crypto/evp/evp_enc.cassertion failed: ctx->cipher->block_size == 1 || ctx->cipher->block_size == 8 || ctx->cipher->block_size == 16assertion failed: EVP_CIPHER_CTX_iv_length(ctx) <= (int)sizeof(ctx->iv)assertion failed: bl <= (int)sizeof(ctx->buf)assertion failed: b <= sizeof(ctx->buf)assertion failed: b <= sizeof(ctx->final)assertion failed: nkey <= EVP_MAX_KEY_LENGTH../deps/openssl/openssl/crypto/evp/evp_key.cassertion failed: niv <= EVP_MAX_IV_LENGTHassertion failed: l <= sizeof(c->iv)../deps/openssl/openssl/crypto/evp/evp_lib.cassertion failed: j <= sizeof(c->iv)../deps/openssl/openssl/crypto/evp/evp_pkey.cTYPE=../deps/openssl/openssl/crypto/evp/m_sigver.c../deps/openssl/openssl/crypto/evp/p5_crpt2.cassertion failed: keylen <= sizeof(key)../deps/openssl/openssl/crypto/evp/p_lib.cPublic KeyPrivate KeyParameters%s algorithm "%s" unsupported ../deps/openssl/openssl/crypto/evp/p_sign.c../deps/openssl/openssl/crypto/evp/p_verify.c../deps/openssl/openssl/crypto/evp/pmeth_fn.c../deps/openssl/openssl/crypto/evp/pmeth_gn.c../deps/openssl/openssl/crypto/evp/pmeth_lib.c../deps/openssl/openssl/crypto/evp/scrypt.c../deps/openssl/openssl/crypto/ex_data.cHMACOpenSSL HMAC method../deps/openssl/openssl/crypto/hmac/hm_ameth.c../deps/openssl/openssl/crypto/hmac/hm_pmeth.chexkeyassertion failed: j <= (int)sizeof(ctx->key)../deps/openssl/openssl/crypto/hmac/hmac.cidea(int)../deps/openssl/openssl/crypto/init.c../deps/openssl/openssl/crypto/kdf/hkdf.cmdsalthexsalthexinfo../deps/openssl/openssl/crypto/kdf/tls1_prf.cassertion failed: chunk >= 0secrethexsecrethexseed../deps/openssl/openssl/crypto/lhash/lhash.cassertion failed: size > 0../deps/openssl/openssl/crypto/mem_sec.cassertion failed: (size & (size - 1)) == 0assertion failed: minsize > 0assertion failed: (minsize & (minsize - 1)) == 0assertion failed: sh.freelist != NULLassertion failed: sh.bittable != NULLassertion failed: sh.bitmalloc != NULLassertion failed: list >= 0 && list < sh.freelist_sizeassertion failed: ((ptr - sh.arena) & ((sh.arena_size >> list) - 1)) == 0assertion failed: bit > 0 && bit < sh.bittable_sizeassertion failed: !TESTBIT(table, bit)assertion failed: WITHIN_FREELIST(list)assertion failed: WITHIN_ARENA(ptr)assertion failed: temp->next == NULL || WITHIN_ARENA(temp->next)assertion failed: (char **)temp->next->p_next == listassertion failed: !sh_testbit(temp, slist, sh.bitmalloc)assertion failed: temp != sh.freelist[slist]assertion failed: sh.freelist[slist] == tempassertion failed: temp-(sh.arena_size >> slist) == sh_find_my_buddy(temp, slist)assertion failed: sh_testbit(chunk, list, sh.bittable)assertion failed: WITHIN_ARENA(chunk)assertion failed: TESTBIT(table, bit)assertion failed: WITHIN_FREELIST(temp2->p_next) || WITHIN_ARENA(temp2->p_next)assertion failed: sh_testbit(ptr, list, sh.bittable)assertion failed: ptr == sh_find_my_buddy(buddy, list)assertion failed: ptr != NULLassertion failed: !sh_testbit(ptr, list, sh.bitmalloc)assertion failed: sh.freelist[list] == ptrassertion failed: (bit & 1) == 0../deps/openssl/openssl/crypto/modes/gcm128.c../deps/openssl/openssl/crypto/modes/ocb128.c../deps/openssl/openssl/crypto/o_fips.c../deps/openssl/openssl/crypto/o_str.c../deps/openssl/openssl/crypto/objects/o_names.c../deps/openssl/openssl/crypto/objects/obj_dat.c.%luUNDEFundefinedrsadsiRSA Data Security, Inc.pkcsRSA Data Security, Inc. PKCSMD2md2md5rc4rsaEncryptionRSA-MD2md2WithRSAEncryptionRSA-MD5md5WithRSAEncryptionPBE-MD2-DESpbeWithMD2AndDES-CBCPBE-MD5-DESpbeWithMD5AndDES-CBCX500directory services (X.500)X509CNcommonNamecountryNameLlocalityNameSTstateOrProvinceNameOorganizationNameOUorganizationalUnitNamersapkcs7pkcs7-datapkcs7-signedDatapkcs7-envelopedDatapkcs7-signedAndEnvelopedDatapkcs7-digestDatapkcs7-encryptedDatapkcs3dhKeyAgreementDES-ECBdes-ecbDES-CFBdes-cfbDES-CBCdes-cbcDES-EDEdes-edeDES-EDE3des-ede3IDEA-CBCidea-cbcIDEA-CFBidea-cfbIDEA-ECBidea-ecbRC2-CBCrc2-cbcRC2-ECBrc2-ecbRC2-CFBrc2-cfbRC2-OFBrc2-ofbshaRSA-SHAshaWithRSAEncryptionDES-EDE-CBCdes-ede-cbcDES-EDE3-CBCdes-ede3-cbcDES-OFBdes-ofbIDEA-OFBidea-ofbpkcs9emailAddressunstructuredNamecontentTypemessageDigestsigningTimecountersignaturechallengePasswordunstructuredAddressextendedCertificateAttributesNetscapeNetscape Communications Corp.nsCertExtNetscape Certificate ExtensionnsDataTypeNetscape Data TypeDES-EDE-CFBdes-ede-cfbDES-EDE3-CFBdes-ede3-cfbDES-EDE-OFBdes-ede-ofbDES-EDE3-OFBdes-ede3-ofbsha1sha1WithRSAEncryptionDSA-SHAdsaWithSHADSA-olddsaEncryption-oldPBE-SHA1-RC2-64pbeWithSHA1AndRC2-CBCPBKDF2DSA-SHA1-olddsaWithSHA1-oldnsCertTypeNetscape Cert TypensBaseUrlNetscape Base UrlnsRevocationUrlNetscape Revocation UrlnsCaRevocationUrlNetscape CA Revocation UrlnsRenewalUrlNetscape Renewal UrlnsCaPolicyUrlNetscape CA Policy UrlnsSslServerNameNetscape SSL Server NamensCommentNetscape CommentnsCertSequenceNetscape Certificate SequenceDESX-CBCdesx-cbcid-cesubjectKeyIdentifierX509v3 Subject Key IdentifierkeyUsageX509v3 Key UsageprivateKeyUsagePeriodX509v3 Private Key Usage PeriodsubjectAltNameX509v3 Subject Alternative NameissuerAltNameX509v3 Issuer Alternative NamebasicConstraintsX509v3 Basic ConstraintscrlNumberX509v3 CRL NumbercertificatePoliciesX509v3 Certificate PoliciesauthorityKeyIdentifierX509v3 Authority Key IdentifierBF-CBCbf-cbcBF-ECBbf-ecbBF-CFBbf-cfbBF-OFBbf-ofbMDC2mdc2RSA-MDC2mdc2WithRSARC4-40rc4-40RC2-40-CBCrc2-40-cbcGNgivenNameSNsurnameinitialsuniqueIdentifiercrlDistributionPointsX509v3 CRL Distribution PointsRSA-NP-MD5md5WithRSACAST5-CBCcast5-cbcCAST5-ECBcast5-ecbCAST5-CFBcast5-cfbCAST5-OFBcast5-ofbpbeWithMD5AndCast5CBCDSA-SHA1dsaWithSHA1MD5-SHA1md5-sha1sha1WithRSAdsaEncryptionRIPEMD160ripemd160RSA-RIPEMD160ripemd160WithRSARC5-CBCrc5-cbcRC5-ECBrc5-ecbRC5-CFBrc5-cfbRC5-OFBrc5-ofbzlib compressionextendedKeyUsageX509v3 Extended Key UsagePKIXid-kpserverAuthTLS Web Server AuthenticationclientAuthTLS Web Client AuthenticationcodeSigningCode SigningemailProtectionE-mail ProtectiontimeStampingTime StampingmsCodeIndMicrosoft Individual Code SigningmsCodeComMicrosoft Commercial Code SigningmsCTLSignMicrosoft Trust List SigningmsSGCMicrosoft Server Gated CryptomsEFSMicrosoft Encrypted File SystemnsSGCNetscape Server Gated CryptodeltaCRLX509v3 Delta CRL IndicatorCRLReasonX509v3 CRL Reason CodeinvalidityDateInvalidity DateSXNetIDStrong Extranet IDPBE-SHA1-RC4-128pbeWithSHA1And128BitRC4PBE-SHA1-RC4-40pbeWithSHA1And40BitRC4PBE-SHA1-3DESpbeWithSHA1And3-KeyTripleDES-CBCPBE-SHA1-2DESpbeWithSHA1And2-KeyTripleDES-CBCPBE-SHA1-RC2-128pbeWithSHA1And128BitRC2-CBCPBE-SHA1-RC2-40pbeWithSHA1And40BitRC2-CBCkeyBagpkcs8ShroudedKeyBagcertBagcrlBagsecretBagsafeContentsBagfriendlyNamelocalKeyIDx509CertificatesdsiCertificatex509CrlPBES2PBMAC1hmacWithSHA1id-qt-cpsPolicy Qualifier CPSid-qt-unoticePolicy Qualifier User NoticeRC2-64-CBCrc2-64-cbcSMIME-CAPSS/MIME CapabilitiesPBE-MD2-RC2-64pbeWithMD2AndRC2-CBCPBE-MD5-RC2-64pbeWithMD5AndRC2-CBCPBE-SHA1-DESpbeWithSHA1AndDES-CBCmsExtReqMicrosoft Extension RequestextReqExtension RequestdnQualifierid-peid-adauthorityInfoAccessAuthority Information AccessOCSPcaIssuersCA IssuersOCSPSigningOCSP SigningISOisomember-bodyISO Member BodyISO-USISO US Member BodyX9-57X9.57X9cmX9.57 CM ?pkcs1pkcs5SMIMES/MIMEid-smime-modid-smime-ctid-smime-aaid-smime-algid-smime-cdid-smime-spqid-smime-ctiid-smime-mod-cmsid-smime-mod-essid-smime-mod-oidid-smime-mod-msg-v3id-smime-mod-ets-eSignature-88id-smime-mod-ets-eSignature-97id-smime-mod-ets-eSigPolicy-88id-smime-mod-ets-eSigPolicy-97id-smime-ct-receiptid-smime-ct-authDataid-smime-ct-publishCertid-smime-ct-TSTInfoid-smime-ct-TDTInfoid-smime-ct-contentInfoid-smime-ct-DVCSRequestDataid-smime-ct-DVCSResponseDataid-smime-aa-receiptRequestid-smime-aa-securityLabelid-smime-aa-mlExpandHistoryid-smime-aa-contentHintid-smime-aa-msgSigDigestid-smime-aa-encapContentTypeid-smime-aa-contentIdentifierid-smime-aa-macValueid-smime-aa-equivalentLabelsid-smime-aa-contentReferenceid-smime-aa-encrypKeyPrefid-smime-aa-signingCertificateid-smime-aa-smimeEncryptCertsid-smime-aa-timeStampTokenid-smime-aa-ets-sigPolicyIdid-smime-aa-ets-commitmentTypeid-smime-aa-ets-signerLocationid-smime-aa-ets-signerAttrid-smime-aa-ets-otherSigCertid-smime-aa-ets-contentTimestampid-smime-aa-ets-CertificateRefsid-smime-aa-ets-RevocationRefsid-smime-aa-ets-certValuesid-smime-aa-ets-revocationValuesid-smime-aa-ets-escTimeStampid-smime-aa-ets-certCRLTimestampid-smime-aa-ets-archiveTimeStampid-smime-aa-signatureTypeid-smime-aa-dvcs-dvcid-smime-alg-ESDHwith3DESid-smime-alg-ESDHwithRC2id-smime-alg-3DESwrapid-smime-alg-RC2wrapid-smime-alg-ESDHid-smime-alg-CMS3DESwrapid-smime-alg-CMSRC2wrapid-smime-cd-ldapid-smime-spq-ets-sqt-uriid-smime-spq-ets-sqt-unoticeid-smime-cti-ets-proofOfOriginid-smime-cti-ets-proofOfReceiptid-smime-cti-ets-proofOfDeliveryid-smime-cti-ets-proofOfSenderid-smime-cti-ets-proofOfApprovalid-smime-cti-ets-proofOfCreationMD4md4id-pkix-modid-qtid-itid-pkipid-algid-cmcid-onid-pdaid-acaid-qcsid-cctid-pkix1-explicit-88id-pkix1-implicit-88id-pkix1-explicit-93id-pkix1-implicit-93id-mod-crmfid-mod-cmcid-mod-kea-profile-88id-mod-kea-profile-93id-mod-cmpid-mod-qualified-cert-88id-mod-qualified-cert-93id-mod-attribute-certid-mod-timestamp-protocolid-mod-ocspid-mod-dvcsid-mod-cmp2000biometricInfoBiometric InfoqcStatementsac-auditEntityac-targetingaaControlssbgp-ipAddrBlocksbgp-autonomousSysNumsbgp-routerIdentifiertextNoticeipsecEndSystemIPSec End SystemipsecTunnelIPSec TunnelipsecUserIPSec UserDVCSdvcsid-it-caProtEncCertid-it-signKeyPairTypesid-it-encKeyPairTypesid-it-preferredSymmAlgid-it-caKeyUpdateInfoid-it-currentCRLid-it-unsupportedOIDsid-it-subscriptionRequestid-it-subscriptionResponseid-it-keyPairParamReqid-it-keyPairParamRepid-it-revPassphraseid-it-implicitConfirmid-it-confirmWaitTimeid-it-origPKIMessageid-regCtrlid-regInfoid-regCtrl-regTokenid-regCtrl-authenticatorid-regCtrl-pkiPublicationInfoid-regCtrl-pkiArchiveOptionsid-regCtrl-oldCertIDid-regCtrl-protocolEncrKeyid-regInfo-utf8Pairsid-regInfo-certReqid-alg-des40id-alg-noSignatureid-alg-dh-sig-hmac-sha1id-alg-dh-popid-cmc-statusInfoid-cmc-identificationid-cmc-identityProofid-cmc-dataReturnid-cmc-transactionIdid-cmc-senderNonceid-cmc-recipientNonceid-cmc-addExtensionsid-cmc-encryptedPOPid-cmc-decryptedPOPid-cmc-lraPOPWitnessid-cmc-getCertid-cmc-getCRLid-cmc-revokeRequestid-cmc-regInfoid-cmc-responseInfoid-cmc-queryPendingid-cmc-popLinkRandomid-cmc-popLinkWitnessid-cmc-confirmCertAcceptanceid-on-personalDataid-pda-dateOfBirthid-pda-placeOfBirthid-pda-genderid-pda-countryOfCitizenshipid-pda-countryOfResidenceid-aca-authenticationInfoid-aca-accessIdentityid-aca-chargingIdentityid-aca-groupid-aca-roleid-qcs-pkixQCSyntax-v1id-cct-crsid-cct-PKIDataid-cct-PKIResponsead_timestampingAD Time StampingAD_DVCSad dvcsbasicOCSPResponseBasic OCSP ResponseNonceOCSP NonceCrlIDOCSP CRL IDacceptableResponsesAcceptable OCSP ResponsesnoCheckOCSP No CheckarchiveCutoffOCSP Archive CutoffserviceLocatorOCSP Service LocatorextendedStatusExtended OCSP StatusvalidtrustRootTrust RootrsaSignatureX500algorithmsdirectory services - algorithmsORGorgDODdodIANAianadirectoryDirectorymgmtManagementexperimentalExperimentalprivatePrivatesecuritySecuritysnmpv2SNMPv2MailenterprisesEnterprisesdcobjectdcObjectDCdomainComponentDomainselected-attribute-typesSelected Attribute TypesclearanceRSA-MD4md4WithRSAEncryptionac-proxyingsubjectInfoAccessSubject Information Accessid-aca-encAttrsrolepolicyConstraintsX509v3 Policy ConstraintstargetInformationX509v3 AC TargetingnoRevAvailX509v3 No Revocation Availableansi-X9-62ANSI X9.62prime-fieldcharacteristic-two-fieldid-ecPublicKeyprime192v1prime192v2prime192v3prime239v1prime239v2prime239v3prime256v1ecdsa-with-SHA1CSPNameMicrosoft CSP NameAES-128-ECBaes-128-ecbAES-128-CBCaes-128-cbcAES-128-OFBaes-128-ofbAES-128-CFBaes-128-cfbAES-192-ECBaes-192-ecbAES-192-CBCaes-192-cbcAES-192-OFBaes-192-ofbAES-192-CFBaes-192-cfbAES-256-ECBaes-256-ecbAES-256-CBCaes-256-cbcAES-256-OFBaes-256-ofbAES-256-CFBaes-256-cfbholdInstructionCodeHold Instruction CodeholdInstructionNoneHold Instruction NoneholdInstructionCallIssuerHold Instruction Call IssuerholdInstructionRejectHold Instruction RejectpssuclpilotpilotAttributeTypepilotAttributeSyntaxpilotObjectClasspilotGroupsiA5StringSyntaxcaseIgnoreIA5StringSyntaxpilotObjectpilotPersonaccountdocumentroomdocumentSeriesrFC822localPartdNSDomaindomainRelatedObjectfriendlyCountrysimpleSecurityObjectpilotOrganizationpilotDSAqualityLabelledDataUIDuserIdtextEncodedORAddressmailrfc822MailboxfavouriteDrinkroomNumberphotouserClassmanagerdocumentIdentifierdocumentTitledocumentVersiondocumentAuthordocumentLocationhomeTelephoneNumbersecretaryotherMailboxlastModifiedTimelastModifiedByaRecordpilotAttributeType27mXRecordnSRecordsOARecordcNAMERecordassociatedDomainassociatedNamehomePostalAddresspersonalTitlemobileTelephoneNumberpagerTelephoneNumberfriendlyCountryNameorganizationalStatusjanetMailboxmailPreferenceOptionbuildingNamedSAQualitysingleLevelQualitysubtreeMinimumQualitysubtreeMaximumQualitypersonalSignaturedITRedirectaudiodocumentPublisherx500UniqueIdentifiermime-mhsMIME MHSmime-mhs-headingsmime-mhs-bodiesid-hex-partial-messageid-hex-multipart-messagegenerationQualifierpseudonymid-setSecure Electronic Transactionsset-ctypecontent typesset-msgExtmessage extensionsset-attrset-policyset-certExtcertificate extensionsset-brandsetct-PANDatasetct-PANTokensetct-PANOnlysetct-OIDatasetct-PIsetct-PIDatasetct-PIDataUnsignedsetct-HODInputsetct-AuthResBaggagesetct-AuthRevReqBaggagesetct-AuthRevResBaggagesetct-CapTokenSeqsetct-PInitResDatasetct-PI-TBSsetct-PResDatasetct-AuthReqTBSsetct-AuthResTBSsetct-AuthResTBSXsetct-AuthTokenTBSsetct-CapTokenDatasetct-CapTokenTBSsetct-AcqCardCodeMsgsetct-AuthRevReqTBSsetct-AuthRevResDatasetct-AuthRevResTBSsetct-CapReqTBSsetct-CapReqTBSXsetct-CapResDatasetct-CapRevReqTBSsetct-CapRevReqTBSXsetct-CapRevResDatasetct-CredReqTBSsetct-CredReqTBSXsetct-CredResDatasetct-CredRevReqTBSsetct-CredRevReqTBSXsetct-CredRevResDatasetct-PCertReqDatasetct-PCertResTBSsetct-BatchAdminReqDatasetct-BatchAdminResDatasetct-CardCInitResTBSsetct-MeAqCInitResTBSsetct-RegFormResTBSsetct-CertReqDatasetct-CertReqTBSsetct-CertResDatasetct-CertInqReqTBSsetct-ErrorTBSsetct-PIDualSignedTBEsetct-PIUnsignedTBEsetct-AuthReqTBEsetct-AuthResTBEsetct-AuthResTBEXsetct-AuthTokenTBEsetct-CapTokenTBEsetct-CapTokenTBEXsetct-AcqCardCodeMsgTBEsetct-AuthRevReqTBEsetct-AuthRevResTBEsetct-AuthRevResTBEBsetct-CapReqTBEsetct-CapReqTBEXsetct-CapResTBEsetct-CapRevReqTBEsetct-CapRevReqTBEXsetct-CapRevResTBEsetct-CredReqTBEsetct-CredReqTBEXsetct-CredResTBEsetct-CredRevReqTBEsetct-CredRevReqTBEXsetct-CredRevResTBEsetct-BatchAdminReqTBEsetct-BatchAdminResTBEsetct-RegFormReqTBEsetct-CertReqTBEsetct-CertReqTBEXsetct-CertResTBEsetct-CRLNotificationTBSsetct-CRLNotificationResTBSsetct-BCIDistributionTBSsetext-genCryptgeneric cryptogramsetext-miAuthmerchant initiated authsetext-pinSecuresetext-pinAnysetext-track2setext-cvadditional verificationset-policy-rootsetCext-hashedRootsetCext-certTypesetCext-merchDatasetCext-cCertRequiredsetCext-tunnelingsetCext-setExtsetCext-setQualfsetCext-PGWYcapabilitiessetCext-TokenIdentifiersetCext-Track2DatasetCext-TokenTypesetCext-IssuerCapabilitiessetAttr-CertsetAttr-PGWYcappayment gateway capabilitiessetAttr-TokenTypesetAttr-IssCapissuer capabilitiesset-rootKeyThumbset-addPolicysetAttr-Token-EMVsetAttr-Token-B0PrimesetAttr-IssCap-CVMsetAttr-IssCap-T2setAttr-IssCap-SigsetAttr-GenCryptgrmgenerate cryptogramsetAttr-T2Encencrypted track 2setAttr-T2cleartxtcleartext track 2setAttr-TokICCsigICC or token signaturesetAttr-SecDevSigsecure device signatureset-brand-IATA-ATAset-brand-Dinersset-brand-AmericanExpressset-brand-JCBset-brand-Visaset-brand-MasterCardset-brand-NovusDES-CDMFdes-cdmfrsaOAEPEncryptionSETITU-Titu-tJOINT-ISO-ITU-Tjoint-iso-itu-tinternational-organizationsInternational OrganizationsmsSmartcardLoginMicrosoft SmartcardloginmsUPNMicrosoft Universal Principal NameAES-128-CFB1aes-128-cfb1AES-192-CFB1aes-192-cfb1AES-256-CFB1aes-256-cfb1AES-128-CFB8aes-128-cfb8AES-192-CFB8aes-192-cfb8AES-256-CFB8aes-256-cfb8DES-CFB1des-cfb1DES-CFB8des-cfb8DES-EDE3-CFB1des-ede3-cfb1DES-EDE3-CFB8des-ede3-cfb8streetstreetAddresspostalCodeid-pplproxyCertInfoProxy Certificate Informationid-ppl-anyLanguageAny languageid-ppl-inheritAllInherit allnameConstraintsX509v3 Name Constraintsid-ppl-independentIndependentRSA-SHA256sha256WithRSAEncryptionRSA-SHA384sha384WithRSAEncryptionRSA-SHA512sha512WithRSAEncryptionRSA-SHA224sha224WithRSAEncryptionsha256sha384SHA512sha512SHA224sha224identified-organizationcerticom-arcwapwap-wsgid-characteristic-two-basisonBasistpBasisppBasisc2pnb163v1c2pnb163v2c2pnb163v3c2pnb176v1c2tnb191v1c2tnb191v2c2tnb191v3c2onb191v4c2onb191v5c2pnb208w1c2tnb239v1c2tnb239v2c2tnb239v3c2onb239v4c2onb239v5c2pnb272w1c2pnb304w1c2tnb359v1c2pnb368w1c2tnb431r1secp112r1secp112r2secp128r1secp128r2secp160k1secp160r1secp160r2secp192k1secp224k1secp224r1secp256k1secp384r1secp521r1sect113r1sect113r2sect131r1sect131r2sect163k1sect163r1sect163r2sect193r1sect193r2sect233k1sect233r1sect239k1sect283k1sect283r1sect409k1sect409r1sect571k1sect571r1wap-wsg-idm-ecid-wtls1wap-wsg-idm-ecid-wtls3wap-wsg-idm-ecid-wtls4wap-wsg-idm-ecid-wtls5wap-wsg-idm-ecid-wtls6wap-wsg-idm-ecid-wtls7wap-wsg-idm-ecid-wtls8wap-wsg-idm-ecid-wtls9wap-wsg-idm-ecid-wtls10wap-wsg-idm-ecid-wtls11wap-wsg-idm-ecid-wtls12anyPolicyX509v3 Any PolicypolicyMappingsX509v3 Policy MappingsinhibitAnyPolicyX509v3 Inhibit Any PolicyOakley-EC2N-3ipsec3Oakley-EC2N-4ipsec4CAMELLIA-128-CBCcamellia-128-cbcCAMELLIA-192-CBCcamellia-192-cbcCAMELLIA-256-CBCcamellia-256-cbcCAMELLIA-128-ECBcamellia-128-ecbCAMELLIA-192-ECBcamellia-192-ecbCAMELLIA-256-ECBcamellia-256-ecbCAMELLIA-128-CFBcamellia-128-cfbCAMELLIA-192-CFBcamellia-192-cfbCAMELLIA-256-CFBcamellia-256-cfbCAMELLIA-128-CFB1camellia-128-cfb1CAMELLIA-192-CFB1camellia-192-cfb1CAMELLIA-256-CFB1camellia-256-cfb1CAMELLIA-128-CFB8camellia-128-cfb8CAMELLIA-192-CFB8camellia-192-cfb8CAMELLIA-256-CFB8camellia-256-cfb8CAMELLIA-128-OFBcamellia-128-ofbCAMELLIA-192-OFBcamellia-192-ofbCAMELLIA-256-OFBcamellia-256-ofbsubjectDirectoryAttributesX509v3 Subject Directory AttributesissuingDistributionPointX509v3 Issuing Distribution PointcertificateIssuerX509v3 Certificate IssuerKISAkisaSEED-ECBseed-ecbSEED-CBCseed-cbcSEED-OFBseed-ofbSEED-CFBseed-cfbHMAC-MD5hmac-md5HMAC-SHA1hmac-sha1id-PasswordBasedMACpassword based MACid-DHBasedMacDiffie-Hellman based MACid-it-suppLangTagscaRepositoryCA Repositoryid-smime-ct-compressedDataid-ct-asciiTextWithCRLFid-aes128-wrapid-aes192-wrapid-aes256-wrapecdsa-with-Recommendedecdsa-with-Specifiedecdsa-with-SHA224ecdsa-with-SHA256ecdsa-with-SHA384ecdsa-with-SHA512hmacWithMD5hmacWithSHA224hmacWithSHA256hmacWithSHA384hmacWithSHA512dsa_with_SHA224dsa_with_SHA256whirlpoolcryptoprocryptocomid-GostR3411-94-with-GostR3410-2001GOST R 34.11-94 with GOST R 34.10-2001id-GostR3411-94-with-GostR3410-94GOST R 34.11-94 with GOST R 34.10-94md_gost94GOST R 34.11-94id-HMACGostR3411-94HMAC GOST 34.11-94GOST R 34.10-2001gost94GOST R 34.10-94gost89GOST 28147-89gost89-cntGOST 28147-89 MACprf-gostr3411-94GOST R 34.11-94 PRFid-GostR3410-2001DHGOST R 34.10-2001 DHid-GostR3410-94DHGOST R 34.10-94 DHid-Gost28147-89-CryptoPro-KeyMeshingid-Gost28147-89-None-KeyMeshingid-GostR3411-94-TestParamSetid-GostR3411-94-CryptoProParamSetid-Gost28147-89-TestParamSetid-Gost28147-89-CryptoPro-A-ParamSetid-Gost28147-89-CryptoPro-B-ParamSetid-Gost28147-89-CryptoPro-C-ParamSetid-Gost28147-89-CryptoPro-D-ParamSetid-Gost28147-89-CryptoPro-Oscar-1-1-ParamSetid-Gost28147-89-CryptoPro-Oscar-1-0-ParamSetid-Gost28147-89-CryptoPro-RIC-1-ParamSetid-GostR3410-94-TestParamSetid-GostR3410-94-CryptoPro-A-ParamSetid-GostR3410-94-CryptoPro-B-ParamSetid-GostR3410-94-CryptoPro-C-ParamSetid-GostR3410-94-CryptoPro-D-ParamSetid-GostR3410-94-CryptoPro-XchA-ParamSetid-GostR3410-94-CryptoPro-XchB-ParamSetid-GostR3410-94-CryptoPro-XchC-ParamSetid-GostR3410-2001-TestParamSetid-GostR3410-2001-CryptoPro-A-ParamSetid-GostR3410-2001-CryptoPro-B-ParamSetid-GostR3410-2001-CryptoPro-C-ParamSetid-GostR3410-2001-CryptoPro-XchA-ParamSetid-GostR3410-2001-CryptoPro-XchB-ParamSetid-GostR3410-94-aid-GostR3410-94-aBisid-GostR3410-94-bid-GostR3410-94-bBisid-Gost28147-89-ccGOST 28147-89 Cryptocom ParamSetgost94ccGOST 34.10-94 Cryptocomgost2001ccGOST 34.10-2001 Cryptocomid-GostR3411-94-with-GostR3410-94-ccGOST R 34.11-94 with GOST R 34.10-94 Cryptocomid-GostR3411-94-with-GostR3410-2001-ccGOST R 34.11-94 with GOST R 34.10-2001 Cryptocomid-GostR3410-2001-ParamSet-ccGOST R 3410-2001 Parameter Set CryptocomhmacLocalKeySetMicrosoft Local Key setfreshestCRLX509v3 Freshest CRLid-on-permanentIdentifierPermanent IdentifiersearchGuidebusinessCategorypostalAddresspostOfficeBoxphysicalDeliveryOfficeNametelephoneNumbertelexNumberteletexTerminalIdentifierfacsimileTelephoneNumberx121AddressinternationaliSDNNumberregisteredAddressdestinationIndicatorpreferredDeliveryMethodpresentationAddresssupportedApplicationContextmemberroleOccupantseeAlsouserPassworduserCertificatecACertificateauthorityRevocationListcertificateRevocationListcrossCertificatePairenhancedSearchGuideprotocolInformationdistinguishedNameuniqueMemberhouseIdentifiersupportedAlgorithmsdeltaRevocationListdmdNameid-alg-PWRI-KEKcmacid-aes128-GCMaes-128-gcmid-aes128-CCMaes-128-ccmid-aes128-wrap-padid-aes192-GCMaes-192-gcmid-aes192-CCMaes-192-ccmid-aes192-wrap-padid-aes256-GCMaes-256-gcmid-aes256-CCMaes-256-ccmid-aes256-wrap-padAES-128-CTRaes-128-ctrAES-192-CTRaes-192-ctrAES-256-CTRaes-256-ctrid-camellia128-wrapid-camellia192-wrapid-camellia256-wrapanyExtendedKeyUsageAny Extended Key UsageMGF1mgf1RSASSA-PSSrsassaPssAES-128-XTSaes-128-xtsAES-256-XTSaes-256-xtsrc4-hmac-md5aes-128-cbc-hmac-sha1AES-192-CBC-HMAC-SHA1aes-192-cbc-hmac-sha1aes-256-cbc-hmac-sha1RSAES-OAEPrsaesOaepdhpublicnumberbrainpoolP160r1brainpoolP160t1brainpoolP192r1brainpoolP192t1brainpoolP224r1brainpoolP224t1brainpoolP256r1brainpoolP256t1brainpoolP320r1brainpoolP320t1brainpoolP384r1brainpoolP384t1brainpoolP512r1brainpoolP512t1PSPECIFIEDpSpecifieddhSinglePass-stdDH-sha1kdf-schemedhSinglePass-stdDH-sha224kdf-schemedhSinglePass-stdDH-sha256kdf-schemedhSinglePass-stdDH-sha384kdf-schemedhSinglePass-stdDH-sha512kdf-schemedhSinglePass-cofactorDH-sha1kdf-schemedhSinglePass-cofactorDH-sha224kdf-schemedhSinglePass-cofactorDH-sha256kdf-schemedhSinglePass-cofactorDH-sha384kdf-schemedhSinglePass-cofactorDH-sha512kdf-schemedh-std-kdfdh-cofactor-kdfaes-128-cbc-hmac-sha256AES-192-CBC-HMAC-SHA256aes-192-cbc-hmac-sha256aes-256-cbc-hmac-sha256ct_precert_sctsCT Precertificate SCTsct_precert_poisonCT Precertificate Poisonct_precert_signerCT Precertificate Signerct_cert_sctsCT Certificate SCTsjurisdictionLjurisdictionLocalityNamejurisdictionSTjurisdictionStateOrProvinceNamejurisdictionCjurisdictionCountryNameAES-128-OCBaes-128-ocbAES-192-OCBaes-192-ocbAES-256-OCBaes-256-ocbCAMELLIA-128-GCMcamellia-128-gcmCAMELLIA-128-CCMcamellia-128-ccmCAMELLIA-128-CTRcamellia-128-ctrCAMELLIA-128-CMACcamellia-128-cmacCAMELLIA-192-GCMcamellia-192-gcmCAMELLIA-192-CCMcamellia-192-ccmCAMELLIA-192-CTRcamellia-192-ctrCAMELLIA-192-CMACcamellia-192-cmacCAMELLIA-256-GCMcamellia-256-gcmCAMELLIA-256-CCMcamellia-256-ccmCAMELLIA-256-CTRcamellia-256-ctrCAMELLIA-256-CMACcamellia-256-cmacid-scryptid-tc26gost89-cnt-12id-tc26-algorithmsid-tc26-signGOST R 34.10-2012 with 256 bit modulusGOST R 34.10-2012 with 512 bit modulusid-tc26-digestmd_gost12_256GOST R 34.11-2012 with 256 bit hashmd_gost12_512GOST R 34.11-2012 with 512 bit hashid-tc26-signwithdigestid-tc26-signwithdigest-gost3410-2012-256GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)id-tc26-signwithdigest-gost3410-2012-512GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)id-tc26-macid-tc26-hmac-gost-3411-2012-256HMAC GOST 34.11-2012 256 bitid-tc26-hmac-gost-3411-2012-512HMAC GOST 34.11-2012 512 bitid-tc26-cipherid-tc26-agreementid-tc26-agreement-gost-3410-2012-256id-tc26-agreement-gost-3410-2012-512id-tc26-constantsid-tc26-sign-constantsid-tc26-gost-3410-2012-512-constantsid-tc26-gost-3410-2012-512-paramSetTestGOST R 34.10-2012 (512 bit) testing parameter setid-tc26-gost-3410-2012-512-paramSetAGOST R 34.10-2012 (512 bit) ParamSet Aid-tc26-gost-3410-2012-512-paramSetBGOST R 34.10-2012 (512 bit) ParamSet Bid-tc26-digest-constantsid-tc26-cipher-constantsid-tc26-gost-28147-constantsid-tc26-gost-28147-param-ZGOST 28147-89 TC26 parameter setINNOGRNSNILSsubjectSignToolSigning Tool of SubjectissuerSignToolSigning Tool of Issuergost89-cbcgost89-ecbgost89-ctrgrasshopper-ecbgrasshopper-ctrgrasshopper-ofbgrasshopper-cbcgrasshopper-cfbgrasshopper-macChaCha20-Poly1305chacha20-poly1305ChaCha20chacha20tlsfeatureTLS FeatureTLS1-PRFtls1-prfipsecIKEipsec Internet Key ExchangecapwapACCtrl/provision WAP AccesscapwapWTPCtrl/Provision WAP TerminationsecureShellClientSSH ClientsecureShellServerSSH ServersendRouterSend RoutersendProxiedRouterSend Proxied RoutersendOwnerSend OwnersendProxiedOwnerSend Proxied Ownerid-pkinitpkInitClientAuthPKINIT Client AuthpkInitKDCSigning KDC ResponseX448HKDFhkdfKxRSAkx-rsaKxECDHEkx-ecdheKxDHEkx-dheKxECDHE-PSKkx-ecdhe-pskKxDHE-PSKkx-dhe-pskKxRSA_PSKkx-rsa-pskKxPSKkx-pskKxSRPkx-srpKxGOSTkx-gostAuthRSAauth-rsaAuthECDSAauth-ecdsaAuthPSKauth-pskAuthDSSauth-dssAuthGOST01auth-gost01AuthGOST12auth-gost12AuthSRPauth-srpAuthNULLauth-nullBLAKE2b512blake2b512BLAKE2s256blake2s256id-smime-ct-contentCollectionid-smime-ct-authEnvelopedDataid-ct-xml../deps/openssl/openssl/crypto/objects/obj_lib.c../deps/openssl/openssl/crypto/objects/obj_xref.cOCSP_SIGNATUREOCSP_CERTIDOCSP_ONEREQOCSP_REQINFOOCSP_REQUESTOCSP_RESPBYTESOCSP_RESPONSEOCSP_RESPIDOCSP_REVOKEDINFOOCSP_CERTSTATUSOCSP_SINGLERESPOCSP_RESPDATAOCSP_BASICRESPOCSP_CRLIDOCSP_SERVICELOCsignatureAlgorithmcertshashAlgorithmissuerNameHashissuerKeyHashreqCertsingleRequestExtensionsrequestorNamerequestListrequestExtensionstbsRequestoptionalSignatureresponseTyperesponseresponseStatusresponseBytesvalue.byNamevalue.byKeyrevocationTimerevocationReasonvalue.goodvalue.revokedvalue.unknowncertIdcertStatusthisUpdatenextUpdatesingleExtensionsresponderIdproducedAtresponsesresponseExtensionstbsResponseDatacrlUrlcrlNumcrlTimelocator../deps/openssl/openssl/crypto/ocsp/ocsp_cl.c../deps/openssl/openssl/crypto/ocsp/ocsp_ext.c../deps/openssl/openssl/crypto/ocsp/ocsp_lib.cCERTIFICATE REQUESTNEW CERTIFICATE REQUESTX509 CRLPKCS7RSA PRIVATE KEYDSA PRIVATE KEYDSA PARAMETERSEC PARAMETERSEC PRIVATE KEYDH PARAMETERSX9.42 DH PARAMETERSEnter PEM pass phrase:../deps/openssl/openssl/crypto/pem/pem_lib.cMIC-CLEARMIC-ONLYBAD-TYPEProc-Type: 4,DEK-Info: Expecting: assertion failed: EVP_CIPHER_iv_length(enc) <= (int)sizeof(iv)assertion failed: strlen(objstr) + 23 + 2 * EVP_CIPHER_iv_length(enc) + 13 <= sizeof(buf) ,-----BEGIN ----- -----END ANY PRIVATE KEYENCRYPTED PRIVATE KEYPRIVATE KEYPARAMETERSX509 CERTIFICATETRUSTED CERTIFICATEPKCS #7 SIGNED DATACMS../deps/openssl/openssl/crypto/pem/pem_oth.c../deps/openssl/openssl/crypto/pem/pem_pk8.c../deps/openssl/openssl/crypto/pem/pem_pkey.c%s PRIVATE KEY%s PARAMETERSPKCS12PKCS12_MAC_DATAPKCS12_BAGSPKCS12_SAFEBAGPKCS12_SAFEBAGSPKCS12_AUTHSAFESauthsafesdinfoitervalue.x509certvalue.x509crlvalue.sdsicertvalue.otherattribvalue.keybagvalue.shkeybagvalue.safesvalue.bag../deps/openssl/openssl/crypto/pkcs12/p12_kiss.c../deps/openssl/openssl/crypto/pkcs12/p12_mutl.cLEGACY_GOST_PKCS12../deps/openssl/openssl/crypto/pkcs12/p12_p8e.c../deps/openssl/openssl/crypto/pkcs12/p12_sbag.c../deps/openssl/openssl/crypto/pkcs12/p12_utl.cPKCS7_SIGNEDPKCS7_SIGNER_INFOPKCS7_ISSUER_AND_SERIALPKCS7_ENVELOPEPKCS7_RECIP_INFOPKCS7_ENC_CONTENTPKCS7_SIGN_ENVELOPEPKCS7_ENCRYPTPKCS7_DIGESTPKCS7_ATTR_SIGNPKCS7_ATTR_VERIFYd.datad.signd.envelopedd.signed_and_envelopedd.digestd.encryptedd.othermd_algscontentscrlsigner_infoissuer_and_serialdigest_algauth_attrdigest_enc_algenc_digestunauth_attrrecipientinfoenc_datakey_enc_algorenc_keycontent_typePKCS7_ATTRIBUTES../deps/openssl/openssl/crypto/pkcs7/pk7_doit.c../deps/openssl/openssl/crypto/pkcs7/pk7_lib.c/dev/random/dev/srandomrc4(int)OpenSSL RSA method../deps/openssl/openssl/crypto/rsa/rsa_ameth.cPrivate-Key: (%d bit) modulus:publicExponent:Public-Key: (%d bit) Modulus:Exponent:privateExponent:prime1:prime2:exponent1:exponent2:coefficient: (INVALID PSS PARAMETERS) Hash Algorithm: sha1 (default)Mask Algorithm: with INVALIDmgf1 with sha1 (default)Salt Length: 0x14 (default)Trailer Field: 0xBC (default)RSA_PSS_PARAMSRSA_OAEP_PARAMSneddmp1dmq1iqmpmaskGenAlgorithmsaltLengthtrailerFieldhashFuncmaskGenFuncpSourceFunc../deps/openssl/openssl/crypto/rsa/rsa_crpt.c../deps/openssl/openssl/crypto/rsa/rsa_lib.cOpenSSL PKCS#1 RSA../deps/openssl/openssl/crypto/rsa/rsa_ossl.c../deps/openssl/openssl/crypto/rsa/rsa_pk1.c../deps/openssl/openssl/crypto/rsa/rsa_pmeth.crsa_padding_modesslv23noneoeapoaepx931rsa_pss_saltlenrsa_keygen_bitsrsa_keygen_pubexprsa_mgf1_mdrsa_oaep_mdrsa_oaep_label../deps/openssl/openssl/crypto/rsa/rsa_pss.c../deps/openssl/openssl/crypto/rsa/rsa_saos.c../deps/openssl/openssl/crypto/rsa/rsa_sign.c../deps/openssl/openssl/crypto/rsa/rsa_ssl.c../deps/openssl/openssl/crypto/rsa/rsa_x931.c../deps/openssl/openssl/crypto/srp/srp_lib.c819261444096307220481536../deps/openssl/openssl/crypto/srp/srp_vfy.c*../deps/openssl/openssl/crypto/stack/stack.c../deps/openssl/openssl/crypto/threads_pthread.c../deps/openssl/openssl/crypto/txt_db/txt_db.c../deps/openssl/openssl/crypto/ui/ui_lib.cEnter for processingopening sessionwriting stringsflushingreading stringswhile You must type in to charactersOpenSSL default user interface/dev/tty../deps/openssl/openssl/crypto/ui/ui_openssl.cerrno=Verifying - %sVerify failure Load certs from files in a directory../deps/openssl/openssl/crypto/x509/by_dir.c%s%c%08lx.%s%d../deps/openssl/openssl/crypto/x509/by_file.cLoad file into cache../deps/openssl/openssl/crypto/x509/t_x509.cCertificate: Data: %8sVersion: %ld (0x%lx) %8sVersion: Unknown (%ld) Serial Number: %s%lu (%s0x%lx) (Negative) %12s%s Issuer:%c Validity Not Before: Not After : Subject:%c Subject Public Key Info: %12sPublic Key Algorithm: %12sUnable to load Public Key %8sIssuer Unique ID: %8sSubject Unique ID: X509v3 extensions Subject OCSP hash: Public key OCSP hash: Signature Algorithm: %*sTrusted Uses: %*s%*sNo Trusted Uses. %*sRejected Uses: %*s%*sNo Rejected Uses. %*sAlias: %s %*sKey Id: %s%02X../deps/openssl/openssl/crypto/x509/x509_att.c../deps/openssl/openssl/crypto/x509/x509_cmp.c/etc/ssl/private/etc/ssl/etc/ssl/certs/etc/ssl/cert.pemSSL_CERT_DIRSSL_CERT_FILE../deps/openssl/openssl/crypto/x509/x509_lu.c../deps/openssl/openssl/crypto/x509/x509_obj.cNO X509_NAMEokunspecified certificate verification errorunable to get issuer certificateunable to get certificate CRLunable to decrypt certificate's signatureunable to decrypt CRL's signatureunable to decode issuer public keycertificate signature failureCRL signature failurecertificate is not yet validcertificate has expiredCRL is not yet validCRL has expiredformat error in certificate's notBefore fieldformat error in certificate's notAfter fieldformat error in CRL's lastUpdate fieldformat error in CRL's nextUpdate fieldself signed certificateself signed certificate in certificate chainunable to get local issuer certificateunable to verify the first certificatecertificate chain too longcertificate revokedinvalid CA certificatepath length constraint exceededunsupported certificate purposecertificate not trustedcertificate rejectedsubject issuer mismatchauthority and subject key identifier mismatchauthority and issuer serial number mismatchkey usage does not include certificate signingunable to get CRL issuer certificateunhandled critical extensionkey usage does not include CRL signingunhandled critical CRL extensioninvalid non-CA certificate (has CA markings)proxy path length constraint exceededkey usage does not include digital signatureproxy certificates not allowed, please set the appropriate flaginvalid or inconsistent certificate extensioninvalid or inconsistent certificate policy extensionno explicit policyDifferent CRL scopeUnsupported extension featureRFC 3779 resource not subset of parent's resourcespermitted subtree violationexcluded subtree violationname constraints minimum and maximum not supportedapplication verification failureunsupported name constraint typeunsupported or invalid name constraint syntaxunsupported or invalid name syntaxCRL path validation errorPath LoopSuite B: certificate version invalidSuite B: invalid public key algorithmSuite B: invalid ECC curveSuite B: invalid signature algorithmSuite B: curve not allowed for this LOSSuite B: cannot sign P-384 with P-256Hostname mismatchEmail address mismatchIP address mismatchNo matching DANE TLSA recordsEE certificate key too weakCA certificate key too weakCA signature digest algorithm too weakInvalid certificate verification contextIssuer certificate lookup errorCertificate Transparency required, but no valid SCTs foundproxy subject name violationunknown certificate verification error../deps/openssl/openssl/crypto/x509/x509_v3.c../deps/openssl/openssl/crypto/x509/x509_vfy.cdefaultassertion failed: num == 1 && ctx->num_untrusted == numassertion failed: num > i && i > 0 && ss == 0assertion failed: ctx->num_untrusted <= numassertion failed: num == ctx->num_untrusted../deps/openssl/openssl/crypto/x509/x509_vpm.csmime_sign../deps/openssl/openssl/crypto/x509/x509name.c../deps/openssl/openssl/crypto/x509/x509spki.cX509_ATTRIBUTEobjectsetX509_REVOKEDX509_CRL_INFOX509_CRL../deps/openssl/openssl/crypto/x509/x_crl.crevocationDateextensionssig_alglastUpdaterevokedX509_EXTENSIONX509_EXTENSIONScriticalExtensionX509_NAME_ENTRYX509_NAME../deps/openssl/openssl/crypto/x509/x_name.cX509_NAME_INTERNALNameX509_NAME_ENTRIESRDNSX509_PUBKEY../deps/openssl/openssl/crypto/x509/x_pubkey.calgorpublic_keyX509_REQ_INFOX509_REQreq_infoX509_CINF../deps/openssl/openssl/crypto/x509/x_x509.cvalidityissuerUIDsubjectUIDcert_infoX509_CERT_AUXtrustrejectaliaskeyidother../deps/openssl/openssl/crypto/x509v3/pcy_cache.c../deps/openssl/openssl/crypto/x509v3/pcy_data.c../deps/openssl/openssl/crypto/x509v3/pcy_tree.cIPAddressRangeIPAddressOrRangeIPAddressChoiceIPAddressFamilyassertion failed: X509v3_addr_is_canonical(addr)../deps/openssl/openssl/crypto/x509v3/v3_addr.cminmaxu.addressPrefixu.addressRangeu.inheritu.addressesOrRangesaddressFamilyipAddressChoiceassertion failed: f->addressFamily->data != NULLassertion failed: aor->u.addressRange == NULLassertion failed: memcmp(min, max, length) <= 0IPAddrBlocksIPv4-SAFIIPv6-SAFIsection:,name:,value:%*sIPv4%*sIPv6%*sUnknown AFI %u (Unicast) (Multicast) (Unicast/Multicast) (MPLS) (Tunnel) (VPLS) (BGP MDT) (MPLS-labeled VPN) (Unknown SAFI %u): inherit : /%d %d.%d.%d.%d%x%s%s%02x[%d]assertion failed: chain != NULL && sk_X509_num(chain) > 0assertion failed: ctx != NULL || ext != NULLassertion failed: ctx == NULL || ctx->verify_cb != NULLassertion failed: x != NULLAUTHORITY_KEYIDothernameX400NameEdiPartyNameemailDNSURIDirName%XIP AddressRegistered IDothername:X400Name:EdiPartyName:email:%sDNS:%sURI:%sDirName:IP Address:%d.%d.%d.%d:%XIP Address:Registered ID:../deps/openssl/openssl/crypto/x509v3/v3_alt.cvalue=RIDIPdirNameotherNamemoveASRangeASIdOrRangeASIdentifierChoiceASIdentifiersassertion failed: (*choice)->u.inherit == NULL../deps/openssl/openssl/crypto/x509v3/v3_asid.cassertion failed: (*choice)->u.asIdsOrRanges == NULLu.idu.rangeu.asIdsOrRangesasnumrdiassertion failed: (a->type == ASIdOrRange_id && a->u.id != NULL) || (a->type == ASIdOrRange_range && a->u.range != NULL && a->u.range->min != NULL && a->u.range->max != NULL)assertion failed: (b->type == ASIdOrRange_id && b->u.id != NULL) || (b->type == ASIdOrRange_range && b->u.range != NULL && b->u.range->min != NULL && b->u.range->max != NULL)assertion failed: aor != NULL && min != NULL && max != NULLassertion failed: ASN1_INTEGER_cmp(a_min, b_min) <= 0assertion failed: ASIdentifierChoice_is_canonical(choice)ASRDIAutonomous System NumbersRouting Domain Identifiers%*s%s: %*sinherit %*s%s %*s%s-../deps/openssl/openssl/crypto/x509v3/v3_conf.c,section=critical,DER:ASN1:CERTIFICATEPOLICIESPOLICYINFOPOLICYQUALINFOUSERNOTICENOTICEREF%*sPolicy: CriticalNon Critical%*sNo Qualifiers policyidqualifierspqualidd.cpsurid.usernoticenoticerefexptextorganizationnoticenos../deps/openssl/openssl/crypto/x509v3/v3_cpols.cia5orgpolicyIdentifierCPSuserNoticeexplicitTextnoticeNumbers%*sCPS: %s %*sUser Notice: %*sUnknown Qualifier: %*sOrganization: %s %*sNumber%s: (null)%*sExplicit Text: %s DIST_POINT_NAMEDIST_POINTCRL_DIST_POINTSISSUING_DIST_POINT../deps/openssl/openssl/crypto/x509v3/v3_crld.creasonsCRLissuerfullnamerelativenameUnusedunusedKey CompromisekeyCompromiseCA CompromiseCACompromiseAffiliation ChangedaffiliationChangedSupersededsupersededCessation Of OperationcessationOfOperationCertificate HoldcertificateHoldPrivilege WithdrawnprivilegeWithdrawnAA CompromiseAACompromisename.fullnamename.relativenamedistpointCRLDistributionPointsonlyuseronlyCAonlysomereasonsindirectCRLonlyattronlyAA%*sOnly User Certificates %*sOnly CA Certificates %*sIndirect CRL Only Some Reasons%*sOnly Attribute Certificates %*s %*sFull Name: %*sRelative Name: %*s%*s%s: %*s Reasons%*sCRL Issuer: OTHERNAMEEDIPARTYNAMEGENERAL_NAMEGENERAL_NAMEStype_idnameAssignerpartyNamed.otherNamed.rfc822Named.dNSNamed.x400Addressd.directoryNamed.ediPartyNamed.uniformResourceIdentifierd.iPAddressd.registeredIDGeneralNamesACCESS_DESCRIPTIONAUTHORITY_INFO_ACCESSmethod../deps/openssl/openssl/crypto/x509v3/v3_info.c - ../deps/openssl/openssl/crypto/x509v3/v3_lib.cGENERAL_SUBTREENAME_CONSTRAINTS../deps/openssl/openssl/crypto/x509v3/v3_ncons.cminimummaximumpermittedSubtreesexcludedSubtreespermittedexcludedPermittedExcludedIP:%d.%d.%d.%d/%d.%d.%d.%d%*sPath Length Constraint: infinite%*sPolicy Language: %*sPolicy Text: %s ../deps/openssl/openssl/crypto/x509v3/v3_pci.clanguagepathlenpolicyhex:text:PROXY_POLICYPROXY_CERT_INFO_EXTENSIONpolicyLanguagepcPathLengthConstraintproxyPolicyPOLICY_CONSTRAINTSrequireExplicitPolicyinhibitPolicyMappingRequire Explicit PolicyInhibit Policy Mapping../deps/openssl/openssl/crypto/x509v3/v3_pcons.cPKEY_USAGE_PERIODnotBeforenotAfterNot Before: Not After: POLICY_MAPPINGPOLICY_MAPPINGSissuerDomainPolicysubjectDomainPolicy../deps/openssl/openssl/crypto/x509v3/v3_pmaps.c%s:%s%*s%s../deps/openssl/openssl/crypto/x509v3/v3_prn.c: %s %*s%*s../deps/openssl/openssl/crypto/x509v3/v3_purp.cSSL clientsslclientSSL serversslserverNetscape SSL servernssslserverS/MIME signingsmimesignS/MIME encryptionsmimeencryptCRL signingcrlsignAny PurposeanyOCSP helperocsphelperTime Stamp signingtimestampsign../deps/openssl/openssl/crypto/x509v3/v3_skey.chashSXNETIDSXNET../deps/openssl/openssl/crypto/x509v3/v3_sxnet.czoneuserids%*sVersion: %ld (0x%lX) %*sZone: %s, User: TLS_FEATUREstatus_requeststatus_request_v2../deps/openssl/openssl/crypto/x509v3/v3_tlsf.c../deps/openssl/openssl/crypto/x509v3/v3_utl.cTRUEFALSEYyYESyesNNOno-0xxn--../deps/openssl/openssl/ssl/d1_lib.c../deps/openssl/openssl/ssl/d1_msg.c../deps/openssl/openssl/ssl/d1_srtp.cSRTP_AES128_CM_SHA1_80SRTP_AES128_CM_SHA1_32SRTP_AEAD_AES_128_GCMSRTP_AEAD_AES_256_GCM../deps/openssl/openssl/ssl/pqueue.cassertion failed: m../deps/openssl/openssl/ssl/s3_enc.cBBCCC../deps/openssl/openssl/ssl/ssl_conf.ccmd=no_ssl3no_tls1no_tls1_1no_tls1_2bugsno_compcompecdh_singleno_ticketserverpreflegacy_renegotiationlegacy_server_connectno_renegotiationno_resumption_on_renegno_legacy_server_connectstrictSignatureAlgorithmssigalgsClientSignatureAlgorithmsclient_sigalgsCurvescurvesECDHParametersnamed_curveCipherStringProtocolMinProtocolmin_protocolMaxProtocolmax_protocolOptionsVerifyModeCertificatePrivateKeyServerInfoFileChainCAPathchainCApathChainCAFilechainCAfileVerifyCAPathverifyCApathVerifyCAFileverifyCAfileClientCAFileClientCAPathDHParametersdhparam+automaticautomaticSSLv2SessionTicketEmptyFragmentsBugsCompressionServerPreferenceNoResumptionOnRenegotiationDHSingleECDHSingleUnsafeLegacyRenegotiationEncryptThenMacNoRenegotiationPeerRequestRequireOncecheck_suiteb_cipher_listct_move_sctsct_strictd2i_SSL_SESSIONdane_ctx_enabledane_mtype_setdane_tlsa_adddo_dtls1_writedo_ssl3_writedtls1_buffer_recorddtls1_check_timeout_numdtls1_heartbeatdtls1_preprocess_fragmentdtls1_process_buffered_recordsdtls1_process_recorddtls1_read_bytesdtls1_read_faileddtls1_retransmit_messagedtls1_write_app_data_bytesDTLSv1_listendtls_construct_change_cipher_specdtls_construct_hello_verify_requestdtls_get_reassembled_messagedtls_process_hello_verifydtls_wait_for_dryOPENSSL_init_sslossl_statem_client_read_transitionossl_statem_server_read_transitionread_state_machinessl3_change_cipher_statessl3_check_cert_and_algorithmssl3_ctrlssl3_ctx_ctrlssl3_digest_cached_recordsssl3_do_change_cipher_specssl3_final_finish_macssl3_generate_key_blockssl3_generate_master_secretssl3_get_recordssl3_init_finished_macssl3_output_cert_chainssl3_read_bytesssl3_read_nssl3_setup_key_blockssl3_setup_read_bufferssl3_setup_write_bufferssl3_take_macssl3_write_bytesssl3_write_pendingssl_add_cert_chainssl_add_cert_to_bufssl_add_clienthello_renegotiate_extssl_add_clienthello_tlsextssl_add_clienthello_use_srtp_extSSL_add_dir_cert_subjects_to_stackSSL_add_file_cert_subjects_to_stackssl_add_serverhello_renegotiate_extssl_add_serverhello_tlsextssl_add_serverhello_use_srtp_extssl_bad_methodssl_build_cert_chainssl_bytes_to_cipher_listssl_cert_add0_chain_certssl_cert_dupssl_cert_newssl_cert_set0_chainSSL_check_private_keyssl_check_serverhello_tlsextssl_check_srvr_ecc_cert_and_algssl_cipher_process_rulestrssl_cipher_strength_sortSSL_clearSSL_COMP_add_compression_methodSSL_CONF_cmdssl_create_cipher_listSSL_ctrlSSL_CTX_check_private_keySSL_CTX_enable_ctssl_ctx_make_profilesSSL_CTX_newSSL_CTX_set_alpn_protosSSL_CTX_set_cipher_listSSL_CTX_set_client_cert_engineSSL_CTX_set_ct_validation_callbackSSL_CTX_set_session_id_contextSSL_CTX_set_ssl_versionSSL_CTX_use_certificateSSL_CTX_use_certificate_ASN1SSL_CTX_use_certificate_fileSSL_CTX_use_PrivateKey_ASN1SSL_CTX_use_PrivateKey_fileSSL_CTX_use_psk_identity_hintSSL_CTX_use_RSAPrivateKeySSL_CTX_use_RSAPrivateKey_ASN1SSL_CTX_use_RSAPrivateKey_fileSSL_CTX_use_serverinfoSSL_CTX_use_serverinfo_filessl_dane_dupSSL_dane_enablessl_do_configSSL_do_handshakeSSL_dup_CA_listSSL_enable_ctssl_get_new_sessionssl_get_prev_sessionssl_get_server_cert_indexssl_get_sign_pkeyssl_init_wbio_bufferSSL_load_client_CA_filessl_module_initSSL_newssl_parse_clienthello_renegotiate_extssl_parse_clienthello_tlsextssl_parse_clienthello_use_srtp_extssl_parse_serverhello_renegotiate_extssl_parse_serverhello_tlsextssl_parse_serverhello_use_srtp_extSSL_peekSSL_readSSL_renegotiateSSL_renegotiate_abbreviatedssl_scan_clienthello_tlsextssl_scan_serverhello_tlsextssl_session_dupSSL_SESSION_newSSL_SESSION_print_fpSSL_SESSION_set1_idSSL_SESSION_set1_id_contextSSL_set_alpn_protosssl_set_certSSL_set_cipher_listSSL_set_ct_validation_callbackSSL_set_fdssl_set_pkeySSL_set_rfdSSL_set_sessionSSL_set_session_id_contextSSL_set_session_ticket_extSSL_set_wfdSSL_shutdownSSL_SRP_CTX_initssl_start_async_jobssl_undefined_functionssl_undefined_void_functionSSL_use_certificateSSL_use_certificate_ASN1SSL_use_certificate_fileSSL_use_PrivateKeySSL_use_PrivateKey_ASN1SSL_use_PrivateKey_fileSSL_use_psk_identity_hintSSL_use_RSAPrivateKeySSL_use_RSAPrivateKey_ASN1SSL_use_RSAPrivateKey_filessl_validate_ctssl_verify_cert_chainSSL_writestate_machinetls12_check_peer_sigalgtls1_change_cipher_statetls1_check_duplicate_extensionstls1_enctls1_export_keying_materialtls1_get_curvelisttls1_PRFtls1_setup_key_blocktls1_set_server_sigalgstls_client_key_exchange_post_worktls_construct_certificate_requesttls_construct_cke_dhetls_construct_cke_ecdhetls_construct_cke_gosttls_construct_cke_psk_preambletls_construct_cke_rsatls_construct_cke_srptls_construct_client_certificatetls_construct_client_hellotls_construct_client_key_exchangetls_construct_client_verifytls_construct_finishedtls_construct_hello_requesttls_construct_new_session_tickettls_construct_server_certificatetls_construct_server_donetls_construct_server_hellotls_construct_server_key_exchangetls_get_message_bodytls_get_message_headertls_post_process_client_hellotls_post_process_client_key_exchangetls_prepare_client_certificatetls_process_certificate_requesttls_process_cert_statustls_process_cert_verifytls_process_change_cipher_spectls_process_cke_dhetls_process_cke_ecdhetls_process_cke_gosttls_process_cke_psk_preambletls_process_cke_rsatls_process_cke_srptls_process_client_certificatetls_process_client_hellotls_process_client_key_exchangetls_process_finishedtls_process_key_exchangetls_process_new_session_tickettls_process_next_prototls_process_server_certificatetls_process_server_donetls_process_server_hellotls_process_ske_dhetls_process_ske_ecdhetls_process_ske_psk_preambletls_process_ske_srpuse_certificate_chain_fileapp data in handshakeattempt to reuse session in different contextat least TLS 1.0 needed in FIPS modeat least (D)TLS 1.2 needed in Suite B modebad change cipher specbad databad data returned by callbackbad decompressionbad dh valuebad digest lengthbad ecc certbad ecpointbad handshake lengthbad hello requestbad lengthbad packet lengthbad protocol version numberbad rsa encryptbad signaturebad srp a lengthbad srp parametersbad srtp mki valuebad srtp protection profile listbad ssl filetypebad valuebad write retrybio not setblock cipher pad is wrongbn libca dn length mismatchca key too smallca md too weakccs received earlycertificate verify failedcert cb errorcert length mismatchcipher code wrong lengthcipher or hash unavailableclienthello tlsextcompressed length too longcompression disabledcompression failurecompression id not within private rangecompression library errorconnection type not setcontext not dane enabledcookie gen callback failurecookie mismatchcustom ext handler already installeddane already enableddane cannot override mtype fulldane not enableddane tlsa bad certificatedane tlsa bad certificate usagedane tlsa bad data lengthdane tlsa bad digest lengthdane tlsa bad matching typedane tlsa bad public keydane tlsa bad selectordane tlsa null datadata between ccs and finisheddata length too longdecryption faileddecryption failed or bad record macdh key too smalldh public value length is wrongdigest check faileddtls message too bigduplicate compression idecc cert not for signingecdh required for suiteb modeee key too smallempty srtp protection profile listencrypted length too longerror in received cipher listerror setting tlsa base domainexceeds max fragment sizeexcessive message sizeextra data in messagefailed to init asyncfragmented client hellogot a fin before a ccshttps proxy requesthttp requestillegal Suite B digestinappropriate fallbackinconsistent compressioninconsistent extmsinvalid commandinvalid compression algorithminvalid configuration nameinvalid ct validation typeinvalid null cmd nameinvalid sequence numberinvalid serverinfo datainvalid srp usernameinvalid status responseinvalid ticket keys lengthlength mismatchlength too longlength too shortlibrary buglibrary has no ciphersmissing dsa signing certmissing ecdsa signing certmissing rsa certificatemissing rsa encrypting certmissing rsa signing certcan't find SRP server parammissing tmp dh keymissing tmp ecdh keyno certificates returnedno certificate assignedno certificate setno ciphers availableno ciphers specifiedno cipher matchno client cert methodno compression specifiedPeer haven't sent GOST certificate, required for selected ciphersuiteno method specifiedno pem extensionsno private key assignedno protocols availableno renegotiationno required digestno shared cipherno shared signature algorithmsno srtp profilesno valid sctsno verify cookie callbacknull ssl ctxnull ssl method passedold session cipher not returnedold session compression algorithm not returnedpacket length too longparse tlsextpath too longpeer did not return a certificatepem name bad prefixpem name too shortpipeline failureprotocol is shutdownpsk identity not foundpsk no client cbpsk no server cbread bio not setread timeout expiredrecord length mismatchrecord too smallrenegotiate ext too longrenegotiation encoding errrenegotiation mismatchrequired cipher missingrequired compression algorithm missingscsv received when renegotiatingsct verification failedserverhello tlsextsession id context uninitializedshutdown while in initsignature algorithms errorsignature for non signing certificateerror with the srp paramssrtp could not allocate profilessrtp protection profile list too longsrtp unknown protection profilessl3 ext invalid servernamessl3 ext invalid servername typessl3 session id too longsslv3 alert bad certificatesslv3 alert bad record macsslv3 alert certificate expiredsslv3 alert certificate revokedsslv3 alert certificate unknownsslv3 alert decompression failuresslv3 alert handshake failuresslv3 alert illegal parametersslv3 alert no certificatesslv3 alert unexpected messagesslv3 alert unsupported certificatessl command section emptyssl command section not foundssl ctx has no default ssl versionssl handshake failuressl library has no ciphersssl negative lengthssl section emptyssl section not foundssl session id callback failedssl session id conflictssl session id context too longssl session id too longssl session id has bad lengthssl session version mismatchtlsv1 alert access deniedtlsv1 alert decode errortlsv1 alert decryption failedtlsv1 alert decrypt errortlsv1 alert export restrictiontlsv1 alert inappropriate fallbacktlsv1 alert insufficient securitytlsv1 alert internal errortlsv1 alert no renegotiationtlsv1 alert protocol versiontlsv1 alert record overflowtlsv1 alert unknown catlsv1 alert user cancelledtlsv1 bad certificate hash valuetlsv1 bad certificate status responsetlsv1 certificate unobtainabletlsv1 unrecognized nametlsv1 unsupported extensionpeer does not accept heartbeatsheartbeat request already pendingtls illegal exporter labeltls invalid ecpointformat listtoo many warn alertsunable to find ecdh parametersunable to find public key parametersunable to load ssl3 md5 routinesunable to load ssl3 sha1 routinesunexpected messageunexpected recorduninitializedunknown alert typeunknown certificate typeunknown cipher returnedunknown cipher typeunknown cmd nameunknown commandunknown digestunknown key exchange typeunknown pkey typeunknown protocolunknown ssl versionunknown stateunsafe legacy renegotiation disabledunsupported compression algorithmunsupported elliptic curveunsupported protocolunsupported ssl versionunsupported status typeuse srtp not negotiatedversion too highversion too lowwrong certificate typewrong cipher returnedwrong curvewrong signature lengthwrong signature sizewrong signature typewrong ssl versionwrong version numberx509 libx509 verification setup problems../deps/openssl/openssl/ssl/t1_enc.cextended master secretmaster secretkey expansion../deps/openssl/openssl/crypto/asn1/a_bitstr.c../deps/openssl/openssl/crypto/asn1/a_d2i_fp.c../deps/openssl/openssl/crypto/asn1/a_digest.c../deps/openssl/openssl/crypto/asn1/a_dup.c../deps/openssl/openssl/crypto/asn1/a_gentm.c%04d%02d%02d%02d%02d%02dZJanFebMarAprMayJunJulAugSepOctNovDec%s %2d %02d:%02d:%02d%.*s %d%s../deps/openssl/openssl/crypto/asn1/a_i2d_fp.c../deps/openssl/openssl/crypto/asn1/a_mbstr.c%ldminsize=maxsize='()+,-./:=?../deps/openssl/openssl/crypto/asn1/a_sign.cMASK:nombstrpkixutf8only../deps/openssl/openssl/crypto/asn1/a_strnid.c../deps/openssl/openssl/crypto/asn1/a_verify.c../deps/openssl/openssl/crypto/asn1/asn1_gen.ctag=ASCIIUTF8HEXBITLISTBOOLINTENUMOIDUTCGENTIMEOCTOCTETSTRINGBITSTRBITSTRINGUNIVIA5UTF8StringBMPVISIBLEPRINTABLET61TELETEXSTRINGGeneralStringGENSTRNUMERICSEQEXPEXPLICITIMPIMPLICITOCTWRAPSEQWRAPSETWRAPBITWRAPFORMFORMATChar=string=DIRoid_section../deps/openssl/openssl/crypto/asn1/asn_moid.cstbl_section../deps/openssl/openssl/crypto/asn1/asn_mstbl.cmasknomaskfield=../deps/openssl/openssl/crypto/asn1/asn_pack.c../deps/openssl/openssl/crypto/asn1/evp_asn1.casn1_int_octnumoct\ ../deps/openssl/openssl/crypto/asn1/f_int.c../deps/openssl/openssl/crypto/asn1/i2d_pr.cNETSCAPE_CERT_SEQUENCEPBEPARAM../deps/openssl/openssl/crypto/asn1/p5_pbe.cPBE2PARAMPBKDF2PARAM../deps/openssl/openssl/crypto/asn1/p5_pbev2.ckeyfuncencryptionkeylengthprf%s 0 %s %s%lu (%s0x%lx) ../deps/openssl/openssl/crypto/asn1/t_pkey.c%s%s ../deps/openssl/openssl/crypto/asn1/tasn_prn.c :EXTERNAL TYPE %s ERROR: selector [%d] invalid { %*s} Unprocessed type %d (%s)%*s%s OF %s { NULL BOOL ABSENT%s (%s) (%ld unused bits) BIGNUMCBIGNUM../deps/openssl/openssl/crypto/asn1/x_info.cLONGZLONG../deps/openssl/openssl/crypto/asn1/x_long.c%ld ../deps/openssl/openssl/crypto/asn1/x_pkey.cX509_SIGX509_VAL../deps/openssl/openssl/crypto/bio/b_addr.cassertion failed: bai != NULL../deps/openssl/openssl/crypto/bio/b_sock.cassertion failed: l == 4host=../deps/openssl/openssl/crypto/bio/b_sock2.c../deps/openssl/openssl/crypto/bn/bn_add.c../deps/openssl/openssl/crypto/bn/bn_blind.c../deps/openssl/openssl/crypto/bn/bn_ctx.c../deps/openssl/openssl/crypto/bn/bn_div.c../deps/openssl/openssl/crypto/bn/bn_exp.c../deps/openssl/openssl/crypto/bn/bn_exp2.c../deps/openssl/openssl/crypto/bn/bn_gcd.c../deps/openssl/openssl/crypto/bn/bn_intern.c../deps/openssl/openssl/crypto/bn/bn_mod.c../deps/openssl/openssl/crypto/bn/bn_prime.cassertion failed: bits > prime_multiplier_bits../deps/openssl/openssl/crypto/bn/bn_rand.c../deps/openssl/openssl/crypto/bn/bn_recp.c../deps/openssl/openssl/crypto/bn/bn_sqrt.cCMS_IssuerAndSerialNumberCMS_CertificateChoicesCMS_SignerInfoCMS_RevocationInfoChoiceCMS_SignedDataCMS_KeyTransRecipientInfoCMS_OtherKeyAttributeCMS_RecipientKeyIdentifierCMS_RecipientEncryptedKeyCMS_OriginatorPublicKeyCMS_KeyAgreeRecipientInfoCMS_KEKRecipientInfoCMS_PasswordRecipientInfoCMS_RecipientInfoCMS_EnvelopedDataCMS_DigestedDataCMS_EncryptedDataCMS_CompressedDataCMS_ContentInfoCMS_Attributes_SignCMS_Attributes_VerifyCMS_ReceiptRequestCMS_Receiptd.certificated.extendedCertificated.v1AttrCertd.v2AttrCertCMS_OtherCertificateFormatotherCertFormatotherCertsiddigestAlgorithmsignedAttrsunsignedAttrsCMS_SignerIdentifierd.issuerAndSerialNumberd.subjectKeyIdentifierd.crlCMS_OtherRevocationInfoFormatotherRevInfoFormatotherRevInfodigestAlgorithmsencapContentInfocertificatescrlssignerInfosCMS_EncapsulatedContentInfoeContentTypeeContentridkeyEncryptionAlgorithmencryptedKeykeyAttrIdkeyAttrCMS_KeyAgreeRecipientIdentifierd.rKeyIdoriginatorukmrecipientEncryptedKeysCMS_OriginatorIdentifierOrKeyd.originatorKeykekidCMS_KEKIdentifierkeyIdentifierkeyDerivationAlgorithmd.ktrid.karid.kekrid.pwrid.oriCMS_OtherRecipientInfooriTypeoriValue../deps/openssl/openssl/crypto/cms/cms_asn1.coriginatorInforecipientInfosencryptedContentInfounprotectedAttrsCMS_OriginatorInfoCMS_EncryptedContentInfocontentEncryptionAlgorithmencryptedContentcompressionAlgorithmd.signedDatad.envelopedDatad.digestedDatad.encryptedDatad.authenticatedDatad.compressedDataCMS_AuthenticatedDatamacAlgorithmauthAttrsunauthAttrsCMS_ATTRIBUTESsignedContentIdentifierreceiptsFromreceiptsToCMS_ReceiptsFromd.allOrFirstTierd.receiptListoriginatorSignatureValueCMS_SharedInfokeyInfoentityUInfosuppPubInfo../deps/openssl/openssl/crypto/cms/cms_env.c../deps/openssl/openssl/crypto/cms/cms_io.c../deps/openssl/openssl/crypto/cms/cms_kari.c../deps/openssl/openssl/crypto/cms/cms_lib.c../deps/openssl/openssl/crypto/cms/cms_pwri.c../deps/openssl/openssl/crypto/cms/cms_sd.c../deps/openssl/openssl/crypto/conf/conf_lib.cgroup= name=../deps/openssl/openssl/crypto/ct/ct_b64.c../deps/openssl/openssl/crypto/ct/ct_x509v3.clongdes(%s)../deps/openssl/openssl/crypto/dh/dh_pmeth.cdh_paramgen_prime_lendh_rfc5114dh_paramgen_generatordh_paramgen_subprime_lendh_paramgen_type../deps/openssl/openssl/crypto/dsa/dsa_gen.c../deps/openssl/openssl/crypto/dsa/dsa_pmeth.cdsa_paramgen_bitsdsa_paramgen_q_bitsdsa_paramgen_mdOpenSSL 'dlfcn' shared library method../deps/openssl/openssl/crypto/dso/dso_dlfcn.cfilename(): symname(lib%s.so%s.so../deps/openssl/openssl/crypto/ec/ec2_oct.c../deps/openssl/openssl/crypto/ec/ec2_smpl.c../deps/openssl/openssl/crypto/ec/ec_pmeth.cec_paramgen_curveec_param_encexplicitecdh_kdf_mdecdh_cofactor_mode../deps/openssl/openssl/crypto/ec/ec_print.cDynamic engine loading support../deps/openssl/openssl/crypto/engine/eng_dyn.cv_checkbind_engineSpecifies the path to the new ENGINE shared libraryNO_VCHECKSpecifies to continue even if version checking fails (boolean)Specifies an ENGINE id name for loadingWhether to add a loaded ENGINE to the internal list (0=no,1=yes,2=mandatory)Specifies whether to load from 'DIR_ADD' directories (0=no,1=yes,2=mandatory)Adds a directory from which ENGINEs can be loadedLoad up the ENGINE specified by other settingsSoftware engine support(TEST_ENG_OPENSSL_RC4) test_init_key() called (TEST_ENG_OPENSSL_PKEY)Loading Private key %s ../deps/openssl/openssl/crypto/engine/eng_table.c../deps/openssl/openssl/crypto/evp/bio_enc.cmessage digestDESXdesxDESdesDES3des3DES-EDE-ECBdes-ede-ecbDES-EDE3-ECBdes-ede3-ecbdes3-wrapidearc2rc2-128rc2-64rc2-40BFbfblowfishCASTcastCAST-cbccast-cbcaes128-wrapaes128aes192-wrapAES192aes192aes256-wrapaes256camellia128CAMELLIA192camellia192camellia256ripemdrmd160../deps/openssl/openssl/crypto/evp/cmeth_lib.c../deps/openssl/openssl/crypto/evp/encode.cassertion failed: ctx->length <= (int)sizeof(ctx->enc_data)aesni_init_keyaes_init_keyaes_ocb_cipheraes_t4_init_keyaes_wrap_cipheralg_module_initcamellia_init_keychacha20_poly1305_ctrlcmll_t4_init_keydes_ede3_wrap_cipherdo_sigver_initEVP_CipherInit_exEVP_CIPHER_CTX_copyEVP_CIPHER_CTX_ctrlEVP_CIPHER_CTX_set_key_lengthEVP_DecryptFinal_exEVP_DecryptUpdateEVP_DigestInit_exEVP_EncryptFinal_exEVP_EncryptUpdateEVP_MD_CTX_copy_exEVP_MD_sizeEVP_OpenInitEVP_PBE_alg_addEVP_PBE_alg_add_typeEVP_PBE_CipherInitEVP_PBE_scryptEVP_PKCS82PKEYEVP_PKEY2PKCS8EVP_PKEY_asn1_add0EVP_PKEY_copy_parametersEVP_PKEY_CTX_ctrlEVP_PKEY_CTX_ctrl_strEVP_PKEY_CTX_dupEVP_PKEY_decryptEVP_PKEY_decrypt_initEVP_PKEY_decrypt_oldEVP_PKEY_deriveEVP_PKEY_derive_initEVP_PKEY_derive_set_peerEVP_PKEY_encryptEVP_PKEY_encrypt_initEVP_PKEY_encrypt_oldEVP_PKEY_get0_DHEVP_PKEY_get0_DSAEVP_PKEY_get0_EC_KEYEVP_PKEY_get0_hmacEVP_PKEY_get0_RSAEVP_PKEY_keygenEVP_PKEY_keygen_initEVP_PKEY_meth_add0EVP_PKEY_meth_newEVP_PKEY_newEVP_PKEY_paramgenEVP_PKEY_paramgen_initEVP_PKEY_set1_engineEVP_PKEY_signEVP_PKEY_sign_initEVP_PKEY_verifyEVP_PKEY_verify_initEVP_PKEY_verify_recoverEVP_PKEY_verify_recover_initEVP_SignFinalEVP_VerifyFinalint_ctx_newPKCS5_PBE_keyivgenPKCS5_v2_PBE_keyivgenPKCS5_v2_PBKDF2_keyivgenPKCS5_v2_scrypt_keyivgenpkey_set_typerc2_magic_to_methrc5_ctrlaes key setup failedbad decryptbuffer too smallcamellia key setup failedcipher parameter errorcommand not supportedcopy errorctrl not implementedctrl operation not implementeddata not multiple of block lengthdecode errordifferent key typesdifferent parameterserror loading sectionerror setting fips modeexpecting an hmac keyexpecting an rsa keyexpecting a dh keyexpecting a dsa keyexpecting a ec keyfips mode not supportedillegal scrypt parametersinitialization errorinput not initializedinvalid digestinvalid fips modeinvalid keyinvalid key lengthinvalid operationkeygen failurememory limit exceededmessage digest is nullmethod not supportedmissing parametersno cipher setno default digestno digest setno key setno operation setoperation not supported for this keytypeoperaton not initializedpartially overlapping bufferspbkdf2 errorpkey application asn1 method already registeredpkey asn1 method already registeredprivate key decode errorprivate key encode errorpublic key not rsaunknown cipherunknown optionunknown pbe algorithmunsupported algorithmunsupported cipherunsupported keylengthunsupported key derivation functionunsupported key sizeunsupported number of roundsunsupported prfunsupported private key algorithmunsupported salt typewrap mode not allowedwrong final block length../deps/openssl/openssl/crypto/evp/evp_pbe.c../deps/openssl/openssl/crypto/evp/p5_crpt.cassertion failed: EVP_CIPHER_key_length(cipher) <= (int)sizeof(md_tmp)assertion failed: EVP_CIPHER_iv_length(cipher) <= 16pkey_tls1_prf_ctrl_strpkey_tls1_prf_derivemissing parametervalue missingOBJ_add_objectOBJ_createOBJ_dupOBJ_NAME_new_indexOBJ_nid2lnOBJ_nid2objOBJ_nid2snoid existsunknown nidd2i_ocsp_nonceOCSP_basic_add1_statusOCSP_basic_signOCSP_basic_verifyOCSP_cert_id_newocsp_check_delegatedocsp_check_idsocsp_check_issuerOCSP_check_validityocsp_match_issueridOCSP_parse_urlOCSP_request_signOCSP_request_verifyOCSP_response_get1_basicparse_http_line1certificate verify errordigest errerror in nextupdate fielderror in thisupdate fielderror parsing urlmissing ocspsigning usagenextupdate before thisupdatenot basic responseno certificates in chainno response datano revoked timeno signer keyprivate key does not match certificaterequest not signedresponse contains no revocation dataroot ca not trustedserver response errorserver response parse errorsignature failuresigner certificate not foundstatus expiredstatus not yet validstatus too oldunknown message digestunsupported requestorname type../deps/openssl/openssl/crypto/ocsp/ocsp_ht.c Code=,Reason=%*scrlUrl: %*scrlNum: %*scrlTime: ../deps/openssl/openssl/crypto/ocsp/v3_ocsp.c%*sIssuer: %*sb2i_dssb2i_PVK_biob2i_rsacheck_bitlen_dsacheck_bitlen_rsad2i_PKCS8PrivateKey_biod2i_PKCS8PrivateKey_fpdo_b2ido_b2i_biodo_blob_headerdo_pk8pkeydo_pk8pkey_fpdo_PVK_bodydo_PVK_headeri2b_PVKi2b_PVK_bioload_ivPEM_ASN1_readPEM_ASN1_read_bioPEM_ASN1_writePEM_ASN1_write_bioPEM_def_callbackPEM_do_headerPEM_get_EVP_CIPHER_INFOPEM_readPEM_read_bioPEM_read_bio_DHparamsPEM_read_bio_ParametersPEM_read_DHparamsPEM_read_PrivateKeyPEM_SignFinalPEM_writePEM_write_bioPEM_write_PrivateKeyPEM_X509_INFO_readPEM_X509_INFO_read_bioPEM_X509_INFO_write_biobad base64 decodebad end linebad iv charsbad magic numberbad password readbad version numberbio write failurecipher is nullerror converting private keyexpecting private key blobexpecting public key blobheader too longinconsistent headerkeyblob header parse errorkeyblob too shortmissing dek ivnot dek infonot encryptednot proc typeno start lineproblems getting passwordpvk data too shortpvk too shortread keyshort headerunexpected dek ivunsupported encryptionunsupported key components../deps/openssl/openssl/crypto/pem/pem_info.c../deps/openssl/openssl/crypto/pkcs12/p12_add.c../deps/openssl/openssl/crypto/pkcs12/p12_crpt.c../deps/openssl/openssl/crypto/pkcs12/p12_decr.c../deps/openssl/openssl/crypto/pkcs12/p12_key.cPKCS12_createPKCS12_gen_macPKCS12_initPKCS12_item_decrypt_d2iPKCS12_item_i2d_encryptPKCS12_item_pack_safebagPKCS12_key_gen_ascPKCS12_key_gen_uniPKCS12_key_gen_utf8PKCS12_newpassPKCS12_pack_p7dataPKCS12_pack_p7encdataPKCS12_parsePKCS12_pbe_cryptPKCS12_PBE_keyivgenPKCS12_SAFEBAG_create0_p8infPKCS12_SAFEBAG_create0_pkcs8PKCS12_SAFEBAG_create_pkcs8_encryptPKCS12_setup_macPKCS12_set_macPKCS12_unpack_authsafesPKCS12_unpack_p7dataPKCS12_verify_macPKCS8_encryptPKCS8_set0_pbecant pack structurecontent type not dataencode errorencrypt errorerror setting encrypted data typeinvalid null argumentinvalid null pkcs12 pointeriv gen errorkey gen errormac absentmac generation errormac setup errormac string set errormac verify failureparse errorpkcs12 algor cipherinit errorpkcs12 cipherfinal errorpkcs12 pbe crypt errorunknown digest algorithmunsupported pkcs12 mode../deps/openssl/openssl/crypto/pkcs7/pk7_attr.cdo_pkcs7_signed_attribPKCS7_add0_attrib_signing_timePKCS7_add_attrib_smimecapPKCS7_add_certificatePKCS7_add_crlPKCS7_add_recipient_infoPKCS7_add_signaturePKCS7_add_signerPKCS7_bio_add_digestpkcs7_copy_existing_digestPKCS7_ctrlPKCS7_dataDecodePKCS7_dataFinalPKCS7_dataInitPKCS7_dataVerifyPKCS7_decryptpkcs7_decrypt_rinfopkcs7_encode_rinfoPKCS7_encryptPKCS7_finalPKCS7_find_digestPKCS7_get0_signersPKCS7_RECIP_INFO_setPKCS7_set_cipherPKCS7_set_contentPKCS7_set_digestPKCS7_set_typePKCS7_signPKCS7_signatureVerifyPKCS7_SIGNER_INFO_setPKCS7_SIGNER_INFO_signPKCS7_sign_add_signerPKCS7_simple_smimecapPKCS7_verifycipher has no object identifiercipher not initializedcontent and data presentctrl errordecrypt errordigest failureencryption ctrl failureencryption not supported for this key typeerror adding recipienterror setting cipherinvalid null pointerinvalid signed data typeno contentno matching digest type foundno recipient matches certificateno signatures on datano signersoperation not supported on this typepkcs7 add signature errorpkcs7 add signer errorpkcs7 datasignsigning ctrl failuresigning not supported for this key typesmime text errorunable to find certificateunable to find mem biounable to find message digestunknown digest typeunknown operationunsupported cipher typeunsupported content typewrong content typewrong pkcs7 type....................../deps/openssl/openssl/crypto/rand/md_rand.cYou need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.htmlRAND_bytesPRNG not seededcheck_padding_mdencode_pkcs1int_rsa_verifyold_rsa_priv_decodepkey_rsa_ctrlpkey_rsa_ctrl_strpkey_rsa_signpkey_rsa_verifypkey_rsa_verifyrecoverrsa_algor_to_mdrsa_builtin_keygenRSA_check_keyRSA_check_key_exrsa_cms_decryptrsa_item_verifyRSA_meth_dupRSA_meth_newRSA_meth_set1_namersa_mgf1_to_mdRSA_new_methodRSA_NULLRSA_null_private_decryptRSA_null_private_encryptRSA_null_public_decryptRSA_null_public_encryptrsa_ossl_private_decryptrsa_ossl_private_encryptrsa_ossl_public_decryptrsa_ossl_public_encryptRSA_padding_add_noneRSA_padding_add_PKCS1_OAEPRSA_padding_add_PKCS1_OAEP_mgf1RSA_padding_add_PKCS1_PSSRSA_padding_add_PKCS1_PSS_mgf1RSA_padding_add_PKCS1_type_1RSA_padding_add_PKCS1_type_2RSA_padding_add_SSLv23RSA_padding_add_X931RSA_padding_check_noneRSA_padding_check_PKCS1_OAEPRSA_padding_check_PKCS1_OAEP_mgf1RSA_padding_check_PKCS1_type_1RSA_padding_check_PKCS1_type_2RSA_padding_check_SSLv23RSA_padding_check_X931RSA_printRSA_print_fprsa_priv_encodersa_pss_to_ctxrsa_pub_decodeRSA_setup_blindingRSA_signRSA_sign_ASN1_OCTET_STRINGRSA_verifyRSA_verify_ASN1_OCTET_STRINGRSA_verify_PKCS1_PSS_mgf1algorithm mismatchbad e valuebad fixed header decryptbad pad byte countblock type is not 01block type is not 02data greater than mod lendata too largedata too large for key sizedata too large for modulusdata too smalldata too small for key sizedigest does not matchdigest too big for rsa keydmp1 not congruent to ddmq1 not congruent to dd e not congruent to 1first octet invalidillegal or unsupported padding modeinvalid digest lengthinvalid headerinvalid labelinvalid message lengthinvalid mgf1 mdinvalid oaep parametersinvalid paddinginvalid padding modeinvalid pss parametersinvalid pss saltleninvalid salt lengthinvalid trailerinvalid x931 digestiqmp not inverse of qkey size too smalllast octet invalidmodulus too largeno public exponentnull before block missingn does not equal p qoaep decoding errorpadding check failedpkcs decoding errorp not primeq not primersa operations not supportedsalt length check failedsalt length recovery failedsslv3 rollback attackthe asn1 object identifier is not known for this mdunknown algorithm typeunknown mask digestunknown padding typeunsupported encryption typeunsupported label sourceunsupported mask algorithmunsupported mask parameterunsupported signature type../deps/openssl/openssl/crypto/rsa/rsa_gen.c../deps/openssl/openssl/crypto/rsa/rsa_none.c../deps/openssl/openssl/crypto/rsa/rsa_oaep.cdef_serial_cbdef_time_cbESS_add_signing_certess_CERT_ID_new_initess_SIGNING_CERT_new_initint_ts_RESP_verify_tokenPKCS7_to_TS_TST_INFOTS_ACCURACY_set_microsTS_ACCURACY_set_millisTS_ACCURACY_set_secondsts_check_imprintsts_check_noncests_check_policyts_check_signing_certsts_check_status_infots_compute_imprintts_CONF_invalidTS_CONF_load_certTS_CONF_load_certsTS_CONF_load_keyts_CONF_lookup_failTS_CONF_set_default_enginets_get_status_textTS_MSG_IMPRINT_set_algoTS_REQ_set_msg_imprintTS_REQ_set_nonceTS_REQ_set_policy_idTS_RESP_create_responsets_RESP_create_tst_infoTS_RESP_CTX_add_failure_infoTS_RESP_CTX_add_mdTS_RESP_CTX_add_policyTS_RESP_CTX_newTS_RESP_CTX_set_accuracyTS_RESP_CTX_set_certsTS_RESP_CTX_set_def_policyTS_RESP_CTX_set_signer_certTS_RESP_CTX_set_status_infots_RESP_get_policyTS_RESP_set_genTime_with_precisionTS_RESP_set_status_infoTS_RESP_set_tst_infots_RESP_signTS_RESP_verify_signatureTS_TST_INFO_set_accuracyTS_TST_INFO_set_msg_imprintTS_TST_INFO_set_nonceTS_TST_INFO_set_policy_idTS_TST_INFO_set_serialTS_TST_INFO_set_timeTS_TST_INFO_set_tsaTS_VERIFYts_verify_certTS_VERIFY_CTX_newbad pkcs7 typebad typecannot load certificatecannot load private keycould not set enginecould not set timedetached contentess add signing cert erroress signing certificate errorinvalid signer certificate purposemessage imprint mismatchnonce mismatchnonce not returnedno time stamp tokenpkcs7 add signed attr errorpkcs7 to ts tst info failedpolicy mismatchresponse setup errorthere must be one signertime syscall errortoken not presenttoken presenttsa name mismatchtsa untrustedtst info setup errorts datasignunacceptable policyunsupported md algorithmunsupported versionvar bad valuecannot find config variableclose_consoleecho_consolegeneral_allocate_booleangeneral_allocate_promptnoecho_consoleopen_consoleUI_create_methodUI_ctrlUI_dup_error_stringUI_dup_info_stringUI_dup_input_booleanUI_dup_input_stringUI_dup_verify_stringUI_get0_resultUI_new_methodUI_processUI_set_resultcommon ok and cancel charactersindex too largeindex too smallno result bufferprocessing errorresult too smallsys$assign errorsys$dassgn errorsys$qiow errorunknown control commandunknown ttyget errno valueadd_cert_dirbuild_chainby_file_ctrlcheck_name_constraintscheck_policydane_i2ddir_ctrlget_cert_by_subjectNETSCAPE_SPKI_b64_decodeNETSCAPE_SPKI_b64_encodeX509at_add1_attrX509v3_add_extX509_ATTRIBUTE_create_by_NIDX509_ATTRIBUTE_create_by_OBJX509_ATTRIBUTE_create_by_txtX509_ATTRIBUTE_get0_dataX509_ATTRIBUTE_set1_dataX509_check_private_keyX509_CRL_diffX509_CRL_print_fpX509_EXTENSION_create_by_NIDX509_EXTENSION_create_by_OBJX509_get_pubkey_parametersX509_load_cert_crl_fileX509_load_cert_fileX509_load_crl_fileX509_LOOKUP_meth_newX509_NAME_add_entryX509_NAME_ENTRY_create_by_NIDX509_NAME_ENTRY_create_by_txtX509_NAME_ENTRY_set_objectX509_NAME_onelineX509_NAME_printX509_OBJECT_newX509_print_ex_fpx509_pubkey_decodeX509_PUBKEY_get0X509_PUBKEY_setX509_REQ_check_private_keyX509_REQ_print_exX509_REQ_print_fpX509_REQ_to_X509X509_STORE_add_certX509_STORE_add_crlX509_STORE_CTX_get1_issuerX509_STORE_CTX_initX509_STORE_CTX_newX509_STORE_CTX_purpose_inheritX509_to_X509_REQX509_TRUST_addX509_TRUST_setX509_verify_certakid mismatchbad selectorbad x509 filetypebase64 decode errorcant check dh keycert already in hash tablecrl already deltacrl verify failureidp mismatchinvalid directoryinvalid field nameinvalid trustissuer mismatchkey type mismatchkey values mismatchloading cert dirloading defaultsnewer crl not newerno cert set for us to verifyno crl numberpublic key decode errorpublic key encode errorshould retryunable to find parameters in chainunable to get certs public keyunknown key typeunknown purpose idunknown trust idwrong lookup typewrong type../deps/openssl/openssl/crypto/x509/x509_req.c../deps/openssl/openssl/crypto/x509/x509_trs.ccompatibleSSL ClientSSL ServerS/MIME emailObject SignerOCSP responderOCSP requestTSA server../deps/openssl/openssl/crypto/x509v3/pcy_node.c../deps/openssl/openssl/crypto/x509v3/v3_akey.calwaysBASIC_CONSTRAINTScaCA../deps/openssl/openssl/crypto/x509v3/v3_bcons.c../deps/openssl/openssl/crypto/x509v3/v3_bitst.cObject SigningobjsignreservedSSL CAsslCAS/MIME CAemailCAObject Signing CAobjCADigital SignaturedigitalSignatureNon RepudiationnonRepudiationKey EnciphermentkeyEnciphermentData EnciphermentdataEnciphermentKey AgreementkeyAgreementCertificate SignkeyCertSignCRL SigncRLSignEncipher OnlyencipherOnlyDecipher OnlydecipherOnly../deps/openssl/openssl/crypto/x509v3/v3_enum.cUnspecifiedunspecifiedRemove From CRLremoveFromCRLEXTENDED_KEY_USAGE../deps/openssl/openssl/crypto/x509v3/v3_extku.c../deps/openssl/openssl/crypto/x509v3/v3_ia5.ca2i_GENERAL_NAMEaddr_validate_path_internalASIdentifierChoice_canonizeASIdentifierChoice_is_canonicalbignum_to_stringcopy_emailcopy_issuerdo_dirnamedo_ext_i2ddo_ext_nconfgnames_from_sectnamei2s_ASN1_ENUMERATEDi2s_ASN1_IA5STRINGi2s_ASN1_INTEGERi2v_AUTHORITY_INFO_ACCESSnotice_sectionnref_nospolicy_sectionprocess_pci_valuer2i_certpolr2i_pcis2i_ASN1_IA5STRINGs2i_ASN1_INTEGERs2i_ASN1_OCTET_STRINGs2i_skey_idset_dist_point_nameSXNET_add_id_ascSXNET_add_id_INTEGERSXNET_add_id_ulongSXNET_get_id_ascSXNET_get_id_ulongv2i_ASIdentifiersv2i_ASN1_BIT_STRINGv2i_AUTHORITY_INFO_ACCESSv2i_AUTHORITY_KEYIDv2i_BASIC_CONSTRAINTSv2i_crldv2i_EXTENDED_KEY_USAGEv2i_GENERAL_NAMESv2i_GENERAL_NAME_exv2i_idpv2i_IPAddrBlocksv2i_issuer_altv2i_NAME_CONSTRAINTSv2i_POLICY_CONSTRAINTSv2i_POLICY_MAPPINGSv2i_subject_altv2i_TLS_FEATUREv3_generic_extensionX509V3_add1_i2dX509V3_add_valueX509V3_EXT_addX509V3_EXT_add_aliasX509V3_EXT_i2dX509V3_EXT_nconfX509V3_get_sectionX509V3_get_stringX509V3_get_value_boolX509V3_parse_listX509_PURPOSE_addX509_PURPOSE_setbad ip addressbad objectbn dec2bn errorbn to asn1 integer errordirname errordistpoint already setduplicate zone iderror converting zoneerror creating extensionerror in extensionexpected a section nameextension existsextension name errorextension not foundextension setting not supportedextension value errorillegal empty extensionincorrect policy syntax taginvalid asnumberinvalid asrangeinvalid boolean stringinvalid extension stringinvalid inheritanceinvalid ipaddressinvalid multiple rdnsinvalid nameinvalid null nameinvalid null valueinvalid numberinvalid numbersinvalid object identifierinvalid optioninvalid policy identifierinvalid proxy policy settinginvalid purposeinvalid safiinvalid sectioninvalid syntaxissuer decode errormissing valueneed organization and numbersno config databaseno issuer certificateno issuer detailsno policy identifierno proxy cert policy language definedno public keyno subject detailsoperation not definedothername errorpolicy language already definedpolicy path lengthpolicy path length already definedpolicy when proxy language requires no policysection not foundunable to get issuer detailsunable to get issuer keyidunknown bit string argumentunknown extensionunknown extension nameunsupported optionunsupported typeuser too longa2d_ASN1_OBJECTa2i_ASN1_INTEGERa2i_ASN1_STRINGappend_expASN1_BIT_STRING_set_bitasn1_cbasn1_check_tlenasn1_collectasn1_d2i_ex_primitiveASN1_d2i_fpasn1_d2i_read_bioASN1_digestasn1_do_adbasn1_do_lockASN1_dupasn1_ex_c2iasn1_find_endASN1_GENERALIZEDTIME_adjASN1_generate_v3asn1_get_int64ASN1_get_objectasn1_get_uint64ASN1_i2d_bioASN1_i2d_fpASN1_item_d2i_fpASN1_item_dupasn1_item_embed_d2iasn1_item_embed_newASN1_item_i2d_bioASN1_item_i2d_fpASN1_item_packASN1_item_signASN1_item_sign_ctxASN1_item_unpackASN1_item_verifyASN1_mbstring_ncopyASN1_OBJECT_newasn1_output_dataASN1_PCTX_newASN1_SCTX_newASN1_signasn1_str2typeasn1_string_get_int64asn1_string_get_uint64ASN1_STRING_setASN1_STRING_TABLE_addasn1_string_to_bnASN1_STRING_type_newasn1_template_ex_d2iasn1_template_newasn1_template_noexp_d2iASN1_TIME_adjASN1_TYPE_get_int_octetstringASN1_TYPE_get_octetstringASN1_UTCTIME_adjASN1_verifyb64_read_asn1B64_write_ASN1BIO_new_NDEFbitstr_cbbn_to_asn1_stringc2i_ASN1_BIT_STRINGc2i_ASN1_INTEGERc2i_ASN1_OBJECTc2i_ibufc2i_uint64_intcollect_datad2i_ASN1_OBJECTd2i_ASN1_UINTEGERd2i_AutoPrivateKeyd2i_PrivateKeyd2i_PublicKeydo_bufdo_tcreatei2d_ASN1_bio_streami2d_ASN1_OBJECTi2d_DSA_PUBKEYi2d_EC_PUBKEYi2d_PrivateKeyi2d_PublicKeyi2d_RSA_PUBKEYlong_c2ioid_module_initparse_taggingPKCS5_pbe2_set_ivPKCS5_pbe2_set_scryptPKCS5_pbe_setPKCS5_pbe_set0_algorPKCS5_pbkdf2_setpkcs5_scrypt_setSMIME_read_ASN1SMIME_textstbl_module_inituint32_c2iuint64_c2iX509_CRL_add0_revokedX509_INFO_newx509_name_encodex509_name_ex_d2ix509_name_ex_newX509_PKEY_newadding objectasn1 parse errorasn1 sig parse erroraux errorbad object headerbmpstring is wrong lengthboolean is wrong lengthcontext not initialiseddata is wrongdepth exceededdigest and key type not supportederror getting timeerror setting cipher paramsexpecting an integerexpecting an objectexplicit length mismatchexplicit tag not constructedfield missingfirst num too largeillegal bitstring formatillegal booleanillegal charactersillegal formatillegal hexillegal implicit tagillegal integerillegal negative valueillegal nested taggingillegal nullillegal null valueillegal objectillegal optional anyillegal options on item templateillegal paddingillegal tagged anyillegal time valueillegal zero contentinteger not ascii formatinteger too large for longinvalid bit string bits leftinvalid bmpstring lengthinvalid digitinvalid mime typeinvalid modifierinvalid object encodinginvalid scrypt parametersinvalid separatorinvalid string table valueinvalid universalstring lengthinvalid utf8stringinvalid valuelist errormime no content typemime parse errormime sig parse errormissing eocmissing second numbermstring not universalmstring wrong tagnested asn1 stringnested too deepnon hex charactersnot ascii formatnot enough datano content typeno matching choice typeno multipart body failureno multipart boundaryno sig content typenull is wrong lengthobject not ascii formatodd number of charssecond number too largesequence length mismatchsequence not constructedsequence or set needs configshort linesig invalid mime typestreaming not supportedstring too longstring too shorttime not ascii formattoo largetoo longtoo smalltype not constructedtype not primitiveunexpected eocuniversalstring is wrong lengthunknown formatunknown message digest algorithmunknown object typeunknown public key typeunknown signature algorithmunknown tagunsupported any defined by typeunsupported public key typewrong integer typewrong public key typewrong tag../deps/openssl/openssl/crypto/asn1/asn_mime.c-----BEGIN %s----- -----END %s----- smime.p7mapplication/x-pkcs7-application/pkcs7-MIME-Version: 1.0%sContent-Type: multipart/signed; protocol="%ssignature"; micalg=""; boundary="----%s"%s%sThis is an S/MIME signed message%s%s------%s%s%s------%s%sContent-Type: %ssignature; name="smime.p7s"%sContent-Transfer-Encoding: base64%sContent-Disposition: attachment; filename="smime.p7s"%s%s%s------%s--%s%senveloped-datasigned-receiptsigned-datacerts-onlycompressed-datasmime.p7z filename="%s"%sContent-Type: %smime; smime-type=%s; name="%s"%sContent-Transfer-Encoding: base64%s%smultipart/signedboundaryapplication/x-pkcs7-signatureapplication/pkcs7-signaturetype: application/x-pkcs7-mimeapplication/pkcs7-mimeContent-Type: text/plain text/plainsha-256sha-384sha-512gostr3411-94../deps/openssl/openssl/crypto/asn1/bio_ndef.c../deps/openssl/openssl/crypto/asn1/f_string.c../deps/openssl/openssl/crypto/asn1/p5_scrypt.cSCRYPT_PARAMScostParameterblockSizeparallelizationParameterkeyLengthasync_ctx_newASYNC_init_threadasync_job_newASYNC_pause_jobasync_start_funcASYNC_start_jobfailed to set poolfailed to swap contextinvalid pool sizeblowfish(ptr)acpt_stateaddr_stringsBIO_acceptBIO_accept_exBIO_ADDR_newBIO_callback_ctrlBIO_connectBIO_ctrlBIO_getsBIO_get_host_ipBIO_get_new_indexBIO_get_portBIO_listenBIO_lookupbio_make_pairBIO_meth_newBIO_newBIO_new_fileBIO_new_mem_bufBIO_nreadBIO_nread0BIO_nwriteBIO_nwrite0BIO_parse_hostservBIO_putsBIO_readBIO_socketBIO_socket_nbioBIO_sock_infoBIO_sock_initBIO_writebuffer_ctrlconn_ctrlconn_statedgram_sctp_readdgram_sctp_writefile_ctrlfile_readlinebuffer_ctrlmem_writeaccept erroraddrinfo addr is not af inetambiguous host or servicebad fopen modeconnect errorgethostbyname addr is not af inetgetsockname errorgetsockname truncated addressgetting socktypeinvalid socketin uselisten v6 onlylookup returned nothingmalformed host or servicenbio connect errorno accept addr or service specifiedno hostname or service specifiedno port definedno such filenull parameterunable to bind socketunable to create socketunable to keepaliveunable to listen socketunable to nodelayunable to reuseaddrunavailable ip familyunknown info typeunsupported ip familyunsupported methodunsupported protocol familywrite to read only BIOWSAStartupbnrandBN_BLINDING_convert_exBN_BLINDING_create_paramBN_BLINDING_invert_exBN_BLINDING_newBN_BLINDING_updateBN_bn2decBN_bn2hexbn_compute_wNAFBN_CTX_getBN_CTX_newBN_CTX_startBN_divBN_div_recpBN_expbn_expand_internalBN_GENCB_newBN_generate_dsa_nonceBN_generate_prime_exBN_GF2m_modBN_GF2m_mod_expBN_GF2m_mod_mulBN_GF2m_mod_solve_quadBN_GF2m_mod_solve_quad_arrBN_GF2m_mod_sqrBN_GF2m_mod_sqrtBN_lshiftBN_mod_exp2_montBN_mod_exp_montBN_mod_exp_mont_consttimeBN_mod_exp_mont_wordBN_mod_exp_recpBN_mod_exp_simpleBN_mod_inverseBN_mod_inverse_no_branchBN_mod_lshift_quickBN_mod_sqrtBN_mpi2bnBN_newBN_randBN_rand_rangeBN_rshiftbn_set_wordsBN_usubarg2 lt arg3bad reciprocalbignum too longbits too smallcalled with even modulusdiv by zeroencoding errorexpand on static bignum datainput not reducedinvalid lengthinvalid rangeinvalid shiftnot a squarenot initializedno inverseno solutionprivate key too largep is not primetoo many iterationstoo many temporary variables../deps/openssl/openssl/crypto/bn/bn_gf2m.cBUF_MEM_growBUF_MEM_grow_cleanBUF_MEM_new../deps/openssl/openssl/crypto/cms/cms_dd.c../deps/openssl/openssl/crypto/cms/cms_enc.ccheck_contentCMS_add0_certCMS_add0_recipient_keyCMS_add0_recipient_passwordCMS_add1_ReceiptRequestCMS_add1_recipient_certCMS_add1_signercms_add1_signingTimeCMS_compresscms_CompressedData_createcms_CompressedData_init_biocms_copy_contentcms_copy_messageDigestCMS_dataCMS_dataFinalCMS_dataInitCMS_decryptCMS_decrypt_set1_keyCMS_decrypt_set1_passwordCMS_decrypt_set1_pkeycms_DigestAlgorithm_find_ctxcms_DigestAlgorithm_init_biocms_DigestedData_do_finalCMS_digest_verifycms_encode_ReceiptCMS_encryptcms_EncryptedContent_init_bioCMS_EncryptedData_decryptCMS_EncryptedData_encryptCMS_EncryptedData_set1_keyCMS_EnvelopedData_createcms_EnvelopedData_init_biocms_enveloped_data_initcms_env_asn1_ctrlCMS_finalcms_get0_certificate_choicesCMS_get0_contentcms_get0_econtent_typecms_get0_envelopedcms_get0_revocation_choicescms_get0_signedcms_msgSigDigest_add1CMS_ReceiptRequest_create0cms_Receipt_verifyCMS_RecipientInfo_decryptCMS_RecipientInfo_encryptcms_RecipientInfo_kari_encryptCMS_RecipientInfo_kari_get0_algCMS_RecipientInfo_kari_get0_orig_idCMS_RecipientInfo_kari_get0_reksCMS_RecipientInfo_kari_orig_id_cmpcms_RecipientInfo_kekri_decryptcms_RecipientInfo_kekri_encryptCMS_RecipientInfo_kekri_get0_idCMS_RecipientInfo_kekri_id_cmpCMS_RecipientInfo_ktri_cert_cmpcms_RecipientInfo_ktri_decryptcms_RecipientInfo_ktri_encryptCMS_RecipientInfo_ktri_get0_algsCMS_RecipientInfo_ktri_get0_signer_idcms_RecipientInfo_pwri_cryptCMS_RecipientInfo_set0_keyCMS_RecipientInfo_set0_passwordCMS_RecipientInfo_set0_pkeycms_sd_asn1_ctrlcms_set1_iascms_set1_keyidcms_set1_SignerIdentifierCMS_set_detachedCMS_signcms_signed_data_initcms_SignerInfo_content_signCMS_SignerInfo_signCMS_SignerInfo_verifycms_signerinfo_verify_certCMS_SignerInfo_verify_contentCMS_sign_receiptCMS_streamCMS_uncompressCMS_verifyadd signer errorcertificate already presentcertificate has no keyidcipher initialisation errorcipher parameter initialisation errorcms datafinal errorcms libcontentidentifier mismatchcontent not foundcontent type mismatchcontent type not compressed datacontent type not enveloped datacontent type not signed datacontent verify errorctrl failureerror getting public keyerror reading messagedigest attributeerror setting keyerror setting recipientinfoinvalid encrypted key lengthinvalid key encryption parametermd bio init errormessagedigest attribute wrong lengthmessagedigest wrong lengthmsgsigdigest errormsgsigdigest verification failuremsgsigdigest wrong lengthneed one signernot a signed receiptnot encrypted datanot keknot key agreementnot key transportnot pwrinot supported for this key typeno cipherno keyno key or certno matching digestno matching recipientno matching signatureno msgsigdigestno passwordno private keyno receipt requestreceipt decode errorrecipient errorsignfinal errorstore init errortype not compressed datatype not datatype not digested datatype not encrypted datatype not enveloped dataunable to finalize contextunknown digest algorihmunknown idunsupported kek algorithmunsupported key encryption algorithmunsupported recipient typeunsupported recpientinfo typeunwrap errorunwrap failureverification failurewrap error../deps/openssl/openssl/crypto/conf/conf_api.cENVassertion failed: vv == NULLOpenSSL default../deps/openssl/openssl/crypto/conf/conf_def.cline [%s] %s=%s [[%s]] WIN32CONF_dump_fpCONF_loadCONF_load_fpCONF_parse_listdef_loaddef_load_biomodule_initmodule_load_dsomodule_runNCONF_dump_bioNCONF_dump_fpNCONF_get_number_eNCONF_get_sectionNCONF_get_stringNCONF_loadNCONF_load_bioNCONF_load_fpNCONF_newstr_copyerror loading dsolist cannot be nullmissing close square bracketmissing equal signmissing init functionmodule initialization errorno close braceno confno conf or environment variableno sectionno valueunable to create new sectionunknown module namevariable expansion too longvariable has no valueCRYPTO_dup_ex_dataCRYPTO_free_ex_dataCRYPTO_get_ex_new_indexCRYPTO_memdupCRYPTO_new_ex_dataCRYPTO_set_ex_dataFIPS_mode_setget_and_lockOPENSSL_buf2hexstrOPENSSL_hexstr2bufOPENSSL_init_cryptoillegal hex digitodd number of digitsCTLOG_newCTLOG_new_from_base64ctlog_new_from_confctlog_store_load_ctx_newCTLOG_STORE_load_filectlog_store_load_logCTLOG_STORE_newct_base64_decodeCT_POLICY_EVAL_CTX_newct_v1_log_id_from_pkeyi2o_SCTi2o_SCT_LISTi2o_SCT_signatureo2i_SCTo2i_SCT_LISTo2i_SCT_signatureSCT_CTX_newSCT_CTX_verifySCT_newSCT_new_from_base64SCT_set0_log_idSCT_set1_extensionsSCT_set1_log_idSCT_set1_signatureSCT_set_log_entry_typeSCT_set_signature_nidSCT_set_versioninvalid log id lengthlog conf invalidlog conf invalid keylog conf missing descriptionlog conf missing keylog key invalidsct future timestampsct invalidsct invalid signaturesct list invalidsct log id mismatchsct not setsct unsupported versionunrecognized signature nidunsupported entry typenot setunknown versionunknown logunverifiedinvalidunknown status%*sSigned Certificate Timestamp: %*sVersion : unknown %*sv1 (0x0) %*sLog : %s %*sLog ID : %*sTimestamp : %*sExtensions: %*sSignature : %*s %.14s.%03dZ%02X%02Xcompute_keyDHparams_print_fpdh_builtin_genparamsdh_cms_decryptdh_cms_set_peerkeydh_cms_set_shared_infoDH_meth_dupDH_meth_newDH_meth_set1_nameDH_new_methoddh_param_decodedh_priv_decodedh_priv_encodedh_pub_decodedh_pub_encodedo_dh_printgenerate_keypkey_dh_derivepkey_dh_keygenbad generatorbn decode errorbn errorinvalid public keykdf parameter errorkeys not setno parameters setno private valueparameter encoding errorpeer key errorshared info error../deps/openssl/openssl/crypto/dh/dh_kdf.cDSAparams_printDSAparams_print_fpdsa_builtin_paramgendsa_builtin_paramgen2DSA_do_signDSA_do_verifyDSA_meth_dupDSA_meth_newDSA_meth_set1_nameDSA_new_methoddsa_param_decodeDSA_print_fpdsa_priv_decodedsa_priv_encodedsa_pub_decodedsa_pub_encodeDSA_signDSA_sign_setupDSA_SIG_newold_dsa_priv_decodepkey_dsa_ctrlpkey_dsa_ctrl_strpkey_dsa_keygenbad q valueinvalid digest typeinvalid parametersseed_len is less than the length of qdlfcn_bind_funcdlfcn_loaddlfcn_mergerdlfcn_name_converterdlfcn_unloaddl_bind_funcdl_loaddl_mergerdl_name_converterdl_unloadDSO_bind_funcDSO_convert_filenameDSO_ctrlDSO_freeDSO_get_filenameDSO_global_lookupDSO_loadDSO_mergeDSO_new_methodDSO_pathbyaddrDSO_set_filenameDSO_up_refvms_bind_symvms_loadvms_mergervms_unloadwin32_bind_funcwin32_globallookupwin32_joinerwin32_loadwin32_mergerwin32_name_converterwin32_pathbyaddrwin32_splitterwin32_unloadcontrol command faileddso already loadedempty file structurefailurefilename too bigcleanup method function failedincorrect file syntaxcould not load the shared libraryname translation failedno filenamea null shared library handle was usedset filename failedthe meth_data stack is corruptcould not bind to the requested symbol namecould not unload the shared libraryfunctionality not supported../deps/openssl/openssl/crypto/ec/ec2_mult.cBN_to_felemd2i_ECParametersd2i_ECPKParametersd2i_ECPrivateKeydo_EC_KEY_printecdh_cms_decryptecdh_cms_set_shared_infoECDH_compute_keyecdh_simple_compute_keyECDSA_do_sign_exECDSA_do_verifyECDSA_sign_exECDSA_sign_setupECDSA_SIG_newECDSA_verifyeckey_param2typeeckey_param_decodeeckey_priv_decodeeckey_priv_encodeeckey_pub_decodeeckey_pub_encodeeckey_type2paramECParameters_printECParameters_print_fpECPKParameters_printECPKParameters_print_fpecp_nistz256_get_affineecp_nistz256_mult_precomputeecp_nistz256_points_mulecp_nistz256_pre_comp_newecp_nistz256_windowed_mulecx_key_opecx_priv_encodeecx_pub_encodeec_asn1_group2curveec_asn1_group2fieldidec_GF2m_montgomery_point_multiplyec_GF2m_simple_group_check_discriminantec_GF2m_simple_group_set_curveec_GF2m_simple_oct2pointec_GF2m_simple_point2octec_GF2m_simple_point_get_affine_coordinatesec_GF2m_simple_point_set_affine_coordinatesec_GF2m_simple_set_compressed_coordinatesec_GFp_mont_field_decodeec_GFp_mont_field_encodeec_GFp_mont_field_mulec_GFp_mont_field_set_to_oneec_GFp_mont_field_sqrec_GFp_mont_group_set_curveec_GFp_nistp224_group_set_curveec_GFp_nistp224_points_mulec_GFp_nistp224_point_get_affine_coordinatesec_GFp_nistp256_group_set_curveec_GFp_nistp256_points_mulec_GFp_nistp256_point_get_affine_coordinatesec_GFp_nistp521_group_set_curveec_GFp_nistp521_points_mulec_GFp_nistp521_point_get_affine_coordinatesec_GFp_nist_field_mulec_GFp_nist_field_sqrec_GFp_nist_group_set_curveec_GFp_simple_blind_coordinatesec_GFp_simple_group_check_discriminantec_GFp_simple_group_set_curveec_GFp_simple_make_affineec_GFp_simple_oct2pointec_GFp_simple_point2octec_GFp_simple_points_make_affineec_GFp_simple_point_get_affine_coordinatesec_GFp_simple_point_set_affine_coordinatesec_GFp_simple_set_compressed_coordinatesEC_GROUP_checkEC_GROUP_check_discriminantEC_GROUP_copyEC_GROUP_get_curve_GF2mEC_GROUP_get_curve_GFpEC_GROUP_get_degreeEC_GROUP_get_ecparametersEC_GROUP_get_ecpkparametersEC_GROUP_get_pentanomial_basisEC_GROUP_get_trinomial_basisEC_GROUP_newEC_GROUP_new_by_curve_nameec_group_new_from_dataEC_GROUP_new_from_ecparametersEC_GROUP_new_from_ecpkparametersEC_GROUP_set_curve_GF2mEC_GROUP_set_curve_GFpEC_GROUP_set_generatorEC_KEY_check_keyEC_KEY_copyEC_KEY_generate_keyEC_KEY_newEC_KEY_new_methodEC_KEY_oct2privEC_KEY_printEC_KEY_print_fpEC_KEY_priv2octEC_KEY_set_public_key_affine_coordinatesec_key_simple_check_keyec_key_simple_oct2privec_key_simple_priv2octEC_POINTs_make_affineEC_POINT_addEC_POINT_cmpEC_POINT_copyEC_POINT_dblEC_POINT_get_affine_coordinates_GF2mEC_POINT_get_affine_coordinates_GFpEC_POINT_get_Jprojective_coordinates_GFpEC_POINT_invertEC_POINT_is_at_infinityEC_POINT_is_on_curveEC_POINT_make_affineEC_POINT_newEC_POINT_oct2pointEC_POINT_point2octEC_POINT_set_affine_coordinates_GF2mEC_POINT_set_affine_coordinates_GFpEC_POINT_set_compressed_coordinates_GF2mEC_POINT_set_compressed_coordinates_GFpEC_POINT_set_Jprojective_coordinates_GFpEC_POINT_set_to_infinityec_pre_comp_newec_wNAF_mulec_wNAF_precompute_multi2d_ECParametersi2d_ECPKParametersi2d_ECPrivateKeyi2o_ECPublicKeynistp224_pre_comp_newnistp256_pre_comp_newnistp521_pre_comp_newo2i_ECPublicKeyold_ec_priv_decodeossl_ecdh_compute_keyossl_ecdsa_sign_sigossl_ecdsa_verify_sigpkey_ecx_derivepkey_ec_ctrlpkey_ec_ctrl_strpkey_ec_derivepkey_ec_keygenpkey_ec_paramgenpkey_ec_signasn1 errorbignum out of rangecoordinates out of rangecurve does not support ecdhcurve does not support signingd2i ecpkparameters failurediscriminant is zeroec group new by name failurefield too largegf2m not supportedgroup2pkparameters failurei2d ecpkparameters failureincompatible objectsinvalid compressed pointinvalid compression bitinvalid curveinvalid encodinginvalid fieldinvalid forminvalid group orderinvalid output lengthinvalid peer keyinvalid pentanomial basisinvalid private keyinvalid trinomial basismissing private keyneed new setup valuesnot a NIST primenot implementedoperation not supportedpassed null parameterpkparameters2group failurepoint arithmetic failurepoint at infinitypoint is not on curverandom number generation failedslot fullundefined generatorundefined orderunknown groupunknown orderunsupported fieldwrong curve parameterswrong orderbase64 encodingassertion failed: ctx->buf_off < (int)sizeof(ctx->buf)../deps/openssl/openssl/crypto/evp/bio_b64.cassertion failed: ctx->buf_len <= (int)sizeof(ctx->buf)assertion failed: ctx->buf_len >= ctx->buf_offassertion failed: i <= nassertion failed: ctx->buf_off <= (int)sizeof(ctx->buf)assertion failed: ctx->tmp_len <= 3assertion failed: ctx->buf_off + i < (int)sizeof(ctx->buf)asn1assertion failed: ctx->buflen <= ctx->bufsize../deps/openssl/openssl/crypto/asn1/bio_asn1.cAPI fatal error handler returned after process out of memory on the background thread <--- Last few GCs ---> %s <--- JS stacktrace ---> %s API fatal error handler returned after process out of memory # # Fatal error in %s # %s # # # Fatal %s OOM in %s # javascriptAllocation failed - JavaScript heap out of memoryAllocation failed - process out of memoryCheck failed: %s.isolate == context->GetIsolate()handle_checker.CheckGlobalAndEternalHandles()Creating snapshot took %0.3f ms cold_snapshot_blob.raw_size > 0 && cold_snapshot_blob.data != nullptr(warmup_source) != nullptrWarming up snapshot took %0.3f ms source != nullptr || source_length_ == 0v8::Persistent::Newv8::FromJustMaybe value is Nothing.v8::ToLocalCheckedEmpty MaybeLocal.WeakCallbackInfo::GetInternalFieldInternal field out of bounds.HandleScope::HandleScopeEntering the V8 API without proper locking in placeEscapableHandleScope::EscapeEscape value set twicev8::Context::Exit()Cannot exit non-entered contextcontext->IsNativeContext()v8::Context::GetEmbedderData()v8::Context::SetEmbedderData()v8::Context::GetAlignedPointerFromEmbedderData()v8::Context::SetAlignedPointerInEmbedderData()!value_obj->IsJSReceiver() || value_obj->IsTemplateInfo()info->prototype_template()->IsUndefined(i_isolate)info->parent_template()->IsUndefined(i_isolate)v8::FunctionTemplate::Inheritinfo->prototype_provider_template()->IsUndefined(i_isolate)v8::FunctionTemplate::Newv8::FunctionTemplate::NewWithCachev8::FunctionTemplate::SetCallHandlerv8::FunctionTemplate::InstanceTemplate()Reading from empty handlev8::FunctionTemplate::SetLengthv8::FunctionTemplate::SetClassNamev8::FunctionTemplate::SetAcceptAnyReceiverv8::FunctionTemplate::SetHiddenPrototypev8::FunctionTemplate::ReadOnlyPrototypev8::FunctionTemplate::RemovePrototypev8::ObjectTemplate::MarkAsUndetectablev8::ObjectTemplate::SetAccessCheckCallbackv8::ObjectTemplate::SetAccessCheckCallbackWithHandlerv8::ObjectTemplate::SetHandlerv8::ObjectTemplate::SetCallAsFunctionHandlerv8::ObjectTemplate::SetInternalFieldCount()Invalid embedder field countv8::UnboundScript::GetIdv8::UnboundScript::GetLineNumberv8::UnboundScript::GetNamev8::UnboundScript::GetSourceURLv8::UnboundScript::GetSourceMappingURLV8.Executev8::Script::Runv8::PrimitiveArray::Newlength must be equal or greater than zerov8::PrimitiveArray::Setindex must be greater than or equal to 0 and less than the array lengthv8::PrimitiveArray::Getv8::Module::GetExceptionModule status must be kErroredi >= 0i < module_requests->length()i < module_request_positions->length()v8::Module::GetModuleNamespacev8::Module::GetModuleNamespace must be used on an instantiated modulev8::Module::GetUnboundScriptv8::Module::GetUnboundScript must be used on an unevaluated modulev8::Module::InstantiateModulev8::Module::Evaluateself->status() >= i::Module::kInstantiatedV8.ScriptCompilerv8::ScriptCompiler::CompileUnbounddisabled-by-default-v8.compileV8.CompileScriptv8::ScriptCompiler::CompileUnboundScriptv8::ScriptCompiler::CompileModule must be used to compile modulesv8::ScriptCompiler::Compilev8::ScriptCompiler::CompileModuleInvalid ScriptOrigin: is_module must be truev8::ScriptCompiler::CompileFunctionInContextoptions == ScriptCompiler::kNoCompileOptionsV8.CompileStreamedScriptshared->is_wrapped()v8::TryCatch::StackTracev8::JSON::Parsev8::JSON::Stringifyv8::ValueSerializer::WriteValuev8::ValueDeserializer::ReadHeader!private_->has_abortedv8::ValueDeserializer::ReadValuev8::Object::ToStringv8::Object::ToDetailStringv8::Object::ToObjectv8::Object::ToBigIntv8::Object::ToNumberv8::Object::ToIntegerv8::Object::ToInt32v8::Object::ToUint32v8::internal::Internals::CheckInitializedIsolate is not initialized or V8 has diedv8::External::CastCould not convert to externalv8::Object::CastCould not convert to objectv8::Function::CastCould not convert to functionv8::Boolean::CastCould not convert to booleanv8::Name::CastCould not convert to namev8::String::CastCould not convert to stringv8::Symbol::CastCould not convert to symbolv8::Private::CastCould not convert to privatev8::Number::Cast()Could not convert to numberv8::Integer::Castv8::Int32::CastCould not convert to 32-bit signed integerv8::Uint32::CastCould not convert to 32-bit unsigned integerv8::BigInt::CastCould not convert to BigIntv8::Array::CastCould not convert to arrayv8::Map::CastCould not convert to Mapv8_Set_CastCould not convert to Setv8::Promise::CastCould not convert to promisev8::Promise::Resolver::CastCould not convert to promise resolverv8::Proxy::CastCould not convert to proxyv8::WasmCompiledModule::CastCould not convert to wasm compiled modulev8::ArrayBuffer::Cast()Could not convert to ArrayBufferv8::ArrayBufferView::Cast()Could not convert to ArrayBufferViewv8::TypedArray::Cast()Could not convert to TypedArrayv8::Uint8Array::Cast()Could not convert to Uint8Arrayv8::Int8Array::Cast()Could not convert to Int8Arrayv8::Uint16Array::Cast()Could not convert to Uint16Arrayv8::Int16Array::Cast()Could not convert to Int16Arrayv8::Uint32Array::Cast()Could not convert to Uint32Arrayv8::Int32Array::Cast()Could not convert to Int32Arrayv8::Float32Array::Cast()Could not convert to Float32Arrayv8::Float64Array::Cast()Could not convert to Float64Arrayv8::Uint8ClampedArray::Cast()Could not convert to Uint8ClampedArrayv8::BigUint64Array::Cast()Could not convert to BigUint64Arrayv8::BigInt64Array::Cast()Could not convert to BigInt64Arrayv8::DataView::Cast()Could not convert to DataViewv8::SharedArrayBuffer::Cast()Could not convert to SharedArrayBufferv8::Date::Cast()Could not convert to datev8::StringObject::Cast()Could not convert to StringObjectv8::SymbolObject::Cast()Could not convert to SymbolObjectv8::NumberObject::Cast()Could not convert to NumberObjectv8::BigIntObject::Cast()Could not convert to BigIntObjectv8::BooleanObject::Cast()Could not convert to BooleanObjectv8::RegExp::Cast()Could not convert to regular expressionv8::Value::NumberValuev8::Value::IntegerValuev8::Value::Int32Valuev8::Value::Uint32Valuev8::Object::ToArrayIndexv8::Value::TypeOfv8::Value::InstanceOfv8::Object::Setv8::Object::CreateDataPropertyv8::Object::DefineOwnPropertyv8::Object::SetPrivatev8::Object::Getv8::Object::GetPropertyAttributesv8::Object::GetOwnPropertyDescriptorv8::Object::SetPrototypev8::Object::GetPropertyNamesv8::Object::ObjectProtoToStringv8::Object::SetIntegrityLevelv8::Object::Deletev8::Object::Hasv8::Object::HasOwnPropertyv8::Object::HasRealNamedPropertyv8::Object::HasRealIndexedPropertyv8::Object::HasRealNamedCallbackPropertyv8::Object::GetRealNamedPropertyInPrototypeChainv8::Object::GetRealNamedPropertyAttributesInPrototypeChainv8::Object::GetRealNamedPropertyv8::Object::GetRealNamedPropertyAttributes!result.is_null()v8::Object::CallAsFunctionv8::Object::CallAsConstructorv8::Function::Newv8::Function::NewInstanceself->IsJSFunction() && i::JSFunction::cast(*self)->shared()->IsApiFunction()v8::Function::CallFunction to be called is a null pointerdisplayNamev8::String::WriteUtf8expected == valueexpectedEncoding == encodingv8::Object::GetInternalField()v8::Object::SetInternalField()v8::Object::GetAlignedPointerFromInternalField()v8::Object::SetAlignedPointerInInternalField()v8::Object::SetAlignedPointerInInternalFields()Internal field out of boundsisolate->builtins()->builtin(i::Builtins::kIllegal)->IsCode()V8.NewContextv8::Context::Newv8::Context::NewRemoteContextGlobal template needs to have access checks enabled.Global template needs to have access check handlers.v8::ObjectTemplate::NewInstancev8::ObjectTemplate::CastCould not convert to object templatev8::FunctionTemplate::CastCould not convert to function templatev8::Signature::CastCould not convert to signaturev8::AccessorSignature::CastCould not convert to accessor signaturev8::FunctionTemplate::GetFunctionv8::FunctionTemplate::NewRemoteInstanceInstanceTemplate needs to have access checks enabled.InstanceTemplate needs to have access check handlers.v8::External::Newv8::String::NewFromUtf8v8::String::NewFromOneBytev8::String::NewFromTwoBytev8::String::Concatresource && resource->data()v8::String::NewExternalTwoBytev8::String::NewExternalOneBytev8::Object::Newv8::NumberObject::Newv8::NumberObject::NumberValuei::FLAG_harmony_bigintv8::BigIntObject::Newv8::BigIntObject::BigIntValuev8::BooleanObject::Newv8::BooleanObject::BooleanValuev8::StringObject::Newv8::StringObject::StringValuev8::SymbolObject::Newv8::SymbolObject::SymbolValuev8::Date::Newv8::Date::NumberValuev8::Date::DateTimeConfigurationChangeNotificationdate_cache_version->get(0)->IsSmi()v8::RegExp::Newv8::Array::Newv8::Map::Newv8::Map::Clearv8::Map::Getv8::Map::Setv8::Map::Hasv8::Map::Deletev8::Map::AsArrayv8::Set::Newv8::Set::Clearv8::Set::Addv8::Set::Hasv8::Set::Deletev8::Set::AsArrayv8::Promise_Resolver::Newv8::Promise_Resolver::Resolvev8::Promise_Resolver::Rejectv8::Promise::Catchv8::Promise::Thenv8::Promise::HasRejectHandlerv8::Promise::Resultv8_Promise_ResultPromise is still pendingv8::Promise::Statusv8::Proxy::NewWasmCompiledModule::Compile()!maybe.FromMaybe(false) implies i_isolate->has_scheduled_exception()v8_ArrayBuffer_ExternalizeArrayBuffer already externalizedv8::ArrayBuffer::NeuterOnly externalized ArrayBuffers can be neuteredOnly neuterable ArrayBuffers can be neuteredv8::ArrayBuffer::Newbyte_length == 0 || data != nullptrv8::Uint8Array::Newv8::Uint8Array::New(Local, size_t, size_t)length exceeds max allowed valuei::FLAG_harmony_sharedarraybufferv8::Uint8Array::New(Local, size_t, size_t)v8::Int8Array::Newv8::Int8Array::New(Local, size_t, size_t)v8::Int8Array::New(Local, size_t, size_t)v8::Uint16Array::Newv8::Uint16Array::New(Local, size_t, size_t)v8::Uint16Array::New(Local, size_t, size_t)v8::Int16Array::Newv8::Int16Array::New(Local, size_t, size_t)v8::Int16Array::New(Local, size_t, size_t)v8::Uint32Array::Newv8::Uint32Array::New(Local, size_t, size_t)v8::Uint32Array::New(Local, size_t, size_t)v8::Int32Array::Newv8::Int32Array::New(Local, size_t, size_t)v8::Int32Array::New(Local, size_t, size_t)v8::Float32Array::Newv8::Float32Array::New(Local, size_t, size_t)v8::Float32Array::New(Local, size_t, size_t)v8::Float64Array::Newv8::Float64Array::New(Local, size_t, size_t)v8::Float64Array::New(Local, size_t, size_t)v8::Uint8ClampedArray::Newv8::Uint8ClampedArray::New(Local, size_t, size_t)v8::Uint8ClampedArray::New(Local, size_t, size_t)v8::BigUint64Array::Newv8::BigUint64Array::New(Local, size_t, size_t)v8::BigUint64Array::New(Local, size_t, size_t)v8::BigInt64Array::Newv8::BigInt64Array::New(Local, size_t, size_t)v8::BigInt64Array::New(Local, size_t, size_t)v8::DataView::Newv8_SharedArrayBuffer_ExternalizeSharedArrayBuffer already externalizedv8::SharedArrayBuffer::Newv8::Symbol::Newv8::Private::Newv8::BigInt::NewFromWordsi::FLAG_expose_gc(params.array_buffer_allocator) != nullptr(i_isolate->snapshot_blob()) == nullptr[Initializing isolate from scratch took %0.3f ms] v8::Isolate::Dispose()Disposing the isolate that is entered by a thread.V8.GCLowMemoryNotificationstack_limitv8::RangeError::Newv8::ReferenceError::Newv8::SyntaxError::Newv8::TypeError::Newv8::Error::Newv8::Debug::Callisolate->debug()->CheckExecutionState()script->line_ends()->IsFixedArray()!start.IsEmpty()line_ends->length()current_line_end_index < line_ends->length()script->IsWasm()obj->is_suspended()value->IsGeneratorObject()UnknownBuiltinCallbackEvalFunctionInterpretedFunctionHandlerBytecodeHandlerLazyCompileRegExpScriptStubv8::HeapSnapshot::SerializeUnknown serialization formatInvalid stream chunk size--prepare-always-opt --max-inlined-bytecode-size=999999 --max-inlined-bytecode-size-cumulative=999999 --noalways-opt--always-opt--deopt-every-n-times=13Executing custom snapshot script %s took %0.3f ms !try_catch.HasCaught()Not a native contextNegative indexIndex too largeNot a SmiPointer is not alignedFunctionTemplate already instantiatedv8::ObjectTemplate::New!handle_.is_null()is_validObject::cast(READ_FIELD(this, kLengthOffset))->ToArrayLength(&index)Out of memory: HashMap::Initializedisabled-by-default-v8.runtimeV8.ExternalCallback(location_) != nullptrNewArrayV8.ExternalObjectTemplateSetNamedPropertyHandlerv8::Object::SetAccessorAPISetAccessorv8::String::WriteDEOPTIMIZATION PADDINGexpected_size_ == assembler_->pc_offset() - start_offset_no relocembedded objectcode targetruntime entrycommentexternal referenceinternal referenceencoded internal referenceoff heap targetdeopt script offsetdeopt inlining iddeopt reasondeopt indexconstant poolveneer poolglobal handleinternal wasm callwasm code table entryjs to wasm callunknown relocation type () ( (wasm trampoline) ) (deoptimization bailout (size () {}BootstrappingEmptyObjectPrototypeslow_object_with_object_prototype_map[Symbol.iterator]GeneratorFunctionGeneratornextreturnthrowGeneratorFunction with nameGeneratorFunction with home objectGeneratorFunction with name and home object[Symbol.asyncIterator]Async-from-Sync IteratorAsyncGeneratorFunctionAsyncGeneratorAsyncGeneratorFunction with nameAsyncGeneratorFunction with home objectAsyncGeneratorFunction with name and home objectAsyncFunctionAsyncFunction with nameAsyncFunction with home objectAsyncFunction with name and home objectcallable Proxyconstructor ProxygetOwnPropertyDescriptorgetOwnPropertyNamesgetOwnPropertySymbolsispreventExtensionssealdefinePropertiesfreezegetPrototypeOfsetPrototypeOfisExtensibleisFrozenisSealedkeys__defineGetter____defineSetter__hasOwnProperty__lookupGetter____lookupSetter__isPrototypeOfpropertyIsEnumerablevalueOftoLocaleString[Symbol.hasInstance]ArrayisArrayofconcatfindfindIndexpoppushshiftunshiftslicespliceincludesindexOfvaluesforEachfiltermapeverysomereducereduceRightNumbertoExponentialtoFixedtoPrecisiontoStringisFiniteisIntegerisNaNisSafeIntegerparseFloatparseIntNaNMAX_VALUEMIN_VALUENEGATIVE_INFINITYPOSITIVE_INFINITYMAX_SAFE_INTEGERMIN_SAFE_INTEGEREPSILONInfinityBooleanStringfromCharCodefromCodePointanchorbigblinkboldcharAtcharCodeAtcodePointAtendsWithfontcolorfontsizefixeditalicslastIndexOflocaleComparematchnormalizepadEndpadStartrepeatreplacesearchsmallsplitstrikesubsubstrsubstringsupstartsWithtrimtrimLefttrimRighttoLocaleLowerCasetoLocaleUpperCasetoLowerCasetoUpperCaseString IteratorStringIteratorSymbolforkeyForasyncIteratorhasInstanceisConcatSpreadableiteratorspeciestoPrimitivetoStringTagunscopablesDatetoDateStringtoTimeStringtoISOStringtoUTCStringtoGMTStringgetDatesetDategetDaygetFullYearsetFullYeargetHourssetHoursgetMillisecondssetMillisecondsgetMinutessetMinutesgetMonthsetMonthgetSecondssetSecondsgetTimesetTimegetTimezoneOffsetgetUTCDatesetUTCDategetUTCDaygetUTCFullYearsetUTCFullYeargetUTCHourssetUTCHoursgetUTCMillisecondssetUTCMillisecondsgetUTCMinutessetUTCMinutesgetUTCMonthsetUTCMonthgetUTCSecondssetUTCSecondsgetYearsetYeartoJSONtoLocaleDateStringtoLocaleTimeStringPromiseallracecatchcompiletest[Symbol.match][Symbol.replace][Symbol.search][Symbol.split]$_lastMatch$&lastParen$+leftContext$`rightContext$'$1$2$3$4$5$6$7$8$9JSONstringifyMathabsacosacoshasinasinhatanatanhatan2ceilcbrtexpm1clz32coscoshexpfloorfroundhypotimulloglog1plog2log10powrandomroundsinsinhsqrttantanhtruncELN10LN2LOG10ELOG2EPISQRT1_2SQRT2warndirdirxmltablegroupgroupCollapsedgroupEndclearcountResetmarkTimelineprofileprofileEndtimelinetimelineEndtimeEndtimeStampcontextObjectarrayBufferConstructor_DoNotInitializeloadstoreaddandorxorcompareExchangeisLockFreewaitwakenotifyTypedArraycopyWithinsortsubarrayUint8ArrayInt8ArrayUint16ArrayInt16ArrayUint32ArrayInt32ArrayFloat32ArrayFloat64ArrayUint8ClampedArrayBigUint64ArrayBigInt64ArrayDataViewgetInt8setInt8getUint8setUint8getInt16setInt16getUint16setUint16getInt32setInt32getUint32setUint32getFloat32setFloat32getFloat64setFloat64MaphasdeleteSetWeakMapWeakSetProxyrevocableReflectIsConstructorFastAliasedArgumentsSlowAliasedArgumentsJSObject::SetPrototype(result, typed_array_function, false, kDontThrow) .FromJust()BYTES_PER_ELEMENTJSObject::SetPrototype(prototype, typed_array_prototype, false, kDontThrow) .FromJust()call_site_frame_array_symbolcall_site_frame_index_symbolconsole_context_id_symbolconsole_context_name_symbolclass_fields_symbolclass_positions_symboldetailed_stack_trace_symbolelements_transition_symbolerror_end_pos_symbolerror_script_symbolerror_start_pos_symbolfrozen_symbolgeneric_symbolhome_object_symbolintl_initialized_marker_symbolintl_pattern_symbolintl_resolved_symbolinterpreter_trampoline_symbolmegamorphic_symbolnative_context_index_symbolnonextensible_symbolnot_mapped_symbolpremonomorphic_symbolpromise_async_stack_id_symbolpromise_debug_marker_symbolpromise_forwarding_handler_symbolpromise_handled_by_symbolpromise_async_id_symbolsealed_symbolstack_trace_symbolstrict_function_transition_symboluninitialized_symbolasync_iterator_symboliterator_symbolintl_fallback_symbolmatch_all_symbolmatch_symbolreplace_symbolsearch_symbolspecies_symbolsplit_symbolto_primitive_symbolunscopables_symbolhas_instance_symbolis_concat_spreadable_symbolto_string_tag_symbolIteratorPrototypeGeneratorFunctionPrototypeSetIteratorJS_SET_KEY_VALUE_ITERATOR_TYPEMapIteratorJS_MAP_KEY_VALUE_ITERATOR_TYPEJS_MAP_VALUE_ITERATOR_TYPECallSitegetColumnNumbergetEvalOrigingetFileNamegetFunctiongetFunctionNamegetLineNumbergetMethodNamegetPositiongetScriptNameOrSourceURLgetThisgetTypeNameisConstructorisEvalisNativeisToplevelSharedArrayBufferAtomicstrimStarttrimEndflattenflatMapmatchAll[Symbol.matchAll]RegExp String IteratorRegExpStringIteratorfinallyJSObject::DeleteProperty( global, factory->InternalizeUtf8String("BigInt64Array")) .ToChecked()JSObject::DeleteProperty( global, factory->InternalizeUtf8String("BigUint64Array")) .ToChecked()BigIntasUintNasIntNgetBigInt64setBigInt64getBigUint64setBigUint64InternalArrayutils container for native scriptsInternalPackedArraycreatePromiserejectPromiseresolvePromisePostNativesdecodeURIdecodeURIComponentencodeURIencodeURIComponentescapeunescapelength->IsSmi()Smi::ToInt(length) == 0proto->HasSmiOrObjectElements()Array.prototypejoinDate.prototypeFunction.prototypeapplycallassigncreateObject.prototypeRegExp.prototypeexecString.prototypeNumber.prototypeMap.prototypeSet.prototypeWeakMap.prototypeWeakSet.prototypestackTraceLimitv8/free-bufferv8/gcv8/externalizev8/statisticsv8/trigger-failurev8/ignition-statisticsv8::Context::New()Cannot find required extensionCircular extension dependencyError installing extension '%s'. LookupIterator::ACCESS_CHECK != it.state()[Initializing context from scratch took %0.3f ms] native function freeBuffer();native function %s();!constructor_or_backpointer()->IsMap()static_cast(elements_kind) < kElementsKindCountstatic_cast(number) <= static_cast(kMaxNumberOfDescriptors)static_cast(unused_in_property_array) < JSObject::kFieldsAddedstatic_cast(value) <= 255captureStackTraceJSReceiver::SetPrototype(error_fun, global_error, false, kThrowOnError) .FromMaybe(false)JSReceiver::SetPrototype(prototype, handle(global_error->prototype(), isolate), false, kThrowOnError) .FromMaybe(false)static_cast(value) < 256IsJSObjectMap()0 == value0 <= valueprototypeCPPAPITFJTFCTFSTFHASMRecordWriteAdaptorWithExitFrameAdaptorWithBuiltinExitFrameArgumentsAdaptorTrampolineCallFunction_ReceiverIsNullOrUndefinedCallFunction_ReceiverIsNotNullOrUndefinedCallFunction_ReceiverIsAnyCallBoundFunctionCall_ReceiverIsNullOrUndefinedCall_ReceiverIsNotNullOrUndefinedCall_ReceiverIsAnyCallProxyCallVarargsCallWithSpreadCallWithArrayLikeCallForwardVarargsCallFunctionForwardVarargsConstructFunctionConstructBoundFunctionConstructedNonConstructableConstructConstructVarargsConstructWithSpreadConstructWithArrayLikeConstructForwardVarargsConstructFunctionForwardVarargsJSConstructStubGenericJSBuiltinsConstructStubFastNewObjectFastNewClosureFastNewFunctionContextEvalFastNewFunctionContextFunctionCreateRegExpLiteralCreateEmptyArrayLiteralCreateShallowArrayLiteralCreateShallowObjectLiteralConstructProxyJSEntryTrampolineJSConstructEntryTrampolineResumeGeneratorTrampolineInterruptCheckStackCheckStringCharAtStringCodePointAtUTF16StringCodePointAtUTF32StringEqualStringGreaterThanStringGreaterThanOrEqualStringIndexOfStringLessThanStringLessThanOrEqualStringRepeatStringSubstringOrderedHashTableHealIndexInterpreterEntryTrampolineInterpreterPushArgsThenCallInterpreterPushUndefinedAndArgsThenCallInterpreterPushArgsThenCallWithFinalSpreadInterpreterPushArgsThenConstructInterpreterPushArgsThenConstructArrayFunctionInterpreterPushArgsThenConstructWithFinalSpreadInterpreterEnterBytecodeAdvanceInterpreterEnterBytecodeDispatchInterpreterOnStackReplacementCompileLazyCompileLazyDeoptimizedCodeDeserializeLazyInstantiateAsmJsNotifyDeoptimizedContinueToCodeStubBuiltinContinueToCodeStubBuiltinWithResultContinueToJavaScriptBuiltinContinueToJavaScriptBuiltinWithResultOnStackReplacementHandleApiCallHandleApiCallAsFunctionHandleApiCallAsConstructorAllocateInNewSpaceAllocateInOldSpaceCopyFastSmiOrObjectElementsGrowFastDoubleElementsGrowFastSmiOrObjectElementsNewArgumentsElementsDebugBreakTrampolineFrameDropperTrampolineHandleDebuggerStatementToObjectToBooleanOrdinaryToPrimitive_NumberOrdinaryToPrimitive_StringNonPrimitiveToPrimitive_DefaultNonPrimitiveToPrimitive_NumberNonPrimitiveToPrimitive_StringStringToNumberToNameNonNumberToNumberNonNumberToNumericToNumberToNumericNumberToStringToStringToIntegerToInteger_TruncateMinusZeroToLengthTypeofGetSuperConstructorToBooleanLazyDeoptContinuationKeyedLoadIC_MegamorphicKeyedLoadIC_PolymorphicNameKeyedLoadIC_SlowKeyedStoreIC_MegamorphicKeyedStoreIC_SlowLoadGlobalIC_SlowLoadIC_FunctionPrototypeLoadIC_SlowLoadIC_StringLengthLoadIC_StringWrapperLengthLoadIC_UninitializedStoreGlobalIC_SlowStoreIC_UninitializedStoreInArrayLiteralIC_SlowEnqueueMicrotaskRunMicrotasksHasPropertyDeletePropertyAbortAbortJSEmptyFunctionIllegalStrictPoisonPillThrowerUnsupportedThrowerReturnReceiverArrayConstructorInternalArrayConstructorArrayConcatArrayIsArrayArrayFromArrayOfArrayIncludesSmiOrObjectArrayIncludesPackedDoublesArrayIncludesHoleyDoublesArrayIncludesArrayIndexOfSmiOrObjectArrayIndexOfPackedDoublesArrayIndexOfHoleyDoublesArrayIndexOfArrayPopArrayPrototypePopArrayPushArrayPrototypePushArrayShiftArrayPrototypeShiftArrayPrototypeSliceArraySpliceArrayUnshiftCloneFastJSArrayExtractFastJSArrayArrayEveryLoopContinuationArrayEveryLoopEagerDeoptContinuationArrayEveryLoopLazyDeoptContinuationArrayEveryArraySomeLoopContinuationArraySomeLoopEagerDeoptContinuationArraySomeLoopLazyDeoptContinuationArraySomeArrayFilterLoopContinuationArrayFilterArrayFilterLoopEagerDeoptContinuationArrayFilterLoopLazyDeoptContinuationArrayMapLoopContinuationArrayMapLoopEagerDeoptContinuationArrayMapLoopLazyDeoptContinuationArrayMapArrayReduceLoopContinuationArrayReducePreLoopEagerDeoptContinuationArrayReduceLoopEagerDeoptContinuationArrayReduceLoopLazyDeoptContinuationArrayReduceArrayReduceRightLoopContinuationArrayReduceRightPreLoopEagerDeoptContinuationArrayReduceRightLoopEagerDeoptContinuationArrayReduceRightLoopLazyDeoptContinuationArrayReduceRightArrayPrototypeEntriesArrayFindLoopContinuationArrayFindLoopEagerDeoptContinuationArrayFindLoopLazyDeoptContinuationArrayFindLoopAfterCallbackLazyDeoptContinuationArrayPrototypeFindArrayFindIndexLoopContinuationArrayFindIndexLoopEagerDeoptContinuationArrayFindIndexLoopLazyDeoptContinuationArrayFindIndexLoopAfterCallbackLazyDeoptContinuationArrayPrototypeFindIndexArrayPrototypeKeysArrayPrototypeValuesArrayIteratorPrototypeNextFlattenIntoArrayFlatMapIntoArrayArrayPrototypeFlattenArrayPrototypeFlatMapArrayBufferConstructorArrayBufferConstructor_DoNotInitializeArrayBufferPrototypeGetByteLengthArrayBufferIsViewArrayBufferPrototypeSliceAsyncFunctionAwaitCaughtAsyncFunctionAwaitUncaughtAsyncFunctionAwaitRejectClosureAsyncFunctionAwaitResolveClosureAsyncFunctionPromiseCreateAsyncFunctionPromiseReleaseBigIntConstructorBigIntAsUintNBigIntAsIntNBigIntPrototypeToLocaleStringBigIntPrototypeToStringBigIntPrototypeValueOfBooleanConstructorBooleanPrototypeToStringBooleanPrototypeValueOfCallSitePrototypeGetColumnNumberCallSitePrototypeGetEvalOriginCallSitePrototypeGetFileNameCallSitePrototypeGetFunctionCallSitePrototypeGetFunctionNameCallSitePrototypeGetLineNumberCallSitePrototypeGetMethodNameCallSitePrototypeGetPositionCallSitePrototypeGetScriptNameOrSourceURLCallSitePrototypeGetThisCallSitePrototypeGetTypeNameCallSitePrototypeIsConstructorCallSitePrototypeIsEvalCallSitePrototypeIsNativeCallSitePrototypeIsToplevelCallSitePrototypeToStringConsoleDebugConsoleErrorConsoleInfoConsoleLogConsoleWarnConsoleDirConsoleDirXmlConsoleTableConsoleTraceConsoleGroupConsoleGroupCollapsedConsoleGroupEndConsoleClearConsoleCountConsoleCountResetConsoleAssertFastConsoleAssertConsoleMarkTimelineConsoleProfileConsoleProfileEndConsoleTimelineConsoleTimelineEndConsoleTimeConsoleTimeEndConsoleTimeStampConsoleContextDataViewConstructorDataViewPrototypeGetBufferDataViewPrototypeGetByteLengthDataViewPrototypeGetByteOffsetDataViewPrototypeGetInt8DataViewPrototypeSetInt8DataViewPrototypeGetUint8DataViewPrototypeSetUint8DataViewPrototypeGetInt16DataViewPrototypeSetInt16DataViewPrototypeGetUint16DataViewPrototypeSetUint16DataViewPrototypeGetInt32DataViewPrototypeSetInt32DataViewPrototypeGetUint32DataViewPrototypeSetUint32DataViewPrototypeGetFloat32DataViewPrototypeSetFloat32DataViewPrototypeGetFloat64DataViewPrototypeSetFloat64DataViewPrototypeGetBigInt64DataViewPrototypeSetBigInt64DataViewPrototypeGetBigUint64DataViewPrototypeSetBigUint64DateConstructorDatePrototypeGetDateDatePrototypeGetDayDatePrototypeGetFullYearDatePrototypeGetHoursDatePrototypeGetMillisecondsDatePrototypeGetMinutesDatePrototypeGetMonthDatePrototypeGetSecondsDatePrototypeGetTimeDatePrototypeGetTimezoneOffsetDatePrototypeGetUTCDateDatePrototypeGetUTCDayDatePrototypeGetUTCFullYearDatePrototypeGetUTCHoursDatePrototypeGetUTCMillisecondsDatePrototypeGetUTCMinutesDatePrototypeGetUTCMonthDatePrototypeGetUTCSecondsDatePrototypeValueOfDatePrototypeToPrimitiveDatePrototypeGetYearDatePrototypeSetYearDateNowDateParseDatePrototypeSetDateDatePrototypeSetFullYearDatePrototypeSetHoursDatePrototypeSetMillisecondsDatePrototypeSetMinutesDatePrototypeSetMonthDatePrototypeSetSecondsDatePrototypeSetTimeDatePrototypeSetUTCDateDatePrototypeSetUTCFullYearDatePrototypeSetUTCHoursDatePrototypeSetUTCMillisecondsDatePrototypeSetUTCMinutesDatePrototypeSetUTCMonthDatePrototypeSetUTCSecondsDatePrototypeToDateStringDatePrototypeToISOStringDatePrototypeToUTCStringDatePrototypeToStringDatePrototypeToTimeStringDatePrototypeToJsonDateUTCErrorConstructorErrorCaptureStackTraceErrorPrototypeToStringMakeErrorMakeRangeErrorMakeSyntaxErrorMakeTypeErrorMakeURIErrorFunctionConstructorFunctionPrototypeApplyFunctionPrototypeBindFastFunctionPrototypeBindFunctionPrototypeCallFunctionPrototypeHasInstanceFunctionPrototypeToStringCreateIterResultObjectCreateGeneratorObjectGeneratorFunctionConstructorGeneratorPrototypeNextGeneratorPrototypeReturnGeneratorPrototypeThrowAsyncFunctionConstructorGlobalDecodeURIGlobalDecodeURIComponentGlobalEncodeURIGlobalEncodeURIComponentGlobalEscapeGlobalUnescapeGlobalEvalGlobalIsFiniteGlobalIsNaNJsonParseJsonStringifyLoadICLoadIC_NoninlinedLoadICTrampolineKeyedLoadICKeyedLoadICTrampolineStoreGlobalICStoreGlobalICTrampolineStoreICStoreICTrampolineKeyedStoreICKeyedStoreICTrampolineStoreInArrayLiteralICLoadGlobalICLoadGlobalICInsideTypeofLoadGlobalICTrampolineLoadGlobalICInsideTypeofTrampolineFindOrderedHashMapEntryMapConstructorMapPrototypeSetMapPrototypeDeleteMapPrototypeGetMapPrototypeHasMapPrototypeClearMapPrototypeEntriesMapPrototypeGetSizeMapPrototypeForEachMapPrototypeKeysMapPrototypeValuesMapIteratorPrototypeNextMathAbsMathAcosMathAcoshMathAsinMathAsinhMathAtanMathAtanhMathAtan2MathCbrtMathCeilMathClz32MathCosMathCoshMathExpMathExpm1MathFloorMathFroundMathHypotMathImulMathLogMathLog1pMathLog10MathLog2MathMaxMathMinMathPowMathRandomMathRoundMathSignMathSinMathSinhMathTanMathTanhMathSqrtMathTruncAllocateHeapNumberNumberConstructorNumberIsFiniteNumberIsIntegerNumberIsNaNNumberIsSafeIntegerNumberParseFloatNumberParseIntParseIntNumberPrototypeToExponentialNumberPrototypeToFixedNumberPrototypeToLocaleStringNumberPrototypeToPrecisionNumberPrototypeToStringNumberPrototypeValueOfAddSubtractMultiplyDivideModulusExponentiateBitwiseAndBitwiseOrBitwiseXorShiftLeftShiftRightShiftRightLogicalLessThanLessThanOrEqualGreaterThanGreaterThanOrEqualEqualSameValueStrictEqualBitwiseNotDecrementIncrementNegateObjectConstructorObjectAssignObjectCreateCreateObjectWithoutPropertiesObjectDefineGetterObjectDefinePropertiesObjectDefinePropertyObjectDefineSetterObjectEntriesObjectFreezeObjectGetOwnPropertyDescriptorObjectGetOwnPropertyDescriptorsObjectGetOwnPropertyNamesObjectGetOwnPropertySymbolsObjectGetPrototypeOfObjectSetPrototypeOfObjectIsObjectIsExtensibleObjectIsFrozenObjectIsSealedObjectKeysObjectLookupGetterObjectLookupSetterObjectPreventExtensionsObjectPrototypeToStringObjectPrototypeValueOfObjectPrototypeHasOwnPropertyObjectPrototypeIsPrototypeOfObjectPrototypePropertyIsEnumerableObjectPrototypeGetProtoObjectPrototypeSetProtoObjectPrototypeToLocaleStringObjectSealObjectValuesOrdinaryHasInstanceInstanceOfForInEnumerateForInFilterFulfillPromiseRejectPromiseResolvePromisePromiseCapabilityDefaultRejectPromiseCapabilityDefaultResolvePromiseGetCapabilitiesExecutorNewPromiseCapabilityPromiseConstructorLazyDeoptContinuationPromiseConstructorIsPromisePromisePrototypeThenPerformPromiseThenPromisePrototypeCatchPromiseRejectReactionJobPromiseFulfillReactionJobPromiseResolveThenableJobPromiseResolveTrampolinePromiseResolvePromiseRejectPromisePrototypeFinallyPromiseThenFinallyPromiseCatchFinallyPromiseValueThunkFinallyPromiseThrowerFinallyPromiseAllPromiseAllResolveElementClosurePromiseRacePromiseInternalConstructorPromiseInternalRejectPromiseInternalResolveProxyConstructorProxyRevocableProxyRevokeProxyGetPropertyProxyHasPropertyProxySetPropertyReflectApplyReflectConstructReflectDefinePropertyReflectDeletePropertyReflectGetReflectGetOwnPropertyDescriptorReflectGetPrototypeOfReflectHasReflectIsExtensibleReflectOwnKeysReflectPreventExtensionsReflectSetReflectSetPrototypeOfRegExpCapture1GetterRegExpCapture2GetterRegExpCapture3GetterRegExpCapture4GetterRegExpCapture5GetterRegExpCapture6GetterRegExpCapture7GetterRegExpCapture8GetterRegExpCapture9GetterRegExpConstructorRegExpInternalMatchRegExpInputGetterRegExpInputSetterRegExpLastMatchGetterRegExpLastParenGetterRegExpLeftContextGetterRegExpPrototypeCompileRegExpPrototypeExecRegExpPrototypeDotAllGetterRegExpPrototypeFlagsGetterRegExpPrototypeGlobalGetterRegExpPrototypeIgnoreCaseGetterRegExpPrototypeMatchRegExpPrototypeMatchAllRegExpPrototypeMultilineGetterRegExpPrototypeSearchRegExpPrototypeSourceGetterRegExpPrototypeStickyGetterRegExpPrototypeTestRegExpPrototypeToStringRegExpPrototypeUnicodeGetterRegExpRightContextGetterRegExpPrototypeReplaceRegExpPrototypeSplitRegExpExecAtomRegExpMatchFastRegExpPrototypeExecSlowRegExpReplaceRegExpSearchFastRegExpSplitRegExpStringIteratorPrototypeNextSetConstructorSetPrototypeHasSetPrototypeAddSetPrototypeDeleteSetPrototypeClearSetPrototypeEntriesSetPrototypeGetSizeSetPrototypeForEachSetPrototypeValuesSetIteratorPrototypeNextSharedArrayBufferPrototypeGetByteLengthSharedArrayBufferPrototypeSliceAtomicsLoadAtomicsStoreAtomicsExchangeAtomicsCompareExchangeAtomicsAddAtomicsSubAtomicsAndAtomicsOrAtomicsXorAtomicsIsLockFreeAtomicsWaitAtomicsWakeStringConstructorStringFromCodePointStringFromCharCodeStringPrototypeAnchorStringPrototypeBigStringPrototypeBlinkStringPrototypeBoldStringPrototypeCharAtStringPrototypeCharCodeAtStringPrototypeCodePointAtStringPrototypeConcatStringPrototypeEndsWithStringPrototypeFontcolorStringPrototypeFontsizeStringPrototypeFixedStringPrototypeIncludesStringPrototypeIndexOfStringPrototypeItalicsStringPrototypeLastIndexOfStringPrototypeLinkStringPrototypeMatchStringPrototypeMatchAllStringPrototypeLocaleCompareStringPrototypePadEndStringPrototypePadStartStringPrototypeRepeatStringPrototypeReplaceStringPrototypeSearchStringPrototypeSliceStringPrototypeSmallStringPrototypeSplitStringPrototypeStrikeStringPrototypeSubStringPrototypeSubstrStringPrototypeSubstringStringPrototypeSupStringPrototypeStartsWithStringPrototypeToStringStringPrototypeTrimStringPrototypeTrimEndStringPrototypeTrimStartStringPrototypeValueOfStringRawStringPrototypeIteratorStringIteratorPrototypeNextSymbolConstructorSymbolForSymbolKeyForSymbolPrototypeToPrimitiveSymbolPrototypeToStringSymbolPrototypeValueOfIterableToListTypedArrayInitializeTypedArrayInitializeWithBufferCreateTypedArrayTypedArrayBaseConstructorTypedArrayConstructorLazyDeoptContinuationTypedArrayConstructorTypedArrayPrototypeBufferTypedArrayPrototypeByteLengthTypedArrayPrototypeByteOffsetTypedArrayPrototypeLengthTypedArrayPrototypeEntriesTypedArrayPrototypeKeysTypedArrayPrototypeValuesTypedArrayPrototypeCopyWithinTypedArrayPrototypeFillTypedArrayPrototypeFilterTypedArrayPrototypeFindTypedArrayPrototypeFindIndexTypedArrayPrototypeIncludesTypedArrayPrototypeIndexOfTypedArrayPrototypeLastIndexOfTypedArrayPrototypeReverseTypedArrayPrototypeSetTypedArrayPrototypeSliceTypedArrayPrototypeSubArrayTypedArrayPrototypeToStringTagTypedArrayPrototypeEveryTypedArrayPrototypeSomeTypedArrayPrototypeReduceTypedArrayPrototypeReduceRightTypedArrayPrototypeMapTypedArrayPrototypeForEachTypedArrayOfTypedArrayFromTypedArrayLoadElementAsTaggedTypedArrayStoreElementFromTaggedWasmCompileLazyWasmStackGuardThrowWasmTrapUnreachableThrowWasmTrapMemOutOfBoundsThrowWasmTrapDivByZeroThrowWasmTrapDivUnrepresentableThrowWasmTrapRemByZeroThrowWasmTrapFloatUnrepresentableThrowWasmTrapFuncInvalidThrowWasmTrapFuncSigMismatchWeakMapConstructorWeakMapLookupHashIndexWeakMapGetWeakMapHasWeakMapPrototypeSetWeakMapPrototypeDeleteWeakSetConstructorWeakSetHasWeakSetPrototypeAddWeakSetPrototypeDeleteWeakCollectionDeleteWeakCollectionSetAsyncGeneratorResolveAsyncGeneratorRejectAsyncGeneratorYieldAsyncGeneratorReturnAsyncGeneratorResumeNextAsyncGeneratorFunctionConstructorAsyncGeneratorPrototypeNextAsyncGeneratorPrototypeReturnAsyncGeneratorPrototypeThrowAsyncGeneratorAwaitCaughtAsyncGeneratorAwaitUncaughtAsyncGeneratorAwaitResolveClosureAsyncGeneratorAwaitRejectClosureAsyncGeneratorYieldResolveClosureAsyncGeneratorReturnClosedResolveClosureAsyncGeneratorReturnClosedRejectClosureAsyncGeneratorReturnResolveClosureAsyncFromSyncIteratorPrototypeNextAsyncFromSyncIteratorPrototypeThrowAsyncFromSyncIteratorPrototypeReturnAsyncIteratorValueUnwrapCEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExitCEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExitCEntry_Return1_DontSaveFPRegs_ArgvInRegister_NoBuiltinExitCEntry_Return1_SaveFPRegs_ArgvOnStack_NoBuiltinExitCEntry_Return1_SaveFPRegs_ArgvOnStack_BuiltinExitCEntry_Return2_DontSaveFPRegs_ArgvOnStack_NoBuiltinExitCEntry_Return2_DontSaveFPRegs_ArgvOnStack_BuiltinExitCEntry_Return2_DontSaveFPRegs_ArgvInRegister_NoBuiltinExitCEntry_Return2_SaveFPRegs_ArgvOnStack_NoBuiltinExitCEntry_Return2_SaveFPRegs_ArgvOnStack_BuiltinExitStringAdd_CheckNone_NotTenuredStringAdd_CheckNone_TenuredStringAdd_ConvertLeft_NotTenuredStringAdd_ConvertRight_NotTenuredDoubleToIGetPropertyMathPowInternalIsTraceCategoryEnabledTraceArraySpliceTorqueArrayForEachLoopEagerDeoptContinuationArrayForEachLoopLazyDeoptContinuationArrayForEachLoopContinuationArrayForEachTypedArrayQuickSortTypedArrayPrototypeSortStringPrototypeNormalizeStringPrototypeToLocaleLowerCaseStringPrototypeToLocaleUpperCaseStringPrototypeToLowerCaseStringPrototypeToUpperCaseArrayConstructorStubCallApiCallbackStubCallApiGetterStubInternalArrayConstructorStubJSEntryStubProfileEntryHookStubStoreSlowElementStubStoreInArrayLiteralSlowStubArrayNoArgumentConstructorStubArraySingleArgumentConstructorStubArrayNArgumentsConstructorStubInternalArrayNoArgumentConstructorStubInternalArraySingleArgumentConstructorStubElementsTransitionAndStoreStubKeyedLoadSloppyArgumentsStubKeyedStoreSloppyArgumentsStubStoreFastElementStubStoreInterceptorStubTransitionElementsKindStubLoadIndexedInterceptorStubDirectCEntryStubStub../deps/v8/src/code-stubs.cc:262ElementsTransitionAndStoreStub: from_kind=%s, to_kind=%s, is_jsarray=%d, store_mode=%dMissCall runtimeStoreFastElementStub: js_array=%d, elements_kind=%s, store_mode=%dabJSConstructEntryStubCompilerDispatcher: dispatcher is disabled CompilerDispatcher: stepping V8.CompilerDispatcherEnqueueCompilerDispatcher: enqueuing for parse and compile V8.CompilerDispatcherEnqueueAndStepV8.CompilerDispatcherWaitForBackgroundJobCompilerDispatcher: finishing now V8.CompilerDispatcherFinishNowjob != jobs_.end()CompilerDispatcher: aborted CompilerDispatcher: received memory pressure notification V8.CompilerDispatcherScheduleMoreWorkerTasksIfNeededCompilerDispatcher: doing background work CompilerDispatcher: received %0.1lfms of idle time CompilerDispatcher: finished working on V8.CompilerDispatcherForgroundStepV8.CompilerDispatcherBackgroundStepUnoptimizedCompileJob[%p] created for in initial state. UnoptimizedCompileJob[%p]: Preparing to parse UnoptimizedCompileJob[%p]: Compiling UnoptimizedCompileJob[%p]: Finalizing compiling UnoptimizedCompileJob[%p]: Reporting Errors UnoptimizedCompileJob[%p]: Resetting [compiling method using OSR!compilation_info()->dependencies() || !compilation_info()->dependencies()->HasAborted()[optimizing - took %0.3f, %0.3f, %0.3f ms] Compiled: %d functions with %d byte source size in %fms. V8.CompileCode because --always-opt] V8.CompileDeserialize../deps/v8/src/compiler.cc:1712optimize-eval-lazy[found optimized code for at OSR AST id %d] V8.OptimizeCodeGetCodeFromOptimizedCodeCache ** Compilation queue full, will retry optimizing later. ** High memory pressure, will retry optimizing V8.RecompileSynchronous ** Queued for concurrent optimization. [aborted optimizing because: %s] V8.CompileEvalV8.CompileV8.CompileCodeBackground[completed optimizing heap_->memory_allocator()->IsMemoryChunkExecutable(page)descriptor.GetParameterCount() + 2 == (sizeof(ArraySizeHelper(nodes)))descriptor.GetParameterCount() + 1 == (sizeof(ArraySizeHelper(nodes)))PoisoningMitigationLevel::kPoisonAll != poisoning_level_TrueFalseCriticalSafetyCheckSafetyCheckNoSafetyCheck|id:|size:densesparse:^observablenot-observable (order EndReturnDeoptimizeDeoptimizeIfDeoptimizeUnlessTrapIfTrapUnlessSwitchIfValueStartLoopMergeParameterOsrValueInt32ConstantInt64ConstantFloat32ConstantFloat64ConstantExternalConstantNumberConstantPointerConstantHeapConstantRelocatableInt32ConstantRelocatableInt64ConstantObjectIdSelectPhiTypeGuardEffectPhiInductionVariablePhiStateValuesTypedStateValuesArgumentsElementsStateArgumentsLengthStateObjectStateTypedObjectStateFrameStateProjectionDeadValueEagerSoftLazyCall[CallWithCallerSavedRegistersTailCallDeadUnreachableIfTrueIfFalseIfSuccessIfExceptionIfDefaultThrowTerminateOsrNormalEntryOsrLoopEntryLoopExitLoopExitValueLoopExitEffectCheckpointFinishRegionRetainBranchBeginRegionMAPPED_ARGUMENTSUNMAPPED_ARGUMENTSREST_PARAMETERIgnorePokeAt(INTERPRETED_FRAMEARGUMENTS_ADAPTORCONSTRUCT_STUBBUILTIN_CONTINUATION_FRAMEJAVA_SCRIPT_BUILTIN_CONTINUATION_FRAMEJAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH_FRAME!base::bits::UnsignedAddOverflow32(id, 1, &next_node_id_)CodeJSAddrWasm:rifjs-callAllocateincoming_->IsJSFunctionCall()( : Extract laneReplace laneShift leftArithmetic shift rightShift rightShuffleNoWriteBarrierMapWriteBarrierPointerWriteBarrierFullWriteBarrierStackSlotCommentWord32AndWord32OrWord32XorWord32ShlWord32ShrWord32SarWord32RorWord32EqualInt32AddInt32SubInt32MulInt32MulHighInt32DivInt32ModInt32LessThanInt32LessThanOrEqualUint32DivUint32LessThanUint32LessThanOrEqualUint32ModUint32MulHighWord64AndWord64OrWord64XorWord64ShlWord64ShrWord64SarWord64RorWord64EqualInt64AddInt64SubInt64MulInt64DivInt64ModInt64LessThanInt64LessThanOrEqualUint64DivUint64ModUint64LessThanUint64LessThanOrEqualWord32ClzWord64ClzBitcastWordToTaggedSignedTruncateFloat64ToWord32ChangeFloat32ToFloat64ChangeFloat64ToInt32ChangeFloat64ToUint32ChangeFloat64ToUint64TruncateFloat64ToUint32TruncateFloat32ToInt32TruncateFloat32ToUint32TryTruncateFloat32ToInt64TryTruncateFloat64ToInt64TryTruncateFloat32ToUint64TryTruncateFloat64ToUint64ChangeInt32ToFloat64Float64SilenceNaNRoundFloat64ToInt32RoundInt32ToFloat32RoundInt64ToFloat32RoundInt64ToFloat64RoundUint32ToFloat32RoundUint64ToFloat32RoundUint64ToFloat64ChangeInt32ToInt64ChangeUint32ToFloat64ChangeUint32ToUint64TruncateFloat64ToFloat32TruncateInt64ToInt32BitcastFloat32ToInt32BitcastFloat64ToInt64BitcastInt32ToFloat32BitcastInt64ToFloat64SignExtendWord8ToInt32SignExtendWord16ToInt32SignExtendWord8ToInt64SignExtendWord16ToInt64SignExtendWord32ToInt64Float32AbsFloat32AddFloat32SubFloat32MulFloat32DivFloat32NegFloat32SqrtFloat32MaxFloat32MinFloat64AbsFloat64AcosFloat64AcoshFloat64AsinFloat64AsinhFloat64AtanFloat64Atan2Float64AtanhFloat64CbrtFloat64CosFloat64CoshFloat64ExpFloat64Expm1Float64LogFloat64Log1pFloat64Log2Float64Log10Float64MaxFloat64MinFloat64NegFloat64AddFloat64SubFloat64MulFloat64DivFloat64ModFloat64PowFloat64SinFloat64SinhFloat64SqrtFloat64TanFloat64TanhFloat32EqualFloat32LessThanFloat32LessThanOrEqualFloat64EqualFloat64LessThanFloat64LessThanOrEqualFloat64ExtractLowWord32Float64ExtractHighWord32Float64InsertLowWord32Float64InsertHighWord32LoadStackPointerLoadFramePointerLoadParentFramePointerLoadRootsPointerInt32PairAddInt32PairSubInt32PairMulWord32PairShlWord32PairShrWord32PairSarF32x4SplatF32x4SConvertI32x4F32x4UConvertI32x4F32x4AbsF32x4NegF32x4RecipApproxF32x4RecipSqrtApproxF32x4AddF32x4AddHorizF32x4SubF32x4MulF32x4MinF32x4MaxF32x4EqF32x4NeF32x4LtF32x4LeI32x4SplatI32x4SConvertF32x4I32x4SConvertI16x8LowI32x4SConvertI16x8HighI32x4NegI32x4AddI32x4AddHorizI32x4SubI32x4MulI32x4MinSI32x4MaxSI32x4EqI32x4NeI32x4GtSI32x4GeSI32x4UConvertF32x4I32x4UConvertI16x8LowI32x4UConvertI16x8HighI32x4MinUI32x4MaxUI32x4GtUI32x4GeUI16x8SplatI16x8SConvertI8x16LowI16x8SConvertI8x16HighI16x8NegI16x8SConvertI32x4I16x8AddI16x8AddSaturateSI16x8AddHorizI16x8SubI16x8SubSaturateSI16x8MulI16x8MinSI16x8MaxSI16x8EqI16x8NeI16x8GtSI16x8GeSI16x8UConvertI8x16LowI16x8UConvertI8x16HighI16x8UConvertI32x4I16x8AddSaturateUI16x8SubSaturateUI16x8MinUI16x8MaxUI16x8GtUI16x8GeUI8x16SplatI8x16NegI8x16SConvertI16x8I8x16AddI8x16AddSaturateSI8x16SubI8x16SubSaturateSI8x16MulI8x16MinSI8x16MaxSI8x16EqI8x16NeI8x16GtSI8x16GeSI8x16UConvertI16x8I8x16AddSaturateUI8x16SubSaturateUI8x16MinUI8x16MaxUI8x16GtUI8x16GeUS128LoadS128StoreS128ZeroS128AndS128OrS128XorS128NotS128SelectS1x4AnyTrueS1x4AllTrueS1x8AnyTrueS1x8AllTrueS1x16AnyTrueS1x16AllTrueWord32CtzWord64CtzWord32ReverseBitsWord64ReverseBitsWord32ReverseBytesWord64ReverseBytesInt32AbsWithOverflowInt64AbsWithOverflowWord32PopcntWord64PopcntFloat32RoundDownFloat64RoundDownFloat32RoundUpFloat64RoundUpFloat32RoundTruncateFloat64RoundTruncateFloat64RoundTiesAwayFloat32RoundTiesEvenFloat64RoundTiesEvenInt32AddWithOverflowInt32SubWithOverflowInt32MulWithOverflowInt64AddWithOverflowInt64SubWithOverflowLoadPoisonedLoadUnalignedLoadProtectedLoadStoreUnalignedStoreWord32AtomicLoadWord64AtomicLoadWord32AtomicStoreWord64AtomicStoreWord32AtomicAddWord32AtomicSubWord32AtomicAndWord32AtomicOrWord32AtomicXorWord32AtomicExchangeWord64AtomicAddWord64AtomicSubWord64AtomicAndWord64AtomicOrWord64AtomicXorWord64AtomicExchangeWord32AtomicCompareExchangeWord64AtomicCompareExchangeBitcastWordToTaggedBitcastTaggedToWordBitcastMaybeObjectToWordTaggedPoisonOnSpeculationWord32PoisonOnSpeculationWord64PoisonOnSpeculationSpeculationFenceDebugAbortDebugBreakUnsafePointerAddCommutativeAssociativeIdempotentNoReadNoWriteNoThrowNoDeoptval <= std::min(static_cast(std::numeric_limits::max()), static_cast(kMaxInt)){"function":"", "source":"", "phases":[machinewasm optimizationgraph creation--------------------------------------------------- Begin compiling method using Turbofanloweringblock buildingstub codegenBegin compiling {"function" : , "phases":[Machinescheduletest codegentesting-------------------------------------------------- --- Verifying generated by TurboFan --- End of ../deps/v8/src/compiler/pipeline.cc:2190CodeGen, "NodeOrigins" : register allocationcode generation{"name":"disassembly","type":"disassembly","data":""} ], "nodePositions":, }Finished compiling method ../deps/v8/src/compiler/pipeline.cc:2339----- Instruction sequence before register allocation ----- !data->register_allocation_data()->ExistsUseWithoutDefinition()data->register_allocation_data() ->RangesDefinedInDeferredStayInDeferred()Immediately after CommitAssignmentPhase.----- Instruction sequence after register allocation ----- End of regalloc pipeline.../deps/v8/src/compiler/pipeline.cc:709unnamedbytecode graph builderinliningearly trimmingtypertyped loweringloop peelingloop exit eliminationload eliminationescape analysissimplified loweringgeneric loweringearly optimizationeffect linearizationstore-store eliminationcontrol flow optimizationmemory optimizationlate optimization../deps/v8/src/compiler/pipeline.cc:168../deps/v8/src/compiler/pipeline.cc:173../deps/v8/src/compiler/pipeline.cc:175../deps/v8/src/compiler/pipeline.cc:177{"name":"","type":"schedule","data":""}, -- Schedule -------------------------------------- initializing../deps/v8/src/compiler/pipeline.cc:107../deps/v8/src/compiler/pipeline.cc:109../deps/v8/src/compiler/pipeline.cc:111../deps/v8/src/compiler/pipeline.cc:113init pipeline dataTurboFan../deps/v8/src/compiler/pipeline.cc:754../deps/v8/src/compiler/pipeline.cc:144../deps/v8/src/compiler/pipeline.cc:151../deps/v8/src/compiler/pipeline.cc:153../deps/v8/src/compiler/pipeline.cc:155../deps/v8/src/compiler/pipeline.cc:188../deps/v8/src/compiler/pipeline.cc:189../deps/v8/src/compiler/pipeline.cc:192../deps/v8/src/compiler/pipeline.cc:194late graph trimming--- Raw source --- --- Optimized code --- optimization_id = --- Code --- source_position = --- End code --- --- FUNCTION SOURCE () id{} start{} --- --- END --- INLINE (} AS AT <>","type":"graph","data":}, -- Graph after -- concurrency preparationeffect linearization scheduleschedulingselect instructionsframe elisionjump threadingassemble codefinalize codemeet register constraintsresolve phisbuild live rangessplinter live rangesallocate general registersallocate f.p. registersmerge splintered rangesassign spill slotscommit assignmentpopulate pointer mapsconnect rangesresolve control flowoptimize moveslocate spill slots--- RAW SCHEDULE ------------------------------------------- --- EDGE SPLIT AND PROPAGATED DEFERRED SCHEDULE ------------ RedundancyElimination0 < instr->InputCount()kSameAsFirst != constraint.type_InstructionOperand::kInvalidVirtualRegister != constraint.virtual_register_kImmediate != constraint.type_kExplicit != constraint.type_kConstant != constraint.type_sequence()->instructions().size() == constraints()->size()instr == *instr_itoperand_count == OperandCount(instr)op->IsUnallocated()ConstantOperand::cast(op)->virtual_register() == constraint->value_value == constraint->value_LocationOperand::cast(op)->register_code() == constraint->value_LocationOperand::cast(op)->index() == constraint->value_ElementSizeLog2Of(LocationOperand::cast(op)->representation()) == constraint->value_map_for_moves_.empty()it != map_.end()map_for_moves_.find(move->destination()) == map_for_moves_.end()vPpred_id >= current_block_idblock->IsLoopHeader()(pred_assessments) != nullptr../deps/v8/src/compiler/register-allocator-verifier.cc:388origin->PredecessorCount() > 1 || origin->phis().size() > 0origin->IsLoopHeader()found_contribution != pred_assessments->map().end()FinalAssessment::cast(contribution)->virtual_register() == expectediterator != current_assessments->map().end()FinalAssessment::cast(assessment)->virtual_register() == virtual_registerassessments_.empty()outstanding_assessments_.empty()found_op != block_assessments->map().end()FinalAssessment::cast(found_op->second)->virtual_register() == vreg(instr->GetParallelMove(inner_pos)) == nullptrassessment->kind() == Finalmap_.empty()(other) != nullptrit->second == vregStart() <= pos->pos()pos->pos() <= End()(interval) != nullptrtemp != firstShorten live range %d to [%d Ensure live range %d in interval [%d %d[ Add to live range %d interval [%d %d[ Add to live range %d use position %d Range: phi nlphi {}Register allocator error: live v%d reached first block. (first use is at %d) (function: %s) live_ranges_size == live_ranges().size()Allocating fixed reg for op %d Fixed reg is tagged at %d live_ranges_size == data()->live_ranges().size()hint.second->IsResolved()(current->next()) == nullptrNextIntervalStartsInDifferentBlocks(first)IntervalStartsAtBlockBoundary(i)IntervalPredecessorsCoveredByRange(i, current)NextIntervalStartsInDifferentBlocks(i)initial_range_count == data()->live_ranges().size()Live range %d:%d is defined by a spill operand. Splitting live range %d:%d at %d Splitting live range %d:%d in position between [%d, %d] Spilling live range %d:%d Processing interval %d:%d start=%d Add live range %d:%d to active Add live range %d:%d to inactive Add live range %d:%d to unhandled at %zu Add live range %d:%d to unhandled at start Add live range %d:%d to unhandled unsorted at end Sort unhandled Moving live range %d:%d from active to handled Moving live range %d:%d from active to inactive Moving live range %d:%d from inactive to handled Moving live range %d:%d from inactive to active Register %s is free until pos %d (1) Register %s is free until pos %d (2) Found reg hint %s (free until [%d) for live range %d:%d (end %d[). Assigning preferred reg %s to live range %d:%d Assigning free reg %s to live range %d:%d Assigning blocked reg %s to live range %d:%d start < endPointer for range %d (spilled at %d) at safe point %d Pointer in register for range %d:%d (start at %d) at safe point %d Live Range %d will be spilled only in deferred blocks. BgotobranchswitchdeoptimizetailcallPlanning # for future add to BAdding # to B--- BLOCK id:--- BLOCK B (deferred) <- --- Goto -> Use count of #%d:%s (used by #%d:%s)++ = %d Use count of #%d:%s (used by #%d:%s)-- = %d newly eligible #%d:%s --- CREATING CFG ------------------------------------------- --- COMPUTING SPECIAL RPO ---------------------------------- Block id:%d's idom is id:%d, depth = %d --- IMMEDIATE BLOCK DOMINATORS ----------------------------- --- PREPARE USES ------------------------------------------- --- SCHEDULE EARLY ----------------------------------------- roots: #%d:%s --- SCHEDULE LATE ------------------------------------------ --- SEAL FINAL SCHEDULE ------------------------------------ --- FUSE FLOATING CONTROL ---------------------------------- Schedule before control flow fusion: propagation roots: Schedule after control flow fusion: Move planned nodes from id:%d to id:%d Create block id:%d for #%d:%s Connect #%d:%s, id:%d -> end Connect #%d:%s, id:%d -> id:%d kBlockUnvisited1 == schedule_->start()->loop_number()kBlockUnvisited1 == schedule_->start()->rpo_number()0 == static_cast(schedule_->rpo_order()->size())id:%d is a loop header, increment loop depth to %d id:%d is not in a loop (depth == %d) id:%d has loop header id:%d, (depth == %d) Scheduling fixed position node #%d:%s Fixing #%d:%s minimum_block = id:%d, dominator_depth = %d Propagating #%d:%s minimum_block = id:%d, dominator_depth = %d Scheduling #%d:%s Schedule late of #%d:%s is id:%d at loop depth %d, minimum = id:%d hoisting #%d:%s to block id:%d inspecting uses of coupled #%d:%s input@%d into a fixed phi #%d:%s input@%d into a fixed merge #%d:%s must dominate use #%d:%s in id:%d not splitting #%d:%s, it is used in id:%d not splitting #%d:%s, its common dominator id:%d is perfect pushing #%d:%s down to id:%d cloning #%d:%s for id:%d clone #%d:%s -> #%d IrOpcode::kFinishRegion == region_end->opcode()Found SESE at #%d:%s SelectLowering--{Simplified lowering phase}-- visit #%d: %s --{Propagation phase}-- visit #%d: %s (trunc: %s) --{Type propagation phase}-- ==> output [Static type: , Feedback type: Representation inference: unsupported opcode %i (%s), node #%i .killing #%d:%s initial #%i: queue #%i?: added: inqueue: unimplemented code change: #%d:%s(@%d #%d:%s) from defer replacement #%d:%s with #%d:%s SimplifiedOperatorReduceruntagged basetagged baseSafeUnsafe[+allow-return-holenever-return-holecheck-for-minus-zerodont-check-for-minus-zeroTryMigrateInstanceNumberOrOddballDoubleElementsSmiOrObjectElementsfast-transition from slow-transition from SignedSmallSignedSmallInputsSigned32CheckBoundsCheckNumberCheckSmiCheckStringCheckedInt32ToTaggedSignedCheckedTaggedSignedToInt32CheckedTaggedToTaggedPointerCheckedTaggedToTaggedSignedCheckedUint32ToInt32CheckedUint32ToTaggedSignedRuntimeAbortCheckedFloat64ToInt32CheckedTaggedToInt32CheckedTaggedToFloat64CheckedTruncateTaggedToWord32CheckMapsMapGuardCompareMapsSpeculativeToNumberMaybeGrowFastElementsTransitionElementsKindArgumentsLength(CHECKED_WITH_FEEDBACK_OP_LIST(MAKE_OR) false)NewDoubleElementsNewSmiOrObjectElementsAllocateRawLoadFieldStoreFieldLoadElementStoreElementLoadTypedElementStoreTypedElementTransitionAndStoreElementStoreSignedSmallElementTransitionAndStoreNumberElementTransitionAndStoreNonNumberElementNotTenuredTenuredTenuredReadOnlyBooleanNotNumberEqualNumberLessThanNumberLessThanOrEqualNumberAddNumberSubtractNumberMultiplyNumberDivideNumberModulusNumberBitwiseOrNumberBitwiseXorNumberBitwiseAndNumberShiftLeftNumberShiftRightNumberShiftRightLogicalNumberImulNumberAbsNumberClz32NumberCeilNumberFloorNumberFroundNumberAcosNumberAcoshNumberAsinNumberAsinhNumberAtanNumberAtan2NumberAtanhNumberCbrtNumberCosNumberCoshNumberExpNumberExpm1NumberLogNumberLog1pNumberLog10NumberLog2NumberMaxNumberMinNumberPowNumberRoundNumberSignNumberSinNumberSinhNumberSqrtNumberTanNumberTanhNumberTruncNumberToBooleanNumberToInt32NumberToUint32NumberToUint8ClampedNumberSilenceNaNStringFromSingleCharCodeStringLengthStringToLowerCaseIntlStringToUpperCaseIntlTypeOfPlainPrimitiveToNumberPlainPrimitiveToWord32PlainPrimitiveToFloat64ChangeTaggedSignedToInt32ChangeTaggedToInt32ChangeTaggedToUint32ChangeTaggedToFloat64ChangeTaggedToTaggedSignedChangeFloat64ToTaggedPointerChangeInt31ToTaggedSignedChangeInt32ToTaggedChangeUint32ToTaggedChangeTaggedToBitChangeBitToTaggedTruncateTaggedToBitTruncateTaggedPointerToBitTruncateTaggedToWord32TruncateTaggedToFloat64ObjectIsArrayBufferViewObjectIsBigIntObjectIsCallableObjectIsConstructorObjectIsDetectableCallableObjectIsMinusZeroObjectIsNaNObjectIsNonCallableObjectIsNumberObjectIsReceiverObjectIsSmiObjectIsStringObjectIsSymbolObjectIsUndetectableNumberIsFloat64HoleObjectIsFiniteNumberObjectIsSafeIntegerObjectIsIntegerConvertTaggedHoleToUndefinedReferenceEqualNewConsStringPoisonIndexStringCharCodeAtCheckEqualsInternalizedStringCheckEqualsSymbolCheckHeapObjectCheckInternalizedStringCheckNotTaggedHoleCheckReceiverCheckSymbolCheckedInt32AddCheckedInt32DivCheckedInt32ModCheckedInt32SubCheckedUint32DivCheckedUint32ModCheckIfStringCodePointAtUTF16UTF32StringFromSingleCodePointArrayBufferWasNeuteredFindOrderedHashMapEntryForInt32KeyArgumentsFrameChangeFloat64ToTaggedCheckedInt32MulConvertReceiverNULL_OR_UNDEFINEDNOT_NULL_OR_UNDEFINEDANYCheckFloat64HoleEnsureWritableFastElementsLoadFieldByIndexSpeculativeNumberAddSpeculativeNumberSubtractSpeculativeNumberMultiplySpeculativeNumberDivideSpeculativeNumberModulusSpeculativeNumberBitwiseAndSpeculativeNumberBitwiseOrSpeculativeNumberBitwiseXorSpeculativeNumberShiftLeftSpeculativeNumberShiftRightSpeculativeNumberShiftRightLogicalSpeculativeSafeIntegerAddSpeculativeSafeIntegerSubtractSpeculativeNumberEqualSpeculativeNumberLessThanSpeculativeNumberLessThanOrEqualrest lengthnot rest lengthfast-map double-mapdouble-map, fast-mapStoreStoreElimination::Run: Eliminating node #%d:%s RedundantStoreFinder: - Revisiting: #%d:%s RedundantStoreFinder: + No change: stabilized. Not visiting effect inputs. RedundantStoreFinder: marking #%d:%s for revisit RedundantStoreFinder: #%d is StoreField[+%d,%s](#%d), unobservable RedundantStoreFinder: #%d is StoreField[+%d,%s](#%d), repeated in future but too big to optimize away RedundantStoreFinder: #%d is StoreField[+%d,%s](#%d), observable, recording in set RedundantStoreFinder: #%d is StoreField[+%d,%s](#%d), observable but too small to record RedundantStoreFinder: #%d is LoadField[+%d,%s](#%d), removing all offsets [+%d] from set RedundantStoreFinder: #%d:%s can observe nothing, set stays unchanged RedundantStoreFinder: #%d:%s might observe anything, recording empty set 0 <= offset../deps/v8/src/compiler/type-cache.h:26TypeNarrowingReducerTypedOptimizationTyperprevious.Is(current)Loop () variable bounds in additionsubtraction for phi : () Negative31NullUndefinedUnsigned30MinusZeroInternalizedStringOtherCallableOtherObjectOtherUndetectableCallableProxyOtherProxyBoundFunctionHoleOtherInternalExternalPointerSigned31Signed32OrMinusZeroSigned32OrMinusZeroOrNaNNegative32Unsigned31Unsigned32Unsigned32OrMinusZeroUnsigned32OrMinusZeroOrNaNIntegral32Integral32OrMinusZeroIntegral32OrMinusZeroOrNaNPlainNumberOrderedNumberMinusZeroOrNaNNumericUniqueNameInternalizedStringOrNullBooleanOrNumberBooleanOrNullOrNumberBooleanOrNullOrUndefinedOddballNullOrNumberNullOrUndefinedUndetectableNumberOrHoleNumericOrStringNumberOrUndefinedNumberOrUndefinedOrNullOrBooleanPlainPrimitivePrimitiveOtherUndetectableOrUndefinedArrayOrOtherObjectArrayOrProxyDetectableCallableCallableNonCallableNonCallableOrNullDetectableObjectDetectableReceiverDetectableReceiverOrNullReceiverReceiverOrUndefinedReceiverOrNullOrUndefinedSymbolOrReceiverStringOrReceiverUniqueInternalNonInternalNonNumberAnyOtherUnsigned31OtherUnsigned32OtherSigned32OtherNumberOtherString | HeapConstant(OtherNumberConstant(Range(IsOtherNumberConstant(value)ValueNumberingReducerinput_count == node->InputCount()frame_state->opcode() == IrOpcode::kFrameState || (node->opcode() == IrOpcode::kFrameState && frame_state->opcode() == IrOpcode::kStart)node->opcode() == IrOpcode::kParameter || node->opcode() == IrOpcode::kProjection || value->op()->ValueOutputCount() <= 1effectcontrol(discovered_if_success) == nullptr(discovered_if_exception) == nullptr#%d:%s should be followed by IfSuccess/IfException, but is only followed by single #%d:%s2 == total_number_of_control_uses0 == input_count0 == node->op()->ValueOutputCount()0 == node->op()->EffectOutputCount()0 == node->op()->ControlOutputCount()IrOpcode::IsGraphTerminator(input->opcode())IrOpcode::kDeadValue == use->opcode()all.IsLive(use) && (use->opcode() == IrOpcode::kIfTrue || use->opcode() == IrOpcode::kIfFalse)1 == count_true1 == count_falseIrOpcode::kBranch == control->opcode()!input->op()->HasProperty(Operator::kNoThrow)all.IsLive(use)IfValueParametersOf(use->op()).value() != IfValueParametersOf(user->op()).value()Switch #%d illegally used by #%d:%s1 == count_defaultnode->op()->ControlOutputCount() == count_case + count_defaultIrOpcode::kSwitch == NodeProperties::GetControlInput(node)->opcode()control_count == input_counthas_terminateIrOpcode::kEnd == use->opcode()1 == control_count1 == effect_count2 == input_countIrOpcode::kLoop == NodeProperties::GetControlInput(node)->opcode()1 == input_countIrOpcode::kStart == start->opcode()-1 <= indexindex + 1 < start->op()->ValueOutputCount()input->op()->ValueOutputCount() > index0 == effect_count0 == control_count3 == value_countvalue_count == control->op()->ControlInputCount()input_count == 1 + value_count0 == value_counteffect_count == control->op()->ControlInputCount()input_count == 1 + effect_countnon_phi_use_found2 == control_countIrOpcode::kLoop == loop->opcode()IrOpcode::kLoopExit == loop_exit->opcode()NodeProperties::GetType(val).Is(NodeProperties::GetType(node))5 == value_count6 == input_countNodeProperties::GetValueInput(node, i)->opcode() == IrOpcode::kStateValues || NodeProperties::GetValueInput(node, i)->opcode() == IrOpcode::kTypedStateValuesPropertyAccessOf(node->op()).feedback().IsValid()NamedAccessOf(node->op()).feedback().IsValid()LoadGlobalParametersOf(node->op()).feedback().IsValid()StoreGlobalParametersOf(node->op()).feedback().IsValid()StoreNamedOwnParametersOf(node->op()).feedback().IsValid()FeedbackParameterOf(node->op()).feedback().IsValid()(graph->start()) != nullptr(graph->end()) != nullptr../deps/v8/src/compiler/verifier.cc:1752Node #%d:%s has duplicate projections #%d and #%d../deps/v8/src/compiler/verifier.cc:1840count >= rpo_order->size()(*b) == schedule->GetBlockById((*b)->id())predecessor->rpo_number() >= 0predecessor == schedule->GetBlockById(predecessor->id())successor->rpo_number() >= 0successor == schedule->GetBlockById(successor->id())start == rpo_order->at(0)static_cast(b) == block->rpo_number()(dom) == nullptr(dom) != nullptrdom->rpo_number() < block->rpo_number()block->rpo_number() >= 0block == rpo_order->at(block->rpo_number())marked[rpo_order->at(b)->id().ToSize()]Block B%d is not dominated by B%dBlock B%d is not immediately dominated by B%dcontrol->opcode() == IrOpcode::kMerge || control->opcode() == IrOpcode::kLoop(*b) == schedule->block(control)block == schedule->block(control)only_inputs_GraphError: node # does not produce output used by node #TypeError: node # type is not should never have a type(input @) type must intersect Node #%d:%s in B%d is not dominated by input@%d #%d:%sNode #%d:%s in B%d is not dominated by control input #%d:%sused >= 0 && length > 0 && used < lengthlength < Smi::kMaxValue / 2Code generation from strings disallowed for this contextarray_poparray_pusharray_shiftarray_splicearray_unshiftarray_entries_iteratorarray_for_each_iteratorarray_keys_iteratorarray_values_iteratorerror_functionerror_to_stringeval_error_functionglobal_eval_funglobal_proxy_functionmap_deletemap_getmap_hasmap_setfunction_has_instanceobject_value_ofobject_to_stringpromise_catchpromise_functionrange_error_functionreference_error_functionset_addset_deleteset_hassyntax_error_functiontype_error_functionuri_error_functionwasm_compile_error_functionwasm_link_error_functionwasm_runtime_error_functionweakmap_setweakset_addasync_function_await_caughtasync_function_await_uncaughtasync_function_promise_createasync_function_promise_releaseis_arraylikegenerator_next_internalmake_errormake_range_errormake_syntax_errormake_type_errormake_uri_errorobject_createobject_define_propertiesobject_define_propertyobject_get_prototype_ofobject_is_extensibleobject_is_frozenobject_is_sealedobject_keysregexp_internal_matchreflect_applyreflect_constructreflect_define_propertyreflect_delete_propertymath_floormath_pownew_promise_capabilitypromise_internal_constructoris_promisepromise_thenasync_generator_await_caughtasync_generator_await_uncaughtc:V8.WasmGeneratedCodeBytesc:V8.WasmRelocBytesc:V8.WasmLazilyCompiledFunctionsc:V8.LiftoffCompiledFunctionsc:V8.LiftoffUnsupportedFunctionsV8.GCBackgroundMarkingV8.GCBackgroundScavengerV8.GCBackgroundSweepingV8.DetachedContextAgeInGCV8.CodeCacheRejectReasonV8.ErrorsThrownPerContextV8.DebugFeatureUsageV8.GCIncrementalMarkingReasonV8.GCIncrementalMarkingSumV8.GCMarkCompactReasonV8.GCScavengeReasonV8.GCYoungGenerationHandlingV8.WasmFunctionsPerModule.asmV8.WasmFunctionsPerModule.wasmV8.ArrayBufferLargeAllocationsV8.ArrayBufferNewSizeFailuresV8.SharedArrayAllocationSizesV8.WasmFunctionSizeBytes.asmV8.WasmFunctionSizeBytes.wasmV8.WasmModuleSizeBytes.asmV8.WasmModuleSizeBytes.wasmV8.WasmMinMemPagesCount.asmV8.WasmMinMemPagesCount.wasmV8.WasmMaxMemPagesCount.wasmV8.WasmDecodeModulePeakMemoryBytes.asmV8.WasmDecodeModulePeakMemoryBytes.wasmV8.AsmWasmTranslationPeakMemoryBytesV8.WasmCompileFunctionPeakMemoryBytesV8.AsmModuleSizeBytesV8.AsmWasmTranslationThroughputV8.WasmLazyCompilationThroughputV8.CompileScript.CacheBehaviourV8.WasmMemoryAllocationResultV8.WasmAddressSpaceUsageMiBV8.WasmModuleCodeSizeMiBV8.GCCompactorV8.GCCompactorBackgroundV8.GCCompactorForegroundV8.GCFinalizeMCV8.GCFinalizeMCBackgroundV8.GCFinalizeMCForegroundV8.GCFinalizeMCReduceMemoryV8.GCFinalizeMCReduceMemoryBackgroundV8.GCFinalizeMCReduceMemoryForegroundV8.GCScavengerV8.GCScavengerBackgroundV8.GCScavengerForegroundV8.GCContextV8.GCIdleNotificationV8.GCIncrementalMarkingV8.GCIncrementalMarkingStartV8.GCIncrementalMarkingFinalizeV8.CompileMicroSecondsV8.CompileEvalMicroSecondsV8.CompileSerializeMicroSecondsV8.CompileDeserializeMicroSecondsV8.CompileScriptMicroSecondsV8.AsmWasmTranslationMicroSecondsV8.WasmLazyCompilationMicroSecondsV8.WasmExecutionTimeMicroSecondsV8.WasmDecodeModuleMicroSeconds.asmV8.WasmDecodeModuleMicroSeconds.wasmV8.WasmDecodeFunctionMicroSeconds.asmV8.WasmDecodeFunctionMicroSeconds.wasmV8.WasmCompileModuleMicroSeconds.asmV8.WasmCompileModuleMicroSeconds.wasmV8.WasmCompileFunctionMicroSeconds.asmV8.WasmCompileFunctionMicroSeconds.wasmV8.LiftoffCompileMicroSecondsV8.WasmInstantiateModuleMicroSeconds.wasmV8.WasmInstantiateModuleMicroSeconds.asmV8.CompileScriptMicroSeconds.ProduceCacheV8.CompileScriptMicroSeconds.IsolateCacheHitV8.CompileScriptMicroSeconds.ConsumeCacheV8.CompileScriptMicroSeconds.ConsumeCache.FailedV8.CompileScriptMicroSeconds.NoCache.OtherV8.CompileScriptMicroSeconds.NoCache.InlineScriptV8.CompileScriptMicroSeconds.NoCache.ScriptTooSmallV8.CompileScriptMicroSeconds.NoCache.CacheTooColdV8.CompileScriptMicroSeconds.BackgroundThreadV8.GC.ParallelTaskLatencyMicroSecondsV8.CompileLazyMicroSecondsV8.MemoryExternalFragmentationTotalV8.MemoryExternalFragmentationOldSpaceV8.MemoryExternalFragmentationCodeSpaceV8.MemoryExternalFragmentationMapSpaceV8.MemoryExternalFragmentationLoSpaceV8.MemoryHeapSampleTotalCommittedV8.MemoryHeapSampleTotalUsedV8.MemoryHeapSampleMapSpaceCommittedV8.MemoryHeapSampleCodeSpaceCommittedV8.MemoryHeapSampleMaximumCommittedV8.MemoryHeapCommittedV8.MemoryHeapUsedc:V8.GlobalHandlesc:V8.OsMemoryAllocatedc:V8.MapsNormalizedc:V8.MapsCreatedc:V8.ObjectElementsTransitionsc:V8.ObjectPropertiesToDictionaryc:V8.ObjectElementsToDictionaryc:V8.AliveAfterLastGCc:V8.ObjsSinceLastYoungc:V8.ObjsSinceLastFullc:V8.StringTableCapacityc:V8.NumberOfSymbolsc:V8.ScriptWrappersc:V8.InlinedCopiedElementsc:V8.ArgumentsAdaptorsc:V8.CompilationCacheHitsc:V8.CompilationCacheMissesc:V8.TotalEvalSizec:V8.TotalLoadSizec:V8.TotalParseSizec:V8.TotalPreparseSkippedc:V8.TotalCompileSizec:V8.TotalFullCodegenSourceSizec:V8.ContextsCreatedFromScratchc:V8.ContextsCreatedBySnapshotc:V8.PcToCodec:V8.PcToCodeCachedc:V8.StoreBufferOverflowsc:V8.CodeStubsc:V8.TotalStubsCodeSizec:V8.TotalCompiledCodeSizec:V8.GCCompactorCausedByRequestc:V8.GCCompactorCausedByPromotedDatac:V8.GCCompactorCausedByOldspaceExhaustionc:V8.GCLastResortFromJSc:V8.GCLastResortFromHandlesc:V8.ICKeyedLoadGenericSmic:V8.ICKeyedLoadGenericSymbolc:V8.ICKeyedLoadGenericSlowc:V8.ICNamedLoadGlobalStubc:V8.ICStoreNormalMissc:V8.ICStoreNormalHitc:V8.ICBinaryOpMissc:V8.ICCompareMissc:V8.ICCallMissc:V8.ICKeyedCallMissc:V8.ICStoreMissc:V8.ICKeyedStoreMissc:V8.COWArraysConvertedc:V8.ConstructedObjectsc:V8.ConstructedObjectsRuntimec:V8.MegamorphicStubCacheProbesc:V8.MegamorphicStubCacheMissesc:V8.MegamorphicStubCacheUpdatesc:V8.EnumCacheHitsc:V8.EnumCacheMissesc:V8.FastNewClosureTotalc:V8.StringAddRuntimec:V8.StringAddNativec:V8.StringAddRuntimeExtToOneBytec:V8.SubStringRuntimec:V8.SubStringNativec:V8.RegExpEntryRuntimec:V8.RegExpEntryNativec:V8.NumberToStringNativec:V8.NumberToStringRuntimec:V8.MathExpRuntimec:V8.MathLogRuntimec:V8.MathPowRuntimec:V8.StackInterruptsc:V8.RuntimeProfilerTicksc:V8.RuntimeCallsc:V8.BoundsChecksEliminatedc:V8.BoundsChecksHoistedc:V8.SoftDeoptsRequestedc:V8.SoftDeoptsInsertedc:V8.SoftDeoptsExecutedc:V8.WriteBarriersDynamicc:V8.WriteBarriersStaticc:V8.MemoryNewSpaceBytesAvailablec:V8.MemoryNewSpaceBytesCommittedc:V8.MemoryNewSpaceBytesUsedc:V8.MemoryOldSpaceBytesAvailablec:V8.MemoryOldSpaceBytesCommittedc:V8.MemoryOldSpaceBytesUsedc:V8.MemoryCodeSpaceBytesAvailablec:V8.MemoryCodeSpaceBytesCommittedc:V8.MemoryCodeSpaceBytesUsedc:V8.MemoryMapSpaceBytesAvailablec:V8.MemoryMapSpaceBytesCommittedc:V8.MemoryMapSpaceBytesUsedc:V8.MemoryLoSpaceBytesAvailablec:V8.MemoryLoSpaceBytesCommittedc:V8.MemoryLoSpaceBytesUsedc:V8.TotalBaselineCodeSizec:V8.TotalBaselineCompileCountc:V8.CountOf_INTERNALIZED_STRING_TYPEc:V8.SizeOf_INTERNALIZED_STRING_TYPEc:V8.CountOf_EXTERNAL_INTERNALIZED_STRING_TYPEc:V8.SizeOf_EXTERNAL_INTERNALIZED_STRING_TYPEc:V8.CountOf_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.SizeOf_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.CountOf_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.SizeOf_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.CountOf_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.SizeOf_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.CountOf_SHORT_EXTERNAL_INTERNALIZED_STRING_TYPEc:V8.SizeOf_SHORT_EXTERNAL_INTERNALIZED_STRING_TYPEc:V8.CountOf_SHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.SizeOf_SHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPEc:V8.CountOf_SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.SizeOf_SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.CountOf_STRING_TYPEc:V8.SizeOf_STRING_TYPEc:V8.CountOf_CONS_STRING_TYPEc:V8.SizeOf_CONS_STRING_TYPEc:V8.CountOf_EXTERNAL_STRING_TYPEc:V8.SizeOf_EXTERNAL_STRING_TYPEc:V8.CountOf_SLICED_STRING_TYPEc:V8.SizeOf_SLICED_STRING_TYPEc:V8.CountOf_THIN_STRING_TYPEc:V8.SizeOf_THIN_STRING_TYPEc:V8.CountOf_ONE_BYTE_STRING_TYPEc:V8.SizeOf_ONE_BYTE_STRING_TYPEc:V8.CountOf_CONS_ONE_BYTE_STRING_TYPEc:V8.SizeOf_CONS_ONE_BYTE_STRING_TYPEc:V8.CountOf_EXTERNAL_ONE_BYTE_STRING_TYPEc:V8.SizeOf_EXTERNAL_ONE_BYTE_STRING_TYPEc:V8.CountOf_SLICED_ONE_BYTE_STRING_TYPEc:V8.SizeOf_SLICED_ONE_BYTE_STRING_TYPEc:V8.CountOf_THIN_ONE_BYTE_STRING_TYPEc:V8.SizeOf_THIN_ONE_BYTE_STRING_TYPEc:V8.CountOf_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.SizeOf_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.CountOf_SHORT_EXTERNAL_STRING_TYPEc:V8.SizeOf_SHORT_EXTERNAL_STRING_TYPEc:V8.CountOf_SHORT_EXTERNAL_ONE_BYTE_STRING_TYPEc:V8.SizeOf_SHORT_EXTERNAL_ONE_BYTE_STRING_TYPEc:V8.CountOf_SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.SizeOf_SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPEc:V8.CountOf_SYMBOL_TYPEc:V8.SizeOf_SYMBOL_TYPEc:V8.CountOf_HEAP_NUMBER_TYPEc:V8.SizeOf_HEAP_NUMBER_TYPEc:V8.CountOf_BIGINT_TYPEc:V8.SizeOf_BIGINT_TYPEc:V8.CountOf_ODDBALL_TYPEc:V8.SizeOf_ODDBALL_TYPEc:V8.CountOf_MAP_TYPEc:V8.SizeOf_MAP_TYPEc:V8.CountOf_CODE_TYPEc:V8.SizeOf_CODE_TYPEc:V8.CountOf_MUTABLE_HEAP_NUMBER_TYPEc:V8.SizeOf_MUTABLE_HEAP_NUMBER_TYPEc:V8.CountOf_FOREIGN_TYPEc:V8.SizeOf_FOREIGN_TYPEc:V8.CountOf_BYTE_ARRAY_TYPEc:V8.SizeOf_BYTE_ARRAY_TYPEc:V8.CountOf_BYTECODE_ARRAY_TYPEc:V8.SizeOf_BYTECODE_ARRAY_TYPEc:V8.CountOf_FREE_SPACE_TYPEc:V8.SizeOf_FREE_SPACE_TYPEc:V8.CountOf_FIXED_INT8_ARRAY_TYPEc:V8.SizeOf_FIXED_INT8_ARRAY_TYPEc:V8.CountOf_FIXED_UINT8_ARRAY_TYPEc:V8.SizeOf_FIXED_UINT8_ARRAY_TYPEc:V8.CountOf_FIXED_INT16_ARRAY_TYPEc:V8.SizeOf_FIXED_INT16_ARRAY_TYPEc:V8.CountOf_FIXED_UINT16_ARRAY_TYPEc:V8.SizeOf_FIXED_UINT16_ARRAY_TYPEc:V8.CountOf_FIXED_INT32_ARRAY_TYPEc:V8.SizeOf_FIXED_INT32_ARRAY_TYPEc:V8.CountOf_FIXED_UINT32_ARRAY_TYPEc:V8.SizeOf_FIXED_UINT32_ARRAY_TYPEc:V8.CountOf_FIXED_FLOAT32_ARRAY_TYPEc:V8.SizeOf_FIXED_FLOAT32_ARRAY_TYPEc:V8.CountOf_FIXED_FLOAT64_ARRAY_TYPEc:V8.SizeOf_FIXED_FLOAT64_ARRAY_TYPEc:V8.CountOf_FIXED_UINT8_CLAMPED_ARRAY_TYPEc:V8.SizeOf_FIXED_UINT8_CLAMPED_ARRAY_TYPEc:V8.CountOf_FIXED_BIGINT64_ARRAY_TYPEc:V8.SizeOf_FIXED_BIGINT64_ARRAY_TYPEc:V8.CountOf_FIXED_BIGUINT64_ARRAY_TYPEc:V8.SizeOf_FIXED_BIGUINT64_ARRAY_TYPEc:V8.CountOf_FIXED_DOUBLE_ARRAY_TYPEc:V8.SizeOf_FIXED_DOUBLE_ARRAY_TYPEc:V8.CountOf_FEEDBACK_METADATA_TYPEc:V8.SizeOf_FEEDBACK_METADATA_TYPEc:V8.CountOf_FILLER_TYPEc:V8.SizeOf_FILLER_TYPEc:V8.CountOf_ACCESS_CHECK_INFO_TYPEc:V8.SizeOf_ACCESS_CHECK_INFO_TYPEc:V8.CountOf_ACCESSOR_INFO_TYPEc:V8.SizeOf_ACCESSOR_INFO_TYPEc:V8.CountOf_ACCESSOR_PAIR_TYPEc:V8.SizeOf_ACCESSOR_PAIR_TYPEc:V8.CountOf_ALIASED_ARGUMENTS_ENTRY_TYPEc:V8.SizeOf_ALIASED_ARGUMENTS_ENTRY_TYPEc:V8.CountOf_ALLOCATION_MEMENTO_TYPEc:V8.SizeOf_ALLOCATION_MEMENTO_TYPEc:V8.CountOf_ALLOCATION_SITE_TYPEc:V8.SizeOf_ALLOCATION_SITE_TYPEc:V8.CountOf_ASYNC_GENERATOR_REQUEST_TYPEc:V8.SizeOf_ASYNC_GENERATOR_REQUEST_TYPEc:V8.CountOf_DEBUG_INFO_TYPEc:V8.SizeOf_DEBUG_INFO_TYPEc:V8.CountOf_FUNCTION_TEMPLATE_INFO_TYPEc:V8.SizeOf_FUNCTION_TEMPLATE_INFO_TYPEc:V8.CountOf_INTERCEPTOR_INFO_TYPEc:V8.SizeOf_INTERCEPTOR_INFO_TYPEc:V8.CountOf_INTERPRETER_DATA_TYPEc:V8.SizeOf_INTERPRETER_DATA_TYPEc:V8.CountOf_MODULE_INFO_ENTRY_TYPEc:V8.SizeOf_MODULE_INFO_ENTRY_TYPEc:V8.CountOf_MODULE_TYPEc:V8.SizeOf_MODULE_TYPEc:V8.CountOf_OBJECT_TEMPLATE_INFO_TYPEc:V8.SizeOf_OBJECT_TEMPLATE_INFO_TYPEc:V8.CountOf_PROMISE_CAPABILITY_TYPEc:V8.SizeOf_PROMISE_CAPABILITY_TYPEc:V8.CountOf_PROMISE_REACTION_TYPEc:V8.SizeOf_PROMISE_REACTION_TYPEc:V8.CountOf_PROTOTYPE_INFO_TYPEc:V8.SizeOf_PROTOTYPE_INFO_TYPEc:V8.CountOf_SCRIPT_TYPEc:V8.SizeOf_SCRIPT_TYPEc:V8.CountOf_STACK_FRAME_INFO_TYPEc:V8.SizeOf_STACK_FRAME_INFO_TYPEc:V8.CountOf_TUPLE2_TYPEc:V8.SizeOf_TUPLE2_TYPEc:V8.CountOf_TUPLE3_TYPEc:V8.SizeOf_TUPLE3_TYPEc:V8.CountOf_WASM_COMPILED_MODULE_TYPEc:V8.SizeOf_WASM_COMPILED_MODULE_TYPEc:V8.CountOf_WASM_DEBUG_INFO_TYPEc:V8.SizeOf_WASM_DEBUG_INFO_TYPEc:V8.CountOf_WASM_EXPORTED_FUNCTION_DATA_TYPEc:V8.SizeOf_WASM_EXPORTED_FUNCTION_DATA_TYPEc:V8.CountOf_WASM_SHARED_MODULE_DATA_TYPEc:V8.SizeOf_WASM_SHARED_MODULE_DATA_TYPEc:V8.CountOf_CALLABLE_TASK_TYPEc:V8.SizeOf_CALLABLE_TASK_TYPEc:V8.CountOf_CALLBACK_TASK_TYPEc:V8.SizeOf_CALLBACK_TASK_TYPEc:V8.CountOf_PROMISE_FULFILL_REACTION_JOB_TASK_TYPEc:V8.SizeOf_PROMISE_FULFILL_REACTION_JOB_TASK_TYPEc:V8.CountOf_PROMISE_REJECT_REACTION_JOB_TASK_TYPEc:V8.SizeOf_PROMISE_REJECT_REACTION_JOB_TASK_TYPEc:V8.CountOf_PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPEc:V8.SizeOf_PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPEc:V8.CountOf_FIXED_ARRAY_TYPEc:V8.SizeOf_FIXED_ARRAY_TYPEc:V8.CountOf_BOILERPLATE_DESCRIPTION_TYPEc:V8.SizeOf_BOILERPLATE_DESCRIPTION_TYPEc:V8.CountOf_DESCRIPTOR_ARRAY_TYPEc:V8.SizeOf_DESCRIPTOR_ARRAY_TYPEc:V8.CountOf_HASH_TABLE_TYPEc:V8.SizeOf_HASH_TABLE_TYPEc:V8.CountOf_SCOPE_INFO_TYPEc:V8.SizeOf_SCOPE_INFO_TYPEc:V8.CountOf_BLOCK_CONTEXT_TYPEc:V8.SizeOf_BLOCK_CONTEXT_TYPEc:V8.CountOf_CATCH_CONTEXT_TYPEc:V8.SizeOf_CATCH_CONTEXT_TYPEc:V8.CountOf_DEBUG_EVALUATE_CONTEXT_TYPEc:V8.SizeOf_DEBUG_EVALUATE_CONTEXT_TYPEc:V8.CountOf_EVAL_CONTEXT_TYPEc:V8.SizeOf_EVAL_CONTEXT_TYPEc:V8.CountOf_FUNCTION_CONTEXT_TYPEc:V8.SizeOf_FUNCTION_CONTEXT_TYPEc:V8.CountOf_MODULE_CONTEXT_TYPEc:V8.SizeOf_MODULE_CONTEXT_TYPEc:V8.CountOf_NATIVE_CONTEXT_TYPEc:V8.SizeOf_NATIVE_CONTEXT_TYPEc:V8.CountOf_SCRIPT_CONTEXT_TYPEc:V8.SizeOf_SCRIPT_CONTEXT_TYPEc:V8.CountOf_WITH_CONTEXT_TYPEc:V8.SizeOf_WITH_CONTEXT_TYPEc:V8.CountOf_WEAK_FIXED_ARRAY_TYPEc:V8.SizeOf_WEAK_FIXED_ARRAY_TYPEc:V8.CountOf_TRANSITION_ARRAY_TYPEc:V8.SizeOf_TRANSITION_ARRAY_TYPEc:V8.CountOf_CALL_HANDLER_INFO_TYPEc:V8.SizeOf_CALL_HANDLER_INFO_TYPEc:V8.CountOf_CELL_TYPEc:V8.SizeOf_CELL_TYPEc:V8.CountOf_CODE_DATA_CONTAINER_TYPEc:V8.SizeOf_CODE_DATA_CONTAINER_TYPEc:V8.CountOf_FEEDBACK_CELL_TYPEc:V8.SizeOf_FEEDBACK_CELL_TYPEc:V8.CountOf_FEEDBACK_VECTOR_TYPEc:V8.SizeOf_FEEDBACK_VECTOR_TYPEc:V8.CountOf_LOAD_HANDLER_TYPEc:V8.SizeOf_LOAD_HANDLER_TYPEc:V8.CountOf_PROPERTY_ARRAY_TYPEc:V8.SizeOf_PROPERTY_ARRAY_TYPEc:V8.CountOf_PROPERTY_CELL_TYPEc:V8.SizeOf_PROPERTY_CELL_TYPEc:V8.CountOf_SHARED_FUNCTION_INFO_TYPEc:V8.SizeOf_SHARED_FUNCTION_INFO_TYPEc:V8.CountOf_SMALL_ORDERED_HASH_MAP_TYPEc:V8.SizeOf_SMALL_ORDERED_HASH_MAP_TYPEc:V8.CountOf_SMALL_ORDERED_HASH_SET_TYPEc:V8.SizeOf_SMALL_ORDERED_HASH_SET_TYPEc:V8.CountOf_STORE_HANDLER_TYPEc:V8.SizeOf_STORE_HANDLER_TYPEc:V8.CountOf_WEAK_CELL_TYPEc:V8.SizeOf_WEAK_CELL_TYPEc:V8.CountOf_WEAK_ARRAY_LIST_TYPEc:V8.SizeOf_WEAK_ARRAY_LIST_TYPEc:V8.CountOf_JS_PROXY_TYPEc:V8.SizeOf_JS_PROXY_TYPEc:V8.CountOf_JS_GLOBAL_OBJECT_TYPEc:V8.SizeOf_JS_GLOBAL_OBJECT_TYPEc:V8.CountOf_JS_GLOBAL_PROXY_TYPEc:V8.SizeOf_JS_GLOBAL_PROXY_TYPEc:V8.CountOf_JS_MODULE_NAMESPACE_TYPEc:V8.SizeOf_JS_MODULE_NAMESPACE_TYPEc:V8.CountOf_JS_SPECIAL_API_OBJECT_TYPEc:V8.SizeOf_JS_SPECIAL_API_OBJECT_TYPEc:V8.CountOf_JS_VALUE_TYPEc:V8.SizeOf_JS_VALUE_TYPEc:V8.CountOf_JS_API_OBJECT_TYPEc:V8.SizeOf_JS_API_OBJECT_TYPEc:V8.CountOf_JS_OBJECT_TYPEc:V8.SizeOf_JS_OBJECT_TYPEc:V8.CountOf_JS_ARGUMENTS_TYPEc:V8.SizeOf_JS_ARGUMENTS_TYPEc:V8.CountOf_JS_ARRAY_BUFFER_TYPEc:V8.SizeOf_JS_ARRAY_BUFFER_TYPEc:V8.CountOf_JS_ARRAY_ITERATOR_TYPEc:V8.SizeOf_JS_ARRAY_ITERATOR_TYPEc:V8.CountOf_JS_ARRAY_TYPEc:V8.SizeOf_JS_ARRAY_TYPEc:V8.CountOf_JS_ASYNC_FROM_SYNC_ITERATOR_TYPEc:V8.SizeOf_JS_ASYNC_FROM_SYNC_ITERATOR_TYPEc:V8.CountOf_JS_ASYNC_GENERATOR_OBJECT_TYPEc:V8.SizeOf_JS_ASYNC_GENERATOR_OBJECT_TYPEc:V8.CountOf_JS_CONTEXT_EXTENSION_OBJECT_TYPEc:V8.SizeOf_JS_CONTEXT_EXTENSION_OBJECT_TYPEc:V8.CountOf_JS_DATE_TYPEc:V8.SizeOf_JS_DATE_TYPEc:V8.CountOf_JS_ERROR_TYPEc:V8.SizeOf_JS_ERROR_TYPEc:V8.CountOf_JS_GENERATOR_OBJECT_TYPEc:V8.SizeOf_JS_GENERATOR_OBJECT_TYPEc:V8.CountOf_JS_MAP_TYPEc:V8.SizeOf_JS_MAP_TYPEc:V8.CountOf_JS_MAP_KEY_ITERATOR_TYPEc:V8.SizeOf_JS_MAP_KEY_ITERATOR_TYPEc:V8.CountOf_JS_MAP_KEY_VALUE_ITERATOR_TYPEc:V8.SizeOf_JS_MAP_KEY_VALUE_ITERATOR_TYPEc:V8.CountOf_JS_MAP_VALUE_ITERATOR_TYPEc:V8.SizeOf_JS_MAP_VALUE_ITERATOR_TYPEc:V8.CountOf_JS_MESSAGE_OBJECT_TYPEc:V8.SizeOf_JS_MESSAGE_OBJECT_TYPEc:V8.CountOf_JS_PROMISE_TYPEc:V8.SizeOf_JS_PROMISE_TYPEc:V8.CountOf_JS_REGEXP_TYPEc:V8.SizeOf_JS_REGEXP_TYPEc:V8.CountOf_JS_REGEXP_STRING_ITERATOR_TYPEc:V8.SizeOf_JS_REGEXP_STRING_ITERATOR_TYPEc:V8.CountOf_JS_SET_TYPEc:V8.SizeOf_JS_SET_TYPEc:V8.CountOf_JS_SET_KEY_VALUE_ITERATOR_TYPEc:V8.SizeOf_JS_SET_KEY_VALUE_ITERATOR_TYPEc:V8.CountOf_JS_SET_VALUE_ITERATOR_TYPEc:V8.SizeOf_JS_SET_VALUE_ITERATOR_TYPEc:V8.CountOf_JS_STRING_ITERATOR_TYPEc:V8.SizeOf_JS_STRING_ITERATOR_TYPEc:V8.CountOf_JS_WEAK_MAP_TYPEc:V8.SizeOf_JS_WEAK_MAP_TYPEc:V8.CountOf_JS_WEAK_SET_TYPEc:V8.SizeOf_JS_WEAK_SET_TYPEc:V8.CountOf_JS_TYPED_ARRAY_TYPEc:V8.SizeOf_JS_TYPED_ARRAY_TYPEc:V8.CountOf_JS_DATA_VIEW_TYPEc:V8.SizeOf_JS_DATA_VIEW_TYPEc:V8.CountOf_WASM_GLOBAL_TYPEc:V8.SizeOf_WASM_GLOBAL_TYPEc:V8.CountOf_WASM_INSTANCE_TYPEc:V8.SizeOf_WASM_INSTANCE_TYPEc:V8.CountOf_WASM_MEMORY_TYPEc:V8.SizeOf_WASM_MEMORY_TYPEc:V8.CountOf_WASM_MODULE_TYPEc:V8.SizeOf_WASM_MODULE_TYPEc:V8.CountOf_WASM_TABLE_TYPEc:V8.SizeOf_WASM_TABLE_TYPEc:V8.CountOf_JS_BOUND_FUNCTION_TYPEc:V8.SizeOf_JS_BOUND_FUNCTION_TYPEc:V8.CountOf_JS_FUNCTION_TYPEc:V8.SizeOf_JS_FUNCTION_TYPEc:V8.CountOf_CODE_TYPE-OPTIMIZED_FUNCTIONc:V8.SizeOf_CODE_TYPE-OPTIMIZED_FUNCTIONc:V8.CountOf_CODE_TYPE-BYTECODE_HANDLERc:V8.SizeOf_CODE_TYPE-BYTECODE_HANDLERc:V8.CountOf_CODE_TYPE-STUBc:V8.SizeOf_CODE_TYPE-STUBc:V8.CountOf_CODE_TYPE-BUILTINc:V8.SizeOf_CODE_TYPE-BUILTINc:V8.CountOf_CODE_TYPE-REGEXPc:V8.SizeOf_CODE_TYPE-REGEXPc:V8.CountOf_CODE_TYPE-WASM_FUNCTIONc:V8.SizeOf_CODE_TYPE-WASM_FUNCTIONc:V8.CountOf_CODE_TYPE-WASM_TO_JS_FUNCTIONc:V8.SizeOf_CODE_TYPE-WASM_TO_JS_FUNCTIONc:V8.CountOf_CODE_TYPE-JS_TO_WASM_FUNCTIONc:V8.SizeOf_CODE_TYPE-JS_TO_WASM_FUNCTIONc:V8.CountOf_CODE_TYPE-WASM_INTERPRETER_ENTRYc:V8.SizeOf_CODE_TYPE-WASM_INTERPRETER_ENTRYc:V8.CountOf_CODE_TYPE-C_WASM_ENTRYc:V8.SizeOf_CODE_TYPE-C_WASM_ENTRYc:V8.CountOf_FIXED_ARRAY-BYTECODE_ARRAY_CONSTANT_POOL_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-BYTECODE_ARRAY_CONSTANT_POOL_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-BYTECODE_ARRAY_HANDLER_TABLE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-BYTECODE_ARRAY_HANDLER_TABLE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-CODE_STUBS_TABLE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-CODE_STUBS_TABLE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-COMPILATION_CACHE_TABLE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-COMPILATION_CACHE_TABLE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-CONTEXT_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-CONTEXT_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-COPY_ON_WRITE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-COPY_ON_WRITE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-DEOPTIMIZATION_DATA_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-DEOPTIMIZATION_DATA_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-DESCRIPTOR_ARRAY_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-DESCRIPTOR_ARRAY_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-EMBEDDED_OBJECT_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-EMBEDDED_OBJECT_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-ENUM_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-ENUM_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-ENUM_INDICES_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-ENUM_INDICES_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-DEPENDENT_CODE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-DEPENDENT_CODE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-DICTIONARY_ELEMENTS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-DICTIONARY_ELEMENTS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-DICTIONARY_PROPERTIES_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-DICTIONARY_PROPERTIES_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-EMPTY_PROPERTIES_DICTIONARY_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-EMPTY_PROPERTIES_DICTIONARY_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-PACKED_ELEMENTS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-PACKED_ELEMENTS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-FAST_PROPERTIES_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-FAST_PROPERTIES_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-HANDLER_TABLE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-HANDLER_TABLE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-JS_COLLECTION_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-JS_COLLECTION_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-JS_WEAK_COLLECTION_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-JS_WEAK_COLLECTION_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-NUMBER_STRING_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-NUMBER_STRING_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-OBJECT_TO_CODE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-OBJECT_TO_CODE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-OPTIMIZED_CODE_LITERALS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-OPTIMIZED_CODE_LITERALS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-OPTIMIZED_CODE_MAP_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-OPTIMIZED_CODE_MAP_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-PROTOTYPE_USERS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-PROTOTYPE_USERS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-REGEXP_MULTIPLE_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-REGEXP_MULTIPLE_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-RETAINED_MAPS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-RETAINED_MAPS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SCOPE_INFO_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SCOPE_INFO_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SCRIPT_LIST_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SCRIPT_LIST_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SERIALIZED_OBJECTS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SERIALIZED_OBJECTS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SHARED_FUNCTION_INFOS_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SHARED_FUNCTION_INFOS_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SINGLE_CHARACTER_STRING_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SINGLE_CHARACTER_STRING_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-SLOW_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-SLOW_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-STRING_SPLIT_CACHE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-STRING_SPLIT_CACHE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-STRING_TABLE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-STRING_TABLE_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-TEMPLATE_INFO_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-TEMPLATE_INFO_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-FEEDBACK_METADATA_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-FEEDBACK_METADATA_SUB_TYPEc:V8.CountOf_FIXED_ARRAY-WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPEc:V8.SizeOf_FIXED_ARRAY-WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPEGC_MC_INCREMENTALGC_MC_INCREMENTAL_STARTGC_MC_INCREMENTAL_SWEEPINGGC_MC_INCREMENTAL_WRAPPER_PROLOGUEGC_MC_INCREMENTAL_WRAPPER_TRACINGGC_MC_INCREMENTAL_FINALIZEGC_MC_INCREMENTAL_FINALIZE_BODYGC_MC_INCREMENTAL_EXTERNAL_EPILOGUEGC_MC_INCREMENTAL_EXTERNAL_PROLOGUEGC_HEAP_EPILOGUEGC_HEAP_EPILOGUE_REDUCE_NEW_SPACEGC_HEAP_EXTERNAL_EPILOGUEGC_HEAP_EXTERNAL_PROLOGUEGC_HEAP_EXTERNAL_WEAK_GLOBAL_HANDLESGC_HEAP_PROLOGUEGC_MC_CLEARGC_MC_CLEAR_DEPENDENT_CODEGC_MC_CLEAR_MAPSGC_MC_CLEAR_SLOTS_BUFFERGC_MC_CLEAR_STORE_BUFFERGC_MC_CLEAR_STRING_TABLEGC_MC_CLEAR_WEAK_CELLSGC_MC_CLEAR_WEAK_COLLECTIONSGC_MC_CLEAR_WEAK_LISTSGC_MC_CLEAR_WEAK_REFERENCESGC_MC_EPILOGUEGC_MC_EVACUATEGC_MC_EVACUATE_CANDIDATESGC_MC_EVACUATE_CLEAN_UPGC_MC_EVACUATE_COPYGC_MC_EVACUATE_EPILOGUEGC_MC_EVACUATE_PROLOGUEGC_MC_EVACUATE_REBALANCEGC_MC_EVACUATE_UPDATE_POINTERSGC_MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAINGC_MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAP_SPACEGC_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTSGC_MC_EVACUATE_UPDATE_POINTERS_WEAKGC_MC_FINISHGC_MC_MARKGC_MC_MARK_FINISH_INCREMENTALGC_MC_MARK_MAINGC_MC_MARK_ROOTSGC_MC_MARK_WEAK_CLOSUREGC_MC_MARK_WEAK_CLOSURE_EPHEMERALGC_MC_MARK_WEAK_CLOSURE_WEAK_HANDLESGC_MC_MARK_WEAK_CLOSURE_WEAK_ROOTSGC_MC_MARK_WEAK_CLOSURE_HARMONYGC_MC_MARK_WRAPPER_EPILOGUEGC_MC_MARK_WRAPPER_PROLOGUEGC_MC_MARK_WRAPPER_TRACINGGC_MC_PROLOGUEGC_MC_SWEEPGC_MC_SWEEP_CODEGC_MC_SWEEP_MAPGC_MC_SWEEP_OLDGC_MINOR_MCGC_MINOR_MC_CLEARGC_MINOR_MC_CLEAR_STRING_TABLEGC_MINOR_MC_CLEAR_WEAK_LISTSGC_MINOR_MC_EVACUATEGC_MINOR_MC_EVACUATE_CLEAN_UPGC_MINOR_MC_EVACUATE_COPYGC_MINOR_MC_EVACUATE_EPILOGUEGC_MINOR_MC_EVACUATE_PROLOGUEGC_MINOR_MC_EVACUATE_REBALANCEGC_MINOR_MC_EVACUATE_UPDATE_POINTERSGC_MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTSGC_MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTSGC_MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAKGC_MINOR_MC_MARKGC_MINOR_MC_MARK_GLOBAL_HANDLESGC_MINOR_MC_MARK_SEEDGC_MINOR_MC_MARK_ROOTSGC_MINOR_MC_MARK_WEAKGC_MINOR_MC_MARKING_DEQUEGC_MINOR_MC_RESET_LIVENESSGC_MINOR_MC_SWEEPINGGC_SCAVENGER_FAST_PROMOTEGC_SCAVENGER_SCAVENGEGC_SCAVENGER_PROCESS_ARRAY_BUFFERSGC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFYGC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESSGC_SCAVENGER_SCAVENGE_PARALLELGC_SCAVENGER_SCAVENGE_ROOTSGC_SCAVENGER_SCAVENGE_WEAKGC_BACKGROUND_ARRAY_BUFFER_FREEGC_BACKGROUND_STORE_BUFFERGC_BACKGROUND_UNMAPPERGC_MC_BACKGROUND_EVACUATE_COPYGC_MC_BACKGROUND_EVACUATE_UPDATE_POINTERSGC_MC_BACKGROUND_MARKINGGC_MC_BACKGROUND_SWEEPINGGC_MINOR_MC_BACKGROUND_EVACUATE_COPYGC_MINOR_MC_BACKGROUND_EVACUATE_UPDATE_POINTERSGC_MINOR_MC_BACKGROUND_MARKINGGC_SCAVENGER_BACKGROUND_SCAVENGE_PARALLELAccessorGetterCallbackAccessorSetterCallbackArrayLengthGetterArrayLengthSetterBoundFunctionNameGetterBoundFunctionLengthGetterCompileBackgroundAnalyseCompileBackgroundEvalCompileBackgroundIgnitionCompileBackgroundScriptCompileBackgroundRewriteReturnResultCompileBackgroundScopeAnalysisCompileDeserializeCompileEvalCompileAnalyseCompileFunctionCompileGetFromOptimizedCodeMapCompileIgnitionCompileIgnitionFinalizationCompileRewriteReturnResultCompileScopeAnalysisCompileScriptCompileSerializeCompileWaitForDispatcherDeoptimizeCodeFunctionCallbackFunctionPrototypeGetterFunctionPrototypeSetterFunctionLengthGetterGC_Custom_AllAvailableGarbageGC_Custom_IncrementalMarkingObserverGC_Custom_SlowAllocateRawGCEpilogueCallbackGCPrologueCallbackGetMoreDataCallbackNamedDefinerCallbackNamedDeleterCallbackNamedDescriptorCallbackNamedQueryCallbackNamedSetterCallbackNamedGetterCallbackNamedEnumeratorCallbackIndexedDefinerCallbackIndexedDeleterCallbackIndexedDescriptorCallbackIndexedGetterCallbackIndexedQueryCallbackIndexedSetterCallbackIndexedEnumeratorCallbackInvokeApiInterruptCallbacksInvokeFunctionCallbackJS_ExecutionMap_SetPrototypeMap_TransitionToAccessorPropertyMap_TransitionToDataPropertyObject_DeletePropertyOptimizeCodeParseArrowFunctionLiteralParseBackgroundArrowFunctionLiteralParseBackgroundFunctionLiteralParseBackgroundProgramParseEvalParseFunctionParseFunctionLiteralParseProgramPreParseArrowFunctionLiteralPreParseBackgroundArrowFunctionLiteralPreParseBackgroundNoVariableResolutionPreParseBackgroundWithVariableResolutionPreParseNoVariableResolutionPreParseWithVariableResolutionPropertyCallbackPrototypeMap_TransitionToAccessorPropertyPrototypeMap_TransitionToDataPropertyPrototypeObject_DeletePropertyRecompileConcurrentRecompileSynchronousReconfigureToDataPropertyStringLengthGetterTestCounter1TestCounter2TestCounter3DebugBreakOnBytecodeLoadLookupSlotForCallArrayIncludes_SlowArraySpeciesConstructorEstimateNumberOfElementsGetArrayKeysGrowArrayElementsHasComplexElementsIsArrayMoveArrayContentsNormalizeElementsPrepareElementsForSortTrySliceSimpleNonFastElementsAtomicsNumWaitersForTestingSetAllowAtomicsWaitBigIntBinaryOpBigIntCompareToBigIntBigIntCompareToNumberBigIntCompareToStringBigIntEqualToBigIntBigIntEqualToNumberBigIntEqualToStringBigIntToBooleanBigIntToNumberBigIntUnaryOpToBigIntDefineClassHomeObjectSymbolLoadFromSuperLoadKeyedFromSuperStoreKeyedToSuper_SloppyStoreKeyedToSuper_StrictStoreToSuper_SloppyStoreToSuper_StrictThrowConstructorNonCallableErrorThrowNotSuperConstructorThrowStaticPrototypeErrorThrowSuperAlreadyCalledErrorThrowSuperNotCalledThrowUnsupportedSuperErrorGetWeakMapEntriesGetWeakSetValuesIsJSMapIsJSSetIsJSWeakMapIsJSWeakSetMapGrowMapIteratorCloneMapShrinkSetGrowSetIteratorCloneSetShrinkTheHoleCompileForOnStackReplacementCompileOptimized_ConcurrentCompileOptimized_NotConcurrentEvictOptimizedCodeSlotFunctionFirstExecutionResolvePossiblyDirectEvalDateCurrentTimeIsDateChangeBreakOnExceptionCheckExecutionStateClearSteppingCollectGarbageDebugApplyInstrumentationDebugAsyncFunctionPromiseCreatedDebugBreakAtEntryDebugCollectCoverageDebugConstructedByDebugEvaluateDebugEvaluateGlobalDebugGetInternalPropertiesDebugGetLoadedScriptsDebugGetPropertyDebugGetPropertyDetailsDebugGetPrototypeDebugIsActiveDebugOnFunctionCallDebugPopPromiseDebugPrepareStepInSuspendedGeneratorDebugPropertyAttributesFromDetailsDebugPropertyKindFromDetailsDebugPushPromiseDebugReferencedByDebugSetScriptSourceDebugToggleBlockCoverageDebugTogglePreciseCoverageFunctionGetDebugNameFunctionGetInferredNameGetAllScopesDetailsGetBreakLocationsGetDebugContextGetFrameCountGetFrameDetailsGetFunctionScopeCountGetFunctionScopeDetailsGetGeneratorScopeCountGetGeneratorScopeDetailsGetHeapUsageGetScopeCountGetScopeDetailsGetScriptIncBlockCounterIsBreakOnExceptionPrepareStepScheduleBreakScriptLineCountScriptLocationFromLine2ScriptLocationFromLineScriptPositionInfo2ScriptPositionInfoSetScopeVariableValueErrorToStringForInHasPropertyFunctionGetContextDataFunctionGetNameFunctionGetScriptFunctionGetScriptIdFunctionGetScriptSourcePositionFunctionGetSourceCodeFunctionIsAPIFunctionFunctionToStringIsFunctionSetCodeSetNativeFlagAsyncGeneratorHasCatchHandlerForPCCreateJSGeneratorObjectGeneratorCloseGeneratorGetContinuationGeneratorGetFunctionGeneratorGetInputOrDebugPosGeneratorGetReceiverGeneratorGetResumeModeGeneratorGetSourcePositionElementsTransitionAndStoreIC_MissKeyedLoadIC_MissKeyedStoreIC_MissLoadElementWithInterceptorLoadGlobalIC_MissLoadIC_MissLoadPropertyWithInterceptorStoreCallbackPropertyStoreGlobalIC_MissStoreIC_MissStorePropertyWithInterceptorAllocateInTargetSpaceAllocateSeqOneByteStringAllocateSeqTwoByteStringAllowDynamicFunctionCheckIsBootstrappingCreateAsyncFromSyncIteratorCreateListFromArrayLikeCreateTemplateObjectExportFromRuntimeGetAndResetRuntimeCallStatsIncrementUseCounterInstallToContextInterruptIS_VARNewReferenceErrorNewSyntaxErrorNewTypeErrorPromoteScheduledExceptionReportMessageReThrowRunMicrotaskCallbackStackGuardThrowApplyNonFunctionThrowCalledNonCallableThrowConstructedNonConstructableThrowConstructorReturnedNonObjectThrowInvalidStringLengthThrowInvalidTypedArrayAlignmentThrowIteratorResultNotAnObjectThrowNotConstructorThrowRangeErrorThrowReferenceErrorThrowStackOverflowThrowSymbolAsyncIteratorInvalidThrowSymbolIteratorInvalidThrowThrowMethodMissingThrowTypeErrorUnwindAndFindExceptionHandlerInterpreterDeserializeLazyCreateArrayLiteralCreateObjectLiteralLiveEditCheckAndDropActivationsLiveEditCompareStringsLiveEditFindSharedFunctionInfosForScriptLiveEditFixupScriptLiveEditFunctionSetScriptLiveEditFunctionSourceUpdatedLiveEditGatherCompileInfoLiveEditPatchFunctionPositionsLiveEditReplaceFunctionCodeLiveEditReplaceRefToNestedFunctionLiveEditReplaceScriptLiveEditRestartFrameGenerateRandomNumbersDynamicImportCallGetImportMetaObjectGetModuleNamespaceGetHoleNaNLowerGetHoleNaNUpperIsSmiIsValidSmiMaxSmiNumberToStringSkipCacheSmiLexicographicCompareStringParseFloatStringParseIntAddDictionaryPropertyAddElementAddNamedPropertyAddPrivateFieldClassOfCollectTypeProfileCompleteInobjectSlackTrackingForMapCopyDataPropertiesCopyDataPropertiesWithExcludedPropertiesCreateDataPropertyDefineAccessorPropertyUncheckedDefineDataPropertyInLiteralDefineGetterPropertyUncheckedDefineMethodsInternalDefineSetterPropertyUncheckedGetFunctionNameGetInterceptorInfoGetOwnPropertyDescriptorGetOwnPropertyKeysGetPrototypeHasFastPackedElementsHasInPrototypeChainInternalSetPrototypeIsJSReceiverIterableToListCanBeElidedKeyedGetPropertyNewObjectObjectEntriesSkipFastPathObjectHasOwnPropertyObjectValuesSkipFastPathOptimizeObjectForAddingMultiplePropertiesSameValueZeroSetDataPropertiesSetPropertyShrinkPropertyDictionaryToFastPropertiesToPrimitiveToPrimitive_NumberValueOfNotEqualStrictNotEqualPromiseHookAfterPromiseHookBeforePromiseHookInitPromiseMarkAsHandledPromiseRejectEventFromStackPromiseResultPromiseRevokeRejectPromiseStatusPromiseRejectAfterResolvedPromiseResolveAfterResolvedCheckProxyGetSetTrapResultCheckProxyHasTrapGetPropertyWithReceiverIsJSProxyJSProxyGetHandlerJSProxyGetTargetSetPropertyWithReceiverIsRegExpRegExpExecRegExpExecMultipleRegExpInitializeAndCompileRegExpInternalReplaceStringReplaceNonGlobalRegExpWithFunctionStringSplitDeclareEvalFunctionDeclareEvalVarDeclareGlobalsDeleteLookupSlotLoadLookupSlotLoadLookupSlotInsideTypeofNewClosureNewClosure_TenuredNewFunctionContextNewRestParameterNewScriptContextNewSloppyArgumentsNewSloppyArguments_GenericNewStrictArgumentsPushBlockContextPushCatchContextPushModuleContextPushWithContextStoreLookupSlot_SloppyStoreLookupSlot_SloppyHoistingStoreLookupSlot_StrictThrowConstAssignErrorFlattenStringGetSubstitutionInternalizeStringSparseJoinWithSeparatorStringAddStringBuilderConcatStringBuilderJoinStringCharFromCodeStringIncludesStringIndexOfUncheckedStringLastIndexOfStringMaxLengthStringNotEqualStringReplaceOneCharWithStringStringToArrayStringTrimCreatePrivateFieldSymbolCreatePrivateSymbolSymbolDescriptionSymbolDescriptiveStringSymbolIsPrivateClearFunctionFeedbackCompleteInobjectSlackTrackingConstructConsStringConstructSlicedStringConstructDoubleDebugPrintDebugTraceDebugTrackRetainingPathDeoptimizeFunctionDeoptimizeNowDeserializeWasmModuleDisallowCodegenFromStringsDisallowWasmCodegenDisassembleFunctionFreezeWasmLazyCompilationGetCallableGetDeoptCountGetOptimizationStatusGetUndetectableGetWasmRecoveredTrapCountGlobalPrintHasDictionaryElementsHasDoubleElementsHasFastElementsHasFastPropertiesHasFixedBigInt64ElementsHasFixedBigUint64ElementsHasFixedFloat32ElementsHasFixedFloat64ElementsHasFixedInt16ElementsHasFixedInt32ElementsHasFixedInt8ElementsHasFixedUint16ElementsHasFixedUint32ElementsHasFixedUint8ClampedElementsHasFixedUint8ElementsHasHoleyElementsHasObjectElementsHasSloppyArgumentsElementsHasSmiElementsHasSmiOrObjectElementsHaveSameMapHeapObjectVerifyInNewSpaceIsAsmWasmCodeIsConcurrentRecompilationSupportedIsJSErrorIsJSGeneratorObjectIsJSMapIteratorIsJSSetIteratorIsLiftoffFunctionIsScriptWrapperIsWasmCodeIsWasmTrapHandlerEnabledNativeScriptsCountNeverOptimizeFunctionNotifyContextDisposedOptimizeFunctionOnNextCallOptimizeOsrPrintWithNameForAssertRedirectToWasmInterpreterRunningInSimulatorSerializeWasmModuleSetAllocationTimeoutSetFlagsSetForceSlowPathSetWasmCompileControlsSetWasmInstantiateControlsArraySpeciesProtectorTypedArraySpeciesProtectorPromiseSpeciesProtectorSystemBreakTraceEnterTraceExitUnblockConcurrentRecompilationValidateWasmInstancesChainValidateWasmModuleStateWasmNumInterpretedCallsWasmTraceMemoryArrayBufferNeuterArrayBufferViewWasNeuteredIsTypedArrayTypedArrayCopyElementsTypedArrayGetBufferTypedArrayGetLengthTypedArraySetTypedArraySortFastThrowWasmErrorThrowWasmStackOverflowWasmExceptionGetElementWasmExceptionSetElementWasmGetExceptionRuntimeIdWasmGrowMemoryWasmRunInterpreterWasmThrowWasmThrowCreateWasmThrowTypeErrorAPI_ArrayBuffer_CastAPI_ArrayBuffer_NeuterAPI_ArrayBuffer_NewAPI_Array_CloneElementAtAPI_Array_NewAPI_BigInt_NewFromWordsAPI_BigInt64Array_NewAPI_BigUint64Array_NewAPI_BigIntObject_NewAPI_BigIntObject_BigIntValueAPI_BooleanObject_BooleanValueAPI_BooleanObject_NewAPI_Context_NewAPI_Context_NewRemoteContextAPI_DataView_NewAPI_Date_DateTimeConfigurationChangeNotificationAPI_Date_NewAPI_Date_NumberValueAPI_Debug_CallAPI_Error_NewAPI_External_NewAPI_Float32Array_NewAPI_Float64Array_NewAPI_Function_CallAPI_Function_NewAPI_Function_NewInstanceAPI_FunctionTemplate_GetFunctionAPI_FunctionTemplate_NewAPI_FunctionTemplate_NewRemoteInstanceAPI_FunctionTemplate_NewWithCacheAPI_FunctionTemplate_NewWithFastHandlerAPI_Int16Array_NewAPI_Int32Array_NewAPI_Int8Array_NewAPI_JSON_ParseAPI_JSON_StringifyAPI_Map_AsArrayAPI_Map_ClearAPI_Map_DeleteAPI_Map_GetAPI_Map_HasAPI_Map_NewAPI_Map_SetAPI_Message_GetEndColumnAPI_Message_GetLineNumberAPI_Message_GetSourceLineAPI_Message_GetStartColumnAPI_Module_EvaluateAPI_Module_InstantiateModuleAPI_NumberObject_NewAPI_NumberObject_NumberValueAPI_Object_CallAsConstructorAPI_Object_CallAsFunctionAPI_Object_CreateDataPropertyAPI_Object_DefineOwnPropertyAPI_Object_DefinePropertyAPI_Object_DeleteAPI_Object_DeletePropertyAPI_Object_ForceSetAPI_Object_GetAPI_Object_GetOwnPropertyDescriptorAPI_Object_GetOwnPropertyNamesAPI_Object_GetPropertyAttributesAPI_Object_GetPropertyNamesAPI_Object_GetRealNamedPropertyAPI_Object_GetRealNamedPropertyAttributesAPI_Object_GetRealNamedPropertyAttributesInPrototypeChainAPI_Object_GetRealNamedPropertyInPrototypeChainAPI_Object_HasAPI_Object_HasOwnPropertyAPI_Object_HasRealIndexedPropertyAPI_Object_HasRealNamedCallbackPropertyAPI_Object_HasRealNamedPropertyAPI_Object_NewAPI_Object_ObjectProtoToStringAPI_Object_SetAPI_Object_SetAccessorAPI_Object_SetIntegrityLevelAPI_Object_SetPrivateAPI_Object_SetPrototypeAPI_ObjectTemplate_NewAPI_ObjectTemplate_NewInstanceAPI_Object_ToArrayIndexAPI_Object_ToBigIntAPI_Object_ToDetailStringAPI_Object_ToInt32API_Object_ToIntegerAPI_Object_ToNumberAPI_Object_ToObjectAPI_Object_ToStringAPI_Object_ToUint32API_Persistent_NewAPI_Private_NewAPI_Promise_CatchAPI_Promise_ChainAPI_Promise_HasRejectHandlerAPI_Promise_Resolver_NewAPI_Promise_Resolver_ResolveAPI_Promise_Resolver_RejectAPI_Promise_ResultAPI_Promise_StatusAPI_Promise_ThenAPI_Proxy_NewAPI_RangeError_NewAPI_ReferenceError_NewAPI_RegExp_NewAPI_ScriptCompiler_CompileAPI_ScriptCompiler_CompileFunctionInContextAPI_ScriptCompiler_CompileUnboundAPI_Script_RunAPI_Set_AddAPI_Set_AsArrayAPI_Set_ClearAPI_Set_DeleteAPI_Set_HasAPI_Set_NewAPI_SharedArrayBuffer_NewAPI_String_ConcatAPI_String_NewExternalOneByteAPI_String_NewExternalTwoByteAPI_String_NewFromOneByteAPI_String_NewFromTwoByteAPI_String_NewFromUtf8API_StringObject_NewAPI_StringObject_StringValueAPI_String_WriteAPI_String_WriteUtf8API_Symbol_NewAPI_SymbolObject_NewAPI_SymbolObject_SymbolValueAPI_SyntaxError_NewAPI_TryCatch_StackTraceAPI_TypeError_NewAPI_Uint16Array_NewAPI_Uint32Array_NewAPI_Uint8Array_NewAPI_Uint8ClampedArray_NewAPI_UnboundScript_GetIdAPI_UnboundScript_GetLineNumberAPI_UnboundScript_GetNameAPI_UnboundScript_GetSourceMappingURLAPI_UnboundScript_GetSourceURLAPI_Value_InstanceOfAPI_Value_IntegerValueAPI_Value_Int32ValueAPI_Value_NumberValueAPI_Value_TypeOfAPI_Value_Uint32ValueAPI_ValueDeserializer_ReadHeaderAPI_ValueDeserializer_ReadValueAPI_ValueSerializer_WriteValueKeyedLoadIC_LoadIndexedInterceptorStubKeyedLoadIC_KeyedLoadSloppyArgumentsStubKeyedLoadIC_LoadElementDHKeyedLoadIC_LoadIndexedStringDHKeyedLoadIC_SlowStubKeyedStoreIC_ElementsTransitionAndStoreStubKeyedStoreIC_KeyedStoreSloppyArgumentsStubKeyedStoreIC_SlowStubKeyedStoreIC_StoreFastElementStubKeyedStoreIC_StoreElementStubStoreInArrayLiteralIC_SlowStubLoadGlobalIC_LoadScriptContextFieldLoadGlobalIC_SlowStubLoadIC_FunctionPrototypeStubLoadIC_HandlerCacheHit_AccessorLoadIC_LoadAccessorDHLoadIC_LoadAccessorFromPrototypeDHLoadIC_LoadApiGetterFromPrototypeDHLoadIC_LoadCallbackLoadIC_LoadConstantDHLoadIC_LoadConstantFromPrototypeDHLoadIC_LoadFieldDHLoadIC_LoadFieldFromPrototypeDHLoadIC_LoadGlobalDHLoadIC_LoadGlobalFromPrototypeDHLoadIC_LoadIntegerIndexedExoticDHLoadIC_LoadInterceptorDHLoadIC_LoadNonMaskingInterceptorDHLoadIC_LoadInterceptorFromPrototypeDHLoadIC_LoadNativeDataPropertyDHLoadIC_LoadNativeDataPropertyFromPrototypeDHLoadIC_LoadNonexistentDHLoadIC_LoadNormalDHLoadIC_LoadNormalFromPrototypeDHLoadIC_NonReceiverLoadIC_PremonomorphicLoadIC_SlowStubStoreGlobalIC_StoreScriptContextFieldStoreGlobalIC_SlowStubStoreIC_HandlerCacheHit_AccessorStoreIC_NonReceiverStoreIC_PremonomorphicStoreIC_SlowStubStoreIC_StoreAccessorDHStoreIC_StoreAccessorOnPrototypeDHStoreIC_StoreApiSetterOnPrototypeDHStoreIC_StoreFieldDHStoreIC_StoreGlobalDHStoreIC_StoreGlobalTransitionDHStoreIC_StoreInterceptorStubStoreIC_StoreNativeDataPropertyDHStoreIC_StoreNativeDataPropertyOnPrototypeDHStoreIC_StoreNormalDHStoreIC_StoreTransitionDHstack_top == timerRuntime Function/C++ BuiltinTimeCountTotalms %[debug-evaluate] Checking function %s for side effect. [debug-evaluate] bytecode %s may cause side effect. [debug-evaluate] API Callback '' may cause side effect. [debug-evaluate] API Interceptor may cause side effect. [debug-evaluate] API CallHandlerInfo may cause side effect. [debug-evaluate] intrinsic %s may cause side effect. [debug-evaluate] built-in %s may cause side effect. isolate_->has_pending_exception()context_->IsNativeContext()!ScopeInfo::VariableIsSynthetic(name)v8::internal::Debug::debug_context_last_step_action() >= StepInhas_suspended_generator()AbstractCode::INTERPRETED_FUNCTION == code->kind()candidate->HasBreakInfo()MakeExecutionStateMakeExceptionEventMakeCompileEventMakeAsyncTaskEventSetScriptSourcestack_modified[debug-evaluate] Function %s failed side effect check. [debug-evaluate] failed runtime side effect check. !isolate->has_scheduled_exception()raw_result->IsSharedFunctionInfo()startPositionendPositionscriptObjectscript_handle->IsScript() || script_handle->IsUndefined(isolate)Function is blocked under native codeFunction is blocked under a generator activationshared->IsSharedFunctionInfo()element->IsSmi()../deps/v8/src/debug/liveedit.cc:1190Debugger mark-up on stack is not foundStack manipulations are not supported in this architecture.Failed to found requested frameCowArrayElementsChangedCouldNotGrowElementsDivisionByZeroInstanceMigrationFailedInsufficientTypeFeedbackForCallInsufficientTypeFeedbackForConstructInsufficientTypeFeedbackForForInInsufficientTypeFeedbackForBinaryOperationInsufficientTypeFeedbackForCompareOperationInsufficientTypeFeedbackForGenericNamedAccessInsufficientTypeFeedbackForGenericKeyedAccessInsufficientTypeFeedbackForUnaryOperationLostPrecisionLostPrecisionOrNaNNoCacheNotAHeapNumberNotAJavaScriptObjectNotANumberOrOddballNotASmiNotAStringNotASymbolOutOfBoundsOverflowReceiverNotAGlobalProxySmiValueMismatchWrongCallTargetWrongEnumIndicesWrongInstanceTypeWrongMapWrongNameWrongValueNoInitialElementarray buffer was neuteredcopy-on-write array's elements changedfailed to grow elements store%_DeoptimizeNowdivision by zeroholeinstance migration failedInsufficient type feedback for callInsufficient type feedback for constructInsufficient type feedback for for-inInsufficient type feedback for binary operationInsufficient type feedback for compare operationInsufficient type feedback for generic named accessInsufficient type feedback for generic keyed accessInsufficient type feedback for unary operationlost precisionlost precision or NaNminus zerono cachenot a heap numbernot a JavaScript objectnot a Number or Oddballnot a Sminot a Stringnot a Symbolout of boundsoverflowreceiver was not a global proxyvalue mismatchwrong call targetwrong enum indiceswrong instance typewrong mapwrong namewrong valueno initial elementcode->kind() == Code::OPTIMIZED_FUNCTION(isolate->deoptimizer_data()->current_) == nullptr(result) != nullptrframe->is_optimized()frame_it != translated_values.end()frame_it->kind() == TranslatedFrame::kInterpretedFunctionV8.DeoptimizeCode[deoptimize all code in all contexts] [deoptimize marked code in all contexts] unlinking code marked for deopteagersoftlazyUnsupported deopt typeid >= 0type <= kLastBailoutType(data->deopt_entry_code_[type]) != nullptr[deoptimizing (DEOPT %s): begin (opt #%d) @%d, FP to SP delta: %d, caller sp: 0x%08x] ;;; deoptimize at catch_handler_frame_index < countinvalid frame[deoptimizing (%s): end @%d => node=%d, pc=0x%08x, caller sp=0x%08x, took %0.3f ms] translating interpreted frame => bytecode_offset=%d, height=%d%s (throw)frame_index >= 0 && frame_index < output_count_(output_[frame_index]) == nullptrpadding stack parameter ------------------------- context function bytecode array bytecode offset accumulator accumulatortranslated_frame->end() == value_iterator0u == frame_writer.top_offset() translating arguments adaptor => height=%d frame_index < output_count_ - 1context (adaptor sentinel) argc !is_topmost || bailout_type_ == LAZY translating construct stub => bailout_id=%d (%s), height=%d invokecontext (construct stub sentinel) constuctor function bailout_id == BailoutId::ConstructStubCreate() || bailout_id == BailoutId::ConstructStubInvoke()new target allocated receiver subcall result !Builtins::IsLazy(builtin_name)code == kJavaScriptCallArgCountRegister.code()IsAnyTagged(type.representation())BuiltinContinuationModeIsJavaScript(mode) == has_argc translating BuiltinContinuation to %s, register param count %d, stack param count %d placeholder for exception on lazy deopt exception (from accumulator) placeholder for return result on lazy deopt context (builtin continuation sentinel) JSFunction unused frame height at deoptimization builtin JavaScript context builtin address tagged argument count %s (will be untagged by continuation) builtin register argument %s callback result Materialization [0x%08x] <- 0x%08x ; Feedback updated from deoptimization at fixed_size_above_fp + (stack_slots * kPointerSize) - CommonFrameConstants::kFixedFrameSizeAboveFp + outgoing_size == resulttype == EAGER || type == SOFT || type == LAZYHeap::IsImmovable(*code)(data->deopt_entry_code_[type]) == nullptrUnexpected translation typeBEGINCONSTRUCT_STUB_FRAMEARGUMENTS_ADAPTOR_FRAMEDUPLICATED_OBJECTARGUMENTS_ELEMENTSARGUMENTS_LENGTHCAPTURED_OBJECTREGISTERINT32_REGISTERUINT32_REGISTERBOOL_REGISTERFLOAT_REGISTERDOUBLE_REGISTERSTACK_SLOTINT32_STACK_SLOTUINT32_STACK_SLOTBOOL_STACK_SLOTFLOAT_STACK_SLOTDOUBLE_STACK_SLOTLITERALUPDATE_FEEDBACKarray->length() > indexindex < array->length()stack_it == frame_it->end()code->InstructionStart() <= pc && pc <= code->InstructionEnd()1U == uint32_value()unexpected caseinternal error: value missinginternal error: unexpected materialization. reading input frame %s => bytecode_offset=%d, args=%d, height=%d; inputs: reading arguments adaptor frame %s => height=%d; inputs: reading construct stub frame %s => bailout_id=%d, height=%d; inputs: reading builtin continuation frame %s reading JavaScript builtin continuation frame %s reading JavaScript builtin continuation frame with catch %sWe should never get here - unexpected deopt info.arguments elements object #%d (type = %d, length = %d)duplicated object #%darguments length field (type = %d, length = %d)captured object #%d (length = %d)0x%08x ; %s %d ; %s %u ; %s (uint)%d ; %s (bool)%e ; %s (float)%e ; %s (double)0x%08x ; [fp %c %3d] %d ; (int) [fp %c %3d] %u ; (uint) [fp %c %3d] %u ; (bool) [fp %c %3d] %e ; (float) [fp %c %3d] %e ; (double) [fp %c %d] 0x%08x ; (literal %2d) opcode == Translation::BEGINupdate_feedback_count >= 0update_feedback_count <= 1 %3i: !iterator->HasNext() || static_cast(iterator->Next()) == Translation::BEGINstatic_cast(object_index) < object_positions_.size()TranslatedValue::kFinished == slot->materialization_state()TranslatedValue::kCapturedObject == slot->kind()frame->values_[value_index].kind() == TranslatedValue::kTaggedmap->IsMap()map->IsJSObjectMap()value_index == children_init_indexlength > 0TranslatedValue::kCapturedObject != frame->values_[*value_index].kind()value.is_identical_to(isolate()->factory()->the_hole_value())value->IsNumber()TranslatedValue::kAllocated == slot->materialization_state()instance_size == slot->GetChildrenCount() * kPointerSizeTranslatedValue::kUninitialized == properties_slot->materialization_state()map->instance_size() == slot->GetChildrenCount() * kPointerSizeindex.index() >= FixedArray::kHeaderSize / kPointerSizeTranslatedValue::kUninitialized != slot->materialization_state()slot->GetChildrenCount() >= 2field_value->IsHeapNumber()field_value->IsMutableHeapNumber()kStoreTagged == marker2 == slot->GetChildrenCount()*length_value == Smi::FromInt(0)marker == kStoreTagged || i == 1!field_value->IsMutableHeapNumber()length == previously_materialized_objects->length()value_info->IsMaterializedObject()previously_materialized_objects->get(i) == *valueframes_[0].kind() == TranslatedFrame::kInterpretedFunctionframe->function() == frames_[0].front().GetRawValue()!feedback_slot_.IsInvalid()Translation::UPDATE_FEEDBACK == iterator->Next() reading FeedbackVector (slot %d) (raw_shared_info_) != nullptr 0x%08x: [top + %3d] <- 0x%08x ; %s (input #%d) caller's pc 0x%08x: [top + %3d] <- 0x%08x ; %scaller's fp %p (%s)%p <+0x%x>%08x constant%08x constant pool begin (num_const = %d)%08x jump table entry %4zu %s%p %4tx  ;; debug: deopt position, script offset '%d' ;; debug: deopt position, inlining id '%d' ;; debug: deopt reason '%s' ;; debug: deopt index %d ;; object: %s ;; external reference (%s) ;; code: wasm(%s) %s, %s, minor: %d Builtin::%s %s ;; %s ;; soft deoptimization bailout %d ;; lazy deoptimization bailout %d ;; deoptimization bailout %darray[OOB %s %s (%s length = %d, element accessed = %d) in [%s elements length not integer value in [%s elements length not a number in FixedUint8ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedInt8ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedUint16ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedInt16ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedUint32ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedInt32ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedFloat32ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedFloat64ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedUint8ClampedElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedBigUint64ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))FixedBigInt64ElementsAccessor::TryCopyElementsFastNumber( context, source, destination, length, static_cast(offset))PACKED_SMI_ELEMENTSHOLEY_SMI_ELEMENTSPACKED_ELEMENTSHOLEY_ELEMENTSPACKED_DOUBLE_ELEMENTSHOLEY_DOUBLE_ELEMENTSDICTIONARY_ELEMENTSFAST_SLOPPY_ARGUMENTS_ELEMENTSSLOW_SLOPPY_ARGUMENTS_ELEMENTSFAST_STRING_WRAPPER_ELEMENTSSLOW_STRING_WRAPPER_ELEMENTSUINT8_ELEMENTSINT8_ELEMENTSUINT16_ELEMENTSINT16_ELEMENTSUINT32_ELEMENTSINT32_ELEMENTSFLOAT32_ELEMENTSFLOAT64_ELEMENTSUINT8_CLAMPED_ELEMENTSBIGUINT64_ELEMENTSBIGINT64_ELEMENTSunknown location (no JavaScript frames present)apply from array->length()->ToArrayIndex(&old_length)array->length()->ToArrayLength(&old_length)(index >= 0) && (index < this->length())[Handling interrupts: GC_REQUESTDEBUG_BREAKTERMINATE_EXECUTIONDEOPT_MARKED_ALLOCATION_SITESINSTALL_CODEAPI_INTERRUPTNo interrupt flags setAllowJavascriptExecution::IsAllowed(isolate)[Running deserialized script: %snative function externalizeString();native function isOneByteString();function x() { return 1; }externalizeStringFirst parameter to externalizeString() must be a string.Second parameter to externalizeString() must be a boolean.externalizeString() can't externalize twice.externalizeString() failed.isOneByteString() requires a single string argument.native function getIgnitionDispatchCounters();native function getV8Statistics();global_handlesmemory_allocatedmaps_normalizedmaps_createdelements_transitionsprops_to_dictionaryelements_to_dictionaryalive_after_last_gcobjs_since_last_youngobjs_since_last_fullstring_table_capacitynumber_of_symbolsscript_wrappersinlined_copied_elementsarguments_adaptorscompilation_cache_hitscompilation_cache_missestotal_eval_sizetotal_load_sizetotal_parse_sizetotal_preparse_skippedtotal_compile_sizetotal_full_codegen_source_sizecontexts_created_from_scratchcontexts_created_by_snapshotpc_to_codepc_to_code_cachedstore_buffer_overflowscode_stubstotal_stubs_code_sizetotal_compiled_code_sizegc_compactor_caused_by_requestgc_compactor_caused_by_promoted_datagc_compactor_caused_by_oldspace_exhaustiongc_last_resort_from_jsgc_last_resort_from_handlesic_keyed_load_generic_smiic_keyed_load_generic_symbolic_keyed_load_generic_slowic_named_load_global_stubic_store_normal_missic_store_normal_hitic_binary_op_missic_compare_missic_call_missic_keyed_call_missic_store_missic_keyed_store_misscow_arrays_convertedconstructed_objectsconstructed_objects_runtimemegamorphic_stub_cache_probesmegamorphic_stub_cache_missesmegamorphic_stub_cache_updatesenum_cache_hitsenum_cache_missesfast_new_closure_totalstring_add_runtimestring_add_nativestring_add_runtime_ext_to_one_bytesub_string_runtimesub_string_nativeregexp_entry_runtimeregexp_entry_nativenumber_to_string_nativenumber_to_string_runtimemath_exp_runtimemath_log_runtimemath_pow_runtimestack_interruptsruntime_profiler_ticksruntime_callsbounds_checks_eliminatedbounds_checks_hoistedsoft_deopts_requestedsoft_deopts_insertedsoft_deopts_executedwrite_barriers_dynamicwrite_barriers_staticnew_space_bytes_availablenew_space_bytes_committednew_space_bytes_usedold_space_bytes_availableold_space_bytes_committedold_space_bytes_usedcode_space_bytes_availablecode_space_bytes_committedcode_space_bytes_usedmap_space_bytes_availablemap_space_bytes_committedmap_space_bytes_usedlo_space_bytes_availablelo_space_bytes_committedlo_space_bytes_usedtotal_baseline_code_sizetotal_baseline_compile_counttotal_committed_bytesnew_space_live_bytesnew_space_available_bytesnew_space_commited_bytesold_space_live_bytesold_space_available_bytesold_space_commited_bytescode_space_live_bytescode_space_available_bytescode_space_commited_byteslo_space_live_byteslo_space_available_byteslo_space_commited_bytesamount_of_external_allocated_memoryreloc_info_total_sizesource_position_table_total_sizenative function triggerCheckFalse();native function triggerAssertFalse();native function triggerSlowAssertFalse();triggerCheckFalsetriggerAssertFalsetriggerSlowAssertFalse0 == strcmp(*v8::String::Utf8Value(isolate, str), "triggerSlowAssertFalse").entry>FeedbackVectorSpec::kTypeProfileSlotIndex == FeedbackVector::GetIndex(slot)InvalidLoadPropertyLoadGlobalInsideTypeofLoadGlobalNotInsideTypeofLoadKeyedStoreNamedSloppyStoreNamedStrictStoreOwnNamedStoreGlobalSloppyStoreGlobalStrictStoreKeyedSloppyStoreKeyedStrictStoreInArrayLiteralBinaryOpCompareOpStoreDataPropertyInLiteralkCreateClosureLiteralTypeProfileForIn[evicting optimizing code marked for deoptimization (%s) for feedback == *FeedbackVector::UninitializedSentinel(isolate)call_count->IsSmi()major_key == CodeStub::KeyedStoreSloppyArguments || major_key == CodeStub::StoreFastElement || major_key == CodeStub::StoreSlowElement || major_key == CodeStub::StoreInArrayLiteralSlow || major_key == CodeStub::ElementsTransitionAndStore || major_key == CodeStub::NoCachearmv8Hello, world!v8.log/tmp/__v8_gc__arm64_inst.csv--noError: unrecognized flag %s Error: missing value for flag %s of type %s Error: illegal value for flag %s of type %s To set or unset a boolean flag, use --flag or --no-flag. The remaining arguments were ignored:Try --help for options Synopsis: shell [options] [--shell] [...] d8 [options] [-e ] [--shell] [[--module] ...] -e execute a string in V8 --shell run an interactive JavaScript shell --module execute a file as a JavaScript module Options: -- type: default: experimental_extrasenable code compiled in via v8_experimental_extra_library_filesuse_strictenforce strict modees_stagingenable test-worthy harmony features (for internal use only)harmonyenable all completed harmony featuresharmony_shippingenable all shipped harmony featuresharmony_do_expressionsenable "harmony do-expressions" (in progress)harmony_class_fieldsenable "harmony fields in class literals" (in progress)harmony_static_fieldsenable "harmony static fields in class literals" (in progress)harmony_array_flattenenable "harmony Array.prototype.flat{ten,Map}" (in progress)harmony_public_fieldsenable "harmony public fields in class literals"harmony_private_fieldsenable "harmony private fields in class literals"harmony_numeric_separatorenable "harmony numeric separator between digits"harmony_string_matchallenable "harmony String.prototype.matchAll"harmony_string_trimmingenable "harmony String.prototype.trim{Start,End}"harmony_sharedarraybufferenable "harmony sharedarraybuffer"harmony_regexp_named_capturesenable "harmony regexp named captures"harmony_regexp_propertyenable "harmony Unicode regexp property classes"harmony_function_tostringenable "harmony Function.prototype.toString"harmony_promise_finallyenable "harmony Promise.prototype.finally"harmony_optional_catch_bindingenable "allow omitting binding in catch blocks"harmony_import_metaenable "harmony import.meta property"harmony_bigintenable "harmony arbitrary precision integers"harmony_dynamic_importenable "harmony dynamic import"harmony_array_prototype_valuesenable "harmony Array.prototype.values"futureImplies all staged features that we want to ship in the not-too-far futureallocation_site_pretenuringpretenure with allocation sitespage_promotionpromote pages based on utilizationpage_promotion_thresholdmin percentage of live bytes on a page to enable fast evacuationtrace_pretenuringtrace pretenuring decisions of HAllocate instructionstrace_pretenuring_statisticstrace allocation site pretenuring statisticstrack_fieldstrack fields with only smi valuestrack_double_fieldstrack fields with double valuestrack_heap_object_fieldstrack fields with heap valuestrack_computed_fieldstrack computed boilerplate fieldstrack_field_typestrack field typestrace_block_coveragetrace collected block coverage informationfeedback_normalizationfeed back normalization to constructorsoptimize_for_sizeEnables optimizations which favor memory size over execution speedunbox_double_arraysautomatically unbox arrays of doublesinterrupt_budgetinterrupt budget which should be used for the profiler counterignition_elide_noneffectful_bytecodeselide bytecodes which won't have any external effectignition_reouse ignition register equivalence optimizerignition_filter_expression_positionsfilter expression positions before the bytecode pipelineignition_share_named_property_feedbackshare feedback slots when loading the same named property from the same objectprint_bytecodeprint bytecode generated by ignition interpreterprint_bytecode_filterfilter for selecting which functions to print bytecodetrace_ignition_codegentrace the codegen of ignition interpreter bytecode handlerstrace_ignition_dispatchestraces the dispatches to bytecode handlers by the ignition interpretertrace_ignition_dispatches_output_filethe file to which the bytecode handler dispatch table is written (by default, the table is not written to a file)fast_mathfaster (but maybe less accurate) math functionstrace_track_allocation_sitestrace the tracking of allocation sitestrace_migrationtrace object migrationtrace_generalizationtrace map generalizationconcurrent_recompilationoptimizing hot functions asynchronously on a separate threadtrace_concurrent_recompilationtrack concurrent recompilationconcurrent_recompilation_queue_lengththe length of the concurrent compilation queueconcurrent_recompilation_delayartificial compilation delay in msblock_concurrent_recompilationblock queued jobs until releasedstress_runsnumber of stress runsdeopt_every_n_timesdeoptimize every n times a deopt point is passedprint_deopt_stressprint number of possible deopt pointsturbo_sp_frame_accessuse stack pointer-relative access to frame wherever possibleturbo_preprocess_rangesrun pre-register allocation heuristicsturbo_filteroptimization filter for TurboFan compilertrace_turbotrace generated TurboFan IRtrace_turbo_pathdirectory to dump generated TurboFan IR totrace_turbo_filterfilter for tracing turbofan compilationtrace_turbo_graphtrace generated TurboFan graphstrace_turbo_scheduledtrace TurboFan IR with scheduletrace_turbo_cfg_filetrace turbo cfg graph (for C1 visualizer) to a given file nametrace_turbo_typestrace TurboFan's typestrace_turbo_schedulertrace TurboFan's schedulertrace_turbo_reductiontrace TurboFan's various reducerstrace_turbo_trimmingtrace TurboFan's graph trimmertrace_turbo_jttrace TurboFan's jump threadingtrace_turbo_ceqtrace TurboFan's control equivalencetrace_turbo_looptrace TurboFan's loop optimizationstrace_alloctrace register allocatortrace_all_usestrace all use positionstrace_representationtrace representation typesturbo_verifyverify TurboFan graphs at each phaseturbo_verify_machine_graphverify TurboFan machine graph before instruction selectiontrace_verify_csatrace code stubs verificationcsa_trap_on_nodetrigger break point when a node with given id is created in given stub. The format is: StubName,NodeIdturbo_statsprint TurboFan statisticsturbo_stats_nvpprint TurboFan statistics in machine-readable formatturbo_splittingsplit nodes during scheduling in TurboFanfunction_context_specializationenable function context specialization in TurboFanturbo_inliningenable inlining in TurboFanmax_inlined_bytecode_sizemaximum size of bytecode for a single inliningmax_inlined_bytecode_size_cumulativemaximum cumulative size of bytecode considered for inliningmax_inlined_bytecode_size_absolutereserve_inline_budget_scale_factormax_inlined_bytecode_size_smallmaximum size of bytecode considered for small function inliningmin_inlining_frequencyminimum frequency for inliningpolymorphic_inliningpolymorphic inliningstress_inlineset high thresholds for inlining to inline as much as possibletrace_turbo_inliningtrace TurboFan inlininginline_accessorsinline JavaScript accessorsinline_into_tryinline into try blocksturbo_inline_array_builtinsinline array builtins in TurboFan codeuse_osruse on-stack replacementtrace_osrtrace on-stack replacementanalyze_environment_livenessanalyze liveness of environment slots and zap dead valuestrace_environment_livenesstrace liveness of local variable slotsturbo_load_eliminationenable load elimination in TurboFantrace_turbo_load_eliminationtrace TurboFan load eliminationturbo_profilingenable profiling in TurboFanturbo_verify_allocationverify register allocation in TurboFanturbo_move_optimizationoptimize gap moves in TurboFanturbo_jtenable jump threading in TurboFanturbo_loop_peelingTurbofan loop peelingturbo_loop_variableTurbofan loop variable optimizationturbo_cf_optimizationoptimize control flow in TurboFanturbo_escapeenable escape analysisturbo_allocation_foldingTurbofan allocation foldingturbo_instruction_schedulingenable instruction scheduling in TurboFanturbo_stress_instruction_schedulingrandomly schedule instructions to stress dependency trackingturbo_store_eliminationenable store-store elimination in TurboFantrace_store_eliminationtrace store eliminationturbo_rewrite_far_jumpsrewrite far to near jumps (ia32,x64)experimental_inline_promise_constructorinline the Promise constructor in TurboFanuntrusted_code_mitigationsEnable mitigations for executing untrusted codebranch_load_poisoningMask loads with branch conditions.minimalsimplifies execution model to make porting easier (e.g. always use Ignition, never optimize)expose_wasmexpose wasm interface to JavaScriptassume_asmjs_originforce wasm decoder to assume input is internal asm-wasm formatwasm_disable_structured_cloningdisable wasm structured cloningwasm_num_compilation_tasksnumber of parallel compilation tasks for wasmwasm_write_protect_code_memorywrite protect code memory on the wasm native heapwasm_trace_serializationtrace serialization/deserializationwasm_async_compilationenable actual asynchronous compilation for WebAssembly.compilewasm_test_streaminguse streaming compilation instead of async compilation for testswasm_max_mem_pagesmaximum memory size of a wasm instancewasm_max_table_sizemaximum table size of a wasm instancewasm_tier_upenable basic tiering up to the optimizing compilertrace_wasm_ast_startstart function for wasm AST trace (inclusive)trace_wasm_ast_endend function for wasm AST trace (exclusive)liftoffenable liftoff, the experimental wasm baseline compilerskip_compiling_wasm_funcsstart compiling at function Nwasm_trace_memoryprint all memory updates performed in wasm codevalidate_asmvalidate asm.js modules before compilingsuppress_asm_messagesdon't emit asm.js related messages (for golden file testing)trace_asm_timelog asm.js timing info to the consoletrace_asm_scannerlog tokens encountered by asm.js scannertrace_asm_parserverbose logging of asm.js parse failuresstress_validate_asmtry to validate everything as asm.jsdump_wasm_module_pathdirectory to dump wasm modules toexperimental_wasm_simdenable prototype simd opcodes for wasmexperimental_wasm_ehenable prototype exception handling opcodes for wasmexperimental_wasm_mvenable prototype multi-value support for wasmexperimental_wasm_threadsenable prototype threads for wasmexperimental_wasm_sat_f2i_conversionsenable non-trapping float-to-int conversions for wasmexperimental_wasm_seenable prototype sign extension opcodes for wasmexperimental_wasm_anyrefenable prototype anyref support for wasmexperimental_wasm_mut_globalenable prototype import/export mutable global support for wasmwasm_optenable wasm optimizationwasm_no_bounds_checksdisable bounds checks (performance testing only)wasm_no_stack_checksdisable stack checks (performance testing only)wasm_trap_handleruse signal handlers to catch out of bounds memory access in wasm (currently Linux x86_64 only)wasm_fuzzer_gen_testGenerate a test case when running a wasm fuzzerprint_wasm_codePrint WebAssembly codewasm_interpret_allExecute all wasm code in the wasm interpreterasm_wasm_lazy_compilationenable lazy compilation for asm-wasm moduleswasm_lazy_compilationenable lazy compilation for all wasm modulesframe_countnumber of stack frames inspected by the profilertype_info_thresholdpercentage of ICs that must have type info to allow optimizationstress_sampling_allocation_profilerEnables sampling allocation profiler with X as a sample intervalmin_semi_space_sizemin size of a semi-space (in MBytes), the new space consists of two semi-spacesmax_semi_space_sizemax size of a semi-space (in MBytes), the new space consists of two semi-spacessemi_space_growth_factorfactor by which to grow the new spaceexperimental_new_space_growth_heuristicGrow the new space based on the percentage of survivors instead of their absolute value.max_old_space_sizemax size of the old space (in Mbytes)initial_old_space_sizeinitial old space size (in Mbytes)gc_globalalways perform global GCsrandom_gc_intervalCollect garbage after random(0, X) allocations. It overrides gc_interval.gc_intervalgarbage collect after allocationsretain_maps_for_n_gckeeps maps alive for old space garbage collectionstrace_gcprint one trace line following each garbage collectiontrace_gc_nvpprint one detailed trace line in name=value format after each garbage collectiontrace_gc_ignore_scavengerdo not print trace line after scavenger collectiontrace_idle_notificationprint one trace line following each idle notificationtrace_idle_notification_verboseprints the heap state used by the idle notificationtrace_gc_verboseprint more details following each garbage collectiontrace_allocation_stack_intervalprint stack trace after free-list allocationstrace_duplicate_threshold_kbprint duplicate objects in the heap if their size is more than given thresholdtrace_fragmentationreport fragmentation for old spacetrace_fragmentation_verbosereport fragmentation for old space (detailed)trace_evacuationreport evacuation statisticstrace_mutator_utilizationprint mutator utilization, allocation speed, gc speedincremental_markinguse incremental markingincremental_marking_wrappersuse incremental marking for marking wrapperstrace_unmapperTrace the unmappingparallel_scavengeparallel scavengetrace_parallel_scavengetrace parallel scavengewrite_protect_code_memorywrite protect code memoryconcurrent_markinguse concurrent markingparallel_markinguse parallel marking in atomic pausetrace_concurrent_markingtrace concurrent markingblack_allocationuse black allocationconcurrent_store_bufferuse concurrent store buffer processingconcurrent_sweepinguse concurrent sweepingparallel_compactionuse parallel compactionparallel_pointer_updateuse parallel pointer update during compactiondetect_ineffective_gcs_near_heap_limittrigger out-of-memory failure to avoid GC storm near heap limittrace_incremental_markingtrace progress of the incremental markingtrace_stress_markingtrace stress marking progresstrace_stress_scavengetrace stress scavenge progresstrack_gc_object_statstrack object counts and memory usagetrace_gc_object_statstrace object counts and memory usagetrace_zone_statstrace zone memory usagetrack_retaining_pathenable support for tracking retaining pathconcurrent_array_buffer_freeingfree array buffer allocations on a background threadgc_statsUsed by tracing internally to enable gc statisticstrack_detached_contextstrack native contexts that are expected to be garbage collectedtrace_detached_contextstrace native contexts that are expected to be garbage collectedmove_object_startenable moving of object startsmemory_reduceruse memory reducerheap_growing_percentspecifies heap growing factor as (1 + heap_growing_percent/100)v8_os_page_sizeoverride OS page size (in KBytes)always_compactPerform compaction on every full GCnever_compactNever perform compaction on full GC - testing onlycompact_code_spaceCompact code space on full collectionsuse_marking_progress_barUse a progress bar to scan large objects in increments when incremental marking is active.force_marking_deque_overflowsforce overflows of marking deque by reducing it's size to 64 wordsstress_compactionstress the GC compactor to flush out bugs (implies --force_marking_deque_overflows)stress_compaction_randomStress GC compaction by selecting random percent of pages as evacuation candidates. It overrides stress_compaction.stress_incremental_markingforce incremental marking for small heaps and run it more oftenfuzzer_gc_analysisprints number of allocations and enables analysis mode for gc fuzz testing, e.g. --stress-marking, --stress-scavengestress_markingforce marking at random points between 0 and X (inclusive) percent of the regular marking start limitstress_scavengeforce scavenge at random points between 0 and X (inclusive) percent of the new space capacitydisable_abortjsdisables AbortJS runtime functionmanual_evacuation_candidates_selectionTest mode only flag. It allows an unit test to select evacuation candidates pages (requires --stress_compaction).fast_promotion_new_spacefast promote new space on high survival ratesdebug_codegenerate extra code (assertions) for debuggingcode_commentsemit comments in code disassembly; for more readable source positions you should add --no-concurrent_recompilationenable_sse3enable use of SSE3 instructions if availableenable_ssse3enable use of SSSE3 instructions if availableenable_sse4_1enable use of SSE4.1 instructions if availableenable_sahfenable use of SAHF instruction if available (X64 only)enable_avxenable use of AVX instructions if availableenable_fma3enable use of FMA3 instructions if availableenable_bmi1enable use of BMI1 instructions if availableenable_bmi2enable use of BMI2 instructions if availableenable_lzcntenable use of LZCNT instruction if availableenable_popcntenable use of POPCNT instruction if availablearm_archgenerate instructions for the selected ARM architecture if available: armv6, armv7, armv7+sudiv or armv8enable_vldr_immenable use of constant pools for double immediate (ARM only)force_long_branchesforce all emitted branches to be in long mode (MIPS/PPC only)mcpuenable optimization for specific cpuenable_armv7deprecated (use --arm_arch instead)enable_vfp3enable_32dregsenable_neonenable_sudivenable_armv8enable_regexp_unaligned_accessesenable unaligned accesses for the regexp enginescript_streamingenable parsing on backgrounddisable_old_api_accessorsDisable old-style API accessors whose setters trigger through the prototype chainexpose_natives_asexpose natives in global objectexpose_free_bufferexpose freeBuffer extensionexpose_gcexpose gc extensionexpose_gc_asexpose gc extension under the specified nameexpose_externalize_stringexpose externalize string extensionexpose_trigger_failureexpose trigger-failure extensionstack_trace_limitnumber of stack frames to capturebuiltins_in_stack_tracesshow built-in functions in stack tracesenable_experimental_builtinsenable new csa-based experimental builtinsdisallow_code_generation_from_stringsdisallow eval and friendsallow_unsafe_function_constructorallow invoking the function constructor without security checksforce_slow_pathalways take the slow path for builtinsinline_newuse fast inline allocationtrace function callsuse lazy compilationtrace_opttrace lazy optimizationtrace_opt_verboseextra verbose compilation tracingtrace_opt_statstrace lazy optimization statisticstrace_deopttrace optimize function deoptimizationtrace_file_namesinclude file names in trace-opt/trace-deopt outputtrace_interruptstrace interrupts when they are handledoptuse adaptive optimizationsalways_optalways try to optimize functionsalways_osralways try to OSR functionsprepare_always_optprepare for turning on always opttrace_serializerprint code serializer tracecompilation_cacheenable compilation cachecache_prototype_transitionscache prototype transitionscompiler_dispatcherenable compiler dispatchertrace_compiler_dispatchertrace compiler dispatcher activitytrace_compiler_dispatcher_jobstrace progress of individual jobs managed by the compiler dispatchercpu_profiler_sampling_intervalCPU profiler sampling interval in microsecondstrace_js_array_abusetrace out-of-bounds accesses to JS arraystrace_external_array_abusetrace out-of-bounds-accesses to external arraystrace_array_abusetrace out-of-bounds accesses to all arraysenable_liveeditenable liveedit experimental featuretrace_side_effect_free_debug_evaluateprint debug messages for side-effect-free debug-evaluate for testinghard_abortabort by crashingexpose_inspector_scriptsexpose injected-script-source.js for debuggingstack_sizedefault size of stack region v8 is allowed to use (in kBytes)max_stack_trace_source_lengthmaximum length of function source code printed in a stack trace.clear_exceptions_on_js_entryclear pending exceptions when entering JavaScripthistogram_intervaltime interval in ms for aggregating memory histogramsheap_profiler_trace_objectsDump heap object allocations/movements/size_updatesheap_profiler_use_embedder_graphUse the new EmbedderGraph API to get embedder nodesheap_snapshot_string_limittruncate strings to this length in the heap snapshotsampling_heap_profiler_suppress_randomnessUse constant sample intervals to eliminate test flakinessuse_idle_notificationUse idle notification to reduce memory footprint.use_icuse inline cachingtrace_ictrace inline cache state transitions for tools/ic-processoric_statsinline cache state transitions statisticsnative_code_countersgenerate extra code for manipulating stats countersthin_stringsEnable ThinString supporttrace_prototype_usersTrace updates to prototype user trackinguse_verbose_printerallows verbose printingtrace_for_in_enumerateTrace for-in enumerate slow-pathstrace_mapstrace map creationtrace_maps_detailsalso log map detailsallow_natives_syntaxallow natives syntaxlazy_inner_functionsenable lazy parsing inner functionsaggressive_lazy_inner_functionseven lazier inner function parsingpreparser_scope_analysisperform scope analysis for preparsed inner functionstrace_simTrace simulator executiondebug_simEnable debugging the simulatorcheck_icacheCheck icache flushes in ARM and MIPS simulatorstop_sim_atSimulator stop after x number of instructionssim_stack_alignmentStack alingment in bytes in simulator (4 or 8, 8 is default)sim_stack_sizeStack size of the ARM64, MIPS64 and PPC64 simulator in kBytes (default is 2 MB)log_colourWhen logging, try to use coloured output.ignore_asm_unimplemented_breakDon't break for ASM_UNIMPLEMENTED_BREAK macros.trace_sim_messagesTrace simulator debug messages. Implied by --trace-sim.stack_trace_on_illegalprint stack trace when an illegal exception is thrownabort_on_uncaught_exceptionabort program (dump core) when an uncaught exception is thrownabort_on_stack_or_string_length_overflowAbort program when the stack overflows or a string exceeds maximum length (as opposed to throwing RangeError). This is useful for fuzzing where the spec behaviour would introduce nondeterminism.randomize_hashesrandomize hashes to avoid predictable hash collisions (with snapshots this option cannot override the baked-in seed)rehash_snapshotrehash strings from the snapshot to override the baked-in seedhash_seedFixed seed to use to hash property keys (0 means random)(with snapshots this option cannot override the baked-in seed)random_seedDefault seed for initializing random generator (0, the default, means to use system random).fuzzer_random_seedDefault seed for initializing fuzzer random generator (0, the default, means to use v8's random number generator seed).trace_railtrace RAIL modeprint_all_exceptionsprint exception object and stack trace on each thrown exceptionruntime_call_statsreport runtime call counts and timesruntime_statsinternal usage only for controlling runtime statisticslazy_deserializationDeserialize code lazily from the snapshot.lazy_handler_deserializationDeserialize bytecode handlers lazily from the snapshot.trace_lazy_deserializationTrace lazy deserialization.profile_deserializationPrint the time it takes to deserialize the snapshot.serialization_statisticsCollect statistics on serialized objects.regexp_optimizationgenerate optimized regexp coderegexp_mode_modifiersenable inline flags in regexp.testing_bool_flagtesting_maybe_bool_flagtesting_int_flagtesting_float_flagfloat-flagtesting_string_flagstring-flagtesting_prng_seedSeed used for threading test randomnessembedded_srcPath for the generated embedded data file. (mksnapshot only)embedded_variantLabel to disambiguate symbols in embedded data file. (mksnapshot only)startup_srcWrite V8 startup as C++ src. (mksnapshot only)startup_blobWrite V8 startup blob file. (mksnapshot only)helpPrint usage message, including flags, on consoledump_countersDump counters on exitdump_counters_nvpDump counters as name-value pairs on exituse_external_stringsUse external strings for source codemap_countersMap counters to a filejs_argumentsPass all remaining arguments to the script. Alias for "--".Minimal logging (no API, code, GC, suspect, or handles samples).log_allLog all events to the log file.log_apiLog API events to the log file.log_codeLog code events to the log file without profiling.log_handlesLog global handle events.log_suspectLog suspect operations.log_source_codeLog source code.log_function_eventsLog function events (parse, compile, execute) separately.profLog statistical profiling information (implies --log-code).detailed_line_infoAlways generate detailed line information for CPU profiling.prof_sampling_intervalInterval for --prof samples (in microseconds).prof_cppLike --prof, but ignore generated code.prof_browser_modeUsed with --prof, turns on browser-compatible mode for profiling.logfileSpecify the name of the log file.logfile_per_isolateSeparate log files for each isolate.ll_profEnable low-level linux profiler.interpreted_frames_native_stackShow interpreted frames on the native stack (useful for external profilers).perf_basic_profEnable perf linux profiler (basic support).perf_basic_prof_only_functionsOnly report function code ranges to perf (i.e. no stubs).perf_profEnable perf linux profiler (experimental annotate support).perf_prof_unwinding_infoEnable unwinding info for perf linux profiler (experimental).gc_fake_mmapSpecify the name of the file for fake gc mmap used in ll_proflog_internal_timer_eventsTime internal events.log_timer_eventsTime events including external callbacks.log_instruction_statsLog AArch64 instruction statistics.log_instruction_fileAArch64 instruction statistics log file.log_instruction_periodAArch64 instruction statistics logging period.redirect_code_tracesoutput deopt information and disassembly into file code--.asmredirect_code_traces_tooutput deopt information and disassembly into the given fileprint_opt_sourceprint source code of optimized and inlined functionstrace_elements_transitionstrace elements transitionstrace_creation_allocation_sitestrace the creation of allocation sitesprint_code_stubsprint code stubstest_secondary_stub_cachetest secondary stub cache by disabling the primary onetest_primary_stub_cachetest primary stub cache by disabling the secondary onetest_small_max_function_context_stub_sizeenable testing the function context size overflow path by making the maximum size smallerprint_codeprint generated codeprint_opt_codeprint optimized codeprint_opt_code_filterfilter for printing optimized codeprint_code_verboseprint more information for codeprint_builtin_codeprint generated code for builtinsprint_builtin_sizeprint code size for builtinssodiumprint generated code output suitable for use with the Sodium code viewerprint_all_codeenable all flags related to printing codepredictableenable predictable modesingle_threadeddisable the use of background taskssingle_threaded_gcdisable the use of background gc tasksunsetnullptrn < static_cast(buffer_size)boolmaybe_boolintuintuint64floatsize_tstringargumentsError: Value for flag %s of type %s is out of bounds [0-%llu] [pc: %p] builtin exit frame: new (this=%o,%o) ~+%d at %s:%d at :%d at :(this=isolate()->heap()->the_hole_value() == Memory::Object_at(exception_argument_slot)Missing deoptimization information for OptimizedFrame::Summarize.builtin frame: WASM [], function #%u ('%s'), pc=%p, pos=%d WASM INTERPRETER ENTRY [ [%p]:%d] [bytecode=%p offset=%d]:~%d] [pc=%p]%o { // optimized frame } // stack-allocated locals var // no expression found - inconsistent frame? // heap-allocated locals // warning: missing context slot - inconsistent frame?// warning: no context found - inconsistent frame? // expression stack (top to bottom) [%02d] : %o } arguments adaptor frame: %d->%d // actual arguments [%02d] : %o // not passed to callee%5d: [%d]: EntryFrameConstructEntryFrameExitFrameOptimizedFrameWasmCompiledFrameWasmToJsFrameJsToWasmFrameWasmInterpreterEntryFrameCWasmEntryFrameInterpretedFrameStubFrameBuiltinContinuationFrameJavaScriptBuiltinContinuationFrameJavaScriptBuiltinContinuationWithCatchFrameInternalFrameConstructFrameArgumentsAdaptorFrameBuiltinFrameBuiltinExitFrameNativeFrame--------- s o u r c e c o d e --------- ----------------------------------------- Handle not reset in first callback. See comments on |v8::WeakCallbackInfo|.object_ != reinterpret_cast(kGlobalHandleZapValue)state() != NEAR_DEATHV8.GCPhantomHandleProcessingCallback;;; Exception handler table. from to hdlr (prediction, data) ) -> (prediction=, data= off hdlr -> v8::HandleScope::CreateHandle()Cannot create a handle without a HandleScope../deps/v8/src/handles.cc:131invalid array lengthself_reference_markercapacity <= SmallOrderedHashSet::kMaxCapacitycapacity <= SmallOrderedHashMap::kMaxCapacityString::kMaxLength >= lengthString::kMaxLength >= str.length()byte_length <= kMaxInt - FixedTypedArrayBase::kDataOffsetmap->instance_type() == JS_REGEXP_TYPE || map->instance_type() == JS_OBJECT_TYPE || map->instance_type() == JS_ERROR_TYPE || map->instance_type() == JS_ARRAY_TYPE || map->instance_type() == JS_API_OBJECT_TYPE || map->instance_type() == WASM_GLOBAL_TYPE || map->instance_type() == WASM_INSTANCE_TYPE || map->instance_type() == WASM_MEMORY_TYPE || map->instance_type() == WASM_MODULE_TYPE || map->instance_type() == WASM_TABLE_TYPE || map->instance_type() == JS_SPECIAL_API_OBJECT_TYPEinvalid BigInt lengthAborting on invalid string lengthnew function from shared function infoObjectWithNullProtobyte_offset % element_size == 0length <= (std::numeric_limits::max() / element_size)length <= static_cast(Smi::kMaxValue)number_of_elements <= (std::numeric_limits::max() / element_size)number_of_elements <= static_cast(Smi::kMaxValue)CopyAsPrototypeForJSGlobalProxy!object->IsSmi()0 == value & (kPointerSize - 1)static_cast(id) < 2560 <= stack_slots && stack_slots < StackSlotsField::kMaxGC in old space requestedGC in old space forced by flagsIncremental marking needs finalizationscavenge might not succeedMemory allocator, used: %6zu KB, available: %6zu KB Read-only space, used: %6zu KB, available: %6zu KB, committed: %6zu KB New space, used: %6zu KB, available: %6zu KB, committed: %6zu KB Old space, used: %6zu KB, available: %6zu KB, committed: %6zu KB Code space, used: %6zu KB, available: %6zu KB, committed: %6zuKB Map space, used: %6zu KB, available: %6zu KB, committed: %6zu KB Large object space, used: %6zu KB, available: %6zu KB, committed: %6zu KB All spaces, used: %6zu KB, available: %6zu KB, committed: %6zuKB External memory reported: %6lld KB External memory global %zu KB Total time spent in GC : %.1f ms Retaining path tracking requires --track-retaining-path ################################################# Retaining path for %p: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Distance from root %d%s: (ephemeral)Root: %s ------------------------------------------------- disabled-by-default-v8.gcnew_spaceold_spacemap_spacecode_spacelarge_object_spaceread_only_spacepretenuring: deopt_maybe_tenured=%d visited_sites=%d active_sites=%d mementos=%d tenured=%d not_tenured=%d [IncrementalMarking] (%s). [IncrementalMarking] Scavenge during marking. insufficient memory to create an IsolateCommitting semi space failed.markcompactbeginendscavengeNewSpace::RebalanceFast promotion mode: %s survival rate: %zu%% memory_allocator()->IsMemoryChunkExecutable(*chunk)Deopt all allocation sites dependent code due to low survival rate in the old generation %f (object) != nullptrYoung generation mutator utilization = %.3f (mutator_speed=%.f, gc_speed=%.f) Old generation mutator utilization = %.3f (mutator_speed=%.f, gc_speed=%.f) Ineffective mark-compacts near heap limitIdle notification: requested idle time %.2f ms, used idle time %.2f ms, deadline usage %.2f ms [HasBeenSetUp()near_heap_limit_callbacks_.size() < kMaxCallbackscallback_data.first != callbackHeap::CollectCodeStatisticsallocation failureallocation limitcontext disposalcounters extensiondebuggerdeserializeexternal memory pressurefinalize incremental marking via stack guardfinalize incremental marking via taskfull hash-tableheap profileridle tasklast resortlow memory notificationmake heap iterablememory pressurememory reducerruntimesampling profilersnapshot creatorMin semi-space size cannot be more than the maximum semi-space size of %zu MB Cannot get stack trace in GC.1.0 < factor0 < old_gen_sizeHeap growing factor %.1f based on mu=%.3f, speed_ratio=%.f (gc=%.f, mutator=%.f) Grow: old size: %zu KB, new limit: %zu KB (%.1f) Dampen: old size: %zu KB, old limit: %zu KB, new limit: %zu KB (%.1f) [IncrementalMarking] %.2lf%% of the memory limit reached CALL_AND_RETRY_LASTheap-capacityheap-available ### Allocations = %u, hash = 0x%08x ### Maximum marking limit reached = %.02lf ### Maximum new space size reached = %.02lf INTERNALIZED_STRING_TYPEEXTERNAL_INTERNALIZED_STRING_TYPEONE_BYTE_INTERNALIZED_STRING_TYPEEXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPEEXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPESHORT_EXTERNAL_INTERNALIZED_STRING_TYPESHORT_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPESHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPESTRING_TYPECONS_STRING_TYPEEXTERNAL_STRING_TYPESLICED_STRING_TYPETHIN_STRING_TYPEONE_BYTE_STRING_TYPECONS_ONE_BYTE_STRING_TYPEEXTERNAL_ONE_BYTE_STRING_TYPESLICED_ONE_BYTE_STRING_TYPETHIN_ONE_BYTE_STRING_TYPEEXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPESHORT_EXTERNAL_STRING_TYPESHORT_EXTERNAL_ONE_BYTE_STRING_TYPESHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPESYMBOL_TYPEHEAP_NUMBER_TYPEBIGINT_TYPEODDBALL_TYPEMAP_TYPECODE_TYPEMUTABLE_HEAP_NUMBER_TYPEFOREIGN_TYPEBYTE_ARRAY_TYPEBYTECODE_ARRAY_TYPEFREE_SPACE_TYPEFIXED_INT8_ARRAY_TYPEFIXED_UINT8_ARRAY_TYPEFIXED_INT16_ARRAY_TYPEFIXED_UINT16_ARRAY_TYPEFIXED_INT32_ARRAY_TYPEFIXED_UINT32_ARRAY_TYPEFIXED_FLOAT32_ARRAY_TYPEFIXED_FLOAT64_ARRAY_TYPEFIXED_UINT8_CLAMPED_ARRAY_TYPEFIXED_BIGINT64_ARRAY_TYPEFIXED_BIGUINT64_ARRAY_TYPEFIXED_DOUBLE_ARRAY_TYPEFEEDBACK_METADATA_TYPEFILLER_TYPEACCESS_CHECK_INFO_TYPEACCESSOR_INFO_TYPEACCESSOR_PAIR_TYPEALIASED_ARGUMENTS_ENTRY_TYPEALLOCATION_MEMENTO_TYPEALLOCATION_SITE_TYPEASYNC_GENERATOR_REQUEST_TYPEDEBUG_INFO_TYPEFUNCTION_TEMPLATE_INFO_TYPEINTERCEPTOR_INFO_TYPEINTERPRETER_DATA_TYPEMODULE_INFO_ENTRY_TYPEMODULE_TYPEOBJECT_TEMPLATE_INFO_TYPEPROMISE_CAPABILITY_TYPEPROMISE_REACTION_TYPEPROTOTYPE_INFO_TYPESCRIPT_TYPESTACK_FRAME_INFO_TYPETUPLE2_TYPETUPLE3_TYPEWASM_COMPILED_MODULE_TYPEWASM_DEBUG_INFO_TYPEWASM_EXPORTED_FUNCTION_DATA_TYPEWASM_SHARED_MODULE_DATA_TYPECALLABLE_TASK_TYPECALLBACK_TASK_TYPEPROMISE_FULFILL_REACTION_JOB_TASK_TYPEPROMISE_REJECT_REACTION_JOB_TASK_TYPEPROMISE_RESOLVE_THENABLE_JOB_TASK_TYPEFIXED_ARRAY_TYPEBOILERPLATE_DESCRIPTION_TYPEDESCRIPTOR_ARRAY_TYPEHASH_TABLE_TYPESCOPE_INFO_TYPEBLOCK_CONTEXT_TYPECATCH_CONTEXT_TYPEDEBUG_EVALUATE_CONTEXT_TYPEEVAL_CONTEXT_TYPEFUNCTION_CONTEXT_TYPEMODULE_CONTEXT_TYPENATIVE_CONTEXT_TYPESCRIPT_CONTEXT_TYPEWITH_CONTEXT_TYPEWEAK_FIXED_ARRAY_TYPETRANSITION_ARRAY_TYPECALL_HANDLER_INFO_TYPECELL_TYPECODE_DATA_CONTAINER_TYPEFEEDBACK_CELL_TYPEFEEDBACK_VECTOR_TYPELOAD_HANDLER_TYPEPROPERTY_ARRAY_TYPEPROPERTY_CELL_TYPESHARED_FUNCTION_INFO_TYPESMALL_ORDERED_HASH_MAP_TYPESMALL_ORDERED_HASH_SET_TYPESTORE_HANDLER_TYPEWEAK_CELL_TYPEWEAK_ARRAY_LIST_TYPEJS_PROXY_TYPEJS_GLOBAL_OBJECT_TYPEJS_GLOBAL_PROXY_TYPEJS_MODULE_NAMESPACE_TYPEJS_SPECIAL_API_OBJECT_TYPEJS_VALUE_TYPEJS_API_OBJECT_TYPEJS_OBJECT_TYPEJS_ARGUMENTS_TYPEJS_ARRAY_BUFFER_TYPEJS_ARRAY_ITERATOR_TYPEJS_ARRAY_TYPEJS_ASYNC_FROM_SYNC_ITERATOR_TYPEJS_ASYNC_GENERATOR_OBJECT_TYPEJS_CONTEXT_EXTENSION_OBJECT_TYPEJS_DATE_TYPEJS_ERROR_TYPEJS_GENERATOR_OBJECT_TYPEJS_MAP_TYPEJS_MAP_KEY_ITERATOR_TYPEJS_MESSAGE_OBJECT_TYPEJS_PROMISE_TYPEJS_REGEXP_TYPEJS_REGEXP_STRING_ITERATOR_TYPEJS_SET_TYPEJS_SET_VALUE_ITERATOR_TYPEJS_STRING_ITERATOR_TYPEJS_WEAK_MAP_TYPEJS_WEAK_SET_TYPEJS_TYPED_ARRAY_TYPEJS_DATA_VIEW_TYPEWASM_GLOBAL_TYPEWASM_INSTANCE_TYPEWASM_MEMORY_TYPEWASM_MODULE_TYPEWASM_TABLE_TYPEJS_BOUND_FUNCTION_TYPEJS_FUNCTION_TYPEOPTIMIZED_FUNCTIONBYTECODE_HANDLERSTUBBUILTINREGEXPWASM_FUNCTIONWASM_TO_JS_FUNCTIONJS_TO_WASM_FUNCTIONWASM_INTERPRETER_ENTRYC_WASM_ENTRYBOILERPLATE_ELEMENTS_TYPEBOILERPLATE_PROPERTY_ARRAY_TYPEBOILERPLATE_PROPERTY_DICTIONARY_TYPEBYTECODE_ARRAY_CONSTANT_POOL_TYPEBYTECODE_ARRAY_HANDLER_TABLE_TYPECODE_STUBS_TABLE_TYPECOW_ARRAY_TYPEDEOPTIMIZATION_DATA_TYPEDEPENDENT_CODE_TYPEELEMENTS_TYPEEMBEDDED_OBJECT_TYPEENUM_CACHE_TYPEENUM_INDICES_CACHE_TYPEFEEDBACK_VECTOR_ENTRY_TYPEFEEDBACK_VECTOR_HEADER_TYPEFEEDBACK_VECTOR_SLOT_CALL_TYPEFEEDBACK_VECTOR_SLOT_CALL_UNUSED_TYPEFEEDBACK_VECTOR_SLOT_ENUM_TYPEFEEDBACK_VECTOR_SLOT_LOAD_TYPEFEEDBACK_VECTOR_SLOT_LOAD_UNUSED_TYPEFEEDBACK_VECTOR_SLOT_OTHER_TYPEFEEDBACK_VECTOR_SLOT_STORE_TYPEFEEDBACK_VECTOR_SLOT_STORE_UNUSED_TYPEFUNCTION_TEMPLATE_INFO_ENTRIES_TYPEGLOBAL_ELEMENTS_TYPEGLOBAL_PROPERTIES_TYPEJS_ARRAY_BOILERPLATE_TYPEJS_COLLETION_TABLE_TYPEJS_OBJECT_BOILERPLATE_TYPENOSCRIPT_SHARED_FUNCTION_INFOS_TYPENUMBER_STRING_CACHE_TYPEOBJECT_PROPERTY_DICTIONARY_TYPEOBJECT_TO_CODE_TYPEOPTIMIZED_CODE_LITERALS_TYPEOTHER_CONTEXT_TYPEPROTOTYPE_USERS_TYPEREGEXP_MULTIPLE_CACHE_TYPERETAINED_MAPS_TYPESCRIPT_LIST_TYPESCRIPT_SHARED_FUNCTION_INFOS_TYPESCRIPT_SOURCE_EXTERNAL_TYPESCRIPT_SOURCE_NON_EXTERNAL_TYPESERIALIZED_OBJECTS_TYPESINGLE_CHARACTER_STRING_CACHE_TYPESTRING_SPLIT_CACHE_TYPESTRING_TABLE_TYPEUNCOMPILED_JS_FUNCTION_TYPEUNCOMPILED_SHARED_FUNCTION_INFO_TYPEWEAK_NEW_SPACE_OBJECT_TO_CODE_TYPENEW_SPACEOLD_SPACECODE_SPACEMAP_SPACELO_SPACERO_SPACEobject->GetIsolate()->heap()->Contains(object)object->map()->IsMap()(*current)->IsSmi()pretenuring: AllocationSite(%p): (created, found, ratio) (%d, %d, %f) %s => %s %d duplicates of size %d each (%dKB) Sample object: ============================ end_offset <= 1 << kPageSizeBitsscavenge[%p]: time=%.2f copied=%zu promoted=%zu state_.TrySetValue(kProcessing, kFinished)HandleScope::kCheckHandleThreshold > handle_count_IsGlobalEmpty()V8.Task[IncrementalMarking] Start (%s): old generation %dMB, limit %dMB, slack %dMB [IncrementalMarking] Start sweeping. [IncrementalMarking] Start delayed - serializer [IncrementalMarking] Start marking [IncrementalMarking] Running [IncrementalMarking] Black allocation started [IncrementalMarking] Black allocation paused [IncrementalMarking] Black allocation finished [IncrementalMarking] Black allocation aborted [IncrementalMarking] Finalize incrementally spent %.1f ms. [IncrementalMarking] Hurry [IncrementalMarking] Complete (hurry), spent %d ms. [IncrementalMarking] Stopping: old generation %dMB, limit %dMB, overshoot %dMB [IncrementalMarking] requesting finalization of incremental marking. [IncrementalMarking] Complete (normal). [IncrementalMarking] Step %s %zuKB (%zuKB) in %.1f in v8in taskConcurrently marked %zuKB [IncrementalMarking] Restarting (new grey objects) item->IsFinished()ItemParallelJob::Runnum_tasksnum_items111001!p->IsEvacuationCandidate()(p->slot_set()) == nullptr(p->typed_slot_set()) == nullptrp->SweepingDone()compaction-selection-page: space=%s free_bytes_page=%zu fragmentation_limit_kb=%zu fragmentation_limit_percent=%d sum_compaction_kb=%zu compaction_limit_kb=%zu compaction-selection: space=%s reduce_memory=%d pages=%d total_live_bytes=%zu marking_worklist()->IsEmpty()0 == heap()->local_embedder_heap_tracer()->NumberOfWrappersToTrace()disabled-by-default-v8.gc_statsV8.GC_Objects_Statslivedeadincremental_marking->IsStopped()weak objectsEvacuator::EvacuatePageevacuation[%p]: page=%p new_space=%d page_evacuation=%d executable=%d contains_age_mark=%d live_bytes=%d time=%f success=%d FullEvacuator::RawEvacuatePageevacuation_mode%8.0f ms: evacuation: aborted=%d Worklist %s: %d [%s]: %d [%s]: %d pages, %d (%.1f%%) free Unknown type: %d ArrayBufferTrackerUpdatingItem::ProcessEvacuationState!allocation.IsRetry()MarkCompactCollector: semi-space copy, fallback in old genLiveObjectVisitor::VisitBlackObjectsNoFailLiveObjectVisitor::VisitBlackObjects%8.0f ms: evacuation-summary: parallel=%s pages=%d wanted_tasks=%d tasks=%d cores=%d live_bytes=%d compaction_speed=%.f ToSpaceUpdatingItem::ProcessVisitLiveToSpaceUpdatingItem::ProcessVisitAllRememberedSetUpdatingItem::Processchunk_->owner() != heap_->map_space()%d: %d: %dx%d Memory reducer: %s, %s low allochigh allocbackgroundforegroundMemory reducer: started GC #%d Memory reducer: waiting for %.f ms Memory reducer: finished GC #%d (%s) will do moredone"isolate": "%p", "id": %d, "key": "%s", { "type": "instance_type_data", "instance_type": %d, "instance_type_name": "%s", "overall": %zu, "count": %zu, "over_allocated": %zu, "histogram": "over_allocated_histogram": } "type": "gc_descriptor", "time": %f } "type": "field_data", "tagged_fields": %zu, "embedder_fields": %zu, "unboxed_double_fields": %zu, "other_raw_fields": %zu"type": "bucket_sizes", "sizes": [ ] } ":{"type":"overall":"count":"over_allocated":"histogram":,"over_allocated_histogram":},"isolate":"","id":"time":"field_data":{"tagged_fields":,"embedder_fields":,"unboxed_double_fields": ,"other_raw_fields":}, "bucket_sizes":[],"type_data":{"END":{}}}hash_table->IsHashTable()PROPERTY_ARRAY_TYPE == properties->map()->instance_type()calculated_size == vector->Size()[ %zu ]Scavenger::ScavengePageScavenger::ProcessScavenger: semi-space copyCodeRangeUnmapper::FreeQueuedChunks: reached task limit (%d) Unmapper::FreeQueuedChunks: new task id=%llu Unmapper::CancelAndWaitForPendingTasks: no tasks remaining 0 == pending_unmapping_tasks_FreePages(reinterpret_cast(base), size)SetPermissions(protect_start, protect_size, PageAllocator::kReadExecute)SetPermissions(unprotect_start, unprotect_size, PageAllocator::kReadWrite)SetPermissions(area_start, area_size, PageAllocator::kReadWriteExecute)Code page is too large.MemoryChunk!last_chunk_.IsReserved()last_chunk_.IsReserved()filler->IsFiller()Shrinking page %p: end %p -> %p filler->address() + filler->Size() == area_end()page->SweepingDone()heap()->memory_allocator()->IsMemoryChunkExecutable(page)to_remove != current_page_FreeList[%p, top=%p, %d] %p -> null limit() >= top()size == static_cast(end - start)SetPermissions(page->address() + area_start_offset, page->size() - area_start_offset, access)LargeObjectChunkUnmapper::PerformFreeMemoryOnQueuedChunks: %d queued chunks UnmapFreeMemoryTask Done: id=%llu StoreBuffer::SetUp[StressScavenge] %d%% is the new limit [Scavenge] %.2lf%% of the new space capacity reached [Scavenge] GC requested [Scavenge] %d%% is the new limit !stop_sweeper_tasks_.Value()free_end > free_startp->area_end() > free_startsweeping_list_[GetSweepSpaceIndex(space)].empty()disabled-by-default-v8.ic_statsV8.ICStatsic-statsfunctionNameoptimizedoffsetscriptNamelineNumconstructorstatedictowninstanceType!is_iterable()is_iterable()address != heap_->not_mapped_symbol()Void DescriptorContextOnly DescriptorLoad DescriptorLoadWithVector DescriptorLoadGlobal DescriptorLoadGlobalWithVector DescriptorStore DescriptorStoreWithVector DescriptorStoreNamedTransition DescriptorStoreTransition DescriptorStoreGlobal DescriptorStoreGlobalWithVector DescriptorFastNewFunctionContext DescriptorFastNewObject DescriptorFastNewArguments DescriptorRecordWrite DescriptorTypeConversion DescriptorTypeConversionStackParameter DescriptorTypeof DescriptorCallFunction DescriptorCallVarargs DescriptorCallForwardVarargs DescriptorCallWithSpread DescriptorCallWithArrayLike DescriptorCallTrampoline DescriptorConstructStub DescriptorConstructVarargs DescriptorConstructForwardVarargs DescriptorConstructWithSpread DescriptorConstructWithArrayLike DescriptorConstructTrampoline DescriptorTransitionElementsKind DescriptorAbortJS DescriptorAllocateHeapNumber DescriptorBuiltin DescriptorArrayConstructor DescriptorIteratingArrayBuiltin DescriptorArrayNoArgumentConstructor DescriptorArraySingleArgumentConstructor DescriptorArrayNArgumentsConstructor DescriptorCompare DescriptorBinaryOp DescriptorStringAt DescriptorStringSubstring DescriptorForInPrepare DescriptorGetProperty DescriptorArgumentAdaptor DescriptorApiCallback DescriptorApiGetter DescriptorMathPowTagged DescriptorMathPowInteger DescriptorGrowArrayElements DescriptorNewArgumentsElements DescriptorInterpreterDispatch DescriptorInterpreterPushArgsThenCall DescriptorInterpreterPushArgsThenConstruct DescriptorInterpreterCEntry DescriptorResumeGenerator DescriptorFrameDropperTrampoline DescriptorWasmRuntimeCall DescriptorRunMicrotasks DescriptorFastNewClosure DescriptorCreateRegExpLiteral DescriptorCreateEmptyArrayLiteral DescriptorCreateShallowArrayLiteral DescriptorCreateShallowObjectLiteral DescriptorStringIndexOf DescriptorStringRepeat DescriptorOrderedHashTableHealIndex DescriptorCopyFastSmiOrObjectElements DescriptorEnqueueMicrotask DescriptorHasProperty DescriptorDeleteProperty DescriptorArrayIncludesSmiOrObject DescriptorArrayIncludesPackedDoubles DescriptorArrayIncludesHoleyDoubles DescriptorArrayIndexOfSmiOrObject DescriptorArrayIndexOfPackedDoubles DescriptorArrayIndexOfHoleyDoubles DescriptorCloneFastJSArray DescriptorExtractFastJSArray DescriptorArrayEveryLoopContinuation DescriptorArraySomeLoopContinuation DescriptorArrayFilterLoopContinuation DescriptorArrayMapLoopContinuation DescriptorArrayReduceLoopContinuation DescriptorArrayReduceRightLoopContinuation DescriptorArrayFindLoopContinuation DescriptorArrayFindIndexLoopContinuation DescriptorFlattenIntoArray DescriptorFlatMapIntoArray DescriptorCreateIterResultObject DescriptorCreateGeneratorObject DescriptorFindOrderedHashMapEntry DescriptorParseInt DescriptorBitwiseNot DescriptorDecrement DescriptorIncrement DescriptorNegate DescriptorCreateObjectWithoutProperties DescriptorForInEnumerate DescriptorForInFilter DescriptorFulfillPromise DescriptorRejectPromise DescriptorResolvePromise DescriptorNewPromiseCapability DescriptorPerformPromiseThen DescriptorPromiseRejectReactionJob DescriptorPromiseFulfillReactionJob DescriptorPromiseResolveThenableJob DescriptorPromiseResolve DescriptorProxyGetProperty DescriptorProxyHasProperty DescriptorProxySetProperty DescriptorRegExpExecAtom DescriptorRegExpMatchFast DescriptorRegExpPrototypeExecSlow DescriptorRegExpReplace DescriptorRegExpSearchFast DescriptorRegExpSplit DescriptorIterableToList DescriptorTypedArrayInitialize DescriptorTypedArrayInitializeWithBuffer DescriptorCreateTypedArray DescriptorTypedArrayLoadElementAsTagged DescriptorTypedArrayStoreElementFromTagged DescriptorWeakMapLookupHashIndex DescriptorWeakCollectionDelete DescriptorWeakCollectionSet DescriptorAsyncGeneratorResolve DescriptorAsyncGeneratorReject DescriptorAsyncGeneratorYield DescriptorAsyncGeneratorReturn DescriptorAsyncGeneratorResumeNext DescriptorStringAdd_CheckNone_NotTenured DescriptorStringAdd_CheckNone_Tenured DescriptorStringAdd_ConvertLeft_NotTenured DescriptorStringAdd_ConvertRight_NotTenured DescriptorArrayForEachLoopContinuation DescriptorTypedArrayQuickSort Descriptor_WasmCompileLazy_DebugBreakOnBytecode_LoadLookupSlotForCall_ArrayIncludes_Slow_ArrayIndexOf_ArrayIsArray_ArraySpeciesConstructor_EstimateNumberOfElements_GetArrayKeys_GrowArrayElements_HasComplexElements_IsArray_MoveArrayContents_NewArray_NormalizeElements_PrepareElementsForSort_TransitionElementsKind_TrySliceSimpleNonFastElements_AtomicsAdd_AtomicsAnd_AtomicsCompareExchange_AtomicsExchange_AtomicsNumWaitersForTesting_AtomicsOr_AtomicsSub_AtomicsXor_SetAllowAtomicsWait_BigIntBinaryOp_BigIntCompareToBigInt_BigIntCompareToNumber_BigIntCompareToString_BigIntEqualToBigInt_BigIntEqualToNumber_BigIntEqualToString_BigIntToBoolean_BigIntToNumber_BigIntUnaryOp_ToBigInt_DefineClass_GetSuperConstructor_HomeObjectSymbol_LoadFromSuper_LoadKeyedFromSuper_StoreKeyedToSuper_Sloppy_StoreKeyedToSuper_Strict_StoreToSuper_Sloppy_StoreToSuper_Strict_ThrowConstructorNonCallableError_ThrowNotSuperConstructor_ThrowStaticPrototypeError_ThrowSuperAlreadyCalledError_ThrowSuperNotCalled_ThrowUnsupportedSuperError_GetWeakMapEntries_GetWeakSetValues_IsJSMap_IsJSSet_IsJSWeakMap_IsJSWeakSet_MapGrow_MapIteratorClone_MapShrink_SetGrow_SetIteratorClone_SetShrink_TheHole_WeakCollectionDelete_WeakCollectionSet_CompileForOnStackReplacement_CompileLazy_CompileOptimized_Concurrent_CompileOptimized_NotConcurrent_EvictOptimizedCodeSlot_FunctionFirstExecution_InstantiateAsmJs_NotifyDeoptimized_ResolvePossiblyDirectEval_DateCurrentTime_IsDate_ChangeBreakOnException_CheckExecutionState_ClearStepping_CollectGarbage_DebugApplyInstrumentation_DebugAsyncFunctionPromiseCreated_DebugBreakAtEntry_DebugCollectCoverage_DebugConstructedBy_DebugEvaluate_DebugEvaluateGlobal_DebugGetInternalProperties_DebugGetLoadedScripts_DebugGetProperty_DebugGetPropertyDetails_DebugGetPrototype_DebugIsActive_DebugOnFunctionCall_DebugPopPromise_DebugPrepareStepInSuspendedGenerator_DebugPropertyAttributesFromDetails_DebugPropertyKindFromDetails_DebugPushPromise_DebugReferencedBy_DebugSetScriptSource_DebugToggleBlockCoverage_DebugTogglePreciseCoverage_FunctionGetDebugName_FunctionGetInferredName_GetAllScopesDetails_GetBreakLocations_GetDebugContext_GetFrameCount_GetFrameDetails_GetFunctionScopeCount_GetFunctionScopeDetails_GetGeneratorScopeCount_GetGeneratorScopeDetails_GetHeapUsage_GetScopeCount_GetScopeDetails_GetScript_HandleDebuggerStatement_IncBlockCounter_IsBreakOnException_PrepareStep_ScheduleBreak_ScriptLineCount_ScriptLocationFromLine2_ScriptLocationFromLine_ScriptPositionInfo2_ScriptPositionInfo_SetScopeVariableValue_ErrorToString_ForInEnumerate_ForInHasProperty_Call_FunctionGetContextData_FunctionGetName_FunctionGetScript_FunctionGetScriptId_FunctionGetScriptSourcePosition_FunctionGetSourceCode_FunctionIsAPIFunction_FunctionToString_IsConstructor_IsFunction_SetCode_SetNativeFlag_AsyncGeneratorHasCatchHandlerForPC_AsyncGeneratorReject_AsyncGeneratorResolve_AsyncGeneratorYield_CreateJSGeneratorObject_GeneratorClose_GeneratorGetContinuation_GeneratorGetFunction_GeneratorGetInputOrDebugPos_GeneratorGetReceiver_GeneratorGetResumeMode_GeneratorGetSourcePosition_ElementsTransitionAndStoreIC_Miss_KeyedLoadIC_Miss_KeyedStoreIC_Miss_KeyedStoreIC_Slow_LoadElementWithInterceptor_LoadGlobalIC_Miss_LoadGlobalIC_Slow_LoadIC_Miss_LoadPropertyWithInterceptor_StoreCallbackProperty_StoreGlobalIC_Miss_StoreGlobalIC_Slow_StoreIC_Miss_StoreInArrayLiteralIC_Slow_StorePropertyWithInterceptor_AllocateInNewSpace_AllocateInTargetSpace_AllocateSeqOneByteString_AllocateSeqTwoByteString_AllowDynamicFunction_CheckIsBootstrapping_CreateAsyncFromSyncIterator_CreateListFromArrayLike_CreateTemplateObject_DeserializeLazy_ExportFromRuntime_GetAndResetRuntimeCallStats_IncrementUseCounter_InstallToContext_Interrupt_IS_VAR_NewReferenceError_NewSyntaxError_NewTypeError_OrdinaryHasInstance_PromoteScheduledException_ReportMessage_ReThrow_RunMicrotaskCallback_RunMicrotasks_StackGuard_Throw_ThrowApplyNonFunction_ThrowCalledNonCallable_ThrowConstructedNonConstructable_ThrowConstructorReturnedNonObject_ThrowInvalidStringLength_ThrowInvalidTypedArrayAlignment_ThrowIteratorResultNotAnObject_ThrowNotConstructor_ThrowRangeError_ThrowReferenceError_ThrowStackOverflow_ThrowSymbolAsyncIteratorInvalid_ThrowSymbolIteratorInvalid_ThrowThrowMethodMissing_ThrowTypeError_Typeof_UnwindAndFindExceptionHandler_InterpreterDeserializeLazy_CreateArrayLiteral_CreateObjectLiteral_CreateRegExpLiteral_LiveEditCheckAndDropActivations_LiveEditCompareStrings_LiveEditFindSharedFunctionInfosForScript_LiveEditFixupScript_LiveEditFunctionSetScript_LiveEditFunctionSourceUpdated_LiveEditGatherCompileInfo_LiveEditPatchFunctionPositions_LiveEditReplaceFunctionCode_LiveEditReplaceRefToNestedFunction_LiveEditReplaceScript_LiveEditRestartFrame_GenerateRandomNumbers_DynamicImportCall_GetImportMetaObject_GetModuleNamespace_GetHoleNaNLower_GetHoleNaNUpper_IsSmi_IsValidSmi_MaxSmi_NumberToStringSkipCache_SmiLexicographicCompare_StringParseFloat_StringParseInt_StringToNumber_AddDictionaryProperty_AddElement_AddNamedProperty_AddPrivateField_AllocateHeapNumber_ClassOf_CollectTypeProfile_CompleteInobjectSlackTrackingForMap_CopyDataProperties_CopyDataPropertiesWithExcludedProperties_CreateDataProperty_CreateIterResultObject_DefineAccessorPropertyUnchecked_DefineDataPropertyInLiteral_DefineGetterPropertyUnchecked_DefineMethodsInternal_DefineSetterPropertyUnchecked_DeleteProperty_GetFunctionName_GetInterceptorInfo_GetOwnPropertyDescriptor_GetOwnPropertyKeys_GetProperty_GetPrototype_HasFastPackedElements_HasInPrototypeChain_HasProperty_InternalSetPrototype_IsJSReceiver_IterableToListCanBeElided_KeyedGetProperty_NewObject_ObjectCreate_ObjectEntries_ObjectEntriesSkipFastPath_ObjectHasOwnProperty_ObjectKeys_ObjectValues_ObjectValuesSkipFastPath_OptimizeObjectForAddingMultipleProperties_SameValue_SameValueZero_SetDataProperties_SetProperty_ShrinkPropertyDictionary_ToFastProperties_ToInteger_ToLength_ToName_ToNumber_ToNumeric_ToObject_ToPrimitive_ToPrimitive_Number_ToString_TryMigrateInstance_ValueOf_Add_Equal_GreaterThan_GreaterThanOrEqual_LessThan_LessThanOrEqual_NotEqual_StrictEqual_StrictNotEqual_EnqueueMicrotask_PromiseHookAfter_PromiseHookBefore_PromiseHookInit_PromiseMarkAsHandled_PromiseRejectEventFromStack_PromiseResult_PromiseRevokeReject_PromiseStatus_RejectPromise_ResolvePromise_PromiseRejectAfterResolved_PromiseResolveAfterResolved_CheckProxyGetSetTrapResult_CheckProxyHasTrap_GetPropertyWithReceiver_IsJSProxy_JSProxyGetHandler_JSProxyGetTarget_SetPropertyWithReceiver_IsRegExp_RegExpExec_RegExpExecMultiple_RegExpInitializeAndCompile_RegExpInternalReplace_RegExpReplace_RegExpSplit_StringReplaceNonGlobalRegExpWithFunction_StringSplit_DeclareEvalFunction_DeclareEvalVar_DeclareGlobals_DeleteLookupSlot_LoadLookupSlot_LoadLookupSlotInsideTypeof_NewArgumentsElements_NewClosure_NewClosure_Tenured_NewFunctionContext_NewRestParameter_NewScriptContext_NewSloppyArguments_NewSloppyArguments_Generic_NewStrictArguments_PushBlockContext_PushCatchContext_PushModuleContext_PushWithContext_StoreLookupSlot_Sloppy_StoreLookupSlot_SloppyHoisting_StoreLookupSlot_Strict_ThrowConstAssignError_FlattenString_GetSubstitution_InternalizeString_SparseJoinWithSeparator_StringAdd_StringBuilderConcat_StringBuilderJoin_StringCharCodeAt_StringCharFromCode_StringEqual_StringGreaterThan_StringGreaterThanOrEqual_StringIncludes_StringIndexOf_StringIndexOfUnchecked_StringLastIndexOf_StringLessThan_StringLessThanOrEqual_StringMaxLength_StringNotEqual_StringReplaceOneCharWithString_StringSubstring_StringToArray_StringTrim_CreatePrivateFieldSymbol_CreatePrivateSymbol_SymbolDescription_SymbolDescriptiveString_SymbolIsPrivate_Abort_AbortJS_ClearFunctionFeedback_CompleteInobjectSlackTracking_ConstructConsString_ConstructSlicedString_ConstructDouble_DebugPrint_DebugTrace_DebugTrackRetainingPath_DeoptimizeFunction_DeoptimizeNow_DeserializeWasmModule_DisallowCodegenFromStrings_DisallowWasmCodegen_DisassembleFunction_FreezeWasmLazyCompilation_GetCallable_GetDeoptCount_GetOptimizationStatus_GetUndetectable_GetWasmRecoveredTrapCount_GlobalPrint_HasDictionaryElements_HasDoubleElements_HasFastElements_HasFastProperties_HasFixedBigInt64Elements_HasFixedBigUint64Elements_HasFixedFloat32Elements_HasFixedFloat64Elements_HasFixedInt16Elements_HasFixedInt32Elements_HasFixedInt8Elements_HasFixedUint16Elements_HasFixedUint32Elements_HasFixedUint8ClampedElements_HasFixedUint8Elements_HasHoleyElements_HasObjectElements_HasSloppyArgumentsElements_HasSmiElements_HasSmiOrObjectElements_HaveSameMap_HeapObjectVerify_InNewSpace_IsAsmWasmCode_IsConcurrentRecompilationSupported_IsJSError_IsJSGeneratorObject_IsJSMapIterator_IsJSSetIterator_IsLiftoffFunction_IsScriptWrapper_IsWasmCode_IsWasmTrapHandlerEnabled_NativeScriptsCount_NeverOptimizeFunction_NotifyContextDisposed_OptimizeFunctionOnNextCall_OptimizeOsr_PrintWithNameForAssert_RedirectToWasmInterpreter_RunningInSimulator_SerializeWasmModule_SetAllocationTimeout_SetFlags_SetForceSlowPath_SetWasmCompileControls_SetWasmInstantiateControls_ArraySpeciesProtector_TypedArraySpeciesProtector_PromiseSpeciesProtector_SystemBreak_TraceEnter_TraceExit_UnblockConcurrentRecompilation_ValidateWasmInstancesChain_ValidateWasmModuleState_WasmNumInterpretedCalls_WasmTraceMemory_ArrayBufferNeuter_ArrayBufferViewWasNeutered_IsTypedArray_TypedArrayCopyElements_TypedArrayGetBuffer_TypedArrayGetLength_TypedArraySet_TypedArraySortFast_ThrowWasmError_ThrowWasmStackOverflow_WasmExceptionGetElement_WasmExceptionSetElement_WasmGetExceptionRuntimeId_WasmGrowMemory_WasmRunInterpreter_WasmStackGuard_WasmThrow_WasmThrowCreate_WasmThrowTypeErrorglobal_proxy_objectembedder_dataaccessor_property_descriptor_mapallow_code_gen_from_stringsarray_buffer_funarray_buffer_maparray_buffer_noinit_funarray_functionasync_from_sync_iterator_mapasync_function_await_reject_shared_funasync_function_await_resolve_shared_funasync_function_constructorasync_generator_function_functionasync_iterator_value_unwrap_shared_funasync_generator_await_reject_shared_funasync_generator_await_resolve_shared_funasync_generator_yield_resolve_shared_funasync_generator_return_resolve_shared_funasync_generator_return_closed_resolve_shared_funasync_generator_return_closed_reject_shared_funatomics_objectbigint_functionbigint64_array_funbiguint64_array_funboolean_functionbound_function_with_constructor_mapbound_function_without_constructor_mapcall_as_constructor_delegatecall_as_function_delegatecallsite_functioncontext_extension_functiondata_property_descriptor_mapdata_view_fundate_functiondebug_context_idempty_functionerror_message_for_code_gen_from_stringserrors_thrownextras_binding_objectextras_utils_objectfast_aliased_arguments_mapfast_template_instantiations_cachefloat32_array_funfloat64_array_funfunction_functiongenerator_function_functiongenerator_object_prototype_mapasync_generator_object_prototype_mapinitial_array_iterator_mapinitial_array_iterator_prototypeinitial_array_prototypeinitial_error_prototypeinitial_generator_prototypeinitial_async_generator_prototypeinitial_iterator_prototypeinitial_map_prototype_mapinitial_object_prototypeinitial_set_prototype_mapinitial_string_prototypeinitial_weakmap_prototype_mapinitial_weakset_prototype_mapint16_array_funint32_array_funint8_array_funinternal_array_functioniterator_result_mapintl_date_time_format_functionintl_number_format_functionintl_locale_functionintl_collator_functionintl_plural_rules_functionintl_v8_break_iterator_functionjs_array_fast_smi_elements_map_indexjs_array_fast_holey_smi_elements_map_indexjs_array_fast_elements_map_indexjs_array_fast_holey_elements_map_indexjs_array_fast_double_elements_map_indexjs_array_fast_holey_double_elements_map_indexjs_map_funjs_map_mapjs_module_namespace_mapjs_set_funjs_set_mapjs_weak_map_funjs_weak_set_funmap_cachemap_key_iterator_mapmap_key_value_iterator_mapmap_value_iterator_mapmath_random_indexmath_random_cachemessage_listenersnatives_utils_objectnormalized_map_cachenumber_functionobject_functionobject_function_prototype_mapopaque_reference_functionproxy_callable_mapproxy_constructor_mapproxy_functionproxy_mapproxy_revocable_result_mapproxy_revoke_shared_funpromise_get_capabilities_executor_shared_funpromise_capability_default_reject_shared_funpromise_capability_default_resolve_shared_funpromise_then_finally_shared_funpromise_catch_finally_shared_funpromise_value_thunk_finally_shared_funpromise_thrower_finally_shared_funpromise_all_resolve_element_shared_funpromise_prototyperegexp_exec_functionregexp_functionregexp_last_match_inforegexp_internal_match_inforegexp_prototype_mapinitial_regexp_string_iterator_prototype_map_indexregexp_result_mapscript_context_tablescript_functionsecurity_tokenself_weak_cellserialized_objectsset_value_iterator_mapset_key_value_iterator_mapshared_array_buffer_funsloppy_arguments_mapslow_aliased_arguments_mapstrict_arguments_mapslow_object_with_null_prototype_mapslow_template_instantiations_cachesloppy_function_mapsloppy_function_with_name_mapsloppy_function_without_prototype_mapsloppy_function_with_readonly_prototype_mapstrict_function_mapstrict_function_with_name_mapstrict_function_with_readonly_prototype_mapstrict_function_without_prototype_mapmethod_with_name_mapmethod_with_home_object_mapmethod_with_name_and_home_object_mapasync_function_mapasync_function_with_name_mapasync_function_with_home_object_mapasync_function_with_name_and_home_object_mapgenerator_function_mapgenerator_function_with_name_mapgenerator_function_with_home_object_mapgenerator_function_with_name_and_home_object_mapasync_generator_function_mapasync_generator_function_with_name_mapasync_generator_function_with_home_object_mapasync_generator_function_with_name_and_home_object_mapclass_function_mapstring_functionstring_function_prototype_mapstring_iterator_mapsymbol_functionnative_function_mapwasm_global_constructorwasm_instance_constructorwasm_memory_constructorwasm_module_constructorwasm_table_constructortyped_array_functiontyped_array_prototypeuint16_array_funuint32_array_funuint8_array_funuint8_clamped_array_funWideExtraWideDebugBreakWideDebugBreakExtraWideDebugBreak0DebugBreak1DebugBreak2DebugBreak3DebugBreak4DebugBreak5DebugBreak6LdaZeroLdaSmiLdaUndefinedLdaNullLdaTheHoleLdaTrueLdaFalseLdaConstantLdaGlobalLdaGlobalInsideTypeofStaGlobalPushContextPopContextLdaContextSlotLdaImmutableContextSlotLdaCurrentContextSlotLdaImmutableCurrentContextSlotStaContextSlotStaCurrentContextSlotLdaLookupSlotLdaLookupContextSlotLdaLookupGlobalSlotLdaLookupSlotInsideTypeofLdaLookupContextSlotInsideTypeofLdaLookupGlobalSlotInsideTypeofStaLookupSlotLdarStarMovLdaNamedPropertyLdaKeyedPropertyLdaModuleVariableStaModuleVariableStaNamedPropertyStaNamedOwnPropertyStaKeyedPropertyStaInArrayLiteralStaDataPropertyInLiteralSubMulDivModExpAddSmiSubSmiMulSmiDivSmiModSmiExpSmiBitwiseOrSmiBitwiseXorSmiBitwiseAndSmiShiftLeftSmiShiftRightSmiShiftRightLogicalSmiIncToBooleanLogicalNotLogicalNotDeletePropertyStrictDeletePropertySloppyCallAnyReceiverCallPropertyCallProperty0CallProperty1CallProperty2CallUndefinedReceiverCallUndefinedReceiver0CallUndefinedReceiver1CallUndefinedReceiver2CallRuntimeCallRuntimeForPairCallJSRuntimeInvokeIntrinsicTestEqualTestEqualStrictTestLessThanTestGreaterThanTestLessThanOrEqualTestGreaterThanOrEqualTestReferenceEqualTestInstanceOfTestInTestUndetectableTestNullTestUndefinedTestTypeOfCreateEmptyObjectLiteralGetTemplateObjectCreateClosureCreateBlockContextCreateCatchContextCreateFunctionContextCreateEvalContextCreateWithContextCreateMappedArgumentsCreateUnmappedArgumentsCreateRestParameterJumpLoopJumpJumpConstantJumpIfNullConstantJumpIfNotNullConstantJumpIfUndefinedConstantJumpIfNotUndefinedConstantJumpIfTrueConstantJumpIfFalseConstantJumpIfJSReceiverConstantJumpIfToBooleanTrueConstantJumpIfToBooleanFalseConstantJumpIfToBooleanTrueJumpIfToBooleanFalseJumpIfTrueJumpIfFalseJumpIfNullJumpIfNotNullJumpIfUndefinedJumpIfNotUndefinedJumpIfJSReceiverSwitchOnSmiNoFeedbackForInPrepareForInContinueForInNextForInStepSetPendingMessageThrowReferenceErrorIfHoleThrowSuperNotCalledIfHoleThrowSuperAlreadyCalledIfNotHoleSwitchOnGeneratorStateSuspendGeneratorResumeGeneratorDebuggeri < NumberOfOperands(bytecode)../deps/v8/src/interpreter/interpreter.cc:170V8.CompileIgnitionV8.CompileIgnitionFinalization[generated bytecode for function: counters_row ->DefineOwnProperty(context, to_name_object, counter_object) .IsJust()counters_map->DefineOwnProperty(context, from_name_object, counters_row) .IsJust() Attempt to print stack while printing stack (double fault) If you are lucky you may find a partial stack dump on stdout. Stacktrace: ptr1=%p ptr2=%p ptr3=%p ptr4=%p failure_message_object=%p %s ==== JS stack trace ========================================= ==== Details ================================================ ===================== Aborting on stack overflowException thrown during bootstrapping Extension or internal compilation error: %s in %s at line %d. Extension or internal compilation error in %s at line %d. Extension or internal compilation error: %s. Extension or internal compilation error. WasmExceptionRuntimeIdat , line %d %s FROM -1 == JavaScriptFrame::cast(frame)->LookupExceptionHandlerInTable( nullptr, nullptr)inserted=== Stress deopt counter: %u heap setupheap object creationConcurrent recompilation has been disabled for tracing. v8.executeV8.RunMicrotasks0 == pending_microtask_count()0 == heap()->microtask_queue()->length()turbo-.cfg%d detached contexts are collected out of %d detached context %p survived %d GCs (leak?) RAIL mode: %s [%d:%p] %8.0f ms: {"type": "zone", "isolate": "%p", "time": %f, "allocated": %zu,"pooled": %zu} zonecreation{"type": "%s", "isolate": "%p", "time": %f, "ptr": "%p", "name": "%s", "size": %zu,"nesting": %zu} zonedestruction%s Builtin, %s, %d code-%d-%d.asmANIMATIONIDLEStack Trace:../deps/v8/src/json-parser.cc:141object->length()->ToArrayLength(&length)| strings=%d symbols=0 elements=0 || prototypes>=1 || ../deps/v8/src/keys.cc:878static_cast(length) <= static_cast(kMaxNumberOfDescriptors)interceptor-indexed-enumeratorinterceptor-named-enumeratorelement->ToUint32(&number)element->IsName()attributes->ToInt32(&value)interceptor-indexed-queryinterceptor-named-query| strings=%d symbols=0 elements=%u || prototypes>=1 || symbol(hash size != -1(perf_output_handle_) != nullptr%x %x %.*s v8:Profilerprofilerresultapicheck-securityshared-librarycode-deoptcurrent-timetimer-event-starttimer-event-endtimer-eventnewget set scriptcode-source-infoIFS%.0fsuspect-readactive-runtime-timerKeyedmap-createmap-detailsUnknown code from before profilingA stub from before profilingRegular expression codeA Wasm functionA JavaScript to Wasm adapterA Wasm to JavaScript adapterA Wasm to Interpreter adapterA C to Wasm entry stubV8.RecompileConcurrentV8.CompileFullCodesymbol(" hash code-creationcode-disable-optimizationcode-movecode-deletecode-moving-gcsfi-movesnapshot-code-nametickisolate-SamplingThreadDeletingPropertyTransitionToAccessorPairstate() == LookupIterator::DATAkMachNonekRepBitkRepWord8kRepWord16kRepWord32kRepWord64kRepFloat32kRepFloat64kRepSimd128kRepTaggedSignedkRepTaggedPointerkRepTaggedkTypeBoolkTypeInt32kTypeUint32kTypeInt64kTypeUint64kTypeNumberkTypeAny%s:%i: %s exceptionwasm-function[%u]:%dprepareStackTraceCyclic __proto__ valueDebugger: %Error loading debuggerInternal % error. Default options are missing.Private fields can not be deletedUncaught %Not supportedInternal error, wrong service type: %Internal error. Wrong value type.Function.prototype.apply was called on %, which is a % and not a function'arguments' is not allowed in class field initializerDerived ArrayBuffer constructor created a buffer which was too smallArrayBuffer subclass returned this from species constructorawait is only valid in async functionAtomics.wait cannot be called in this contextThe comparison function must be either a function or undefinedThe number % cannot be converted to a BigInt because it is not an integerCannot convert % to a BigIntCannot mix BigInt and other types, use explicit conversionsDo not know how to serialize a BigIntBigInts have no unsigned right shift, use >> insteadCannot convert a BigInt value to a number% is not a function% called on non-object% called on null or undefinedCallSite expects wasm object as first or function as second argument, got <%, %>CallSite method % expects CallSite as receiverCannot convert object to primitive valueCannot prevent extensionsCannot freezeCannot freeze array buffer views with elementsCannot sealConverting circular structure to JSONAbstract class % not directly constructableAssignment to constant variable.Classes may not have a field named 'constructor'Class constructor % cannot be invoked without 'new'Constructor % requires 'new'The .constructor property is not an objectCurrency code is required with currency style.Detected cycle while resolving name '%' in '%'First argument to DataView constructor must be an ArrayBufferthis is not a Date object.Debugger: Invalid frame index.Debugger: Parameters have wrong types.Missing initializer in % declarationCannot define property %, object is not extensibleCannot perform % on a detached ArrayBufferObject template has duplicate property '%'Class extends value % is not a constructor or nullFirst argument to % must not be a regular expressionBind must be called on a functionGenerator is already runningIllegal invocationImmutable prototype object '%' cannot have their prototype setCannot use new with importCannot use 'import.meta' outside a moduleimport() requires a specifierMethod % called on incompatible receiver %Function has non-object prototype '%' in instanceof checkinvalid_argumentCannot use 'in' operator to search for '%' in %RegExp exec method returned something other than an Object or nullIterator result % is not an objectFound non-callable @@iteratorIterator value % is not an entry objectLanguage ID should be string or object.First argument to Intl.Locale constructor can't be empty or missingIncorrect locale information providedflatMap mapper function is not callableMethod % called on a non-object or on a wrong type of object.Method invoked on undefined or null value.Method invoked on an object that is not %.no accessRight-hand side of 'instanceof' is not callableCannot destructure 'undefined' or 'null'.Cannot destructure property `%` of 'undefined' or 'null'.% is not extensibleRight-hand side of 'instanceof' is not an objectCannot read property '%' of %Cannot set property '%' of %Cannot set property % of % which has only a getter% is not an iterator% is not a promise% is not a constructor% requires that 'this' be a %% is not a function or its return value is not iterable% is not a function or its return value is not async iterable% is not iterable% is not async iterable% is not a valid property namethis is not a typed array.Super constructor % of % is not a constructorSuper constructor % of anonymous class is not a constructor% is not an integer shared typed array.% is not an int32 shared typed array.Object.prototype.__defineGetter__: Expecting functionGetter must be a function: %Cannot add property %, object is not extensibleObject.prototype.__defineSetter__: Expecting functionSetter must be a function: %Function object that's not a constructor was created with newChaining cycle detected for promise %Promise executor has already been invoked with non-undefined argumentsPromise resolve or reject function is not callableProperty description must be an object: %'%' returned for property '%' of object '%' is not a functionObject prototype may only be an Object or null: %Class extends value does not have valid prototype property %'construct' on proxy: trap returned non-object ('%')'defineProperty' on proxy: trap returned truish for defining non-configurable property '%' which is either non-existant or configurable in the proxy target'defineProperty' on proxy: trap returned truish for adding property '%' to the non-extensible proxy target'defineProperty' on proxy: trap returned truish for adding property '%' that is incompatible with the existing property in the proxy target'deleteProperty' on proxy: trap returned truish for property '%' which is non-configurable in the proxy target'get' on proxy: property '%' is a read-only and non-configurable data property on the proxy target but the proxy did not return its actual value (expected '%' but got '%')'get' on proxy: property '%' is a non-configurable accessor property on the proxy target and does not have a getter function, but the trap did not return 'undefined' (got '%')'getOwnPropertyDescriptor' on proxy: trap returned descriptor for property '%' that is incompatible with the existing property in the proxy target'getOwnPropertyDescriptor' on proxy: trap returned neither object nor undefined for property '%''getOwnPropertyDescriptor' on proxy: trap reported non-configurability for property '%' which is either non-existant or configurable in the proxy target'getOwnPropertyDescriptor' on proxy: trap returned undefined for property '%' which exists in the non-extensible proxy target'getOwnPropertyDescriptor' on proxy: trap returned undefined for property '%' which is non-configurable in the proxy target'getPrototypeOf' on proxy: trap returned neither object nor null'getPrototypeOf' on proxy: proxy target is non-extensible but the trap did not return its actual prototypeCannot create proxy with a revoked proxy as target or handler'has' on proxy: trap returned falsish for property '%' which exists in the proxy target as non-configurable'has' on proxy: trap returned falsish for property '%' but the proxy target is not extensible'isExtensible' on proxy: trap result does not reflect extensibility of proxy target (which is '%')Cannot create proxy with a non-object as target or handler'ownKeys' on proxy: trap result did not include '%''ownKeys' on proxy: trap returned extra keys but proxy target is non-extensible'preventExtensions' on proxy: trap returned truish but the proxy target is extensibleCannot pass private property name to proxy trapCannot perform '%' on a proxy that has been revoked'set' on proxy: trap returned truish for property '%' which exists in the proxy target as a non-configurable and non-writable data property with a different value'set' on proxy: trap returned truish for property '%' which exists in the proxy target as a non-configurable and non-writable accessor property without a setter'setPrototypeOf' on proxy: trap returned truish for setting a new prototype on the non-extensible proxy target'%' on proxy: trap returned falsish'%' on proxy: trap returned falsish for property '%'Cannot redefine property: %Cannot redefine a property of an object with external array elementsReduce of empty array with no initial valueCannot supply flags when constructing one RegExp from another% getter called on non-object %% getter called on non-RegExp objectPromise resolver % is not a functionThe iterator's 'return' method is not callableDerived SharedArrayBuffer constructor created a buffer which was too smallSharedArrayBuffer subclass returned this from species constructorClasses may not have a static property named 'prototype'Cannot delete property '%' of %'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to themCannot assign to read only property '%' of % '%'Cannot create property '%' on % '%'Result of the Symbol.iterator method is not an objectResult of the Symbol.asyncIterator method is not an object% is not a symbolCannot convert a Symbol value to a numberCannot convert a Symbol value to a stringThe iterator does not provide a 'throw' method.Cannot convert undefined or null to objectInvalid property descriptor. Cannot both specify accessors and a value or writable attribute, %Identifier '%' has already been declared%: Arguments list has wrong type% is not definedSuper constructor may only be called onceUnsupported reference to 'super'Division by zeroExponent must be positiveProvided date is not in valid range.Expected Area/Location(/Location)* for time zone, got %Expected letters optionally connected with underscores or hyphens for a location, got %Invalid array buffer lengthArray buffer allocation failedInvalid array lengthInvalid atomic access indexInvalid code point %Invalid count valueInvalid currency code: %Offset is outside the bounds of the DataViewInvalid DataView length %Start offset % is outside the bounds of the bufferInvalid hint: %Invalid value: not (convertible to) a safe integerInvalid language tag: %Invalid value used as weak map keyInvalid value used in weak setInvalid string lengthInvalid time value% of % should be a multiple of %Invalid typed array indexInvalid typed array length: %let is disallowed as a lexically bound nameIllegal value for localeMatcher:%The normalization form should be one of %.Numeric separator can not be used after leading 0.% argument must be between 0 and 100Numeric separators are not allowed at the end of numeric literalsOnly one underscore is allowed as numeric separator% value is out of range.Maximum call stack size exceededtoPrecision() argument must be between 1 and 100toString() radix argument must be between 2 and 36offset is out of boundsSource is too largeUnsupported time zone specified %Value % out of range for % options property %The requested module '%' contains conflicting star exports for name '%'Getter must not have any formal parameters.Setter must have exactly one formal parameter.Invalid BigInt stringClass constructor may not be an accessorClass constructor may not be a generatorClass constructor may not be an async methodDerived constructors may only return object or undefinedA class may only have one constructorDuplicate export of '%'Duplicate __proto__ fields are not allowed in object literals% loop variable declaration may not have an initializer.Invalid left-hand side in % loop: Must have a single binding.Generators can only be declared at the top level or inside a block.Async functions can only be declared at the top level or inside a block.Illegal break statementIllegal continue statement: no surrounding iteration statementIllegal continue statement: '%' does not denote an iteration statementIllegal '%' directive in function with non-simple parameter listIllegal return statementIntrinsic calls do not support spread arguments`...` must be followed by an identifier in declaration contexts`...` must be followed by an assignable reference in assignment contextsKeyword must not contain escaped characters'%' must not contain escaped charactersInvalid left-hand side in assignmentInvalid shorthand property initializerInvalid destructuring assignment targetInvalid left-hand side in for-loopInvalid left-hand side expression in postfix operationInvalid left-hand side expression in prefix operationInvalid flags supplied to RegExp constructor '%'Invalid or unexpected tokenInvalid private field '%'Unexpected end of JSON inputUnexpected token % in JSON at position %Unexpected number in JSON at position %Unexpected string in JSON at position %Label '%' has already been declaredLabelled function declaration not allowed as the body of a control flow structureMalformed arrow function parameter listInvalid regular expression: /%/: %Invalid regular expression flagsExport '%' is not defined in moduleHTML comments are not allowed in modulesMore than one default clause in switch statementIllegal newline after throwMissing catch or finally after trybuiltin %%IS_VAR: not a variableRest parameter must be last formal parameterFlattening % elements on an array-like of length % is disallowed, as the total surpasses 2**53-1Pushing % elements on an array-like of length % is disallowed, as the total surpasses 2**53-1Rest element must be last elementSetter function argument must not be a rest parameterDuplicate parameter name not allowed in this contextFunction arg string contains parenthesisArg string terminates parameters earlyUnexpected end of arg stringRest parameter may not have a default initializerRuntime function given wrong number of argumentsMust call super constructor in derived class before accessing 'this' or returning from derived constructorSingle function literal requiredIn non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.object.constructor[Symbol.species] is not a constructorDelete of an unqualified identifier in strict mode.Unexpected eval or arguments in strict modeIn strict mode code, functions can only be declared at top level or inside a block.Octal literals are not allowed in strict mode.Decimals with leading zeros are not allowed in strict mode.Octal escape sequences are not allowed in strict mode.Strict mode code may not include a with statementOctal escape sequences are not allowed in template strings.'this' is not a valid formal parameter name'await' is not a valid identifier name in an async functionIllegal await-expression in formal parameters of async functionToo many arguments in function call (only 65535 allowed)Too many parameters in function definition (only 65535 allowed)Literal containing too many nested spreads (up to 65534 allowed)Too many variables declared (only 4194303 allowed)Too many elements passed to Promise.allDerived TypedArray constructor created an array which was too smallUnexpected end of inputUnexpected reserved wordUnexpected strict mode reserved word'super' keyword unexpected herenew.target expression is not allowed hereUnexpected template stringUnexpected token %Unexpected identifierUnexpected numberUnexpected stringUnexpected regular expressionLexical declaration cannot appear in a single-statement contextUndefined label '%'The requested module '%' does not provide an export named '%'missing ) after argument listInvalid regular expression: missing /Unterminated template literalMissing } in template expressionFound non-callable @@hasInstanceInvalid hexadecimal escape sequenceInvalid Unicode escape sequenceUndefined Unicode code-pointYield expression not allowed in formal parameterPossible side-effect in debug-evaluateURI malformedunreachablememory access out of boundsdivide by zerodivide result unrepresentableremainder by zerofloat unrepresentable in integer rangeinvalid index into function tablefunction signature mismatchwasm function signature contains illegal typewasm exceptionInvalid asm.js: %Converted asm.js to WebAssembly: %Instantiated asm.js: %Linking failure in asm.js: %% could not be cloned.Data cannot be cloned, out of memory.An ArrayBuffer is neutered and could not be cloned.A SharedArrayBuffer could not be cloned. SharedArrayBuffer must not be transferred.Unable to deserialize cloned data.Unable to deserialize cloned data due to invalid or unsupported version.Trace event category must be a string.Trace event name must be a string.Trace event name must not be an empty string.Trace event phase must be a number.Trace event id must be a number.Error.prototype.toStringunknown source#<%s><%s>Map= []: @ (get: , set: %p is not within the current isolate's large object or code spaces No code object found containing %p invalid table size......[object Unknown]JSObject::CreateDataProperty(&it, prop_value, kThrowOnError) .FromJust()[cleared][weak] !!!INVALID CONSTRUCTOR!!!!!!INVALID SHARED ON CONSTRUCTOR!!!} ( maps[migrating to slow] [migrating]:%s->%s {symbol %p}elements_kind[%i->%i]!!!INVALID POINTER!!!!!!INVALID MAP!!!, side_effect_free= false> callable=receiver->IsJSFunction()thxMoving prototype_info %p from map %p to map %p. new_map->is_dictionary_map()ForceSetPrototypeDeprecate../deps/v8/src/objects.cc:4518field type generalizationtyped elements writeelements writeAddDataProperty(&it, value, attributes, kThrowOnError, CERTAINLY_NOT_STORE_FROM_KEYED) .IsJust()SlowToFastk->IsUniqueName()Object.definePropertysuccess.FromJust()Object.definePropertiesstatus.FromJust()old_len_desc.value()->ToArrayLength(&old_len)uint32_v->ToArrayLength(output)a->length()->ToArrayLength(&actual_new_len)PreventExtensionsGetPropertyAttributes(&it).IsJust()NormalizeImmutablePrototypeTransitionReplaceDescriptorsCopyAsElementsKindCopyForTransitionMapCreateTooManyFastPropertiesGenAll_AttributesMismatchProtoMapTransitionToAccessorFromNonPairTransitionToDifferentAccessorAccessorsOverwritingNonLastAccessorsOverwritingNonAccessorsAccessorsWithAttributesAccessorsOverwritingNonPairAccessorsOverwritingAccessorsTooManyAccessorsCopyAddDescriptorCopyReplaceDescriptorString.prototype.indexOfString.prototype.lastIndexOf ** Not marking -- already in optimization queue. ** Marking for concurrent recompilation. NormalizeAsPrototypeOptimizeAsPrototypeCopyAsPrototypeRegistering %p as a user of prototype %p (map=%p). Unregistering %p as a user of prototype %p. SetPrototypeInitialMapprototype->IsJSReceiver()async function* function* async function function anonymousfun->function_literal_id() != FunctionLiteral::kIdTypeInvalidfun->function_literal_id() < shared_function_infos()->length()FixedArrayOfWeakCells::cast(list)->Remove(shared)max_nof_fields <= JSObject::kMaxInObjectPropertiesstatic_cast(requested_embedder_fields) <= static_cast(max_nof_fields)*in_object_properties == ((*instance_size - header_size) >> kPointerSizeLog2) - requested_embedder_fieldsstatic_cast(*instance_size) <= static_cast(JSObject::kMaxInstanceSize)... [disabled optimization for , reason: %s] ClearTypeFeedbackInfo, %s INTERPRETED_FUNCTIONDeoptimization Input Data invalidated by lazy deoptimization Inlined functions (count = Deoptimization Input Data (deopt points = index bytecode-offset pc commands {frame count=, js frame count=, update_feedback_count= {bytecode_offset=, function=, height={bailout_id={function={input= (unsigned)} (bool)}{literal_id=)}{object_index={arguments_type={length={feedback={vector_index=, slot=kind = major_key = minor_key = name = stack_slots = compiler = turbofanaddress = Body (size = Instructions (size = Source positions: pc offset position statementSafepoints (size = (sp -> fp) argc: Handler Table (size = RelocInfo (size = UnwindingInfo (size = Parameter count Frame size S> E> {: @ }Constant pool (size = [marking dependent code 0x%08x (opt #%d) for deoptimization, reason: %s] transitionprototype-checkproperty-cell-changedfield-ownerinitial-map-changedallocation-site-tenuring-changedallocation-site-transition-changedTransitionToPrototypeJSArray::cast(*object)->length()->ToArrayLength(&old_length)undecideddon't tenuremaybe tenuretenurezombieLookupIterator::ACCESSOR == it.state()array->length()->ToArrayLength(&length)IsSmi() || heap_byte_length->IsHeapNumber()(isolate->array_buffer_allocator()) != nullptris_suspended()length == propertiesaccessor-getteraccessor-setterinterceptor-indexed-getterinterceptor-named-getterresult->ToInt32(&value)interceptor-indexed-setinterceptor-named-setEVAL_SCOPEFUNCTION_SCOPEMODULE_SCOPESCRIPT_SCOPECATCH_SCOPEBLOCK_SCOPEWITH_SCOPEis_prototype_map()static_cast(value) < JSObject::kFieldsAddedinterceptor-indexed-deleterinterceptor-named-deleterinterceptor-indexed-defineinterceptor-named-definev8::IndexedPropertyDescriptorCallbackv8::NamedPropertyDescriptorCallbackInvalid property descriptor.interceptor-indexed-descriptorinterceptor-named-descriptor0 <= max_slackInvalidating prototype map %p 's cell SetInstancePrototypeconstructor_initial_map->UsedInstanceSize() <= instance_size() { [native code] }CopyForPreventExtensionsSlowPreventExtensionsSlowCopyForPreventExtensionsboilerplate->length()->ToArrayLength(&length)AllocationSite: JSArray %p boilerplate %supdated %s->%s (nested)AllocationSite: JSArray %p site updated %s->%s ...carry + high == 00123456789abcdefghijklmnopqrstuvwxyzCoverage info ({anonymous}):*dict == *dictionary../deps/v8/src/objects/module.cc:465../deps/v8/src/objects/module.cc:697../deps/v8/src/objects/module.cc:875JSModuleNamespacekey->IsName()STACKCONTEXTUNUSED%s%.*llx\u%04x\u{%06x}../deps/v8/src/parsing/parse-info.cc:20disabled-by-default-v8.runtime_statsV8.RuntimeStatsruntime-call-statsV8.ParseProgramparse-evalparse-scriptV8.ParseFunctionparse-functionstack_overflow()../deps/v8/src/parsing/parser.cc:2593preparse-no-resolutionpreparse-resolutionfull-parseV8.PreParseuse strictnew.targetimport.meta.class-field-ILLEGALarrow functionfor-await-ofdestructuringconstfor-offor-inscope_data_->RemainingBytes() >= kSkippableFunctionDataSizestart_position == start_position_from_datachildren->length() > child_index_magic_value_from_data == kMagicValuestart_position_from_data == scope->start_position()end_position_from_data == scope->end_position()scope_data_->RemainingBytes() >= kUint8Size(closure_scope()) != nullptrsourceURLsourceMappingURLEOSLPARENRPARENLBRACKRBRACKLBRACERBRACECOLONSEMICOLONPERIODELLIPSISCONDITIONALINCDECARROWINITASSIGNASSIGN_BIT_ORASSIGN_BIT_XORASSIGN_BIT_ANDASSIGN_SHLASSIGN_SARASSIGN_SHRASSIGN_ADDASSIGN_SUBASSIGN_MULASSIGN_DIVASSIGN_MODASSIGN_EXPCOMMAORANDBIT_ORBIT_XORBIT_ANDSHLSARSHRADDSUBMULDIVMODEQNEEQ_STRICTNE_STRICTLTGTLTEGTEINSTANCEOFINNOTBIT_NOTTYPEOFVOIDBREAKCASECATCHCONTINUEDEBUGGERDOELSEFINALLYFORFUNCTIONIFNEWRETURNSWITCHTHISTHROWTRYVARWHILEWITHNULL_LITERALTRUE_LITERALFALSE_LITERALNUMBERSMISTRINGBIGINTIDENTIFIERPRIVATE_NAMEFUTURE_STRICT_RESERVED_WORDASYNCAWAITCLASSCONSTEXPORTEXTENDSIMPORTLETSTATICYIELDSUPERESCAPED_KEYWORDESCAPED_STRICT_RESERVED_WORDWHITESPACEUNINITIALIZEDREGEXP_LITERALTEMPLATE_SPANTEMPLATE_TAILOFTARGETMETAFROMNAMEPROTO_UNDERSCOREDCONSTRUCTORPRIVATE_CONSTRUCTORPROTOTYPEEVALARGUMENTSUNDEFINEDANONYMOUS;?++=>=init|=^=&=<<=>>=>>>=+=-=*=/=%=**=||&&&<<>>>>>**==!====!==<=>=instanceofin!typeofvoidbreakcasecontinuedoelseifthistrywhilewithawaitclassenumexportextendsimportletstaticyieldsupertargetmetaas__proto__#constructorevalw+from->IsBytecodeArray()v8:ProfEvntProcnative V8RuntimeCpuProfiler::StartProfiling(head_) != nullptr(n) != nullptr%6zu @%6u %*c %s%s: %s %.40s " $!!! unknown edge type: %d /hidden//object//closure//string//code//array//regexp//number//native//synthetic//concatenated string//sliced string//symbol//bigint/???(GC roots)Move object from %p to %p old size %6d new size %6d Update object size : %p with old size %d and new size %d Begin HeapObjectsMap::UpdateHeapObjectsMap. map has %d entries. Update object : %p %6d. Next address is %p End HeapObjectsMap::UpdateHeapObjectsMap. map has %d entries. native_bind%s / %s(concatenated string)(sliced string)private symbolsymbolbigintsystem / NativeContextsystem / Contextnumbersystem / Map (String)system / Map (OneByteString)system / Map (ConsString)system / Map (ConsOneByteString)system / Map (SlicedString)system / Map (SlicedOneByteString)system / Map (ExternalString)system / Map (ExternalOneByteString)system / Map (ExternalStringWithOneByteData)system / Map (ShortExternalString)system / Map (ShortExternalOneByteString)system / Map (ShortExternalStringWithOneByteData)system / Map (InternalizedString)system / Map (OneByteInternalizedString)system / Map (ExternalInternalizedString)system / Map (ExternalOneByteInternalizedString)system / Map (ExternalInternalizedStringWithOneByteData)system / Map (ShortExternalInternalizedString)system / Map (ShortExternalOneByteInternalizedString)system / Map (ShortExternalInternalizedStringWithOneByteData)system / Map (ThinString)system / Map (ThinOneByteString)system / Mapsystem / Cellsystem / PropertyCellsystem / Foreignsystem / Oddballsystem / AccessCheckInfosystem / AccessorInfosystem / AccessorPairsystem / AliasedArgumentsEntrysystem / AllocationMementosystem / AllocationSitesystem / AsyncGeneratorRequestsystem / DebugInfosystem / FunctionTemplateInfosystem / InterceptorInfosystem / InterpreterDatasystem / ModuleInfoEntrysystem / Modulesystem / ObjectTemplateInfosystem / PromiseCapabilitysystem / PromiseReactionsystem / PrototypeInfosystem / Scriptsystem / StackFrameInfosystem / Tuple2system / Tuple3system / WasmCompiledModulesystem / WasmDebugInfosystem / WasmExportedFunctionDatasystem / WasmSharedModuleDatasystem / CallableTasksystem / CallbackTasksystem / PromiseFulfillReactionJobTasksystem / PromiseRejectReactionJobTasksystem / PromiseResolveThenableJobTasksystemnative_context(bound arguments)bindingsbound_thisbound_functionbound_argument_%dinitial_map(function feedback cell)feedback_cell(shared function info)shared(context)global_proxy(object properties)properties(object elements)elementsfirstparentactualscope_infopreviousextension(context norm. map cache)(context data)optimized_code_listdeoptimized_code_list(prototype transitions)(transition array)transitions(transition)prototype_info(map descriptors)descriptors(back pointer)back_pointer(constructor function data)constructor_function_data(dependent code)dependent_code(weak cell)weak_cell_cache(code for %s)(%s code)(function scope info)name_or_scope_infofunction_datadebug_infofunction_identifierraw_outer_scope_info_or_feedback_metadatacontext_data(script line ends)line_endsexpected_receiver_typegettersetter(%s builtin)(code relocation info)relocation_info(code deopt data)deoptimization_data(source position table)source_position_table(feedback cell)transition_infonested_sitebacking_storereactions_or_resultkey %s in WeakMapoptimized codeget %sset %sfree_space_mapone_pointer_filler_maptwo_pointer_filler_mapuninitialized_valueundefined_valuethe_hole_valuenull_valuetrue_valuefalse_valueempty_stringmeta_mapbyte_array_mapfixed_array_mapfixed_cow_array_maphash_table_mapsymbol_mapone_byte_string_mapone_byte_internalized_string_mapscope_info_mapshared_function_info_mapcode_mapfunction_context_mapcell_mapweak_cell_mapglobal_property_cell_mapforeign_mapheap_number_maptransition_array_mapfeedback_vector_mapempty_scope_infoempty_fixed_arrayempty_descriptor_arrayarguments_markertermination_exceptionoptimized_outstale_registernative_context_mapmodule_context_mapeval_context_mapscript_context_mapblock_context_mapcatch_context_mapwith_context_mapdebug_evaluate_context_mapscript_context_table_mapfeedback_metadata_maparray_list_mapbigint_mapboilerplate_description_mapbytecode_array_mapcode_data_container_mapdescriptor_array_mapexternal_mapfixed_double_array_mapglobal_dictionary_mapmany_closures_cell_mapmessage_object_mapmodule_info_mapmutable_heap_number_mapname_dictionary_mapno_closures_cell_mapnumber_dictionary_mapone_closure_cell_mapordered_hash_map_mapordered_hash_set_mapproperty_array_mapside_effect_call_handler_info_mapside_effect_free_call_handler_info_mapnext_call_side_effect_free_call_handler_info_mapsimple_number_dictionary_mapsloppy_arguments_elements_mapsmall_ordered_hash_map_mapsmall_ordered_hash_set_mapstring_table_mapweak_fixed_array_mapweak_array_list_mapnative_source_string_mapstring_mapcons_one_byte_string_mapcons_string_mapthin_one_byte_string_mapthin_string_mapsliced_string_mapsliced_one_byte_string_mapexternal_string_mapexternal_string_with_one_byte_data_mapexternal_one_byte_string_mapshort_external_string_mapshort_external_string_with_one_byte_data_mapinternalized_string_mapexternal_internalized_string_mapexternal_internalized_string_with_one_byte_data_mapexternal_one_byte_internalized_string_mapshort_external_internalized_string_mapshort_external_internalized_string_with_one_byte_data_mapshort_external_one_byte_internalized_string_mapshort_external_one_byte_string_mapfixed_uint8_array_mapfixed_int8_array_mapfixed_uint16_array_mapfixed_int16_array_mapfixed_uint32_array_mapfixed_int32_array_mapfixed_float32_array_mapfixed_float64_array_mapfixed_uint8_clamped_array_mapfixed_biguint64_array_mapfixed_bigint64_array_mapundefined_mapthe_hole_mapnull_mapboolean_mapuninitialized_maparguments_marker_mapexception_maptermination_exception_mapoptimized_out_mapstale_register_mapself_reference_marker_mapempty_enum_cacheempty_property_arrayempty_byte_arrayempty_boilerplate_descriptionempty_fixed_uint8_arrayempty_fixed_int8_arrayempty_fixed_uint16_arrayempty_fixed_int16_arrayempty_fixed_uint32_arrayempty_fixed_int32_arrayempty_fixed_float32_arrayempty_fixed_float64_arrayempty_fixed_uint8_clamped_arrayempty_fixed_biguint64_arrayempty_fixed_bigint64_arrayempty_scriptmany_closures_cellempty_sloppy_arguments_elementsempty_slow_element_dictionaryempty_ordered_hash_mapempty_ordered_hash_setempty_feedback_metadataempty_property_cellempty_weak_cellinvalid_prototype_validity_cellnoop_interceptor_infoempty_weak_fixed_arrayempty_weak_array_listarray_constructor_protectorno_elements_protectoris_concat_spreadable_protectorarray_species_protectortyped_array_species_protectorpromise_species_protectorstring_length_protectorarray_iterator_protectorarray_buffer_neutering_protectorpromise_hook_protectorpromise_resolve_protectorpromise_then_protectornan_valuehole_nan_valueinfinity_valueminus_zero_valueminus_infinity_valuenumber_string_cachesingle_character_string_cachestring_split_cacheregexp_multiple_cacheempty_property_dictionarypublic_symbol_tableapi_symbol_tableapi_private_symbol_tablescript_listmaterialized_objectsmicrotask_queuedetached_contextsretaining_path_targetsretained_mapsbuiltins_constants_tablefeedback_vectors_for_profiling_toolsweak_stack_trace_listnoscript_shared_function_infosserialized_global_proxy_sizesdeserialize_lazy_handlerdeserialize_lazy_handler_widedeserialize_lazy_handler_extra_widejs_entry_codejs_construct_entry_codejs_run_microtasks_entry_codeaccess_check_info_mapaccessor_info_mapaccessor_pair_mapaliased_arguments_entry_mapallocation_memento_mapallocation_site_mapasync_generator_request_mapdebug_info_mapfunction_template_info_mapinterceptor_info_mapinterpreter_data_mapmodule_info_entry_mapmodule_mapobject_template_info_mappromise_capability_mappromise_reaction_mapprototype_info_mapscript_mapstack_frame_info_maptuple2_maptuple3_mapwasm_compiled_module_mapwasm_debug_info_mapwasm_exported_function_data_mapwasm_shared_module_data_mapcallable_task_mapcallback_task_mappromise_fulfill_reaction_job_task_mappromise_reject_reaction_job_task_mappromise_resolve_thenable_job_task_mapload_handler1_mapload_handler2_mapload_handler3_mapstore_handler0_mapstore_handler1_mapstore_handler2_mapstore_handler3_mapadd_stringanonymous_function_stringanonymous_stringapply_stringArguments_stringarguments_stringarguments_to_stringArray_stringarray_to_stringArrayBuffer_stringArrayIterator_stringassign_stringasync_stringawait_stringBigInt_stringbigint_stringBigInt64Array_stringBigUint64Array_stringbind_stringBoolean_stringboolean_stringboolean_to_stringbound__stringbuffer_stringbyte_length_stringbyte_offset_stringcall_stringcallee_stringcaller_stringcell_value_stringchar_at_stringclosure_stringcolumn_stringCompileError_stringconfigurable_stringconstruct_stringconstructor_stringcreate_stringcurrency_stringDate_stringdate_to_stringday_stringdayperiod_stringdecimal_stringdefault_stringdefineProperty_stringdeleteProperty_stringdid_handle_stringdisplay_name_stringdone_stringdot_catch_stringdot_for_stringdot_generator_object_stringdot_iterator_stringdot_result_stringdot_stringdot_switch_tag_stringdotAll_stringenqueue_stringentries_stringenumerable_stringera_stringError_stringeval_stringEvalError_stringexec_stringfalse_stringflags_stringFloat32Array_stringFloat64Array_stringfraction_stringFunction_stringfunction_native_code_stringfunction_stringfunction_to_stringGenerator_stringget_space_stringget_stringgetOwnPropertyDescriptor_stringgetOwnPropertyDescriptors_stringgetPrototypeOf_stringglobal_stringgroup_stringgroups_stringhas_stringhour_stringignoreCase_stringillegal_access_stringillegal_argument_stringindex_stringInfinity_stringinfinity_stringinput_stringInt16Array_stringInt32Array_stringInt8Array_stringinteger_stringisExtensible_stringisView_stringKeyedLoadMonomorphic_stringKeyedStoreMonomorphic_stringkeys_stringlastIndex_stringlength_stringlet_stringline_stringLinkError_stringliteral_stringMap_stringMapIterator_stringmessage_stringminus_Infinity_stringminus_zero_stringminusSign_stringminute_stringModule_stringmonth_stringmultiline_stringname_stringNaN_stringnan_stringnative_stringnew_target_stringnext_stringNFC_stringNFD_stringNFKC_stringNFKD_stringnot_equalnull_stringnull_to_stringNumber_stringnumber_stringnumber_to_stringObject_stringobject_stringone_stringownKeys_stringpercentSign_stringplusSign_stringposition_stringpreventExtensions_stringPromise_stringpromise_stringPromiseResolveThenableJob_stringproto_stringprototype_stringproxy_stringProxy_stringquery_colon_stringRangeError_stringraw_stringReconfigureToDataProperty_stringReferenceError_stringRegExp_stringregexp_to_stringreject_stringresolve_stringreturn_stringrevoke_stringRuntimeError_stringScript_stringscript_stringsecond_stringset_space_stringSet_stringset_stringSetIterator_stringsetPrototypeOf_stringSharedArrayBuffer_stringsource_stringsourceText_stringstack_stringstackTraceLimit_stringstar_default_star_stringsticky_stringString_stringstring_stringstring_to_stringsymbol_species_stringSymbol_stringsymbol_stringSyntaxError_stringthen_stringthis_function_stringthis_stringthrow_stringtimed_outtimeZoneName_stringtoJSON_stringtoString_stringtrue_stringTypeError_stringtype_stringUint16Array_stringUint32Array_stringUint8Array_stringUint8ClampedArray_stringundefined_stringundefined_to_stringunicode_stringURIError_stringuse_asm_stringuse_strict_stringvalue_stringvalueOf_stringvalues_stringWeakMap_stringWeakSet_stringweekday_stringwill_handle_stringwritable_stringyear_stringzero_stringarguments_iterator_accessorarray_length_accessorbound_function_length_accessorbound_function_name_accessorerror_stack_accessorfunction_arguments_accessorfunction_caller_accessorfunction_name_accessorfunction_length_accessorfunction_prototype_accessorscript_column_offset_accessorscript_compilation_type_accessorscript_context_data_accessorscript_eval_from_script_accessorscript_eval_from_script_position_accessorscript_eval_from_function_name_accessorscript_id_accessorscript_line_offset_accessorscript_name_accessorscript_source_accessorscript_type_accessorscript_source_url_accessorscript_source_mapping_url_accessorstring_length_accessor!strong_gc_subroot_names_.is_empty()%s / %d entriesnative"snapshot":{"nodes":[], "edges":["trace_function_infos":["trace_tree":["samples":["strings":["meta":{"node_fields":["type","name","id","self_size","edge_count","trace_node_id"],"node_types":[["hidden","array","string","object","code","closure","regexp","number","native","synthetic","concatenated string","sliced string","symbol","bigint"],"string","number","number","number","number","number"],"edge_fields":["type","name_or_index","to_node"],"edge_types":[["context","element","property","internal","hidden","shortcut","weak"],"string_or_number","node"],"trace_function_info_fields":["function_id","name","script_name","script_id","line","column"],"trace_node_fields":["id","function_info_index","count","size","children"],"sample_fields":["timestamp_us","last_assigned_id"]},"node_count":,"edge_count":,"trace_function_count":""system / JSArrayBufferData%d / %s%s %s!disposed_\u(program)(idle)(garbage collector)(unresolved function)%5u %*s %s:%d %d #%d %s:%d%*s;;; deopted at script_id: %d position: %zu with reason '%s'. %*s;;; Inline point: script_id %d position: %zu. %*s bailed out due to '%s' (root)disabled-by-default-v8.cpu_profilerProfilecpuProfilenodessamplestimeDeltasProfileChunkendTime[Top down]: %p %5d %s callFramescriptIdlineNumbercolumnNumberno reasondeoptReasonRegExp: rate_ > 0u(GC)(PARSER)(COMPILER)(BYTECODE_COMPILER)(V8 API)(EXTERNAL)(IDLE)(JS)(deopt)%s%sdisabled-by-default-v8.cpu_profiler.hiresresult.IsJust() && result.FromJust()W_const accessor, dict_index: field descriptor, p: ../deps/v8/src/regexp/jsregexp.cc:137../deps/v8/src/regexp/jsregexp.cc:327Stack overflowRegExp too big(|(:@^i@$i@^l@$l@b@B(!(# - g p n (^ (?: <-(<- Regular expression too largeUnterminated groupUnmatched ')'Nothing to repeat\ at end of patternInvalid property nameInvalid escapeInvalid decimal escapeInvalid unicode escapeLone quantifier bracketsnumbers out of order in {} quantifierIncomplete quantifierInvalid quantifierInvalid groupMultiple dashes in flag groupRepeated flag in flag groupInvalid flag groupToo many capturesInvalid capture group nameDuplicate capture group nameInvalid named referenceInvalid named capture referencedInvalid class escapeInvalid property name in character classUnterminated character classInvalid character classRange out of order in character classs0s1s2s3s4s5s6s7s8s9s10s11s12s13s14s15s16s17s18s19s20s21s22s23s24s25s26s27s28s29s30s31d0d1d2d3d4d5d6d7d8d9d10d11d12d13d14d15d16d17d18d19d20d21d22d23d24d25d26d27d28d29d30d31q0q1q2q3q4q5q6q7q8q9q10q11q12q13q14q15r0r1r2r3r4r5r6r7r8r9r10fpsplrpcdo not optimizehot and stablesmall function[OSR - arming back edges in [function is already in optimization queue] [not yet optimizing , not enough ticks: %d/%d and ICs changed] too large for small function optimization: %d/%d] [marking for %s recompilation, reason: %s, ICs with typeinfo: %d/%d (%d%%), generic ICs: %d/%d (%d%%)[[TargetFunction]][[BoundThis]][[BoundArgs]]suspendedclosedrunning[[GeneratorStatus]][[GeneratorFunction]][[GeneratorReceiver]][[PromiseStatus]][[PromiseValue]][[Handler]][[Target]][[IsRevoked]][[PrimitiveValue]]V8.Runtime_Runtime_DebugBreakOnBytecodeV8.Runtime_Runtime_DebugBreakAtEntryargs[0]->IsJSFunction()V8.Runtime_Runtime_DebugApplyInstrumentationV8.Runtime_Runtime_HandleDebuggerStatementV8.Runtime_Runtime_ScheduleBreakV8.Runtime_Runtime_DebugGetInternalPropertiesV8.Runtime_Runtime_DebugGetPropertyDetailsargs[0]->IsJSObject()V8.Runtime_Runtime_DebugGetPropertyargs[1]->IsName()V8.Runtime_Runtime_DebugPropertyKindFromDetailsargs[0]->IsSmi()V8.Runtime_Runtime_DebugPropertyAttributesFromDetailsV8.Runtime_Runtime_CheckExecutionStateisolate->debug()->CheckExecutionState(break_id)V8.Runtime_Runtime_GetFrameCountV8.Runtime_Runtime_GetFrameDetailsfunction->shared()->IsSubjectToDebugging()V8.Runtime_Runtime_GetScopeCountargs[1]->IsSmi()V8.Runtime_Runtime_GetScopeDetailsV8.Runtime_Runtime_GetAllScopesDetailsV8.Runtime_Runtime_GetFunctionScopeCountargs[0]->IsJSReceiver()V8.Runtime_Runtime_GetFunctionScopeDetailsV8.Runtime_Runtime_GetGeneratorScopeCountargs[0]->IsJSGeneratorObject()V8.Runtime_Runtime_GetGeneratorScopeDetailsV8.Runtime_Runtime_SetScopeVariableValueV8.Runtime_Runtime_GetBreakLocationsisolate->debug()->is_active()V8.Runtime_Runtime_ChangeBreakOnExceptionV8.Runtime_Runtime_IsBreakOnExceptionV8.Runtime_Runtime_PrepareStepV8.Runtime_Runtime_ClearSteppingV8.Runtime_Runtime_DebugEvaluateargs[3]->IsString()V8.Runtime_Runtime_DebugEvaluateGlobalV8.Runtime_Runtime_DebugGetLoadedScriptsV8.Runtime_Runtime_DebugReferencedByfilter->IsUndefined(isolate) || filter->IsJSObject()max_references >= 0V8.Runtime_Runtime_DebugConstructedByV8.Runtime_Runtime_DebugGetPrototypeV8.Runtime_Runtime_DebugSetScriptSourceargs[0]->IsJSValue()script_wrapper->value()->IsScript()V8.Runtime_Runtime_FunctionGetInferredNameV8.Runtime_Runtime_FunctionGetDebugNameV8.Runtime_Runtime_GetDebugContextV8.Runtime_Runtime_CollectGarbageV8.Runtime_Runtime_GetHeapUsageV8.Runtime_Runtime_GetScriptV8.Runtime_Runtime_ScriptLineCountscript->value()->IsScript()V8.Runtime_Runtime_ScriptLocationFromLineopt_line->IsNumber()opt_column->IsNumber()V8.Runtime_Runtime_ScriptLocationFromLine2GetScriptById(isolate, scriptid, &script)V8.Runtime_Runtime_ScriptPositionInfoV8.Runtime_Runtime_ScriptPositionInfo2V8.Runtime_Runtime_DebugOnFunctionCallV8.Runtime_Runtime_DebugPrepareStepInSuspendedGeneratorV8.Runtime_Runtime_DebugPushPromiseV8.Runtime_Runtime_DebugPopPromiseV8.Runtime_Runtime_DebugAsyncFunctionPromiseCreatedV8.Runtime_Runtime_DebugIsActiveV8.Runtime_Runtime_DebugCollectCoverageV8.Runtime_Runtime_DebugTogglePreciseCoverageV8.Runtime_Runtime_DebugToggleBlockCoverageV8.Runtime_Runtime_IncBlockCounter[[IteratorHasMore]][[IteratorIndex]][[IteratorKind]]V8.Runtime_Runtime_ObjectKeysV8.Runtime_Runtime_ObjectHasOwnPropertyV8.Runtime_Runtime_AddDictionaryPropertyV8.Runtime_Runtime_ObjectCreateV8.Runtime_Runtime_GetPrototypeV8.Runtime_Runtime_InternalSetPrototype*function_map == function->map()V8.Runtime_Runtime_OptimizeObjectForAddingMultiplePropertiesOptimizeForAddingV8.Runtime_Runtime_ObjectValuesV8.Runtime_Runtime_ObjectValuesSkipFastPathV8.Runtime_Runtime_ObjectEntriesV8.Runtime_Runtime_ObjectEntriesSkipFastPathV8.Runtime_Runtime_GetPropertyV8.Runtime_Runtime_KeyedGetPropertyV8.Runtime_Runtime_AddNamedPropertyargs[3]->IsSmi()args.smi_at(3) & ~(READ_ONLY | DONT_ENUM | DONT_DELETE) == 0V8.Runtime_Runtime_AddElementkey->ToArrayIndex(&index)V8.Runtime_Runtime_SetPropertyargs[3]->ToInt32(&__tmp_language_mode)is_valid_language_mode(__tmp_language_mode)V8.Runtime_Runtime_DeletePropertyargs[2]->IsSmi()V8.Runtime_Runtime_ShrinkPropertyDictionaryV8.Runtime_Runtime_HasPropertyV8.Runtime_Runtime_GetOwnPropertyKeysV8.Runtime_Runtime_GetInterceptorInfoV8.Runtime_Runtime_ToFastPropertiesRuntimeToFastPropertiesV8.Runtime_Runtime_AllocateHeapNumberV8.Runtime_Runtime_NewObjectargs[1]->IsJSReceiver()V8.Runtime_Runtime_CompleteInobjectSlackTrackingForMapargs[0]->IsMap()V8.Runtime_Runtime_TryMigrateInstanceV8.Runtime_Runtime_DefineAccessorPropertyUnchecked!obj->IsNull(isolate)IsValidAccessor(isolate, getter)IsValidAccessor(isolate, setter)args[4]->IsSmi()args.smi_at(4) & ~(READ_ONLY | DONT_ENUM | DONT_DELETE) == 0V8.Runtime_Runtime_DefineDataPropertyInLiteralargs[4]->IsFeedbackVector()args[5]->IsSmi()!IsClassConstructor(function->shared()->kind()) implies *function_map == function->map()JSObject::DefineOwnPropertyIgnoreAttributes(&it, value, attrs, kDontThrow) .IsJust()V8.Runtime_Runtime_CollectTypeProfileargs[2]->IsFeedbackVector()V8.Runtime_Runtime_HasFastPackedElementsargs[0]->IsHeapObject()V8.Runtime_Runtime_ValueOfV8.Runtime_Runtime_IsJSReceiverV8.Runtime_Runtime_ClassOfV8.Runtime_Runtime_GetFunctionNameV8.Runtime_Runtime_DefineGetterPropertyUncheckedargs[2]->IsJSFunction()*getter_map == getter->map()V8.Runtime_Runtime_SetDataPropertiesV8.Runtime_Runtime_CopyDataPropertiesV8.Runtime_Runtime_CopyDataPropertiesWithExcludedPropertiesV8.Runtime_Runtime_DefineMethodsInternalisolate->bootstrapper()->IsActive()args[1]->IsJSFunction()did_get_descriptor.FromJust()V8.Runtime_Runtime_DefineSetterPropertyUnchecked*setter_map == setter->map()V8.Runtime_Runtime_ToObjectV8.Runtime_Runtime_ToPrimitiveV8.Runtime_Runtime_ToPrimitive_NumberV8.Runtime_Runtime_ToNumberV8.Runtime_Runtime_ToNumericV8.Runtime_Runtime_ToIntegerV8.Runtime_Runtime_ToLengthV8.Runtime_Runtime_ToStringV8.Runtime_Runtime_ToNameV8.Runtime_Runtime_SameValueV8.Runtime_Runtime_SameValueZeroV8.Runtime_Runtime_HasInPrototypeChainV8.Runtime_Runtime_CreateIterResultObjectV8.Runtime_Runtime_CreateDataPropertyV8.Runtime_Runtime_IterableToListCanBeElidedV8.Runtime_Runtime_GetOwnPropertyDescriptorV8.Runtime_Runtime_AddPrivateFieldargs[1]->IsSymbol()Object::AddDataProperty(&it, value, NONE, kDontThrow, Object::MAY_BE_STORE_FROM_KEYED) .FromJust()index >= 0;;; Safepoint table.BuiltinSerializerBuiltinOffsetspartial_snapshot_cache_indexSkipDistanceFromSerializeObjectV8.CompileSerialize[Serializing from[Serializing to %d bytes took %0.3f ms] SerializeBackReference(obj, how_to_code, where_to_point, skip)!obj->IsMap()!obj->IsJSGlobalProxy() && !obj->IsJSGlobalObject()obj->NeedsRehashing() implies obj->CanBeRehashed()!obj->IsJSFunction() && !obj->IsContext() Encoding code stub %s as attached reference %d [Cached code failed check] [Deserializing failed] [Deserializing from %d bytes took %0.3f ms] CodeSerializer Spaces (bytes): %16s%16zu%16d%16d new_internalized_strings().size() <= kMaxIntPartialSerializerembedder fields dataembedder field indexembedder fields data sizeUnknown external reference %p. Encoding heap object: 0 == bytes_processed_so_far_ Encoding deferred heap object: deferred object sizerepeat countSkipB4ExternalRefreference indexinternal ref addressinternal ref valueObjectSizeInWordsBytesOff-heap backing storeBackingStorebuffer->byte_length()->IsSmi()typed_array->byte_offset()->IsSmi()StringContent Encoding root %d:SkipInPutRootroot_indexBackRefValueAttachedRefIndex Encoding hot object %d:HotObjectSkipDistance Encoding attached reference %d Encoding back reference to: BackRefSkipDistance Encoding builtin reference: %s builtin_index%s: [Deserializing isolate (%d bytes) took %0.3f ms] [Deserializing context #%zu (%d bytes) took %0.3f ms] Lazy-deserializing builtin %s [Deserializing builtin %s (%d bytes) took %0.3f ms] Forcing eager builtin deserialization Lazy-deserializing handler %s [Deserializing handler %s (%d bytes) took %0.3f ms] Deserialization will reserve: %10d bytes per isolate %10d bytes per context #%zu Snapshot blob consists of: %10d bytes for startup %10d bytes for builtins %10d bytes for context #%d kNumberOfContextsOffset < data->raw_sizecontext_offset < static_cast(data->raw_size)kRehashabilityOffset < static_cast(data->raw_size)startup_offset < data->raw_sizebuiltin_offset < data->raw_sizebuiltin_offset > startup_offsetfrom_offset < data->raw_sizeto_offset < data->raw_sizeto_offset > from_offsetindex < num_contextskVersionStringOffset + kVersionStringLength < static_cast(data->raw_size)Version mismatch between V8 binary and snapshot. # V8 binary version: %.*s # Snapshot version: %.*s # The snapshot consists of %d bytes and contains %d context(s).position_ + size <= length_StartupDeserializerStartupSerializer(isolate->thread_manager()->FirstThreadStateInUse()) == nullptrisolate->handle_scope_implementer()->blocks()->empty()%s handle not serialized: eternal inlined at %o %d: %o ... %d: %3d 0x%02x '%c' ' ' ' ' ^%c==== Key ============================================ #%d# %p: value(): %o (Function context is outside heap) Security context: %o (Function context is corrupt) /* warning: 'function' was not a heap object */ /* warning: 'function' was not on the heap */ /* warning: function's map was not on the heap */ /* warning: function's map was not a valid map */ /* unresolved */ /* warning: no JSFunction object or function name found */ (aka new_nof <= kMaxNumberOfTransitionsinstance_type() >= FIRST_JS_RECEIVER_TYPEvalue->IsMap()GetBackPointer()->IsUndefined(GetIsolate())value->IsMap() implies Map::cast(value)->GetConstructor() == constructor_or_backpointer()[%d] [%d:%p] Cannot read from file %s. Cannot open file %s for writing. wb!platform_platform_../deps/v8/src/value-serializer.cc:186ValueDeserializer::ReadWasmModuleproperties.size() < std::numeric_limits::max()VectorSlotPair(VectorSlotPair(INVALID)-node.126.8.275.32-node.12 (candidate)%d.%d.%d.%d%s%s%d.%d.%d%s%s-candidatelibv8-%d.%d.%d.%d%s%s.solibv8-%d.%d.%d%s%s.so(Internalized strings)(External strings)(Strong roots)(Smi roots)(Bootstrapper)(Isolate)(Relocatable)(Debugger)(Compilation cache)(Handle scope)(Dispatch table)(Builtins)(Global handles)(Eternal handles)(Thread manager)(Extensions)(Code flusher)(Partial snapshot cache)(Weak collections)(Wrapper tracing)(Unknown)WasmLazyCompile!thrower.error()wasm::WasmCode::kLazyStub == lazy_stub->kind()promise_result.is_null() == isolate_->has_pending_exception()wasm://wasm/%08xwasm-%08x0 <= callee_posCompiling function #%d:%.*s failed: %s @+%uCompilation of #%d:%.*s failed.Imports argument must be present and must be an objectOut of memory: wasm globalsmemory->byte_length()->ToUint32(&mem_size)instance->memory_size() == mem_sizeinstance->memory_start() == memory->backing_store()table initializer is out of boundsdata segment is out of boundsCould not resolve module name for import %zuCould not resolve import name for import %zuCould not find value for import %zumissing imports objectnot a data propertyImport #%d module="%s" error: %smodule not foundmodule is not an object or functionimport not foundImport #%d module="%s" function="%s" error: %sfunction import requires a callableimported function does not match the expected typetable import requires a WebAssembly.Tabletable import %d is smaller than initial %d, got %utable import %d has no maximum length, expected %d table import %d has a larger maximum size %llx than the module's declared maximum %utable import %d[%d] is not a wasm functionmemory import must be a WebAssembly.Memory objectmemory import %d is smaller than initial %u, got %umemory import %d has no maximum limit, expected at most %umemory import %d has a larger maximum size %u than the module's declared maximum %umismatch in shared state of memory, declared = %d, imported = %dglobal import cannot have type i64imported global does not match the expected typeimported global does not match the expected mutabilityimported mutable global must be a WebAssembly.Global objectglobal import must be a number or WebAssembly.Global objectglobal import must be a numberOut of memory: wasm memory too largeOut of memory: wasm memoryexport of globals of type I64 is not allowed.export of %.*s failed.!obj->IsUndefined(isolate)AsyncCompileWasm decoding failed%s: %s @+%uTypeImportTableMemoryGlobalExportElementDatastart > endsize > maximum module size: %zusection namefunctions counttable sizeillegal asm function offset table sizelocals sizefunction start posbyte offset deltacall position deltato_number position deltabroken asm offset tableunexpected additional bytessection lengthname lengthinvalid section lengthname payload lengthfunction indexlocal names countnamings countlocal indexlocal nameend is less than start0 < lenunknown section code #0x%02xshorterlongersection was %s than expected size (%u bytes expected, %zu decoded)(module_) == nullptrsignaturesexpected magic word %02x %02x %02x %02x, found %02x %02x %02x %02xexpected version %02x %02x %02x %02x, found %02x %02x %02x %02xunexpected section: %sMultiple exception sections not allowedException section must appear before the code sectionsection was %s than expected size (%zu bytes expected, %zu decoded)types count%s of %u exceeds internal limit of %zutype formparam countreturn countexpected %s 0x%02x, got 0x%02xinvalid local typeimports countmodule namefield nameelement typeelement countmemorypagesmutable globals cannot be importedunknown import kind 0x%02xsignature indexsignature index %u out of bounds (%d signatures)At most one table is supportedinvalid %s limits flags%s limits flags should have maximum defined if shared is trueinitial sizeinitial %s size (%u %s) is larger than implementation limit (%u)maximum sizemaximum %s size (%u %s) is larger than implementation limit (%u)maximum %s size (%u %s) is less than initial (%u %s)At most one memory is supportedinvalid mutabilitytable counttable typetable elementsmemory countglobals countinvalid global index in init expression, index %u, other_index %utype mismatch in global initialization (from global #%u), expected %s, got %stype error in global initialization, expected %s, got %sglobal index is out of boundsonly immutable imported globals can be used in initializer expressionsinvalid opcode in initialization expressionend opcodetype error in init expression, expected %s, got %sglobal indexexpected %sextra bits in varintimmi32immf32immi64immf64i32i64f32f64s128exports countmemory indexinvalid memory index != 0mutable globals cannot be exportedinvalid export kind 0x%02xDuplicate export name '%.*s' for %s %d and %s %d%s %u out of bounds (%d entr%s)iestable indexinvalid start function: non-zero parameter or return countbody sizesize %u > maximum function size %zuThe element section requires a tableillegal table index %u != 0out of bounds table index %unumber of elementsdata segments countcannot load data without memorylinear memory indexsource sizename type if not varuint7exception countin function function body count %u mismatch (%u expected)string length%s: no valid UTF-8 stringsize > maximum function size: %zuexpected %u bytes, fell off end!frozen_function size > maximum function size: < HasTrapHandlerIndex()0 <= index--- Wasm code --- name: index: kind: compiler: Liftoffwasm functionwasm-to-jslazy-compileinterpreter entrytrampolineunknown kindtrap_handler_index() < static_cast(std::numeric_limits::max())NativeModule::AddOwnedCodewasm_code->trap_handler_index() < static_cast(std::numeric_limits::max())WasmCodeManager::NewNativeModulecall indexc-wasm-entryExceptionResult::UNWOUND == resultmemory_buffer->byte_length()->ToUint32(&byte_length)localsarg#%dlocal#%dlen > 0 && len < value.length()%lld!result.failed()result.is_null() == isolate->has_pending_exception()WasmCompile../deps/v8/src/wasm/wasm-interpreter.cc:27040 == idUnknown or unimplemented opcode #%d:%sInternalBreakpoint../deps/v8/src/wasm/wasm-interpreter.cc:664WebAssemblyvalidatecompileStreaminginstantiateStreamingModuleimportscustomSectionsWebAssembly.ModuleInstanceWebAssembly.InstancegrowWebAssembly.TableWebAssembly.MemoryWebAssembly.GlobalWebAssembly.compile()Wasm code generation disallowed by embedderArgument 0 must be a buffer sourceBufferSource argument is emptybuffer source exceeds maximum size of %zu (is %zu)WebAssembly.validate()WebAssembly.instantiate()Argument 0 must be a buffer source or a WebAssembly.Module objectArgument 1 must be an objectinstanceret->CreateDataProperty(context, instance_name, instance).IsJust()ret->CreateDataProperty(context, module_name, module).IsJust()WebAssembly InstantiationArgument 0 must be a WebAssembly.Module objectWebAssembly.compileStreaming()WebAssembly.Module()WebAssembly.Module must be invoked with 'new'WebAssembly.Module.imports()Argument 0 must be a WebAssembly.ModuleWebAssembly.Module.exports()WebAssembly.Module.customSections()WebAssembly.Instance()WebAssembly.Instance must be invoked with 'new'WebAssembly.Instance.exports()Receiver is not a %sWebAssembly.Table must be invoked with 'new'Argument 0 must be a table descriptorelementanyfuncDescriptor property 'element' must be 'anyfunc'initialProperty value %lld is below the lower bound %llxProperty value %lld is above the upper bound %lluWebAssembly.Table.length()WebAssembly.Table.grow()trying to shrink tablemaximum table size exceededWebAssembly.Table.get()index out of boundsWebAssembly.Table.set()Argument 1 must be null or a WebAssembly functionWebAssembly.Memory()WebAssembly.Memory must be invoked with 'new'Argument 0 must be a memory descriptorIf shared is true, maximum property should be defined.could not allocate memoryStatus of setting SetIntegrityLevel of buffer is false.WebAssembly.Memory.grow()This memory cannot be growntrying to shrink memorymaximum memory size exceededUnable to grow instance memory.WebAssembly.Memory.bufferWebAssembly.Global()WebAssembly.Global must be invoked with 'new'Argument 0 must be a global descriptormutableDescriptor property 'type' must be 'i32', 'f32', or 'f64'WebAssembly.Global.valueOf()Can't get the value of i64 WebAssembly.Globalget WebAssembly.Global.valueset WebAssembly.Global.valueCan't set the value of an immutable global.Can't set the value of i64 WebAssembly.GlobalFreePages(empty_backing_store_.allocation_base, empty_backing_store_.allocation_length)find_result != allocations_.end()FreePages(allocation.allocation_base, allocation.allocation_length)could not allocate wasm memoryTryAllocateBackingStoreWasmExceptionValuesBoundsCheck(ref.offset(), ref.length())out of memory allocating custom section data!compiled_module->has_prev_instance()!compiled_module->has_next_instance()!compiled_module->has_instance()buffer->byte_length()->ToUint32(&mem_size)array_buffer()->byte_length()->ToUint32(&byte_length)old_buffer->byte_length()->ToUint32(&old_size)buffer->byte_length()->ToUint32(&buffer_size)offset + type_size <= buffer_sizeinstance_count >= 0(prev == nullptr && !current_instance->has_prev_instance()) || current_instance->prev_instance() == prevcurrent_instance->weak_owning_instance() ->value() ->IsWasmInstanceObject()found_instances <= instance_countfound_instances == instance_count../deps/v8/src/wasm/wasm-objects.cc:1298i32.eqzi64.eqzf32.eqf64.eqi32.eqi64.eqf32.nef64.nei32.nei64.nef32.addf64.addi32.addi64.addf32.subf64.subi32.subi64.subf32.mulf64.muli32.muli64.mulf32.ltf64.lti32.lt_si64.lt_si32.lt_ui64.lt_uf32.gtf64.gti32.gt_si64.gt_si32.gt_ui64.gt_uf32.lef64.lei32.le_si64.le_si32.le_ui64.le_uf32.gef64.gei32.ge_si64.ge_si32.ge_ui64.ge_ui32.clzi64.clzi32.ctzi64.ctzi32.popcnti64.popcntf32.divf64.divi32.div_si64.div_si32.div_ui64.div_ui32.rem_si64.rem_si32.rem_ui64.rem_ui32.andi64.andi32.ori64.ori32.xori64.xori32.shli64.shli32.shr_si64.shr_si32.shr_ui64.shr_ui32.roli64.roli32.rori64.rorf32.absf64.absf32.negf64.negf32.ceilf64.ceilf32.floorf64.floorf32.truncf64.truncf32.nearestf64.nearestf32.sqrtf64.sqrtf32.minf64.minf32.maxf64.maxf32.copysignf64.copysignref.nullref.is_nullref.eqi32.wrap/i64i32.trunc_u/f32i64.trunc_u/f32i32.trunc_s/f32i64.trunc_s/f32i32.trunc_u/f64i64.trunc_u/f64i32.trunc_s/f64i64.trunc_s/f64i32.trunc_u:sat/f32i32.trunc_s:sat/f32i32.trunc_u:sat/f64i32.trunc_s:sat/f64i64.trunc_u:sat/f32i64.trunc_s:sat/f32i64.trunc_u:sat/f64i64.trunc_s:sat/f64i64.extend_u/i32i64.extend_s/i32f32.convert_u/i32f32.convert_s/i32f32.convert_u/i64f32.convert_s/i64f32.demote/f64f64.convert_u/i32f64.convert_s/i32f64.convert_u/i64f64.convert_s/i64f64.promote/f32i32.reinterpret/f32i64.reinterpret/f64f32.reinterpret/i32f64.reinterpret/i64i32.sign_extend8i64.sign_extend8i32.sign_extend16i64.sign_extend16i64.sign_extend32nopblockloopbrbr_ifbr_tablecall_indirectdropselectget_localset_localtee_localget_globalset_globalf32.constf64.consti32.consti64.constcurrent_memorygrow_memoryf32.loadf64.loadi32.loadi64.loadi32.load8_si64.load8_si32.load8_ui64.load8_ui32.load16_si64.load16_si32.load16_ui64.load16_ui64.load32_si64.load32_us128.load128f32.storef64.storei32.storei64.storei32.store8i64.store8i32.store16i64.store16i64.store32s128.store128rethrowcatch_allf64.acosf64.asinf64.atanf64.cosf64.sinf64.tanf64.expf64.logf64.atan2f64.powf64.modf32.asmjs_loadf64.asmjs_loadi32.asmjs_load8_si32.asmjs_load8_ui32.asmjs_load16_si32.asmjs_load16_ui32.asmjs_load32i32.asmjs_storef32.asmjs_storef64.asmjs_storei32.asmjs_store8i32.asmjs_store16i32.asmjs_div_si32.asmjs_div_ui32.asmjs_rem_si32.asmjs_rem_ui32.asmjs_convert_s/f32i32.asmjs_convert_u/f32i32.asmjs_convert_s/f64i32.asmjs_convert_u/f64f32x4.splati32x4.splati16x8.splati8x16.splatf32x4.negi32x4.negi16x8.negi8x16.negf32x4.eqi32x4.eqi16x8.eqi8x16.eqf32x4.nei32x4.nei16x8.nei8x16.nef32x4.addi32x4.addi16x8.addi8x16.addf32x4.subi32x4.subi16x8.subi8x16.subf32x4.muli32x4.muli16x8.muli8x16.mulf32x4.absf32x4.add_horizontalf32x4.recip_approxf32x4.recip_sqrt_approxf32x4.minf32x4.maxf32x4.ltf32x4.lef32x4.gtf32x4.gef32x4.convert_u/i32f32x4.convert_s/i32i32x4.convert_u/f32i32x4.convert_s/f32i32x4.convert_u/i32i32x4.convert_s/i32i16x8.convert_u/i32i16x8.convert_s/i32i8x16.convert_u/i32i8x16.convert_s/i32f32x4.extract_lanef32x4.replace_lanei32x4.extract_lanei16x8.extract_lanei8x16.extract_lanei32x4.replace_lanei16x8.replace_lanei8x16.replace_lanei32x4.min_si16x8.min_si8x16.min_si32x4.min_ui16x8.min_ui8x16.min_ui32x4.max_si16x8.max_si8x16.max_si32x4.max_ui16x8.max_ui8x16.max_ui32x4.lt_si16x8.lt_si8x16.lt_si32x4.lt_ui16x8.lt_ui8x16.lt_ui32x4.le_si16x8.le_si8x16.le_si32x4.le_ui16x8.le_ui8x16.le_ui32x4.gt_si16x8.gt_si8x16.gt_si32x4.gt_ui16x8.gt_ui8x16.gt_ui32x4.ge_si16x8.ge_si8x16.ge_si32x4.ge_ui16x8.ge_ui8x16.ge_ui32x4.shr_si16x8.shr_si8x16.shr_si32x4.shr_ui16x8.shr_ui8x16.shr_ui32x4.shli16x8.shli8x16.shli32x4.add_horizontali16x8.add_horizontali16x8.add_saturate_si16x8.add_saturate_ui8x16.add_saturate_si8x16.add_saturate_ui16x8.sub_saturate_si16x8.sub_saturate_ui8x16.sub_saturate_si8x16.sub_saturate_us128.ands128.ors128.xors128.nots128.selects8x16.shuffles1x4.any_trues1x4.all_trues1x8.any_trues1x8.all_trues1x16.any_trues1x16.all_truei32.atomic_load32i32.atomic_load8_ui32.atomic_load16_ui64.atomic_load64i64.atomic_load8_ui64.atomic_load16_ui64.atomic_load32_ui32.atomic_store32i32.atomic_store8_ui32.atomic_store16_ui64.atomic_store64i64.atomic_store8_ui64.atomic_store16_ui64.atomic_store32_ui32.atomic_add32i32.atomic_add8_ui32.atomic_add16_ui64.atomic_add64i64.atomic_add8_ui64.atomic_add16_ui64.atomic_add32_ui32.atomic_sub32i32.atomic_sub8_ui32.atomic_sub16_ui64.atomic_sub64i64.atomic_sub8_ui64.atomic_sub16_ui64.atomic_sub32_ui32.atomic_and32i32.atomic_and8_ui32.atomic_and16_ui64.atomic_and64i64.atomic_and8_ui64.atomic_and16_ui64.atomic_and32_ui32.atomic_or32i32.atomic_or8_ui32.atomic_or16_ui64.atomic_or64i64.atomic_or8_ui64.atomic_or16_ui64.atomic_or32_ui32.atomic_xor32i32.atomic_xor8_ui32.atomic_xor16_ui64.atomic_xor64i64.atomic_xor8_ui64.atomic_xor16_ui64.atomic_xor32_ui32.atomic_xchng32i32.atomic_xchng8_ui32.atomic_xchng16_ui64.atomic_xchng64i64.atomic_xchng8_ui64.atomic_xchng16_ui64.atomic_xchng32_ui32.atomic_cmpxchng32i32.atomic_cmpxchng8_ui32.atomic_cmpxchng16_ui64.atomic_cmpxchng64i64.atomic_cmpxchng8_ui64.atomic_cmpxchng16_ui64.atomic_cmpxchng32_uError%s: (decode_result.val) != nullptrwrote: sized: wrote vector of elementsread: read vector of ../deps/v8/src/wasm/wasm-text.cc:43func $ (param (result(local (type call_indirect call i32.const i64.const f32.const f64.const offset= align=_.+-*/\^~=<>!?@#$%&|:'`!sealed_Zonearm v7 vfp3hardsoftfptarget%s%s %s%s%s %s ARMv8=%d ARMv7=%d VFPv3=%d VFP32DREGS=%d NEON=%d SUDIV=%d USE_EABI_HARDFLOAT=%d unused label bound label to %d unbound label@ %d value blxbleqnehslomiplvsvchilsgeltgtlelabel in inconsistent state (pos = %d) is_int24(imm24)is_uint24(link)offset != kMinIntexternal code buffer is too smallAssembler::GrowBuffer[ Constant Poolarmv7+sudivarmv7armv6Error: unrecognised value for --arm-arch ('%s'). Supported values are: armv8 armv7+sudiv armv7 armv6 arm-archWarning: --enable_armv7 is deprecated. Use --arm_arch instead. Warning: --enable_vfp3 is deprecated. Use --arm_arch instead. Warning: --enable_32dregs is deprecated. Use --arm_arch instead. Warning: --enable_neon is deprecated. Use --arm_arch instead. Warning: --enable_sudiv is deprecated. Use --arm_arch instead. Warning: --enable_armv8 is deprecated. Use --arm_arch instead. SetPermissions(buffer, allocated, PageAllocator::kReadExecute)Unreachable., %s #%d, %s #%dcall rt redirected%d - 0x%x{d%d}{d%d, d%d}{d%d, d%d, d%d}{d%d, d%d, d%d, d%d}[%s], %s, #%d#%g#%d, #%d%+d -> %s%pmul'cond's 'rn, 'rm, 'rsmla'cond's 'rn, 'rm, 'rs, 'rdmls'cond's 'rn, 'rm, 'rs, 'rd'um'al'cond's 'rd, 'rn, 'rm, 'rsldrex'cond 'rt, ['rn]ldrexb'cond 'rt, ['rn]ldrexh'cond 'rt, ['rn]strex'cond 'rd, 'rm, ['rn]strexb'cond 'rd, 'rm, ['rn]strexh'cond 'rd, 'rm, ['rn]'memop'cond's 'rd, ['rn], -'rm'memop'cond's 'rd, ['rn], #-'off8'memop'cond's 'rd, ['rn], +'rm'memop'cond's 'rd, ['rn], #+'off8'memop'cond's 'rd, ['rn, -'rm]'w'memop'cond's 'rd, ['rn, #-'off8]'w'memop'cond's 'rd, ['rn, +'rm]'w'memop'cond's 'rd, ['rn, #+'off8]'w'memop'cond'sign'h 'rd, ['rn], -'rm'memop'cond'sign'h 'rd, ['rn], #-'off8'memop'cond'sign'h 'rd, ['rn], +'rm'memop'cond'sign'h 'rd, ['rn], #+'off8'memop'cond'sign'h 'rd, ['rn, -'rm]'w'memop'cond'sign'h 'rd, ['rn, #-'off8]'w'memop'cond'sign'h 'rd, ['rn, +'rm]'w'memop'cond'sign'h 'rd, ['rn, #+'off8]'wmsr'cond 'spec_reg'spec_reg_fields, 'rmmrs'cond 'rd, 'spec_regbx'cond 'rmblx'cond 'rmbkpt 'off0to3and8to19clz'cond 'rd, 'rmnop'condcsdband'cond's 'rd, 'rn, 'shift_opeor'cond's 'rd, 'rn, 'shift_opsub'cond's 'rd, 'rn, 'shift_oprsb'cond's 'rd, 'rn, 'shift_opadd'cond's 'rd, 'rn, 'shift_opadc'cond's 'rd, 'rn, 'shift_opsbc'cond's 'rd, 'rn, 'shift_oprsc'cond's 'rd, 'rn, 'shift_optst'cond 'rn, 'shift_opmovw'cond 'mwteq'cond 'rn, 'shift_opcmp'cond 'rn, 'shift_opmovt'cond 'mwcmn'cond 'rn, 'shift_oporr'cond's 'rd, 'rn, 'shift_opmov'cond's 'rd, 'shift_opbic'cond's 'rd, 'rn, 'shift_opmvn'cond's 'rd, 'shift_op'memop'cond'b 'rd, ['rn], #-'off12'memop'cond'b 'rd, ['rn], #+'off12'memop'cond'b 'rd, [pc, #-'off12]'w (addr 'A)'memop'cond'b 'rd, ['rn, #-'off12]'w'memop'cond'b 'rd, [pc, #+'off12]'w (addr 'A)'memop'cond'b 'rd, ['rn, #+'off12]'w'memop'cond'b 'rd, ['rn], -'shift_rm'memop'cond'b 'rd, ['rn], +'shift_rmpkhbt'cond 'rd, 'rn, 'rm, lsl #'imm05@07pkhtb'cond 'rd, 'rn, 'rm, asr #32pkhtb'cond 'rd, 'rn, 'rm, asr #'imm05@07usat 'rd, #'imm05@16, 'rm'shift_satsxtb'cond 'rd, 'rmsxtb'cond 'rd, 'rm, ror #8sxtb'cond 'rd, 'rm, ror #16sxtb'cond 'rd, 'rm, ror #24sxtab'cond 'rd, 'rn, 'rmsxtab'cond 'rd, 'rn, 'rm, ror #8sxtab'cond 'rd, 'rn, 'rm, ror #16sxtab'cond 'rd, 'rn, 'rm, ror #24sxth'cond 'rd, 'rmsxth'cond 'rd, 'rm, ror #8sxth'cond 'rd, 'rm, ror #16sxth'cond 'rd, 'rm, ror #24sxtah'cond 'rd, 'rn, 'rmsxtah'cond 'rd, 'rn, 'rm, ror #8sxtah'cond 'rd, 'rn, 'rm, ror #16sxtah'cond 'rd, 'rn, 'rm, ror #24uxtb16'cond 'rd, 'rmuxtb16'cond 'rd, 'rm, ror #8uxtb16'cond 'rd, 'rm, ror #16uxtb16'cond 'rd, 'rm, ror #24uxtb'cond 'rd, 'rmuxtb'cond 'rd, 'rm, ror #8uxtb'cond 'rd, 'rm, ror #16uxtb'cond 'rd, 'rm, ror #24uxtab'cond 'rd, 'rn, 'rmuxtab'cond 'rd, 'rn, 'rm, ror #8uxtab'cond 'rd, 'rn, 'rm, ror #16uxtab'cond 'rd, 'rn, 'rm, ror #24uxth'cond 'rd, 'rmuxth'cond 'rd, 'rm, ror #8uxth'cond 'rd, 'rm, ror #16uxth'cond 'rd, 'rm, ror #24uxtah'cond 'rd, 'rn, 'rmuxtah'cond 'rd, 'rn, 'rm, ror #8uxtah'cond 'rd, 'rn, 'rm, ror #16uxtah'cond 'rd, 'rn, 'rm, ror #24rbit'cond 'rd, 'rmsmmul'cond 'rn, 'rm, 'rssmmla'cond 'rn, 'rm, 'rs, 'rdudiv'cond'b 'rn, 'rm, 'rssdiv'cond'b 'rn, 'rm, 'rs'memop'cond'b 'rd, ['rn, -'shift_rm]'wubfx'cond 'rd, 'rm, 'fsbfx'cond 'rd, 'rm, 'fbfc'cond 'rd, 'fbfi'cond 'rd, 'rm, 'f'memop'cond'b 'rd, ['rn, +'shift_rm]'wldm'cond'pu 'rn'w, 'rliststm'cond'pu 'rn'w, 'rlistb'l'cond 'targetstop'cond 'svcsvc'cond 'svcvmov'cond.f64 'Dd, 'Dmvmov'cond.f32 'Sd, 'Smvabs'cond.f64 'Dd, 'Dmvabs'cond.f32 'Sd, 'Smvneg'cond.f64 'Dd, 'Dmvneg'cond.f32 'Sd, 'Smvcvt'cond.f64.s32 'Dd, 'Ddvsqrt'cond.f64 'Dd, 'Dmvsqrt'cond.f32 'Sd, 'Smvmov'cond.f64 'Dd, 'dvmov'cond.f32 'Sd, 'dvrintz'cond.f64.f64 'Dd, 'Dmvrintz'cond.f32.f32 'Sd, 'Smvsub'cond.f64 'Dd, 'Dn, 'Dmvadd'cond.f64 'Dd, 'Dn, 'Dmvsub'cond.f32 'Sd, 'Sn, 'Smvadd'cond.f32 'Sd, 'Sn, 'Smvmul'cond.f64 'Dd, 'Dn, 'Dmvmul'cond.f32 'Sd, 'Sn, 'Smvmla'cond.f64 'Dd, 'Dn, 'Dmvmla'cond.f32 'Sd, 'Sn, 'Smvmls'cond.f64 'Dd, 'Dn, 'Dmvmls'cond.f32 'Sd, 'Sn, 'Smvdiv'cond.f64 'Dd, 'Dn, 'Dmvdiv'cond.f32 'Sd, 'Sn, 'Smvmov'cond.32 'Dd[0], 'rtvmov'cond.32 'Dd[1], 'rtvmov.8 d%d[%d], %svmov.16 d%d[%d], %svdup.%i q%d, %svmov'cond.32 'rt, 'Dd[0]vmov'cond.32 'rt, 'Dd[1]vmov.%c8 %s, d%d[%d]vmov.%c16 %s, d%d[%d]vmsr'cond FPSCR, APSRvmsr'cond FPSCR, 'rtvmrs'cond APSR, FPSCRvmrs'cond 'rt, FPSCRmcr'cond (CP15DMB)mcr'cond (CP15DSB)mcr'cond (CP15ISB)vmov'cond 'rt, 'Snvmov'cond 'Sn, 'rtvcmp'cond.f64 'Dd, 'Dmvcmp'cond.f64 'Dd, #0.0vcmp'cond.f32 'Sd, 'Smvcmp'cond.f32 'Sd, #0.0vcvt'cond.f32.f64 'Sd, 'Dmvcvt'cond.f64.f32 'Dd, 'Smvcvt'cond.u32.f64 'Sd, 'Dmvcvt'cond.s32.f64 'Sd, 'Dmvcvt'cond.u32.f32 'Sd, 'Smvcvt'cond.s32.f32 'Sd, 'Smvcvt'cond.f64.u32 'Dd, 'Smvcvt'cond.f64.s32 'Dd, 'Smvcvt'cond.f32.u32 'Sd, 'Smvcvt'cond.f32.s32 'Sd, 'Smvldr'cond 'Sd, ['rn - 4*'imm08@00]vstr'cond 'Sd, ['rn - 4*'imm08@00]vldr'cond 'Sd, ['rn + 4*'imm08@00]vstr'cond 'Sd, ['rn + 4*'imm08@00]vldm'cond'pu 'rn'w, {'Sd-'Sd+}vstm'cond'pu 'rn'w, {'Sd-'Sd+}vmov'cond 'rt, 'rn, 'Dmvmov'cond 'Dm, 'rt, 'rnvldr'cond 'Dd, ['rn - 4*'imm08@00]vstr'cond 'Dd, ['rn - 4*'imm08@00]vldr'cond 'Dd, ['rn + 4*'imm08@00]vstr'cond 'Dd, ['rn + 4*'imm08@00]vldm'cond'pu 'rn'w, {'Dd-'Dd+}vstm'cond'pu 'rn'w, {'Dd-'Dd+}vqadd.s%d q%d, q%d, q%dvmov q%d, q%dvorr q%d, q%d, q%dvand q%d, q%d, q%dvqsub.s%d q%d, q%d, q%dvcgevcgt%s.s%d q%d, q%d, q%dvminvmaxvaddvtst%s.i%d q%d, q%d, q%dvmul.i%d q%d, q%d, q%dvpminvpmax%s.s%d d%d, d%d, d%dvpadd.i%d d%d, d%d, d%dvsub%s.f32 q%d, q%d, q%dvceq.f32 q%d, q%d, q%dvrecpsvrsqrtsvmovl.s%d q%d, d%dvext.8 q%d, q%d, q%d, #%dvshl.i%d q%d, q%d, #%dvshr.s%d q%d, q%d, #%dvqadd.u%d q%d, q%d, q%dvbsl q%d, q%d, q%dveor d%d, d%d, d%dveor q%d, q%d, q%dvqsub.u%d q%d, q%d, q%d%s.u%d q%d, q%d, q%dvsub.i%d q%d, q%d, q%dvceq.i%d q%d, q%d, q%d%s.u%d d%d, d%d, d%dvmul.f32 q%d, q%d, q%dvpadd.f32 d%d, d%d, d%dvmovl.u%d q%d, d%dvdup.%i d%d, d%d[%d]vdup.%i q%d, d%d[%d]%s d%d, vtbl.8vtbx.8vqmovn.%c%i d%d, q%dvswp d%d, d%dvswp q%d, q%dvmvn q%d, q%df32.s32f32.u32s32.f32u32.f32vcvt.%s q%d, q%dvzipvuzp%s.%d d%d, d%d%s.%d q%d, q%dvrev%d.%d q%d, q%dvtrn.%d d%d, d%dvtrn.%d q%d, q%dvabs.%c%d q%d, q%dvneg.%c%d q%d, q%dvrecpevrsqrte%s.f32 q%d, q%dvshr.u%d q%d, q%d, #%dvs%ci.%d d%d, d%d, #%dvst1.%d vld1.%d pld [%s]pld [%s, #-%d]pld [%s, #+%d]dsb %sdmb %sisb %svrinta.f64.f64 'Dd, 'Dmvrinta.f32.f32 'Sd, 'Smvrintn.f64.f64 'Dd, 'Dmvrintn.f32.f32 'Sd, 'Smvrintp.f64.f64 'Dd, 'Dmvrintp.f32.f32 'Sd, 'Smvrintm.f64.f64 'Dd, 'Dmvrintm.f32.f32 'Sd, 'Smvminnm.f64 'Dd, 'Dn, 'Dmvmaxnm.f64 'Dd, 'Dn, 'Dmvminnm.f32 'Sd, 'Sn, 'Smvmaxnm.f32 'Sd, 'Sn, 'Smvseleq.f64 'Dd, 'Dn, 'Dmvseleq.f32 'Sd, 'Sn, 'Smvselvs.f64 'Dd, 'Dn, 'Dmvselvs.f32 'Sd, 'Sn, 'Smvselge.f64 'Dd, 'Dn, 'Dmvselge.f32 'Sd, 'Sn, 'Smvselgt.f64 'Dd, 'Dn, 'Dmvselgt.f32 'Sd, 'Sn, 'Sm%08x constant pool begin (length %d)%p %08x %s cscclsllsrasrroroshldoshstoshnshldnshstnshishldishstishldstsystatic_cast(register_parameter_count) <= (sizeof(ArraySizeHelper(default_stub_registers)))Unaligned cell in write barrierf->nargs < 0 || f->nargs == num_argumentsUnexpected alignmentpoisoning_level_ != PoisoningMitigationLevel::kDontPoisontry_match_shift(selector, &opcode, node, &inputs[0], &inputs[1])it.HasAccess()array->length()->ToArrayLength(&actual_new_len)column_offsetline_offsetcompilation_typesource_urlsource_mapping_urleval_from_scripteval_from_script_positioneval_from_function_name!Heap::RootIsImmortalImmovable(root_index)Malloced operator newAlignedAllocInVM(address, size)InVM(free_start, free_size)ReleasePages(reinterpret_cast(address_), size_, size_ - free_size)FreePages(reinterpret_cast(address), RoundUp(size, AllocatePageSize()))!obj->instance_call_handler()->IsUndefined(isolate)DisableAccessChecksEnableAccessChecksApiNatives::InstantiateObject__single_function__../deps/v8/src/asmjs/asm-js.cc:235[asm.js translation successful: time=%0.3fms, translate_zone=%zuKB, compile_zone+=%zuKB] AsmJs::CompileRequires standard libraryUnexpected stdlib memberRequires heap bufferUnexpected heap sizeAsmJs::InstantiateInternal wasm failuresuccess, asm->wasm: %0.3f ms, compile: %0.3f ms, %zu bytes-1 != length../deps/v8/src/asmjs/asm-js.cc:194success, %0.3f msExpected ;Stack overflow while parsing asm.js module.Unexpected tokenUndefined functionUndefined function tableExpected stdlib parameterExpected foreign parameterExpected heap parameterExpected identifierRedefinition of variableNumeric literal out of rangeExpected numeric literalBad variable declarationCan only use immutable variables in global definitionCan only define immutable variables with other immutablesExpected int, float, double, or fround for global definitionExpected |0 type annotation for foreign integer importExpected ArrayBuffer viewInvalid member of stdlib.MathInvalid member of stdlibIllegal export nameExpected function nameExpected functionSingle function export must be a function nameSingle function export must be a functionExpected table nameFunction table redefinedFunction table name collidesExceeded function table sizeFunction table definition doesn't match useFunction table size does not match usesFunction name collides with variableFunction redefinedNumber of parameters exceeds internal limitExpected return at end of non-void functionNumber of local variables exceeds internal limitFunction definition doesn't match useExpected parameter nameDuplicate parameter nameBad integer parameter annotation.Expected froundExpected local variable identifierDuplicate local variable nameExpected variable initial valueInitializing from global requires const variableBad local variable definitionexpected fround or const globalInvalid return typeInvalid void return typeIllegal breakIllegal continueDouble label unsupportedExpected signed for switch valueExpected actual typeUnexpected typeExpected numeric literal.Undefined local variableUndefined global variableExpected valid heap loadInvalid assignment targetIllegal type stored to heap viewUndeclared assignment targetExpected mutable variable in assignmentType mismatch in assignmentInteger numeric literal out of range.expected int/double?/float?expected signed/unsigned/double?/float?expected intexpected double or float?operator ~ expects intishExpected intConstant multiple out of rangeInteger multiply of expects intexpected doubles or floatsmore than 2^20 additive valuesillegal types for +Expected intish for operator >>.Expected intish for operator "<<".Expected intish for operator ">>>".Expected signed, unsigned, double, or float for operator "<".Expected signed, unsigned, double, or float for operator "<=".Expected signed, unsigned, double, or float for operator ">".Expected signed, unsigned, double, or float for operator ">=".Expected signed, unsigned, double, or float for operator "==".Expected signed, unsigned, double, or float for operator "!=".Expected intish for operator &.Expected |0 type annotation for callExpected intish for operator |.Expected int in condition of ternary operator.Type mismatch in ternary operator.Expected mask literalExpected power of 2 maskExceeded maximum function table sizeExpected call tableMask size mismatchExpected function as call targetBad function argument typeImported function args must be type externImported function can't be called as floatExpected callable functionFunction use doesn't match definitionHeap access out of rangeExpected shift of word sizeExpected valid heap access shiftExpected heap access shift to match heap viewExpected intish indexIllegal conversion to floatglobal_count_ < kMaxIdentifierCountlocal_names_.size() < kMaxIdentifierCountuse asmexterndoubleintishsignedfixnumfloat?) -> /\ ...) -> StringToArrayIndex(&stream, index)../deps/v8/src/ast/ast-value-factory.cc:186(anonymous function)boolean.for.generator_object.iterator.result.switch_tag.catch.new.target*default*.this_function(new_string) != nullptr(context function)Smi::IsValid(module_request)Bailed out due to dependency changeCode generation failedCyclic object state detected by escape analysisFunction is being debuggedOptimized graph construction failedFunction is too big to be optimizedLiveEditNative function literalNot enough virtual registers (regalloc)Optimization disabledOptimization disabled for test32 bit value in register is not zero-extendedAPI call returned invalid objectAllocating non-empty packed arrayAllocation is not double alignedCode object not properly patchedExpected allocation siteExpected feedback vectorExpected optimized code cell or optimization sentinelExpected undefined or cell in registerThe function_data field should be a BytecodeArray on interpreter entryInput string too longInvalid bytecodeCannot advance current bytecode, Invalid ElementsKind for InternalArray or InternalPackedArrayInvalid HandleScope levelInvalid jump table indexinvalid register file in generatorInvalid SharedFunctionInfo dataMissing bytecode array from functionThe object is not taggedThe object is taggedOffset out of rangeOperand is a smiOperand is a smi and not a bound functionOperand is a smi and not a constructorOperand is a smi and not a fixed arrayOperand is a smi and not a functionOperand is a smi and not a generator objectOperand is not a bound functionOperand is not a constructorOperand is not a fixed arrayOperand is not a functionOperand is not a generator objectOperand is not a smiReceived invalid return addressRegister did not match expected rootRegister was clobberedReturn address not found in frameShould not directly enter OSR-compiled functionStack access below stack pointerStack frame types must matchThe stack was corrupted by MacroAssembler::Call()Unexpected ElementsKind in array constructorUnexpected FPCR mode.Unexpected runtime function id for the InvokeIntrinsic bytecodeUnexpected initial map for Array functionUnexpected initial map for Array function (1)Unexpected initial map for Array function (2)Unexpected initial map for InternalArray functionUnexpected level after return from api callUnexpected negative valueUnexpectedly returned from dropping framesUnexpectedly returned from a throwShould not return after throwing a wasm trapThe stack pointer is not the expected valueUnexpected valueUnsupported module operationUnsupported non-primitive compareWrong address or value passed to RecordWriteWrong number of arguments for intrinsicWrong value in code start register passedWrong context passed to function---- Start Profiling Data -------- End Profiling Data ----unknown functionschedule for block counts for block V8.Builtin_HandleApiCallV8.Builtin_HandleApiCallAsFunctionconstructor->shared()->IsApiFunction()call non-functionV8.Builtin_HandleApiCallAsConstructorV8.Builtin_ArrayPushV8.Builtin_ArrayPopV8.Builtin_ArrayShiftV8.Builtin_ArrayUnshiftV8.Builtin_ArraySpliceV8.Builtin_ArrayConcatArray.prototype.concatV8.Builtin_ArrayBufferConstructorV8.Builtin_ArrayBufferConstructor_DoNotInitializeV8.Builtin_ArrayBufferPrototypeGetByteLengthget ArrayBuffer.prototype.byteLengthV8.Builtin_SharedArrayBufferPrototypeGetByteLengthget SharedArrayBuffer.prototype.byteLengthV8.Builtin_ArrayBufferIsViewV8.Builtin_SharedArrayBufferPrototypeSliceSharedArrayBuffer.prototype.sliceTryNumberToSize(*first_obj, &first_size)TryNumberToSize(*new_len_obj, &new_len_size)V8.Builtin_ArrayBufferPrototypeSliceArrayBuffer.prototype.sliceV8.Builtin_BigIntConstructorV8.Builtin_BigIntAsUintNV8.Builtin_BigIntAsIntNV8.Builtin_BigIntPrototypeToLocaleStringBigInt.prototype.toLocaleStringV8.Builtin_BigIntPrototypeToStringBigInt.prototype.toStringV8.Builtin_BigIntPrototypeValueOfBigInt.prototype.valueOfV8.Builtin_BooleanConstructorV8.Builtin_CallSitePrototypeGetColumnNumberV8.Builtin_CallSitePrototypeGetEvalOriginV8.Builtin_CallSitePrototypeGetFileNameV8.Builtin_CallSitePrototypeGetFunctionV8.Builtin_CallSitePrototypeGetFunctionNameV8.Builtin_CallSitePrototypeGetLineNumberV8.Builtin_CallSitePrototypeGetMethodNameV8.Builtin_CallSitePrototypeGetPositionV8.Builtin_CallSitePrototypeGetScriptNameOrSourceURLgetScriptNameOrSourceUrlV8.Builtin_CallSitePrototypeGetThisV8.Builtin_CallSitePrototypeGetTypeNameV8.Builtin_CallSitePrototypeIsConstructorV8.Builtin_CallSitePrototypeIsEvalV8.Builtin_CallSitePrototypeIsNativeV8.Builtin_CallSitePrototypeIsToplevelV8.Builtin_CallSitePrototypeToStringV8.Builtin_MapPrototypeClearMap.prototype.clearV8.Builtin_SetPrototypeClearSet.prototype.clearV8.Builtin_ConsoleDebug!isolate->has_pending_exception()V8.Builtin_ConsoleErrorV8.Builtin_ConsoleInfoV8.Builtin_ConsoleLogV8.Builtin_ConsoleWarnV8.Builtin_ConsoleDirV8.Builtin_ConsoleDirXmlV8.Builtin_ConsoleTableV8.Builtin_ConsoleTraceV8.Builtin_ConsoleGroupV8.Builtin_ConsoleGroupCollapsedV8.Builtin_ConsoleGroupEndV8.Builtin_ConsoleClearV8.Builtin_ConsoleCountV8.Builtin_ConsoleCountResetV8.Builtin_ConsoleAssertV8.Builtin_ConsoleMarkTimelineV8.Builtin_ConsoleProfileV8.Builtin_ConsoleProfileEndV8.Builtin_ConsoleTimelineV8.Builtin_ConsoleTimelineEndV8.Builtin_ConsoleTimeV8.Builtin_ConsoleTimeEndV8.Builtin_ConsoleTimeStampV8.Builtin_ConsoleContextContextdirXmlV8.Builtin_DataViewConstructorV8.Builtin_DataViewPrototypeGetBufferget DataView.prototype.bufferV8.Builtin_DataViewPrototypeGetByteLengthget DataView.prototype.byteLengthV8.Builtin_DataViewPrototypeGetByteOffsetget DataView.prototype.byteOffsetV8.Builtin_DataViewPrototypeGetInt8DataView.prototype.getInt8V8.Builtin_DataViewPrototypeGetUint8DataView.prototype.getUint8V8.Builtin_DataViewPrototypeGetInt16DataView.prototype.getInt16V8.Builtin_DataViewPrototypeGetUint16DataView.prototype.getUint16V8.Builtin_DataViewPrototypeGetInt32DataView.prototype.getInt32V8.Builtin_DataViewPrototypeGetUint32DataView.prototype.getUint32V8.Builtin_DataViewPrototypeGetFloat32DataView.prototype.getFloat32V8.Builtin_DataViewPrototypeGetFloat64DataView.prototype.getFloat64V8.Builtin_DataViewPrototypeGetBigInt64DataView.prototype.getBigInt64V8.Builtin_DataViewPrototypeGetBigUint64DataView.prototype.getBigUint64V8.Builtin_DataViewPrototypeSetInt8DataView.prototype.setInt8V8.Builtin_DataViewPrototypeSetUint8DataView.prototype.setUint8V8.Builtin_DataViewPrototypeSetInt16DataView.prototype.setInt16V8.Builtin_DataViewPrototypeSetUint16DataView.prototype.setUint16V8.Builtin_DataViewPrototypeSetInt32DataView.prototype.setInt32V8.Builtin_DataViewPrototypeSetUint32DataView.prototype.setUint32V8.Builtin_DataViewPrototypeSetFloat32DataView.prototype.setFloat32V8.Builtin_DataViewPrototypeSetFloat64DataView.prototype.setFloat64V8.Builtin_DataViewPrototypeSetBigInt64DataView.prototype.setBigInt64V8.Builtin_DataViewPrototypeSetBigUint64DataView.prototype.setBigUint64V8.Builtin_DateConstructorInvalid Date%s %s %02d %04d%02d:%02d:%02d GMT%c%02d%02d (%s)%s %s %02d %04d %02d:%02d:%02d GMT%c%02d%02d (%s)SunMonTueWedThuFriSatV8.Builtin_DateNowV8.Builtin_DateParseV8.Builtin_DateUTCV8.Builtin_DatePrototypeSetDateDate.prototype.setDateV8.Builtin_DatePrototypeSetFullYearDate.prototype.setFullYearV8.Builtin_DatePrototypeSetHoursDate.prototype.setHoursV8.Builtin_DatePrototypeSetMillisecondsDate.prototype.setMillisecondsV8.Builtin_DatePrototypeSetMinutesDate.prototype.setMinutesV8.Builtin_DatePrototypeSetMonthDate.prototype.setMonthV8.Builtin_DatePrototypeSetSecondsDate.prototype.setSecondsV8.Builtin_DatePrototypeSetTimeDate.prototype.setTimeV8.Builtin_DatePrototypeSetUTCDateDate.prototype.setUTCDateV8.Builtin_DatePrototypeSetUTCFullYearDate.prototype.setUTCFullYearV8.Builtin_DatePrototypeSetUTCHoursDate.prototype.setUTCHoursV8.Builtin_DatePrototypeSetUTCMillisecondsDate.prototype.setUTCMillisecondsV8.Builtin_DatePrototypeSetUTCMinutesDate.prototype.setUTCMinutesV8.Builtin_DatePrototypeSetUTCMonthDate.prototype.setUTCMonthV8.Builtin_DatePrototypeSetUTCSecondsDate.prototype.setUTCSecondsV8.Builtin_DatePrototypeToDateStringDate.prototype.toDateStringV8.Builtin_DatePrototypeToISOStringDate.prototype.toISOString%04d-%02d-%02dT%02d:%02d:%02d.%03dZ-%06d-%02d-%02dT%02d:%02d:%02d.%03dZ+%06d-%02d-%02dT%02d:%02d:%02d.%03dZV8.Builtin_DatePrototypeToStringDate.prototype.toStringV8.Builtin_DatePrototypeToTimeStringDate.prototype.toTimeStringV8.Builtin_DatePrototypeToUTCStringDate.prototype.toUTCString%s, %02d %s %04d %02d:%02d:%02d GMTV8.Builtin_DatePrototypeGetYearDate.prototype.getYearV8.Builtin_DatePrototypeSetYearDate.prototype.setYearV8.Builtin_DatePrototypeToJsonV8.Builtin_ErrorConstructorV8.Builtin_ErrorCaptureStackTraceV8.Builtin_ErrorPrototypeToStringV8.Builtin_MakeErrorV8.Builtin_MakeRangeErrorV8.Builtin_MakeSyntaxErrorV8.Builtin_MakeTypeErrorV8.Builtin_MakeURIErrorV8.Builtin_FunctionConstructor anonymous(V8.Builtin_GeneratorFunctionConstructorfunction*V8.Builtin_AsyncFunctionConstructorasync functionV8.Builtin_AsyncGeneratorFunctionConstructorasync function*V8.Builtin_FunctionPrototypeBindV8.Builtin_FunctionPrototypeToStringFunction.prototype.toStringV8.Builtin_GlobalDecodeURIV8.Builtin_GlobalDecodeURIComponentV8.Builtin_GlobalEncodeURIV8.Builtin_GlobalEncodeURIComponentV8.Builtin_GlobalEscapeV8.Builtin_GlobalUnescapeV8.Builtin_GlobalEvalV8.Builtin_IllegalV8.Builtin_EmptyFunctionV8.Builtin_UnsupportedThrowerV8.Builtin_StrictPoisonPillThrowerV8.Builtin_JsonParseV8.Builtin_JsonStringifyV8.Builtin_MathHypotV8.Builtin_NumberPrototypeToExponentialNumber.prototype.toExponentialtoExponential()V8.Builtin_NumberPrototypeToFixedNumber.prototype.toFixedtoFixed() digitsV8.Builtin_NumberPrototypeToLocaleStringNumber.prototype.toLocaleStringV8.Builtin_NumberPrototypeToPrecisionNumber.prototype.toPrecisionV8.Builtin_NumberPrototypeToStringNumber.prototype.toStringV8.Builtin_ObjectPrototypePropertyIsEnumerableV8.Builtin_ObjectDefinePropertiesV8.Builtin_ObjectDefinePropertyV8.Builtin_ObjectDefineGetterV8.Builtin_ObjectDefineSetterV8.Builtin_ObjectLookupGetterV8.Builtin_ObjectLookupSetterV8.Builtin_ObjectFreezeV8.Builtin_ObjectGetPrototypeOfV8.Builtin_ObjectSetPrototypeOfObject.setPrototypeOfV8.Builtin_ObjectPrototypeGetProtoV8.Builtin_ObjectPrototypeSetProtoset Object.prototype.__proto__V8.Builtin_ObjectGetOwnPropertyNamesV8.Builtin_ObjectGetOwnPropertySymbolsV8.Builtin_ObjectIsExtensibleV8.Builtin_ObjectIsFrozenV8.Builtin_ObjectIsSealedV8.Builtin_ObjectGetOwnPropertyDescriptorsV8.Builtin_ObjectPreventExtensionsV8.Builtin_ObjectSealV8.Builtin_IsPromiseV8.Builtin_ReflectDefinePropertyReflect.definePropertyV8.Builtin_ReflectDeletePropertyReflect.deletePropertyV8.Builtin_ReflectGetReflect.getV8.Builtin_ReflectGetOwnPropertyDescriptorReflect.getOwnPropertyDescriptorV8.Builtin_ReflectGetPrototypeOfReflect.getPrototypeOfV8.Builtin_ReflectIsExtensibleReflect.isExtensibleV8.Builtin_ReflectOwnKeysReflect.ownKeysV8.Builtin_ReflectPreventExtensionsReflect.preventExtensionsV8.Builtin_ReflectSetReflect.setV8.Builtin_ReflectSetPrototypeOfReflect.setPrototypeOfV8.Builtin_RegExpPrototypeToStringRegExp.prototype.toStringV8.Builtin_RegExpCapture1GetterV8.Builtin_RegExpCapture2GetterV8.Builtin_RegExpCapture3GetterV8.Builtin_RegExpCapture4GetterV8.Builtin_RegExpCapture5GetterV8.Builtin_RegExpCapture6GetterV8.Builtin_RegExpCapture7GetterV8.Builtin_RegExpCapture8GetterV8.Builtin_RegExpCapture9GetterV8.Builtin_RegExpInputGetterV8.Builtin_RegExpInputSetterV8.Builtin_RegExpLastMatchGetterV8.Builtin_RegExpLastParenGetterV8.Builtin_RegExpLeftContextGetterV8.Builtin_RegExpRightContextGetterV8.Builtin_AtomicsIsLockFreeV8.Builtin_AtomicsWakeV8.Builtin_AtomicsWaitV8.Builtin_StringFromCodePointV8.Builtin_StringPrototypeEndsWithString.prototype.endsWithV8.Builtin_StringPrototypeLastIndexOfV8.Builtin_StringPrototypeLocaleCompareString.prototype.localeCompareV8.Builtin_StringPrototypeNormalizeString.prototype.normalizeNFCNFDNFKCNFKDNFC, NFD, NFKC, NFKDV8.Builtin_StringPrototypeStartsWithString.prototype.startsWithV8.Builtin_StringPrototypeToLocaleLowerCaseString.prototype.toLocaleLowerCaseV8.Builtin_StringPrototypeToLocaleUpperCaseString.prototype.toLocaleUpperCaseV8.Builtin_StringPrototypeToLowerCaseString.prototype.toLowerCaseV8.Builtin_StringPrototypeToUpperCaseString.prototype.toUpperCaseV8.Builtin_StringRawV8.Builtin_SymbolConstructorV8.Builtin_SymbolForV8.Builtin_SymbolKeyForV8.Builtin_IsTraceCategoryEnabledV8.Builtin_TraceV8.Builtin_TypedArrayPrototypeBufferget %TypedArray%.prototype.bufferV8.Builtin_TypedArrayPrototypeCopyWithin%TypedArray%.prototype.copyWithinV8.Builtin_TypedArrayPrototypeFill%TypedArray%.prototype.fillV8.Builtin_TypedArrayPrototypeIncludes%TypedArray%.prototype.includesV8.Builtin_TypedArrayPrototypeIndexOf%TypedArray%.prototype.indexOfV8.Builtin_TypedArrayPrototypeLastIndexOf%TypedArray%.prototype.lastIndexOfV8.Builtin_TypedArrayPrototypeReverse%TypedArray%.prototype.reverse0 != id!canceled_TENURED == pretenure_flagSTRING_ADD_CHECK_NONE == flags0 <= argcargc <= kArgMaxNameDictionaryLookup[ Assert: %s[ AssertCSA_ASSERT failed: %s [%s:%d] CSA_ASSERT failed: %s ] AssertIntPtrRoundUpToPowerOfTwo32Internals::IsValidSmi(constant_value)constant_value > 0IsValidPositiveSmi(UncheckedCast(size_in_bytes))../deps/v8/src/code-stub-assembler.ccflags == kNone || flags == kDoubleAlignmentDisallow pushing onto prototypesBuildAppendJSArray: %sAllocating ConsStringOne-byte ConsStringTwo-byte ConsStringInitialize NameDictionaryCopy boilerplate property dictAllocateStructInitializeStructBodyInitializeJSObjectBodyNoSlackTrackingNo slack trackingDecrease construction counteriInitialize filler fieldsInitialize undefined fieldsStoreFieldsNoWriteBarrierbegin allocation of JSArray without elementsbegin allocation of JSArray with elementswrite JSArray headersAllocateFixedArrayCopy PACKED_ELEMENTS new spaceCopy PACKED_ELEMENTS old spaceCopy PACKED_DOUBLE_ELEMENTSCopy empty array[ CopyFixedArrayElementsto_array == to_array_adjusted] CopyFixedArrayElements[ CopyPropertyArrayValues] CopyPropertyArrayValuesCopyStringCharacters %s -> %sONE_BYTE_ENCODINGTWO_BYTE_ENCODINGTryGrowElementsCapacity[ GrowElementsCapacity] GrowElementsCapacity[Initialize AllocationMemento(primitive_name) != nullptrptr_kind == PTR_TO_DATA || ptr_kind == PTR_TO_STRINGFull string concatenateTryToNameNumberDictionaryLookupDescriptorArrayLookupTransitionArrayLookupTryHasOwnProperty[ LoadPropertyFromFastObjectif_inobjectif_backing_storerebox_double] LoadPropertyFromFastObjectLoadPropertyFromNameDictionary] LoadPropertyFromNameDictionary[ LoadPropertyFromGlobalDictionary] LoadPropertyFromGlobalDictionaryTryGetOwnPropertyNon-simple map transition[ TrapAllocationMemento] TrapAllocationMementoCodeStubArguments::ForEachArrayLookupLookupLinearLookupBinarytotals Turbofan phase Time (ms) Space (bytes) Function Total Max. Abs. max. "%s_time"=%.3f "%s_space"=%zu%28s %10.3f (%5.1f%%) %10zu (%5.1f%%) %10zu %10zu ----------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------- V8.BackgroundCompile_PrepareV8.BackgroundCompile_CompileV8.BackgroundCompile_FinalizeCompilerDispatcherTracer: prepare=%.2lfms compiling=%.2lfms/kb finalize=%.2lfms ** Flushed concurrent recompilation queues (not blocking). ** Flushed concurrent recompilation queues. ** Aborting compilation for as it has already been optimized. BranchEliminationSize() > 0%this%context%new.target%closure0 == first_reg.index()MachineRepresentation::kFloat32 != repMachineRepresentation::kFloat64 != rep2 >= locations.return_count_c-callCheckpointEliminationinfo->is_osr() == osr_helper_.has_value()-- Prologue: check code start register ---- Prologue: check for deoptimization ---- B%d start%s%s%s%s (no frame) (construct frame) (deconstruct frame) (loop up to %d) (in loop %d) ---- Out of line code ---- deoptimization_stateMachineRepresentation::kTagged == type.representation()MachineRepresentation::kFloat32 == type.representation()op->IsImmediate()-- Prologue: generate speculation poison --CommonOperatorReducer" : ConstantFoldingReducerCEQ: Pre-visit of #%d:%s CEQ: Mid-visit of #%d:%s Assigned class number is %zu CEQ: Post-visit of #%d:%s CEQ: Backedge from #%d:%s to #%d:%s BList erased: {%d->%d} BList: {%d->%d} DeadCodeEliminationprocess nodeNo frame state (zapped by #%d: %s)Effect control linearizer lowering of '%s': value output count does not agree.clone branch(field) != nullptrEscape analysis failed to remove node %s#%d EscapeAnalysisReducervar != Variable::Invalid()vobject->size() == size!HasEscaped()machine()->Float64RoundDown().IsSupported()machine()->Float64RoundTruncate().IsSupported()- In-place update of by reducer - Replacement of DeadLink: json"sourceId": , "functionName": ", "sourceName": ", "sourceText": ", "sourceName": "", "sourceText": "", "startPosition": , "endPosition": "sources" : {"inlinings" : {turbo-%s-%iturbo-%p-%iturbo-none-%i%s%c%s%s.%s%s%s-%s.%s%s%s_%s.%s%s%s_%s-%s.%s../deps/v8/src/compiler/graph-visualizer.cc:390{ "nodes":[], "edges":[ " "Bcompilationmethod "stub Ctx: FS: Eff: Ctrl: type:cfgfrom_bcito_bcipredecessorssuccessorsxhandlers flags dominatorloop_depthfirst_lir_idlast_lir_idstatesHIR0 pos:inlining(), <|@ 0 0 Goto -> BLIRintervals "const(nostack): "fp_stack: "stack: M "" ../deps/v8/src/compiler/graph-visualizer.cc:784../deps/v8/src/compiler/graph-visualizer.cc:792../deps/v8/src/compiler/graph-visualizer.cc:802../deps/v8/src/compiler/graph-visualizer.cc:813 [Type: { "inliningId" : , "sourceId" : , "inliningPosition" : {"id":,"label":","title":","live": ,"properties":","rankInputs":[0,,"rankWithInput":[,"rankInputs":[,"rankInputs":[0], "sourcePosition" : , "origin" : ,"opcode":","control":,"opinfo":" v eff ctrl in, ctrl out","type":"frame-state{"source":,"target":,"index":"}begin_end_ + Block B (pred:, loop until B, in loop B . r+bw+ba+bUnexpected operator #%d:%s @ node #%d(=S)(R)(S)(1)(-)(*)[constant:[immediate:[stack:[fp_stack:|R|E|-|b|w8|w16|w32|w64|f32|f64|s128|ts|tp|t(x)ArchCallCodeObjectArchTailCallCodeObjectFromJSFunctionArchTailCallCodeObjectArchCallJSFunctionArchTailCallAddressArchPrepareCallCFunctionArchSaveCallerRegistersArchRestoreCallerRegistersArchCallCFunctionArchPrepareTailCallArchCallWasmFunctionArchTailCallWasmArchJmpArchLookupSwitchArchTableSwitchArchNopArchDebugAbortArchDebugBreakArchCommentArchThrowTerminatorArchDeoptimizeArchRetArchStackPointerArchFramePointerArchParentFramePointerArchRootsPointerArchTruncateDoubleToIArchStoreWithWriteBarrierArchStackSlotArchWordPoisonOnSpeculationWord32AtomicLoadInt8Word32AtomicLoadUint8Word32AtomicLoadInt16Word32AtomicLoadUint16Word32AtomicLoadWord32Word32AtomicStoreWord8Word32AtomicStoreWord16Word32AtomicStoreWord32Word32AtomicExchangeInt8Word32AtomicExchangeUint8Word32AtomicExchangeInt16Word32AtomicExchangeUint16Word32AtomicExchangeWord32Word32AtomicCompareExchangeInt8Word32AtomicCompareExchangeUint8Word32AtomicCompareExchangeInt16Word32AtomicCompareExchangeUint16Word32AtomicCompareExchangeWord32Word32AtomicAddInt8Word32AtomicAddUint8Word32AtomicAddInt16Word32AtomicAddUint16Word32AtomicAddWord32Word32AtomicSubInt8Word32AtomicSubUint8Word32AtomicSubInt16Word32AtomicSubUint16Word32AtomicSubWord32Word32AtomicAndInt8Word32AtomicAndUint8Word32AtomicAndInt16Word32AtomicAndUint16Word32AtomicAndWord32Word32AtomicOrInt8Word32AtomicOrUint8Word32AtomicOrInt16Word32AtomicOrUint16Word32AtomicOrWord32Word32AtomicXorInt8Word32AtomicXorUint8Word32AtomicXorInt16Word32AtomicXorUint16Word32AtomicXorWord32Ieee754Float64AcosIeee754Float64AcoshIeee754Float64AsinIeee754Float64AsinhIeee754Float64AtanIeee754Float64AtanhIeee754Float64Atan2Ieee754Float64CbrtIeee754Float64CosIeee754Float64CoshIeee754Float64ExpIeee754Float64Expm1Ieee754Float64LogIeee754Float64Log1pIeee754Float64Log10Ieee754Float64Log2Ieee754Float64PowIeee754Float64SinIeee754Float64SinhIeee754Float64TanIeee754Float64TanhArmAddArmAndArmBicArmClzArmCmpArmCmnArmTstArmTeqArmOrrArmEorArmSubArmRsbArmMulArmMlaArmMlsArmSmullArmSmmulArmSmmlaArmUmullArmSdivArmUdivArmMovArmMvnArmBfcArmUbfxArmSbfxArmSxtbArmSxthArmSxtabArmSxtahArmUxtbArmUxthArmUxtabArmRbitArmUxtahArmAddPairArmSubPairArmMulPairArmLslPairArmLsrPairArmAsrPairArmVcmpF32ArmVaddF32ArmVsubF32ArmVmulF32ArmVmlaF32ArmVmlsF32ArmVdivF32ArmVabsF32ArmVnegF32ArmVsqrtF32ArmVcmpF64ArmVaddF64ArmVsubF64ArmVmulF64ArmVmlaF64ArmVmlsF64ArmVdivF64ArmVmodF64ArmVabsF64ArmVnegF64ArmVsqrtF64ArmVrintmF32ArmVrintmF64ArmVrintpF32ArmVrintpF64ArmVrintzF32ArmVrintzF64ArmVrintaF64ArmVrintnF32ArmVrintnF64ArmVcvtF32F64ArmVcvtF64F32ArmVcvtF32S32ArmVcvtF32U32ArmVcvtF64S32ArmVcvtF64U32ArmVcvtS32F32ArmVcvtU32F32ArmVcvtS32F64ArmVcvtU32F64ArmVmovU32F32ArmVmovF32U32ArmVmovLowU32F64ArmVmovLowF64U32ArmVmovHighU32F64ArmVmovHighF64U32ArmVmovF64U32U32ArmVmovU32U32F64ArmVldrF32ArmVstrF32ArmVldrF64ArmVld1F64ArmVstrF64ArmVst1F64ArmVld1S128ArmVst1S128ArmFloat32MaxArmFloat64MaxArmFloat32MinArmFloat64MinArmFloat64SilenceNaNArmLdrbArmLdrsbArmStrbArmLdrhArmLdrshArmStrhArmLdrArmStrArmPushArmPokeArmPeekArmDsbIsbArmF32x4SplatArmF32x4ExtractLaneArmF32x4ReplaceLaneArmF32x4SConvertI32x4ArmF32x4UConvertI32x4ArmF32x4AbsArmF32x4NegArmF32x4RecipApproxArmF32x4RecipSqrtApproxArmF32x4AddArmF32x4AddHorizArmF32x4SubArmF32x4MulArmF32x4MinArmF32x4MaxArmF32x4EqArmF32x4NeArmF32x4LtArmF32x4LeArmI32x4SplatArmI32x4ExtractLaneArmI32x4ReplaceLaneArmI32x4SConvertF32x4ArmI32x4SConvertI16x8LowArmI32x4SConvertI16x8HighArmI32x4NegArmI32x4ShlArmI32x4ShrSArmI32x4AddArmI32x4AddHorizArmI32x4SubArmI32x4MulArmI32x4MinSArmI32x4MaxSArmI32x4EqArmI32x4NeArmI32x4GtSArmI32x4GeSArmI32x4UConvertF32x4ArmI32x4UConvertI16x8LowArmI32x4UConvertI16x8HighArmI32x4ShrUArmI32x4MinUArmI32x4MaxUArmI32x4GtUArmI32x4GeUArmI16x8SplatArmI16x8ExtractLaneArmI16x8ReplaceLaneArmI16x8SConvertI8x16LowArmI16x8SConvertI8x16HighArmI16x8NegArmI16x8ShlArmI16x8ShrSArmI16x8SConvertI32x4ArmI16x8AddArmI16x8AddSaturateSArmI16x8AddHorizArmI16x8SubArmI16x8SubSaturateSArmI16x8MulArmI16x8MinSArmI16x8MaxSArmI16x8EqArmI16x8NeArmI16x8GtSArmI16x8GeSArmI16x8UConvertI8x16LowArmI16x8UConvertI8x16HighArmI16x8ShrUArmI16x8UConvertI32x4ArmI16x8AddSaturateUArmI16x8SubSaturateUArmI16x8MinUArmI16x8MaxUArmI16x8GtUArmI16x8GeUArmI8x16SplatArmI8x16ExtractLaneArmI8x16ReplaceLaneArmI8x16NegArmI8x16ShlArmI8x16ShrSArmI8x16SConvertI16x8ArmI8x16AddArmI8x16AddSaturateSArmI8x16SubArmI8x16SubSaturateSArmI8x16MulArmI8x16MinSArmI8x16MaxSArmI8x16EqArmI8x16NeArmI8x16GtSArmI8x16GeSArmI8x16ShrUArmI8x16UConvertI16x8ArmI8x16AddSaturateUArmI8x16SubSaturateUArmI8x16MinUArmI8x16MaxUArmI8x16GtUArmI8x16GeUArmS128ZeroArmS128DupArmS128AndArmS128OrArmS128XorArmS128NotArmS128SelectArmS32x4ZipLeftArmS32x4ZipRightArmS32x4UnzipLeftArmS32x4UnzipRightArmS32x4TransposeLeftArmS32x4TransposeRightArmS32x4ShuffleArmS16x8ZipLeftArmS16x8ZipRightArmS16x8UnzipLeftArmS16x8UnzipRightArmS16x8TransposeLeftArmS16x8TransposeRightArmS8x16ZipLeftArmS8x16ZipRightArmS8x16UnzipLeftArmS8x16UnzipRightArmS8x16TransposeLeftArmS8x16TransposeRightArmS8x16ConcatArmS8x16ShuffleArmS32x2ReverseArmS16x4ReverseArmS16x2ReverseArmS8x8ReverseArmS8x4ReverseArmS8x2ReverseArmS1x4AnyTrueArmS1x4AllTrueArmS1x8AnyTrueArmS1x8AllTrueArmS1x16AnyTrueArmS1x16AllTrueOffset_RIOffset_RROperand2_IOperand2_ROperand2_R_ASR_IOperand2_R_LSL_IOperand2_R_LSR_IOperand2_R_ROR_IOperand2_R_ASR_ROperand2_R_LSL_ROperand2_R_LSR_ROperand2_R_ROR_Rbranch_and_poisondeoptimize_and_poisontrapequalnot equalsigned less thansigned greater than or equalsigned less than or equalsigned greater thanunsigned less thanunsigned greater than or equalunsigned less than or equalunsigned greater thanless than or unordered (FP)greater than or equal (FP)less than or equal (FP)greater than or unordered (FP)less than (FP)greater than, equal or unordered (FP)less than, equal or unordered (FP)greater than (FP)unordered equalunordered not equalnot overflowpositive or zeronegativegap ) = && if lRPO: AO# loop blocks: [ instructions: [ predecessors: phi: = v%5dsuccessor->PredecessorCount() == 1 && successor->predecessors()[0] == block->rpo_number()InstructionBlockAt(successor_id)->IsDeferred()InstructionBlockAt(predecessor_id)->IsDeferred()!definitions.Contains(vreg)virtual_register != InstructionOperand::kInvalidVirtualRegisterblock->rpo_number() == rpoIMM#CST#: vReflect.hasJSCallReducerJSContextSpecializationJSCreateLoweringJSGenericLoweringNot considering call site #%d:%s, because polymorphic inlining is disabled Not considering call site #%d:%s, because of recursive inlining Inlining small function(s) at call site #%d:%s Candidates for inlining (size=): #, frequency: - size:%d, name: %s JSInliningHeuristicInlinee contains %d calls without local exception handler; linking to surrounding exception handler Not inlining %s into %s because callee is not inlineable Not inlining %s into %s because constructor is not constructable. Not inlining %s into %s because callee is a class constructor. Not inlining %s into %s because callee may contain break points Not inlining %s into %s because call has exceeded the maximum depth for function inlining Try block surrounds #%d:%s and --no-inline-into-try active, so not inlining %s into %s. Not inlining %s into %s because bytecode generation failed Inlining %s into %s%s (inside try-block)JSInlinerJSIntrinsicLoweringJSNativeContextSpecializationUseEnumCacheKeysAndIndicesUseEnumCacheKeysGenericJSStoreDataPropertyInLiteralJSStoreInArrayLiteralJSCallForwardVarargsJSCallJSCallWithArrayLikeJSCallWithSpreadJSCallRuntimeJSConstructForwardVarargsJSConstructJSConstructWithArrayLikeJSConstructWithSpreadJSLoadNamedJSLoadPropertyJSInstanceOfJSForInNextJSForInPrepareJSGeneratorStoreJSGeneratorRestoreRegisterJSStoreNamedJSStorePropertyJSStoreNamedOwnJSDeletePropertyJSCreateGeneratorObjectJSLoadGlobalJSStoreGlobalJSLoadContextJSStoreContextJSLoadModuleJSStoreModuleJSCreateArgumentsJSCreateArrayJSCreateArrayIteratorJSCreateCollectionIteratorJSCreateBoundFunctionJSCreateClosureJSCreateLiteralArrayJSCreateEmptyLiteralArrayJSCreateLiteralObjectJSCreateEmptyLiteralObjectJSCreateLiteralRegExpJSCreateFunctionContextJSCreateCatchContextJSCreateWithContextJSCreateBlockContextsloppyIterationKind::kKeysIterationKind::kValuesIterationKind::kEntriesCollectionKind::kMapCollectionKind::kSet!(collection_kind == CollectionKind::kSet && iteration_kind == IterationKind::kKeys)JSBitwiseOrJSBitwiseXorJSBitwiseAndJSShiftLeftJSShiftRightJSShiftRightLogicalJSSubtractJSMultiplyJSDivideJSModulusJSExponentiateJSBitwiseNotJSDecrementJSIncrementJSNegateJSToIntegerJSToLengthJSToNameJSToNumberJSToNumericJSToObjectJSToStringJSCreateJSCreateIterResultObjectJSCreateStringIteratorJSCreateKeyValueArrayJSCreatePromiseJSCreateTypedArrayJSCreateObjectJSObjectIsArrayJSHasPropertyJSHasInPrototypeChainJSOrdinaryHasInstanceJSForInEnumerateJSLoadMessageJSStoreMessageJSGeneratorRestoreContinuationJSGeneratorRestoreContextJSGeneratorRestoreInputOrDebugPosJSStackCheckJSDebuggerJSFulfillPromiseJSPerformPromiseThenJSPromiseResolveJSRejectPromiseJSResolvePromiseJSGetSuperConstructorJSParseIntJSAddJSEqualJSStrictEqualJSLessThanJSGreaterThanJSLessThanOrEqualJSGreaterThanOrEqualJSTypedLoweringjt [%d] B%d parallel move flags nop jmp other B%d -> B%d ../deps/v8/src/compiler/jump-threading.cc:163jt-fw nop @%d xx %d fw %d -> %d (recurse) fw %d -> %d (cycle) fw %d -> %d (forward) creating splinter for range %d between %d and %d visit #%d:%s#%d:%s state[%i]: #%d:%s no state[%i]: #%d:%s #%d:%s #%d:%s @ #%d:%s -> #%d:%s #%d:%s -> #%d:%s - checks: maps: elements: field %zu: LoadEliminationni.node->opcode() != IrOpcode::kReturnX #%d:%s Loop %d headed at #%d Loop depth = %d H#%d B#%d E#%dCannot peel loop %i. Loop exit without explicit mark: Node %i (%s) is inside loop, but its use %i (%s) is outside. Peeling loop with header: %i copy nodesNew upper bound for (loop New lower bound for Loop variables for loop %i: %iindex <= static_cast(1)MachineRepresentation::kBit == inferrer_->GetRepresentation(node->InputAt(0))MachineRepresentation::kTagged == inferrer_->GetRepresentation(node->InputAt(0))Node # in the machine graph is not being checked. has wrong type for: * input ) doesn't have a representation. is untyped. uses node # which doesn't have a kWord64 representation. which doesn't have a which doesn't have a tagged representation. which doesn't have a kFloat64 representation. which doesn't have a tagged or pointer representation. which doesn't have an int32-compatible representation. which doesn't have a kFloat32 representation.MachineOperatorReducer"nodeId" : , "reducer" : ", "phase" : "ProtectedStoreF32x4ExtractLaneF32x4ReplaceLaneF32x4GtF32x4GeI32x4ExtractLaneI32x4ReplaceLaneI32x4ShlI32x4ShrSI32x4LtSI32x4LeSI32x4ShrUI32x4LtUI32x4LeUI16x8ExtractLaneI16x8ReplaceLaneI16x8ShlI16x8ShrSI16x8LtSI16x8LeSI16x8ShrUI16x8LtUI16x8LeUI8x16ExtractLaneI8x16ReplaceLaneI8x16ShlI8x16ShrSI8x16LtSI8x16LeSI8x16ShrUI8x16LtUI8x16LeUS8x16ShuffleUnknownOpcodeno-value-usetruncate-to-booltruncate-to-word32truncate-to-word64truncate-to-float64 (identify zeros)truncate-to-float64 (distinguish zeros)no-truncation (but identify zeros)no-truncation (but distinguish zeros)Tried to combine incompatible truncationsoutput_type.Is(Type::Boolean())Truncation::Any(kIdentifyZeros) .IsLessGeneralThan(use_info.truncation())use_info.type_check() != TypeCheckKind::kNoneRepresentationChangerError: node #%d:%s of %s cannot be changed to %skMaxInlineDepth > current_depth_other.done()Unsupported opcode 0x%x:%s../deps/v8/src/compiler/wasm-compiler.cc:4688js-to-wasm-- Graph after change lowering -- ../deps/v8/src/compiler/wasm-compiler.cc:4788../deps/v8/src/compiler/wasm-compiler.cc:4860wasm-interpreter-entry-- Wasm interpreter entry graph -- ../deps/v8/src/compiler/wasm-compiler.cc:4921-- C Wasm entry graph -- ../deps/v8/src/compiler/wasm-compiler.cc:5078../deps/v8/src/compiler/wasm-compiler.cc:5101Compiling wasm function #%d failedCompiling wasm function #%d:%.*s failedwasm-call-Infinity0.'.' == buffer[fraction_cursor]| pc_offset= (delta=| saved at base follows rule in CIE | base_register=, base_offset=| base_offset= not modified from previous frame | nop .eh_frame: CIE .eh_frame: FDE | procedure_offset= | procedure_size= .eh_frame: terminator .eh_frame_hdr kSize == indexkSpecialReferenceCount == *indexdouble_absolute_constantdouble_negate_constantfloat_absolute_constantfloat_negate_constantLDoubleConstant::min_intdouble_constants.minus_one_halfLDoubleConstant::negative_infinityLDoubleConstant::one_halfthe_hole_nanuint32_biasBytecodes::bytecode_size_table_addresscheck_object_typeComputeSeededHashDeoptimizer::ComputeOutputFrames()copy_fast_number_jsarray_elements_to_typed_arraycopy_typed_array_elements_slicecopy_typed_array_elements_to_typed_arraycpu_featuresHandleScope::DeleteExtensionsf64_acos_wrapperf64_asin_wrapperf64_mod_wrapperfixed_typed_array_base_data_offsetJSDate::GetFieldbase::ieee754::acosbase::ieee754::acoshbase::ieee754::asinbase::ieee754::asinhbase::ieee754::atan2base::ieee754::atanbase::ieee754::atanhbase::ieee754::cbrtbase::ieee754::cosbase::ieee754::coshbase::ieee754::expbase::ieee754::expm1base::ieee754::log10base::ieee754::log1pbase::ieee754::log2base::ieee754::logbase::ieee754::sinbase::ieee754::sinhbase::ieee754::tanbase::ieee754::tanhIncrementalMarking::RecordWriteJSObject::InvalidatePrototypeChains()InvokeAccessorGetterCallbacklibc_memchrlibc_memcpylibc_memmovelibc_memsetLogger::EnterExternalLogger::LeaveExternalmod_two_doublesDeoptimizer::New()orderedhashmap_gethash_rawpower_double_double_functionprintfStoreBuffer::StoreBufferOverflowsearch_string_raw_one_onesearch_string_raw_one_twosearch_string_raw_two_onesearch_string_raw_two_twotry_internalize_string_functionwasm::call_trap_callback_for_testingwasm::clear_thread_in_wasm_flagwasm::f32_ceil_wrapperwasm::f32_floor_wrapperwasm::f32_nearest_int_wrapperwasm::f32_trunc_wrapperwasm::f64_ceil_wrapperwasm::f64_floor_wrapperwasm::f64_nearest_int_wrapperwasm::f64_trunc_wrapperwasm::float32_to_int64_wrapperwasm::float32_to_uint64_wrapperwasm::float64_powwasm::float64_to_int64_wrapperwasm::float64_to_uint64_wrapperwasm::int64_divwasm::int64_modwasm::int64_to_float32_wrapperwasm::int64_to_float64_wrapperwasm::set_thread_in_wasm_flagwasm::uint64_divwasm::uint64_modwasm::uint64_to_float32_wrapperwasm::uint64_to_float64_wrapperwasm::word32_ctzwasm::word32_popcntwasm::word32_rolwasm::word32_rorwasm::word64_ctzwasm::word64_popcntisolatebuiltinsIsolate::handle_scope_implementer_addressIsolate::pending_microtask_count_address()Interpreter::dispatch_countersInterpreter::dispatch_table_addressdate_cache_stampIsolate::stress_deopt_count_address()Isolate::force_slow_path_address()Heap::roots_array_start()Heap::allocation_sites_list_address()StackGuard::address_of_jslimit()StackGuard::address_of_real_jslimit()store_buffer_topheap_is_marking_flag_addressHeap::NewSpaceAllocationTopAddress()Heap::NewSpaceAllocationLimitAddress()Heap::OldSpaceAllocationTopAddressHeap::OldSpaceAllocationLimitAddressHandleScope::levelHandleScope::nextHandleScope::limitIsolate::scheduled_exceptionaddress_of_pending_message_objget_or_create_hash_rawjsreceiver_create_identity_hashIsolate::promise_hook_or_debug_is_active_address()Debug::is_active_address()Debug::hook_on_function_call_address()Isolate::debug_execution_mode()Runtime::runtime_function_table_address()Debug::step_in_enabled_address()Isolate::is_profilingDebug::step_suspended_generator_address()Debug::restart_fp_address()RegExpStack::limit_address()RegExpStack::memory_address()RegExpStack::memory_size()OffsetsVector::static_offsets_vectorNativeRegExpMacroAssembler::CaseInsensitiveCompareUC16()RegExpMacroAssembler*::CheckStackGuardState()NativeRegExpMacroAssembler::GrowStack()NativeRegExpMacroAssembler::word_character_mapkSpecialReferenceCount + kExternalReferenceCount == *indexBuiltin_HandleApiCallBuiltin_HandleApiCallAsFunctionBuiltin_HandleApiCallAsConstructorBuiltin_EmptyFunctionBuiltin_IllegalBuiltin_StrictPoisonPillThrowerBuiltin_UnsupportedThrowerBuiltin_ArrayConcatBuiltin_ArrayPopBuiltin_ArrayPushBuiltin_ArrayShiftBuiltin_ArraySpliceBuiltin_ArrayUnshiftBuiltin_ArrayBufferConstructorBuiltin_ArrayBufferConstructor_DoNotInitializeBuiltin_ArrayBufferPrototypeGetByteLengthBuiltin_ArrayBufferIsViewBuiltin_ArrayBufferPrototypeSliceBuiltin_BigIntConstructorBuiltin_BigIntAsUintNBuiltin_BigIntAsIntNBuiltin_BigIntPrototypeToLocaleStringBuiltin_BigIntPrototypeToStringBuiltin_BigIntPrototypeValueOfBuiltin_BooleanConstructorBuiltin_CallSitePrototypeGetColumnNumberBuiltin_CallSitePrototypeGetEvalOriginBuiltin_CallSitePrototypeGetFileNameBuiltin_CallSitePrototypeGetFunctionBuiltin_CallSitePrototypeGetFunctionNameBuiltin_CallSitePrototypeGetLineNumberBuiltin_CallSitePrototypeGetMethodNameBuiltin_CallSitePrototypeGetPositionBuiltin_CallSitePrototypeGetScriptNameOrSourceURLBuiltin_CallSitePrototypeGetThisBuiltin_CallSitePrototypeGetTypeNameBuiltin_CallSitePrototypeIsConstructorBuiltin_CallSitePrototypeIsEvalBuiltin_CallSitePrototypeIsNativeBuiltin_CallSitePrototypeIsToplevelBuiltin_CallSitePrototypeToStringBuiltin_ConsoleDebugBuiltin_ConsoleErrorBuiltin_ConsoleInfoBuiltin_ConsoleLogBuiltin_ConsoleWarnBuiltin_ConsoleDirBuiltin_ConsoleDirXmlBuiltin_ConsoleTableBuiltin_ConsoleTraceBuiltin_ConsoleGroupBuiltin_ConsoleGroupCollapsedBuiltin_ConsoleGroupEndBuiltin_ConsoleClearBuiltin_ConsoleCountBuiltin_ConsoleCountResetBuiltin_ConsoleAssertBuiltin_ConsoleMarkTimelineBuiltin_ConsoleProfileBuiltin_ConsoleProfileEndBuiltin_ConsoleTimelineBuiltin_ConsoleTimelineEndBuiltin_ConsoleTimeBuiltin_ConsoleTimeEndBuiltin_ConsoleTimeStampBuiltin_ConsoleContextBuiltin_DataViewConstructorBuiltin_DataViewPrototypeGetBufferBuiltin_DataViewPrototypeGetByteLengthBuiltin_DataViewPrototypeGetByteOffsetBuiltin_DataViewPrototypeGetInt8Builtin_DataViewPrototypeSetInt8Builtin_DataViewPrototypeGetUint8Builtin_DataViewPrototypeSetUint8Builtin_DataViewPrototypeGetInt16Builtin_DataViewPrototypeSetInt16Builtin_DataViewPrototypeGetUint16Builtin_DataViewPrototypeSetUint16Builtin_DataViewPrototypeGetInt32Builtin_DataViewPrototypeSetInt32Builtin_DataViewPrototypeGetUint32Builtin_DataViewPrototypeSetUint32Builtin_DataViewPrototypeGetFloat32Builtin_DataViewPrototypeSetFloat32Builtin_DataViewPrototypeGetFloat64Builtin_DataViewPrototypeSetFloat64Builtin_DataViewPrototypeGetBigInt64Builtin_DataViewPrototypeSetBigInt64Builtin_DataViewPrototypeGetBigUint64Builtin_DataViewPrototypeSetBigUint64Builtin_DateConstructorBuiltin_DatePrototypeGetYearBuiltin_DatePrototypeSetYearBuiltin_DateNowBuiltin_DateParseBuiltin_DatePrototypeSetDateBuiltin_DatePrototypeSetFullYearBuiltin_DatePrototypeSetHoursBuiltin_DatePrototypeSetMillisecondsBuiltin_DatePrototypeSetMinutesBuiltin_DatePrototypeSetMonthBuiltin_DatePrototypeSetSecondsBuiltin_DatePrototypeSetTimeBuiltin_DatePrototypeSetUTCDateBuiltin_DatePrototypeSetUTCFullYearBuiltin_DatePrototypeSetUTCHoursBuiltin_DatePrototypeSetUTCMillisecondsBuiltin_DatePrototypeSetUTCMinutesBuiltin_DatePrototypeSetUTCMonthBuiltin_DatePrototypeSetUTCSecondsBuiltin_DatePrototypeToDateStringBuiltin_DatePrototypeToISOStringBuiltin_DatePrototypeToUTCStringBuiltin_DatePrototypeToStringBuiltin_DatePrototypeToTimeStringBuiltin_DatePrototypeToJsonBuiltin_DateUTCBuiltin_ErrorConstructorBuiltin_ErrorCaptureStackTraceBuiltin_ErrorPrototypeToStringBuiltin_MakeErrorBuiltin_MakeRangeErrorBuiltin_MakeSyntaxErrorBuiltin_MakeTypeErrorBuiltin_MakeURIErrorBuiltin_FunctionConstructorBuiltin_FunctionPrototypeBindBuiltin_FunctionPrototypeToStringBuiltin_GeneratorFunctionConstructorBuiltin_AsyncFunctionConstructorBuiltin_GlobalDecodeURIBuiltin_GlobalDecodeURIComponentBuiltin_GlobalEncodeURIBuiltin_GlobalEncodeURIComponentBuiltin_GlobalEscapeBuiltin_GlobalUnescapeBuiltin_GlobalEvalBuiltin_JsonParseBuiltin_JsonStringifyBuiltin_MapPrototypeClearBuiltin_MathHypotBuiltin_NumberPrototypeToExponentialBuiltin_NumberPrototypeToFixedBuiltin_NumberPrototypeToLocaleStringBuiltin_NumberPrototypeToPrecisionBuiltin_NumberPrototypeToStringBuiltin_ObjectDefineGetterBuiltin_ObjectDefinePropertiesBuiltin_ObjectDefinePropertyBuiltin_ObjectDefineSetterBuiltin_ObjectFreezeBuiltin_ObjectGetOwnPropertyDescriptorsBuiltin_ObjectGetOwnPropertyNamesBuiltin_ObjectGetOwnPropertySymbolsBuiltin_ObjectGetPrototypeOfBuiltin_ObjectSetPrototypeOfBuiltin_ObjectIsExtensibleBuiltin_ObjectIsFrozenBuiltin_ObjectIsSealedBuiltin_ObjectLookupGetterBuiltin_ObjectLookupSetterBuiltin_ObjectPreventExtensionsBuiltin_ObjectPrototypePropertyIsEnumerableBuiltin_ObjectPrototypeGetProtoBuiltin_ObjectPrototypeSetProtoBuiltin_ObjectSealBuiltin_IsPromiseBuiltin_ReflectDefinePropertyBuiltin_ReflectDeletePropertyBuiltin_ReflectGetBuiltin_ReflectGetOwnPropertyDescriptorBuiltin_ReflectGetPrototypeOfBuiltin_ReflectIsExtensibleBuiltin_ReflectOwnKeysBuiltin_ReflectPreventExtensionsBuiltin_ReflectSetBuiltin_ReflectSetPrototypeOfBuiltin_RegExpCapture1GetterBuiltin_RegExpCapture2GetterBuiltin_RegExpCapture3GetterBuiltin_RegExpCapture4GetterBuiltin_RegExpCapture5GetterBuiltin_RegExpCapture6GetterBuiltin_RegExpCapture7GetterBuiltin_RegExpCapture8GetterBuiltin_RegExpCapture9GetterBuiltin_RegExpInputGetterBuiltin_RegExpInputSetterBuiltin_RegExpLastMatchGetterBuiltin_RegExpLastParenGetterBuiltin_RegExpLeftContextGetterBuiltin_RegExpPrototypeToStringBuiltin_RegExpRightContextGetterBuiltin_SetPrototypeClearBuiltin_SharedArrayBufferPrototypeGetByteLengthBuiltin_SharedArrayBufferPrototypeSliceBuiltin_AtomicsIsLockFreeBuiltin_AtomicsWaitBuiltin_AtomicsWakeBuiltin_StringFromCodePointBuiltin_StringPrototypeEndsWithBuiltin_StringPrototypeLastIndexOfBuiltin_StringPrototypeLocaleCompareBuiltin_StringPrototypeStartsWithBuiltin_StringRawBuiltin_SymbolConstructorBuiltin_SymbolForBuiltin_SymbolKeyForBuiltin_TypedArrayPrototypeBufferBuiltin_TypedArrayPrototypeCopyWithinBuiltin_TypedArrayPrototypeFillBuiltin_TypedArrayPrototypeIncludesBuiltin_TypedArrayPrototypeIndexOfBuiltin_TypedArrayPrototypeLastIndexOfBuiltin_TypedArrayPrototypeReverseBuiltin_AsyncGeneratorFunctionConstructorBuiltin_IsTraceCategoryEnabledBuiltin_TraceBuiltin_StringPrototypeNormalizeBuiltin_StringPrototypeToLocaleLowerCaseBuiltin_StringPrototypeToLocaleUpperCaseBuiltin_StringPrototypeToLowerCaseBuiltin_StringPrototypeToUpperCasekSpecialReferenceCount + kExternalReferenceCount + kBuiltinsReferenceCount == *indexRuntime::WasmCompileLazyRuntime::DebugBreakOnBytecodeRuntime::LoadLookupSlotForCallRuntime::ArrayIncludes_SlowRuntime::ArrayIndexOfRuntime::ArrayIsArrayRuntime::ArraySpeciesConstructorRuntime::EstimateNumberOfElementsRuntime::GetArrayKeysRuntime::GrowArrayElementsRuntime::HasComplexElementsRuntime::IsArrayRuntime::MoveArrayContentsRuntime::NewArrayRuntime::NormalizeElementsRuntime::PrepareElementsForSortRuntime::TransitionElementsKindRuntime::TrySliceSimpleNonFastElementsRuntime::AtomicsAddRuntime::AtomicsAndRuntime::AtomicsCompareExchangeRuntime::AtomicsExchangeRuntime::AtomicsNumWaitersForTestingRuntime::AtomicsOrRuntime::AtomicsSubRuntime::AtomicsXorRuntime::SetAllowAtomicsWaitRuntime::BigIntBinaryOpRuntime::BigIntCompareToBigIntRuntime::BigIntCompareToNumberRuntime::BigIntCompareToStringRuntime::BigIntEqualToBigIntRuntime::BigIntEqualToNumberRuntime::BigIntEqualToStringRuntime::BigIntToBooleanRuntime::BigIntToNumberRuntime::BigIntUnaryOpRuntime::ToBigIntRuntime::DefineClassRuntime::GetSuperConstructorRuntime::HomeObjectSymbolRuntime::LoadFromSuperRuntime::LoadKeyedFromSuperRuntime::StoreKeyedToSuper_SloppyRuntime::StoreKeyedToSuper_StrictRuntime::StoreToSuper_SloppyRuntime::StoreToSuper_StrictRuntime::ThrowConstructorNonCallableErrorRuntime::ThrowNotSuperConstructorRuntime::ThrowStaticPrototypeErrorRuntime::ThrowSuperAlreadyCalledErrorRuntime::ThrowSuperNotCalledRuntime::ThrowUnsupportedSuperErrorRuntime::GetWeakMapEntriesRuntime::GetWeakSetValuesRuntime::IsJSMapRuntime::IsJSSetRuntime::IsJSWeakMapRuntime::IsJSWeakSetRuntime::MapGrowRuntime::MapIteratorCloneRuntime::MapShrinkRuntime::SetGrowRuntime::SetIteratorCloneRuntime::SetShrinkRuntime::TheHoleRuntime::WeakCollectionDeleteRuntime::WeakCollectionSetRuntime::CompileForOnStackReplacementRuntime::CompileLazyRuntime::CompileOptimized_ConcurrentRuntime::CompileOptimized_NotConcurrentRuntime::EvictOptimizedCodeSlotRuntime::FunctionFirstExecutionRuntime::InstantiateAsmJsRuntime::NotifyDeoptimizedRuntime::ResolvePossiblyDirectEvalRuntime::DateCurrentTimeRuntime::IsDateRuntime::ChangeBreakOnExceptionRuntime::CheckExecutionStateRuntime::ClearSteppingRuntime::CollectGarbageRuntime::DebugApplyInstrumentationRuntime::DebugAsyncFunctionPromiseCreatedRuntime::DebugBreakAtEntryRuntime::DebugCollectCoverageRuntime::DebugConstructedByRuntime::DebugEvaluateRuntime::DebugEvaluateGlobalRuntime::DebugGetInternalPropertiesRuntime::DebugGetLoadedScriptsRuntime::DebugGetPropertyRuntime::DebugGetPropertyDetailsRuntime::DebugGetPrototypeRuntime::DebugIsActiveRuntime::DebugOnFunctionCallRuntime::DebugPopPromiseRuntime::DebugPrepareStepInSuspendedGeneratorRuntime::DebugPropertyAttributesFromDetailsRuntime::DebugPropertyKindFromDetailsRuntime::DebugPushPromiseRuntime::DebugReferencedByRuntime::DebugSetScriptSourceRuntime::DebugToggleBlockCoverageRuntime::DebugTogglePreciseCoverageRuntime::FunctionGetDebugNameRuntime::FunctionGetInferredNameRuntime::GetAllScopesDetailsRuntime::GetBreakLocationsRuntime::GetDebugContextRuntime::GetFrameCountRuntime::GetFrameDetailsRuntime::GetFunctionScopeCountRuntime::GetFunctionScopeDetailsRuntime::GetGeneratorScopeCountRuntime::GetGeneratorScopeDetailsRuntime::GetHeapUsageRuntime::GetScopeCountRuntime::GetScopeDetailsRuntime::GetScriptRuntime::HandleDebuggerStatementRuntime::IncBlockCounterRuntime::IsBreakOnExceptionRuntime::PrepareStepRuntime::ScheduleBreakRuntime::ScriptLineCountRuntime::ScriptLocationFromLine2Runtime::ScriptLocationFromLineRuntime::ScriptPositionInfo2Runtime::ScriptPositionInfoRuntime::SetScopeVariableValueRuntime::ErrorToStringRuntime::ForInEnumerateRuntime::ForInHasPropertyRuntime::CallRuntime::FunctionGetContextDataRuntime::FunctionGetNameRuntime::FunctionGetScriptRuntime::FunctionGetScriptIdRuntime::FunctionGetScriptSourcePositionRuntime::FunctionGetSourceCodeRuntime::FunctionIsAPIFunctionRuntime::FunctionToStringRuntime::IsConstructorRuntime::IsFunctionRuntime::SetCodeRuntime::SetNativeFlagRuntime::AsyncGeneratorHasCatchHandlerForPCRuntime::AsyncGeneratorRejectRuntime::AsyncGeneratorResolveRuntime::AsyncGeneratorYieldRuntime::CreateJSGeneratorObjectRuntime::GeneratorCloseRuntime::GeneratorGetContinuationRuntime::GeneratorGetFunctionRuntime::GeneratorGetInputOrDebugPosRuntime::GeneratorGetReceiverRuntime::GeneratorGetResumeModeRuntime::GeneratorGetSourcePositionRuntime::ElementsTransitionAndStoreIC_MissRuntime::KeyedLoadIC_MissRuntime::KeyedStoreIC_MissRuntime::KeyedStoreIC_SlowRuntime::LoadElementWithInterceptorRuntime::LoadGlobalIC_MissRuntime::LoadGlobalIC_SlowRuntime::LoadIC_MissRuntime::LoadPropertyWithInterceptorRuntime::StoreCallbackPropertyRuntime::StoreGlobalIC_MissRuntime::StoreGlobalIC_SlowRuntime::StoreIC_MissRuntime::StoreInArrayLiteralIC_SlowRuntime::StorePropertyWithInterceptorRuntime::AllocateInNewSpaceRuntime::AllocateInTargetSpaceRuntime::AllocateSeqOneByteStringRuntime::AllocateSeqTwoByteStringRuntime::AllowDynamicFunctionRuntime::CheckIsBootstrappingRuntime::CreateAsyncFromSyncIteratorRuntime::CreateListFromArrayLikeRuntime::CreateTemplateObjectRuntime::DeserializeLazyRuntime::ExportFromRuntimeRuntime::GetAndResetRuntimeCallStatsRuntime::IncrementUseCounterRuntime::InstallToContextRuntime::InterruptRuntime::IS_VARRuntime::NewReferenceErrorRuntime::NewSyntaxErrorRuntime::NewTypeErrorRuntime::OrdinaryHasInstanceRuntime::PromoteScheduledExceptionRuntime::ReportMessageRuntime::ReThrowRuntime::RunMicrotaskCallbackRuntime::RunMicrotasksRuntime::StackGuardRuntime::ThrowRuntime::ThrowApplyNonFunctionRuntime::ThrowCalledNonCallableRuntime::ThrowConstructedNonConstructableRuntime::ThrowConstructorReturnedNonObjectRuntime::ThrowInvalidStringLengthRuntime::ThrowInvalidTypedArrayAlignmentRuntime::ThrowIteratorResultNotAnObjectRuntime::ThrowNotConstructorRuntime::ThrowRangeErrorRuntime::ThrowReferenceErrorRuntime::ThrowStackOverflowRuntime::ThrowSymbolAsyncIteratorInvalidRuntime::ThrowSymbolIteratorInvalidRuntime::ThrowThrowMethodMissingRuntime::ThrowTypeErrorRuntime::TypeofRuntime::UnwindAndFindExceptionHandlerRuntime::InterpreterDeserializeLazyRuntime::CreateArrayLiteralRuntime::CreateObjectLiteralRuntime::CreateRegExpLiteralRuntime::LiveEditCheckAndDropActivationsRuntime::LiveEditCompareStringsRuntime::LiveEditFindSharedFunctionInfosForScriptRuntime::LiveEditFixupScriptRuntime::LiveEditFunctionSetScriptRuntime::LiveEditFunctionSourceUpdatedRuntime::LiveEditGatherCompileInfoRuntime::LiveEditPatchFunctionPositionsRuntime::LiveEditReplaceFunctionCodeRuntime::LiveEditReplaceRefToNestedFunctionRuntime::LiveEditReplaceScriptRuntime::LiveEditRestartFrameRuntime::GenerateRandomNumbersRuntime::DynamicImportCallRuntime::GetImportMetaObjectRuntime::GetModuleNamespaceRuntime::GetHoleNaNLowerRuntime::GetHoleNaNUpperRuntime::IsSmiRuntime::IsValidSmiRuntime::MaxSmiRuntime::NumberToStringSkipCacheRuntime::SmiLexicographicCompareRuntime::StringParseFloatRuntime::StringParseIntRuntime::StringToNumberRuntime::AddDictionaryPropertyRuntime::AddElementRuntime::AddNamedPropertyRuntime::AddPrivateFieldRuntime::AllocateHeapNumberRuntime::ClassOfRuntime::CollectTypeProfileRuntime::CompleteInobjectSlackTrackingForMapRuntime::CopyDataPropertiesRuntime::CopyDataPropertiesWithExcludedPropertiesRuntime::CreateDataPropertyRuntime::CreateIterResultObjectRuntime::DefineAccessorPropertyUncheckedRuntime::DefineDataPropertyInLiteralRuntime::DefineGetterPropertyUncheckedRuntime::DefineMethodsInternalRuntime::DefineSetterPropertyUncheckedRuntime::DeletePropertyRuntime::GetFunctionNameRuntime::GetInterceptorInfoRuntime::GetOwnPropertyDescriptorRuntime::GetOwnPropertyKeysRuntime::GetPropertyRuntime::GetPrototypeRuntime::HasFastPackedElementsRuntime::HasInPrototypeChainRuntime::HasPropertyRuntime::InternalSetPrototypeRuntime::IsJSReceiverRuntime::IterableToListCanBeElidedRuntime::KeyedGetPropertyRuntime::NewObjectRuntime::ObjectCreateRuntime::ObjectEntriesRuntime::ObjectEntriesSkipFastPathRuntime::ObjectHasOwnPropertyRuntime::ObjectKeysRuntime::ObjectValuesRuntime::ObjectValuesSkipFastPathRuntime::OptimizeObjectForAddingMultiplePropertiesRuntime::SameValueRuntime::SameValueZeroRuntime::SetDataPropertiesRuntime::SetPropertyRuntime::ShrinkPropertyDictionaryRuntime::ToFastPropertiesRuntime::ToIntegerRuntime::ToLengthRuntime::ToNameRuntime::ToNumberRuntime::ToNumericRuntime::ToObjectRuntime::ToPrimitiveRuntime::ToPrimitive_NumberRuntime::ToStringRuntime::TryMigrateInstanceRuntime::ValueOfRuntime::AddRuntime::EqualRuntime::GreaterThanRuntime::GreaterThanOrEqualRuntime::LessThanRuntime::LessThanOrEqualRuntime::NotEqualRuntime::StrictEqualRuntime::StrictNotEqualRuntime::EnqueueMicrotaskRuntime::PromiseHookAfterRuntime::PromiseHookBeforeRuntime::PromiseHookInitRuntime::PromiseMarkAsHandledRuntime::PromiseRejectEventFromStackRuntime::PromiseResultRuntime::PromiseRevokeRejectRuntime::PromiseStatusRuntime::RejectPromiseRuntime::ResolvePromiseRuntime::PromiseRejectAfterResolvedRuntime::PromiseResolveAfterResolvedRuntime::CheckProxyGetSetTrapResultRuntime::CheckProxyHasTrapRuntime::GetPropertyWithReceiverRuntime::IsJSProxyRuntime::JSProxyGetHandlerRuntime::JSProxyGetTargetRuntime::SetPropertyWithReceiverRuntime::IsRegExpRuntime::RegExpExecRuntime::RegExpExecMultipleRuntime::RegExpInitializeAndCompileRuntime::RegExpInternalReplaceRuntime::RegExpReplaceRuntime::RegExpSplitRuntime::StringReplaceNonGlobalRegExpWithFunctionRuntime::StringSplitRuntime::DeclareEvalFunctionRuntime::DeclareEvalVarRuntime::DeclareGlobalsRuntime::DeleteLookupSlotRuntime::LoadLookupSlotRuntime::LoadLookupSlotInsideTypeofRuntime::NewArgumentsElementsRuntime::NewClosureRuntime::NewClosure_TenuredRuntime::NewFunctionContextRuntime::NewRestParameterRuntime::NewScriptContextRuntime::NewSloppyArgumentsRuntime::NewSloppyArguments_GenericRuntime::NewStrictArgumentsRuntime::PushBlockContextRuntime::PushCatchContextRuntime::PushModuleContextRuntime::PushWithContextRuntime::StoreLookupSlot_SloppyRuntime::StoreLookupSlot_SloppyHoistingRuntime::StoreLookupSlot_StrictRuntime::ThrowConstAssignErrorRuntime::FlattenStringRuntime::GetSubstitutionRuntime::InternalizeStringRuntime::SparseJoinWithSeparatorRuntime::StringAddRuntime::StringBuilderConcatRuntime::StringBuilderJoinRuntime::StringCharCodeAtRuntime::StringCharFromCodeRuntime::StringEqualRuntime::StringGreaterThanRuntime::StringGreaterThanOrEqualRuntime::StringIncludesRuntime::StringIndexOfRuntime::StringIndexOfUncheckedRuntime::StringLastIndexOfRuntime::StringLessThanRuntime::StringLessThanOrEqualRuntime::StringMaxLengthRuntime::StringNotEqualRuntime::StringReplaceOneCharWithStringRuntime::StringSubstringRuntime::StringToArrayRuntime::StringTrimRuntime::CreatePrivateFieldSymbolRuntime::CreatePrivateSymbolRuntime::SymbolDescriptionRuntime::SymbolDescriptiveStringRuntime::SymbolIsPrivateRuntime::AbortRuntime::AbortJSRuntime::ClearFunctionFeedbackRuntime::CompleteInobjectSlackTrackingRuntime::ConstructConsStringRuntime::ConstructSlicedStringRuntime::ConstructDoubleRuntime::DebugPrintRuntime::DebugTraceRuntime::DebugTrackRetainingPathRuntime::DeoptimizeFunctionRuntime::DeoptimizeNowRuntime::DeserializeWasmModuleRuntime::DisallowCodegenFromStringsRuntime::DisallowWasmCodegenRuntime::DisassembleFunctionRuntime::FreezeWasmLazyCompilationRuntime::GetCallableRuntime::GetDeoptCountRuntime::GetOptimizationStatusRuntime::GetUndetectableRuntime::GetWasmRecoveredTrapCountRuntime::GlobalPrintRuntime::HasDictionaryElementsRuntime::HasDoubleElementsRuntime::HasFastElementsRuntime::HasFastPropertiesRuntime::HasFixedBigInt64ElementsRuntime::HasFixedBigUint64ElementsRuntime::HasFixedFloat32ElementsRuntime::HasFixedFloat64ElementsRuntime::HasFixedInt16ElementsRuntime::HasFixedInt32ElementsRuntime::HasFixedInt8ElementsRuntime::HasFixedUint16ElementsRuntime::HasFixedUint32ElementsRuntime::HasFixedUint8ClampedElementsRuntime::HasFixedUint8ElementsRuntime::HasHoleyElementsRuntime::HasObjectElementsRuntime::HasSloppyArgumentsElementsRuntime::HasSmiElementsRuntime::HasSmiOrObjectElementsRuntime::HaveSameMapRuntime::HeapObjectVerifyRuntime::InNewSpaceRuntime::IsAsmWasmCodeRuntime::IsConcurrentRecompilationSupportedRuntime::IsJSErrorRuntime::IsJSGeneratorObjectRuntime::IsJSMapIteratorRuntime::IsJSSetIteratorRuntime::IsLiftoffFunctionRuntime::IsScriptWrapperRuntime::IsWasmCodeRuntime::IsWasmTrapHandlerEnabledRuntime::NativeScriptsCountRuntime::NeverOptimizeFunctionRuntime::NotifyContextDisposedRuntime::OptimizeFunctionOnNextCallRuntime::OptimizeOsrRuntime::PrintWithNameForAssertRuntime::RedirectToWasmInterpreterRuntime::RunningInSimulatorRuntime::SerializeWasmModuleRuntime::SetAllocationTimeoutRuntime::SetFlagsRuntime::SetForceSlowPathRuntime::SetWasmCompileControlsRuntime::SetWasmInstantiateControlsRuntime::ArraySpeciesProtectorRuntime::TypedArraySpeciesProtectorRuntime::PromiseSpeciesProtectorRuntime::SystemBreakRuntime::TraceEnterRuntime::TraceExitRuntime::UnblockConcurrentRecompilationRuntime::ValidateWasmInstancesChainRuntime::ValidateWasmModuleStateRuntime::WasmNumInterpretedCallsRuntime::WasmTraceMemoryRuntime::ArrayBufferNeuterRuntime::ArrayBufferViewWasNeuteredRuntime::IsTypedArrayRuntime::TypedArrayCopyElementsRuntime::TypedArrayGetBufferRuntime::TypedArrayGetLengthRuntime::TypedArraySetRuntime::TypedArraySortFastRuntime::ThrowWasmErrorRuntime::ThrowWasmStackOverflowRuntime::WasmExceptionGetElementRuntime::WasmExceptionSetElementRuntime::WasmGetExceptionRuntimeIdRuntime::WasmGrowMemoryRuntime::WasmRunInterpreterRuntime::WasmStackGuardRuntime::WasmThrowRuntime::WasmThrowCreateRuntime::WasmThrowTypeErrorkSpecialReferenceCount + kExternalReferenceCount + kBuiltinsReferenceCount + kRuntimeReferenceCount == *indexIsolate::handler_addressIsolate::c_entry_fp_addressIsolate::c_function_addressIsolate::context_addressIsolate::pending_exception_addressIsolate::pending_handler_context_addressIsolate::pending_handler_entrypoint_addressIsolate::pending_handler_constant_pool_addressIsolate::pending_handler_fp_addressIsolate::pending_handler_sp_addressIsolate::external_caught_exception_addressIsolate::js_entry_sp_addresskSpecialReferenceCount + kExternalReferenceCount + kBuiltinsReferenceCount + kRuntimeReferenceCount + kIsolateAddressReferenceCount == *indexAccessors::ArgumentsIteratorGetterAccessors::ArrayLengthGetterAccessors::BoundFunctionLengthGetterAccessors::BoundFunctionNameGetterAccessors::ErrorStackGetterAccessors::FunctionArgumentsGetterAccessors::FunctionCallerGetterAccessors::FunctionNameGetterAccessors::FunctionLengthGetterAccessors::FunctionPrototypeGetterAccessors::ScriptColumnOffsetGetterAccessors::ScriptCompilationTypeGetterAccessors::ScriptContextDataGetterAccessors::ScriptEvalFromScriptGetterAccessors::ScriptEvalFromScriptPositionGetterAccessors::ScriptEvalFromFunctionNameGetterAccessors::ScriptIdGetterAccessors::ScriptLineOffsetGetterAccessors::ScriptNameGetterAccessors::ScriptSourceGetterAccessors::ScriptTypeGetterAccessors::ScriptSourceUrlGetterAccessors::ScriptSourceMappingUrlGetterAccessors::StringLengthGetterAccessors::ArrayLengthSetterAccessors::ErrorStackSetterAccessors::FunctionPrototypeSetterAccessors::ModuleNamespaceEntrySetterAccessors::ReconfigureToDataPropertykSpecialReferenceCount + kExternalReferenceCount + kBuiltinsReferenceCount + kRuntimeReferenceCount + kIsolateAddressReferenceCount + kAccessorReferenceCount == *indexLoad StubCache::primary_->keyLoad StubCache::primary_->valueLoad StubCache::primary_->mapLoad StubCache::secondary_->keyLoad StubCache::secondary_->valueLoad StubCache::secondary_->mapStore StubCache::primary_->keyStore StubCache::primary_->valueStore StubCache::primary_->mapStore StubCache::secondary_->keyStore StubCache::secondary_->valueStore StubCache::secondary_->mapkSpecialReferenceCount + kExternalReferenceCount + kBuiltinsReferenceCount + kRuntimeReferenceCount + kIsolateAddressReferenceCount + kAccessorReferenceCount + kStubCacheReferenceCount == *indexClass(array_buffers_.empty()emptyStarting concurrent marking task %d ConcurrentMarking::Run PreemptedTask %d concurrently marked %dKB in %.2fms Scheduling concurrent marking task %d cached_wrappers_to_trace_.empty()no actionincremental step; finalized markingfull GCcontexts_disposed=%d contexts_disposal_rate=%f size_of_objects=%zu incremental_marking_stopped=%d V8.GC_MC_INCREMENTALV8.GC_MC_INCREMENTAL_STARTV8.GC_MC_INCREMENTAL_SWEEPINGV8.GC_MC_INCREMENTAL_WRAPPER_PROLOGUEV8.GC_MC_INCREMENTAL_WRAPPER_TRACINGV8.GC_MC_INCREMENTAL_FINALIZEV8.GC_MC_INCREMENTAL_FINALIZE_BODYV8.GC_MC_INCREMENTAL_EXTERNAL_EPILOGUEV8.GC_MC_INCREMENTAL_EXTERNAL_PROLOGUEV8.GC_HEAP_EPILOGUEV8.GC_HEAP_EPILOGUE_REDUCE_NEW_SPACEV8.GC_HEAP_EXTERNAL_EPILOGUEV8.GC_HEAP_EXTERNAL_PROLOGUEV8.GC_HEAP_EXTERNAL_WEAK_GLOBAL_HANDLESV8.GC_HEAP_PROLOGUEV8.GC_MC_CLEARV8.GC_MC_CLEAR_DEPENDENT_CODEV8.GC_MC_CLEAR_MAPSV8.GC_MC_CLEAR_SLOTS_BUFFERV8.GC_MC_CLEAR_STORE_BUFFERV8.GC_MC_CLEAR_STRING_TABLEV8.GC_MC_CLEAR_WEAK_CELLSV8.GC_MC_CLEAR_WEAK_COLLECTIONSV8.GC_MC_CLEAR_WEAK_LISTSV8.GC_MC_CLEAR_WEAK_REFERENCESV8.GC_MC_EPILOGUEV8.GC_MC_EVACUATEV8.GC_MC_EVACUATE_CANDIDATESV8.GC_MC_EVACUATE_CLEAN_UPV8.GC_MC_EVACUATE_COPYV8.GC_MC_EVACUATE_EPILOGUEV8.GC_MC_EVACUATE_PROLOGUEV8.GC_MC_EVACUATE_REBALANCEV8.GC_MC_EVACUATE_UPDATE_POINTERSV8.GC_MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAINV8.GC_MC_EVACUATE_UPDATE_POINTERS_SLOTS_MAP_SPACEV8.GC_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTSV8.GC_MC_EVACUATE_UPDATE_POINTERS_WEAKV8.GC_MC_FINISHV8.GC_MC_MARKV8.GC_MC_MARK_FINISH_INCREMENTALV8.GC_MC_MARK_MAINV8.GC_MC_MARK_ROOTSV8.GC_MC_MARK_WEAK_CLOSUREV8.GC_MC_MARK_WEAK_CLOSURE_EPHEMERALV8.GC_MC_MARK_WEAK_CLOSURE_WEAK_HANDLESV8.GC_MC_MARK_WEAK_CLOSURE_WEAK_ROOTSV8.GC_MC_MARK_WEAK_CLOSURE_HARMONYV8.GC_MC_MARK_WRAPPER_EPILOGUEV8.GC_MC_MARK_WRAPPER_PROLOGUEV8.GC_MC_MARK_WRAPPER_TRACINGV8.GC_MC_PROLOGUEV8.GC_MC_SWEEPV8.GC_MC_SWEEP_CODEV8.GC_MC_SWEEP_MAPV8.GC_MC_SWEEP_OLDV8.GC_MINOR_MCV8.GC_MINOR_MC_CLEARV8.GC_MINOR_MC_CLEAR_STRING_TABLEV8.GC_MINOR_MC_CLEAR_WEAK_LISTSV8.GC_MINOR_MC_EVACUATEV8.GC_MINOR_MC_EVACUATE_CLEAN_UPV8.GC_MINOR_MC_EVACUATE_COPYV8.GC_MINOR_MC_EVACUATE_EPILOGUEV8.GC_MINOR_MC_EVACUATE_PROLOGUEV8.GC_MINOR_MC_EVACUATE_REBALANCEV8.GC_MINOR_MC_EVACUATE_UPDATE_POINTERSV8.GC_MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTSV8.GC_MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTSV8.GC_MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAKV8.GC_MINOR_MC_MARKV8.GC_MINOR_MC_MARK_GLOBAL_HANDLESV8.GC_MINOR_MC_MARK_SEEDV8.GC_MINOR_MC_MARK_ROOTSV8.GC_MINOR_MC_MARK_WEAKV8.GC_MINOR_MC_MARKING_DEQUEV8.GC_MINOR_MC_RESET_LIVENESSV8.GC_MINOR_MC_SWEEPINGV8.GC_SCAVENGER_FAST_PROMOTEV8.GC_SCAVENGER_SCAVENGEV8.GC_SCAVENGER_PROCESS_ARRAY_BUFFERSV8.GC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_IDENTIFYV8.GC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESSV8.GC_SCAVENGER_SCAVENGE_PARALLELV8.GC_SCAVENGER_SCAVENGE_ROOTSV8.GC_SCAVENGER_SCAVENGE_WEAKV8.GC_BACKGROUND_ARRAY_BUFFER_FREEV8.GC_BACKGROUND_STORE_BUFFERV8.GC_BACKGROUND_UNMAPPERV8.GC_MC_BACKGROUND_EVACUATE_COPYV8.GC_MC_BACKGROUND_EVACUATE_UPDATE_POINTERSV8.GC_MC_BACKGROUND_MARKINGV8.GC_MC_BACKGROUND_SWEEPINGV8.GC_MINOR_MC_BACKGROUND_EVACUATE_COPYV8.GC_MINOR_MC_BACKGROUND_EVACUATE_UPDATE_POINTERSV8.GC_MINOR_MC_BACKGROUND_MARKINGV8.GC_SCAVENGER_BACKGROUND_SCAVENGE_PARALLELScavengemsMark-sweepmmcMinor Mark-CompactUnknown Event Type[Finished reentrant %s during %s.] (+ %.1f ms in %d steps since start of marking, biggest step %.1f ms, walltime since start of marking %.f ms)[%d:%p] %8.0f ms: %s %.1f (%.1f) -> %.1f (%.1f) MB, %.1f / %.1f ms %s (average mu = %.3f, current mu = %.3f) %s %s pause=%.1f mutator=%.1f gc=%s reduce_memory=%d heap.prologue=%.2f heap.epilogue=%.2f heap.epilogue.reduce_new_space=%.2f heap.external.prologue=%.2f heap.external.epilogue=%.2f heap.external_weak_global_handles=%.2f fast_promote=%.2f scavenge=%.2f scavenge.process_array_buffers=%.2f scavenge.roots=%.2f scavenge.weak=%.2f scavenge.weak_global_handles.identify=%.2f scavenge.weak_global_handles.process=%.2f scavenge.parallel=%.2f background.scavenge.parallel=%.2f background.array_buffer_free=%.2f background.store_buffer=%.2f background.unmapper=%.2f incremental.steps_count=%d incremental.steps_took=%.1f scavenge_throughput=%.f total_size_before=%zu total_size_after=%zu holes_size_before=%zu holes_size_after=%zu allocated=%zu promoted=%zu semi_space_copied=%zu nodes_died_in_new=%d nodes_copied_in_new=%d nodes_promoted=%d promotion_ratio=%.1f%% average_survival_ratio=%.1f%% promotion_rate=%.1f%% semi_space_copy_rate=%.1f%% new_space_allocation_throughput=%.1f unmapper_chunks=%d context_disposal_rate=%.1f pause=%.1f mutator=%.1f gc=%s reduce_memory=%d minor_mc=%.2f finish_sweeping=%.2f mark=%.2f mark.seed=%.2f mark.roots=%.2f mark.weak=%.2f mark.global_handles=%.2f clear=%.2f clear.string_table=%.2f clear.weak_lists=%.2f evacuate=%.2f evacuate.copy=%.2f evacuate.update_pointers=%.2f evacuate.update_pointers.to_new_roots=%.2f evacuate.update_pointers.slots=%.2f background.mark=%.2f background.evacuate.copy=%.2f background.evacuate.update_pointers=%.2f background.array_buffer_free=%.2f background.store_buffer=%.2f background.unmapper=%.2f update_marking_deque=%.2f reset_liveness=%.2f pause=%.1f mutator=%.1f gc=%s reduce_memory=%d heap.prologue=%.2f heap.epilogue=%.2f heap.epilogue.reduce_new_space=%.2f heap.external.prologue=%.1f heap.external.epilogue=%.1f heap.external.weak_global_handles=%.1f clear=%1.f clear.dependent_code=%.1f clear.maps=%.1f clear.slots_buffer=%.1f clear.store_buffer=%.1f clear.string_table=%.1f clear.weak_cells=%.1f clear.weak_collections=%.1f clear.weak_lists=%.1f clear.weak_references=%.1f epilogue=%.1f evacuate=%.1f evacuate.candidates=%.1f evacuate.clean_up=%.1f evacuate.copy=%.1f evacuate.prologue=%.1f evacuate.epilogue=%.1f evacuate.rebalance=%.1f evacuate.update_pointers=%.1f evacuate.update_pointers.to_new_roots=%.1f evacuate.update_pointers.slots.main=%.1f evacuate.update_pointers.slots.map_space=%.1f evacuate.update_pointers.weak=%.1f finish=%.1f mark=%.1f mark.finish_incremental=%.1f mark.roots=%.1f mark.main=%.1f mark.weak_closure=%.1f mark.weak_closure.ephemeral=%.1f mark.weak_closure.weak_handles=%.1f mark.weak_closure.weak_roots=%.1f mark.weak_closure.harmony=%.1f mark.wrapper_prologue=%.1f mark.wrapper_epilogue=%.1f mark.wrapper_tracing=%.1f prologue=%.1f sweep=%.1f sweep.code=%.1f sweep.map=%.1f sweep.old=%.1f incremental=%.1f incremental.finalize=%.1f incremental.finalize.body=%.1f incremental.finalize.external.prologue=%.1f incremental.finalize.external.epilogue=%.1f incremental.sweeping=%.1f incremental.wrapper_prologue=%.1f incremental.wrapper_tracing=%.1f incremental_wrapper_tracing_longest_step=%.1f incremental_finalize_longest_step=%.1f incremental_finalize_steps_count=%d incremental_longest_step=%.1f incremental_steps_count=%d incremental_marking_throughput=%.f incremental_walltime_duration=%.f background.mark=%.1f background.sweep=%.1f background.evacuate.copy=%.1f background.evacuate.update_pointers=%.1f background.array_buffer_free=%.2f background.store_buffer=%.2f background.unmapper=%.1f total_size_before=%zu total_size_after=%zu holes_size_before=%zu holes_size_after=%zu allocated=%zu promoted=%zu semi_space_copied=%zu nodes_died_in_new=%d nodes_copied_in_new=%d nodes_promoted=%d promotion_ratio=%.1f%% average_survival_ratio=%.1f%% promotion_rate=%.1f%% semi_space_copy_rate=%.1f%% new_space_allocation_throughput=%.1f unmapper_chunks=%d context_disposal_rate=%.1f compaction_speed=%.f ScavengerMark-CompactUnknown collector[resetting ticks for due from %d due to IC change: %s] PremonomorphicMegamorphicLoadGlobalMonomorphicPolymorphicJSValueJSProxysame map added twicemax polymorph exceededLookupForWrite said 'false'accessor on slow mapsetter == kNullAddressspecial data property in prototype chainincompatible receiver typesetter not a functionincompatible receiversetter non-simple templateconstant propertystore mode mismatchunsupported combination of external and normal arraysunhandled internalized string keymap in array prototypearguments receiverreceiver with prototype mapdictionary or proxy prototypenon-smi-like keynon-JSObject receiverindex out of Smi range.IGNORE_OOB.COW.STORE+COW.GROWJSObject::DefineOwnPropertyIgnoreAttributes(&it, value, NONE, kThrowOnError) .FromJust()V8.Runtime_Runtime_LoadIC_MissV8.Runtime_Runtime_LoadGlobalIC_MissV8.Runtime_Runtime_LoadGlobalIC_SlowV8.Runtime_Runtime_KeyedLoadIC_MissV8.Runtime_Runtime_StoreIC_MissV8.Runtime_Runtime_StoreGlobalIC_MissV8.Runtime_Runtime_StoreGlobalIC_SlowV8.Runtime_Runtime_KeyedStoreIC_MissV8.Runtime_Runtime_KeyedStoreIC_SlowV8.Runtime_Runtime_StoreInArrayLiteralIC_SlowV8.Runtime_Runtime_ElementsTransitionAndStoreIC_MissV8.Runtime_Runtime_StoreCallbackPropertyargs[5]->ToInt32(&__tmp_language_mode)V8.Runtime_Runtime_LoadPropertyWithInterceptorV8.Runtime_Runtime_StorePropertyWithInterceptorV8.Runtime_Runtime_LoadElementWithInterceptorreciever_arg_count + expr->arguments()->length() == args.register_count()reg.index() == reg_list->last_register().index()(!IsSmi() && (*layout_word_index < length())) || (IsSmi() && (*layout_word_index < 1))GetIndexes(field_index, &layout_word_index, &layout_bit_index)v8-version\x2Cuninitialized fieldGenAll_NotEquivalentGenAll_InvalidElementsTransitionGenAll_RootModification1GenAll_RootModification2GenAll_RootModification3GenAll_RootModification4GenAll_RootModification5GenAll_Incompatibleis_transitionable_fast_elements_kind_ implies !Map::IsInplaceGeneralizableField( next_constness, next_representation, *next_field_type)GenAll_CantHaveMoreTransitionsnames_stack_.length() > 0names_stack_.last().name->IsOneByteEqualTo("async")%10u %10u %*c%s #%u%u #%u[AllocationTraceTree:] Total size | Allocation count | Function id | id [AddressToTraceMap (%zu): [%p - %p] => %u RegExp.prototype.execV8.Runtime_Runtime_TransitionElementsKindargs[1]->IsMap()V8.Runtime_Runtime_PrepareElementsForSortSmi::IsValid(limit)V8.Runtime_Runtime_MoveArrayContentsargs[0]->IsJSArray()args[1]->IsJSArray()V8.Runtime_Runtime_EstimateNumberOfElementsV8.Runtime_Runtime_GetArrayKeysV8.Runtime_Runtime_TrySliceSimpleNonFastElementsV8.Runtime_Runtime_NewArrayargs[argc + 1]->IsJSReceiver()args[argc + 2]->IsHeapObject()V8.Runtime_Runtime_NormalizeElements!array->HasFixedTypedArrayElements()!array->IsJSGlobalProxy()V8.Runtime_Runtime_GrowArrayElementsV8.Runtime_Runtime_HasComplexElementsV8.Runtime_Runtime_ArrayIsArrayV8.Runtime_Runtime_IsArrayV8.Runtime_Runtime_ArraySpeciesConstructorV8.Runtime_Runtime_ArrayIncludes_SlowV8.Runtime_Runtime_ArrayIndexOfArray.prototype.indexOfV8.Runtime_Runtime_AtomicsExchangeargs[0]->IsJSTypedArray()TryNumberToSize(*index_object, &index)sta->GetBuffer()->is_shared()index < NumberToSize(sta->length())V8.Runtime_Runtime_AtomicsCompareExchangeV8.Runtime_Runtime_AtomicsAddV8.Runtime_Runtime_AtomicsSubV8.Runtime_Runtime_AtomicsAndV8.Runtime_Runtime_AtomicsOrV8.Runtime_Runtime_AtomicsXorV8.Runtime_Runtime_BigIntCompareToBigIntargs[1]->IsBigInt()args[2]->IsBigInt()V8.Runtime_Runtime_BigIntCompareToNumberV8.Runtime_Runtime_BigIntCompareToStringV8.Runtime_Runtime_BigIntEqualToBigIntargs[0]->IsBigInt()V8.Runtime_Runtime_BigIntEqualToNumberV8.Runtime_Runtime_BigIntEqualToStringV8.Runtime_Runtime_BigIntToBooleanV8.Runtime_Runtime_BigIntToNumberV8.Runtime_Runtime_ToBigIntV8.Runtime_Runtime_BigIntBinaryOpV8.Runtime_Runtime_BigIntUnaryOpV8.Runtime_Runtime_ThrowUnsupportedSuperErrorV8.Runtime_Runtime_ThrowConstructorNonCallableErrorV8.Runtime_Runtime_ThrowStaticPrototypeErrorV8.Runtime_Runtime_ThrowSuperAlreadyCalledErrorV8.Runtime_Runtime_ThrowSuperNotCalledV8.Runtime_Runtime_ThrowNotSuperConstructorV8.Runtime_Runtime_HomeObjectSymbolV8.Runtime_Runtime_DefineClassargs[0]->IsClassBoilerplate()init class constructorinit class prototype*dict == *properties_dictionarymethod->map()->instance_descriptors()->GetKey(kPropertyIndex) == isolate->heap()->home_object_symbol()V8.Runtime_Runtime_LoadFromSuperargs[1]->IsJSObject()args[2]->IsName()V8.Runtime_Runtime_LoadKeyedFromSuperV8.Runtime_Runtime_StoreToSuper_StrictV8.Runtime_Runtime_StoreToSuper_SloppyV8.Runtime_Runtime_StoreKeyedToSuper_StrictV8.Runtime_Runtime_StoreKeyedToSuper_SloppyV8.Runtime_Runtime_GetSuperConstructorV8.Runtime_Runtime_IsJSMapIteratorV8.Runtime_Runtime_IsJSSetIteratorV8.Runtime_Runtime_TheHoleV8.Runtime_Runtime_SetGrowargs[0]->IsJSSet()V8.Runtime_Runtime_SetShrinkV8.Runtime_Runtime_SetIteratorCloneargs[0]->IsJSSetIterator()V8.Runtime_Runtime_MapShrinkargs[0]->IsJSMap()V8.Runtime_Runtime_MapGrowV8.Runtime_Runtime_MapIteratorCloneargs[0]->IsJSMapIterator()V8.Runtime_Runtime_GetWeakMapEntriesargs[0]->IsJSWeakCollection()max_entries >= 0V8.Runtime_Runtime_WeakCollectionDeleteV8.Runtime_Runtime_WeakCollectionSetV8.Runtime_Runtime_GetWeakSetValuesmax_values >= 0V8.Runtime_Runtime_IsJSMapV8.Runtime_Runtime_IsJSSetV8.Runtime_Runtime_IsJSWeakMapV8.Runtime_Runtime_IsJSWeakSetV8.Runtime_Runtime_CompileLazyV8.Runtime_Runtime_CompileOptimized_ConcurrentV8.Runtime_Runtime_FunctionFirstExecutionfirst-executionV8.Runtime_Runtime_CompileOptimized_NotConcurrentV8.Runtime_Runtime_EvictOptimizedCodeSlotRuntime_EvictOptimizedCodeSlotV8.Runtime_Runtime_InstantiateAsmJsV8.Runtime_Runtime_NotifyDeoptimizedV8.Runtime_Runtime_CompileForOnStackReplacementFLAG_use_osr[OSR - Compiling: at AST id %d] [OSR - Entry at AST id %d, offset %d in optimized code] [OSR - Re-marking for non-concurrent optimization] [OSR - Failed: V8.Runtime_Runtime_ResolvePossiblyDirectEvalV8.Runtime_Runtime_IsDateV8.Runtime_Runtime_DateCurrentTimeV8.Runtime_Runtime_ErrorToStringV8.Runtime_Runtime_IsJSErrorV8.Runtime_Runtime_ForInEnumerateV8.Runtime_Runtime_ForInHasPropertyV8.Runtime_Runtime_FunctionGetNameV8.Runtime_Runtime_FunctionGetScriptV8.Runtime_Runtime_FunctionGetScriptIdV8.Runtime_Runtime_FunctionGetSourceCodeV8.Runtime_Runtime_FunctionGetScriptSourcePositionV8.Runtime_Runtime_FunctionGetContextDataV8.Runtime_Runtime_FunctionIsAPIFunctionV8.Runtime_Runtime_SetCodeV8.Runtime_Runtime_SetNativeFlagV8.Runtime_Runtime_IsConstructorV8.Runtime_Runtime_CallV8.Runtime_Runtime_IsFunctionV8.Runtime_Runtime_FunctionToStringV8.Runtime_Runtime_AtomicsNumWaitersForTestingsta->type() == kExternalInt32ArrayV8.Runtime_Runtime_SetAllowAtomicsWaitV8.Runtime_Runtime_IsJSGeneratorObjectV8.Runtime_Runtime_CreateJSGeneratorObjectIsResumableFunction(function->shared()->kind())V8.Runtime_Runtime_GeneratorCloseV8.Runtime_Runtime_GeneratorGetFunctionV8.Runtime_Runtime_GeneratorGetReceiverV8.Runtime_Runtime_GeneratorGetInputOrDebugPosV8.Runtime_Runtime_AsyncGeneratorResolveV8.Runtime_Runtime_AsyncGeneratorRejectV8.Runtime_Runtime_AsyncGeneratorYieldV8.Runtime_Runtime_GeneratorGetResumeModeV8.Runtime_Runtime_GeneratorGetContinuationV8.Runtime_Runtime_GeneratorGetSourcePositionV8.Runtime_Runtime_AsyncGeneratorHasCatchHandlerForPCV8.Runtime_Runtime_CheckIsBootstrappingV8.Runtime_Runtime_IsScriptWrapperV8.Runtime_Runtime_ExportFromRuntimeV8.Runtime_Runtime_InstallToContextarray->HasFastElements()fixed_array->get(i)->IsString()fixed_array->get(i + 1)->IsJSObject()index != Context::kNotFoundV8.Runtime_Runtime_ThrowV8.Runtime_Runtime_ReThrowV8.Runtime_Runtime_ThrowStackOverflowV8.Runtime_Runtime_ThrowSymbolAsyncIteratorInvalidV8.Runtime_Runtime_ThrowRangeErrorV8.Runtime_Runtime_ThrowTypeErrorV8.Runtime_Runtime_ThrowInvalidTypedArrayAlignmentV8.Runtime_Runtime_UnwindAndFindExceptionHandlerV8.Runtime_Runtime_PromoteScheduledExceptionV8.Runtime_Runtime_ThrowReferenceErrorV8.Runtime_Runtime_NewTypeErrorargs[0]->ToInt32(&template_index)V8.Runtime_Runtime_NewReferenceErrorV8.Runtime_Runtime_NewSyntaxErrorV8.Runtime_Runtime_ThrowInvalidStringLengthV8.Runtime_Runtime_ThrowIteratorResultNotAnObjectV8.Runtime_Runtime_ThrowThrowMethodMissingV8.Runtime_Runtime_ThrowSymbolIteratorInvalidV8.Runtime_Runtime_ThrowNotConstructorV8.Runtime_Runtime_ThrowApplyNonFunctionV8.Runtime_Runtime_StackGuardV8.Runtime_Runtime_InterruptV8.Runtime_Runtime_AllocateInNewSpaceIsAligned(size, kPointerSize)size <= kMaxRegularHeapObjectSizeV8.Runtime_Runtime_AllocateInTargetSpacesize <= kMaxRegularHeapObjectSize || space == LO_SPACEV8.Runtime_Runtime_AllocateSeqOneByteStringV8.Runtime_Runtime_AllocateSeqTwoByteStringV8.Runtime_Runtime_IS_VARV8.Runtime_Runtime_ThrowCalledNonCallableV8.Runtime_Runtime_ThrowConstructedNonConstructableV8.Runtime_Runtime_ThrowConstructorReturnedNonObjectV8.Runtime_Runtime_CreateListFromArrayLikeV8.Runtime_Runtime_DeserializeLazyV8.Runtime_Runtime_IncrementUseCounterV8.Runtime_Runtime_GetAndResetRuntimeCallStatsV8.Runtime_Runtime_OrdinaryHasInstanceV8.Runtime_Runtime_TypeofV8.Runtime_Runtime_AllowDynamicFunctionV8.Runtime_Runtime_CreateAsyncFromSyncIteratorV8.Runtime_Runtime_CreateTemplateObjectargs[0]->IsTemplateObjectDescription()V8.Runtime_Runtime_ReportMessageV8.Runtime_Runtime_InterpreterDeserializeLazyV8.Runtime_Runtime_CreateObjectLiteralargs[0]->IsFeedbackVector()args[2]->IsBoilerplateDescription()literals_slot.ToInt() < vector->length()FastLiteral*** Creating top level AllocationSite %p Creating nested site (top, current, new) (%p, %p, %p) *** Setting AllocationSite %p transition_info %p Setting AllocationSite (%p, %p) transition_info %p *** Creating Memento for %s %p JSArrayJSObjectV8.Runtime_Runtime_CreateArrayLiteralargs[2]->IsConstantElementsPair()V8.Runtime_Runtime_CreateRegExpLiteralV8.Runtime_Runtime_LiveEditFindSharedFunctionInfosForScriptisolate->debug()->live_edit_enabled()script_value->value()->IsScript()V8.Runtime_Runtime_LiveEditGatherCompileInfoV8.Runtime_Runtime_LiveEditReplaceScriptoriginal_script_value->value()->IsScript()V8.Runtime_Runtime_LiveEditFixupScriptargs[1]->ToInt32(&max_function_literal_id)V8.Runtime_Runtime_LiveEditFunctionSourceUpdatedargs[1]->ToInt32(&new_function_literal_id)SharedInfoWrapper::IsInstance(shared_info)V8.Runtime_Runtime_LiveEditReplaceFunctionCodeV8.Runtime_Runtime_LiveEditFunctionSetScriptJSValue::cast(*script_object)->value()->IsScript()function_wrapper->value()->IsSharedFunctionInfo()V8.Runtime_Runtime_LiveEditReplaceRefToNestedFunctionargs[1]->IsJSValue()args[2]->IsJSValue()parent_wrapper->value()->IsSharedFunctionInfo()orig_wrapper->value()->IsSharedFunctionInfo()subst_wrapper->value()->IsSharedFunctionInfo()V8.Runtime_Runtime_LiveEditPatchFunctionPositionsSharedInfoWrapper::IsInstance(shared_array)V8.Runtime_Runtime_LiveEditCheckAndDropActivationsold_shared_array->length()->IsSmi()new_shared_array->length() == old_shared_array->length()old_shared_array->HasFastElements()new_shared_array->HasFastElements()old_element->IsJSValue() && Handle::cast(old_element)->value()->IsSharedFunctionInfo()new_element->IsUndefined(isolate) || (new_element->IsJSValue() && Handle::cast(new_element)->value()->IsSharedFunctionInfo())V8.Runtime_Runtime_LiveEditCompareStringsresult->length()->ToArrayLength(&array_length)V8.Runtime_Runtime_LiveEditRestartFrameV8.Runtime_Runtime_GenerateRandomNumbersV8.Runtime_Runtime_DynamicImportCallV8.Runtime_Runtime_GetModuleNamespaceV8.Runtime_Runtime_GetImportMetaObjectV8.Runtime_Runtime_IsValidSmiV8.Runtime_Runtime_StringToNumberV8.Runtime_Runtime_StringParseIntV8.Runtime_Runtime_StringParseFloatV8.Runtime_Runtime_NumberToStringSkipCacheV8.Runtime_Runtime_SmiLexicographicCompareV8.Runtime_Runtime_MaxSmiV8.Runtime_Runtime_IsSmiV8.Runtime_Runtime_GetHoleNaNUpperV8.Runtime_Runtime_GetHoleNaNLowerV8.Runtime_Runtime_AddV8.Runtime_Runtime_EqualV8.Runtime_Runtime_NotEqualV8.Runtime_Runtime_StrictEqualV8.Runtime_Runtime_StrictNotEqualV8.Runtime_Runtime_LessThanV8.Runtime_Runtime_GreaterThanV8.Runtime_Runtime_LessThanOrEqualV8.Runtime_Runtime_GreaterThanOrEqualV8.Runtime_Runtime_PromiseRejectEventFromStackargs[0]->IsJSPromise()V8.Runtime_Runtime_PromiseRejectAfterResolvedV8.Runtime_Runtime_PromiseResolveAfterResolvedV8.Runtime_Runtime_PromiseRevokeReject!promise->has_handler()V8.Runtime_Runtime_EnqueueMicrotaskV8.Runtime_Runtime_RunMicrotasksV8.Runtime_Runtime_RunMicrotaskCallbackV8.Runtime_Runtime_PromiseStatusV8.Runtime_Runtime_PromiseResultV8.Runtime_Runtime_PromiseMarkAsHandledV8.Runtime_Runtime_PromiseHookInitV8.Runtime_Runtime_PromiseHookBeforeV8.Runtime_Runtime_PromiseHookAfterV8.Runtime_Runtime_RejectPromiseargs[2]->IsOddball()V8.Runtime_Runtime_ResolvePromiseV8.Runtime_Runtime_IsJSProxyV8.Runtime_Runtime_JSProxyGetHandlerargs[0]->IsJSProxy()V8.Runtime_Runtime_JSProxyGetTargetV8.Runtime_Runtime_GetPropertyWithReceiverV8.Runtime_Runtime_SetPropertyWithReceiverargs[4]->ToInt32(&__tmp_language_mode)V8.Runtime_Runtime_CheckProxyGetSetTrapResultargs[0]->IsName()V8.Runtime_Runtime_CheckProxyHasTrapV8.Runtime_Runtime_StringSplit0 < limit0 < pattern_lengthV8.Runtime_Runtime_RegExpExecargs[0]->IsJSRegExp()args[2]->ToInt32(&index)args[3]->IsRegExpMatchInfo()subject->length() >= indexV8.Runtime_Runtime_RegExpInternalReplaceregexp->GetFlags() & JSRegExp::kGlobal../deps/v8/src/runtime/runtime-regexp.cc:630V8.Runtime_Runtime_RegExpExecMultipleargs[2]->IsRegExpMatchInfo()args[3]->IsJSArray()result_array->HasObjectElements()V8.Runtime_Runtime_StringReplaceNonGlobalRegExpWithFunctionargs[1]->IsJSRegExp()args[2]->IsJSReceiver()V8.Runtime_Runtime_RegExpSplitV8.Runtime_Runtime_RegExpReplace../deps/v8/src/runtime/runtime-regexp.cc:1773V8.Runtime_Runtime_RegExpInitializeAndCompileV8.Runtime_Runtime_IsRegExpV8.Runtime_Runtime_ThrowConstAssignErrorV8.Runtime_Runtime_DeclareGlobalsargs[0]->IsFixedArray()V8.Runtime_Runtime_DeclareEvalFunctionV8.Runtime_Runtime_DeclareEvalVarV8.Runtime_Runtime_NewSloppyArguments_Generic!IsDerivedConstructor(callee->shared()->kind())V8.Runtime_Runtime_NewStrictArgumentsV8.Runtime_Runtime_NewRestParameterV8.Runtime_Runtime_NewSloppyArgumentsV8.Runtime_Runtime_NewArgumentsElementsV8.Runtime_Runtime_NewClosureargs[0]->IsSharedFunctionInfo()args[1]->IsFeedbackCell()V8.Runtime_Runtime_NewClosure_TenuredV8.Runtime_Runtime_NewScriptContextargs[0]->IsScopeInfo()V8.Runtime_Runtime_NewFunctionContextV8.Runtime_Runtime_PushWithContextargs[1]->IsScopeInfo()V8.Runtime_Runtime_PushModuleContextargs[0]->IsModule()V8.Runtime_Runtime_PushCatchContextV8.Runtime_Runtime_PushBlockContextV8.Runtime_Runtime_DeleteLookupSlotV8.Runtime_Runtime_LoadLookupSlotV8.Runtime_Runtime_LoadLookupSlotInsideTypeofV8.Runtime_Runtime_LoadLookupSlotForCallV8.Runtime_Runtime_StoreLookupSlot_SloppyV8.Runtime_Runtime_StoreLookupSlot_SloppyHoistingV8.Runtime_Runtime_StoreLookupSlot_StrictV8.Runtime_Runtime_GetSubstitutionV8.Runtime_Runtime_StringReplaceOneCharWithStringV8.Runtime_Runtime_StringTrimV8.Runtime_Runtime_StringIncludesString.prototype.includesV8.Runtime_Runtime_StringIndexOfV8.Runtime_Runtime_StringIndexOfUncheckedV8.Runtime_Runtime_StringLastIndexOfV8.Runtime_Runtime_StringSubstringargs[1]->ToInt32(&start)args[2]->ToInt32(&end)V8.Runtime_Runtime_StringAddV8.Runtime_Runtime_InternalizeStringV8.Runtime_Runtime_StringCharCodeAtV8.Runtime_Runtime_StringBuilderConcatTryNumberToSize(array->length(), &actual_array_length)array_length >= 0static_cast(array_length) <= actual_array_lengthV8.Runtime_Runtime_StringBuilderJoinarray->HasObjectElements()first->IsString()separator_length > 0element_obj->IsString()fixed_array->get(0)->IsString()V8.Runtime_Runtime_SparseJoinWithSeparatorelements_array->HasSmiOrObjectElements()array_length > 0elements_array->length()->IsNumber()elements_length <= elements_array->elements()->length()elements_length & 1 == 0V8.Runtime_Runtime_StringToArrayV8.Runtime_Runtime_StringLessThanV8.Runtime_Runtime_StringLessThanOrEqualV8.Runtime_Runtime_StringGreaterThanV8.Runtime_Runtime_StringGreaterThanOrEqualV8.Runtime_Runtime_StringEqualV8.Runtime_Runtime_StringNotEqualV8.Runtime_Runtime_FlattenStringV8.Runtime_Runtime_StringCharFromCodeV8.Runtime_Runtime_StringMaxLengthV8.Runtime_Runtime_CreatePrivateSymbolname->IsString() || name->IsUndefined(isolate)V8.Runtime_Runtime_CreatePrivateFieldSymbolV8.Runtime_Runtime_SymbolDescriptionargs[0]->IsSymbol()V8.Runtime_Runtime_SymbolDescriptiveStringV8.Runtime_Runtime_SymbolIsPrivateV8.Runtime_Runtime_ConstructDoubleV8.Runtime_Runtime_ConstructConsStringleft->IsOneByteRepresentation()right->IsOneByteRepresentation()V8.Runtime_Runtime_ConstructSlicedStringstring->IsOneByteRepresentation()index->value() < string->length()sliced_string->IsSlicedString()V8.Runtime_Runtime_DeoptimizeFunctionV8.Runtime_Runtime_DeoptimizeNowV8.Runtime_Runtime_RunningInSimulatorV8.Runtime_Runtime_IsConcurrentRecompilationSupportedV8.Runtime_Runtime_OptimizeFunctionOnNextCallconcurrent[manually marking for %s optimization] non-concurrentV8.Runtime_Runtime_OptimizeOsr[OSR - OptimizeOsr marking V8.Runtime_Runtime_NeverOptimizeFunctionV8.Runtime_Runtime_GetOptimizationStatusno syncV8.Runtime_Runtime_UnblockConcurrentRecompilationV8.Runtime_Runtime_GetDeoptCountV8.Runtime_Runtime_GetUndetectableV8.Runtime_Runtime_GetCallableV8.Runtime_Runtime_ClearFunctionFeedbackV8.Runtime_Runtime_SetWasmCompileControlsargs.length() == 2Sync compile not allowedV8.Runtime_Runtime_SetWasmInstantiateControlsargs.length() == 0Sync instantiate not allowedV8.Runtime_Runtime_NotifyContextDisposedV8.Runtime_Runtime_SetAllocationTimeoutV8.Runtime_Runtime_DebugPrint[weak cleared]V8.Runtime_Runtime_PrintWithNameForAssert * V8.Runtime_Runtime_DebugTraceV8.Runtime_Runtime_DebugTrackRetainingPathDebugTrackRetainingPath requires --track-retaining-path flag. Unexpected second argument of DebugTrackRetainingPath. Expected an empty string or '%s', got '%s'. V8.Runtime_Runtime_GlobalPrintV8.Runtime_Runtime_SystemBreakV8.Runtime_Runtime_SetFlagsV8.Runtime_Runtime_SetForceSlowPathV8.Runtime_Runtime_Abortabort: %s V8.Runtime_Runtime_AbortJS[disabled] abort: %s V8.Runtime_Runtime_NativeScriptsCountV8.Runtime_Runtime_DisassembleFunctionV8.Runtime_Runtime_TraceEnter%4d:%*sV8.Runtime_Runtime_TraceExit} -> V8.Runtime_Runtime_HaveSameMapV8.Runtime_Runtime_InNewSpaceV8.Runtime_Runtime_IsAsmWasmCodeV8.Runtime_Runtime_DisallowCodegenFromStringsV8.Runtime_Runtime_DisallowWasmCodegenV8.Runtime_Runtime_IsWasmCodeV8.Runtime_Runtime_IsWasmTrapHandlerEnabledV8.Runtime_Runtime_GetWasmRecoveredTrapCountV8.Runtime_Runtime_HasFastElementsV8.Runtime_Runtime_HasSmiElementsV8.Runtime_Runtime_HasObjectElementsV8.Runtime_Runtime_HasSmiOrObjectElementsV8.Runtime_Runtime_HasDoubleElementsV8.Runtime_Runtime_HasHoleyElementsV8.Runtime_Runtime_HasDictionaryElementsV8.Runtime_Runtime_HasSloppyArgumentsElementsV8.Runtime_Runtime_HasFastPropertiesV8.Runtime_Runtime_HasFixedUint8ElementsV8.Runtime_Runtime_HasFixedInt8ElementsV8.Runtime_Runtime_HasFixedUint16ElementsV8.Runtime_Runtime_HasFixedInt16ElementsV8.Runtime_Runtime_HasFixedUint32ElementsV8.Runtime_Runtime_HasFixedInt32ElementsV8.Runtime_Runtime_HasFixedFloat32ElementsV8.Runtime_Runtime_HasFixedFloat64ElementsV8.Runtime_Runtime_HasFixedUint8ClampedElementsV8.Runtime_Runtime_HasFixedBigUint64ElementsV8.Runtime_Runtime_HasFixedBigInt64ElementsV8.Runtime_Runtime_ArraySpeciesProtectorV8.Runtime_Runtime_TypedArraySpeciesProtectorV8.Runtime_Runtime_PromiseSpeciesProtectorV8.Runtime_Runtime_SerializeWasmModuleargs[0]->IsWasmModuleObject()V8.Runtime_Runtime_DeserializeWasmModuleargs[0]->IsJSArrayBuffer()args[1]->IsJSArrayBuffer()V8.Runtime_Runtime_ValidateWasmInstancesChainV8.Runtime_Runtime_ValidateWasmModuleStateV8.Runtime_Runtime_HeapObjectVerifyHeapObject::cast(*object)->map()->IsMap()V8.Runtime_Runtime_WasmNumInterpretedCallsargs[0]->IsWasmInstanceObject()V8.Runtime_Runtime_RedirectToWasmInterpreterV8.Runtime_Runtime_WasmTraceMemoryV8.Runtime_Runtime_IsLiftoffFunctionWasmExportedFunction::IsWasmExportedFunction(*function)V8.Runtime_Runtime_CompleteInobjectSlackTrackingV8.Runtime_Runtime_FreezeWasmLazyCompilationV8.Runtime_Runtime_ArrayBufferNeuterSmi::kZero == array_buffer->byte_length()!array_buffer->is_shared()V8.Runtime_Runtime_TypedArrayCopyElementsTryNumberToSize(*length_obj, &length)V8.Runtime_Runtime_TypedArrayGetLengthV8.Runtime_Runtime_ArrayBufferViewWasNeuteredV8.Runtime_Runtime_TypedArrayGetBufferV8.Runtime_Runtime_TypedArraySortFast%TypedArray%.prototype.sortV8.Runtime_Runtime_IsTypedArrayV8.Runtime_Runtime_TypedArraySetDoubleToUint32IfEqualToSelf(len->Number(), &int_l)V8.Runtime_Runtime_WasmGrowMemoryargs[0]->ToUint32(&delta_pages)V8.Runtime_Runtime_ThrowWasmErrorV8.Runtime_Runtime_ThrowWasmStackOverflowV8.Runtime_Runtime_WasmThrowTypeErrorV8.Runtime_Runtime_WasmThrowCreate!JSReceiver::SetProperty(exception, isolate->factory()->InternalizeUtf8String( wasm::WasmException::kRuntimeIdStr), id, LanguageMode::kStrict) .is_null()!JSReceiver::SetProperty(exception, isolate->factory()->InternalizeUtf8String( wasm::WasmException::kRuntimeValuesStr), values, LanguageMode::kStrict) .is_null()V8.Runtime_Runtime_WasmThrow!exception.is_null()V8.Runtime_Runtime_WasmGetExceptionRuntimeIdV8.Runtime_Runtime_WasmExceptionGetElementvalues->type() == kExternalUint16Arrayindex < Smi::ToInt(values->length())V8.Runtime_Runtime_WasmExceptionSetElementV8.Runtime_Runtime_WasmRunInterpreter!arg_buffer_obj->IsHeapObject()V8.Runtime_Runtime_WasmStackGuardV8.Runtime_Runtime_WasmCompileLazyUnknownBytecodeHadlerreservation[chunk_index].end == high_water_[space]chunk_index < reservation.size()!IsRetry()magic_number_ == SerializedData::ComputeMagicNumber(external_reference_table_)filledReadData(start, end, source_space, current_object)expected == source_.Get()(backing_store) != nullptrlimit == currentNo external references provided via APIPartialDeserializerstart_address == code_space->top()disabled-by-default-v8.runtime_stats_samplingEnumCacheKeysEnumCacheKeysAndIndicesCheckNoneConvertLeftConvertRight../deps/v8/src/wasm/function-body-decoder.cc:8400 <= body.end - body.start../deps/v8/src/wasm/function-body-decoder.cc:860../deps/v8/src/wasm/function-body-decoder.cc:904// signature: // locals: 0x// body: kWasmI32, kWasmI64, kWasmF32, kWasmF64, kWasmS128, kWasmStmt, // @ // depth= // entries= // sig # // function #kExprUnreachablekExprNopkExprBlockkExprLoopkExprIfkExprElsekExprTrykExprCatchkExprThrowkExprRethrowkExprCatchAllkExprEndkExprBrkExprBrIfkExprBrTablekExprReturnkExprCallFunctionkExprCallIndirectkExprDropkExprSelectkExprGetLocalkExprSetLocalkExprTeeLocalkExprGetGlobalkExprSetGlobalkExprI32ConstkExprI64ConstkExprF32ConstkExprF64ConstkExprRefNullkExprI32EqzkExprI32EqkExprI32NekExprI32LtSkExprI32LtUkExprI32GtSkExprI32GtUkExprI32LeSkExprI32LeUkExprI32GeSkExprI32GeUkExprI64EqzkExprI64EqkExprI64NekExprI64LtSkExprI64LtUkExprI64GtSkExprI64GtUkExprI64LeSkExprI64LeUkExprI64GeSkExprI64GeUkExprF32EqkExprF32NekExprF32LtkExprF32GtkExprF32LekExprF32GekExprF64EqkExprF64NekExprF64LtkExprF64GtkExprF64LekExprF64GekExprI32ClzkExprI32CtzkExprI32PopcntkExprI32AddkExprI32SubkExprI32MulkExprI32DivSkExprI32DivUkExprI32RemSkExprI32RemUkExprI32AndkExprI32IorkExprI32XorkExprI32ShlkExprI32ShrSkExprI32ShrUkExprI32RolkExprI32RorkExprI64ClzkExprI64CtzkExprI64PopcntkExprI64AddkExprI64SubkExprI64MulkExprI64DivSkExprI64DivUkExprI64RemSkExprI64RemUkExprI64AndkExprI64IorkExprI64XorkExprI64ShlkExprI64ShrSkExprI64ShrUkExprI64RolkExprI64RorkExprF32AbskExprF32NegkExprF32CeilkExprF32FloorkExprF32TrunckExprF32NearestIntkExprF32SqrtkExprF32AddkExprF32SubkExprF32MulkExprF32DivkExprF32MinkExprF32MaxkExprF32CopySignkExprF64AbskExprF64NegkExprF64CeilkExprF64FloorkExprF64TrunckExprF64NearestIntkExprF64SqrtkExprF64AddkExprF64SubkExprF64MulkExprF64DivkExprF64MinkExprF64MaxkExprF64CopySignkExprI32ConvertI64kExprI32SConvertF32kExprI32UConvertF32kExprI32SConvertF64kExprI32UConvertF64kExprI64SConvertI32kExprI64UConvertI32kExprI64SConvertF32kExprI64UConvertF32kExprI64SConvertF64kExprI64UConvertF64kExprF32SConvertI32kExprF32UConvertI32kExprF32SConvertI64kExprF32UConvertI64kExprF32ConvertF64kExprF64SConvertI32kExprF64UConvertI32kExprF64SConvertI64kExprF64UConvertI64kExprF64ConvertF32kExprI32ReinterpretF32kExprI64ReinterpretF64kExprF32ReinterpretI32kExprF64ReinterpretI64kExprI32SExtendI8kExprI32SExtendI16kExprI64SExtendI8kExprI64SExtendI16kExprI64SExtendI32kExprRefIsNullkExprRefEqkExprI32StoreMemkExprI64StoreMemkExprF32StoreMemkExprF64StoreMemkExprI32StoreMem8kExprI32StoreMem16kExprI64StoreMem8kExprI64StoreMem16kExprI64StoreMem32kExprI32LoadMemkExprI64LoadMemkExprF32LoadMemkExprF64LoadMemkExprI32LoadMem8SkExprI32LoadMem8UkExprI32LoadMem16SkExprI32LoadMem16UkExprI64LoadMem8SkExprI64LoadMem8UkExprI64LoadMem16SkExprI64LoadMem16UkExprI64LoadMem32SkExprI64LoadMem32UkExprMemorySizekExprGrowMemorykExprF64AcoskExprF64AsinkExprF64AtankExprF64CoskExprF64SinkExprF64TankExprF64ExpkExprF64LogkExprF64Atan2kExprF64PowkExprF64ModkExprI32AsmjsDivSkExprI32AsmjsDivUkExprI32AsmjsRemSkExprI32AsmjsRemUkExprI32AsmjsLoadMem8SkExprI32AsmjsLoadMem8UkExprI32AsmjsLoadMem16SkExprI32AsmjsLoadMem16UkExprI32AsmjsLoadMemkExprF32AsmjsLoadMemkExprF64AsmjsLoadMemkExprI32AsmjsStoreMem8kExprI32AsmjsStoreMem16kExprI32AsmjsStoreMemkExprF32AsmjsStoreMemkExprF64AsmjsStoreMemkExprI32AsmjsSConvertF32kExprI32AsmjsUConvertF32kExprI32AsmjsSConvertF64kExprI32AsmjsUConvertF64simd_indexinvalid SIMD opcodeatomic_indexinvalid Atomics opcodealignmentinvalid alignment; expected maximum alignment is %u, actual alignment is %ubreak depthexpected table index 0, found %ublock typeblock arityinvalid block type indexexception indexbranch table entryexpected memory index 0, found %ulocal decls countlocal countlocal count too largefunction body end < startunterminated control structurefunction body must end with "end" opcodeInvalid opcode (enable with --experimental-wasm-eh)%s: %snot implemented yetcatch does not match any trymultiple catch blocks not implementedelse does not match any ifelse does not match an ifelse already present for ifend does not match any if, try, or blockmissing catch in trytrailing code after function endimproper branch in br_table target %u (depth %u)inconsistent arity in br_table target %u (previous was %u, this one %u)Invalid opcode (enable with --experimental-wasm-anyref)immutable global #%u cannot be assignedgrow_memory is not supported for asmjs modulesInvalid opcode (enable with --experimental-wasm-sat_f2i_conversions)numeric indexUnrecognized numeric opcode: %x Invalid opcode (enable with --experimental-wasm-simd)simd indexInvalid opcode (enable with --experimental-wasm-threads)atomic indexInvalid opcodeBeyond end of codeInvalid opcode (enable with --experimental-wasm-se)block type index %u out of bounds (%d signatures)Invalid exception index: %uexpected %u elements on the stack for fallthru to @%d, found %utype error in merge[%u] (expected %s, got %s)%s[%d] expected type %s, found %s of type %s%s found empty stackinvalid break depth: %uexpected %u elements on the stack for br to @%d, found %uinvalid table count (> max function size): %uinvalid local index: %uinvalid global index: %umemory instruction with no memoryinvalid function index: %ufunction table has to exist to execute call_indirectinvalid signature index: #%uinvalid simd opcodelaneinvalid lane indexinvalid shift amountshuffleinvalid shuffle maskAtomic opcodes used without shared memoryinvalid atomic opcode../deps/v8/src/wasm/function-body-decoder-impl.hunimplemented opcode: %x (%s)Error finalizing code. i8:%d / %02xi16:%d / %04xi32:%d / %08xi64:%lld / %016llxf32:%f / %08xf64:%f / %016llx%c %8d+0x%-6x %s @%08x %s load slr11r12r13r14r15!instr->InputAt(0)->IsImmediate()kArchDebugAbortkArchDebugBreak-- OSR entrypoint --(intermediate value)u(var)yield* (...)(...ImportCall(StoreInLiteralplaceholderindex < locals_count()AlreadyBooleanConvertToBooleancurrent_offset >= label->offset()static_cast(equivalence_id_) != kInvalidEquivalenceIdarm Fillarm LoadConstantarm MoveStackValuearm Spill registerarm Spill valuearm LiftoffStackSlots::Constructarm FillI64Halfarm FillInstanceIntoarm Move Registerarm Move DoubleRegister= nx < result.size()state0_ != 0 || state1_ != 0Free(base, prefix_size)Free(aligned_base + size, suffix_size)OS::Free(memory_, size_)/proc/self/maps%x-%x %c%c%c%c%08x-%08xFailed to open %s Free(addr, size)isolate->snapshot_available()interpreter->IsDispatchTableInitialized()heap->isolate()->snapshot_available()../deps/v8/src/builtins/setup-builtins-internal.cc:141Builtin: ../deps/v8/src/builtins/setup-builtins-internal.cc:1170u == gc_count_Arguments[object Arguments][object Array]ArrayBufferArray Iterator[object Boolean]bound byteLengthbyteOffsetcalleecaller%cell_valueCharAt(closure)columnCompileErrorconfigurableconstructcurrency[object Date]daydayperioddecimaldefinePropertydeletePropertydidHandledotAllenqueueenumerableera[object Error]EvalErrorfractionfunction () { [native code] }[object Function]getOwnPropertyDescriptorsgroupshourignoreCaseillegal accessillegal argumentinfinityintegerisViewKeyedLoadMonomorphicKeyedStoreMonomorphiclastIndexlineLinkErrorliteralMap Iterator-0minusSignminutemonthmultilinenot-equal[object Null][object Number][object Object]ownKeyspercentSignplusSignpositionproxy(?:)RangeErrorReferenceError[object RegExp]revokeRuntimeErrorSet IteratorsourceTextsticky[object String][Symbol.species]SyntaxErrorthentimed-outtimeZoneNameTypeError[object Undefined]unicodeURIErrorweekdaywillHandleyearSymbol.asyncIteratorSymbol.iteratorIntlFallbackSymbol.matchAllSymbol.matchSymbol.replaceSymbol.searchSymbol.speciesSymbol.splitSymbol.toPrimitiveSymbol.unscopablesSymbol.hasInstanceSymbol.isConcatSpreadableSymbol.toStringTagIsPrimitiveMap()Ignition Handler, %s, %d /root/node/out/Release/obj/gen/torque-generated/builtins-array-from-dsl-gen.ccArray.prototype.forEach/root/node/out/Release/obj/gen/torque-generated/builtins-typed-array-from-dsl-gen.ccUnexpected pending exception%TypedArray%.prototype.mapbegin VisitAllFastElementsOneKindend VisitAllFastElementsOneKindbegin HandleFastElements../deps/v8/src/builtins/builtins-array-gen.ccArray.prototype.findArray.prototype.findIndex%TypedArray%.prototype.find%TypedArray%.prototype.findIndex%TypedArray%.prototype.forEachArray.prototype.some%TypedArray%.prototype.someArray.prototype.every%TypedArray%.prototype.everyArray.prototype.reduce%TypedArray%.prototype.reduceArray.prototype.reduceRight%TypedArray%.prototype.reduceRightArray.prototype.filterArray.prototype.mapArray Iterator.prototype.next../deps/v8/src/builtins/builtins-async-function-gen.cc../deps/v8/src/builtins/builtins-async-gen.cc../deps/v8/src/builtins/builtins-async-generator-gen.cc[AsyncGenerator].prototype.next[AsyncGenerator].prototype.return[AsyncGenerator].prototype.throw../deps/v8/src/builtins/builtins-async-iterator-gen.cc[Async-from-Sync Iterator].prototype.next[Async-from-Sync Iterator].prototype.return[Async-from-Sync Iterator].prototype.throw../deps/v8/src/builtins/builtins-boolean-gen.ccBoolean.prototype.toStringBoolean.prototype.valueOf../deps/v8/src/builtins/builtins-call-gen.cc../deps/v8/src/builtins/builtins-collections-gen.ccMap.prototype.getMap.prototype.hasMap.prototype.setMap.prototype.deleteSet.prototype.addSet.prototype.deleteMap.prototype.entriesget Map.prototype.sizeMap.prototype.forEachMap.prototype.keysMap.prototype.valuesMap Iterator.prototype.nextSet.prototype.hasSet.prototype.entriesget Set.prototype.sizeSet.prototype.forEachSet.prototype.valuesSet Iterator.prototype.nextWeakMap.prototype.getWeakMap.prototype.hasWeakMap.prototype.deleteWeakMap.prototype.setWeakSet.prototype.addWeakSet.prototype.deleteWeakSet.prototype.has../deps/v8/src/builtins/builtins-console-gen.cc../deps/v8/src/builtins/builtins-constructor-gen.cccall runtimeLoadJSArrayElementsMapAllocate JSArrayCopy dictionary propertiesInitialize Literal CopyCopy in-object properties fastCopy in-object properties slowCopy mutable HeapNumber values../deps/v8/src/builtins/builtins-conversion-gen.cc../deps/v8/src/builtins/builtins-date-gen.ccDate.prototype [ @@toPrimitive ]../deps/v8/src/builtins/builtins-function-gen.ccDisallow binding of slow-mode functionsCheck descriptor array lengthCheck name and length propertiesChoose the right bound function mapVerify that __proto__ matches target bound functionAllocate the arguments arrayDetermine bound receiverAllocate the resulting bound function../deps/v8/src/builtins/builtins-generator-gen.cc[Generator].prototype.next[Generator].prototype.return[Generator].prototype.throw../deps/v8/src/builtins/builtins-global-gen.cc../deps/v8/src/builtins/builtins-handler-gen.cc../deps/v8/src/builtins/builtins-internal-gen.ccinteger indexkey is unique name../deps/v8/src/builtins/builtins-math-gen.cc../deps/v8/src/builtins/builtins-number-gen.ccNumber.prototype.valueOf[object ../deps/v8/src/builtins/builtins-object-gen.ccObject.prototype.toLocaleStringArgument check: prototypePrototype is nullPrototype is JSReceiverTry loading the prototype infoInstantiate mapCall Runtime (prototype is not null/jsreceiver)Argument 1 check: prototypeArgument 2 check: propertiesLoad ObjectCreateMap from PrototypeInfo../deps/v8/src/builtins/builtins-promise-gen.ccstatus != v8::Promise::kPendingPromise.prototype.thenPromise.prototype.finallyPromise.allPromise.raceAllocateJSArrayForCodeStubArguments../deps/v8/src/builtins/builtins-proxy-gen.cc../deps/v8/src/builtins/builtins-reflect-gen.cc../deps/v8/src/builtins/builtins-regexp-gen.ccRegExp.prototype.flagsRegExp.prototype.compileRegExp.prototype.sourceRegExp.prototype.globalRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.dotAllRegExp.prototype.stickyRegExp.prototype.unicodeRegExp.prototype.testRegExp.prototype.@@matchRegExp.prototype.@@matchAllRegExp.prototype.@@searchRegExp.prototype.@@splitRegExp.prototype.@@replace%RegExpStringIterator%.prototype.next../deps/v8/src/builtins/builtins-sharedarraybuffer-gen.cc../deps/v8/src/builtins/builtins-string-gen.ccString.prototype.charAtString.prototype.charCodeAtString.prototype.codePointAtString.prototype.concat0-length search_stringCall Runtime Unchecked0 Argument case1 Argument case2 Argument caseFast PathCall RuntimeString.prototype.repeatString.prototype.replaceString.prototype.matchString.prototype.matchAllString.prototype.padEndString.prototype.padStartString.prototype.searchString.prototype.sliceString.prototype.splitString.prototype.substrString.prototype.substringString.prototype.trimString.prototype.trimLeftString.prototype.trimRightString.prototype.toStringString.prototype.valueOfString.prototype[Symbol.iterator]String Iterator.prototype.nextString.prototype.anchorString.prototype.bigString.prototype.blinkString.prototype.boldString.prototype.fontcolorfontcolorString.prototype.fontsizeString.prototype.fixedttString.prototype.italicsString.prototype.linkhrefString.prototype.smallString.prototype.strikeString.prototype.subString.prototype.sup=""../deps/v8/src/builtins/builtins-symbol-gen.ccSymbol.prototype [ @@toPrimitive ]Symbol.prototype.toStringSymbol.prototype.valueOf../deps/v8/src/builtins/builtins-typed-array-gen.ccstart offsetbyte lengthget TypedArray.prototype.byteLengthget TypedArray.prototype.byteOffsetget TypedArray.prototype.length%TypedArray%.prototype.set%TypedArray%.prototype.slice%TypedArray%.prototype.subarray%TypedArray%.prototype.values()%TypedArray%.prototype.entries()%TypedArray%.prototype.keys()%TypedArray%.of%TypedArray%.from%TypedArray%.prototype.filter../deps/v8/src/builtins/builtins-wasm-gen.ccTryMonomorphicCaseHandlePolymorphicCasehave_handlerfield_loadelement_loadout of bounds elements accessconvert holeindexed stringproperty_loadconstant_loadload_normalaccessor_loadnative_data_property_loadapi_getterload_interceptormodule exportIsAccessorInfo(accessor_info)../deps/v8/src/ic/accessor-assembler.ccaccessor_storeHandleStoreICProtoHandlerapi_setterfield storestore tagged fieldstore double fieldstore heap object fieldstore smi field[ Extend storage] Extend storageFast elements bounds checkfast packed elementsfast holey elementspacked double elementsholey double elementsdictionary elementstyped elementsfound the holecheck if stringload string characterstub cache probe for fast property loadKeyedLoadGeneric_missdictionary property loadLoadIC_BytecodeHandler_fastLoadIC_BytecodeHandler_noninlinedLoadIC_BytecodeHandler_missLoadIC_try_polymorphicLoadGlobalIC_MissCaseLoadGlobalIC_TryPropertyCellCaseLoad lexical variableLoadGlobalIC_TryHandlerCaseKeyedLoadIC_try_polymorphicKeyedLoadIC_try_megamorphicKeyedLoadIC_try_polymorphic_nameKeyedLoadIC_missKeyedLoadGeneric_slowStoreIC_if_handlerStoreIC_try_polymorphicStoreIC_if_handler_from_stub_cacheStoreGlobalIC_try_handlerStore lexical variableStoreGlobalIC_TryPropertyCellCaseKeyedStoreIC_if_handlerKeyedStoreIC_try_polymorphicKeyedStoreIC_try_megamorphicKeyedStoreIC_try_polymorphic_nameKeyedStoreIC_missStoreInArrayLiteralIC_if_handlerStoreInArrayLiteralIC_try_polymorphicStoreInArrayLiteralIC_try_megamorphicStoreInArrayLiteralIC_missGrow backing storeDictionaryTyped arrayfast property storelookup transitiondictionary property storeKeyedStoreGeneric_slow../deps/v8/src/interpreter/interpreter-generator.cc:3092../deps/v8/src/interpreter/interpreter-generator.cc:3159../deps/v8/src/interpreter/interpreter-generator.ccIfNumberIfStringIfSymbolIfBooleanIfBigIntIfUndefinedIfFunctionIfObjectInitialize arguments objectMapped parameter JSSloppyArgumentsObjectFill in non-mapped parametersFill in mapped parametersNo parameters JSSloppyArgumentsObjectEmpty JSSloppyArgumentsObjectlhs is Smiperform smi operationlhs is not Smiincrement call countcheck if monomorphiccheck if megamorphiccheck if weak cellcheck if weak cell is clearedcheck if function in same native contextCall:Initializetransition to megamorphicCall:TransitionMegamorphiccall using CallWithSpread builtincheck if allocation sitecheck if uninitializedConstruct:CreateAllocationSiteConstruct:CreateWeakCellConstruct:TransitionMegamorphiccall using ConstructArray builtincall using Construct builtinConstructWithSpread:InitializeConstructWithSpread:TransitionMegamorphiccall using ConstructWithSpread builtin[ UpdateInterruptBudget] UpdateInterruptBudget========= Dispatchmirrorsliveeditprologuetypedarraynative mirrors.jsnative debug.jsnative liveedit.jsnative prologue.jsnative array.jsnative typedarray.jsdummynative dummy.js__next_prime overflowiostreamunspecified iostream_category errorios_base::clearll%Lfmoney_get error%.0Lflocale constructed with nullcollate_byname::collate_byname failed to construct for collate_byname::collate_byname(size_t refs) failed to construct for ctype_byname::ctype_byname failed to construct for ctype_byname::ctype_byname failed to construct for codecvt_byname::codecvt_byname failed to construct for numpunct_byname::numpunct_byname failed to construct for numpunct_byname::numpunct_byname failed to construct for %m/%d/%y%H:%M:%S%a %b %d %H:%M:%S %Y%I:%M:%S %ptime_get_byname failed to construct for locale not supported%A%a%B%btime_put_byname failed to construct for moneypunct_byname failed to construct for ()SundayMondayTuesdayWednesdayThursdayFridaySaturdayJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMallocator::allocate(size_t n) 'n' exceeds maximum supported sizebad_weak_ptrmutex lock failedrecursive_mutex constructor failedrecursive_mutex lock failedrecursive_timed_mutex lock limit reachedunique_lock::unlock: not lockedrandom_device failed to open random_device got EOFrandom_device got an unexpected errorbasic_stringstoistolstoulstollstoullstofstodstold%llu%f: no conversion: out of rangestring_view::substrgenericunspecified generic_category errorunspecified system_category errorUnknown error %dthread::join failedthread::detach failed__thread_specific_ptr construction failedvectorcondition_variable::wait: mutex not lockedcondition_variable wait failedcondition_variable::timed wait: mutex not lockedcondition_variable timed_wait failedThe associated promise has been destructed prior to the associated state becoming ready.The future has already been retrieved from the promise or packaged_task.The state of the promise has already been set.Operation not permitted on an object without an associated state.unspecified future_errc value cannot allocate __cxa_eh_globalsstd::__libcpp_tls_set failure in __cxa_get_globals()execute once failure in __cxa_get_globals_fast()cannot create thread specific key for __cxa_get_globals()cannot zero out thread value for __cxa_get_globals()__cxa_guard_acquire failed to acquire mutex__cxa_guard_acquire condition variable wait failed__cxa_guard_acquire failed to release mutex__cxa_guard_release failed to acquire mutex__cxa_guard_release failed to release mutex__cxa_guard_release failed to broadcast condition variable__cxa_guard_abort failed to acquire mutex__cxa_guard_abort failed to release mutex__cxa_guard_abort failed to broadcast condition variableunexpected_handler unexpectedly returnedterminate_handler unexpectedly returnedterminate_handler unexpectedly threw an exceptionPure virtual function called!Deleted virtual function called!std::exceptionstd::bad_exceptionstd::bad_allocbad_array_new_lengthbad_array_lengthstd::bad_caststd::bad_typeid/usr/local/google/buildbot/src/android/ndk-release-r19/external/libcxx/../../external/libcxxabi/src/abort_message.cppabort_messageterminating with %s exception of type %s: %sterminating with %s exception of type %sterminating with %s foreign exceptionterminatinguncaughtunexpected_Z___Z_block_invokeinvocation function for block in Ua9enable_ifIvtable for VTT for typeinfo for typeinfo name for covariant return thunk to thread-local wrapper routine for thread-local initialization routine for virtual thunk to non-virtual thunk to guard variable for reference temporary for construction vtable for -in-Ststddecltype(gsalignof (const_castdynamic_cast.*noexcept (->*reinterpret_caststatic_castsizeof (sizeof... (typeid (wchar_tb0Eb1Echarsigned charunsigned charshortunsigned shortulull__int128unsigned __int128%af%LaLfLaaanaNaScmdsdvdVeoeOlSmImlmLoooRpLrmrMrsrS... ...>(cv)([] srNsr_GLOBAL__N(anonymous namespace)dnonoperator&&operator&operator&=operator=operator()operator,operator~operator delete[]operator*operator deleteoperator/operator/=operator^operator^=operator==operator>=operator>operator[]operator<=operator<<operator<<=operator<operator-operator-=operator*=operator--operator new[]operator!=operator!operator newoperator||operator|operator|=operator->*operator+operator+=operator++operator->operator?operator%operator%=operator>>operator>>=operator<=>operator operator"" )[ ... nwnapi::operator []) ? () : (sizeof...(throw std::basic_string, std::allocator >std::basic_istream >std::basic_ostream >std::basic_iostream >allocatorbasic_istreambasic_ostreambasic_iostream[abi:UtUlvE'unnamed'lambda'(string literalstd::allocatorstd::stringstd::istreamstd::ostreamstd::iostreamistreamostreamStLstd:: [enable_if: const volatile restrict & &&unsigned intunsigned longlong longunsigned long longlong double__float128decimal64decimal128decimal32decimal16char32_tchar16_tdecltype(auto)std::nullptr_t complex imaginaryDonoexceptDwDxREOEnoexcept(throw(objcprotoDvpixel vector[ vector[::*TsstructTuunionTeid<objc_object(&(&&libunwind: %s %s:%d - %s _Unwind_Resume/usr/local/google/buildbot/src/android/ndk-release-r19/external/libcxx/../../external/libunwind_llvm/src/Unwind-EHABI.cpp_Unwind_Resume() can't return_Unwind_VRS_Setunsupported register class_Unwind_VRS_Popunwind_phase2during phase1 personality function said it would stop here, but now in phase2 it did not stop here_Unwind_VRS_Get_Internal/usr/local/google/buildbot/src/android/ndk-release-r19/external/libcxx/../../external/libunwind_llvm/src/UnwindCursor.hppgetRegister/usr/local/google/buildbot/src/android/ndk-release-r19/external/libcxx/../../external/libunwind_llvm/src/Registers.hppunsupported arm registersetRegistergetFloatRegisterUnknown ARM float registersetFloatRegistergetInfoFromEHABISectionunknown personality routineindex inlined table detected but pr function requires extra wordsunknown registerPromiseWrapAsyncWrapObjectGetAddrInfoReqWrapGetNameInfoReqWrapChannelWrapnode_ares_taskQueryAnyWrapQueryAWrapQueryAaaaWrapQueryCnameWrapQueryMxWrapQueryNsWrapQueryTxtWrapQuerySrvWrapQueryPtrWrapQueryNaptrWrapQuerySoaWrapGetHostByAddrWrapConnectWrapDNSCHANNELFILEHANDLEFILEHANDLECLOSEREQFSEVENTWRAPFSREQWRAPFSREQPROMISEGETADDRINFOREQWRAPGETNAMEINFOREQWRAPHTTP2SESSIONHTTP2STREAMHTTP2PINGHTTP2SETTINGSHTTPPARSERMESSAGEPORTPIPECONNECTWRAPPIPESERVERWRAPPROCESSWRAPPROMISEQUERYWRAPSHUTDOWNWRAPSIGNALWRAPSTATWATCHERSTREAMPIPETCPCONNECTWRAPTCPSERVERWRAPTCPWRAPTIMERWRAPTTYWRAPUDPSENDWRAPUDPWRAPWRITEWRAPPBKDF2REQUESTKEYPAIRGENREQUESTRANDOMBYTESREQUESTSCRYPTREQUESTTLSWRAPINSPECTOR_SERVERFSEventWrapSimpleShutdownWrapSimpleWriteWrapCannot find module ModuleWrappackage.json./node_modules/node_trace.${rotation}.logECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA127.0.0.1ContextifyScriptFSReqWrapFSReqPromiseFileHandleFSContinuationDataFileHandleReadWrapHttp2Session Http2SessionHttp2PingHttp2Streamnghttp2_stream_writenghttp2_headerHttp2SettingsMessageMessagePortDataMessagePorteither --use-openssl-ca or --use-bundled-ca can be used, not both--loader requires --experimental-modules be enabledeither --check or --eval can be used, not both--experimental-modulesexperimental ES Module support and caching modules--experimental-repl-awaitexperimental await keyword support in REPL--experimental-vm-modulesexperimental ES Module support in vm module--experimental-workerexperimental threaded Worker support--expose-internals(with --experimental-modules) use the specified file as a custom loader--no-deprecationsilence deprecation warnings--no-force-async-hooks-checksdisable checks for async_hooks--no-warningssilence all process warnings--pending-deprecationemit pending deprecation warnings--preserve-symlinkspreserve symbolic links when resolving--preserve-symlinks-mainpreserve symbolic links when resolving the main module--prof-processprocess V8 profiler output generated using --prof--redirect-warningswrite warnings to file instead of stderr--throw-deprecationthrow an exception on deprecations--trace-deprecationshow stack traces on deprecations--trace-sync-ioshow stack trace when use of sync IO is detected after the first tick--trace-warningsshow stack traces on process warnings--checksyntax check script without executing[has_eval_string]evaluate script--printevaluate script and print result--print --requiremodule to preload (option can be repeated)--interactivealways enter the REPL even if stdin does not appear to be a terminal--napi-modules--expose-http2--expose_http2--track-heap-objectstrack heap object allocations for heap snapshots--abort-on-uncaught-exceptionaborting instead of exiting causes a core file to be generated for analysis--max-old-space-size--perf-basic-prof--perf-prof--stack-trace-limit--titlethe process title to use on startup--trace-event-categoriescomma separated list of trace event categories to record--trace-event-file-patternTemplate string specifying the filepath for the trace-events data, it supports ${rotation} and ${pid}.--trace-events-enabledv8,node,node.async_hooks--max-http-header-sizeset the maximum size of HTTP headers (default: 8KB)--v8-pool-sizeset V8's thread pool size--zero-fill-buffersautomatically zero-fill all newly allocated Buffer and SlowBuffer instances--security-reverts--completion-bashprint source-able bash completion scriptprint node command line options--versionprint Node.js version--v8-optionsprint V8 command line options--openssl-configload OpenSSL configuration from the specified file (overrides OPENSSL_CONF)--tls-cipher-listuse an alternative default TLS cipher list--use-openssl-cause OpenSSL's default CA store--use-bundled-cause bundled CA store (default)[ssl_openssl_cert_store] must be 0 or in range 1024 to 65535.SerializerContextDeserializerContextNodeCategorySetfile://StatWatcherWorkerThread ZlibContextZlibStreamProcessWrapSABLifetimePartnerSignalWrapStreamPipeTCPSocketWrapTCPServerWrapTimerWrap${rotation}TTYWrapUDPWrapSecureContextCipherBaseDiffieHellmanNodeBIOTLSWraptraceEventsunexpected end of streamCode section cannot have size 0Invalid code section lengthnot all code section bytes were consumedInvalid function length (0)not enough code section bytesnot all code section bytes were usedUnexpected section Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayFloat32ArrayFloat64ArraySQRT1_2argumentsdefaultfloatish|double?float?|double?double?track-ephemeral-pathDeserializeLazy0123456789There are pending queries.don?B.?B.v>?456789:;<= ? !"#$%&'()*+,-./0123  Node.jsڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB:6 ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQSڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl#s'ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZhڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K :ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM541ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM546|p&ܲ`&Fuv=7S8/A0jS'1'Z>ϛDlԻG%K3 QQ+ׯBo7ҿYK2rnt^p/F @1 Y#z~6̈EXZK+AT̏m~H^7ৗ(ՋvP=̱\V.28n<h>f?H`-[ ttm@$ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM546|p&ܲ`&Fuv=7S8/A0jS'1'Z>ϛDlԻG%K3 QQ+ׯBo7ҿYK2rnt^p/F @1 Y#z~6̈EXZK+AT̏m~H^7ৗ(ՋvP=̱\V.28n<h>f?H`-[ ttmYto8w|2ߌؾs1;2tG%vk$f:cZh4#t+x#e-"".|W#4sdl0kKȆ/Kyh3[:+ NativeModule.isDepsModule(key) || key.startsWith('internal/deps') ); // Modules with source code compiled in js2c that // cannot be compiled with the code cache const cannotUseCache = [ 'config', 'sys', // deprecated 'internal/v8_prof_polyfill', 'internal/v8_prof_processor', 'internal/per_context', 'internal/test/binding', // TODO(joyeecheung): update the C++ side so that // the code cache is also used when compiling these // two files. 'internal/bootstrap/loaders', 'internal/bootstrap/node' ].concat(depsModule); // Skip modules that cannot be required when they are not // built into the binary. if (process.config.variables.v8_enable_inspector !== 1) { cannotUseCache.push('inspector'); cannotUseCache.push('internal/util/inspector'); } if (!hasTracing) { cannotUseCache.push('trace_events'); } if (!process.versions.openssl) { cannotUseCache.push('crypto'); cannotUseCache.push('https'); cannotUseCache.push('http2'); cannotUseCache.push('tls'); cannotUseCache.push('_tls_common'); cannotUseCache.push('_tls_wrap'); cannotUseCache.push('internal/crypto/certificate'); cannotUseCache.push('internal/crypto/cipher'); cannotUseCache.push('internal/crypto/diffiehellman'); cannotUseCache.push('internal/crypto/hash'); cannotUseCache.push('internal/crypto/keygen'); cannotUseCache.push('internal/crypto/pbkdf2'); cannotUseCache.push('internal/crypto/random'); cannotUseCache.push('internal/crypto/scrypt'); cannotUseCache.push('internal/crypto/sig'); cannotUseCache.push('internal/crypto/util'); cannotUseCache.push('internal/http2/core'); cannotUseCache.push('internal/http2/compat'); cannotUseCache.push('internal/streams/lazy_transform'); } module.exports = { cachableBuiltins: Object.keys(NativeModule._source).filter( (key) => !cannotUseCache.includes(key) ), builtinSource: Object.assign({}, NativeModule._source), getCodeCache, getSource: NativeModule.getSource, codeCache: internalBinding('code_cache'), compiledWithoutCache: NativeModule.compiledWithoutCache, compiledWithCache: NativeModule.compiledWithCache, nativeModuleWrap(script) { return NativeModule.wrap(script); }, cannotUseCache }; internal/bootstrap/loaders// This file creates the internal module & binding loaders used by built-in // modules. In contrast, user land modules are loaded using // lib/internal/modules/cjs/loader.js (CommonJS Modules) or // lib/internal/modules/esm/* (ES Modules). // // This file is compiled and run by node.cc before bootstrap/node.js // was called, therefore the loaders are bootstraped before we start to // actually bootstrap Node.js. It creates the following objects: // // C++ binding loaders: // - process.binding(): the legacy C++ binding loader, accessible from user land // because it is an object attached to the global process object. // These C++ bindings are created using NODE_BUILTIN_MODULE_CONTEXT_AWARE() // and have their nm_flags set to NM_F_BUILTIN. We do not make any guarantees // about the stability of these bindings, but still have to take care of // compatibility issues caused by them from time to time. // - process._linkedBinding(): intended to be used by embedders to add // additional C++ bindings in their applications. These C++ bindings // can be created using NODE_MODULE_CONTEXT_AWARE_CPP() with the flag // NM_F_LINKED. // - internalBinding(): the private internal C++ binding loader, inaccessible // from user land because they are only available from NativeModule.require() // These C++ bindings are created using NODE_MODULE_CONTEXT_AWARE_INTERNAL() // and have their nm_flags set to NM_F_INTERNAL. // // Internal JavaScript module loader: // - NativeModule: a minimal module system used to load the JavaScript core // modules found in lib/**/*.js and deps/**/*.js. All core modules are // compiled into the node binary via node_javascript.cc generated by js2c.py, // so they can be loaded faster without the cost of I/O. This class makes the // lib/internal/*, deps/internal/* modules and internalBinding() available by // default to core modules, and lets the core modules require itself via // require('internal/bootstrap/loaders') even when this file is not written in // CommonJS style. // // Other objects: // - process.moduleLoadList: an array recording the bindings and the modules // loaded in the process and the order in which they are loaded. 'use strict'; (function bootstrapInternalLoaders(process, getBinding, getLinkedBinding, getInternalBinding, debugBreak) { if (debugBreak) debugger; // eslint-disable-line no-debugger const { apply: ReflectApply, deleteProperty: ReflectDeleteProperty, get: ReflectGet, getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor, has: ReflectHas, set: ReflectSet, } = Reflect; const { prototype: { hasOwnProperty: ObjectHasOwnProperty, }, create: ObjectCreate, defineProperty: ObjectDefineProperty, keys: ObjectKeys, } = Object; // Set up process.moduleLoadList const moduleLoadList = []; ObjectDefineProperty(process, 'moduleLoadList', { value: moduleLoadList, configurable: true, enumerable: true, writable: false }); // Set up process.binding() and process._linkedBinding() { const bindingObj = ObjectCreate(null); process.binding = function binding(module) { module = String(module); let mod = bindingObj[module]; if (typeof mod !== 'object') { mod = bindingObj[module] = getBinding(module); moduleLoadList.push(`Binding ${module}`); } return mod; }; process._linkedBinding = function _linkedBinding(module) { module = String(module); let mod = bindingObj[module]; if (typeof mod !== 'object') mod = bindingObj[module] = getLinkedBinding(module); return mod; }; } // Set up internalBinding() in the closure let internalBinding; { const bindingObj = ObjectCreate(null); internalBinding = function internalBinding(module) { let mod = bindingObj[module]; if (typeof mod !== 'object') { try { mod = getInternalBinding(module); } catch { // v10.x only: Fall back to `process.binding()`, // to avoid future merge conflicts when backporting changes that use // `internalBinding()` to v10.x. mod = process.binding(module); } bindingObj[module] = mod; moduleLoadList.push(`Internal Binding ${module}`); } return mod; }; } const { ContextifyScript } = process.binding('contextify'); // Set up NativeModule function NativeModule(id) { this.filename = `${id}.js`; this.id = id; this.exports = {}; this.reflect = undefined; this.exportKeys = undefined; this.loaded = false; this.loading = false; this.script = null; // The ContextifyScript of the module } NativeModule._source = getBinding('natives'); NativeModule._cache = {}; const config = getBinding('config'); const codeCache = getInternalBinding('code_cache'); const codeCacheHash = getInternalBinding('code_cache_hash'); const sourceHash = getInternalBinding('natives_hash'); const compiledWithoutCache = NativeModule.compiledWithoutCache = []; const compiledWithCache = NativeModule.compiledWithCache = []; // Think of this as module.exports in this file even though it is not // written in CommonJS style. const loaderExports = { internalBinding, NativeModule }; const loaderId = 'internal/bootstrap/loaders'; NativeModule.require = function(id) { if (id === loaderId) { return loaderExports; } const cached = NativeModule.getCached(id); if (cached && (cached.loaded || cached.loading)) { return cached.exports; } if (!NativeModule.exists(id)) { // Model the error off the internal/errors.js model, but // do not use that module given that it could actually be // the one causing the error if there's a bug in Node.js // eslint-disable-next-line no-restricted-syntax const err = new Error(`No such built-in module: ${id}`); err.code = 'ERR_UNKNOWN_BUILTIN_MODULE'; err.name = 'Error [ERR_UNKNOWN_BUILTIN_MODULE]'; throw err; } moduleLoadList.push(`NativeModule ${id}`); const nativeModule = new NativeModule(id); nativeModule.cache(); nativeModule.compile(); return nativeModule.exports; }; NativeModule.isDepsModule = function(id) { return id.startsWith('node-inspect/') || id.startsWith('v8/'); }; NativeModule.requireForDeps = function(id) { if (!NativeModule.exists(id) || // TODO(TimothyGu): remove when DEP0084 reaches end of life. NativeModule.isDepsModule(id)) { id = `internal/deps/${id}`; } return NativeModule.require(id); }; NativeModule.getCached = function(id) { return NativeModule._cache[id]; }; NativeModule.exists = function(id) { return NativeModule._source.hasOwnProperty(id); }; if (config.exposeInternals) { NativeModule.nonInternalExists = function(id) { // Do not expose this to user land even with --expose-internals if (id === loaderId) { return false; } return NativeModule.exists(id); }; NativeModule.isInternal = function(id) { // Do not expose this to user land even with --expose-internals return id === loaderId; }; } else { NativeModule.nonInternalExists = function(id) { return NativeModule.exists(id) && !NativeModule.isInternal(id); }; NativeModule.isInternal = function(id) { return id.startsWith('internal/') || (id === 'worker_threads' && !config.experimentalWorker); }; } NativeModule.getSource = function(id) { return NativeModule._source[id]; }; NativeModule.wrap = function(script) { return NativeModule.wrapper[0] + script + NativeModule.wrapper[1]; }; NativeModule.wrapper = [ '(function (exports, require, module, process, internalBinding) {', '\n});' ]; const getOwn = (target, property, receiver) => { return ReflectApply(ObjectHasOwnProperty, target, [property]) ? ReflectGet(target, property, receiver) : undefined; }; // Provide named exports for all builtin libraries so that the libraries // may be imported in a nicer way for esm users. The default export is left // as the entire namespace (module.exports) and wrapped in a proxy such // that APMs and other behavior are still left intact. NativeModule.prototype.proxifyExports = function() { this.exportKeys = ObjectKeys(this.exports); const update = (property, value) => { if (this.reflect !== undefined && ReflectApply(ObjectHasOwnProperty, this.reflect.exports, [property])) this.reflect.exports[property].set(value); }; const handler = { __proto__: null, defineProperty: (target, prop, descriptor) => { // Use `Object.defineProperty` instead of `Reflect.defineProperty` // to throw the appropriate error if something goes wrong. ObjectDefineProperty(target, prop, descriptor); if (typeof descriptor.get === 'function' && !ReflectHas(handler, 'get')) { handler.get = (target, prop, receiver) => { const value = ReflectGet(target, prop, receiver); if (ReflectApply(ObjectHasOwnProperty, target, [prop])) update(prop, value); return value; }; } update(prop, getOwn(target, prop)); return true; }, deleteProperty: (target, prop) => { if (ReflectDeleteProperty(target, prop)) { update(prop, undefined); return true; } return false; }, set: (target, prop, value, receiver) => { const descriptor = ReflectGetOwnPropertyDescriptor(target, prop); if (ReflectSet(target, prop, value, receiver)) { if (descriptor && typeof descriptor.set === 'function') { for (const key of this.exportKeys) { update(key, getOwn(target, key, receiver)); } } else { update(prop, getOwn(target, prop, receiver)); } return true; } return false; } }; this.exports = new Proxy(this.exports, handler); }; NativeModule.prototype.compile = function() { const id = this.id; let source = NativeModule.getSource(id); source = NativeModule.wrap(source); this.loading = true; try { // Currently V8 only checks that the length of the source code is the // same as the code used to generate the hash, so we add an additional // check here: // 1. During compile time, when generating node_javascript.cc and // node_code_cache.cc, we compute and include the hash of the // (unwrapped) JavaScript source in both. // 2. At runtime, we check that the hash of the code being compiled // and the hash of the code used to generate the cache // (inside the wrapper) is the same. // This is based on the assumptions: // 1. `internalBinding('code_cache_hash')` must be in sync with // `internalBinding('code_cache')` (same C++ file) // 2. `internalBinding('natives_hash')` must be in sync with // `process.binding('natives')` (same C++ file) // 3. If `internalBinding('natives_hash')` is in sync with // `internalBinding('natives_hash')`, then the (unwrapped) // code used to generate `internalBinding('code_cache')` // should be in sync with the (unwrapped) code in // `process.binding('natives')` // There will be, however, false positives if the wrapper used // to generate the cache is different from the one used at run time, // and the length of the wrapper somehow stays the same. // But that should be rare and can be eased once we make the // two bootstrappers cached and checked as well. const cache = codeCacheHash[id] && (codeCacheHash[id] === sourceHash[id]) ? codeCache[id] : undefined; // (code, filename, lineOffset, columnOffset // cachedData, produceCachedData, parsingContext) const script = new ContextifyScript( source, this.filename, 0, 0, cache, false, undefined ); // This will be used to create code cache in tools/generate_code_cache.js this.script = script; // One of these conditions may be false when any of the inputs // of the `node_js2c` target in node.gyp is modified. // FIXME(joyeecheung): Figure out how to resolve the dependency issue. // When the code cache was introduced we were at a point where refactoring // node.gyp may not be worth the effort. if (!cache || script.cachedDataRejected) { compiledWithoutCache.push(this.id); } else { compiledWithCache.push(this.id); } // Arguments: timeout, displayErrors, breakOnSigint const fn = script.runInThisContext(-1, true, false); const requireFn = this.id.startsWith('internal/deps/') ? NativeModule.requireForDeps : NativeModule.require; fn(this.exports, requireFn, this, process, internalBinding); if (config.experimentalModules && !NativeModule.isInternal(this.id)) { this.proxifyExports(); } this.loaded = true; } finally { this.loading = false; } }; NativeModule.prototype.cache = function() { NativeModule._cache[this.id] = this; }; // This will be passed to the bootstrapNodeJSCore function in // bootstrap/node.js. return loaderExports; }); internal/bootstrap/node// Hello, and welcome to hacking node.js! // // This file is invoked by node::LoadEnvironment in src/node.cc, and is // responsible for bootstrapping the node.js core. As special caution is given // to the performance of the startup process, many dependencies are invoked // lazily. // // Before this file is run, lib/internal/bootstrap/loaders.js gets run first // to bootstrap the internal binding and module loaders, including // process.binding(), process._linkedBinding(), internalBinding() and // NativeModule. And then { internalBinding, NativeModule } will be passed // into this bootstrapper to bootstrap Node.js core. 'use strict'; (function bootstrapNodeJSCore(process, // bootstrapper properties... destructured to // avoid retaining a reference to the bootstrap // object. { _setupProcessObject, _setupNextTick, _setupPromises, _chdir, _cpuUsage, _hrtime, _hrtimeBigInt, _memoryUsage, _rawDebug, _umask, _initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups, _shouldAbortOnUncaughtToggle }, { internalBinding, NativeModule }) { const exceptionHandlerState = { captureFn: null }; const isMainThread = internalBinding('worker').threadId === 0; function startup() { setupProcessObject(); // Do this good and early, since it handles errors. setupProcessFatal(); setupProcessICUVersions(); setupGlobalVariables(); // Bootstrappers for all threads, including worker threads and main thread const perThreadSetup = NativeModule.require('internal/process/per_thread'); // Bootstrappers for the main thread only let mainThreadSetup; // Bootstrappers for the worker threads only let workerThreadSetup; if (isMainThread) { mainThreadSetup = NativeModule.require( 'internal/process/main_thread_only' ); } else { workerThreadSetup = NativeModule.require( 'internal/process/worker_thread_only' ); } perThreadSetup.setupAssert(); perThreadSetup.setupConfig(NativeModule._source); if (isMainThread) { mainThreadSetup.setupSignalHandlers(); } perThreadSetup.setupUncaughtExceptionCapture(exceptionHandlerState, _shouldAbortOnUncaughtToggle); NativeModule.require('internal/process/warning').setup(); NativeModule.require('internal/process/next_tick').setup(_setupNextTick, _setupPromises); if (isMainThread) { mainThreadSetup.setupStdio(); mainThreadSetup.setupProcessMethods( _chdir, _umask, _initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups ); } else { workerThreadSetup.setupStdio(); } const perf = process.binding('performance'); const { NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE, } = perf.constants; perThreadSetup.setupRawDebug(_rawDebug); perThreadSetup.setupHrtime(_hrtime, _hrtimeBigInt); perThreadSetup.setupCpuUsage(_cpuUsage); perThreadSetup.setupMemoryUsage(_memoryUsage); perThreadSetup.setupKillAndExit(); if (global.__coverage__) NativeModule.require('internal/process/write-coverage').setup(); if (process.env.NODE_V8_COVERAGE) { const { resolve } = NativeModule.require('path'); process.env.NODE_V8_COVERAGE = resolve(process.env.NODE_V8_COVERAGE); NativeModule.require('internal/process/coverage').setup(); } { const traceEvents = process.binding('trace_events'); const traceEventCategory = 'node,node.async_hooks'; if (traceEvents.categoryGroupEnabled(traceEventCategory)) { NativeModule.require('internal/trace_events_async_hooks') .setup(traceEvents, traceEventCategory); } } if (process.config.variables.v8_enable_inspector) { NativeModule.require('internal/inspector_async_hook').setup(); } const { getOptionValue } = NativeModule.require('internal/options'); const helpOption = getOptionValue('--help'); const completionBashOption = getOptionValue('--completion-bash'); const experimentalModulesOption = getOptionValue('--experimental-modules'); const experimentalVMModulesOption = getOptionValue('--experimental-vm-modules'); const experimentalWorkerOption = getOptionValue('--experimental-worker'); if (helpOption) { NativeModule.require('internal/print_help').print(process.stdout); return; } if (completionBashOption) { NativeModule.require('internal/bash_completion').print(process.stdout); return; } if (isMainThread) { mainThreadSetup.setupChildProcessIpcChannel(); } const browserGlobals = !process._noBrowserGlobals; if (browserGlobals) { // we are setting this here to forward it to the inspector later perThreadSetup.originalConsole = global.console; setupGlobalTimeouts(); setupGlobalConsole(); setupGlobalURL(); } if (experimentalWorkerOption) { setupDOMException(); } // On OpenBSD process.execPath will be relative unless we // get the full path before process.execPath is used. if (process.platform === 'openbsd') { const { realpathSync } = NativeModule.require('fs'); process.execPath = realpathSync.native(process.execPath); } Object.defineProperty(process, 'argv0', { enumerable: true, configurable: false, value: process.argv[0] }); process.argv[0] = process.execPath; // Handle `--debug*` deprecation and invalidation. if (process._invalidDebug) { process.emitWarning( '`node --debug` and `node --debug-brk` are invalid. ' + 'Please use `node --inspect` or `node --inspect-brk` instead.', 'DeprecationWarning', 'DEP0062', startup, true); process.exit(9); } else if (process._deprecatedDebugBrk) { process.emitWarning( '`node --inspect --debug-brk` is deprecated. ' + 'Please use `node --inspect-brk` instead.', 'DeprecationWarning', 'DEP0062', startup, true); } if (experimentalModulesOption || experimentalVMModulesOption) { if (experimentalModulesOption) { process.emitWarning( 'The ESM module loader is experimental.', 'ExperimentalWarning', undefined); } NativeModule.require('internal/process/esm_loader').setup(); } { // Install legacy getters on the `util` binding for typechecking. // TODO(addaleax): Turn into a full runtime deprecation. const { pendingDeprecation } = process.binding('config'); const { deprecate } = NativeModule.require('internal/util'); const utilBinding = process.binding('util'); const types = internalBinding('types'); for (const name of [ 'isArrayBuffer', 'isArrayBufferView', 'isAsyncFunction', 'isDataView', 'isDate', 'isExternal', 'isMap', 'isMapIterator', 'isNativeError', 'isPromise', 'isRegExp', 'isSet', 'isSetIterator', 'isTypedArray', 'isUint8Array', 'isAnyArrayBuffer' ]) { utilBinding[name] = pendingDeprecation ? deprecate(types[name], 'Accessing native typechecking bindings of Node ' + 'directly is deprecated. ' + `Please use \`util.types.${name}\` instead.`, 'DEP0103') : types[name]; } } perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE); setupAllowedFlags(); // There are various modes that Node can run in. The most common two // are running from a script and running the REPL - but there are a few // others like the debugger or running --eval arguments. Here we decide // which mode we run in. if (internalBinding('worker').getEnvMessagePort() !== undefined) { // This means we are in a Worker context, and any script execution // will be directed by the worker module. NativeModule.require('internal/worker').setupChild(evalScript); } else if (NativeModule.exists('_third_party_main')) { // To allow people to extend Node in different ways, this hook allows // one to drop a file lib/_third_party_main.js into the build // directory which will be executed instead of Node's normal loading. process.nextTick(function() { NativeModule.require('_third_party_main'); }); } else if (process.argv[1] === 'inspect' || process.argv[1] === 'debug') { if (process.argv[1] === 'debug') { process.emitWarning( '`node debug` is deprecated. Please use `node inspect` instead.', 'DeprecationWarning', 'DEP0068'); } // Start the debugger agent. process.nextTick(function() { NativeModule.require('internal/deps/node-inspect/lib/_inspect').start(); }); } else if (process.profProcess) { NativeModule.require('internal/v8_prof_processor'); } else { // There is user code to be run. // If this is a worker in cluster mode, start up the communication // channel. This needs to be done before any user code gets executed // (including preload modules). if (process.argv[1] && process.env.NODE_UNIQUE_ID) { const cluster = NativeModule.require('cluster'); cluster._setupWorker(); // Make sure it's not accidentally inherited by child processes. delete process.env.NODE_UNIQUE_ID; } if (process._eval != null && !process._forceRepl) { // User passed '-e' or '--eval' arguments to Node without '-i' or // '--interactive'. preloadModules(); const { addBuiltinLibsToObject } = NativeModule.require('internal/modules/cjs/helpers'); addBuiltinLibsToObject(global); evalScript('[eval]'); } else if (process.argv[1] && process.argv[1] !== '-') { // Make process.argv[1] into a full path. const path = NativeModule.require('path'); process.argv[1] = path.resolve(process.argv[1]); const CJSModule = NativeModule.require('internal/modules/cjs/loader'); preloadModules(); // Check if user passed `-c` or `--check` arguments to Node. if (process._syntax_check_only != null) { const fs = NativeModule.require('fs'); // Read the source. const filename = CJSModule._resolveFilename(process.argv[1]); const source = fs.readFileSync(filename, 'utf-8'); checkScriptSyntax(source, filename); process.exit(0); } CJSModule.runMain(); } else { preloadModules(); // If -i or --interactive were passed, or stdin is a TTY. if (process._forceRepl || NativeModule.require('tty').isatty(0)) { // REPL const cliRepl = NativeModule.require('internal/repl'); cliRepl.createInternalRepl(process.env, function(err, repl) { if (err) { throw err; } repl.on('exit', function() { if (repl._flushing) { repl.pause(); return repl.once('flushHistory', function() { process.exit(); }); } process.exit(); }); }); if (process._eval != null) { // User passed '-e' or '--eval' evalScript('[eval]'); } } else { // Read all of stdin - execute it. process.stdin.setEncoding('utf8'); let code = ''; process.stdin.on('data', function(d) { code += d; }); process.stdin.on('end', function() { if (process._syntax_check_only != null) { checkScriptSyntax(code, '[stdin]'); } else { process._eval = code; evalScript('[stdin]'); } }); } } } } function setupProcessObject() { const EventEmitter = NativeModule.require('events'); const origProcProto = Object.getPrototypeOf(process); Object.setPrototypeOf(origProcProto, EventEmitter.prototype); EventEmitter.call(process); _setupProcessObject(pushValueToArray); function pushValueToArray() { for (var i = 0; i < arguments.length; i++) this.push(arguments[i]); } } function setupGlobalVariables() { Object.defineProperty(global, Symbol.toStringTag, { value: 'global', writable: false, enumerable: false, configurable: true }); global.process = process; const util = NativeModule.require('util'); function makeGetter(name) { return util.deprecate(function() { return this; }, `'${name}' is deprecated, use 'global'`, 'DEP0016'); } function makeSetter(name) { return util.deprecate(function(value) { Object.defineProperty(this, name, { configurable: true, writable: true, enumerable: true, value: value }); }, `'${name}' is deprecated, use 'global'`, 'DEP0016'); } Object.defineProperties(global, { GLOBAL: { configurable: true, get: makeGetter('GLOBAL'), set: makeSetter('GLOBAL') }, root: { configurable: true, get: makeGetter('root'), set: makeSetter('root') } }); // This, as side effect, removes `setupBufferJS` from the buffer binding, // and exposes it on `internal/buffer`. NativeModule.require('internal/buffer'); global.Buffer = NativeModule.require('buffer').Buffer; process.domain = null; process._exiting = false; } function setupGlobalTimeouts() { const timers = NativeModule.require('timers'); global.clearImmediate = timers.clearImmediate; global.clearInterval = timers.clearInterval; global.clearTimeout = timers.clearTimeout; global.setImmediate = timers.setImmediate; global.setInterval = timers.setInterval; global.setTimeout = timers.setTimeout; } function setupGlobalConsole() { const originalConsole = global.console; // Setup Node.js global.console. const wrappedConsole = NativeModule.require('console'); Object.defineProperty(global, 'console', { configurable: true, enumerable: false, value: wrappedConsole, writable: true }); setupInspector(originalConsole, wrappedConsole); } function setupGlobalURL() { const { URL, URLSearchParams } = NativeModule.require('internal/url'); Object.defineProperties(global, { URL: { value: URL, writable: true, configurable: true, enumerable: false }, URLSearchParams: { value: URLSearchParams, writable: true, configurable: true, enumerable: false } }); } function setupDOMException() { // Registers the constructor with C++. NativeModule.require('internal/domexception'); } function setupInspector(originalConsole, wrappedConsole) { if (!process.config.variables.v8_enable_inspector) { return; } const CJSModule = NativeModule.require('internal/modules/cjs/loader'); const { addCommandLineAPI, consoleCall } = process.binding('inspector'); // Setup inspector command line API. const { makeRequireFunction } = NativeModule.require('internal/modules/cjs/helpers'); const path = NativeModule.require('path'); const cwd = tryGetCwd(path); const consoleAPIModule = new CJSModule(''); consoleAPIModule.paths = CJSModule._nodeModulePaths(cwd).concat(CJSModule.globalPaths); addCommandLineAPI('require', makeRequireFunction(consoleAPIModule)); const config = {}; for (const key of Object.keys(wrappedConsole)) { if (!originalConsole.hasOwnProperty(key)) continue; // If global console has the same method as inspector console, // then wrap these two methods into one. Native wrapper will preserve // the original stack. wrappedConsole[key] = consoleCall.bind(wrappedConsole, originalConsole[key], wrappedConsole[key], config); } for (const key of Object.keys(originalConsole)) { if (wrappedConsole.hasOwnProperty(key)) continue; wrappedConsole[key] = originalConsole[key]; } } function noop() {} function setupProcessFatal() { const { executionAsyncId, clearDefaultTriggerAsyncId, clearAsyncIdStack, hasAsyncIdStack, afterHooksExist, emitAfter } = NativeModule.require('internal/async_hooks'); process._fatalException = function(er) { // It's possible that defaultTriggerAsyncId was set for a constructor // call that threw and was never cleared. So clear it now. clearDefaultTriggerAsyncId(); if (exceptionHandlerState.captureFn !== null) { exceptionHandlerState.captureFn(er); } else if (!process.emit('uncaughtException', er)) { // If someone handled it, then great. otherwise, die in C++ land // since that means that we'll exit the process, emit the 'exit' event. try { if (!process._exiting) { process._exiting = true; process.exitCode = 1; process.emit('exit', 1); } } catch { // Nothing to be done about it at this point. } try { const { kExpandStackSymbol } = NativeModule.require('internal/util'); if (typeof er[kExpandStackSymbol] === 'function') er[kExpandStackSymbol](); } catch { // Nothing to be done about it at this point. } return false; } // If we handled an error, then make sure any ticks get processed // by ensuring that the next Immediate cycle isn't empty. NativeModule.require('timers').setImmediate(noop); // Emit the after() hooks now that the exception has been handled. if (afterHooksExist()) { do { emitAfter(executionAsyncId()); } while (hasAsyncIdStack()); // Or completely empty the id stack. } else { clearAsyncIdStack(); } return true; }; } function setupProcessICUVersions() { const icu = process.binding('config').hasIntl ? process.binding('icu') : undefined; if (!icu) return; // no Intl/ICU: nothing to add here. // With no argument, getVersion() returns a comma separated list // of possible types. const versionTypes = icu.getVersion().split(','); for (var n = 0; n < versionTypes.length; n++) { const name = versionTypes[n]; const version = icu.getVersion(name); Object.defineProperty(process.versions, name, { writable: false, enumerable: true, value: version }); } } function tryGetCwd(path) { try { return process.cwd(); } catch { // getcwd(3) can fail if the current working directory has been deleted. // Fall back to the directory name of the (absolute) executable path. // It's not really correct but what are the alternatives? return path.dirname(process.execPath); } } function wrapForBreakOnFirstLine(source) { if (!process._breakFirstLine) return source; const fn = `function() {\n\n${source};\n\n}`; return `process.binding('inspector').callAndPauseOnStart(${fn}, {})`; } function evalScript(name, body = wrapForBreakOnFirstLine(process._eval)) { const CJSModule = NativeModule.require('internal/modules/cjs/loader'); const path = NativeModule.require('path'); const cwd = tryGetCwd(path); const module = new CJSModule(name); module.filename = path.join(cwd, name); module.paths = CJSModule._nodeModulePaths(cwd); const script = `global.__filename = ${JSON.stringify(name)};\n` + 'global.exports = exports;\n' + 'global.module = module;\n' + 'global.__dirname = __dirname;\n' + 'global.require = require;\n' + 'return require("vm").runInThisContext(' + `${JSON.stringify(body)}, { filename: ` + `${JSON.stringify(name)}, displayErrors: true });\n`; const result = module._compile(script, `${name}-wrapper`); if (process._print_eval) console.log(result); // Handle any nextTicks added in the first tick of the program. process._tickCallback(); } // Load preload modules. function preloadModules() { if (process._preload_modules) { const { _preloadModules } = NativeModule.require('internal/modules/cjs/loader'); _preloadModules(process._preload_modules); } } function checkScriptSyntax(source, filename) { const CJSModule = NativeModule.require('internal/modules/cjs/loader'); const vm = NativeModule.require('vm'); const { stripShebang, stripBOM } = NativeModule.require('internal/modules/cjs/helpers'); // Remove Shebang. source = stripShebang(source); // Remove BOM. source = stripBOM(source); // Wrap it. source = CJSModule.wrap(source); // Compile the script, this will throw if it fails. new vm.Script(source, { displayErrors: true, filename }); } function setupAllowedFlags() { // This builds process.allowedNodeEnvironmentFlags // from data in the config binding const replaceUnderscoresRegex = /_/g; const leadingDashesRegex = /^--?/; const trailingValuesRegex = /=.*$/; // Save references so user code does not interfere const replace = Function.call.bind(String.prototype.replace); const has = Function.call.bind(Set.prototype.has); const test = Function.call.bind(RegExp.prototype.test); const get = () => { const { envSettings: { kAllowedInEnvironment } } = internalBinding('options'); const { options, aliases } = NativeModule.require('internal/options'); const allowedNodeEnvironmentFlags = []; for (const [name, info] of options) { if (info.envVarSettings === kAllowedInEnvironment) { allowedNodeEnvironmentFlags.push(name); } } for (const [ from, expansion ] of aliases) { let isAccepted = true; for (const to of expansion) { if (!to.startsWith('-') || to === '--') continue; const recursiveExpansion = aliases.get(to); if (recursiveExpansion) { if (recursiveExpansion[0] === to) recursiveExpansion.splice(0, 1); expansion.push(...recursiveExpansion); continue; } isAccepted = options.get(to).envVarSettings === kAllowedInEnvironment; if (!isAccepted) break; } if (isAccepted) { let canonical = from; if (canonical.endsWith('=')) canonical = canonical.substr(0, canonical.length - 1); if (canonical.endsWith(' ')) canonical = canonical.substr(0, canonical.length - 4); allowedNodeEnvironmentFlags.push(canonical); } } const trimLeadingDashes = (flag) => replace(flag, leadingDashesRegex, ''); // Save these for comparison against flags provided to // process.allowedNodeEnvironmentFlags.has() which lack leading dashes. // Avoid interference w/ user code by flattening `Set.prototype` into // each object. const nodeFlags = Object.defineProperties( new Set(allowedNodeEnvironmentFlags.map(trimLeadingDashes)), Object.getOwnPropertyDescriptors(Set.prototype) ); class NodeEnvironmentFlagsSet extends Set { constructor(...args) { super(...args); // the super constructor consumes `add`, but // disallow any future adds. this.add = () => this; } delete() { // noop, `Set` API compatible return false; } clear() { // noop } has(key) { // This will return `true` based on various possible // permutations of a flag, including present/missing leading // dash(es) and/or underscores-for-dashes. // Strips any values after `=`, inclusive. // TODO(addaleax): It might be more flexible to run the option parser // on a dummy option set and see whether it rejects the argument or // not. if (typeof key === 'string') { key = replace(key, replaceUnderscoresRegex, '-'); if (test(leadingDashesRegex, key)) { key = replace(key, trailingValuesRegex, ''); return has(this, key); } return has(nodeFlags, key); } return false; } } Object.freeze(NodeEnvironmentFlagsSet.prototype.constructor); Object.freeze(NodeEnvironmentFlagsSet.prototype); return process.allowedNodeEnvironmentFlags = Object.freeze( new NodeEnvironmentFlagsSet( allowedNodeEnvironmentFlags )); }; Object.defineProperty(process, 'allowedNodeEnvironmentFlags', { get, set(value) { Object.defineProperty(this, 'allowedNodeEnvironmentFlags', { value, configurable: true, enumerable: true, writable: true }); }, enumerable: true, configurable: true }); } startup(); }); async_hooks'use strict'; const { ERR_ASYNC_CALLBACK, ERR_INVALID_ASYNC_ID } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const internal_async_hooks = require('internal/async_hooks'); // Get functions // For userland AsyncResources, make sure to emit a destroy event when the // resource gets gced. const { registerDestroyHook } = internal_async_hooks; const { executionAsyncId, triggerAsyncId, // Private API getHookArrays, enableHooks, disableHooks, // Internal Embedder API newAsyncId, getDefaultTriggerAsyncId, emitInit, emitBefore, emitAfter, emitDestroy, } = internal_async_hooks; // Get symbols const { async_id_symbol, trigger_async_id_symbol, init_symbol, before_symbol, after_symbol, destroy_symbol, promise_resolve_symbol } = internal_async_hooks.symbols; // Get constants const { kInit, kBefore, kAfter, kDestroy, kTotals, kPromiseResolve, } = internal_async_hooks.constants; // Listener API // class AsyncHook { constructor({ init, before, after, destroy, promiseResolve }) { if (init !== undefined && typeof init !== 'function') throw new ERR_ASYNC_CALLBACK('hook.init'); if (before !== undefined && typeof before !== 'function') throw new ERR_ASYNC_CALLBACK('hook.before'); if (after !== undefined && typeof after !== 'function') throw new ERR_ASYNC_CALLBACK('hook.after'); if (destroy !== undefined && typeof destroy !== 'function') throw new ERR_ASYNC_CALLBACK('hook.destroy'); if (promiseResolve !== undefined && typeof promiseResolve !== 'function') throw new ERR_ASYNC_CALLBACK('hook.promiseResolve'); this[init_symbol] = init; this[before_symbol] = before; this[after_symbol] = after; this[destroy_symbol] = destroy; this[promise_resolve_symbol] = promiseResolve; } enable() { // The set of callbacks for a hook should be the same regardless of whether // enable()/disable() are run during their execution. The following // references are reassigned to the tmp arrays if a hook is currently being // processed. const [hooks_array, hook_fields] = getHookArrays(); // Each hook is only allowed to be added once. if (hooks_array.includes(this)) return this; const prev_kTotals = hook_fields[kTotals]; // createHook() has already enforced that the callbacks are all functions, // so here simply increment the count of whether each callbacks exists or // not. hook_fields[kTotals] = hook_fields[kInit] += +!!this[init_symbol]; hook_fields[kTotals] += hook_fields[kBefore] += +!!this[before_symbol]; hook_fields[kTotals] += hook_fields[kAfter] += +!!this[after_symbol]; hook_fields[kTotals] += hook_fields[kDestroy] += +!!this[destroy_symbol]; hook_fields[kTotals] += hook_fields[kPromiseResolve] += +!!this[promise_resolve_symbol]; hooks_array.push(this); if (prev_kTotals === 0 && hook_fields[kTotals] > 0) { enableHooks(); } return this; } disable() { const [hooks_array, hook_fields] = getHookArrays(); const index = hooks_array.indexOf(this); if (index === -1) return this; const prev_kTotals = hook_fields[kTotals]; hook_fields[kTotals] = hook_fields[kInit] -= +!!this[init_symbol]; hook_fields[kTotals] += hook_fields[kBefore] -= +!!this[before_symbol]; hook_fields[kTotals] += hook_fields[kAfter] -= +!!this[after_symbol]; hook_fields[kTotals] += hook_fields[kDestroy] -= +!!this[destroy_symbol]; hook_fields[kTotals] += hook_fields[kPromiseResolve] -= +!!this[promise_resolve_symbol]; hooks_array.splice(index, 1); if (prev_kTotals > 0 && hook_fields[kTotals] === 0) { disableHooks(); } return this; } } function createHook(fns) { return new AsyncHook(fns); } // Embedder API // const destroyedSymbol = Symbol('destroyed'); let emitBeforeAfterWarning = true; function showEmitBeforeAfterWarning() { if (emitBeforeAfterWarning) { process.emitWarning( 'asyncResource.emitBefore and emitAfter are deprecated. Please use ' + 'asyncResource.runInAsyncScope instead', 'DeprecationWarning', 'DEP0098'); emitBeforeAfterWarning = false; } } class AsyncResource { constructor(type, opts = {}) { validateString(type, 'type'); if (typeof opts === 'number') { opts = { triggerAsyncId: opts, requireManualDestroy: false }; } else if (opts.triggerAsyncId === undefined) { opts.triggerAsyncId = getDefaultTriggerAsyncId(); } // Unlike emitInitScript, AsyncResource doesn't supports null as the // triggerAsyncId. const triggerAsyncId = opts.triggerAsyncId; if (!Number.isSafeInteger(triggerAsyncId) || triggerAsyncId < -1) { throw new ERR_INVALID_ASYNC_ID('triggerAsyncId', triggerAsyncId); } this[async_id_symbol] = newAsyncId(); this[trigger_async_id_symbol] = triggerAsyncId; // this prop name (destroyed) has to be synchronized with C++ this[destroyedSymbol] = { destroyed: false }; emitInit( this[async_id_symbol], type, this[trigger_async_id_symbol], this ); if (!opts.requireManualDestroy) { registerDestroyHook(this, this[async_id_symbol], this[destroyedSymbol]); } } emitBefore() { showEmitBeforeAfterWarning(); emitBefore(this[async_id_symbol], this[trigger_async_id_symbol]); return this; } emitAfter() { showEmitBeforeAfterWarning(); emitAfter(this[async_id_symbol]); return this; } runInAsyncScope(fn, thisArg, ...args) { emitBefore(this[async_id_symbol], this[trigger_async_id_symbol]); let ret; try { ret = Reflect.apply(fn, thisArg, args); } finally { emitAfter(this[async_id_symbol]); } return ret; } emitDestroy() { this[destroyedSymbol].destroyed = true; emitDestroy(this[async_id_symbol]); return this; } asyncId() { return this[async_id_symbol]; } triggerAsyncId() { return this[trigger_async_id_symbol]; } } // Placing all exports down here because the exported classes won't export // otherwise. module.exports = { // Public API createHook, executionAsyncId, triggerAsyncId, // Embedder API AsyncResource, }; assert// Originally from narwhal.js (http://narwhaljs.org) // Copyright (c) 2009 Thomas Robinson <280north.com> // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the 'Software'), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { Buffer } = require('buffer'); const { codes: { ERR_AMBIGUOUS_ARGUMENT, ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE } } = require('internal/errors'); const { AssertionError } = require('internal/assert'); const { openSync, closeSync, readSync } = require('fs'); const { inspect, types: { isPromise, isRegExp } } = require('util'); const { EOL } = require('internal/constants'); const { NativeModule } = require('internal/bootstrap/loaders'); const errorCache = new Map(); let isDeepEqual; let isDeepStrictEqual; let parseExpressionAt; let findNodeAround; let columnOffset = 0; let decoder; function lazyLoadComparison() { const comparison = require('internal/util/comparisons'); isDeepEqual = comparison.isDeepEqual; isDeepStrictEqual = comparison.isDeepStrictEqual; } // Escape control characters but not \n and \t to keep the line breaks and // indentation intact. // eslint-disable-next-line no-control-regex const escapeSequencesRegExp = /[\x00-\x08\x0b\x0c\x0e-\x1f]/g; const meta = [ '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '', '', '\\u000b', '\\f', '', '\\u000e', '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', '\\u001e', '\\u001f' ]; const escapeFn = (str) => meta[str.charCodeAt(0)]; let warned = false; // The assert module provides functions that throw // AssertionError's when particular conditions are not met. The // assert module must conform to the following interface. const assert = module.exports = ok; const NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError // when a corresponding condition is not met, with a message that // may be undefined if not provided. All assertion methods provide // both the actual and expected values to the assertion error for // display purposes. function innerFail(obj) { if (obj.message instanceof Error) throw obj.message; throw new AssertionError(obj); } function fail(actual, expected, message, operator, stackStartFn) { const argsLen = arguments.length; let internalMessage; if (argsLen === 0) { internalMessage = 'Failed'; } else if (argsLen === 1) { message = actual; actual = undefined; } else { if (warned === false) { warned = true; process.emitWarning( 'assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094' ); } if (argsLen === 2) operator = '!='; } if (message instanceof Error) throw message; const errArgs = { actual, expected, operator: operator === undefined ? 'fail' : operator, stackStartFn: stackStartFn || fail }; if (message !== undefined) { errArgs.message = message; } const err = new AssertionError(errArgs); if (internalMessage) { err.message = internalMessage; err.generatedMessage = true; } throw err; } assert.fail = fail; // The AssertionError is defined in internal/error. assert.AssertionError = AssertionError; function findColumn(fd, column, code) { if (code.length > column + 100) { try { return parseCode(code, column); } catch { // End recursion in case no code could be parsed. The expression should // have been found after 2500 characters, so stop trying. if (code.length - column > 2500) { // eslint-disable-next-line no-throw-literal throw null; } } } // Read up to 2500 bytes more than necessary in columns. That way we address // multi byte characters and read enough data to parse the code. const bytesToRead = column - code.length + 2500; const buffer = Buffer.allocUnsafe(bytesToRead); const bytesRead = readSync(fd, buffer, 0, bytesToRead); code += decoder.write(buffer.slice(0, bytesRead)); // EOF: fast path. if (bytesRead < bytesToRead) { return parseCode(code, column); } // Read potentially missing code. return findColumn(fd, column, code); } function getCode(fd, line, column) { let bytesRead = 0; if (line === 0) { // Special handle line number one. This is more efficient and simplifies the // rest of the algorithm. Read more than the regular column number in bytes // to prevent multiple reads in case multi byte characters are used. return findColumn(fd, column, ''); } let lines = 0; // Prevent blocking the event loop by limiting the maximum amount of // data that may be read. let maxReads = 64; // bytesPerRead * maxReads = 512 kb const bytesPerRead = 8192; // Use a single buffer up front that is reused until the call site is found. let buffer = Buffer.allocUnsafe(bytesPerRead); while (maxReads-- !== 0) { // Only allocate a new buffer in case the needed line is found. All data // before that can be discarded. buffer = lines < line ? buffer : Buffer.allocUnsafe(bytesPerRead); bytesRead = readSync(fd, buffer, 0, bytesPerRead); // Read the buffer until the required code line is found. for (var i = 0; i < bytesRead; i++) { if (buffer[i] === 10 && ++lines === line) { // If the end of file is reached, directly parse the code and return. if (bytesRead < bytesPerRead) { return parseCode(buffer.toString('utf8', i + 1, bytesRead), column); } // Check if the read code is sufficient or read more until the whole // expression is read. Make sure multi byte characters are preserved // properly by using the decoder. const code = decoder.write(buffer.slice(i + 1, bytesRead)); return findColumn(fd, column, code); } } } } function parseCode(code, offset) { // Lazy load acorn. if (parseExpressionAt === undefined) { ({ parseExpressionAt } = require('internal/deps/acorn/dist/acorn')); ({ findNodeAround } = require('internal/deps/acorn/dist/walk')); } let node; let start = 0; // Parse the read code until the correct expression is found. do { try { node = parseExpressionAt(code, start); start = node.end + 1 || start; // Find the CallExpression in the tree. node = findNodeAround(node, offset, 'CallExpression'); } catch (err) { // Unexpected token error and the like. start += err.raisedAt || 1; if (start > offset) { // No matching expression found. This could happen if the assert // expression is bigger than the provided buffer. // eslint-disable-next-line no-throw-literal throw null; } } } while (node === undefined || node.node.end < offset); return [ node.node.start, code.slice(node.node.start, node.node.end) .replace(escapeSequencesRegExp, escapeFn) ]; } function getErrMessage(message, fn) { const tmpLimit = Error.stackTraceLimit; // Make sure the limit is set to 1. Otherwise it could fail (<= 0) or it // does to much work. Error.stackTraceLimit = 1; // We only need the stack trace. To minimize the overhead use an object // instead of an error. const err = {}; Error.captureStackTrace(err, fn); Error.stackTraceLimit = tmpLimit; const tmpPrepare = Error.prepareStackTrace; Error.prepareStackTrace = (_, stack) => stack; const call = err.stack[0]; Error.prepareStackTrace = tmpPrepare; const filename = call.getFileName(); if (!filename) { return message; } const line = call.getLineNumber() - 1; let column = call.getColumnNumber() - 1; // Line number one reports the wrong column due to being wrapped in a // function. Remove that offset to get the actual call. if (line === 0) { if (columnOffset === 0) { const { wrapper } = require('internal/modules/cjs/loader'); columnOffset = wrapper[0].length; } column -= columnOffset; } const identifier = `${filename}${line}${column}`; if (errorCache.has(identifier)) { return errorCache.get(identifier); } // Skip Node.js modules! if (filename.endsWith('.js') && NativeModule.exists(filename.slice(0, -3))) { errorCache.set(identifier, undefined); return; } let fd; try { // Set the stack trace limit to zero. This makes sure unexpected token // errors are handled faster. Error.stackTraceLimit = 0; if (decoder === undefined) { const { StringDecoder } = require('string_decoder'); decoder = new StringDecoder('utf8'); } fd = openSync(filename, 'r', 0o666); // Reset column and message. [column, message] = getCode(fd, line, column); // Flush unfinished multi byte characters. decoder.end(); // Always normalize indentation, otherwise the message could look weird. if (message.indexOf('\n') !== -1) { if (EOL === '\r\n') { message = message.replace(/\r\n/g, '\n'); } const frames = message.split('\n'); message = frames.shift(); for (const frame of frames) { let pos = 0; while (pos < column && (frame[pos] === ' ' || frame[pos] === '\t')) { pos++; } message += `\n ${frame.slice(pos)}`; } } message = `The expression evaluated to a falsy value:\n\n ${message}\n`; // Make sure to always set the cache! No matter if the message is // undefined or not errorCache.set(identifier, message); return message; } catch { // Invalidate cache to prevent trying to read this part again. errorCache.set(identifier, undefined); } finally { // Reset limit. Error.stackTraceLimit = tmpLimit; if (fd !== undefined) closeSync(fd); } } function innerOk(fn, argLen, value, message) { if (!value) { let generatedMessage = false; if (argLen === 0) { generatedMessage = true; message = 'No value argument passed to `assert.ok()`'; } else if (message == null) { generatedMessage = true; message = getErrMessage(message, fn); } else if (message instanceof Error) { throw message; } const err = new AssertionError({ actual: value, expected: true, message, operator: '==', stackStartFn: fn }); err.generatedMessage = generatedMessage; throw err; } } // Pure assertion tests whether a value is truthy, as determined // by !!value. function ok(...args) { innerOk(ok, args.length, ...args); } assert.ok = ok; // The equality assertion tests shallow, coercive equality with ==. /* eslint-disable no-restricted-properties */ assert.equal = function equal(actual, expected, message) { // eslint-disable-next-line eqeqeq if (actual != expected) { innerFail({ actual, expected, message, operator: '==', stackStartFn: equal }); } }; // The non-equality assertion tests for whether two objects are not // equal with !=. assert.notEqual = function notEqual(actual, expected, message) { // eslint-disable-next-line eqeqeq if (actual == expected) { innerFail({ actual, expected, message, operator: '!=', stackStartFn: notEqual }); } }; // The equivalence assertion tests a deep equality relation. assert.deepEqual = function deepEqual(actual, expected, message) { if (isDeepEqual === undefined) lazyLoadComparison(); if (!isDeepEqual(actual, expected)) { innerFail({ actual, expected, message, operator: 'deepEqual', stackStartFn: deepEqual }); } }; // The non-equivalence assertion tests for any deep inequality. assert.notDeepEqual = function notDeepEqual(actual, expected, message) { if (isDeepEqual === undefined) lazyLoadComparison(); if (isDeepEqual(actual, expected)) { innerFail({ actual, expected, message, operator: 'notDeepEqual', stackStartFn: notDeepEqual }); } }; /* eslint-enable */ assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) { if (isDeepEqual === undefined) lazyLoadComparison(); if (!isDeepStrictEqual(actual, expected)) { innerFail({ actual, expected, message, operator: 'deepStrictEqual', stackStartFn: deepStrictEqual }); } }; assert.notDeepStrictEqual = notDeepStrictEqual; function notDeepStrictEqual(actual, expected, message) { if (isDeepEqual === undefined) lazyLoadComparison(); if (isDeepStrictEqual(actual, expected)) { innerFail({ actual, expected, message, operator: 'notDeepStrictEqual', stackStartFn: notDeepStrictEqual }); } } assert.strictEqual = function strictEqual(actual, expected, message) { if (!Object.is(actual, expected)) { innerFail({ actual, expected, message, operator: 'strictEqual', stackStartFn: strictEqual }); } }; assert.notStrictEqual = function notStrictEqual(actual, expected, message) { if (Object.is(actual, expected)) { innerFail({ actual, expected, message, operator: 'notStrictEqual', stackStartFn: notStrictEqual }); } }; class Comparison { constructor(obj, keys, actual) { for (const key of keys) { if (key in obj) { if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) { this[key] = actual[key]; } else { this[key] = obj[key]; } } } } } function compareExceptionKey(actual, expected, key, message, keys) { if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) { if (!message) { // Create placeholder objects to create a nice output. const a = new Comparison(actual, keys); const b = new Comparison(expected, keys, actual); const err = new AssertionError({ actual: a, expected: b, operator: 'deepStrictEqual', stackStartFn: assert.throws }); err.actual = actual; err.expected = expected; err.operator = 'throws'; throw err; } innerFail({ actual, expected, message, operator: 'throws', stackStartFn: assert.throws }); } } function expectedException(actual, expected, msg) { if (typeof expected !== 'function') { if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects. if (arguments.length === 2) { throw new ERR_INVALID_ARG_TYPE( 'expected', ['Function', 'RegExp'], expected ); } // TODO: Disallow primitives as error argument. // This is here to prevent a breaking change. if (typeof expected !== 'object') { return true; } // Handle primitives properly. if (typeof actual !== 'object' || actual === null) { const err = new AssertionError({ actual, expected, message: msg, operator: 'deepStrictEqual', stackStartFn: assert.throws }); err.operator = 'throws'; throw err; } const keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared // as well. if (expected instanceof Error) { keys.push('name', 'message'); } if (isDeepEqual === undefined) lazyLoadComparison(); for (const key of keys) { if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) { continue; } compareExceptionKey(actual, expected, key, msg, keys); } return true; } // Guard instanceof against arrow functions as they don't have a prototype. if (expected.prototype !== undefined && actual instanceof expected) { return true; } if (Error.isPrototypeOf(expected)) { return false; } return expected.call({}, actual) === true; } function getActual(fn) { if (typeof fn !== 'function') { throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn); } try { fn(); } catch (e) { return e; } return NO_EXCEPTION_SENTINEL; } function checkIsPromise(obj) { // Accept native ES6 promises and promises that are implemented in a similar // way. Do not accept thenables that use a function as `obj` and that have no // `catch` handler. return isPromise(obj) || obj !== null && typeof obj === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function'; } async function waitForActual(promiseFn) { let resultPromise; if (typeof promiseFn === 'function') { // Return a rejected promise if `promiseFn` throws synchronously. resultPromise = promiseFn(); // Fail in case no promise is returned. if (!checkIsPromise(resultPromise)) { throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise); } } else if (checkIsPromise(promiseFn)) { resultPromise = promiseFn; } else { throw new ERR_INVALID_ARG_TYPE( 'promiseFn', ['Function', 'Promise'], promiseFn); } try { await resultPromise; } catch (e) { return e; } return NO_EXCEPTION_SENTINEL; } function expectsError(stackStartFn, actual, error, message) { if (typeof error === 'string') { if (arguments.length === 4) { throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error); } if (typeof actual === 'object' && actual !== null) { if (actual.message === error) { throw new ERR_AMBIGUOUS_ARGUMENT( 'error/message', `The error message "${actual.message}" is identical to the message.` ); } } else if (actual === error) { throw new ERR_AMBIGUOUS_ARGUMENT( 'error/message', `The error "${actual}" is identical to the message.` ); } message = error; error = undefined; } if (actual === NO_EXCEPTION_SENTINEL) { let details = ''; if (error && error.name) { details += ` (${error.name})`; } details += message ? `: ${message}` : '.'; const fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception'; innerFail({ actual: undefined, expected: error, operator: stackStartFn.name, message: `Missing expected ${fnType}${details}`, stackStartFn }); } if (error && expectedException(actual, error, message) === false) { throw actual; } } function expectsNoError(stackStartFn, actual, error, message) { if (actual === NO_EXCEPTION_SENTINEL) return; if (typeof error === 'string') { message = error; error = undefined; } if (!error || expectedException(actual, error)) { const details = message ? `: ${message}` : '.'; const fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception'; innerFail({ actual, expected: error, operator: stackStartFn.name, message: `Got unwanted ${fnType}${details}\n` + `Actual message: "${actual && actual.message}"`, stackStartFn }); } throw actual; } assert.throws = function throws(promiseFn, ...args) { expectsError(throws, getActual(promiseFn), ...args); }; assert.rejects = async function rejects(promiseFn, ...args) { expectsError(rejects, await waitForActual(promiseFn), ...args); }; assert.doesNotThrow = function doesNotThrow(fn, ...args) { expectsNoError(doesNotThrow, getActual(fn), ...args); }; assert.doesNotReject = async function doesNotReject(fn, ...args) { expectsNoError(doesNotReject, await waitForActual(fn), ...args); }; assert.ifError = function ifError(err) { if (err !== null && err !== undefined) { let message = 'ifError got unwanted exception: '; if (typeof err === 'object' && typeof err.message === 'string') { if (err.message.length === 0 && err.constructor) { message += err.constructor.name; } else { message += err.message; } } else { message += inspect(err); } const newErr = new AssertionError({ actual: err, expected: null, operator: 'ifError', message, stackStartFn: ifError }); // Make sure we actually have a stack trace! const origStack = err.stack; if (typeof origStack === 'string') { // This will remove any duplicated frames from the error frames taken // from within `ifError` and add the original error frames to the newly // created ones. const tmp2 = origStack.split('\n'); tmp2.shift(); // Filter all frames existing in err.stack. let tmp1 = newErr.stack.split('\n'); for (var i = 0; i < tmp2.length; i++) { // Find the first occurrence of the frame. const pos = tmp1.indexOf(tmp2[i]); if (pos !== -1) { // Only keep new frames. tmp1 = tmp1.slice(0, pos); break; } } newErr.stack = `${tmp1.join('\n')}\n${tmp2.join('\n')}`; } throw newErr; } }; // Expose a strict only variant of assert function strict(...args) { innerOk(strict, args.length, ...args); } assert.strict = Object.assign(strict, assert, { equal: assert.strictEqual, deepEqual: assert.deepStrictEqual, notEqual: assert.notStrictEqual, notDeepEqual: assert.notDeepStrictEqual }); assert.strict.strict = assert.strict; buffer// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { byteLengthUtf8, copy: _copy, compare: _compare, compareOffset, createFromString, fill: bindingFill, indexOfBuffer, indexOfNumber, indexOfString, swap16: _swap16, swap32: _swap32, swap64: _swap64, kMaxLength, kStringMaxLength } = process.binding('buffer'); // We cannot use internalBinding unconditionally here because of the way // that test/parallel/test-buffer-bindingobj-no-zerofill.js is written. let isAnyArrayBuffer; try { isAnyArrayBuffer = internalBinding('types').isAnyArrayBuffer; } catch { isAnyArrayBuffer = require('util').types.isAnyArrayBuffer; } const { customInspectSymbol, isInsideNodeModules, normalizeEncoding, kIsEncodingSymbol } = require('internal/util'); const { isArrayBufferView, isUint8Array } = require('internal/util/types'); const { pendingDeprecation } = process.binding('config'); const { ERR_BUFFER_OUT_OF_BOUNDS, ERR_INDEX_OUT_OF_RANGE, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_INVALID_BUFFER_SIZE, ERR_INVALID_OPT_VALUE, ERR_NO_LONGER_SUPPORTED, ERR_UNKNOWN_ENCODING } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const internalBuffer = require('internal/buffer'); const { setupBufferJS } = internalBuffer; const bindingObj = {}; class FastBuffer extends Uint8Array {} FastBuffer.prototype.constructor = Buffer; internalBuffer.FastBuffer = FastBuffer; Buffer.prototype = FastBuffer.prototype; for (const [name, method] of Object.entries(internalBuffer.readWrites)) { Buffer.prototype[name] = method; } const constants = Object.defineProperties({}, { MAX_LENGTH: { value: kMaxLength, writable: false, enumerable: true }, MAX_STRING_LENGTH: { value: kStringMaxLength, writable: false, enumerable: true } }); Buffer.poolSize = 8 * 1024; var poolSize, poolOffset, allocPool; setupBufferJS(Buffer.prototype, bindingObj); // |zeroFill| can be undefined when running inside an isolate where we // do not own the ArrayBuffer allocator. Zero fill is always on in that case. const zeroFill = bindingObj.zeroFill || [0]; function createUnsafeBuffer(size) { return new FastBuffer(createUnsafeArrayBuffer(size)); } function createUnsafeArrayBuffer(size) { zeroFill[0] = 0; try { return new ArrayBuffer(size); } finally { zeroFill[0] = 1; } } function createPool() { poolSize = Buffer.poolSize; allocPool = createUnsafeArrayBuffer(poolSize); poolOffset = 0; } createPool(); function alignPool() { // Ensure aligned slices if (poolOffset & 0x7) { poolOffset |= 0x7; poolOffset++; } } let bufferWarningAlreadyEmitted = false; let nodeModulesCheckCounter = 0; const bufferWarning = 'Buffer() is deprecated due to security and usability ' + 'issues. Please use the Buffer.alloc(), ' + 'Buffer.allocUnsafe(), or Buffer.from() methods instead.'; function showFlaggedDeprecation() { if (bufferWarningAlreadyEmitted || ++nodeModulesCheckCounter > 10000 || (!pendingDeprecation && isInsideNodeModules())) { // We don't emit a warning, because we either: // - Already did so, or // - Already checked too many times whether a call is coming // from node_modules and want to stop slowing down things, or // - We aren't running with `--pending-deprecation` enabled, // and the code is inside `node_modules`. return; } process.emitWarning(bufferWarning, 'DeprecationWarning', 'DEP0005'); bufferWarningAlreadyEmitted = true; } /** * The Buffer() constructor is deprecated in documentation and should not be * used moving forward. Rather, developers should use one of the three new * factory APIs: Buffer.from(), Buffer.allocUnsafe() or Buffer.alloc() based on * their specific needs. There is no runtime deprecation because of the extent * to which the Buffer constructor is used in the ecosystem currently -- a * runtime deprecation would introduce too much breakage at this time. It's not * likely that the Buffer constructors would ever actually be removed. * Deprecation Code: DEP0005 */ function Buffer(arg, encodingOrOffset, length) { showFlaggedDeprecation(); // Common case. if (typeof arg === 'number') { if (typeof encodingOrOffset === 'string') { throw new ERR_INVALID_ARG_TYPE('string', 'string', arg); } return Buffer.alloc(arg); } return Buffer.from(arg, encodingOrOffset, length); } Object.defineProperty(Buffer, Symbol.species, { enumerable: false, configurable: true, get() { return FastBuffer; } }); /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) */ Buffer.from = function from(value, encodingOrOffset, length) { if (typeof value === 'string') return fromString(value, encodingOrOffset); if (isAnyArrayBuffer(value)) return fromArrayBuffer(value, encodingOrOffset, length); if (value === null || value === undefined) { throw new ERR_INVALID_ARG_TYPE( 'first argument', ['string', 'Buffer', 'ArrayBuffer', 'Array', 'Array-like Object'], value ); } if (typeof value === 'number') { throw new ERR_INVALID_ARG_TYPE('value', 'not number', value); } const valueOf = value.valueOf && value.valueOf(); if (valueOf !== null && valueOf !== undefined && valueOf !== value) return Buffer.from(valueOf, encodingOrOffset, length); var b = fromObject(value); if (b) return b; if (typeof value[Symbol.toPrimitive] === 'function') { return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length); } throw new ERR_INVALID_ARG_TYPE( 'first argument', ['string', 'Buffer', 'ArrayBuffer', 'Array', 'Array-like Object'], value ); }; // Identical to the built-in %TypedArray%.of(), but avoids using the deprecated // Buffer() constructor. Must use arrow function syntax to avoid automatically // adding a `prototype` property and making the function a constructor. // // Refs: https://tc39.github.io/ecma262/#sec-%typedarray%.of // Refs: https://esdiscuss.org/topic/isconstructor#content-11 const of = (...items) => { const newObj = createUnsafeBuffer(items.length); for (var k = 0; k < items.length; k++) newObj[k] = items[k]; return newObj; }; Buffer.of = of; Object.setPrototypeOf(Buffer, Uint8Array); // The 'assertSize' method will remove itself from the callstack when an error // occurs. This is done simply to keep the internal details of the // implementation from bleeding out to users. function assertSize(size) { let err = null; if (typeof size !== 'number') { err = new ERR_INVALID_ARG_TYPE('size', 'number', size); } else if (size < 0 || size > kMaxLength) { err = new ERR_INVALID_OPT_VALUE.RangeError('size', size); } if (err !== null) { Error.captureStackTrace(err, assertSize); throw err; } } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) */ Buffer.alloc = function alloc(size, fill, encoding) { assertSize(size); if (fill !== undefined && fill !== 0 && size > 0) { const buf = createUnsafeBuffer(size); return _fill(buf, fill, 0, buf.length, encoding); } return new FastBuffer(size); }; /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer * instance. If `--zero-fill-buffers` is set, will zero-fill the buffer. */ Buffer.allocUnsafe = function allocUnsafe(size) { assertSize(size); return allocate(size); }; /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled * Buffer instance that is not allocated off the pre-initialized pool. * If `--zero-fill-buffers` is set, will zero-fill the buffer. */ Buffer.allocUnsafeSlow = function allocUnsafeSlow(size) { assertSize(size); return createUnsafeBuffer(size); }; // If --zero-fill-buffers command line argument is set, a zero-filled // buffer is returned. function SlowBuffer(length) { // eslint-disable-next-line eqeqeq if (+length != length) length = 0; assertSize(+length); return createUnsafeBuffer(+length); } Object.setPrototypeOf(SlowBuffer.prototype, Uint8Array.prototype); Object.setPrototypeOf(SlowBuffer, Uint8Array); function allocate(size) { if (size <= 0) { return new FastBuffer(); } if (size < (Buffer.poolSize >>> 1)) { if (size > (poolSize - poolOffset)) createPool(); var b = new FastBuffer(allocPool, poolOffset, size); poolOffset += size; alignPool(); return b; } else { return createUnsafeBuffer(size); } } function fromString(string, encoding) { var length; if (typeof encoding !== 'string' || encoding.length === 0) { if (string.length === 0) return new FastBuffer(); encoding = 'utf8'; length = byteLengthUtf8(string); } else { length = byteLength(string, encoding, true); if (length === -1) throw new ERR_UNKNOWN_ENCODING(encoding); if (string.length === 0) return new FastBuffer(); } if (length >= (Buffer.poolSize >>> 1)) return createFromString(string, encoding); if (length > (poolSize - poolOffset)) createPool(); var b = new FastBuffer(allocPool, poolOffset, length); const actual = b.write(string, encoding); if (actual !== length) { // byteLength() may overestimate. That's a rare case, though. b = new FastBuffer(allocPool, poolOffset, actual); } poolOffset += actual; alignPool(); return b; } function fromArrayLike(obj) { const length = obj.length; const b = allocate(length); for (var i = 0; i < length; i++) b[i] = obj[i]; return b; } function fromArrayBuffer(obj, byteOffset, length) { // convert byteOffset to integer if (byteOffset === undefined) { byteOffset = 0; } else { byteOffset = +byteOffset; if (Number.isNaN(byteOffset)) byteOffset = 0; } const maxLength = obj.byteLength - byteOffset; if (maxLength < 0) throw new ERR_BUFFER_OUT_OF_BOUNDS('offset'); if (length === undefined) { length = maxLength; } else { // Convert length to non-negative integer. length = +length; if (length > 0) { if (length > maxLength) throw new ERR_BUFFER_OUT_OF_BOUNDS('length'); } else { length = 0; } } return new FastBuffer(obj, byteOffset, length); } function fromObject(obj) { if (isUint8Array(obj)) { const b = allocate(obj.length); if (b.length === 0) return b; _copy(obj, b, 0, 0, obj.length); return b; } if (obj.length !== undefined || isAnyArrayBuffer(obj.buffer)) { if (typeof obj.length !== 'number') { return new FastBuffer(); } return fromArrayLike(obj); } if (obj.type === 'Buffer' && Array.isArray(obj.data)) { return fromArrayLike(obj.data); } } // Static methods Buffer.isBuffer = function isBuffer(b) { return b instanceof Buffer; }; Buffer.compare = function compare(buf1, buf2) { if (!isUint8Array(buf1)) { throw new ERR_INVALID_ARG_TYPE('buf1', ['Buffer', 'Uint8Array'], buf1); } if (!isUint8Array(buf2)) { throw new ERR_INVALID_ARG_TYPE('buf2', ['Buffer', 'Uint8Array'], buf2); } if (buf1 === buf2) { return 0; } return _compare(buf1, buf2); }; Buffer.isEncoding = function isEncoding(encoding) { return typeof encoding === 'string' && encoding.length !== 0 && normalizeEncoding(encoding) !== undefined; }; Buffer[kIsEncodingSymbol] = Buffer.isEncoding; Buffer.concat = function concat(list, length) { var i; if (!Array.isArray(list)) { throw new ERR_INVALID_ARG_TYPE( 'list', ['Array', 'Buffer', 'Uint8Array'], list); } if (list.length === 0) return new FastBuffer(); if (length === undefined) { length = 0; for (i = 0; i < list.length; i++) length += list[i].length; } else { length = length >>> 0; } var buffer = Buffer.allocUnsafe(length); var pos = 0; for (i = 0; i < list.length; i++) { var buf = list[i]; if (!isUint8Array(buf)) { // TODO(BridgeAR): This should not be of type ERR_INVALID_ARG_TYPE. // Instead, find the proper error code for this. throw new ERR_INVALID_ARG_TYPE( `list[${i}]`, ['Array', 'Buffer', 'Uint8Array'], list[i]); } _copy(buf, buffer, pos); pos += buf.length; } // Note: `length` is always equal to `buffer.length` at this point if (pos < length) { // Zero-fill the remaining bytes if the specified `length` was more than // the actual total length, i.e. if we have some remaining allocated bytes // there were not initialized. buffer.fill(0, pos, length); } return buffer; }; function base64ByteLength(str, bytes) { // Handle padding if (str.charCodeAt(bytes - 1) === 0x3D) bytes--; if (bytes > 1 && str.charCodeAt(bytes - 1) === 0x3D) bytes--; // Base64 ratio: 3/4 return (bytes * 3) >>> 2; } function byteLength(string, encoding) { if (typeof string !== 'string') { if (isArrayBufferView(string) || isAnyArrayBuffer(string)) { return string.byteLength; } throw new ERR_INVALID_ARG_TYPE( 'string', ['string', 'Buffer', 'ArrayBuffer'], string ); } const len = string.length; const mustMatch = (arguments.length > 2 && arguments[2] === true); if (!mustMatch && len === 0) return 0; if (!encoding) return (mustMatch ? -1 : byteLengthUtf8(string)); encoding += ''; switch (encoding.length) { case 4: if (encoding === 'utf8') return byteLengthUtf8(string); if (encoding === 'ucs2') return len * 2; encoding = encoding.toLowerCase(); if (encoding === 'utf8') return byteLengthUtf8(string); if (encoding === 'ucs2') return len * 2; break; case 5: if (encoding === 'utf-8') return byteLengthUtf8(string); if (encoding === 'ascii') return len; if (encoding === 'ucs-2') return len * 2; encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return byteLengthUtf8(string); if (encoding === 'ascii') return len; if (encoding === 'ucs-2') return len * 2; break; case 7: if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') return len * 2; break; case 8: if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') return len * 2; break; case 6: if (encoding === 'latin1' || encoding === 'binary') return len; if (encoding === 'base64') return base64ByteLength(string, len); encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return len; if (encoding === 'base64') return base64ByteLength(string, len); break; case 3: if (encoding === 'hex' || encoding.toLowerCase() === 'hex') return len >>> 1; break; } return (mustMatch ? -1 : byteLengthUtf8(string)); } Buffer.byteLength = byteLength; // For backwards compatibility. Object.defineProperty(Buffer.prototype, 'parent', { enumerable: true, get() { if (!(this instanceof Buffer)) return undefined; return this.buffer; } }); Object.defineProperty(Buffer.prototype, 'offset', { enumerable: true, get() { if (!(this instanceof Buffer)) return undefined; return this.byteOffset; } }); function stringSlice(buf, encoding, start, end) { if (encoding === undefined) return buf.utf8Slice(start, end); encoding += ''; switch (encoding.length) { case 4: if (encoding === 'utf8') return buf.utf8Slice(start, end); if (encoding === 'ucs2') return buf.ucs2Slice(start, end); encoding = encoding.toLowerCase(); if (encoding === 'utf8') return buf.utf8Slice(start, end); if (encoding === 'ucs2') return buf.ucs2Slice(start, end); break; case 5: if (encoding === 'utf-8') return buf.utf8Slice(start, end); if (encoding === 'ascii') return buf.asciiSlice(start, end); if (encoding === 'ucs-2') return buf.ucs2Slice(start, end); encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return buf.utf8Slice(start, end); if (encoding === 'ascii') return buf.asciiSlice(start, end); if (encoding === 'ucs-2') return buf.ucs2Slice(start, end); break; case 6: if (encoding === 'latin1' || encoding === 'binary') return buf.latin1Slice(start, end); if (encoding === 'base64') return buf.base64Slice(start, end); encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return buf.latin1Slice(start, end); if (encoding === 'base64') return buf.base64Slice(start, end); break; case 3: if (encoding === 'hex' || encoding.toLowerCase() === 'hex') return buf.hexSlice(start, end); break; case 7: if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') return buf.ucs2Slice(start, end); break; case 8: if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') return buf.ucs2Slice(start, end); break; } throw new ERR_UNKNOWN_ENCODING(encoding); } Buffer.prototype.copy = function copy(target, targetStart, sourceStart, sourceEnd) { return _copy(this, target, targetStart, sourceStart, sourceEnd); }; // No need to verify that "buf.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. Buffer.prototype.toString = function toString(encoding, start, end) { if (arguments.length === 0) { return this.utf8Slice(0, this.length); } const len = this.length; if (len === 0) return ''; if (!start || start < 0) start = 0; else if (start >= len) return ''; if (end === undefined || end > len) end = len; else if (end <= 0) return ''; start |= 0; end |= 0; if (end <= start) return ''; return stringSlice(this, encoding, start, end); }; Buffer.prototype.equals = function equals(otherBuffer) { if (!isUint8Array(otherBuffer)) { throw new ERR_INVALID_ARG_TYPE( 'otherBuffer', ['Buffer', 'Uint8Array'], otherBuffer); } if (this === otherBuffer) return true; return _compare(this, otherBuffer) === 0; }; // Override how buffers are presented by util.inspect(). Buffer.prototype[customInspectSymbol] = function inspect() { var str = ''; var max = exports.INSPECT_MAX_BYTES; str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim(); if (this.length > max) str += ' ... '; return `<${this.constructor.name} ${str}>`; }; Buffer.prototype.inspect = Buffer.prototype[customInspectSymbol]; Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { if (!isUint8Array(target)) { throw new ERR_INVALID_ARG_TYPE('target', ['Buffer', 'Uint8Array'], target); } if (arguments.length === 1) return _compare(this, target); if (start === undefined) start = 0; else if (start < 0) throw new ERR_INDEX_OUT_OF_RANGE(); else start >>>= 0; if (end === undefined) end = target.length; else if (end > target.length) throw new ERR_INDEX_OUT_OF_RANGE(); else end >>>= 0; if (thisStart === undefined) thisStart = 0; else if (thisStart < 0) throw new ERR_INDEX_OUT_OF_RANGE(); else thisStart >>>= 0; if (thisEnd === undefined) thisEnd = this.length; else if (thisEnd > this.length) throw new ERR_INDEX_OUT_OF_RANGE(); else thisEnd >>>= 0; if (thisStart >= thisEnd) return (start >= end ? 0 : -1); else if (start >= end) return 1; return compareOffset(this, target, start, thisStart, end, thisEnd); }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant if val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { if (typeof byteOffset === 'string') { encoding = byteOffset; byteOffset = undefined; } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff; } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000; } // Coerce to Number. Values like null and [] become 0. byteOffset = +byteOffset; // If the offset is undefined, "foo", {}, coerces to NaN, search whole buffer. if (Number.isNaN(byteOffset)) { byteOffset = dir ? 0 : buffer.length; } dir = !!dir; // Cast to bool. if (typeof val === 'string') { if (encoding === undefined) { return indexOfString(buffer, val, byteOffset, encoding, dir); } return slowIndexOf(buffer, val, byteOffset, encoding, dir); } else if (isUint8Array(val)) { return indexOfBuffer(buffer, val, byteOffset, encoding, dir); } else if (typeof val === 'number') { return indexOfNumber(buffer, val >>> 0, byteOffset, dir); } throw new ERR_INVALID_ARG_TYPE( 'value', ['string', 'Buffer', 'Uint8Array'], val ); } function slowIndexOf(buffer, val, byteOffset, encoding, dir) { var loweredCase = false; for (;;) { switch (encoding) { case 'utf8': case 'utf-8': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'latin1': case 'binary': return indexOfString(buffer, val, byteOffset, encoding, dir); case 'base64': case 'ascii': case 'hex': return indexOfBuffer( buffer, Buffer.from(val, encoding), byteOffset, encoding, dir); default: if (loweredCase) { throw new ERR_UNKNOWN_ENCODING(encoding); } encoding = ('' + encoding).toLowerCase(); loweredCase = true; } } } Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true); }; Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false); }; Buffer.prototype.includes = function includes(val, byteOffset, encoding) { return this.indexOf(val, byteOffset, encoding) !== -1; }; // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill(val, start, end, encoding) { return _fill(this, val, start, end, encoding); }; function _fill(buf, val, start, end, encoding) { if (typeof val === 'string') { if (start === undefined || typeof start === 'string') { encoding = start; start = 0; end = buf.length; } else if (typeof end === 'string') { encoding = end; end = buf.length; } const normalizedEncoding = normalizeEncoding(encoding); if (normalizedEncoding === undefined) { validateString(encoding, 'encoding'); throw new ERR_UNKNOWN_ENCODING(encoding); } if (val.length === 0) { // If val === '' default to zero. val = 0; } else if (val.length === 1) { // Fast path: If `val` fits into a single byte, use that numeric value. if (normalizedEncoding === 'utf8') { const code = val.charCodeAt(0); if (code < 128) { val = code; } } else if (normalizedEncoding === 'latin1') { val = val.charCodeAt(0); } } } else { encoding = undefined; } if (start === undefined) { start = 0; end = buf.length; } else { // Invalid ranges are not set to a default, so can range check early. if (end === undefined) { if (start < 0) throw new ERR_INDEX_OUT_OF_RANGE(); end = buf.length; } else { if (start < 0 || end > buf.length || end < 0) throw new ERR_INDEX_OUT_OF_RANGE(); end = end >>> 0; } start = start >>> 0; if (start >= end) return buf; } const res = bindingFill(buf, val, start, end, encoding); if (res < 0) { if (res === -1) throw new ERR_INVALID_ARG_VALUE('value', val); throw new ERR_INDEX_OUT_OF_RANGE(); } return buf; } Buffer.prototype.write = function write(string, offset, length, encoding) { // Buffer#write(string); if (offset === undefined) { return this.utf8Write(string, 0, this.length); // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === 'string') { encoding = offset; length = this.length; offset = 0; // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset >>> 0; if (isFinite(length)) { length = length >>> 0; } else { encoding = length; length = undefined; } var remaining = this.length - offset; if (length === undefined || length > remaining) length = remaining; if (string.length > 0 && (length < 0 || offset < 0)) throw new ERR_BUFFER_OUT_OF_BOUNDS(); } else { // if someone is still calling the obsolete form of write(), tell them. // we don't want eg buf.write("foo", "utf8", 10) to silently turn into // buf.write("foo", "utf8"), so we can't ignore extra args throw new ERR_NO_LONGER_SUPPORTED( 'Buffer.write(string, encoding, offset[, length])' ); } if (!encoding) return this.utf8Write(string, offset, length); encoding += ''; switch (encoding.length) { case 4: if (encoding === 'utf8') return this.utf8Write(string, offset, length); if (encoding === 'ucs2') return this.ucs2Write(string, offset, length); encoding = encoding.toLowerCase(); if (encoding === 'utf8') return this.utf8Write(string, offset, length); if (encoding === 'ucs2') return this.ucs2Write(string, offset, length); break; case 5: if (encoding === 'utf-8') return this.utf8Write(string, offset, length); if (encoding === 'ascii') return this.asciiWrite(string, offset, length); if (encoding === 'ucs-2') return this.ucs2Write(string, offset, length); encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return this.utf8Write(string, offset, length); if (encoding === 'ascii') return this.asciiWrite(string, offset, length); if (encoding === 'ucs-2') return this.ucs2Write(string, offset, length); break; case 7: if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') return this.ucs2Write(string, offset, length); break; case 8: if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') return this.ucs2Write(string, offset, length); break; case 6: if (encoding === 'latin1' || encoding === 'binary') return this.latin1Write(string, offset, length); if (encoding === 'base64') return this.base64Write(string, offset, length); encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return this.latin1Write(string, offset, length); if (encoding === 'base64') return this.base64Write(string, offset, length); break; case 3: if (encoding === 'hex' || encoding.toLowerCase() === 'hex') return this.hexWrite(string, offset, length); break; } throw new ERR_UNKNOWN_ENCODING(encoding); }; Buffer.prototype.toJSON = function toJSON() { if (this.length > 0) { const data = new Array(this.length); for (var i = 0; i < this.length; ++i) data[i] = this[i]; return { type: 'Buffer', data }; } else { return { type: 'Buffer', data: [] }; } }; function adjustOffset(offset, length) { // Use Math.trunc() to convert offset to an integer value that can be larger // than an Int32. Hence, don't use offset | 0 or similar techniques. offset = Math.trunc(offset); if (offset === 0) { return 0; } if (offset < 0) { offset += length; return offset > 0 ? offset : 0; } if (offset < length) { return offset; } return Number.isNaN(offset) ? 0 : length; } Buffer.prototype.slice = function slice(start, end) { const srcLength = this.length; start = adjustOffset(start, srcLength); end = end !== undefined ? adjustOffset(end, srcLength) : srcLength; const newLength = end > start ? end - start : 0; return new FastBuffer(this.buffer, this.byteOffset + start, newLength); }; function swap(b, n, m) { const i = b[n]; b[n] = b[m]; b[m] = i; } Buffer.prototype.swap16 = function swap16() { // For Buffer.length < 128, it's generally faster to // do the swap in javascript. For larger buffers, // dropping down to the native code is faster. const len = this.length; if (len % 2 !== 0) throw new ERR_INVALID_BUFFER_SIZE('16-bits'); if (len < 128) { for (var i = 0; i < len; i += 2) swap(this, i, i + 1); return this; } return _swap16(this); }; Buffer.prototype.swap32 = function swap32() { // For Buffer.length < 192, it's generally faster to // do the swap in javascript. For larger buffers, // dropping down to the native code is faster. const len = this.length; if (len % 4 !== 0) throw new ERR_INVALID_BUFFER_SIZE('32-bits'); if (len < 192) { for (var i = 0; i < len; i += 4) { swap(this, i, i + 3); swap(this, i + 1, i + 2); } return this; } return _swap32(this); }; Buffer.prototype.swap64 = function swap64() { // For Buffer.length < 192, it's generally faster to // do the swap in javascript. For larger buffers, // dropping down to the native code is faster. const len = this.length; if (len % 8 !== 0) throw new ERR_INVALID_BUFFER_SIZE('64-bits'); if (len < 192) { for (var i = 0; i < len; i += 8) { swap(this, i, i + 7); swap(this, i + 1, i + 6); swap(this, i + 2, i + 5); swap(this, i + 3, i + 4); } return this; } return _swap64(this); }; Buffer.prototype.toLocaleString = Buffer.prototype.toString; let transcode; if (process.binding('config').hasIntl) { const { icuErrName, transcode: _transcode } = process.binding('icu'); // Transcodes the Buffer from one encoding to another, returning a new // Buffer instance. transcode = function transcode(source, fromEncoding, toEncoding) { if (!isUint8Array(source)) { throw new ERR_INVALID_ARG_TYPE('source', ['Buffer', 'Uint8Array'], source); } if (source.length === 0) return Buffer.alloc(0); fromEncoding = normalizeEncoding(fromEncoding) || fromEncoding; toEncoding = normalizeEncoding(toEncoding) || toEncoding; const result = _transcode(source, fromEncoding, toEncoding); if (typeof result !== 'number') return result; const code = icuErrName(result); // eslint-disable-next-line no-restricted-syntax const err = new Error(`Unable to transcode Buffer [${code}]`); err.code = code; err.errno = result; throw err; }; } module.exports = exports = { Buffer, SlowBuffer, transcode, INSPECT_MAX_BYTES: 50, // Legacy kMaxLength, kStringMaxLength }; Object.defineProperty(exports, 'constants', { configurable: false, enumerable: true, value: constants }); child_process// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const util = require('util'); const { deprecate, convertToValidSignal, getSystemErrorName } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); const debug = util.debuglog('child_process'); const { Buffer } = require('buffer'); const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap'); const { ERR_INVALID_ARG_VALUE, ERR_CHILD_PROCESS_IPC_REQUIRED, ERR_CHILD_PROCESS_STDIO_MAXBUFFER, ERR_INVALID_ARG_TYPE, ERR_INVALID_OPT_VALUE, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { validateString, isInt32 } = require('internal/validators'); const child_process = require('internal/child_process'); const { _validateStdio, setupChannel, ChildProcess } = child_process; exports.ChildProcess = ChildProcess; function stdioStringToArray(option) { switch (option) { case 'ignore': case 'pipe': case 'inherit': return [option, option, option, 'ipc']; default: throw new ERR_INVALID_OPT_VALUE('stdio', option); } } exports.fork = function fork(modulePath /* , args, options */) { // Get options and args arguments. var execArgv; var options = {}; var args = []; var pos = 1; if (pos < arguments.length && Array.isArray(arguments[pos])) { args = arguments[pos++]; } if (pos < arguments.length && (arguments[pos] === undefined || arguments[pos] === null)) { pos++; } if (pos < arguments.length && arguments[pos] != null) { if (typeof arguments[pos] !== 'object') { throw new ERR_INVALID_ARG_VALUE(`arguments[${pos}]`, arguments[pos]); } options = util._extend({}, arguments[pos++]); } // Prepare arguments for fork: execArgv = options.execArgv || process.execArgv; if (execArgv === process.execArgv && process._eval != null) { const index = execArgv.lastIndexOf(process._eval); if (index > 0) { // Remove the -e switch to avoid fork bombing ourselves. execArgv = execArgv.slice(); execArgv.splice(index - 1, 2); } } args = execArgv.concat([modulePath], args); if (typeof options.stdio === 'string') { options.stdio = stdioStringToArray(options.stdio); } else if (!Array.isArray(options.stdio)) { // Use a separate fd=3 for the IPC channel. Inherit stdin, stdout, // and stderr from the parent if silent isn't set. options.stdio = options.silent ? stdioStringToArray('pipe') : stdioStringToArray('inherit'); } else if (options.stdio.indexOf('ipc') === -1) { throw new ERR_CHILD_PROCESS_IPC_REQUIRED('options.stdio'); } options.execPath = options.execPath || process.execPath; options.shell = false; return spawn(options.execPath, args, options); }; exports._forkChild = function _forkChild(fd) { // set process.send() var p = new Pipe(PipeConstants.IPC); p.open(fd); p.unref(); const control = setupChannel(process, p); process.on('newListener', function onNewListener(name) { if (name === 'message' || name === 'disconnect') control.ref(); }); process.on('removeListener', function onRemoveListener(name) { if (name === 'message' || name === 'disconnect') control.unref(); }); }; function normalizeExecArgs(command, options, callback) { if (typeof options === 'function') { callback = options; options = undefined; } // Make a shallow copy so we don't clobber the user's options object. options = Object.assign({}, options); options.shell = typeof options.shell === 'string' ? options.shell : true; return { file: command, options: options, callback: callback }; } exports.exec = function exec(/* command , options, callback */) { const opts = normalizeExecArgs.apply(null, arguments); return exports.execFile(opts.file, opts.options, opts.callback); }; const customPromiseExecFunction = (orig) => { return (...args) => { return new Promise((resolve, reject) => { orig(...args, (err, stdout, stderr) => { if (err !== null) { err.stdout = stdout; err.stderr = stderr; reject(err); } else { resolve({ stdout, stderr }); } }); }); }; }; Object.defineProperty(exports.exec, util.promisify.custom, { enumerable: false, value: customPromiseExecFunction(exports.exec) }); exports.execFile = function execFile(file /* , args, options, callback */) { var args = []; var callback; var options = { encoding: 'utf8', timeout: 0, maxBuffer: 200 * 1024, killSignal: 'SIGTERM', cwd: null, env: null, shell: false }; // Parse the optional positional parameters. var pos = 1; if (pos < arguments.length && Array.isArray(arguments[pos])) { args = arguments[pos++]; } else if (pos < arguments.length && arguments[pos] == null) { pos++; } if (pos < arguments.length && typeof arguments[pos] === 'object') { util._extend(options, arguments[pos++]); } else if (pos < arguments.length && arguments[pos] == null) { pos++; } if (pos < arguments.length && typeof arguments[pos] === 'function') { callback = arguments[pos++]; } if (!callback && pos < arguments.length && arguments[pos] != null) { throw new ERR_INVALID_ARG_VALUE('args', arguments[pos]); } // Validate the timeout, if present. validateTimeout(options.timeout); // Validate maxBuffer, if present. validateMaxBuffer(options.maxBuffer); options.killSignal = sanitizeKillSignal(options.killSignal); var child = spawn(file, args, { cwd: options.cwd, env: options.env, gid: options.gid, uid: options.uid, shell: options.shell, windowsHide: !!options.windowsHide, windowsVerbatimArguments: !!options.windowsVerbatimArguments }); var encoding; var _stdout = []; var _stderr = []; if (options.encoding !== 'buffer' && Buffer.isEncoding(options.encoding)) { encoding = options.encoding; } else { encoding = null; } var stdoutLen = 0; var stderrLen = 0; var killed = false; var exited = false; var timeoutId; var ex = null; var cmd = file; function exithandler(code, signal) { if (exited) return; exited = true; if (timeoutId) { clearTimeout(timeoutId); timeoutId = null; } if (!callback) return; // merge chunks var stdout; var stderr; if (encoding || ( child.stdout && child.stdout._readableState && child.stdout._readableState.encoding )) { stdout = _stdout.join(''); } else { stdout = Buffer.concat(_stdout); } if (encoding || ( child.stderr && child.stderr._readableState && child.stderr._readableState.encoding )) { stderr = _stderr.join(''); } else { stderr = Buffer.concat(_stderr); } if (!ex && code === 0 && signal === null) { callback(null, stdout, stderr); return; } if (args.length !== 0) cmd += ` ${args.join(' ')}`; if (!ex) { // eslint-disable-next-line no-restricted-syntax ex = new Error('Command failed: ' + cmd + '\n' + stderr); ex.killed = child.killed || killed; ex.code = code < 0 ? getSystemErrorName(code) : code; ex.signal = signal; } ex.cmd = cmd; callback(ex, stdout, stderr); } function errorhandler(e) { ex = e; if (child.stdout) child.stdout.destroy(); if (child.stderr) child.stderr.destroy(); exithandler(); } function kill() { if (child.stdout) child.stdout.destroy(); if (child.stderr) child.stderr.destroy(); killed = true; try { child.kill(options.killSignal); } catch (e) { ex = e; exithandler(); } } if (options.timeout > 0) { timeoutId = setTimeout(function delayedKill() { kill(); timeoutId = null; }, options.timeout); } if (child.stdout) { if (encoding) child.stdout.setEncoding(encoding); child.stdout.on('data', function onChildStdout(chunk) { var encoding = child.stdout._readableState.encoding; stdoutLen += encoding ? Buffer.byteLength(chunk, encoding) : chunk.length; if (stdoutLen > options.maxBuffer) { ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER('stdout'); kill(); } else { _stdout.push(chunk); } }); } if (child.stderr) { if (encoding) child.stderr.setEncoding(encoding); child.stderr.on('data', function onChildStderr(chunk) { var encoding = child.stderr._readableState.encoding; stderrLen += encoding ? Buffer.byteLength(chunk, encoding) : chunk.length; if (stderrLen > options.maxBuffer) { ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER('stderr'); kill(); } else { _stderr.push(chunk); } }); } child.addListener('close', exithandler); child.addListener('error', errorhandler); return child; }; Object.defineProperty(exports.execFile, util.promisify.custom, { enumerable: false, value: customPromiseExecFunction(exports.execFile) }); const _deprecatedCustomFds = deprecate( function deprecateCustomFds(options) { options.stdio = options.customFds.map(function mapCustomFds(fd) { return fd === -1 ? 'pipe' : fd; }); }, 'child_process: options.customFds option is deprecated. ' + 'Use options.stdio instead.', 'DEP0006'); function _convertCustomFds(options) { if (options.customFds && !options.stdio) { _deprecatedCustomFds(options); } } function normalizeSpawnArguments(file, args, options) { validateString(file, 'file'); if (file.length === 0) throw new ERR_INVALID_ARG_VALUE('file', file, 'cannot be empty'); if (Array.isArray(args)) { args = args.slice(0); } else if (args !== undefined && (args === null || typeof args !== 'object')) { throw new ERR_INVALID_ARG_TYPE('args', 'object', args); } else { options = args; args = []; } if (options === undefined) options = {}; else if (options === null || typeof options !== 'object') throw new ERR_INVALID_ARG_TYPE('options', 'object', options); // Validate the cwd, if present. if (options.cwd != null && typeof options.cwd !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.cwd', 'string', options.cwd); } // Validate detached, if present. if (options.detached != null && typeof options.detached !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.detached', 'boolean', options.detached); } // Validate the uid, if present. if (options.uid != null && !isInt32(options.uid)) { throw new ERR_INVALID_ARG_TYPE('options.uid', 'int32', options.uid); } // Validate the gid, if present. if (options.gid != null && !isInt32(options.gid)) { throw new ERR_INVALID_ARG_TYPE('options.gid', 'int32', options.gid); } // Validate the shell, if present. if (options.shell != null && typeof options.shell !== 'boolean' && typeof options.shell !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.shell', ['boolean', 'string'], options.shell); } // Validate argv0, if present. if (options.argv0 != null && typeof options.argv0 !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.argv0', 'string', options.argv0); } // Validate windowsHide, if present. if (options.windowsHide != null && typeof options.windowsHide !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.windowsHide', 'boolean', options.windowsHide); } // Validate windowsVerbatimArguments, if present. if (options.windowsVerbatimArguments != null && typeof options.windowsVerbatimArguments !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.windowsVerbatimArguments', 'boolean', options.windowsVerbatimArguments); } // Make a shallow copy so we don't clobber the user's options object. options = Object.assign({}, options); if (options.shell) { const command = [file].concat(args).join(' '); if (process.platform === 'win32') { if (typeof options.shell === 'string') file = options.shell; else file = process.env.comspec || 'cmd.exe'; args = ['/d', '/s', '/c', `"${command}"`]; options.windowsVerbatimArguments = true; } else { if (typeof options.shell === 'string') file = options.shell; else if (process.platform === 'android') file = '/system/bin/sh'; else file = '/bin/sh'; args = ['-c', command]; } } if (typeof options.argv0 === 'string') { args.unshift(options.argv0); } else { args.unshift(file); } var env = options.env || process.env; var envPairs = []; // process.env.NODE_V8_COVERAGE always propagates, making it possible to // collect coverage for programs that spawn with white-listed environment. if (process.env.NODE_V8_COVERAGE && !Object.prototype.hasOwnProperty.call(options.env || {}, 'NODE_V8_COVERAGE')) { env.NODE_V8_COVERAGE = process.env.NODE_V8_COVERAGE; } // Prototype values are intentionally included. for (var key in env) { const value = env[key]; if (value !== undefined) { envPairs.push(`${key}=${value}`); } } _convertCustomFds(options); return { file: file, args: args, options: options, envPairs: envPairs }; } var spawn = exports.spawn = function spawn(/* file, args, options */) { var opts = normalizeSpawnArguments.apply(null, arguments); var options = opts.options; var child = new ChildProcess(); debug('spawn', opts.args, options); child.spawn({ file: opts.file, args: opts.args, cwd: options.cwd, windowsHide: !!options.windowsHide, windowsVerbatimArguments: !!options.windowsVerbatimArguments, detached: !!options.detached, envPairs: opts.envPairs, stdio: options.stdio, uid: options.uid, gid: options.gid }); return child; }; function spawnSync(/* file, args, options */) { var opts = normalizeSpawnArguments.apply(null, arguments); var options = opts.options; debug('spawnSync', opts.args, options); // Validate the timeout, if present. validateTimeout(options.timeout); // Validate maxBuffer, if present. validateMaxBuffer(options.maxBuffer); options.file = opts.file; options.args = opts.args; options.envPairs = opts.envPairs; // Validate and translate the kill signal, if present. options.killSignal = sanitizeKillSignal(options.killSignal); options.stdio = _validateStdio(options.stdio || 'pipe', true).stdio; if (options.input) { var stdin = options.stdio[0] = util._extend({}, options.stdio[0]); stdin.input = options.input; } // We may want to pass data in on any given fd, ensure it is a valid buffer for (var i = 0; i < options.stdio.length; i++) { var input = options.stdio[i] && options.stdio[i].input; if (input != null) { var pipe = options.stdio[i] = util._extend({}, options.stdio[i]); if (isArrayBufferView(input)) { pipe.input = input; } else if (typeof input === 'string') { pipe.input = Buffer.from(input, options.encoding); } else { throw new ERR_INVALID_ARG_TYPE(`options.stdio[${i}]`, ['Buffer', 'TypedArray', 'DataView', 'string'], input); } } } return child_process.spawnSync(opts); } exports.spawnSync = spawnSync; function checkExecSyncError(ret, args, cmd) { var err; if (ret.error) { err = ret.error; } else if (ret.status !== 0) { var msg = 'Command failed: '; msg += cmd || args.join(' '); if (ret.stderr && ret.stderr.length > 0) msg += `\n${ret.stderr.toString()}`; // eslint-disable-next-line no-restricted-syntax err = new Error(msg); } if (err) { Object.assign(err, ret); } return err; } function execFileSync(/* command, args, options */) { var opts = normalizeSpawnArguments.apply(null, arguments); var inheritStderr = !opts.options.stdio; var ret = spawnSync(opts.file, opts.args.slice(1), opts.options); if (inheritStderr && ret.stderr) process.stderr.write(ret.stderr); var err = checkExecSyncError(ret, opts.args, undefined); if (err) throw err; return ret.stdout; } exports.execFileSync = execFileSync; function execSync(command /* , options */) { var opts = normalizeExecArgs.apply(null, arguments); var inheritStderr = !opts.options.stdio; var ret = spawnSync(opts.file, opts.options); if (inheritStderr && ret.stderr) process.stderr.write(ret.stderr); var err = checkExecSyncError(ret, opts.args, command); if (err) throw err; return ret.stdout; } exports.execSync = execSync; function validateTimeout(timeout) { if (timeout != null && !(Number.isInteger(timeout) && timeout >= 0)) { throw new ERR_OUT_OF_RANGE('timeout', 'an unsigned integer', timeout); } } function validateMaxBuffer(maxBuffer) { if (maxBuffer != null && !(typeof maxBuffer === 'number' && maxBuffer >= 0)) { throw new ERR_OUT_OF_RANGE('options.maxBuffer', 'a positive number', maxBuffer); } } function sanitizeKillSignal(killSignal) { if (typeof killSignal === 'string' || typeof killSignal === 'number') { return convertToValidSignal(killSignal); } else if (killSignal != null) { throw new ERR_INVALID_ARG_TYPE('options.killSignal', ['string', 'number'], killSignal); } } console// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { isStackOverflowError, codes: { ERR_CONSOLE_WRITABLE_STREAM, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, }, } = require('internal/errors'); const { previewEntries } = internalBinding('util'); const { Buffer: { isBuffer } } = require('buffer'); const util = require('util'); const { isTypedArray, isSet, isMap, isSetIterator, isMapIterator, } = util.types; const kCounts = Symbol('counts'); const { keys: ObjectKeys, values: ObjectValues, } = Object; const hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); const { isArray: ArrayIsArray, from: ArrayFrom, } = Array; // Lazy loaded for startup performance. let cliTable; // Track amount of indentation required via `console.group()`. const kGroupIndent = Symbol('kGroupIndent'); const kFormatForStderr = Symbol('kFormatForStderr'); const kFormatForStdout = Symbol('kFormatForStdout'); const kGetInspectOptions = Symbol('kGetInspectOptions'); const kColorMode = Symbol('kColorMode'); function Console(options /* or: stdout, stderr, ignoreErrors = true */) { if (!(this instanceof Console)) { return new Console(...arguments); } if (!options || typeof options.write === 'function') { options = { stdout: options, stderr: arguments[1], ignoreErrors: arguments[2] }; } const { stdout, stderr = stdout, ignoreErrors = true, colorMode = 'auto' } = options; if (!stdout || typeof stdout.write !== 'function') { throw new ERR_CONSOLE_WRITABLE_STREAM('stdout'); } if (!stderr || typeof stderr.write !== 'function') { throw new ERR_CONSOLE_WRITABLE_STREAM('stderr'); } const prop = { writable: true, enumerable: false, configurable: true }; Object.defineProperty(this, '_stdout', { ...prop, value: stdout }); Object.defineProperty(this, '_stderr', { ...prop, value: stderr }); Object.defineProperty(this, '_ignoreErrors', { ...prop, value: Boolean(ignoreErrors), }); Object.defineProperty(this, '_times', { ...prop, value: new Map() }); Object.defineProperty(this, '_stdoutErrorHandler', { ...prop, value: createWriteErrorHandler(stdout), }); Object.defineProperty(this, '_stderrErrorHandler', { ...prop, value: createWriteErrorHandler(stderr), }); if (typeof colorMode !== 'boolean' && colorMode !== 'auto') throw new ERR_INVALID_ARG_VALUE('colorMode', colorMode); this[kCounts] = new Map(); this[kColorMode] = colorMode; Object.defineProperty(this, kGroupIndent, { writable: true }); this[kGroupIndent] = ''; // bind the prototype functions to this Console instance var keys = Object.keys(Console.prototype); for (var v = 0; v < keys.length; v++) { var k = keys[v]; this[k] = this[k].bind(this); } } // Make a function that can serve as the callback passed to `stream.write()`. function createWriteErrorHandler(stream) { return (err) => { // This conditional evaluates to true if and only if there was an error // that was not already emitted (which happens when the _write callback // is invoked asynchronously). if (err !== null && !stream._writableState.errorEmitted) { // If there was an error, it will be emitted on `stream` as // an `error` event. Adding a `once` listener will keep that error // from becoming an uncaught exception, but since the handler is // removed after the event, non-console.* writes won't be affected. // we are only adding noop if there is no one else listening for 'error' if (stream.listenerCount('error') === 0) { stream.on('error', noop); } } }; } function write(ignoreErrors, stream, string, errorhandler, groupIndent) { if (groupIndent.length !== 0) { if (string.indexOf('\n') !== -1) { string = string.replace(/\n/g, `\n${groupIndent}`); } string = groupIndent + string; } string += '\n'; if (ignoreErrors === false) return stream.write(string); // There may be an error occurring synchronously (e.g. for files or TTYs // on POSIX systems) or asynchronously (e.g. pipes on POSIX systems), so // handle both situations. try { // Add and later remove a noop error handler to catch synchronous errors. stream.once('error', noop); stream.write(string, errorhandler); } catch (e) { // console is a debugging utility, so it swallowing errors is not desirable // even in edge cases such as low stack space. if (isStackOverflowError(e)) throw e; // Sorry, there's no proper way to pass along the error here. } finally { stream.removeListener('error', noop); } } const kColorInspectOptions = { colors: true }; const kNoColorInspectOptions = {}; Console.prototype[kGetInspectOptions] = function(stream) { let color = this[kColorMode]; if (color === 'auto') { color = stream.isTTY && ( typeof stream.getColorDepth === 'function' ? stream.getColorDepth() > 2 : true); } return color ? kColorInspectOptions : kNoColorInspectOptions; }; Console.prototype[kFormatForStdout] = function(args) { const opts = this[kGetInspectOptions](this._stdout); return util.formatWithOptions(opts, ...args); }; Console.prototype[kFormatForStderr] = function(args) { const opts = this[kGetInspectOptions](this._stderr); return util.formatWithOptions(opts, ...args); }; Console.prototype.log = function log(...args) { write(this._ignoreErrors, this._stdout, this[kFormatForStdout](args), this._stdoutErrorHandler, this[kGroupIndent]); }; Console.prototype.debug = Console.prototype.log; Console.prototype.info = Console.prototype.log; Console.prototype.dirxml = Console.prototype.log; Console.prototype.warn = function warn(...args) { write(this._ignoreErrors, this._stderr, this[kFormatForStderr](args), this._stderrErrorHandler, this[kGroupIndent]); }; Console.prototype.error = Console.prototype.warn; Console.prototype.dir = function dir(object, options) { options = Object.assign({ customInspect: false }, this[kGetInspectOptions](this._stdout), options); write(this._ignoreErrors, this._stdout, util.inspect(object, options), this._stdoutErrorHandler, this[kGroupIndent]); }; Console.prototype.time = function time(label = 'default') { // Coerces everything other than Symbol to a string label = `${label}`; this._times.set(label, process.hrtime()); }; Console.prototype.timeEnd = function timeEnd(label = 'default') { // Coerces everything other than Symbol to a string label = `${label}`; const hasWarned = timeLogImpl(this, 'timeEnd', label); if (!hasWarned) { this._times.delete(label); } }; Console.prototype.timeLog = function timeLog(label, ...data) { // Coerces everything other than Symbol to a string label = `${label}`; timeLogImpl(this, 'timeLog', label, data); }; // Returns true if label was not found function timeLogImpl(self, name, label = 'default', data) { const time = self._times.get(label); if (!time) { process.emitWarning(`No such label '${label}' for console.${name}()`); return true; } const duration = process.hrtime(time); const ms = duration[0] * 1000 + duration[1] / 1e6; if (data === undefined) { self.log('%s: %sms', label, ms.toFixed(3)); } else { self.log('%s: %sms', label, ms.toFixed(3), ...data); } return false; } Console.prototype.trace = function trace(...args) { const err = { name: 'Trace', message: this[kFormatForStderr](args) }; Error.captureStackTrace(err, trace); this.error(err.stack); }; Console.prototype.assert = function assert(expression, ...args) { if (!expression) { args[0] = `Assertion failed${args.length === 0 ? '' : `: ${args[0]}`}`; this.warn(this[kFormatForStderr](args)); } }; // Defined by: https://console.spec.whatwg.org/#clear Console.prototype.clear = function clear() { // It only makes sense to clear if _stdout is a TTY. // Otherwise, do nothing. if (this._stdout.isTTY) { // The require is here intentionally to avoid readline being // required too early when console is first loaded. const { cursorTo, clearScreenDown } = require('readline'); cursorTo(this._stdout, 0, 0); clearScreenDown(this._stdout); } }; // Defined by: https://console.spec.whatwg.org/#count Console.prototype.count = function count(label = 'default') { // Ensures that label is a string, and only things that can be // coerced to strings. e.g. Symbol is not allowed label = `${label}`; const counts = this[kCounts]; let count = counts.get(label); if (count === undefined) count = 1; else count++; counts.set(label, count); this.log(`${label}: ${count}`); }; // Not yet defined by the https://console.spec.whatwg.org, but // proposed to be added and currently implemented by Edge. Having // the ability to reset counters is important to help prevent // the counter from being a memory leak. Console.prototype.countReset = function countReset(label = 'default') { const counts = this[kCounts]; counts.delete(`${label}`); }; Console.prototype.group = function group(...data) { if (data.length > 0) { this.log(...data); } this[kGroupIndent] += ' '; }; Console.prototype.groupCollapsed = Console.prototype.group; Console.prototype.groupEnd = function groupEnd() { this[kGroupIndent] = this[kGroupIndent].slice(0, this[kGroupIndent].length - 2); }; const keyKey = 'Key'; const valuesKey = 'Values'; const indexKey = '(index)'; const iterKey = '(iteration index)'; const isArray = (v) => ArrayIsArray(v) || isTypedArray(v) || isBuffer(v); // https://console.spec.whatwg.org/#table Console.prototype.table = function(tabularData, properties) { if (properties !== undefined && !ArrayIsArray(properties)) throw new ERR_INVALID_ARG_TYPE('properties', 'Array', properties); if (tabularData === null || typeof tabularData !== 'object') return this.log(tabularData); if (cliTable === undefined) cliTable = require('internal/cli_table'); const final = (k, v) => this.log(cliTable(k, v)); const inspect = (v) => { const opt = { depth: 0, maxArrayLength: 3 }; if (v !== null && typeof v === 'object' && !isArray(v) && ObjectKeys(v).length > 2) opt.depth = -1; Object.assign(opt, this[kGetInspectOptions](this._stdout)); return util.inspect(v, opt); }; const getIndexArray = (length) => ArrayFrom({ length }, (_, i) => inspect(i)); const mapIter = isMapIterator(tabularData); let isKeyValue = false; let i = 0; if (mapIter) { const res = previewEntries(tabularData, true); tabularData = res[0]; isKeyValue = res[1]; } if (isKeyValue || isMap(tabularData)) { const keys = []; const values = []; let length = 0; if (mapIter) { for (; i < tabularData.length / 2; ++i) { keys.push(inspect(tabularData[i * 2])); values.push(inspect(tabularData[i * 2 + 1])); length++; } } else { for (const [k, v] of tabularData) { keys.push(inspect(k)); values.push(inspect(v)); length++; } } return final([ iterKey, keyKey, valuesKey ], [ getIndexArray(length), keys, values, ]); } const setIter = isSetIterator(tabularData); if (setIter) tabularData = previewEntries(tabularData); const setlike = setIter || (mapIter && !isKeyValue) || isSet(tabularData); if (setlike) { const values = []; let length = 0; for (const v of tabularData) { values.push(inspect(v)); length++; } return final([setlike ? iterKey : indexKey, valuesKey], [ getIndexArray(length), values, ]); } const map = {}; let hasPrimitives = false; const valuesKeyArray = []; const indexKeyArray = ObjectKeys(tabularData); for (; i < indexKeyArray.length; i++) { const item = tabularData[indexKeyArray[i]]; const primitive = item === null || (typeof item !== 'function' && typeof item !== 'object'); if (properties === undefined && primitive) { hasPrimitives = true; valuesKeyArray[i] = inspect(item); } else { const keys = properties || ObjectKeys(item); for (const key of keys) { if (map[key] === undefined) map[key] = []; if ((primitive && properties) || !hasOwnProperty(item, key)) map[key][i] = ''; else map[key][i] = item == null ? item : inspect(item[key]); } } } const keys = ObjectKeys(map); const values = ObjectValues(map); if (hasPrimitives) { keys.push(valuesKey); values.push(valuesKeyArray); } keys.unshift(indexKey); values.unshift(indexKeyArray); return final(keys, values); }; module.exports = new Console({ stdout: process.stdout, stderr: process.stderr }); module.exports.Console = Console; function noop() {} constants// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; // This module is deprecated in documentation only. Users should be directed // towards using the specific constants exposed by the individual modules on // which they are most relevant. // Deprecation Code: DEP0008 const constants = process.binding('constants'); Object.assign(exports, constants.os.dlopen, constants.os.errno, constants.os.priority, constants.os.signals, constants.fs, constants.crypto); crypto// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // Note: In 0.8 and before, crypto functions all defaulted to using // binary-encoded strings rather than buffers. 'use strict'; const { assertCrypto, deprecate } = require('internal/util'); assertCrypto(); const { ERR_CRYPTO_FIPS_FORCED, ERR_CRYPTO_FIPS_UNAVAILABLE } = require('internal/errors').codes; const constants = internalBinding('constants').crypto; const { fipsMode, fipsForced } = process.binding('config'); const { getFipsCrypto, setFipsCrypto, } = process.binding('crypto'); const { randomBytes, randomFill, randomFillSync } = require('internal/crypto/random'); const { pbkdf2, pbkdf2Sync } = require('internal/crypto/pbkdf2'); const { scrypt, scryptSync } = require('internal/crypto/scrypt'); const { generateKeyPair, generateKeyPairSync } = require('internal/crypto/keygen'); const { DiffieHellman, DiffieHellmanGroup, ECDH } = require('internal/crypto/diffiehellman'); const { Cipher, Cipheriv, Decipher, Decipheriv, privateDecrypt, privateEncrypt, publicDecrypt, publicEncrypt } = require('internal/crypto/cipher'); const { Sign, Verify } = require('internal/crypto/sig'); const { Hash, Hmac } = require('internal/crypto/hash'); const { getCiphers, getCurves, getDefaultEncoding, getHashes, setDefaultEncoding, setEngine, timingSafeEqual, toBuf } = require('internal/crypto/util'); const Certificate = require('internal/crypto/certificate'); // These helper functions are needed because the constructors can // use new, in which case V8 cannot inline the recursive constructor call function createHash(algorithm, options) { return new Hash(algorithm, options); } function createCipher(cipher, password, options) { return new Cipher(cipher, password, options); } function createCipheriv(cipher, key, iv, options) { return new Cipheriv(cipher, key, iv, options); } function createDecipher(cipher, password, options) { return new Decipher(cipher, password, options); } function createDecipheriv(cipher, key, iv, options) { return new Decipheriv(cipher, key, iv, options); } function createDiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding) { return new DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding); } function createDiffieHellmanGroup(name) { return new DiffieHellmanGroup(name); } function createECDH(curve) { return new ECDH(curve); } function createHmac(hmac, key, options) { return new Hmac(hmac, key, options); } function createSign(algorithm, options) { return new Sign(algorithm, options); } function createVerify(algorithm, options) { return new Verify(algorithm, options); } module.exports = exports = { // Methods _toBuf: toBuf, createCipher, createCipheriv, createDecipher, createDecipheriv, createDiffieHellman, createDiffieHellmanGroup, createECDH, createHash, createHmac, createSign, createVerify, getCiphers, getCurves, getDiffieHellman: createDiffieHellmanGroup, getHashes, pbkdf2, pbkdf2Sync, generateKeyPair, generateKeyPairSync, privateDecrypt, privateEncrypt, prng: randomBytes, pseudoRandomBytes: randomBytes, publicDecrypt, publicEncrypt, randomBytes, randomFill, randomFillSync, rng: randomBytes, scrypt, scryptSync, setEngine, timingSafeEqual, getFips: !fipsMode ? getFipsDisabled : fipsForced ? getFipsForced : getFipsCrypto, setFips: !fipsMode ? setFipsDisabled : fipsForced ? setFipsForced : setFipsCrypto, // Classes Certificate, Cipher, Cipheriv, Decipher, Decipheriv, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign, Verify }; function setFipsDisabled() { throw new ERR_CRYPTO_FIPS_UNAVAILABLE(); } function setFipsForced(val) { if (val) return; throw new ERR_CRYPTO_FIPS_FORCED(); } function getFipsDisabled() { return 0; } function getFipsForced() { return 1; } Object.defineProperties(exports, { // crypto.fips is deprecated. DEP0093. Use crypto.getFips()/crypto.setFips() fips: { get: !fipsMode ? getFipsDisabled : fipsForced ? getFipsForced : getFipsCrypto, set: !fipsMode ? setFipsDisabled : fipsForced ? setFipsForced : setFipsCrypto }, DEFAULT_ENCODING: { enumerable: true, configurable: true, get: deprecate(getDefaultEncoding, 'crypto.DEFAULT_ENCODING is deprecated.', 'DEP0091'), set: deprecate(setDefaultEncoding, 'crypto.DEFAULT_ENCODING is deprecated.', 'DEP0091') }, constants: { configurable: false, enumerable: true, value: constants }, // Legacy API createCredentials: { configurable: true, enumerable: true, get: deprecate(() => { return require('tls').createSecureContext; }, 'crypto.createCredentials is deprecated. ' + 'Use tls.createSecureContext instead.', 'DEP0010') }, Credentials: { configurable: true, enumerable: true, get: deprecate(function() { return require('tls').SecureContext; }, 'crypto.Credentials is deprecated. ' + 'Use tls.SecureContext instead.', 'DEP0011') } }); cluster// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const childOrMaster = 'NODE_UNIQUE_ID' in process.env ? 'child' : 'master'; module.exports = require(`internal/cluster/${childOrMaster}`); dgram// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const errors = require('internal/errors'); const { kStateSymbol, _createSocketHandle, newHandle } = require('internal/dgram'); const { ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_SOCKET_ALREADY_BOUND, ERR_SOCKET_BAD_BUFFER_SIZE, ERR_SOCKET_BAD_PORT, ERR_SOCKET_BUFFER_SIZE, ERR_SOCKET_CANNOT_SEND, ERR_SOCKET_DGRAM_NOT_RUNNING } = errors.codes; const { validateString, validateNumber } = require('internal/validators'); const { Buffer } = require('buffer'); const util = require('util'); const { isUint8Array } = require('internal/util/types'); const EventEmitter = require('events'); const { defaultTriggerAsyncIdScope, symbols: { async_id_symbol, owner_symbol } } = require('internal/async_hooks'); const { UV_UDP_REUSEADDR } = process.binding('constants').os; const { UDP, SendWrap } = process.binding('udp_wrap'); const BIND_STATE_UNBOUND = 0; const BIND_STATE_BINDING = 1; const BIND_STATE_BOUND = 2; const RECV_BUFFER = true; const SEND_BUFFER = false; // Lazily loaded var cluster = null; const errnoException = errors.errnoException; const exceptionWithHostPort = errors.exceptionWithHostPort; function Socket(type, listener) { EventEmitter.call(this); var lookup; let recvBufferSize; let sendBufferSize; if (type !== null && typeof type === 'object') { var options = type; type = options.type; lookup = options.lookup; recvBufferSize = options.recvBufferSize; sendBufferSize = options.sendBufferSize; } var handle = newHandle(type, lookup); handle[owner_symbol] = this; this[async_id_symbol] = handle.getAsyncId(); this.type = type; this.fd = null; // compatibility hack if (typeof listener === 'function') this.on('message', listener); this[kStateSymbol] = { handle, receiving: false, bindState: BIND_STATE_UNBOUND, queue: undefined, reuseAddr: options && options.reuseAddr, // Use UV_UDP_REUSEADDR if true. recvBufferSize, sendBufferSize }; } util.inherits(Socket, EventEmitter); function createSocket(type, listener) { return new Socket(type, listener); } function startListening(socket) { const state = socket[kStateSymbol]; state.handle.onmessage = onMessage; // Todo: handle errors state.handle.recvStart(); state.receiving = true; state.bindState = BIND_STATE_BOUND; socket.fd = -42; // compatibility hack if (state.recvBufferSize) bufferSize(socket, state.recvBufferSize, RECV_BUFFER); if (state.sendBufferSize) bufferSize(socket, state.sendBufferSize, SEND_BUFFER); socket.emit('listening'); } function replaceHandle(self, newHandle) { const state = self[kStateSymbol]; const oldHandle = state.handle; // Set up the handle that we got from master. newHandle.lookup = oldHandle.lookup; newHandle.bind = oldHandle.bind; newHandle.send = oldHandle.send; newHandle[owner_symbol] = self; // Replace the existing handle by the handle we got from master. oldHandle.close(); state.handle = newHandle; } function bufferSize(self, size, buffer) { if (size >>> 0 !== size) throw new ERR_SOCKET_BAD_BUFFER_SIZE(); const ctx = {}; const ret = self[kStateSymbol].handle.bufferSize(size, buffer, ctx); if (ret === undefined) { throw new ERR_SOCKET_BUFFER_SIZE(ctx); } return ret; } Socket.prototype.bind = function(port_, address_ /* , callback */) { let port = port_; healthCheck(this); const state = this[kStateSymbol]; if (state.bindState !== BIND_STATE_UNBOUND) throw new ERR_SOCKET_ALREADY_BOUND(); state.bindState = BIND_STATE_BINDING; if (arguments.length && typeof arguments[arguments.length - 1] === 'function') this.once('listening', arguments[arguments.length - 1]); if (port instanceof UDP) { replaceHandle(this, port); startListening(this); return this; } var address; var exclusive; if (port !== null && typeof port === 'object') { address = port.address || ''; exclusive = !!port.exclusive; port = port.port; } else { address = typeof address_ === 'function' ? '' : address_; exclusive = false; } // defaulting address for bind to all interfaces if (!address) { if (this.type === 'udp4') address = '0.0.0.0'; else address = '::'; } // resolve address first state.handle.lookup(address, (err, ip) => { if (err) { state.bindState = BIND_STATE_UNBOUND; this.emit('error', err); return; } if (!cluster) cluster = require('cluster'); var flags = 0; if (state.reuseAddr) flags |= UV_UDP_REUSEADDR; if (cluster.isWorker && !exclusive) { const onHandle = (err, handle) => { if (err) { var ex = exceptionWithHostPort(err, 'bind', ip, port); this.emit('error', ex); state.bindState = BIND_STATE_UNBOUND; return; } if (!state.handle) // handle has been closed in the mean time. return handle.close(); replaceHandle(this, handle); startListening(this); }; cluster._getServer(this, { address: ip, port: port, addressType: this.type, fd: -1, flags: flags }, onHandle); } else { if (!state.handle) return; // handle has been closed in the mean time const err = state.handle.bind(ip, port || 0, flags); if (err) { var ex = exceptionWithHostPort(err, 'bind', ip, port); this.emit('error', ex); state.bindState = BIND_STATE_UNBOUND; // Todo: close? return; } startListening(this); } }); return this; }; // thin wrapper around `send`, here for compatibility with dgram_legacy.js Socket.prototype.sendto = function(buffer, offset, length, port, address, callback) { validateNumber(offset, 'offset'); validateNumber(length, 'length'); validateNumber(port, 'port'); validateString(address, 'address'); this.send(buffer, offset, length, port, address, callback); }; function sliceBuffer(buffer, offset, length) { if (typeof buffer === 'string') { buffer = Buffer.from(buffer); } else if (!isUint8Array(buffer)) { throw new ERR_INVALID_ARG_TYPE('buffer', ['Buffer', 'Uint8Array', 'string'], buffer); } offset = offset >>> 0; length = length >>> 0; return buffer.slice(offset, offset + length); } function fixBufferList(list) { const newlist = new Array(list.length); for (var i = 0, l = list.length; i < l; i++) { var buf = list[i]; if (typeof buf === 'string') newlist[i] = Buffer.from(buf); else if (!isUint8Array(buf)) return null; else newlist[i] = buf; } return newlist; } function enqueue(self, toEnqueue) { const state = self[kStateSymbol]; // If the send queue hasn't been initialized yet, do it, and install an // event handler that flushes the send queue after binding is done. if (state.queue === undefined) { state.queue = []; self.once('error', onListenError); self.once('listening', onListenSuccess); } state.queue.push(toEnqueue); } function onListenSuccess() { this.removeListener('error', onListenError); clearQueue.call(this); } function onListenError(err) { this.removeListener('listening', onListenSuccess); this[kStateSymbol].queue = undefined; this.emit('error', new ERR_SOCKET_CANNOT_SEND()); } function clearQueue() { const state = this[kStateSymbol]; const queue = state.queue; state.queue = undefined; // Flush the send queue. for (var i = 0; i < queue.length; i++) queue[i](); } // valid combinations // send(buffer, offset, length, port, address, callback) // send(buffer, offset, length, port, address) // send(buffer, offset, length, port, callback) // send(buffer, offset, length, port) // send(bufferOrList, port, address, callback) // send(bufferOrList, port, address) // send(bufferOrList, port, callback) // send(bufferOrList, port) Socket.prototype.send = function(buffer, offset, length, port, address, callback) { let list; if (address || (port && typeof port !== 'function')) { buffer = sliceBuffer(buffer, offset, length); } else { callback = port; port = offset; address = length; } if (!Array.isArray(buffer)) { if (typeof buffer === 'string') { list = [ Buffer.from(buffer) ]; } else if (!isUint8Array(buffer)) { throw new ERR_INVALID_ARG_TYPE('buffer', ['Buffer', 'Uint8Array', 'string'], buffer); } else { list = [ buffer ]; } } else if (!(list = fixBufferList(buffer))) { throw new ERR_INVALID_ARG_TYPE('buffer list arguments', ['Buffer', 'string'], buffer); } port = port >>> 0; if (port === 0 || port > 65535) throw new ERR_SOCKET_BAD_PORT(port); // Normalize callback so it's either a function or undefined but not anything // else. if (typeof callback !== 'function') callback = undefined; if (typeof address === 'function') { callback = address; address = undefined; } else if (address && typeof address !== 'string') { throw new ERR_INVALID_ARG_TYPE('address', ['string', 'falsy'], address); } healthCheck(this); const state = this[kStateSymbol]; if (state.bindState === BIND_STATE_UNBOUND) this.bind({ port: 0, exclusive: true }, null); if (list.length === 0) list.push(Buffer.alloc(0)); // If the socket hasn't been bound yet, push the outbound packet onto the // send queue and send after binding is complete. if (state.bindState !== BIND_STATE_BOUND) { enqueue(this, this.send.bind(this, list, port, address, callback)); return; } const afterDns = (ex, ip) => { defaultTriggerAsyncIdScope( this[async_id_symbol], doSend, ex, this, ip, list, address, port, callback ); }; state.handle.lookup(address, afterDns); }; function doSend(ex, self, ip, list, address, port, callback) { const state = self[kStateSymbol]; if (ex) { if (typeof callback === 'function') { process.nextTick(callback, ex); return; } process.nextTick(() => self.emit('error', ex)); return; } else if (!state.handle) { return; } var req = new SendWrap(); req.list = list; // Keep reference alive. req.address = address; req.port = port; if (callback) { req.callback = callback; req.oncomplete = afterSend; } var err = state.handle.send(req, list, list.length, port, ip, !!callback); if (err && callback) { // don't emit as error, dgram_legacy.js compatibility const ex = exceptionWithHostPort(err, 'send', address, port); process.nextTick(callback, ex); } } function afterSend(err, sent) { if (err) { err = exceptionWithHostPort(err, 'send', this.address, this.port); } else { err = null; } this.callback(err, sent); } Socket.prototype.close = function(callback) { const state = this[kStateSymbol]; const queue = state.queue; if (typeof callback === 'function') this.on('close', callback); if (queue !== undefined) { queue.push(this.close.bind(this)); return this; } healthCheck(this); stopReceiving(this); state.handle.close(); state.handle = null; defaultTriggerAsyncIdScope(this[async_id_symbol], process.nextTick, socketCloseNT, this); return this; }; function socketCloseNT(self) { self.emit('close'); } Socket.prototype.address = function() { healthCheck(this); var out = {}; var err = this[kStateSymbol].handle.getsockname(out); if (err) { throw errnoException(err, 'getsockname'); } return out; }; Socket.prototype.setBroadcast = function(arg) { var err = this[kStateSymbol].handle.setBroadcast(arg ? 1 : 0); if (err) { throw errnoException(err, 'setBroadcast'); } }; Socket.prototype.setTTL = function(ttl) { validateNumber(ttl, 'ttl'); var err = this[kStateSymbol].handle.setTTL(ttl); if (err) { throw errnoException(err, 'setTTL'); } return ttl; }; Socket.prototype.setMulticastTTL = function(ttl) { validateNumber(ttl, 'ttl'); var err = this[kStateSymbol].handle.setMulticastTTL(ttl); if (err) { throw errnoException(err, 'setMulticastTTL'); } return ttl; }; Socket.prototype.setMulticastLoopback = function(arg) { var err = this[kStateSymbol].handle.setMulticastLoopback(arg ? 1 : 0); if (err) { throw errnoException(err, 'setMulticastLoopback'); } return arg; // 0.4 compatibility }; Socket.prototype.setMulticastInterface = function(interfaceAddress) { healthCheck(this); validateString(interfaceAddress, 'interfaceAddress'); const err = this[kStateSymbol].handle.setMulticastInterface(interfaceAddress); if (err) { throw errnoException(err, 'setMulticastInterface'); } }; Socket.prototype.addMembership = function(multicastAddress, interfaceAddress) { healthCheck(this); if (!multicastAddress) { throw new ERR_MISSING_ARGS('multicastAddress'); } const { handle } = this[kStateSymbol]; var err = handle.addMembership(multicastAddress, interfaceAddress); if (err) { throw errnoException(err, 'addMembership'); } }; Socket.prototype.dropMembership = function(multicastAddress, interfaceAddress) { healthCheck(this); if (!multicastAddress) { throw new ERR_MISSING_ARGS('multicastAddress'); } const { handle } = this[kStateSymbol]; var err = handle.dropMembership(multicastAddress, interfaceAddress); if (err) { throw errnoException(err, 'dropMembership'); } }; function healthCheck(socket) { if (!socket[kStateSymbol].handle) { // Error message from dgram_legacy.js. throw new ERR_SOCKET_DGRAM_NOT_RUNNING(); } } function stopReceiving(socket) { const state = socket[kStateSymbol]; if (!state.receiving) return; state.handle.recvStop(); state.receiving = false; socket.fd = null; // compatibility hack } function onMessage(nread, handle, buf, rinfo) { var self = handle[owner_symbol]; if (nread < 0) { return self.emit('error', errnoException(nread, 'recvmsg')); } rinfo.size = buf.length; // compatibility self.emit('message', buf, rinfo); } Socket.prototype.ref = function() { const handle = this[kStateSymbol].handle; if (handle) handle.ref(); return this; }; Socket.prototype.unref = function() { const handle = this[kStateSymbol].handle; if (handle) handle.unref(); return this; }; Socket.prototype.setRecvBufferSize = function(size) { bufferSize(this, size, RECV_BUFFER); }; Socket.prototype.setSendBufferSize = function(size) { bufferSize(this, size, SEND_BUFFER); }; Socket.prototype.getRecvBufferSize = function() { return bufferSize(this, 0, RECV_BUFFER); }; Socket.prototype.getSendBufferSize = function() { return bufferSize(this, 0, SEND_BUFFER); }; // Legacy private APIs to be deprecated in the future. Object.defineProperty(Socket.prototype, '_handle', { get() { return this[kStateSymbol].handle; }, set(val) { this[kStateSymbol].handle = val; } }); Object.defineProperty(Socket.prototype, '_receiving', { get() { return this[kStateSymbol].receiving; }, set(val) { this[kStateSymbol].receiving = val; } }); Object.defineProperty(Socket.prototype, '_bindState', { get() { return this[kStateSymbol].bindState; }, set(val) { this[kStateSymbol].bindState = val; } }); Object.defineProperty(Socket.prototype, '_queue', { get() { return this[kStateSymbol].queue; }, set(val) { this[kStateSymbol].queue = val; } }); Object.defineProperty(Socket.prototype, '_reuseAddr', { get() { return this[kStateSymbol].reuseAddr; }, set(val) { this[kStateSymbol].reuseAddr = val; } }); Socket.prototype._healthCheck = function() { healthCheck(this); }; Socket.prototype._stopReceiving = function() { stopReceiving(this); }; // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. Object.defineProperty(UDP.prototype, 'owner', { get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); module.exports = { _createSocketHandle, createSocket, Socket }; dns// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const cares = internalBinding('cares_wrap'); const { isIP, isIPv4, isLegalPort } = require('internal/net'); const { customPromisifyArgs } = require('internal/util'); const errors = require('internal/errors'); const { bindDefaultResolver, getDefaultResolver, setDefaultResolver, Resolver, validateHints } = require('internal/dns/utils'); const { ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, ERR_INVALID_OPT_VALUE, ERR_MISSING_ARGS, ERR_SOCKET_BAD_PORT } = errors.codes; const { validateString } = require('internal/validators'); const { GetAddrInfoReqWrap, GetNameInfoReqWrap, QueryReqWrap, } = cares; const dnsException = errors.dnsException; let promisesWarn = true; let promises; // Lazy loaded function onlookup(err, addresses) { if (err) { return this.callback(dnsException(err, 'getaddrinfo', this.hostname)); } if (this.family) { this.callback(null, addresses[0], this.family); } else { this.callback(null, addresses[0], isIPv4(addresses[0]) ? 4 : 6); } } function onlookupall(err, addresses) { if (err) { return this.callback(dnsException(err, 'getaddrinfo', this.hostname)); } var family = this.family; for (var i = 0; i < addresses.length; i++) { const addr = addresses[i]; addresses[i] = { address: addr, family: family || (isIPv4(addr) ? 4 : 6) }; } this.callback(null, addresses); } // Easy DNS A/AAAA look up // lookup(hostname, [options,] callback) function lookup(hostname, options, callback) { var hints = 0; var family = -1; var all = false; var verbatim = false; // Parse arguments if (hostname && typeof hostname !== 'string') { throw new ERR_INVALID_ARG_TYPE('hostname', ['string', 'falsy'], hostname); } else if (typeof options === 'function') { callback = options; family = 0; } else if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } else if (options !== null && typeof options === 'object') { hints = options.hints >>> 0; family = options.family >>> 0; all = options.all === true; verbatim = options.verbatim === true; validateHints(hints); } else { family = options >>> 0; } if (family !== 0 && family !== 4 && family !== 6) throw new ERR_INVALID_OPT_VALUE('family', family); if (!hostname) { if (all) { process.nextTick(callback, null, []); } else { process.nextTick(callback, null, null, family === 6 ? 6 : 4); } return {}; } var matchedFamily = isIP(hostname); if (matchedFamily) { if (all) { process.nextTick( callback, null, [{ address: hostname, family: matchedFamily }]); } else { process.nextTick(callback, null, hostname, matchedFamily); } return {}; } var req = new GetAddrInfoReqWrap(); req.callback = callback; req.family = family; req.hostname = hostname; req.oncomplete = all ? onlookupall : onlookup; var err = cares.getaddrinfo(req, hostname, family, hints, verbatim); if (err) { process.nextTick(callback, dnsException(err, 'getaddrinfo', hostname)); return {}; } return req; } Object.defineProperty(lookup, customPromisifyArgs, { value: ['address', 'family'], enumerable: false }); function onlookupservice(err, hostname, service) { if (err) return this.callback(dnsException(err, 'getnameinfo', this.hostname)); this.callback(null, hostname, service); } // lookupService(address, port, callback) function lookupService(hostname, port, callback) { if (arguments.length !== 3) throw new ERR_MISSING_ARGS('hostname', 'port', 'callback'); if (isIP(hostname) === 0) throw new ERR_INVALID_OPT_VALUE('hostname', hostname); if (!isLegalPort(port)) throw new ERR_SOCKET_BAD_PORT(port); if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); port = +port; var req = new GetNameInfoReqWrap(); req.callback = callback; req.hostname = hostname; req.port = port; req.oncomplete = onlookupservice; var err = cares.getnameinfo(req, hostname, port); if (err) throw dnsException(err, 'getnameinfo', hostname); return req; } Object.defineProperty(lookupService, customPromisifyArgs, { value: ['hostname', 'service'], enumerable: false }); function onresolve(err, result, ttls) { if (ttls && this.ttl) result = result.map((address, index) => ({ address, ttl: ttls[index] })); if (err) this.callback(dnsException(err, this.bindingName, this.hostname)); else this.callback(null, result); } function resolver(bindingName) { function query(name, /* options, */ callback) { var options; if (arguments.length > 2) { options = callback; callback = arguments[2]; } validateString(name, 'name'); if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } var req = new QueryReqWrap(); req.bindingName = bindingName; req.callback = callback; req.hostname = name; req.oncomplete = onresolve; req.ttl = !!(options && options.ttl); var err = this._handle[bindingName](req, name); if (err) throw dnsException(err, bindingName, name); return req; } Object.defineProperty(query, 'name', { value: bindingName }); return query; } var resolveMap = Object.create(null); Resolver.prototype.resolveAny = resolveMap.ANY = resolver('queryAny'); Resolver.prototype.resolve4 = resolveMap.A = resolver('queryA'); Resolver.prototype.resolve6 = resolveMap.AAAA = resolver('queryAaaa'); Resolver.prototype.resolveCname = resolveMap.CNAME = resolver('queryCname'); Resolver.prototype.resolveMx = resolveMap.MX = resolver('queryMx'); Resolver.prototype.resolveNs = resolveMap.NS = resolver('queryNs'); Resolver.prototype.resolveTxt = resolveMap.TXT = resolver('queryTxt'); Resolver.prototype.resolveSrv = resolveMap.SRV = resolver('querySrv'); Resolver.prototype.resolvePtr = resolveMap.PTR = resolver('queryPtr'); Resolver.prototype.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr'); Resolver.prototype.resolveSoa = resolveMap.SOA = resolver('querySoa'); Resolver.prototype.reverse = resolver('getHostByAddr'); Resolver.prototype.resolve = resolve; function resolve(hostname, rrtype, callback) { var resolver; if (typeof rrtype === 'string') { resolver = resolveMap[rrtype]; } else if (typeof rrtype === 'function') { resolver = resolveMap.A; callback = rrtype; } else { throw new ERR_INVALID_ARG_TYPE('rrtype', 'string', rrtype); } if (typeof resolver === 'function') { return resolver.call(this, hostname, callback); } else { throw new ERR_INVALID_OPT_VALUE('rrtype', rrtype); } } function defaultResolverSetServers(servers) { const resolver = new Resolver(); resolver.setServers(servers); setDefaultResolver(resolver); bindDefaultResolver(module.exports, Resolver.prototype); if (promises !== undefined) bindDefaultResolver(promises, promises.Resolver.prototype); } module.exports = { lookup, lookupService, Resolver, setServers: defaultResolverSetServers, // uv_getaddrinfo flags ADDRCONFIG: cares.AI_ADDRCONFIG, V4MAPPED: cares.AI_V4MAPPED, // ERROR CODES NODATA: 'ENODATA', FORMERR: 'EFORMERR', SERVFAIL: 'ESERVFAIL', NOTFOUND: 'ENOTFOUND', NOTIMP: 'ENOTIMP', REFUSED: 'EREFUSED', BADQUERY: 'EBADQUERY', BADNAME: 'EBADNAME', BADFAMILY: 'EBADFAMILY', BADRESP: 'EBADRESP', CONNREFUSED: 'ECONNREFUSED', TIMEOUT: 'ETIMEOUT', EOF: 'EOF', FILE: 'EFILE', NOMEM: 'ENOMEM', DESTRUCTION: 'EDESTRUCTION', BADSTR: 'EBADSTR', BADFLAGS: 'EBADFLAGS', NONAME: 'ENONAME', BADHINTS: 'EBADHINTS', NOTINITIALIZED: 'ENOTINITIALIZED', LOADIPHLPAPI: 'ELOADIPHLPAPI', ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS', CANCELLED: 'ECANCELLED' }; bindDefaultResolver(module.exports, getDefaultResolver()); Object.defineProperties(module.exports, { promises: { configurable: true, enumerable: false, get() { if (promisesWarn) { promises = require('internal/dns/promises'); promises.setServers = defaultResolverSetServers; promisesWarn = false; process.emitWarning('The dns.promises API is experimental', 'ExperimentalWarning'); } return promises; } } }); domain// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; // WARNING: THIS MODULE IS PENDING DEPRECATION. // // No new pull requests targeting this module will be accepted // unless they address existing, critical bugs. const util = require('util'); const EventEmitter = require('events'); const { ERR_DOMAIN_CALLBACK_NOT_AVAILABLE, ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE, ERR_UNHANDLED_ERROR } = require('internal/errors').codes; const { createHook } = require('async_hooks'); // overwrite process.domain with a getter/setter that will allow for more // effective optimizations var _domain = [null]; Object.defineProperty(process, 'domain', { enumerable: true, get: function() { return _domain[0]; }, set: function(arg) { return _domain[0] = arg; } }); const pairing = new Map(); const asyncHook = createHook({ init(asyncId, type, triggerAsyncId, resource) { if (process.domain !== null && process.domain !== undefined) { // if this operation is created while in a domain, let's mark it pairing.set(asyncId, process.domain); resource.domain = process.domain; if (resource.promise !== undefined && resource.promise instanceof Promise) { // resource.promise instanceof Promise make sure that the // promise comes from the same context // see https://github.com/nodejs/node/issues/15673 resource.promise.domain = process.domain; } } }, before(asyncId) { const current = pairing.get(asyncId); if (current !== undefined) { // enter domain for this cb current.enter(); } }, after(asyncId) { const current = pairing.get(asyncId); if (current !== undefined) { // exit domain for this cb current.exit(); } }, destroy(asyncId) { pairing.delete(asyncId); // cleaning up } }); // When domains are in use, they claim full ownership of the // uncaught exception capture callback. if (process.hasUncaughtExceptionCaptureCallback()) { throw new ERR_DOMAIN_CALLBACK_NOT_AVAILABLE(); } // Get the stack trace at the point where `domain` was required. // eslint-disable-next-line no-restricted-syntax const domainRequireStack = new Error('require(`domain`) at this point').stack; const { setUncaughtExceptionCaptureCallback } = process; process.setUncaughtExceptionCaptureCallback = function(fn) { const err = new ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE(); err.stack = err.stack + '\n' + '-'.repeat(40) + '\n' + domainRequireStack; throw err; }; let sendMakeCallbackDeprecation = false; function emitMakeCallbackDeprecation() { if (!sendMakeCallbackDeprecation) { process.emitWarning( 'Using a domain property in MakeCallback is deprecated. Use the ' + 'async_context variant of MakeCallback or the AsyncResource class ' + 'instead.', 'DeprecationWarning', 'DEP0097'); sendMakeCallbackDeprecation = true; } } function topLevelDomainCallback(cb, ...args) { const domain = this.domain; if (exports.active && domain) emitMakeCallbackDeprecation(); if (domain) domain.enter(); const ret = Reflect.apply(cb, this, args); if (domain) domain.exit(); return ret; } // It's possible to enter one domain while already inside // another one. The stack is each entered domain. const stack = []; exports._stack = stack; internalBinding('domain').enable(topLevelDomainCallback); function updateExceptionCapture() { if (stack.every((domain) => domain.listenerCount('error') === 0)) { setUncaughtExceptionCaptureCallback(null); } else { setUncaughtExceptionCaptureCallback(null); setUncaughtExceptionCaptureCallback((er) => { return process.domain._errorHandler(er); }); } } process.on('newListener', (name, listener) => { if (name === 'uncaughtException' && listener !== domainUncaughtExceptionClear) { // Make sure the first listener for `uncaughtException` always clears // the domain stack. process.removeListener(name, domainUncaughtExceptionClear); process.prependListener(name, domainUncaughtExceptionClear); } }); process.on('removeListener', (name, listener) => { if (name === 'uncaughtException' && listener !== domainUncaughtExceptionClear) { // If the domain listener would be the only remaining one, remove it. const listeners = process.listeners('uncaughtException'); if (listeners.length === 1 && listeners[0] === domainUncaughtExceptionClear) process.removeListener(name, domainUncaughtExceptionClear); } }); function domainUncaughtExceptionClear() { stack.length = 0; exports.active = process.domain = null; updateExceptionCapture(); } class Domain extends EventEmitter { constructor() { super(); this.members = []; asyncHook.enable(); this.on('removeListener', updateExceptionCapture); this.on('newListener', updateExceptionCapture); } } exports.Domain = Domain; exports.create = exports.createDomain = function createDomain() { return new Domain(); }; // the active domain is always the one that we're currently in. exports.active = null; Domain.prototype.members = undefined; // Called by process._fatalException in case an error was thrown. Domain.prototype._errorHandler = function(er) { var caught = false; if (!util.isPrimitive(er)) { er.domain = this; er.domainThrown = true; } // The top-level domain-handler is handled separately. // // The reason is that if V8 was passed a command line option // asking it to abort on an uncaught exception (currently // "--abort-on-uncaught-exception"), we want an uncaught exception // in the top-level domain error handler to make the // process abort. Using try/catch here would always make V8 think // that these exceptions are caught, and thus would prevent it from // aborting in these cases. if (stack.length === 1) { // If there's no error handler, do not emit an 'error' event // as this would throw an error, make the process exit, and thus // prevent the process 'uncaughtException' event from being emitted // if a listener is set. if (EventEmitter.listenerCount(this, 'error') > 0) { // Clear the uncaughtExceptionCaptureCallback so that we know that, even // if technically the top-level domain is still active, it would // be ok to abort on an uncaught exception at this point setUncaughtExceptionCaptureCallback(null); try { caught = this.emit('error', er); } finally { updateExceptionCapture(); } } } else { // wrap this in a try/catch so we don't get infinite throwing try { // One of three things will happen here. // // 1. There is a handler, caught = true // 2. There is no handler, caught = false // 3. It throws, caught = false // // If caught is false after this, then there's no need to exit() // the domain, because we're going to crash the process anyway. caught = this.emit('error', er); } catch (er2) { // The domain error handler threw! oh no! // See if another domain can catch THIS error, // or else crash on the original one. // If the user already exited it, then don't double-exit. if (this === exports.active) { stack.pop(); } updateExceptionCapture(); if (stack.length) { exports.active = process.domain = stack[stack.length - 1]; caught = process.domain._errorHandler(er2); } else { // Pass on to the next exception handler. throw er2; } } } // Exit all domains on the stack. Uncaught exceptions end the // current tick and no domains should be left on the stack // between ticks. domainUncaughtExceptionClear(); return caught; }; Domain.prototype.enter = function() { // note that this might be a no-op, but we still need // to push it onto the stack so that we can pop it later. exports.active = process.domain = this; stack.push(this); updateExceptionCapture(); }; Domain.prototype.exit = function() { // don't do anything if this domain is not on the stack. var index = stack.lastIndexOf(this); if (index === -1) return; // exit all domains until this one. stack.splice(index); exports.active = stack[stack.length - 1]; process.domain = exports.active; updateExceptionCapture(); }; // note: this works for timers as well. Domain.prototype.add = function(ee) { // If the domain is already added, then nothing left to do. if (ee.domain === this) return; // has a domain already - remove it first. if (ee.domain) ee.domain.remove(ee); // check for circular Domain->Domain links. // This causes bad insanity! // // For example: // var d = domain.create(); // var e = domain.create(); // d.add(e); // e.add(d); // e.emit('error', er); // RangeError, stack overflow! if (this.domain && (ee instanceof Domain)) { for (var d = this.domain; d; d = d.domain) { if (ee === d) return; } } ee.domain = this; this.members.push(ee); }; Domain.prototype.remove = function(ee) { ee.domain = null; var index = this.members.indexOf(ee); if (index !== -1) this.members.splice(index, 1); }; Domain.prototype.run = function(fn) { var ret; this.enter(); if (arguments.length >= 2) { var len = arguments.length; var args = new Array(len - 1); for (var i = 1; i < len; i++) args[i - 1] = arguments[i]; ret = fn.apply(this, args); } else { ret = fn.call(this); } this.exit(); return ret; }; function intercepted(_this, self, cb, fnargs) { if (fnargs[0] && fnargs[0] instanceof Error) { var er = fnargs[0]; util._extend(er, { domainBound: cb, domainThrown: false, domain: self }); self.emit('error', er); return; } var args = []; var i, ret; self.enter(); if (fnargs.length > 1) { for (i = 1; i < fnargs.length; i++) args.push(fnargs[i]); ret = cb.apply(_this, args); } else { ret = cb.call(_this); } self.exit(); return ret; } Domain.prototype.intercept = function(cb) { var self = this; function runIntercepted() { return intercepted(this, self, cb, arguments); } return runIntercepted; }; function bound(_this, self, cb, fnargs) { var ret; self.enter(); if (fnargs.length > 0) ret = cb.apply(_this, fnargs); else ret = cb.call(_this); self.exit(); return ret; } Domain.prototype.bind = function(cb) { var self = this; function runBound() { return bound(this, self, cb, arguments); } runBound.domain = this; return runBound; }; // Override EventEmitter methods to make it domain-aware. EventEmitter.usingDomains = true; const eventInit = EventEmitter.init; EventEmitter.init = function() { this.domain = null; if (exports.active && !(this instanceof exports.Domain)) { this.domain = exports.active; } return eventInit.call(this); }; const eventEmit = EventEmitter.prototype.emit; EventEmitter.prototype.emit = function(...args) { const domain = this.domain; const type = args[0]; const shouldEmitError = type === 'error' && this.listenerCount(type) > 0; // Just call original `emit` if current EE instance has `error` // handler, there's no active domain or this is process if (shouldEmitError || domain === null || domain === undefined || this === process) { return Reflect.apply(eventEmit, this, args); } if (type === 'error') { const er = args.length > 1 && args[1] ? args[1] : new ERR_UNHANDLED_ERROR(); if (typeof er === 'object') { er.domainEmitter = this; er.domain = domain; er.domainThrown = false; } domain.emit('error', er); return false; } domain.enter(); const ret = Reflect.apply(eventEmit, this, args); domain.exit(); return ret; }; events// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; var spliceOne; function EventEmitter() { EventEmitter.init.call(this); } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.usingDomains = false; EventEmitter.prototype._events = undefined; EventEmitter.prototype._eventsCount = 0; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. var defaultMaxListeners = 10; var errors; function lazyErrors() { if (errors === undefined) errors = require('internal/errors').codes; return errors; } function checkListener(listener) { if (typeof listener !== 'function') { const errors = lazyErrors(); throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener); } } Object.defineProperty(EventEmitter, 'defaultMaxListeners', { enumerable: true, get: function() { return defaultMaxListeners; }, set: function(arg) { if (typeof arg !== 'number' || arg < 0 || Number.isNaN(arg)) { const errors = lazyErrors(); throw new errors.ERR_OUT_OF_RANGE('defaultMaxListeners', 'a non-negative number', arg); } defaultMaxListeners = arg; } }); EventEmitter.init = function() { if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) { this._events = Object.create(null); this._eventsCount = 0; } this._maxListeners = this._maxListeners || undefined; }; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { if (typeof n !== 'number' || n < 0 || Number.isNaN(n)) { const errors = lazyErrors(); throw new errors.ERR_OUT_OF_RANGE('n', 'a non-negative number', n); } this._maxListeners = n; return this; }; function $getMaxListeners(that) { if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners; return that._maxListeners; } EventEmitter.prototype.getMaxListeners = function getMaxListeners() { return $getMaxListeners(this); }; // Returns the longest sequence of `a` that fully appears in `b`, // of length at least 3. // This is a lazy approach but should work well enough, given that stack // frames are usually unequal or otherwise appear in groups, and that // we only run this code in case of an unhandled exception. function longestSeqContainedIn(a, b) { for (var len = a.length; len >= 3; --len) { for (var i = 0; i < a.length - len; ++i) { // Attempt to find a[i:i+len] in b for (var j = 0; j < b.length - len; ++j) { let matches = true; for (var k = 0; k < len; ++k) { if (a[i + k] !== b[j + k]) { matches = false; break; } } if (matches) return [ len, i, j ]; } } } return [ 0, 0, 0 ]; } function enhanceStackTrace(err, own) { const sep = '\nEmitted \'error\' event at:\n'; const errStack = err.stack.split('\n').slice(1); const ownStack = own.stack.split('\n').slice(1); const [ len, off ] = longestSeqContainedIn(ownStack, errStack); if (len > 0) { ownStack.splice(off + 1, len - 1, ' [... lines matching original stack trace ...]'); } // Do this last, because it is the only operation with side effects. err.stack = err.stack + sep + ownStack.join('\n'); } EventEmitter.prototype.emit = function emit(type, ...args) { let doError = (type === 'error'); const events = this._events; if (events !== undefined) doError = (doError && events.error === undefined); else if (!doError) return false; // If there is no 'error' event listener then throw. if (doError) { let er; if (args.length > 0) er = args[0]; if (er instanceof Error) { try { const { kExpandStackSymbol } = require('internal/util'); const capture = {}; Error.captureStackTrace(capture, EventEmitter.prototype.emit); Object.defineProperty(er, kExpandStackSymbol, { value: enhanceStackTrace.bind(null, er, capture), configurable: true }); } catch {} // Note: The comments on the `throw` lines are intentional, they show // up in Node's output if this results in an unhandled exception. throw er; // Unhandled 'error' event } // At least give some kind of context to the user const errors = lazyErrors(); const err = new errors.ERR_UNHANDLED_ERROR(er); err.context = er; throw err; // Unhandled 'error' event } const handler = events[type]; if (handler === undefined) return false; if (typeof handler === 'function') { Reflect.apply(handler, this, args); } else { const len = handler.length; const listeners = arrayClone(handler, len); for (var i = 0; i < len; ++i) Reflect.apply(listeners[i], this, args); } return true; }; function _addListener(target, type, listener, prepend) { var m; var events; var existing; checkListener(listener); events = target._events; if (events === undefined) { events = target._events = Object.create(null); target._eventsCount = 0; } else { // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (events.newListener !== undefined) { target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the // this._events to be assigned to a new object events = target._events; } existing = events[type]; } if (existing === undefined) { // Optimize the case of one listener. Don't need the extra array object. existing = events[type] = listener; ++target._eventsCount; } else { if (typeof existing === 'function') { // Adding the second element, need to change to array. existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append. } else if (prepend) { existing.unshift(listener); } else { existing.push(listener); } // Check for listener leak m = $getMaxListeners(target); if (m > 0 && existing.length > m && !existing.warned) { existing.warned = true; // No error code for this since it is a Warning // eslint-disable-next-line no-restricted-syntax const w = new Error('Possible EventEmitter memory leak detected. ' + `${existing.length} ${String(type)} listeners ` + 'added. Use emitter.setMaxListeners() to ' + 'increase limit'); w.name = 'MaxListenersExceededWarning'; w.emitter = target; w.type = type; w.count = existing.length; process.emitWarning(w); } } return target; } EventEmitter.prototype.addListener = function addListener(type, listener) { return _addListener(this, type, listener, false); }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.prependListener = function prependListener(type, listener) { return _addListener(this, type, listener, true); }; function onceWrapper(...args) { if (!this.fired) { this.target.removeListener(this.type, this.wrapFn); this.fired = true; Reflect.apply(this.listener, this.target, args); } } function _onceWrap(target, type, listener) { var state = { fired: false, wrapFn: undefined, target, type, listener }; var wrapped = onceWrapper.bind(state); wrapped.listener = listener; state.wrapFn = wrapped; return wrapped; } EventEmitter.prototype.once = function once(type, listener) { checkListener(listener); this.on(type, _onceWrap(this, type, listener)); return this; }; EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) { checkListener(listener); this.prependListener(type, _onceWrap(this, type, listener)); return this; }; // Emits a 'removeListener' event if and only if the listener was removed. EventEmitter.prototype.removeListener = function removeListener(type, listener) { var list, events, position, i, originalListener; checkListener(listener); events = this._events; if (events === undefined) return this; list = events[type]; if (list === undefined) return this; if (list === listener || list.listener === listener) { if (--this._eventsCount === 0) this._events = Object.create(null); else { delete events[type]; if (events.removeListener) this.emit('removeListener', type, list.listener || listener); } } else if (typeof list !== 'function') { position = -1; for (i = list.length - 1; i >= 0; i--) { if (list[i] === listener || list[i].listener === listener) { originalListener = list[i].listener; position = i; break; } } if (position < 0) return this; if (position === 0) list.shift(); else { if (spliceOne === undefined) spliceOne = require('internal/util').spliceOne; spliceOne(list, position); } if (list.length === 1) events[type] = list[0]; if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener); } return this; }; EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) { var listeners, events, i; events = this._events; if (events === undefined) return this; // not listening for removeListener, no need to emit if (events.removeListener === undefined) { if (arguments.length === 0) { this._events = Object.create(null); this._eventsCount = 0; } else if (events[type] !== undefined) { if (--this._eventsCount === 0) this._events = Object.create(null); else delete events[type]; } return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { var keys = Object.keys(events); var key; for (i = 0; i < keys.length; ++i) { key = keys[i]; if (key === 'removeListener') continue; this.removeAllListeners(key); } this.removeAllListeners('removeListener'); this._events = Object.create(null); this._eventsCount = 0; return this; } listeners = events[type]; if (typeof listeners === 'function') { this.removeListener(type, listeners); } else if (listeners !== undefined) { // LIFO order for (i = listeners.length - 1; i >= 0; i--) { this.removeListener(type, listeners[i]); } } return this; }; function _listeners(target, type, unwrap) { const events = target._events; if (events === undefined) return []; const evlistener = events[type]; if (evlistener === undefined) return []; if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener]; return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); } EventEmitter.prototype.listeners = function listeners(type) { return _listeners(this, type, true); }; EventEmitter.prototype.rawListeners = function rawListeners(type) { return _listeners(this, type, false); }; EventEmitter.listenerCount = function(emitter, type) { if (typeof emitter.listenerCount === 'function') { return emitter.listenerCount(type); } else { return listenerCount.call(emitter, type); } }; EventEmitter.prototype.listenerCount = listenerCount; function listenerCount(type) { const events = this._events; if (events !== undefined) { const evlistener = events[type]; if (typeof evlistener === 'function') { return 1; } else if (evlistener !== undefined) { return evlistener.length; } } return 0; } EventEmitter.prototype.eventNames = function eventNames() { return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; }; function arrayClone(arr, n) { var copy = new Array(n); for (var i = 0; i < n; ++i) copy[i] = arr[i]; return copy; } function unwrapListeners(arr) { const ret = new Array(arr.length); for (var i = 0; i < ret.length; ++i) { ret[i] = arr[i].listener || arr[i]; } return ret; } fs// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // Maintainers, keep in mind that ES1-style octal literals (`0666`) are not // allowed in strict mode. Use ES6-style octal literals instead (`0o666`). 'use strict'; const { fs: constants } = process.binding('constants'); const { S_IFIFO, S_IFLNK, S_IFMT, S_IFREG, S_IFSOCK, F_OK, R_OK, W_OK, X_OK, O_WRONLY, O_SYMLINK } = constants; const { _extend } = require('util'); const pathModule = require('path'); const { isArrayBufferView } = require('internal/util/types'); const binding = process.binding('fs'); const { Buffer, kMaxLength } = require('buffer'); const errors = require('internal/errors'); const { ERR_FS_FILE_TOO_LARGE, ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK } = errors.codes; const { FSReqWrap, statValues } = binding; const { ReadStream, WriteStream } = require('internal/fs/streams'); const internalFS = require('internal/fs/utils'); const { toPathIfFileURL } = require('internal/url'); const internalUtil = require('internal/util'); const { copyObject, Dirent, getDirents, getOptions, nullCheck, preprocessSymlinkDestination, Stats, getStatsFromBinding, realpathCacheKey, stringToFlags, stringToSymlinkType, toUnixTimestamp, validateBuffer, validateOffsetLengthRead, validateOffsetLengthWrite, validatePath } = internalFS; const { CHAR_FORWARD_SLASH, CHAR_BACKWARD_SLASH, } = require('internal/constants'); const { isUint32, validateMode, validateInteger, validateInt32, validateUint32 } = require('internal/validators'); let promisesWarn = true; let truncateWarn = true; let fs; // Lazy loaded let promises; let watchers; let ReadFileContext; const isWindows = process.platform === 'win32'; function showTruncateDeprecation() { if (truncateWarn) { process.emitWarning( 'Using fs.truncate with a file descriptor is deprecated. Please use ' + 'fs.ftruncate with a file descriptor instead.', 'DeprecationWarning', 'DEP0081'); truncateWarn = false; } } function handleErrorFromBinding(ctx) { if (ctx.errno !== undefined) { // libuv error numbers const err = errors.uvException(ctx); Error.captureStackTrace(err, handleErrorFromBinding); throw err; } else if (ctx.error !== undefined) { // errors created in C++ land. // TODO(joyeecheung): currently, ctx.error are encoding errors // usually caused by memory problems. We need to figure out proper error // code(s) for this. Error.captureStackTrace(ctx.error, handleErrorFromBinding); throw ctx.error; } } function maybeCallback(cb) { if (typeof cb === 'function') return cb; throw new ERR_INVALID_CALLBACK(); } // Ensure that callbacks run in the global context. Only use this function // for callbacks that are passed to the binding layer, callbacks that are // invoked from JS already run in the proper scope. function makeCallback(cb) { if (typeof cb !== 'function') { throw new ERR_INVALID_CALLBACK(); } return function(...args) { return Reflect.apply(cb, undefined, args); }; } // Special case of `makeCallback()` that is specific to async `*stat()` calls as // an optimization, since the data passed back to the callback needs to be // transformed anyway. function makeStatsCallback(cb) { if (typeof cb !== 'function') { throw new ERR_INVALID_CALLBACK(); } return function(err, stats) { if (err) return cb(err); cb(err, getStatsFromBinding(stats)); }; } const isFd = isUint32; function isFileType(stats, fileType) { // Use stats array directly to avoid creating an fs.Stats instance just for // our internal use. return (stats[1/* mode */] & S_IFMT) === fileType; } function access(path, mode, callback) { if (typeof mode === 'function') { callback = mode; mode = F_OK; } path = toPathIfFileURL(path); validatePath(path); mode = mode | 0; const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.access(pathModule.toNamespacedPath(path), mode, req); } function accessSync(path, mode) { path = toPathIfFileURL(path); validatePath(path); if (mode === undefined) mode = F_OK; else mode = mode | 0; const ctx = { path }; binding.access(pathModule.toNamespacedPath(path), mode, undefined, ctx); handleErrorFromBinding(ctx); } function exists(path, callback) { maybeCallback(callback); function suppressedCallback(err) { callback(err ? false : true); } try { fs.access(path, F_OK, suppressedCallback); } catch { return callback(false); } } Object.defineProperty(exists, internalUtil.promisify.custom, { value: (path) => { return new Promise((resolve) => fs.exists(path, resolve)); } }); // fs.existsSync never throws, it only returns true or false. // Since fs.existsSync never throws, users have established // the expectation that passing invalid arguments to it, even like // fs.existsSync(), would only get a false in return, so we cannot signal // validation errors to users properly out of compatibility concerns. // TODO(joyeecheung): deprecate the never-throw-on-invalid-arguments behavior function existsSync(path) { try { path = toPathIfFileURL(path); validatePath(path); } catch { return false; } const ctx = { path }; binding.access(pathModule.toNamespacedPath(path), F_OK, undefined, ctx); return ctx.errno === undefined; } function readFileAfterOpen(err, fd) { const context = this.context; if (err) { context.callback(err); return; } context.fd = fd; const req = new FSReqWrap(); req.oncomplete = readFileAfterStat; req.context = context; binding.fstat(fd, false, req); } function readFileAfterStat(err, stats) { const context = this.context; if (err) return context.close(err); const size = context.size = isFileType(stats, S_IFREG) ? stats[8] : 0; if (size === 0) { context.buffers = []; context.read(); return; } if (size > kMaxLength) { err = new ERR_FS_FILE_TOO_LARGE(size); return context.close(err); } try { context.buffer = Buffer.allocUnsafeSlow(size); } catch (err) { return context.close(err); } context.read(); } function readFile(path, options, callback) { callback = maybeCallback(callback || options); options = getOptions(options, { flag: 'r' }); if (!ReadFileContext) ReadFileContext = require('internal/fs/read_file_context'); const context = new ReadFileContext(callback, options.encoding); context.isUserFd = isFd(path); // file descriptor ownership const req = new FSReqWrap(); req.context = context; req.oncomplete = readFileAfterOpen; if (context.isUserFd) { process.nextTick(function tick() { req.oncomplete(null, path); }); return; } path = toPathIfFileURL(path); validatePath(path); binding.open(pathModule.toNamespacedPath(path), stringToFlags(options.flag || 'r'), 0o666, req); } function tryStatSync(fd, isUserFd) { const ctx = {}; const stats = binding.fstat(fd, false, undefined, ctx); if (ctx.errno !== undefined && !isUserFd) { fs.closeSync(fd); throw errors.uvException(ctx); } return stats; } function tryCreateBuffer(size, fd, isUserFd) { let threw = true; let buffer; try { if (size > kMaxLength) { throw new ERR_FS_FILE_TOO_LARGE(size); } buffer = Buffer.allocUnsafe(size); threw = false; } finally { if (threw && !isUserFd) fs.closeSync(fd); } return buffer; } function tryReadSync(fd, isUserFd, buffer, pos, len) { let threw = true; let bytesRead; try { bytesRead = fs.readSync(fd, buffer, pos, len); threw = false; } finally { if (threw && !isUserFd) fs.closeSync(fd); } return bytesRead; } function readFileSync(path, options) { options = getOptions(options, { flag: 'r' }); const isUserFd = isFd(path); // file descriptor ownership const fd = isUserFd ? path : fs.openSync(path, options.flag || 'r', 0o666); const stats = tryStatSync(fd, isUserFd); const size = isFileType(stats, S_IFREG) ? stats[8] : 0; let pos = 0; let buffer; // single buffer with file data let buffers; // list for when size is unknown if (size === 0) { buffers = []; } else { buffer = tryCreateBuffer(size, fd, isUserFd); } let bytesRead; if (size !== 0) { do { bytesRead = tryReadSync(fd, isUserFd, buffer, pos, size - pos); pos += bytesRead; } while (bytesRead !== 0 && pos < size); } else { do { // the kernel lies about many files. // Go ahead and try to read some bytes. buffer = Buffer.allocUnsafe(8192); bytesRead = tryReadSync(fd, isUserFd, buffer, 0, 8192); if (bytesRead !== 0) { buffers.push(buffer.slice(0, bytesRead)); } pos += bytesRead; } while (bytesRead !== 0); } if (!isUserFd) fs.closeSync(fd); if (size === 0) { // data was collected into the buffers list. buffer = Buffer.concat(buffers, pos); } else if (pos < size) { buffer = buffer.slice(0, pos); } if (options.encoding) buffer = buffer.toString(options.encoding); return buffer; } function close(fd, callback) { validateUint32(fd, 'fd'); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.close(fd, req); } function closeSync(fd) { validateUint32(fd, 'fd'); const ctx = {}; binding.close(fd, undefined, ctx); handleErrorFromBinding(ctx); } function open(path, flags, mode, callback) { path = toPathIfFileURL(path); validatePath(path); const flagsNumber = stringToFlags(flags); if (typeof mode === 'function') { callback = makeCallback(mode); mode = 0o666; } else { mode = validateMode(mode, 'mode', 0o666); callback = makeCallback(callback); } const req = new FSReqWrap(); req.oncomplete = callback; binding.open(pathModule.toNamespacedPath(path), flagsNumber, mode, req); } function openSync(path, flags, mode) { path = toPathIfFileURL(path); validatePath(path); const flagsNumber = stringToFlags(flags); mode = validateMode(mode, 'mode', 0o666); const ctx = { path }; const result = binding.open(pathModule.toNamespacedPath(path), flagsNumber, mode, undefined, ctx); handleErrorFromBinding(ctx); return result; } function read(fd, buffer, offset, length, position, callback) { validateUint32(fd, 'fd'); validateBuffer(buffer); offset |= 0; length |= 0; if (length === 0) { return process.nextTick(function tick() { callback && callback(null, 0, buffer); }); } validateOffsetLengthRead(offset, length, buffer.byteLength); if (!Number.isSafeInteger(position)) position = -1; function wrapper(err, bytesRead) { // Retain a reference to buffer so that it can't be GC'ed too soon. callback && callback(err, bytesRead || 0, buffer); } const req = new FSReqWrap(); req.oncomplete = wrapper; binding.read(fd, buffer, offset, length, position, req); } Object.defineProperty(read, internalUtil.customPromisifyArgs, { value: ['bytesRead', 'buffer'], enumerable: false }); function readSync(fd, buffer, offset, length, position) { validateUint32(fd, 'fd'); validateBuffer(buffer); offset |= 0; length |= 0; if (length === 0) { return 0; } validateOffsetLengthRead(offset, length, buffer.byteLength); if (!Number.isSafeInteger(position)) position = -1; const ctx = {}; const result = binding.read(fd, buffer, offset, length, position, undefined, ctx); handleErrorFromBinding(ctx); return result; } // usage: // fs.write(fd, buffer[, offset[, length[, position]]], callback); // OR // fs.write(fd, string[, position[, encoding]], callback); function write(fd, buffer, offset, length, position, callback) { function wrapper(err, written) { // Retain a reference to buffer so that it can't be GC'ed too soon. callback(err, written || 0, buffer); } validateUint32(fd, 'fd'); const req = new FSReqWrap(); req.oncomplete = wrapper; if (isArrayBufferView(buffer)) { callback = maybeCallback(callback || position || length || offset); if (typeof offset !== 'number') offset = 0; if (typeof length !== 'number') length = buffer.length - offset; if (typeof position !== 'number') position = null; validateOffsetLengthWrite(offset, length, buffer.byteLength); return binding.writeBuffer(fd, buffer, offset, length, position, req); } if (typeof buffer !== 'string') buffer += ''; if (typeof position !== 'function') { if (typeof offset === 'function') { position = offset; offset = null; } else { position = length; } length = 'utf8'; } callback = maybeCallback(position); return binding.writeString(fd, buffer, offset, length, req); } Object.defineProperty(write, internalUtil.customPromisifyArgs, { value: ['bytesWritten', 'buffer'], enumerable: false }); // usage: // fs.writeSync(fd, buffer[, offset[, length[, position]]]); // OR // fs.writeSync(fd, string[, position[, encoding]]); function writeSync(fd, buffer, offset, length, position) { validateUint32(fd, 'fd'); const ctx = {}; let result; if (isArrayBufferView(buffer)) { if (position === undefined) position = null; if (typeof offset !== 'number') offset = 0; if (typeof length !== 'number') length = buffer.byteLength - offset; validateOffsetLengthWrite(offset, length, buffer.byteLength); result = binding.writeBuffer(fd, buffer, offset, length, position, undefined, ctx); } else { if (typeof buffer !== 'string') buffer += ''; if (offset === undefined) offset = null; result = binding.writeString(fd, buffer, offset, length, undefined, ctx); } handleErrorFromBinding(ctx); return result; } function rename(oldPath, newPath, callback) { callback = makeCallback(callback); oldPath = toPathIfFileURL(oldPath); validatePath(oldPath, 'oldPath'); newPath = toPathIfFileURL(newPath); validatePath(newPath, 'newPath'); const req = new FSReqWrap(); req.oncomplete = callback; binding.rename(pathModule.toNamespacedPath(oldPath), pathModule.toNamespacedPath(newPath), req); } function renameSync(oldPath, newPath) { oldPath = toPathIfFileURL(oldPath); validatePath(oldPath, 'oldPath'); newPath = toPathIfFileURL(newPath); validatePath(newPath, 'newPath'); const ctx = { path: oldPath, dest: newPath }; binding.rename(pathModule.toNamespacedPath(oldPath), pathModule.toNamespacedPath(newPath), undefined, ctx); handleErrorFromBinding(ctx); } function truncate(path, len, callback) { if (typeof path === 'number') { showTruncateDeprecation(); return fs.ftruncate(path, len, callback); } if (typeof len === 'function') { callback = len; len = 0; } else if (len === undefined) { len = 0; } validateInteger(len, 'len'); callback = maybeCallback(callback); fs.open(path, 'r+', function(er, fd) { if (er) return callback(er); const req = new FSReqWrap(); req.oncomplete = function oncomplete(er) { fs.close(fd, function(er2) { callback(er || er2); }); }; binding.ftruncate(fd, len, req); }); } function truncateSync(path, len) { if (typeof path === 'number') { // legacy showTruncateDeprecation(); return fs.ftruncateSync(path, len); } if (len === undefined) { len = 0; } // allow error to be thrown, but still close fd. const fd = fs.openSync(path, 'r+'); let ret; try { ret = fs.ftruncateSync(fd, len); } finally { fs.closeSync(fd); } return ret; } function ftruncate(fd, len = 0, callback) { if (typeof len === 'function') { callback = len; len = 0; } validateUint32(fd, 'fd'); validateInteger(len, 'len'); len = Math.max(0, len); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.ftruncate(fd, len, req); } function ftruncateSync(fd, len = 0) { validateUint32(fd, 'fd'); validateInteger(len, 'len'); len = Math.max(0, len); const ctx = {}; binding.ftruncate(fd, len, undefined, ctx); handleErrorFromBinding(ctx); } function rmdir(path, callback) { callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; binding.rmdir(pathModule.toNamespacedPath(path), req); } function rmdirSync(path) { path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.rmdir(pathModule.toNamespacedPath(path), undefined, ctx); handleErrorFromBinding(ctx); } function fdatasync(fd, callback) { validateUint32(fd, 'fd'); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.fdatasync(fd, req); } function fdatasyncSync(fd) { validateUint32(fd, 'fd'); const ctx = {}; binding.fdatasync(fd, undefined, ctx); handleErrorFromBinding(ctx); } function fsync(fd, callback) { validateUint32(fd, 'fd'); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.fsync(fd, req); } function fsyncSync(fd) { validateUint32(fd, 'fd'); const ctx = {}; binding.fsync(fd, undefined, ctx); handleErrorFromBinding(ctx); } function mkdir(path, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } else if (typeof options === 'number' || typeof options === 'string') { options = { mode: options }; } const { recursive = false, mode = 0o777 } = options || {}; callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); if (typeof recursive !== 'boolean') throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); const req = new FSReqWrap(); req.oncomplete = callback; binding.mkdir(pathModule.toNamespacedPath(path), validateMode(mode, 'mode', 0o777), recursive, req); } function mkdirSync(path, options) { if (typeof options === 'number' || typeof options === 'string') { options = { mode: options }; } path = toPathIfFileURL(path); const { recursive = false, mode = 0o777 } = options || {}; validatePath(path); if (typeof recursive !== 'boolean') throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); const ctx = { path }; binding.mkdir(pathModule.toNamespacedPath(path), validateMode(mode, 'mode', 0o777), recursive, undefined, ctx); handleErrorFromBinding(ctx); } function readdir(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); if (!options.withFileTypes) { req.oncomplete = callback; } else { req.oncomplete = (err, result) => { if (err) { callback(err); return; } getDirents(path, result, callback); }; } binding.readdir(pathModule.toNamespacedPath(path), options.encoding, !!options.withFileTypes, req); } function readdirSync(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const result = binding.readdir(pathModule.toNamespacedPath(path), options.encoding, !!options.withFileTypes, undefined, ctx); handleErrorFromBinding(ctx); return options.withFileTypes ? getDirents(path, result) : result; } function fstat(fd, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } validateUint32(fd, 'fd'); const req = new FSReqWrap(options.bigint); req.oncomplete = makeStatsCallback(callback); binding.fstat(fd, options.bigint, req); } function lstat(path, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } callback = makeStatsCallback(callback); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(options.bigint); req.oncomplete = callback; binding.lstat(pathModule.toNamespacedPath(path), options.bigint, req); } function stat(path, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } callback = makeStatsCallback(callback); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(options.bigint); req.oncomplete = callback; binding.stat(pathModule.toNamespacedPath(path), options.bigint, req); } function fstatSync(fd, options = {}) { validateUint32(fd, 'fd'); const ctx = { fd }; const stats = binding.fstat(fd, options.bigint, undefined, ctx); handleErrorFromBinding(ctx); return getStatsFromBinding(stats); } function lstatSync(path, options = {}) { path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const stats = binding.lstat(pathModule.toNamespacedPath(path), options.bigint, undefined, ctx); handleErrorFromBinding(ctx); return getStatsFromBinding(stats); } function statSync(path, options = {}) { path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const stats = binding.stat(pathModule.toNamespacedPath(path), options.bigint, undefined, ctx); handleErrorFromBinding(ctx); return getStatsFromBinding(stats); } function readlink(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path, 'oldPath'); const req = new FSReqWrap(); req.oncomplete = callback; binding.readlink(pathModule.toNamespacedPath(path), options.encoding, req); } function readlinkSync(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path, 'oldPath'); const ctx = { path }; const result = binding.readlink(pathModule.toNamespacedPath(path), options.encoding, undefined, ctx); handleErrorFromBinding(ctx); return result; } function symlink(target, path, type_, callback_) { const type = (typeof type_ === 'string' ? type_ : null); const callback = makeCallback(arguments[arguments.length - 1]); target = toPathIfFileURL(target); path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); const flags = stringToSymlinkType(type); const req = new FSReqWrap(); req.oncomplete = callback; binding.symlink(preprocessSymlinkDestination(target, type, path), pathModule.toNamespacedPath(path), flags, req); } function symlinkSync(target, path, type) { type = (typeof type === 'string' ? type : null); target = toPathIfFileURL(target); path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); const flags = stringToSymlinkType(type); const ctx = { path: target, dest: path }; binding.symlink(preprocessSymlinkDestination(target, type, path), pathModule.toNamespacedPath(path), flags, undefined, ctx); handleErrorFromBinding(ctx); } function link(existingPath, newPath, callback) { callback = makeCallback(callback); existingPath = toPathIfFileURL(existingPath); newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); const req = new FSReqWrap(); req.oncomplete = callback; binding.link(pathModule.toNamespacedPath(existingPath), pathModule.toNamespacedPath(newPath), req); } function linkSync(existingPath, newPath) { existingPath = toPathIfFileURL(existingPath); newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); const ctx = { path: existingPath, dest: newPath }; const result = binding.link(pathModule.toNamespacedPath(existingPath), pathModule.toNamespacedPath(newPath), undefined, ctx); handleErrorFromBinding(ctx); return result; } function unlink(path, callback) { callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; binding.unlink(pathModule.toNamespacedPath(path), req); } function unlinkSync(path) { path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.unlink(pathModule.toNamespacedPath(path), undefined, ctx); handleErrorFromBinding(ctx); } function fchmod(fd, mode, callback) { validateInt32(fd, 'fd', 0); mode = validateMode(mode, 'mode'); callback = makeCallback(callback); const req = new FSReqWrap(); req.oncomplete = callback; binding.fchmod(fd, mode, req); } function fchmodSync(fd, mode) { validateInt32(fd, 'fd', 0); mode = validateMode(mode, 'mode'); const ctx = {}; binding.fchmod(fd, mode, undefined, ctx); handleErrorFromBinding(ctx); } function lchmod(path, mode, callback) { callback = maybeCallback(callback); fs.open(path, O_WRONLY | O_SYMLINK, function(err, fd) { if (err) { callback(err); return; } // Prefer to return the chmod error, if one occurs, // but still try to close, and report closing errors if they occur. fs.fchmod(fd, mode, function(err) { fs.close(fd, function(err2) { callback(err || err2); }); }); }); } function lchmodSync(path, mode) { const fd = fs.openSync(path, O_WRONLY | O_SYMLINK); // Prefer to return the chmod error, if one occurs, // but still try to close, and report closing errors if they occur. let ret; try { ret = fs.fchmodSync(fd, mode); } finally { fs.closeSync(fd); } return ret; } function chmod(path, mode, callback) { path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); callback = makeCallback(callback); const req = new FSReqWrap(); req.oncomplete = callback; binding.chmod(pathModule.toNamespacedPath(path), mode, req); } function chmodSync(path, mode) { path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); const ctx = { path }; binding.chmod(pathModule.toNamespacedPath(path), mode, undefined, ctx); handleErrorFromBinding(ctx); } function lchown(path, uid, gid, callback) { callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const req = new FSReqWrap(); req.oncomplete = callback; binding.lchown(pathModule.toNamespacedPath(path), uid, gid, req); } function lchownSync(path, uid, gid) { path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const ctx = { path }; binding.lchown(pathModule.toNamespacedPath(path), uid, gid, undefined, ctx); handleErrorFromBinding(ctx); } function fchown(fd, uid, gid, callback) { validateUint32(fd, 'fd'); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.fchown(fd, uid, gid, req); } function fchownSync(fd, uid, gid) { validateUint32(fd, 'fd'); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const ctx = {}; binding.fchown(fd, uid, gid, undefined, ctx); handleErrorFromBinding(ctx); } function chown(path, uid, gid, callback) { callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const req = new FSReqWrap(); req.oncomplete = callback; binding.chown(pathModule.toNamespacedPath(path), uid, gid, req); } function chownSync(path, uid, gid) { path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); const ctx = { path }; binding.chown(pathModule.toNamespacedPath(path), uid, gid, undefined, ctx); handleErrorFromBinding(ctx); } function utimes(path, atime, mtime, callback) { callback = makeCallback(callback); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; binding.utimes(pathModule.toNamespacedPath(path), toUnixTimestamp(atime), toUnixTimestamp(mtime), req); } function utimesSync(path, atime, mtime) { path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.utimes(pathModule.toNamespacedPath(path), toUnixTimestamp(atime), toUnixTimestamp(mtime), undefined, ctx); handleErrorFromBinding(ctx); } function futimes(fd, atime, mtime, callback) { validateUint32(fd, 'fd'); atime = toUnixTimestamp(atime, 'atime'); mtime = toUnixTimestamp(mtime, 'mtime'); const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.futimes(fd, atime, mtime, req); } function futimesSync(fd, atime, mtime) { validateUint32(fd, 'fd'); atime = toUnixTimestamp(atime, 'atime'); mtime = toUnixTimestamp(mtime, 'mtime'); const ctx = {}; binding.futimes(fd, atime, mtime, undefined, ctx); handleErrorFromBinding(ctx); } function writeAll(fd, isUserFd, buffer, offset, length, position, callback) { // write(fd, buffer, offset, length, position, callback) fs.write(fd, buffer, offset, length, position, function(writeErr, written) { if (writeErr) { if (isUserFd) { callback(writeErr); } else { fs.close(fd, function close() { callback(writeErr); }); } } else if (written === length) { if (isUserFd) { callback(null); } else { fs.close(fd, callback); } } else { offset += written; length -= written; if (position !== null) { position += written; } writeAll(fd, isUserFd, buffer, offset, length, position, callback); } }); } function writeFile(path, data, options, callback) { callback = maybeCallback(callback || options); options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'w' }); const flag = options.flag || 'w'; if (isFd(path)) { writeFd(path, true); return; } fs.open(path, flag, options.mode, function(openErr, fd) { if (openErr) { callback(openErr); } else { writeFd(fd, false); } }); function writeFd(fd, isUserFd) { const buffer = isArrayBufferView(data) ? data : Buffer.from('' + data, options.encoding || 'utf8'); const position = /a/.test(flag) ? null : 0; writeAll(fd, isUserFd, buffer, 0, buffer.byteLength, position, callback); } } function writeFileSync(path, data, options) { options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'w' }); const flag = options.flag || 'w'; const isUserFd = isFd(path); // file descriptor ownership const fd = isUserFd ? path : fs.openSync(path, flag, options.mode); if (!isArrayBufferView(data)) { data = Buffer.from('' + data, options.encoding || 'utf8'); } let offset = 0; let length = data.byteLength; let position = /a/.test(flag) ? null : 0; try { while (length > 0) { const written = fs.writeSync(fd, data, offset, length, position); offset += written; length -= written; if (position !== null) { position += written; } } } finally { if (!isUserFd) fs.closeSync(fd); } } function appendFile(path, data, options, callback) { callback = maybeCallback(callback || options); options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'a' }); // Don't make changes directly on options object options = copyObject(options); // force append behavior when using a supplied file descriptor if (!options.flag || isFd(path)) options.flag = 'a'; fs.writeFile(path, data, options, callback); } function appendFileSync(path, data, options) { options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'a' }); // Don't make changes directly on options object options = copyObject(options); // force append behavior when using a supplied file descriptor if (!options.flag || isFd(path)) options.flag = 'a'; fs.writeFileSync(path, data, options); } function watch(filename, options, listener) { if (typeof options === 'function') { listener = options; } options = getOptions(options, {}); // Don't make changes directly on options object options = copyObject(options); if (options.persistent === undefined) options.persistent = true; if (options.recursive === undefined) options.recursive = false; if (!watchers) watchers = require('internal/fs/watchers'); const watcher = new watchers.FSWatcher(); watcher.start(filename, options.persistent, options.recursive, options.encoding); if (listener) { watcher.addListener('change', listener); } return watcher; } const statWatchers = new Map(); function watchFile(filename, options, listener) { filename = toPathIfFileURL(filename); validatePath(filename); filename = pathModule.resolve(filename); let stat; const defaults = { // Poll interval in milliseconds. 5007 is what libev used to use. It's // a little on the slow side but let's stick with it for now to keep // behavioral changes to a minimum. interval: 5007, persistent: true }; if (options !== null && typeof options === 'object') { options = _extend(defaults, options); } else { listener = options; options = defaults; } if (typeof listener !== 'function') { throw new ERR_INVALID_ARG_TYPE('listener', 'Function', listener); } stat = statWatchers.get(filename); if (stat === undefined) { if (!watchers) watchers = require('internal/fs/watchers'); stat = new watchers.StatWatcher(options.bigint); stat.start(filename, options.persistent, options.interval); statWatchers.set(filename, stat); } stat.addListener('change', listener); return stat; } function unwatchFile(filename, listener) { filename = toPathIfFileURL(filename); validatePath(filename); filename = pathModule.resolve(filename); const stat = statWatchers.get(filename); if (stat === undefined) return; if (typeof listener === 'function') { stat.removeListener('change', listener); } else { stat.removeAllListeners('change'); } if (stat.listenerCount('change') === 0) { stat.stop(); statWatchers.delete(filename); } } let splitRoot; if (isWindows) { // Regex to find the device root on Windows (e.g. 'c:\\'), including trailing // slash. const splitRootRe = /^(?:[a-zA-Z]:|[\\/]{2}[^\\/]+[\\/][^\\/]+)?[\\/]*/; splitRoot = function splitRoot(str) { return splitRootRe.exec(str)[0]; }; } else { splitRoot = function splitRoot(str) { for (var i = 0; i < str.length; ++i) { if (str.charCodeAt(i) !== CHAR_FORWARD_SLASH) return str.slice(0, i); } return str; }; } function encodeRealpathResult(result, options) { if (!options || !options.encoding || options.encoding === 'utf8') return result; const asBuffer = Buffer.from(result); if (options.encoding === 'buffer') { return asBuffer; } else { return asBuffer.toString(options.encoding); } } // Finds the next portion of a (partial) path, up to the next path delimiter let nextPart; if (isWindows) { nextPart = function nextPart(p, i) { for (; i < p.length; ++i) { const ch = p.charCodeAt(i); // Check for a separator character if (ch === CHAR_BACKWARD_SLASH || ch === CHAR_FORWARD_SLASH) return i; } return -1; }; } else { nextPart = function nextPart(p, i) { return p.indexOf('/', i); }; } const emptyObj = Object.create(null); function realpathSync(p, options) { if (!options) options = emptyObj; else options = getOptions(options, emptyObj); p = toPathIfFileURL(p); if (typeof p !== 'string') { p += ''; } validatePath(p); p = pathModule.resolve(p); const cache = options[realpathCacheKey]; const maybeCachedResult = cache && cache.get(p); if (maybeCachedResult) { return maybeCachedResult; } const seenLinks = Object.create(null); const knownHard = Object.create(null); const original = p; // current character position in p let pos; // the partial path so far, including a trailing slash if any let current; // the partial path without a trailing slash (except when pointing at a root) let base; // the partial path scanned in the previous round, with slash let previous; // Skip over roots current = base = splitRoot(p); pos = current.length; // On windows, check that the root exists. On unix there is no need. if (isWindows && !knownHard[base]) { const ctx = { path: base }; binding.lstat(pathModule.toNamespacedPath(base), false, undefined, ctx); handleErrorFromBinding(ctx); knownHard[base] = true; } // walk down the path, swapping out linked path parts for their real // values // NB: p.length changes. while (pos < p.length) { // find the next part const result = nextPart(p, pos); previous = current; if (result === -1) { const last = p.slice(pos); current += last; base = previous + last; pos = p.length; } else { current += p.slice(pos, result + 1); base = previous + p.slice(pos, result); pos = result + 1; } // continue if not a symlink, break if a pipe/socket if (knownHard[base] || (cache && cache.get(base) === base)) { if (isFileType(statValues, S_IFIFO) || isFileType(statValues, S_IFSOCK)) { break; } continue; } let resolvedLink; const maybeCachedResolved = cache && cache.get(base); if (maybeCachedResolved) { resolvedLink = maybeCachedResolved; } else { // Use stats array directly to avoid creating an fs.Stats instance just // for our internal use. const baseLong = pathModule.toNamespacedPath(base); const ctx = { path: base }; const stats = binding.lstat(baseLong, false, undefined, ctx); handleErrorFromBinding(ctx); if (!isFileType(stats, S_IFLNK)) { knownHard[base] = true; if (cache) cache.set(base, base); continue; } // read the link if it wasn't read before // dev/ino always return 0 on windows, so skip the check. let linkTarget = null; let id; if (!isWindows) { const dev = stats[0].toString(32); const ino = stats[7].toString(32); id = `${dev}:${ino}`; if (seenLinks[id]) { linkTarget = seenLinks[id]; } } if (linkTarget === null) { const ctx = { path: base }; binding.stat(baseLong, false, undefined, ctx); handleErrorFromBinding(ctx); linkTarget = binding.readlink(baseLong, undefined, undefined, ctx); handleErrorFromBinding(ctx); } resolvedLink = pathModule.resolve(previous, linkTarget); if (cache) cache.set(base, resolvedLink); if (!isWindows) seenLinks[id] = linkTarget; } // resolve the link, then start over p = pathModule.resolve(resolvedLink, p.slice(pos)); // Skip over roots current = base = splitRoot(p); pos = current.length; // On windows, check that the root exists. On unix there is no need. if (isWindows && !knownHard[base]) { const ctx = { path: base }; binding.lstat(pathModule.toNamespacedPath(base), false, undefined, ctx); handleErrorFromBinding(ctx); knownHard[base] = true; } } if (cache) cache.set(original, p); return encodeRealpathResult(p, options); } realpathSync.native = function(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const result = binding.realpath(path, options.encoding, undefined, ctx); handleErrorFromBinding(ctx); return result; }; function realpath(p, options, callback) { callback = maybeCallback(typeof options === 'function' ? options : callback); if (!options) options = emptyObj; else options = getOptions(options, emptyObj); p = toPathIfFileURL(p); if (typeof p !== 'string') { p += ''; } validatePath(p); p = pathModule.resolve(p); const seenLinks = Object.create(null); const knownHard = Object.create(null); // current character position in p let pos; // the partial path so far, including a trailing slash if any let current; // the partial path without a trailing slash (except when pointing at a root) let base; // the partial path scanned in the previous round, with slash let previous; current = base = splitRoot(p); pos = current.length; // On windows, check that the root exists. On unix there is no need. if (isWindows && !knownHard[base]) { fs.lstat(base, function(err, stats) { if (err) return callback(err); knownHard[base] = true; LOOP(); }); } else { process.nextTick(LOOP); } // walk down the path, swapping out linked path parts for their real // values function LOOP() { // stop if scanned past end of path if (pos >= p.length) { return callback(null, encodeRealpathResult(p, options)); } // find the next part const result = nextPart(p, pos); previous = current; if (result === -1) { const last = p.slice(pos); current += last; base = previous + last; pos = p.length; } else { current += p.slice(pos, result + 1); base = previous + p.slice(pos, result); pos = result + 1; } // continue if not a symlink, break if a pipe/socket if (knownHard[base]) { if (isFileType(statValues, S_IFIFO) || isFileType(statValues, S_IFSOCK)) { return callback(null, encodeRealpathResult(p, options)); } return process.nextTick(LOOP); } return fs.lstat(base, gotStat); } function gotStat(err, stats) { if (err) return callback(err); // if not a symlink, skip to the next path part if (!stats.isSymbolicLink()) { knownHard[base] = true; return process.nextTick(LOOP); } // stat & read the link if not read before // call gotTarget as soon as the link target is known // dev/ino always return 0 on windows, so skip the check. let id; if (!isWindows) { const dev = stats.dev.toString(32); const ino = stats.ino.toString(32); id = `${dev}:${ino}`; if (seenLinks[id]) { return gotTarget(null, seenLinks[id], base); } } fs.stat(base, function(err) { if (err) return callback(err); fs.readlink(base, function(err, target) { if (!isWindows) seenLinks[id] = target; gotTarget(err, target); }); }); } function gotTarget(err, target, base) { if (err) return callback(err); gotResolvedLink(pathModule.resolve(previous, target)); } function gotResolvedLink(resolvedLink) { // resolve the link, then start over p = pathModule.resolve(resolvedLink, p.slice(pos)); current = base = splitRoot(p); pos = current.length; // On windows, check that the root exists. On unix there is no need. if (isWindows && !knownHard[base]) { fs.lstat(base, function(err) { if (err) return callback(err); knownHard[base] = true; LOOP(); }); } else { process.nextTick(LOOP); } } } realpath.native = function(path, options, callback) { callback = makeCallback(callback || options); options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; return binding.realpath(path, options.encoding, req); }; function mkdtemp(prefix, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); options = getOptions(options, {}); if (!prefix || typeof prefix !== 'string') { throw new ERR_INVALID_ARG_TYPE('prefix', 'string', prefix); } nullCheck(prefix, 'prefix'); const req = new FSReqWrap(); req.oncomplete = callback; binding.mkdtemp(`${prefix}XXXXXX`, options.encoding, req); } function mkdtempSync(prefix, options) { options = getOptions(options, {}); if (!prefix || typeof prefix !== 'string') { throw new ERR_INVALID_ARG_TYPE('prefix', 'string', prefix); } nullCheck(prefix, 'prefix'); const path = `${prefix}XXXXXX`; const ctx = { path }; const result = binding.mkdtemp(path, options.encoding, undefined, ctx); handleErrorFromBinding(ctx); return result; } function copyFile(src, dest, flags, callback) { if (typeof flags === 'function') { callback = flags; flags = 0; } else if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } src = toPathIfFileURL(src); dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); src = pathModule._makeLong(src); dest = pathModule._makeLong(dest); flags = flags | 0; const req = new FSReqWrap(); req.oncomplete = makeCallback(callback); binding.copyFile(src, dest, flags, req); } function copyFileSync(src, dest, flags) { src = toPathIfFileURL(src); dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); const ctx = { path: src, dest }; // non-prefixed src = pathModule._makeLong(src); dest = pathModule._makeLong(dest); flags = flags | 0; binding.copyFile(src, dest, flags, undefined, ctx); handleErrorFromBinding(ctx); } function createReadStream(path, options) { return new ReadStream(path, options); } function createWriteStream(path, options) { return new WriteStream(path, options); } module.exports = fs = { appendFile, appendFileSync, access, accessSync, chown, chownSync, chmod, chmodSync, close, closeSync, copyFile, copyFileSync, createReadStream, createWriteStream, exists, existsSync, fchown, fchownSync, fchmod, fchmodSync, fdatasync, fdatasyncSync, fstat, fstatSync, fsync, fsyncSync, ftruncate, ftruncateSync, futimes, futimesSync, lchown, lchownSync, lchmod: constants.O_SYMLINK !== undefined ? lchmod : undefined, lchmodSync: constants.O_SYMLINK !== undefined ? lchmodSync : undefined, link, linkSync, lstat, lstatSync, mkdir, mkdirSync, mkdtemp, mkdtempSync, open, openSync, readdir, readdirSync, read, readSync, readFile, readFileSync, readlink, readlinkSync, realpath, realpathSync, rename, renameSync, rmdir, rmdirSync, stat, statSync, symlink, symlinkSync, truncate, truncateSync, unwatchFile, unlink, unlinkSync, utimes, utimesSync, watch, watchFile, writeFile, writeFileSync, write, writeSync, Dirent, Stats, // Stream constructors ReadStream, WriteStream, // Legacy names... FileReadStream: ReadStream, FileWriteStream: WriteStream, // For tests _toUnixTimestamp: toUnixTimestamp }; Object.defineProperties(fs, { F_OK: { enumerable: true, value: F_OK || 0 }, R_OK: { enumerable: true, value: R_OK || 0 }, W_OK: { enumerable: true, value: W_OK || 0 }, X_OK: { enumerable: true, value: X_OK || 0 }, constants: { configurable: false, enumerable: true, value: constants }, promises: { configurable: true, enumerable: false, get() { if (promisesWarn) { promises = require('internal/fs/promises'); promisesWarn = false; process.emitWarning('The fs.promises API is experimental', 'ExperimentalWarning'); } return promises; } } }); // SyncWriteStream is internal. DO NOT USE. // This undocumented API was never intended to be made public. var SyncWriteStream = internalFS.SyncWriteStream; Object.defineProperty(fs, 'SyncWriteStream', { configurable: true, get: internalUtil.deprecate(() => SyncWriteStream, 'fs.SyncWriteStream is deprecated.', 'DEP0061'), set: internalUtil.deprecate((val) => { SyncWriteStream = val; }, 'fs.SyncWriteStream is deprecated.', 'DEP0061') }); http// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { Agent, globalAgent } = require('_http_agent'); const { ClientRequest } = require('_http_client'); const { methods } = require('_http_common'); const { IncomingMessage } = require('_http_incoming'); const { OutgoingMessage } = require('_http_outgoing'); const { _connectionListener, STATUS_CODES, Server, ServerResponse } = require('_http_server'); let maxHeaderSize; function createServer(opts, requestListener) { return new Server(opts, requestListener); } function request(url, options, cb) { return new ClientRequest(url, options, cb); } function get(url, options, cb) { var req = request(url, options, cb); req.end(); return req; } module.exports = { _connectionListener, METHODS: methods.slice().sort(), STATUS_CODES, Agent, ClientRequest, globalAgent, IncomingMessage, OutgoingMessage, Server, ServerResponse, createServer, get, request }; Object.defineProperty(module.exports, 'maxHeaderSize', { configurable: true, enumerable: true, get() { if (maxHeaderSize === undefined) { const { getOptionValue } = require('internal/options'); maxHeaderSize = getOptionValue('--max-http-header-size'); } return maxHeaderSize; } }); http2'use strict'; const { connect, constants, createServer, createSecureServer, getDefaultSettings, getPackedSettings, getUnpackedSettings, Http2ServerRequest, Http2ServerResponse } = require('internal/http2/core'); module.exports = { connect, constants, createServer, createSecureServer, getDefaultSettings, getPackedSettings, getUnpackedSettings, Http2ServerRequest, Http2ServerResponse }; _http_agent// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const net = require('net'); const util = require('util'); const EventEmitter = require('events'); const debug = util.debuglog('http'); const { async_id_symbol } = require('internal/async_hooks').symbols; // New Agent code. // The largest departure from the previous implementation is that // an Agent instance holds connections for a variable number of host:ports. // Surprisingly, this is still API compatible as far as third parties are // concerned. The only code that really notices the difference is the // request object. // Another departure is that all code related to HTTP parsing is in // ClientRequest.onSocket(). The Agent is now *strictly* // concerned with managing a connection pool. function Agent(options) { if (!(this instanceof Agent)) return new Agent(options); EventEmitter.call(this); this.defaultPort = 80; this.protocol = 'http:'; this.options = util._extend({}, options); // don't confuse net and make it think that we're connecting to a pipe this.options.path = null; this.requests = {}; this.sockets = {}; this.freeSockets = {}; this.keepAliveMsecs = this.options.keepAliveMsecs || 1000; this.keepAlive = this.options.keepAlive || false; this.maxSockets = this.options.maxSockets || Agent.defaultMaxSockets; this.maxFreeSockets = this.options.maxFreeSockets || 256; this.on('free', (socket, options) => { var name = this.getName(options); debug('agent.on(free)', name); if (socket.writable && this.requests[name] && this.requests[name].length) { const req = this.requests[name].shift(); setRequestSocket(this, req, socket); if (this.requests[name].length === 0) { // don't leak delete this.requests[name]; } } else { // If there are no pending requests, then put it in // the freeSockets pool, but only if we're allowed to do so. var req = socket._httpMessage; if (req && req.shouldKeepAlive && socket.writable && this.keepAlive) { var freeSockets = this.freeSockets[name]; var freeLen = freeSockets ? freeSockets.length : 0; var count = freeLen; if (this.sockets[name]) count += this.sockets[name].length; if (count > this.maxSockets || freeLen >= this.maxFreeSockets) { socket.destroy(); } else if (this.keepSocketAlive(socket)) { freeSockets = freeSockets || []; this.freeSockets[name] = freeSockets; socket[async_id_symbol] = -1; socket._httpMessage = null; this.removeSocket(socket, options); freeSockets.push(socket); } else { // Implementation doesn't want to keep socket alive socket.destroy(); } } else { socket.destroy(); } } }); } util.inherits(Agent, EventEmitter); Agent.defaultMaxSockets = Infinity; Agent.prototype.createConnection = net.createConnection; // Get the key for a given set of request options Agent.prototype.getName = function getName(options) { var name = options.host || 'localhost'; name += ':'; if (options.port) name += options.port; name += ':'; if (options.localAddress) name += options.localAddress; // Pacify parallel/test-http-agent-getname by only appending // the ':' when options.family is set. if (options.family === 4 || options.family === 6) name += `:${options.family}`; if (options.socketPath) name += `:${options.socketPath}`; return name; }; Agent.prototype.addRequest = function addRequest(req, options, port/* legacy */, localAddress/* legacy */) { // Legacy API: addRequest(req, host, port, localAddress) if (typeof options === 'string') { options = { host: options, port, localAddress }; } options = util._extend({}, options); util._extend(options, this.options); if (options.socketPath) options.path = options.socketPath; if (!options.servername) options.servername = calculateServerName(options, req); var name = this.getName(options); if (!this.sockets[name]) { this.sockets[name] = []; } var freeLen = this.freeSockets[name] ? this.freeSockets[name].length : 0; var sockLen = freeLen + this.sockets[name].length; if (freeLen) { // we have a free socket, so use that. var socket = this.freeSockets[name].shift(); // Guard against an uninitialized or user supplied Socket. if (socket._handle && typeof socket._handle.asyncReset === 'function') { // Assign the handle a new asyncId and run any destroy()/init() hooks. socket._handle.asyncReset(); socket[async_id_symbol] = socket._handle.getAsyncId(); } // don't leak if (!this.freeSockets[name].length) delete this.freeSockets[name]; this.reuseSocket(socket, req); setRequestSocket(this, req, socket); this.sockets[name].push(socket); } else if (sockLen < this.maxSockets) { debug('call onSocket', sockLen, freeLen); // If we are under maxSockets create a new one. this.createSocket(req, options, handleSocketCreation(this, req, true)); } else { debug('wait for socket'); // We are over limit so we'll add it to the queue. if (!this.requests[name]) { this.requests[name] = []; } this.requests[name].push(req); } }; Agent.prototype.createSocket = function createSocket(req, options, cb) { options = util._extend({}, options); util._extend(options, this.options); if (options.socketPath) options.path = options.socketPath; if (!options.servername) options.servername = calculateServerName(options, req); var name = this.getName(options); options._agentKey = name; debug('createConnection', name, options); options.encoding = null; var called = false; const oncreate = (err, s) => { if (called) return; called = true; if (err) return cb(err); if (!this.sockets[name]) { this.sockets[name] = []; } this.sockets[name].push(s); debug('sockets', name, this.sockets[name].length); installListeners(this, s, options); cb(null, s); }; const newSocket = this.createConnection(options, oncreate); if (newSocket) oncreate(null, newSocket); }; function calculateServerName(options, req) { let servername = options.host; const hostHeader = req.getHeader('host'); if (hostHeader) { // abc => abc // abc:123 => abc // [::1] => ::1 // [::1]:123 => ::1 if (hostHeader.startsWith('[')) { const index = hostHeader.indexOf(']'); if (index === -1) { // Leading '[', but no ']'. Need to do something... servername = hostHeader; } else { servername = hostHeader.substr(1, index - 1); } } else { servername = hostHeader.split(':', 1)[0]; } } return servername; } function installListeners(agent, s, options) { function onFree() { debug('CLIENT socket onFree'); agent.emit('free', s, options); } s.on('free', onFree); function onClose(err) { debug('CLIENT socket onClose'); // This is the only place where sockets get removed from the Agent. // If you want to remove a socket from the pool, just close it. // All socket errors end in a close event anyway. agent.removeSocket(s, options); } s.on('close', onClose); function onRemove() { // We need this function for cases like HTTP 'upgrade' // (defined by WebSockets) where we need to remove a socket from the // pool because it'll be locked up indefinitely debug('CLIENT socket onRemove'); agent.removeSocket(s, options); s.removeListener('close', onClose); s.removeListener('free', onFree); s.removeListener('agentRemove', onRemove); } s.on('agentRemove', onRemove); } Agent.prototype.removeSocket = function removeSocket(s, options) { var name = this.getName(options); debug('removeSocket', name, 'writable:', s.writable); var sets = [this.sockets]; // If the socket was destroyed, remove it from the free buffers too. if (!s.writable) sets.push(this.freeSockets); for (var sk = 0; sk < sets.length; sk++) { var sockets = sets[sk]; if (sockets[name]) { var index = sockets[name].indexOf(s); if (index !== -1) { sockets[name].splice(index, 1); // Don't leak if (sockets[name].length === 0) delete sockets[name]; } } } if (this.requests[name] && this.requests[name].length) { debug('removeSocket, have a request, make a socket'); const req = this.requests[name][0]; // If we have pending requests and a socket gets closed make a new one const socketCreationHandler = handleSocketCreation(this, req, false); this.createSocket(req, options, socketCreationHandler); } }; Agent.prototype.keepSocketAlive = function keepSocketAlive(socket) { socket.setKeepAlive(true, this.keepAliveMsecs); socket.unref(); return true; }; Agent.prototype.reuseSocket = function reuseSocket(socket, req) { debug('have free socket'); socket.ref(); }; Agent.prototype.destroy = function destroy() { var sets = [this.freeSockets, this.sockets]; for (var s = 0; s < sets.length; s++) { var set = sets[s]; var keys = Object.keys(set); for (var v = 0; v < keys.length; v++) { var setName = set[keys[v]]; for (var n = 0; n < setName.length; n++) { setName[n].destroy(); } } } }; function handleSocketCreation(agent, request, informRequest) { return function handleSocketCreation_Inner(err, socket) { if (err) { process.nextTick(emitErrorNT, request, err); return; } if (informRequest) setRequestSocket(agent, request, socket); else socket.emit('free'); }; } function setRequestSocket(agent, req, socket) { req.onSocket(socket); const agentTimeout = agent.options.timeout || 0; if (req.timeout === undefined || req.timeout === agentTimeout) { return; } socket.setTimeout(req.timeout); // reset timeout after response end req.once('response', (res) => { res.once('end', () => { if (socket.timeout !== agentTimeout) { socket.setTimeout(agentTimeout); } }); }); } function emitErrorNT(emitter, err) { emitter.emit('error', err); } module.exports = { Agent, globalAgent: new Agent() }; _http_client// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const util = require('util'); const net = require('net'); const url = require('url'); const { HTTPParser } = internalBinding('http_parser'); const assert = require('assert').ok; const { _checkIsHttpToken: checkIsHttpToken, debug, freeParser, httpSocketSetup, parsers } = require('_http_common'); const { OutgoingMessage } = require('_http_outgoing'); const Agent = require('_http_agent'); const { Buffer } = require('buffer'); const { defaultTriggerAsyncIdScope } = require('internal/async_hooks'); const { urlToOptions, searchParamsSymbol } = require('internal/url'); const { outHeadersKey, ondrain } = require('internal/http'); const { ERR_HTTP_HEADERS_SENT, ERR_INVALID_ARG_TYPE, ERR_INVALID_DOMAIN_NAME, ERR_INVALID_HTTP_TOKEN, ERR_INVALID_PROTOCOL, ERR_UNESCAPED_CHARACTERS } = require('internal/errors').codes; const { validateTimerDuration } = require('internal/timers'); const is_reused_symbol = require('internal/freelist').symbols.is_reused_symbol; const INVALID_PATH_REGEX = /[^\u0021-\u00ff]/; function validateHost(host, name) { if (host !== null && host !== undefined && typeof host !== 'string') { throw new ERR_INVALID_ARG_TYPE(`options.${name}`, ['string', 'undefined', 'null'], host); } return host; } function ClientRequest(input, options, cb) { OutgoingMessage.call(this); if (typeof input === 'string') { input = url.parse(input); if (!input.hostname) { throw new ERR_INVALID_DOMAIN_NAME(); } } else if (input && input[searchParamsSymbol] && input[searchParamsSymbol][searchParamsSymbol]) { // url.URL instance input = urlToOptions(input); } else { cb = options; options = input; input = null; } if (typeof options === 'function') { cb = options; options = null; } options = util._extend(input || {}, options || {}); var agent = options.agent; var defaultAgent = options._defaultAgent || Agent.globalAgent; if (agent === false) { agent = new defaultAgent.constructor(); } else if (agent === null || agent === undefined) { if (typeof options.createConnection !== 'function') { agent = defaultAgent; } // Explicitly pass through this statement as agent will not be used // when createConnection is provided. } else if (typeof agent.addRequest !== 'function') { throw new ERR_INVALID_ARG_TYPE('options.agent', ['Agent-like Object', 'undefined', 'false'], agent); } this.agent = agent; var protocol = options.protocol || defaultAgent.protocol; var expectedProtocol = defaultAgent.protocol; if (this.agent && this.agent.protocol) expectedProtocol = this.agent.protocol; var path; if (options.path) { path = String(options.path); if (INVALID_PATH_REGEX.test(path)) throw new ERR_UNESCAPED_CHARACTERS('Request path'); } if (protocol !== expectedProtocol) { throw new ERR_INVALID_PROTOCOL(protocol, expectedProtocol); } var defaultPort = options.defaultPort || this.agent && this.agent.defaultPort; var port = options.port = options.port || defaultPort || 80; var host = options.host = validateHost(options.hostname, 'hostname') || validateHost(options.host, 'host') || 'localhost'; var setHost = (options.setHost === undefined || Boolean(options.setHost)); this.socketPath = options.socketPath; this.timeout = options.timeout; var method = options.method; var methodIsString = (typeof method === 'string'); if (method !== null && method !== undefined && !methodIsString) { throw new ERR_INVALID_ARG_TYPE('method', 'string', method); } if (methodIsString && method) { if (!checkIsHttpToken(method)) { throw new ERR_INVALID_HTTP_TOKEN('Method', method); } method = this.method = method.toUpperCase(); } else { method = this.method = 'GET'; } this.path = options.path || '/'; if (cb) { this.once('response', cb); } if (method === 'GET' || method === 'HEAD' || method === 'DELETE' || method === 'OPTIONS' || method === 'CONNECT') { this.useChunkedEncodingByDefault = false; } else { this.useChunkedEncodingByDefault = true; } this._ended = false; this.res = null; this.aborted = undefined; this.timeoutCb = null; this.upgradeOrConnect = false; this.parser = null; this.maxHeadersCount = null; var called = false; if (this.agent) { // If there is an agent we should default to Connection:keep-alive, // but only if the Agent will actually reuse the connection! // If it's not a keepAlive agent, and the maxSockets==Infinity, then // there's never a case where this socket will actually be reused if (!this.agent.keepAlive && !Number.isFinite(this.agent.maxSockets)) { this._last = true; this.shouldKeepAlive = false; } else { this._last = false; this.shouldKeepAlive = true; } } var headersArray = Array.isArray(options.headers); if (!headersArray) { if (options.headers) { var keys = Object.keys(options.headers); for (var i = 0; i < keys.length; i++) { var key = keys[i]; this.setHeader(key, options.headers[key]); } } if (host && !this.getHeader('host') && setHost) { var hostHeader = host; // For the Host header, ensure that IPv6 addresses are enclosed // in square brackets, as defined by URI formatting // https://tools.ietf.org/html/rfc3986#section-3.2.2 var posColon = hostHeader.indexOf(':'); if (posColon !== -1 && hostHeader.indexOf(':', posColon + 1) !== -1 && hostHeader.charCodeAt(0) !== 91/* '[' */) { hostHeader = `[${hostHeader}]`; } if (port && +port !== defaultPort) { hostHeader += ':' + port; } this.setHeader('Host', hostHeader); } if (options.auth && !this.getHeader('Authorization')) { this.setHeader('Authorization', 'Basic ' + Buffer.from(options.auth).toString('base64')); } if (this.getHeader('expect')) { if (this._header) { throw new ERR_HTTP_HEADERS_SENT('render'); } this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\r\n', this[outHeadersKey]); } } else { this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\r\n', options.headers); } var oncreate = (err, socket) => { if (called) return; called = true; if (err) { process.nextTick(() => this.emit('error', err)); return; } this.onSocket(socket); this._deferToConnect(null, null, () => this._flush()); }; // initiate connection if (this.agent) { this.agent.addRequest(this, options); } else { // No agent, default to Connection:close. this._last = true; this.shouldKeepAlive = false; if (typeof options.createConnection === 'function') { const newSocket = options.createConnection(options, oncreate); if (newSocket && !called) { called = true; this.onSocket(newSocket); } else { return; } } else { debug('CLIENT use net.createConnection', options); this.onSocket(net.createConnection(options)); } } this._deferToConnect(null, null, () => this._flush()); } util.inherits(ClientRequest, OutgoingMessage); ClientRequest.prototype._finish = function _finish() { ; ; OutgoingMessage.prototype._finish.call(this); }; ClientRequest.prototype._implicitHeader = function _implicitHeader() { if (this._header) { throw new ERR_HTTP_HEADERS_SENT('render'); } this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\r\n', this[outHeadersKey]); }; ClientRequest.prototype.abort = function abort() { if (!this.aborted) { process.nextTick(emitAbortNT.bind(this)); } // Mark as aborting so we can avoid sending queued request data // This is used as a truthy flag elsewhere. The use of Date.now is for // debugging purposes only. this.aborted = Date.now(); // If we're aborting, we don't care about any more response data. if (this.res) { this.res._dump(); } else { this.once('response', function(res) { res._dump(); }); } // In the event that we don't have a socket, we will pop out of // the request queue through handling in onSocket. if (this.socket) { // in-progress this.socket.destroy(); } }; function emitAbortNT() { this.emit('abort'); } function createHangUpError() { // eslint-disable-next-line no-restricted-syntax var error = new Error('socket hang up'); error.code = 'ECONNRESET'; return error; } function socketCloseListener() { var socket = this; var req = socket._httpMessage; debug('HTTP socket close'); // Pull through final chunk, if anything is buffered. // the ondata function will handle it properly, and this // is a no-op if no final chunk remains. socket.read(); // NOTE: It's important to get parser here, because it could be freed by // the `socketOnData`. const parser = socket.parser; const res = req.res; if (res) { // Socket closed before we emitted 'end' below. if (!res.complete) { res.aborted = true; res.emit('aborted'); } req.emit('close'); if (res.readable) { res.on('end', function() { this.emit('close'); }); res.push(null); } else { res.emit('close'); } } else { if (!req.socket._hadError) { // This socket error fired before we started to // receive a response. The error needs to // fire on the request. req.socket._hadError = true; req.emit('error', createHangUpError()); } req.emit('close'); } // Too bad. That output wasn't getting written. // This is pretty terrible that it doesn't raise an error. // Fixed better in v0.10 if (req.output) req.output.length = 0; if (req.outputEncodings) req.outputEncodings.length = 0; if (parser) { parser.finish(); freeParser(parser, req, socket); } } function socketErrorListener(err) { var socket = this; var req = socket._httpMessage; debug('SOCKET ERROR:', err.message, err.stack); if (req) { // For Safety. Some additional errors might fire later on // and we need to make sure we don't double-fire the error event. req.socket._hadError = true; req.emit('error', err); } // Handle any pending data socket.read(); var parser = socket.parser; if (parser) { parser.finish(); freeParser(parser, req, socket); } // Ensure that no further data will come out of the socket socket.removeListener('data', socketOnData); socket.removeListener('end', socketOnEnd); socket.destroy(); } function freeSocketErrorListener(err) { var socket = this; debug('SOCKET ERROR on FREE socket:', err.message, err.stack); socket.destroy(); socket.emit('agentRemove'); } function socketOnEnd() { var socket = this; var req = this._httpMessage; var parser = this.parser; if (!req.res && !req.socket._hadError) { // If we don't have a response then we know that the socket // ended prematurely and we need to emit an error on the request. req.socket._hadError = true; req.emit('error', createHangUpError()); } if (parser) { parser.finish(); freeParser(parser, req, socket); } socket.destroy(); } function socketOnData(d) { var socket = this; var req = this._httpMessage; var parser = this.parser; assert(parser && parser.socket === socket); var ret = parser.execute(d); if (ret instanceof Error) { debug('parse error', ret); freeParser(parser, req, socket); socket.destroy(); req.socket._hadError = true; req.emit('error', ret); } else if (parser.incoming && parser.incoming.upgrade) { // Upgrade (if status code 101) or CONNECT var bytesParsed = ret; var res = parser.incoming; req.res = res; socket.removeListener('data', socketOnData); socket.removeListener('end', socketOnEnd); socket.removeListener('drain', ondrain); parser.finish(); freeParser(parser, req, socket); var bodyHead = d.slice(bytesParsed, d.length); var eventName = req.method === 'CONNECT' ? 'connect' : 'upgrade'; if (req.listenerCount(eventName) > 0) { req.upgradeOrConnect = true; // detach the socket socket.emit('agentRemove'); socket.removeListener('close', socketCloseListener); socket.removeListener('error', socketErrorListener); socket._httpMessage = null; socket.readableFlowing = null; req.emit(eventName, res, socket, bodyHead); req.emit('close'); } else { // Requested Upgrade or used CONNECT method, but have no handler. socket.destroy(); } } else if (parser.incoming && parser.incoming.complete && // When the status code is informational (100, 102-199), // the server will send a final response after this client // sends a request body, so we must not free the parser. // 101 (Switching Protocols) and all other status codes // should be processed normally. !statusIsInformational(parser.incoming.statusCode)) { socket.removeListener('data', socketOnData); socket.removeListener('end', socketOnEnd); freeParser(parser, req, socket); } } function statusIsInformational(status) { // 100 (Continue) RFC7231 Section 6.2.1 // 102 (Processing) RFC2518 // 103 (Early Hints) RFC8297 // 104-199 (Unassigned) return (status < 200 && status >= 100 && status !== 101); } // client function parserOnIncomingClient(res, shouldKeepAlive) { var socket = this.socket; var req = socket._httpMessage; debug('AGENT incoming response!'); if (req.res) { // We already have a response object, this means the server // sent a double response. socket.destroy(); return 0; // No special treatment. } req.res = res; // Skip body and treat as Upgrade. if (res.upgrade) return 2; // Responses to CONNECT request is handled as Upgrade. const method = req.method; if (method === 'CONNECT') { res.upgrade = true; return 2; // Skip body and treat as Upgrade. } if (statusIsInformational(res.statusCode)) { // Restart the parser, as this is a 1xx informational message. req.res = null; // Clear res so that we don't hit double-responses. // Maintain compatibility by sending 100-specific events if (res.statusCode === 100) { req.emit('continue'); } // Send information events to all 1xx responses except 101 Upgrade. req.emit('information', { statusCode: res.statusCode }); return 1; // Skip body but don't treat as Upgrade. } if (req.shouldKeepAlive && !shouldKeepAlive && !req.upgradeOrConnect) { // Server MUST respond with Connection:keep-alive for us to enable it. // If we've been upgraded (via WebSockets) we also shouldn't try to // keep the connection open. req.shouldKeepAlive = false; } ; ; req.res = res; res.req = req; // add our listener first, so that we guarantee socket cleanup res.on('end', responseOnEnd); req.on('prefinish', requestOnPrefinish); var handled = req.emit('response', res); // If the user did not listen for the 'response' event, then they // can't possibly read the data, so we ._dump() it into the void // so that the socket doesn't hang there in a paused state. if (!handled) res._dump(); if (method === 'HEAD') return 1; // Skip body but don't treat as Upgrade. return 0; // No special treatment. } // client function responseKeepAlive(res, req) { var socket = req.socket; if (!req.shouldKeepAlive) { if (socket.writable) { debug('AGENT socket.destroySoon()'); if (typeof socket.destroySoon === 'function') socket.destroySoon(); else socket.end(); } assert(!socket.writable); } else { debug('AGENT socket keep-alive'); if (req.timeoutCb) { socket.setTimeout(0, req.timeoutCb); req.timeoutCb = null; } socket.removeListener('close', socketCloseListener); socket.removeListener('error', socketErrorListener); socket.once('error', freeSocketErrorListener); // There are cases where _handle === null. Avoid those. Passing null to // nextTick() will call getDefaultTriggerAsyncId() to retrieve the id. const asyncId = socket._handle ? socket._handle.getAsyncId() : undefined; // Mark this socket as available, AFTER user-added end // handlers have a chance to run. defaultTriggerAsyncIdScope(asyncId, process.nextTick, emitFreeNT, socket); } } function responseOnEnd() { const res = this; const req = this.req; req._ended = true; if (!req.shouldKeepAlive || req.finished) responseKeepAlive(res, req); } function requestOnPrefinish() { const req = this; const res = this.res; if (!req.shouldKeepAlive) return; if (req._ended) responseKeepAlive(res, req); } function emitFreeNT(socket) { socket.emit('free'); } function tickOnSocket(req, socket) { var parser = parsers.alloc(); req.socket = socket; req.connection = socket; parser.reinitialize(HTTPParser.RESPONSE, parser[is_reused_symbol]); parser.socket = socket; parser.outgoing = req; req.parser = parser; socket.parser = parser; socket._httpMessage = req; // Setup "drain" propagation. httpSocketSetup(socket); // Propagate headers limit from request object to parser if (typeof req.maxHeadersCount === 'number') { parser.maxHeaderPairs = req.maxHeadersCount << 1; } parser.onIncoming = parserOnIncomingClient; socket.removeListener('error', freeSocketErrorListener); socket.on('error', socketErrorListener); socket.on('data', socketOnData); socket.on('end', socketOnEnd); socket.on('close', socketCloseListener); if (req.timeout !== undefined) { listenSocketTimeout(req); } req.emit('socket', socket); } function listenSocketTimeout(req) { if (req.timeoutCb) { return; } const emitRequestTimeout = () => req.emit('timeout'); // Set timeoutCb so it will get cleaned up on request end. req.timeoutCb = emitRequestTimeout; // Delegate socket timeout event. if (req.socket) { req.socket.once('timeout', emitRequestTimeout); } else { req.on('socket', (socket) => { socket.once('timeout', emitRequestTimeout); }); } // Remove socket timeout listener after response end. req.once('response', (res) => { res.once('end', () => { req.socket.removeListener('timeout', emitRequestTimeout); }); }); } ClientRequest.prototype.onSocket = function onSocket(socket) { process.nextTick(onSocketNT, this, socket); }; function onSocketNT(req, socket) { if (req.aborted) { // If we were aborted while waiting for a socket, skip the whole thing. if (!req.agent) { socket.destroy(); } else { socket.emit('free'); } } else { tickOnSocket(req, socket); } } ClientRequest.prototype._deferToConnect = _deferToConnect; function _deferToConnect(method, arguments_, cb) { // This function is for calls that need to happen once the socket is // connected and writable. It's an important promisy thing for all the socket // calls that happen either now (when a socket is assigned) or // in the future (when a socket gets assigned out of the pool and is // eventually writable). const callSocketMethod = () => { if (method) this.socket[method].apply(this.socket, arguments_); if (typeof cb === 'function') cb(); }; const onSocket = () => { if (this.socket.writable) { callSocketMethod(); } else { this.socket.once('connect', callSocketMethod); } }; if (!this.socket) { this.once('socket', onSocket); } else { onSocket(); } } ClientRequest.prototype.setTimeout = function setTimeout(msecs, callback) { listenSocketTimeout(this); msecs = validateTimerDuration(msecs); if (callback) this.once('timeout', callback); if (this.socket) { setSocketTimeout(this.socket, msecs); } else { this.once('socket', (sock) => setSocketTimeout(sock, msecs)); } return this; }; function setSocketTimeout(sock, msecs) { if (sock.connecting) { sock.once('connect', function() { sock.setTimeout(msecs); }); } else { sock.setTimeout(msecs); } } ClientRequest.prototype.setNoDelay = function setNoDelay(noDelay) { this._deferToConnect('setNoDelay', [noDelay]); }; ClientRequest.prototype.setSocketKeepAlive = function setSocketKeepAlive(enable, initialDelay) { this._deferToConnect('setKeepAlive', [enable, initialDelay]); }; ClientRequest.prototype.clearTimeout = function clearTimeout(cb) { this.setTimeout(0, cb); }; module.exports = { ClientRequest }; _http_common// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { methods, HTTPParser } = internalBinding('http_parser'); const { FreeList } = require('internal/freelist'); const { ondrain } = require('internal/http'); const incoming = require('_http_incoming'); const { IncomingMessage, readStart, readStop } = incoming; const debug = require('util').debuglog('http'); const kIncomingMessage = Symbol('IncomingMessage'); const kOnHeaders = HTTPParser.kOnHeaders | 0; const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0; const kOnBody = HTTPParser.kOnBody | 0; const kOnMessageComplete = HTTPParser.kOnMessageComplete | 0; const kOnExecute = HTTPParser.kOnExecute | 0; const MAX_HEADER_PAIRS = 2000; // Only called in the slow case where slow means // that the request headers were either fragmented // across multiple TCP packets or too large to be // processed in a single run. This method is also // called to process trailing HTTP headers. function parserOnHeaders(headers, url) { // Once we exceeded headers limit - stop collecting them if (this.maxHeaderPairs <= 0 || this._headers.length < this.maxHeaderPairs) { this._headers = this._headers.concat(headers); } this._url += url; } // `headers` and `url` are set only if .onHeaders() has not been called for // this request. // `url` is not set for response parsers but that's not applicable here since // all our parsers are request parsers. function parserOnHeadersComplete(versionMajor, versionMinor, headers, method, url, statusCode, statusMessage, upgrade, shouldKeepAlive) { const parser = this; const { socket } = parser; if (headers === undefined) { headers = parser._headers; parser._headers = []; } if (url === undefined) { url = parser._url; parser._url = ''; } // Parser is also used by http client const ParserIncomingMessage = (socket && socket.server && socket.server[kIncomingMessage]) || IncomingMessage; const incoming = parser.incoming = new ParserIncomingMessage(socket); incoming.httpVersionMajor = versionMajor; incoming.httpVersionMinor = versionMinor; incoming.httpVersion = `${versionMajor}.${versionMinor}`; incoming.url = url; incoming.upgrade = upgrade; var n = headers.length; // If parser.maxHeaderPairs <= 0 assume that there's no limit. if (parser.maxHeaderPairs > 0) n = Math.min(n, parser.maxHeaderPairs); incoming._addHeaderLines(headers, n); if (typeof method === 'number') { // server only incoming.method = methods[method]; } else { // client only incoming.statusCode = statusCode; incoming.statusMessage = statusMessage; } return parser.onIncoming(incoming, shouldKeepAlive); } function parserOnBody(b, start, len) { const stream = this.incoming; // if the stream has already been removed, then drop it. if (stream === null) return; // pretend this was the result of a stream._read call. if (len > 0 && !stream._dumped) { var slice = b.slice(start, start + len); var ret = stream.push(slice); if (!ret) readStop(this.socket); } } function parserOnMessageComplete() { const parser = this; const stream = parser.incoming; if (stream !== null) { stream.complete = true; // Emit any trailing headers. const headers = parser._headers; if (headers.length) { stream._addHeaderLines(headers, headers.length); parser._headers = []; parser._url = ''; } // For emit end event stream.push(null); } // force to read the next incoming message readStart(parser.socket); } const parsers = new FreeList('parsers', 1000, function parsersCb() { const parser = new HTTPParser(HTTPParser.REQUEST); cleanParser(parser); parser.onIncoming = null; parser[kOnHeaders] = parserOnHeaders; parser[kOnHeadersComplete] = parserOnHeadersComplete; parser[kOnBody] = parserOnBody; parser[kOnMessageComplete] = parserOnMessageComplete; return parser; }); function closeParserInstance(parser) { parser.close(); } // Free the parser and also break any links that it // might have to any other things. // TODO: All parser data should be attached to a // single object, so that it can be easily cleaned // up by doing `parser.data = {}`, which should // be done in FreeList.free. `parsers.free(parser)` // should be all that is needed. function freeParser(parser, req, socket) { if (parser) { if (parser._consumed) parser.unconsume(); cleanParser(parser); if (parsers.free(parser) === false) { // Make sure the parser's stack has unwound before deleting the // corresponding C++ object through .close(). setImmediate(closeParserInstance, parser); } else { // Since the Parser destructor isn't going to run the destroy() callbacks // it needs to be triggered manually. parser.free(); } } if (req) { req.parser = null; } if (socket) { socket.parser = null; } } function httpSocketSetup(socket) { socket.removeListener('drain', ondrain); socket.on('drain', ondrain); } const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; /** * Verifies that the given val is a valid HTTP token * per the rules defined in RFC 7230 * See https://tools.ietf.org/html/rfc7230#section-3.2.6 */ function checkIsHttpToken(val) { return tokenRegExp.test(val); } const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; /** * True if val contains an invalid field-vchar * field-value = *( field-content / obs-fold ) * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] * field-vchar = VCHAR / obs-text */ function checkInvalidHeaderChar(val) { return headerCharRegex.test(val); } function cleanParser(parser) { parser._headers = []; parser._url = ''; parser.socket = null; parser.incoming = null; parser.outgoing = null; parser.maxHeaderPairs = MAX_HEADER_PAIRS; parser[kOnExecute] = null; parser._consumed = false; } module.exports = { _checkInvalidHeaderChar: checkInvalidHeaderChar, _checkIsHttpToken: checkIsHttpToken, chunkExpression: /(?:^|\W)chunked(?:$|\W)/i, continueExpression: /(?:^|\W)100-continue(?:$|\W)/i, CRLF: '\r\n', debug, freeParser, httpSocketSetup, methods, parsers, kIncomingMessage }; _http_incoming// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const util = require('util'); const Stream = require('stream'); function readStart(socket) { if (socket && !socket._paused && socket.readable) socket.resume(); } function readStop(socket) { if (socket) socket.pause(); } /* Abstract base class for ServerRequest and ClientResponse. */ function IncomingMessage(socket) { Stream.Readable.call(this); this._readableState.readingMore = true; this.socket = socket; this.connection = socket; this.httpVersionMajor = null; this.httpVersionMinor = null; this.httpVersion = null; this.complete = false; this.headers = {}; this.rawHeaders = []; this.trailers = {}; this.rawTrailers = []; this.readable = true; this.aborted = false; this.upgrade = null; // request (server) only this.url = ''; this.method = null; // response (client) only this.statusCode = null; this.statusMessage = null; this.client = socket; this._consuming = false; // flag for when we decide that this message cannot possibly be // read by the user, so there's no point continuing to handle it. this._dumped = false; } util.inherits(IncomingMessage, Stream.Readable); IncomingMessage.prototype.setTimeout = function setTimeout(msecs, callback) { if (callback) this.on('timeout', callback); this.socket.setTimeout(msecs); return this; }; IncomingMessage.prototype._read = function _read(n) { if (!this._consuming) { this._readableState.readingMore = false; this._consuming = true; } // We actually do almost nothing here, because the parserOnBody // function fills up our internal buffer directly. However, we // do need to unpause the underlying socket so that it flows. if (this.socket.readable) readStart(this.socket); }; // It's possible that the socket will be destroyed, and removed from // any messages, before ever calling this. In that case, just skip // it, since something else is destroying this connection anyway. IncomingMessage.prototype.destroy = function destroy(error) { if (this.socket) this.socket.destroy(error); }; IncomingMessage.prototype._addHeaderLines = _addHeaderLines; function _addHeaderLines(headers, n) { if (headers && headers.length) { var dest; if (this.complete) { this.rawTrailers = headers; dest = this.trailers; } else { this.rawHeaders = headers; dest = this.headers; } for (var i = 0; i < n; i += 2) { this._addHeaderLine(headers[i], headers[i + 1], dest); } } } // This function is used to help avoid the lowercasing of a field name if it // matches a 'traditional cased' version of a field name. It then returns the // lowercased name to both avoid calling toLowerCase() a second time and to // indicate whether the field was a 'no duplicates' field. If a field is not a // 'no duplicates' field, a `0` byte is prepended as a flag. The one exception // to this is the Set-Cookie header which is indicated by a `1` byte flag, since // it is an 'array' field and thus is treated differently in _addHeaderLines(). // TODO: perhaps http_parser could be returning both raw and lowercased versions // of known header names to avoid us having to call toLowerCase() for those // headers. // 'array' header list is taken from: // https://mxr.mozilla.org/mozilla/source/netwerk/protocol/http/src/nsHttpHeaderArray.cpp function matchKnownFields(field) { var low = false; while (true) { switch (field) { case 'Content-Type': case 'content-type': return 'content-type'; case 'Content-Length': case 'content-length': return 'content-length'; case 'User-Agent': case 'user-agent': return 'user-agent'; case 'Referer': case 'referer': return 'referer'; case 'Host': case 'host': return 'host'; case 'Authorization': case 'authorization': return 'authorization'; case 'Proxy-Authorization': case 'proxy-authorization': return 'proxy-authorization'; case 'If-Modified-Since': case 'if-modified-since': return 'if-modified-since'; case 'If-Unmodified-Since': case 'if-unmodified-since': return 'if-unmodified-since'; case 'From': case 'from': return 'from'; case 'Location': case 'location': return 'location'; case 'Max-Forwards': case 'max-forwards': return 'max-forwards'; case 'Retry-After': case 'retry-after': return 'retry-after'; case 'ETag': case 'etag': return 'etag'; case 'Last-Modified': case 'last-modified': return 'last-modified'; case 'Server': case 'server': return 'server'; case 'Age': case 'age': return 'age'; case 'Expires': case 'expires': return 'expires'; case 'Set-Cookie': case 'set-cookie': return '\u0001'; case 'Cookie': case 'cookie': return '\u0002cookie'; // The fields below are not used in _addHeaderLine(), but they are common // headers where we can avoid toLowerCase() if the mixed or lower case // versions match the first time through. case 'Transfer-Encoding': case 'transfer-encoding': return '\u0000transfer-encoding'; case 'Date': case 'date': return '\u0000date'; case 'Connection': case 'connection': return '\u0000connection'; case 'Cache-Control': case 'cache-control': return '\u0000cache-control'; case 'Vary': case 'vary': return '\u0000vary'; case 'Content-Encoding': case 'content-encoding': return '\u0000content-encoding'; case 'Origin': case 'origin': return '\u0000origin'; case 'Upgrade': case 'upgrade': return '\u0000upgrade'; case 'Expect': case 'expect': return '\u0000expect'; case 'If-Match': case 'if-match': return '\u0000if-match'; case 'If-None-Match': case 'if-none-match': return '\u0000if-none-match'; case 'Accept': case 'accept': return '\u0000accept'; case 'Accept-Encoding': case 'accept-encoding': return '\u0000accept-encoding'; case 'Accept-Language': case 'accept-language': return '\u0000accept-language'; case 'X-Forwarded-For': case 'x-forwarded-for': return '\u0000x-forwarded-for'; case 'X-Forwarded-Host': case 'x-forwarded-host': return '\u0000x-forwarded-host'; case 'X-Forwarded-Proto': case 'x-forwarded-proto': return '\u0000x-forwarded-proto'; default: if (low) return '\u0000' + field; field = field.toLowerCase(); low = true; } } } // Add the given (field, value) pair to the message // // Per RFC2616, section 4.2 it is acceptable to join multiple instances of the // same header with a ', ' if the header in question supports specification of // multiple values this way. The one exception to this is the Cookie header, // which has multiple values joined with a '; ' instead. If a header's values // cannot be joined in either of these ways, we declare the first instance the // winner and drop the second. Extended header fields (those beginning with // 'x-') are always joined. IncomingMessage.prototype._addHeaderLine = _addHeaderLine; function _addHeaderLine(field, value, dest) { field = matchKnownFields(field); var flag = field.charCodeAt(0); if (flag === 0 || flag === 2) { field = field.slice(1); // Make a delimited list if (typeof dest[field] === 'string') { dest[field] += (flag === 0 ? ', ' : '; ') + value; } else { dest[field] = value; } } else if (flag === 1) { // Array header -- only Set-Cookie at the moment if (dest['set-cookie'] !== undefined) { dest['set-cookie'].push(value); } else { dest['set-cookie'] = [value]; } } else if (dest[field] === undefined) { // Drop duplicates dest[field] = value; } } // Call this instead of resume() if we want to just // dump all the data to /dev/null IncomingMessage.prototype._dump = function _dump() { if (!this._dumped) { this._dumped = true; // If there is buffered data, it may trigger 'data' events. // Remove 'data' event listeners explicitly. this.removeAllListeners('data'); this.resume(); } }; module.exports = { IncomingMessage, readStart, readStop }; _http_outgoing// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const assert = require('assert').ok; const Stream = require('stream'); const util = require('util'); const internalUtil = require('internal/util'); const { outHeadersKey, utcDate } = require('internal/http'); const { Buffer } = require('buffer'); const common = require('_http_common'); const checkIsHttpToken = common._checkIsHttpToken; const checkInvalidHeaderChar = common._checkInvalidHeaderChar; const { defaultTriggerAsyncIdScope, symbols: { async_id_symbol } } = require('internal/async_hooks'); const { ERR_HTTP_HEADERS_SENT, ERR_HTTP_INVALID_HEADER_VALUE, ERR_HTTP_TRAILER_INVALID, ERR_INVALID_HTTP_TOKEN, ERR_INVALID_ARG_TYPE, ERR_INVALID_CHAR, ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_CANNOT_PIPE, ERR_STREAM_WRITE_AFTER_END } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { CRLF, debug } = common; const kIsCorked = Symbol('isCorked'); const hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); var RE_CONN_CLOSE = /(?:^|\W)close(?:$|\W)/i; var RE_TE_CHUNKED = common.chunkExpression; // isCookieField performs a case-insensitive comparison of a provided string // against the word "cookie." As of V8 6.6 this is faster than handrolling or // using a case-insensitive RegExp. function isCookieField(s) { return s.length === 6 && s.toLowerCase() === 'cookie'; } function noopPendingOutput(amount) {} function OutgoingMessage() { Stream.call(this); // Queue that holds all currently pending data, until the response will be // assigned to the socket (until it will its turn in the HTTP pipeline). this.output = []; this.outputEncodings = []; this.outputCallbacks = []; // `outputSize` is an approximate measure of how much data is queued on this // response. `_onPendingData` will be invoked to update similar global // per-connection counter. That counter will be used to pause/unpause the // TCP socket and HTTP Parser and thus handle the backpressure. this.outputSize = 0; this.writable = true; this._last = false; this.chunkedEncoding = false; this.shouldKeepAlive = true; this.useChunkedEncodingByDefault = true; this.sendDate = false; this._removedConnection = false; this._removedContLen = false; this._removedTE = false; this._contentLength = null; this._hasBody = true; this._trailer = ''; this.finished = false; this._headerSent = false; this[kIsCorked] = false; this.socket = null; this.connection = null; this._header = null; this[outHeadersKey] = null; this._onPendingData = noopPendingOutput; } util.inherits(OutgoingMessage, Stream); Object.defineProperty(OutgoingMessage.prototype, '_headers', { get: function() { return this.getHeaders(); }, set: function(val) { if (val == null) { this[outHeadersKey] = null; } else if (typeof val === 'object') { const headers = this[outHeadersKey] = Object.create(null); const keys = Object.keys(val); for (var i = 0; i < keys.length; ++i) { const name = keys[i]; headers[name.toLowerCase()] = [name, val[name]]; } } } }); Object.defineProperty(OutgoingMessage.prototype, '_headerNames', { get: function() { const headers = this[outHeadersKey]; if (headers !== null) { const out = Object.create(null); const keys = Object.keys(headers); for (var i = 0; i < keys.length; ++i) { const key = keys[i]; const val = headers[key][0]; out[key] = val; } return out; } return null; }, set: function(val) { if (typeof val === 'object' && val !== null) { const headers = this[outHeadersKey]; if (!headers) return; const keys = Object.keys(val); for (var i = 0; i < keys.length; ++i) { const header = headers[keys[i]]; if (header) header[0] = val[keys[i]]; } } } }); OutgoingMessage.prototype._renderHeaders = function _renderHeaders() { if (this._header) { throw new ERR_HTTP_HEADERS_SENT('render'); } var headersMap = this[outHeadersKey]; const headers = {}; if (headersMap !== null) { const keys = Object.keys(headersMap); for (var i = 0, l = keys.length; i < l; i++) { const key = keys[i]; headers[headersMap[key][0]] = headersMap[key][1]; } } return headers; }; OutgoingMessage.prototype.setTimeout = function setTimeout(msecs, callback) { if (callback) { this.on('timeout', callback); } if (!this.socket) { this.once('socket', function socketSetTimeoutOnConnect(socket) { socket.setTimeout(msecs); }); } else { this.socket.setTimeout(msecs); } return this; }; // It's possible that the socket will be destroyed, and removed from // any messages, before ever calling this. In that case, just skip // it, since something else is destroying this connection anyway. OutgoingMessage.prototype.destroy = function destroy(error) { if (this.socket) { this.socket.destroy(error); } else { this.once('socket', function socketDestroyOnConnect(socket) { socket.destroy(error); }); } }; // This abstract either writing directly to the socket or buffering it. OutgoingMessage.prototype._send = function _send(data, encoding, callback) { // This is a shameful hack to get the headers and first body chunk onto // the same packet. Future versions of Node are going to take care of // this at a lower level and in a more general way. if (!this._headerSent) { if (typeof data === 'string' && (encoding === 'utf8' || encoding === 'latin1' || !encoding)) { data = this._header + data; } else { var header = this._header; if (this.output.length === 0) { this.output = [header]; this.outputEncodings = ['latin1']; this.outputCallbacks = [null]; } else { this.output.unshift(header); this.outputEncodings.unshift('latin1'); this.outputCallbacks.unshift(null); } this.outputSize += header.length; this._onPendingData(header.length); } this._headerSent = true; } return this._writeRaw(data, encoding, callback); }; OutgoingMessage.prototype._writeRaw = _writeRaw; function _writeRaw(data, encoding, callback) { const conn = this.connection; if (conn && conn.destroyed) { // The socket was destroyed. If we're still trying to write to it, // then we haven't gotten the 'close' event yet. return false; } if (typeof encoding === 'function') { callback = encoding; encoding = null; } if (conn && conn._httpMessage === this && conn.writable && !conn.destroyed) { // There might be pending data in the this.output buffer. if (this.output.length) { this._flushOutput(conn); } else if (!data.length) { if (typeof callback === 'function') { // If the socket was set directly it won't be correctly initialized // with an async_id_symbol. // TODO(AndreasMadsen): @trevnorris suggested some more correct // solutions in: // https://github.com/nodejs/node/pull/14389/files#r128522202 defaultTriggerAsyncIdScope(conn[async_id_symbol], process.nextTick, callback); } return true; } // Directly write to socket. return conn.write(data, encoding, callback); } // Buffer, as long as we're not destroyed. this.output.push(data); this.outputEncodings.push(encoding); this.outputCallbacks.push(callback); this.outputSize += data.length; this._onPendingData(data.length); return false; } OutgoingMessage.prototype._storeHeader = _storeHeader; function _storeHeader(firstLine, headers) { // firstLine in the case of request is: 'GET /index.html HTTP/1.1\r\n' // in the case of response it is: 'HTTP/1.1 200 OK\r\n' const state = { connection: false, contLen: false, te: false, date: false, expect: false, trailer: false, header: firstLine }; var key; if (headers === this[outHeadersKey]) { for (key in headers) { const entry = headers[key]; processHeader(this, state, entry[0], entry[1], false); } } else if (Array.isArray(headers)) { for (var i = 0; i < headers.length; i++) { const entry = headers[i]; processHeader(this, state, entry[0], entry[1], true); } } else if (headers) { for (key in headers) { if (hasOwnProperty(headers, key)) { processHeader(this, state, key, headers[key], true); } } } let { header } = state; // Date header if (this.sendDate && !state.date) { header += 'Date: ' + utcDate() + CRLF; } // Force the connection to close when the response is a 204 No Content or // a 304 Not Modified and the user has set a "Transfer-Encoding: chunked" // header. // // RFC 2616 mandates that 204 and 304 responses MUST NOT have a body but // node.js used to send out a zero chunk anyway to accommodate clients // that don't have special handling for those responses. // // It was pointed out that this might confuse reverse proxies to the point // of creating security liabilities, so suppress the zero chunk and force // the connection to close. if (this.chunkedEncoding && (this.statusCode === 204 || this.statusCode === 304)) { debug(this.statusCode + ' response should not use chunked encoding,' + ' closing connection.'); this.chunkedEncoding = false; this.shouldKeepAlive = false; } // keep-alive logic if (this._removedConnection) { this._last = true; this.shouldKeepAlive = false; } else if (!state.connection) { const shouldSendKeepAlive = this.shouldKeepAlive && (state.contLen || this.useChunkedEncodingByDefault || this.agent); if (shouldSendKeepAlive) { header += 'Connection: keep-alive\r\n'; } else { this._last = true; header += 'Connection: close\r\n'; } } if (!state.contLen && !state.te) { if (!this._hasBody) { // Make sure we don't end the 0\r\n\r\n at the end of the message. this.chunkedEncoding = false; } else if (!this.useChunkedEncodingByDefault) { this._last = true; } else if (!state.trailer && !this._removedContLen && typeof this._contentLength === 'number') { header += 'Content-Length: ' + this._contentLength + CRLF; } else if (!this._removedTE) { header += 'Transfer-Encoding: chunked\r\n'; this.chunkedEncoding = true; } else { // We should only be able to get here if both Content-Length and // Transfer-Encoding are removed by the user. // See: test/parallel/test-http-remove-header-stays-removed.js debug('Both Content-Length and Transfer-Encoding are removed'); } } // Test non-chunked message does not have trailer header set, // message will be terminated by the first empty line after the // header fields, regardless of the header fields present in the // message, and thus cannot contain a message body or 'trailers'. if (this.chunkedEncoding !== true && state.trailer) { throw new ERR_HTTP_TRAILER_INVALID(); } this._header = header + CRLF; this._headerSent = false; // wait until the first body chunk, or close(), is sent to flush, // UNLESS we're sending Expect: 100-continue. if (state.expect) this._send(''); } function processHeader(self, state, key, value, validate) { if (validate) validateHeaderName(key); if (Array.isArray(value)) { if (value.length < 2 || !isCookieField(key)) { for (var i = 0; i < value.length; i++) storeHeader(self, state, key, value[i], validate); return; } value = value.join('; '); } storeHeader(self, state, key, value, validate); } function storeHeader(self, state, key, value, validate) { if (validate) validateHeaderValue(key, value); state.header += key + ': ' + value + CRLF; matchHeader(self, state, key, value); } function matchHeader(self, state, field, value) { if (field.length < 4 || field.length > 17) return; field = field.toLowerCase(); switch (field) { case 'connection': state.connection = true; self._removedConnection = false; if (RE_CONN_CLOSE.test(value)) self._last = true; else self.shouldKeepAlive = true; break; case 'transfer-encoding': state.te = true; self._removedTE = false; if (RE_TE_CHUNKED.test(value)) self.chunkedEncoding = true; break; case 'content-length': state.contLen = true; self._removedContLen = false; break; case 'date': case 'expect': case 'trailer': state[field] = true; break; } } function validateHeaderName(name) { if (typeof name !== 'string' || !name || !checkIsHttpToken(name)) { const err = new ERR_INVALID_HTTP_TOKEN('Header name', name); Error.captureStackTrace(err, validateHeaderName); throw err; } } function validateHeaderValue(name, value) { let err; if (value === undefined) { err = new ERR_HTTP_INVALID_HEADER_VALUE(value, name); } else if (checkInvalidHeaderChar(value)) { debug('Header "%s" contains invalid characters', name); err = new ERR_INVALID_CHAR('header content', name); } if (err !== undefined) { Error.captureStackTrace(err, validateHeaderValue); throw err; } } OutgoingMessage.prototype.setHeader = function setHeader(name, value) { if (this._header) { throw new ERR_HTTP_HEADERS_SENT('set'); } validateHeaderName(name); validateHeaderValue(name, value); let headers = this[outHeadersKey]; if (headers === null) this[outHeadersKey] = headers = Object.create(null); headers[name.toLowerCase()] = [name, value]; }; OutgoingMessage.prototype.getHeader = function getHeader(name) { validateString(name, 'name'); const headers = this[outHeadersKey]; if (headers === null) return; const entry = headers[name.toLowerCase()]; return entry && entry[1]; }; // Returns an array of the names of the current outgoing headers. OutgoingMessage.prototype.getHeaderNames = function getHeaderNames() { return this[outHeadersKey] !== null ? Object.keys(this[outHeadersKey]) : []; }; // Returns a shallow copy of the current outgoing headers. OutgoingMessage.prototype.getHeaders = function getHeaders() { const headers = this[outHeadersKey]; const ret = Object.create(null); if (headers) { const keys = Object.keys(headers); for (var i = 0; i < keys.length; ++i) { const key = keys[i]; const val = headers[key][1]; ret[key] = val; } } return ret; }; OutgoingMessage.prototype.hasHeader = function hasHeader(name) { validateString(name, 'name'); return this[outHeadersKey] !== null && !!this[outHeadersKey][name.toLowerCase()]; }; OutgoingMessage.prototype.removeHeader = function removeHeader(name) { validateString(name, 'name'); if (this._header) { throw new ERR_HTTP_HEADERS_SENT('remove'); } var key = name.toLowerCase(); switch (key) { case 'connection': this._removedConnection = true; break; case 'content-length': this._removedContLen = true; break; case 'transfer-encoding': this._removedTE = true; break; case 'date': this.sendDate = false; break; } if (this[outHeadersKey] !== null) { delete this[outHeadersKey][key]; } }; OutgoingMessage.prototype._implicitHeader = function _implicitHeader() { this.emit('error', new ERR_METHOD_NOT_IMPLEMENTED('_implicitHeader()')); }; Object.defineProperty(OutgoingMessage.prototype, 'headersSent', { configurable: true, enumerable: true, get: function() { return !!this._header; } }); const crlf_buf = Buffer.from('\r\n'); OutgoingMessage.prototype.write = function write(chunk, encoding, callback) { return write_(this, chunk, encoding, callback, false); }; function write_(msg, chunk, encoding, callback, fromEnd) { if (msg.finished) { const err = new ERR_STREAM_WRITE_AFTER_END(); const triggerAsyncId = msg.socket ? msg.socket[async_id_symbol] : undefined; defaultTriggerAsyncIdScope(triggerAsyncId, process.nextTick, writeAfterEndNT, msg, err, callback); return true; } if (!msg._header) { msg._implicitHeader(); } if (!msg._hasBody) { debug('This type of response MUST NOT have a body. ' + 'Ignoring write() calls.'); return true; } if (!fromEnd && typeof chunk !== 'string' && !(chunk instanceof Buffer)) { throw new ERR_INVALID_ARG_TYPE('first argument', ['string', 'Buffer'], chunk); } // If we get an empty string or buffer, then just do nothing, and // signal the user to keep writing. if (chunk.length === 0) { debug('received empty string or buffer and waiting for more input'); return true; } if (!fromEnd && msg.connection && !msg[kIsCorked]) { msg.connection.cork(); msg[kIsCorked] = true; process.nextTick(connectionCorkNT, msg, msg.connection); } var len, ret; if (msg.chunkedEncoding) { if (typeof chunk === 'string') len = Buffer.byteLength(chunk, encoding); else len = chunk.length; msg._send(len.toString(16), 'latin1', null); msg._send(crlf_buf, null, null); msg._send(chunk, encoding, null); ret = msg._send(crlf_buf, null, callback); } else { ret = msg._send(chunk, encoding, callback); } debug('write ret = ' + ret); return ret; } function writeAfterEndNT(msg, err, callback) { msg.emit('error', err); if (callback) callback(err); } function connectionCorkNT(msg, conn) { msg[kIsCorked] = false; conn.uncork(); } OutgoingMessage.prototype.addTrailers = function addTrailers(headers) { this._trailer = ''; var keys = Object.keys(headers); var isArray = Array.isArray(headers); var field, value; for (var i = 0, l = keys.length; i < l; i++) { var key = keys[i]; if (isArray) { field = headers[key][0]; value = headers[key][1]; } else { field = key; value = headers[key]; } if (typeof field !== 'string' || !field || !checkIsHttpToken(field)) { throw new ERR_INVALID_HTTP_TOKEN('Trailer name', field); } if (checkInvalidHeaderChar(value)) { debug('Trailer "%s" contains invalid characters', field); throw new ERR_INVALID_CHAR('trailer content', field); } this._trailer += field + ': ' + value + CRLF; } }; function onFinish(outmsg) { outmsg.emit('finish'); } OutgoingMessage.prototype.end = function end(chunk, encoding, callback) { if (typeof chunk === 'function') { callback = chunk; chunk = null; } else if (typeof encoding === 'function') { callback = encoding; encoding = null; } if (this.finished) { return this; } var uncork; if (chunk) { if (typeof chunk !== 'string' && !(chunk instanceof Buffer)) { throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } if (!this._header) { if (typeof chunk === 'string') this._contentLength = Buffer.byteLength(chunk, encoding); else this._contentLength = chunk.length; } if (this.connection) { this.connection.cork(); uncork = true; } write_(this, chunk, encoding, null, true); } else if (!this._header) { this._contentLength = 0; this._implicitHeader(); } if (typeof callback === 'function') this.once('finish', callback); var finish = onFinish.bind(undefined, this); if (this._hasBody && this.chunkedEncoding) { this._send('0\r\n' + this._trailer + '\r\n', 'latin1', finish); } else { // Force a flush, HACK. this._send('', 'latin1', finish); } if (uncork) this.connection.uncork(); this.finished = true; // There is the first message on the outgoing queue, and we've sent // everything to the socket. debug('outgoing message end.'); if (this.output.length === 0 && this.connection && this.connection._httpMessage === this) { this._finish(); } return this; }; OutgoingMessage.prototype._finish = function _finish() { assert(this.connection); this.emit('prefinish'); }; // This logic is probably a bit confusing. Let me explain a bit: // // In both HTTP servers and clients it is possible to queue up several // outgoing messages. This is easiest to imagine in the case of a client. // Take the following situation: // // req1 = client.request('GET', '/'); // req2 = client.request('POST', '/'); // // When the user does // // req2.write('hello world\n'); // // it's possible that the first request has not been completely flushed to // the socket yet. Thus the outgoing messages need to be prepared to queue // up data internally before sending it on further to the socket's queue. // // This function, outgoingFlush(), is called by both the Server and Client // to attempt to flush any pending messages out to the socket. OutgoingMessage.prototype._flush = function _flush() { var socket = this.socket; var ret; if (socket && socket.writable) { // There might be remaining data in this.output; write it out ret = this._flushOutput(socket); if (this.finished) { // This is a queue to the server or client to bring in the next this. this._finish(); } else if (ret) { // This is necessary to prevent https from breaking this.emit('drain'); } } }; OutgoingMessage.prototype._flushOutput = function _flushOutput(socket) { var ret; var outputLength = this.output.length; if (outputLength <= 0) return ret; var output = this.output; var outputEncodings = this.outputEncodings; var outputCallbacks = this.outputCallbacks; socket.cork(); for (var i = 0; i < outputLength; i++) { ret = socket.write(output[i], outputEncodings[i], outputCallbacks[i]); } socket.uncork(); this.output = []; this.outputEncodings = []; this.outputCallbacks = []; this._onPendingData(-this.outputSize); this.outputSize = 0; return ret; }; OutgoingMessage.prototype.flushHeaders = function flushHeaders() { if (!this._header) { this._implicitHeader(); } // Force-flush the headers. this._send(''); }; OutgoingMessage.prototype.flush = internalUtil.deprecate(function() { this.flushHeaders(); }, 'OutgoingMessage.flush is deprecated. Use flushHeaders instead.', 'DEP0001'); OutgoingMessage.prototype.pipe = function pipe() { // OutgoingMessage should be write-only. Piping from it is disabled. this.emit('error', new ERR_STREAM_CANNOT_PIPE()); }; module.exports = { OutgoingMessage }; _http_server// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const util = require('util'); const net = require('net'); const { HTTPParser } = internalBinding('http_parser'); const assert = require('assert').ok; const { parsers, freeParser, debug, CRLF, continueExpression, chunkExpression, httpSocketSetup, kIncomingMessage, _checkInvalidHeaderChar: checkInvalidHeaderChar } = require('_http_common'); const { OutgoingMessage } = require('_http_outgoing'); const { outHeadersKey, ondrain, nowDate } = require('internal/http'); const { defaultTriggerAsyncIdScope, getOrSetAsyncId } = require('internal/async_hooks'); const is_reused_symbol = require('internal/freelist').symbols.is_reused_symbol; const { IncomingMessage } = require('_http_incoming'); const { ERR_HTTP_HEADERS_SENT, ERR_HTTP_INVALID_STATUS_CODE, ERR_INVALID_CHAR } = require('internal/errors').codes; const Buffer = require('buffer').Buffer; const kServerResponse = Symbol('ServerResponse'); const STATUS_CODES = { 100: 'Continue', 101: 'Switching Protocols', 102: 'Processing', // RFC 2518, obsoleted by RFC 4918 103: 'Early Hints', 200: 'OK', 201: 'Created', 202: 'Accepted', 203: 'Non-Authoritative Information', 204: 'No Content', 205: 'Reset Content', 206: 'Partial Content', 207: 'Multi-Status', // RFC 4918 208: 'Already Reported', 226: 'IM Used', 300: 'Multiple Choices', // RFC 7231 301: 'Moved Permanently', 302: 'Found', 303: 'See Other', 304: 'Not Modified', 305: 'Use Proxy', 307: 'Temporary Redirect', 308: 'Permanent Redirect', // RFC 7238 400: 'Bad Request', 401: 'Unauthorized', 402: 'Payment Required', 403: 'Forbidden', 404: 'Not Found', 405: 'Method Not Allowed', 406: 'Not Acceptable', 407: 'Proxy Authentication Required', 408: 'Request Timeout', 409: 'Conflict', 410: 'Gone', 411: 'Length Required', 412: 'Precondition Failed', 413: 'Payload Too Large', 414: 'URI Too Long', 415: 'Unsupported Media Type', 416: 'Range Not Satisfiable', 417: 'Expectation Failed', 418: 'I\'m a Teapot', // RFC 7168 421: 'Misdirected Request', 422: 'Unprocessable Entity', // RFC 4918 423: 'Locked', // RFC 4918 424: 'Failed Dependency', // RFC 4918 425: 'Unordered Collection', // RFC 4918 426: 'Upgrade Required', // RFC 2817 428: 'Precondition Required', // RFC 6585 429: 'Too Many Requests', // RFC 6585 431: 'Request Header Fields Too Large', // RFC 6585 451: 'Unavailable For Legal Reasons', 500: 'Internal Server Error', 501: 'Not Implemented', 502: 'Bad Gateway', 503: 'Service Unavailable', 504: 'Gateway Timeout', 505: 'HTTP Version Not Supported', 506: 'Variant Also Negotiates', // RFC 2295 507: 'Insufficient Storage', // RFC 4918 508: 'Loop Detected', 509: 'Bandwidth Limit Exceeded', 510: 'Not Extended', // RFC 2774 511: 'Network Authentication Required' // RFC 6585 }; const kOnExecute = HTTPParser.kOnExecute | 0; function ServerResponse(req) { OutgoingMessage.call(this); if (req.method === 'HEAD') this._hasBody = false; this.sendDate = true; this._sent100 = false; this._expect_continue = false; if (req.httpVersionMajor < 1 || req.httpVersionMinor < 1) { this.useChunkedEncodingByDefault = chunkExpression.test(req.headers.te); this.shouldKeepAlive = false; } } util.inherits(ServerResponse, OutgoingMessage); ServerResponse.prototype._finish = function _finish() { ; ; OutgoingMessage.prototype._finish.call(this); }; ServerResponse.prototype.statusCode = 200; ServerResponse.prototype.statusMessage = undefined; function onServerResponseClose() { // EventEmitter.emit makes a copy of the 'close' listeners array before // calling the listeners. detachSocket() unregisters onServerResponseClose // but if detachSocket() is called, directly or indirectly, by a 'close' // listener, onServerResponseClose is still in that copy of the listeners // array. That is, in the example below, b still gets called even though // it's been removed by a: // // var EventEmitter = require('events'); // var obj = new EventEmitter(); // obj.on('event', a); // obj.on('event', b); // function a() { obj.removeListener('event', b) } // function b() { throw "BAM!" } // obj.emit('event'); // throws // // Ergo, we need to deal with stale 'close' events and handle the case // where the ServerResponse object has already been deconstructed. // Fortunately, that requires only a single if check. :-) if (this._httpMessage) this._httpMessage.emit('close'); } ServerResponse.prototype.assignSocket = function assignSocket(socket) { assert(!socket._httpMessage); socket._httpMessage = this; socket.on('close', onServerResponseClose); this.socket = socket; this.connection = socket; this.emit('socket', socket); this._flush(); }; ServerResponse.prototype.detachSocket = function detachSocket(socket) { assert(socket._httpMessage === this); socket.removeListener('close', onServerResponseClose); socket._httpMessage = null; this.socket = this.connection = null; }; ServerResponse.prototype.writeContinue = function writeContinue(cb) { this._writeRaw(`HTTP/1.1 100 Continue${CRLF}${CRLF}`, 'ascii', cb); this._sent100 = true; }; ServerResponse.prototype.writeProcessing = function writeProcessing(cb) { this._writeRaw(`HTTP/1.1 102 Processing${CRLF}${CRLF}`, 'ascii', cb); }; ServerResponse.prototype._implicitHeader = function _implicitHeader() { this.writeHead(this.statusCode); }; ServerResponse.prototype.writeHead = writeHead; function writeHead(statusCode, reason, obj) { var originalStatusCode = statusCode; statusCode |= 0; if (statusCode < 100 || statusCode > 999) { throw new ERR_HTTP_INVALID_STATUS_CODE(originalStatusCode); } if (typeof reason === 'string') { // writeHead(statusCode, reasonPhrase[, headers]) this.statusMessage = reason; } else { // writeHead(statusCode[, headers]) if (!this.statusMessage) this.statusMessage = STATUS_CODES[statusCode] || 'unknown'; obj = reason; } this.statusCode = statusCode; var headers; if (this[outHeadersKey]) { // Slow-case: when progressive API and header fields are passed. var k; if (obj) { var keys = Object.keys(obj); for (var i = 0; i < keys.length; i++) { k = keys[i]; if (k) this.setHeader(k, obj[k]); } } if (k === undefined && this._header) { throw new ERR_HTTP_HEADERS_SENT('render'); } // only progressive api is used headers = this[outHeadersKey]; } else { // only writeHead() called headers = obj; } if (checkInvalidHeaderChar(this.statusMessage)) throw new ERR_INVALID_CHAR('statusMessage'); var statusLine = `HTTP/1.1 ${statusCode} ${this.statusMessage}${CRLF}`; if (statusCode === 204 || statusCode === 304 || (statusCode >= 100 && statusCode <= 199)) { // RFC 2616, 10.2.5: // The 204 response MUST NOT include a message-body, and thus is always // terminated by the first empty line after the header fields. // RFC 2616, 10.3.5: // The 304 response MUST NOT contain a message-body, and thus is always // terminated by the first empty line after the header fields. // RFC 2616, 10.1 Informational 1xx: // This class of status code indicates a provisional response, // consisting only of the Status-Line and optional headers, and is // terminated by an empty line. this._hasBody = false; } // don't keep alive connections where the client expects 100 Continue // but we sent a final status; they may put extra bytes on the wire. if (this._expect_continue && !this._sent100) { this.shouldKeepAlive = false; } this._storeHeader(statusLine, headers); } // Docs-only deprecated: DEP0063 ServerResponse.prototype.writeHeader = ServerResponse.prototype.writeHead; function Server(options, requestListener) { if (!(this instanceof Server)) return new Server(options, requestListener); if (typeof options === 'function') { requestListener = options; options = {}; } else if (options == null || typeof options === 'object') { options = util._extend({}, options); } this[kIncomingMessage] = options.IncomingMessage || IncomingMessage; this[kServerResponse] = options.ServerResponse || ServerResponse; net.Server.call(this, { allowHalfOpen: true }); if (requestListener) { this.on('request', requestListener); } // Similar option to this. Too lazy to write my own docs. // http://www.squid-cache.org/Doc/config/half_closed_clients/ // http://wiki.squid-cache.org/SquidFaq/InnerWorkings#What_is_a_half-closed_filedescriptor.3F this.httpAllowHalfOpen = false; this.on('connection', connectionListener); this.timeout = 2 * 60 * 1000; this.keepAliveTimeout = 5000; this._pendingResponseData = 0; this.maxHeadersCount = null; this.headersTimeout = 40 * 1000; // 40 seconds } util.inherits(Server, net.Server); Server.prototype.setTimeout = function setTimeout(msecs, callback) { this.timeout = msecs; if (callback) this.on('timeout', callback); return this; }; function connectionListener(socket) { defaultTriggerAsyncIdScope( getOrSetAsyncId(socket), connectionListenerInternal, this, socket ); } function connectionListenerInternal(server, socket) { debug('SERVER new http connection'); httpSocketSetup(socket); // Ensure that the server property of the socket is correctly set. // See https://github.com/nodejs/node/issues/13435 if (socket.server === null) socket.server = server; // If the user has added a listener to the server, // request, or response, then it's their responsibility. // otherwise, destroy on timeout by default if (server.timeout && typeof socket.setTimeout === 'function') socket.setTimeout(server.timeout); socket.on('timeout', socketOnTimeout); var parser = parsers.alloc(); parser.reinitialize(HTTPParser.REQUEST, parser[is_reused_symbol]); parser.socket = socket; // We are starting to wait for our headers. parser.parsingHeadersStart = nowDate(); socket.parser = parser; // Propagate headers limit from server instance to parser if (typeof server.maxHeadersCount === 'number') { parser.maxHeaderPairs = server.maxHeadersCount << 1; } var state = { onData: null, onEnd: null, onClose: null, onDrain: null, outgoing: [], incoming: [], // `outgoingData` is an approximate amount of bytes queued through all // inactive responses. If more data than the high watermark is queued - we // need to pause TCP socket/HTTP parser, and wait until the data will be // sent to the client. outgoingData: 0, keepAliveTimeoutSet: false }; state.onData = socketOnData.bind(undefined, server, socket, parser, state); state.onEnd = socketOnEnd.bind(undefined, server, socket, parser, state); state.onClose = socketOnClose.bind(undefined, socket, state); state.onDrain = socketOnDrain.bind(undefined, socket, state); socket.on('data', state.onData); socket.on('error', socketOnError); socket.on('end', state.onEnd); socket.on('close', state.onClose); socket.on('drain', state.onDrain); parser.onIncoming = parserOnIncoming.bind(undefined, server, socket, state); // We are consuming socket, so it won't get any actual data socket.on('resume', onSocketResume); socket.on('pause', onSocketPause); // Override on to unconsume on `data`, `readable` listeners socket.on = socketOnWrap; // We only consume the socket if it has never been consumed before. if (socket._handle) { var external = socket._handle._externalStream; if (!socket._handle._consumed && external) { parser._consumed = true; socket._handle._consumed = true; parser.consume(external); } } parser[kOnExecute] = onParserExecute.bind(undefined, server, socket, parser, state); socket._paused = false; } function updateOutgoingData(socket, state, delta) { state.outgoingData += delta; if (socket._paused && state.outgoingData < socket.writableHighWaterMark) { return socketOnDrain(socket, state); } } function socketOnDrain(socket, state) { var needPause = state.outgoingData > socket.writableHighWaterMark; // If we previously paused, then start reading again. if (socket._paused && !needPause) { socket._paused = false; if (socket.parser) socket.parser.resume(); socket.resume(); } } function socketOnTimeout() { var req = this.parser && this.parser.incoming; var reqTimeout = req && !req.complete && req.emit('timeout', this); var res = this._httpMessage; var resTimeout = res && res.emit('timeout', this); var serverTimeout = this.server.emit('timeout', this); if (!reqTimeout && !resTimeout && !serverTimeout) this.destroy(); } function socketOnClose(socket, state) { debug('server socket close'); // mark this parser as reusable if (socket.parser) { freeParser(socket.parser, null, socket); } abortIncoming(state.incoming); } function abortIncoming(incoming) { while (incoming.length) { var req = incoming.shift(); req.aborted = true; req.emit('aborted'); req.emit('close'); } // abort socket._httpMessage ? } function socketOnEnd(server, socket, parser, state) { var ret = parser.finish(); if (ret instanceof Error) { debug('parse error'); socketOnError.call(socket, ret); return; } if (!server.httpAllowHalfOpen) { abortIncoming(state.incoming); if (socket.writable) socket.end(); } else if (state.outgoing.length) { state.outgoing[state.outgoing.length - 1]._last = true; } else if (socket._httpMessage) { socket._httpMessage._last = true; } else if (socket.writable) { socket.end(); } } function socketOnData(server, socket, parser, state, d) { assert(!socket._paused); debug('SERVER socketOnData %d', d.length); var ret = parser.execute(d); onParserExecuteCommon(server, socket, parser, state, ret, d); } function onParserExecute(server, socket, parser, state, ret) { socket._unrefTimer(); const start = parser.parsingHeadersStart; debug('SERVER socketOnParserExecute %d', ret); // If we have not parsed the headers, destroy the socket // after server.headersTimeout to protect from DoS attacks. // start === 0 means that we have parsed headers. if (start !== 0 && nowDate() - start > server.headersTimeout) { const serverTimeout = server.emit('timeout', socket); if (!serverTimeout) socket.destroy(); return; } onParserExecuteCommon(server, socket, parser, state, ret, undefined); } const badRequestResponse = Buffer.from( `HTTP/1.1 400 ${STATUS_CODES[400]}${CRLF}${CRLF}`, 'ascii' ); function socketOnError(e) { // Ignore further errors this.removeListener('error', socketOnError); this.on('error', () => {}); if (!this.server.emit('clientError', e, this)) { if (this.writable) { this.write(badRequestResponse); } this.destroy(e); } } function onParserExecuteCommon(server, socket, parser, state, ret, d) { resetSocketTimeout(server, socket, state); if (ret instanceof Error) { ret.rawPacket = d || parser.getCurrentBuffer(); debug('parse error', ret); socketOnError.call(socket, ret); } else if (parser.incoming && parser.incoming.upgrade) { // Upgrade or CONNECT var bytesParsed = ret; var req = parser.incoming; debug('SERVER upgrade or connect', req.method); if (!d) d = parser.getCurrentBuffer(); socket.removeListener('data', state.onData); socket.removeListener('end', state.onEnd); socket.removeListener('close', state.onClose); socket.removeListener('drain', state.onDrain); socket.removeListener('drain', ondrain); socket.removeListener('error', socketOnError); unconsume(parser, socket); parser.finish(); freeParser(parser, req, socket); parser = null; var eventName = req.method === 'CONNECT' ? 'connect' : 'upgrade'; if (eventName === 'upgrade' || server.listenerCount(eventName) > 0) { debug('SERVER have listener for %s', eventName); var bodyHead = d.slice(bytesParsed, d.length); socket.readableFlowing = null; server.emit(eventName, req, socket, bodyHead); } else { // Got CONNECT method, but have no handler. socket.destroy(); } } if (socket._paused && socket.parser) { // onIncoming paused the socket, we should pause the parser as well debug('pause parser'); socket.parser.pause(); } } function resOnFinish(req, res, socket, state, server) { // Usually the first incoming element should be our request. it may // be that in the case abortIncoming() was called that the incoming // array will be empty. assert(state.incoming.length === 0 || state.incoming[0] === req); state.incoming.shift(); // if the user never called req.read(), and didn't pipe() or // .resume() or .on('data'), then we call req._dump() so that the // bytes will be pulled off the wire. if (!req._consuming && !req._readableState.resumeScheduled) req._dump(); res.detachSocket(socket); if (res._last) { if (typeof socket.destroySoon === 'function') { socket.destroySoon(); } else { socket.end(); } } else if (state.outgoing.length === 0) { if (server.keepAliveTimeout && typeof socket.setTimeout === 'function') { socket.setTimeout(0); socket.setTimeout(server.keepAliveTimeout); state.keepAliveTimeoutSet = true; } } else { // start sending the next message var m = state.outgoing.shift(); if (m) { m.assignSocket(socket); } } } // The following callback is issued after the headers have been read on a // new message. In this callback we setup the response object and pass it // to the user. function parserOnIncoming(server, socket, state, req, keepAlive) { resetSocketTimeout(server, socket, state); // Set to zero to communicate that we have finished parsing. socket.parser.parsingHeadersStart = 0; if (req.upgrade) { req.upgrade = req.method === 'CONNECT' || server.listenerCount('upgrade') > 0; if (req.upgrade) return 2; } state.incoming.push(req); // If the writable end isn't consuming, then stop reading // so that we don't become overwhelmed by a flood of // pipelined requests that may never be resolved. if (!socket._paused) { var ws = socket._writableState; if (ws.needDrain || state.outgoingData >= socket.writableHighWaterMark) { socket._paused = true; // We also need to pause the parser, but don't do that until after // the call to execute, because we may still be processing the last // chunk. socket.pause(); } } var res = new server[kServerResponse](req); res._onPendingData = updateOutgoingData.bind(undefined, socket, state); res.shouldKeepAlive = keepAlive; ; ; if (socket._httpMessage) { // There are already pending outgoing res, append. state.outgoing.push(res); } else { res.assignSocket(socket); } // When we're finished writing the response, check if this is the last // response, if so destroy the socket. res.on('finish', resOnFinish.bind(undefined, req, res, socket, state, server)); if (req.headers.expect !== undefined && (req.httpVersionMajor === 1 && req.httpVersionMinor === 1)) { if (continueExpression.test(req.headers.expect)) { res._expect_continue = true; if (server.listenerCount('checkContinue') > 0) { server.emit('checkContinue', req, res); } else { res.writeContinue(); server.emit('request', req, res); } } else if (server.listenerCount('checkExpectation') > 0) { server.emit('checkExpectation', req, res); } else { res.writeHead(417); res.end(); } } else { server.emit('request', req, res); } return 0; // No special treatment. } function resetSocketTimeout(server, socket, state) { if (!state.keepAliveTimeoutSet) return; socket.setTimeout(server.timeout || 0); state.keepAliveTimeoutSet = false; } function onSocketResume() { // It may seem that the socket is resumed, but this is an enemy's trick to // deceive us! `resume` is emitted asynchronously, and may be called from // `incoming.readStart()`. Stop the socket again here, just to preserve the // state. // // We don't care about stream semantics for the consumed socket anyway. if (this._paused) { this.pause(); return; } if (this._handle && !this._handle.reading) { this._handle.reading = true; this._handle.readStart(); } } function onSocketPause() { if (this._handle && this._handle.reading) { this._handle.reading = false; this._handle.readStop(); } } function unconsume(parser, socket) { if (socket._handle) { if (parser._consumed) parser.unconsume(); parser._consumed = false; socket.removeListener('pause', onSocketPause); socket.removeListener('resume', onSocketResume); } } function socketOnWrap(ev, fn) { var res = net.Socket.prototype.on.call(this, ev, fn); if (!this.parser) { this.on = net.Socket.prototype.on; return res; } if (ev === 'data' || ev === 'readable') unconsume(this.parser, this); return res; } module.exports = { STATUS_CODES, Server, ServerResponse, _connectionListener: connectionListener, kServerResponse }; https// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; require('internal/util').assertCrypto(); const tls = require('tls'); const url = require('url'); const util = require('util'); const { Agent: HttpAgent } = require('_http_agent'); const { Server: HttpServer, _connectionListener, kServerResponse } = require('_http_server'); const { ClientRequest } = require('_http_client'); const { inherits } = util; const debug = util.debuglog('https'); const { urlToOptions, searchParamsSymbol } = require('internal/url'); const { ERR_INVALID_DOMAIN_NAME } = require('internal/errors').codes; const { IncomingMessage, ServerResponse } = require('http'); const { kIncomingMessage } = require('_http_common'); function Server(opts, requestListener) { if (!(this instanceof Server)) return new Server(opts, requestListener); if (typeof opts === 'function') { requestListener = opts; opts = undefined; } opts = util._extend({}, opts); if (!opts.ALPNProtocols) { // http/1.0 is not defined as Protocol IDs in IANA // http://www.iana.org/assignments/tls-extensiontype-values // /tls-extensiontype-values.xhtml#alpn-protocol-ids opts.ALPNProtocols = ['http/1.1']; } this[kIncomingMessage] = opts.IncomingMessage || IncomingMessage; this[kServerResponse] = opts.ServerResponse || ServerResponse; tls.Server.call(this, opts, _connectionListener); this.httpAllowHalfOpen = false; if (requestListener) { this.addListener('request', requestListener); } this.addListener('tlsClientError', function addListener(err, conn) { if (!this.emit('clientError', err, conn)) conn.destroy(err); }); this.timeout = 2 * 60 * 1000; this.keepAliveTimeout = 5000; this.maxHeadersCount = null; this.headersTimeout = 40 * 1000; // 40 seconds } inherits(Server, tls.Server); Server.prototype.setTimeout = HttpServer.prototype.setTimeout; function createServer(opts, requestListener) { return new Server(opts, requestListener); } // HTTPS agents. function createConnection(port, host, options) { if (port !== null && typeof port === 'object') { options = port; } else if (host !== null && typeof host === 'object') { options = host; } else if (options === null || typeof options !== 'object') { options = {}; } if (typeof port === 'number') { options.port = port; } if (typeof host === 'string') { options.host = host; } debug('createConnection', options); if (options._agentKey) { const session = this._getSession(options._agentKey); if (session) { debug('reuse session for %j', options._agentKey); options = util._extend({ session: session }, options); } } const socket = tls.connect(options, () => { if (!options._agentKey) return; this._cacheSession(options._agentKey, socket.getSession()); }); // Evict session on error socket.once('close', (err) => { if (err) this._evictSession(options._agentKey); }); return socket; } function Agent(options) { if (!(this instanceof Agent)) return new Agent(options); HttpAgent.call(this, options); this.defaultPort = 443; this.protocol = 'https:'; this.maxCachedSessions = this.options.maxCachedSessions; if (this.maxCachedSessions === undefined) this.maxCachedSessions = 100; this._sessionCache = { map: {}, list: [] }; } inherits(Agent, HttpAgent); Agent.prototype.createConnection = createConnection; Agent.prototype.getName = function getName(options) { var name = HttpAgent.prototype.getName.call(this, options); name += ':'; if (options.ca) name += options.ca; name += ':'; if (options.cert) name += options.cert; name += ':'; if (options.clientCertEngine) name += options.clientCertEngine; name += ':'; if (options.ciphers) name += options.ciphers; name += ':'; if (options.key) name += options.key; name += ':'; if (options.pfx) name += options.pfx; name += ':'; if (options.rejectUnauthorized !== undefined) name += options.rejectUnauthorized; name += ':'; if (options.servername && options.servername !== options.host) name += options.servername; name += ':'; if (options.secureProtocol) name += options.secureProtocol; name += ':'; if (options.crl) name += options.crl; name += ':'; if (options.honorCipherOrder !== undefined) name += options.honorCipherOrder; name += ':'; if (options.ecdhCurve) name += options.ecdhCurve; name += ':'; if (options.dhparam) name += options.dhparam; name += ':'; if (options.secureOptions !== undefined) name += options.secureOptions; name += ':'; if (options.sessionIdContext) name += options.sessionIdContext; return name; }; Agent.prototype._getSession = function _getSession(key) { return this._sessionCache.map[key]; }; Agent.prototype._cacheSession = function _cacheSession(key, session) { // Cache is disabled if (this.maxCachedSessions === 0) return; // Fast case - update existing entry if (this._sessionCache.map[key]) { this._sessionCache.map[key] = session; return; } // Put new entry if (this._sessionCache.list.length >= this.maxCachedSessions) { const oldKey = this._sessionCache.list.shift(); debug('evicting %j', oldKey); delete this._sessionCache.map[oldKey]; } this._sessionCache.list.push(key); this._sessionCache.map[key] = session; }; Agent.prototype._evictSession = function _evictSession(key) { const index = this._sessionCache.list.indexOf(key); if (index === -1) return; this._sessionCache.list.splice(index, 1); delete this._sessionCache.map[key]; }; const globalAgent = new Agent(); function request(...args) { let options = {}; if (typeof args[0] === 'string') { const urlStr = args.shift(); options = url.parse(urlStr); if (!options.hostname) { throw new ERR_INVALID_DOMAIN_NAME(); } } else if (args[0] && args[0][searchParamsSymbol] && args[0][searchParamsSymbol][searchParamsSymbol]) { // url.URL instance options = urlToOptions(args.shift()); } if (args[0] && typeof args[0] !== 'function') { options = util._extend(options, args.shift()); } options._defaultAgent = globalAgent; args.unshift(options); return new ClientRequest(...args); } function get(input, options, cb) { const req = request(input, options, cb); req.end(); return req; } module.exports = { Agent, globalAgent, Server, createServer, get, request }; inspector'use strict'; const EventEmitter = require('events'); const { ERR_INSPECTOR_ALREADY_CONNECTED, ERR_INSPECTOR_CLOSED, ERR_INSPECTOR_NOT_AVAILABLE, ERR_INSPECTOR_NOT_CONNECTED, ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const util = require('util'); const { Connection, open, url } = process.binding('inspector'); const { originalConsole } = require('internal/process/per_thread'); if (!Connection) throw new ERR_INSPECTOR_NOT_AVAILABLE(); const connectionSymbol = Symbol('connectionProperty'); const messageCallbacksSymbol = Symbol('messageCallbacks'); const nextIdSymbol = Symbol('nextId'); const onMessageSymbol = Symbol('onMessage'); class Session extends EventEmitter { constructor() { super(); this[connectionSymbol] = null; this[nextIdSymbol] = 1; this[messageCallbacksSymbol] = new Map(); } connect() { if (this[connectionSymbol]) throw new ERR_INSPECTOR_ALREADY_CONNECTED('The inspector session'); const connection = new Connection((message) => this[onMessageSymbol](message)); if (connection.sessionAttached) { throw new ERR_INSPECTOR_ALREADY_CONNECTED('Another inspector session'); } this[connectionSymbol] = connection; } [onMessageSymbol](message) { const parsed = JSON.parse(message); try { if (parsed.id) { const callback = this[messageCallbacksSymbol].get(parsed.id); this[messageCallbacksSymbol].delete(parsed.id); if (callback) callback(parsed.error || null, parsed.result || null); } else { this.emit(parsed.method, parsed); this.emit('inspectorNotification', parsed); } } catch (error) { process.emitWarning(error); } } post(method, params, callback) { validateString(method, 'method'); if (!callback && util.isFunction(params)) { callback = params; params = null; } if (params && typeof params !== 'object') { throw new ERR_INVALID_ARG_TYPE('params', 'Object', params); } if (callback && typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } if (!this[connectionSymbol]) { throw new ERR_INSPECTOR_NOT_CONNECTED(); } const id = this[nextIdSymbol]++; const message = { id, method }; if (params) { message.params = params; } if (callback) { this[messageCallbacksSymbol].set(id, callback); } this[connectionSymbol].dispatch(JSON.stringify(message)); } disconnect() { if (!this[connectionSymbol]) return; this[connectionSymbol].disconnect(); this[connectionSymbol] = null; const remainingCallbacks = this[messageCallbacksSymbol].values(); for (const callback of remainingCallbacks) { process.nextTick(callback, new ERR_INSPECTOR_CLOSED()); } this[messageCallbacksSymbol].clear(); this[nextIdSymbol] = 1; } } module.exports = { open: (port, host, wait) => open(port, host, !!wait), close: process._debugEnd, url: url, console: originalConsole, Session }; module'use strict'; module.exports = require('internal/modules/cjs/loader'); net// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const EventEmitter = require('events'); const stream = require('stream'); const util = require('util'); const internalUtil = require('internal/util'); const { isIP, isIPv4, isIPv6, isLegalPort, normalizedArgsSymbol, makeSyncWrite } = require('internal/net'); const assert = require('assert'); const { UV_EADDRINUSE, UV_EINVAL } = process.binding('uv'); const { Buffer } = require('buffer'); const TTYWrap = process.binding('tty_wrap'); const { ShutdownWrap } = process.binding('stream_wrap'); const { TCP, TCPConnectWrap, constants: TCPConstants } = process.binding('tcp_wrap'); const { Pipe, PipeConnectWrap, constants: PipeConstants } = process.binding('pipe_wrap'); const { newAsyncId, defaultTriggerAsyncIdScope, symbols: { async_id_symbol, owner_symbol } } = require('internal/async_hooks'); const { createWriteWrap, writevGeneric, writeGeneric, onStreamRead, kUpdateTimer } = require('internal/stream_base_commons'); const { codes: { ERR_INVALID_ADDRESS_FAMILY, ERR_INVALID_ARG_TYPE, ERR_INVALID_FD_TYPE, ERR_INVALID_IP_ADDRESS, ERR_INVALID_OPT_VALUE, ERR_SERVER_ALREADY_LISTEN, ERR_SERVER_NOT_RUNNING, ERR_SOCKET_BAD_PORT, ERR_SOCKET_CLOSED }, errnoException, exceptionWithHostPort, uvExceptionWithHostPort } = require('internal/errors'); const { validateInt32, validateString } = require('internal/validators'); const kLastWriteQueueSize = Symbol('lastWriteQueueSize'); // Lazy loaded to improve startup performance. let cluster; let dns; const { kTimeout, setUnrefTimeout, validateTimerDuration } = require('internal/timers'); function noop() {} function createHandle(fd, is_server) { validateInt32(fd, 'fd', 0); const type = TTYWrap.guessHandleType(fd); if (type === 'PIPE') { return new Pipe( is_server ? PipeConstants.SERVER : PipeConstants.SOCKET ); } if (type === 'TCP') { return new TCP( is_server ? TCPConstants.SERVER : TCPConstants.SOCKET ); } throw new ERR_INVALID_FD_TYPE(type); } function getNewAsyncId(handle) { return (!handle || typeof handle.getAsyncId !== 'function') ? newAsyncId() : handle.getAsyncId(); } const debug = util.debuglog('net'); function isPipeName(s) { return typeof s === 'string' && toNumber(s) === false; } function createServer(options, connectionListener) { return new Server(options, connectionListener); } // Target API: // // var s = net.connect({port: 80, host: 'google.com'}, function() { // ... // }); // // There are various forms: // // connect(options, [cb]) // connect(port, [host], [cb]) // connect(path, [cb]); // function connect(...args) { var normalized = normalizeArgs(args); var options = normalized[0]; debug('createConnection', normalized); var socket = new Socket(options); if (options.timeout) { socket.setTimeout(options.timeout); } return socket.connect(normalized); } // Returns an array [options, cb], where options is an object, // cb is either a function or null. // Used to normalize arguments of Socket.prototype.connect() and // Server.prototype.listen(). Possible combinations of parameters: // (options[...][, cb]) // (path[...][, cb]) // ([port][, host][...][, cb]) // For Socket.prototype.connect(), the [...] part is ignored // For Server.prototype.listen(), the [...] part is [, backlog] // but will not be handled here (handled in listen()) function normalizeArgs(args) { var arr; if (args.length === 0) { arr = [{}, null]; arr[normalizedArgsSymbol] = true; return arr; } const arg0 = args[0]; var options = {}; if (typeof arg0 === 'object' && arg0 !== null) { // (options[...][, cb]) options = arg0; } else if (isPipeName(arg0)) { // (path[...][, cb]) options.path = arg0; } else { // ([port][, host][...][, cb]) options.port = arg0; if (args.length > 1 && typeof args[1] === 'string') { options.host = args[1]; } } var cb = args[args.length - 1]; if (typeof cb !== 'function') arr = [options, null]; else arr = [options, cb]; arr[normalizedArgsSymbol] = true; return arr; } // called when creating new Socket, or when re-using a closed Socket function initSocketHandle(self) { self._undestroy(); self._sockname = null; // Handle creation may be deferred to bind() or connect() time. if (self._handle) { self._handle[owner_symbol] = self; self._handle.onread = onStreamRead; self[async_id_symbol] = getNewAsyncId(self._handle); } } const kBytesRead = Symbol('kBytesRead'); const kBytesWritten = Symbol('kBytesWritten'); function Socket(options) { if (!(this instanceof Socket)) return new Socket(options); this.connecting = false; // Problem with this is that users can supply their own handle, that may not // have _handle.getAsyncId(). In this case an[async_id_symbol] should // probably be supplied by async_hooks. this[async_id_symbol] = -1; this._hadError = false; this._handle = null; this._parent = null; this._host = null; this[kLastWriteQueueSize] = 0; this[kTimeout] = null; if (typeof options === 'number') options = { fd: options }; // Legacy interface. else options = util._extend({}, options); options.readable = options.readable || false; options.writable = options.writable || false; const { allowHalfOpen } = options; // Prevent the "no-half-open enforcer" from being inherited from `Duplex`. options.allowHalfOpen = true; // For backwards compat do not emit close on destroy. options.emitClose = false; stream.Duplex.call(this, options); // Default to *not* allowing half open sockets. this.allowHalfOpen = Boolean(allowHalfOpen); if (options.handle) { this._handle = options.handle; // private this[async_id_symbol] = getNewAsyncId(this._handle); } else if (options.fd !== undefined) { const { fd } = options; let err; // createHandle will throw ERR_INVALID_FD_TYPE if `fd` is not // a valid `PIPE` or `TCP` descriptor this._handle = createHandle(fd, false); err = this._handle.open(fd); // While difficult to fabricate, in some architectures // `open` may return an error code for valid file descriptors // which cannot be opened. This is difficult to test as most // un-openable fds will throw on `createHandle` if (err) throw errnoException(err, 'open'); this[async_id_symbol] = this._handle.getAsyncId(); // options.fd can be string (since it is user-defined), // so changing this to === would be semver-major // See: https://github.com/nodejs/node/pull/11513 // eslint-disable-next-line eqeqeq if ((fd == 1 || fd == 2) && (this._handle instanceof Pipe) && process.platform === 'win32') { // Make stdout and stderr blocking on Windows err = this._handle.setBlocking(true); if (err) throw errnoException(err, 'setBlocking'); this._writev = null; this._write = makeSyncWrite(fd); // makeSyncWrite adjusts this value like the original handle would, so // we need to let it do that by turning it into a writable, own property. Object.defineProperty(this._handle, 'bytesWritten', { value: 0, writable: true }); } } // shut down the socket when we're finished with it. this.on('end', onReadableStreamEnd); initSocketHandle(this); this._pendingData = null; this._pendingEncoding = ''; // handle strings directly this._writableState.decodeStrings = false; // if we have a handle, then start the flow of data into the // buffer. if not, then this will happen when we connect if (this._handle && options.readable !== false) { if (options.pauseOnCreate) { // stop the handle from reading and pause the stream this._handle.reading = false; this._handle.readStop(); this.readableFlowing = false; } else if (!options.manualStart) { this.read(0); } } // Reserve properties this.server = null; this._server = null; // Used after `.destroy()` this[kBytesRead] = 0; this[kBytesWritten] = 0; } util.inherits(Socket, stream.Duplex); // Refresh existing timeouts. Socket.prototype._unrefTimer = function _unrefTimer() { for (var s = this; s !== null; s = s._parent) { if (s[kTimeout]) s[kTimeout].refresh(); } }; // the user has called .end(), and all the bytes have been // sent out to the other side. Socket.prototype._final = function(cb) { // If still connecting - defer handling `_final` until 'connect' will happen if (this.connecting) { debug('_final: not yet connected'); return this.once('connect', () => this._final(cb)); } if (!this._handle) return cb(); debug('_final: not ended, call shutdown()'); var req = new ShutdownWrap(); req.oncomplete = afterShutdown; req.handle = this._handle; req.callback = cb; var err = this._handle.shutdown(req); if (err) return this.destroy(errnoException(err, 'shutdown')); }; function afterShutdown(status, handle) { var self = handle[owner_symbol]; debug('afterShutdown destroyed=%j', self.destroyed, self._readableState); this.callback(); // callback may come after call to destroy. if (self.destroyed) return; if (!self.readable || self._readableState.ended) { debug('readableState ended, destroying'); self.destroy(); } } // Provide a better error message when we call end() as a result // of the other side sending a FIN. The standard 'write after end' // is overly vague, and makes it seem like the user's code is to blame. function writeAfterFIN(chunk, encoding, cb) { if (typeof encoding === 'function') { cb = encoding; encoding = null; } // eslint-disable-next-line no-restricted-syntax var er = new Error('This socket has been ended by the other party'); er.code = 'EPIPE'; // TODO: defer error events consistently everywhere, not just the cb this.emit('error', er); if (typeof cb === 'function') { defaultTriggerAsyncIdScope(this[async_id_symbol], process.nextTick, cb, er); } } Socket.prototype.setTimeout = function(msecs, callback) { this.timeout = msecs; // Type checking identical to timers.enroll() msecs = validateTimerDuration(msecs); // Attempt to clear an existing timer in both cases - // even if it will be rescheduled we don't want to leak an existing timer. clearTimeout(this[kTimeout]); if (msecs === 0) { if (callback) { this.removeListener('timeout', callback); } } else { this[kTimeout] = setUnrefTimeout(this._onTimeout.bind(this), msecs); if (callback) { this.once('timeout', callback); } } return this; }; Socket.prototype._onTimeout = function() { const handle = this._handle; const lastWriteQueueSize = this[kLastWriteQueueSize]; if (lastWriteQueueSize > 0 && handle) { // `lastWriteQueueSize !== writeQueueSize` means there is // an active write in progress, so we suppress the timeout. const { writeQueueSize } = handle; if (lastWriteQueueSize !== writeQueueSize) { this[kLastWriteQueueSize] = writeQueueSize; this._unrefTimer(); return; } } debug('_onTimeout'); this.emit('timeout'); }; Socket.prototype.setNoDelay = function(enable) { if (!this._handle) { this.once('connect', enable ? this.setNoDelay : () => this.setNoDelay(enable)); return this; } // backwards compatibility: assume true when `enable` is omitted if (this._handle.setNoDelay) this._handle.setNoDelay(enable === undefined ? true : !!enable); return this; }; Socket.prototype.setKeepAlive = function(setting, msecs) { if (!this._handle) { this.once('connect', () => this.setKeepAlive(setting, msecs)); return this; } if (this._handle.setKeepAlive) this._handle.setKeepAlive(setting, ~~(msecs / 1000)); return this; }; Socket.prototype.address = function() { return this._getsockname(); }; Object.defineProperty(Socket.prototype, '_connecting', { get: function() { return this.connecting; } }); Object.defineProperty(Socket.prototype, 'readyState', { get: function() { if (this.connecting) { return 'opening'; } else if (this.readable && this.writable) { return 'open'; } else if (this.readable && !this.writable) { return 'readOnly'; } else if (!this.readable && this.writable) { return 'writeOnly'; } else { return 'closed'; } } }); Object.defineProperty(Socket.prototype, 'bufferSize', { get: function() { if (this._handle) { return this[kLastWriteQueueSize] + this.writableLength; } } }); Object.defineProperty(Socket.prototype, kUpdateTimer, { get: function() { return this._unrefTimer; } }); // Just call handle.readStart until we have enough in the buffer Socket.prototype._read = function(n) { debug('_read'); if (this.connecting || !this._handle) { debug('_read wait for connection'); this.once('connect', () => this._read(n)); } else if (!this._handle.reading) { // not already reading, start the flow debug('Socket._read readStart'); this._handle.reading = true; var err = this._handle.readStart(); if (err) this.destroy(errnoException(err, 'read')); } }; Socket.prototype.end = function(data, encoding, callback) { stream.Duplex.prototype.end.call(this, data, encoding, callback); ; return this; }; // Called when the 'end' event is emitted. function onReadableStreamEnd() { if (!this.allowHalfOpen) { this.write = writeAfterFIN; if (this.writable) this.end(); } maybeDestroy(this); } // Call whenever we set writable=false or readable=false function maybeDestroy(socket) { if (!socket.readable && !socket.writable && !socket.destroyed && !socket.connecting && !socket.writableLength) { socket.destroy(); } } Socket.prototype.destroySoon = function() { if (this.writable) this.end(); if (this._writableState.finished) this.destroy(); else this.once('finish', this.destroy); }; Socket.prototype._destroy = function(exception, cb) { debug('destroy'); this.connecting = false; this.readable = this.writable = false; for (var s = this; s !== null; s = s._parent) { clearTimeout(s[kTimeout]); } debug('close'); if (this._handle) { if (this !== process.stderr) debug('close handle'); var isException = exception ? true : false; // `bytesRead` and `kBytesWritten` should be accessible after `.destroy()` this[kBytesRead] = this._handle.bytesRead; this[kBytesWritten] = this._handle.bytesWritten; this._handle.close(() => { debug('emit close'); this.emit('close', isException); }); this._handle.onread = noop; this._handle = null; this._sockname = null; } cb(exception); if (this._server) { ; debug('has server'); this._server._connections--; if (this._server._emitCloseIfDrained) { this._server._emitCloseIfDrained(); } } }; Socket.prototype._getpeername = function() { if (!this._peername) { if (!this._handle || !this._handle.getpeername) { return {}; } var out = {}; var err = this._handle.getpeername(out); if (err) return {}; // FIXME(bnoordhuis) Throw? this._peername = out; } return this._peername; }; function protoGetter(name, callback) { Object.defineProperty(Socket.prototype, name, { configurable: false, enumerable: true, get: callback }); } protoGetter('bytesRead', function bytesRead() { return this._handle ? this._handle.bytesRead : this[kBytesRead]; }); protoGetter('remoteAddress', function remoteAddress() { return this._getpeername().address; }); protoGetter('remoteFamily', function remoteFamily() { return this._getpeername().family; }); protoGetter('remotePort', function remotePort() { return this._getpeername().port; }); Socket.prototype._getsockname = function() { if (!this._handle || !this._handle.getsockname) { return {}; } if (!this._sockname) { var out = {}; var err = this._handle.getsockname(out); if (err) return {}; // FIXME(bnoordhuis) Throw? this._sockname = out; } return this._sockname; }; protoGetter('localAddress', function localAddress() { return this._getsockname().address; }); protoGetter('localPort', function localPort() { return this._getsockname().port; }); Socket.prototype._writeGeneric = function(writev, data, encoding, cb) { // If we are still connecting, then buffer this for later. // The Writable logic will buffer up any more writes while // waiting for this one to be done. if (this.connecting) { this._pendingData = data; this._pendingEncoding = encoding; this.once('connect', function connect() { this._writeGeneric(writev, data, encoding, cb); }); return; } this._pendingData = null; this._pendingEncoding = ''; if (!this._handle) { this.destroy(new ERR_SOCKET_CLOSED(), cb); return false; } this._unrefTimer(); var req = createWriteWrap(this._handle, afterWrite); if (writev) writevGeneric(this, req, data, cb); else writeGeneric(this, req, data, encoding, cb); if (req.async) this[kLastWriteQueueSize] = req.bytes; }; Socket.prototype._writev = function(chunks, cb) { this._writeGeneric(true, chunks, '', cb); }; Socket.prototype._write = function(data, encoding, cb) { this._writeGeneric(false, data, encoding, cb); }; // Legacy alias. Having this is probably being overly cautious, but it doesn't // really hurt anyone either. This can probably be removed safely if desired. protoGetter('_bytesDispatched', function _bytesDispatched() { return this._handle ? this._handle.bytesWritten : this[kBytesWritten]; }); protoGetter('bytesWritten', function bytesWritten() { var bytes = this._bytesDispatched; const state = this._writableState; const data = this._pendingData; const encoding = this._pendingEncoding; if (!state) return undefined; this.writableBuffer.forEach(function(el) { if (el.chunk instanceof Buffer) bytes += el.chunk.length; else bytes += Buffer.byteLength(el.chunk, el.encoding); }); if (Array.isArray(data)) { // was a writev, iterate over chunks to get total length for (var i = 0; i < data.length; i++) { const chunk = data[i]; if (data.allBuffers || chunk instanceof Buffer) bytes += chunk.length; else bytes += Buffer.byteLength(chunk.chunk, chunk.encoding); } } else if (data) { // Writes are either a string or a Buffer. if (typeof data !== 'string') bytes += data.length; else bytes += Buffer.byteLength(data, encoding); } return bytes; }); function afterWrite(status, handle, err) { var self = handle[owner_symbol]; if (self !== process.stderr && self !== process.stdout) debug('afterWrite', status); if (this.async) self[kLastWriteQueueSize] = 0; // callback may come after call to destroy. if (self.destroyed) { debug('afterWrite destroyed'); return; } if (status < 0) { var ex = errnoException(status, 'write', this.error); debug('write failure', ex); self.destroy(ex, this.callback); return; } self._unrefTimer(); if (self !== process.stderr && self !== process.stdout) debug('afterWrite call cb'); if (this.callback) this.callback.call(undefined); } function checkBindError(err, port, handle) { // EADDRINUSE may not be reported until we call listen() or connect(). // To complicate matters, a failed bind() followed by listen() or connect() // will implicitly bind to a random port. Ergo, check that the socket is // bound to the expected port before calling listen() or connect(). // // FIXME(bnoordhuis) Doesn't work for pipe handles, they don't have a // getsockname() method. Non-issue for now, the cluster module doesn't // really support pipes anyway. if (err === 0 && port > 0 && handle.getsockname) { var out = {}; err = handle.getsockname(out); if (err === 0 && port !== out.port) { debug(`checkBindError, bound to ${out.port} instead of ${port}`); err = UV_EADDRINUSE; } } return err; } function internalConnect( self, address, port, addressType, localAddress, localPort) { // TODO return promise from Socket.prototype.connect which // wraps _connectReq. assert(self.connecting); var err; if (localAddress || localPort) { if (addressType === 4) { localAddress = localAddress || '0.0.0.0'; err = self._handle.bind(localAddress, localPort); } else { // addressType === 6 localAddress = localAddress || '::'; err = self._handle.bind6(localAddress, localPort); } debug('binding to localAddress: %s and localPort: %d (addressType: %d)', localAddress, localPort, addressType); err = checkBindError(err, localPort, self._handle); if (err) { const ex = exceptionWithHostPort(err, 'bind', localAddress, localPort); self.destroy(ex); return; } } if (addressType === 6 || addressType === 4) { const req = new TCPConnectWrap(); req.oncomplete = afterConnect; req.address = address; req.port = port; req.localAddress = localAddress; req.localPort = localPort; if (addressType === 4) err = self._handle.connect(req, address, port); else err = self._handle.connect6(req, address, port); } else { const req = new PipeConnectWrap(); req.address = address; req.oncomplete = afterConnect; err = self._handle.connect(req, address, afterConnect); } if (err) { var sockname = self._getsockname(); var details; if (sockname) { details = sockname.address + ':' + sockname.port; } const ex = exceptionWithHostPort(err, 'connect', address, port, details); self.destroy(ex); } } Socket.prototype.connect = function(...args) { let normalized; // If passed an array, it's treated as an array of arguments that have // already been normalized (so we don't normalize more than once). This has // been solved before in https://github.com/nodejs/node/pull/12342, but was // reverted as it had unintended side effects. if (Array.isArray(args[0]) && args[0][normalizedArgsSymbol]) { normalized = args[0]; } else { normalized = normalizeArgs(args); } var options = normalized[0]; var cb = normalized[1]; if (this.write !== Socket.prototype.write) this.write = Socket.prototype.write; if (this.destroyed) { this._undestroy(); this._handle = null; this._peername = null; this._sockname = null; } const { path } = options; var pipe = !!path; debug('pipe', pipe, path); if (!this._handle) { this._handle = pipe ? new Pipe(PipeConstants.SOCKET) : new TCP(TCPConstants.SOCKET); initSocketHandle(this); } if (cb !== null) { this.once('connect', cb); } this._unrefTimer(); this.connecting = true; this.writable = true; if (pipe) { validateString(path, 'options.path'); defaultTriggerAsyncIdScope( this[async_id_symbol], internalConnect, this, path ); } else { lookupAndConnect(this, options); } return this; }; function lookupAndConnect(self, options) { var { port, localAddress, localPort } = options; var host = options.host || 'localhost'; if (localAddress && !isIP(localAddress)) { throw new ERR_INVALID_IP_ADDRESS(localAddress); } if (localPort && typeof localPort !== 'number') { throw new ERR_INVALID_ARG_TYPE('options.localPort', 'number', localPort); } if (typeof port !== 'undefined') { if (typeof port !== 'number' && typeof port !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.port', ['number', 'string'], port); } if (!isLegalPort(port)) { throw new ERR_SOCKET_BAD_PORT(port); } } port |= 0; // If host is an IP, skip performing a lookup var addressType = isIP(host); if (addressType) { defaultTriggerAsyncIdScope(self[async_id_symbol], process.nextTick, () => { if (self.connecting) defaultTriggerAsyncIdScope( self[async_id_symbol], internalConnect, self, host, port, addressType, localAddress, localPort ); }); return; } if (options.lookup && typeof options.lookup !== 'function') throw new ERR_INVALID_ARG_TYPE('options.lookup', 'Function', options.lookup); if (dns === undefined) dns = require('dns'); var dnsopts = { family: options.family, hints: options.hints || 0 }; if (process.platform !== 'win32' && dnsopts.family !== 4 && dnsopts.family !== 6 && dnsopts.hints === 0) { dnsopts.hints = dns.ADDRCONFIG; } debug('connect: find host', host); debug('connect: dns options', dnsopts); self._host = host; var lookup = options.lookup || dns.lookup; defaultTriggerAsyncIdScope(self[async_id_symbol], function() { lookup(host, dnsopts, function emitLookup(err, ip, addressType) { self.emit('lookup', err, ip, addressType, host); // It's possible we were destroyed while looking this up. // XXX it would be great if we could cancel the promise returned by // the look up. if (!self.connecting) return; if (err) { // net.createConnection() creates a net.Socket object and // immediately calls net.Socket.connect() on it (that's us). // There are no event listeners registered yet so defer the // error event to the next tick. err.host = options.host; err.port = options.port; err.message = err.message + ' ' + options.host + ':' + options.port; process.nextTick(connectErrorNT, self, err); } else if (addressType !== 4 && addressType !== 6) { err = new ERR_INVALID_ADDRESS_FAMILY(addressType); err.host = options.host; err.port = options.port; err.message = err.message + ' ' + options.host + ':' + options.port; process.nextTick(connectErrorNT, self, err); } else { self._unrefTimer(); defaultTriggerAsyncIdScope( self[async_id_symbol], internalConnect, self, ip, port, addressType, localAddress, localPort ); } }); }); } function connectErrorNT(self, err) { self.destroy(err); } Socket.prototype.ref = function() { if (!this._handle) { this.once('connect', this.ref); return this; } if (typeof this._handle.ref === 'function') { this._handle.ref(); } return this; }; Socket.prototype.unref = function() { if (!this._handle) { this.once('connect', this.unref); return this; } if (typeof this._handle.unref === 'function') { this._handle.unref(); } return this; }; function afterConnect(status, handle, req, readable, writable) { var self = handle[owner_symbol]; // callback may come after call to destroy if (self.destroyed) { return; } // Update handle if it was wrapped // TODO(indutny): assert that the handle is actually an ancestor of old one handle = self._handle; debug('afterConnect'); assert(self.connecting); self.connecting = false; self._sockname = null; if (status === 0) { self.readable = readable; if (!self._writableState.ended) self.writable = writable; self._unrefTimer(); self.emit('connect'); self.emit('ready'); // start the first read, or get an immediate EOF. // this doesn't actually consume any bytes, because len=0. if (readable && !self.isPaused()) self.read(0); } else { self.connecting = false; var details; if (req.localAddress && req.localPort) { details = req.localAddress + ':' + req.localPort; } var ex = exceptionWithHostPort(status, 'connect', req.address, req.port, details); if (details) { ex.localAddress = req.localAddress; ex.localPort = req.localPort; } self.destroy(ex); } } function Server(options, connectionListener) { if (!(this instanceof Server)) return new Server(options, connectionListener); EventEmitter.call(this); if (typeof options === 'function') { connectionListener = options; options = {}; this.on('connection', connectionListener); } else if (options == null || typeof options === 'object') { options = options || {}; if (typeof connectionListener === 'function') { this.on('connection', connectionListener); } } else { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } this._connections = 0; Object.defineProperty(this, 'connections', { get: internalUtil.deprecate(() => { if (this._usingWorkers) { return null; } return this._connections; }, 'Server.connections property is deprecated. ' + 'Use Server.getConnections method instead.', 'DEP0020'), set: internalUtil.deprecate((val) => (this._connections = val), 'Server.connections property is deprecated.', 'DEP0020'), configurable: true, enumerable: false }); this[async_id_symbol] = -1; this._handle = null; this._usingWorkers = false; this._workers = []; this._unref = false; this.allowHalfOpen = options.allowHalfOpen || false; this.pauseOnConnect = !!options.pauseOnConnect; } util.inherits(Server, EventEmitter); function toNumber(x) { return (x = Number(x)) >= 0 ? x : false; } // Returns handle if it can be created, or error code if it can't function createServerHandle(address, port, addressType, fd) { var err = 0; // assign handle in listen, and clean up if bind or listen fails var handle; var isTCP = false; if (typeof fd === 'number' && fd >= 0) { try { handle = createHandle(fd, true); } catch (e) { // Not a fd we can listen on. This will trigger an error. debug('listen invalid fd=%d:', fd, e.message); return UV_EINVAL; } err = handle.open(fd); if (err) return err; handle.readable = true; handle.writable = true; assert(!address && !port); } else if (port === -1 && addressType === -1) { handle = new Pipe(PipeConstants.SERVER); if (process.platform === 'win32') { var instances = parseInt(process.env.NODE_PENDING_PIPE_INSTANCES); if (!Number.isNaN(instances)) { handle.setPendingInstances(instances); } } } else { handle = new TCP(TCPConstants.SERVER); isTCP = true; } if (address || port || isTCP) { debug('bind to', address || 'any'); if (!address) { // Try binding to ipv6 first err = handle.bind6('::', port); if (err) { handle.close(); // Fallback to ipv4 return createServerHandle('0.0.0.0', port); } } else if (addressType === 6) { err = handle.bind6(address, port); } else { err = handle.bind(address, port); } } if (err) { handle.close(); return err; } return handle; } function setupListenHandle(address, port, addressType, backlog, fd) { debug('setupListenHandle', address, port, addressType, backlog, fd); // If there is not yet a handle, we need to create one and bind. // In the case of a server sent via IPC, we don't need to do this. if (this._handle) { debug('setupListenHandle: have a handle already'); } else { debug('setupListenHandle: create a handle'); var rval = null; // Try to bind to the unspecified IPv6 address, see if IPv6 is available if (!address && typeof fd !== 'number') { rval = createServerHandle('::', port, 6, fd); if (typeof rval === 'number') { rval = null; address = '0.0.0.0'; addressType = 4; } else { address = '::'; addressType = 6; } } if (rval === null) rval = createServerHandle(address, port, addressType, fd); if (typeof rval === 'number') { var error = uvExceptionWithHostPort(rval, 'listen', address, port); process.nextTick(emitErrorNT, this, error); return; } this._handle = rval; } this[async_id_symbol] = getNewAsyncId(this._handle); this._handle.onconnection = onconnection; this._handle[owner_symbol] = this; // Use a backlog of 512 entries. We pass 511 to the listen() call because // the kernel does: backlogsize = roundup_pow_of_two(backlogsize + 1); // which will thus give us a backlog of 512 entries. var err = this._handle.listen(backlog || 511); if (err) { var ex = uvExceptionWithHostPort(err, 'listen', address, port); this._handle.close(); this._handle = null; defaultTriggerAsyncIdScope(this[async_id_symbol], process.nextTick, emitErrorNT, this, ex); return; } // generate connection key, this should be unique to the connection this._connectionKey = addressType + ':' + address + ':' + port; // unref the handle if the server was unref'ed prior to listening if (this._unref) this.unref(); defaultTriggerAsyncIdScope(this[async_id_symbol], process.nextTick, emitListeningNT, this); } Server.prototype._listen2 = setupListenHandle; // legacy alias function emitErrorNT(self, err) { self.emit('error', err); } function emitListeningNT(self) { // ensure handle hasn't closed if (self._handle) self.emit('listening'); } function listenInCluster(server, address, port, addressType, backlog, fd, exclusive) { exclusive = !!exclusive; if (cluster === undefined) cluster = require('cluster'); if (cluster.isMaster || exclusive) { // Will create a new handle // _listen2 sets up the listened handle, it is still named like this // to avoid breaking code that wraps this method server._listen2(address, port, addressType, backlog, fd); return; } const serverQuery = { address: address, port: port, addressType: addressType, fd: fd, flags: 0 }; // Get the master's server handle, and listen on it cluster._getServer(server, serverQuery, listenOnMasterHandle); function listenOnMasterHandle(err, handle) { err = checkBindError(err, port, handle); if (err) { var ex = exceptionWithHostPort(err, 'bind', address, port); return server.emit('error', ex); } // Reuse master's server handle server._handle = handle; // _listen2 sets up the listened handle, it is still named like this // to avoid breaking code that wraps this method server._listen2(address, port, addressType, backlog, fd); } } Server.prototype.listen = function(...args) { var normalized = normalizeArgs(args); var options = normalized[0]; var cb = normalized[1]; if (this._handle) { throw new ERR_SERVER_ALREADY_LISTEN(); } if (cb !== null) { this.once('listening', cb); } var backlogFromArgs = // (handle, backlog) or (path, backlog) or (port, backlog) toNumber(args.length > 1 && args[1]) || toNumber(args.length > 2 && args[2]); // (port, host, backlog) options = options._handle || options.handle || options; // (handle[, backlog][, cb]) where handle is an object with a handle if (options instanceof TCP) { this._handle = options; this[async_id_symbol] = this._handle.getAsyncId(); listenInCluster(this, null, -1, -1, backlogFromArgs); return this; } // (handle[, backlog][, cb]) where handle is an object with a fd if (typeof options.fd === 'number' && options.fd >= 0) { listenInCluster(this, null, null, null, backlogFromArgs, options.fd); return this; } // ([port][, host][, backlog][, cb]) where port is omitted, // that is, listen(), listen(null), listen(cb), or listen(null, cb) // or (options[, cb]) where options.port is explicitly set as undefined or // null, bind to an arbitrary unused port if (args.length === 0 || typeof args[0] === 'function' || (typeof options.port === 'undefined' && 'port' in options) || options.port === null) { options.port = 0; } // ([port][, host][, backlog][, cb]) where port is specified // or (options[, cb]) where options.port is specified // or if options.port is normalized as 0 before var backlog; if (typeof options.port === 'number' || typeof options.port === 'string') { if (!isLegalPort(options.port)) { throw new ERR_SOCKET_BAD_PORT(options.port); } backlog = options.backlog || backlogFromArgs; // start TCP server listening on host:port if (options.host) { lookupAndListen(this, options.port | 0, options.host, backlog, options.exclusive); } else { // Undefined host, listens on unspecified address // Default addressType 4 will be used to search for master server listenInCluster(this, null, options.port | 0, 4, backlog, undefined, options.exclusive); } return this; } // (path[, backlog][, cb]) or (options[, cb]) // where path or options.path is a UNIX domain socket or Windows pipe if (options.path && isPipeName(options.path)) { var pipeName = this._pipeName = options.path; backlog = options.backlog || backlogFromArgs; listenInCluster(this, pipeName, -1, -1, backlog, undefined, options.exclusive); if (!this._handle) { // Failed and an error shall be emitted in the next tick. // Therefore, we directly return. return this; } let mode = 0; if (options.readableAll === true) mode |= PipeConstants.UV_READABLE; if (options.writableAll === true) mode |= PipeConstants.UV_WRITABLE; if (mode !== 0) { const err = this._handle.fchmod(mode); if (err) { this._handle.close(); this._handle = null; throw errnoException(err, 'uv_pipe_chmod'); } } return this; } throw new ERR_INVALID_OPT_VALUE('options', util.inspect(options)); }; function lookupAndListen(self, port, address, backlog, exclusive) { if (dns === undefined) dns = require('dns'); dns.lookup(address, function doListen(err, ip, addressType) { if (err) { self.emit('error', err); } else { addressType = ip ? addressType : 4; listenInCluster(self, ip, port, addressType, backlog, undefined, exclusive); } }); } Object.defineProperty(Server.prototype, 'listening', { get: function() { return !!this._handle; }, configurable: true, enumerable: true }); Server.prototype.address = function() { if (this._handle && this._handle.getsockname) { var out = {}; var err = this._handle.getsockname(out); if (err) { throw errnoException(err, 'address'); } return out; } else if (this._pipeName) { return this._pipeName; } else { return null; } }; function onconnection(err, clientHandle) { var handle = this; var self = handle[owner_symbol]; debug('onconnection'); if (err) { self.emit('error', errnoException(err, 'accept')); return; } if (self.maxConnections && self._connections >= self.maxConnections) { clientHandle.close(); return; } var socket = new Socket({ handle: clientHandle, allowHalfOpen: self.allowHalfOpen, pauseOnCreate: self.pauseOnConnect, readable: true, writable: true }); self._connections++; socket.server = self; socket._server = self; ; ; self.emit('connection', socket); } Server.prototype.getConnections = function(cb) { const self = this; function end(err, connections) { defaultTriggerAsyncIdScope(self[async_id_symbol], process.nextTick, cb, err, connections); } if (!this._usingWorkers) { end(null, this._connections); return this; } // Poll workers var left = this._workers.length; var total = this._connections; function oncount(err, count) { if (err) { left = -1; return end(err); } total += count; if (--left === 0) return end(null, total); } for (var n = 0; n < this._workers.length; n++) { this._workers[n].getConnections(oncount); } return this; }; Server.prototype.close = function(cb) { if (typeof cb === 'function') { if (!this._handle) { this.once('close', function close() { cb(new ERR_SERVER_NOT_RUNNING()); }); } else { this.once('close', cb); } } if (this._handle) { this._handle.close(); this._handle = null; } if (this._usingWorkers) { var left = this._workers.length; const onWorkerClose = () => { if (--left !== 0) return; this._connections = 0; this._emitCloseIfDrained(); }; // Increment connections to be sure that, even if all sockets will be closed // during polling of workers, `close` event will be emitted only once. this._connections++; // Poll workers for (var n = 0; n < this._workers.length; n++) this._workers[n].close(onWorkerClose); } else { this._emitCloseIfDrained(); } return this; }; Server.prototype._emitCloseIfDrained = function() { debug('SERVER _emitCloseIfDrained'); if (this._handle || this._connections) { debug('SERVER handle? %j connections? %d', !!this._handle, this._connections); return; } defaultTriggerAsyncIdScope(this[async_id_symbol], process.nextTick, emitCloseNT, this); }; function emitCloseNT(self) { debug('SERVER: emit close'); self.emit('close'); } // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. Object.defineProperty(TCP.prototype, 'owner', { get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); Server.prototype.listenFD = internalUtil.deprecate(function(fd, type) { return this.listen({ fd: fd }); }, 'Server.listenFD is deprecated. Use Server.listen({fd: }) instead.', 'DEP0021'); Server.prototype._setupWorker = function(socketList) { this._usingWorkers = true; this._workers.push(socketList); socketList.once('exit', (socketList) => { const index = this._workers.indexOf(socketList); this._workers.splice(index, 1); }); }; Server.prototype.ref = function() { this._unref = false; if (this._handle) this._handle.ref(); return this; }; Server.prototype.unref = function() { this._unref = true; if (this._handle) this._handle.unref(); return this; }; var _setSimultaneousAccepts; if (process.platform === 'win32') { var simultaneousAccepts; _setSimultaneousAccepts = function(handle) { if (handle === undefined) { return; } if (simultaneousAccepts === undefined) { simultaneousAccepts = (process.env.NODE_MANY_ACCEPTS && process.env.NODE_MANY_ACCEPTS !== '0'); } if (handle._simultaneousAccepts !== simultaneousAccepts) { handle.setSimultaneousAccepts(!!simultaneousAccepts); handle._simultaneousAccepts = simultaneousAccepts; } }; } else { _setSimultaneousAccepts = function() {}; } module.exports = { _createServerHandle: createServerHandle, _normalizeArgs: normalizeArgs, _setSimultaneousAccepts, connect, createConnection: connect, createServer, isIP: isIP, isIPv4: isIPv4, isIPv6: isIPv6, Server, Socket, Stream: Socket, // Legacy naming }; os// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { pushValToArrayMax, safeGetenv } = internalBinding('util'); const constants = process.binding('constants').os; const { deprecate } = require('internal/util'); const isWindows = process.platform === 'win32'; const { codes: { ERR_SYSTEM_ERROR } } = require('internal/errors'); const { validateInt32 } = require('internal/validators'); const { getCPUs, getFreeMem, getHomeDirectory: _getHomeDirectory, getHostname: _getHostname, getInterfaceAddresses: _getInterfaceAddresses, getLoadAvg, getOSRelease: _getOSRelease, getOSType: _getOSType, getPriority: _getPriority, getTotalMem, getUserInfo, getUptime, isBigEndian, setPriority: _setPriority } = process.binding('os'); function getCheckedFunction(fn) { return function checkError(...args) { const ctx = {}; const ret = fn(...args, ctx); if (ret === undefined) { const err = new ERR_SYSTEM_ERROR(ctx); Error.captureStackTrace(err, checkError); throw err; } return ret; }; } const getHomeDirectory = getCheckedFunction(_getHomeDirectory); const getHostname = getCheckedFunction(_getHostname); const getInterfaceAddresses = getCheckedFunction(_getInterfaceAddresses); const getOSRelease = getCheckedFunction(_getOSRelease); const getOSType = getCheckedFunction(_getOSType); getFreeMem[Symbol.toPrimitive] = () => getFreeMem(); getHostname[Symbol.toPrimitive] = () => getHostname(); getHomeDirectory[Symbol.toPrimitive] = () => getHomeDirectory(); getOSRelease[Symbol.toPrimitive] = () => getOSRelease(); getOSType[Symbol.toPrimitive] = () => getOSType(); getTotalMem[Symbol.toPrimitive] = () => getTotalMem(); getUptime[Symbol.toPrimitive] = () => getUptime(); const kEndianness = isBigEndian ? 'BE' : 'LE'; const tmpDirDeprecationMsg = 'os.tmpDir() is deprecated. Use os.tmpdir() instead.'; const getNetworkInterfacesDepMsg = 'os.getNetworkInterfaces is deprecated. Use os.networkInterfaces instead.'; const avgValues = new Float64Array(3); const cpuValues = new Float64Array(6 * pushValToArrayMax); function loadavg() { getLoadAvg(avgValues); return [avgValues[0], avgValues[1], avgValues[2]]; } function addCPUInfo() { for (var i = 0, c = 0; i < arguments.length; ++i, c += 6) { this[this.length] = { model: arguments[i], speed: cpuValues[c], times: { user: cpuValues[c + 1], nice: cpuValues[c + 2], sys: cpuValues[c + 3], idle: cpuValues[c + 4], irq: cpuValues[c + 5] } }; } } function cpus() { return getCPUs(addCPUInfo, cpuValues, []); } function arch() { return process.arch; } arch[Symbol.toPrimitive] = () => process.arch; function platform() { return process.platform; } platform[Symbol.toPrimitive] = () => process.platform; function tmpdir() { var path; if (isWindows) { path = process.env.TEMP || process.env.TMP || (process.env.SystemRoot || process.env.windir) + '\\temp'; if (path.length > 1 && path.endsWith('\\') && !path.endsWith(':\\')) path = path.slice(0, -1); } else { path = safeGetenv('TMPDIR') || safeGetenv('TMP') || safeGetenv('TEMP') || '/tmp'; if (path.length > 1 && path.endsWith('/')) path = path.slice(0, -1); } return path; } tmpdir[Symbol.toPrimitive] = () => tmpdir(); function endianness() { return kEndianness; } endianness[Symbol.toPrimitive] = () => kEndianness; // Returns the number of ones in the binary representation of the decimal // number. function countBinaryOnes(n) { let count = 0; // Remove one "1" bit from n until n is the power of 2. This iterates k times // while k is the number of "1" in the binary representation. // For more check https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators while (n !== 0) { n = n & (n - 1); count++; } return count; } function getCIDR({ address, netmask, family }) { let ones = 0; let split = '.'; let range = 10; let groupLength = 8; let hasZeros = false; if (family === 'IPv6') { split = ':'; range = 16; groupLength = 16; } const parts = netmask.split(split); for (var i = 0; i < parts.length; i++) { if (parts[i] !== '') { const binary = parseInt(parts[i], range); const tmp = countBinaryOnes(binary); ones += tmp; if (hasZeros) { if (tmp !== 0) { return null; } } else if (tmp !== groupLength) { if ((binary & 1) !== 0) { return null; } hasZeros = true; } } } return `${address}/${ones}`; } function networkInterfaces() { const interfaceAddresses = getInterfaceAddresses(); const keys = Object.keys(interfaceAddresses); for (var i = 0; i < keys.length; i++) { const arr = interfaceAddresses[keys[i]]; for (var j = 0; j < arr.length; j++) { arr[j].cidr = getCIDR(arr[j]); } } return interfaceAddresses; } function setPriority(pid, priority) { if (priority === undefined) { priority = pid; pid = 0; } validateInt32(pid, 'pid'); validateInt32(priority, 'priority', -20, 19); const ctx = {}; if (_setPriority(pid, priority, ctx) !== 0) throw new ERR_SYSTEM_ERROR(ctx); } function getPriority(pid) { if (pid === undefined) pid = 0; else validateInt32(pid, 'pid'); const ctx = {}; const priority = _getPriority(pid, ctx); if (priority === undefined) throw new ERR_SYSTEM_ERROR(ctx); return priority; } function userInfo(options) { if (typeof options !== 'object') options = null; const ctx = {}; const user = getUserInfo(options, ctx); if (user === undefined) throw new ERR_SYSTEM_ERROR(ctx); return user; } module.exports = { arch, cpus, endianness, freemem: getFreeMem, getPriority, homedir: getHomeDirectory, hostname: getHostname, loadavg, networkInterfaces, platform, release: getOSRelease, setPriority, tmpdir, totalmem: getTotalMem, type: getOSType, userInfo, uptime: getUptime, // Deprecated APIs getNetworkInterfaces: deprecate(getInterfaceAddresses, getNetworkInterfacesDepMsg, 'DEP0023'), tmpDir: deprecate(tmpdir, tmpDirDeprecationMsg, 'DEP0022') }; Object.defineProperties(module.exports, { constants: { configurable: false, enumerable: true, value: constants }, EOL: { configurable: true, enumerable: true, writable: false, value: isWindows ? '\r\n' : '\n' } }); path// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { CHAR_UPPERCASE_A, CHAR_LOWERCASE_A, CHAR_UPPERCASE_Z, CHAR_LOWERCASE_Z, CHAR_DOT, CHAR_FORWARD_SLASH, CHAR_BACKWARD_SLASH, CHAR_COLON, CHAR_QUESTION_MARK, } = require('internal/constants'); function assertPath(path) { if (typeof path !== 'string') { throw new ERR_INVALID_ARG_TYPE('path', 'string', path); } } function isPathSeparator(code) { return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; } function isPosixPathSeparator(code) { return code === CHAR_FORWARD_SLASH; } function isWindowsDeviceRoot(code) { return code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z || code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z; } // Resolves . and .. elements in a path with directory names function normalizeString(path, allowAboveRoot, separator, isPathSeparator) { var res = ''; var lastSegmentLength = 0; var lastSlash = -1; var dots = 0; var code; for (var i = 0; i <= path.length; ++i) { if (i < path.length) code = path.charCodeAt(i); else if (isPathSeparator(code)) break; else code = CHAR_FORWARD_SLASH; if (isPathSeparator(code)) { if (lastSlash === i - 1 || dots === 1) { // NOOP } else if (lastSlash !== i - 1 && dots === 2) { if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== CHAR_DOT || res.charCodeAt(res.length - 2) !== CHAR_DOT) { if (res.length > 2) { const lastSlashIndex = res.lastIndexOf(separator); if (lastSlashIndex === -1) { res = ''; lastSegmentLength = 0; } else { res = res.slice(0, lastSlashIndex); lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); } lastSlash = i; dots = 0; continue; } else if (res.length === 2 || res.length === 1) { res = ''; lastSegmentLength = 0; lastSlash = i; dots = 0; continue; } } if (allowAboveRoot) { if (res.length > 0) res += `${separator}..`; else res = '..'; lastSegmentLength = 2; } } else { if (res.length > 0) res += separator + path.slice(lastSlash + 1, i); else res = path.slice(lastSlash + 1, i); lastSegmentLength = i - lastSlash - 1; } lastSlash = i; dots = 0; } else if (code === CHAR_DOT && dots !== -1) { ++dots; } else { dots = -1; } } return res; } function _format(sep, pathObject) { const dir = pathObject.dir || pathObject.root; const base = pathObject.base || ((pathObject.name || '') + (pathObject.ext || '')); if (!dir) { return base; } if (dir === pathObject.root) { return dir + base; } return dir + sep + base; } const win32 = { // path.resolve([from ...], to) resolve: function resolve() { var resolvedDevice = ''; var resolvedTail = ''; var resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1; i--) { var path; if (i >= 0) { path = arguments[i]; } else if (!resolvedDevice) { path = process.cwd(); } else { // Windows has the concept of drive-specific current working // directories. If we've resolved a drive letter but not yet an // absolute path, get cwd for that drive, or the process cwd if // the drive cwd is not available. We're sure the device is not // a UNC path at this points, because UNC paths are always absolute. path = process.env['=' + resolvedDevice] || process.cwd(); // Verify that a cwd was found and that it actually points // to our drive. If not, default to the drive's root. if (path === undefined || path.slice(0, 3).toLowerCase() !== resolvedDevice.toLowerCase() + '\\') { path = resolvedDevice + '\\'; } } assertPath(path); // Skip empty entries if (path.length === 0) { continue; } var len = path.length; var rootEnd = 0; var device = ''; var isAbsolute = false; const code = path.charCodeAt(0); // Try to match a root if (len > 1) { if (isPathSeparator(code)) { // Possible UNC root // If we started with a separator, we know we at least have an // absolute path of some kind (UNC or otherwise) isAbsolute = true; if (isPathSeparator(path.charCodeAt(1))) { // Matched double path separator at beginning var j = 2; var last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { const firstPart = path.slice(last, j); // Matched! last = j; // Match 1 or more path separators for (; j < len; ++j) { if (!isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j === len) { // We matched a UNC root only device = '\\\\' + firstPart + '\\' + path.slice(last); rootEnd = j; } else if (j !== last) { // We matched a UNC root with leftovers device = '\\\\' + firstPart + '\\' + path.slice(last, j); rootEnd = j; } } } } else { rootEnd = 1; } } else if (isWindowsDeviceRoot(code)) { // Possible device root if (path.charCodeAt(1) === CHAR_COLON) { device = path.slice(0, 2); rootEnd = 2; if (len > 2) { if (isPathSeparator(path.charCodeAt(2))) { // Treat separator following drive name as an absolute path // indicator isAbsolute = true; rootEnd = 3; } } } } } else if (isPathSeparator(code)) { // `path` contains just a path separator rootEnd = 1; isAbsolute = true; } if (device.length > 0 && resolvedDevice.length > 0 && device.toLowerCase() !== resolvedDevice.toLowerCase()) { // This path points to another device so it is not applicable continue; } if (resolvedDevice.length === 0 && device.length > 0) { resolvedDevice = device; } if (!resolvedAbsolute) { resolvedTail = path.slice(rootEnd) + '\\' + resolvedTail; resolvedAbsolute = isAbsolute; } if (resolvedDevice.length > 0 && resolvedAbsolute) { break; } } // At this point the path should be resolved to a full absolute path, // but handle relative paths to be safe (might happen when process.cwd() // fails) // Normalize the tail path resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\', isPathSeparator); return (resolvedDevice + (resolvedAbsolute ? '\\' : '') + resolvedTail) || '.'; }, normalize: function normalize(path) { assertPath(path); const len = path.length; if (len === 0) return '.'; var rootEnd = 0; var device; var isAbsolute = false; const code = path.charCodeAt(0); // Try to match a root if (len > 1) { if (isPathSeparator(code)) { // Possible UNC root // If we started with a separator, we know we at least have an absolute // path of some kind (UNC or otherwise) isAbsolute = true; if (isPathSeparator(path.charCodeAt(1))) { // Matched double path separator at beginning var j = 2; var last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { const firstPart = path.slice(last, j); // Matched! last = j; // Match 1 or more path separators for (; j < len; ++j) { if (!isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j === len) { // We matched a UNC root only // Return the normalized version of the UNC root since there // is nothing left to process return '\\\\' + firstPart + '\\' + path.slice(last) + '\\'; } else if (j !== last) { // We matched a UNC root with leftovers device = '\\\\' + firstPart + '\\' + path.slice(last, j); rootEnd = j; } } } } else { rootEnd = 1; } } else if (isWindowsDeviceRoot(code)) { // Possible device root if (path.charCodeAt(1) === CHAR_COLON) { device = path.slice(0, 2); rootEnd = 2; if (len > 2) { if (isPathSeparator(path.charCodeAt(2))) { // Treat separator following drive name as an absolute path // indicator isAbsolute = true; rootEnd = 3; } } } } } else if (isPathSeparator(code)) { // `path` contains just a path separator, exit early to avoid unnecessary // work return '\\'; } var tail; if (rootEnd < len) { tail = normalizeString(path.slice(rootEnd), !isAbsolute, '\\', isPathSeparator); } else { tail = ''; } if (tail.length === 0 && !isAbsolute) tail = '.'; if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) tail += '\\'; if (device === undefined) { if (isAbsolute) { if (tail.length > 0) return '\\' + tail; else return '\\'; } else if (tail.length > 0) { return tail; } else { return ''; } } else if (isAbsolute) { if (tail.length > 0) return device + '\\' + tail; else return device + '\\'; } else if (tail.length > 0) { return device + tail; } else { return device; } }, isAbsolute: function isAbsolute(path) { assertPath(path); const len = path.length; if (len === 0) return false; const code = path.charCodeAt(0); if (isPathSeparator(code)) { return true; } else if (isWindowsDeviceRoot(code)) { // Possible device root if (len > 2 && path.charCodeAt(1) === CHAR_COLON) { if (isPathSeparator(path.charCodeAt(2))) return true; } } return false; }, join: function join() { if (arguments.length === 0) return '.'; var joined; var firstPart; for (var i = 0; i < arguments.length; ++i) { var arg = arguments[i]; assertPath(arg); if (arg.length > 0) { if (joined === undefined) joined = firstPart = arg; else joined += '\\' + arg; } } if (joined === undefined) return '.'; // Make sure that the joined path doesn't start with two slashes, because // normalize() will mistake it for an UNC path then. // // This step is skipped when it is very clear that the user actually // intended to point at an UNC path. This is assumed when the first // non-empty string arguments starts with exactly two slashes followed by // at least one more non-slash character. // // Note that for normalize() to treat a path as an UNC path it needs to // have at least 2 components, so we don't filter for that here. // This means that the user can use join to construct UNC paths from // a server name and a share name; for example: // path.join('//server', 'share') -> '\\\\server\\share\\') var needsReplace = true; var slashCount = 0; if (isPathSeparator(firstPart.charCodeAt(0))) { ++slashCount; const firstLen = firstPart.length; if (firstLen > 1) { if (isPathSeparator(firstPart.charCodeAt(1))) { ++slashCount; if (firstLen > 2) { if (isPathSeparator(firstPart.charCodeAt(2))) ++slashCount; else { // We matched a UNC path in the first part needsReplace = false; } } } } } if (needsReplace) { // Find any more consecutive slashes we need to replace for (; slashCount < joined.length; ++slashCount) { if (!isPathSeparator(joined.charCodeAt(slashCount))) break; } // Replace the slashes if needed if (slashCount >= 2) joined = '\\' + joined.slice(slashCount); } return win32.normalize(joined); }, // It will solve the relative path from `from` to `to`, for instance: // from = 'C:\\orandea\\test\\aaa' // to = 'C:\\orandea\\impl\\bbb' // The output of the function should be: '..\\..\\impl\\bbb' relative: function relative(from, to) { assertPath(from); assertPath(to); if (from === to) return ''; var fromOrig = win32.resolve(from); var toOrig = win32.resolve(to); if (fromOrig === toOrig) return ''; from = fromOrig.toLowerCase(); to = toOrig.toLowerCase(); if (from === to) return ''; // Trim any leading backslashes var fromStart = 0; for (; fromStart < from.length; ++fromStart) { if (from.charCodeAt(fromStart) !== CHAR_BACKWARD_SLASH) break; } // Trim trailing backslashes (applicable to UNC paths only) var fromEnd = from.length; for (; fromEnd - 1 > fromStart; --fromEnd) { if (from.charCodeAt(fromEnd - 1) !== CHAR_BACKWARD_SLASH) break; } var fromLen = (fromEnd - fromStart); // Trim any leading backslashes var toStart = 0; for (; toStart < to.length; ++toStart) { if (to.charCodeAt(toStart) !== CHAR_BACKWARD_SLASH) break; } // Trim trailing backslashes (applicable to UNC paths only) var toEnd = to.length; for (; toEnd - 1 > toStart; --toEnd) { if (to.charCodeAt(toEnd - 1) !== CHAR_BACKWARD_SLASH) break; } var toLen = (toEnd - toStart); // Compare paths to find the longest common path from root var length = (fromLen < toLen ? fromLen : toLen); var lastCommonSep = -1; var i = 0; for (; i <= length; ++i) { if (i === length) { if (toLen > length) { if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { // We get here if `from` is the exact base path for `to`. // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' return toOrig.slice(toStart + i + 1); } else if (i === 2) { // We get here if `from` is the device root. // For example: from='C:\\'; to='C:\\foo' return toOrig.slice(toStart + i); } } if (fromLen > length) { if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { // We get here if `to` is the exact base path for `from`. // For example: from='C:\\foo\\bar'; to='C:\\foo' lastCommonSep = i; } else if (i === 2) { // We get here if `to` is the device root. // For example: from='C:\\foo\\bar'; to='C:\\' lastCommonSep = 3; } } break; } var fromCode = from.charCodeAt(fromStart + i); var toCode = to.charCodeAt(toStart + i); if (fromCode !== toCode) break; else if (fromCode === CHAR_BACKWARD_SLASH) lastCommonSep = i; } // We found a mismatch before the first common path separator was seen, so // return the original `to`. if (i !== length && lastCommonSep === -1) { return toOrig; } var out = ''; if (lastCommonSep === -1) lastCommonSep = 0; // Generate the relative path based on the path difference between `to` and // `from` for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { if (out.length === 0) out += '..'; else out += '\\..'; } } // Lastly, append the rest of the destination (`to`) path that comes after // the common path parts if (out.length > 0) return out + toOrig.slice(toStart + lastCommonSep, toEnd); else { toStart += lastCommonSep; if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) ++toStart; return toOrig.slice(toStart, toEnd); } }, toNamespacedPath: function toNamespacedPath(path) { // Note: this will *probably* throw somewhere. if (typeof path !== 'string') return path; if (path.length === 0) { return ''; } const resolvedPath = win32.resolve(path); if (resolvedPath.length >= 3) { if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { // Possible UNC root if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { const code = resolvedPath.charCodeAt(2); if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { // Matched non-long UNC root, convert the path to a long UNC path return '\\\\?\\UNC\\' + resolvedPath.slice(2); } } } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0))) { // Possible device root if (resolvedPath.charCodeAt(1) === CHAR_COLON && resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) { // Matched device root, convert the path to a long UNC path return '\\\\?\\' + resolvedPath; } } } return path; }, dirname: function dirname(path) { assertPath(path); const len = path.length; if (len === 0) return '.'; var rootEnd = -1; var end = -1; var matchedSlash = true; var offset = 0; const code = path.charCodeAt(0); // Try to match a root if (len > 1) { if (isPathSeparator(code)) { // Possible UNC root rootEnd = offset = 1; if (isPathSeparator(path.charCodeAt(1))) { // Matched double path separator at beginning var j = 2; var last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more path separators for (; j < len; ++j) { if (!isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j === len) { // We matched a UNC root only return path; } if (j !== last) { // We matched a UNC root with leftovers // Offset by 1 to include the separator after the UNC root to // treat it as a "normal root" on top of a (UNC) root rootEnd = offset = j + 1; } } } } } else if (isWindowsDeviceRoot(code)) { // Possible device root if (path.charCodeAt(1) === CHAR_COLON) { rootEnd = offset = 2; if (len > 2) { if (isPathSeparator(path.charCodeAt(2))) rootEnd = offset = 3; } } } } else if (isPathSeparator(code)) { // `path` contains just a path separator, exit early to avoid // unnecessary work return path; } for (var i = len - 1; i >= offset; --i) { if (isPathSeparator(path.charCodeAt(i))) { if (!matchedSlash) { end = i; break; } } else { // We saw the first non-path separator matchedSlash = false; } } if (end === -1) { if (rootEnd === -1) return '.'; else end = rootEnd; } return path.slice(0, end); }, basename: function basename(path, ext) { if (ext !== undefined && typeof ext !== 'string') throw new ERR_INVALID_ARG_TYPE('ext', 'string', ext); assertPath(path); var start = 0; var end = -1; var matchedSlash = true; var i; // Check for a drive letter prefix so as not to mistake the following // path separator as an extra separator at the end of the path that can be // disregarded if (path.length >= 2) { const drive = path.charCodeAt(0); if (isWindowsDeviceRoot(drive)) { if (path.charCodeAt(1) === CHAR_COLON) start = 2; } } if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { if (ext.length === path.length && ext === path) return ''; var extIdx = ext.length - 1; var firstNonSlashEnd = -1; for (i = path.length - 1; i >= start; --i) { const code = path.charCodeAt(i); if (isPathSeparator(code)) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { start = i + 1; break; } } else { if (firstNonSlashEnd === -1) { // We saw the first non-path separator, remember this index in case // we need it if the extension ends up not matching matchedSlash = false; firstNonSlashEnd = i + 1; } if (extIdx >= 0) { // Try to match the explicit extension if (code === ext.charCodeAt(extIdx)) { if (--extIdx === -1) { // We matched the extension, so mark this as the end of our path // component end = i; } } else { // Extension does not match, so our result is the entire path // component extIdx = -1; end = firstNonSlashEnd; } } } } if (start === end) end = firstNonSlashEnd; else if (end === -1) end = path.length; return path.slice(start, end); } else { for (i = path.length - 1; i >= start; --i) { if (isPathSeparator(path.charCodeAt(i))) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { start = i + 1; break; } } else if (end === -1) { // We saw the first non-path separator, mark this as the end of our // path component matchedSlash = false; end = i + 1; } } if (end === -1) return ''; return path.slice(start, end); } }, extname: function extname(path) { assertPath(path); var start = 0; var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and // after any path separator we find var preDotState = 0; // Check for a drive letter prefix so as not to mistake the following // path separator as an extra separator at the end of the path that can be // disregarded if (path.length >= 2 && path.charCodeAt(1) === CHAR_COLON && isWindowsDeviceRoot(path.charCodeAt(0))) { start = startPart = 2; } for (var i = path.length - 1; i >= start; --i) { const code = path.charCodeAt(i); if (isPathSeparator(code)) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { startPart = i + 1; break; } continue; } if (end === -1) { // We saw the first non-path separator, mark this as the end of our // extension matchedSlash = false; end = i + 1; } if (code === CHAR_DOT) { // If this is our first dot, mark it as the start of our extension if (startDot === -1) startDot = i; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { // We saw a non-dot and non-path separator before our dot, so we should // have a good chance at having a non-empty extension preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { return ''; } return path.slice(startDot, end); }, format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { throw new ERR_INVALID_ARG_TYPE('pathObject', 'Object', pathObject); } return _format('\\', pathObject); }, parse: function parse(path) { assertPath(path); var ret = { root: '', dir: '', base: '', ext: '', name: '' }; if (path.length === 0) return ret; var len = path.length; var rootEnd = 0; let code = path.charCodeAt(0); // Try to match a root if (len > 1) { if (isPathSeparator(code)) { // Possible UNC root rootEnd = 1; if (isPathSeparator(path.charCodeAt(1))) { // Matched double path separator at beginning var j = 2; var last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more path separators for (; j < len; ++j) { if (!isPathSeparator(path.charCodeAt(j))) break; } if (j < len && j !== last) { // Matched! last = j; // Match 1 or more non-path separators for (; j < len; ++j) { if (isPathSeparator(path.charCodeAt(j))) break; } if (j === len) { // We matched a UNC root only rootEnd = j; } else if (j !== last) { // We matched a UNC root with leftovers rootEnd = j + 1; } } } } } else if (isWindowsDeviceRoot(code)) { // Possible device root if (path.charCodeAt(1) === CHAR_COLON) { rootEnd = 2; if (len > 2) { if (isPathSeparator(path.charCodeAt(2))) { if (len === 3) { // `path` contains just a drive root, exit early to avoid // unnecessary work ret.root = ret.dir = path; return ret; } rootEnd = 3; } } else { // `path` contains just a drive root, exit early to avoid // unnecessary work ret.root = ret.dir = path; return ret; } } } } else if (isPathSeparator(code)) { // `path` contains just a path separator, exit early to avoid // unnecessary work ret.root = ret.dir = path; return ret; } if (rootEnd > 0) ret.root = path.slice(0, rootEnd); var startDot = -1; var startPart = rootEnd; var end = -1; var matchedSlash = true; var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and // after any path separator we find var preDotState = 0; // Get non-dir info for (; i >= rootEnd; --i) { code = path.charCodeAt(i); if (isPathSeparator(code)) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { startPart = i + 1; break; } continue; } if (end === -1) { // We saw the first non-path separator, mark this as the end of our // extension matchedSlash = false; end = i + 1; } if (code === CHAR_DOT) { // If this is our first dot, mark it as the start of our extension if (startDot === -1) startDot = i; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { // We saw a non-dot and non-path separator before our dot, so we should // have a good chance at having a non-empty extension preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { if (end !== -1) { ret.base = ret.name = path.slice(startPart, end); } } else { ret.name = path.slice(startPart, startDot); ret.base = path.slice(startPart, end); ret.ext = path.slice(startDot, end); } // If the directory is the root, use the entire root as the `dir` including // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the // trailing slash (`C:\abc\def` -> `C:\abc`). if (startPart > 0 && startPart !== rootEnd) ret.dir = path.slice(0, startPart - 1); else ret.dir = ret.root; return ret; }, sep: '\\', delimiter: ';', win32: null, posix: null }; const posix = { // path.resolve([from ...], to) resolve: function resolve() { var resolvedPath = ''; var resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path; if (i >= 0) path = arguments[i]; else { path = process.cwd(); } assertPath(path); // Skip empty entries if (path.length === 0) { continue; } resolvedPath = path + '/' + resolvedPath; resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; } // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails) // Normalize the path resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator); if (resolvedAbsolute) { if (resolvedPath.length > 0) return '/' + resolvedPath; else return '/'; } else if (resolvedPath.length > 0) { return resolvedPath; } else { return '.'; } }, normalize: function normalize(path) { assertPath(path); if (path.length === 0) return '.'; const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; // Normalize the path path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator); if (path.length === 0 && !isAbsolute) path = '.'; if (path.length > 0 && trailingSeparator) path += '/'; if (isAbsolute) return '/' + path; return path; }, isAbsolute: function isAbsolute(path) { assertPath(path); return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; }, join: function join() { if (arguments.length === 0) return '.'; var joined; for (var i = 0; i < arguments.length; ++i) { var arg = arguments[i]; assertPath(arg); if (arg.length > 0) { if (joined === undefined) joined = arg; else joined += '/' + arg; } } if (joined === undefined) return '.'; return posix.normalize(joined); }, relative: function relative(from, to) { assertPath(from); assertPath(to); if (from === to) return ''; from = posix.resolve(from); to = posix.resolve(to); if (from === to) return ''; // Trim any leading backslashes var fromStart = 1; for (; fromStart < from.length; ++fromStart) { if (from.charCodeAt(fromStart) !== CHAR_FORWARD_SLASH) break; } var fromEnd = from.length; var fromLen = (fromEnd - fromStart); // Trim any leading backslashes var toStart = 1; for (; toStart < to.length; ++toStart) { if (to.charCodeAt(toStart) !== CHAR_FORWARD_SLASH) break; } var toEnd = to.length; var toLen = (toEnd - toStart); // Compare paths to find the longest common path from root var length = (fromLen < toLen ? fromLen : toLen); var lastCommonSep = -1; var i = 0; for (; i <= length; ++i) { if (i === length) { if (toLen > length) { if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { // We get here if `from` is the exact base path for `to`. // For example: from='/foo/bar'; to='/foo/bar/baz' return to.slice(toStart + i + 1); } else if (i === 0) { // We get here if `from` is the root // For example: from='/'; to='/foo' return to.slice(toStart + i); } } else if (fromLen > length) { if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { // We get here if `to` is the exact base path for `from`. // For example: from='/foo/bar/baz'; to='/foo/bar' lastCommonSep = i; } else if (i === 0) { // We get here if `to` is the root. // For example: from='/foo'; to='/' lastCommonSep = 0; } } break; } var fromCode = from.charCodeAt(fromStart + i); var toCode = to.charCodeAt(toStart + i); if (fromCode !== toCode) break; else if (fromCode === CHAR_FORWARD_SLASH) lastCommonSep = i; } var out = ''; // Generate the relative path based on the path difference between `to` // and `from` for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { if (out.length === 0) out += '..'; else out += '/..'; } } // Lastly, append the rest of the destination (`to`) path that comes after // the common path parts if (out.length > 0) return out + to.slice(toStart + lastCommonSep); else { toStart += lastCommonSep; if (to.charCodeAt(toStart) === CHAR_FORWARD_SLASH) ++toStart; return to.slice(toStart); } }, toNamespacedPath: function toNamespacedPath(path) { // Non-op on posix systems return path; }, dirname: function dirname(path) { assertPath(path); if (path.length === 0) return '.'; const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; var end = -1; var matchedSlash = true; for (var i = path.length - 1; i >= 1; --i) { if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { if (!matchedSlash) { end = i; break; } } else { // We saw the first non-path separator matchedSlash = false; } } if (end === -1) return hasRoot ? '/' : '.'; if (hasRoot && end === 1) return '//'; return path.slice(0, end); }, basename: function basename(path, ext) { if (ext !== undefined && typeof ext !== 'string') throw new ERR_INVALID_ARG_TYPE('ext', 'string', ext); assertPath(path); var start = 0; var end = -1; var matchedSlash = true; var i; if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { if (ext.length === path.length && ext === path) return ''; var extIdx = ext.length - 1; var firstNonSlashEnd = -1; for (i = path.length - 1; i >= 0; --i) { const code = path.charCodeAt(i); if (code === CHAR_FORWARD_SLASH) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { start = i + 1; break; } } else { if (firstNonSlashEnd === -1) { // We saw the first non-path separator, remember this index in case // we need it if the extension ends up not matching matchedSlash = false; firstNonSlashEnd = i + 1; } if (extIdx >= 0) { // Try to match the explicit extension if (code === ext.charCodeAt(extIdx)) { if (--extIdx === -1) { // We matched the extension, so mark this as the end of our path // component end = i; } } else { // Extension does not match, so our result is the entire path // component extIdx = -1; end = firstNonSlashEnd; } } } } if (start === end) end = firstNonSlashEnd; else if (end === -1) end = path.length; return path.slice(start, end); } else { for (i = path.length - 1; i >= 0; --i) { if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { start = i + 1; break; } } else if (end === -1) { // We saw the first non-path separator, mark this as the end of our // path component matchedSlash = false; end = i + 1; } } if (end === -1) return ''; return path.slice(start, end); } }, extname: function extname(path) { assertPath(path); var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and // after any path separator we find var preDotState = 0; for (var i = path.length - 1; i >= 0; --i) { const code = path.charCodeAt(i); if (code === CHAR_FORWARD_SLASH) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { startPart = i + 1; break; } continue; } if (end === -1) { // We saw the first non-path separator, mark this as the end of our // extension matchedSlash = false; end = i + 1; } if (code === CHAR_DOT) { // If this is our first dot, mark it as the start of our extension if (startDot === -1) startDot = i; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { // We saw a non-dot and non-path separator before our dot, so we should // have a good chance at having a non-empty extension preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { return ''; } return path.slice(startDot, end); }, format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { throw new ERR_INVALID_ARG_TYPE('pathObject', 'Object', pathObject); } return _format('/', pathObject); }, parse: function parse(path) { assertPath(path); var ret = { root: '', dir: '', base: '', ext: '', name: '' }; if (path.length === 0) return ret; var isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; var start; if (isAbsolute) { ret.root = '/'; start = 1; } else { start = 0; } var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and // after any path separator we find var preDotState = 0; // Get non-dir info for (; i >= start; --i) { const code = path.charCodeAt(i); if (code === CHAR_FORWARD_SLASH) { // If we reached a path separator that was not part of a set of path // separators at the end of the string, stop now if (!matchedSlash) { startPart = i + 1; break; } continue; } if (end === -1) { // We saw the first non-path separator, mark this as the end of our // extension matchedSlash = false; end = i + 1; } if (code === CHAR_DOT) { // If this is our first dot, mark it as the start of our extension if (startDot === -1) startDot = i; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { // We saw a non-dot and non-path separator before our dot, so we should // have a good chance at having a non-empty extension preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { if (end !== -1) { if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end); else ret.base = ret.name = path.slice(startPart, end); } } else { if (startPart === 0 && isAbsolute) { ret.name = path.slice(1, startDot); ret.base = path.slice(1, end); } else { ret.name = path.slice(startPart, startDot); ret.base = path.slice(startPart, end); } ret.ext = path.slice(startDot, end); } if (startPart > 0) ret.dir = path.slice(0, startPart - 1); else if (isAbsolute) ret.dir = '/'; return ret; }, sep: '/', delimiter: ':', win32: null, posix: null }; posix.win32 = win32.win32 = win32; posix.posix = win32.posix = posix; // Legacy internal API, docs-only deprecated: DEP0080 win32._makeLong = win32.toNamespacedPath; posix._makeLong = posix.toNamespacedPath; if (process.platform === 'win32') module.exports = win32; else module.exports = posix; perf_hooks'use strict'; const { PerformanceEntry, mark: _mark, clearMark: _clearMark, measure: _measure, milestones, observerCounts, setupObservers, timeOrigin, timeOriginTimestamp, timerify, constants } = process.binding('performance'); const { NODE_PERFORMANCE_ENTRY_TYPE_NODE, NODE_PERFORMANCE_ENTRY_TYPE_MARK, NODE_PERFORMANCE_ENTRY_TYPE_MEASURE, NODE_PERFORMANCE_ENTRY_TYPE_GC, NODE_PERFORMANCE_ENTRY_TYPE_FUNCTION, NODE_PERFORMANCE_ENTRY_TYPE_HTTP2, NODE_PERFORMANCE_MILESTONE_NODE_START, NODE_PERFORMANCE_MILESTONE_V8_START, NODE_PERFORMANCE_MILESTONE_LOOP_START, NODE_PERFORMANCE_MILESTONE_LOOP_EXIT, NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE, NODE_PERFORMANCE_MILESTONE_ENVIRONMENT } = constants; const { AsyncResource } = require('async_hooks'); const L = require('internal/linkedlist'); const kInspect = require('internal/util').customInspectSymbol; const { inherits } = require('util'); const kCallback = Symbol('callback'); const kTypes = Symbol('types'); const kEntries = Symbol('entries'); const kBuffer = Symbol('buffer'); const kBuffering = Symbol('buffering'); const kQueued = Symbol('queued'); const kTimerified = Symbol('timerified'); const kInsertEntry = Symbol('insert-entry'); const kGetEntries = Symbol('get-entries'); const kIndex = Symbol('index'); const kMarks = Symbol('marks'); const kCount = Symbol('count'); const observers = {}; const observerableTypes = [ 'node', 'mark', 'measure', 'gc', 'function', 'http2' ]; const IDX_STREAM_STATS_ID = 0; const IDX_STREAM_STATS_TIMETOFIRSTBYTE = 1; const IDX_STREAM_STATS_TIMETOFIRSTHEADER = 2; const IDX_STREAM_STATS_TIMETOFIRSTBYTESENT = 3; const IDX_STREAM_STATS_SENTBYTES = 4; const IDX_STREAM_STATS_RECEIVEDBYTES = 5; const IDX_SESSION_STATS_TYPE = 0; const IDX_SESSION_STATS_PINGRTT = 1; const IDX_SESSION_STATS_FRAMESRECEIVED = 2; const IDX_SESSION_STATS_FRAMESSENT = 3; const IDX_SESSION_STATS_STREAMCOUNT = 4; const IDX_SESSION_STATS_STREAMAVERAGEDURATION = 5; const IDX_SESSION_STATS_DATA_SENT = 6; const IDX_SESSION_STATS_DATA_RECEIVED = 7; const IDX_SESSION_STATS_MAX_CONCURRENT_STREAMS = 8; let sessionStats; let streamStats; function collectHttp2Stats(entry) { switch (entry.name) { case 'Http2Stream': if (streamStats === undefined) streamStats = process.binding('http2').streamStats; entry.id = streamStats[IDX_STREAM_STATS_ID] >>> 0; entry.timeToFirstByte = streamStats[IDX_STREAM_STATS_TIMETOFIRSTBYTE]; entry.timeToFirstHeader = streamStats[IDX_STREAM_STATS_TIMETOFIRSTHEADER]; entry.timeToFirstByteSent = streamStats[IDX_STREAM_STATS_TIMETOFIRSTBYTESENT]; entry.bytesWritten = streamStats[IDX_STREAM_STATS_SENTBYTES]; entry.bytesRead = streamStats[IDX_STREAM_STATS_RECEIVEDBYTES]; break; case 'Http2Session': if (sessionStats === undefined) sessionStats = process.binding('http2').sessionStats; entry.type = sessionStats[IDX_SESSION_STATS_TYPE] >>> 0 === 0 ? 'server' : 'client'; entry.pingRTT = sessionStats[IDX_SESSION_STATS_PINGRTT]; entry.framesReceived = sessionStats[IDX_SESSION_STATS_FRAMESRECEIVED]; entry.framesSent = sessionStats[IDX_SESSION_STATS_FRAMESSENT]; entry.streamCount = sessionStats[IDX_SESSION_STATS_STREAMCOUNT]; entry.streamAverageDuration = sessionStats[IDX_SESSION_STATS_STREAMAVERAGEDURATION]; entry.bytesWritten = sessionStats[IDX_SESSION_STATS_DATA_SENT]; entry.bytesRead = sessionStats[IDX_SESSION_STATS_DATA_RECEIVED]; entry.maxConcurrentStreams = sessionStats[IDX_SESSION_STATS_MAX_CONCURRENT_STREAMS]; break; } } let errors; function lazyErrors() { if (errors === undefined) errors = require('internal/errors').codes; return errors; } function now() { const hr = process.hrtime(); return hr[0] * 1000 + hr[1] / 1e6; } function getMilestoneTimestamp(milestoneIdx) { const ns = milestones[milestoneIdx]; if (ns === -1) return ns; return ns / 1e6 - timeOrigin; } class PerformanceNodeTiming { constructor() {} get name() { return 'node'; } get entryType() { return 'node'; } get startTime() { return 0; } get duration() { return now() - timeOrigin; } get nodeStart() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_NODE_START); } get v8Start() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_V8_START); } get environment() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_ENVIRONMENT); } get loopStart() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_LOOP_START); } get loopExit() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_LOOP_EXIT); } get bootstrapComplete() { return getMilestoneTimestamp(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE); } [kInspect]() { return { name: 'node', entryType: 'node', startTime: this.startTime, duration: this.duration, nodeStart: this.nodeStart, v8Start: this.v8Start, bootstrapComplete: this.bootstrapComplete, environment: this.environment, loopStart: this.loopStart, loopExit: this.loopExit, thirdPartyMainStart: this.thirdPartyMainStart, thirdPartyMainEnd: this.thirdPartyMainEnd, clusterSetupStart: this.clusterSetupStart, clusterSetupEnd: this.clusterSetupEnd, moduleLoadStart: this.moduleLoadStart, moduleLoadEnd: this.moduleLoadEnd, preloadModuleLoadStart: this.preloadModuleLoadStart, preloadModuleLoadEnd: this.preloadModuleLoadEnd }; } } // Use this instead of Extends because we want PerformanceEntry in the // prototype chain but we do not want to use the PerformanceEntry // constructor for this. inherits(PerformanceNodeTiming, PerformanceEntry); const nodeTiming = new PerformanceNodeTiming(); // Maintains a list of entries as a linked list stored in insertion order. class PerformanceObserverEntryList { constructor() { Object.defineProperties(this, { [kEntries]: { writable: true, enumerable: false, value: {} }, [kCount]: { writable: true, enumerable: false, value: 0 } }); L.init(this[kEntries]); } [kInsertEntry](entry) { const item = { entry }; L.append(this[kEntries], item); this[kCount]++; } get length() { return this[kCount]; } [kGetEntries](name, type) { const ret = []; const list = this[kEntries]; if (!L.isEmpty(list)) { let item = L.peek(list); while (item && item !== list) { const entry = item.entry; if ((name && entry.name !== name) || (type && entry.entryType !== type)) { item = item._idlePrev; continue; } sortedInsert(ret, entry); item = item._idlePrev; } } return ret; } // While the items are stored in insertion order, getEntries() is // required to return items sorted by startTime. getEntries() { return this[kGetEntries](); } getEntriesByType(type) { return this[kGetEntries](undefined, `${type}`); } getEntriesByName(name, type) { return this[kGetEntries](`${name}`, type !== undefined ? `${type}` : type); } } class PerformanceObserver extends AsyncResource { constructor(callback) { if (typeof callback !== 'function') { const errors = lazyErrors(); throw new errors.ERR_INVALID_CALLBACK(); } super('PerformanceObserver'); Object.defineProperties(this, { [kTypes]: { enumerable: false, writable: true, value: {} }, [kCallback]: { enumerable: false, writable: true, value: callback }, [kBuffer]: { enumerable: false, writable: true, value: new PerformanceObserverEntryList() }, [kBuffering]: { enumerable: false, writable: true, value: false }, [kQueued]: { enumerable: false, writable: true, value: false } }); } disconnect() { const types = this[kTypes]; const keys = Object.keys(types); for (var n = 0; n < keys.length; n++) { const item = types[keys[n]]; if (item) { L.remove(item); observerCounts[keys[n]]--; } } this[kTypes] = {}; } observe(options) { const errors = lazyErrors(); if (typeof options !== 'object' || options == null) { throw new errors.ERR_INVALID_ARG_TYPE('options', 'Object', options); } if (!Array.isArray(options.entryTypes)) { throw new errors.ERR_INVALID_OPT_VALUE('entryTypes', options); } const entryTypes = options.entryTypes.filter(filterTypes).map(mapTypes); if (entryTypes.length === 0) { throw new errors.ERR_VALID_PERFORMANCE_ENTRY_TYPE(); } this.disconnect(); this[kBuffer][kEntries] = []; L.init(this[kBuffer][kEntries]); this[kBuffering] = Boolean(options.buffered); for (var n = 0; n < entryTypes.length; n++) { const entryType = entryTypes[n]; const list = getObserversList(entryType); const item = { obs: this }; this[kTypes][entryType] = item; L.append(list, item); observerCounts[entryType]++; } } } class Performance { constructor() { this[kIndex] = { [kMarks]: new Set() }; } get nodeTiming() { return nodeTiming; } get timeOrigin() { return timeOriginTimestamp; } now() { return now() - timeOrigin; } mark(name) { name = `${name}`; _mark(name); this[kIndex][kMarks].add(name); } measure(name, startMark, endMark) { name = `${name}`; endMark = `${endMark}`; startMark = startMark !== undefined ? `${startMark}` : ''; const marks = this[kIndex][kMarks]; if (!marks.has(endMark) && !(endMark in nodeTiming)) { const errors = lazyErrors(); throw new errors.ERR_INVALID_PERFORMANCE_MARK(endMark); } _measure(name, startMark, endMark); } clearMarks(name) { name = name !== undefined ? `${name}` : name; if (name !== undefined) { this[kIndex][kMarks].delete(name); _clearMark(name); } else { this[kIndex][kMarks].clear(); _clearMark(); } } timerify(fn) { if (typeof fn !== 'function') { const errors = lazyErrors(); throw new errors.ERR_INVALID_ARG_TYPE('fn', 'Function', fn); } if (fn[kTimerified]) return fn[kTimerified]; const ret = timerify(fn, fn.length); Object.defineProperty(fn, kTimerified, { enumerable: false, configurable: true, writable: false, value: ret }); Object.defineProperties(ret, { [kTimerified]: { enumerable: false, configurable: true, writable: false, value: ret }, name: { enumerable: false, configurable: true, writable: false, value: `timerified ${fn.name}` } }); return ret; } [kInspect]() { return { nodeTiming: this.nodeTiming, timeOrigin: this.timeOrigin }; } } const performance = new Performance(); function getObserversList(type) { let list = observers[type]; if (list === undefined) { list = observers[type] = {}; L.init(list); } return list; } function doNotify() { this[kQueued] = false; this.runInAsyncScope(this[kCallback], this, this[kBuffer], this); this[kBuffer][kEntries] = []; L.init(this[kBuffer][kEntries]); } // Set up the callback used to receive PerformanceObserver notifications function observersCallback(entry) { const type = mapTypes(entry.entryType); if (type === NODE_PERFORMANCE_ENTRY_TYPE_HTTP2) collectHttp2Stats(entry); const list = getObserversList(type); let current = L.peek(list); while (current && current.obs) { const observer = current.obs; // First, add the item to the observers buffer const buffer = observer[kBuffer]; buffer[kInsertEntry](entry); // Second, check to see if we're buffering if (observer[kBuffering]) { // If we are, schedule a setImmediate call if one hasn't already if (!observer[kQueued]) { observer[kQueued] = true; // Use setImmediate instead of nextTick to give more time // for multiple entries to collect. setImmediate(doNotify.bind(observer)); } } else { // If not buffering, notify immediately doNotify.call(observer); } current = current._idlePrev; } } setupObservers(observersCallback); function filterTypes(i) { return observerableTypes.indexOf(`${i}`) >= 0; } function mapTypes(i) { switch (i) { case 'node': return NODE_PERFORMANCE_ENTRY_TYPE_NODE; case 'mark': return NODE_PERFORMANCE_ENTRY_TYPE_MARK; case 'measure': return NODE_PERFORMANCE_ENTRY_TYPE_MEASURE; case 'gc': return NODE_PERFORMANCE_ENTRY_TYPE_GC; case 'function': return NODE_PERFORMANCE_ENTRY_TYPE_FUNCTION; case 'http2': return NODE_PERFORMANCE_ENTRY_TYPE_HTTP2; } } // The specification requires that PerformanceEntry instances are sorted // according to startTime. Unfortunately, they are not necessarily created // in that same order, and can be reported to the JS layer in any order, // which means we need to keep the list sorted as we insert. function getInsertLocation(list, entryStartTime) { let start = 0; let end = list.length; while (start < end) { const pivot = (end + start) >>> 1; if (list[pivot].startTime === entryStartTime) return pivot; if (list[pivot].startTime < entryStartTime) start = pivot + 1; else end = pivot; } return start; } function sortedInsert(list, entry) { const entryStartTime = entry.startTime; if (list.length === 0 || (list[list.length - 1].startTime < entryStartTime)) { list.push(entry); return; } if (list[0] && (list[0].startTime > entryStartTime)) { list.unshift(entry); return; } const location = getInsertLocation(list, entryStartTime); list.splice(location, 0, entry); } module.exports = { performance, PerformanceObserver }; Object.defineProperty(module.exports, 'constants', { configurable: false, enumerable: true, value: constants }); process'use strict'; // Re-export process as a native module module.exports = process; punycode'use strict'; /** Highest positive signed 32-bit float value */ const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 /** Bootstring parameters */ const base = 36; const tMin = 1; const tMax = 26; const skew = 38; const damp = 700; const initialBias = 72; const initialN = 128; // 0x80 const delimiter = '-'; // '\x2D' /** Regular expressions */ const regexPunycode = /^xn--/; const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators /** Error messages */ const errors = { 'overflow': 'Overflow: input needs wider integers to process', 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', 'invalid-input': 'Invalid input' }; /** Convenience shortcuts */ const baseMinusTMin = base - tMin; const floor = Math.floor; const stringFromCharCode = String.fromCharCode; /*--------------------------------------------------------------------------*/ /** * A generic error utility function. * @private * @param {String} type The error type. * @returns {Error} Throws a `RangeError` with the applicable error message. */ function error(type) { throw new RangeError(errors[type]); } /** * A generic `Array#map` utility function. * @private * @param {Array} array The array to iterate over. * @param {Function} callback The function that gets called for every array * item. * @returns {Array} A new array of values returned by the callback function. */ function map(array, fn) { const result = []; let length = array.length; while (length--) { result[length] = fn(array[length]); } return result; } /** * A simple `Array#map`-like wrapper to work with domain name strings or email * addresses. * @private * @param {String} domain The domain name or email address. * @param {Function} callback The function that gets called for every * character. * @returns {Array} A new string of characters returned by the callback * function. */ function mapDomain(string, fn) { const parts = string.split('@'); let result = ''; if (parts.length > 1) { // In email addresses, only the domain name should be punycoded. Leave // the local part (i.e. everything up to `@`) intact. result = parts[0] + '@'; string = parts[1]; } // Avoid `split(regex)` for IE8 compatibility. See #17. string = string.replace(regexSeparators, '\x2E'); const labels = string.split('.'); const encoded = map(labels, fn).join('.'); return result + encoded; } /** * Creates an array containing the numeric code points of each Unicode * character in the string. While JavaScript uses UCS-2 internally, * this function will convert a pair of surrogate halves (each of which * UCS-2 exposes as separate characters) into a single code point, * matching UTF-16. * @see `punycode.ucs2.encode` * @see * @memberOf punycode.ucs2 * @name decode * @param {String} string The Unicode input string (UCS-2). * @returns {Array} The new array of code points. */ function ucs2decode(string) { const output = []; let counter = 0; const length = string.length; while (counter < length) { const value = string.charCodeAt(counter++); if (value >= 0xD800 && value <= 0xDBFF && counter < length) { // It's a high surrogate, and there is a next character. const extra = string.charCodeAt(counter++); if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); } else { // It's an unmatched surrogate; only append this code unit, in case the // next code unit is the high surrogate of a surrogate pair. output.push(value); counter--; } } else { output.push(value); } } return output; } /** * Creates a string based on an array of numeric code points. * @see `punycode.ucs2.decode` * @memberOf punycode.ucs2 * @name encode * @param {Array} codePoints The array of numeric code points. * @returns {String} The new Unicode string (UCS-2). */ const ucs2encode = array => String.fromCodePoint(...array); /** * Converts a basic code point into a digit/integer. * @see `digitToBasic()` * @private * @param {Number} codePoint The basic numeric code point value. * @returns {Number} The numeric value of a basic code point (for use in * representing integers) in the range `0` to `base - 1`, or `base` if * the code point does not represent a value. */ const basicToDigit = function(codePoint) { if (codePoint - 0x30 < 0x0A) { return codePoint - 0x16; } if (codePoint - 0x41 < 0x1A) { return codePoint - 0x41; } if (codePoint - 0x61 < 0x1A) { return codePoint - 0x61; } return base; }; /** * Converts a digit/integer into a basic code point. * @see `basicToDigit()` * @private * @param {Number} digit The numeric value of a basic code point. * @returns {Number} The basic code point whose value (when used for * representing integers) is `digit`, which needs to be in the range * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is * used; else, the lowercase form is used. The behavior is undefined * if `flag` is non-zero and `digit` has no uppercase form. */ const digitToBasic = function(digit, flag) { // 0..25 map to ASCII a..z or A..Z // 26..35 map to ASCII 0..9 return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); }; /** * Bias adaptation function as per section 3.4 of RFC 3492. * https://tools.ietf.org/html/rfc3492#section-3.4 * @private */ const adapt = function(delta, numPoints, firstTime) { let k = 0; delta = firstTime ? floor(delta / damp) : delta >> 1; delta += floor(delta / numPoints); for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { delta = floor(delta / baseMinusTMin); } return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); }; /** * Converts a Punycode string of ASCII-only symbols to a string of Unicode * symbols. * @memberOf punycode * @param {String} input The Punycode string of ASCII-only symbols. * @returns {String} The resulting string of Unicode symbols. */ const decode = function(input) { // Don't use UCS-2. const output = []; const inputLength = input.length; let i = 0; let n = initialN; let bias = initialBias; // Handle the basic code points: let `basic` be the number of input code // points before the last delimiter, or `0` if there is none, then copy // the first basic code points to the output. let basic = input.lastIndexOf(delimiter); if (basic < 0) { basic = 0; } for (let j = 0; j < basic; ++j) { // if it's not a basic code point if (input.charCodeAt(j) >= 0x80) { error('not-basic'); } output.push(input.charCodeAt(j)); } // Main decoding loop: start just after the last delimiter if any basic code // points were copied; start at the beginning otherwise. for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { // `index` is the index of the next character to be consumed. // Decode a generalized variable-length integer into `delta`, // which gets added to `i`. The overflow checking is easier // if we increase `i` as we go, then subtract off its starting // value at the end to obtain `delta`. let oldi = i; for (let w = 1, k = base; /* no condition */; k += base) { if (index >= inputLength) { error('invalid-input'); } const digit = basicToDigit(input.charCodeAt(index++)); if (digit >= base || digit > floor((maxInt - i) / w)) { error('overflow'); } i += digit * w; const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); if (digit < t) { break; } const baseMinusT = base - t; if (w > floor(maxInt / baseMinusT)) { error('overflow'); } w *= baseMinusT; } const out = output.length + 1; bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`, // incrementing `n` each time, so we'll fix that now: if (floor(i / out) > maxInt - n) { error('overflow'); } n += floor(i / out); i %= out; // Insert `n` at position `i` of the output. output.splice(i++, 0, n); } return String.fromCodePoint(...output); }; /** * Converts a string of Unicode symbols (e.g. a domain name label) to a * Punycode string of ASCII-only symbols. * @memberOf punycode * @param {String} input The string of Unicode symbols. * @returns {String} The resulting Punycode string of ASCII-only symbols. */ const encode = function(input) { const output = []; // Convert the input in UCS-2 to an array of Unicode code points. input = ucs2decode(input); // Cache the length. let inputLength = input.length; // Initialize the state. let n = initialN; let delta = 0; let bias = initialBias; // Handle the basic code points. for (const currentValue of input) { if (currentValue < 0x80) { output.push(stringFromCharCode(currentValue)); } } let basicLength = output.length; let handledCPCount = basicLength; // `handledCPCount` is the number of code points that have been handled; // `basicLength` is the number of basic code points. // Finish the basic string with a delimiter unless it's empty. if (basicLength) { output.push(delimiter); } // Main encoding loop: while (handledCPCount < inputLength) { // All non-basic code points < n have been handled already. Find the next // larger one: let m = maxInt; for (const currentValue of input) { if (currentValue >= n && currentValue < m) { m = currentValue; } } // Increase `delta` enough to advance the decoder's state to , // but guard against overflow. const handledCPCountPlusOne = handledCPCount + 1; if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { error('overflow'); } delta += (m - n) * handledCPCountPlusOne; n = m; for (const currentValue of input) { if (currentValue < n && ++delta > maxInt) { error('overflow'); } if (currentValue == n) { // Represent delta as a generalized variable-length integer. let q = delta; for (let k = base; /* no condition */; k += base) { const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); if (q < t) { break; } const qMinusT = q - t; const baseMinusT = base - t; output.push( stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) ); q = floor(qMinusT / baseMinusT); } output.push(stringFromCharCode(digitToBasic(q, 0))); bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); delta = 0; ++handledCPCount; } } ++delta; ++n; } return output.join(''); }; /** * Converts a Punycode string representing a domain name or an email address * to Unicode. Only the Punycoded parts of the input will be converted, i.e. * it doesn't matter if you call it on a string that has already been * converted to Unicode. * @memberOf punycode * @param {String} input The Punycoded domain name or email address to * convert to Unicode. * @returns {String} The Unicode representation of the given Punycode * string. */ const toUnicode = function(input) { return mapDomain(input, function(string) { return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; }); }; /** * Converts a Unicode string representing a domain name or an email address to * Punycode. Only the non-ASCII parts of the domain name will be converted, * i.e. it doesn't matter if you call it with a domain that's already in * ASCII. * @memberOf punycode * @param {String} input The domain name or email address to convert, as a * Unicode string. * @returns {String} The Punycode representation of the given domain name or * email address. */ const toASCII = function(input) { return mapDomain(input, function(string) { return regexNonASCII.test(string) ? 'xn--' + encode(string) : string; }); }; /*--------------------------------------------------------------------------*/ /** Define the public API */ const punycode = { /** * A string representing the current Punycode.js version number. * @memberOf punycode * @type String */ 'version': '2.1.0', /** * An object of methods to convert from JavaScript's internal character * representation (UCS-2) to Unicode code points, and back. * @see * @memberOf punycode * @type Object */ 'ucs2': { 'decode': ucs2decode, 'encode': ucs2encode }, 'decode': decode, 'encode': encode, 'toASCII': toASCII, 'toUnicode': toUnicode }; module.exports = punycode; querystring// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // Query String Utilities 'use strict'; const { Buffer } = require('buffer'); const { encodeStr, hexTable, isHexTable } = require('internal/querystring'); const QueryString = module.exports = { unescapeBuffer, // `unescape()` is a JS global, so we need to use a different local name unescape: qsUnescape, // `escape()` is a JS global, so we need to use a different local name escape: qsEscape, stringify, encode: stringify, parse, decode: parse }; const unhexTable = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 0 - 15 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 16 - 31 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 32 - 47 +0, +1, +2, +3, +4, +5, +6, +7, +8, +9, -1, -1, -1, -1, -1, -1, // 48 - 63 -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 64 - 79 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 80 - 95 -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 96 - 111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 112 - 127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 128 ... -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 // ... 255 ]; // a safe fast alternative to decodeURIComponent function unescapeBuffer(s, decodeSpaces) { var out = Buffer.allocUnsafe(s.length); var index = 0; var outIndex = 0; var currentChar; var nextChar; var hexHigh; var hexLow; var maxLength = s.length - 2; // Flag to know if some hex chars have been decoded var hasHex = false; while (index < s.length) { currentChar = s.charCodeAt(index); if (currentChar === 43 /* '+' */ && decodeSpaces) { out[outIndex++] = 32; // ' ' index++; continue; } if (currentChar === 37 /* '%' */ && index < maxLength) { currentChar = s.charCodeAt(++index); hexHigh = unhexTable[currentChar]; if (!(hexHigh >= 0)) { out[outIndex++] = 37; // '%' } else { nextChar = s.charCodeAt(++index); hexLow = unhexTable[nextChar]; if (!(hexLow >= 0)) { out[outIndex++] = 37; // '%' out[outIndex++] = currentChar; currentChar = nextChar; } else { hasHex = true; currentChar = hexHigh * 16 + hexLow; } } } out[outIndex++] = currentChar; index++; } return hasHex ? out.slice(0, outIndex) : out; } function qsUnescape(s, decodeSpaces) { try { return decodeURIComponent(s); } catch { return QueryString.unescapeBuffer(s, decodeSpaces).toString(); } } // These characters do not need escaping when generating query strings: // ! - . _ ~ // ' ( ) * // digits // alpha (uppercase) // alpha (lowercase) const noEscape = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, // 32 - 47 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 80 - 95 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 // 112 - 127 ]; // QueryString.escape() replaces encodeURIComponent() // http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4 function qsEscape(str) { if (typeof str !== 'string') { if (typeof str === 'object') str = String(str); else str += ''; } return encodeStr(str, noEscape, hexTable); } function stringifyPrimitive(v) { if (typeof v === 'string') return v; if (typeof v === 'number' && isFinite(v)) return '' + v; if (typeof v === 'boolean') return v ? 'true' : 'false'; return ''; } function stringify(obj, sep, eq, options) { sep = sep || '&'; eq = eq || '='; var encode = QueryString.escape; if (options && typeof options.encodeURIComponent === 'function') { encode = options.encodeURIComponent; } if (obj !== null && typeof obj === 'object') { var keys = Object.keys(obj); var len = keys.length; var flast = len - 1; var fields = ''; for (var i = 0; i < len; ++i) { var k = keys[i]; var v = obj[k]; var ks = encode(stringifyPrimitive(k)) + eq; if (Array.isArray(v)) { var vlen = v.length; var vlast = vlen - 1; for (var j = 0; j < vlen; ++j) { fields += ks + encode(stringifyPrimitive(v[j])); if (j < vlast) fields += sep; } if (vlen && i < flast) fields += sep; } else { fields += ks + encode(stringifyPrimitive(v)); if (i < flast) fields += sep; } } return fields; } return ''; } function charCodes(str) { if (str.length === 0) return []; if (str.length === 1) return [str.charCodeAt(0)]; const ret = []; for (var i = 0; i < str.length; ++i) ret[ret.length] = str.charCodeAt(i); return ret; } const defSepCodes = [38]; // & const defEqCodes = [61]; // = // Parse a key/val string. function parse(qs, sep, eq, options) { const obj = Object.create(null); if (typeof qs !== 'string' || qs.length === 0) { return obj; } var sepCodes = (!sep ? defSepCodes : charCodes(sep + '')); var eqCodes = (!eq ? defEqCodes : charCodes(eq + '')); const sepLen = sepCodes.length; const eqLen = eqCodes.length; var pairs = 1000; if (options && typeof options.maxKeys === 'number') { // -1 is used in place of a value like Infinity for meaning // "unlimited pairs" because of additional checks V8 (at least as of v5.4) // has to do when using variables that contain values like Infinity. Since // `pairs` is always decremented and checked explicitly for 0, -1 works // effectively the same as Infinity, while providing a significant // performance boost. pairs = (options.maxKeys > 0 ? options.maxKeys : -1); } var decode = QueryString.unescape; if (options && typeof options.decodeURIComponent === 'function') { decode = options.decodeURIComponent; } const customDecode = (decode !== qsUnescape); var lastPos = 0; var sepIdx = 0; var eqIdx = 0; var key = ''; var value = ''; var keyEncoded = customDecode; var valEncoded = customDecode; const plusChar = (customDecode ? '%20' : ' '); var encodeCheck = 0; for (var i = 0; i < qs.length; ++i) { const code = qs.charCodeAt(i); // Try matching key/value pair separator (e.g. '&') if (code === sepCodes[sepIdx]) { if (++sepIdx === sepLen) { // Key/value pair separator match! const end = i - sepIdx + 1; if (eqIdx < eqLen) { // We didn't find the (entire) key/value separator if (lastPos < end) { // Treat the substring as part of the key instead of the value key += qs.slice(lastPos, end); } else if (key.length === 0) { // We saw an empty substring between separators if (--pairs === 0) return obj; lastPos = i + 1; sepIdx = eqIdx = 0; continue; } } else if (lastPos < end) { value += qs.slice(lastPos, end); } if (key.length > 0 && keyEncoded) key = decodeStr(key, decode); if (value.length > 0 && valEncoded) value = decodeStr(value, decode); if (obj[key] === undefined) { obj[key] = value; } else { const curValue = obj[key]; // A simple Array-specific property check is enough here to // distinguish from a string value and is faster and still safe // since we are generating all of the values being assigned. if (curValue.pop) curValue[curValue.length] = value; else obj[key] = [curValue, value]; } if (--pairs === 0) return obj; keyEncoded = valEncoded = customDecode; key = value = ''; encodeCheck = 0; lastPos = i + 1; sepIdx = eqIdx = 0; } } else { sepIdx = 0; // Try matching key/value separator (e.g. '=') if we haven't already if (eqIdx < eqLen) { if (code === eqCodes[eqIdx]) { if (++eqIdx === eqLen) { // Key/value separator match! const end = i - eqIdx + 1; if (lastPos < end) key += qs.slice(lastPos, end); encodeCheck = 0; lastPos = i + 1; } continue; } else { eqIdx = 0; if (!keyEncoded) { // Try to match an (valid) encoded byte once to minimize unnecessary // calls to string decoding functions if (code === 37/* % */) { encodeCheck = 1; continue; } else if (encodeCheck > 0) { // eslint-disable-next-line no-extra-boolean-cast if (!!isHexTable[code]) { if (++encodeCheck === 3) keyEncoded = true; continue; } else { encodeCheck = 0; } } } } if (code === 43/* + */) { if (lastPos < i) key += qs.slice(lastPos, i); key += plusChar; lastPos = i + 1; continue; } } if (code === 43/* + */) { if (lastPos < i) value += qs.slice(lastPos, i); value += plusChar; lastPos = i + 1; } else if (!valEncoded) { // Try to match an (valid) encoded byte (once) to minimize unnecessary // calls to string decoding functions if (code === 37/* % */) { encodeCheck = 1; } else if (encodeCheck > 0) { // eslint-disable-next-line no-extra-boolean-cast if (!!isHexTable[code]) { if (++encodeCheck === 3) valEncoded = true; } else { encodeCheck = 0; } } } } } // Deal with any leftover key or value data if (lastPos < qs.length) { if (eqIdx < eqLen) key += qs.slice(lastPos); else if (sepIdx < sepLen) value += qs.slice(lastPos); } else if (eqIdx === 0 && key.length === 0) { // We ended on an empty substring return obj; } if (key.length > 0 && keyEncoded) key = decodeStr(key, decode); if (value.length > 0 && valEncoded) value = decodeStr(value, decode); if (obj[key] === undefined) { obj[key] = value; } else { const curValue = obj[key]; // A simple Array-specific property check is enough here to // distinguish from a string value and is faster and still safe since // we are generating all of the values being assigned. if (curValue.pop) curValue[curValue.length] = value; else obj[key] = [curValue, value]; } return obj; } // v8 does not optimize functions with try-catch blocks, so we isolate them here // to minimize the damage (Note: no longer true as of V8 5.4 -- but still will // not be inlined). function decodeStr(s, decoder) { try { return decoder(s); } catch { return QueryString.unescape(s, true); } } readline// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // Inspiration for this code comes from Salvatore Sanfilippo's linenoise. // https://github.com/antirez/linenoise // Reference: // * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html // * http://www.3waylabs.com/nw/WWW/products/wizcon/vt220.html 'use strict'; const { ERR_INVALID_ARG_TYPE, ERR_INVALID_CURSOR_POS, ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; const { debug, inherits } = require('util'); const { Buffer } = require('buffer'); const EventEmitter = require('events'); const { CSI, emitKeys, getStringWidth, isFullWidthCodePoint, stripVTControlCharacters } = require('internal/readline'); const { kEscape, kClearToBeginning, kClearToEnd, kClearLine, kClearScreenDown } = CSI; // Lazy load StringDecoder for startup performance. let StringDecoder; const kHistorySize = 30; const kMincrlfDelay = 100; // \r\n, \n, or \r followed by something other than \n const lineEnding = /\r?\n|\r(?!\n)/; const KEYPRESS_DECODER = Symbol('keypress-decoder'); const ESCAPE_DECODER = Symbol('escape-decoder'); // GNU readline library - keyseq-timeout is 500ms (default) const ESCAPE_CODE_TIMEOUT = 500; function createInterface(input, output, completer, terminal) { return new Interface(input, output, completer, terminal); } function Interface(input, output, completer, terminal) { if (!(this instanceof Interface)) { return new Interface(input, output, completer, terminal); } if (StringDecoder === undefined) StringDecoder = require('string_decoder').StringDecoder; this._sawReturnAt = 0; this.isCompletionEnabled = true; this._sawKeyPress = false; this._previousKey = null; EventEmitter.call(this); var historySize; var removeHistoryDuplicates = false; let crlfDelay; let prompt = '> '; if (input && input.input) { // an options object was given output = input.output; completer = input.completer; terminal = input.terminal; historySize = input.historySize; removeHistoryDuplicates = input.removeHistoryDuplicates; if (input.prompt !== undefined) { prompt = input.prompt; } crlfDelay = input.crlfDelay; input = input.input; } if (completer && typeof completer !== 'function') { throw new ERR_INVALID_OPT_VALUE('completer', completer); } if (historySize === undefined) { historySize = kHistorySize; } if (typeof historySize !== 'number' || Number.isNaN(historySize) || historySize < 0) { throw new ERR_INVALID_OPT_VALUE.RangeError('historySize', historySize); } // backwards compat; check the isTTY prop of the output stream // when `terminal` was not specified if (terminal === undefined && !(output === null || output === undefined)) { terminal = !!output.isTTY; } var self = this; this.output = output; this.input = input; this.historySize = historySize; this.removeHistoryDuplicates = !!removeHistoryDuplicates; this.crlfDelay = crlfDelay ? Math.max(kMincrlfDelay, crlfDelay) : kMincrlfDelay; // Check arity, 2 - for async, 1 for sync if (typeof completer === 'function') { this.completer = completer.length === 2 ? completer : function completerWrapper(v, cb) { cb(null, completer(v)); }; } this.setPrompt(prompt); this.terminal = !!terminal; function ondata(data) { self._normalWrite(data); } function onend() { if (typeof self._line_buffer === 'string' && self._line_buffer.length > 0) { self.emit('line', self._line_buffer); } self.close(); } function ontermend() { if (typeof self.line === 'string' && self.line.length > 0) { self.emit('line', self.line); } self.close(); } function onkeypress(s, key) { self._ttyWrite(s, key); if (key && key.sequence) { // if the key.sequence is half of a surrogate pair // (>= 0xd800 and <= 0xdfff), refresh the line so // the character is displayed appropriately. const ch = key.sequence.codePointAt(0); if (ch >= 0xd800 && ch <= 0xdfff) self._refreshLine(); } } function onresize() { self._refreshLine(); } if (!this.terminal) { function onSelfCloseWithoutTerminal() { input.removeListener('data', ondata); input.removeListener('end', onend); } input.on('data', ondata); input.on('end', onend); self.once('close', onSelfCloseWithoutTerminal); this._decoder = new StringDecoder('utf8'); } else { function onSelfCloseWithTerminal() { input.removeListener('keypress', onkeypress); input.removeListener('end', ontermend); if (output !== null && output !== undefined) { output.removeListener('resize', onresize); } } emitKeypressEvents(input, this); // input usually refers to stdin input.on('keypress', onkeypress); input.on('end', ontermend); // Current line this.line = ''; this._setRawMode(true); this.terminal = true; // Cursor position on the line. this.cursor = 0; this.history = []; this.historyIndex = -1; if (output !== null && output !== undefined) output.on('resize', onresize); self.once('close', onSelfCloseWithTerminal); } input.resume(); } inherits(Interface, EventEmitter); Object.defineProperty(Interface.prototype, 'columns', { configurable: true, enumerable: true, get: function() { var columns = Infinity; if (this.output && this.output.columns) columns = this.output.columns; return columns; } }); Interface.prototype.setPrompt = function(prompt) { this._prompt = prompt; }; Interface.prototype._setRawMode = function(mode) { const wasInRawMode = this.input.isRaw; if (typeof this.input.setRawMode === 'function') { this.input.setRawMode(mode); } return wasInRawMode; }; Interface.prototype.prompt = function(preserveCursor) { if (this.paused) this.resume(); if (this.terminal) { if (!preserveCursor) this.cursor = 0; this._refreshLine(); } else { this._writeToOutput(this._prompt); } }; Interface.prototype.question = function(query, cb) { if (typeof cb === 'function') { if (this._questionCallback) { this.prompt(); } else { this._oldPrompt = this._prompt; this.setPrompt(query); this._questionCallback = cb; this.prompt(); } } }; Interface.prototype._onLine = function(line) { if (this._questionCallback) { var cb = this._questionCallback; this._questionCallback = null; this.setPrompt(this._oldPrompt); cb(line); } else { this.emit('line', line); } }; Interface.prototype._writeToOutput = function _writeToOutput(stringToWrite) { if (typeof stringToWrite !== 'string') { throw new ERR_INVALID_ARG_TYPE('stringToWrite', 'string', stringToWrite); } if (this.output !== null && this.output !== undefined) { this.output.write(stringToWrite); } }; Interface.prototype._addHistory = function() { if (this.line.length === 0) return ''; // if the history is disabled then return the line if (this.historySize === 0) return this.line; // if the trimmed line is empty then return the line if (this.line.trim().length === 0) return this.line; if (this.history.length === 0 || this.history[0] !== this.line) { if (this.removeHistoryDuplicates) { // Remove older history line if identical to new one const dupIndex = this.history.indexOf(this.line); if (dupIndex !== -1) this.history.splice(dupIndex, 1); } this.history.unshift(this.line); // Only store so many if (this.history.length > this.historySize) this.history.pop(); } this.historyIndex = -1; return this.history[0]; }; Interface.prototype._refreshLine = function() { // line length var line = this._prompt + this.line; var dispPos = this._getDisplayPos(line); var lineCols = dispPos.cols; var lineRows = dispPos.rows; // cursor position var cursorPos = this._getCursorPos(); // first move to the bottom of the current line, based on cursor pos var prevRows = this.prevRows || 0; if (prevRows > 0) { moveCursor(this.output, 0, -prevRows); } // Cursor to left edge. cursorTo(this.output, 0); // erase data clearScreenDown(this.output); // Write the prompt and the current buffer content. this._writeToOutput(line); // Force terminal to allocate a new line if (lineCols === 0) { this._writeToOutput(' '); } // Move cursor to original position. cursorTo(this.output, cursorPos.cols); var diff = lineRows - cursorPos.rows; if (diff > 0) { moveCursor(this.output, 0, -diff); } this.prevRows = cursorPos.rows; }; Interface.prototype.close = function() { if (this.closed) return; this.pause(); if (this.terminal) { this._setRawMode(false); } this.closed = true; this.emit('close'); }; Interface.prototype.pause = function() { if (this.paused) return; this.input.pause(); this.paused = true; this.emit('pause'); return this; }; Interface.prototype.resume = function() { if (!this.paused) return; this.input.resume(); this.paused = false; this.emit('resume'); return this; }; Interface.prototype.write = function(d, key) { if (this.paused) this.resume(); this.terminal ? this._ttyWrite(d, key) : this._normalWrite(d); }; Interface.prototype._normalWrite = function(b) { if (b === undefined) { return; } var string = this._decoder.write(b); if (this._sawReturnAt && Date.now() - this._sawReturnAt <= this.crlfDelay) { string = string.replace(/^\n/, ''); this._sawReturnAt = 0; } // Run test() on the new string chunk, not on the entire line buffer. var newPartContainsEnding = lineEnding.test(string); if (this._line_buffer) { string = this._line_buffer + string; this._line_buffer = null; } if (newPartContainsEnding) { this._sawReturnAt = string.endsWith('\r') ? Date.now() : 0; // got one or more newlines; process into "line" events var lines = string.split(lineEnding); // either '' or (conceivably) the unfinished portion of the next line string = lines.pop(); this._line_buffer = string; for (var n = 0; n < lines.length; n++) this._onLine(lines[n]); } else if (string) { // no newlines this time, save what we have for next time this._line_buffer = string; } }; Interface.prototype._insertString = function(c) { if (this.cursor < this.line.length) { var beg = this.line.slice(0, this.cursor); var end = this.line.slice(this.cursor, this.line.length); this.line = beg + c + end; this.cursor += c.length; this._refreshLine(); } else { this.line += c; this.cursor += c.length; if (this._getCursorPos().cols === 0) { this._refreshLine(); } else { this._writeToOutput(c); } // a hack to get the line refreshed if it's needed this._moveCursor(0); } }; Interface.prototype._tabComplete = function(lastKeypressWasTab) { var self = this; self.pause(); self.completer(self.line.slice(0, self.cursor), function onComplete(err, rv) { self.resume(); if (err) { debug('tab completion error %j', err); return; } const completions = rv[0]; const completeOn = rv[1]; // the text that was completed if (completions && completions.length) { // Apply/show completions. if (lastKeypressWasTab) { self._writeToOutput('\r\n'); var width = completions.reduce(function completionReducer(a, b) { return a.length > b.length ? a : b; }).length + 2; // 2 space padding var maxColumns = Math.floor(self.columns / width); if (!maxColumns || maxColumns === Infinity) { maxColumns = 1; } var group = []; for (var i = 0; i < completions.length; i++) { var c = completions[i]; if (c === '') { handleGroup(self, group, width, maxColumns); group = []; } else { group.push(c); } } handleGroup(self, group, width, maxColumns); } // If there is a common prefix to all matches, then apply that portion. var f = completions.filter((e) => e); var prefix = commonPrefix(f); if (prefix.length > completeOn.length) { self._insertString(prefix.slice(completeOn.length)); } self._refreshLine(); } }); }; // this = Interface instance function handleGroup(self, group, width, maxColumns) { if (group.length === 0) { return; } var minRows = Math.ceil(group.length / maxColumns); for (var row = 0; row < minRows; row++) { for (var col = 0; col < maxColumns; col++) { var idx = row * maxColumns + col; if (idx >= group.length) { break; } var item = group[idx]; self._writeToOutput(item); if (col < maxColumns - 1) { for (var s = 0; s < width - item.length; s++) { self._writeToOutput(' '); } } } self._writeToOutput('\r\n'); } self._writeToOutput('\r\n'); } function commonPrefix(strings) { if (!strings || strings.length === 0) { return ''; } if (strings.length === 1) return strings[0]; var sorted = strings.slice().sort(); var min = sorted[0]; var max = sorted[sorted.length - 1]; for (var i = 0, len = min.length; i < len; i++) { if (min[i] !== max[i]) { return min.slice(0, i); } } return min; } Interface.prototype._wordLeft = function() { if (this.cursor > 0) { var leading = this.line.slice(0, this.cursor); var match = leading.match(/(?:[^\w\s]+|\w+|)\s*$/); this._moveCursor(-match[0].length); } }; Interface.prototype._wordRight = function() { if (this.cursor < this.line.length) { var trailing = this.line.slice(this.cursor); var match = trailing.match(/^(?:\s+|\W+|\w+)\s*/); this._moveCursor(match[0].length); } }; Interface.prototype._deleteLeft = function() { if (this.cursor > 0 && this.line.length > 0) { this.line = this.line.slice(0, this.cursor - 1) + this.line.slice(this.cursor, this.line.length); this.cursor--; this._refreshLine(); } }; Interface.prototype._deleteRight = function() { this.line = this.line.slice(0, this.cursor) + this.line.slice(this.cursor + 1, this.line.length); this._refreshLine(); }; Interface.prototype._deleteWordLeft = function() { if (this.cursor > 0) { var leading = this.line.slice(0, this.cursor); var match = leading.match(/(?:[^\w\s]+|\w+|)\s*$/); leading = leading.slice(0, leading.length - match[0].length); this.line = leading + this.line.slice(this.cursor, this.line.length); this.cursor = leading.length; this._refreshLine(); } }; Interface.prototype._deleteWordRight = function() { if (this.cursor < this.line.length) { var trailing = this.line.slice(this.cursor); var match = trailing.match(/^(?:\s+|\W+|\w+)\s*/); this.line = this.line.slice(0, this.cursor) + trailing.slice(match[0].length); this._refreshLine(); } }; Interface.prototype._deleteLineLeft = function() { this.line = this.line.slice(this.cursor); this.cursor = 0; this._refreshLine(); }; Interface.prototype._deleteLineRight = function() { this.line = this.line.slice(0, this.cursor); this._refreshLine(); }; Interface.prototype.clearLine = function() { this._moveCursor(+Infinity); this._writeToOutput('\r\n'); this.line = ''; this.cursor = 0; this.prevRows = 0; }; Interface.prototype._line = function() { var line = this._addHistory(); this.clearLine(); this._onLine(line); }; Interface.prototype._historyNext = function() { if (this.historyIndex > 0) { this.historyIndex--; this.line = this.history[this.historyIndex]; this.cursor = this.line.length; // set cursor to end of line. this._refreshLine(); } else if (this.historyIndex === 0) { this.historyIndex = -1; this.cursor = 0; this.line = ''; this._refreshLine(); } }; Interface.prototype._historyPrev = function() { if (this.historyIndex + 1 < this.history.length) { this.historyIndex++; this.line = this.history[this.historyIndex]; this.cursor = this.line.length; // set cursor to end of line. this._refreshLine(); } }; // Returns the last character's display position of the given string Interface.prototype._getDisplayPos = function(str) { var offset = 0; var col = this.columns; var row = 0; var code; str = stripVTControlCharacters(str); for (var i = 0, len = str.length; i < len; i++) { code = str.codePointAt(i); if (code >= 0x10000) { // surrogates i++; } if (code === 0x0a) { // new line \n offset = 0; row += 1; continue; } const width = getStringWidth(code); if (width === 0 || width === 1) { offset += width; } else { // width === 2 if ((offset + 1) % col === 0) { offset++; } offset += 2; } } var cols = offset % col; var rows = row + (offset - cols) / col; return { cols: cols, rows: rows }; }; // Returns current cursor's position and line Interface.prototype._getCursorPos = function() { var columns = this.columns; var strBeforeCursor = this._prompt + this.line.substring(0, this.cursor); var dispPos = this._getDisplayPos(stripVTControlCharacters(strBeforeCursor)); var cols = dispPos.cols; var rows = dispPos.rows; // If the cursor is on a full-width character which steps over the line, // move the cursor to the beginning of the next line. if (cols + 1 === columns && this.cursor < this.line.length && isFullWidthCodePoint(this.line.codePointAt(this.cursor))) { rows++; cols = 0; } return { cols: cols, rows: rows }; }; // This function moves cursor dx places to the right // (-dx for left) and refreshes the line if it is needed Interface.prototype._moveCursor = function(dx) { var oldcursor = this.cursor; var oldPos = this._getCursorPos(); this.cursor += dx; // bounds check if (this.cursor < 0) this.cursor = 0; else if (this.cursor > this.line.length) this.cursor = this.line.length; var newPos = this._getCursorPos(); // check if cursors are in the same line if (oldPos.rows === newPos.rows) { var diffCursor = this.cursor - oldcursor; var diffWidth; if (diffCursor < 0) { diffWidth = -getStringWidth( this.line.substring(this.cursor, oldcursor) ); } else if (diffCursor > 0) { diffWidth = getStringWidth( this.line.substring(this.cursor, oldcursor) ); } moveCursor(this.output, diffWidth, 0); this.prevRows = newPos.rows; } else { this._refreshLine(); } }; // handle a write from the tty Interface.prototype._ttyWrite = function(s, key) { const previousKey = this._previousKey; key = key || {}; this._previousKey = key; // Ignore escape key, fixes // https://github.com/nodejs/node-v0.x-archive/issues/2876. if (key.name === 'escape') return; if (key.ctrl && key.shift) { /* Control and shift pressed */ switch (key.name) { case 'backspace': this._deleteLineLeft(); break; case 'delete': this._deleteLineRight(); break; } } else if (key.ctrl) { /* Control key pressed */ switch (key.name) { case 'c': if (this.listenerCount('SIGINT') > 0) { this.emit('SIGINT'); } else { // This readline instance is finished this.close(); } break; case 'h': // delete left this._deleteLeft(); break; case 'd': // delete right or EOF if (this.cursor === 0 && this.line.length === 0) { // This readline instance is finished this.close(); } else if (this.cursor < this.line.length) { this._deleteRight(); } break; case 'u': // delete the whole line this.cursor = 0; this.line = ''; this._refreshLine(); break; case 'k': // delete from current to end of line this._deleteLineRight(); break; case 'a': // go to the start of the line this._moveCursor(-Infinity); break; case 'e': // go to the end of the line this._moveCursor(+Infinity); break; case 'b': // back one character this._moveCursor(-1); break; case 'f': // forward one character this._moveCursor(+1); break; case 'l': // clear the whole screen cursorTo(this.output, 0, 0); clearScreenDown(this.output); this._refreshLine(); break; case 'n': // next history item this._historyNext(); break; case 'p': // previous history item this._historyPrev(); break; case 'z': if (process.platform === 'win32') break; if (this.listenerCount('SIGTSTP') > 0) { this.emit('SIGTSTP'); } else { process.once('SIGCONT', (function continueProcess(self) { return function() { // Don't raise events if stream has already been abandoned. if (!self.paused) { // Stream must be paused and resumed after SIGCONT to catch // SIGINT, SIGTSTP, and EOF. self.pause(); self.emit('SIGCONT'); } // explicitly re-enable "raw mode" and move the cursor to // the correct position. // See https://github.com/joyent/node/issues/3295. self._setRawMode(true); self._refreshLine(); }; })(this)); this._setRawMode(false); process.kill(process.pid, 'SIGTSTP'); } break; case 'w': // delete backwards to a word boundary case 'backspace': this._deleteWordLeft(); break; case 'delete': // delete forward to a word boundary this._deleteWordRight(); break; case 'left': this._wordLeft(); break; case 'right': this._wordRight(); break; } } else if (key.meta) { /* Meta key pressed */ switch (key.name) { case 'b': // backward word this._wordLeft(); break; case 'f': // forward word this._wordRight(); break; case 'd': // delete forward word case 'delete': this._deleteWordRight(); break; case 'backspace': // delete backwards to a word boundary this._deleteWordLeft(); break; } } else { /* No modifier keys used */ // \r bookkeeping is only relevant if a \n comes right after. if (this._sawReturnAt && key.name !== 'enter') this._sawReturnAt = 0; switch (key.name) { case 'return': // carriage return, i.e. \r this._sawReturnAt = Date.now(); this._line(); break; case 'enter': // When key interval > crlfDelay if (this._sawReturnAt === 0 || Date.now() - this._sawReturnAt > this.crlfDelay) { this._line(); } this._sawReturnAt = 0; break; case 'backspace': this._deleteLeft(); break; case 'delete': this._deleteRight(); break; case 'left': this._moveCursor(-1); break; case 'right': this._moveCursor(+1); break; case 'home': this._moveCursor(-Infinity); break; case 'end': this._moveCursor(+Infinity); break; case 'up': this._historyPrev(); break; case 'down': this._historyNext(); break; case 'tab': // If tab completion enabled, do that... if (typeof this.completer === 'function' && this.isCompletionEnabled) { const lastKeypressWasTab = previousKey && previousKey.name === 'tab'; this._tabComplete(lastKeypressWasTab); break; } // falls through default: if (s instanceof Buffer) s = s.toString('utf-8'); if (s) { var lines = s.split(/\r\n|\n|\r/); for (var i = 0, len = lines.length; i < len; i++) { if (i > 0) { this._line(); } this._insertString(lines[i]); } } } } }; /** * accepts a readable Stream instance and makes it emit "keypress" events */ function emitKeypressEvents(stream, iface) { if (stream[KEYPRESS_DECODER]) return; if (StringDecoder === undefined) StringDecoder = require('string_decoder').StringDecoder; stream[KEYPRESS_DECODER] = new StringDecoder('utf8'); stream[ESCAPE_DECODER] = emitKeys(stream); stream[ESCAPE_DECODER].next(); const escapeCodeTimeout = () => stream[ESCAPE_DECODER].next(''); let timeoutId; function onData(b) { if (stream.listenerCount('keypress') > 0) { var r = stream[KEYPRESS_DECODER].write(b); if (r) { clearTimeout(timeoutId); if (iface) { iface._sawKeyPress = r.length === 1; } for (var i = 0; i < r.length; i++) { if (r[i] === '\t' && typeof r[i + 1] === 'string' && iface) { iface.isCompletionEnabled = false; } try { stream[ESCAPE_DECODER].next(r[i]); // Escape letter at the tail position if (r[i] === kEscape && i + 1 === r.length) { timeoutId = setTimeout(escapeCodeTimeout, ESCAPE_CODE_TIMEOUT); } } catch (err) { // if the generator throws (it could happen in the `keypress` // event), we need to restart it. stream[ESCAPE_DECODER] = emitKeys(stream); stream[ESCAPE_DECODER].next(); throw err; } finally { if (iface) { iface.isCompletionEnabled = true; } } } } } else { // Nobody's watching anyway stream.removeListener('data', onData); stream.on('newListener', onNewListener); } } function onNewListener(event) { if (event === 'keypress') { stream.on('data', onData); stream.removeListener('newListener', onNewListener); } } if (stream.listenerCount('keypress') > 0) { stream.on('data', onData); } else { stream.on('newListener', onNewListener); } } /** * moves the cursor to the x and y coordinate on the given stream */ function cursorTo(stream, x, y) { if (stream === null || stream === undefined) return; if (typeof x !== 'number' && typeof y !== 'number') return; if (typeof x !== 'number') throw new ERR_INVALID_CURSOR_POS(); if (typeof y !== 'number') { stream.write(CSI`${x + 1}G`); } else { stream.write(CSI`${y + 1};${x + 1}H`); } } /** * moves the cursor relative to its current location */ function moveCursor(stream, dx, dy) { if (stream === null || stream === undefined) return; if (dx < 0) { stream.write(CSI`${-dx}D`); } else if (dx > 0) { stream.write(CSI`${dx}C`); } if (dy < 0) { stream.write(CSI`${-dy}A`); } else if (dy > 0) { stream.write(CSI`${dy}B`); } } /** * clears the current line the cursor is on: * -1 for left of the cursor * +1 for right of the cursor * 0 for the entire line */ function clearLine(stream, dir) { if (stream === null || stream === undefined) return; if (dir < 0) { // to the beginning stream.write(kClearToBeginning); } else if (dir > 0) { // to the end stream.write(kClearToEnd); } else { // entire line stream.write(kClearLine); } } /** * clears the screen from the current position of the cursor down */ function clearScreenDown(stream) { if (stream === null || stream === undefined) return; stream.write(kClearScreenDown); } module.exports = { Interface, clearLine, clearScreenDown, createInterface, cursorTo, emitKeypressEvents, moveCursor }; repl// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. /* A repl library that you can include in your own code to get a runtime * interface to your program. * * var repl = require("repl"); * // start repl on stdin * repl.start("prompt> "); * * // listen for unix socket connections and start repl on them * net.createServer(function(socket) { * repl.start("node via Unix socket> ", socket); * }).listen("/tmp/node-repl-sock"); * * // listen for TCP socket connections and start repl on them * net.createServer(function(socket) { * repl.start("node via TCP socket> ", socket); * }).listen(5001); * * // expose foo to repl context * repl.start("node > ").context.foo = "stdin is fun"; */ 'use strict'; const { builtinLibs, makeRequireFunction, addBuiltinLibsToObject } = require('internal/modules/cjs/helpers'); const { isIdentifierStart, isIdentifierChar } = require('internal/deps/acorn/dist/acorn'); const internalUtil = require('internal/util'); const util = require('util'); const utilBinding = process.binding('util'); const { inherits } = util; const Stream = require('stream'); const vm = require('vm'); const path = require('path'); const fs = require('fs'); const { Interface } = require('readline'); const { Console } = require('console'); const CJSModule = require('internal/modules/cjs/loader'); const domain = require('domain'); const debug = util.debuglog('repl'); const { ERR_CANNOT_WATCH_SIGINT, ERR_INVALID_ARG_TYPE, ERR_INVALID_REPL_EVAL_CONFIG, ERR_SCRIPT_EXECUTION_INTERRUPTED } = require('internal/errors').codes; const { sendInspectorCommand } = require('internal/util/inspector'); const experimentalREPLAwait = require('internal/options').getOptionValue( '--experimental-repl-await' ); const { isRecoverableError } = require('internal/repl/recoverable'); const { getOwnNonIndexProperties, propertyFilter: { ALL_PROPERTIES, SKIP_SYMBOLS } } = process.binding('util'); // Lazy-loaded. let processTopLevelAwait; const parentModule = module; const replMap = new WeakMap(); const GLOBAL_OBJECT_PROPERTIES = [ 'NaN', 'Infinity', 'undefined', 'eval', 'parseInt', 'parseFloat', 'isNaN', 'isFinite', 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'Object', 'Function', 'Array', 'String', 'Boolean', 'Number', 'Date', 'RegExp', 'Error', 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'Math', 'JSON' ]; const GLOBAL_OBJECT_PROPERTY_MAP = {}; for (var n = 0; n < GLOBAL_OBJECT_PROPERTIES.length; n++) { GLOBAL_OBJECT_PROPERTY_MAP[GLOBAL_OBJECT_PROPERTIES[n]] = GLOBAL_OBJECT_PROPERTIES[n]; } const kBufferedCommandSymbol = Symbol('bufferedCommand'); const kContextId = Symbol('contextId'); try { // Hack for require.resolve("./relative") to work properly. module.filename = path.resolve('repl'); } catch { // path.resolve('repl') fails when the current working directory has been // deleted. Fall back to the directory name of the (absolute) executable // path. It's not really correct but what are the alternatives? const dirname = path.dirname(process.execPath); module.filename = path.resolve(dirname, 'repl'); } // Hack for repl require to work properly with node_modules folders module.paths = CJSModule._nodeModulePaths(module.filename); // If obj.hasOwnProperty has been overridden, then calling // obj.hasOwnProperty(prop) will break. // See: https://github.com/joyent/node/issues/1707 function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } // This is the default "writer" value, if none is passed in the REPL options, // and it can be overridden by custom print functions, such as `probe` or // `eyes.js`. const writer = exports.writer = (obj) => util.inspect(obj, writer.options); writer.options = Object.assign({}, util.inspect.defaultOptions, { showProxy: true }); exports._builtinLibs = builtinLibs; function REPLServer(prompt, stream, eval_, useGlobal, ignoreUndefined, replMode) { if (!(this instanceof REPLServer)) { return new REPLServer(prompt, stream, eval_, useGlobal, ignoreUndefined, replMode); } var options, input, output, dom, breakEvalOnSigint; if (prompt !== null && typeof prompt === 'object') { // an options object was given options = prompt; stream = options.stream || options.socket; input = options.input; output = options.output; eval_ = options.eval; useGlobal = options.useGlobal; ignoreUndefined = options.ignoreUndefined; prompt = options.prompt; dom = options.domain; replMode = options.replMode; breakEvalOnSigint = options.breakEvalOnSigint; } else { options = {}; } if (breakEvalOnSigint && eval_) { // Allowing this would not reflect user expectations. // breakEvalOnSigint affects only the behavior of the default eval(). throw new ERR_INVALID_REPL_EVAL_CONFIG(); } var self = this; self._domain = dom || domain.create(); self.useGlobal = !!useGlobal; self.ignoreUndefined = !!ignoreUndefined; self.replMode = replMode || exports.REPL_MODE_SLOPPY; self.underscoreAssigned = false; self.last = undefined; self.underscoreErrAssigned = false; self.lastError = undefined; self.breakEvalOnSigint = !!breakEvalOnSigint; self.editorMode = false; // Context id for use with the inspector protocol. self[kContextId] = undefined; // Just for backwards compat, see github.com/joyent/node/pull/7127 self.rli = this; const savedRegExMatches = ['', '', '', '', '', '', '', '', '', '']; const sep = '\u0000\u0000\u0000'; const regExMatcher = new RegExp(`^${sep}(.*)${sep}(.*)${sep}(.*)${sep}(.*)` + `${sep}(.*)${sep}(.*)${sep}(.*)${sep}(.*)` + `${sep}(.*)$`); eval_ = eval_ || defaultEval; // Pause taking in new input, and store the keys in a buffer. const pausedBuffer = []; let paused = false; function pause() { paused = true; } function unpause() { if (!paused) return; paused = false; let entry; while (entry = pausedBuffer.shift()) { const [type, payload] = entry; switch (type) { case 'key': { const [d, key] = payload; self._ttyWrite(d, key); break; } case 'close': self.emit('exit'); break; } if (paused) { break; } } } function defaultEval(code, context, file, cb) { var err, result, script, wrappedErr; var wrappedCmd = false; var awaitPromise = false; var input = code; if (/^\s*\{/.test(code) && /\}\s*$/.test(code)) { // It's confusing for `{ a : 1 }` to be interpreted as a block // statement rather than an object literal. So, we first try // to wrap it in parentheses, so that it will be interpreted as // an expression. Note that if the above condition changes, // lib/internal/repl/recoverable.js needs to be changed to match. code = `(${code.trim()})\n`; wrappedCmd = true; } if (experimentalREPLAwait && code.includes('await')) { if (processTopLevelAwait === undefined) { ({ processTopLevelAwait } = require('internal/repl/await')); } const potentialWrappedCode = processTopLevelAwait(code); if (potentialWrappedCode !== null) { code = potentialWrappedCode; wrappedCmd = true; awaitPromise = true; } } // First, create the Script object to check the syntax if (code === '\n') return cb(null); while (true) { try { if (!/^\s*$/.test(code) && self.replMode === exports.REPL_MODE_STRICT) { // "void 0" keeps the repl from returning "use strict" as the result // value for statements and declarations that don't return a value. code = `'use strict'; void 0;\n${code}`; } script = vm.createScript(code, { filename: file, displayErrors: true }); } catch (e) { debug('parse error %j', code, e); if (wrappedCmd) { // Unwrap and try again wrappedCmd = false; awaitPromise = false; code = input; wrappedErr = e; continue; } // Preserve original error for wrapped command const error = wrappedErr || e; if (isRecoverableError(error, code)) err = new Recoverable(error); else err = error; } break; } // This will set the values from `savedRegExMatches` to corresponding // predefined RegExp properties `RegExp.$1`, `RegExp.$2` ... `RegExp.$9` regExMatcher.test(savedRegExMatches.join(sep)); let finished = false; function finishExecution(err, result) { if (finished) return; finished = true; // After executing the current expression, store the values of RegExp // predefined properties back in `savedRegExMatches` for (var idx = 1; idx < savedRegExMatches.length; idx += 1) { savedRegExMatches[idx] = RegExp[`$${idx}`]; } cb(err, result); } if (!err) { // Unset raw mode during evaluation so that Ctrl+C raises a signal. let previouslyInRawMode; if (self.breakEvalOnSigint) { // Start the SIGINT watchdog before entering raw mode so that a very // quick Ctrl+C doesn't lead to aborting the process completely. if (!utilBinding.startSigintWatchdog()) throw new ERR_CANNOT_WATCH_SIGINT(); previouslyInRawMode = self._setRawMode(false); } try { try { const scriptOptions = { displayErrors: false, breakOnSigint: self.breakEvalOnSigint }; if (self.useGlobal) { result = script.runInThisContext(scriptOptions); } else { result = script.runInContext(context, scriptOptions); } } finally { if (self.breakEvalOnSigint) { // Reset terminal mode to its previous value. self._setRawMode(previouslyInRawMode); // Returns true if there were pending SIGINTs *after* the script // has terminated without being interrupted itself. if (utilBinding.stopSigintWatchdog()) { self.emit('SIGINT'); } } } } catch (e) { err = e; if (process.domain) { debug('not recoverable, send to domain'); process.domain.emit('error', err); process.domain.exit(); return; } } if (awaitPromise && !err) { let sigintListener; pause(); let promise = result; if (self.breakEvalOnSigint) { const interrupt = new Promise((resolve, reject) => { sigintListener = () => { const tmp = Error.stackTraceLimit; Error.stackTraceLimit = 0; const err = new ERR_SCRIPT_EXECUTION_INTERRUPTED(); Error.stackTraceLimit = tmp; reject(err); }; prioritizedSigintQueue.add(sigintListener); }); promise = Promise.race([promise, interrupt]); } promise.then((result) => { finishExecution(undefined, result); }, (err) => { if (err && process.domain) { debug('not recoverable, send to domain'); process.domain.emit('error', err); process.domain.exit(); return; } finishExecution(err); }).finally(() => { // Remove prioritized SIGINT listener if it was not called. prioritizedSigintQueue.delete(sigintListener); unpause(); }); } } if (!awaitPromise || err) { finishExecution(err, result); } } self.eval = self._domain.bind(eval_); self._domain.on('error', function debugDomainError(e) { debug('domain error'); let errStack = ''; if (typeof e === 'object' && e !== null) { const pstrace = Error.prepareStackTrace; Error.prepareStackTrace = prepareStackTrace(pstrace); internalUtil.decorateErrorStack(e); Error.prepareStackTrace = pstrace; if (e.domainThrown) { delete e.domain; delete e.domainThrown; } if (internalUtil.isError(e)) { if (e.stack) { if (e.name === 'SyntaxError') { // Remove stack trace. e.stack = e.stack .replace(/^repl:\d+\r?\n/, '') .replace(/^\s+at\s.*\n?/gm, ''); } else if (self.replMode === exports.REPL_MODE_STRICT) { e.stack = e.stack.replace(/(\s+at\s+repl:)(\d+)/, (_, pre, line) => pre + (line - 1)); } } errStack = util.inspect(e); // Remove one line error braces to keep the old style in place. if (errStack[errStack.length - 1] === ']') { errStack = errStack.slice(1, -1); } } } if (errStack === '') { errStack = `Thrown: ${util.inspect(e)}`; } if (!self.underscoreErrAssigned) { self.lastError = e; } const top = replMap.get(self); top.outputStream.write(`${errStack}\n`); top.clearBufferedCommand(); top.lines.level = []; top.displayPrompt(); }); if (!input && !output) { // legacy API, passing a 'stream'/'socket' option if (!stream) { // Use stdin and stdout as the default streams if none were given stream = process; } // We're given a duplex readable/writable Stream, like a `net.Socket` // or a custom object with 2 streams, or the `process` object input = stream.stdin || stream; output = stream.stdout || stream; } self.inputStream = input; self.outputStream = output; self.resetContext(); self.lines.level = []; self.clearBufferedCommand(); Object.defineProperty(this, 'bufferedCommand', { get: util.deprecate(() => self[kBufferedCommandSymbol], 'REPLServer.bufferedCommand is deprecated', 'DEP0074'), set: util.deprecate((val) => self[kBufferedCommandSymbol] = val, 'REPLServer.bufferedCommand is deprecated', 'DEP0074'), enumerable: true }); // Figure out which "complete" function to use. self.completer = (typeof options.completer === 'function') ? options.completer : completer; function completer(text, cb) { complete.call(self, text, self.editorMode ? self.completeOnEditorMode(cb) : cb); } Interface.call(this, { input: self.inputStream, output: self.outputStream, completer: self.completer, terminal: options.terminal, historySize: options.historySize, prompt }); this.commands = Object.create(null); defineDefaultCommands(this); // Figure out which "writer" function to use self.writer = options.writer || exports.writer; if (options.useColors === undefined) { options.useColors = self.terminal; } self.useColors = !!options.useColors; if (self.useColors && self.writer === writer) { // Turn on ANSI coloring. self.writer = (obj) => util.inspect(obj, self.writer.options); self.writer.options = Object.assign({}, writer.options, { colors: true }); } function filterInternalStackFrames(structuredStack) { // Search from the bottom of the call stack to // find the first frame with a null function name if (typeof structuredStack !== 'object') return structuredStack; const idx = structuredStack.reverse().findIndex( (frame) => frame.getFunctionName() === null); // If found, get rid of it and everything below it structuredStack = structuredStack.splice(idx + 1); return structuredStack; } function prepareStackTrace(fn) { return (error, stackFrames) => { const frames = filterInternalStackFrames(stackFrames); if (fn) { return fn(error, frames); } frames.push(error); return frames.reverse().join('\n at '); }; } function _parseREPLKeyword(keyword, rest) { var cmd = this.commands[keyword]; if (cmd) { cmd.action.call(this, rest); return true; } return false; } self.parseREPLKeyword = util.deprecate( _parseREPLKeyword, 'REPLServer.parseREPLKeyword() is deprecated', 'DEP0075'); self.on('close', function emitExit() { if (paused) { pausedBuffer.push(['close']); return; } self.emit('exit'); }); var sawSIGINT = false; var sawCtrlD = false; const prioritizedSigintQueue = new Set(); self.on('SIGINT', function onSigInt() { if (prioritizedSigintQueue.size > 0) { for (const task of prioritizedSigintQueue) { task(); } return; } var empty = self.line.length === 0; self.clearLine(); _turnOffEditorMode(self); const cmd = self[kBufferedCommandSymbol]; if (!(cmd && cmd.length > 0) && empty) { if (sawSIGINT) { self.close(); sawSIGINT = false; return; } self.output.write('(To exit, press ^C again or type .exit)\n'); sawSIGINT = true; } else { sawSIGINT = false; } self.clearBufferedCommand(); self.lines.level = []; self.displayPrompt(); }); self.on('line', function onLine(cmd) { debug('line %j', cmd); cmd = cmd || ''; sawSIGINT = false; if (self.editorMode) { self[kBufferedCommandSymbol] += cmd + '\n'; // code alignment const matches = self._sawKeyPress ? cmd.match(/^\s+/) : null; if (matches) { const prefix = matches[0]; self.write(prefix); self.line = prefix; self.cursor = prefix.length; } _memory.call(self, cmd); return; } // Check REPL keywords and empty lines against a trimmed line input. const trimmedCmd = cmd.trim(); // Check to see if a REPL keyword was used. If it returns true, // display next prompt and return. if (trimmedCmd) { if (trimmedCmd.charAt(0) === '.' && trimmedCmd.charAt(1) !== '.' && Number.isNaN(parseFloat(trimmedCmd))) { const matches = trimmedCmd.match(/^\.([^\s]+)\s*(.*)$/); const keyword = matches && matches[1]; const rest = matches && matches[2]; if (_parseREPLKeyword.call(self, keyword, rest) === true) { return; } if (!self[kBufferedCommandSymbol]) { self.outputStream.write('Invalid REPL keyword\n'); finish(null); return; } } } const evalCmd = self[kBufferedCommandSymbol] + cmd + '\n'; debug('eval %j', evalCmd); self.eval(evalCmd, self.context, 'repl', finish); function finish(e, ret) { debug('finish', e, ret); _memory.call(self, cmd); if (e && !self[kBufferedCommandSymbol] && cmd.trim().startsWith('npm ')) { self.outputStream.write('npm should be run outside of the ' + 'node repl, in your normal shell.\n' + '(Press Control-D to exit.)\n'); self.clearBufferedCommand(); self.displayPrompt(); return; } // If error was SyntaxError and not JSON.parse error if (e) { if (e instanceof Recoverable && !sawCtrlD) { // Start buffering data like that: // { // ... x: 1 // ... } self[kBufferedCommandSymbol] += cmd + '\n'; self.displayPrompt(); return; } else { self._domain.emit('error', e.err || e); } } // Clear buffer if no SyntaxErrors self.clearBufferedCommand(); sawCtrlD = false; // If we got any output - print it (if no error) if (!e && // When an invalid REPL command is used, error message is printed // immediately. We don't have to print anything else. So, only when // the second argument to this function is there, print it. arguments.length === 2 && (!self.ignoreUndefined || ret !== undefined)) { if (!self.underscoreAssigned) { self.last = ret; } self.outputStream.write(self.writer(ret) + '\n'); } // Display prompt again self.displayPrompt(); } }); self.on('SIGCONT', function onSigCont() { if (self.editorMode) { self.outputStream.write(`${self._initialPrompt}.editor\n`); self.outputStream.write( '// Entering editor mode (^D to finish, ^C to cancel)\n'); self.outputStream.write(`${self[kBufferedCommandSymbol]}\n`); self.prompt(true); } else { self.displayPrompt(true); } }); // Wrap readline tty to enable editor mode and pausing. const ttyWrite = self._ttyWrite.bind(self); self._ttyWrite = (d, key) => { key = key || {}; if (paused && !(self.breakEvalOnSigint && key.ctrl && key.name === 'c')) { pausedBuffer.push(['key', [d, key]]); return; } if (!self.editorMode || !self.terminal) { ttyWrite(d, key); return; } // Editor mode if (key.ctrl && !key.shift) { switch (key.name) { case 'd': // End editor mode _turnOffEditorMode(self); sawCtrlD = true; ttyWrite(d, { name: 'return' }); break; case 'n': // Override next history item case 'p': // Override previous history item break; default: ttyWrite(d, key); } } else { switch (key.name) { case 'up': // Override previous history item case 'down': // Override next history item break; case 'tab': // Prevent double tab behavior self._previousKey = null; ttyWrite(d, key); break; default: ttyWrite(d, key); } } }; self.displayPrompt(); } inherits(REPLServer, Interface); exports.REPLServer = REPLServer; exports.REPL_MODE_SLOPPY = Symbol('repl-sloppy'); exports.REPL_MODE_STRICT = Symbol('repl-strict'); // prompt is a string to print on each line for the prompt, // source is a stream to use for I/O, defaulting to stdin/stdout. exports.start = function(prompt, source, eval_, useGlobal, ignoreUndefined, replMode) { var repl = new REPLServer(prompt, source, eval_, useGlobal, ignoreUndefined, replMode); if (!exports.repl) exports.repl = repl; replMap.set(repl, repl); return repl; }; REPLServer.prototype.clearBufferedCommand = function clearBufferedCommand() { this[kBufferedCommandSymbol] = ''; }; REPLServer.prototype.close = function close() { if (this.terminal && this._flushing && !this._closingOnFlush) { this._closingOnFlush = true; this.once('flushHistory', () => Interface.prototype.close.call(this) ); return; } process.nextTick(() => Interface.prototype.close.call(this) ); }; REPLServer.prototype.createContext = function() { var context; if (this.useGlobal) { context = global; } else { sendInspectorCommand((session) => { session.post('Runtime.enable'); session.once('Runtime.executionContextCreated', ({ params }) => { this[kContextId] = params.context.id; }); context = vm.createContext(); session.post('Runtime.disable'); }, () => { context = vm.createContext(); }); context.global = context; const _console = new Console(this.outputStream); Object.defineProperty(context, 'console', { configurable: true, writable: true, value: _console }); var names = Object.getOwnPropertyNames(global); for (var n = 0; n < names.length; n++) { var name = names[n]; if (name === 'console' || name === 'global') continue; if (GLOBAL_OBJECT_PROPERTY_MAP[name] === undefined) { Object.defineProperty(context, name, Object.getOwnPropertyDescriptor(global, name)); } } } var module = new CJSModule(''); module.paths = CJSModule._resolveLookupPaths('', parentModule, true) || []; Object.defineProperty(context, 'module', { configurable: true, writable: true, value: module }); Object.defineProperty(context, 'require', { configurable: true, writable: true, value: makeRequireFunction(module) }); addBuiltinLibsToObject(context); return context; }; REPLServer.prototype.resetContext = function() { this.context = this.createContext(); this.underscoreAssigned = false; this.underscoreErrAssigned = false; this.lines = []; this.lines.level = []; Object.defineProperty(this.context, '_', { configurable: true, get: () => this.last, set: (value) => { this.last = value; if (!this.underscoreAssigned) { this.underscoreAssigned = true; this.outputStream.write('Expression assignment to _ now disabled.\n'); } } }); Object.defineProperty(this.context, '_error', { configurable: true, get: () => this.lastError, set: (value) => { this.lastError = value; if (!this.underscoreErrAssigned) { this.underscoreErrAssigned = true; this.outputStream.write( 'Expression assignment to _error now disabled.\n'); } } }); // Allow REPL extensions to extend the new context this.emit('reset', this.context); }; REPLServer.prototype.displayPrompt = function(preserveCursor) { var prompt = this._initialPrompt; if (this[kBufferedCommandSymbol].length) { prompt = '...'; const len = this.lines.level.length ? this.lines.level.length - 1 : 0; const levelInd = '..'.repeat(len); prompt += levelInd + ' '; } // Do not overwrite `_initialPrompt` here REPLServer.super_.prototype.setPrompt.call(this, prompt); this.prompt(preserveCursor); }; // When invoked as an API method, overwrite _initialPrompt REPLServer.prototype.setPrompt = function setPrompt(prompt) { this._initialPrompt = prompt; REPLServer.super_.prototype.setPrompt.call(this, prompt); }; REPLServer.prototype.turnOffEditorMode = util.deprecate( function() { _turnOffEditorMode(this); }, 'REPLServer.turnOffEditorMode() is deprecated', 'DEP0078'); // A stream to push an array into a REPL // used in REPLServer.complete function ArrayStream() { Stream.call(this); this.run = function(data) { for (var n = 0; n < data.length; n++) this.emit('data', `${data[n]}\n`); }; } util.inherits(ArrayStream, Stream); ArrayStream.prototype.readable = true; ArrayStream.prototype.writable = true; ArrayStream.prototype.resume = function() {}; ArrayStream.prototype.write = function() {}; const requireRE = /\brequire\s*\(['"](([\w@./-]+\/)?(?:[\w@./-]*))/; const simpleExpressionRE = /(?:[a-zA-Z_$](?:\w|\$)*\.)*[a-zA-Z_$](?:\w|\$)*\.?$/; function isIdentifier(str) { if (str === '') { return false; } const first = str.codePointAt(0); if (!isIdentifierStart(first)) { return false; } const firstLen = first > 0xffff ? 2 : 1; for (var i = firstLen; i < str.length; i += 1) { const cp = str.codePointAt(i); if (!isIdentifierChar(cp)) { return false; } if (cp > 0xffff) { i += 1; } } return true; } function filteredOwnPropertyNames(obj) { if (!obj) return []; const filter = ALL_PROPERTIES | SKIP_SYMBOLS; return getOwnNonIndexProperties(obj, filter).filter(isIdentifier); } function getGlobalLexicalScopeNames(contextId) { return sendInspectorCommand((session) => { let names = []; session.post('Runtime.globalLexicalScopeNames', { executionContextId: contextId }, (error, result) => { if (!error) names = result.names; }); return names; }, () => []); } REPLServer.prototype.complete = function() { this.completer.apply(this, arguments); }; // Provide a list of completions for the given leading text. This is // given to the readline interface for handling tab completion. // // Example: // complete('var foo = util.') // -> [['util.print', 'util.debug', 'util.log', 'util.inspect'], // 'util.' ] // // Warning: This eval's code like "foo.bar.baz", so it will run property // getter code. function complete(line, callback) { // There may be local variables to evaluate, try a nested REPL if (this[kBufferedCommandSymbol] !== undefined && this[kBufferedCommandSymbol].length) { // Get a new array of inputted lines var tmp = this.lines.slice(); // Kill off all function declarations to push all local variables into // global scope for (var n = 0; n < this.lines.level.length; n++) { var kill = this.lines.level[n]; if (kill.isFunction) tmp[kill.line] = ''; } var flat = new ArrayStream(); // make a new "input" stream var magic = new REPLServer('', flat); // make a nested REPL replMap.set(magic, replMap.get(this)); flat.run(tmp); // eval the flattened code // all this is only profitable if the nested REPL // does not have a bufferedCommand if (!magic[kBufferedCommandSymbol]) { return magic.complete(line, callback); } } var completions; // List of completion lists, one for each inheritance "level" var completionGroups = []; var completeOn, i, group, c; // REPL commands (e.g. ".break"). var filter; var match = null; match = line.match(/^\s*\.(\w*)$/); if (match) { completionGroups.push(Object.keys(this.commands)); completeOn = match[1]; if (match[1].length) { filter = match[1]; } completionGroupsLoaded(); } else if (match = line.match(requireRE)) { // require('...') const exts = Object.keys(this.context.require.extensions); var indexRe = new RegExp('^index(?:' + exts.map(regexpEscape).join('|') + ')$'); var versionedFileNamesRe = /-\d+\.\d+/; completeOn = match[1]; var subdir = match[2] || ''; filter = match[1]; var dir, files, f, name, base, ext, abs, subfiles, s, isDirectory; group = []; let paths = []; if (completeOn === '.') { group = ['./', '../']; } else if (completeOn === '..') { group = ['../']; } else if (/^\.\.?\//.test(completeOn)) { paths = [process.cwd()]; } else { paths = module.paths.concat(CJSModule.globalPaths); } for (i = 0; i < paths.length; i++) { dir = path.resolve(paths[i], subdir); try { files = fs.readdirSync(dir); } catch { continue; } for (f = 0; f < files.length; f++) { name = files[f]; ext = path.extname(name); base = name.slice(0, -ext.length); if (versionedFileNamesRe.test(base) || name === '.npm') { // Exclude versioned names that 'npm' installs. continue; } abs = path.resolve(dir, name); try { isDirectory = fs.statSync(abs).isDirectory(); } catch { continue; } if (isDirectory) { group.push(subdir + name + '/'); try { subfiles = fs.readdirSync(abs); } catch { continue; } for (s = 0; s < subfiles.length; s++) { if (indexRe.test(subfiles[s])) { group.push(subdir + name); } } } else if (exts.includes(ext) && (!subdir || base !== 'index')) { group.push(subdir + base); } } } if (group.length) { completionGroups.push(group); } if (!subdir) { completionGroups.push(exports._builtinLibs); } completionGroupsLoaded(); // Handle variable member lookup. // We support simple chained expressions like the following (no function // calls, etc.). That is for simplicity and also because we *eval* that // leading expression so for safety (see WARNING above) don't want to // eval function calls. // // foo.bar<|> # completions for 'foo' with filter 'bar' // spam.eggs.<|> # completions for 'spam.eggs' with filter '' // foo<|> # all scope vars with filter 'foo' // foo.<|> # completions for 'foo' with filter '' } else if (line.length === 0 || /\w|\.|\$/.test(line[line.length - 1])) { match = simpleExpressionRE.exec(line); if (line.length === 0 || match) { var expr; completeOn = (match ? match[0] : ''); if (line.length === 0) { filter = ''; expr = ''; } else if (line[line.length - 1] === '.') { filter = ''; expr = match[0].slice(0, match[0].length - 1); } else { var bits = match[0].split('.'); filter = bits.pop(); expr = bits.join('.'); } // Resolve expr and get its completions. var memberGroups = []; if (!expr) { // If context is instance of vm.ScriptContext // Get global vars synchronously if (this.useGlobal || vm.isContext(this.context)) { completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); var contextProto = this.context; while (contextProto = Object.getPrototypeOf(contextProto)) { completionGroups.push( filteredOwnPropertyNames.call(this, contextProto)); } completionGroups.push( filteredOwnPropertyNames.call(this, this.context)); addStandardGlobals(completionGroups, filter); completionGroupsLoaded(); } else { this.eval('.scope', this.context, 'repl', function ev(err, globals) { if (err || !Array.isArray(globals)) { addStandardGlobals(completionGroups, filter); } else if (Array.isArray(globals[0])) { // Add grouped globals for (var n = 0; n < globals.length; n++) completionGroups.push(globals[n]); } else { completionGroups.push(globals); addStandardGlobals(completionGroups, filter); } completionGroupsLoaded(); }); } } else { const evalExpr = `try { ${expr} } catch {}`; this.eval(evalExpr, this.context, 'repl', (e, obj) => { if (obj != null) { if (typeof obj === 'object' || typeof obj === 'function') { try { memberGroups.push(filteredOwnPropertyNames.call(this, obj)); } catch { // Probably a Proxy object without `getOwnPropertyNames` trap. // We simply ignore it here, as we don't want to break the // autocompletion. Fixes the bug // https://github.com/nodejs/node/issues/2119 } } // works for non-objects try { var sentinel = 5; var p; if (typeof obj === 'object' || typeof obj === 'function') { p = Object.getPrototypeOf(obj); } else { p = obj.constructor ? obj.constructor.prototype : null; } while (p !== null) { memberGroups.push(filteredOwnPropertyNames.call(this, p)); p = Object.getPrototypeOf(p); // Circular refs possible? Let's guard against that. sentinel--; if (sentinel <= 0) { break; } } } catch {} } if (memberGroups.length) { for (i = 0; i < memberGroups.length; i++) { completionGroups.push( memberGroups[i].map((member) => `${expr}.${member}`)); } if (filter) { filter = `${expr}.${filter}`; } } completionGroupsLoaded(); }); } } else { completionGroupsLoaded(); } } else { completionGroupsLoaded(); } // Will be called when all completionGroups are in place // Useful for async autocompletion function completionGroupsLoaded() { // Filter, sort (within each group), uniq and merge the completion groups. if (completionGroups.length && filter) { var newCompletionGroups = []; for (i = 0; i < completionGroups.length; i++) { group = completionGroups[i] .filter((elem) => elem.indexOf(filter) === 0); if (group.length) { newCompletionGroups.push(group); } } completionGroups = newCompletionGroups; } if (completionGroups.length) { var uniq = {}; // Unique completions across all groups completions = []; // Completion group 0 is the "closest" // (least far up the inheritance chain) // so we put its completions last: to be closest in the REPL. for (i = 0; i < completionGroups.length; i++) { group = completionGroups[i]; group.sort(); for (var j = group.length - 1; j >= 0; j--) { c = group[j]; if (!hasOwnProperty(uniq, c)) { completions.unshift(c); uniq[c] = true; } } completions.unshift(''); // Separator btwn groups } while (completions.length && completions[0] === '') { completions.shift(); } } callback(null, [completions || [], completeOn]); } } function longestCommonPrefix(arr = []) { const cnt = arr.length; if (cnt === 0) return ''; if (cnt === 1) return arr[0]; const first = arr[0]; // complexity: O(m * n) for (var m = 0; m < first.length; m++) { const c = first[m]; for (var n = 1; n < cnt; n++) { const entry = arr[n]; if (m >= entry.length || c !== entry[m]) { return first.substring(0, m); } } } return first; } REPLServer.prototype.completeOnEditorMode = (callback) => (err, results) => { if (err) return callback(err); const [completions, completeOn = ''] = results; const prefixLength = completeOn.length; if (prefixLength === 0) return callback(null, [[], completeOn]); const isNotEmpty = (v) => v.length > 0; const trimCompleteOnPrefix = (v) => v.substring(prefixLength); const data = completions.filter(isNotEmpty).map(trimCompleteOnPrefix); callback(null, [[`${completeOn}${longestCommonPrefix(data)}`], completeOn]); }; REPLServer.prototype.defineCommand = function(keyword, cmd) { if (typeof cmd === 'function') { cmd = { action: cmd }; } else if (typeof cmd.action !== 'function') { throw new ERR_INVALID_ARG_TYPE('action', 'Function', cmd.action); } this.commands[keyword] = cmd; }; REPLServer.prototype.memory = util.deprecate( _memory, 'REPLServer.memory() is deprecated', 'DEP0082'); function _memory(cmd) { const self = this; self.lines = self.lines || []; self.lines.level = self.lines.level || []; // Save the line so I can do magic later if (cmd) { // TODO should I tab the level? const len = self.lines.level.length ? self.lines.level.length - 1 : 0; self.lines.push(' '.repeat(len) + cmd); } else { // I don't want to not change the format too much... self.lines.push(''); } // I need to know "depth." // Because I can not tell the difference between a } that // closes an object literal and a } that closes a function if (cmd) { // Going down is { and ( e.g. function() { // going up is } and ) var dw = cmd.match(/{|\(/g); var up = cmd.match(/}|\)/g); up = up ? up.length : 0; dw = dw ? dw.length : 0; var depth = dw - up; if (depth) { (function workIt() { if (depth > 0) { // Going... down. // Push the line#, depth count, and if the line is a function. // Since JS only has functional scope I only need to remove // "function() {" lines, clearly this will not work for // "function() // {" but nothing should break, only tab completion for local // scope will not work for this function. self.lines.level.push({ line: self.lines.length - 1, depth: depth, isFunction: /\bfunction\b/.test(cmd) }); } else if (depth < 0) { // Going... up. var curr = self.lines.level.pop(); if (curr) { var tmp = curr.depth + depth; if (tmp < 0) { // More to go, recurse depth += curr.depth; workIt(); } else if (tmp > 0) { // Remove and push back curr.depth += depth; self.lines.level.push(curr); } } } }()); } // it is possible to determine a syntax error at this point. // if the REPL still has a bufferedCommand and // self.lines.level.length === 0 // TODO? keep a log of level so that any syntax breaking lines can // be cleared on .break and in the case of a syntax error? // TODO? if a log was kept, then I could clear the bufferedCommand and // eval these lines and throw the syntax error } else { self.lines.level = []; } } function addStandardGlobals(completionGroups, filter) { // Global object properties // (http://www.ecma-international.org/publications/standards/Ecma-262.htm) completionGroups.push(GLOBAL_OBJECT_PROPERTIES); // Common keywords. Exclude for completion on the empty string, b/c // they just get in the way. if (filter) { completionGroups.push([ 'async', 'await', 'break', 'case', 'catch', 'const', 'continue', 'debugger', 'default', 'delete', 'do', 'else', 'export', 'false', 'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'let', 'new', 'null', 'return', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'undefined', 'var', 'void', 'while', 'with', 'yield' ]); } } function _turnOnEditorMode(repl) { repl.editorMode = true; REPLServer.super_.prototype.setPrompt.call(repl, ''); } function _turnOffEditorMode(repl) { repl.editorMode = false; repl.setPrompt(repl._initialPrompt); } function defineDefaultCommands(repl) { repl.defineCommand('break', { help: 'Sometimes you get stuck, this gets you out', action: function() { this.clearBufferedCommand(); this.displayPrompt(); } }); var clearMessage; if (repl.useGlobal) { clearMessage = 'Alias for .break'; } else { clearMessage = 'Break, and also clear the local context'; } repl.defineCommand('clear', { help: clearMessage, action: function() { this.clearBufferedCommand(); if (!this.useGlobal) { this.outputStream.write('Clearing context...\n'); this.resetContext(); } this.displayPrompt(); } }); repl.defineCommand('exit', { help: 'Exit the repl', action: function() { this.close(); } }); repl.defineCommand('help', { help: 'Print this help message', action: function() { const names = Object.keys(this.commands).sort(); const longestNameLength = names.reduce( (max, name) => Math.max(max, name.length), 0 ); for (var n = 0; n < names.length; n++) { var name = names[n]; var cmd = this.commands[name]; var spaces = ' '.repeat(longestNameLength - name.length + 3); var line = `.${name}${cmd.help ? spaces + cmd.help : ''}\n`; this.outputStream.write(line); } this.displayPrompt(); } }); repl.defineCommand('save', { help: 'Save all evaluated commands in this REPL session to a file', action: function(file) { try { fs.writeFileSync(file, this.lines.join('\n') + '\n'); this.outputStream.write('Session saved to: ' + file + '\n'); } catch { this.outputStream.write('Failed to save: ' + file + '\n'); } this.displayPrompt(); } }); repl.defineCommand('load', { help: 'Load JS from a file into the REPL session', action: function(file) { try { var stats = fs.statSync(file); if (stats && stats.isFile()) { _turnOnEditorMode(this); var data = fs.readFileSync(file, 'utf8'); var lines = data.split('\n'); for (var n = 0; n < lines.length; n++) { if (lines[n]) this.write(`${lines[n]}\n`); } _turnOffEditorMode(this); this.write('\n'); } else { this.outputStream.write('Failed to load: ' + file + ' is not a valid file\n'); } } catch { this.outputStream.write('Failed to load: ' + file + '\n'); } this.displayPrompt(); } }); repl.defineCommand('editor', { help: 'Enter editor mode', action() { if (!this.terminal) return; _turnOnEditorMode(this); this.outputStream.write( '// Entering editor mode (^D to finish, ^C to cancel)\n'); } }); } function regexpEscape(s) { return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); } function Recoverable(err) { this.err = err; } inherits(Recoverable, SyntaxError); exports.Recoverable = Recoverable; stream// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { Buffer } = require('buffer'); const pipeline = require('internal/streams/pipeline'); const eos = require('internal/streams/end-of-stream'); // Note: export Stream before Readable/Writable/Duplex/... // to avoid a cross-reference(require) issues const Stream = module.exports = require('internal/streams/legacy'); Stream.Readable = require('_stream_readable'); Stream.Writable = require('_stream_writable'); Stream.Duplex = require('_stream_duplex'); Stream.Transform = require('_stream_transform'); Stream.PassThrough = require('_stream_passthrough'); Stream.pipeline = pipeline; Stream.finished = eos; // Backwards-compat with node 0.4.x Stream.Stream = Stream; // Internal utilities try { const types = require('util').types; if (types && typeof types.isUint8Array === 'function') { Stream._isUint8Array = types.isUint8Array; } else { // This throws for Node < 4.2.0 because there's no util binding and // returns undefined for Node < 7.4.0. Stream._isUint8Array = process.binding('util').isUint8Array; } } catch (e) { // eslint-disable-line no-unused-vars } if (!Stream._isUint8Array) { Stream._isUint8Array = function _isUint8Array(obj) { return Object.prototype.toString.call(obj) === '[object Uint8Array]'; }; } const version = process.version.substr(1).split('.'); if (version[0] === 0 && version[1] < 12) { Stream._uint8ArrayToBuffer = Buffer; } else { try { const internalBuffer = require('internal/buffer'); Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) { return new internalBuffer.FastBuffer(chunk.buffer, chunk.byteOffset, chunk.byteLength); }; } catch (e) { // eslint-disable-line no-unused-vars } if (!Stream._uint8ArrayToBuffer) { Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) { return Buffer.prototype.slice.call(chunk); }; } } _stream_readable// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; module.exports = Readable; Readable.ReadableState = ReadableState; const EE = require('events'); const Stream = require('stream'); const { Buffer } = require('buffer'); const util = require('util'); const debug = util.debuglog('stream'); const BufferList = require('internal/streams/buffer_list'); const destroyImpl = require('internal/streams/destroy'); const { getHighWaterMark } = require('internal/streams/state'); const { ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT } = require('internal/errors').codes; const { emitExperimentalWarning } = require('internal/util'); // Lazy loaded to improve the startup performance. let StringDecoder; let createReadableStreamAsyncIterator; util.inherits(Readable, Stream); const kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. if (!emitter._events || !emitter._events[event]) emitter.on(event, fn); else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn); else emitter._events[event] = [fn, emitter._events[event]]; } function ReadableState(options, stream, isDuplex) { options = options || {}; // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Stream.Duplex; // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() this.buffer = new BufferList(); this.length = 0; this.pipes = null; this.pipesCount = 0; this.flowing = null; this.ended = false; this.endEmitted = false; this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; this.paused = true; // Should close be emitted on destroy. Defaults to true. this.emitClose = options.emitClose !== false; // has it been destroyed this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside // the ReadableState constructor, at least with V8 6.5 const isDuplex = this instanceof Stream.Duplex; this._readableState = new ReadableState(options, this, isDuplex); // legacy this.readable = true; if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } Stream.call(this); } Object.defineProperty(Readable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { if (this._readableState === undefined) { return false; } return this._readableState.destroyed; }, set(value) { // we ignore the value if the stream // has not been initialized yet if (!this._readableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; Readable.prototype._destroy = function(err, cb) { cb(err); }; // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function(chunk, encoding) { var state = this._readableState; var skipChunkCheck; if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } skipChunkCheck = true; } } else { skipChunkCheck = true; } return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function(chunk) { return readableAddChunk(this, chunk, null, true, false); }; function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { debug('readableAddChunk', chunk); var state = stream._readableState; if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); if (er) { stream.emit('error', er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = Stream._uint8ArrayToBuffer(chunk); } if (addToFront) { if (state.endEmitted) stream.emit('error', new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); else addChunk(stream, state, chunk, true); } else if (state.ended) { stream.emit('error', new ERR_STREAM_PUSH_AFTER_EOF()); } else if (state.destroyed) { return false; } else { state.reading = false; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); else maybeReadMore(stream, state); } else { addChunk(stream, state, chunk, false); } } } else if (!addToFront) { state.reading = false; maybeReadMore(stream, state); } } // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. return !state.ended && (state.length < state.highWaterMark || state.length === 0); } function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { state.awaitDrain = 0; stream.emit('data', chunk); } else { // update the buffer info. state.length += state.objectMode ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk); else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } maybeReadMore(stream, state); } function chunkInvalid(state, chunk) { var er; if (!Stream._isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE( 'chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } return er; } Readable.prototype.isPaused = function() { return this._readableState.flowing === false; }; // backwards compatibility. Readable.prototype.setEncoding = function(enc) { if (!StringDecoder) StringDecoder = require('string_decoder').StringDecoder; this._readableState.decoder = new StringDecoder(enc); // if setEncoding(null), decoder.encoding equals utf8 this._readableState.encoding = this._readableState.decoder.encoding; return this; }; // Don't raise the hwm > 8MB const MAX_HWM = 0x800000; function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { n = MAX_HWM; } else { // Get the next highest power of 2 to prevent increasing hwm excessively in // tiny amounts n--; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; n++; } return n; } // This function is designed to be inlinable, so please take care when making // changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || (state.length === 0 && state.ended)) return 0; if (state.objectMode) return 1; if (Number.isNaN(n)) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length; else return state.length; } // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); if (n <= state.length) return n; // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } return state.length; } // you can override either this method, or the async _read(n) below. Readable.prototype.read = function(n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this); else emitReadable(this); return null; } n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; } // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change // the state of the read buffer, providing enough data when // before there was *not* enough. // // So, the steps are: // 1. Figure out what the state of things will be after we do // a read from the buffer. // // 2. If that resulting state will trigger a _read, then call _read. // Note that this may be asynchronous, or synchronous. Yes, it is // deeply ugly to write APIs this way, but that still doesn't mean // that the Readable class should behave improperly, as streams are // designed to be sync/async agnostic. // Take note if the _read call is sync or async (ie, if the read call // has returned yet), so that we know whether or not it's safe to emit // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); } // however, if we've ended, then there's no point, and if we're already // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; state.sync = true; // if the length is currently zero, then we *need* a readable event. if (state.length === 0) state.needReadable = true; // call internal read method this._read(state.highWaterMark); state.sync = false; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. if (!state.reading) n = howMuchToRead(nOrig, state); } var ret; if (n > 0) ret = fromList(n, state); else ret = null; if (ret === null) { state.needReadable = true; n = 0; } else { state.length -= n; state.awaitDrain = 0; } if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } if (ret !== null) this.emit('data', ret); return ret; }; function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { var chunk = state.decoder.end(); if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } state.ended = true; if (state.sync) { // if we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() // the readable code triggers during a read() call emitReadable(stream); } else { // emit 'readable' now to make sure it gets picked up. state.needReadable = false; if (!state.emittedReadable) { state.emittedReadable = true; emitReadable_(stream); } } } // Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. function emitReadable(stream) { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; process.nextTick(emitReadable_, stream); } } function emitReadable_(stream) { var state = stream._readableState; debug('emitReadable_', state.destroyed, state.length, state.ended); if (!state.destroyed && (state.length || state.ended)) { stream.emit('readable'); } // The stream needs another readable event if // 1. It is not flowing, as the flow mechanism will take // care of it. // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; flow(stream); } // at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; process.nextTick(maybeReadMore_, stream, state); } } function maybeReadMore_(stream, state) { var len = state.length; while (!state.reading && !state.ended && state.length < state.highWaterMark) { debug('maybeReadMore read 0'); stream.read(0); if (len === state.length) // didn't get any data, stop spinning. break; else len = state.length; } state.readingMore = false; } // abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. Readable.prototype._read = function(n) { this.emit('error', new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; Readable.prototype.pipe = function(dest, pipeOpts) { var src = this; var state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest); break; } state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) process.nextTick(endFn); else src.once('end', endFn); dest.on('unpipe', onunpipe); function onunpipe(readable, unpipeInfo) { debug('onunpipe'); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; cleanup(); } } } function onend() { debug('onend'); dest.end(); } // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; function cleanup() { debug('cleanup'); // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); dest.removeListener('error', onerror); dest.removeListener('unpipe', onunpipe); src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); cleanedUp = true; // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } src.on('data', ondata); function ondata(chunk) { debug('ondata'); var ret = dest.write(chunk); debug('dest.write', ret); if (ret === false) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write // also returned false. // => Check whether `dest` is still a piping destination. if (((state.pipesCount === 1 && state.pipes === dest) || (state.pipesCount > 1 && state.pipes.indexOf(dest) !== -1)) && !cleanedUp) { debug('false write response, pause', state.awaitDrain); state.awaitDrain++; } src.pause(); } } // if the dest has an error, then stop piping into it. // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EE.listenerCount(dest, 'error') === 0) dest.emit('error', er); } // Make sure our error handler is attached before userland ones. prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } dest.once('close', onclose); function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } dest.once('finish', onfinish); function unpipe() { debug('unpipe'); src.unpipe(dest); } // tell the dest that it's being piped to dest.emit('pipe', src); // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } return dest; }; function pipeOnDrain(src) { return function pipeOnDrainFunctionResult() { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } Readable.prototype.unpipe = function(dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; if (!dest) dest = state.pipes; // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; } // slow case. multiple pipe destinations. if (!dest) { // remove all. var dests = state.pipes; var len = state.pipesCount; state.pipes = null; state.pipesCount = 0; state.flowing = false; for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { hasUnpiped: false }); return this; } // try to find the right one. var index = state.pipes.indexOf(dest); if (index === -1) return this; state.pipes.splice(index, 1); state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; }; // set up data events if they are asked for // Ensure readable listeners eventually get something Readable.prototype.on = function(ev, fn) { const res = Stream.prototype.on.call(this, ev, fn); const state = this._readableState; if (ev === 'data') { // update readableListening so that resume() may be a no-op // a few lines down. This is needed to support once('readable'). state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused if (state.flowing !== false) this.resume(); } else if (ev === 'readable') { if (!state.endEmitted && !state.readableListening) { state.readableListening = state.needReadable = true; state.flowing = false; state.emittedReadable = false; debug('on readable', state.length, state.reading); if (state.length) { emitReadable(this); } else if (!state.reading) { process.nextTick(nReadingNextTick, this); } } } return res; }; Readable.prototype.addListener = Readable.prototype.on; Readable.prototype.removeListener = function(ev, fn) { const res = Stream.prototype.removeListener.call(this, ev, fn); if (ev === 'readable') { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen // after readable has been emitted but before I/O (nextTick) to // support once('readable', fn) cycles. This means that calling // resume within the same tick will have no // effect. process.nextTick(updateReadableListening, this); } return res; }; Readable.prototype.removeAllListeners = function(ev) { const res = Stream.prototype.removeAllListeners.apply(this, arguments); if (ev === 'readable' || ev === undefined) { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen // after readable has been emitted but before I/O (nextTick) to // support once('readable', fn) cycles. This means that calling // resume within the same tick will have no // effect. process.nextTick(updateReadableListening, this); } return res; }; function updateReadableListening(self) { const state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; if (state.resumeScheduled && !state.paused) { // flowing needs to be set to true now, otherwise // the upcoming resume will not flow. state.flowing = true; // crude way to check if we should resume } else if (self.listenerCount('data') > 0) { self.resume(); } } function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); } // pause() and resume() are remnants of the legacy readable stream API // If the user uses them, then switch into old mode. Readable.prototype.resume = function() { var state = this._readableState; if (!state.flowing) { debug('resume'); // we flow only if there is no one listening // for readable, but we still have to call // resume() state.flowing = !state.readableListening; resume(this, state); } state.paused = false; return this; }; function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; process.nextTick(resume_, stream, state); } } function resume_(stream, state) { debug('resume', state.reading); if (!state.reading) { stream.read(0); } state.resumeScheduled = false; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } Readable.prototype.pause = function() { debug('call pause flowing=%j', this._readableState.flowing); if (this._readableState.flowing !== false) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } this._readableState.paused = true; return this; }; function flow(stream) { const state = stream._readableState; debug('flow', state.flowing); while (state.flowing && stream.read() !== null); } // wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. Readable.prototype.wrap = function(stream) { var state = this._readableState; var paused = false; stream.on('end', () => { debug('wrapped end'); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) this.push(chunk); } this.push(null); }); stream.on('data', (chunk) => { debug('wrapped data'); if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return; else if (!state.objectMode && (!chunk || !chunk.length)) return; var ret = this.push(chunk); if (!ret) { paused = true; stream.pause(); } }); // proxy all the other methods. // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function methodWrap(method) { return function methodWrapReturnFunction() { return stream[method].apply(stream, arguments); }; }(i); } } // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); } // when we try to consume some more bytes, simply unpause the // underlying stream. this._read = (n) => { debug('wrapped _read', n); if (paused) { paused = false; stream.resume(); } }; return this; }; Readable.prototype[Symbol.asyncIterator] = function() { emitExperimentalWarning('Readable[Symbol.asyncIterator]'); if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('internal/streams/async_iterator'); } return createReadableStreamAsyncIterator(this); }; Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._readableState.highWaterMark; } }); Object.defineProperty(Readable.prototype, 'readableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._readableState && this._readableState.buffer; } }); Object.defineProperty(Readable.prototype, 'readableFlowing', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._readableState.flowing; }, set: function(state) { if (this._readableState) { this._readableState.flowing = state; } } }); // exposed for testing purposes only. Readable._fromList = fromList; Object.defineProperty(Readable.prototype, 'readableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { return this._readableState.length; } }); // Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromList(n, state) { // nothing buffered if (state.length === 0) return null; var ret; if (state.objectMode) ret = state.buffer.shift(); else if (!n || n >= state.length) { // read it all, truncate the list if (state.decoder) ret = state.buffer.join(''); else if (state.buffer.length === 1) ret = state.buffer.first(); else ret = state.buffer.concat(state.length); state.buffer.clear(); } else { // read part of list ret = state.buffer.consume(n, state.decoder); } return ret; } function endReadable(stream) { var state = stream._readableState; debug('endReadable', state.endEmitted); if (!state.endEmitted) { state.ended = true; process.nextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); } } _stream_writable// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. 'use strict'; module.exports = Writable; Writable.WritableState = WritableState; const util = require('util'); const internalUtil = require('internal/util'); const Stream = require('stream'); const { Buffer } = require('buffer'); const destroyImpl = require('internal/streams/destroy'); const { getHighWaterMark } = require('internal/streams/state'); const { ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING } = require('internal/errors').codes; util.inherits(Writable, Stream); function nop() {} function WritableState(options, stream, isDuplex) { options = options || {}; // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream, // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Stream.Duplex; // object stream flag to indicate whether or not this stream // contains buffers or objects. this.objectMode = !!options.objectMode; if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called this.finalCalled = false; // drain event flag. this.needDrain = false; // at the start of calling end() this.ending = false; // when end() has been called, and returned this.ended = false; // when 'finish' is emitted this.finished = false; // has it been destroyed this.destroyed = false; // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. var noDecode = options.decodeStrings === false; this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. this.length = 0; // a flag to see when we're in the middle of a write. this.writing = false; // when true all writes will be buffered until .uncork() call this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. this.sync = true; // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) this.onwrite = onwrite.bind(undefined, stream); // the callback that the user supplies to write(chunk,encoding,cb) this.writecb = null; // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; this.lastBufferedRequest = null; // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams this.prefinished = false; // True if the error was already emitted and should not be thrown again this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. this.emitClose = options.emitClose !== false; // count buffered requests this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two var corkReq = { next: null, entry: null, finish: undefined }; corkReq.finish = onCorkedFinish.bind(undefined, corkReq, this); this.corkedRequestsFree = corkReq; } WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; while (current) { out.push(current); current = current.next; } return out; }; Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function writableStateBufferGetter() { return this.getBuffer(); }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); // Test _writableState for inheritance to account for Duplex streams, // whose prototype chain only points to Readable. var realHasInstance; if (typeof Symbol === 'function' && Symbol.hasInstance) { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { value: function(object) { if (realHasInstance.call(this, object)) return true; if (this !== Writable) return false; return object && object._writableState instanceof WritableState; } }); } else { realHasInstance = function(object) { return object instanceof this; }; } function Writable(options) { // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. // Checking for a Stream.Duplex instance is faster here instead of inside // the WritableState constructor, at least with V8 6.5 const isDuplex = (this instanceof Stream.Duplex); if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); this._writableState = new WritableState(options, this, isDuplex); // legacy. this.writable = true; if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); } // Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function() { this.emit('error', new ERR_STREAM_CANNOT_PIPE()); }; function writeAfterEnd(stream, cb) { var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb stream.emit('error', er); process.nextTick(cb, er); } // Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. function validChunk(stream, state, chunk, cb) { var er; if (chunk === null) { er = new ERR_STREAM_NULL_VALUES(); } else if (typeof chunk !== 'string' && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } if (er) { stream.emit('error', er); process.nextTick(cb, er); return false; } return true; } Writable.prototype.write = function(chunk, encoding, cb) { var state = this._writableState; var ret = false; var isBuf = !state.objectMode && Stream._isUint8Array(chunk); if (isBuf && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = Stream._uint8ArrayToBuffer(chunk); } if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (isBuf) encoding = 'buffer'; else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ending) writeAfterEnd(this, cb); else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); } return ret; }; Writable.prototype.cork = function() { this._writableState.corked++; }; Writable.prototype.uncork = function() { var state = this._writableState; if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); this._writableState.defaultEncoding = encoding; return this; }; Object.defineProperty(Writable.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._writableState && this._writableState.getBuffer(); } }); function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } return chunk; } Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._writableState.highWaterMark; } }); // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { chunk, encoding, isBuf, callback: cb, next: null }; if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } return ret; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; state.writing = true; state.sync = true; if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write')); else if (writev) stream._writev(chunk, state.onwrite); else stream._write(chunk, encoding, state.onwrite); state.sync = false; } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack process.nextTick(cb, er); // this can emit finish, and it will always happen // after error process.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; stream.emit('error', er); } else { // the caller expect this to happen before if // it is async cb(er); stream._writableState.errorEmitted = true; stream.emit('error', er); // this can emit finish, but finish must // always follow error finishMaybe(stream, state); } } function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; var cb = state.writecb; if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); onwriteStateUpdate(state); if (er) onwriteError(stream, state, sync, er, cb); else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state) || stream.destroyed; if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } if (sync) { process.nextTick(afterWrite, stream, state, finished, cb); } else { afterWrite(stream, state, finished, cb); } } } function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); } // Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } } // if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; var buffer = new Array(l); var holder = state.corkedRequestsFree; holder.entry = entry; var count = 0; var allBuffers = true; while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { var corkReq = { next: null, entry: null, finish: undefined }; corkReq.finish = onCorkedFinish.bind(undefined, corkReq, state); state.corkedRequestsFree = corkReq; } state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one while (entry) { var chunk = entry.chunk; var encoding = entry.encoding; var cb = entry.callback; var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. if (state.writing) { break; } } if (entry === null) state.lastBufferedRequest = null; } state.bufferedRequest = entry; state.bufferProcessing = false; } Writable.prototype._write = function(chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); }; Writable.prototype._writev = null; Writable.prototype.end = function(chunk, encoding, cb) { var state = this._writableState; if (typeof chunk === 'function') { cb = chunk; chunk = null; encoding = null; } else if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); } // ignore unnecessary end() calls. if (!state.ending) endWritable(this, state, cb); return this; }; Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { return this._writableState.length; } }); function needFinish(state) { return (state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing); } function callFinal(stream, state) { stream._final((err) => { state.pendingcb--; if (err) { stream.emit('error', err); } state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function' && !state.destroyed) { state.pendingcb++; state.finalCalled = true; process.nextTick(callFinal, stream, state); } else { state.prefinished = true; stream.emit('prefinish'); } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { prefinish(stream, state); if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); } } return need; } function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); if (cb) { if (state.finished) process.nextTick(cb); else stream.once('finish', cb); } state.ended = true; stream.writable = false; } function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; } // reuse the free corkReq. state.corkedRequestsFree.next = corkReq; } Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { if (this._writableState === undefined) { return false; } return this._writableState.destroyed; }, set(value) { // we ignore the value if the stream // has not been initialized yet if (!this._writableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function(err, cb) { cb(err); }; _stream_duplex// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. 'use strict'; module.exports = Duplex; const util = require('util'); const Readable = require('_stream_readable'); const Writable = require('_stream_writable'); util.inherits(Duplex, Readable); { // Allow the keys array to be GC'ed. const keys = Object.keys(Writable.prototype); for (var v = 0; v < keys.length; v++) { const method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); this.allowHalfOpen = true; if (options) { if (options.readable === false) this.readable = false; if (options.writable === false) this.writable = false; if (options.allowHalfOpen === false) { this.allowHalfOpen = false; this.once('end', onend); } } } Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { return this._writableState.highWaterMark; } }); Object.defineProperty(Duplex.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function() { return this._writableState && this._writableState.getBuffer(); } }); Object.defineProperty(Duplex.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { return this._writableState.length; } }); // the no-half-open enforcer function onend() { // If the writable side ended, then we're ok. if (this._writableState.ended) return; // no more data can be written. // But allow more writes to happen in this tick. process.nextTick(onEndNT, this); } function onEndNT(self) { self.end(); } Object.defineProperty(Duplex.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get() { if (this._readableState === undefined || this._writableState === undefined) { return false; } return this._readableState.destroyed && this._writableState.destroyed; }, set(value) { // we ignore the value if the stream // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } }); _stream_transform// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where // some bits pass through, and others are simply ignored. (That would // be a valid example of a transform, of course.) // // While the output is causally related to the input, it's not a // necessarily symmetric or synchronous transformation. For example, // a zlib stream might take multiple plain-text writes(), and then // emit a single compressed chunk some time in the future. // // Here's how this works: // // The Transform stream has all the aspects of the readable and writable // stream classes. When you write(chunk), that calls _write(chunk,cb) // internally, and returns false if there's a lot of pending writes // buffered up. When you call read(), that calls _read(n) until // there's enough pending readable data buffered up. // // In a transform stream, the written data is placed in a buffer. When // _read(n) is called, it transforms the queued up data, calling the // buffered _write cb's as it consumes chunks. If consuming a single // written chunk would result in multiple output chunks, then the first // outputted bit calls the readcb, and subsequent chunks just go into // the read buffer, and will cause it to emit 'readable' if necessary. // // This way, back-pressure is actually determined by the reading side, // since _read has to be called to start processing a new chunk. However, // a pathological inflate type of transform can cause excessive buffering // here. For example, imagine a stream where every byte of input is // interpreted as an integer from 0-255, and then results in that many // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in // 1kb of data being output. In this case, you could write a very small // amount of input, and end up with a very large amount of output. In // such a pathological inflating mechanism, there'd be no way to tell // the system to stop doing the transform. A single 4MB write could // cause the system to run out of memory. // // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. 'use strict'; module.exports = Transform; const { ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 } = require('internal/errors').codes; const Duplex = require('_stream_duplex'); const util = require('util'); util.inherits(Transform, Duplex); function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; if (cb === null) { return this.emit('error', new ERR_MULTIPLE_CALLBACK()); } ts.writechunk = null; ts.writecb = null; if (data != null) // single equals check for both `null` and `undefined` this.push(data); cb(er); var rs = this._readableState; rs.reading = false; if (rs.needReadable || rs.length < rs.highWaterMark) { this._read(rs.highWaterMark); } } function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); this._transformState = { afterTransform: afterTransform.bind(this), needTransform: false, transforming: false, writecb: null, writechunk: null, writeencoding: null }; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. this._readableState.sync = false; if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; } // When the writable side finishes, then flush out anything remaining. this.on('prefinish', prefinish); } function prefinish() { if (typeof this._flush === 'function' && !this._readableState.destroyed) { this._flush((er, data) => { done(this, er, data); }); } else { done(this, null, null); } } Transform.prototype.push = function(chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); }; // This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // // Call `push(newChunk)` to pass along transformed output // to the readable side. You may call 'push' zero or more times. // // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. Transform.prototype._transform = function(chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); }; Transform.prototype._write = function(chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } }; // Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. Transform.prototype._read = function(n) { var ts = this._transformState; if (ts.writechunk !== null && !ts.transforming) { ts.transforming = true; this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in // will get processed, now that we've asked for it. ts.needTransform = true; } }; Transform.prototype._destroy = function(err, cb) { Duplex.prototype._destroy.call(this, err, (err2) => { cb(err2); }); }; function done(stream, er, data) { if (er) return stream.emit('error', er); if (data != null) // single equals check for both `null` and `undefined` stream.push(data); // TODO(BridgeAR): Write a test for these two error cases // if there's nothing in the write buffer, then that means // that nothing more will ever be provided if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); return stream.push(null); } _stream_passthrough// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. 'use strict'; module.exports = PassThrough; const Transform = require('_stream_transform'); const util = require('util'); util.inherits(PassThrough, Transform); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } PassThrough.prototype._transform = function(chunk, encoding, cb) { cb(null, chunk); }; _stream_wrap'use strict'; module.exports = require('internal/wrap_js_stream'); string_decoder// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { Buffer } = require('buffer'); const { kIncompleteCharactersStart, kIncompleteCharactersEnd, kMissingBytes, kBufferedBytes, kEncodingField, kSize, decode, flush, encodings } = internalBinding('string_decoder'); const internalUtil = require('internal/util'); const { ERR_INVALID_ARG_TYPE, ERR_UNKNOWN_ENCODING } = require('internal/errors').codes; const isEncoding = Buffer[internalUtil.kIsEncodingSymbol]; const kNativeDecoder = Symbol('kNativeDecoder'); // Do not cache `Buffer.isEncoding` when checking encoding names as some // modules monkey-patch it to support additional encodings function normalizeEncoding(enc) { const nenc = internalUtil.normalizeEncoding(enc); if (nenc === undefined) { if (Buffer.isEncoding === isEncoding || !Buffer.isEncoding(enc)) throw new ERR_UNKNOWN_ENCODING(enc); return enc; } return nenc; } const encodingsMap = {}; for (var i = 0; i < encodings.length; ++i) encodingsMap[encodings[i]] = i; // StringDecoder provides an interface for efficiently splitting a series of // buffers into a series of JS strings without breaking apart multi-byte // characters. function StringDecoder(encoding) { this.encoding = normalizeEncoding(encoding); this[kNativeDecoder] = Buffer.alloc(kSize); this[kNativeDecoder][kEncodingField] = encodingsMap[this.encoding]; } StringDecoder.prototype.write = function write(buf) { if (typeof buf === 'string') return buf; if (!ArrayBuffer.isView(buf)) throw new ERR_INVALID_ARG_TYPE('buf', ['Buffer', 'TypedArray', 'DataView'], buf); return decode(this[kNativeDecoder], buf); }; StringDecoder.prototype.end = function end(buf) { let ret = ''; if (buf !== undefined) ret = this.write(buf); if (this[kNativeDecoder][kBufferedBytes] > 0) ret += flush(this[kNativeDecoder]); return ret; }; /* Everything below this line is undocumented legacy stuff. */ StringDecoder.prototype.text = function text(buf, offset) { this[kNativeDecoder][kMissingBytes] = 0; this[kNativeDecoder][kBufferedBytes] = 0; return this.write(buf.slice(offset)); }; Object.defineProperties(StringDecoder.prototype, { lastChar: { configurable: true, enumerable: true, get() { return this[kNativeDecoder].subarray(kIncompleteCharactersStart, kIncompleteCharactersEnd); } }, lastNeed: { configurable: true, enumerable: true, get() { return this[kNativeDecoder][kMissingBytes]; } }, lastTotal: { configurable: true, enumerable: true, get() { return this[kNativeDecoder][kBufferedBytes] + this[kNativeDecoder][kMissingBytes]; } } }); exports.StringDecoder = StringDecoder; sys// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; // the sys module was renamed to 'util'. // this shim remains to keep old programs working. // sys is deprecated and shouldn't be used module.exports = require('util'); process.emitWarning('sys is deprecated. Use util instead.', 'DeprecationWarning', 'DEP0025'); timers// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { Timer: TimerWrap, setupTimers, } = process.binding('timer_wrap'); const L = require('internal/linkedlist'); const { async_id_symbol, trigger_async_id_symbol, Timeout, initAsyncResource, validateTimerDuration } = require('internal/timers'); const internalUtil = require('internal/util'); const assert = require('assert'); const util = require('util'); const { ERR_INVALID_CALLBACK } = require('internal/errors').codes; const debug = util.debuglog('timer'); const { destroyHooksExist, // The needed emit*() functions. emitBefore, emitAfter, emitDestroy, symbols: { owner_symbol } } = require('internal/async_hooks'); // *Must* match Environment::ImmediateInfo::Fields in src/env.h. const kCount = 0; const kRefCount = 1; const kHasOutstanding = 2; const [immediateInfo, toggleImmediateRef] = setupTimers(processImmediate, processTimers); const kRefed = Symbol('refed'); // HOW and WHY the timers implementation works the way it does. // // Timers are crucial to Node.js. Internally, any TCP I/O connection creates a // timer so that we can time out of connections. Additionally, many user // libraries and applications also use timers. As such there may be a // significantly large amount of timeouts scheduled at any given time. // Therefore, it is very important that the timers implementation is performant // and efficient. // // Note: It is suggested you first read through the lib/internal/linkedlist.js // linked list implementation, since timers depend on it extensively. It can be // somewhat counter-intuitive at first, as it is not actually a class. Instead, // it is a set of helpers that operate on an existing object. // // In order to be as performant as possible, the architecture and data // structures are designed so that they are optimized to handle the following // use cases as efficiently as possible: // - Adding a new timer. (insert) // - Removing an existing timer. (remove) // - Handling a timer timing out. (timeout) // // Whenever possible, the implementation tries to make the complexity of these // operations as close to constant-time as possible. // (So that performance is not impacted by the number of scheduled timers.) // // Object maps are kept which contain linked lists keyed by their duration in // milliseconds. // The linked lists within also have some meta-properties, one of which is a // TimerWrap C++ handle, which makes the call after the duration to process the // list it is attached to. // /* eslint-disable node-core/non-ascii-character */ // // T%P%P%P%P% > Object Map // Q% // `%P%P% // Q% refedLists: { '40': { }, '320': { etc } } (keys of millisecond duration) // Z%P%P% %%%%%%%%%%% // % // T%P%P% % // Q% TimersList { _idleNext: { }, _idlePrev: (self), _timer: (TimerWrap) } // Q% %%%%%%%%%%%%%%%%%% // Q% T%P%P% % ^ // Q% Q% { _idleNext: { }, _idlePrev: { }, _onTimeout: (callback) } // Q% Q% %%%%%%%%%%%%% // Q% Q% % ^ // Q% Q% { _idleNext: { etc }, _idlePrev: { }, _onTimeout: (callback) } // `%P%P% `%P%P% // Q% Q% // Q% Z%P%P%P%P% > Actual JavaScript timeouts // Q% // Z%P%P%P%P% > Linked List // /* eslint-enable node-core/non-ascii-character */ // // With this, virtually constant-time insertion (append), removal, and timeout // is possible in the JavaScript layer. Any one list of timers is able to be // sorted by just appending to it because all timers within share the same // duration. Therefore, any timer added later will always have been scheduled to // timeout later, thus only needing to be appended. // Removal from an object-property linked list is also virtually constant-time // as can be seen in the lib/internal/linkedlist.js implementation. // Timeouts only need to process any timers currently due to expire, which will // always be at the beginning of the list for reasons stated above. Any timers // after the first one encountered that does not yet need to timeout will also // always be due to timeout at a later time. // // Less-than constant time operations are thus contained in two places: // TimerWrap's backing libuv timers implementation (a performant heap-based // queue), and the object map lookup of a specific list by the duration of // timers within (or creation of a new list). // However, these operations combined have shown to be trivial in comparison to // other alternative timers architectures. // Object maps containing linked lists of timers, keyed and sorted by their // duration in milliseconds. // // The difference between these two objects is that the former contains timers // that will keep the process open if they are the only thing left, while the // latter will not. // // - key = time in milliseconds // - value = linked list const refedLists = Object.create(null); const unrefedLists = Object.create(null); // Schedule or re-schedule a timer. // The item must have been enroll()'d first. const active = exports.active = function(item) { insert(item, false); }; // Internal APIs that need timeouts should use `_unrefActive()` instead of // `active()` so that they do not unnecessarily keep the process open. exports._unrefActive = function(item) { insert(item, true); }; // The underlying logic for scheduling or re-scheduling a timer. // // Appends a timer onto the end of an existing timers list, or creates a new // TimerWrap backed list if one does not already exist for the specified timeout // duration. function insert(item, unrefed, start) { const msecs = item._idleTimeout; if (msecs < 0 || msecs === undefined) return; if (typeof start === 'number') { item._idleStart = start; } else { item._idleStart = TimerWrap.now(); } const lists = unrefed === true ? unrefedLists : refedLists; // Use an existing list if there is one, otherwise we need to make a new one. var list = lists[msecs]; if (list === undefined) { debug('no %d list was found in insert, creating a new one', msecs); lists[msecs] = list = new TimersList(msecs, unrefed); } if (!item[async_id_symbol] || item._destroyed) { item._destroyed = false; initAsyncResource(item, 'Timeout'); } L.append(list, item); assert(!L.isEmpty(list)); // list is not empty } function TimersList(msecs, unrefed) { this._idleNext = this; // Create the list with the linkedlist properties to this._idlePrev = this; // prevent any unnecessary hidden class changes. this._unrefed = unrefed; this.msecs = msecs; const timer = this._timer = new TimerWrap(); timer._list = this; if (unrefed === true) timer.unref(); timer.start(msecs); } // Make sure the linked list only shows the minimal necessary information. TimersList.prototype[util.inspect.custom] = function(_, options) { return util.inspect(this, { ...options, // Only inspect one level. depth: 0, // It should not recurse. customInspect: false }); }; function processTimers(now) { if (this[owner_symbol]) return unrefdHandle(this[owner_symbol], now); return listOnTimeout(this, now); } function listOnTimeout(handle, now) { const list = handle._list; const msecs = list.msecs; debug('timeout callback %d', msecs); debug('now: %d', now); var diff, timer; while (timer = L.peek(list)) { diff = now - timer._idleStart; // Check if this loop iteration is too early for the next timer. // This happens if there are more timers scheduled for later in the list. if (diff < msecs) { var timeRemaining = msecs - (TimerWrap.now() - timer._idleStart); if (timeRemaining <= 0) { timeRemaining = 1; } handle.start(timeRemaining); debug('%d list wait because diff is %d', msecs, diff); return true; } // The actual logic for when a timeout happens. L.remove(timer); assert(timer !== L.peek(list)); if (!timer._onTimeout) { if (destroyHooksExist() && !timer._destroyed && typeof timer[async_id_symbol] === 'number') { emitDestroy(timer[async_id_symbol]); timer._destroyed = true; } continue; } tryOnTimeout(timer); } // If `L.peek(list)` returned nothing, the list was either empty or we have // called all of the timer timeouts. // As such, we can remove the list and clean up the TimerWrap C++ handle. debug('%d list empty', msecs); assert(L.isEmpty(list)); // Either refedLists[msecs] or unrefedLists[msecs] may have been removed and // recreated since the reference to `list` was created. Make sure they're // the same instance of the list before destroying. if (list._unrefed === true && list === unrefedLists[msecs]) { delete unrefedLists[msecs]; } else if (list === refedLists[msecs]) { delete refedLists[msecs]; } // Do not close the underlying handle if its ownership has changed // (e.g it was unrefed in its callback). if (!handle[owner_symbol]) handle.close(); return true; } // An optimization so that the try/finally only de-optimizes (since at least v8 // 4.7) what is in this smaller function. function tryOnTimeout(timer, start) { timer._called = true; const timerAsyncId = (typeof timer[async_id_symbol] === 'number') ? timer[async_id_symbol] : null; var threw = true; if (timerAsyncId !== null) emitBefore(timerAsyncId, timer[trigger_async_id_symbol]); try { ontimeout(timer, start); threw = false; } finally { if (timerAsyncId !== null) { if (!threw) emitAfter(timerAsyncId); if ((threw || !timer._repeat) && destroyHooksExist() && !timer._destroyed) { emitDestroy(timerAsyncId); timer._destroyed = true; } } } } // A convenience function for re-using TimerWrap handles more easily. // // This mostly exists to fix https://github.com/nodejs/node/issues/1264. // Handles in libuv take at least one `uv_run` to be registered as unreferenced. // Re-using an existing handle allows us to skip that, so that a second `uv_run` // will return no active handles, even when running `setTimeout(fn).unref()`. function reuse(item) { L.remove(item); const list = refedLists[item._idleTimeout]; // if empty - reuse the watcher if (list !== undefined && L.isEmpty(list)) { debug('reuse hit'); list._timer.stop(); delete refedLists[item._idleTimeout]; return list._timer; } return null; } // Remove a timer. Cancels the timeout and resets the relevant timer properties. function unenroll(item) { // Fewer checks may be possible, but these cover everything. if (destroyHooksExist() && typeof item[async_id_symbol] === 'number' && !item._destroyed) { emitDestroy(item[async_id_symbol]); item._destroyed = true; } const handle = reuse(item); if (handle !== null) { debug('unenroll: list empty'); handle.close(); } // if active is called later, then we want to make sure not to insert again item._idleTimeout = -1; } exports.unenroll = util.deprecate(unenroll, 'timers.unenroll() is deprecated. ' + 'Please use clearTimeout instead.', 'DEP0096'); // Make a regular object able to act as a timer by setting some properties. // This function does not start the timer, see `active()`. // Using existing objects as timers slightly reduces object overhead. function enroll(item, msecs) { msecs = validateTimerDuration(msecs); // if this item was already in a list somewhere // then we should unenroll it from that if (item._idleNext) unenroll(item); L.init(item); item._idleTimeout = msecs; } exports.enroll = util.deprecate(enroll, 'timers.enroll() is deprecated. ' + 'Please use setTimeout instead.', 'DEP0095'); /* * DOM-style timers */ function setTimeout(callback, after, arg1, arg2, arg3) { if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } var i, args; switch (arguments.length) { // fast cases case 1: case 2: break; case 3: args = [arg1]; break; case 4: args = [arg1, arg2]; break; default: args = [arg1, arg2, arg3]; for (i = 5; i < arguments.length; i++) { // extend array dynamically, makes .apply run much faster in v6.0.0 args[i - 2] = arguments[i]; } break; } const timeout = new Timeout(callback, after, args, false, false); active(timeout); return timeout; } setTimeout[internalUtil.promisify.custom] = function(after, value) { return new Promise((resolve) => { active(new Timeout(resolve, after, [value], false, false)); }); }; exports.setTimeout = setTimeout; function ontimeout(timer, start) { const args = timer._timerArgs; if (typeof timer._onTimeout !== 'function') return Promise.resolve(timer._onTimeout, args[0]); if (start === undefined && timer._repeat) start = TimerWrap.now(); if (!args) timer._onTimeout(); else Reflect.apply(timer._onTimeout, timer, args); if (timer._repeat) rearm(timer, start); } function rearm(timer, start = TimerWrap.now()) { // // Do not re-arm unenroll'd or closed timers. if (timer._idleTimeout === -1) return; // If timer is unref'd (or was - it's permanently removed from the list.) if (timer._handle && timer instanceof Timeout) { timer._handle.start(timer._repeat); } else { timer._idleTimeout = timer._repeat; const duration = TimerWrap.now() - start; if (duration >= timer._repeat) { // If callback duration >= timer._repeat, // add 1 ms to avoid blocking eventloop insert(timer, false, start + duration - timer._repeat + 1); } else { insert(timer, false, start); } } } const clearTimeout = exports.clearTimeout = function clearTimeout(timer) { if (timer && timer._onTimeout) { timer._onTimeout = null; if (timer instanceof Timeout) { timer.close(); // for after === 0 } else { unenroll(timer); } } }; exports.setInterval = function setInterval(callback, repeat, arg1, arg2, arg3) { if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } var i, args; switch (arguments.length) { // fast cases case 1: case 2: break; case 3: args = [arg1]; break; case 4: args = [arg1, arg2]; break; default: args = [arg1, arg2, arg3]; for (i = 5; i < arguments.length; i++) { // extend array dynamically, makes .apply run much faster in v6.0.0 args[i - 2] = arguments[i]; } break; } const timeout = new Timeout(callback, repeat, args, true, false); active(timeout); return timeout; }; exports.clearInterval = function clearInterval(timer) { // clearTimeout and clearInterval can be used to clear timers created from // both setTimeout and setInterval, as specified by HTML Living Standard: // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval clearTimeout(timer); }; function unrefdHandle(timer, now) { try { // Don't attempt to call the callback if it is not a function. if (typeof timer._onTimeout === 'function') { tryOnTimeout(timer, now); } } finally { // Make sure we clean up if the callback is no longer a function // even if the timer is an interval. if (!timer._repeat || typeof timer._onTimeout !== 'function') { timer.close(); } } return true; } Timeout.prototype.unref = function() { if (this._handle) { this._handle.unref(); } else if (typeof this._onTimeout === 'function') { const now = TimerWrap.now(); if (!this._idleStart) this._idleStart = now; var delay = this._idleStart + this._idleTimeout - now; if (delay < 0) delay = 0; // Prevent running cb again when unref() is called during the same cb if (this._called && !this._repeat) { unenroll(this); return; } const handle = reuse(this); if (handle !== null) { handle._list = undefined; } this._handle = handle || new TimerWrap(); this._handle[owner_symbol] = this; this._handle.start(delay); this._handle.unref(); } return this; }; Timeout.prototype.ref = function() { if (this._handle) this._handle.ref(); return this; }; Timeout.prototype.close = function() { this._onTimeout = null; if (this._handle) { if (destroyHooksExist() && typeof this[async_id_symbol] === 'number' && !this._destroyed) { emitDestroy(this[async_id_symbol]); this._destroyed = true; } this._idleTimeout = -1; this._handle.close(); } else { unenroll(this); } return this; }; // A linked list for storing `setImmediate()` requests function ImmediateList() { this.head = null; this.tail = null; } // Appends an item to the end of the linked list, adjusting the current tail's // previous and next pointers where applicable ImmediateList.prototype.append = function(item) { if (this.tail !== null) { this.tail._idleNext = item; item._idlePrev = this.tail; } else { this.head = item; } this.tail = item; }; // Removes an item from the linked list, adjusting the pointers of adjacent // items and the linked list's head or tail pointers as necessary ImmediateList.prototype.remove = function(item) { if (item._idleNext !== null) { item._idleNext._idlePrev = item._idlePrev; } if (item._idlePrev !== null) { item._idlePrev._idleNext = item._idleNext; } if (item === this.head) this.head = item._idleNext; if (item === this.tail) this.tail = item._idlePrev; item._idleNext = null; item._idlePrev = null; }; // Create a single linked list instance only once at startup const immediateQueue = new ImmediateList(); // If an uncaught exception was thrown during execution of immediateQueue, // this queue will store all remaining Immediates that need to run upon // resolution of all error handling (if process is still alive). const outstandingQueue = new ImmediateList(); function processImmediate() { const queue = outstandingQueue.head !== null ? outstandingQueue : immediateQueue; var immediate = queue.head; const tail = queue.tail; // Clear the linked list early in case new `setImmediate()` calls occur while // immediate callbacks are executed queue.head = queue.tail = null; let count = 0; let refCount = 0; while (immediate !== null) { immediate._destroyed = true; const asyncId = immediate[async_id_symbol]; emitBefore(asyncId, immediate[trigger_async_id_symbol]); count++; if (immediate[kRefed]) refCount++; immediate[kRefed] = undefined; tryOnImmediate(immediate, tail, count, refCount); emitAfter(asyncId); immediate = immediate._idleNext; } immediateInfo[kCount] -= count; immediateInfo[kRefCount] -= refCount; immediateInfo[kHasOutstanding] = 0; } // An optimization so that the try/finally only de-optimizes (since at least v8 // 4.7) what is in this smaller function. function tryOnImmediate(immediate, oldTail, count, refCount) { var threw = true; try { // make the actual call outside the try/finally to allow it to be optimized runCallback(immediate); threw = false; } finally { immediate._onImmediate = null; if (destroyHooksExist()) { emitDestroy(immediate[async_id_symbol]); } if (threw) { immediateInfo[kCount] -= count; immediateInfo[kRefCount] -= refCount; if (immediate._idleNext !== null) { // Handle any remaining Immediates after error handling has resolved, // assuming we're still alive to do so. outstandingQueue.head = immediate._idleNext; outstandingQueue.tail = oldTail; immediateInfo[kHasOutstanding] = 1; } } } } function runCallback(timer) { const argv = timer._argv; if (typeof timer._onImmediate !== 'function') return Promise.resolve(timer._onImmediate, argv[0]); if (!argv) return timer._onImmediate(); Reflect.apply(timer._onImmediate, timer, argv); } const Immediate = class Immediate { constructor(callback, args) { this._idleNext = null; this._idlePrev = null; // this must be set to null first to avoid function tracking // on the hidden class, revisit in V8 versions after 6.2 this._onImmediate = null; this._onImmediate = callback; this._argv = args; this._destroyed = false; this[kRefed] = false; initAsyncResource(this, 'Immediate'); this.ref(); immediateInfo[kCount]++; immediateQueue.append(this); } ref() { if (this[kRefed] === false) { this[kRefed] = true; if (immediateInfo[kRefCount]++ === 0) toggleImmediateRef(true); } return this; } unref() { if (this[kRefed] === true) { this[kRefed] = false; if (--immediateInfo[kRefCount] === 0) toggleImmediateRef(false); } return this; } }; function setImmediate(callback, arg1, arg2, arg3) { if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } var i, args; switch (arguments.length) { // fast cases case 1: break; case 2: args = [arg1]; break; case 3: args = [arg1, arg2]; break; default: args = [arg1, arg2, arg3]; for (i = 4; i < arguments.length; i++) { // extend array dynamically, makes .apply run much faster in v6.0.0 args[i - 1] = arguments[i]; } break; } return new Immediate(callback, args); } setImmediate[internalUtil.promisify.custom] = function(value) { return new Promise((resolve) => new Immediate(resolve, [value])); }; exports.setImmediate = setImmediate; exports.clearImmediate = function clearImmediate(immediate) { if (!immediate || immediate._destroyed) return; immediateInfo[kCount]--; immediate._destroyed = true; if (immediate[kRefed] && --immediateInfo[kRefCount] === 0) toggleImmediateRef(false); immediate[kRefed] = undefined; if (destroyHooksExist()) { emitDestroy(immediate[async_id_symbol]); } immediate._onImmediate = null; immediateQueue.remove(immediate); }; // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. Object.defineProperty(TimerWrap.prototype, 'owner', { get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); tls// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { ERR_TLS_CERT_ALTNAME_INVALID, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const internalUtil = require('internal/util'); const internalTLS = require('internal/tls'); internalUtil.assertCrypto(); const { isUint8Array } = require('internal/util/types'); const net = require('net'); const url = require('url'); const binding = internalBinding('crypto'); const { Buffer } = require('buffer'); const EventEmitter = require('events'); const DuplexPair = require('internal/streams/duplexpair'); const { canonicalizeIP } = process.binding('cares_wrap'); const _tls_common = require('_tls_common'); const _tls_wrap = require('_tls_wrap'); // Allow {CLIENT_RENEG_LIMIT} client-initiated session renegotiations // every {CLIENT_RENEG_WINDOW} seconds. An error event is emitted if more // renegotiations are seen. The settings are applied to all remote client // connections. exports.CLIENT_RENEG_LIMIT = 3; exports.CLIENT_RENEG_WINDOW = 600; exports.DEFAULT_CIPHERS = process.binding('constants').crypto.defaultCipherList; exports.DEFAULT_ECDH_CURVE = 'auto'; exports.getCiphers = internalUtil.cachedResult( () => internalUtil.filterDuplicateStrings(binding.getSSLCiphers(), true) ); // Convert protocols array into valid OpenSSL protocols list // ("\x06spdy/2\x08http/1.1\x08http/1.0") function convertProtocols(protocols) { const lens = new Array(protocols.length); const buff = Buffer.allocUnsafe(protocols.reduce((p, c, i) => { var len = Buffer.byteLength(c); if (len > 255) { throw new ERR_OUT_OF_RANGE('The byte length of the protocol at index ' + `${i} exceeds the maximum length.`, '<= 255', len, true); } lens[i] = len; return p + 1 + len; }, 0)); var offset = 0; for (var i = 0, c = protocols.length; i < c; i++) { buff[offset++] = lens[i]; buff.write(protocols[i], offset); offset += lens[i]; } return buff; } exports.convertNPNProtocols = internalUtil.deprecate(function(protocols, out) { // If protocols is Array - translate it into buffer if (Array.isArray(protocols)) { out.NPNProtocols = convertProtocols(protocols); } else if (isUint8Array(protocols)) { // Copy new buffer not to be modified by user. out.NPNProtocols = Buffer.from(protocols); } }, 'tls.convertNPNProtocols() is deprecated.', 'DEP0107'); exports.convertALPNProtocols = function convertALPNProtocols(protocols, out) { // If protocols is Array - translate it into buffer if (Array.isArray(protocols)) { out.ALPNProtocols = convertProtocols(protocols); } else if (isUint8Array(protocols)) { // Copy new buffer not to be modified by user. out.ALPNProtocols = Buffer.from(protocols); } }; function unfqdn(host) { return host.replace(/[.]$/, ''); } function splitHost(host) { // String#toLowerCase() is locale-sensitive so we use // a conservative version that only lowercases A-Z. const replacer = (c) => String.fromCharCode(32 + c.charCodeAt(0)); return unfqdn(host).replace(/[A-Z]/g, replacer).split('.'); } function check(hostParts, pattern, wildcards) { // Empty strings, null, undefined, etc. never match. if (!pattern) return false; const patternParts = splitHost(pattern); if (hostParts.length !== patternParts.length) return false; // Pattern has empty components, e.g. "bad..example.com". if (patternParts.includes('')) return false; // RFC 6125 allows IDNA U-labels (Unicode) in names but we have no // good way to detect their encoding or normalize them so we simply // reject them. Control characters and blanks are rejected as well // because nothing good can come from accepting them. const isBad = (s) => /[^\u0021-\u007F]/u.test(s); if (patternParts.some(isBad)) return false; // Check host parts from right to left first. for (var i = hostParts.length - 1; i > 0; i -= 1) { if (hostParts[i] !== patternParts[i]) return false; } const hostSubdomain = hostParts[0]; const patternSubdomain = patternParts[0]; const patternSubdomainParts = patternSubdomain.split('*'); // Short-circuit when the subdomain does not contain a wildcard. // RFC 6125 does not allow wildcard substitution for components // containing IDNA A-labels (Punycode) so match those verbatim. if (patternSubdomainParts.length === 1 || patternSubdomain.includes('xn--')) return hostSubdomain === patternSubdomain; if (!wildcards) return false; // More than one wildcard is always wrong. if (patternSubdomainParts.length > 2) return false; // *.tld wildcards are not allowed. if (patternParts.length <= 2) return false; const [prefix, suffix] = patternSubdomainParts; if (prefix.length + suffix.length > hostSubdomain.length) return false; if (!hostSubdomain.startsWith(prefix)) return false; if (!hostSubdomain.endsWith(suffix)) return false; return true; } exports.checkServerIdentity = function checkServerIdentity(hostname, cert) { const subject = cert.subject; const altNames = cert.subjectaltname; const dnsNames = []; const uriNames = []; const ips = []; hostname = '' + hostname; if (altNames) { for (const name of altNames.split(', ')) { if (name.startsWith('DNS:')) { dnsNames.push(name.slice(4)); } else if (name.startsWith('URI:')) { const uri = url.parse(name.slice(4)); uriNames.push(uri.hostname); // TODO(bnoordhuis) Also use scheme. } else if (name.startsWith('IP Address:')) { ips.push(canonicalizeIP(name.slice(11))); } } } let valid = false; let reason = 'Unknown reason'; if (net.isIP(hostname)) { valid = ips.includes(canonicalizeIP(hostname)); if (!valid) reason = `IP: ${hostname} is not in the cert's list: ${ips.join(', ')}`; // TODO(bnoordhuis) Also check URI SANs that are IP addresses. } else if (subject) { hostname = unfqdn(hostname); // Remove trailing dot for error messages. const hostParts = splitHost(hostname); const wildcard = (pattern) => check(hostParts, pattern, true); const noWildcard = (pattern) => check(hostParts, pattern, false); // Match against Common Name only if no supported identifiers are present. if (dnsNames.length === 0 && ips.length === 0 && uriNames.length === 0) { const cn = subject.CN; if (Array.isArray(cn)) valid = cn.some(wildcard); else if (cn) valid = wildcard(cn); if (!valid) reason = `Host: ${hostname}. is not cert's CN: ${cn}`; } else { valid = dnsNames.some(wildcard) || uriNames.some(noWildcard); if (!valid) reason = `Host: ${hostname}. is not in the cert's altnames: ${altNames}`; } } else { reason = 'Cert is empty'; } if (!valid) { const err = new ERR_TLS_CERT_ALTNAME_INVALID(reason); err.reason = reason; err.host = hostname; err.cert = cert; return err; } }; class SecurePair extends EventEmitter { constructor(secureContext = exports.createSecureContext(), isServer = false, requestCert = !isServer, rejectUnauthorized = false, options = {}) { super(); const { socket1, socket2 } = new DuplexPair(); this.server = options.server; this.credentials = secureContext; this.encrypted = socket1; this.cleartext = new exports.TLSSocket(socket2, Object.assign({ secureContext, isServer, requestCert, rejectUnauthorized }, options)); this.cleartext.once('secure', () => this.emit('secure')); } destroy() { this.cleartext.destroy(); this.encrypted.destroy(); } } exports.parseCertString = internalUtil.deprecate( internalTLS.parseCertString, 'tls.parseCertString() is deprecated. ' + 'Please use querystring.parse() instead.', 'DEP0076'); exports.createSecureContext = _tls_common.createSecureContext; exports.SecureContext = _tls_common.SecureContext; exports.TLSSocket = _tls_wrap.TLSSocket; exports.Server = _tls_wrap.Server; exports.createServer = _tls_wrap.createServer; exports.connect = _tls_wrap.connect; exports.createSecurePair = internalUtil.deprecate( function createSecurePair(...args) { return new SecurePair(...args); }, 'tls.createSecurePair() is deprecated. Please use ' + 'tls.TLSSocket instead.', 'DEP0064'); _tls_common// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { parseCertString } = require('internal/tls'); const { isArrayBufferView } = require('internal/util/types'); const tls = require('tls'); const { ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED, ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { SSL_OP_CIPHER_SERVER_PREFERENCE } = process.binding('constants').crypto; // Lazily loaded var crypto = null; const { SecureContext: NativeSecureContext } = internalBinding('crypto'); function SecureContext(secureProtocol, secureOptions, context) { if (!(this instanceof SecureContext)) { return new SecureContext(secureProtocol, secureOptions, context); } if (context) { this.context = context; } else { this.context = new NativeSecureContext(); if (secureProtocol) { this.context.init(secureProtocol); } else { this.context.init(); } } if (secureOptions) this.context.setOptions(secureOptions); } function validateKeyCert(name, value) { if (typeof value !== 'string' && !isArrayBufferView(value)) { throw new ERR_INVALID_ARG_TYPE( `options.${name}`, ['string', 'Buffer', 'TypedArray', 'DataView'], value ); } } exports.SecureContext = SecureContext; exports.createSecureContext = function createSecureContext(options, context) { if (!options) options = {}; var secureOptions = options.secureOptions; if (options.honorCipherOrder) secureOptions |= SSL_OP_CIPHER_SERVER_PREFERENCE; const c = new SecureContext(options.secureProtocol, secureOptions, context); var i; var val; if (context) return c; // NOTE: It's important to add CA before the cert to be able to load // cert's issuer in C++ code. const { ca } = options; if (ca) { if (Array.isArray(ca)) { for (i = 0; i < ca.length; ++i) { val = ca[i]; validateKeyCert('ca', val); c.context.addCACert(val); } } else { validateKeyCert('ca', ca); c.context.addCACert(ca); } } else { c.context.addRootCerts(); } const { cert } = options; if (cert) { if (Array.isArray(cert)) { for (i = 0; i < cert.length; ++i) { val = cert[i]; validateKeyCert('cert', val); c.context.setCert(val); } } else { validateKeyCert('cert', cert); c.context.setCert(cert); } } // NOTE: It is important to set the key after the cert. // `ssl_set_pkey` returns `0` when the key does not match the cert, but // `ssl_set_cert` returns `1` and nullifies the key in the SSL structure // which leads to the crash later on. var key = options.key; var passphrase = options.passphrase; if (key) { if (Array.isArray(key)) { for (i = 0; i < key.length; ++i) { val = key[i]; // eslint-disable-next-line eqeqeq const pem = (val != undefined && val.pem !== undefined ? val.pem : val); validateKeyCert('key', pem); c.context.setKey(pem, val.passphrase || passphrase); } } else { validateKeyCert('key', key); c.context.setKey(key, passphrase); } } if (options.ciphers) c.context.setCiphers(options.ciphers); else c.context.setCiphers(tls.DEFAULT_CIPHERS); if (options.ecdhCurve === undefined) c.context.setECDHCurve(tls.DEFAULT_ECDH_CURVE); else if (options.ecdhCurve) c.context.setECDHCurve(options.ecdhCurve); if (options.dhparam) { const warning = c.context.setDHParam(options.dhparam); if (warning) process.emitWarning(warning, 'SecurityWarning'); } if (options.crl) { if (Array.isArray(options.crl)) { for (i = 0; i < options.crl.length; i++) { c.context.addCRL(options.crl[i]); } } else { c.context.addCRL(options.crl); } } if (options.sessionIdContext) { c.context.setSessionIdContext(options.sessionIdContext); } if (options.pfx) { if (!crypto) crypto = require('crypto'); if (Array.isArray(options.pfx)) { for (i = 0; i < options.pfx.length; i++) { const pfx = options.pfx[i]; const raw = pfx.buf ? pfx.buf : pfx; const buf = crypto._toBuf(raw); const passphrase = pfx.passphrase || options.passphrase; if (passphrase) { c.context.loadPKCS12(buf, crypto._toBuf(passphrase)); } else { c.context.loadPKCS12(buf); } } } else { const buf = crypto._toBuf(options.pfx); const passphrase = options.passphrase; if (passphrase) { c.context.loadPKCS12(buf, crypto._toBuf(passphrase)); } else { c.context.loadPKCS12(buf); } } } // Do not keep read/write buffers in free list for OpenSSL < 1.1.0. (For // OpenSSL 1.1.0, buffers are malloced and freed without the use of a // freelist.) if (options.singleUse) { c.singleUse = true; c.context.setFreeListLength(0); } if (typeof options.clientCertEngine === 'string') { if (c.context.setClientCertEngine) c.context.setClientCertEngine(options.clientCertEngine); else throw new ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED(); } else if (options.clientCertEngine != null) { throw new ERR_INVALID_ARG_TYPE('options.clientCertEngine', ['string', 'null', 'undefined'], options.clientCertEngine); } return c; }; exports.translatePeerCertificate = function translatePeerCertificate(c) { if (!c) return null; if (c.issuer != null) c.issuer = parseCertString(c.issuer); if (c.issuerCertificate != null && c.issuerCertificate !== c) { c.issuerCertificate = translatePeerCertificate(c.issuerCertificate); } if (c.subject != null) c.subject = parseCertString(c.subject); if (c.infoAccess != null) { var info = c.infoAccess; c.infoAccess = Object.create(null); // XXX: More key validation? info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, (all, key, val) => { if (key in c.infoAccess) c.infoAccess[key].push(val); else c.infoAccess[key] = [val]; }); } return c; }; _tls_wrap// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; require('internal/util').assertCrypto(); const assert = require('assert'); const crypto = require('crypto'); const net = require('net'); const tls = require('tls'); const util = require('util'); const common = require('_tls_common'); const { StreamWrap } = require('_stream_wrap'); const { Buffer } = require('buffer'); const debug = util.debuglog('tls'); const { TCP, constants: TCPConstants } = internalBinding('tcp_wrap'); const tls_wrap = internalBinding('tls_wrap'); const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap'); const { owner_symbol } = require('internal/async_hooks').symbols; const { SecureContext: NativeSecureContext } = process.binding('crypto'); const { ERR_INVALID_ARG_TYPE, ERR_MULTIPLE_CALLBACK, ERR_SOCKET_CLOSED, ERR_TLS_DH_PARAM_SIZE, ERR_TLS_HANDSHAKE_TIMEOUT, ERR_TLS_RENEGOTIATE, ERR_TLS_RENEGOTIATION_DISABLED, ERR_TLS_REQUIRED_SERVER_NAME, ERR_TLS_SESSION_ATTACK, ERR_TLS_SNI_FROM_SERVER } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const kConnectOptions = Symbol('connect-options'); const kDisableRenegotiation = Symbol('disable-renegotiation'); const kErrorEmitted = Symbol('error-emitted'); const kHandshakeTimeout = Symbol('handshake-timeout'); const kRes = Symbol('res'); const kSNICallback = Symbol('snicallback'); const noop = () => {}; function onhandshakestart(now) { debug('onhandshakestart'); const { lastHandshakeTime } = this; assert(now >= lastHandshakeTime, `now (${now}) < lastHandshakeTime (${lastHandshakeTime})`); this.lastHandshakeTime = now; // If this is the first handshake we can skip the rest of the checks. if (lastHandshakeTime === 0) return; if ((now - lastHandshakeTime) >= tls.CLIENT_RENEG_WINDOW * 1000) this.handshakes = 1; else this.handshakes++; const owner = this[owner_symbol]; if (this.handshakes > tls.CLIENT_RENEG_LIMIT) { owner._emitTLSError(new ERR_TLS_SESSION_ATTACK()); return; } if (owner[kDisableRenegotiation]) owner._emitTLSError(new ERR_TLS_RENEGOTIATION_DISABLED()); } function onhandshakedone() { debug('onhandshakedone'); const owner = this[owner_symbol]; // `newSession` callback wasn't called yet if (owner._newSessionPending) { owner._securePending = true; return; } owner._finishInit(); } function loadSession(hello) { const owner = this[owner_symbol]; var once = false; function onSession(err, session) { if (once) return owner.destroy(new ERR_MULTIPLE_CALLBACK()); once = true; if (err) return owner.destroy(err); if (owner._handle === null) return owner.destroy(new ERR_SOCKET_CLOSED()); owner._handle.loadSession(session); owner._handle.endParser(); } if (hello.sessionId.length <= 0 || hello.tlsTicket || owner.server && !owner.server.emit('resumeSession', hello.sessionId, onSession)) { owner._handle.endParser(); } } function loadSNI(info) { const owner = this[owner_symbol]; const servername = info.servername; if (!servername || !owner._SNICallback) return requestOCSP(owner, info); let once = false; owner._SNICallback(servername, (err, context) => { if (once) return owner.destroy(new ERR_MULTIPLE_CALLBACK()); once = true; if (err) return owner.destroy(err); if (owner._handle === null) return owner.destroy(new ERR_SOCKET_CLOSED()); // TODO(indutny): eventually disallow raw `SecureContext` if (context) owner._handle.sni_context = context.context || context; requestOCSP(owner, info); }); } function requestOCSP(socket, info) { if (!info.OCSPRequest || !socket.server) return requestOCSPDone(socket); let ctx = socket._handle.sni_context; if (!ctx) { ctx = socket.server._sharedCreds; // TLS socket is using a `net.Server` instead of a tls.TLSServer. // Some TLS properties like `server._sharedCreds` will not be present if (!ctx) return requestOCSPDone(socket); } // TODO(indutny): eventually disallow raw `SecureContext` if (ctx.context) ctx = ctx.context; if (socket.server.listenerCount('OCSPRequest') === 0) { return requestOCSPDone(socket); } let once = false; const onOCSP = (err, response) => { if (once) return socket.destroy(new ERR_MULTIPLE_CALLBACK()); once = true; if (err) return socket.destroy(err); if (socket._handle === null) return socket.destroy(new ERR_SOCKET_CLOSED()); if (response) socket._handle.setOCSPResponse(response); requestOCSPDone(socket); }; socket.server.emit('OCSPRequest', ctx.getCertificate(), ctx.getIssuer(), onOCSP); } function requestOCSPDone(socket) { try { socket._handle.certCbDone(); } catch (e) { socket.destroy(e); } } function onnewsession(key, session) { const owner = this[owner_symbol]; if (!owner.server) return; var once = false; const done = () => { if (once) return; once = true; if (owner._handle === null) return owner.destroy(new ERR_SOCKET_CLOSED()); this.newSessionDone(); owner._newSessionPending = false; if (owner._securePending) owner._finishInit(); owner._securePending = false; }; owner._newSessionPending = true; if (!owner.server.emit('newSession', key, session, done)) done(); } function onocspresponse(resp) { this[owner_symbol].emit('OCSPResponse', resp); } function onerror(err) { const owner = this[owner_symbol]; if (owner._hadError) return; owner._hadError = true; // Destroy socket if error happened before handshake's finish if (!owner._secureEstablished) { // When handshake fails control is not yet released, // so self._tlsError will return null instead of actual error owner.destroy(err); } else if (owner._tlsOptions.isServer && owner._rejectUnauthorized && /peer did not return a certificate/.test(err.message)) { // Ignore server's authorization errors owner.destroy(); } else { // Throw error owner._emitTLSError(err); } } function initRead(tls, wrapped) { // If we were destroyed already don't bother reading if (!tls._handle) return; // Socket already has some buffered data - emulate receiving it if (wrapped && wrapped.readableLength) { var buf; while ((buf = wrapped.read()) !== null) tls._handle.receive(buf); } tls.read(0); } /** * Provides a wrap of socket stream to do encrypted communication. */ function TLSSocket(socket, opts) { const tlsOptions = Object.assign({}, opts); if (tlsOptions.ALPNProtocols) tls.convertALPNProtocols(tlsOptions.ALPNProtocols, tlsOptions); this._tlsOptions = tlsOptions; this._secureEstablished = false; this._securePending = false; this._newSessionPending = false; this._controlReleased = false; this._SNICallback = null; this.servername = null; this.alpnProtocol = null; this.authorized = false; this.authorizationError = null; this[kRes] = null; // Wrap plain JS Stream into StreamWrap var wrap; if ((socket instanceof net.Socket && socket._handle) || !socket) { wrap = socket; } else { wrap = new StreamWrap(socket); wrap.once('close', () => this.destroy()); } // Just a documented property to make secure sockets // distinguishable from regular ones. this.encrypted = true; net.Socket.call(this, { handle: this._wrapHandle(wrap), allowHalfOpen: socket && socket.allowHalfOpen, readable: false, writable: false }); // Proxy for API compatibility this.ssl = this._handle; this.on('error', this._tlsError); this._init(socket, wrap); // Make sure to setup all required properties like: `connecting` before // starting the flow of the data this.readable = true; this.writable = true; // Read on next tick so the caller has a chance to setup listeners process.nextTick(initRead, this, socket); } util.inherits(TLSSocket, net.Socket); exports.TLSSocket = TLSSocket; var proxiedMethods = [ 'ref', 'unref', 'open', 'bind', 'listen', 'connect', 'bind6', 'connect6', 'getsockname', 'getpeername', 'setNoDelay', 'setKeepAlive', 'setSimultaneousAccepts', 'setBlocking', // PipeWrap 'setPendingInstances' ]; // Proxy HandleWrap, PipeWrap and TCPWrap methods function makeMethodProxy(name) { return function methodProxy(...args) { if (this._parent[name]) return this._parent[name].apply(this._parent, args); }; } for (var n = 0; n < proxiedMethods.length; n++) { tls_wrap.TLSWrap.prototype[proxiedMethods[n]] = makeMethodProxy(proxiedMethods[n]); } tls_wrap.TLSWrap.prototype.close = function close(cb) { let ssl; if (this[owner_symbol]) { ssl = this[owner_symbol].ssl; this[owner_symbol].ssl = null; } // Invoke `destroySSL` on close to clean up possibly pending write requests // that may self-reference TLSWrap, leading to leak const done = () => { if (ssl) { ssl.destroySSL(); if (ssl._secureContext.singleUse) { ssl._secureContext.context.close(); ssl._secureContext.context = null; } } if (cb) cb(); }; if (this._parentWrap && this._parentWrap._handle === this._parent) { this._parentWrap.once('close', done); return this._parentWrap.destroy(); } return this._parent.close(done); }; TLSSocket.prototype.disableRenegotiation = function disableRenegotiation() { this[kDisableRenegotiation] = true; }; TLSSocket.prototype._wrapHandle = function(wrap) { var handle; if (wrap) handle = wrap._handle; var options = this._tlsOptions; if (!handle) { handle = options.pipe ? new Pipe(PipeConstants.SOCKET) : new TCP(TCPConstants.SOCKET); handle[owner_symbol] = this; } // Wrap socket's handle const context = options.secureContext || options.credentials || tls.createSecureContext(options); const externalStream = handle._externalStream; assert(typeof externalStream === 'object', 'handle must be a LibuvStreamWrap'); assert(context.context instanceof NativeSecureContext, 'context.context must be a NativeSecureContext'); const res = tls_wrap.wrap(externalStream, context.context, !!options.isServer); res._parent = handle; res._parentWrap = wrap; res._secureContext = context; res.reading = handle.reading; this[kRes] = res; defineHandleReading(this, handle); this.on('close', onSocketCloseDestroySSL); return res; }; // This eliminates a cyclic reference to TLSWrap // Ref: https://github.com/nodejs/node/commit/f7620fb96d339f704932f9bb9a0dceb9952df2d4 function defineHandleReading(socket, handle) { Object.defineProperty(handle, 'reading', { get: () => { return socket[kRes].reading; }, set: (value) => { socket[kRes].reading = value; } }); } function onSocketCloseDestroySSL() { // Make sure we are not doing it on OpenSSL's stack setImmediate(destroySSL, this); this[kRes] = null; } function destroySSL(self) { self._destroySSL(); } TLSSocket.prototype._destroySSL = function _destroySSL() { if (!this.ssl) return; this.ssl.destroySSL(); if (this.ssl._secureContext.singleUse) { this.ssl._secureContext.context.close(); this.ssl._secureContext.context = null; } this.ssl = null; }; TLSSocket.prototype._init = function(socket, wrap) { var options = this._tlsOptions; var ssl = this._handle; this.server = options.server; // For clients, we will always have either a given ca list or be using // default one const requestCert = !!options.requestCert || !options.isServer; const rejectUnauthorized = !!options.rejectUnauthorized; this._requestCert = requestCert; this._rejectUnauthorized = rejectUnauthorized; if (requestCert || rejectUnauthorized) ssl.setVerifyMode(requestCert, rejectUnauthorized); if (options.isServer) { ssl.onhandshakestart = onhandshakestart; ssl.onhandshakedone = onhandshakedone; ssl.onclienthello = loadSession; ssl.oncertcb = loadSNI; ssl.onnewsession = onnewsession; ssl.lastHandshakeTime = 0; ssl.handshakes = 0; if (this.server) { if (this.server.listenerCount('resumeSession') > 0 || this.server.listenerCount('newSession') > 0) { ssl.enableSessionCallbacks(); } if (this.server.listenerCount('OCSPRequest') > 0) ssl.enableCertCb(); } } else { ssl.onhandshakestart = noop; ssl.onhandshakedone = this._finishInit.bind(this); ssl.onocspresponse = onocspresponse; if (options.session) ssl.setSession(options.session); } ssl.onerror = onerror; // If custom SNICallback was given, or if // there're SNI contexts to perform match against - // set `.onsniselect` callback. if (options.isServer && options.SNICallback && (options.SNICallback !== SNICallback || (options.server && options.server._contexts.length))) { assert(typeof options.SNICallback === 'function'); this._SNICallback = options.SNICallback; ssl.enableCertCb(); } if (options.ALPNProtocols) { // keep reference in secureContext not to be GC-ed ssl._secureContext.alpnBuffer = options.ALPNProtocols; ssl.setALPNProtocols(ssl._secureContext.alpnBuffer); } if (options.handshakeTimeout > 0) this.setTimeout(options.handshakeTimeout, this._handleTimeout); if (socket instanceof net.Socket) { this._parent = socket; // To prevent assertion in afterConnect() and properly kick off readStart this.connecting = socket.connecting || !socket._handle; socket.once('connect', () => { this.connecting = false; this.emit('connect'); }); } // Assume `tls.connect()` if (wrap) { wrap.on('error', (err) => this._emitTLSError(err)); } else { assert(!socket); this.connecting = true; } }; TLSSocket.prototype.renegotiate = function(options, callback) { if (this.destroyed) return; let requestCert = !!this._requestCert; let rejectUnauthorized = !!this._rejectUnauthorized; if (options.requestCert !== undefined) requestCert = !!options.requestCert; if (options.rejectUnauthorized !== undefined) rejectUnauthorized = !!options.rejectUnauthorized; if (requestCert !== this._requestCert || rejectUnauthorized !== this._rejectUnauthorized) { this._handle.setVerifyMode(requestCert, rejectUnauthorized); this._requestCert = requestCert; this._rejectUnauthorized = rejectUnauthorized; } if (!this._handle.renegotiate()) { if (callback) { process.nextTick(callback, new ERR_TLS_RENEGOTIATE()); } return false; } // Ensure that we'll cycle through internal openssl's state this.write(''); if (callback) { this.once('secure', () => callback(null)); } return true; }; TLSSocket.prototype.setMaxSendFragment = function setMaxSendFragment(size) { return this._handle.setMaxSendFragment(size) === 1; }; TLSSocket.prototype.getTLSTicket = function getTLSTicket() { return this._handle.getTLSTicket(); }; TLSSocket.prototype._handleTimeout = function() { this._emitTLSError(new ERR_TLS_HANDSHAKE_TIMEOUT()); }; TLSSocket.prototype._emitTLSError = function(err) { var e = this._tlsError(err); if (e) this.emit('error', e); }; TLSSocket.prototype._tlsError = function(err) { this.emit('_tlsError', err); if (this._controlReleased) return err; return null; }; TLSSocket.prototype._releaseControl = function() { if (this._controlReleased) return false; this._controlReleased = true; this.removeListener('error', this._tlsError); return true; }; TLSSocket.prototype._finishInit = function() { debug('secure established'); this.alpnProtocol = this._handle.getALPNNegotiatedProtocol(); this.servername = this._handle.getServername(); this._secureEstablished = true; if (this._tlsOptions.handshakeTimeout > 0) this.setTimeout(0, this._handleTimeout); this.emit('secure'); }; TLSSocket.prototype._start = function() { if (this.connecting) { this.once('connect', this._start); return; } // Socket was destroyed before the connection was established if (!this._handle) return; debug('start'); if (this._tlsOptions.requestOCSP) this._handle.requestOCSP(); this._handle.start(); }; TLSSocket.prototype.setServername = function(name) { validateString(name, 'name'); if (this._tlsOptions.isServer) { throw new ERR_TLS_SNI_FROM_SERVER(); } this._handle.setServername(name); }; TLSSocket.prototype.setSession = function(session) { if (typeof session === 'string') session = Buffer.from(session, 'latin1'); this._handle.setSession(session); }; TLSSocket.prototype.getPeerCertificate = function(detailed) { if (this._handle) { return common.translatePeerCertificate( this._handle.getPeerCertificate(detailed)); } return null; }; TLSSocket.prototype.getFinished = function() { if (this._handle) return this._handle.getFinished(); }; TLSSocket.prototype.getPeerFinished = function() { if (this._handle) return this._handle.getPeerFinished(); }; TLSSocket.prototype.getSession = function() { if (this._handle) { return this._handle.getSession(); } return null; }; TLSSocket.prototype.isSessionReused = function() { if (this._handle) { return this._handle.isSessionReused(); } return null; }; TLSSocket.prototype.getCipher = function(err) { if (this._handle) { return this._handle.getCurrentCipher(); } else { return null; } }; TLSSocket.prototype.getEphemeralKeyInfo = function() { if (this._handle) return this._handle.getEphemeralKeyInfo(); return null; }; TLSSocket.prototype.getProtocol = function() { if (this._handle) return this._handle.getProtocol(); return null; }; // TODO: support anonymous (nocert) and PSK function onSocketSecure() { if (this._requestCert) { const verifyError = this._handle.verifyError(); if (verifyError) { this.authorizationError = verifyError.code; if (this._rejectUnauthorized) this.destroy(); } else { this.authorized = true; } } if (!this.destroyed && this._releaseControl()) this._tlsOptions.server.emit('secureConnection', this); } function onSocketTLSError(err) { if (!this._controlReleased && !this[kErrorEmitted]) { this[kErrorEmitted] = true; this._tlsOptions.server.emit('tlsClientError', err, this); } } function onSocketClose(err) { // Closed because of error - no need to emit it twice if (err) return; // Emit ECONNRESET if (!this._controlReleased && !this[kErrorEmitted]) { this[kErrorEmitted] = true; // eslint-disable-next-line no-restricted-syntax const connReset = new Error('socket hang up'); connReset.code = 'ECONNRESET'; this._tlsOptions.server.emit('tlsClientError', connReset, this); } } function tlsConnectionListener(rawSocket) { const socket = new TLSSocket(rawSocket, { secureContext: this._sharedCreds, isServer: true, server: this, requestCert: this.requestCert, rejectUnauthorized: this.rejectUnauthorized, handshakeTimeout: this[kHandshakeTimeout], ALPNProtocols: this.ALPNProtocols, SNICallback: this[kSNICallback] || SNICallback }); socket.on('secure', onSocketSecure); socket[kErrorEmitted] = false; socket.on('close', onSocketClose); socket.on('_tlsError', onSocketTLSError); } // AUTHENTICATION MODES // // There are several levels of authentication that TLS/SSL supports. // Read more about this in "man SSL_set_verify". // // 1. The server sends a certificate to the client but does not request a // cert from the client. This is common for most HTTPS servers. The browser // can verify the identity of the server, but the server does not know who // the client is. Authenticating the client is usually done over HTTP using // login boxes and cookies and stuff. // // 2. The server sends a cert to the client and requests that the client // also send it a cert. The client knows who the server is and the server is // requesting the client also identify themselves. There are several // outcomes: // // A) verifyError returns null meaning the client's certificate is signed // by one of the server's CAs. The server now knows the client's identity // and the client is authorized. // // B) For some reason the client's certificate is not acceptable - // verifyError returns a string indicating the problem. The server can // either (i) reject the client or (ii) allow the client to connect as an // unauthorized connection. // // The mode is controlled by two boolean variables. // // requestCert // If true the server requests a certificate from client connections. For // the common HTTPS case, users will want this to be false, which is what // it defaults to. // // rejectUnauthorized // If true clients whose certificates are invalid for any reason will not // be allowed to make connections. If false, they will simply be marked as // unauthorized but secure communication will continue. By default this is // true. // // // // Options: // - requestCert. Send verify request. Default to false. // - rejectUnauthorized. Boolean, default to true. // - key. string. // - cert: string. // - clientCertEngine: string. // - ca: string or array of strings. // - sessionTimeout: integer. // // emit 'secureConnection' // function (tlsSocket) { } // // "UNABLE_TO_GET_ISSUER_CERT", "UNABLE_TO_GET_CRL", // "UNABLE_TO_DECRYPT_CERT_SIGNATURE", "UNABLE_TO_DECRYPT_CRL_SIGNATURE", // "UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY", "CERT_SIGNATURE_FAILURE", // "CRL_SIGNATURE_FAILURE", "CERT_NOT_YET_VALID" "CERT_HAS_EXPIRED", // "CRL_NOT_YET_VALID", "CRL_HAS_EXPIRED" "ERROR_IN_CERT_NOT_BEFORE_FIELD", // "ERROR_IN_CERT_NOT_AFTER_FIELD", "ERROR_IN_CRL_LAST_UPDATE_FIELD", // "ERROR_IN_CRL_NEXT_UPDATE_FIELD", "OUT_OF_MEM", // "DEPTH_ZERO_SELF_SIGNED_CERT", "SELF_SIGNED_CERT_IN_CHAIN", // "UNABLE_TO_GET_ISSUER_CERT_LOCALLY", "UNABLE_TO_VERIFY_LEAF_SIGNATURE", // "CERT_CHAIN_TOO_LONG", "CERT_REVOKED" "INVALID_CA", // "PATH_LENGTH_EXCEEDED", "INVALID_PURPOSE" "CERT_UNTRUSTED", // "CERT_REJECTED" // function Server(options, listener) { if (!(this instanceof Server)) return new Server(options, listener); if (typeof options === 'function') { listener = options; options = {}; } else if (options == null || typeof options === 'object') { options = options || {}; } else { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } this._contexts = []; // Handle option defaults: this.setOptions(options); this._sharedCreds = tls.createSecureContext({ pfx: this.pfx, key: this.key, passphrase: this.passphrase, cert: this.cert, clientCertEngine: this.clientCertEngine, ca: this.ca, ciphers: this.ciphers, ecdhCurve: this.ecdhCurve, dhparam: this.dhparam, secureProtocol: this.secureProtocol, secureOptions: this.secureOptions, honorCipherOrder: this.honorCipherOrder, crl: this.crl, sessionIdContext: this.sessionIdContext }); this[kHandshakeTimeout] = options.handshakeTimeout || (120 * 1000); this[kSNICallback] = options.SNICallback; if (typeof this[kHandshakeTimeout] !== 'number') { throw new ERR_INVALID_ARG_TYPE( 'options.handshakeTimeout', 'number', options.handshakeTimeout); } if (this.sessionTimeout) { this._sharedCreds.context.setSessionTimeout(this.sessionTimeout); } if (this.ticketKeys) { this._sharedCreds.context.setTicketKeys(this.ticketKeys); } // constructor call net.Server.call(this, tlsConnectionListener); if (listener) { this.on('secureConnection', listener); } } util.inherits(Server, net.Server); exports.Server = Server; exports.createServer = function createServer(options, listener) { return new Server(options, listener); }; Server.prototype._getServerData = function() { return { ticketKeys: this.getTicketKeys().toString('hex') }; }; Server.prototype._setServerData = function(data) { this.setTicketKeys(Buffer.from(data.ticketKeys, 'hex')); }; Server.prototype.getTicketKeys = function getTicketKeys(keys) { return this._sharedCreds.context.getTicketKeys(keys); }; Server.prototype.setTicketKeys = function setTicketKeys(keys) { this._sharedCreds.context.setTicketKeys(keys); }; Server.prototype.setOptions = function(options) { this.requestCert = options.requestCert === true; this.rejectUnauthorized = options.rejectUnauthorized !== false; if (options.pfx) this.pfx = options.pfx; if (options.key) this.key = options.key; if (options.passphrase) this.passphrase = options.passphrase; if (options.cert) this.cert = options.cert; if (options.clientCertEngine) this.clientCertEngine = options.clientCertEngine; if (options.ca) this.ca = options.ca; if (options.secureProtocol) this.secureProtocol = options.secureProtocol; if (options.crl) this.crl = options.crl; if (options.ciphers) this.ciphers = options.ciphers; if (options.ecdhCurve !== undefined) this.ecdhCurve = options.ecdhCurve; if (options.dhparam) this.dhparam = options.dhparam; if (options.sessionTimeout) this.sessionTimeout = options.sessionTimeout; if (options.ticketKeys) this.ticketKeys = options.ticketKeys; var secureOptions = options.secureOptions || 0; if (options.honorCipherOrder !== undefined) this.honorCipherOrder = !!options.honorCipherOrder; else this.honorCipherOrder = true; if (secureOptions) this.secureOptions = secureOptions; if (options.ALPNProtocols) tls.convertALPNProtocols(options.ALPNProtocols, this); if (options.sessionIdContext) { this.sessionIdContext = options.sessionIdContext; } else { this.sessionIdContext = crypto.createHash('sha1') .update(process.argv.join(' ')) .digest('hex') .slice(0, 32); } }; // SNI Contexts High-Level API Server.prototype.addContext = function(servername, context) { if (!servername) { throw new ERR_TLS_REQUIRED_SERVER_NAME(); } var re = new RegExp('^' + servername.replace(/([.^$+?\-\\[\]{}])/g, '\\$1') .replace(/\*/g, '[^.]*') + '$'); this._contexts.push([re, tls.createSecureContext(context).context]); }; function SNICallback(servername, callback) { const contexts = this.server._contexts; for (var i = 0; i < contexts.length; i++) { const elem = contexts[i]; if (elem[0].test(servername)) { callback(null, elem[1]); return; } } callback(null, undefined); } // Target API: // // var s = tls.connect({port: 8000, host: "google.com"}, function() { // if (!s.authorized) { // s.destroy(); // return; // } // // // s.socket; // // s.end("hello world\n"); // }); // // function normalizeConnectArgs(listArgs) { var args = net._normalizeArgs(listArgs); var options = args[0]; var cb = args[1]; // If args[0] was options, then normalize dealt with it. // If args[0] is port, or args[0], args[1] is host, port, we need to // find the options and merge them in, normalize's options has only // the host/port/path args that it knows about, not the tls options. // This means that options.host overrides a host arg. if (listArgs[1] !== null && typeof listArgs[1] === 'object') { util._extend(options, listArgs[1]); } else if (listArgs[2] !== null && typeof listArgs[2] === 'object') { util._extend(options, listArgs[2]); } return (cb) ? [options, cb] : [options]; } function onConnectSecure() { const options = this[kConnectOptions]; // Check the size of DHE parameter above minimum requirement // specified in options. const ekeyinfo = this.getEphemeralKeyInfo(); if (ekeyinfo.type === 'DH' && ekeyinfo.size < options.minDHSize) { const err = new ERR_TLS_DH_PARAM_SIZE(ekeyinfo.size); this.emit('error', err); this.destroy(); return; } let verifyError = this._handle.verifyError(); // Verify that server's identity matches it's certificate's names // Unless server has resumed our existing session if (!verifyError && !this.isSessionReused()) { const hostname = options.servername || options.host || (options.socket && options.socket._host) || 'localhost'; const cert = this.getPeerCertificate(true); verifyError = options.checkServerIdentity(hostname, cert); } if (verifyError) { this.authorized = false; this.authorizationError = verifyError.code || verifyError.message; if (options.rejectUnauthorized) { this.destroy(verifyError); return; } else { this.emit('secureConnect'); } } else { this.authorized = true; this.emit('secureConnect'); } this.removeListener('end', onConnectEnd); } function onConnectEnd() { // NOTE: This logic is shared with _http_client.js if (!this._hadError) { const options = this[kConnectOptions]; this._hadError = true; // eslint-disable-next-line no-restricted-syntax const error = new Error('Client network socket disconnected before ' + 'secure TLS connection was established'); error.code = 'ECONNRESET'; error.path = options.path; error.host = options.host; error.port = options.port; error.localAddress = options.localAddress; this.destroy(error); } } // Arguments: [port,] [host,] [options,] [cb] exports.connect = function connect(...args) { args = normalizeConnectArgs(args); var options = args[0]; var cb = args[1]; var defaults = { rejectUnauthorized: '0' !== process.env.NODE_TLS_REJECT_UNAUTHORIZED, ciphers: tls.DEFAULT_CIPHERS, checkServerIdentity: tls.checkServerIdentity, minDHSize: 1024 }; options = util._extend(defaults, options || {}); if (!options.keepAlive) options.singleUse = true; assert(typeof options.checkServerIdentity === 'function'); assert(typeof options.minDHSize === 'number', 'options.minDHSize is not a number: ' + options.minDHSize); assert(options.minDHSize > 0, 'options.minDHSize is not a positive number: ' + options.minDHSize); const context = options.secureContext || tls.createSecureContext(options); var socket = new TLSSocket(options.socket, { pipe: !!options.path, secureContext: context, isServer: false, requestCert: true, rejectUnauthorized: options.rejectUnauthorized !== false, session: options.session, ALPNProtocols: options.ALPNProtocols, requestOCSP: options.requestOCSP }); socket[kConnectOptions] = options; if (cb) socket.once('secureConnect', cb); if (!options.socket) { const connectOpt = { path: options.path, port: options.port, host: options.host, family: options.family, localAddress: options.localAddress, lookup: options.lookup }; socket.connect(connectOpt, socket._start); } socket._releaseControl(); if (options.session) socket.setSession(options.session); if (options.servername) socket.setServername(options.servername); if (options.socket) socket._start(); socket.on('secure', onConnectSecure); socket.once('end', onConnectEnd); return socket; }; trace_events'use strict'; const { hasTracing } = process.binding('config'); const kHandle = Symbol('handle'); const kEnabled = Symbol('enabled'); const kCategories = Symbol('categories'); const kMaxTracingCount = 10; const { ERR_TRACE_EVENTS_CATEGORY_REQUIRED, ERR_TRACE_EVENTS_UNAVAILABLE, ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; if (!hasTracing) throw new ERR_TRACE_EVENTS_UNAVAILABLE(); const { CategorySet, getEnabledCategories } = internalBinding('trace_events'); const { customInspectSymbol } = require('internal/util'); const { format } = require('util'); const enabledTracingObjects = new Set(); class Tracing { constructor(categories) { this[kHandle] = new CategorySet(categories); this[kCategories] = categories; this[kEnabled] = false; } enable() { if (!this[kEnabled]) { this[kEnabled] = true; this[kHandle].enable(); enabledTracingObjects.add(this); if (enabledTracingObjects.size > kMaxTracingCount) { process.emitWarning( 'Possible trace_events memory leak detected. There are more than ' + `${kMaxTracingCount} enabled Tracing objects.` ); } } } disable() { if (this[kEnabled]) { this[kEnabled] = false; this[kHandle].disable(); enabledTracingObjects.delete(this); } } get enabled() { return this[kEnabled]; } get categories() { return this[kCategories].join(','); } [customInspectSymbol](depth, opts) { const obj = { enabled: this.enabled, categories: this.categories }; return `Tracing ${format(obj)}`; } } function createTracing(options) { if (typeof options !== 'object' || options == null) throw new ERR_INVALID_ARG_TYPE('options', 'object', options); if (!Array.isArray(options.categories)) { throw new ERR_INVALID_ARG_TYPE('options.categories', 'string[]', options.categories); } if (options.categories.length <= 0) throw new ERR_TRACE_EVENTS_CATEGORY_REQUIRED(); return new Tracing(options.categories); } module.exports = { createTracing, getEnabledCategories }; tty// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { inherits, _extend } = require('util'); const net = require('net'); const { TTY, isTTY } = internalBinding('tty_wrap'); const errors = require('internal/errors'); const { ERR_INVALID_FD, ERR_TTY_INIT_FAILED } = errors.codes; const { getColorDepth } = require('internal/tty'); // Lazy loaded for startup performance. let readline; function isatty(fd) { return Number.isInteger(fd) && fd >= 0 && isTTY(fd); } function ReadStream(fd, options) { if (!(this instanceof ReadStream)) return new ReadStream(fd, options); if (fd >> 0 !== fd || fd < 0) throw new ERR_INVALID_FD(fd); const ctx = {}; const tty = new TTY(fd, true, ctx); if (ctx.code !== undefined) { throw new ERR_TTY_INIT_FAILED(ctx); } options = _extend({ highWaterMark: 0, readable: true, writable: false, handle: tty }, options); net.Socket.call(this, options); this.isRaw = false; this.isTTY = true; } inherits(ReadStream, net.Socket); ReadStream.prototype.setRawMode = function(flag) { flag = !!flag; const err = this._handle.setRawMode(flag); if (err) { this.emit('error', errors.errnoException(err, 'setRawMode')); return this; } this.isRaw = flag; return this; }; function WriteStream(fd) { if (!(this instanceof WriteStream)) return new WriteStream(fd); if (fd >> 0 !== fd || fd < 0) throw new ERR_INVALID_FD(fd); const ctx = {}; const tty = new TTY(fd, false, ctx); if (ctx.code !== undefined) { throw new ERR_TTY_INIT_FAILED(ctx); } net.Socket.call(this, { handle: tty, readable: false, writable: true }); // Prevents interleaved or dropped stdout/stderr output for terminals. // As noted in the following reference, local TTYs tend to be quite fast and // this behavior has become expected due historical functionality on OS X, // even though it was originally intended to change in v1.0.2 (Libuv 1.2.1). // Ref: https://github.com/nodejs/node/pull/1771#issuecomment-119351671 this._handle.setBlocking(true); const winSize = new Array(2); const err = this._handle.getWindowSize(winSize); if (!err) { this.columns = winSize[0]; this.rows = winSize[1]; } } inherits(WriteStream, net.Socket); WriteStream.prototype.isTTY = true; WriteStream.prototype.getColorDepth = getColorDepth; WriteStream.prototype._refreshSize = function() { const oldCols = this.columns; const oldRows = this.rows; const winSize = new Array(2); const err = this._handle.getWindowSize(winSize); if (err) { this.emit('error', errors.errnoException(err, 'getWindowSize')); return; } const [newCols, newRows] = winSize; if (oldCols !== newCols || oldRows !== newRows) { this.columns = newCols; this.rows = newRows; this.emit('resize'); } }; // Backwards-compat WriteStream.prototype.cursorTo = function(x, y) { if (readline === undefined) readline = require('readline'); readline.cursorTo(this, x, y); }; WriteStream.prototype.moveCursor = function(dx, dy) { if (readline === undefined) readline = require('readline'); readline.moveCursor(this, dx, dy); }; WriteStream.prototype.clearLine = function(dir) { if (readline === undefined) readline = require('readline'); readline.clearLine(this, dir); }; WriteStream.prototype.clearScreenDown = function() { if (readline === undefined) readline = require('readline'); readline.clearScreenDown(this); }; WriteStream.prototype.getWindowSize = function() { return [this.columns, this.rows]; }; module.exports = { isatty, ReadStream, WriteStream }; url// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { toASCII } = process.binding('config').hasIntl ? process.binding('icu') : require('punycode'); const { hexTable } = require('internal/querystring'); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; // This ensures setURLConstructor() is called before the native // URL::ToObject() method is used. const { spliceOne } = require('internal/util'); // WHATWG URL implementation provided by internal/url const { URL, URLSearchParams, domainToASCII, domainToUnicode, formatSymbol, encodeStr, pathToFileURL, fileURLToPath } = require('internal/url'); // Original url.parse() API function Url() { this.protocol = null; this.slashes = null; this.auth = null; this.host = null; this.port = null; this.hostname = null; this.hash = null; this.search = null; this.query = null; this.pathname = null; this.path = null; this.href = null; } // Reference: RFC 3986, RFC 1808, RFC 2396 // define these here so at least they only have to be // compiled once on the first module load. const protocolPattern = /^[a-z0-9.+-]+:/i; const portPattern = /:[0-9]*$/; const hostPattern = /^\/\/[^@/]+@[^@/]+/; // Special case for a simple path URL const simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/; const hostnameMaxLen = 255; // protocols that can allow "unsafe" and "unwise" chars. const unsafeProtocol = { 'javascript': true, 'javascript:': true }; // protocols that never have a hostname. const hostlessProtocol = { 'javascript': true, 'javascript:': true }; // protocols that always contain a // bit. const slashedProtocol = { 'http': true, 'http:': true, 'https': true, 'https:': true, 'ftp': true, 'ftp:': true, 'gopher': true, 'gopher:': true, 'file': true, 'file:': true }; const { CHAR_SPACE, CHAR_TAB, CHAR_CARRIAGE_RETURN, CHAR_LINE_FEED, CHAR_FORM_FEED, CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE, CHAR_HASH, CHAR_FORWARD_SLASH, CHAR_LEFT_SQUARE_BRACKET, CHAR_RIGHT_SQUARE_BRACKET, CHAR_LEFT_ANGLE_BRACKET, CHAR_RIGHT_ANGLE_BRACKET, CHAR_LEFT_CURLY_BRACKET, CHAR_RIGHT_CURLY_BRACKET, CHAR_QUESTION_MARK, CHAR_LOWERCASE_A, CHAR_LOWERCASE_Z, CHAR_UPPERCASE_A, CHAR_UPPERCASE_Z, CHAR_DOT, CHAR_0, CHAR_9, CHAR_HYPHEN_MINUS, CHAR_PLUS, CHAR_UNDERSCORE, CHAR_DOUBLE_QUOTE, CHAR_SINGLE_QUOTE, CHAR_PERCENT, CHAR_SEMICOLON, CHAR_BACKWARD_SLASH, CHAR_CIRCUMFLEX_ACCENT, CHAR_GRAVE_ACCENT, CHAR_VERTICAL_LINE, CHAR_AT, } = require('internal/constants'); // Lazy loaded for startup performance. let querystring; function urlParse(url, parseQueryString, slashesDenoteHost) { if (url instanceof Url) return url; var urlObject = new Url(); urlObject.parse(url, parseQueryString, slashesDenoteHost); return urlObject; } Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) { if (typeof url !== 'string') { throw new ERR_INVALID_ARG_TYPE('url', 'string', url); } // Copy chrome, IE, opera backslash-handling behavior. // Back slashes before the query string get converted to forward slashes // See: https://code.google.com/p/chromium/issues/detail?id=25916 var hasHash = false; var start = -1; var end = -1; var rest = ''; var lastPos = 0; var i = 0; for (var inWs = false, split = false; i < url.length; ++i) { const code = url.charCodeAt(i); // Find first and last non-whitespace characters for trimming const isWs = code === CHAR_SPACE || code === CHAR_TAB || code === CHAR_CARRIAGE_RETURN || code === CHAR_LINE_FEED || code === CHAR_FORM_FEED || code === CHAR_NO_BREAK_SPACE || code === CHAR_ZERO_WIDTH_NOBREAK_SPACE; if (start === -1) { if (isWs) continue; lastPos = start = i; } else if (inWs) { if (!isWs) { end = -1; inWs = false; } } else if (isWs) { end = i; inWs = true; } // Only convert backslashes while we haven't seen a split character if (!split) { switch (code) { case CHAR_HASH: hasHash = true; // Fall through case CHAR_QUESTION_MARK: split = true; break; case CHAR_BACKWARD_SLASH: if (i - lastPos > 0) rest += url.slice(lastPos, i); rest += '/'; lastPos = i + 1; break; } } else if (!hasHash && code === CHAR_HASH) { hasHash = true; } } // Check if string was non-empty (including strings with only whitespace) if (start !== -1) { if (lastPos === start) { // We didn't convert any backslashes if (end === -1) { if (start === 0) rest = url; else rest = url.slice(start); } else { rest = url.slice(start, end); } } else if (end === -1 && lastPos < url.length) { // We converted some backslashes and have only part of the entire string rest += url.slice(lastPos); } else if (end !== -1 && lastPos < end) { // We converted some backslashes and have only part of the entire string rest += url.slice(lastPos, end); } } if (!slashesDenoteHost && !hasHash) { // Try fast path regexp const simplePath = simplePathPattern.exec(rest); if (simplePath) { this.path = rest; this.href = rest; this.pathname = simplePath[1]; if (simplePath[2]) { this.search = simplePath[2]; if (parseQueryString) { if (querystring === undefined) querystring = require('querystring'); this.query = querystring.parse(this.search.slice(1)); } else { this.query = this.search.slice(1); } } else if (parseQueryString) { this.search = null; this.query = Object.create(null); } return this; } } var proto = protocolPattern.exec(rest); if (proto) { proto = proto[0]; var lowerProto = proto.toLowerCase(); this.protocol = lowerProto; rest = rest.slice(proto.length); } // figure out if it's got a host // user@server is *always* interpreted as a hostname, and url // resolution will treat //foo/bar as host=foo,path=bar because that's // how the browser resolves relative URLs. if (slashesDenoteHost || proto || hostPattern.test(rest)) { var slashes = rest.charCodeAt(0) === CHAR_FORWARD_SLASH && rest.charCodeAt(1) === CHAR_FORWARD_SLASH; if (slashes && !(proto && hostlessProtocol[lowerProto])) { rest = rest.slice(2); this.slashes = true; } } if (!hostlessProtocol[lowerProto] && (slashes || (proto && !slashedProtocol[proto]))) { // there's a hostname. // the first instance of /, ?, ;, or # ends the host. // // If there is an @ in the hostname, then non-host chars *are* allowed // to the left of the last @ sign, unless some host-ending character // comes *before* the @-sign. // URLs are obnoxious. // // ex: // http://a@b@c/ => user:a@b host:c // http://a@b?@c => user:a host:b path:/?@c var hostEnd = -1; var atSign = -1; var nonHost = -1; for (i = 0; i < rest.length; ++i) { switch (rest.charCodeAt(i)) { case CHAR_TAB: case CHAR_LINE_FEED: case CHAR_CARRIAGE_RETURN: case CHAR_SPACE: case CHAR_DOUBLE_QUOTE: case CHAR_PERCENT: case CHAR_SINGLE_QUOTE: case CHAR_SEMICOLON: case CHAR_LEFT_ANGLE_BRACKET: case CHAR_RIGHT_ANGLE_BRACKET: case CHAR_BACKWARD_SLASH: case CHAR_CIRCUMFLEX_ACCENT: case CHAR_GRAVE_ACCENT: case CHAR_LEFT_CURLY_BRACKET: case CHAR_VERTICAL_LINE: case CHAR_RIGHT_CURLY_BRACKET: // Characters that are never ever allowed in a hostname from RFC 2396 if (nonHost === -1) nonHost = i; break; case CHAR_HASH: case CHAR_FORWARD_SLASH: case CHAR_QUESTION_MARK: // Find the first instance of any host-ending characters if (nonHost === -1) nonHost = i; hostEnd = i; break; case CHAR_AT: // At this point, either we have an explicit point where the // auth portion cannot go past, or the last @ char is the decider. atSign = i; nonHost = -1; break; } if (hostEnd !== -1) break; } start = 0; if (atSign !== -1) { this.auth = decodeURIComponent(rest.slice(0, atSign)); start = atSign + 1; } if (nonHost === -1) { this.host = rest.slice(start); rest = ''; } else { this.host = rest.slice(start, nonHost); rest = rest.slice(nonHost); } // pull out port. this.parseHost(); // we've indicated that there is a hostname, // so even if it's empty, it has to be present. if (typeof this.hostname !== 'string') this.hostname = ''; var hostname = this.hostname; // if hostname begins with [ and ends with ] // assume that it's an IPv6 address. var ipv6Hostname = hostname.charCodeAt(0) === CHAR_LEFT_SQUARE_BRACKET && hostname.charCodeAt(hostname.length - 1) === CHAR_RIGHT_SQUARE_BRACKET; // validate a little. if (!ipv6Hostname) { const result = validateHostname(this, rest, hostname); if (result !== undefined) rest = result; } if (this.hostname.length > hostnameMaxLen) { this.hostname = ''; } else { // hostnames are always lower case. this.hostname = this.hostname.toLowerCase(); } if (!ipv6Hostname) { // IDNA Support: Returns a punycoded representation of "domain". // It only converts parts of the domain name that // have non-ASCII characters, i.e. it doesn't matter if // you call it with a domain that already is ASCII-only. // Use lenient mode (`true`) to try to support even non-compliant // URLs. this.hostname = toASCII(this.hostname, true); } var p = this.port ? ':' + this.port : ''; var h = this.hostname || ''; this.host = h + p; // strip [ and ] from the hostname // the host field still retains them, though if (ipv6Hostname) { this.hostname = this.hostname.slice(1, -1); if (rest[0] !== '/') { rest = '/' + rest; } } } // now rest is set to the post-host stuff. // chop off any delim chars. if (!unsafeProtocol[lowerProto]) { // First, make 100% sure that any "autoEscape" chars get // escaped, even if encodeURIComponent doesn't think they // need to be. rest = autoEscapeStr(rest); } var questionIdx = -1; var hashIdx = -1; for (i = 0; i < rest.length; ++i) { const code = rest.charCodeAt(i); if (code === CHAR_HASH) { this.hash = rest.slice(i); hashIdx = i; break; } else if (code === CHAR_QUESTION_MARK && questionIdx === -1) { questionIdx = i; } } if (questionIdx !== -1) { if (hashIdx === -1) { this.search = rest.slice(questionIdx); this.query = rest.slice(questionIdx + 1); } else { this.search = rest.slice(questionIdx, hashIdx); this.query = rest.slice(questionIdx + 1, hashIdx); } if (parseQueryString) { if (querystring === undefined) querystring = require('querystring'); this.query = querystring.parse(this.query); } } else if (parseQueryString) { // no query string, but parseQueryString still requested this.search = null; this.query = Object.create(null); } const useQuestionIdx = questionIdx !== -1 && (hashIdx === -1 || questionIdx < hashIdx); const firstIdx = useQuestionIdx ? questionIdx : hashIdx; if (firstIdx === -1) { if (rest.length > 0) this.pathname = rest; } else if (firstIdx > 0) { this.pathname = rest.slice(0, firstIdx); } if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) { this.pathname = '/'; } // to support http.request if (this.pathname || this.search) { const p = this.pathname || ''; const s = this.search || ''; this.path = p + s; } // finally, reconstruct the href based on what has been validated. this.href = this.format(); return this; }; function validateHostname(self, rest, hostname) { for (var i = 0; i < hostname.length; ++i) { const code = hostname.charCodeAt(i); const isValid = (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) || code === CHAR_DOT || (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) || (code >= CHAR_0 && code <= CHAR_9) || code === CHAR_HYPHEN_MINUS || code === CHAR_PLUS || code === CHAR_UNDERSCORE || code > 127; // Invalid host character if (!isValid) { self.hostname = hostname.slice(0, i); return '/' + hostname.slice(i) + rest; } } } // Escaped characters. Use empty strings to fill up unused entries. // Using Array is faster than Object/Map const escapedCodes = [ /* 0 - 9 */ '', '', '', '', '', '', '', '', '', '%09', /* 10 - 19 */ '%0A', '', '', '%0D', '', '', '', '', '', '', /* 20 - 29 */ '', '', '', '', '', '', '', '', '', '', /* 30 - 39 */ '', '', '%20', '', '%22', '', '', '', '', '%27', /* 40 - 49 */ '', '', '', '', '', '', '', '', '', '', /* 50 - 59 */ '', '', '', '', '', '', '', '', '', '', /* 60 - 69 */ '%3C', '', '%3E', '', '', '', '', '', '', '', /* 70 - 79 */ '', '', '', '', '', '', '', '', '', '', /* 80 - 89 */ '', '', '', '', '', '', '', '', '', '', /* 90 - 99 */ '', '', '%5C', '', '%5E', '', '%60', '', '', '', /* 100 - 109 */ '', '', '', '', '', '', '', '', '', '', /* 110 - 119 */ '', '', '', '', '', '', '', '', '', '', /* 120 - 125 */ '', '', '', '%7B', '%7C', '%7D' ]; // Automatically escape all delimiters and unwise characters from RFC 2396. // Also escape single quotes in case of an XSS attack. // Return the escaped string. function autoEscapeStr(rest) { var escaped = ''; var lastEscapedPos = 0; for (var i = 0; i < rest.length; ++i) { // `escaped` contains substring up to the last escaped character. var escapedChar = escapedCodes[rest.charCodeAt(i)]; if (escapedChar) { // Concat if there are ordinary characters in the middle. if (i > lastEscapedPos) escaped += rest.slice(lastEscapedPos, i); escaped += escapedChar; lastEscapedPos = i + 1; } } if (lastEscapedPos === 0) // Nothing has been escaped. return rest; // There are ordinary characters at the end. if (lastEscapedPos < rest.length) escaped += rest.slice(lastEscapedPos); return escaped; } // format a parsed object into a url string function urlFormat(urlObject, options) { // ensure it's an object, and not a string url. // If it's an object, this is a no-op. // this way, you can call urlParse() on strings // to clean up potentially wonky urls. if (typeof urlObject === 'string') { urlObject = urlParse(urlObject); } else if (typeof urlObject !== 'object' || urlObject === null) { throw new ERR_INVALID_ARG_TYPE('urlObject', ['Object', 'string'], urlObject); } else if (!(urlObject instanceof Url)) { var format = urlObject[formatSymbol]; return format ? format.call(urlObject, options) : Url.prototype.format.call(urlObject); } return urlObject.format(); } // These characters do not need escaping: // ! - . _ ~ // ' ( ) * : // digits // alpha (uppercase) // alpha (lowercase) const noEscapeAuth = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00 - 0x0F 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x10 - 0x1F 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, // 0x20 - 0x2F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, // 0x30 - 0x3F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 0x50 - 0x5F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 // 0x70 - 0x7F ]; Url.prototype.format = function format() { var auth = this.auth || ''; if (auth) { auth = encodeStr(auth, noEscapeAuth, hexTable); auth += '@'; } var protocol = this.protocol || ''; var pathname = this.pathname || ''; var hash = this.hash || ''; var host = ''; var query = ''; if (this.host) { host = auth + this.host; } else if (this.hostname) { host = auth + ( this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']' ); if (this.port) { host += ':' + this.port; } } if (this.query !== null && typeof this.query === 'object') { if (querystring === undefined) querystring = require('querystring'); query = querystring.stringify(this.query); } var search = this.search || (query && ('?' + query)) || ''; if (protocol && protocol.charCodeAt(protocol.length - 1) !== 58/* : */) protocol += ':'; var newPathname = ''; var lastPos = 0; for (var i = 0; i < pathname.length; ++i) { switch (pathname.charCodeAt(i)) { case CHAR_HASH: if (i - lastPos > 0) newPathname += pathname.slice(lastPos, i); newPathname += '%23'; lastPos = i + 1; break; case CHAR_QUESTION_MARK: if (i - lastPos > 0) newPathname += pathname.slice(lastPos, i); newPathname += '%3F'; lastPos = i + 1; break; } } if (lastPos > 0) { if (lastPos !== pathname.length) pathname = newPathname + pathname.slice(lastPos); else pathname = newPathname; } // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. // unless they had them to begin with. if (this.slashes || slashedProtocol[protocol]) { if (this.slashes || host) { if (pathname && pathname.charCodeAt(0) !== CHAR_FORWARD_SLASH) pathname = '/' + pathname; host = '//' + host; } else if (protocol.length >= 4 && protocol.charCodeAt(0) === 102/* f */ && protocol.charCodeAt(1) === 105/* i */ && protocol.charCodeAt(2) === 108/* l */ && protocol.charCodeAt(3) === 101/* e */) { host = '//'; } } search = search.replace(/#/g, '%23'); if (hash && hash.charCodeAt(0) !== CHAR_HASH) hash = '#' + hash; if (search && search.charCodeAt(0) !== CHAR_QUESTION_MARK) search = '?' + search; return protocol + host + pathname + search + hash; }; function urlResolve(source, relative) { return urlParse(source, false, true).resolve(relative); } Url.prototype.resolve = function resolve(relative) { return this.resolveObject(urlParse(relative, false, true)).format(); }; function urlResolveObject(source, relative) { if (!source) return relative; return urlParse(source, false, true).resolveObject(relative); } Url.prototype.resolveObject = function resolveObject(relative) { if (typeof relative === 'string') { var rel = new Url(); rel.parse(relative, false, true); relative = rel; } var result = new Url(); var tkeys = Object.keys(this); for (var tk = 0; tk < tkeys.length; tk++) { var tkey = tkeys[tk]; result[tkey] = this[tkey]; } // hash is always overridden, no matter what. // even href="" will remove it. result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here. if (relative.href === '') { result.href = result.format(); return result; } // hrefs like //foo/bar always cut to the protocol. if (relative.slashes && !relative.protocol) { // take everything except the protocol from relative var rkeys = Object.keys(relative); for (var rk = 0; rk < rkeys.length; rk++) { var rkey = rkeys[rk]; if (rkey !== 'protocol') result[rkey] = relative[rkey]; } // urlParse appends trailing / to urls like http://www.example.com if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) { result.path = result.pathname = '/'; } result.href = result.format(); return result; } if (relative.protocol && relative.protocol !== result.protocol) { // if it's a known url protocol, then changing // the protocol does weird things // first, if it's not file:, then we MUST have a host, // and if there was a path // to begin with, then we MUST have a path. // if it is file:, then the host is dropped, // because that's known to be hostless. // anything else is assumed to be absolute. if (!slashedProtocol[relative.protocol]) { var keys = Object.keys(relative); for (var v = 0; v < keys.length; v++) { var k = keys[v]; result[k] = relative[k]; } result.href = result.format(); return result; } result.protocol = relative.protocol; if (!relative.host && !/^file:?$/.test(relative.protocol) && !hostlessProtocol[relative.protocol]) { const relPath = (relative.pathname || '').split('/'); while (relPath.length && !(relative.host = relPath.shift())); if (!relative.host) relative.host = ''; if (!relative.hostname) relative.hostname = ''; if (relPath[0] !== '') relPath.unshift(''); if (relPath.length < 2) relPath.unshift(''); result.pathname = relPath.join('/'); } else { result.pathname = relative.pathname; } result.search = relative.search; result.query = relative.query; result.host = relative.host || ''; result.auth = relative.auth; result.hostname = relative.hostname || relative.host; result.port = relative.port; // to support http.request if (result.pathname || result.search) { var p = result.pathname || ''; var s = result.search || ''; result.path = p + s; } result.slashes = result.slashes || relative.slashes; result.href = result.format(); return result; } var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'); var isRelAbs = ( relative.host || relative.pathname && relative.pathname.charAt(0) === '/' ); var mustEndAbs = (isRelAbs || isSourceAbs || (result.host && relative.pathname)); var removeAllDots = mustEndAbs; var srcPath = result.pathname && result.pathname.split('/') || []; var relPath = relative.pathname && relative.pathname.split('/') || []; var noLeadingSlashes = result.protocol && !slashedProtocol[result.protocol]; // if the url is a non-slashed url, then relative // links like ../.. should be able // to crawl up to the hostname, as well. This is strange. // result.protocol has already been set by now. // Later on, put the first path part into the host field. if (noLeadingSlashes) { result.hostname = ''; result.port = null; if (result.host) { if (srcPath[0] === '') srcPath[0] = result.host; else srcPath.unshift(result.host); } result.host = ''; if (relative.protocol) { relative.hostname = null; relative.port = null; result.auth = null; if (relative.host) { if (relPath[0] === '') relPath[0] = relative.host; else relPath.unshift(relative.host); } relative.host = null; } mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); } if (isRelAbs) { // it's absolute. if (relative.host || relative.host === '') { if (result.host !== relative.host) result.auth = null; result.host = relative.host; result.port = relative.port; } if (relative.hostname || relative.hostname === '') { if (result.hostname !== relative.hostname) result.auth = null; result.hostname = relative.hostname; } result.search = relative.search; result.query = relative.query; srcPath = relPath; // fall through to the dot-handling below. } else if (relPath.length) { // it's relative // throw away the existing file, and take the new path instead. if (!srcPath) srcPath = []; srcPath.pop(); srcPath = srcPath.concat(relPath); result.search = relative.search; result.query = relative.query; } else if (relative.search !== null && relative.search !== undefined) { // just pull out the search. // like href='?foo'. // Put this after the other two cases because it simplifies the booleans if (noLeadingSlashes) { result.hostname = result.host = srcPath.shift(); // Occasionally the auth can get stuck only in host. // This especially happens in cases like // url.resolveObject('mailto:local1@domain1', 'local2@domain2') const authInHost = result.host && result.host.indexOf('@') > 0 && result.host.split('@'); if (authInHost) { result.auth = authInHost.shift(); result.host = result.hostname = authInHost.shift(); } } result.search = relative.search; result.query = relative.query; // To support http.request if (result.pathname !== null || result.search !== null) { result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : ''); } result.href = result.format(); return result; } if (!srcPath.length) { // no path at all. easy. // we've already handled the other stuff above. result.pathname = null; // To support http.request if (result.search) { result.path = '/' + result.search; } else { result.path = null; } result.href = result.format(); return result; } // if a url ENDs in . or .., then it must get a trailing slash. // however, if it ends in anything else non-slashy, // then it must NOT get a trailing slash. var last = srcPath.slice(-1)[0]; var hasTrailingSlash = ( (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''); // strip single dots, resolve double dots to parent dir // if the path tries to go above the root, `up` ends up > 0 var up = 0; for (var i = srcPath.length - 1; i >= 0; i--) { last = srcPath[i]; if (last === '.') { spliceOne(srcPath, i); } else if (last === '..') { spliceOne(srcPath, i); up++; } else if (up) { spliceOne(srcPath, i); up--; } } // if the path is allowed to go above the root, restore leading ..s if (!mustEndAbs && !removeAllDots) { while (up--) { srcPath.unshift('..'); } } if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { srcPath.unshift(''); } if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { srcPath.push(''); } var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/'); // put the host back if (noLeadingSlashes) { result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; // Occasionally the auth can get stuck only in host. // This especially happens in cases like // url.resolveObject('mailto:local1@domain1', 'local2@domain2') const authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false; if (authInHost) { result.auth = authInHost.shift(); result.host = result.hostname = authInHost.shift(); } } mustEndAbs = mustEndAbs || (result.host && srcPath.length); if (mustEndAbs && !isAbsolute) { srcPath.unshift(''); } if (!srcPath.length) { result.pathname = null; result.path = null; } else { result.pathname = srcPath.join('/'); } // To support request.http if (result.pathname !== null || result.search !== null) { result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : ''); } result.auth = relative.auth || result.auth; result.slashes = result.slashes || relative.slashes; result.href = result.format(); return result; }; Url.prototype.parseHost = function parseHost() { var host = this.host; var port = portPattern.exec(host); if (port) { port = port[0]; if (port !== ':') { this.port = port.slice(1); } host = host.slice(0, host.length - port.length); } if (host) this.hostname = host; }; module.exports = { // Original API Url, parse: urlParse, resolve: urlResolve, resolveObject: urlResolveObject, format: urlFormat, // WHATWG API URL, URLSearchParams, domainToASCII, domainToUnicode, // Utilities pathToFileURL, fileURLToPath }; util// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const errors = require('internal/errors'); const { inspect } = require('internal/util/inspect'); const { ERR_FALSY_VALUE_REJECTION, ERR_INVALID_ARG_TYPE, ERR_OUT_OF_RANGE } = errors.codes; const { validateNumber } = require('internal/validators'); const { TextDecoder, TextEncoder } = require('internal/encoding'); const { isBuffer } = require('buffer').Buffer; const types = internalBinding('types'); Object.assign(types, require('internal/util/types')); const { isRegExp, isDate, } = types; const { deprecate, getSystemErrorName: internalErrorName, isError, promisify, } = require('internal/util'); let CIRCULAR_ERROR_MESSAGE; let internalDeepEqual; function tryStringify(arg) { try { return JSON.stringify(arg); } catch (err) { // Populate the circular error message lazily if (!CIRCULAR_ERROR_MESSAGE) { try { const a = {}; a.a = a; JSON.stringify(a); } catch (err) { CIRCULAR_ERROR_MESSAGE = err.message; } } if (err.name === 'TypeError' && err.message === CIRCULAR_ERROR_MESSAGE) return '[Circular]'; throw err; } } const emptyOptions = {}; function format(...args) { return formatWithOptions(emptyOptions, ...args); } function formatWithOptions(inspectOptions, f) { let i, tempStr; if (typeof f !== 'string') { if (arguments.length === 1) return ''; let res = ''; for (i = 1; i < arguments.length - 1; i++) { res += inspect(arguments[i], inspectOptions); res += ' '; } res += inspect(arguments[i], inspectOptions); return res; } if (arguments.length === 2) return f; let str = ''; let a = 2; let lastPos = 0; for (i = 0; i < f.length - 1; i++) { if (f.charCodeAt(i) === 37) { // '%' const nextChar = f.charCodeAt(++i); if (a !== arguments.length) { switch (nextChar) { case 115: // 's' tempStr = String(arguments[a++]); break; case 106: // 'j' tempStr = tryStringify(arguments[a++]); break; case 100: // 'd' const tempNum = arguments[a++]; // eslint-disable-next-line valid-typeof if (typeof tempNum === 'bigint') { tempStr = `${tempNum}n`; } else { tempStr = `${Number(tempNum)}`; } break; case 79: // 'O' tempStr = inspect(arguments[a++], inspectOptions); break; case 111: // 'o' { const opts = Object.assign({}, inspectOptions, { showHidden: true, showProxy: true, depth: 4 }); tempStr = inspect(arguments[a++], opts); break; } case 105: // 'i' const tempInteger = arguments[a++]; // eslint-disable-next-line valid-typeof if (typeof tempInteger === 'bigint') { tempStr = `${tempInteger}n`; } else { tempStr = `${parseInt(tempInteger)}`; } break; case 102: // 'f' tempStr = `${parseFloat(arguments[a++])}`; break; case 37: // '%' str += f.slice(lastPos, i); lastPos = i + 1; continue; default: // any other character is not a correct placeholder continue; } if (lastPos !== i - 1) str += f.slice(lastPos, i - 1); str += tempStr; lastPos = i + 1; } else if (nextChar === 37) { str += f.slice(lastPos, i); lastPos = i + 1; } } } if (lastPos === 0) str = f; else if (lastPos < f.length) str += f.slice(lastPos); while (a < arguments.length) { const x = arguments[a++]; if ((typeof x !== 'object' && typeof x !== 'symbol') || x === null) { str += ` ${x}`; } else { str += ` ${inspect(x, inspectOptions)}`; } } return str; } const debugs = {}; let debugEnvRegex = /^$/; if (process.env.NODE_DEBUG) { let debugEnv = process.env.NODE_DEBUG; debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, '\\$&') .replace(/\*/g, '.*') .replace(/,/g, '$|^') .toUpperCase(); debugEnvRegex = new RegExp(`^${debugEnv}$`, 'i'); } function debuglog(set) { set = set.toUpperCase(); if (!debugs[set]) { if (debugEnvRegex.test(set)) { const pid = process.pid; debugs[set] = function debug() { const msg = exports.format.apply(exports, arguments); console.error('%s %d: %s', set, pid, msg); }; } else { debugs[set] = function debug() {}; } } return debugs[set]; } function isBoolean(arg) { return typeof arg === 'boolean'; } function isNull(arg) { return arg === null; } function isNullOrUndefined(arg) { return arg === null || arg === undefined; } function isNumber(arg) { return typeof arg === 'number'; } function isString(arg) { return typeof arg === 'string'; } function isSymbol(arg) { return typeof arg === 'symbol'; } function isUndefined(arg) { return arg === undefined; } function isObject(arg) { return arg !== null && typeof arg === 'object'; } function isFunction(arg) { return typeof arg === 'function'; } function isPrimitive(arg) { return arg === null || typeof arg !== 'object' && typeof arg !== 'function'; } function pad(n) { return n.toString().padStart(2, '0'); } const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34 function timestamp() { const d = new Date(); const time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':'); return [d.getDate(), months[d.getMonth()], time].join(' '); } // log is just a thin wrapper to console.log that prepends a timestamp function log() { console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); } /** * Inherit the prototype methods from one constructor into another. * * The Function.prototype.inherits from lang.js rewritten as a standalone * function (not on Function.prototype). NOTE: If this file is to be loaded * during bootstrapping this function needs to be rewritten using some native * functions as prototype setup using normal JavaScript does not work as * expected during bootstrapping (see mirror.js in r114903). * * @param {function} ctor Constructor function which needs to inherit the * prototype. * @param {function} superCtor Constructor function to inherit prototype from. * @throws {TypeError} Will error if either constructor is null, or if * the super constructor lacks a prototype. */ function inherits(ctor, superCtor) { if (ctor === undefined || ctor === null) throw new ERR_INVALID_ARG_TYPE('ctor', 'Function', ctor); if (superCtor === undefined || superCtor === null) throw new ERR_INVALID_ARG_TYPE('superCtor', 'Function', superCtor); if (superCtor.prototype === undefined) { throw new ERR_INVALID_ARG_TYPE('superCtor.prototype', 'Function', superCtor.prototype); } ctor.super_ = superCtor; Object.setPrototypeOf(ctor.prototype, superCtor.prototype); } function _extend(target, source) { // Don't do anything if source isn't an object if (source === null || typeof source !== 'object') return target; const keys = Object.keys(source); let i = keys.length; while (i--) { target[keys[i]] = source[keys[i]]; } return target; } // Deprecated old stuff. function print(...args) { for (var i = 0, len = args.length; i < len; ++i) { process.stdout.write(String(args[i])); } } function puts(...args) { for (var i = 0, len = args.length; i < len; ++i) { process.stdout.write(`${args[i]}\n`); } } function debug(x) { process.stderr.write(`DEBUG: ${x}\n`); } function error(...args) { for (var i = 0, len = args.length; i < len; ++i) { process.stderr.write(`${args[i]}\n`); } } function callbackifyOnRejected(reason, cb) { // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M). // Because `null` is a special error value in callbacks which means "no error // occurred", we error-wrap so the callback consumer can distinguish between // "the promise rejected with null" or "the promise fulfilled with undefined". if (!reason) { const newReason = new ERR_FALSY_VALUE_REJECTION(); newReason.reason = reason; reason = newReason; Error.captureStackTrace(reason, callbackifyOnRejected); } return cb(reason); } function callbackify(original) { if (typeof original !== 'function') { throw new ERR_INVALID_ARG_TYPE('original', 'Function', original); } // We DO NOT return the promise as it gives the user a false sense that // the promise is actually somehow related to the callback's execution // and that the callback throwing will reject the promise. function callbackified(...args) { const maybeCb = args.pop(); if (typeof maybeCb !== 'function') { throw new ERR_INVALID_ARG_TYPE('last argument', 'Function', maybeCb); } const cb = (...args) => { Reflect.apply(maybeCb, this, args); }; // In true node style we process the callback on `nextTick` with all the // implications (stack, `uncaughtException`, `async_hooks`) Reflect.apply(original, this, args) .then((ret) => process.nextTick(cb, null, ret), (rej) => process.nextTick(callbackifyOnRejected, rej, cb)); } Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original)); Object.defineProperties(callbackified, Object.getOwnPropertyDescriptors(original)); return callbackified; } function getSystemErrorName(err) { validateNumber(err, 'err'); if (err >= 0 || !Number.isSafeInteger(err)) { throw new ERR_OUT_OF_RANGE('err', 'a negative integer', err); } return internalErrorName(err); } // Keep the `exports =` so that various functions can still be monkeypatched module.exports = exports = { _errnoException: errors.errnoException, _exceptionWithHostPort: errors.exceptionWithHostPort, _extend, callbackify, debuglog, deprecate, format, formatWithOptions, getSystemErrorName, inherits, inspect, isArray: Array.isArray, isBoolean, isBuffer, isDeepStrictEqual(a, b) { if (internalDeepEqual === undefined) { internalDeepEqual = require('internal/util/comparisons') .isDeepStrictEqual; } return internalDeepEqual(a, b); }, isNull, isNullOrUndefined, isNumber, isString, isSymbol, isUndefined, isRegExp, isObject, isDate, isError, isFunction, isPrimitive, log, promisify, TextDecoder, TextEncoder, types, // Deprecated Old Stuff debug: deprecate(debug, 'util.debug is deprecated. Use console.error instead.', 'DEP0028'), error: deprecate(error, 'util.error is deprecated. Use console.error instead.', 'DEP0029'), print: deprecate(print, 'util.print is deprecated. Use console.log instead.', 'DEP0026'), puts: deprecate(puts, 'util.puts is deprecated. Use console.log instead.', 'DEP0027') }; v8// Copyright (c) 2014, StrongLoop Inc. // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above // copyright notice and this permission notice appear in all copies. // // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 'use strict'; const { Buffer } = require('buffer'); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { Serializer: _Serializer, Deserializer: _Deserializer } = process.binding('serdes'); const { copy } = process.binding('buffer'); const { objectToString } = require('internal/util'); const { FastBuffer } = require('internal/buffer'); // Calling exposed c++ functions directly throws exception as it expected to be // called with new operator and caused an assert to fire. // Creating JS wrapper so that it gets caught at JS layer. class Serializer extends _Serializer { } class Deserializer extends _Deserializer { } const { cachedDataVersionTag, setFlagsFromString: _setFlagsFromString, heapStatisticsArrayBuffer, heapSpaceStatisticsArrayBuffer, updateHeapStatisticsArrayBuffer, updateHeapSpaceStatisticsArrayBuffer, // Properties for heap and heap space statistics buffer extraction. kTotalHeapSizeIndex, kTotalHeapSizeExecutableIndex, kTotalPhysicalSizeIndex, kTotalAvailableSize, kUsedHeapSizeIndex, kHeapSizeLimitIndex, kDoesZapGarbageIndex, kMallocedMemoryIndex, kPeakMallocedMemoryIndex, kHeapSpaces, kHeapSpaceStatisticsPropertiesCount, kSpaceSizeIndex, kSpaceUsedSizeIndex, kSpaceAvailableSizeIndex, kPhysicalSpaceSizeIndex } = process.binding('v8'); const kNumberOfHeapSpaces = kHeapSpaces.length; const heapStatisticsBuffer = new Float64Array(heapStatisticsArrayBuffer); const heapSpaceStatisticsBuffer = new Float64Array(heapSpaceStatisticsArrayBuffer); function setFlagsFromString(flags) { if (typeof flags !== 'string') throw new ERR_INVALID_ARG_TYPE('flags', 'string', flags); _setFlagsFromString(flags); } function getHeapStatistics() { const buffer = heapStatisticsBuffer; updateHeapStatisticsArrayBuffer(); return { 'total_heap_size': buffer[kTotalHeapSizeIndex], 'total_heap_size_executable': buffer[kTotalHeapSizeExecutableIndex], 'total_physical_size': buffer[kTotalPhysicalSizeIndex], 'total_available_size': buffer[kTotalAvailableSize], 'used_heap_size': buffer[kUsedHeapSizeIndex], 'heap_size_limit': buffer[kHeapSizeLimitIndex], 'malloced_memory': buffer[kMallocedMemoryIndex], 'peak_malloced_memory': buffer[kPeakMallocedMemoryIndex], 'does_zap_garbage': buffer[kDoesZapGarbageIndex] }; } function getHeapSpaceStatistics() { const heapSpaceStatistics = new Array(kNumberOfHeapSpaces); const buffer = heapSpaceStatisticsBuffer; updateHeapSpaceStatisticsArrayBuffer(); for (var i = 0; i < kNumberOfHeapSpaces; i++) { const propertyOffset = i * kHeapSpaceStatisticsPropertiesCount; heapSpaceStatistics[i] = { space_name: kHeapSpaces[i], space_size: buffer[propertyOffset + kSpaceSizeIndex], space_used_size: buffer[propertyOffset + kSpaceUsedSizeIndex], space_available_size: buffer[propertyOffset + kSpaceAvailableSizeIndex], physical_space_size: buffer[propertyOffset + kPhysicalSpaceSizeIndex] }; } return heapSpaceStatistics; } /* V8 serialization API */ /* JS methods for the base objects */ Serializer.prototype._getDataCloneError = Error; Deserializer.prototype.readRawBytes = function readRawBytes(length) { const offset = this._readRawBytes(length); // `this.buffer` can be a Buffer or a plain Uint8Array, so just calling // `.slice()` doesn't work. return new FastBuffer(this.buffer.buffer, this.buffer.byteOffset + offset, length); }; /* Keep track of how to handle different ArrayBufferViews. * The default Serializer for Node does not use the V8 methods for serializing * those objects because Node's `Buffer` objects use pooled allocation in many * cases, and their underlying `ArrayBuffer`s would show up in the * serialization. Because a) those may contain sensitive data and the user * may not be aware of that and b) they are often much larger than the `Buffer` * itself, custom serialization is applied. */ const arrayBufferViewTypes = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, DataView]; const arrayBufferViewTypeToIndex = new Map(); { const dummy = new ArrayBuffer(); for (const [i, ctor] of arrayBufferViewTypes.entries()) { const tag = objectToString(new ctor(dummy)); arrayBufferViewTypeToIndex.set(tag, i); } } const bufferConstructorIndex = arrayBufferViewTypes.push(FastBuffer) - 1; class DefaultSerializer extends Serializer { constructor() { super(); this._setTreatArrayBufferViewsAsHostObjects(true); } _writeHostObject(abView) { let i = 0; if (abView.constructor === Buffer) { i = bufferConstructorIndex; } else { const tag = objectToString(abView); i = arrayBufferViewTypeToIndex.get(tag); if (i === undefined) { throw new this._getDataCloneError(`Unknown host object type: ${tag}`); } } this.writeUint32(i); this.writeUint32(abView.byteLength); this.writeRawBytes(new Uint8Array(abView.buffer, abView.byteOffset, abView.byteLength)); } } class DefaultDeserializer extends Deserializer { constructor(buffer) { super(buffer); } _readHostObject() { const typeIndex = this.readUint32(); const ctor = arrayBufferViewTypes[typeIndex]; const byteLength = this.readUint32(); const byteOffset = this._readRawBytes(byteLength); const BYTES_PER_ELEMENT = ctor.BYTES_PER_ELEMENT || 1; const offset = this.buffer.byteOffset + byteOffset; if (offset % BYTES_PER_ELEMENT === 0) { return new ctor(this.buffer.buffer, offset, byteLength / BYTES_PER_ELEMENT); } else { // Copy to an aligned buffer first. const buffer_copy = Buffer.allocUnsafe(byteLength); copy(this.buffer, buffer_copy, 0, byteOffset, byteOffset + byteLength); return new ctor(buffer_copy.buffer, buffer_copy.byteOffset, byteLength / BYTES_PER_ELEMENT); } } } function serialize(value) { const ser = new DefaultSerializer(); ser.writeHeader(); ser.writeValue(value); return ser.releaseBuffer(); } function deserialize(buffer) { const der = new DefaultDeserializer(buffer); der.readHeader(); return der.readValue(); } module.exports = { cachedDataVersionTag, getHeapStatistics, getHeapSpaceStatistics, setFlagsFromString, Serializer, Deserializer, DefaultSerializer, DefaultDeserializer, deserialize, serialize }; vm// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { ContextifyScript, makeContext, isContext: _isContext, compileFunction: _compileFunction } = process.binding('contextify'); const { ERR_INVALID_ARG_TYPE, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { isUint8Array } = require('internal/util/types'); const { validateUint32 } = require('internal/validators'); const kParsingContext = Symbol('script parsing context'); const ArrayForEach = Function.call.bind(Array.prototype.forEach); const ArrayIsArray = Array.isArray; class Script extends ContextifyScript { constructor(code, options = {}) { code = `${code}`; if (typeof options === 'string') { options = { filename: options }; } if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } const { filename = 'evalmachine.', lineOffset = 0, columnOffset = 0, cachedData, produceCachedData = false, [kParsingContext]: parsingContext } = options; if (typeof filename !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.filename', 'string', filename); } validateInteger(lineOffset, 'options.lineOffset'); validateInteger(columnOffset, 'options.columnOffset'); if (cachedData !== undefined && !isUint8Array(cachedData)) { throw new ERR_INVALID_ARG_TYPE('options.cachedData', ['Buffer', 'Uint8Array'], cachedData); } if (typeof produceCachedData !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.produceCachedData', 'boolean', produceCachedData); } // Calling `ReThrow()` on a native TryCatch does not generate a new // abort-on-uncaught-exception check. A dummy try/catch in JS land // protects against that. try { super(code, filename, lineOffset, columnOffset, cachedData, produceCachedData, parsingContext); } catch (e) { throw e; /* node-do-not-add-exception-line */ } } runInThisContext(options) { const { breakOnSigint, args } = getRunInContextArgs(options); if (breakOnSigint && process.listenerCount('SIGINT') > 0) { return sigintHandlersWrap(super.runInThisContext, this, args); } else { return super.runInThisContext(...args); } } runInContext(contextifiedSandbox, options) { validateContext(contextifiedSandbox); const { breakOnSigint, args } = getRunInContextArgs(options); if (breakOnSigint && process.listenerCount('SIGINT') > 0) { return sigintHandlersWrap(super.runInContext, this, [contextifiedSandbox, ...args]); } else { return super.runInContext(contextifiedSandbox, ...args); } } runInNewContext(sandbox, options) { const context = createContext(sandbox, getContextOptions(options)); return this.runInContext(context, options); } } function validateContext(sandbox) { if (typeof sandbox !== 'object' || sandbox === null) { throw new ERR_INVALID_ARG_TYPE('contextifiedSandbox', 'Object', sandbox); } if (!_isContext(sandbox)) { throw new ERR_INVALID_ARG_TYPE('contextifiedSandbox', 'vm.Context', sandbox); } } function validateInteger(prop, propName) { if (!Number.isInteger(prop)) { throw new ERR_INVALID_ARG_TYPE(propName, 'integer', prop); } if ((prop >> 0) !== prop) { throw new ERR_OUT_OF_RANGE(propName, '32-bit integer', prop); } } function validateString(prop, propName) { if (prop !== undefined && typeof prop !== 'string') throw new ERR_INVALID_ARG_TYPE(propName, 'string', prop); } function validateBool(prop, propName) { if (prop !== undefined && typeof prop !== 'boolean') throw new ERR_INVALID_ARG_TYPE(propName, 'boolean', prop); } function validateObject(prop, propName) { if (prop !== undefined && (typeof prop !== 'object' || prop === null)) throw new ERR_INVALID_ARG_TYPE(propName, 'Object', prop); } function getRunInContextArgs(options = {}) { if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } let timeout = options.timeout; if (timeout === undefined) { timeout = -1; } else if (!Number.isInteger(timeout) || timeout <= 0) { throw new ERR_INVALID_ARG_TYPE('options.timeout', 'a positive integer', timeout); } const { displayErrors = true, breakOnSigint = false } = options; if (typeof displayErrors !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.displayErrors', 'boolean', displayErrors); } if (typeof breakOnSigint !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.breakOnSigint', 'boolean', breakOnSigint); } return { breakOnSigint, args: [timeout, displayErrors, breakOnSigint] }; } function getContextOptions(options) { if (options) { validateObject(options.contextCodeGeneration, 'options.contextCodeGeneration'); const contextOptions = { name: options.contextName, origin: options.contextOrigin, codeGeneration: typeof options.contextCodeGeneration === 'object' ? { strings: options.contextCodeGeneration.strings, wasm: options.contextCodeGeneration.wasm, } : undefined, }; validateString(contextOptions.name, 'options.contextName'); validateString(contextOptions.origin, 'options.contextOrigin'); if (contextOptions.codeGeneration) { validateBool(contextOptions.codeGeneration.strings, 'options.contextCodeGeneration.strings'); validateBool(contextOptions.codeGeneration.wasm, 'options.contextCodeGeneration.wasm'); } return contextOptions; } return {}; } function isContext(sandbox) { if (typeof sandbox !== 'object' || sandbox === null) { throw new ERR_INVALID_ARG_TYPE('sandbox', 'Object', sandbox); } return _isContext(sandbox); } let defaultContextNameIndex = 1; function createContext(sandbox = {}, options = {}) { if (isContext(sandbox)) { return sandbox; } if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } const { name = `VM Context ${defaultContextNameIndex++}`, origin, codeGeneration } = options; if (typeof name !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.name', 'string', options.name); } validateString(origin, 'options.origin'); validateObject(codeGeneration, 'options.codeGeneration'); let strings = true; let wasm = true; if (codeGeneration !== undefined) { ({ strings = true, wasm = true } = codeGeneration); validateBool(strings, 'options.codeGeneration.strings'); validateBool(wasm, 'options.codeGeneration.wasm'); } makeContext(sandbox, name, origin, strings, wasm); return sandbox; } function createScript(code, options) { return new Script(code, options); } // Remove all SIGINT listeners and re-attach them after the wrapped function // has executed, so that caught SIGINT are handled by the listeners again. function sigintHandlersWrap(fn, thisArg, argsArray) { const sigintListeners = process.rawListeners('SIGINT'); process.removeAllListeners('SIGINT'); try { return fn.apply(thisArg, argsArray); } finally { // Add using the public methods so that the `newListener` handler of // process can re-attach the listeners. for (const listener of sigintListeners) { process.addListener('SIGINT', listener); } } } function runInContext(code, contextifiedSandbox, options) { validateContext(contextifiedSandbox); if (typeof options === 'string') { options = { filename: options, [kParsingContext]: contextifiedSandbox }; } else { options = Object.assign({}, options, { [kParsingContext]: contextifiedSandbox }); } return createScript(code, options) .runInContext(contextifiedSandbox, options); } function runInNewContext(code, sandbox, options) { if (typeof options === 'string') { options = { filename: options }; } sandbox = createContext(sandbox, getContextOptions(options)); options = Object.assign({}, options, { [kParsingContext]: sandbox }); return createScript(code, options).runInNewContext(sandbox, options); } function runInThisContext(code, options) { if (typeof options === 'string') { options = { filename: options }; } return createScript(code, options).runInThisContext(options); } function compileFunction(code, params, options = {}) { if (typeof code !== 'string') { throw new ERR_INVALID_ARG_TYPE('code', 'string', code); } if (params !== undefined) { if (!ArrayIsArray(params)) { throw new ERR_INVALID_ARG_TYPE('params', 'Array', params); } ArrayForEach(params, (param, i) => { if (typeof param !== 'string') { throw new ERR_INVALID_ARG_TYPE(`params[${i}]`, 'string', param); } }); } const { filename = '', columnOffset = 0, lineOffset = 0, cachedData = undefined, produceCachedData = false, parsingContext = undefined, contextExtensions = [], } = options; if (typeof filename !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.filename', 'string', filename); } validateUint32(columnOffset, 'options.columnOffset'); validateUint32(lineOffset, 'options.lineOffset'); if (cachedData !== undefined && !isUint8Array(cachedData)) { throw new ERR_INVALID_ARG_TYPE( 'options.cachedData', 'Uint8Array', cachedData ); } if (typeof produceCachedData !== 'boolean') { throw new ERR_INVALID_ARG_TYPE( 'options.produceCachedData', 'boolean', produceCachedData ); } if (parsingContext !== undefined) { if ( typeof parsingContext !== 'object' || parsingContext === null || !isContext(parsingContext) ) { throw new ERR_INVALID_ARG_TYPE( 'options.parsingContext', 'Context', parsingContext ); } } if (!ArrayIsArray(contextExtensions)) { throw new ERR_INVALID_ARG_TYPE( 'options.contextExtensions', 'Array', contextExtensions ); } ArrayForEach(contextExtensions, (extension, i) => { if (typeof extension !== 'object') { throw new ERR_INVALID_ARG_TYPE( `options.contextExtensions[${i}]`, 'object', extension ); } }); return _compileFunction( code, filename, lineOffset, columnOffset, cachedData, produceCachedData, parsingContext, contextExtensions, params ); } module.exports = { Script, createContext, createScript, runInContext, runInNewContext, runInThisContext, isContext, compileFunction, }; if (require('internal/options').getOptionValue('--experimental-vm-modules')) { const { SourceTextModule } = require('internal/vm/source_text_module'); module.exports.SourceTextModule = SourceTextModule; } worker_threads'use strict'; const { isMainThread, MessagePort, MessageChannel, threadId, Worker } = require('internal/worker'); module.exports = { isMainThread, MessagePort, MessageChannel, threadId, Worker, parentPort: null }; zlib// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { ERR_BUFFER_TOO_LARGE, ERR_INVALID_ARG_TYPE, ERR_OUT_OF_RANGE, ERR_ZLIB_INITIALIZATION_FAILED } = require('internal/errors').codes; const Transform = require('_stream_transform'); const { _extend, inherits, types: { isAnyArrayBuffer, isArrayBufferView } } = require('util'); const binding = process.binding('zlib'); const assert = require('assert').ok; const { Buffer, kMaxLength } = require('buffer'); const { owner_symbol } = require('internal/async_hooks').symbols; const constants = process.binding('constants').zlib; const { Z_NO_FLUSH, Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_MIN_CHUNK, Z_MIN_WINDOWBITS, Z_MAX_WINDOWBITS, Z_MIN_LEVEL, Z_MAX_LEVEL, Z_MIN_MEMLEVEL, Z_MAX_MEMLEVEL, Z_DEFAULT_CHUNK, Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY, Z_DEFAULT_WINDOWBITS, Z_DEFAULT_MEMLEVEL, Z_FIXED, DEFLATE, DEFLATERAW, INFLATE, INFLATERAW, GZIP, GUNZIP, UNZIP } = constants; // translation table for return codes. const codes = { Z_OK: constants.Z_OK, Z_STREAM_END: constants.Z_STREAM_END, Z_NEED_DICT: constants.Z_NEED_DICT, Z_ERRNO: constants.Z_ERRNO, Z_STREAM_ERROR: constants.Z_STREAM_ERROR, Z_DATA_ERROR: constants.Z_DATA_ERROR, Z_MEM_ERROR: constants.Z_MEM_ERROR, Z_BUF_ERROR: constants.Z_BUF_ERROR, Z_VERSION_ERROR: constants.Z_VERSION_ERROR }; const ckeys = Object.keys(codes); for (var ck = 0; ck < ckeys.length; ck++) { var ckey = ckeys[ck]; codes[codes[ckey]] = ckey; } function zlibBuffer(engine, buffer, callback) { // Streams do not support non-Buffer ArrayBufferViews yet. Convert it to a // Buffer without copying. if (isArrayBufferView(buffer) && Object.getPrototypeOf(buffer) !== Buffer.prototype) { buffer = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); } else if (isAnyArrayBuffer(buffer)) { buffer = Buffer.from(buffer); } engine.buffers = null; engine.nread = 0; engine.cb = callback; engine.on('data', zlibBufferOnData); engine.on('error', zlibBufferOnError); engine.on('end', zlibBufferOnEnd); engine.end(buffer); } function zlibBufferOnData(chunk) { if (!this.buffers) this.buffers = [chunk]; else this.buffers.push(chunk); this.nread += chunk.length; } function zlibBufferOnError(err) { this.removeAllListeners('end'); this.cb(err); } function zlibBufferOnEnd() { var buf; var err; if (this.nread >= kMaxLength) { err = new ERR_BUFFER_TOO_LARGE(); } else if (this.nread === 0) { buf = Buffer.alloc(0); } else { var bufs = this.buffers; buf = (bufs.length === 1 ? bufs[0] : Buffer.concat(bufs, this.nread)); } this.close(); if (err) this.cb(err); else if (this._info) this.cb(null, { buffer: buf, engine: this }); else this.cb(null, buf); } function zlibBufferSync(engine, buffer) { if (typeof buffer === 'string') { buffer = Buffer.from(buffer); } else if (!isArrayBufferView(buffer)) { if (isAnyArrayBuffer(buffer)) { buffer = Buffer.from(buffer); } else { throw new ERR_INVALID_ARG_TYPE( 'buffer', ['string', 'Buffer', 'TypedArray', 'DataView', 'ArrayBuffer'], buffer ); } } buffer = processChunkSync(engine, buffer, engine._finishFlushFlag); if (engine._info) return { buffer, engine }; return buffer; } function zlibOnError(message, errno, code) { var self = this[owner_symbol]; // there is no way to cleanly recover. // continuing only obscures problems. _close(self); self._hadError = true; // eslint-disable-next-line no-restricted-syntax const error = new Error(message); error.errno = errno; error.code = code; self.emit('error', error); } // 1. Returns false for undefined and NaN // 2. Returns true for finite numbers // 3. Throws ERR_INVALID_ARG_TYPE for non-numbers // 4. Throws ERR_OUT_OF_RANGE for infinite numbers function checkFiniteNumber(number, name) { // Common case if (number === undefined) { return false; } if (Number.isFinite(number)) { return true; // Is a valid number } if (Number.isNaN(number)) { return false; } // Other non-numbers if (typeof number !== 'number') { const err = new ERR_INVALID_ARG_TYPE(name, 'number', number); Error.captureStackTrace(err, checkFiniteNumber); throw err; } // Infinite numbers const err = new ERR_OUT_OF_RANGE(name, 'a finite number', number); Error.captureStackTrace(err, checkFiniteNumber); throw err; } // 1. Returns def for number when it's undefined or NaN // 2. Returns number for finite numbers >= lower and <= upper // 3. Throws ERR_INVALID_ARG_TYPE for non-numbers // 4. Throws ERR_OUT_OF_RANGE for infinite numbers or numbers > upper or < lower function checkRangesOrGetDefault(number, name, lower, upper, def) { if (!checkFiniteNumber(number, name)) { return def; } if (number < lower || number > upper) { const err = new ERR_OUT_OF_RANGE(name, `>= ${lower} and <= ${upper}`, number); Error.captureStackTrace(err, checkRangesOrGetDefault); throw err; } return number; } // the Zlib class they all inherit from // This thing manages the queue of requests, and returns // true or false if there is anything in the queue when // you call the .write() method. function Zlib(opts, mode) { var chunkSize = Z_DEFAULT_CHUNK; var flush = Z_NO_FLUSH; var finishFlush = Z_FINISH; var windowBits = Z_DEFAULT_WINDOWBITS; var level = Z_DEFAULT_COMPRESSION; var memLevel = Z_DEFAULT_MEMLEVEL; var strategy = Z_DEFAULT_STRATEGY; var dictionary; // The Zlib class is not exported to user land, the mode should only be // passed in by us. assert(typeof mode === 'number'); assert(mode >= DEFLATE && mode <= UNZIP); if (opts) { chunkSize = opts.chunkSize; if (!checkFiniteNumber(chunkSize, 'options.chunkSize')) { chunkSize = Z_DEFAULT_CHUNK; } else if (chunkSize < Z_MIN_CHUNK) { throw new ERR_OUT_OF_RANGE('options.chunkSize', `>= ${Z_MIN_CHUNK}`, chunkSize); } flush = checkRangesOrGetDefault( opts.flush, 'options.flush', Z_NO_FLUSH, Z_BLOCK, Z_NO_FLUSH); finishFlush = checkRangesOrGetDefault( opts.finishFlush, 'options.finishFlush', Z_NO_FLUSH, Z_BLOCK, Z_FINISH); // windowBits is special. On the compression side, 0 is an invalid value. // But on the decompression side, a value of 0 for windowBits tells zlib // to use the window size in the zlib header of the compressed stream. if ((opts.windowBits == null || opts.windowBits === 0) && (mode === INFLATE || mode === GUNZIP || mode === UNZIP)) { windowBits = 0; } else { windowBits = checkRangesOrGetDefault( opts.windowBits, 'options.windowBits', Z_MIN_WINDOWBITS, Z_MAX_WINDOWBITS, Z_DEFAULT_WINDOWBITS); } level = checkRangesOrGetDefault( opts.level, 'options.level', Z_MIN_LEVEL, Z_MAX_LEVEL, Z_DEFAULT_COMPRESSION); memLevel = checkRangesOrGetDefault( opts.memLevel, 'options.memLevel', Z_MIN_MEMLEVEL, Z_MAX_MEMLEVEL, Z_DEFAULT_MEMLEVEL); strategy = checkRangesOrGetDefault( opts.strategy, 'options.strategy', Z_DEFAULT_STRATEGY, Z_FIXED, Z_DEFAULT_STRATEGY); dictionary = opts.dictionary; if (dictionary !== undefined && !isArrayBufferView(dictionary)) { if (isAnyArrayBuffer(dictionary)) { dictionary = Buffer.from(dictionary); } else { throw new ERR_INVALID_ARG_TYPE( 'options.dictionary', ['Buffer', 'TypedArray', 'DataView', 'ArrayBuffer'], dictionary ); } } if (opts.encoding || opts.objectMode || opts.writableObjectMode) { opts = _extend({}, opts); opts.encoding = null; opts.objectMode = false; opts.writableObjectMode = false; } } Transform.call(this, opts); this.bytesWritten = 0; this._handle = new binding.Zlib(mode); // Used by processCallback() and zlibOnError() this._handle[owner_symbol] = this; this._handle.onerror = zlibOnError; this._hadError = false; this._writeState = new Uint32Array(2); if (!this._handle.init(windowBits, level, memLevel, strategy, this._writeState, processCallback, dictionary)) { throw new ERR_ZLIB_INITIALIZATION_FAILED(); } this._outBuffer = Buffer.allocUnsafe(chunkSize); this._outOffset = 0; this._level = level; this._strategy = strategy; this._chunkSize = chunkSize; this._defaultFlushFlag = flush; this._finishFlushFlag = finishFlush; this._nextFlush = -1; this._info = opts && opts.info; this.once('end', this.close); } inherits(Zlib, Transform); Object.defineProperty(Zlib.prototype, '_closed', { configurable: true, enumerable: true, get() { return !this._handle; } }); // `bytesRead` made sense as a name when looking from the zlib engine's // perspective, but it is inconsistent with all other streams exposed by Node.js // that have this concept, where it stands for the number of bytes read // *from* the stream (that is, net.Socket/tls.Socket & file system streams). Object.defineProperty(Zlib.prototype, 'bytesRead', { configurable: true, enumerable: true, get() { return this.bytesWritten; }, set(value) { this.bytesWritten = value; } }); // This callback is used by `.params()` to wait until a full flush happened // before adjusting the parameters. In particular, the call to the native // `params()` function should not happen while a write is currently in progress // on the threadpool. function paramsAfterFlushCallback(level, strategy, callback) { assert(this._handle, 'zlib binding closed'); this._handle.params(level, strategy); if (!this._hadError) { this._level = level; this._strategy = strategy; if (callback) callback(); } } Zlib.prototype.params = function params(level, strategy, callback) { checkRangesOrGetDefault(level, 'level', Z_MIN_LEVEL, Z_MAX_LEVEL); checkRangesOrGetDefault(strategy, 'strategy', Z_DEFAULT_STRATEGY, Z_FIXED); if (this._level !== level || this._strategy !== strategy) { this.flush(Z_SYNC_FLUSH, paramsAfterFlushCallback.bind(this, level, strategy, callback)); } else { process.nextTick(callback); } }; Zlib.prototype.reset = function reset() { if (!this._handle) assert(false, 'zlib binding closed'); return this._handle.reset(); }; // This is the _flush function called by the transform class, // internally, when the last chunk has been written. Zlib.prototype._flush = function _flush(callback) { this._transform(Buffer.alloc(0), '', callback); }; // If a flush is scheduled while another flush is still pending, a way to figure // out which one is the "stronger" flush is needed. // Roughly, the following holds: // Z_NO_FLUSH (< Z_TREES) < Z_BLOCK < Z_PARTIAL_FLUSH < // Z_SYNC_FLUSH < Z_FULL_FLUSH < Z_FINISH const flushiness = []; let i = 0; for (const flushFlag of [Z_NO_FLUSH, Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH]) { flushiness[flushFlag] = i++; } function maxFlush(a, b) { return flushiness[a] > flushiness[b] ? a : b; } const flushBuffer = Buffer.alloc(0); Zlib.prototype.flush = function flush(kind, callback) { var ws = this._writableState; if (typeof kind === 'function' || (kind === undefined && !callback)) { callback = kind; kind = Z_FULL_FLUSH; } if (ws.ended) { if (callback) process.nextTick(callback); } else if (ws.ending) { if (callback) this.once('end', callback); } else if (this._nextFlush !== -1) { // This means that there is a flush currently in the write queue. // We currently coalesce this flush into the pending one. this._nextFlush = maxFlush(this._nextFlush, kind); } else { this._nextFlush = kind; this.write(flushBuffer, '', callback); } }; Zlib.prototype.close = function close(callback) { _close(this, callback); this.destroy(); }; Zlib.prototype._destroy = function _destroy(err, callback) { _close(this); callback(err); }; Zlib.prototype._transform = function _transform(chunk, encoding, cb) { var flushFlag = this._defaultFlushFlag; // We use a 'fake' zero-length chunk to carry information about flushes from // the public API to the actual stream implementation. if (chunk === flushBuffer) { flushFlag = this._nextFlush; this._nextFlush = -1; } // For the last chunk, also apply `_finishFlushFlag`. var ws = this._writableState; if ((ws.ending || ws.ended) && ws.length === chunk.byteLength) { flushFlag = maxFlush(flushFlag, this._finishFlushFlag); } processChunk(this, chunk, flushFlag, cb); }; Zlib.prototype._processChunk = function _processChunk(chunk, flushFlag, cb) { // _processChunk() is left for backwards compatibility if (typeof cb === 'function') processChunk(this, chunk, flushFlag, cb); else return processChunkSync(this, chunk, flushFlag); }; function processChunkSync(self, chunk, flushFlag) { var availInBefore = chunk.byteLength; var availOutBefore = self._chunkSize - self._outOffset; var inOff = 0; var availOutAfter; var availInAfter; var buffers = null; var nread = 0; var inputRead = 0; var state = self._writeState; var handle = self._handle; var buffer = self._outBuffer; var offset = self._outOffset; var chunkSize = self._chunkSize; var error; self.on('error', function onError(er) { error = er; }); while (true) { handle.writeSync(flushFlag, chunk, // in inOff, // in_off availInBefore, // in_len buffer, // out offset, // out_off availOutBefore); // out_len if (error) throw error; availOutAfter = state[0]; availInAfter = state[1]; var inDelta = (availInBefore - availInAfter); inputRead += inDelta; var have = availOutBefore - availOutAfter; if (have > 0) { var out = buffer.slice(offset, offset + have); offset += have; if (!buffers) buffers = [out]; else buffers.push(out); nread += out.byteLength; } else { assert(have === 0, 'have should not go down'); } // exhausted the output buffer, or used all the input create a new one. if (availOutAfter === 0 || offset >= chunkSize) { availOutBefore = chunkSize; offset = 0; buffer = Buffer.allocUnsafe(chunkSize); } if (availOutAfter === 0) { // Not actually done. Need to reprocess. // Also, update the availInBefore to the availInAfter value, // so that if we have to hit it a third (fourth, etc.) time, // it'll have the correct byte counts. inOff += inDelta; availInBefore = availInAfter; } else { break; } } self.bytesWritten = inputRead; _close(self); if (nread >= kMaxLength) { throw new ERR_BUFFER_TOO_LARGE(); } if (nread === 0) return Buffer.alloc(0); return (buffers.length === 1 ? buffers[0] : Buffer.concat(buffers, nread)); } function processChunk(self, chunk, flushFlag, cb) { var handle = self._handle; assert(handle, 'zlib binding closed'); handle.buffer = chunk; handle.cb = cb; handle.availOutBefore = self._chunkSize - self._outOffset; handle.availInBefore = chunk.byteLength; handle.inOff = 0; handle.flushFlag = flushFlag; handle.write(flushFlag, chunk, // in 0, // in_off handle.availInBefore, // in_len self._outBuffer, // out self._outOffset, // out_off handle.availOutBefore); // out_len } function processCallback() { // This callback's context (`this`) is the `_handle` (ZCtx) object. It is // important to null out the values once they are no longer needed since // `_handle` can stay in memory long after the buffer is needed. var handle = this; var self = this.jsref; var state = self._writeState; if (self._hadError) { this.buffer = null; return; } if (self.destroyed) { this.buffer = null; return; } var availOutAfter = state[0]; var availInAfter = state[1]; const inDelta = handle.availInBefore - availInAfter; self.bytesWritten += inDelta; var have = handle.availOutBefore - availOutAfter; if (have > 0) { var out = self._outBuffer.slice(self._outOffset, self._outOffset + have); self._outOffset += have; self.push(out); } else { assert(have === 0, 'have should not go down'); } if (self.destroyed) { return; } // exhausted the output buffer, or used all the input create a new one. if (availOutAfter === 0 || self._outOffset >= self._chunkSize) { handle.availOutBefore = self._chunkSize; self._outOffset = 0; self._outBuffer = Buffer.allocUnsafe(self._chunkSize); } if (availOutAfter === 0) { // Not actually done. Need to reprocess. // Also, update the availInBefore to the availInAfter value, // so that if we have to hit it a third (fourth, etc.) time, // it'll have the correct byte counts. handle.inOff += inDelta; handle.availInBefore = availInAfter; this.write(handle.flushFlag, this.buffer, // in handle.inOff, // in_off handle.availInBefore, // in_len self._outBuffer, // out self._outOffset, // out_off self._chunkSize); // out_len return; } // finished with the chunk. this.buffer = null; this.cb(); } function _close(engine, callback) { if (callback) process.nextTick(callback); // Caller may invoke .close after a zlib error (which will null _handle). if (!engine._handle) return; engine._handle.close(); engine._handle = null; } // generic zlib // minimal 2-byte header function Deflate(opts) { if (!(this instanceof Deflate)) return new Deflate(opts); Zlib.call(this, opts, DEFLATE); } inherits(Deflate, Zlib); function Inflate(opts) { if (!(this instanceof Inflate)) return new Inflate(opts); Zlib.call(this, opts, INFLATE); } inherits(Inflate, Zlib); function Gzip(opts) { if (!(this instanceof Gzip)) return new Gzip(opts); Zlib.call(this, opts, GZIP); } inherits(Gzip, Zlib); function Gunzip(opts) { if (!(this instanceof Gunzip)) return new Gunzip(opts); Zlib.call(this, opts, GUNZIP); } inherits(Gunzip, Zlib); function DeflateRaw(opts) { if (opts && opts.windowBits === 8) opts.windowBits = 9; if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts); Zlib.call(this, opts, DEFLATERAW); } inherits(DeflateRaw, Zlib); function InflateRaw(opts) { if (!(this instanceof InflateRaw)) return new InflateRaw(opts); Zlib.call(this, opts, INFLATERAW); } inherits(InflateRaw, Zlib); function Unzip(opts) { if (!(this instanceof Unzip)) return new Unzip(opts); Zlib.call(this, opts, UNZIP); } inherits(Unzip, Zlib); function createConvenienceMethod(ctor, sync) { if (sync) { return function syncBufferWrapper(buffer, opts) { return zlibBufferSync(new ctor(opts), buffer); }; } else { return function asyncBufferWrapper(buffer, opts, callback) { if (typeof opts === 'function') { callback = opts; opts = {}; } return zlibBuffer(new ctor(opts), buffer, callback); }; } } function createProperty(ctor) { return { configurable: true, enumerable: true, value: function(options) { return new ctor(options); } }; } // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. Object.defineProperty(binding.Zlib.prototype, 'jsref', { get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); module.exports = { Deflate, Inflate, Gzip, Gunzip, DeflateRaw, InflateRaw, Unzip, // Convenience methods. // compress/decompress a string or buffer in one step. deflate: createConvenienceMethod(Deflate, false), deflateSync: createConvenienceMethod(Deflate, true), gzip: createConvenienceMethod(Gzip, false), gzipSync: createConvenienceMethod(Gzip, true), deflateRaw: createConvenienceMethod(DeflateRaw, false), deflateRawSync: createConvenienceMethod(DeflateRaw, true), unzip: createConvenienceMethod(Unzip, false), unzipSync: createConvenienceMethod(Unzip, true), inflate: createConvenienceMethod(Inflate, false), inflateSync: createConvenienceMethod(Inflate, true), gunzip: createConvenienceMethod(Gunzip, false), gunzipSync: createConvenienceMethod(Gunzip, true), inflateRaw: createConvenienceMethod(InflateRaw, false), inflateRawSync: createConvenienceMethod(InflateRaw, true) }; Object.defineProperties(module.exports, { createDeflate: createProperty(Deflate), createInflate: createProperty(Inflate), createDeflateRaw: createProperty(DeflateRaw), createInflateRaw: createProperty(InflateRaw), createGzip: createProperty(Gzip), createGunzip: createProperty(Gunzip), createUnzip: createProperty(Unzip), constants: { configurable: false, enumerable: true, value: constants }, codes: { enumerable: true, writable: false, value: Object.freeze(codes) } }); // These should be considered deprecated // expose all the zlib constants const bkeys = Object.keys(constants); for (var bk = 0; bk < bkeys.length; bk++) { var bkey = bkeys[bk]; Object.defineProperty(module.exports, bkey, { enumerable: true, value: constants[bkey], writable: false }); } internal/assert'use strict'; const { inspect } = require('util'); const { codes: { ERR_INVALID_ARG_TYPE } } = require('internal/errors'); let blue = ''; let green = ''; let red = ''; let white = ''; const READABLE_OPERATOR = { deepStrictEqual: 'Input A expected to strictly deep-equal input B', notDeepStrictEqual: 'Input A expected to strictly not deep-equal input B', strictEqual: 'Input A expected to strictly equal input B', notStrictEqual: 'Input A expected to strictly not equal input B' }; function copyError(source) { const keys = Object.keys(source); const target = Object.create(Object.getPrototypeOf(source)); for (const key of keys) { target[key] = source[key]; } Object.defineProperty(target, 'message', { value: source.message }); return target; } function inspectValue(val) { // The util.inspect default values could be changed. This makes sure the // error messages contain the necessary information nevertheless. return inspect( val, { compact: false, customInspect: false, depth: 1000, maxArrayLength: Infinity, // Assert compares only enumerable properties (with a few exceptions). showHidden: false, // Having a long line as error is better than wrapping the line for // comparison. breakLength: Infinity, // Assert does not detect proxies currently. showProxy: false, sorted: true } ).split('\n'); } function createErrDiff(actual, expected, operator) { var other = ''; var res = ''; var lastPos = 0; var end = ''; var skipped = false; const actualLines = inspectValue(actual); const expectedLines = inspectValue(expected); const msg = READABLE_OPERATOR[operator] + `:\n${green}+ expected${white} ${red}- actual${white}`; const skippedMsg = ` ${blue}...${white} Lines skipped`; // Remove all ending lines that match (this optimizes the output for // readability by reducing the number of total changed lines). var a = actualLines[actualLines.length - 1]; var b = expectedLines[expectedLines.length - 1]; var i = 0; while (a === b) { if (i++ < 2) { end = `\n ${a}${end}`; } else { other = a; } actualLines.pop(); expectedLines.pop(); if (actualLines.length === 0 || expectedLines.length === 0) break; a = actualLines[actualLines.length - 1]; b = expectedLines[expectedLines.length - 1]; } if (i > 3) { end = `\n${blue}...${white}${end}`; skipped = true; } if (other !== '') { end = `\n ${other}${end}`; other = ''; } const maxLines = Math.max(actualLines.length, expectedLines.length); var printedLines = 0; var identical = 0; for (i = 0; i < maxLines; i++) { // Only extra expected lines exist const cur = i - lastPos; if (actualLines.length < i + 1) { if (cur > 1 && i > 2) { if (cur > 4) { res += `\n${blue}...${white}`; skipped = true; } else if (cur > 3) { res += `\n ${expectedLines[i - 2]}`; printedLines++; } res += `\n ${expectedLines[i - 1]}`; printedLines++; } lastPos = i; other += `\n${green}+${white} ${expectedLines[i]}`; printedLines++; // Only extra actual lines exist } else if (expectedLines.length < i + 1) { if (cur > 1 && i > 2) { if (cur > 4) { res += `\n${blue}...${white}`; skipped = true; } else if (cur > 3) { res += `\n ${actualLines[i - 2]}`; printedLines++; } res += `\n ${actualLines[i - 1]}`; printedLines++; } lastPos = i; res += `\n${red}-${white} ${actualLines[i]}`; printedLines++; // Lines diverge } else if (actualLines[i] !== expectedLines[i]) { if (cur > 1 && i > 2) { if (cur > 4) { res += `\n${blue}...${white}`; skipped = true; } else if (cur > 3) { res += `\n ${actualLines[i - 2]}`; printedLines++; } res += `\n ${actualLines[i - 1]}`; printedLines++; } lastPos = i; res += `\n${red}-${white} ${actualLines[i]}`; other += `\n${green}+${white} ${expectedLines[i]}`; printedLines += 2; // Lines are identical } else { res += other; other = ''; if (cur === 1 || i === 0) { res += `\n ${actualLines[i]}`; printedLines++; } identical++; } // Inspected object to big (Show ~20 rows max) if (printedLines > 20 && i < maxLines - 2) { return `${msg}${skippedMsg}\n${res}\n${blue}...${white}${other}\n` + `${blue}...${white}`; } } // Strict equal with identical objects that are not identical by reference. if (identical === maxLines) { // E.g., assert.deepStrictEqual(Symbol(), Symbol()) const base = operator === 'strictEqual' ? 'Input objects identical but not reference equal:' : 'Input objects not identical:'; // We have to get the result again. The lines were all removed before. const actualLines = inspectValue(actual); // Only remove lines in case it makes sense to collapse those. // TODO: Accept env to always show the full error. if (actualLines.length > 30) { actualLines[26] = `${blue}...${white}`; while (actualLines.length > 27) { actualLines.pop(); } } return `${base}\n\n${actualLines.join('\n')}\n`; } return `${msg}${skipped ? skippedMsg : ''}\n${res}${other}${end}`; } class AssertionError extends Error { constructor(options) { if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } var { actual, expected, message, operator, stackStartFn } = options; if (message != null) { super(String(message)); } else { if (process.stdout.isTTY) { // Reset on each call to make sure we handle dynamically set environment // variables correct. if (process.stdout.getColorDepth() !== 1) { blue = '\u001b[34m'; green = '\u001b[32m'; white = '\u001b[39m'; red = '\u001b[31m'; } else { blue = ''; green = ''; white = ''; red = ''; } } // Prevent the error stack from being visible by duplicating the error // in a very close way to the original in case both sides are actually // instances of Error. if (typeof actual === 'object' && actual !== null && typeof expected === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) { actual = copyError(actual); expected = copyError(expected); } if (operator === 'deepStrictEqual' || operator === 'strictEqual') { super(createErrDiff(actual, expected, operator)); } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') { // In case the objects are equal but the operator requires unequal, show // the first object and say A equals B const res = inspectValue(actual); const base = `Identical input passed to ${operator}:`; // Only remove lines in case it makes sense to collapse those. // TODO: Accept env to always show the full error. if (res.length > 30) { res[26] = `${blue}...${white}`; while (res.length > 27) { res.pop(); } } // Only print a single input. if (res.length === 1) { super(`${base} ${res[0]}`); } else { super(`${base}\n\n${res.join('\n')}\n`); } } else { let res = inspect(actual); let other = inspect(expected); if (res.length > 128) res = `${res.slice(0, 125)}...`; if (other.length > 128) other = `${other.slice(0, 125)}...`; super(`${res} ${operator} ${other}`); } } this.generatedMessage = !message; this.name = 'AssertionError [ERR_ASSERTION]'; this.code = 'ERR_ASSERTION'; this.actual = actual; this.expected = expected; this.operator = operator; Error.captureStackTrace(this, stackStartFn); } } module.exports = { AssertionError }; internal/async_hooks'use strict'; const { ERR_ASYNC_TYPE, ERR_INVALID_ASYNC_ID } = require('internal/errors').codes; const async_wrap = internalBinding('async_wrap'); /* async_hook_fields is a Uint32Array wrapping the uint32_t array of * Environment::AsyncHooks::fields_[]. Each index tracks the number of active * hooks for each type. * * async_id_fields is a Float64Array wrapping the double array of * Environment::AsyncHooks::async_id_fields_[]. Each index contains the ids for * the various asynchronous states of the application. These are: * kExecutionAsyncId: The async_id assigned to the resource responsible for the * current execution stack. * kTriggerAsyncId: The async_id of the resource that caused (or 'triggered') * the resource corresponding to the current execution stack. * kAsyncIdCounter: Incremental counter tracking the next assigned async_id. * kDefaultTriggerAsyncId: Written immediately before a resource's constructor * that sets the value of the init()'s triggerAsyncId. The precedence order * of retrieving the triggerAsyncId value is: * 1. the value passed directly to the constructor * 2. value set in kDefaultTriggerAsyncId * 3. executionAsyncId of the current resource. * * async_ids_stack is a Float64Array that contains part of the async ID * stack. Each pushAsyncIds() call adds two doubles to it, and each * popAsyncIds() call removes two doubles from it. * It has a fixed size, so if that is exceeded, calls to the native * side are used instead in pushAsyncIds() and popAsyncIds(). */ const { async_hook_fields, async_id_fields, owner_symbol } = async_wrap; // Store the pair executionAsyncId and triggerAsyncId in a std::stack on // Environment::AsyncHooks::async_ids_stack_ tracks the resource responsible for // the current execution stack. This is unwound as each resource exits. In the // case of a fatal exception this stack is emptied after calling each hook's // after() callback. const { pushAsyncIds: pushAsyncIds_, popAsyncIds: popAsyncIds_ } = async_wrap; // For performance reasons, only track Promises when a hook is enabled. const { enablePromiseHook, disablePromiseHook } = async_wrap; // Properties in active_hooks are used to keep track of the set of hooks being // executed in case another hook is enabled/disabled. The new set of hooks is // then restored once the active set of hooks is finished executing. const active_hooks = { // Array of all AsyncHooks that will be iterated whenever an async event // fires. Using var instead of (preferably const) in order to assign // active_hooks.tmp_array if a hook is enabled/disabled during hook // execution. array: [], // Use a counter to track nested calls of async hook callbacks and make sure // the active_hooks.array isn't altered mid execution. call_depth: 0, // Use to temporarily store and updated active_hooks.array if the user // enables or disables a hook while hooks are being processed. If a hook is // enabled() or disabled() during hook execution then the current set of // active hooks is duplicated and set equal to active_hooks.tmp_array. Any // subsequent changes are on the duplicated array. When all hooks have // completed executing active_hooks.tmp_array is assigned to // active_hooks.array. tmp_array: null, // Keep track of the field counts held in active_hooks.tmp_array. Because the // async_hook_fields can't be reassigned, store each uint32 in an array that // is written back to async_hook_fields when active_hooks.array is restored. tmp_fields: null }; const { registerDestroyHook } = async_wrap; // Each constant tracks how many callbacks there are for any given step of // async execution. These are tracked so if the user didn't include callbacks // for a given step, that step can bail out early. const { kInit, kBefore, kAfter, kDestroy, kTotals, kPromiseResolve, kCheck, kExecutionAsyncId, kAsyncIdCounter, kTriggerAsyncId, kDefaultTriggerAsyncId, kStackLength } = async_wrap.constants; // Used in AsyncHook and AsyncResource. const async_id_symbol = Symbol('asyncId'); const trigger_async_id_symbol = Symbol('triggerAsyncId'); const init_symbol = Symbol('init'); const before_symbol = Symbol('before'); const after_symbol = Symbol('after'); const destroy_symbol = Symbol('destroy'); const promise_resolve_symbol = Symbol('promiseResolve'); const emitBeforeNative = emitHookFactory(before_symbol, 'emitBeforeNative'); const emitAfterNative = emitHookFactory(after_symbol, 'emitAfterNative'); const emitDestroyNative = emitHookFactory(destroy_symbol, 'emitDestroyNative'); const emitPromiseResolveNative = emitHookFactory(promise_resolve_symbol, 'emitPromiseResolveNative'); // Setup the callbacks that node::AsyncWrap will call when there are hooks to // process. They use the same functions as the JS embedder API. These callbacks // are setup immediately to prevent async_wrap.setupHooks() from being hijacked // and the cost of doing so is negligible. async_wrap.setupHooks({ init: emitInitNative, before: emitBeforeNative, after: emitAfterNative, destroy: emitDestroyNative, promise_resolve: emitPromiseResolveNative }); // Used to fatally abort the process if a callback throws. function fatalError(e) { if (typeof e.stack === 'string') { process._rawDebug(e.stack); } else { const o = { message: e }; Error.captureStackTrace(o, fatalError); process._rawDebug(o.stack); } if (process.binding('config').shouldAbortOnUncaughtException) { process.abort(); } process.exit(1); } function validateAsyncId(asyncId, type) { // Skip validation when async_hooks is disabled if (async_hook_fields[kCheck] <= 0) return; if (!Number.isSafeInteger(asyncId) || asyncId < -1) { fatalError(new ERR_INVALID_ASYNC_ID(type, asyncId)); } } // Emit From Native // // Used by C++ to call all init() callbacks. Because some state can be setup // from C++ there's no need to perform all the same operations as in // emitInitScript. function emitInitNative(asyncId, type, triggerAsyncId, resource) { active_hooks.call_depth += 1; // Use a single try/catch for all hooks to avoid setting up one per iteration. try { for (var i = 0; i < active_hooks.array.length; i++) { if (typeof active_hooks.array[i][init_symbol] === 'function') { active_hooks.array[i][init_symbol]( asyncId, type, triggerAsyncId, resource ); } } } catch (e) { fatalError(e); } finally { active_hooks.call_depth -= 1; } // Hooks can only be restored if there have been no recursive hook calls. // Also the active hooks do not need to be restored if enable()/disable() // weren't called during hook execution, in which case active_hooks.tmp_array // will be null. if (active_hooks.call_depth === 0 && active_hooks.tmp_array !== null) { restoreActiveHooks(); } } function emitHookFactory(symbol, name) { // Called from native. The asyncId stack handling is taken care of there // before this is called. // eslint-disable-next-line func-style const fn = function(asyncId) { active_hooks.call_depth += 1; // Use a single try/catch for all hook to avoid setting up one per // iteration. try { for (var i = 0; i < active_hooks.array.length; i++) { if (typeof active_hooks.array[i][symbol] === 'function') { active_hooks.array[i][symbol](asyncId); } } } catch (e) { fatalError(e); } finally { active_hooks.call_depth -= 1; } // Hooks can only be restored if there have been no recursive hook calls. // Also the active hooks do not need to be restored if enable()/disable() // weren't called during hook execution, in which case // active_hooks.tmp_array will be null. if (active_hooks.call_depth === 0 && active_hooks.tmp_array !== null) { restoreActiveHooks(); } }; // Set the name property of the anonymous function as it looks good in the // stack trace. Object.defineProperty(fn, 'name', { value: name }); return fn; } // Manage Active Hooks // function getHookArrays() { if (active_hooks.call_depth === 0) return [active_hooks.array, async_hook_fields]; // If this hook is being enabled while in the middle of processing the array // of currently active hooks then duplicate the current set of active hooks // and store this there. This shouldn't fire until the next time hooks are // processed. if (active_hooks.tmp_array === null) storeActiveHooks(); return [active_hooks.tmp_array, active_hooks.tmp_fields]; } function storeActiveHooks() { active_hooks.tmp_array = active_hooks.array.slice(); // Don't want to make the assumption that kInit to kDestroy are indexes 0 to // 4. So do this the long way. active_hooks.tmp_fields = []; copyHooks(active_hooks.tmp_fields, async_hook_fields); } function copyHooks(destination, source) { destination[kInit] = source[kInit]; destination[kBefore] = source[kBefore]; destination[kAfter] = source[kAfter]; destination[kDestroy] = source[kDestroy]; destination[kPromiseResolve] = source[kPromiseResolve]; } // Then restore the correct hooks array in case any hooks were added/removed // during hook callback execution. function restoreActiveHooks() { active_hooks.array = active_hooks.tmp_array; copyHooks(async_hook_fields, active_hooks.tmp_fields); active_hooks.tmp_array = null; active_hooks.tmp_fields = null; } function enableHooks() { enablePromiseHook(); async_hook_fields[kCheck] += 1; } function disableHooks() { disablePromiseHook(); async_hook_fields[kCheck] -= 1; } // Internal Embedder API // // Increment the internal id counter and return the value. Important that the // counter increment first. Since it's done the same way in // Environment::new_async_uid() function newAsyncId() { return ++async_id_fields[kAsyncIdCounter]; } function getOrSetAsyncId(object) { if (object.hasOwnProperty(async_id_symbol)) { return object[async_id_symbol]; } return object[async_id_symbol] = newAsyncId(); } // Return the triggerAsyncId meant for the constructor calling it. It's up to // the user to safeguard this call and make sure it's zero'd out when the // constructor is complete. function getDefaultTriggerAsyncId() { let defaultTriggerAsyncId = async_id_fields[kDefaultTriggerAsyncId]; // If defaultTriggerAsyncId isn't set, use the executionAsyncId if (defaultTriggerAsyncId < 0) defaultTriggerAsyncId = async_id_fields[kExecutionAsyncId]; return defaultTriggerAsyncId; } function clearDefaultTriggerAsyncId() { async_id_fields[kDefaultTriggerAsyncId] = -1; } function defaultTriggerAsyncIdScope(triggerAsyncId, block, ...args) { if (triggerAsyncId === undefined) return Reflect.apply(block, null, args); // do { if (!(Number.isSafeInteger(triggerAsyncId))) (process._rawDebug("CHECK: Number.isSafeInteger(triggerAsyncId) == true"), process.abort()) } while (0) // do { if (!(triggerAsyncId > 0)) (process._rawDebug("CHECK: triggerAsyncId > 0 == true"), process.abort()) } while (0) const oldDefaultTriggerAsyncId = async_id_fields[kDefaultTriggerAsyncId]; async_id_fields[kDefaultTriggerAsyncId] = triggerAsyncId; let ret; try { ret = Reflect.apply(block, null, args); } finally { async_id_fields[kDefaultTriggerAsyncId] = oldDefaultTriggerAsyncId; } return ret; } function initHooksExist() { return async_hook_fields[kInit] > 0; } function afterHooksExist() { return async_hook_fields[kAfter] > 0; } function destroyHooksExist() { return async_hook_fields[kDestroy] > 0; } function emitInitScript(asyncId, type, triggerAsyncId, resource) { validateAsyncId(asyncId, 'asyncId'); if (triggerAsyncId !== null) validateAsyncId(triggerAsyncId, 'triggerAsyncId'); if (async_hook_fields[kCheck] > 0 && (typeof type !== 'string' || type.length <= 0)) { throw new ERR_ASYNC_TYPE(type); } // Short circuit all checks for the common case. Which is that no hooks have // been set. Do this to remove performance impact for embedders (and core). if (async_hook_fields[kInit] === 0) return; // This can run after the early return check b/c running this function // manually means that the embedder must have used getDefaultTriggerAsyncId(). if (triggerAsyncId === null) { triggerAsyncId = getDefaultTriggerAsyncId(); } emitInitNative(asyncId, type, triggerAsyncId, resource); } function emitBeforeScript(asyncId, triggerAsyncId) { // Validate the ids. An id of -1 means it was never set and is visible on the // call graph. An id < -1 should never happen in any circumstance. Throw // on user calls because async state should still be recoverable. validateAsyncId(asyncId, 'asyncId'); validateAsyncId(triggerAsyncId, 'triggerAsyncId'); pushAsyncIds(asyncId, triggerAsyncId); if (async_hook_fields[kBefore] > 0) emitBeforeNative(asyncId); } function emitAfterScript(asyncId) { validateAsyncId(asyncId, 'asyncId'); if (async_hook_fields[kAfter] > 0) emitAfterNative(asyncId); popAsyncIds(asyncId); } function emitDestroyScript(asyncId) { validateAsyncId(asyncId, 'asyncId'); // Return early if there are no destroy callbacks, or invalid asyncId. if (async_hook_fields[kDestroy] === 0 || asyncId <= 0) return; async_wrap.queueDestroyAsyncId(asyncId); } // Keep in sync with Environment::AsyncHooks::clear_async_id_stack // in src/env-inl.h. function clearAsyncIdStack() { async_id_fields[kExecutionAsyncId] = 0; async_id_fields[kTriggerAsyncId] = 0; async_hook_fields[kStackLength] = 0; } function hasAsyncIdStack() { return async_hook_fields[kStackLength] > 0; } // This is the equivalent of the native push_async_ids() call. function pushAsyncIds(asyncId, triggerAsyncId) { const offset = async_hook_fields[kStackLength]; if (offset * 2 >= async_wrap.async_ids_stack.length) return pushAsyncIds_(asyncId, triggerAsyncId); async_wrap.async_ids_stack[offset * 2] = async_id_fields[kExecutionAsyncId]; async_wrap.async_ids_stack[offset * 2 + 1] = async_id_fields[kTriggerAsyncId]; async_hook_fields[kStackLength]++; async_id_fields[kExecutionAsyncId] = asyncId; async_id_fields[kTriggerAsyncId] = triggerAsyncId; } // This is the equivalent of the native pop_async_ids() call. function popAsyncIds(asyncId) { if (async_hook_fields[kStackLength] === 0) return false; const stackLength = async_hook_fields[kStackLength]; if (async_hook_fields[kCheck] > 0 && async_id_fields[kExecutionAsyncId] !== asyncId) { // Do the same thing as the native code (i.e. crash hard). return popAsyncIds_(asyncId); } const offset = stackLength - 1; async_id_fields[kExecutionAsyncId] = async_wrap.async_ids_stack[2 * offset]; async_id_fields[kTriggerAsyncId] = async_wrap.async_ids_stack[2 * offset + 1]; async_hook_fields[kStackLength] = offset; return offset > 0; } function executionAsyncId() { return async_id_fields[kExecutionAsyncId]; } function triggerAsyncId() { return async_id_fields[kTriggerAsyncId]; } module.exports = { executionAsyncId, triggerAsyncId, // Private API getHookArrays, symbols: { async_id_symbol, trigger_async_id_symbol, init_symbol, before_symbol, after_symbol, destroy_symbol, promise_resolve_symbol, owner_symbol }, constants: { kInit, kBefore, kAfter, kDestroy, kTotals, kPromiseResolve }, enableHooks, disableHooks, clearDefaultTriggerAsyncId, clearAsyncIdStack, hasAsyncIdStack, // Internal Embedder API newAsyncId, getOrSetAsyncId, getDefaultTriggerAsyncId, defaultTriggerAsyncIdScope, initHooksExist, afterHooksExist, destroyHooksExist, emitInit: emitInitScript, emitBefore: emitBeforeScript, emitAfter: emitAfterScript, emitDestroy: emitDestroyScript, registerDestroyHook, }; internal/bash_completion'use strict'; const { options, aliases } = require('internal/options'); function print(stream) { const all_opts = [...options.keys(), ...aliases.keys()]; stream.write(`_node_complete() { local cur_word options cur_word="\${COMP_WORDS[COMP_CWORD]}" if [[ "\${cur_word}" == -* ]] ; then COMPREPLY=( $(compgen -W '${all_opts.join(' ')}' -- "\${cur_word}") ) return 0 else COMPREPLY=( $(compgen -f "\${cur_word}") ) return 0 fi } complete -F _node_complete node node_g`); } module.exports = { print }; internal/buffer'use strict'; const binding = process.binding('buffer'); const { ERR_BUFFER_OUT_OF_BOUNDS, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { validateNumber } = require('internal/validators'); const { setupBufferJS } = binding; // Remove from the binding so that function is only available as exported here. // (That is, for internal use only.) delete binding.setupBufferJS; // Temporary buffers to convert numbers. const float32Array = new Float32Array(1); const uInt8Float32Array = new Uint8Array(float32Array.buffer); const float64Array = new Float64Array(1); const uInt8Float64Array = new Uint8Array(float64Array.buffer); // Check endianness. float32Array[0] = -1; // 0xBF800000 // Either it is [0, 0, 128, 191] or [191, 128, 0, 0]. It is not possible to // check this with `os.endianness()` because that is determined at compile time. const bigEndian = uInt8Float32Array[3] === 0; function checkBounds(buf, offset, byteLength) { checkNumberType(offset); if (buf[offset] === undefined || buf[offset + byteLength] === undefined) boundsError(offset, buf.length - (byteLength + 1)); } function checkInt(value, min, max, buf, offset, byteLength) { if (value > max || value < min) { throw new ERR_OUT_OF_RANGE('value', `>= ${min} and <= ${max}`, value); } checkBounds(buf, offset, byteLength); } function checkNumberType(value, type) { validateNumber(value, type || 'offset'); } function boundsError(value, length, type) { if (Math.floor(value) !== value) { checkNumberType(value, type); throw new ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value); } if (length < 0) throw new ERR_BUFFER_OUT_OF_BOUNDS(); throw new ERR_OUT_OF_RANGE(type || 'offset', `>= ${type ? 1 : 0} and <= ${length}`, value); } // Read integers. function readUIntLE(offset, byteLength) { if (byteLength === 6) return readUInt48LE(this, offset); if (byteLength === 5) return readUInt40LE(this, offset); if (byteLength === 3) return readUInt24LE(this, offset); if (byteLength === 4) return this.readUInt32LE(offset); if (byteLength === 2) return this.readUInt16LE(offset); if (byteLength === 1 || byteLength === undefined) return this.readUInt8(offset); boundsError(byteLength, 6, 'byteLength'); } function readUInt48LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 5]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 6); return first + buf[++offset] * 2 ** 8 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 24 + (buf[++offset] + last * 2 ** 8) * 2 ** 32; } function readUInt40LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 4]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 5); return first + buf[++offset] * 2 ** 8 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 24 + last * 2 ** 32; } function readUInt32LE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); return first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24; } function readUInt24LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 2]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 3); return first + buf[++offset] * 2 ** 8 + last * 2 ** 16; } function readUInt16LE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 1]; if (first === undefined || last === undefined) boundsError(offset, this.length - 2); return first + last * 2 ** 8; } function readUInt8(offset = 0) { checkNumberType(offset); const val = this[offset]; if (val === undefined) boundsError(offset, this.length - 1); return val; } function readUIntBE(offset, byteLength) { if (byteLength === 6) return readUInt48BE(this, offset); if (byteLength === 5) return readUInt40BE(this, offset); if (byteLength === 3) return readUInt24BE(this, offset); if (byteLength === 4) return this.readUInt32BE(offset); if (byteLength === 2) return this.readUInt16BE(offset); if (byteLength === 1 || byteLength === undefined) return this.readUInt8(offset); boundsError(byteLength, 6, 'byteLength'); } function readUInt48BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 5]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 6); return (first * 2 ** 8 + buf[++offset]) * 2 ** 32 + buf[++offset] * 2 ** 24 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 8 + last; } function readUInt40BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 4]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 5); return first * 2 ** 32 + buf[++offset] * 2 ** 24 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 8 + last; } function readUInt32BE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); return first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last; } function readUInt24BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 2]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 3); return first * 2 ** 16 + buf[++offset] * 2 ** 8 + last; } function readUInt16BE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 1]; if (first === undefined || last === undefined) boundsError(offset, this.length - 2); return first * 2 ** 8 + last; } function readIntLE(offset, byteLength) { if (byteLength === 6) return readInt48LE(this, offset); if (byteLength === 5) return readInt40LE(this, offset); if (byteLength === 3) return readInt24LE(this, offset); if (byteLength === 4) return this.readInt32LE(offset); if (byteLength === 2) return this.readInt16LE(offset); if (byteLength === 1 || byteLength === undefined) return this.readInt8(offset); boundsError(byteLength, 6, 'byteLength'); } function readInt48LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 5]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 6); const val = buf[offset + 4] + last * 2 ** 8; return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 + first + buf[++offset] * 2 ** 8 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 24; } function readInt40LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 4]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 5); return (last | (last & 2 ** 7) * 0x1fffffe) * 2 ** 32 + first + buf[++offset] * 2 ** 8 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 24; } function readInt32LE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); return first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + (last << 24); // Overflow } function readInt24LE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 2]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 3); const val = first + buf[++offset] * 2 ** 8 + last * 2 ** 16; return val | (val & 2 ** 23) * 0x1fe; } function readInt16LE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 1]; if (first === undefined || last === undefined) boundsError(offset, this.length - 2); const val = first + last * 2 ** 8; return val | (val & 2 ** 15) * 0x1fffe; } function readInt8(offset = 0) { checkNumberType(offset); const val = this[offset]; if (val === undefined) boundsError(offset, this.length - 1); return val | (val & 2 ** 7) * 0x1fffffe; } function readIntBE(offset, byteLength) { if (byteLength === 6) return readInt48BE(this, offset); if (byteLength === 5) return readInt40BE(this, offset); if (byteLength === 3) return readInt24BE(this, offset); if (byteLength === 4) return this.readInt32BE(offset); if (byteLength === 2) return this.readInt16BE(offset); if (byteLength === 1 || byteLength === undefined) return this.readInt8(offset); boundsError(byteLength, 6, 'byteLength'); } function readInt48BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 5]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 6); const val = buf[++offset] + first * 2 ** 8; return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 + buf[++offset] * 2 ** 24 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 8 + last; } function readInt40BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 4]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 5); return (first | (first & 2 ** 7) * 0x1fffffe) * 2 ** 32 + buf[++offset] * 2 ** 24 + buf[++offset] * 2 ** 16 + buf[++offset] * 2 ** 8 + last; } function readInt32BE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); return (first << 24) + // Overflow this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last; } function readInt24BE(buf, offset = 0) { checkNumberType(offset); const first = buf[offset]; const last = buf[offset + 2]; if (first === undefined || last === undefined) boundsError(offset, buf.length - 3); const val = first * 2 ** 16 + buf[++offset] * 2 ** 8 + last; return val | (val & 2 ** 23) * 0x1fe; } function readInt16BE(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 1]; if (first === undefined || last === undefined) boundsError(offset, this.length - 2); const val = first * 2 ** 8 + last; return val | (val & 2 ** 15) * 0x1fffe; } // Read floats function readFloatBackwards(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); uInt8Float32Array[3] = first; uInt8Float32Array[2] = this[++offset]; uInt8Float32Array[1] = this[++offset]; uInt8Float32Array[0] = last; return float32Array[0]; } function readFloatForwards(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 3]; if (first === undefined || last === undefined) boundsError(offset, this.length - 4); uInt8Float32Array[0] = first; uInt8Float32Array[1] = this[++offset]; uInt8Float32Array[2] = this[++offset]; uInt8Float32Array[3] = last; return float32Array[0]; } function readDoubleBackwards(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 7]; if (first === undefined || last === undefined) boundsError(offset, this.length - 8); uInt8Float64Array[7] = first; uInt8Float64Array[6] = this[++offset]; uInt8Float64Array[5] = this[++offset]; uInt8Float64Array[4] = this[++offset]; uInt8Float64Array[3] = this[++offset]; uInt8Float64Array[2] = this[++offset]; uInt8Float64Array[1] = this[++offset]; uInt8Float64Array[0] = last; return float64Array[0]; } function readDoubleForwards(offset = 0) { checkNumberType(offset); const first = this[offset]; const last = this[offset + 7]; if (first === undefined || last === undefined) boundsError(offset, this.length - 8); uInt8Float64Array[0] = first; uInt8Float64Array[1] = this[++offset]; uInt8Float64Array[2] = this[++offset]; uInt8Float64Array[3] = this[++offset]; uInt8Float64Array[4] = this[++offset]; uInt8Float64Array[5] = this[++offset]; uInt8Float64Array[6] = this[++offset]; uInt8Float64Array[7] = last; return float64Array[0]; } // Write integers. function writeUIntLE(value, offset = 0, byteLength) { if (byteLength === 6) return writeU_Int48LE(this, value, offset, 0, 0xffffffffffff); if (byteLength === 5) return writeU_Int40LE(this, value, offset, 0, 0xffffffffff); if (byteLength === 3) return writeU_Int24LE(this, value, offset, 0, 0xffffff); if (byteLength === 4) return writeU_Int32LE(this, value, offset, 0, 0xffffffff); if (byteLength === 2) return writeU_Int16LE(this, value, offset, 0, 0xffff); if (byteLength === 1 || byteLength === undefined) return writeU_Int8(this, value, offset, 0, 0xff); boundsError(byteLength, 6, 'byteLength'); } function writeU_Int48LE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 5); const newVal = Math.floor(value * 2 ** -32); buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; buf[offset++] = newVal; buf[offset++] = (newVal >>> 8); return offset; } function writeU_Int40LE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 4); const newVal = value; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; buf[offset++] = Math.floor(newVal * 2 ** -32); return offset; } function writeU_Int32LE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 3); buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; return offset; } function writeUInt32LE(value, offset = 0) { return writeU_Int32LE(this, value, offset, 0, 0xffffffff); } function writeU_Int24LE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 2); buf[offset++] = value; value = value >>> 8; buf[offset++] = value; value = value >>> 8; buf[offset++] = value; return offset; } function writeU_Int16LE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 1); buf[offset++] = value; buf[offset++] = (value >>> 8); return offset; } function writeUInt16LE(value, offset = 0) { return writeU_Int16LE(this, value, offset, 0, 0xffff); } function writeU_Int8(buf, value, offset, min, max) { value = +value; // `checkInt()` can not be used here because it checks two entries. checkNumberType(offset); if (value > max || value < min) { throw new ERR_OUT_OF_RANGE('value', `>= ${min} and <= ${max}`, value); } if (buf[offset] === undefined) boundsError(offset, buf.length - 1); buf[offset] = value; return offset + 1; } function writeUInt8(value, offset = 0) { return writeU_Int8(this, value, offset, 0, 0xff); } function writeUIntBE(value, offset = 0, byteLength) { if (byteLength === 6) return writeU_Int48BE(this, value, offset, 0, 0xffffffffffffff); if (byteLength === 5) return writeU_Int40BE(this, value, offset, 0, 0xffffffffff); if (byteLength === 3) return writeU_Int24BE(this, value, offset, 0, 0xffffff); if (byteLength === 4) return writeU_Int32BE(this, value, offset, 0, 0xffffffff); if (byteLength === 2) return writeU_Int16BE(this, value, offset, 0, 0xffff); if (byteLength === 1 || byteLength === undefined) return writeU_Int8(this, value, offset, 0, 0xff); boundsError(byteLength, 6, 'byteLength'); } function writeU_Int48BE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 5); const newVal = Math.floor(value * 2 ** -32); buf[offset++] = (newVal >>> 8); buf[offset++] = newVal; buf[offset + 3] = value; value = value >>> 8; buf[offset + 2] = value; value = value >>> 8; buf[offset + 1] = value; value = value >>> 8; buf[offset] = value; return offset + 4; } function writeU_Int40BE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 4); buf[offset++] = Math.floor(value * 2 ** -32); buf[offset + 3] = value; value = value >>> 8; buf[offset + 2] = value; value = value >>> 8; buf[offset + 1] = value; value = value >>> 8; buf[offset] = value; return offset + 4; } function writeU_Int32BE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 3); buf[offset + 3] = value; value = value >>> 8; buf[offset + 2] = value; value = value >>> 8; buf[offset + 1] = value; value = value >>> 8; buf[offset] = value; return offset + 4; } function writeUInt32BE(value, offset = 0) { return writeU_Int32BE(this, value, offset, 0, 0xffffffff); } function writeU_Int24BE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 2); buf[offset + 2] = value; value = value >>> 8; buf[offset + 1] = value; value = value >>> 8; buf[offset] = value; return offset + 3; } function writeU_Int16BE(buf, value, offset, min, max) { value = +value; checkInt(value, min, max, buf, offset, 1); buf[offset++] = (value >>> 8); buf[offset++] = value; return offset; } function writeUInt16BE(value, offset = 0) { return writeU_Int16BE(this, value, offset, 0, 0xffff); } function writeIntLE(value, offset = 0, byteLength) { if (byteLength === 6) return writeU_Int48LE(this, value, offset, -0x800000000000, 0x7fffffffffff); if (byteLength === 5) return writeU_Int40LE(this, value, offset, -0x8000000000, 0x7fffffffff); if (byteLength === 3) return writeU_Int24LE(this, value, offset, -0x800000, 0x7fffff); if (byteLength === 4) return writeU_Int32LE(this, value, offset, -0x80000000, 0x7fffffff); if (byteLength === 2) return writeU_Int16LE(this, value, offset, -0x8000, 0x7fff); if (byteLength === 1 || byteLength === undefined) return writeU_Int8(this, value, offset, -0x80, 0x7f); boundsError(byteLength, 6, 'byteLength'); } function writeInt32LE(value, offset = 0) { return writeU_Int32LE(this, value, offset, -0x80000000, 0x7fffffff); } function writeInt16LE(value, offset = 0) { return writeU_Int16LE(this, value, offset, -0x8000, 0x7fff); } function writeInt8(value, offset = 0) { return writeU_Int8(this, value, offset, -0x80, 0x7f); } function writeIntBE(value, offset = 0, byteLength) { if (byteLength === 6) return writeU_Int48BE(this, value, offset, -0x800000000000, 0x7fffffffffff); if (byteLength === 5) return writeU_Int40BE(this, value, offset, -0x8000000000, 0x7fffffffff); if (byteLength === 3) return writeU_Int24BE(this, value, offset, -0x800000, 0x7fffff); if (byteLength === 4) return writeU_Int32BE(this, value, offset, -0x80000000, 0x7fffffff); if (byteLength === 2) return writeU_Int16BE(this, value, offset, -0x8000, 0x7fff); if (byteLength === 1 || byteLength === undefined) return writeU_Int8(this, value, offset, -0x80, 0x7f); boundsError(byteLength, 6, 'byteLength'); } function writeInt32BE(value, offset = 0) { return writeU_Int32BE(this, value, offset, -0x80000000, 0x7fffffff); } function writeInt16BE(value, offset = 0) { return writeU_Int16BE(this, value, offset, -0x8000, 0x7fff); } // Write floats. function writeDoubleForwards(val, offset = 0) { val = +val; checkBounds(this, offset, 7); float64Array[0] = val; this[offset++] = uInt8Float64Array[0]; this[offset++] = uInt8Float64Array[1]; this[offset++] = uInt8Float64Array[2]; this[offset++] = uInt8Float64Array[3]; this[offset++] = uInt8Float64Array[4]; this[offset++] = uInt8Float64Array[5]; this[offset++] = uInt8Float64Array[6]; this[offset++] = uInt8Float64Array[7]; return offset; } function writeDoubleBackwards(val, offset = 0) { val = +val; checkBounds(this, offset, 7); float64Array[0] = val; this[offset++] = uInt8Float64Array[7]; this[offset++] = uInt8Float64Array[6]; this[offset++] = uInt8Float64Array[5]; this[offset++] = uInt8Float64Array[4]; this[offset++] = uInt8Float64Array[3]; this[offset++] = uInt8Float64Array[2]; this[offset++] = uInt8Float64Array[1]; this[offset++] = uInt8Float64Array[0]; return offset; } function writeFloatForwards(val, offset = 0) { val = +val; checkBounds(this, offset, 3); float32Array[0] = val; this[offset++] = uInt8Float32Array[0]; this[offset++] = uInt8Float32Array[1]; this[offset++] = uInt8Float32Array[2]; this[offset++] = uInt8Float32Array[3]; return offset; } function writeFloatBackwards(val, offset = 0) { val = +val; checkBounds(this, offset, 3); float32Array[0] = val; this[offset++] = uInt8Float32Array[3]; this[offset++] = uInt8Float32Array[2]; this[offset++] = uInt8Float32Array[1]; this[offset++] = uInt8Float32Array[0]; return offset; } // FastBuffer wil be inserted here by lib/buffer.js module.exports = { setupBufferJS, // Container to export all read write functions. readWrites: { readUIntLE, readUInt32LE, readUInt16LE, readUInt8, readUIntBE, readUInt32BE, readUInt16BE, readIntLE, readInt32LE, readInt16LE, readInt8, readIntBE, readInt32BE, readInt16BE, writeUIntLE, writeUInt32LE, writeUInt16LE, writeUInt8, writeUIntBE, writeUInt32BE, writeUInt16BE, writeIntLE, writeInt32LE, writeInt16LE, writeInt8, writeIntBE, writeInt32BE, writeInt16BE, readFloatLE: bigEndian ? readFloatBackwards : readFloatForwards, readFloatBE: bigEndian ? readFloatForwards : readFloatBackwards, readDoubleLE: bigEndian ? readDoubleBackwards : readDoubleForwards, readDoubleBE: bigEndian ? readDoubleForwards : readDoubleBackwards, writeFloatLE: bigEndian ? writeFloatBackwards : writeFloatForwards, writeFloatBE: bigEndian ? writeFloatForwards : writeFloatBackwards, writeDoubleLE: bigEndian ? writeDoubleBackwards : writeDoubleForwards, writeDoubleBE: bigEndian ? writeDoubleForwards : writeDoubleBackwards } }; internal/cli_table'use strict'; const { Buffer } = require('buffer'); const { removeColors } = require('internal/util'); const HasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); const tableChars = { /* eslint-disable node-core/non-ascii-character */ middleMiddle: '%', rowMiddle: '<%', topRight: '%', topLeft: ' %', leftMiddle: '%', topMiddle: ',%', bottomRight: '%', bottomLeft: '%', bottomMiddle: '4%', rightMiddle: '$%', left: '% ', right: ' %', middle: ' % ', /* eslint-enable node-core/non-ascii-character */ }; const countSymbols = (string) => { const normalized = removeColors(string).normalize('NFC'); return Buffer.from(normalized, 'UCS-2').byteLength / 2; }; const renderRow = (row, columnWidths) => { let out = tableChars.left; for (var i = 0; i < row.length; i++) { const cell = row[i]; const len = countSymbols(cell); const needed = (columnWidths[i] - len) / 2; // round(needed) + ceil(needed) will always add up to the amount // of spaces we need while also left justifying the output. out += `${' '.repeat(needed)}${cell}${' '.repeat(Math.ceil(needed))}`; if (i !== row.length - 1) out += tableChars.middle; } out += tableChars.right; return out; }; const table = (head, columns) => { const rows = []; const columnWidths = head.map((h) => countSymbols(h)); const longestColumn = columns.reduce((n, a) => Math.max(n, a.length), 0); for (var i = 0; i < head.length; i++) { const column = columns[i]; for (var j = 0; j < longestColumn; j++) { if (rows[j] === undefined) rows[j] = []; const value = rows[j][i] = HasOwnProperty(column, j) ? column[j] : ''; const width = columnWidths[i] || 0; const counted = countSymbols(value); columnWidths[i] = Math.max(width, counted); } } const divider = columnWidths.map((i) => tableChars.middleMiddle.repeat(i + 2)); let result = `${tableChars.topLeft}${divider.join(tableChars.topMiddle)}` + `${tableChars.topRight}\n${renderRow(head, columnWidths)}\n` + `${tableChars.leftMiddle}${divider.join(tableChars.rowMiddle)}` + `${tableChars.rightMiddle}\n`; for (const row of rows) result += `${renderRow(row, columnWidths)}\n`; result += `${tableChars.bottomLeft}${divider.join(tableChars.bottomMiddle)}` + tableChars.bottomRight; return result; }; module.exports = table; internal/child_process'use strict'; const { errnoException, codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_HANDLE_TYPE, ERR_INVALID_OPT_VALUE, ERR_INVALID_SYNC_FORK_INPUT, ERR_IPC_CHANNEL_CLOSED, ERR_IPC_DISCONNECTED, ERR_IPC_ONE_PIPE, ERR_IPC_SYNC_FORK, ERR_MISSING_ARGS } } = require('internal/errors'); const { validateString } = require('internal/validators'); const EventEmitter = require('events'); const net = require('net'); const dgram = require('dgram'); const util = require('util'); const assert = require('assert'); const { Process } = internalBinding('process_wrap'); const { WriteWrap } = internalBinding('stream_wrap'); const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap'); const { TCP } = internalBinding('tcp_wrap'); const { TTY } = internalBinding('tty_wrap'); const { UDP } = internalBinding('udp_wrap'); const SocketList = require('internal/socket_list'); const { owner_symbol } = require('internal/async_hooks').symbols; const { convertToValidSignal } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); const spawn_sync = internalBinding('spawn_sync'); const { kStateSymbol } = require('internal/dgram'); const { UV_EACCES, UV_EAGAIN, UV_EINVAL, UV_EMFILE, UV_ENFILE, UV_ENOENT, UV_ENOSYS, UV_ESRCH } = process.binding('uv'); const { SocketListSend, SocketListReceive } = SocketList; // Lazy loaded for startup performance. let StringDecoder; // Lazy loaded for startup performance and to allow monkey patching of // internalBinding('http_parser').HTTPParser. let freeParser; let HTTPParser; const MAX_HANDLE_RETRANSMISSIONS = 3; // this object contain function to convert TCP objects to native handle objects // and back again. const handleConversion = { 'net.Native': { simultaneousAccepts: true, send: function(message, handle, options) { return handle; }, got: function(message, handle, emit) { emit(handle); } }, 'net.Server': { simultaneousAccepts: true, send: function(message, server, options) { return server._handle; }, got: function(message, handle, emit) { var server = new net.Server(); server.listen(handle, function() { emit(server); }); } }, 'net.Socket': { send: function(message, socket, options) { if (!socket._handle) return; // if the socket was created by net.Server if (socket.server) { // the worker should keep track of the socket message.key = socket.server._connectionKey; var firstTime = !this.channel.sockets.send[message.key]; var socketList = getSocketList('send', this, message.key); // the server should no longer expose a .connection property // and when asked to close it should query the socket status from // the workers if (firstTime) socket.server._setupWorker(socketList); // Act like socket is detached if (!options.keepOpen) socket.server._connections--; } var handle = socket._handle; // remove handle from socket object, it will be closed when the socket // will be sent if (!options.keepOpen) { handle.onread = nop; socket._handle = null; socket.setTimeout(0); if (freeParser === undefined) freeParser = require('_http_common').freeParser; if (HTTPParser === undefined) HTTPParser = internalBinding('http_parser').HTTPParser; // In case of an HTTP connection socket, release the associated // resources if (socket.parser && socket.parser instanceof HTTPParser) { freeParser(socket.parser, null, socket); if (socket._httpMessage) socket._httpMessage.detachSocket(socket); } } return handle; }, postSend: function(message, handle, options, callback, target) { // Store the handle after successfully sending it, so it can be closed // when the NODE_HANDLE_ACK is received. If the handle could not be sent, // just close it. if (handle && !options.keepOpen) { if (target) { // There can only be one _pendingMessage as passing handles are // processed one at a time: handles are stored in _handleQueue while // waiting for the NODE_HANDLE_ACK of the current passing handle. assert(!target._pendingMessage); target._pendingMessage = { callback, message, handle, options, retransmissions: 0 }; } else { handle.close(); } } }, got: function(message, handle, emit) { var socket = new net.Socket({ handle: handle, readable: true, writable: true }); // if the socket was created by net.Server we will track the socket if (message.key) { // add socket to connections list var socketList = getSocketList('got', this, message.key); socketList.add({ socket: socket }); } emit(socket); } }, 'dgram.Native': { simultaneousAccepts: false, send: function(message, handle, options) { return handle; }, got: function(message, handle, emit) { emit(handle); } }, 'dgram.Socket': { simultaneousAccepts: false, send: function(message, socket, options) { message.dgramType = socket.type; return socket[kStateSymbol].handle; }, got: function(message, handle, emit) { var socket = new dgram.Socket(message.dgramType); socket.bind(handle, function() { emit(socket); }); } } }; function ChildProcess() { EventEmitter.call(this); this._closesNeeded = 1; this._closesGot = 0; this.connected = false; this.signalCode = null; this.exitCode = null; this.killed = false; this.spawnfile = null; this._handle = new Process(); this._handle[owner_symbol] = this; this._handle.onexit = (exitCode, signalCode) => { if (signalCode) { this.signalCode = signalCode; } else { this.exitCode = exitCode; } if (this.stdin) { this.stdin.destroy(); } this._handle.close(); this._handle = null; if (exitCode < 0) { var syscall = this.spawnfile ? 'spawn ' + this.spawnfile : 'spawn'; const err = errnoException(exitCode, syscall); if (this.spawnfile) err.path = this.spawnfile; err.spawnargs = this.spawnargs.slice(1); this.emit('error', err); } else { this.emit('exit', this.exitCode, this.signalCode); } // if any of the stdio streams have not been touched, // then pull all the data through so that it can get the // eof and emit a 'close' event. // Do it on nextTick so that the user has one last chance // to consume the output, if for example they only want to // start reading the data once the process exits. process.nextTick(flushStdio, this); maybeClose(this); }; } util.inherits(ChildProcess, EventEmitter); function flushStdio(subprocess) { const stdio = subprocess.stdio; if (stdio == null) return; for (var i = 0; i < stdio.length; i++) { const stream = stdio[i]; if (!stream || !stream.readable || stream._readableState.readableListening) continue; stream.resume(); } } function createSocket(pipe, readable) { return net.Socket({ handle: pipe, readable, writable: !readable }); } function getHandleWrapType(stream) { if (stream instanceof Pipe) return 'pipe'; if (stream instanceof TTY) return 'tty'; if (stream instanceof TCP) return 'tcp'; if (stream instanceof UDP) return 'udp'; return false; } function closePendingHandle(target) { target._pendingMessage.handle.close(); target._pendingMessage = null; } ChildProcess.prototype.spawn = function(options) { var ipc; var ipcFd; var i; if (options === null || typeof options !== 'object') { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } // If no `stdio` option was given - use default var stdio = options.stdio || 'pipe'; stdio = _validateStdio(stdio, false); ipc = stdio.ipc; ipcFd = stdio.ipcFd; stdio = options.stdio = stdio.stdio; if (ipc !== undefined) { // Let child process know about opened IPC channel if (options.envPairs === undefined) options.envPairs = []; else if (!Array.isArray(options.envPairs)) { throw new ERR_INVALID_ARG_TYPE('options.envPairs', 'Array', options.envPairs); } options.envPairs.push('NODE_CHANNEL_FD=' + ipcFd); } validateString(options.file, 'options.file'); this.spawnfile = options.file; if (Array.isArray(options.args)) this.spawnargs = options.args; else if (options.args === undefined) this.spawnargs = []; else throw new ERR_INVALID_ARG_TYPE('options.args', 'Array', options.args); var err = this._handle.spawn(options); // Run-time errors should emit an error, not throw an exception. if (err === UV_EACCES || err === UV_EAGAIN || err === UV_EMFILE || err === UV_ENFILE || err === UV_ENOENT) { process.nextTick(onErrorNT, this, err); // There is no point in continuing when we've hit EMFILE or ENFILE // because we won't be able to set up the stdio file descriptors. // It's kind of silly that the de facto spec for ENOENT (the test suite) // mandates that stdio _is_ set up, even if there is no process on the // receiving end, but it is what it is. if (err !== UV_ENOENT) return err; } else if (err) { // Close all opened fds on error for (i = 0; i < stdio.length; i++) { const stream = stdio[i]; if (stream.type === 'pipe') { stream.handle.close(); } } this._handle.close(); this._handle = null; throw errnoException(err, 'spawn'); } this.pid = this._handle.pid; for (i = 0; i < stdio.length; i++) { const stream = stdio[i]; if (stream.type === 'ignore') continue; if (stream.ipc) { this._closesNeeded++; continue; } if (stream.handle) { // when i === 0 - we're dealing with stdin // (which is the only one writable pipe) stream.socket = createSocket(this.pid !== 0 ? stream.handle : null, i > 0); if (i > 0 && this.pid !== 0) { this._closesNeeded++; stream.socket.on('close', () => { maybeClose(this); }); } } } this.stdin = stdio.length >= 1 && stdio[0].socket !== undefined ? stdio[0].socket : null; this.stdout = stdio.length >= 2 && stdio[1].socket !== undefined ? stdio[1].socket : null; this.stderr = stdio.length >= 3 && stdio[2].socket !== undefined ? stdio[2].socket : null; this.stdio = []; for (i = 0; i < stdio.length; i++) this.stdio.push(stdio[i].socket === undefined ? null : stdio[i].socket); // Add .send() method and start listening for IPC data if (ipc !== undefined) setupChannel(this, ipc); return err; }; function onErrorNT(self, err) { self._handle.onexit(err); } ChildProcess.prototype.kill = function(sig) { const signal = sig === 0 ? sig : convertToValidSignal(sig === undefined ? 'SIGTERM' : sig); if (this._handle) { var err = this._handle.kill(signal); if (err === 0) { /* Success. */ this.killed = true; return true; } if (err === UV_ESRCH) { /* Already dead. */ } else if (err === UV_EINVAL || err === UV_ENOSYS) { /* The underlying platform doesn't support this signal. */ throw errnoException(err, 'kill'); } else { /* Other error, almost certainly EPERM. */ this.emit('error', errnoException(err, 'kill')); } } /* Kill didn't succeed. */ return false; }; ChildProcess.prototype.ref = function() { if (this._handle) this._handle.ref(); }; ChildProcess.prototype.unref = function() { if (this._handle) this._handle.unref(); }; class Control extends EventEmitter { constructor(channel) { super(); this.channel = channel; this.refs = 0; } ref() { if (++this.refs === 1) { this.channel.ref(); } } unref() { if (--this.refs === 0) { this.channel.unref(); this.emit('unref'); } } } function setupChannel(target, channel) { target.channel = channel; // _channel can be deprecated in version 8 Object.defineProperty(target, '_channel', { get() { return target.channel; }, set(val) { target.channel = val; }, enumerable: true }); target._handleQueue = null; target._pendingMessage = null; const control = new Control(channel); if (StringDecoder === undefined) StringDecoder = require('string_decoder').StringDecoder; var decoder = new StringDecoder('utf8'); var jsonBuffer = ''; var pendingHandle = null; channel.buffering = false; channel.pendingHandle = null; channel.onread = function(nread, pool) { const recvHandle = channel.pendingHandle; channel.pendingHandle = null; // TODO(bnoordhuis) Check that nread > 0. if (pool) { if (recvHandle) pendingHandle = recvHandle; // Linebreak is used as a message end sign var chunks = decoder.write(pool).split('\n'); var numCompleteChunks = chunks.length - 1; // Last line does not have trailing linebreak var incompleteChunk = chunks[numCompleteChunks]; if (numCompleteChunks === 0) { jsonBuffer += incompleteChunk; this.buffering = jsonBuffer.length !== 0; return; } chunks[0] = jsonBuffer + chunks[0]; for (var i = 0; i < numCompleteChunks; i++) { var message = JSON.parse(chunks[i]); // There will be at most one NODE_HANDLE message in every chunk we // read because SCM_RIGHTS messages don't get coalesced. Make sure // that we deliver the handle with the right message however. if (isInternal(message)) { if (message.cmd === 'NODE_HANDLE') { handleMessage(message, pendingHandle, true); pendingHandle = null; } else { handleMessage(message, undefined, true); } } else { handleMessage(message, undefined, false); } } jsonBuffer = incompleteChunk; this.buffering = jsonBuffer.length !== 0; } else { this.buffering = false; target.disconnect(); channel.onread = nop; channel.close(); target.channel = null; maybeClose(target); } }; // object where socket lists will live channel.sockets = { got: {}, send: {} }; // handlers will go through this target.on('internalMessage', function(message, handle) { // Once acknowledged - continue sending handles. if (message.cmd === 'NODE_HANDLE_ACK' || message.cmd === 'NODE_HANDLE_NACK') { if (target._pendingMessage) { if (message.cmd === 'NODE_HANDLE_ACK') { closePendingHandle(target); } else if (target._pendingMessage.retransmissions++ === MAX_HANDLE_RETRANSMISSIONS) { closePendingHandle(target); process.emitWarning('Handle did not reach the receiving process ' + 'correctly', 'SentHandleNotReceivedWarning'); } } assert(Array.isArray(target._handleQueue)); var queue = target._handleQueue; target._handleQueue = null; if (target._pendingMessage) { target._send(target._pendingMessage.message, target._pendingMessage.handle, target._pendingMessage.options, target._pendingMessage.callback); } for (var i = 0; i < queue.length; i++) { var args = queue[i]; target._send(args.message, args.handle, args.options, args.callback); } // Process a pending disconnect (if any). if (!target.connected && target.channel && !target._handleQueue) target._disconnect(); return; } if (message.cmd !== 'NODE_HANDLE') return; // It is possible that the handle is not received because of some error on // ancillary data reception such as MSG_CTRUNC. In this case, report the // sender about it by sending a NODE_HANDLE_NACK message. if (!handle) return target._send({ cmd: 'NODE_HANDLE_NACK' }, null, true); // Acknowledge handle receival. Don't emit error events (for example if // the other side has disconnected) because this call to send() is not // initiated by the user and it shouldn't be fatal to be unable to ACK // a message. target._send({ cmd: 'NODE_HANDLE_ACK' }, null, true); var obj = handleConversion[message.type]; // Update simultaneous accepts on Windows if (process.platform === 'win32') { handle._simultaneousAccepts = false; net._setSimultaneousAccepts(handle); } // Convert handle object obj.got.call(this, message, handle, function(handle) { handleMessage(message.msg, handle, isInternal(message.msg)); }); }); target.send = function(message, handle, options, callback) { if (typeof handle === 'function') { callback = handle; handle = undefined; options = undefined; } else if (typeof options === 'function') { callback = options; options = undefined; } else if (options !== undefined && (options === null || typeof options !== 'object')) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } options = Object.assign({ swallowErrors: false }, options); if (this.connected) { return this._send(message, handle, options, callback); } const ex = new ERR_IPC_CHANNEL_CLOSED(); if (typeof callback === 'function') { process.nextTick(callback, ex); } else { process.nextTick(() => this.emit('error', ex)); } return false; }; target._send = function(message, handle, options, callback) { assert(this.connected || this.channel); if (message === undefined) throw new ERR_MISSING_ARGS('message'); // Support legacy function signature if (typeof options === 'boolean') { options = { swallowErrors: options }; } // package messages with a handle object if (handle) { // this message will be handled by an internalMessage event handler message = { cmd: 'NODE_HANDLE', type: null, msg: message }; if (handle instanceof net.Socket) { message.type = 'net.Socket'; } else if (handle instanceof net.Server) { message.type = 'net.Server'; } else if (handle instanceof TCP || handle instanceof Pipe) { message.type = 'net.Native'; } else if (handle instanceof dgram.Socket) { message.type = 'dgram.Socket'; } else if (handle instanceof UDP) { message.type = 'dgram.Native'; } else { throw new ERR_INVALID_HANDLE_TYPE(); } // Queue-up message and handle if we haven't received ACK yet. if (this._handleQueue) { this._handleQueue.push({ callback: callback, handle: handle, options: options, message: message.msg, }); return this._handleQueue.length === 1; } var obj = handleConversion[message.type]; // convert TCP object to native handle object handle = handleConversion[message.type].send.call(target, message, handle, options); // If handle was sent twice, or it is impossible to get native handle // out of it - just send a text without the handle. if (!handle) message = message.msg; // Update simultaneous accepts on Windows if (obj.simultaneousAccepts) { net._setSimultaneousAccepts(handle); } } else if (this._handleQueue && !(message && (message.cmd === 'NODE_HANDLE_ACK' || message.cmd === 'NODE_HANDLE_NACK'))) { // Queue request anyway to avoid out-of-order messages. this._handleQueue.push({ callback: callback, handle: null, options: options, message: message, }); return this._handleQueue.length === 1; } var req = new WriteWrap(); req.async = false; var string = JSON.stringify(message) + '\n'; var err = channel.writeUtf8String(req, string, handle); if (err === 0) { if (handle) { if (!this._handleQueue) this._handleQueue = []; if (obj && obj.postSend) obj.postSend(message, handle, options, callback, target); } if (req.async) { req.oncomplete = function() { control.unref(); if (typeof callback === 'function') callback(null); }; control.ref(); } else if (typeof callback === 'function') { process.nextTick(callback, null); } } else { // Cleanup handle on error if (obj && obj.postSend) obj.postSend(message, handle, options, callback); if (!options.swallowErrors) { const ex = errnoException(err, 'write'); if (typeof callback === 'function') { process.nextTick(callback, ex); } else { process.nextTick(() => this.emit('error', ex)); } } } /* If the master is > 2 read() calls behind, please stop sending. */ return channel.writeQueueSize < (65536 * 2); }; // connected will be set to false immediately when a disconnect() is // requested, even though the channel might still be alive internally to // process queued messages. The three states are distinguished as follows: // - disconnect() never requested: channel is not null and connected // is true // - disconnect() requested, messages in the queue: channel is not null // and connected is false // - disconnect() requested, channel actually disconnected: channel is // null and connected is false target.connected = true; target.disconnect = function() { if (!this.connected) { this.emit('error', new ERR_IPC_DISCONNECTED()); return; } // Do not allow any new messages to be written. this.connected = false; // If there are no queued messages, disconnect immediately. Otherwise, // postpone the disconnect so that it happens internally after the // queue is flushed. if (!this._handleQueue) this._disconnect(); }; target._disconnect = function() { assert(this.channel); // This marks the fact that the channel is actually disconnected. this.channel = null; if (this._pendingMessage) closePendingHandle(this); var fired = false; function finish() { if (fired) return; fired = true; channel.close(); target.emit('disconnect'); } // If a message is being read, then wait for it to complete. if (channel.buffering) { this.once('message', finish); this.once('internalMessage', finish); return; } process.nextTick(finish); }; function emit(event, message, handle) { target.emit(event, message, handle); } function handleMessage(message, handle, internal) { if (!target.channel) return; var eventName = (internal ? 'internalMessage' : 'message'); process.nextTick(emit, eventName, message, handle); } channel.readStart(); return control; } const INTERNAL_PREFIX = 'NODE_'; function isInternal(message) { return (message !== null && typeof message === 'object' && typeof message.cmd === 'string' && message.cmd.length > INTERNAL_PREFIX.length && message.cmd.slice(0, INTERNAL_PREFIX.length) === INTERNAL_PREFIX); } function nop() { } function _validateStdio(stdio, sync) { var ipc; var ipcFd; // Replace shortcut with an array if (typeof stdio === 'string') { switch (stdio) { case 'ignore': stdio = ['ignore', 'ignore', 'ignore']; break; case 'pipe': stdio = ['pipe', 'pipe', 'pipe']; break; case 'inherit': stdio = [0, 1, 2]; break; default: throw new ERR_INVALID_OPT_VALUE('stdio', stdio); } } else if (!Array.isArray(stdio)) { throw new ERR_INVALID_OPT_VALUE('stdio', util.inspect(stdio)); } // At least 3 stdio will be created // Don't concat() a new Array() because it would be sparse, and // stdio.reduce() would skip the sparse elements of stdio. // See http://stackoverflow.com/a/5501711/3561 while (stdio.length < 3) stdio.push(undefined); // Translate stdio into C++-readable form // (i.e. PipeWraps or fds) stdio = stdio.reduce(function(acc, stdio, i) { function cleanup() { for (var i = 0; i < acc.length; i++) { if ((acc[i].type === 'pipe' || acc[i].type === 'ipc') && acc[i].handle) acc[i].handle.close(); } } // Defaults if (stdio == null) { stdio = i < 3 ? 'pipe' : 'ignore'; } if (stdio === 'ignore') { acc.push({ type: 'ignore' }); } else if (stdio === 'pipe' || typeof stdio === 'number' && stdio < 0) { var a = { type: 'pipe', readable: i === 0, writable: i !== 0 }; if (!sync) a.handle = new Pipe(PipeConstants.SOCKET); acc.push(a); } else if (stdio === 'ipc') { if (sync || ipc !== undefined) { // Cleanup previously created pipes cleanup(); if (!sync) throw new ERR_IPC_ONE_PIPE(); else throw new ERR_IPC_SYNC_FORK(); } ipc = new Pipe(PipeConstants.IPC); ipcFd = i; acc.push({ type: 'pipe', handle: ipc, ipc: true }); } else if (stdio === 'inherit') { acc.push({ type: 'inherit', fd: i }); } else if (typeof stdio === 'number' || typeof stdio.fd === 'number') { acc.push({ type: 'fd', fd: typeof stdio === 'number' ? stdio : stdio.fd }); } else if (getHandleWrapType(stdio) || getHandleWrapType(stdio.handle) || getHandleWrapType(stdio._handle)) { var handle = getHandleWrapType(stdio) ? stdio : getHandleWrapType(stdio.handle) ? stdio.handle : stdio._handle; acc.push({ type: 'wrap', wrapType: getHandleWrapType(handle), handle: handle }); } else if (isArrayBufferView(stdio) || typeof stdio === 'string') { if (!sync) { cleanup(); throw new ERR_INVALID_SYNC_FORK_INPUT(util.inspect(stdio)); } } else { // Cleanup cleanup(); throw new ERR_INVALID_OPT_VALUE('stdio', util.inspect(stdio)); } return acc; }, []); return { stdio, ipc, ipcFd }; } function getSocketList(type, worker, key) { var sockets = worker.channel.sockets[type]; var socketList = sockets[key]; if (!socketList) { var Construct = type === 'send' ? SocketListSend : SocketListReceive; socketList = sockets[key] = new Construct(worker, key); } return socketList; } function maybeClose(subprocess) { subprocess._closesGot++; if (subprocess._closesGot === subprocess._closesNeeded) { subprocess.emit('close', subprocess.exitCode, subprocess.signalCode); } } function spawnSync(opts) { var options = opts.options; var result = spawn_sync.spawn(options); if (result.output && options.encoding && options.encoding !== 'buffer') { for (var i = 0; i < result.output.length; i++) { if (!result.output[i]) continue; result.output[i] = result.output[i].toString(options.encoding); } } result.stdout = result.output && result.output[1]; result.stderr = result.output && result.output[2]; if (result.error) { result.error = errnoException(result.error, 'spawnSync ' + opts.file); result.error.path = opts.file; result.error.spawnargs = opts.args.slice(1); } return result; } module.exports = { ChildProcess, setupChannel, _validateStdio, spawnSync }; internal/cluster/child'use strict'; const assert = require('assert'); const util = require('util'); const path = require('path'); const EventEmitter = require('events'); const { owner_symbol } = require('internal/async_hooks').symbols; const Worker = require('internal/cluster/worker'); const { internal, sendHelper } = require('internal/cluster/utils'); const cluster = new EventEmitter(); const handles = new Map(); const indexes = new Map(); const noop = () => {}; module.exports = cluster; cluster.isWorker = true; cluster.isMaster = false; cluster.worker = null; cluster.Worker = Worker; cluster._setupWorker = function() { const worker = new Worker({ id: +process.env.NODE_UNIQUE_ID | 0, process: process, state: 'online' }); cluster.worker = worker; process.once('disconnect', () => { worker.emit('disconnect'); if (!worker.exitedAfterDisconnect) { // Unexpected disconnect, master exited, or some such nastiness, so // worker exits immediately. process.exit(0); } }); process.on('internalMessage', internal(worker, onmessage)); send({ act: 'online' }); function onmessage(message, handle) { if (message.act === 'newconn') onconnection(message, handle); else if (message.act === 'disconnect') _disconnect.call(worker, true); } }; // obj is a net#Server or a dgram#Socket object. cluster._getServer = function(obj, options, cb) { let address = options.address; // Resolve unix socket paths to absolute paths if (options.port < 0 && typeof address === 'string' && process.platform !== 'win32') address = path.resolve(address); const indexesKey = [address, options.port, options.addressType, options.fd ].join(':'); let index = indexes.get(indexesKey); if (index === undefined) index = 0; else index++; indexes.set(indexesKey, index); const message = util._extend({ act: 'queryServer', index, data: null }, options); message.address = address; // Set custom data on handle (i.e. tls tickets key) if (obj._getServerData) message.data = obj._getServerData(); send(message, (reply, handle) => { if (typeof obj._setServerData === 'function') obj._setServerData(reply.data); if (handle) shared(reply, handle, indexesKey, cb); // Shared listen socket. else rr(reply, indexesKey, cb); // Round-robin. }); obj.once('listening', () => { cluster.worker.state = 'listening'; const address = obj.address(); message.act = 'listening'; message.port = address && address.port || options.port; send(message); }); }; // Shared listen socket. function shared(message, handle, indexesKey, cb) { const key = message.key; // Monkey-patch the close() method so we can keep track of when it's // closed. Avoids resource leaks when the handle is short-lived. const close = handle.close; handle.close = function() { send({ act: 'close', key }); handles.delete(key); indexes.delete(indexesKey); return close.apply(this, arguments); }.bind(handle); assert(handles.has(key) === false); handles.set(key, handle); cb(message.errno, handle); } // Round-robin. Master distributes handles across workers. function rr(message, indexesKey, cb) { if (message.errno) return cb(message.errno, null); var key = message.key; function listen(backlog) { // TODO(bnoordhuis) Send a message to the master that tells it to // update the backlog size. The actual backlog should probably be // the largest requested size by any worker. return 0; } function close() { // lib/net.js treats server._handle.close() as effectively synchronous. // That means there is a time window between the call to close() and // the ack by the master process in which we can still receive handles. // onconnection() below handles that by sending those handles back to // the master. if (key === undefined) return; send({ act: 'close', key }); handles.delete(key); indexes.delete(indexesKey); key = undefined; } function getsockname(out) { if (key) util._extend(out, message.sockname); return 0; } // Faux handle. Mimics a TCPWrap with just enough fidelity to get away // with it. Fools net.Server into thinking that it's backed by a real // handle. Use a noop function for ref() and unref() because the control // channel is going to keep the worker alive anyway. const handle = { close, listen, ref: noop, unref: noop }; if (message.sockname) { handle.getsockname = getsockname; // TCP handles only. } assert(handles.has(key) === false); handles.set(key, handle); cb(0, handle); } // Round-robin connection. function onconnection(message, handle) { const key = message.key; const server = handles.get(key); const accepted = server !== undefined; send({ ack: message.seq, accepted }); if (accepted) server.onconnection(0, handle); } function send(message, cb) { return sendHelper(process, message, null, cb); } function _disconnect(masterInitiated) { this.exitedAfterDisconnect = true; let waitingCount = 1; function checkWaitingCount() { waitingCount--; if (waitingCount === 0) { // If disconnect is worker initiated, wait for ack to be sure // exitedAfterDisconnect is properly set in the master, otherwise, if // it's master initiated there's no need to send the // exitedAfterDisconnect message if (masterInitiated) { process.disconnect(); } else { send({ act: 'exitedAfterDisconnect' }, () => process.disconnect()); } } } handles.forEach((handle) => { waitingCount++; if (handle[owner_symbol]) handle[owner_symbol].close(checkWaitingCount); else handle.close(checkWaitingCount); }); handles.clear(); checkWaitingCount(); } // Extend generic Worker with methods specific to worker processes. Worker.prototype.disconnect = function() { _disconnect.call(this); return this; }; Worker.prototype.destroy = function() { this.exitedAfterDisconnect = true; if (!this.isConnected()) { process.exit(0); } else { send({ act: 'exitedAfterDisconnect' }, () => process.disconnect()); process.once('disconnect', () => process.exit(0)); } }; internal/cluster/master'use strict'; const assert = require('assert'); const { fork } = require('child_process'); const util = require('util'); const path = require('path'); const EventEmitter = require('events'); const RoundRobinHandle = require('internal/cluster/round_robin_handle'); const SharedHandle = require('internal/cluster/shared_handle'); const Worker = require('internal/cluster/worker'); const { internal, sendHelper } = require('internal/cluster/utils'); const { ERR_SOCKET_BAD_PORT } = require('internal/errors').codes; const keys = Object.keys; const cluster = new EventEmitter(); const intercom = new EventEmitter(); const SCHED_NONE = 1; const SCHED_RR = 2; const { isLegalPort } = require('internal/net'); const [ minPort, maxPort ] = [ 1024, 65535 ]; module.exports = cluster; const handles = new Map(); cluster.isWorker = false; cluster.isMaster = true; cluster.Worker = Worker; cluster.workers = {}; cluster.settings = {}; cluster.SCHED_NONE = SCHED_NONE; // Leave it to the operating system. cluster.SCHED_RR = SCHED_RR; // Master distributes connections. var ids = 0; var debugPortOffset = 1; var initialized = false; // XXX(bnoordhuis) Fold cluster.schedulingPolicy into cluster.settings? var schedulingPolicy = { 'none': SCHED_NONE, 'rr': SCHED_RR }[process.env.NODE_CLUSTER_SCHED_POLICY]; if (schedulingPolicy === undefined) { // FIXME Round-robin doesn't perform well on Windows right now due to the // way IOCP is wired up. schedulingPolicy = (process.platform === 'win32') ? SCHED_NONE : SCHED_RR; } cluster.schedulingPolicy = schedulingPolicy; cluster.setupMaster = function(options) { var settings = { args: process.argv.slice(2), exec: process.argv[1], execArgv: process.execArgv, silent: false }; util._extend(settings, cluster.settings); util._extend(settings, options || {}); // Tell V8 to write profile data for each process to a separate file. // Without --logfile=v8-%p.log, everything ends up in a single, unusable // file. (Unusable because what V8 logs are memory addresses and each // process has its own memory mappings.) if (settings.execArgv.some((s) => s.startsWith('--prof')) && !settings.execArgv.some((s) => s.startsWith('--logfile='))) { settings.execArgv = settings.execArgv.concat(['--logfile=v8-%p.log']); } cluster.settings = settings; if (initialized === true) return process.nextTick(setupSettingsNT, settings); initialized = true; schedulingPolicy = cluster.schedulingPolicy; // Freeze policy. assert(schedulingPolicy === SCHED_NONE || schedulingPolicy === SCHED_RR, `Bad cluster.schedulingPolicy: ${schedulingPolicy}`); process.nextTick(setupSettingsNT, settings); process.on('internalMessage', (message) => { if (message.cmd !== 'NODE_DEBUG_ENABLED') return; var key; for (key in cluster.workers) { const worker = cluster.workers[key]; if (worker.state === 'online' || worker.state === 'listening') { process._debugProcess(worker.process.pid); } else { worker.once('online', function() { process._debugProcess(this.process.pid); }); } } }); }; function setupSettingsNT(settings) { cluster.emit('setup', settings); } function createWorkerProcess(id, env) { const workerEnv = util._extend({}, process.env); const execArgv = cluster.settings.execArgv.slice(); const debugArgRegex = /--inspect(?:-brk|-port)?|--debug-port/; const nodeOptions = process.env.NODE_OPTIONS ? process.env.NODE_OPTIONS : ''; util._extend(workerEnv, env); workerEnv.NODE_UNIQUE_ID = '' + id; if (execArgv.some((arg) => arg.match(debugArgRegex)) || nodeOptions.match(debugArgRegex)) { let inspectPort; if ('inspectPort' in cluster.settings) { if (typeof cluster.settings.inspectPort === 'function') inspectPort = cluster.settings.inspectPort(); else inspectPort = cluster.settings.inspectPort; if (!isLegalPort(inspectPort)) { throw new ERR_SOCKET_BAD_PORT(inspectPort); } } else { inspectPort = process.debugPort + debugPortOffset; if (inspectPort > maxPort) inspectPort = inspectPort - maxPort + minPort - 1; debugPortOffset++; } execArgv.push(`--inspect-port=${inspectPort}`); } return fork(cluster.settings.exec, cluster.settings.args, { cwd: cluster.settings.cwd, env: workerEnv, silent: cluster.settings.silent, windowsHide: cluster.settings.windowsHide, execArgv: execArgv, stdio: cluster.settings.stdio, gid: cluster.settings.gid, uid: cluster.settings.uid }); } function removeWorker(worker) { assert(worker); delete cluster.workers[worker.id]; if (keys(cluster.workers).length === 0) { assert(handles.size === 0, 'Resource leak detected.'); intercom.emit('disconnect'); } } function removeHandlesForWorker(worker) { assert(worker); handles.forEach((handle, key) => { if (handle.remove(worker)) handles.delete(key); }); } cluster.fork = function(env) { cluster.setupMaster(); const id = ++ids; const workerProcess = createWorkerProcess(id, env); const worker = new Worker({ id: id, process: workerProcess }); worker.on('message', function(message, handle) { cluster.emit('message', this, message, handle); }); worker.process.once('exit', (exitCode, signalCode) => { /* * Remove the worker from the workers list only * if it has disconnected, otherwise we might * still want to access it. */ if (!worker.isConnected()) { removeHandlesForWorker(worker); removeWorker(worker); } worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect; worker.state = 'dead'; worker.emit('exit', exitCode, signalCode); cluster.emit('exit', worker, exitCode, signalCode); }); worker.process.once('disconnect', () => { /* * Now is a good time to remove the handles * associated with this worker because it is * not connected to the master anymore. */ removeHandlesForWorker(worker); /* * Remove the worker from the workers list only * if its process has exited. Otherwise, we might * still want to access it. */ if (worker.isDead()) removeWorker(worker); worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect; worker.state = 'disconnected'; worker.emit('disconnect'); cluster.emit('disconnect', worker); }); worker.process.on('internalMessage', internal(worker, onmessage)); process.nextTick(emitForkNT, worker); cluster.workers[worker.id] = worker; return worker; }; function emitForkNT(worker) { cluster.emit('fork', worker); } cluster.disconnect = function(cb) { const workers = keys(cluster.workers); if (workers.length === 0) { process.nextTick(() => intercom.emit('disconnect')); } else { for (var key in workers) { key = workers[key]; if (cluster.workers[key].isConnected()) cluster.workers[key].disconnect(); } } if (typeof cb === 'function') intercom.once('disconnect', cb); }; function onmessage(message, handle) { const worker = this; if (message.act === 'online') online(worker); else if (message.act === 'queryServer') queryServer(worker, message); else if (message.act === 'listening') listening(worker, message); else if (message.act === 'exitedAfterDisconnect') exitedAfterDisconnect(worker, message); else if (message.act === 'close') close(worker, message); } function online(worker) { worker.state = 'online'; worker.emit('online'); cluster.emit('online', worker); } function exitedAfterDisconnect(worker, message) { worker.exitedAfterDisconnect = true; send(worker, { ack: message.seq }); } function queryServer(worker, message) { // Stop processing if worker already disconnecting if (worker.exitedAfterDisconnect) return; const key = `${message.address}:${message.port}:${message.addressType}:` + `${message.fd}:${message.index}`; var handle = handles.get(key); if (handle === undefined) { let address = message.address; // Find shortest path for unix sockets because of the ~100 byte limit if (message.port < 0 && typeof address === 'string' && process.platform !== 'win32') { address = path.relative(process.cwd(), address); if (message.address.length < address.length) address = message.address; } var constructor = RoundRobinHandle; // UDP is exempt from round-robin connection balancing for what should // be obvious reasons: it's connectionless. There is nothing to send to // the workers except raw datagrams and that's pointless. if (schedulingPolicy !== SCHED_RR || message.addressType === 'udp4' || message.addressType === 'udp6') { constructor = SharedHandle; } handle = new constructor(key, address, message.port, message.addressType, message.fd, message.flags); handles.set(key, handle); } if (!handle.data) handle.data = message.data; // Set custom server data handle.add(worker, (errno, reply, handle) => { reply = util._extend({ errno: errno, key: key, ack: message.seq, data: handles.get(key).data }, reply); if (errno) handles.delete(key); // Gives other workers a chance to retry. send(worker, reply, handle); }); } function listening(worker, message) { const info = { addressType: message.addressType, address: message.address, port: message.port, fd: message.fd }; worker.state = 'listening'; worker.emit('listening', info); cluster.emit('listening', worker, info); } // Server in worker is closing, remove from list. The handle may have been // removed by a prior call to removeHandlesForWorker() so guard against that. function close(worker, message) { const key = message.key; const handle = handles.get(key); if (handle && handle.remove(worker)) handles.delete(key); } function send(worker, message, handle, cb) { return sendHelper(worker.process, message, handle, cb); } // Extend generic Worker with methods specific to the master process. Worker.prototype.disconnect = function() { this.exitedAfterDisconnect = true; send(this, { act: 'disconnect' }); removeHandlesForWorker(this); removeWorker(this); return this; }; Worker.prototype.destroy = function(signo) { const proc = this.process; signo = signo || 'SIGTERM'; if (this.isConnected()) { this.once('disconnect', () => proc.kill(signo)); this.disconnect(); return; } proc.kill(signo); }; internal/cluster/round_robin_handle'use strict'; const assert = require('assert'); const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); const uv = internalBinding('uv'); module.exports = RoundRobinHandle; function RoundRobinHandle(key, address, port, addressType, fd) { this.key = key; this.all = new Map(); this.free = []; this.handles = []; this.handle = null; this.server = net.createServer(assert.fail); if (fd >= 0) this.server.listen({ fd }); else if (port >= 0) this.server.listen(port, address); else this.server.listen(address); // UNIX socket path. this.server.once('listening', () => { this.handle = this.server._handle; this.handle.onconnection = (err, handle) => this.distribute(err, handle); this.server._handle = null; this.server = null; }); } RoundRobinHandle.prototype.add = function(worker, send) { assert(this.all.has(worker.id) === false); this.all.set(worker.id, worker); const done = () => { if (this.handle.getsockname) { const out = {}; this.handle.getsockname(out); // TODO(bnoordhuis) Check err. send(null, { sockname: out }, null); } else { send(null, null, null); // UNIX socket. } this.handoff(worker); // In case there are connections pending. }; if (this.server === null) return done(); // Still busy binding. this.server.once('listening', done); this.server.once('error', (err) => { // Hack: translate 'EADDRINUSE' error string back to numeric error code. // It works but ideally we'd have some backchannel between the net and // cluster modules for stuff like this. send(uv[`UV_${err.errno}`], null); }); }; RoundRobinHandle.prototype.remove = function(worker) { const existed = this.all.delete(worker.id); if (!existed) return false; const index = this.free.indexOf(worker); if (index !== -1) this.free.splice(index, 1); if (this.all.size !== 0) return false; for (var handle; handle = this.handles.shift(); handle.close()) ; this.handle.close(); this.handle = null; return true; }; RoundRobinHandle.prototype.distribute = function(err, handle) { this.handles.push(handle); const worker = this.free.shift(); if (worker) this.handoff(worker); }; RoundRobinHandle.prototype.handoff = function(worker) { if (this.all.has(worker.id) === false) { return; // Worker is closing (or has closed) the server. } const handle = this.handles.shift(); if (handle === undefined) { this.free.push(worker); // Add to ready queue again. return; } const message = { act: 'newconn', key: this.key }; sendHelper(worker.process, message, handle, (reply) => { if (reply.accepted) handle.close(); else this.distribute(0, handle); // Worker is shutting down. Send to another. this.handoff(worker); }); }; internal/cluster/shared_handle'use strict'; const assert = require('assert'); const dgram = require('internal/dgram'); const net = require('net'); module.exports = SharedHandle; function SharedHandle(key, address, port, addressType, fd, flags) { this.key = key; this.workers = []; this.handle = null; this.errno = 0; var rval; if (addressType === 'udp4' || addressType === 'udp6') rval = dgram._createSocketHandle(address, port, addressType, fd, flags); else rval = net._createServerHandle(address, port, addressType, fd); if (typeof rval === 'number') this.errno = rval; else this.handle = rval; } SharedHandle.prototype.add = function(worker, send) { assert(this.workers.indexOf(worker) === -1); this.workers.push(worker); send(this.errno, null, this.handle); }; SharedHandle.prototype.remove = function(worker) { const index = this.workers.indexOf(worker); if (index === -1) return false; // The worker wasn't sharing this handle. this.workers.splice(index, 1); if (this.workers.length !== 0) return false; this.handle.close(); this.handle = null; return true; }; internal/cluster/utils'use strict'; const util = require('util'); module.exports = { sendHelper, internal }; const callbacks = new Map(); var seq = 0; function sendHelper(proc, message, handle, cb) { if (!proc.connected) return false; // Mark message as internal. See INTERNAL_PREFIX in lib/child_process.js message = util._extend({ cmd: 'NODE_CLUSTER' }, message); if (typeof cb === 'function') callbacks.set(seq, cb); message.seq = seq; seq += 1; return proc.send(message, handle); } // Returns an internalMessage listener that hands off normal messages // to the callback but intercepts and redirects ACK messages. function internal(worker, cb) { return function onInternalMessage(message, handle) { if (message.cmd !== 'NODE_CLUSTER') return; var fn = cb; if (message.ack !== undefined) { const callback = callbacks.get(message.ack); if (callback !== undefined) { fn = callback; callbacks.delete(message.ack); } } fn.apply(worker, arguments); }; } internal/cluster/worker'use strict'; const EventEmitter = require('events'); const util = require('util'); module.exports = Worker; // Common Worker implementation shared between the cluster master and workers. function Worker(options) { if (!(this instanceof Worker)) return new Worker(options); EventEmitter.call(this); if (options === null || typeof options !== 'object') options = {}; this.exitedAfterDisconnect = undefined; this.state = options.state || 'none'; this.id = options.id | 0; if (options.process) { this.process = options.process; this.process.on('error', (code, signal) => this.emit('error', code, signal) ); this.process.on('message', (message, handle) => this.emit('message', message, handle) ); } } util.inherits(Worker, EventEmitter); Worker.prototype.kill = function() { this.destroy.apply(this, arguments); }; Worker.prototype.send = function() { return this.process.send.apply(this.process, arguments); }; Worker.prototype.isDead = function() { return this.process.exitCode != null || this.process.signalCode != null; }; Worker.prototype.isConnected = function() { return this.process.connected; }; internal/crypto/certificate'use strict'; const { certExportChallenge, certExportPublicKey, certVerifySpkac } = process.binding('crypto'); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { isArrayBufferView } = require('internal/util/types'); const { toBuf } = require('internal/crypto/util'); function verifySpkac(spkac) { if (!isArrayBufferView(spkac)) { throw new ERR_INVALID_ARG_TYPE( 'spkac', ['Buffer', 'TypedArray', 'DataView'], spkac ); } return certVerifySpkac(spkac); } function exportPublicKey(spkac, encoding) { spkac = toBuf(spkac, encoding); if (!isArrayBufferView(spkac)) { throw new ERR_INVALID_ARG_TYPE( 'spkac', ['string', 'Buffer', 'TypedArray', 'DataView'], spkac ); } return certExportPublicKey(spkac); } function exportChallenge(spkac, encoding) { spkac = toBuf(spkac, encoding); if (!isArrayBufferView(spkac)) { throw new ERR_INVALID_ARG_TYPE( 'spkac', ['string', 'Buffer', 'TypedArray', 'DataView'], spkac ); } return certExportChallenge(spkac); } // For backwards compatibility reasons, this cannot be converted into a // ES6 Class. function Certificate() { if (!(this instanceof Certificate)) return new Certificate(); } Certificate.prototype.verifySpkac = verifySpkac; Certificate.prototype.exportPublicKey = exportPublicKey; Certificate.prototype.exportChallenge = exportChallenge; Certificate.exportChallenge = exportChallenge; Certificate.exportPublicKey = exportPublicKey; Certificate.verifySpkac = verifySpkac; module.exports = Certificate; internal/crypto/cipher'use strict'; const { RSA_PKCS1_OAEP_PADDING, RSA_PKCS1_PADDING } = process.binding('constants').crypto; const { ERR_CRYPTO_INVALID_STATE, ERR_INVALID_ARG_TYPE, ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { getDefaultEncoding, toBuf } = require('internal/crypto/util'); const { isArrayBufferView } = require('internal/util/types'); const { CipherBase, privateDecrypt: _privateDecrypt, privateEncrypt: _privateEncrypt, publicDecrypt: _publicDecrypt, publicEncrypt: _publicEncrypt } = process.binding('crypto'); const assert = require('assert'); const LazyTransform = require('internal/streams/lazy_transform'); const { inherits } = require('util'); const { deprecate, normalizeEncoding } = require('internal/util'); // Lazy loaded for startup performance. let StringDecoder; function rsaFunctionFor(method, defaultPadding) { return function(options, buffer) { const key = options.key || options; const padding = options.padding || defaultPadding; const passphrase = options.passphrase || null; return method(toBuf(key), buffer, padding, passphrase); }; } const publicEncrypt = rsaFunctionFor(_publicEncrypt, RSA_PKCS1_OAEP_PADDING); const publicDecrypt = rsaFunctionFor(_publicDecrypt, RSA_PKCS1_PADDING); const privateEncrypt = rsaFunctionFor(_privateEncrypt, RSA_PKCS1_PADDING); const privateDecrypt = rsaFunctionFor(_privateDecrypt, RSA_PKCS1_OAEP_PADDING); function getDecoder(decoder, encoding) { encoding = normalizeEncoding(encoding); if (StringDecoder === undefined) StringDecoder = require('string_decoder').StringDecoder; decoder = decoder || new StringDecoder(encoding); assert(decoder.encoding === encoding, 'Cannot change encoding'); return decoder; } function getUIntOption(options, key) { let value; if (options && (value = options[key]) != null) { if (value >>> 0 !== value) throw new ERR_INVALID_OPT_VALUE(key, value); return value; } return -1; } function createCipherBase(cipher, credential, options, decipher, iv) { const authTagLength = getUIntOption(options, 'authTagLength'); this._handle = new CipherBase(decipher); if (iv === undefined) { this._handle.init(cipher, credential, authTagLength); } else { this._handle.initiv(cipher, credential, iv, authTagLength); } this._decoder = null; LazyTransform.call(this, options); } function invalidArrayBufferView(name, value) { return new ERR_INVALID_ARG_TYPE( name, ['string', 'Buffer', 'TypedArray', 'DataView'], value ); } function createCipher(cipher, password, options, decipher) { validateString(cipher, 'cipher'); password = toBuf(password); if (!isArrayBufferView(password)) { throw invalidArrayBufferView('password', password); } createCipherBase.call(this, cipher, password, options, decipher); } function createCipherWithIV(cipher, key, options, decipher, iv) { validateString(cipher, 'cipher'); key = toBuf(key); if (!isArrayBufferView(key)) { throw invalidArrayBufferView('key', key); } iv = toBuf(iv); if (iv !== null && !isArrayBufferView(iv)) { throw invalidArrayBufferView('iv', iv); } createCipherBase.call(this, cipher, key, options, decipher, iv); } function Cipher(cipher, password, options) { if (!(this instanceof Cipher)) return new Cipher(cipher, password, options); createCipher.call(this, cipher, password, options, true); } inherits(Cipher, LazyTransform); Cipher.prototype._transform = function _transform(chunk, encoding, callback) { this.push(this._handle.update(chunk, encoding)); callback(); }; Cipher.prototype._flush = function _flush(callback) { try { this.push(this._handle.final()); } catch (e) { callback(e); return; } callback(); }; Cipher.prototype.update = function update(data, inputEncoding, outputEncoding) { const encoding = getDefaultEncoding(); inputEncoding = inputEncoding || encoding; outputEncoding = outputEncoding || encoding; if (typeof data !== 'string' && !isArrayBufferView(data)) { throw invalidArrayBufferView('data', data); } const ret = this._handle.update(data, inputEncoding); if (outputEncoding && outputEncoding !== 'buffer') { this._decoder = getDecoder(this._decoder, outputEncoding); return this._decoder.write(ret); } return ret; }; Cipher.prototype.final = function final(outputEncoding) { outputEncoding = outputEncoding || getDefaultEncoding(); const ret = this._handle.final(); if (outputEncoding && outputEncoding !== 'buffer') { this._decoder = getDecoder(this._decoder, outputEncoding); return this._decoder.end(ret); } return ret; }; Cipher.prototype.setAutoPadding = function setAutoPadding(ap) { if (!this._handle.setAutoPadding(!!ap)) throw new ERR_CRYPTO_INVALID_STATE('setAutoPadding'); return this; }; Cipher.prototype.getAuthTag = function getAuthTag() { const ret = this._handle.getAuthTag(); if (ret === undefined) throw new ERR_CRYPTO_INVALID_STATE('getAuthTag'); return ret; }; Cipher.prototype.setAuthTag = function setAuthTag(tagbuf) { if (!isArrayBufferView(tagbuf)) { throw new ERR_INVALID_ARG_TYPE('buffer', ['Buffer', 'TypedArray', 'DataView'], tagbuf); } if (!this._handle.setAuthTag(tagbuf)) throw new ERR_CRYPTO_INVALID_STATE('setAuthTag'); return this; }; Cipher.prototype.setAAD = function setAAD(aadbuf, options) { if (!isArrayBufferView(aadbuf)) { throw new ERR_INVALID_ARG_TYPE('buffer', ['Buffer', 'TypedArray', 'DataView'], aadbuf); } const plaintextLength = getUIntOption(options, 'plaintextLength'); if (!this._handle.setAAD(aadbuf, plaintextLength)) throw new ERR_CRYPTO_INVALID_STATE('setAAD'); return this; }; function Cipheriv(cipher, key, iv, options) { if (!(this instanceof Cipheriv)) return new Cipheriv(cipher, key, iv, options); createCipherWithIV.call(this, cipher, key, options, true, iv); } function addCipherPrototypeFunctions(constructor) { constructor.prototype._transform = Cipher.prototype._transform; constructor.prototype._flush = Cipher.prototype._flush; constructor.prototype.update = Cipher.prototype.update; constructor.prototype.final = Cipher.prototype.final; constructor.prototype.setAutoPadding = Cipher.prototype.setAutoPadding; constructor.prototype.getAuthTag = Cipher.prototype.getAuthTag; constructor.prototype.setAuthTag = Cipher.prototype.setAuthTag; constructor.prototype.setAAD = Cipher.prototype.setAAD; } inherits(Cipheriv, LazyTransform); addCipherPrototypeFunctions(Cipheriv); const finaltol = deprecate(Cipher.prototype.final, 'crypto.Decipher.finaltol is deprecated. Use ' + 'crypto.Decipher.final instead.', 'DEP0105'); function Decipher(cipher, password, options) { if (!(this instanceof Decipher)) return new Decipher(cipher, password, options); createCipher.call(this, cipher, password, options, false); } inherits(Decipher, LazyTransform); addCipherPrototypeFunctions(Decipher); Decipher.prototype.finaltol = finaltol; function Decipheriv(cipher, key, iv, options) { if (!(this instanceof Decipheriv)) return new Decipheriv(cipher, key, iv, options); createCipherWithIV.call(this, cipher, key, options, false, iv); } inherits(Decipheriv, LazyTransform); addCipherPrototypeFunctions(Decipheriv); Decipheriv.prototype.finaltol = finaltol; module.exports = { Cipher, Cipheriv, Decipher, Decipheriv, privateDecrypt, privateEncrypt, publicDecrypt, publicEncrypt, }; internal/crypto/diffiehellman'use strict'; const { Buffer } = require('buffer'); const { ERR_CRYPTO_ECDH_INVALID_FORMAT, ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY, ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { isArrayBufferView } = require('internal/util/types'); const { getDefaultEncoding, toBuf } = require('internal/crypto/util'); const { DiffieHellman: _DiffieHellman, DiffieHellmanGroup: _DiffieHellmanGroup, ECDH: _ECDH, ECDHConvertKey: _ECDHConvertKey } = process.binding('crypto'); const { POINT_CONVERSION_COMPRESSED, POINT_CONVERSION_HYBRID, POINT_CONVERSION_UNCOMPRESSED } = process.binding('constants').crypto; const DH_GENERATOR = 2; function DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding) { if (!(this instanceof DiffieHellman)) return new DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding); if (typeof sizeOrKey !== 'number' && typeof sizeOrKey !== 'string' && !isArrayBufferView(sizeOrKey)) { throw new ERR_INVALID_ARG_TYPE( 'sizeOrKey', ['number', 'string', 'Buffer', 'TypedArray', 'DataView'], sizeOrKey ); } if (keyEncoding && !Buffer.isEncoding(keyEncoding) && keyEncoding !== 'buffer') { genEncoding = generator; generator = keyEncoding; keyEncoding = false; } const encoding = getDefaultEncoding(); keyEncoding = keyEncoding || encoding; genEncoding = genEncoding || encoding; if (typeof sizeOrKey !== 'number') sizeOrKey = toBuf(sizeOrKey, keyEncoding); if (!generator) generator = DH_GENERATOR; else if (typeof generator !== 'number') generator = toBuf(generator, genEncoding); this._handle = new _DiffieHellman(sizeOrKey, generator); Object.defineProperty(this, 'verifyError', { enumerable: true, value: this._handle.verifyError, writable: false }); } function DiffieHellmanGroup(name) { if (!(this instanceof DiffieHellmanGroup)) return new DiffieHellmanGroup(name); this._handle = new _DiffieHellmanGroup(name); Object.defineProperty(this, 'verifyError', { enumerable: true, value: this._handle.verifyError, writable: false }); } DiffieHellmanGroup.prototype.generateKeys = DiffieHellman.prototype.generateKeys = dhGenerateKeys; function dhGenerateKeys(encoding) { const keys = this._handle.generateKeys(); encoding = encoding || getDefaultEncoding(); return encode(keys, encoding); } DiffieHellmanGroup.prototype.computeSecret = DiffieHellman.prototype.computeSecret = dhComputeSecret; function dhComputeSecret(key, inEnc, outEnc) { const encoding = getDefaultEncoding(); inEnc = inEnc || encoding; outEnc = outEnc || encoding; const ret = this._handle.computeSecret(toBuf(key, inEnc)); if (typeof ret === 'string') throw new ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY(); return encode(ret, outEnc); } DiffieHellmanGroup.prototype.getPrime = DiffieHellman.prototype.getPrime = dhGetPrime; function dhGetPrime(encoding) { const prime = this._handle.getPrime(); encoding = encoding || getDefaultEncoding(); return encode(prime, encoding); } DiffieHellmanGroup.prototype.getGenerator = DiffieHellman.prototype.getGenerator = dhGetGenerator; function dhGetGenerator(encoding) { const generator = this._handle.getGenerator(); encoding = encoding || getDefaultEncoding(); return encode(generator, encoding); } DiffieHellmanGroup.prototype.getPublicKey = DiffieHellman.prototype.getPublicKey = dhGetPublicKey; function dhGetPublicKey(encoding) { const key = this._handle.getPublicKey(); encoding = encoding || getDefaultEncoding(); return encode(key, encoding); } DiffieHellmanGroup.prototype.getPrivateKey = DiffieHellman.prototype.getPrivateKey = dhGetPrivateKey; function dhGetPrivateKey(encoding) { const key = this._handle.getPrivateKey(); encoding = encoding || getDefaultEncoding(); return encode(key, encoding); } DiffieHellman.prototype.setPublicKey = function setPublicKey(key, encoding) { encoding = encoding || getDefaultEncoding(); this._handle.setPublicKey(toBuf(key, encoding)); return this; }; DiffieHellman.prototype.setPrivateKey = function setPrivateKey(key, encoding) { encoding = encoding || getDefaultEncoding(); this._handle.setPrivateKey(toBuf(key, encoding)); return this; }; function ECDH(curve) { if (!(this instanceof ECDH)) return new ECDH(curve); validateString(curve, 'curve'); this._handle = new _ECDH(curve); } ECDH.prototype.computeSecret = DiffieHellman.prototype.computeSecret; ECDH.prototype.setPrivateKey = DiffieHellman.prototype.setPrivateKey; ECDH.prototype.setPublicKey = DiffieHellman.prototype.setPublicKey; ECDH.prototype.getPrivateKey = DiffieHellman.prototype.getPrivateKey; ECDH.prototype.generateKeys = function generateKeys(encoding, format) { this._handle.generateKeys(); return this.getPublicKey(encoding, format); }; ECDH.prototype.getPublicKey = function getPublicKey(encoding, format) { const f = getFormat(format); const key = this._handle.getPublicKey(f); encoding = encoding || getDefaultEncoding(); return encode(key, encoding); }; ECDH.convertKey = function convertKey(key, curve, inEnc, outEnc, format) { if (typeof key !== 'string' && !isArrayBufferView(key)) { throw new ERR_INVALID_ARG_TYPE( 'key', ['string', 'Buffer', 'TypedArray', 'DataView'], key ); } validateString(curve, 'curve'); const encoding = getDefaultEncoding(); inEnc = inEnc || encoding; outEnc = outEnc || encoding; const f = getFormat(format); const convertedKey = _ECDHConvertKey(toBuf(key, inEnc), curve, f); return encode(convertedKey, outEnc); }; function encode(buffer, encoding) { if (encoding && encoding !== 'buffer') buffer = buffer.toString(encoding); return buffer; } function getFormat(format) { if (format) { if (format === 'compressed') return POINT_CONVERSION_COMPRESSED; if (format === 'hybrid') return POINT_CONVERSION_HYBRID; if (format !== 'uncompressed') throw new ERR_CRYPTO_ECDH_INVALID_FORMAT(format); } return POINT_CONVERSION_UNCOMPRESSED; } module.exports = { DiffieHellman, DiffieHellmanGroup, ECDH }; internal/crypto/hash'use strict'; const { Hash: _Hash, Hmac: _Hmac } = process.binding('crypto'); const { getDefaultEncoding, toBuf } = require('internal/crypto/util'); const { Buffer } = require('buffer'); const { ERR_CRYPTO_HASH_DIGEST_NO_UTF16, ERR_CRYPTO_HASH_FINALIZED, ERR_CRYPTO_HASH_UPDATE_FAILED, ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { inherits } = require('util'); const { normalizeEncoding } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); const LazyTransform = require('internal/streams/lazy_transform'); const kState = Symbol('kState'); const kFinalized = Symbol('kFinalized'); function Hash(algorithm, options) { if (!(this instanceof Hash)) return new Hash(algorithm, options); validateString(algorithm, 'algorithm'); this._handle = new _Hash(algorithm); this[kState] = { [kFinalized]: false }; LazyTransform.call(this, options); } inherits(Hash, LazyTransform); Hash.prototype._transform = function _transform(chunk, encoding, callback) { this._handle.update(chunk, encoding); callback(); }; Hash.prototype._flush = function _flush(callback) { this.push(this._handle.digest()); callback(); }; Hash.prototype.update = function update(data, encoding) { const state = this[kState]; if (state[kFinalized]) throw new ERR_CRYPTO_HASH_FINALIZED(); if (typeof data !== 'string' && !isArrayBufferView(data)) { throw new ERR_INVALID_ARG_TYPE('data', ['string', 'TypedArray', 'DataView'], data); } if (!this._handle.update(data, encoding || getDefaultEncoding())) throw new ERR_CRYPTO_HASH_UPDATE_FAILED(); return this; }; Hash.prototype.digest = function digest(outputEncoding) { const state = this[kState]; if (state[kFinalized]) throw new ERR_CRYPTO_HASH_FINALIZED(); outputEncoding = outputEncoding || getDefaultEncoding(); if (normalizeEncoding(outputEncoding) === 'utf16le') throw new ERR_CRYPTO_HASH_DIGEST_NO_UTF16(); // Explicit conversion for backward compatibility. const ret = this._handle.digest(`${outputEncoding}`); state[kFinalized] = true; return ret; }; function Hmac(hmac, key, options) { if (!(this instanceof Hmac)) return new Hmac(hmac, key, options); validateString(hmac, 'hmac'); if (typeof key !== 'string' && !isArrayBufferView(key)) { throw new ERR_INVALID_ARG_TYPE('key', ['string', 'TypedArray', 'DataView'], key); } this._handle = new _Hmac(); this._handle.init(hmac, toBuf(key)); this[kState] = { [kFinalized]: false }; LazyTransform.call(this, options); } inherits(Hmac, LazyTransform); Hmac.prototype.update = Hash.prototype.update; Hmac.prototype.digest = function digest(outputEncoding) { const state = this[kState]; outputEncoding = outputEncoding || getDefaultEncoding(); if (normalizeEncoding(outputEncoding) === 'utf16le') throw new ERR_CRYPTO_HASH_DIGEST_NO_UTF16(); if (state[kFinalized]) { const buf = Buffer.from(''); return outputEncoding === 'buffer' ? buf : buf.toString(outputEncoding); } // Explicit conversion for backward compatibility. const ret = this._handle.digest(`${outputEncoding}`); state[kFinalized] = true; return ret; }; Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; module.exports = { Hash, Hmac }; internal/crypto/keygen'use strict'; const { AsyncWrap, Providers } = internalBinding('async_wrap'); const { generateKeyPairRSA, generateKeyPairDSA, generateKeyPairEC, OPENSSL_EC_NAMED_CURVE, OPENSSL_EC_EXPLICIT_CURVE, PK_ENCODING_PKCS1, PK_ENCODING_PKCS8, PK_ENCODING_SPKI, PK_ENCODING_SEC1, PK_FORMAT_DER, PK_FORMAT_PEM } = process.binding('crypto'); const { customPromisifyArgs } = require('internal/util'); const { isUint32 } = require('internal/validators'); const { ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_INVALID_CALLBACK, ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; function generateKeyPair(type, options, callback) { if (typeof options === 'function') { callback = options; options = undefined; } const impl = check(type, options); if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); const wrap = new AsyncWrap(Providers.KEYPAIRGENREQUEST); wrap.ondone = (ex, pubkey, privkey) => { if (ex) return callback.call(wrap, ex); callback.call(wrap, null, pubkey, privkey); }; handleError(impl, wrap); } Object.defineProperty(generateKeyPair, customPromisifyArgs, { value: ['publicKey', 'privateKey'], enumerable: false }); function generateKeyPairSync(type, options) { const impl = check(type, options); return handleError(impl); } function handleError(impl, wrap) { const ret = impl(wrap); if (ret === undefined) return; // async const [err, publicKey, privateKey] = ret; if (err !== undefined) throw err; return { publicKey, privateKey }; } function parseKeyEncoding(keyType, options) { const { publicKeyEncoding, privateKeyEncoding } = options; if (publicKeyEncoding == null || typeof publicKeyEncoding !== 'object') throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding', publicKeyEncoding); const { format: strPublicFormat, type: strPublicType } = publicKeyEncoding; let publicType; if (strPublicType === 'pkcs1') { if (keyType !== 'rsa') { throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( strPublicType, 'can only be used for RSA keys'); } publicType = PK_ENCODING_PKCS1; } else if (strPublicType === 'spki') { publicType = PK_ENCODING_SPKI; } else { throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding.type', strPublicType); } let publicFormat; if (strPublicFormat === 'der') { publicFormat = PK_FORMAT_DER; } else if (strPublicFormat === 'pem') { publicFormat = PK_FORMAT_PEM; } else { throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding.format', strPublicFormat); } if (privateKeyEncoding == null || typeof privateKeyEncoding !== 'object') throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding', privateKeyEncoding); const { cipher, passphrase, format: strPrivateFormat, type: strPrivateType } = privateKeyEncoding; let privateType; if (strPrivateType === 'pkcs1') { if (keyType !== 'rsa') { throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( strPrivateType, 'can only be used for RSA keys'); } privateType = PK_ENCODING_PKCS1; } else if (strPrivateType === 'pkcs8') { privateType = PK_ENCODING_PKCS8; } else if (strPrivateType === 'sec1') { if (keyType !== 'ec') { throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( strPrivateType, 'can only be used for EC keys'); } privateType = PK_ENCODING_SEC1; } else { throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.type', strPrivateType); } let privateFormat; if (strPrivateFormat === 'der') { privateFormat = PK_FORMAT_DER; } else if (strPrivateFormat === 'pem') { privateFormat = PK_FORMAT_PEM; } else { throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.format', strPrivateFormat); } if (cipher != null) { if (typeof cipher !== 'string') throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.cipher', cipher); if (privateFormat === PK_FORMAT_DER && (privateType === PK_ENCODING_PKCS1 || privateType === PK_ENCODING_SEC1)) { throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( strPrivateType, 'does not support encryption'); } if (typeof passphrase !== 'string') { throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.passphrase', passphrase); } } return { cipher, passphrase, publicType, publicFormat, privateType, privateFormat }; } function check(type, options, callback) { if (typeof type !== 'string') throw new ERR_INVALID_ARG_TYPE('type', 'string', type); if (options == null || typeof options !== 'object') throw new ERR_INVALID_ARG_TYPE('options', 'object', options); // These will be set after parsing the type and type-specific options to make // the order a bit more intuitive. let cipher, passphrase, publicType, publicFormat, privateType, privateFormat; let impl; switch (type) { case 'rsa': { const { modulusLength } = options; if (!isUint32(modulusLength)) throw new ERR_INVALID_OPT_VALUE('modulusLength', modulusLength); let { publicExponent } = options; if (publicExponent == null) { publicExponent = 0x10001; } else if (!isUint32(publicExponent)) { throw new ERR_INVALID_OPT_VALUE('publicExponent', publicExponent); } impl = (wrap) => generateKeyPairRSA(modulusLength, publicExponent, publicType, publicFormat, privateType, privateFormat, cipher, passphrase, wrap); } break; case 'dsa': { const { modulusLength } = options; if (!isUint32(modulusLength)) throw new ERR_INVALID_OPT_VALUE('modulusLength', modulusLength); let { divisorLength } = options; if (divisorLength == null) { divisorLength = -1; } else if (!isUint32(divisorLength)) { throw new ERR_INVALID_OPT_VALUE('divisorLength', divisorLength); } impl = (wrap) => generateKeyPairDSA(modulusLength, divisorLength, publicType, publicFormat, privateType, privateFormat, cipher, passphrase, wrap); } break; case 'ec': { const { namedCurve } = options; if (typeof namedCurve !== 'string') throw new ERR_INVALID_OPT_VALUE('namedCurve', namedCurve); let { paramEncoding } = options; if (paramEncoding == null || paramEncoding === 'named') paramEncoding = OPENSSL_EC_NAMED_CURVE; else if (paramEncoding === 'explicit') paramEncoding = OPENSSL_EC_EXPLICIT_CURVE; else throw new ERR_INVALID_OPT_VALUE('paramEncoding', paramEncoding); impl = (wrap) => generateKeyPairEC(namedCurve, paramEncoding, publicType, publicFormat, privateType, privateFormat, cipher, passphrase, wrap); } break; default: throw new ERR_INVALID_ARG_VALUE('type', type, "must be one of 'rsa', 'dsa', 'ec'"); } ({ cipher, passphrase, publicType, publicFormat, privateType, privateFormat } = parseKeyEncoding(type, options)); return impl; } module.exports = { generateKeyPair, generateKeyPairSync }; internal/crypto/pbkdf2'use strict'; const { AsyncWrap, Providers } = internalBinding('async_wrap'); const { Buffer } = require('buffer'); const { pbkdf2: _pbkdf2 } = process.binding('crypto'); const { validateUint32 } = require('internal/validators'); const { ERR_CRYPTO_INVALID_DIGEST, ERR_CRYPTO_PBKDF2_ERROR, ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, } = require('internal/errors').codes; const { getDefaultEncoding, validateArrayBufferView, } = require('internal/crypto/util'); function pbkdf2(password, salt, iterations, keylen, digest, callback) { if (typeof digest === 'function') { callback = digest; digest = undefined; } ({ password, salt, iterations, keylen, digest } = check(password, salt, iterations, keylen, digest)); if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); const encoding = getDefaultEncoding(); const keybuf = Buffer.alloc(keylen); const wrap = new AsyncWrap(Providers.PBKDF2REQUEST); wrap.ondone = (ok) => { // Retains keybuf while request is in flight. if (!ok) return callback.call(wrap, new ERR_CRYPTO_PBKDF2_ERROR()); if (encoding === 'buffer') return callback.call(wrap, null, keybuf); callback.call(wrap, null, keybuf.toString(encoding)); }; handleError(keybuf, password, salt, iterations, digest, wrap); } function pbkdf2Sync(password, salt, iterations, keylen, digest) { ({ password, salt, iterations, keylen, digest } = check(password, salt, iterations, keylen, digest)); const keybuf = Buffer.alloc(keylen); handleError(keybuf, password, salt, iterations, digest); const encoding = getDefaultEncoding(); if (encoding === 'buffer') return keybuf; return keybuf.toString(encoding); } function check(password, salt, iterations, keylen, digest) { if (typeof digest !== 'string') { if (digest !== null) throw new ERR_INVALID_ARG_TYPE('digest', ['string', 'null'], digest); digest = 'sha1'; } password = validateArrayBufferView(password, 'password'); salt = validateArrayBufferView(salt, 'salt'); iterations = validateUint32(iterations, 'iterations', 0); keylen = validateUint32(keylen, 'keylen', 0); return { password, salt, iterations, keylen, digest }; } function handleError(keybuf, password, salt, iterations, digest, wrap) { const rc = _pbkdf2(keybuf, password, salt, iterations, digest, wrap); if (rc === -1) throw new ERR_CRYPTO_INVALID_DIGEST(digest); if (rc === false) throw new ERR_CRYPTO_PBKDF2_ERROR(); } module.exports = { pbkdf2, pbkdf2Sync }; internal/crypto/random'use strict'; const { AsyncWrap, Providers } = internalBinding('async_wrap'); const { Buffer, kMaxLength } = require('buffer'); const { randomBytes: _randomBytes } = process.binding('crypto'); const { ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { validateNumber } = require('internal/validators'); const { isArrayBufferView } = require('internal/util/types'); const kMaxUint32 = 2 ** 32 - 1; const kMaxPossibleLength = Math.min(kMaxLength, kMaxUint32); function assertOffset(offset, elementSize, length) { validateNumber(offset, 'offset'); offset *= elementSize; const maxLength = Math.min(length, kMaxPossibleLength); if (Number.isNaN(offset) || offset > maxLength || offset < 0) { throw new ERR_OUT_OF_RANGE('offset', `>= 0 && <= ${maxLength}`, offset); } return offset >>> 0; // Convert to uint32. } function assertSize(size, elementSize, offset, length) { validateNumber(size, 'size'); size *= elementSize; if (Number.isNaN(size) || size > kMaxPossibleLength || size < 0) { throw new ERR_OUT_OF_RANGE('size', `>= 0 && <= ${kMaxPossibleLength}`, size); } if (size + offset > length) { throw new ERR_OUT_OF_RANGE('size + offset', `<= ${length}`, size + offset); } return size >>> 0; // Convert to uint32. } function randomBytes(size, cb) { size = assertSize(size, 1, 0, Infinity); if (cb !== undefined && typeof cb !== 'function') throw new ERR_INVALID_CALLBACK(); const buf = Buffer.alloc(size); if (!cb) return handleError(buf, 0, size); const wrap = new AsyncWrap(Providers.RANDOMBYTESREQUEST); wrap.ondone = (ex) => { // Retains buf while request is in flight. if (ex) return cb.call(wrap, ex); cb.call(wrap, null, buf); }; _randomBytes(buf, 0, size, wrap); } function randomFillSync(buf, offset = 0, size) { if (!isArrayBufferView(buf)) { throw new ERR_INVALID_ARG_TYPE('buf', 'ArrayBufferView', buf); } const elementSize = buf.BYTES_PER_ELEMENT || 1; offset = assertOffset(offset, elementSize, buf.byteLength); if (size === undefined) { size = buf.byteLength - offset; } else { size = assertSize(size, elementSize, offset, buf.byteLength); } return handleError(buf, offset, size); } function randomFill(buf, offset, size, cb) { if (!isArrayBufferView(buf)) { throw new ERR_INVALID_ARG_TYPE('buf', 'ArrayBufferView', buf); } const elementSize = buf.BYTES_PER_ELEMENT || 1; if (typeof offset === 'function') { cb = offset; offset = 0; size = buf.bytesLength; } else if (typeof size === 'function') { cb = size; size = buf.byteLength - offset; } else if (typeof cb !== 'function') { throw new ERR_INVALID_CALLBACK(); } offset = assertOffset(offset, elementSize, buf.byteLength); if (size === undefined) { size = buf.byteLength - offset; } else { size = assertSize(size, elementSize, offset, buf.byteLength); } const wrap = new AsyncWrap(Providers.RANDOMBYTESREQUEST); wrap.ondone = (ex) => { // Retains buf while request is in flight. if (ex) return cb.call(wrap, ex); cb.call(wrap, null, buf); }; _randomBytes(buf, offset, size, wrap); } function handleError(buf, offset, size) { const ex = _randomBytes(buf, offset, size); if (ex) throw ex; return buf; } module.exports = { randomBytes, randomFill, randomFillSync }; internal/crypto/scrypt'use strict'; const { AsyncWrap, Providers } = internalBinding('async_wrap'); const { Buffer } = require('buffer'); const { scrypt: _scrypt } = process.binding('crypto'); const { validateUint32 } = require('internal/validators'); const { ERR_CRYPTO_SCRYPT_INVALID_PARAMETER, ERR_CRYPTO_SCRYPT_NOT_SUPPORTED, ERR_INVALID_CALLBACK, } = require('internal/errors').codes; const { getDefaultEncoding, validateArrayBufferView, } = require('internal/crypto/util'); const defaults = { N: 16384, r: 8, p: 1, maxmem: 32 << 20, // 32 MB, matches SCRYPT_MAX_MEM. }; function scrypt(password, salt, keylen, options, callback = defaults) { if (callback === defaults) { callback = options; options = defaults; } options = check(password, salt, keylen, options); const { N, r, p, maxmem } = options; ({ password, salt, keylen } = options); if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); const encoding = getDefaultEncoding(); const keybuf = Buffer.alloc(keylen); const wrap = new AsyncWrap(Providers.SCRYPTREQUEST); wrap.ondone = (ex) => { // Retains keybuf while request is in flight. if (ex) return callback.call(wrap, ex); if (encoding === 'buffer') return callback.call(wrap, null, keybuf); callback.call(wrap, null, keybuf.toString(encoding)); }; handleError(keybuf, password, salt, N, r, p, maxmem, wrap); } function scryptSync(password, salt, keylen, options = defaults) { options = check(password, salt, keylen, options); const { N, r, p, maxmem } = options; ({ password, salt, keylen } = options); const keybuf = Buffer.alloc(keylen); handleError(keybuf, password, salt, N, r, p, maxmem); const encoding = getDefaultEncoding(); if (encoding === 'buffer') return keybuf; return keybuf.toString(encoding); } function handleError(keybuf, password, salt, N, r, p, maxmem, wrap) { const ex = _scrypt(keybuf, password, salt, N, r, p, maxmem, wrap); if (ex === undefined) return; if (ex === null) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); // Bad N, r, p, or maxmem. throw ex; // Scrypt operation failed, exception object contains details. } function check(password, salt, keylen, options) { if (_scrypt === undefined) throw new ERR_CRYPTO_SCRYPT_NOT_SUPPORTED(); password = validateArrayBufferView(password, 'password'); salt = validateArrayBufferView(salt, 'salt'); keylen = validateUint32(keylen, 'keylen'); let { N, r, p, maxmem } = defaults; if (options && options !== defaults) { let has_N, has_r, has_p; if (has_N = (options.N !== undefined)) N = validateUint32(options.N, 'N'); if (options.cost !== undefined) { if (has_N) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); N = validateUint32(options.cost, 'cost'); } if (has_r = (options.r !== undefined)) r = validateUint32(options.r, 'r'); if (options.blockSize !== undefined) { if (has_r) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); r = validateUint32(options.blockSize, 'blockSize'); } if (has_p = (options.p !== undefined)) p = validateUint32(options.p, 'p'); if (options.parallelization !== undefined) { if (has_p) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); p = validateUint32(options.parallelization, 'parallelization'); } if (options.maxmem !== undefined) maxmem = validateUint32(options.maxmem, 'maxmem'); if (N === 0) N = defaults.N; if (r === 0) r = defaults.r; if (p === 0) p = defaults.p; if (maxmem === 0) maxmem = defaults.maxmem; } return { password, salt, keylen, N, r, p, maxmem }; } module.exports = { scrypt, scryptSync }; internal/crypto/sig'use strict'; const { ERR_CRYPTO_SIGN_KEY_REQUIRED, ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { Sign: _Sign, Verify: _Verify } = internalBinding('crypto'); const { RSA_PSS_SALTLEN_AUTO, RSA_PKCS1_PADDING } = process.binding('constants').crypto; const { getDefaultEncoding, toBuf, validateArrayBufferView, } = require('internal/crypto/util'); const { Writable } = require('stream'); const { inherits } = require('util'); function Sign(algorithm, options) { if (!(this instanceof Sign)) return new Sign(algorithm, options); validateString(algorithm, 'algorithm'); this._handle = new _Sign(); this._handle.init(algorithm); Writable.call(this, options); } inherits(Sign, Writable); Sign.prototype._write = function _write(chunk, encoding, callback) { this.update(chunk, encoding); callback(); }; Sign.prototype.update = function update(data, encoding) { encoding = encoding || getDefaultEncoding(); data = validateArrayBufferView(toBuf(data, encoding), 'data'); this._handle.update(data); return this; }; function getPadding(options) { return getIntOption('padding', RSA_PKCS1_PADDING, options); } function getSaltLength(options) { return getIntOption('saltLength', RSA_PSS_SALTLEN_AUTO, options); } function getIntOption(name, defaultValue, options) { if (options.hasOwnProperty(name)) { const value = options[name]; if (value === value >> 0) { return value; } else { throw new ERR_INVALID_OPT_VALUE(name, value); } } return defaultValue; } Sign.prototype.sign = function sign(options, encoding) { if (!options) throw new ERR_CRYPTO_SIGN_KEY_REQUIRED(); var key = options.key || options; var passphrase = options.passphrase || null; // Options specific to RSA var rsaPadding = getPadding(options); var pssSaltLength = getSaltLength(options); key = validateArrayBufferView(key, 'key'); var ret = this._handle.sign(key, passphrase, rsaPadding, pssSaltLength); encoding = encoding || getDefaultEncoding(); if (encoding && encoding !== 'buffer') ret = ret.toString(encoding); return ret; }; function Verify(algorithm, options) { if (!(this instanceof Verify)) return new Verify(algorithm, options); validateString(algorithm, 'algorithm'); this._handle = new _Verify(); this._handle.init(algorithm); Writable.call(this, options); } inherits(Verify, Writable); Verify.prototype._write = Sign.prototype._write; Verify.prototype.update = Sign.prototype.update; Verify.prototype.verify = function verify(options, signature, sigEncoding) { var key = options.key || options; sigEncoding = sigEncoding || getDefaultEncoding(); // Options specific to RSA var rsaPadding = getPadding(options); var pssSaltLength = getSaltLength(options); key = validateArrayBufferView(key, 'key'); signature = validateArrayBufferView(toBuf(signature, sigEncoding), 'signature'); return this._handle.verify(key, signature, rsaPadding, pssSaltLength); }; module.exports = { Sign, Verify }; internal/crypto/util'use strict'; const { getCiphers: _getCiphers, getCurves: _getCurves, getHashes: _getHashes, setEngine: _setEngine, timingSafeEqual: _timingSafeEqual } = process.binding('crypto'); const { ENGINE_METHOD_ALL } = process.binding('constants').crypto; const { ERR_CRYPTO_ENGINE_UNKNOWN, ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH, ERR_INVALID_ARG_TYPE, } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { Buffer } = require('buffer'); const { cachedResult, filterDuplicateStrings } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); var defaultEncoding = 'buffer'; function setDefaultEncoding(val) { defaultEncoding = val; } function getDefaultEncoding() { return defaultEncoding; } // This is here because many functions accepted binary strings without // any explicit encoding in older versions of node, and we don't want // to break them unnecessarily. function toBuf(str, encoding) { if (typeof str === 'string') { if (encoding === 'buffer' || !encoding) encoding = 'utf8'; return Buffer.from(str, encoding); } return str; } const getCiphers = cachedResult(() => filterDuplicateStrings(_getCiphers())); const getHashes = cachedResult(() => filterDuplicateStrings(_getHashes())); const getCurves = cachedResult(() => filterDuplicateStrings(_getCurves())); function setEngine(id, flags) { validateString(id, 'id'); if (flags && typeof flags !== 'number') throw new ERR_INVALID_ARG_TYPE('flags', 'number', flags); flags = flags >>> 0; // Use provided engine for everything by default if (flags === 0) flags = ENGINE_METHOD_ALL; if (!_setEngine(id, flags)) throw new ERR_CRYPTO_ENGINE_UNKNOWN(id); } function timingSafeEqual(buf1, buf2) { if (!isArrayBufferView(buf1)) { throw new ERR_INVALID_ARG_TYPE('buf1', ['Buffer', 'TypedArray', 'DataView'], buf1); } if (!isArrayBufferView(buf2)) { throw new ERR_INVALID_ARG_TYPE('buf2', ['Buffer', 'TypedArray', 'DataView'], buf2); } if (buf1.length !== buf2.length) { throw new ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH(); } return _timingSafeEqual(buf1, buf2); } function validateArrayBufferView(buffer, name) { buffer = toBuf(buffer); if (!isArrayBufferView(buffer)) { throw new ERR_INVALID_ARG_TYPE( name, ['string', 'Buffer', 'TypedArray', 'DataView'], buffer ); } return buffer; } module.exports = { validateArrayBufferView, getCiphers, getCurves, getDefaultEncoding, getHashes, setDefaultEncoding, setEngine, timingSafeEqual, toBuf }; internal/constants'use strict'; const isWindows = process.platform === 'win32'; module.exports = { // Alphabet chars. CHAR_UPPERCASE_A: 65, /* A */ CHAR_LOWERCASE_A: 97, /* a */ CHAR_UPPERCASE_Z: 90, /* Z */ CHAR_LOWERCASE_Z: 122, /* z */ // Non-alphabetic chars. CHAR_DOT: 46, /* . */ CHAR_FORWARD_SLASH: 47, /* / */ CHAR_BACKWARD_SLASH: 92, /* \ */ CHAR_VERTICAL_LINE: 124, /* | */ CHAR_COLON: 58, /* : */ CHAR_QUESTION_MARK: 63, /* ? */ CHAR_UNDERSCORE: 95, /* _ */ CHAR_LINE_FEED: 10, /* \n */ CHAR_CARRIAGE_RETURN: 13, /* \r */ CHAR_TAB: 9, /* \t */ CHAR_FORM_FEED: 12, /* \f */ CHAR_EXCLAMATION_MARK: 33, /* ! */ CHAR_HASH: 35, /* # */ CHAR_SPACE: 32, /* */ CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ CHAR_LEFT_CURLY_BRACKET: 123, /* { */ CHAR_RIGHT_CURLY_BRACKET: 125, /* } */ CHAR_HYPHEN_MINUS: 45, /* - */ CHAR_PLUS: 43, /* + */ CHAR_DOUBLE_QUOTE: 34, /* " */ CHAR_SINGLE_QUOTE: 39, /* ' */ CHAR_PERCENT: 37, /* % */ CHAR_SEMICOLON: 59, /* ; */ CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ CHAR_GRAVE_ACCENT: 96, /* ` */ CHAR_AT: 64, /* @ */ CHAR_AMPERSAND: 38, /* & */ CHAR_EQUAL: 61, /* = */ // Digits CHAR_0: 48, /* 0 */ CHAR_9: 57, /* 9 */ EOL: isWindows ? '\r\n' : '\n' }; internal/dgram'use strict'; const assert = require('assert'); const { codes } = require('internal/errors'); const { UDP } = internalBinding('udp_wrap'); const { ERR_INVALID_ARG_TYPE, ERR_SOCKET_BAD_TYPE } = codes; const kStateSymbol = Symbol('state symbol'); let dns; // Lazy load for startup performance. function lookup4(lookup, address, callback) { return lookup(address || '127.0.0.1', 4, callback); } function lookup6(lookup, address, callback) { return lookup(address || '::1', 6, callback); } function newHandle(type, lookup) { if (lookup === undefined) { if (dns === undefined) { dns = require('dns'); } lookup = dns.lookup; } else if (typeof lookup !== 'function') { throw new ERR_INVALID_ARG_TYPE('lookup', 'Function', lookup); } if (type === 'udp4') { const handle = new UDP(); handle.lookup = lookup4.bind(handle, lookup); return handle; } if (type === 'udp6') { const handle = new UDP(); handle.lookup = lookup6.bind(handle, lookup); handle.bind = handle.bind6; handle.send = handle.send6; return handle; } throw new ERR_SOCKET_BAD_TYPE(); } function _createSocketHandle(address, port, addressType, fd, flags) { // Opening an existing fd is not supported for UDP handles. assert(typeof fd !== 'number' || fd < 0); const handle = newHandle(addressType); if (port || address) { const err = handle.bind(address, port || 0, flags); if (err) { handle.close(); return err; } } return handle; } module.exports = { kStateSymbol, _createSocketHandle, newHandle }; internal/dns/promises'use strict'; const { bindDefaultResolver, Resolver: CallbackResolver, validateHints } = require('internal/dns/utils'); const { codes, dnsException } = require('internal/errors'); const { isIP, isIPv4, isLegalPort } = require('internal/net'); const { getaddrinfo, getnameinfo, ChannelWrap, GetAddrInfoReqWrap, GetNameInfoReqWrap, QueryReqWrap } = process.binding('cares_wrap'); const { ERR_INVALID_ARG_TYPE, ERR_INVALID_OPT_VALUE, ERR_MISSING_ARGS, ERR_SOCKET_BAD_PORT } = codes; function onlookup(err, addresses) { if (err) { this.reject(dnsException(err, 'getaddrinfo', this.hostname)); return; } const family = this.family ? this.family : isIPv4(addresses[0]) ? 4 : 6; this.resolve({ address: addresses[0], family }); } function onlookupall(err, addresses) { if (err) { this.reject(dnsException(err, 'getaddrinfo', this.hostname)); return; } const family = this.family; for (var i = 0; i < addresses.length; i++) { const address = addresses[i]; addresses[i] = { address, family: family ? family : isIPv4(addresses[i]) ? 4 : 6 }; } this.resolve(addresses); } function createLookupPromise(family, hostname, all, hints, verbatim) { return new Promise((resolve, reject) => { if (!hostname) { if (all) resolve([]); else resolve({ address: null, family: family === 6 ? 6 : 4 }); return; } const matchedFamily = isIP(hostname); if (matchedFamily !== 0) { const result = { address: hostname, family: matchedFamily }; if (all) resolve([result]); else resolve(result); return; } const req = new GetAddrInfoReqWrap(); req.family = family; req.hostname = hostname; req.oncomplete = all ? onlookupall : onlookup; req.resolve = resolve; req.reject = reject; const err = getaddrinfo(req, hostname, family, hints, verbatim); if (err) { reject(dnsException(err, 'getaddrinfo', hostname)); } }); } function lookup(hostname, options) { var hints = 0; var family = -1; var all = false; var verbatim = false; // Parse arguments if (hostname && typeof hostname !== 'string') { throw new ERR_INVALID_ARG_TYPE('hostname', ['string', 'falsy'], hostname); } else if (options !== null && typeof options === 'object') { hints = options.hints >>> 0; family = options.family >>> 0; all = options.all === true; verbatim = options.verbatim === true; validateHints(hints); } else { family = options >>> 0; } if (family !== 0 && family !== 4 && family !== 6) throw new ERR_INVALID_OPT_VALUE('family', family); return createLookupPromise(family, hostname, all, hints, verbatim); } function onlookupservice(err, hostname, service) { if (err) { this.reject(dnsException(err, 'getnameinfo', this.host)); return; } this.resolve({ hostname, service }); } function createLookupServicePromise(hostname, port) { return new Promise((resolve, reject) => { const req = new GetNameInfoReqWrap(); req.hostname = hostname; req.port = port; req.oncomplete = onlookupservice; req.resolve = resolve; req.reject = reject; const err = getnameinfo(req, hostname, port); if (err) reject(dnsException(err, 'getnameinfo', hostname)); }); } function lookupService(hostname, port) { if (arguments.length !== 2) throw new ERR_MISSING_ARGS('hostname', 'port'); if (isIP(hostname) === 0) throw new ERR_INVALID_OPT_VALUE('hostname', hostname); if (!isLegalPort(port)) throw new ERR_SOCKET_BAD_PORT(port); return createLookupServicePromise(hostname, +port); } function onresolve(err, result, ttls) { if (err) { this.reject(dnsException(err, this.bindingName, this.hostname)); return; } if (ttls && this.ttl) result = result.map((address, index) => ({ address, ttl: ttls[index] })); this.resolve(result); } function createResolverPromise(resolver, bindingName, hostname, ttl) { return new Promise((resolve, reject) => { const req = new QueryReqWrap(); req.bindingName = bindingName; req.hostname = hostname; req.oncomplete = onresolve; req.resolve = resolve; req.reject = reject; req.ttl = ttl; const err = resolver._handle[bindingName](req, hostname); if (err) reject(dnsException(err, bindingName, hostname)); }); } function resolver(bindingName) { function query(name, options) { if (typeof name !== 'string') { throw new ERR_INVALID_ARG_TYPE('name', 'string', name); } const ttl = !!(options && options.ttl); return createResolverPromise(this, bindingName, name, ttl); } Object.defineProperty(query, 'name', { value: bindingName }); return query; } const resolveMap = Object.create(null); // Resolver instances correspond 1:1 to c-ares channels. class Resolver { constructor() { this._handle = new ChannelWrap(); } } Resolver.prototype.getServers = CallbackResolver.prototype.getServers; Resolver.prototype.setServers = CallbackResolver.prototype.setServers; Resolver.prototype.resolveAny = resolveMap.ANY = resolver('queryAny'); Resolver.prototype.resolve4 = resolveMap.A = resolver('queryA'); Resolver.prototype.resolve6 = resolveMap.AAAA = resolver('queryAaaa'); Resolver.prototype.resolveCname = resolveMap.CNAME = resolver('queryCname'); Resolver.prototype.resolveMx = resolveMap.MX = resolver('queryMx'); Resolver.prototype.resolveNs = resolveMap.NS = resolver('queryNs'); Resolver.prototype.resolveTxt = resolveMap.TXT = resolver('queryTxt'); Resolver.prototype.resolveSrv = resolveMap.SRV = resolver('querySrv'); Resolver.prototype.resolvePtr = resolveMap.PTR = resolver('queryPtr'); Resolver.prototype.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr'); Resolver.prototype.resolveSoa = resolveMap.SOA = resolver('querySoa'); Resolver.prototype.reverse = resolver('getHostByAddr'); Resolver.prototype.resolve = function resolve(hostname, rrtype) { var resolver; if (typeof rrtype === 'string') { resolver = resolveMap[rrtype]; if (typeof resolver !== 'function') throw new ERR_INVALID_OPT_VALUE('rrtype', rrtype); } else if (rrtype === undefined) { resolver = resolveMap.A; } else { throw new ERR_INVALID_ARG_TYPE('rrtype', 'string', rrtype); } return resolver.call(this, hostname); }; module.exports = { lookup, lookupService, Resolver }; bindDefaultResolver(module.exports, Resolver.prototype); internal/dns/utils'use strict'; const errors = require('internal/errors'); const { isIP } = require('internal/net'); const { ChannelWrap, strerror, AI_ADDRCONFIG, AI_V4MAPPED } = process.binding('cares_wrap'); const IANA_DNS_PORT = 53; const IPv6RE = /^\[([^[\]]*)\]/; const addrSplitRE = /(^.+?)(?::(\d+))?$/; const { ERR_DNS_SET_SERVERS_FAILED, ERR_INVALID_IP_ADDRESS, ERR_INVALID_OPT_VALUE } = errors.codes; // Resolver instances correspond 1:1 to c-ares channels. class Resolver { constructor() { this._handle = new ChannelWrap(); } cancel() { this._handle.cancel(); } getServers() { return this._handle.getServers().map((val) => { if (!val[1] || val[1] === IANA_DNS_PORT) return val[0]; const host = isIP(val[0]) === 6 ? `[${val[0]}]` : val[0]; return `${host}:${val[1]}`; }); } setServers(servers) { // Cache the original servers because in the event of an error while // setting the servers, c-ares won't have any servers available for // resolution. const orig = this._handle.getServers(); const newSet = []; servers.forEach((serv) => { var ipVersion = isIP(serv); if (ipVersion !== 0) return newSet.push([ipVersion, serv, IANA_DNS_PORT]); const match = serv.match(IPv6RE); // Check for an IPv6 in brackets. if (match) { ipVersion = isIP(match[1]); if (ipVersion !== 0) { const port = parseInt(serv.replace(addrSplitRE, '$2')) || IANA_DNS_PORT; return newSet.push([ipVersion, match[1], port]); } } // addr::port const addrSplitMatch = serv.match(addrSplitRE); if (addrSplitMatch) { const hostIP = addrSplitMatch[1]; const port = addrSplitMatch[2] || IANA_DNS_PORT; ipVersion = isIP(hostIP); if (ipVersion !== 0) { return newSet.push([ipVersion, hostIP, parseInt(port)]); } } throw new ERR_INVALID_IP_ADDRESS(serv); }); const errorNumber = this._handle.setServers(newSet); if (errorNumber !== 0) { // Reset the servers to the old servers, because ares probably unset them. this._handle.setServers(orig.join(',')); const err = strerror(errorNumber); throw new ERR_DNS_SET_SERVERS_FAILED(err, servers); } } } let defaultResolver = new Resolver(); const resolverKeys = [ 'getServers', 'resolve', 'resolveAny', 'resolve4', 'resolve6', 'resolveCname', 'resolveMx', 'resolveNs', 'resolveTxt', 'resolveSrv', 'resolvePtr', 'resolveNaptr', 'resolveSoa', 'reverse' ]; function getDefaultResolver() { return defaultResolver; } function setDefaultResolver(resolver) { defaultResolver = resolver; } function bindDefaultResolver(target, source) { resolverKeys.forEach((key) => { target[key] = source[key].bind(defaultResolver); }); } function validateHints(hints) { if (hints !== 0 && hints !== AI_ADDRCONFIG && hints !== AI_V4MAPPED && hints !== (AI_ADDRCONFIG | AI_V4MAPPED)) { throw new ERR_INVALID_OPT_VALUE('hints', hints); } } module.exports = { bindDefaultResolver, getDefaultResolver, setDefaultResolver, validateHints, Resolver }; internal/domexception'use strict'; const { registerDOMException } = internalBinding('messaging'); const { ERR_INVALID_THIS } = require('internal/errors').codes; const internalsMap = new WeakMap(); const nameToCodeMap = new Map(); class DOMException extends Error { constructor(message = '', name = 'Error') { super(); internalsMap.set(this, { message: `${message}`, name: `${name}` }); } get name() { const internals = internalsMap.get(this); if (internals === undefined) { throw new ERR_INVALID_THIS('DOMException'); } return internals.name; } get message() { const internals = internalsMap.get(this); if (internals === undefined) { throw new ERR_INVALID_THIS('DOMException'); } return internals.message; } get code() { const internals = internalsMap.get(this); if (internals === undefined) { throw new ERR_INVALID_THIS('DOMException'); } const code = nameToCodeMap.get(internals.name); return code === undefined ? 0 : code; } } Object.defineProperties(DOMException.prototype, { [Symbol.toStringTag]: { configurable: true, value: 'DOMException' }, name: { enumerable: true, configurable: true }, message: { enumerable: true, configurable: true }, code: { enumerable: true, configurable: true } }); for (const [name, codeName, value] of [ ['IndexSizeError', 'INDEX_SIZE_ERR', 1], ['DOMStringSizeError', 'DOMSTRING_SIZE_ERR', 2], ['HierarchyRequestError', 'HIERARCHY_REQUEST_ERR', 3], ['WrongDocumentError', 'WRONG_DOCUMENT_ERR', 4], ['InvalidCharacterError', 'INVALID_CHARACTER_ERR', 5], ['NoDataAllowedError', 'NO_DATA_ALLOWED_ERR', 6], ['NoModificationAllowedError', 'NO_MODIFICATION_ALLOWED_ERR', 7], ['NotFoundError', 'NOT_FOUND_ERR', 8], ['NotSupportedError', 'NOT_SUPPORTED_ERR', 9], ['InUseAttributeError', 'INUSE_ATTRIBUTE_ERR', 10], ['InvalidStateError', 'INVALID_STATE_ERR', 11], ['SyntaxError', 'SYNTAX_ERR', 12], ['InvalidModificationError', 'INVALID_MODIFICATION_ERR', 13], ['NamespaceError', 'NAMESPACE_ERR', 14], ['InvalidAccessError', 'INVALID_ACCESS_ERR', 15], ['ValidationError', 'VALIDATION_ERR', 16], ['TypeMismatchError', 'TYPE_MISMATCH_ERR', 17], ['SecurityError', 'SECURITY_ERR', 18], ['NetworkError', 'NETWORK_ERR', 19], ['AbortError', 'ABORT_ERR', 20], ['URLMismatchError', 'URL_MISMATCH_ERR', 21], ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR', 22], ['TimeoutError', 'TIMEOUT_ERR', 23], ['InvalidNodeTypeError', 'INVALID_NODE_TYPE_ERR', 24], ['DataCloneError', 'DATA_CLONE_ERR', 25] // There are some more error names, but since they don't have codes assigned, // we don't need to care about them. ]) { const desc = { enumerable: true, value }; Object.defineProperty(DOMException, codeName, desc); Object.defineProperty(DOMException.prototype, codeName, desc); nameToCodeMap.set(name, value); } module.exports = DOMException; registerDOMException(DOMException); internal/encoding'use strict'; // An implementation of the WHATWG Encoding Standard // https://encoding.spec.whatwg.org const { ERR_ENCODING_INVALID_ENCODED_DATA, ERR_ENCODING_NOT_SUPPORTED, ERR_INVALID_ARG_TYPE, ERR_INVALID_THIS, ERR_NO_ICU } = require('internal/errors').codes; const kHandle = Symbol('handle'); const kFlags = Symbol('flags'); const kEncoding = Symbol('encoding'); const kDecoder = Symbol('decoder'); const kEncoder = Symbol('encoder'); const { getConstructorOf, customInspectSymbol: inspect } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); const { isArrayBuffer } = internalBinding('types'); const { encodeUtf8String } = process.binding('buffer'); var Buffer; function lazyBuffer() { if (Buffer === undefined) Buffer = require('buffer').Buffer; return Buffer; } function validateEncoder(obj) { if (obj == null || obj[kEncoder] !== true) throw new ERR_INVALID_THIS('TextEncoder'); } function validateDecoder(obj) { if (obj == null || obj[kDecoder] !== true) throw new ERR_INVALID_THIS('TextDecoder'); } function validateArgument(prop, expected, propName, expectedName) { if (typeof prop !== expected) throw new ERR_INVALID_ARG_TYPE(propName, expectedName, prop); } const CONVERTER_FLAGS_FLUSH = 0x1; const CONVERTER_FLAGS_FATAL = 0x2; const CONVERTER_FLAGS_IGNORE_BOM = 0x4; const empty = new Uint8Array(0); const encodings = new Map([ ['unicode-1-1-utf-8', 'utf-8'], ['utf8', 'utf-8'], ['utf-8', 'utf-8'], ['866', 'ibm866'], ['cp866', 'ibm866'], ['csibm866', 'ibm866'], ['ibm866', 'ibm866'], ['csisolatin2', 'iso-8859-2'], ['iso-8859-2', 'iso-8859-2'], ['iso-ir-101', 'iso-8859-2'], ['iso8859-2', 'iso-8859-2'], ['iso88592', 'iso-8859-2'], ['iso_8859-2', 'iso-8859-2'], ['iso_8859-2:1987', 'iso-8859-2'], ['l2', 'iso-8859-2'], ['latin2', 'iso-8859-2'], ['csisolatin3', 'iso-8859-3'], ['iso-8859-3', 'iso-8859-3'], ['iso-ir-109', 'iso-8859-3'], ['iso8859-3', 'iso-8859-3'], ['iso88593', 'iso-8859-3'], ['iso_8859-3', 'iso-8859-3'], ['iso_8859-3:1988', 'iso-8859-3'], ['l3', 'iso-8859-3'], ['latin3', 'iso-8859-3'], ['csisolatin4', 'iso-8859-4'], ['iso-8859-4', 'iso-8859-4'], ['iso-ir-110', 'iso-8859-4'], ['iso8859-4', 'iso-8859-4'], ['iso88594', 'iso-8859-4'], ['iso_8859-4', 'iso-8859-4'], ['iso_8859-4:1988', 'iso-8859-4'], ['l4', 'iso-8859-4'], ['latin4', 'iso-8859-4'], ['csisolatincyrillic', 'iso-8859-5'], ['cyrillic', 'iso-8859-5'], ['iso-8859-5', 'iso-8859-5'], ['iso-ir-144', 'iso-8859-5'], ['iso8859-5', 'iso-8859-5'], ['iso88595', 'iso-8859-5'], ['iso_8859-5', 'iso-8859-5'], ['iso_8859-5:1988', 'iso-8859-5'], ['arabic', 'iso-8859-6'], ['asmo-708', 'iso-8859-6'], ['csiso88596e', 'iso-8859-6'], ['csiso88596i', 'iso-8859-6'], ['csisolatinarabic', 'iso-8859-6'], ['ecma-114', 'iso-8859-6'], ['iso-8859-6', 'iso-8859-6'], ['iso-8859-6-e', 'iso-8859-6'], ['iso-8859-6-i', 'iso-8859-6'], ['iso-ir-127', 'iso-8859-6'], ['iso8859-6', 'iso-8859-6'], ['iso88596', 'iso-8859-6'], ['iso_8859-6', 'iso-8859-6'], ['iso_8859-6:1987', 'iso-8859-6'], ['csisolatingreek', 'iso-8859-7'], ['ecma-118', 'iso-8859-7'], ['elot_928', 'iso-8859-7'], ['greek', 'iso-8859-7'], ['greek8', 'iso-8859-7'], ['iso-8859-7', 'iso-8859-7'], ['iso-ir-126', 'iso-8859-7'], ['iso8859-7', 'iso-8859-7'], ['iso88597', 'iso-8859-7'], ['iso_8859-7', 'iso-8859-7'], ['iso_8859-7:1987', 'iso-8859-7'], ['sun_eu_greek', 'iso-8859-7'], ['csiso88598e', 'iso-8859-8'], ['csisolatinhebrew', 'iso-8859-8'], ['hebrew', 'iso-8859-8'], ['iso-8859-8', 'iso-8859-8'], ['iso-8859-8-e', 'iso-8859-8'], ['iso-ir-138', 'iso-8859-8'], ['iso8859-8', 'iso-8859-8'], ['iso88598', 'iso-8859-8'], ['iso_8859-8', 'iso-8859-8'], ['iso_8859-8:1988', 'iso-8859-8'], ['visual', 'iso-8859-8'], ['csiso88598i', 'iso-8859-8-i'], ['iso-8859-8-i', 'iso-8859-8-i'], ['logical', 'iso-8859-8-i'], ['csisolatin6', 'iso-8859-10'], ['iso-8859-10', 'iso-8859-10'], ['iso-ir-157', 'iso-8859-10'], ['iso8859-10', 'iso-8859-10'], ['iso885910', 'iso-8859-10'], ['l6', 'iso-8859-10'], ['latin6', 'iso-8859-10'], ['iso-8859-13', 'iso-8859-13'], ['iso8859-13', 'iso-8859-13'], ['iso885913', 'iso-8859-13'], ['iso-8859-14', 'iso-8859-14'], ['iso8859-14', 'iso-8859-14'], ['iso885914', 'iso-8859-14'], ['csisolatin9', 'iso-8859-15'], ['iso-8859-15', 'iso-8859-15'], ['iso8859-15', 'iso-8859-15'], ['iso885915', 'iso-8859-15'], ['iso_8859-15', 'iso-8859-15'], ['l9', 'iso-8859-15'], ['cskoi8r', 'koi8-r'], ['koi', 'koi8-r'], ['koi8', 'koi8-r'], ['koi8-r', 'koi8-r'], ['koi8_r', 'koi8-r'], ['koi8-ru', 'koi8-u'], ['koi8-u', 'koi8-u'], ['csmacintosh', 'macintosh'], ['mac', 'macintosh'], ['macintosh', 'macintosh'], ['x-mac-roman', 'macintosh'], ['dos-874', 'windows-874'], ['iso-8859-11', 'windows-874'], ['iso8859-11', 'windows-874'], ['iso885911', 'windows-874'], ['tis-620', 'windows-874'], ['windows-874', 'windows-874'], ['cp1250', 'windows-1250'], ['windows-1250', 'windows-1250'], ['x-cp1250', 'windows-1250'], ['cp1251', 'windows-1251'], ['windows-1251', 'windows-1251'], ['x-cp1251', 'windows-1251'], ['ansi_x3.4-1968', 'windows-1252'], ['ascii', 'windows-1252'], ['cp1252', 'windows-1252'], ['cp819', 'windows-1252'], ['csisolatin1', 'windows-1252'], ['ibm819', 'windows-1252'], ['iso-8859-1', 'windows-1252'], ['iso-ir-100', 'windows-1252'], ['iso8859-1', 'windows-1252'], ['iso88591', 'windows-1252'], ['iso_8859-1', 'windows-1252'], ['iso_8859-1:1987', 'windows-1252'], ['l1', 'windows-1252'], ['latin1', 'windows-1252'], ['us-ascii', 'windows-1252'], ['windows-1252', 'windows-1252'], ['x-cp1252', 'windows-1252'], ['cp1253', 'windows-1253'], ['windows-1253', 'windows-1253'], ['x-cp1253', 'windows-1253'], ['cp1254', 'windows-1254'], ['csisolatin5', 'windows-1254'], ['iso-8859-9', 'windows-1254'], ['iso-ir-148', 'windows-1254'], ['iso8859-9', 'windows-1254'], ['iso88599', 'windows-1254'], ['iso_8859-9', 'windows-1254'], ['iso_8859-9:1989', 'windows-1254'], ['l5', 'windows-1254'], ['latin5', 'windows-1254'], ['windows-1254', 'windows-1254'], ['x-cp1254', 'windows-1254'], ['cp1255', 'windows-1255'], ['windows-1255', 'windows-1255'], ['x-cp1255', 'windows-1255'], ['cp1256', 'windows-1256'], ['windows-1256', 'windows-1256'], ['x-cp1256', 'windows-1256'], ['cp1257', 'windows-1257'], ['windows-1257', 'windows-1257'], ['x-cp1257', 'windows-1257'], ['cp1258', 'windows-1258'], ['windows-1258', 'windows-1258'], ['x-cp1258', 'windows-1258'], ['x-mac-cyrillic', 'x-mac-cyrillic'], ['x-mac-ukrainian', 'x-mac-cyrillic'], ['chinese', 'gbk'], ['csgb2312', 'gbk'], ['csiso58gb231280', 'gbk'], ['gb2312', 'gbk'], ['gb_2312', 'gbk'], ['gb_2312-80', 'gbk'], ['gbk', 'gbk'], ['iso-ir-58', 'gbk'], ['x-gbk', 'gbk'], ['gb18030', 'gb18030'], ['big5', 'big5'], ['big5-hkscs', 'big5'], ['cn-big5', 'big5'], ['csbig5', 'big5'], ['x-x-big5', 'big5'], ['cseucpkdfmtjapanese', 'euc-jp'], ['euc-jp', 'euc-jp'], ['x-euc-jp', 'euc-jp'], ['csiso2022jp', 'iso-2022-jp'], ['iso-2022-jp', 'iso-2022-jp'], ['csshiftjis', 'shift_jis'], ['ms932', 'shift_jis'], ['ms_kanji', 'shift_jis'], ['shift-jis', 'shift_jis'], ['shift_jis', 'shift_jis'], ['sjis', 'shift_jis'], ['windows-31j', 'shift_jis'], ['x-sjis', 'shift_jis'], ['cseuckr', 'euc-kr'], ['csksc56011987', 'euc-kr'], ['euc-kr', 'euc-kr'], ['iso-ir-149', 'euc-kr'], ['korean', 'euc-kr'], ['ks_c_5601-1987', 'euc-kr'], ['ks_c_5601-1989', 'euc-kr'], ['ksc5601', 'euc-kr'], ['ksc_5601', 'euc-kr'], ['windows-949', 'euc-kr'], ['utf-16be', 'utf-16be'], ['utf-16le', 'utf-16le'], ['utf-16', 'utf-16le'] ]); // Unfortunately, String.prototype.trim also removes non-ascii whitespace, // so we have to do this manually function trimAsciiWhitespace(label) { var s = 0; var e = label.length; while (s < e && ( label[s] === '\u0009' || label[s] === '\u000a' || label[s] === '\u000c' || label[s] === '\u000d' || label[s] === '\u0020')) { s++; } while (e > s && ( label[e - 1] === '\u0009' || label[e - 1] === '\u000a' || label[e - 1] === '\u000c' || label[e - 1] === '\u000d' || label[e - 1] === '\u0020')) { e--; } return label.slice(s, e); } function getEncodingFromLabel(label) { const enc = encodings.get(label); if (enc !== undefined) return enc; return encodings.get(trimAsciiWhitespace(label.toLowerCase())); } class TextEncoder { constructor() { this[kEncoder] = true; } get encoding() { validateEncoder(this); return 'utf-8'; } encode(input = '') { validateEncoder(this); return encodeUtf8String(`${input}`); } [inspect](depth, opts) { validateEncoder(this); if (typeof depth === 'number' && depth < 0) return opts.stylize('[Object]', 'special'); var ctor = getConstructorOf(this); var obj = Object.create({ constructor: ctor === null ? TextEncoder : ctor }); obj.encoding = this.encoding; // Lazy to avoid circular dependency return require('util').inspect(obj, opts); } } Object.defineProperties( TextEncoder.prototype, { 'encode': { enumerable: true }, 'encoding': { enumerable: true }, [Symbol.toStringTag]: { configurable: true, value: 'TextEncoder' } }); const TextDecoder = process.binding('config').hasIntl ? makeTextDecoderICU() : makeTextDecoderJS(); function makeTextDecoderICU() { const { decode: _decode, getConverter, } = internalBinding('icu'); class TextDecoder { constructor(encoding = 'utf-8', options = {}) { encoding = `${encoding}`; validateArgument(options, 'object', 'options', 'Object'); const enc = getEncodingFromLabel(encoding); if (enc === undefined) throw new ERR_ENCODING_NOT_SUPPORTED(encoding); var flags = 0; if (options !== null) { flags |= options.fatal ? CONVERTER_FLAGS_FATAL : 0; flags |= options.ignoreBOM ? CONVERTER_FLAGS_IGNORE_BOM : 0; } const handle = getConverter(enc, flags); if (handle === undefined) throw new ERR_ENCODING_NOT_SUPPORTED(encoding); this[kDecoder] = true; this[kHandle] = handle; this[kFlags] = flags; this[kEncoding] = enc; } decode(input = empty, options = {}) { validateDecoder(this); if (isArrayBuffer(input)) { input = lazyBuffer().from(input); } else if (!isArrayBufferView(input)) { throw new ERR_INVALID_ARG_TYPE('input', ['ArrayBuffer', 'ArrayBufferView'], input); } validateArgument(options, 'object', 'options', 'Object'); var flags = 0; if (options !== null) flags |= options.stream ? 0 : CONVERTER_FLAGS_FLUSH; const ret = _decode(this[kHandle], input, flags); if (typeof ret === 'number') { const err = new ERR_ENCODING_INVALID_ENCODED_DATA(this.encoding); err.errno = ret; throw err; } return ret.toString('ucs2'); } } return TextDecoder; } function makeTextDecoderJS() { var StringDecoder; function lazyStringDecoder() { if (StringDecoder === undefined) ({ StringDecoder } = require('string_decoder')); return StringDecoder; } const kBOMSeen = Symbol('BOM seen'); function hasConverter(encoding) { return encoding === 'utf-8' || encoding === 'utf-16le'; } class TextDecoder { constructor(encoding = 'utf-8', options = {}) { encoding = `${encoding}`; validateArgument(options, 'object', 'options', 'Object'); const enc = getEncodingFromLabel(encoding); if (enc === undefined || !hasConverter(enc)) throw new ERR_ENCODING_NOT_SUPPORTED(encoding); var flags = 0; if (options !== null) { if (options.fatal) { throw new ERR_NO_ICU('"fatal" option'); } flags |= options.ignoreBOM ? CONVERTER_FLAGS_IGNORE_BOM : 0; } this[kDecoder] = true; // StringDecoder will normalize WHATWG encoding to Node.js encoding. this[kHandle] = new (lazyStringDecoder())(enc); this[kFlags] = flags; this[kEncoding] = enc; this[kBOMSeen] = false; } decode(input = empty, options = {}) { validateDecoder(this); if (isArrayBuffer(input)) { input = lazyBuffer().from(input); } else if (isArrayBufferView(input)) { input = lazyBuffer().from(input.buffer, input.byteOffset, input.byteLength); } else { throw new ERR_INVALID_ARG_TYPE('input', ['ArrayBuffer', 'ArrayBufferView'], input); } validateArgument(options, 'object', 'options', 'Object'); if (this[kFlags] & CONVERTER_FLAGS_FLUSH) { this[kBOMSeen] = false; } if (options !== null && options.stream) { this[kFlags] &= ~CONVERTER_FLAGS_FLUSH; } else { this[kFlags] |= CONVERTER_FLAGS_FLUSH; } if (!this[kBOMSeen] && !(this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM)) { if (this[kEncoding] === 'utf-8') { if (input.length >= 3 && input[0] === 0xEF && input[1] === 0xBB && input[2] === 0xBF) { input = input.slice(3); } } else if (this[kEncoding] === 'utf-16le') { if (input.length >= 2 && input[0] === 0xFF && input[1] === 0xFE) { input = input.slice(2); } } this[kBOMSeen] = true; } if (this[kFlags] & CONVERTER_FLAGS_FLUSH) { return this[kHandle].end(input); } return this[kHandle].write(input); } } return TextDecoder; } // Mix in some shared properties. { Object.defineProperties( TextDecoder.prototype, Object.getOwnPropertyDescriptors({ get encoding() { validateDecoder(this); return this[kEncoding]; }, get fatal() { validateDecoder(this); return (this[kFlags] & CONVERTER_FLAGS_FATAL) === CONVERTER_FLAGS_FATAL; }, get ignoreBOM() { validateDecoder(this); return (this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM) === CONVERTER_FLAGS_IGNORE_BOM; }, [inspect](depth, opts) { validateDecoder(this); if (typeof depth === 'number' && depth < 0) return opts.stylize('[Object]', 'special'); var ctor = getConstructorOf(this); var obj = Object.create({ constructor: ctor === null ? TextDecoder : ctor }); obj.encoding = this.encoding; obj.fatal = this.fatal; obj.ignoreBOM = this.ignoreBOM; if (opts.showHidden) { obj[kFlags] = this[kFlags]; obj[kHandle] = this[kHandle]; } // Lazy to avoid circular dependency return require('util').inspect(obj, opts); } })); Object.defineProperties(TextDecoder.prototype, { decode: { enumerable: true }, [inspect]: { enumerable: false }, [Symbol.toStringTag]: { configurable: true, value: 'TextDecoder' } }); } module.exports = { getEncodingFromLabel, TextDecoder, TextEncoder }; internal/errors/* eslint node-core/documented-errors: "error" */ /* eslint node-core/alphabetize-errors: "error" */ /* eslint node-core/prefer-util-format-errors: "error" */ 'use strict'; // The whole point behind this internal module is to allow Node.js to no // longer be forced to treat every error message change as a semver-major // change. The NodeError classes here all expose a `code` property whose // value statically and permanently identifies the error. While the error // message may change, the code should not. const kCode = Symbol('code'); const kInfo = Symbol('info'); const messages = new Map(); const codes = {}; const { errmap, UV_EAI_MEMORY, UV_EAI_NODATA, UV_EAI_NONAME } = process.binding('uv'); const { kMaxLength } = process.binding('buffer'); const { defineProperty } = Object; // Lazily loaded let util; let assert; let internalUtil = null; function lazyInternalUtil() { if (!internalUtil) { internalUtil = require('internal/util'); } return internalUtil; } let buffer; function lazyBuffer() { if (buffer === undefined) buffer = require('buffer').Buffer; return buffer; } // A specialized Error that includes an additional info property with // additional information about the error condition. // It has the properties present in a UVException but with a custom error // message followed by the uv error code and uv error message. // It also has its own error code with the original uv error context put into // `err.info`. // The context passed into this error must have .code, .syscall and .message, // and may have .path and .dest. class SystemError extends Error { constructor(key, context) { const prefix = getMessage(key, []); let message = `${prefix}: ${context.syscall} returned ` + `${context.code} (${context.message})`; if (context.path !== undefined) message += ` ${context.path}`; if (context.dest !== undefined) message += ` => ${context.dest}`; super(message); Object.defineProperty(this, kInfo, { configurable: false, enumerable: false, value: context }); Object.defineProperty(this, kCode, { configurable: true, enumerable: false, value: key, writable: true }); } get name() { return `SystemError [${this[kCode]}]`; } set name(value) { defineProperty(this, 'name', { configurable: true, enumerable: true, value, writable: true }); } get code() { return this[kCode]; } set code(value) { defineProperty(this, 'code', { configurable: true, enumerable: true, value, writable: true }); } get info() { return this[kInfo]; } get errno() { return this[kInfo].errno; } set errno(val) { this[kInfo].errno = val; } get syscall() { return this[kInfo].syscall; } set syscall(val) { this[kInfo].syscall = val; } get path() { return this[kInfo].path !== undefined ? this[kInfo].path.toString() : undefined; } set path(val) { this[kInfo].path = val ? lazyBuffer().from(val.toString()) : undefined; } get dest() { return this[kInfo].path !== undefined ? this[kInfo].dest.toString() : undefined; } set dest(val) { this[kInfo].dest = val ? lazyBuffer().from(val.toString()) : undefined; } } function makeSystemErrorWithCode(key) { return class NodeError extends SystemError { constructor(ctx) { super(key, ctx); } }; } let useOriginalName = false; function makeNodeErrorWithCode(Base, key) { return class NodeError extends Base { constructor(...args) { super(getMessage(key, args)); } get name() { if (useOriginalName) { return super.name; } return `${super.name} [${key}]`; } set name(value) { defineProperty(this, 'name', { configurable: true, enumerable: true, value, writable: true }); } get code() { return key; } set code(value) { defineProperty(this, 'code', { configurable: true, enumerable: true, value, writable: true }); } }; } // Utility function for registering the error codes. Only used here. Exported // *only* to allow for testing. function E(sym, val, def, ...otherClasses) { // Special case for SystemError that formats the error message differently // The SystemErrors only have SystemError as their base classes. messages.set(sym, val); if (def === SystemError) { def = makeSystemErrorWithCode(sym); } else { def = makeNodeErrorWithCode(def, sym); } if (otherClasses.length !== 0) { otherClasses.forEach((clazz) => { def[clazz.name] = makeNodeErrorWithCode(clazz, sym); }); } codes[sym] = def; } function getMessage(key, args) { const msg = messages.get(key); if (util === undefined) util = require('util'); if (assert === undefined) assert = require('assert'); if (typeof msg === 'function') { assert( msg.length <= args.length, // Default options do not count. `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${msg.length}).` ); return msg.apply(null, args); } const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length; assert( expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${expectedLength}).` ); if (args.length === 0) return msg; args.unshift(msg); return util.format.apply(null, args); } /** * This creates an error compatible with errors produced in the C++ * function UVException using a context object with data assembled in C++. * The goal is to migrate them to ERR_* errors later when compatibility is * not a concern. * * @param {Object} ctx * @returns {Error} */ function uvException(ctx) { const [ code, uvmsg ] = errmap.get(ctx.errno); let message = `${code}: ${ctx.message || uvmsg}, ${ctx.syscall}`; let path; let dest; if (ctx.path) { path = ctx.path.toString(); message += ` '${path}'`; } if (ctx.dest) { dest = ctx.dest.toString(); message += ` -> '${dest}'`; } // Pass the message to the constructor instead of setting it on the object // to make sure it is the same as the one created in C++ // eslint-disable-next-line no-restricted-syntax const err = new Error(message); for (const prop of Object.keys(ctx)) { if (prop === 'message' || prop === 'path' || prop === 'dest') { continue; } err[prop] = ctx[prop]; } err.code = code; if (path) { err.path = path; } if (dest) { err.dest = dest; } Error.captureStackTrace(err, uvException); return err; } /** * This creates an error compatible with errors produced in the C++ * This function should replace the deprecated * `exceptionWithHostPort()` function. * * @param {number} err - A libuv error number * @param {string} syscall * @param {string} address * @param {number} [port] * @returns {Error} */ function uvExceptionWithHostPort(err, syscall, address, port) { const [ code, uvmsg ] = errmap.get(err); const message = `${syscall} ${code}: ${uvmsg}`; let details = ''; if (port && port > 0) { details = ` ${address}:${port}`; } else if (address) { details = ` ${address}`; } // eslint-disable-next-line no-restricted-syntax const ex = new Error(`${message}${details}`); ex.code = code; ex.errno = code; ex.syscall = syscall; ex.address = address; if (port) { ex.port = port; } Error.captureStackTrace(ex, uvExceptionWithHostPort); return ex; } /** * This used to be util._errnoException(). * * @param {number} err - A libuv error number * @param {string} syscall * @param {string} [original] * @returns {Error} */ function errnoException(err, syscall, original) { // TODO(joyeecheung): We have to use the type-checked // getSystemErrorName(err) to guard against invalid arguments from users. // This can be replaced with [ code ] = errmap.get(err) when this method // is no longer exposed to user land. if (util === undefined) util = require('util'); const code = util.getSystemErrorName(err); const message = original ? `${syscall} ${code} ${original}` : `${syscall} ${code}`; // eslint-disable-next-line no-restricted-syntax const ex = new Error(message); // TODO(joyeecheung): errno is supposed to err, like in uvException ex.code = ex.errno = code; ex.syscall = syscall; Error.captureStackTrace(ex, errnoException); return ex; } /** * Deprecated, new function is `uvExceptionWithHostPort()` * New function added the error description directly * from C++. this method for backwards compatibility * @param {number} err - A libuv error number * @param {string} syscall * @param {string} address * @param {number} [port] * @param {string} [additional] * @returns {Error} */ function exceptionWithHostPort(err, syscall, address, port, additional) { // TODO(joyeecheung): We have to use the type-checked // getSystemErrorName(err) to guard against invalid arguments from users. // This can be replaced with [ code ] = errmap.get(err) when this method // is no longer exposed to user land. if (util === undefined) util = require('util'); const code = util.getSystemErrorName(err); let details = ''; if (port && port > 0) { details = ` ${address}:${port}`; } else if (address) { details = ` ${address}`; } if (additional) { details += ` - Local (${additional})`; } // eslint-disable-next-line no-restricted-syntax const ex = new Error(`${syscall} ${code}${details}`); // TODO(joyeecheung): errno is supposed to err, like in uvException ex.code = ex.errno = code; ex.syscall = syscall; ex.address = address; if (port) { ex.port = port; } Error.captureStackTrace(ex, exceptionWithHostPort); return ex; } /** * @param {number|string} code - A libuv error number or a c-ares error code * @param {string} syscall * @param {string} [hostname] * @returns {Error} */ function dnsException(code, syscall, hostname) { // If `code` is of type number, it is a libuv error number, else it is a // c-ares error code. if (typeof code === 'number') { // FIXME(bnoordhuis) Remove this backwards compatibility nonsense and pass // the true error to the user. ENOTFOUND is not even a proper POSIX error! if (code === UV_EAI_MEMORY || code === UV_EAI_NODATA || code === UV_EAI_NONAME) { code = 'ENOTFOUND'; // Fabricated error name. } else { code = lazyInternalUtil().getSystemErrorName(code); } } const message = `${syscall} ${code}${hostname ? ` ${hostname}` : ''}`; // eslint-disable-next-line no-restricted-syntax const ex = new Error(message); // TODO(joyeecheung): errno is supposed to be a number / err, like in // uvException. ex.errno = code; ex.code = code; ex.syscall = syscall; if (hostname) { ex.hostname = hostname; } Error.captureStackTrace(ex, dnsException); return ex; } let maxStack_ErrorName; let maxStack_ErrorMessage; /** * Returns true if `err.name` and `err.message` are equal to engine-specific * values indicating max call stack size has been exceeded. * "Maximum call stack size exceeded" in V8. * * @param {Error} err * @returns {boolean} */ function isStackOverflowError(err) { if (maxStack_ErrorMessage === undefined) { try { function overflowStack() { overflowStack(); } overflowStack(); } catch (err) { maxStack_ErrorMessage = err.message; maxStack_ErrorName = err.name; } } return err.name === maxStack_ErrorName && err.message === maxStack_ErrorMessage; } function oneOf(expected, thing) { assert(typeof thing === 'string', '`thing` has to be of type string'); if (Array.isArray(expected)) { const len = expected.length; assert(len > 0, 'At least one expected value needs to be specified'); expected = expected.map((i) => String(i)); if (len > 2) { return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + expected[len - 1]; } else if (len === 2) { return `one of ${thing} ${expected[0]} or ${expected[1]}`; } else { return `of ${thing} ${expected[0]}`; } } else { return `of ${thing} ${String(expected)}`; } } module.exports = { dnsException, errnoException, exceptionWithHostPort, uvException, uvExceptionWithHostPort, isStackOverflowError, getMessage, SystemError, codes, // This is exported only to facilitate testing. E, // This allows us to tell the type of the errors without using // instanceof, which is necessary in WPT harness. get useOriginalName() { return useOriginalName; }, set useOriginalName(value) { useOriginalName = value; } }; // To declare an error message, use the E(sym, val, def) function above. The sym // must be an upper case string. The val can be either a function or a string. // The def must be an error class. // The return value of the function must be a string. // Examples: // E('EXAMPLE_KEY1', 'This is the error value', Error); // E('EXAMPLE_KEY2', (a, b) => return `${a} ${b}`, RangeError); // // Once an error code has been assigned, the code itself MUST NOT change and // any given error code must never be reused to identify a different error. // // Any error code added here should also be added to the documentation // // Note: Please try to keep these in alphabetical order // // Note: Node.js specific errors must begin with the prefix ERR_ E('ERR_AMBIGUOUS_ARGUMENT', 'The "%s" argument is ambiguous. %s', TypeError); E('ERR_ARG_NOT_ITERABLE', '%s must be iterable', TypeError); E('ERR_ASSERTION', '%s', Error); E('ERR_ASYNC_CALLBACK', '%s must be a function', TypeError); E('ERR_ASYNC_TYPE', 'Invalid name for async "type": %s', TypeError); E('ERR_BUFFER_OUT_OF_BOUNDS', // Using a default argument here is important so the argument is not counted // towards `Function#length`. (name = undefined) => { if (name) { return `"${name}" is outside of buffer bounds`; } return 'Attempt to write outside buffer bounds'; }, RangeError); E('ERR_BUFFER_TOO_LARGE', `Cannot create a Buffer larger than 0x${kMaxLength.toString(16)} bytes`, RangeError); E('ERR_CANNOT_WATCH_SIGINT', 'Cannot watch for SIGINT signals', Error); E('ERR_CHILD_CLOSED_BEFORE_REPLY', 'Child closed before reply received', Error); E('ERR_CHILD_PROCESS_IPC_REQUIRED', "Forked processes must have an IPC channel, missing value 'ipc' in %s", Error); E('ERR_CHILD_PROCESS_STDIO_MAXBUFFER', '%s maxBuffer length exceeded', RangeError); E('ERR_CONSOLE_WRITABLE_STREAM', 'Console expects a writable stream instance for %s', TypeError); E('ERR_CPU_USAGE', 'Unable to obtain cpu usage %s', Error); E('ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED', 'Custom engines not supported by this OpenSSL', Error); E('ERR_CRYPTO_ECDH_INVALID_FORMAT', 'Invalid ECDH format: %s', TypeError); E('ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY', 'Public key is not valid for specified curve', Error); E('ERR_CRYPTO_ENGINE_UNKNOWN', 'Engine "%s" was not found', Error); E('ERR_CRYPTO_FIPS_FORCED', 'Cannot set FIPS mode, it was forced with --force-fips at startup.', Error); E('ERR_CRYPTO_FIPS_UNAVAILABLE', 'Cannot set FIPS mode in a non-FIPS build.', Error); E('ERR_CRYPTO_HASH_DIGEST_NO_UTF16', 'hash.digest() does not support UTF-16', Error); E('ERR_CRYPTO_HASH_FINALIZED', 'Digest already called', Error); E('ERR_CRYPTO_HASH_UPDATE_FAILED', 'Hash update failed', Error); E('ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', 'The selected key encoding %s %s.', Error); E('ERR_CRYPTO_INVALID_DIGEST', 'Invalid digest: %s', TypeError); E('ERR_CRYPTO_INVALID_STATE', 'Invalid state for operation %s', Error); E('ERR_CRYPTO_PBKDF2_ERROR', 'PBKDF2 error', Error); E('ERR_CRYPTO_SCRYPT_INVALID_PARAMETER', 'Invalid scrypt parameter', Error); E('ERR_CRYPTO_SCRYPT_NOT_SUPPORTED', 'Scrypt algorithm not supported', Error); // Switch to TypeError. The current implementation does not seem right. E('ERR_CRYPTO_SIGN_KEY_REQUIRED', 'No key provided to sign', Error); E('ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH', 'Input buffers must have the same length', RangeError); E('ERR_DNS_SET_SERVERS_FAILED', 'c-ares failed to set servers: "%s" [%s]', Error); E('ERR_DOMAIN_CALLBACK_NOT_AVAILABLE', 'A callback was registered through ' + 'process.setUncaughtExceptionCaptureCallback(), which is mutually ' + 'exclusive with using the `domain` module', Error); E('ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE', 'The `domain` module is in use, which is mutually exclusive with calling ' + 'process.setUncaughtExceptionCaptureCallback()', Error); E('ERR_ENCODING_INVALID_ENCODED_DATA', 'The encoded data was not valid for encoding %s', TypeError); E('ERR_ENCODING_NOT_SUPPORTED', 'The "%s" encoding is not supported', RangeError); E('ERR_FALSY_VALUE_REJECTION', 'Promise was rejected with falsy value', Error); E('ERR_FS_FILE_TOO_LARGE', 'File size (%s) is greater than possible Buffer: ' + `${kMaxLength} bytes`, RangeError); E('ERR_FS_INVALID_SYMLINK_TYPE', 'Symlink type must be one of "dir", "file", or "junction". Received "%s"', Error); // Switch to TypeError. The current implementation does not seem right E('ERR_HTTP2_ALTSVC_INVALID_ORIGIN', 'HTTP/2 ALTSVC frames require a valid origin', TypeError); E('ERR_HTTP2_ALTSVC_LENGTH', 'HTTP/2 ALTSVC frames are limited to 16382 bytes', TypeError); E('ERR_HTTP2_CONNECT_AUTHORITY', ':authority header is required for CONNECT requests', Error); E('ERR_HTTP2_CONNECT_PATH', 'The :path header is forbidden for CONNECT requests', Error); E('ERR_HTTP2_CONNECT_SCHEME', 'The :scheme header is forbidden for CONNECT requests', Error); E('ERR_HTTP2_GOAWAY_SESSION', 'New streams cannot be created after receiving a GOAWAY', Error); E('ERR_HTTP2_HEADERS_AFTER_RESPOND', 'Cannot specify additional headers after response initiated', Error); E('ERR_HTTP2_HEADERS_SENT', 'Response has already been initiated.', Error); E('ERR_HTTP2_HEADER_SINGLE_VALUE', 'Header field "%s" must only have a single value', TypeError); E('ERR_HTTP2_INFO_STATUS_NOT_ALLOWED', 'Informational status codes cannot be used', RangeError); E('ERR_HTTP2_INVALID_CONNECTION_HEADERS', 'HTTP/1 Connection specific headers are forbidden: "%s"', TypeError); E('ERR_HTTP2_INVALID_HEADER_VALUE', 'Invalid value "%s" for header "%s"', TypeError); E('ERR_HTTP2_INVALID_INFO_STATUS', 'Invalid informational status code: %s', RangeError); E('ERR_HTTP2_INVALID_ORIGIN', 'HTTP/2 ORIGIN frames require a valid origin', TypeError); E('ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH', 'Packed settings length must be a multiple of six', RangeError); E('ERR_HTTP2_INVALID_PSEUDOHEADER', '"%s" is an invalid pseudoheader or is used incorrectly', TypeError); E('ERR_HTTP2_INVALID_SESSION', 'The session has been destroyed', Error); E('ERR_HTTP2_INVALID_SETTING_VALUE', 'Invalid value for setting "%s": %s', TypeError, RangeError); E('ERR_HTTP2_INVALID_STREAM', 'The stream has been destroyed', Error); E('ERR_HTTP2_MAX_PENDING_SETTINGS_ACK', 'Maximum number of pending settings acknowledgements', Error); E('ERR_HTTP2_NESTED_PUSH', 'A push stream cannot initiate another push stream.', Error); E('ERR_HTTP2_NO_SOCKET_MANIPULATION', 'HTTP/2 sockets should not be directly manipulated (e.g. read and written)', Error); E('ERR_HTTP2_ORIGIN_LENGTH', 'HTTP/2 ORIGIN frames are limited to 16382 bytes', TypeError); E('ERR_HTTP2_OUT_OF_STREAMS', 'No stream ID is available because maximum stream ID has been reached', Error); E('ERR_HTTP2_PAYLOAD_FORBIDDEN', 'Responses with %s status must not have a payload', Error); E('ERR_HTTP2_PING_CANCEL', 'HTTP2 ping cancelled', Error); E('ERR_HTTP2_PING_LENGTH', 'HTTP2 ping payload must be 8 bytes', RangeError); E('ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED', 'Cannot set HTTP/2 pseudo-headers', TypeError); E('ERR_HTTP2_PUSH_DISABLED', 'HTTP/2 client has disabled push streams', Error); E('ERR_HTTP2_SEND_FILE', 'Directories cannot be sent', Error); E('ERR_HTTP2_SEND_FILE_NOSEEK', 'Offset or length can only be specified for regular files', Error); E('ERR_HTTP2_SESSION_ERROR', 'Session closed with error code %s', Error); E('ERR_HTTP2_SETTINGS_CANCEL', 'HTTP2 session settings canceled', Error); E('ERR_HTTP2_SOCKET_BOUND', 'The socket is already bound to an Http2Session', Error); E('ERR_HTTP2_SOCKET_UNBOUND', 'The socket has been disconnected from the Http2Session', Error); E('ERR_HTTP2_STATUS_101', 'HTTP status code 101 (Switching Protocols) is forbidden in HTTP/2', Error); E('ERR_HTTP2_STATUS_INVALID', 'Invalid status code: %s', RangeError); E('ERR_HTTP2_STREAM_CANCEL', 'The pending stream has been canceled', Error); E('ERR_HTTP2_STREAM_ERROR', 'Stream closed with error code %s', Error); E('ERR_HTTP2_STREAM_SELF_DEPENDENCY', 'A stream cannot depend on itself', Error); E('ERR_HTTP2_TRAILERS_ALREADY_SENT', 'Trailing headers have already been sent', Error); E('ERR_HTTP2_TRAILERS_NOT_READY', 'Trailing headers cannot be sent until after the wantTrailers event is ' + 'emitted', Error); E('ERR_HTTP2_UNSUPPORTED_PROTOCOL', 'protocol "%s" is unsupported.', Error); E('ERR_HTTP_HEADERS_SENT', 'Cannot %s headers after they are sent to the client', Error); E('ERR_HTTP_INVALID_HEADER_VALUE', 'Invalid value "%s" for header "%s"', TypeError); E('ERR_HTTP_INVALID_STATUS_CODE', 'Invalid status code: %s', RangeError); E('ERR_HTTP_TRAILER_INVALID', 'Trailers are invalid with this transfer encoding', Error); E('ERR_INDEX_OUT_OF_RANGE', 'Index out of range', RangeError); E('ERR_INSPECTOR_ALREADY_CONNECTED', '%s is already connected', Error); E('ERR_INSPECTOR_CLOSED', 'Session was closed', Error); E('ERR_INSPECTOR_NOT_AVAILABLE', 'Inspector is not available', Error); E('ERR_INSPECTOR_NOT_CONNECTED', 'Session is not connected', Error); E('ERR_INVALID_ADDRESS_FAMILY', 'Invalid address family: %s', RangeError); E('ERR_INVALID_ARG_TYPE', (name, expected, actual) => { assert(typeof name === 'string', "'name' must be a string"); // determiner: 'must be' or 'must not be' let determiner; if (typeof expected === 'string' && expected.startsWith('not ')) { determiner = 'must not be'; expected = expected.replace(/^not /, ''); } else { determiner = 'must be'; } let msg; if (name.endsWith(' argument')) { // For cases like 'first argument' msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; } else { const type = name.includes('.') ? 'property' : 'argument'; msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; } // TODO(BridgeAR): Improve the output by showing `null` and similar. msg += `. Received type ${typeof actual}`; return msg; }, TypeError); E('ERR_INVALID_ARG_VALUE', (name, value, reason = 'is invalid') => { let inspected = util.inspect(value); if (inspected.length > 128) { inspected = `${inspected.slice(0, 128)}...`; } return `The argument '${name}' ${reason}. Received ${inspected}`; }, TypeError, RangeError); E('ERR_INVALID_ARRAY_LENGTH', (name, len, actual) => { return `The array "${name}" (length ${actual}) must be of length ${len}.`; }, TypeError); E('ERR_INVALID_ASYNC_ID', 'Invalid %s value: %s', RangeError); E('ERR_INVALID_BUFFER_SIZE', 'Buffer size must be a multiple of %s', RangeError); E('ERR_INVALID_CALLBACK', 'Callback must be a function', TypeError); E('ERR_INVALID_CHAR', // Using a default argument here is important so the argument is not counted // towards `Function#length`. (name, field = undefined) => { let msg = `Invalid character in ${name}`; if (field !== undefined) { msg += ` ["${field}"]`; } return msg; }, TypeError); E('ERR_INVALID_CURSOR_POS', 'Cannot set cursor row without setting its column', TypeError); E('ERR_INVALID_DOMAIN_NAME', 'Unable to determine the domain name', TypeError); E('ERR_INVALID_FD', '"fd" must be a positive integer: %s', RangeError); E('ERR_INVALID_FD_TYPE', 'Unsupported fd type: %s', TypeError); E('ERR_INVALID_FILE_URL_HOST', 'File URL host must be "localhost" or empty on %s', TypeError); E('ERR_INVALID_FILE_URL_PATH', 'File URL path %s', TypeError); E('ERR_INVALID_HANDLE_TYPE', 'This handle type cannot be sent', TypeError); E('ERR_INVALID_HTTP_TOKEN', '%s must be a valid HTTP token ["%s"]', TypeError); E('ERR_INVALID_IP_ADDRESS', 'Invalid IP address: %s', TypeError); E('ERR_INVALID_OPT_VALUE', (name, value) => `The value "${String(value)}" is invalid for option "${name}"`, TypeError, RangeError); E('ERR_INVALID_OPT_VALUE_ENCODING', 'The value "%s" is invalid for option "encoding"', TypeError); E('ERR_INVALID_PERFORMANCE_MARK', 'The "%s" performance mark has not been set', Error); E('ERR_INVALID_PROTOCOL', 'Protocol "%s" not supported. Expected "%s"', TypeError); E('ERR_INVALID_REPL_EVAL_CONFIG', 'Cannot specify both "breakEvalOnSigint" and "eval" for REPL', TypeError); E('ERR_INVALID_RETURN_PROPERTY', (input, name, prop, value) => { return `Expected a valid ${input} to be returned for the "${prop}" from the` + ` "${name}" function but got ${value}.`; }, TypeError); E('ERR_INVALID_RETURN_PROPERTY_VALUE', (input, name, prop, value) => { let type; if (value && value.constructor && value.constructor.name) { type = `instance of ${value.constructor.name}`; } else { type = `type ${typeof value}`; } return `Expected ${input} to be returned for the "${prop}" from the` + ` "${name}" function but got ${type}.`; }, TypeError); E('ERR_INVALID_RETURN_VALUE', (input, name, value) => { let type; if (value && value.constructor && value.constructor.name) { type = `instance of ${value.constructor.name}`; } else { type = `type ${typeof value}`; } return `Expected ${input} to be returned from the "${name}"` + ` function but got ${type}.`; }, TypeError); E('ERR_INVALID_SYNC_FORK_INPUT', 'Asynchronous forks do not support ' + 'Buffer, TypedArray, DataView or string input: %s', TypeError); E('ERR_INVALID_THIS', 'Value of "this" must be of type %s', TypeError); E('ERR_INVALID_TUPLE', '%s must be an iterable %s tuple', TypeError); E('ERR_INVALID_URI', 'URI malformed', URIError); E('ERR_INVALID_URL', 'Invalid URL: %s', TypeError); E('ERR_INVALID_URL_SCHEME', (expected) => `The URL must be ${oneOf(expected, 'scheme')}`, TypeError); E('ERR_IPC_CHANNEL_CLOSED', 'Channel closed', Error); E('ERR_IPC_DISCONNECTED', 'IPC channel is already disconnected', Error); E('ERR_IPC_ONE_PIPE', 'Child process can have only one IPC pipe', Error); E('ERR_IPC_SYNC_FORK', 'IPC cannot be used with synchronous forks', Error); E('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error); E('ERR_MISSING_ARGS', (...args) => { assert(args.length > 0, 'At least one arg needs to be specified'); let msg = 'The '; const len = args.length; args = args.map((a) => `"${a}"`); switch (len) { case 1: msg += `${args[0]} argument`; break; case 2: msg += `${args[0]} and ${args[1]} arguments`; break; default: msg += args.slice(0, len - 1).join(', '); msg += `, and ${args[len - 1]} arguments`; break; } return `${msg} must be specified`; }, TypeError); E('ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK', 'The ES Module loader may not return a format of \'dynamic\' when no ' + 'dynamicInstantiate function was provided', Error); E('ERR_MISSING_MODULE', 'Cannot find module %s', Error); E('ERR_MODULE_RESOLUTION_LEGACY', '%s not found by import in %s.' + ' Legacy behavior in require() would have found it at %s', Error); E('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error); E('ERR_NAPI_CONS_FUNCTION', 'Constructor must be a function', TypeError); E('ERR_NAPI_INVALID_DATAVIEW_ARGS', 'byte_offset + byte_length should be less than or equal to the size in ' + 'bytes of the array passed in', RangeError); E('ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT', 'start offset of %s should be a multiple of %s', RangeError); E('ERR_NAPI_INVALID_TYPEDARRAY_LENGTH', 'Invalid typed array length', RangeError); E('ERR_NO_CRYPTO', 'Node.js is not compiled with OpenSSL crypto support', Error); E('ERR_NO_ICU', '%s is not supported on Node.js compiled without ICU', TypeError); E('ERR_NO_LONGER_SUPPORTED', '%s is no longer supported', Error); E('ERR_OUT_OF_RANGE', (str, range, input, replaceDefaultBoolean = false) => { let msg = replaceDefaultBoolean ? str : `The value of "${str}" is out of range.`; if (range !== undefined) msg += ` It must be ${range}.`; msg += ` Received ${input}`; return msg; }, RangeError); E('ERR_REQUIRE_ESM', 'Must use import to load ES Module: %s', Error); E('ERR_SCRIPT_EXECUTION_INTERRUPTED', 'Script execution was interrupted by `SIGINT`.', Error); E('ERR_SERVER_ALREADY_LISTEN', 'Listen method has been called more than once without closing.', Error); E('ERR_SERVER_NOT_RUNNING', 'Server is not running.', Error); E('ERR_SOCKET_ALREADY_BOUND', 'Socket is already bound', Error); E('ERR_SOCKET_BAD_BUFFER_SIZE', 'Buffer size must be a positive integer', TypeError); E('ERR_SOCKET_BAD_PORT', 'Port should be >= 0 and < 65536. Received %s.', RangeError); E('ERR_SOCKET_BAD_TYPE', 'Bad socket type specified. Valid types are: udp4, udp6', TypeError); E('ERR_SOCKET_BUFFER_SIZE', 'Could not get or set buffer size', SystemError); E('ERR_SOCKET_CANNOT_SEND', 'Unable to send data', Error); E('ERR_SOCKET_CLOSED', 'Socket is closed', Error); E('ERR_SOCKET_DGRAM_NOT_RUNNING', 'Not running', Error); E('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error); E('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error); E('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); E('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error); E('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error); E('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error); E('ERR_STREAM_WRAP', 'Stream has StringDecoder set or is in objectMode', Error); E('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error); E('ERR_SYSTEM_ERROR', 'A system error occurred', SystemError); E('ERR_TLS_CERT_ALTNAME_INVALID', 'Hostname/IP does not match certificate\'s altnames: %s', Error); E('ERR_TLS_DH_PARAM_SIZE', 'DH parameter size %s is less than 2048', Error); E('ERR_TLS_HANDSHAKE_TIMEOUT', 'TLS handshake timeout', Error); E('ERR_TLS_RENEGOTIATE', 'Attempt to renegotiate TLS session failed', Error); E('ERR_TLS_RENEGOTIATION_DISABLED', 'TLS session renegotiation disabled for this socket', Error); // This should probably be a `TypeError`. E('ERR_TLS_REQUIRED_SERVER_NAME', '"servername" is required parameter for Server.addContext', Error); E('ERR_TLS_SESSION_ATTACK', 'TLS session renegotiation attack detected', Error); E('ERR_TLS_SNI_FROM_SERVER', 'Cannot issue SNI from a TLS server-side socket', Error); E('ERR_TRACE_EVENTS_CATEGORY_REQUIRED', 'At least one category is required', TypeError); E('ERR_TRACE_EVENTS_UNAVAILABLE', 'Trace events are unavailable', Error); E('ERR_TRANSFORM_ALREADY_TRANSFORMING', 'Calling transform done when still transforming', Error); // This should probably be a `RangeError`. E('ERR_TRANSFORM_WITH_LENGTH_0', 'Calling transform done when writableState.length != 0', Error); E('ERR_TTY_INIT_FAILED', 'TTY initialization failed', SystemError); E('ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET', '`process.setupUncaughtExceptionCapture()` was called while a capture ' + 'callback was already active', Error); E('ERR_UNESCAPED_CHARACTERS', '%s contains unescaped characters', TypeError); E('ERR_UNHANDLED_ERROR', // Using a default argument here is important so the argument is not counted // towards `Function#length`. (err = undefined) => { const msg = 'Unhandled error.'; if (err === undefined) return msg; return `${msg} (${err})`; }, Error); E('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError); // This should probably be a `TypeError`. E('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension: %s', Error); E('ERR_UNKNOWN_MODULE_FORMAT', 'Unknown module format: %s', RangeError); E('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s', TypeError); E('ERR_UNKNOWN_STDIN_TYPE', 'Unknown stdin file type', Error); // This should probably be a `TypeError`. E('ERR_UNKNOWN_STREAM_TYPE', 'Unknown stream file type', Error); E('ERR_V8BREAKITERATOR', 'Full ICU data not installed. See https://github.com/nodejs/node/wiki/Intl', Error); // This should probably be a `TypeError`. E('ERR_VALID_PERFORMANCE_ENTRY_TYPE', 'At least one valid performance entry type is required', Error); E('ERR_VM_MODULE_ALREADY_LINKED', 'Module has already been linked', Error); E('ERR_VM_MODULE_DIFFERENT_CONTEXT', 'Linked modules must use the same context', Error); E('ERR_VM_MODULE_LINKING_ERRORED', 'Linking has already failed for the provided module', Error); E('ERR_VM_MODULE_NOT_LINKED', 'Module must be linked before it can be instantiated', Error); E('ERR_VM_MODULE_NOT_MODULE', 'Provided module is not an instance of Module', Error); E('ERR_VM_MODULE_STATUS', 'Module status %s', Error); E('ERR_WORKER_PATH', 'The worker script filename must be an absolute path or a relative ' + 'path starting with \'./\' or \'../\'. Received "%s"', TypeError); E('ERR_WORKER_UNSERIALIZABLE_ERROR', 'Serializing an uncaught exception failed', Error); E('ERR_WORKER_UNSUPPORTED_EXTENSION', 'The worker script extension must be ".js" or ".mjs". Received "%s"', TypeError); E('ERR_ZLIB_INITIALIZATION_FAILED', 'Initialization failed', Error); internal/error-serdes'use strict'; const Buffer = require('buffer').Buffer; const { serialize, deserialize } = require('v8'); const { SafeSet } = require('internal/safe_globals'); const kSerializedError = 0; const kSerializedObject = 1; const kInspectedError = 2; const GetPrototypeOf = Object.getPrototypeOf; const GetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; const GetOwnPropertyNames = Object.getOwnPropertyNames; const DefineProperty = Object.defineProperty; const Assign = Object.assign; const ObjectPrototypeToString = Function.prototype.call.bind(Object.prototype.toString); const ForEach = Function.prototype.call.bind(Array.prototype.forEach); const Call = Function.prototype.call.bind(Function.prototype.call); const errors = { Error, TypeError, RangeError, URIError, SyntaxError, ReferenceError, EvalError }; const errorConstructorNames = new SafeSet(Object.keys(errors)); function TryGetAllProperties(object, target = object) { const all = Object.create(null); if (object === null) return all; Assign(all, TryGetAllProperties(GetPrototypeOf(object), target)); const keys = GetOwnPropertyNames(object); ForEach(keys, (key) => { const descriptor = GetOwnPropertyDescriptor(object, key); const getter = descriptor.get; if (getter && key !== '__proto__') { try { descriptor.value = Call(getter, target); } catch {} } if ('value' in descriptor && typeof descriptor.value !== 'function') { delete descriptor.get; delete descriptor.set; all[key] = descriptor; } }); return all; } function GetConstructors(object) { const constructors = []; for (var current = object; current !== null; current = GetPrototypeOf(current)) { const desc = GetOwnPropertyDescriptor(current, 'constructor'); if (desc && desc.value) { DefineProperty(constructors, constructors.length, { value: desc.value, enumerable: true }); } } return constructors; } function GetName(object) { const desc = GetOwnPropertyDescriptor(object, 'name'); return desc && desc.value; } let util; function lazyUtil() { if (!util) util = require('util'); return util; } function serializeError(error) { try { if (typeof error === 'object' && ObjectPrototypeToString(error) === '[object Error]') { const constructors = GetConstructors(error); for (var i = constructors.length - 1; i >= 0; i--) { const name = GetName(constructors[i]); if (errorConstructorNames.has(name)) { try { error.stack; } catch {} const serialized = serialize({ constructor: name, properties: TryGetAllProperties(error) }); return Buffer.concat([Buffer.from([kSerializedError]), serialized]); } } } } catch {} try { const serialized = serialize(error); return Buffer.concat([Buffer.from([kSerializedObject]), serialized]); } catch {} return Buffer.concat([Buffer.from([kInspectedError]), Buffer.from(lazyUtil().inspect(error), 'utf8')]); } function deserializeError(error) { switch (error[0]) { case kSerializedError: const { constructor, properties } = deserialize(error.subarray(1)); const ctor = errors[constructor]; return Object.create(ctor.prototype, properties); case kSerializedObject: return deserialize(error.subarray(1)); case kInspectedError: const buf = Buffer.from(error.buffer, error.byteOffset + 1, error.byteLength - 1); return buf.toString('utf8'); } require('assert').fail('This should not happen'); } module.exports = { serializeError, deserializeError }; internal/fixed_queue'use strict'; // Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. const kSize = 2048; const kMask = kSize - 1; // The FixedQueue is implemented as a singly-linked list of fixed-size // circular buffers. It looks something like this: // // head tail // | | // v v // +-----------+ <-----\ +-----------+ <------\ +-----------+ // | [null] | \----- | next | \------- | next | // +-----------+ +-----------+ +-----------+ // | item | <-- bottom | item | <-- bottom | [empty] | // | item | | item | | [empty] | // | item | | item | | [empty] | // | item | | item | | [empty] | // | item | | item | bottom --> | item | // | item | | item | | item | // | ... | | ... | | ... | // | item | | item | | item | // | item | | item | | item | // | [empty] | <-- top | item | | item | // | [empty] | | item | | item | // | [empty] | | [empty] | <-- top top --> | [empty] | // +-----------+ +-----------+ +-----------+ // // Or, if there is only one circular buffer, it looks something // like either of these: // // head tail head tail // | | | | // v v v v // +-----------+ +-----------+ // | [null] | | [null] | // +-----------+ +-----------+ // | [empty] | | item | // | [empty] | | item | // | item | <-- bottom top --> | [empty] | // | item | | [empty] | // | [empty] | <-- top bottom --> | item | // | [empty] | | item | // +-----------+ +-----------+ // // Adding a value means moving `top` forward by one, removing means // moving `bottom` forward by one. After reaching the end, the queue // wraps around. // // When `top === bottom` the current queue is empty and when // `top + 1 === bottom` it's full. This wastes a single space of storage // but allows much quicker checks. const FixedCircularBuffer = class FixedCircularBuffer { constructor() { this.bottom = 0; this.top = 0; this.list = new Array(kSize); this.next = null; } isEmpty() { return this.top === this.bottom; } isFull() { return ((this.top + 1) & kMask) === this.bottom; } push(data) { this.list[this.top] = data; this.top = (this.top + 1) & kMask; } shift() { const nextItem = this.list[this.bottom]; if (nextItem === undefined) return null; this.list[this.bottom] = undefined; this.bottom = (this.bottom + 1) & kMask; return nextItem; } }; module.exports = class FixedQueue { constructor() { this.head = this.tail = new FixedCircularBuffer(); } isEmpty() { return this.head.isEmpty(); } push(data) { if (this.head.isFull()) { // Head is full: Creates a new queue, sets the old queue's `.next` to it, // and sets it as the new main queue. this.head = this.head.next = new FixedCircularBuffer(); } this.head.push(data); } shift() { const { tail } = this; const next = tail.shift(); if (tail.isEmpty() && tail.next !== null) { // If there is another queue, it forms the new tail. this.tail = tail.next; } return next; } }; internal/freelist'use strict'; const is_reused_symbol = Symbol('isReused'); class FreeList { constructor(name, max, ctor) { this.name = name; this.ctor = ctor; this.max = max; this.list = []; } alloc() { let item; if (this.list.length > 0) { item = this.list.pop(); item[is_reused_symbol] = true; } else { item = this.ctor.apply(this, arguments); item[is_reused_symbol] = false; } return item; } free(obj) { if (this.list.length < this.max) { this.list.push(obj); return true; } return false; } } module.exports = { FreeList, symbols: { is_reused_symbol } }; internal/fs/promises'use strict'; const { F_OK, O_SYMLINK, O_WRONLY, S_IFMT, S_IFREG } = process.binding('constants').fs; const binding = process.binding('fs'); const { Buffer, kMaxLength } = require('buffer'); const { ERR_FS_FILE_TOO_LARGE, ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED } = require('internal/errors').codes; const { toPathIfFileURL } = require('internal/url'); const { isUint8Array } = require('internal/util/types'); const { copyObject, getDirents, getOptions, getStatsFromBinding, nullCheck, preprocessSymlinkDestination, stringToFlags, stringToSymlinkType, toUnixTimestamp, validateBuffer, validateOffsetLengthRead, validateOffsetLengthWrite, validatePath } = require('internal/fs/utils'); const { validateInteger, validateMode, validateUint32 } = require('internal/validators'); const pathModule = require('path'); const { promisify } = require('internal/util'); const kHandle = Symbol('handle'); const { kUsePromises } = binding; const getDirectoryEntriesPromise = promisify(getDirents); class FileHandle { constructor(filehandle) { this[kHandle] = filehandle; } getAsyncId() { return this[kHandle].getAsyncId(); } get fd() { return this[kHandle].fd; } appendFile(data, options) { return appendFile(this, data, options); } chmod(mode) { return fchmod(this, mode); } chown(uid, gid) { return fchown(this, uid, gid); } datasync() { return fdatasync(this); } sync() { return fsync(this); } read(buffer, offset, length, position) { return read(this, buffer, offset, length, position); } readFile(options) { return readFile(this, options); } stat(options) { return fstat(this, options); } truncate(len = 0) { return ftruncate(this, len); } utimes(atime, mtime) { return futimes(this, atime, mtime); } write(buffer, offset, length, position) { return write(this, buffer, offset, length, position); } writeFile(data, options) { return writeFile(this, data, options); } close() { return this[kHandle].close(); } } function validateFileHandle(handle) { if (!(handle instanceof FileHandle)) throw new ERR_INVALID_ARG_TYPE('filehandle', 'FileHandle', handle); } async function writeFileHandle(filehandle, data, options) { let buffer = isUint8Array(data) ? data : Buffer.from('' + data, options.encoding || 'utf8'); let remaining = buffer.length; if (remaining === 0) return; do { const { bytesWritten } = await write(filehandle, buffer, 0, Math.min(16384, buffer.length)); remaining -= bytesWritten; buffer = buffer.slice(bytesWritten); } while (remaining > 0); } // Note: This is different from kReadFileBufferLength used for non-promisified // fs.readFile. const kReadFileMaxChunkSize = 16384; async function readFileHandle(filehandle, options) { const statFields = await binding.fstat(filehandle.fd, false, kUsePromises); let size; if ((statFields[1/* mode */] & S_IFMT) === S_IFREG) { size = statFields[8/* size */]; } else { size = 0; } if (size > kMaxLength) throw new ERR_FS_FILE_TOO_LARGE(size); const chunks = []; const chunkSize = size === 0 ? kReadFileMaxChunkSize : Math.min(size, kReadFileMaxChunkSize); let endOfFile = false; do { const buf = Buffer.alloc(chunkSize); const { bytesRead, buffer } = await read(filehandle, buf, 0, chunkSize, -1); endOfFile = bytesRead === 0; if (bytesRead > 0) chunks.push(buffer.slice(0, bytesRead)); } while (!endOfFile); const result = Buffer.concat(chunks); if (options.encoding) { return result.toString(options.encoding); } else { return result; } } // All of the functions are defined as async in order to ensure that errors // thrown cause promise rejections rather than being thrown synchronously. async function access(path, mode = F_OK) { path = toPathIfFileURL(path); validatePath(path); mode = mode | 0; return binding.access(pathModule.toNamespacedPath(path), mode, kUsePromises); } async function copyFile(src, dest, flags) { src = toPathIfFileURL(src); dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); flags = flags | 0; return binding.copyFile(pathModule.toNamespacedPath(src), pathModule.toNamespacedPath(dest), flags, kUsePromises); } // Note that unlike fs.open() which uses numeric file descriptors, // fsPromises.open() uses the fs.FileHandle class. async function open(path, flags, mode) { path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode', 0o666); return new FileHandle( await binding.openFileHandle(pathModule.toNamespacedPath(path), stringToFlags(flags), mode, kUsePromises)); } async function read(handle, buffer, offset, length, position) { validateFileHandle(handle); validateBuffer(buffer); offset |= 0; length |= 0; if (length === 0) return { bytesRead: length, buffer }; validateOffsetLengthRead(offset, length, buffer.length); if (!Number.isSafeInteger(position)) position = -1; const bytesRead = (await binding.read(handle.fd, buffer, offset, length, position, kUsePromises)) || 0; return { bytesRead, buffer }; } async function write(handle, buffer, offset, length, position) { validateFileHandle(handle); if (buffer.length === 0) return { bytesWritten: 0, buffer }; if (isUint8Array(buffer)) { if (typeof offset !== 'number') offset = 0; if (typeof length !== 'number') length = buffer.length - offset; if (typeof position !== 'number') position = null; validateOffsetLengthWrite(offset, length, buffer.byteLength); const bytesWritten = (await binding.writeBuffer(handle.fd, buffer, offset, length, position, kUsePromises)) || 0; return { bytesWritten, buffer }; } if (typeof buffer !== 'string') buffer += ''; const bytesWritten = (await binding.writeString(handle.fd, buffer, offset, length, kUsePromises)) || 0; return { bytesWritten, buffer }; } async function rename(oldPath, newPath) { oldPath = toPathIfFileURL(oldPath); newPath = toPathIfFileURL(newPath); validatePath(oldPath, 'oldPath'); validatePath(newPath, 'newPath'); return binding.rename(pathModule.toNamespacedPath(oldPath), pathModule.toNamespacedPath(newPath), kUsePromises); } async function truncate(path, len = 0) { return ftruncate(await open(path, 'r+'), len); } async function ftruncate(handle, len = 0) { validateFileHandle(handle); validateInteger(len, 'len'); len = Math.max(0, len); return binding.ftruncate(handle.fd, len, kUsePromises); } async function rmdir(path) { path = toPathIfFileURL(path); validatePath(path); return binding.rmdir(pathModule.toNamespacedPath(path), kUsePromises); } async function fdatasync(handle) { validateFileHandle(handle); return binding.fdatasync(handle.fd, kUsePromises); } async function fsync(handle) { validateFileHandle(handle); return binding.fsync(handle.fd, kUsePromises); } async function mkdir(path, options) { if (typeof options === 'number' || typeof options === 'string') { options = { mode: options }; } const { recursive = false, mode = 0o777 } = options || {}; path = toPathIfFileURL(path); validatePath(path); if (typeof recursive !== 'boolean') throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); return binding.mkdir(pathModule.toNamespacedPath(path), validateMode(mode, 'mode', 0o777), recursive, kUsePromises); } async function readdir(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); const result = await binding.readdir(pathModule.toNamespacedPath(path), options.encoding, !!options.withFileTypes, kUsePromises); return options.withFileTypes ? getDirectoryEntriesPromise(path, result) : result; } async function readlink(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path, 'oldPath'); return binding.readlink(pathModule.toNamespacedPath(path), options.encoding, kUsePromises); } async function symlink(target, path, type_) { const type = (typeof type_ === 'string' ? type_ : null); target = toPathIfFileURL(target); path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); return binding.symlink(preprocessSymlinkDestination(target, type, path), pathModule.toNamespacedPath(path), stringToSymlinkType(type), kUsePromises); } async function fstat(handle, options = { bigint: false }) { validateFileHandle(handle); const result = await binding.fstat(handle.fd, options.bigint, kUsePromises); return getStatsFromBinding(result); } async function lstat(path, options = { bigint: false }) { path = toPathIfFileURL(path); validatePath(path); const result = await binding.lstat(pathModule.toNamespacedPath(path), options.bigint, kUsePromises); return getStatsFromBinding(result); } async function stat(path, options = { bigint: false }) { path = toPathIfFileURL(path); validatePath(path); const result = await binding.stat(pathModule.toNamespacedPath(path), options.bigint, kUsePromises); return getStatsFromBinding(result); } async function link(existingPath, newPath) { existingPath = toPathIfFileURL(existingPath); newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); return binding.link(pathModule.toNamespacedPath(existingPath), pathModule.toNamespacedPath(newPath), kUsePromises); } async function unlink(path) { path = toPathIfFileURL(path); validatePath(path); return binding.unlink(pathModule.toNamespacedPath(path), kUsePromises); } async function fchmod(handle, mode) { validateFileHandle(handle); mode = validateMode(mode, 'mode'); return binding.fchmod(handle.fd, mode, kUsePromises); } async function chmod(path, mode) { path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); return binding.chmod(pathModule.toNamespacedPath(path), mode, kUsePromises); } async function lchmod(path, mode) { if (O_SYMLINK === undefined) throw new ERR_METHOD_NOT_IMPLEMENTED('lchmod()'); const fd = await open(path, O_WRONLY | O_SYMLINK); return fchmod(fd, mode).finally(fd.close.bind(fd)); } async function lchown(path, uid, gid) { path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); return binding.lchown(pathModule.toNamespacedPath(path), uid, gid, kUsePromises); } async function fchown(handle, uid, gid) { validateFileHandle(handle); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); return binding.fchown(handle.fd, uid, gid, kUsePromises); } async function chown(path, uid, gid) { path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); return binding.chown(pathModule.toNamespacedPath(path), uid, gid, kUsePromises); } async function utimes(path, atime, mtime) { path = toPathIfFileURL(path); validatePath(path); return binding.utimes(pathModule.toNamespacedPath(path), toUnixTimestamp(atime), toUnixTimestamp(mtime), kUsePromises); } async function futimes(handle, atime, mtime) { validateFileHandle(handle); atime = toUnixTimestamp(atime, 'atime'); mtime = toUnixTimestamp(mtime, 'mtime'); return binding.futimes(handle.fd, atime, mtime, kUsePromises); } async function realpath(path, options) { options = getOptions(options, {}); path = toPathIfFileURL(path); validatePath(path); return binding.realpath(path, options.encoding, kUsePromises); } async function mkdtemp(prefix, options) { options = getOptions(options, {}); if (!prefix || typeof prefix !== 'string') { throw new ERR_INVALID_ARG_TYPE('prefix', 'string', prefix); } nullCheck(prefix); return binding.mkdtemp(`${prefix}XXXXXX`, options.encoding, kUsePromises); } async function writeFile(path, data, options) { options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'w' }); const flag = options.flag || 'w'; if (path instanceof FileHandle) return writeFileHandle(path, data, options); const fd = await open(path, flag, options.mode); return writeFileHandle(fd, data, options).finally(fd.close.bind(fd)); } async function appendFile(path, data, options) { options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'a' }); options = copyObject(options); options.flag = options.flag || 'a'; return writeFile(path, data, options); } async function readFile(path, options) { options = getOptions(options, { flag: 'r' }); const flag = options.flag || 'r'; if (path instanceof FileHandle) return readFileHandle(path, options); const fd = await open(path, flag, 0o666); return readFileHandle(fd, options).finally(fd.close.bind(fd)); } module.exports = { access, copyFile, open, rename, truncate, rmdir, mkdir, readdir, readlink, symlink, lstat, stat, link, unlink, chmod, lchmod, lchown, chown, utimes, realpath, mkdtemp, writeFile, appendFile, readFile }; internal/fs/read_file_context'use strict'; const { Buffer } = require('buffer'); const { FSReqWrap, close, read } = process.binding('fs'); const kReadFileBufferLength = 8 * 1024; function readFileAfterRead(err, bytesRead) { const context = this.context; if (err) return context.close(err); if (bytesRead === 0) return context.close(); context.pos += bytesRead; if (context.size !== 0) { if (context.pos === context.size) context.close(); else context.read(); } else { // unknown size, just read until we don't get bytes. context.buffers.push(context.buffer.slice(0, bytesRead)); context.read(); } } function readFileAfterClose(err) { const context = this.context; const callback = context.callback; let buffer = null; if (context.err || err) return callback(context.err || err); try { if (context.size === 0) buffer = Buffer.concat(context.buffers, context.pos); else if (context.pos < context.size) buffer = context.buffer.slice(0, context.pos); else buffer = context.buffer; if (context.encoding) buffer = buffer.toString(context.encoding); } catch (err) { return callback(err); } callback(null, buffer); } class ReadFileContext { constructor(callback, encoding) { this.fd = undefined; this.isUserFd = undefined; this.size = undefined; this.callback = callback; this.buffers = null; this.buffer = null; this.pos = 0; this.encoding = encoding; this.err = null; } read() { let buffer; let offset; let length; if (this.size === 0) { buffer = this.buffer = Buffer.allocUnsafeSlow(kReadFileBufferLength); offset = 0; length = kReadFileBufferLength; } else { buffer = this.buffer; offset = this.pos; length = Math.min(kReadFileBufferLength, this.size - this.pos); } const req = new FSReqWrap(); req.oncomplete = readFileAfterRead; req.context = this; read(this.fd, buffer, offset, length, -1, req); } close(err) { const req = new FSReqWrap(); req.oncomplete = readFileAfterClose; req.context = this; this.err = err; if (this.isUserFd) { process.nextTick(function tick() { req.oncomplete(null); }); return; } close(this.fd, req); } } module.exports = ReadFileContext; internal/fs/streams'use strict'; const { FSReqWrap, writeBuffers } = process.binding('fs'); const { ERR_INVALID_ARG_TYPE, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { Buffer } = require('buffer'); const { copyObject, getOptions, } = require('internal/fs/utils'); const { Readable, Writable } = require('stream'); const { toPathIfFileURL } = require('internal/url'); const util = require('util'); let fs; function lazyFs() { if (fs === undefined) fs = require('fs'); return fs; } const kMinPoolSpace = 128; let pool; // It can happen that we expect to read a large chunk of data, and reserve // a large chunk of the pool accordingly, but the read() call only filled // a portion of it. If a concurrently executing read() then uses the same pool, // the "reserved" portion cannot be used, so we allow it to be re-used as a // new pool later. const poolFragments = []; function allocNewPool(poolSize) { if (poolFragments.length > 0) pool = poolFragments.pop(); else pool = Buffer.allocUnsafe(poolSize); pool.used = 0; } function ReadStream(path, options) { if (!(this instanceof ReadStream)) return new ReadStream(path, options); // a little bit bigger buffer and water marks by default options = copyObject(getOptions(options, {})); if (options.highWaterMark === undefined) options.highWaterMark = 64 * 1024; // for backwards compat do not emit close on destroy. options.emitClose = false; Readable.call(this, options); // path will be ignored when fd is specified, so it can be falsy this.path = toPathIfFileURL(path); this.fd = options.fd === undefined ? null : options.fd; this.flags = options.flags === undefined ? 'r' : options.flags; this.mode = options.mode === undefined ? 0o666 : options.mode; this.start = options.start; this.end = options.end; this.autoClose = options.autoClose === undefined ? true : options.autoClose; this.pos = undefined; this.bytesRead = 0; this.closed = false; if (this.start !== undefined) { if (typeof this.start !== 'number' || Number.isNaN(this.start)) { throw new ERR_INVALID_ARG_TYPE('start', 'number', this.start); } if (this.end === undefined) { this.end = Infinity; } else if (typeof this.end !== 'number' || Number.isNaN(this.end)) { throw new ERR_INVALID_ARG_TYPE('end', 'number', this.end); } if (this.start > this.end) { const errVal = `{start: ${this.start}, end: ${this.end}}`; throw new ERR_OUT_OF_RANGE('start', '<= "end"', errVal); } this.pos = this.start; } // Backwards compatibility: Make sure `end` is a number regardless of `start`. // TODO(addaleax): Make the above typecheck not depend on `start` instead. // (That is a semver-major change). if (typeof this.end !== 'number') this.end = Infinity; else if (Number.isNaN(this.end)) throw new ERR_INVALID_ARG_TYPE('end', 'number', this.end); if (typeof this.fd !== 'number') this.open(); this.on('end', function() { if (this.autoClose) { this.destroy(); } }); } util.inherits(ReadStream, Readable); ReadStream.prototype.open = function() { lazyFs().open(this.path, this.flags, this.mode, (er, fd) => { if (er) { if (this.autoClose) { this.destroy(); } this.emit('error', er); return; } this.fd = fd; this.emit('open', fd); this.emit('ready'); // start the flow of data. this.read(); }); }; ReadStream.prototype._read = function(n) { if (typeof this.fd !== 'number') { return this.once('open', function() { this._read(n); }); } if (this.destroyed) return; if (!pool || pool.length - pool.used < kMinPoolSpace) { // discard the old pool. allocNewPool(this.readableHighWaterMark); } // Grab another reference to the pool in the case that while we're // in the thread pool another read() finishes up the pool, and // allocates a new one. const thisPool = pool; let toRead = Math.min(pool.length - pool.used, n); const start = pool.used; if (this.pos !== undefined) toRead = Math.min(this.end - this.pos + 1, toRead); else toRead = Math.min(this.end - this.bytesRead + 1, toRead); // already read everything we were supposed to read! // treat as EOF. if (toRead <= 0) return this.push(null); // the actual read. lazyFs().read(this.fd, pool, pool.used, toRead, this.pos, (er, bytesRead) => { if (er) { if (this.autoClose) { this.destroy(); } this.emit('error', er); } else { let b = null; // Now that we know how much data we have actually read, re-wind the // 'used' field if we can, and otherwise allow the remainder of our // reservation to be used as a new pool later. if (start + toRead === thisPool.used && thisPool === pool) thisPool.used += bytesRead - toRead; else if (toRead - bytesRead > kMinPoolSpace) poolFragments.push(thisPool.slice(start + bytesRead, start + toRead)); if (bytesRead > 0) { this.bytesRead += bytesRead; b = thisPool.slice(start, start + bytesRead); } this.push(b); } }); // move the pool positions, and internal position for reading. if (this.pos !== undefined) this.pos += toRead; pool.used += toRead; }; ReadStream.prototype._destroy = function(err, cb) { if (typeof this.fd !== 'number') { this.once('open', closeFsStream.bind(null, this, cb, err)); return; } closeFsStream(this, cb, err); this.fd = null; }; function closeFsStream(stream, cb, err) { lazyFs().close(stream.fd, (er) => { er = er || err; cb(er); stream.closed = true; if (!er) stream.emit('close'); }); } ReadStream.prototype.close = function(cb) { this.destroy(null, cb); }; function WriteStream(path, options) { if (!(this instanceof WriteStream)) return new WriteStream(path, options); options = copyObject(getOptions(options, {})); // for backwards compat do not emit close on destroy. options.emitClose = false; Writable.call(this, options); // path will be ignored when fd is specified, so it can be falsy this.path = toPathIfFileURL(path); this.fd = options.fd === undefined ? null : options.fd; this.flags = options.flags === undefined ? 'w' : options.flags; this.mode = options.mode === undefined ? 0o666 : options.mode; this.start = options.start; this.autoClose = options.autoClose === undefined ? true : !!options.autoClose; this.pos = undefined; this.bytesWritten = 0; this.closed = false; if (this.start !== undefined) { if (typeof this.start !== 'number') { throw new ERR_INVALID_ARG_TYPE('start', 'number', this.start); } if (this.start < 0) { const errVal = `{start: ${this.start}}`; throw new ERR_OUT_OF_RANGE('start', '>= 0', errVal); } this.pos = this.start; } if (options.encoding) this.setDefaultEncoding(options.encoding); if (typeof this.fd !== 'number') this.open(); } util.inherits(WriteStream, Writable); WriteStream.prototype._final = function(callback) { if (this.autoClose) { this.destroy(); } callback(); }; WriteStream.prototype.open = function() { lazyFs().open(this.path, this.flags, this.mode, (er, fd) => { if (er) { if (this.autoClose) { this.destroy(); } this.emit('error', er); return; } this.fd = fd; this.emit('open', fd); this.emit('ready'); }); }; WriteStream.prototype._write = function(data, encoding, cb) { if (!(data instanceof Buffer)) { const err = new ERR_INVALID_ARG_TYPE('data', 'Buffer', data); return this.emit('error', err); } if (typeof this.fd !== 'number') { return this.once('open', function() { this._write(data, encoding, cb); }); } lazyFs().write(this.fd, data, 0, data.length, this.pos, (er, bytes) => { if (er) { if (this.autoClose) { this.destroy(); } return cb(er); } this.bytesWritten += bytes; cb(); }); if (this.pos !== undefined) this.pos += data.length; }; function writev(fd, chunks, position, callback) { function wrapper(err, written) { // Retain a reference to chunks so that they can't be GC'ed too soon. callback(err, written || 0, chunks); } const req = new FSReqWrap(); req.oncomplete = wrapper; writeBuffers(fd, chunks, position, req); } WriteStream.prototype._writev = function(data, cb) { if (typeof this.fd !== 'number') { return this.once('open', function() { this._writev(data, cb); }); } const self = this; const len = data.length; const chunks = new Array(len); let size = 0; for (var i = 0; i < len; i++) { const chunk = data[i].chunk; chunks[i] = chunk; size += chunk.length; } writev(this.fd, chunks, this.pos, function(er, bytes) { if (er) { self.destroy(); return cb(er); } self.bytesWritten += bytes; cb(); }); if (this.pos !== undefined) this.pos += size; }; WriteStream.prototype._destroy = ReadStream.prototype._destroy; WriteStream.prototype.close = function(cb) { if (cb) { if (this.closed) { process.nextTick(cb); return; } else { this.on('close', cb); } } // If we are not autoClosing, we should call // destroy on 'finish'. if (!this.autoClose) { this.on('finish', this.destroy.bind(this)); } // we use end() instead of destroy() because of // https://github.com/nodejs/node/issues/2006 this.end(); }; // There is no shutdown() for files. WriteStream.prototype.destroySoon = WriteStream.prototype.end; module.exports = { ReadStream, WriteStream }; internal/fs/sync_write_stream'use strict'; const { Writable } = require('stream'); const { inherits } = require('util'); const { closeSync, writeSync } = require('fs'); function SyncWriteStream(fd, options) { Writable.call(this); options = options || {}; this.fd = fd; this.readable = false; this.autoClose = options.autoClose === undefined ? true : options.autoClose; this.on('end', () => this._destroy()); } inherits(SyncWriteStream, Writable); SyncWriteStream.prototype._write = function(chunk, encoding, cb) { writeSync(this.fd, chunk, 0, chunk.length); cb(); return true; }; SyncWriteStream.prototype._destroy = function() { if (this.fd === null) // already destroy()ed return; if (this.autoClose) closeSync(this.fd); this.fd = null; return true; }; SyncWriteStream.prototype.destroySoon = SyncWriteStream.prototype.destroy = function() { this._destroy(); this.emit('close'); return true; }; module.exports = SyncWriteStream; internal/fs/utils'use strict'; const { Buffer, kMaxLength } = require('buffer'); const { ERR_FS_INVALID_SYMLINK_TYPE, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_INVALID_OPT_VALUE, ERR_INVALID_OPT_VALUE_ENCODING, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { isUint8Array, isArrayBufferView } = require('internal/util/types'); const { once } = require('internal/util'); const pathModule = require('path'); const util = require('util'); const kType = Symbol('type'); const kStats = Symbol('stats'); const { O_APPEND, O_CREAT, O_EXCL, O_RDONLY, O_RDWR, O_SYNC, O_TRUNC, O_WRONLY, S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFLNK, S_IFMT, S_IFREG, S_IFSOCK, UV_FS_SYMLINK_DIR, UV_FS_SYMLINK_JUNCTION, UV_DIRENT_UNKNOWN, UV_DIRENT_FILE, UV_DIRENT_DIR, UV_DIRENT_LINK, UV_DIRENT_FIFO, UV_DIRENT_SOCKET, UV_DIRENT_CHAR, UV_DIRENT_BLOCK } = process.binding('constants').fs; const isWindows = process.platform === 'win32'; let fs; function lazyLoadFs() { if (!fs) { fs = require('fs'); } return fs; } function assertEncoding(encoding) { if (encoding && !Buffer.isEncoding(encoding)) { throw new ERR_INVALID_OPT_VALUE_ENCODING(encoding); } } class Dirent { constructor(name, type) { this.name = name; this[kType] = type; } isDirectory() { return this[kType] === UV_DIRENT_DIR; } isFile() { return this[kType] === UV_DIRENT_FILE; } isBlockDevice() { return this[kType] === UV_DIRENT_BLOCK; } isCharacterDevice() { return this[kType] === UV_DIRENT_CHAR; } isSymbolicLink() { return this[kType] === UV_DIRENT_LINK; } isFIFO() { return this[kType] === UV_DIRENT_FIFO; } isSocket() { return this[kType] === UV_DIRENT_SOCKET; } } class DirentFromStats extends Dirent { constructor(name, stats) { super(name, null); this[kStats] = stats; } } for (const name of Reflect.ownKeys(Dirent.prototype)) { if (name === 'constructor') { continue; } DirentFromStats.prototype[name] = function() { return this[kStats][name](); }; } function copyObject(source) { const target = {}; for (const key in source) target[key] = source[key]; return target; } function getDirents(path, [names, types], callback) { let i; if (typeof callback === 'function') { const len = names.length; let toFinish = 0; callback = once(callback); for (i = 0; i < len; i++) { const type = types[i]; if (type === UV_DIRENT_UNKNOWN) { const name = names[i]; const idx = i; toFinish++; lazyLoadFs().lstat(pathModule.join(path, name), (err, stats) => { if (err) { callback(err); return; } names[idx] = new DirentFromStats(name, stats); if (--toFinish === 0) { callback(null, names); } }); } else { names[i] = new Dirent(names[i], types[i]); } } if (toFinish === 0) { callback(null, names); } } else { const len = names.length; for (i = 0; i < len; i++) { const type = types[i]; if (type === UV_DIRENT_UNKNOWN) { const name = names[i]; const stats = lazyLoadFs().lstatSync(pathModule.join(path, name)); names[i] = new DirentFromStats(name, stats); } else { names[i] = new Dirent(names[i], types[i]); } } return names; } } function getOptions(options, defaultOptions) { if (options === null || options === undefined || typeof options === 'function') { return defaultOptions; } if (typeof options === 'string') { defaultOptions = util._extend({}, defaultOptions); defaultOptions.encoding = options; options = defaultOptions; } else if (typeof options !== 'object') { throw new ERR_INVALID_ARG_TYPE('options', ['string', 'Object'], options); } if (options.encoding !== 'buffer') assertEncoding(options.encoding); return options; } // Check if the path contains null types if it is a string nor Uint8Array, // otherwise return silently. function nullCheck(path, propName, throwError = true) { const pathIsString = typeof path === 'string'; const pathIsUint8Array = isUint8Array(path); // We can only perform meaningful checks on strings and Uint8Arrays. if (!pathIsString && !pathIsUint8Array) { return; } if (pathIsString && path.indexOf('\u0000') === -1) { return; } else if (pathIsUint8Array && path.indexOf(0) === -1) { return; } const err = new ERR_INVALID_ARG_VALUE( propName, path, 'must be a string or Uint8Array without null bytes' ); if (throwError) { Error.captureStackTrace(err, nullCheck); throw err; } return err; } function preprocessSymlinkDestination(path, type, linkPath) { if (!isWindows) { // No preprocessing is needed on Unix. return path; } else if (type === 'junction') { // Junctions paths need to be absolute and \\?\-prefixed. // A relative target is relative to the link's parent directory. path = pathModule.resolve(linkPath, '..', path); return pathModule.toNamespacedPath(path); } else { // Windows symlinks don't tolerate forward slashes. return ('' + path).replace(/\//g, '\\'); } } function dateFromNumeric(num) { return new Date(Number(num) + 0.5); } // Constructor for file stats. function Stats( dev, mode, nlink, uid, gid, rdev, blksize, ino, size, blocks, atim_msec, mtim_msec, ctim_msec, birthtim_msec ) { this.dev = dev; this.mode = mode; this.nlink = nlink; this.uid = uid; this.gid = gid; this.rdev = rdev; this.blksize = blksize; this.ino = ino; this.size = size; this.blocks = blocks; this.atimeMs = atim_msec; this.mtimeMs = mtim_msec; this.ctimeMs = ctim_msec; this.birthtimeMs = birthtim_msec; this.atime = dateFromNumeric(atim_msec); this.mtime = dateFromNumeric(mtim_msec); this.ctime = dateFromNumeric(ctim_msec); this.birthtime = dateFromNumeric(birthtim_msec); } Stats.prototype._checkModeProperty = function(property) { if (isWindows && (property === S_IFIFO || property === S_IFBLK || property === S_IFSOCK)) { return false; // Some types are not available on Windows } if (typeof this.mode === 'bigint') { // eslint-disable-line valid-typeof return (this.mode & BigInt(S_IFMT)) === BigInt(property); } return (this.mode & S_IFMT) === property; }; Stats.prototype.isDirectory = function() { return this._checkModeProperty(S_IFDIR); }; Stats.prototype.isFile = function() { return this._checkModeProperty(S_IFREG); }; Stats.prototype.isBlockDevice = function() { return this._checkModeProperty(S_IFBLK); }; Stats.prototype.isCharacterDevice = function() { return this._checkModeProperty(S_IFCHR); }; Stats.prototype.isSymbolicLink = function() { return this._checkModeProperty(S_IFLNK); }; Stats.prototype.isFIFO = function() { return this._checkModeProperty(S_IFIFO); }; Stats.prototype.isSocket = function() { return this._checkModeProperty(S_IFSOCK); }; function getStatsFromBinding(stats, offset = 0) { return new Stats(stats[0 + offset], stats[1 + offset], stats[2 + offset], stats[3 + offset], stats[4 + offset], stats[5 + offset], isWindows ? undefined : stats[6 + offset], // blksize stats[7 + offset], stats[8 + offset], isWindows ? undefined : stats[9 + offset], // blocks stats[10 + offset], stats[11 + offset], stats[12 + offset], stats[13 + offset]); } function stringToFlags(flags) { if (typeof flags === 'number') { return flags; } switch (flags) { case 'r' : return O_RDONLY; case 'rs' : // Fall through. case 'sr' : return O_RDONLY | O_SYNC; case 'r+' : return O_RDWR; case 'rs+' : // Fall through. case 'sr+' : return O_RDWR | O_SYNC; case 'w' : return O_TRUNC | O_CREAT | O_WRONLY; case 'wx' : // Fall through. case 'xw' : return O_TRUNC | O_CREAT | O_WRONLY | O_EXCL; case 'w+' : return O_TRUNC | O_CREAT | O_RDWR; case 'wx+': // Fall through. case 'xw+': return O_TRUNC | O_CREAT | O_RDWR | O_EXCL; case 'a' : return O_APPEND | O_CREAT | O_WRONLY; case 'ax' : // Fall through. case 'xa' : return O_APPEND | O_CREAT | O_WRONLY | O_EXCL; case 'as' : // Fall through. case 'sa' : return O_APPEND | O_CREAT | O_WRONLY | O_SYNC; case 'a+' : return O_APPEND | O_CREAT | O_RDWR; case 'ax+': // Fall through. case 'xa+': return O_APPEND | O_CREAT | O_RDWR | O_EXCL; case 'as+': // Fall through. case 'sa+': return O_APPEND | O_CREAT | O_RDWR | O_SYNC; } throw new ERR_INVALID_OPT_VALUE('flags', flags); } function stringToSymlinkType(type) { let flags = 0; if (typeof type === 'string') { switch (type) { case 'dir': flags |= UV_FS_SYMLINK_DIR; break; case 'junction': flags |= UV_FS_SYMLINK_JUNCTION; break; case 'file': break; default: const err = new ERR_FS_INVALID_SYMLINK_TYPE(type); Error.captureStackTrace(err, stringToSymlinkType); throw err; } } return flags; } // converts Date or number to a fractional UNIX timestamp function toUnixTimestamp(time, name = 'time') { // eslint-disable-next-line eqeqeq if (typeof time === 'string' && +time == time) { return +time; } if (Number.isFinite(time)) { if (time < 0) { return Date.now() / 1000; } return time; } if (util.isDate(time)) { // convert to 123.456 UNIX timestamp return time.getTime() / 1000; } throw new ERR_INVALID_ARG_TYPE(name, ['Date', 'Time in seconds'], time); } function validateBuffer(buffer) { if (!isArrayBufferView(buffer)) { const err = new ERR_INVALID_ARG_TYPE('buffer', ['Buffer', 'TypedArray', 'DataView'], buffer); Error.captureStackTrace(err, validateBuffer); throw err; } } function validateOffsetLengthRead(offset, length, bufferLength) { let err; if (offset < 0 || offset >= bufferLength) { err = new ERR_OUT_OF_RANGE('offset', `>= 0 && <= ${bufferLength}`, offset); } else if (length < 0 || offset + length > bufferLength) { err = new ERR_OUT_OF_RANGE('length', `>= 0 && <= ${bufferLength - offset}`, length); } if (err !== undefined) { Error.captureStackTrace(err, validateOffsetLengthRead); throw err; } } function validateOffsetLengthWrite(offset, length, byteLength) { let err; if (offset > byteLength) { err = new ERR_OUT_OF_RANGE('offset', `<= ${byteLength}`, offset); } else { const max = byteLength > kMaxLength ? kMaxLength : byteLength; if (length > max - offset) { err = new ERR_OUT_OF_RANGE('length', `<= ${max - offset}`, length); } } if (err !== undefined) { Error.captureStackTrace(err, validateOffsetLengthWrite); throw err; } } function validatePath(path, propName = 'path') { let err; if (typeof path !== 'string' && !isUint8Array(path)) { err = new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path); } else { err = nullCheck(path, propName, false); } if (err !== undefined) { Error.captureStackTrace(err, validatePath); throw err; } } module.exports = { assertEncoding, copyObject, Dirent, getDirents, getOptions, nullCheck, preprocessSymlinkDestination, realpathCacheKey: Symbol('realpathCacheKey'), getStatsFromBinding, stringToFlags, stringToSymlinkType, Stats, toUnixTimestamp, validateBuffer, validateOffsetLengthRead, validateOffsetLengthWrite, validatePath }; internal/fs/watchers'use strict'; const errors = require('internal/errors'); const { kFsStatsFieldsLength, StatWatcher: _StatWatcher } = process.binding('fs'); const { FSEvent } = process.binding('fs_event_wrap'); const { UV_ENOSPC } = process.binding('uv'); const { EventEmitter } = require('events'); const { getStatsFromBinding, validatePath } = require('internal/fs/utils'); const { defaultTriggerAsyncIdScope, symbols: { owner_symbol } } = require('internal/async_hooks'); const { toNamespacedPath } = require('path'); const { validateUint32 } = require('internal/validators'); const { toPathIfFileURL } = require('internal/url'); const util = require('util'); const assert = require('assert'); const kOldStatus = Symbol('kOldStatus'); const kUseBigint = Symbol('kUseBigint'); function emitStop(self) { self.emit('stop'); } function StatWatcher(bigint) { EventEmitter.call(this); this._handle = null; this[kOldStatus] = -1; this[kUseBigint] = bigint; } util.inherits(StatWatcher, EventEmitter); function onchange(newStatus, stats) { const self = this[owner_symbol]; if (self[kOldStatus] === -1 && newStatus === -1 && stats[2/* new nlink */] === stats[16/* old nlink */]) { return; } self[kOldStatus] = newStatus; self.emit('change', getStatsFromBinding(stats), getStatsFromBinding(stats, kFsStatsFieldsLength)); } // FIXME(joyeecheung): this method is not documented. // At the moment if filename is undefined, we // 1. Throw an Error if it's the first time .start() is called // 2. Return silently if .start() has already been called // on a valid filename and the wrap has been initialized // This method is a noop if the watcher has already been started. StatWatcher.prototype.start = function(filename, persistent, interval) { if (this._handle !== null) return; this._handle = new _StatWatcher(this[kUseBigint]); this._handle[owner_symbol] = this; this._handle.onchange = onchange; if (!persistent) this._handle.unref(); // uv_fs_poll is a little more powerful than ev_stat but we curb it for // the sake of backwards compatibility this[kOldStatus] = -1; filename = toPathIfFileURL(filename); validatePath(filename, 'filename'); validateUint32(interval, 'interval'); const err = this._handle.start(toNamespacedPath(filename), interval); if (err) { const error = errors.uvException({ errno: err, syscall: 'watch', path: filename }); error.filename = filename; throw error; } }; // FIXME(joyeecheung): this method is not documented while there is // another documented fs.unwatchFile(). The counterpart in // FSWatcher is .close() // This method is a noop if the watcher has not been started. StatWatcher.prototype.stop = function() { if (this._handle === null) return; defaultTriggerAsyncIdScope(this._handle.getAsyncId(), process.nextTick, emitStop, this); this._handle.close(); this._handle = null; }; function FSWatcher() { EventEmitter.call(this); this._handle = new FSEvent(); this._handle[owner_symbol] = this; this._handle.onchange = (status, eventType, filename) => { // TODO(joyeecheung): we may check self._handle.initialized here // and return if that is false. This allows us to avoid firing the event // after the handle is closed, and to fire both UV_RENAME and UV_CHANGE // if they are set by libuv at the same time. if (status < 0) { if (this._handle !== null) { // We don't use this.close() here to avoid firing the close event. this._handle.close(); this._handle = null; // make the handle garbage collectable } const error = errors.uvException({ errno: status, syscall: 'watch', path: filename }); error.filename = filename; this.emit('error', error); } else { this.emit('change', eventType, filename); } }; } util.inherits(FSWatcher, EventEmitter); // FIXME(joyeecheung): this method is not documented. // At the moment if filename is undefined, we // 1. Throw an Error if it's the first time .start() is called // 2. Return silently if .start() has already been called // on a valid filename and the wrap has been initialized // 3. Return silently if the watcher has already been closed // This method is a noop if the watcher has already been started. FSWatcher.prototype.start = function(filename, persistent, recursive, encoding) { if (this._handle === null) { // closed return; } assert(this._handle instanceof FSEvent, 'handle must be a FSEvent'); if (this._handle.initialized) { // already started return; } filename = toPathIfFileURL(filename); validatePath(filename, 'filename'); const err = this._handle.start(toNamespacedPath(filename), persistent, recursive, encoding); if (err) { const error = errors.uvException({ errno: err, syscall: 'watch', path: filename, message: err === UV_ENOSPC ? 'System limit for number of file watchers reached' : '' }); error.filename = filename; throw error; } }; // This method is a noop if the watcher has not been started or // has already been closed. FSWatcher.prototype.close = function() { if (this._handle === null) { // closed return; } assert(this._handle instanceof FSEvent, 'handle must be a FSEvent'); if (!this._handle.initialized) { // not started return; } this._handle.close(); this._handle = null; // make the handle garbage collectable process.nextTick(emitCloseNT, this); }; function emitCloseNT(self) { self.emit('close'); } // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. Object.defineProperty(FSEvent.prototype, 'owner', { get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); module.exports = { FSWatcher, StatWatcher }; internal/http'use strict'; const { setUnrefTimeout } = require('internal/timers'); var nowCache; var utcCache; function nowDate() { if (!nowCache) cache(); return nowCache; } function utcDate() { if (!utcCache) cache(); return utcCache; } function cache() { const d = new Date(); nowCache = d.valueOf(); utcCache = d.toUTCString(); setUnrefTimeout(resetCache, 1000 - d.getMilliseconds()); } function resetCache() { nowCache = undefined; utcCache = undefined; } function ondrain() { if (this._httpMessage) this._httpMessage.emit('drain'); } module.exports = { outHeadersKey: Symbol('outHeadersKey'), ondrain, nowDate, utcDate }; internal/inspector_async_hook'use strict'; const inspector = process.binding('inspector'); if (!inspector || !inspector.asyncTaskScheduled) { exports.setup = function() {}; return; } let hook; let config; function lazyHookCreation() { const { createHook } = require('async_hooks'); config = process.binding('config'); hook = createHook({ init(asyncId, type, triggerAsyncId, resource) { // It's difficult to tell which tasks will be recurring and which won't, // therefore we mark all tasks as recurring. Based on the discussion // in https://github.com/nodejs/node/pull/13870#discussion_r124515293, // this should be fine as long as we call asyncTaskCanceled() too. const recurring = true; if (type === 'PROMISE') this.promiseIds.add(asyncId); else inspector.asyncTaskScheduled(type, asyncId, recurring); }, before(asyncId) { if (this.promiseIds.has(asyncId)) return; inspector.asyncTaskStarted(asyncId); }, after(asyncId) { if (this.promiseIds.has(asyncId)) return; inspector.asyncTaskFinished(asyncId); }, destroy(asyncId) { if (this.promiseIds.has(asyncId)) return this.promiseIds.delete(asyncId); inspector.asyncTaskCanceled(asyncId); }, }); hook.promiseIds = new Set(); } function enable() { if (hook === undefined) lazyHookCreation(); if (config.bits < 64) { // V8 Inspector stores task ids as (void*) pointers. // async_hooks store ids as 64bit numbers. // As a result, we cannot reliably translate async_hook ids to V8 async_task // ids on 32bit platforms. process.emitWarning( 'Warning: Async stack traces in debugger are not available ' + `on ${config.bits}bit platforms. The feature is disabled.`, { code: 'INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE', }); } else { hook.enable(); } } function disable() { if (hook === undefined) lazyHookCreation(); hook.disable(); } exports.setup = function() { inspector.registerAsyncHook(enable, disable); }; internal/linkedlist'use strict'; function init(list) { list._idleNext = list; list._idlePrev = list; } // Show the most idle item. function peek(list) { if (list._idlePrev === list) return null; return list._idlePrev; } // Remove an item from its list. function remove(item) { if (item._idleNext) { item._idleNext._idlePrev = item._idlePrev; } if (item._idlePrev) { item._idlePrev._idleNext = item._idleNext; } item._idleNext = null; item._idlePrev = null; } // Remove an item from its list and place at the end. function append(list, item) { if (item._idleNext || item._idlePrev) { remove(item); } // Items are linked with _idleNext -> (older) and _idlePrev -> (newer). // Note: This linkage (next being older) may seem counter-intuitive at first. item._idleNext = list._idleNext; item._idlePrev = list; // The list _idleNext points to tail (newest) and _idlePrev to head (oldest). list._idleNext._idlePrev = item; list._idleNext = item; } function isEmpty(list) { return list._idleNext === list; } module.exports = { init, peek, remove, append, isEmpty }; internal/modules/cjs/helpers'use strict'; const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { CHAR_LINE_FEED, CHAR_CARRIAGE_RETURN, CHAR_EXCLAMATION_MARK, CHAR_HASH, } = require('internal/constants'); const { getOptionValue } = require('internal/options'); // Invoke with makeRequireFunction(module) where |module| is the Module object // to use as the context for the require() function. function makeRequireFunction(mod) { const Module = mod.constructor; function require(path) { try { exports.requireDepth += 1; return mod.require(path); } finally { exports.requireDepth -= 1; } } function resolve(request, options) { if (typeof request !== 'string') { throw new ERR_INVALID_ARG_TYPE('request', 'string', request); } return Module._resolveFilename(request, mod, false, options); } require.resolve = resolve; function paths(request) { if (typeof request !== 'string') { throw new ERR_INVALID_ARG_TYPE('request', 'string', request); } return Module._resolveLookupPaths(request, mod, true); } resolve.paths = paths; require.main = process.mainModule; // Enable support to add extra extension types. require.extensions = Module._extensions; require.cache = Module._cache; return require; } /** * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) * because the buffer-to-string conversion in `fs.readFileSync()` * translates it to FEFF, the UTF-16 BOM. */ function stripBOM(content) { if (content.charCodeAt(0) === 0xFEFF) { content = content.slice(1); } return content; } /** * Find end of shebang line and slice it off */ function stripShebang(content) { // Remove shebang var contLen = content.length; if (contLen >= 2) { if (content.charCodeAt(0) === CHAR_HASH && content.charCodeAt(1) === CHAR_EXCLAMATION_MARK) { if (contLen === 2) { // Exact match content = ''; } else { // Find end of shebang line and slice it off var i = 2; for (; i < contLen; ++i) { var code = content.charCodeAt(i); if (code === CHAR_LINE_FEED || code === CHAR_CARRIAGE_RETURN) break; } if (i === contLen) content = ''; else { // Note that this actually includes the newline character(s) in the // new output. This duplicates the behavior of the regular expression // that was previously used to replace the shebang line content = content.slice(i); } } } } return content; } const builtinLibs = [ 'assert', 'async_hooks', 'buffer', 'child_process', 'cluster', 'crypto', 'dgram', 'dns', 'domain', 'events', 'fs', 'http', 'http2', 'https', 'net', 'os', 'path', 'perf_hooks', 'punycode', 'querystring', 'readline', 'repl', 'stream', 'string_decoder', 'tls', 'trace_events', 'tty', 'url', 'util', 'v8', 'vm', 'zlib' ]; if (getOptionValue('--experimental-worker')) { builtinLibs.push('worker_threads'); builtinLibs.sort(); } if (typeof process.binding('inspector').open === 'function') { builtinLibs.push('inspector'); builtinLibs.sort(); } function addBuiltinLibsToObject(object) { // Make built-in modules available directly (loaded lazily). builtinLibs.forEach((name) => { // Goals of this mechanism are: // - Lazy loading of built-in modules // - Having all built-in modules available as non-enumerable properties // - Allowing the user to re-assign these variables as if there were no // pre-existing globals with the same name. const setReal = (val) => { // Deleting the property before re-assigning it disables the // getter/setter mechanism. delete object[name]; object[name] = val; }; Object.defineProperty(object, name, { get: () => { const lib = require(name); // Disable the current getter/setter and set up a new // non-enumerable property. delete object[name]; Object.defineProperty(object, name, { get: () => lib, set: setReal, configurable: true, enumerable: false }); return lib; }, set: setReal, configurable: true, enumerable: false }); }); } module.exports = exports = { addBuiltinLibsToObject, builtinLibs, makeRequireFunction, requireDepth: 0, stripBOM, stripShebang }; internal/modules/cjs/loader// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; const { NativeModule } = require('internal/bootstrap/loaders'); const util = require('util'); const { pathToFileURL } = require('internal/url'); const vm = require('vm'); const assert = require('assert').ok; const fs = require('fs'); const internalFS = require('internal/fs/utils'); const path = require('path'); const { internalModuleReadJSON, internalModuleStat } = process.binding('fs'); const { safeGetenv } = process.binding('util'); const { makeRequireFunction, requireDepth, stripBOM, stripShebang } = require('internal/modules/cjs/helpers'); const { getOptionValue } = require('internal/options'); const preserveSymlinks = getOptionValue('--preserve-symlinks'); const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main'); const experimentalModules = getOptionValue('--experimental-modules'); const { ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_REQUIRE_ESM } = require('internal/errors').codes; module.exports = Module; let asyncESM; let ModuleJob; let createDynamicModule; let decorateErrorStack; function lazyLoadESM() { asyncESM = require('internal/process/esm_loader'); ModuleJob = require('internal/modules/esm/module_job'); createDynamicModule = require( 'internal/modules/esm/create_dynamic_module'); decorateErrorStack = require('internal/util').decorateErrorStack; } const { CHAR_UPPERCASE_A, CHAR_LOWERCASE_A, CHAR_UPPERCASE_Z, CHAR_LOWERCASE_Z, CHAR_FORWARD_SLASH, CHAR_BACKWARD_SLASH, CHAR_COLON, CHAR_DOT, CHAR_UNDERSCORE, CHAR_0, CHAR_9, } = require('internal/constants'); function stat(filename) { filename = path.toNamespacedPath(filename); const cache = stat.cache; if (cache !== null) { const result = cache.get(filename); if (result !== undefined) return result; } const result = internalModuleStat(filename); if (cache !== null) cache.set(filename, result); return result; } stat.cache = null; function updateChildren(parent, child, scan) { var children = parent && parent.children; if (children && !(scan && children.includes(child))) children.push(child); } function Module(id, parent) { this.id = id; this.exports = {}; this.parent = parent; updateChildren(parent, this, false); this.filename = null; this.loaded = false; this.children = []; } const builtinModules = Object.keys(NativeModule._source) .filter(NativeModule.nonInternalExists); Object.freeze(builtinModules); Module.builtinModules = builtinModules; Module._cache = Object.create(null); Module._pathCache = Object.create(null); Module._extensions = Object.create(null); var modulePaths = []; Module.globalPaths = []; Module.wrap = function(script) { return Module.wrapper[0] + script + Module.wrapper[1]; }; Module.wrapper = [ '(function (exports, require, module, __filename, __dirname) { ', '\n});' ]; const debug = util.debuglog('module'); Module._debug = util.deprecate(debug, 'Module._debug is deprecated.', 'DEP0077'); // given a module name, and a list of paths to test, returns the first // matching file in the following precedence. // // require("a.") // -> a. // // require("a") // -> a // -> a. // -> a/index. // check if the directory is a package.json dir const packageMainCache = Object.create(null); function readPackage(requestPath) { const entry = packageMainCache[requestPath]; if (entry) return entry; const jsonPath = path.resolve(requestPath, 'package.json'); const json = internalModuleReadJSON(path.toNamespacedPath(jsonPath)); if (json === undefined) { return false; } try { return packageMainCache[requestPath] = JSON.parse(json).main; } catch (e) { e.path = jsonPath; e.message = 'Error parsing ' + jsonPath + ': ' + e.message; throw e; } } function tryPackage(requestPath, exts, isMain) { var pkg = readPackage(requestPath); if (!pkg) return false; var filename = path.resolve(requestPath, pkg); return tryFile(filename, isMain) || tryExtensions(filename, exts, isMain) || tryExtensions(path.resolve(filename, 'index'), exts, isMain); } // In order to minimize unnecessary lstat() calls, // this cache is a list of known-real paths. // Set to an empty Map to reset. const realpathCache = new Map(); // check if the file exists and is not a directory // if using --preserve-symlinks and isMain is false, // keep symlinks intact, otherwise resolve to the // absolute realpath. function tryFile(requestPath, isMain) { const rc = stat(requestPath); if (preserveSymlinks && !isMain) { return rc === 0 && path.resolve(requestPath); } return rc === 0 && toRealPath(requestPath); } function toRealPath(requestPath) { return fs.realpathSync(requestPath, { [internalFS.realpathCacheKey]: realpathCache }); } // given a path, check if the file exists with any of the set extensions function tryExtensions(p, exts, isMain) { for (var i = 0; i < exts.length; i++) { const filename = tryFile(p + exts[i], isMain); if (filename) { return filename; } } return false; } var warned = false; Module._findPath = function(request, paths, isMain) { if (path.isAbsolute(request)) { paths = ['']; } else if (!paths || paths.length === 0) { return false; } var cacheKey = request + '\x00' + (paths.length === 1 ? paths[0] : paths.join('\x00')); var entry = Module._pathCache[cacheKey]; if (entry) return entry; var exts; var trailingSlash = request.length > 0 && request.charCodeAt(request.length - 1) === CHAR_FORWARD_SLASH; if (!trailingSlash) { trailingSlash = /(?:^|\/)\.?\.$/.test(request); } // For each path for (var i = 0; i < paths.length; i++) { // Don't search further if path doesn't exist const curPath = paths[i]; if (curPath && stat(curPath) < 1) continue; var basePath = path.resolve(curPath, request); var filename; var rc = stat(basePath); if (!trailingSlash) { if (rc === 0) { // File. if (!isMain) { if (preserveSymlinks) { filename = path.resolve(basePath); } else { filename = toRealPath(basePath); } } else if (preserveSymlinksMain) { // For the main module, we use the preserveSymlinksMain flag instead // mainly for backward compatibility, as the preserveSymlinks flag // historically has not applied to the main module. Most likely this // was intended to keep .bin/ binaries working, as following those // symlinks is usually required for the imports in the corresponding // files to resolve; that said, in some use cases following symlinks // causes bigger problems which is why the preserveSymlinksMain option // is needed. filename = path.resolve(basePath); } else { filename = toRealPath(basePath); } } if (!filename) { // try it with each of the extensions if (exts === undefined) exts = Object.keys(Module._extensions); filename = tryExtensions(basePath, exts, isMain); } } if (!filename && rc === 1) { // Directory. // try it with each of the extensions at "index" if (exts === undefined) exts = Object.keys(Module._extensions); filename = tryPackage(basePath, exts, isMain); if (!filename) { filename = tryExtensions(path.resolve(basePath, 'index'), exts, isMain); } } if (filename) { // Warn once if '.' resolved outside the module dir if (request === '.' && i > 0) { if (!warned) { warned = true; process.emitWarning( 'warning: require(\'.\') resolved outside the package ' + 'directory. This functionality is deprecated and will be removed ' + 'soon.', 'DeprecationWarning', 'DEP0019'); } } Module._pathCache[cacheKey] = filename; return filename; } } return false; }; // 'node_modules' character codes reversed var nmChars = [ 115, 101, 108, 117, 100, 111, 109, 95, 101, 100, 111, 110 ]; var nmLen = nmChars.length; if (process.platform === 'win32') { // 'from' is the __dirname of the module. Module._nodeModulePaths = function(from) { // guarantee that 'from' is absolute. from = path.resolve(from); // note: this approach *only* works when the path is guaranteed // to be absolute. Doing a fully-edge-case-correct path.split // that works on both Windows and Posix is non-trivial. // return root node_modules when path is 'D:\\'. // path.resolve will make sure from.length >=3 in Windows. if (from.charCodeAt(from.length - 1) === CHAR_BACKWARD_SLASH && from.charCodeAt(from.length - 2) === CHAR_COLON) return [from + 'node_modules']; const paths = []; var p = 0; var last = from.length; for (var i = from.length - 1; i >= 0; --i) { const code = from.charCodeAt(i); // The path segment separator check ('\' and '/') was used to get // node_modules path for every path segment. // Use colon as an extra condition since we can get node_modules // path for drive root like 'C:\node_modules' and don't need to // parse drive name. if (code === CHAR_BACKWARD_SLASH || code === CHAR_FORWARD_SLASH || code === CHAR_COLON) { if (p !== nmLen) paths.push(from.slice(0, last) + '\\node_modules'); last = i; p = 0; } else if (p !== -1) { if (nmChars[p] === code) { ++p; } else { p = -1; } } } return paths; }; } else { // posix // 'from' is the __dirname of the module. Module._nodeModulePaths = function(from) { // guarantee that 'from' is absolute. from = path.resolve(from); // Return early not only to avoid unnecessary work, but to *avoid* returning // an array of two items for a root: [ '//node_modules', '/node_modules' ] if (from === '/') return ['/node_modules']; // note: this approach *only* works when the path is guaranteed // to be absolute. Doing a fully-edge-case-correct path.split // that works on both Windows and Posix is non-trivial. const paths = []; var p = 0; var last = from.length; for (var i = from.length - 1; i >= 0; --i) { const code = from.charCodeAt(i); if (code === CHAR_FORWARD_SLASH) { if (p !== nmLen) paths.push(from.slice(0, last) + '/node_modules'); last = i; p = 0; } else if (p !== -1) { if (nmChars[p] === code) { ++p; } else { p = -1; } } } // Append /node_modules to handle root paths. paths.push('/node_modules'); return paths; }; } // 'index.' character codes var indexChars = [ 105, 110, 100, 101, 120, 46 ]; var indexLen = indexChars.length; Module._resolveLookupPaths = function(request, parent, newReturn) { if (NativeModule.nonInternalExists(request)) { debug('looking for %j in []', request); return (newReturn ? null : [request, []]); } // Check for relative path if (request.length < 2 || request.charCodeAt(0) !== CHAR_DOT || (request.charCodeAt(1) !== CHAR_DOT && request.charCodeAt(1) !== CHAR_FORWARD_SLASH)) { var paths = modulePaths; if (parent) { if (!parent.paths) paths = parent.paths = []; else paths = parent.paths.concat(paths); } // Maintain backwards compat with certain broken uses of require('.') // by putting the module's directory in front of the lookup paths. if (request === '.') { if (parent && parent.filename) { paths.unshift(path.dirname(parent.filename)); } else { paths.unshift(path.resolve(request)); } } debug('looking for %j in %j', request, paths); return (newReturn ? (paths.length > 0 ? paths : null) : [request, paths]); } // with --eval, parent.id is not set and parent.filename is null if (!parent || !parent.id || !parent.filename) { // make require('./path/to/foo') work - normally the path is taken // from realpath(__filename) but with eval there is no filename var mainPaths = ['.'].concat(Module._nodeModulePaths('.'), modulePaths); debug('looking for %j in %j', request, mainPaths); return (newReturn ? mainPaths : [request, mainPaths]); } // Is the parent an index module? // We can assume the parent has a valid extension, // as it already has been accepted as a module. const base = path.basename(parent.filename); var parentIdPath; if (base.length > indexLen) { var i = 0; for (; i < indexLen; ++i) { if (indexChars[i] !== base.charCodeAt(i)) break; } if (i === indexLen) { // We matched 'index.', let's validate the rest for (; i < base.length; ++i) { const code = base.charCodeAt(i); if (code !== CHAR_UNDERSCORE && (code < CHAR_0 || code > CHAR_9) && (code < CHAR_UPPERCASE_A || code > CHAR_UPPERCASE_Z) && (code < CHAR_LOWERCASE_A || code > CHAR_LOWERCASE_Z)) break; } if (i === base.length) { // Is an index module parentIdPath = parent.id; } else { // Not an index module parentIdPath = path.dirname(parent.id); } } else { // Not an index module parentIdPath = path.dirname(parent.id); } } else { // Not an index module parentIdPath = path.dirname(parent.id); } var id = path.resolve(parentIdPath, request); // make sure require('./path') and require('path') get distinct ids, even // when called from the toplevel js file if (parentIdPath === '.' && id.indexOf('/') === -1) { id = './' + id; } debug('RELATIVE: requested: %s set ID to: %s from %s', request, id, parent.id); var parentDir = [path.dirname(parent.filename)]; debug('looking for %j in %j', id, parentDir); return (newReturn ? parentDir : [id, parentDir]); }; // Check the cache for the requested file. // 1. If a module already exists in the cache: return its exports object. // 2. If the module is native: call `NativeModule.require()` with the // filename and return the result. // 3. Otherwise, create a new module for the file and save it to the cache. // Then have it load the file contents before returning its exports // object. Module._load = function(request, parent, isMain) { if (parent) { debug('Module._load REQUEST %s parent: %s', request, parent.id); } var filename = Module._resolveFilename(request, parent, isMain); var cachedModule = Module._cache[filename]; if (cachedModule) { updateChildren(parent, cachedModule, true); return cachedModule.exports; } if (NativeModule.nonInternalExists(filename)) { debug('load native module %s', request); return NativeModule.require(filename); } // Don't call updateChildren(), Module constructor already does. var module = new Module(filename, parent); if (isMain) { process.mainModule = module; module.id = '.'; } Module._cache[filename] = module; tryModuleLoad(module, filename); return module.exports; }; function tryModuleLoad(module, filename) { var threw = true; try { module.load(filename); threw = false; } finally { if (threw) { delete Module._cache[filename]; } } } Module._resolveFilename = function(request, parent, isMain, options) { if (NativeModule.nonInternalExists(request)) { return request; } var paths; if (typeof options === 'object' && options !== null && Array.isArray(options.paths)) { const fakeParent = new Module('', null); paths = []; for (var i = 0; i < options.paths.length; i++) { const path = options.paths[i]; fakeParent.paths = Module._nodeModulePaths(path); const lookupPaths = Module._resolveLookupPaths(request, fakeParent, true); if (!paths.includes(path)) paths.push(path); for (var j = 0; j < lookupPaths.length; j++) { if (!paths.includes(lookupPaths[j])) paths.push(lookupPaths[j]); } } } else { paths = Module._resolveLookupPaths(request, parent, true); } // look up the filename first, since that's the cache key. var filename = Module._findPath(request, paths, isMain); if (!filename) { // eslint-disable-next-line no-restricted-syntax var err = new Error(`Cannot find module '${request}'`); err.code = 'MODULE_NOT_FOUND'; throw err; } return filename; }; // Given a file name, pass it to the proper extension handler. Module.prototype.load = function(filename) { debug('load %j for module %j', filename, this.id); assert(!this.loaded); this.filename = filename; this.paths = Module._nodeModulePaths(path.dirname(filename)); var extension = path.extname(filename) || '.js'; if (!Module._extensions[extension]) extension = '.js'; Module._extensions[extension](this, filename); this.loaded = true; if (experimentalModules) { if (asyncESM === undefined) lazyLoadESM(); const ESMLoader = asyncESM.ESMLoader; const url = pathToFileURL(filename); const urlString = `${url}`; const exports = this.exports; if (ESMLoader.moduleMap.has(urlString) !== true) { ESMLoader.moduleMap.set( urlString, new ModuleJob(ESMLoader, url, async () => { const ctx = createDynamicModule( ['default'], url); ctx.reflect.exports.default.set(exports); return ctx; }) ); } else { const job = ESMLoader.moduleMap.get(urlString); if (job.reflect) job.reflect.exports.default.set(exports); } } }; // Loads a module at the given file path. Returns that module's // `exports` property. Module.prototype.require = function(id) { if (typeof id !== 'string') { throw new ERR_INVALID_ARG_TYPE('id', 'string', id); } if (id === '') { throw new ERR_INVALID_ARG_VALUE('id', id, 'must be a non-empty string'); } return Module._load(id, this, /* isMain */ false); }; // Resolved path to process.argv[1] will be lazily placed here // (needed for setting breakpoint when called with --inspect-brk) var resolvedArgv; // Run the file contents in the correct scope or sandbox. Expose // the correct helper variables (require, module, exports) to // the file. // Returns exception, if any. Module.prototype._compile = function(content, filename) { content = stripShebang(content); // create wrapper function var wrapper = Module.wrap(content); var compiledWrapper = vm.runInThisContext(wrapper, { filename: filename, lineOffset: 0, displayErrors: true }); var inspectorWrapper = null; if (process._breakFirstLine && process._eval == null) { if (!resolvedArgv) { // we enter the repl if we're not given a filename argument. if (process.argv[1]) { resolvedArgv = Module._resolveFilename(process.argv[1], null, false); } else { resolvedArgv = 'repl'; } } // Set breakpoint on module start if (filename === resolvedArgv) { delete process._breakFirstLine; inspectorWrapper = process.binding('inspector').callAndPauseOnStart; } } var dirname = path.dirname(filename); var require = makeRequireFunction(this); var depth = requireDepth; if (depth === 0) stat.cache = new Map(); var result; if (inspectorWrapper) { result = inspectorWrapper(compiledWrapper, this.exports, this.exports, require, this, filename, dirname); } else { result = compiledWrapper.call(this.exports, this.exports, require, this, filename, dirname); } if (depth === 0) stat.cache = null; return result; }; // Native extension for .js Module._extensions['.js'] = function(module, filename) { var content = fs.readFileSync(filename, 'utf8'); module._compile(stripBOM(content), filename); }; // Native extension for .json Module._extensions['.json'] = function(module, filename) { var content = fs.readFileSync(filename, 'utf8'); try { module.exports = JSON.parse(stripBOM(content)); } catch (err) { err.message = filename + ': ' + err.message; throw err; } }; // Native extension for .node Module._extensions['.node'] = function(module, filename) { return process.dlopen(module, path.toNamespacedPath(filename)); }; if (experimentalModules) { if (asyncESM === undefined) lazyLoadESM(); Module._extensions['.mjs'] = function(module, filename) { throw new ERR_REQUIRE_ESM(filename); }; } // bootstrap main module. Module.runMain = function() { // Load the main module--the command line argument. if (experimentalModules) { if (asyncESM === undefined) lazyLoadESM(); asyncESM.loaderPromise.then((loader) => { return loader.import(pathToFileURL(process.argv[1]).pathname); }) .catch((e) => { decorateErrorStack(e); console.error(e); process.exit(1); }); } else { Module._load(process.argv[1], null, true); } // Handle any nextTicks added in the first tick of the program process._tickCallback(); }; Module.createRequireFromPath = (filename) => { const m = new Module(filename); m.filename = filename; m.paths = Module._nodeModulePaths(path.dirname(filename)); return makeRequireFunction(m); }; Module._initPaths = function() { const isWindows = process.platform === 'win32'; var homeDir; var nodePath; if (isWindows) { homeDir = process.env.USERPROFILE; nodePath = process.env.NODE_PATH; } else { homeDir = safeGetenv('HOME'); nodePath = safeGetenv('NODE_PATH'); } // $PREFIX/lib/node, where $PREFIX is the root of the Node.js installation. var prefixDir; // process.execPath is $PREFIX/bin/node except on Windows where it is // $PREFIX\node.exe. if (isWindows) { prefixDir = path.resolve(process.execPath, '..'); } else { prefixDir = path.resolve(process.execPath, '..', '..'); } var paths = [path.resolve(prefixDir, 'lib', 'node')]; if (homeDir) { paths.unshift(path.resolve(homeDir, '.node_libraries')); paths.unshift(path.resolve(homeDir, '.node_modules')); } if (nodePath) { paths = nodePath.split(path.delimiter).filter(function pathsFilterCB(path) { return !!path; }).concat(paths); } modulePaths = paths; // clone as a shallow copy, for introspection. Module.globalPaths = modulePaths.slice(0); }; Module._preloadModules = function(requests) { if (!Array.isArray(requests)) return; // Preloaded modules have a dummy parent module which is deemed to exist // in the current working directory. This seeds the search path for // preloaded modules. var parent = new Module('internal/preload', null); try { parent.paths = Module._nodeModulePaths(process.cwd()); } catch (e) { if (e.code !== 'ENOENT') { throw e; } } for (var n = 0; n < requests.length; n++) parent.require(requests[n]); }; Module._initPaths(); // Backwards compatibility Module.Module = Module; internal/modules/esm/loader'use strict'; const { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_PROPERTY, ERR_INVALID_RETURN_PROPERTY_VALUE, ERR_INVALID_RETURN_VALUE, ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK, ERR_UNKNOWN_MODULE_FORMAT } = require('internal/errors').codes; const { URL } = require('url'); const ModuleMap = require('internal/modules/esm/module_map'); const ModuleJob = require('internal/modules/esm/module_job'); const defaultResolve = require('internal/modules/esm/default_resolve'); const createDynamicModule = require( 'internal/modules/esm/create_dynamic_module'); const translators = require('internal/modules/esm/translators'); const FunctionBind = Function.call.bind(Function.prototype.bind); const debug = require('util').debuglog('esm'); /* A Loader instance is used as the main entry point for loading ES modules. * Currently, this is a singleton -- there is only one used for loading * the main module and everything in its dependency graph. */ class Loader { constructor() { // methods which translate input code or other information // into es modules this.translators = translators; // registry of loaded modules, akin to `require.cache` this.moduleMap = new ModuleMap(); // The resolver has the signature // (specifier : string, parentURL : string, defaultResolve) // -> Promise<{ url : string, format: string }> // where defaultResolve is ModuleRequest.resolve (having the same // signature itself). // If `.format` on the returned value is 'dynamic', .dynamicInstantiate // will be used as described below. this._resolve = defaultResolve; // This hook is only called when resolve(...).format is 'dynamic' and // has the signature // (url : string) -> Promise<{ exports: { ... }, execute: function }> // Where `exports` is an object whose property names define the exported // names of the generated module. `execute` is a function that receives // an object with the same keys as `exports`, whose values are get/set // functions for the actual exported values. this._dynamicInstantiate = undefined; } async resolve(specifier, parentURL) { const isMain = parentURL === undefined; if (!isMain && typeof parentURL !== 'string') throw new ERR_INVALID_ARG_TYPE('parentURL', 'string', parentURL); const resolved = await this._resolve(specifier, parentURL, defaultResolve); if (typeof resolved !== 'object') throw new ERR_INVALID_RETURN_VALUE( 'object', 'loader resolve', resolved ); const { url, format } = resolved; if (typeof url !== 'string') throw new ERR_INVALID_RETURN_PROPERTY_VALUE( 'string', 'loader resolve', 'url', url ); if (typeof format !== 'string') throw new ERR_INVALID_RETURN_PROPERTY_VALUE( 'string', 'loader resolve', 'format', format ); if (format === 'builtin') return { url: `node:${url}`, format }; if (this._resolve !== defaultResolve) { try { new URL(url); } catch { throw new ERR_INVALID_RETURN_PROPERTY( 'url', 'loader resolve', 'url', url ); } } if (format !== 'dynamic' && !url.startsWith('file:')) throw new ERR_INVALID_RETURN_PROPERTY( 'file: url', 'loader resolve', 'url', url ); return { url, format }; } async import(specifier, parent) { const job = await this.getModuleJob(specifier, parent); const module = await job.run(); return module.namespace(); } hook({ resolve, dynamicInstantiate }) { // Use .bind() to avoid giving access to the Loader instance when called. if (resolve !== undefined) this._resolve = FunctionBind(resolve, null); if (dynamicInstantiate !== undefined) this._dynamicInstantiate = FunctionBind(dynamicInstantiate, null); } async getModuleJob(specifier, parentURL) { const { url, format } = await this.resolve(specifier, parentURL); let job = this.moduleMap.get(url); if (job !== undefined) return job; let loaderInstance; if (format === 'dynamic') { if (typeof this._dynamicInstantiate !== 'function') throw new ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK(); loaderInstance = async (url) => { debug(`Translating dynamic ${url}`); const { exports, execute } = await this._dynamicInstantiate(url); return createDynamicModule(exports, url, (reflect) => { debug(`Loading dynamic ${url}`); execute(reflect.exports); }); }; } else { if (!translators.has(format)) throw new ERR_UNKNOWN_MODULE_FORMAT(format); loaderInstance = translators.get(format); } job = new ModuleJob(this, url, loaderInstance, parentURL === undefined); this.moduleMap.set(url, job); return job; } } Object.setPrototypeOf(Loader.prototype, null); module.exports = Loader; internal/modules/esm/create_dynamic_module'use strict'; const { ModuleWrap } = internalBinding('module_wrap'); const debug = require('util').debuglog('esm'); const ArrayJoin = Function.call.bind(Array.prototype.join); const ArrayMap = Function.call.bind(Array.prototype.map); const createDynamicModule = (exports, url = '', evaluate) => { debug( `creating ESM facade for ${url} with exports: ${ArrayJoin(exports, ', ')}` ); const names = ArrayMap(exports, (name) => `${name}`); // Create two modules: One whose exports are get- and set-able ('reflective'), // and one which re-exports all of these but additionally may // run an executor function once everything is set up. const src = ` export let executor; ${ArrayJoin(ArrayMap(names, (name) => `export let $${name};`), '\n')} /* This function is implicitly returned as the module's completion value */ (() => ({ setExecutor: fn => executor = fn, reflect: { exports: { ${ ArrayJoin(ArrayMap(names, (name) => ` ${name}: { get: () => $${name}, set: v => $${name} = v }`), ', \n')} } } }));`; const reflectiveModule = new ModuleWrap(src, `cjs-facade:${url}`); reflectiveModule.instantiate(); const { setExecutor, reflect } = reflectiveModule.evaluate(-1, false)(); // public exposed ESM const reexports = ` import { executor, ${ArrayMap(names, (name) => `$${name}`)} } from ""; export { ${ArrayJoin(ArrayMap(names, (name) => `$${name} as ${name}`), ', ')} } if (typeof executor === "function") { // add await to this later if top level await comes along executor() }`; if (typeof evaluate === 'function') { setExecutor(() => evaluate(reflect)); } const module = new ModuleWrap(reexports, `${url}`); module.link(async () => reflectiveModule); module.instantiate(); reflect.namespace = module.namespace(); return { module, reflect, }; }; module.exports = createDynamicModule; internal/modules/esm/default_resolve'use strict'; const { URL } = require('url'); const CJSmodule = require('internal/modules/cjs/loader'); const internalFS = require('internal/fs/utils'); const { NativeModule } = require('internal/bootstrap/loaders'); const { extname } = require('path'); const { realpathSync } = require('fs'); const { getOptionValue } = require('internal/options'); const preserveSymlinks = getOptionValue('--preserve-symlinks'); const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main'); const { ERR_MISSING_MODULE, ERR_MODULE_RESOLUTION_LEGACY, ERR_UNKNOWN_FILE_EXTENSION } = require('internal/errors').codes; const { resolve: moduleWrapResolve } = internalBinding('module_wrap'); const StringStartsWith = Function.call.bind(String.prototype.startsWith); const { pathToFileURL, fileURLToPath } = require('internal/url'); const realpathCache = new Map(); function search(target, base) { if (base === undefined) { // We cannot search without a base. throw new ERR_MISSING_MODULE(target); } try { return moduleWrapResolve(target, base); } catch (e) { e.stack; // cause V8 to generate stack before rethrow let error = e; try { const questionedBase = new URL(base); const tmpMod = new CJSmodule(questionedBase.pathname, null); tmpMod.paths = CJSmodule._nodeModulePaths( new URL('./', questionedBase).pathname); const found = CJSmodule._resolveFilename(target, tmpMod); error = new ERR_MODULE_RESOLUTION_LEGACY(target, base, found); } catch { // ignore } throw error; } } const extensionFormatMap = { '__proto__': null, '.mjs': 'esm', '.json': 'json', '.node': 'addon', '.js': 'cjs' }; function resolve(specifier, parentURL) { if (NativeModule.nonInternalExists(specifier)) { return { url: specifier, format: 'builtin' }; } let url; try { url = search(specifier, parentURL || pathToFileURL(`${process.cwd()}/`).href); } catch (e) { if (typeof e.message === 'string' && StringStartsWith(e.message, 'Cannot find module')) e.code = 'MODULE_NOT_FOUND'; throw e; } const isMain = parentURL === undefined; if (isMain ? !preserveSymlinksMain : !preserveSymlinks) { const real = realpathSync(fileURLToPath(url), { [internalFS.realpathCacheKey]: realpathCache }); const old = url; url = pathToFileURL(real); url.search = old.search; url.hash = old.hash; } const ext = extname(url.pathname); let format = extensionFormatMap[ext]; if (!format) { if (isMain) format = 'cjs'; else throw new ERR_UNKNOWN_FILE_EXTENSION(url.pathname); } return { url: `${url}`, format }; } module.exports = resolve; // exported for tests module.exports.search = search; internal/modules/esm/module_job'use strict'; const { ModuleWrap } = internalBinding('module_wrap'); const { SafeSet, SafePromise } = require('internal/safe_globals'); const { decorateErrorStack } = require('internal/util'); const assert = require('assert'); const resolvedPromise = SafePromise.resolve(); /* A ModuleJob tracks the loading of a single Module, and the ModuleJobs of * its dependencies, over time. */ class ModuleJob { // `loader` is the Loader instance used for loading dependencies. // `moduleProvider` is a function constructor(loader, url, moduleProvider, isMain) { this.loader = loader; this.isMain = isMain; // This is a Promise<{ module, reflect }>, whose fields will be copied // onto `this` by `link()` below once it has been resolved. this.modulePromise = moduleProvider(url, isMain); this.module = undefined; this.reflect = undefined; // Wait for the ModuleWrap instance being linked with all dependencies. const link = async () => { ({ module: this.module, reflect: this.reflect } = await this.modulePromise); assert(this.module instanceof ModuleWrap); const dependencyJobs = []; const promises = this.module.link(async (specifier) => { const jobPromise = this.loader.getModuleJob(specifier, url); dependencyJobs.push(jobPromise); return (await (await jobPromise).modulePromise).module; }); if (promises !== undefined) await SafePromise.all(promises); return SafePromise.all(dependencyJobs); }; // Promise for the list of all dependencyJobs. this.linked = link(); // instantiated == deep dependency jobs wrappers instantiated, // module wrapper instantiated this.instantiated = undefined; } async instantiate() { if (!this.instantiated) { return this.instantiated = this._instantiate(); } await this.instantiated; return this.module; } // This method instantiates the module associated with this job and its // entire dependency graph, i.e. creates all the module namespaces and the // exported/imported variables. async _instantiate() { const jobsInGraph = new SafeSet(); const addJobsToDependencyGraph = async (moduleJob) => { if (jobsInGraph.has(moduleJob)) { return; } jobsInGraph.add(moduleJob); const dependencyJobs = await moduleJob.linked; return Promise.all(dependencyJobs.map(addJobsToDependencyGraph)); }; await addJobsToDependencyGraph(this); try { if (this.isMain && process._breakFirstLine) { delete process._breakFirstLine; const initWrapper = process.binding('inspector').callAndPauseOnStart; initWrapper(this.module.instantiate, this.module); } else { this.module.instantiate(); } } catch (e) { decorateErrorStack(e); throw e; } for (const dependencyJob of jobsInGraph) { // Calling `this.module.instantiate()` instantiates not only the // ModuleWrap in this module, but all modules in the graph. dependencyJob.instantiated = resolvedPromise; } return this.module; } async run() { const module = await this.instantiate(); module.evaluate(-1, false); return module; } } Object.setPrototypeOf(ModuleJob.prototype, null); module.exports = ModuleJob; internal/modules/esm/module_map'use strict'; const ModuleJob = require('internal/modules/esm/module_job'); const { SafeMap } = require('internal/safe_globals'); const debug = require('util').debuglog('esm'); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; // Tracks the state of the loader-level module cache class ModuleMap extends SafeMap { get(url) { if (typeof url !== 'string') { throw new ERR_INVALID_ARG_TYPE('url', 'string', url); } return super.get(url); } set(url, job) { if (typeof url !== 'string') { throw new ERR_INVALID_ARG_TYPE('url', 'string', url); } if (job instanceof ModuleJob !== true) { throw new ERR_INVALID_ARG_TYPE('job', 'ModuleJob', job); } debug(`Storing ${url} in ModuleMap`); return super.set(url, job); } has(url) { if (typeof url !== 'string') { throw new ERR_INVALID_ARG_TYPE('url', 'string', url); } return super.has(url); } } module.exports = ModuleMap; internal/modules/esm/translators'use strict'; const { NativeModule } = require('internal/bootstrap/loaders'); const { ModuleWrap } = internalBinding('module_wrap'); const { stripShebang, stripBOM } = require('internal/modules/cjs/helpers'); const CJSModule = require('internal/modules/cjs/loader'); const internalURLModule = require('internal/url'); const createDynamicModule = require( 'internal/modules/esm/create_dynamic_module'); const fs = require('fs'); const { _makeLong } = require('path'); const { SafeMap } = require('internal/safe_globals'); const { URL } = require('url'); const { debuglog, promisify } = require('util'); const readFileAsync = promisify(fs.readFile); const readFileSync = fs.readFileSync; const StringReplace = Function.call.bind(String.prototype.replace); const JsonParse = JSON.parse; const debug = debuglog('esm'); const translators = new SafeMap(); module.exports = translators; // Strategy for loading a standard JavaScript module translators.set('esm', async (url) => { const source = `${await readFileAsync(new URL(url))}`; debug(`Translating StandardModule ${url}`); return { module: new ModuleWrap(stripShebang(source), url), reflect: undefined }; }); // Strategy for loading a node-style CommonJS module const isWindows = process.platform === 'win32'; const winSepRegEx = /\//g; translators.set('cjs', async (url, isMain) => { debug(`Translating CJSModule ${url}`); const pathname = internalURLModule.fileURLToPath(new URL(url)); const module = CJSModule._cache[ isWindows ? StringReplace(pathname, winSepRegEx, '\\') : pathname]; if (module && module.loaded) { const ctx = createDynamicModule(['default'], url); ctx.reflect.exports.default.set(module.exports); return ctx; } return createDynamicModule(['default'], url, () => { debug(`Loading CJSModule ${url}`); // we don't care about the return val of _load here because Module#load // will handle it for us by checking the loader registry and filling the // exports like above CJSModule._load(pathname, undefined, isMain); }); }); // Strategy for loading a node builtin CommonJS module that isn't // through normal resolution translators.set('builtin', async (url) => { debug(`Translating BuiltinModule ${url}`); // slice 'node:' scheme const id = url.slice(5); NativeModule.require(id); const module = NativeModule.getCached(id); return createDynamicModule( [...module.exportKeys, 'default'], url, (reflect) => { debug(`Loading BuiltinModule ${url}`); module.reflect = reflect; for (const key of module.exportKeys) reflect.exports[key].set(module.exports[key]); reflect.exports.default.set(module.exports); }); }); // Strategy for loading a node native module translators.set('addon', async (url) => { debug(`Translating NativeModule ${url}`); return createDynamicModule(['default'], url, (reflect) => { debug(`Loading NativeModule ${url}`); const module = { exports: {} }; const pathname = internalURLModule.fileURLToPath(new URL(url)); process.dlopen(module, _makeLong(pathname)); reflect.exports.default.set(module.exports); }); }); // Strategy for loading a JSON file translators.set('json', async (url) => { debug(`Translating JSONModule ${url}`); return createDynamicModule(['default'], url, (reflect) => { debug(`Loading JSONModule ${url}`); const pathname = internalURLModule.fileURLToPath(new URL(url)); const content = readFileSync(pathname, 'utf8'); try { const exports = JsonParse(stripBOM(content)); reflect.exports.default.set(exports); } catch (err) { err.message = pathname + ': ' + err.message; throw err; } }); }); internal/safe_globals'use strict'; const copyProps = (unsafe, safe) => { for (const key of [...Object.getOwnPropertyNames(unsafe), ...Object.getOwnPropertySymbols(unsafe) ]) { if (!Object.getOwnPropertyDescriptor(safe, key)) { Object.defineProperty( safe, key, Object.getOwnPropertyDescriptor(unsafe, key)); } } }; const makeSafe = (unsafe, safe) => { copyProps(unsafe.prototype, safe.prototype); copyProps(unsafe, safe); Object.setPrototypeOf(safe.prototype, null); Object.freeze(safe.prototype); Object.freeze(safe); return safe; }; exports.SafeMap = makeSafe(Map, class SafeMap extends Map {}); exports.SafeSet = makeSafe(Set, class SafeSet extends Set {}); exports.SafePromise = makeSafe(Promise, class SafePromise extends Promise {}); internal/net'use strict'; const Buffer = require('buffer').Buffer; const { writeBuffer } = process.binding('fs'); const errors = require('internal/errors'); // IPv4 Segment const v4Seg = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; const v4Str = `(${v4Seg}[.]){3}${v4Seg}`; const IPv4Reg = new RegExp(`^${v4Str}$`); // IPv6 Segment const v6Seg = '(?:[0-9a-fA-F]{1,4})'; const IPv6Reg = new RegExp('^(' + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + ')(%[0-9a-zA-Z]{1,})?$'); function isIPv4(s) { return IPv4Reg.test(s); } function isIPv6(s) { return IPv6Reg.test(s); } function isIP(s) { if (isIPv4(s)) return 4; if (isIPv6(s)) return 6; return 0; } // Check that the port number is not NaN when coerced to a number, // is an integer and that it falls within the legal range of port numbers. function isLegalPort(port) { if ((typeof port !== 'number' && typeof port !== 'string') || (typeof port === 'string' && port.trim().length === 0)) return false; return +port === (+port >>> 0) && port <= 0xFFFF; } function makeSyncWrite(fd) { return function(chunk, enc, cb) { if (enc !== 'buffer') chunk = Buffer.from(chunk, enc); this._handle.bytesWritten += chunk.length; const ctx = {}; writeBuffer(fd, chunk, 0, chunk.length, null, undefined, ctx); if (ctx.errno !== undefined) { const ex = errors.uvException(ctx); // Legacy: net writes have .code === .errno, whereas writeBuffer gives the // raw errno number in .errno. ex.errno = ex.code; return cb(ex); } cb(); }; } module.exports = { isIP, isIPv4, isIPv6, isLegalPort, makeSyncWrite, normalizedArgsSymbol: Symbol('normalizedArgs') }; internal/options'use strict'; const { getOptions } = internalBinding('options'); const { options, aliases } = getOptions(); function getOptionValue(option) { const result = options.get(option); if (!result) { return undefined; } return result.value; } module.exports = { options, aliases, getOptionValue }; internal/print_help'use strict'; const { types } = internalBinding('options'); const typeLookup = []; for (const key of Object.keys(types)) typeLookup[types[key]] = key; // Environment variables are parsed ad-hoc throughout the code base, // so we gather the documentation here. const { hasIntl, hasSmallICU, hasNodeOptions } = process.binding('config'); const envVars = new Map([ ['NODE_DEBUG', { helpText: "','-separated list of core modules that " + 'should print debug information' }], ['NODE_DEBUG_NATIVE', { helpText: "','-separated list of C++ core debug " + 'categories that should print debug output' }], ['NODE_DISABLE_COLORS', { helpText: 'set to 1 to disable colors in ' + 'the REPL' }], ['NODE_EXTRA_CA_CERTS', { helpText: 'path to additional CA certificates ' + 'file' }], ['NODE_NO_WARNINGS', { helpText: 'set to 1 to silence process warnings' }], ['NODE_PATH', { helpText: `'${require('path').delimiter}'-separated list ` + 'of directories prefixed to the module search path' }], ['NODE_PENDING_DEPRECATION', { helpText: 'set to 1 to emit pending ' + 'deprecation warnings' }], ['NODE_PRESERVE_SYMLINKS', { helpText: 'set to 1 to preserve symbolic ' + 'links when resolving and caching modules' }], ['NODE_REDIRECT_WARNINGS', { helpText: 'write warnings to path instead ' + 'of stderr' }], ['NODE_REPL_HISTORY', { helpText: 'path to the persistent REPL ' + 'history file' }], ['NODE_TLS_REJECT_UNAUTHORIZED', { helpText: 'set to 0 to disable TLS ' + 'certificate validation' }], ['NODE_V8_COVERAGE', { helpText: 'directory to output v8 coverage JSON ' + 'to' }], ['OPENSSL_CONF', { helpText: 'load OpenSSL configuration from file' }], ['SSL_CERT_DIR', { helpText: 'sets OpenSSL\'s directory of trusted ' + 'certificates when used in conjunction with --use-openssl-ca' }], ['SSL_CERT_FILE', { helpText: 'sets OpenSSL\'s trusted certificate file ' + 'when used in conjunction with --use-openssl-ca' }], ['UV_THREADPOOL_SIZE', { helpText: 'sets the number of threads used in ' + 'libuv\'s threadpool' }] ].concat(hasIntl ? [ ['NODE_ICU_DATA', { helpText: 'data path for ICU (Intl object) data' + hasSmallICU ? '' : ' (will extend linked-in data)' }] ] : []).concat(hasNodeOptions ? [ ['NODE_OPTIONS', { helpText: 'set CLI options in the environment via a ' + 'space-separated list' }] ] : [])); function indent(text, depth) { return text.replace(/^/gm, ' '.repeat(depth)); } function fold(text, width) { return text.replace(new RegExp(`([^\n]{0,${width}})( |$)`, 'g'), (_, newLine, end) => newLine + (end === ' ' ? '\n' : '')); } function getArgDescription(type) { switch (typeLookup[type]) { case 'kNoOp': case 'kV8Option': case 'kBoolean': break; case 'kHostPort': return '[host:]port'; case 'kInteger': case 'kUInteger': case 'kString': case 'kStringList': return '...'; case undefined: break; default: require('assert').fail(`unknown option type ${type}`); } } function format({ options, aliases = new Map(), firstColumn, secondColumn }) { let text = ''; let maxFirstColumnUsed = 0; for (const [ name, { helpText, type, value } ] of [...options.entries()].sort()) { if (!helpText) continue; let displayName = name; const argDescription = getArgDescription(type); if (argDescription) displayName += `=${argDescription}`; for (const [ from, to ] of aliases) { // For cases like e.g. `-e, --eval`. if (to[0] === name && to.length === 1) { displayName = `${from}, ${displayName}`; } // For cases like `--inspect-brk[=[host:]port]`. const targetInfo = options.get(to[0]); const targetArgDescription = targetInfo ? getArgDescription(targetInfo.type) : '...'; if (from === `${name}=`) { displayName += `[=${targetArgDescription}]`; } else if (from === `${name} `) { displayName += ` [${targetArgDescription}]`; } } let displayHelpText = helpText; if (value === true) { // Mark boolean options we currently have enabled. // In particular, it indicates whether --use-openssl-ca // or --use-bundled-ca is the (current) default. displayHelpText += ' (currently set)'; } text += displayName; maxFirstColumnUsed = Math.max(maxFirstColumnUsed, displayName.length); if (displayName.length >= firstColumn) text += '\n' + ' '.repeat(firstColumn); else text += ' '.repeat(firstColumn - displayName.length); text += indent(fold(displayHelpText, secondColumn), firstColumn).trimLeft() + '\n'; } if (maxFirstColumnUsed < firstColumn - 4) { // If we have more than 4 blank gap spaces, reduce first column width. return format({ options, aliases, firstColumn: maxFirstColumnUsed + 2, secondColumn }); } return text; } function print(stream) { const { options, aliases } = require('internal/options'); // Use 75 % of the available width, and at least 70 characters. const width = Math.max(70, (stream.columns || 0) * 0.75); const firstColumn = Math.floor(width * 0.4); const secondColumn = Math.floor(width * 0.57); options.set('-', { helpText: 'script read from stdin ' + '(default if no file name is provided, ' + 'interactive mode if a tty)' }); options.set('--', { helpText: 'indicate the end of node options' }); stream.write( 'Usage: node [options] [ -e script | script.js | - ] [arguments]\n' + ' node inspect script.js [arguments]\n\n' + 'Options:\n'); stream.write(indent(format({ options, aliases, firstColumn, secondColumn }), 2)); stream.write('\nEnvironment variables:\n'); stream.write(format({ options: envVars, firstColumn, secondColumn })); stream.write('\nDocumentation can be found at https://nodejs.org/\n'); } module.exports = { print }; internal/process/esm_loader'use strict'; const { setImportModuleDynamicallyCallback, setInitializeImportMetaObjectCallback } = internalBinding('module_wrap'); const { pathToFileURL } = require('internal/url'); const Loader = require('internal/modules/esm/loader'); const path = require('path'); const { URL } = require('url'); const { initImportMetaMap, wrapToModuleMap } = require('internal/vm/source_text_module'); function normalizeReferrerURL(referrer) { if (typeof referrer === 'string' && path.isAbsolute(referrer)) { return pathToFileURL(referrer).href; } return new URL(referrer).href; } function initializeImportMetaObject(wrap, meta) { const vmModule = wrapToModuleMap.get(wrap); if (vmModule === undefined) { // This ModuleWrap belongs to the Loader. meta.url = wrap.url; } else { const initializeImportMeta = initImportMetaMap.get(vmModule); if (initializeImportMeta !== undefined) { // This ModuleWrap belongs to vm.SourceTextModule, // initializer callback was provided. initializeImportMeta(meta, vmModule); } } } let loaderResolve; exports.loaderPromise = new Promise((resolve, reject) => { loaderResolve = resolve; }); exports.ESMLoader = undefined; exports.setup = function() { setInitializeImportMetaObjectCallback(initializeImportMetaObject); let ESMLoader = new Loader(); const loaderPromise = (async () => { const userLoader = require('internal/options').getOptionValue('--loader'); if (userLoader) { const hooks = await ESMLoader.import( userLoader, pathToFileURL(`${process.cwd()}/`).href); ESMLoader = new Loader(); ESMLoader.hook(hooks); exports.ESMLoader = ESMLoader; } return ESMLoader; })(); loaderResolve(loaderPromise); setImportModuleDynamicallyCallback(async (referrer, specifier) => { const loader = await loaderPromise; return loader.import(specifier, normalizeReferrerURL(referrer)); }); exports.ESMLoader = ESMLoader; }; internal/process/main_thread_only'use strict'; // This file contains process bootstrappers that can only be // run in the main thread const { errnoException } = require('internal/errors'); const { setupProcessStdio, getMainThreadStdio } = require('internal/process/stdio'); const assert = require('assert').strict; function setupStdio() { setupProcessStdio(getMainThreadStdio()); } // Non-POSIX platforms like Windows don't have certain methods. // Workers also lack these methods since they change process-global state. function setupProcessMethods(_chdir, _umask, _initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups) { if (_setgid !== undefined) { setupPosixMethods(_initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups); } process.chdir = function chdir(...args) { return _chdir(...args); }; process.umask = function umask(...args) { return _umask(...args); }; } function setupPosixMethods(_initgroups, _setegid, _seteuid, _setgid, _setuid, _setgroups) { process.initgroups = function initgroups(...args) { return _initgroups(...args); }; process.setegid = function setegid(...args) { return _setegid(...args); }; process.seteuid = function seteuid(...args) { return _seteuid(...args); }; process.setgid = function setgid(...args) { return _setgid(...args); }; process.setuid = function setuid(...args) { return _setuid(...args); }; process.setgroups = function setgroups(...args) { return _setgroups(...args); }; } // Worker threads don't receive signals. function setupSignalHandlers() { const constants = process.binding('constants').os.signals; const signalWraps = Object.create(null); let Signal; function isSignal(event) { return typeof event === 'string' && constants[event] !== undefined; } // Detect presence of a listener for the special signal types process.on('newListener', function(type) { if (isSignal(type) && signalWraps[type] === undefined) { if (Signal === undefined) Signal = process.binding('signal_wrap').Signal; const wrap = new Signal(); wrap.unref(); wrap.onsignal = process.emit.bind(process, type, type); const signum = constants[type]; const err = wrap.start(signum); if (err) { wrap.close(); throw errnoException(err, 'uv_signal_start'); } signalWraps[type] = wrap; } }); process.on('removeListener', function(type) { if (signalWraps[type] !== undefined && this.listenerCount(type) === 0) { signalWraps[type].close(); delete signalWraps[type]; } }); } function setupChildProcessIpcChannel() { // If we were spawned with env NODE_CHANNEL_FD then load that up and // start parsing data from that stream. if (process.env.NODE_CHANNEL_FD) { const fd = parseInt(process.env.NODE_CHANNEL_FD, 10); assert(fd >= 0); // Make sure it's not accidentally inherited by child processes. delete process.env.NODE_CHANNEL_FD; require('child_process')._forkChild(fd); assert(process.send); } } module.exports = { setupStdio, setupProcessMethods, setupSignalHandlers, setupChildProcessIpcChannel }; internal/process/next_tick'use strict'; exports.setup = setupNextTick; function setupNextTick(_setupNextTick, _setupPromises) { const { getDefaultTriggerAsyncId, newAsyncId, initHooksExist, destroyHooksExist, emitInit, emitBefore, emitAfter, emitDestroy, symbols: { async_id_symbol, trigger_async_id_symbol } } = require('internal/async_hooks'); const emitPromiseRejectionWarnings = require('internal/process/promises').setup(_setupPromises); const { ERR_INVALID_CALLBACK } = require('internal/errors').codes; const FixedQueue = require('internal/fixed_queue'); // tickInfo is used so that the C++ code in src/node.cc can // have easy access to our nextTick state, and avoid unnecessary // calls into JS land. // runMicrotasks is used to run V8's micro task queue. const [ tickInfo, runMicrotasks ] = _setupNextTick(_tickCallback); // *Must* match Environment::TickInfo::Fields in src/env.h. const kHasScheduled = 0; const kHasPromiseRejections = 1; const queue = new FixedQueue(); process.nextTick = nextTick; // Needs to be accessible from beyond this scope. process._tickCallback = _tickCallback; function _tickCallback() { let tock; do { while (tock = queue.shift()) { const asyncId = tock[async_id_symbol]; emitBefore(asyncId, tock[trigger_async_id_symbol]); // emitDestroy() places the async_id_symbol into an asynchronous queue // that calls the destroy callback in the future. It's called before // calling tock.callback so destroy will be called even if the callback // throws an exception that is handled by 'uncaughtException' or a // domain. // TODO(trevnorris): This is a bit of a hack. It relies on the fact // that nextTick() doesn't allow the event loop to proceed, but if // any async hooks are enabled during the callback's execution then // this tock's after hook will be called, but not its destroy hook. if (destroyHooksExist()) emitDestroy(asyncId); const callback = tock.callback; if (tock.args === undefined) callback(); else Reflect.apply(callback, undefined, tock.args); emitAfter(asyncId); } tickInfo[kHasScheduled] = 0; runMicrotasks(); } while (!queue.isEmpty() || emitPromiseRejectionWarnings()); tickInfo[kHasPromiseRejections] = 0; } class TickObject { constructor(callback, args, triggerAsyncId) { // this must be set to null first to avoid function tracking // on the hidden class, revisit in V8 versions after 6.2 this.callback = null; this.callback = callback; this.args = args; const asyncId = newAsyncId(); this[async_id_symbol] = asyncId; this[trigger_async_id_symbol] = triggerAsyncId; if (initHooksExist()) { emitInit(asyncId, 'TickObject', triggerAsyncId, this); } } } // `nextTick()` will not enqueue any callback when the process is about to // exit since the callback would not have a chance to be executed. function nextTick(callback) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); if (process._exiting) return; var args; switch (arguments.length) { case 1: break; case 2: args = [arguments[1]]; break; case 3: args = [arguments[1], arguments[2]]; break; case 4: args = [arguments[1], arguments[2], arguments[3]]; break; default: args = new Array(arguments.length - 1); for (var i = 1; i < arguments.length; i++) args[i - 1] = arguments[i]; } if (queue.isEmpty()) tickInfo[kHasScheduled] = 1; queue.push(new TickObject(callback, args, getDefaultTriggerAsyncId())); } } internal/process/per_thread'use strict'; // This files contains process bootstrappers that can be // run when setting up each thread, including the main // thread and the worker threads. const { errnoException, codes: { ERR_ASSERTION, ERR_CPU_USAGE, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARRAY_LENGTH, ERR_INVALID_OPT_VALUE, ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET, ERR_UNKNOWN_SIGNAL } } = require('internal/errors'); const util = require('util'); const constants = process.binding('constants').os.signals; const { deprecate } = require('internal/util'); function setupAssert() { process.assert = deprecate( function(x, msg) { if (!x) throw new ERR_ASSERTION(msg || 'assertion error'); }, 'process.assert() is deprecated. Please use the `assert` module instead.', 'DEP0100'); } // Set up the process.cpuUsage() function. function setupCpuUsage(_cpuUsage) { // Create the argument array that will be passed to the native function. const cpuValues = new Float64Array(2); // Replace the native function with the JS version that calls the native // function. process.cpuUsage = function cpuUsage(prevValue) { // If a previous value was passed in, ensure it has the correct shape. if (prevValue) { if (!previousValueIsValid(prevValue.user)) { if (typeof prevValue !== 'object') throw new ERR_INVALID_ARG_TYPE('prevValue', 'object', prevValue); if (typeof prevValue.user !== 'number') { throw new ERR_INVALID_ARG_TYPE('prevValue.user', 'number', prevValue.user); } throw new ERR_INVALID_OPT_VALUE.RangeError('prevValue.user', prevValue.user); } if (!previousValueIsValid(prevValue.system)) { if (typeof prevValue.system !== 'number') { throw new ERR_INVALID_ARG_TYPE('prevValue.system', 'number', prevValue.system); } throw new ERR_INVALID_OPT_VALUE.RangeError('prevValue.system', prevValue.system); } } // Call the native function to get the current values. const errmsg = _cpuUsage(cpuValues); if (errmsg) { throw new ERR_CPU_USAGE(errmsg); } // If a previous value was passed in, return diff of current from previous. if (prevValue) { return { user: cpuValues[0] - prevValue.user, system: cpuValues[1] - prevValue.system }; } // If no previous value passed in, return current value. return { user: cpuValues[0], system: cpuValues[1] }; }; // Ensure that a previously passed in value is valid. Currently, the native // implementation always returns numbers <= Number.MAX_SAFE_INTEGER. function previousValueIsValid(num) { return Number.isFinite(num) && num <= Number.MAX_SAFE_INTEGER && num >= 0; } } // The 3 entries filled in by the original process.hrtime contains // the upper/lower 32 bits of the second part of the value, // and the remaining nanoseconds of the value. function setupHrtime(_hrtime, _hrtimeBigInt) { const hrValues = new Uint32Array(3); process.hrtime = function hrtime(time) { _hrtime(hrValues); if (time !== undefined) { if (!Array.isArray(time)) { throw new ERR_INVALID_ARG_TYPE('time', 'Array', time); } if (time.length !== 2) { throw new ERR_INVALID_ARRAY_LENGTH('time', 2, time.length); } const sec = (hrValues[0] * 0x100000000 + hrValues[1]) - time[0]; const nsec = hrValues[2] - time[1]; const needsBorrow = nsec < 0; return [needsBorrow ? sec - 1 : sec, needsBorrow ? nsec + 1e9 : nsec]; } return [ hrValues[0] * 0x100000000 + hrValues[1], hrValues[2] ]; }; // Use a BigUint64Array in the closure because V8 does not have an API for // creating a BigInt out of a uint64_t yet. const hrBigintValues = new BigUint64Array(1); process.hrtime.bigint = function() { _hrtimeBigInt(hrBigintValues); return hrBigintValues[0]; }; } function setupMemoryUsage(_memoryUsage) { const memValues = new Float64Array(4); process.memoryUsage = function memoryUsage() { _memoryUsage(memValues); return { rss: memValues[0], heapTotal: memValues[1], heapUsed: memValues[2], external: memValues[3] }; }; } function setupConfig(_source) { // NativeModule._source // used for `process.config`, but not a real module const config = _source.config; delete _source.config; process.config = JSON.parse(config, function(key, value) { if (value === 'true') return true; if (value === 'false') return false; return value; }); } function setupKillAndExit() { process.exit = function(code) { if (code || code === 0) process.exitCode = code; if (!process._exiting) { process._exiting = true; process.emit('exit', process.exitCode || 0); } process.reallyExit(process.exitCode || 0); }; process.kill = function(pid, sig) { var err; if (process.env.NODE_V8_COVERAGE) { const { writeCoverage } = require('internal/process/coverage'); writeCoverage(); } // eslint-disable-next-line eqeqeq if (pid != (pid | 0)) { throw new ERR_INVALID_ARG_TYPE('pid', 'number', pid); } // preserve null signal if (sig === (sig | 0)) { err = process._kill(pid, sig); } else { sig = sig || 'SIGTERM'; if (constants[sig]) { err = process._kill(pid, constants[sig]); } else { throw new ERR_UNKNOWN_SIGNAL(sig); } } if (err) throw errnoException(err, 'kill'); return true; }; } function setupRawDebug(_rawDebug) { process._rawDebug = function() { _rawDebug(util.format.apply(null, arguments)); }; } function setupUncaughtExceptionCapture(exceptionHandlerState, shouldAbortOnUncaughtToggle) { // shouldAbortOnUncaughtToggle is a typed array for faster // communication with JS. process.setUncaughtExceptionCaptureCallback = function(fn) { if (fn === null) { exceptionHandlerState.captureFn = fn; shouldAbortOnUncaughtToggle[0] = 1; return; } if (typeof fn !== 'function') { throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'null'], fn); } if (exceptionHandlerState.captureFn !== null) { throw new ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET(); } exceptionHandlerState.captureFn = fn; shouldAbortOnUncaughtToggle[0] = 0; }; process.hasUncaughtExceptionCaptureCallback = function() { return exceptionHandlerState.captureFn !== null; }; } module.exports = { setupAssert, setupCpuUsage, setupHrtime, setupMemoryUsage, setupConfig, setupKillAndExit, setupRawDebug, setupUncaughtExceptionCapture }; internal/process/promises'use strict'; const { safeToString } = internalBinding('util'); const maybeUnhandledPromises = new WeakMap(); const pendingUnhandledRejections = []; const asyncHandledRejections = []; const promiseRejectEvents = {}; let lastPromiseId = 0; exports.setup = setupPromises; function setupPromises(_setupPromises) { _setupPromises(handler, promiseRejectEvents); return emitPromiseRejectionWarnings; } function handler(type, promise, reason) { switch (type) { case promiseRejectEvents.kPromiseRejectWithNoHandler: return unhandledRejection(promise, reason); case promiseRejectEvents.kPromiseHandlerAddedAfterReject: return handledRejection(promise); case promiseRejectEvents.kPromiseResolveAfterResolved: return resolveError('resolve', promise, reason); case promiseRejectEvents.kPromiseRejectAfterResolved: return resolveError('reject', promise, reason); } } function resolveError(type, promise, reason) { // We have to wrap this in a next tick. Otherwise the error could be caught by // the executed promise. process.nextTick(() => { process.emit('multipleResolves', type, promise, reason); }); } function unhandledRejection(promise, reason) { maybeUnhandledPromises.set(promise, { reason, uid: ++lastPromiseId, warned: false }); pendingUnhandledRejections.push(promise); return true; } function handledRejection(promise) { const promiseInfo = maybeUnhandledPromises.get(promise); if (promiseInfo !== undefined) { maybeUnhandledPromises.delete(promise); if (promiseInfo.warned) { const { uid } = promiseInfo; // Generate the warning object early to get a good stack trace. // eslint-disable-next-line no-restricted-syntax const warning = new Error('Promise rejection was handled ' + `asynchronously (rejection id: ${uid})`); warning.name = 'PromiseRejectionHandledWarning'; warning.id = uid; asyncHandledRejections.push({ promise, warning }); return true; } } return false; } const unhandledRejectionErrName = 'UnhandledPromiseRejectionWarning'; function emitWarning(uid, reason) { // eslint-disable-next-line no-restricted-syntax const warning = new Error( 'Unhandled promise rejection. This error originated either by ' + 'throwing inside of an async function without a catch block, ' + 'or by rejecting a promise which was not handled with .catch(). ' + `(rejection id: ${uid})` ); warning.name = unhandledRejectionErrName; try { if (reason instanceof Error) { warning.stack = reason.stack; process.emitWarning(reason.stack, unhandledRejectionErrName); } else { process.emitWarning(safeToString(reason), unhandledRejectionErrName); } } catch {} process.emitWarning(warning); emitDeprecationWarning(); } let deprecationWarned = false; function emitDeprecationWarning() { if (!deprecationWarned) { deprecationWarned = true; process.emitWarning( 'Unhandled promise rejections are deprecated. In the future, ' + 'promise rejections that are not handled will terminate the ' + 'Node.js process with a non-zero exit code.', 'DeprecationWarning', 'DEP0018'); } } function emitPromiseRejectionWarnings() { while (asyncHandledRejections.length > 0) { const { promise, warning } = asyncHandledRejections.shift(); if (!process.emit('rejectionHandled', promise)) { process.emitWarning(warning); } } let hadListeners = false; let len = pendingUnhandledRejections.length; while (len--) { const promise = pendingUnhandledRejections.shift(); const promiseInfo = maybeUnhandledPromises.get(promise); if (promiseInfo !== undefined) { promiseInfo.warned = true; const { reason, uid } = promiseInfo; if (!process.emit('unhandledRejection', reason, promise)) { emitWarning(uid, reason); } else { hadListeners = true; } } } return hadListeners || pendingUnhandledRejections.length !== 0; } internal/process/stdio'use strict'; const { ERR_UNKNOWN_STDIN_TYPE, ERR_UNKNOWN_STREAM_TYPE } = require('internal/errors').codes; exports.setupProcessStdio = setupProcessStdio; exports.getMainThreadStdio = getMainThreadStdio; function dummyDestroy(err, cb) { cb(err); } function getMainThreadStdio() { var stdin; var stdout; var stderr; function getStdout() { if (stdout) return stdout; stdout = createWritableStdioStream(1); stdout.destroySoon = stdout.destroy; // Override _destroy so that the fd is never actually closed. stdout._destroy = dummyDestroy; if (stdout.isTTY) { process.on('SIGWINCH', () => stdout._refreshSize()); } return stdout; } function getStderr() { if (stderr) return stderr; stderr = createWritableStdioStream(2); stderr.destroySoon = stderr.destroy; // Override _destroy so that the fd is never actually closed. stderr._destroy = dummyDestroy; if (stderr.isTTY) { process.on('SIGWINCH', () => stderr._refreshSize()); } return stderr; } function getStdin() { if (stdin) return stdin; const tty_wrap = internalBinding('tty_wrap'); const fd = 0; switch (tty_wrap.guessHandleType(fd)) { case 'TTY': var tty = require('tty'); stdin = new tty.ReadStream(fd, { highWaterMark: 0, readable: true, writable: false }); break; case 'FILE': var fs = require('fs'); stdin = new fs.ReadStream(null, { fd: fd, autoClose: false }); break; case 'PIPE': case 'TCP': var net = require('net'); // It could be that process has been started with an IPC channel // sitting on fd=0, in such case the pipe for this fd is already // present and creating a new one will lead to the assertion failure // in libuv. if (process.channel && process.channel.fd === fd) { stdin = new net.Socket({ handle: process.channel, readable: true, writable: false, manualStart: true }); } else { stdin = new net.Socket({ fd: fd, readable: true, writable: false, manualStart: true }); } // Make sure the stdin can't be `.end()`-ed stdin._writableState.ended = true; break; default: // Probably an error on in uv_guess_handle() throw new ERR_UNKNOWN_STDIN_TYPE(); } // For supporting legacy API we put the FD here. stdin.fd = fd; // stdin starts out life in a paused state, but node doesn't // know yet. Explicitly to readStop() it to put it in the // not-reading state. if (stdin._handle && stdin._handle.readStop) { stdin._handle.reading = false; stdin._readableState.reading = false; stdin._handle.readStop(); } // If the user calls stdin.pause(), then we need to stop reading // once the stream implementation does so (one nextTick later), // so that the process can close down. stdin.on('pause', () => { process.nextTick(onpause); }); function onpause() { if (!stdin._handle) return; if (stdin._handle.reading && !stdin._readableState.flowing) { stdin._readableState.reading = false; stdin._handle.reading = false; stdin._handle.readStop(); } } return stdin; } return { getStdout, getStderr, getStdin }; } function setupProcessStdio({ getStdout, getStdin, getStderr }) { Object.defineProperty(process, 'stdout', { configurable: true, enumerable: true, get: getStdout }); Object.defineProperty(process, 'stderr', { configurable: true, enumerable: true, get: getStderr }); Object.defineProperty(process, 'stdin', { configurable: true, enumerable: true, get: getStdin }); process.openStdin = function() { process.stdin.resume(); return process.stdin; }; } function createWritableStdioStream(fd) { var stream; const tty_wrap = internalBinding('tty_wrap'); // Note stream._type is used for test-module-load-list.js switch (tty_wrap.guessHandleType(fd)) { case 'TTY': var tty = require('tty'); stream = new tty.WriteStream(fd); stream._type = 'tty'; break; case 'FILE': const SyncWriteStream = require('internal/fs/sync_write_stream'); stream = new SyncWriteStream(fd, { autoClose: false }); stream._type = 'fs'; break; case 'PIPE': case 'TCP': var net = require('net'); // If fd is already being used for the IPC channel, libuv will return // an error when trying to use it again. In that case, create the socket // using the existing handle instead of the fd. if (process.channel && process.channel.fd === fd) { stream = new net.Socket({ handle: process.channel, readable: false, writable: true }); } else { stream = new net.Socket({ fd, readable: false, writable: true }); } stream._type = 'pipe'; break; default: // Probably an error on in uv_guess_handle() throw new ERR_UNKNOWN_STREAM_TYPE(); } // For supporting legacy API we put the FD here. stream.fd = fd; stream._isStdio = true; return stream; } internal/process/warning'use strict'; const config = process.binding('config'); const prefix = `(${process.release.name}:${process.pid}) `; const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; exports.setup = setupProcessWarnings; var cachedFd; var acquiringFd = false; function nop() {} // Lazily loaded var fs = null; function writeOut(message) { if (console && typeof console.error === 'function') return console.error(message); process._rawDebug(message); } function onClose(fd) { return function() { if (fs === null) fs = require('fs'); fs.close(fd, nop); }; } function onOpen(cb) { return function(err, fd) { acquiringFd = false; if (fd !== undefined) { cachedFd = fd; process.on('exit', onClose(fd)); } cb(err, fd); process.emit('_node_warning_fd_acquired', err, fd); }; } function onAcquired(message) { // make a best effort attempt at writing the message // to the fd. Errors are ignored at this point. return function(err, fd) { if (err) return writeOut(message); if (fs === null) fs = require('fs'); fs.appendFile(fd, `${message}\n`, nop); }; } function acquireFd(cb) { if (cachedFd === undefined && !acquiringFd) { acquiringFd = true; if (fs === null) fs = require('fs'); fs.open(config.warningFile, 'a', onOpen(cb)); } else if (cachedFd !== undefined && !acquiringFd) { cb(null, cachedFd); } else { process.once('_node_warning_fd_acquired', cb); } } function output(message) { if (typeof config.warningFile === 'string') { acquireFd(onAcquired(message)); return; } writeOut(message); } function doEmitWarning(warning) { return function() { process.emit('warning', warning); }; } function setupProcessWarnings() { if (!process.noProcessWarnings && process.env.NODE_NO_WARNINGS !== '1') { process.on('warning', (warning) => { if (!(warning instanceof Error)) return; const isDeprecation = warning.name === 'DeprecationWarning'; if (isDeprecation && process.noDeprecation) return; const trace = process.traceProcessWarnings || (isDeprecation && process.traceDeprecation); var msg = prefix; if (warning.code) msg += `[${warning.code}] `; if (trace && warning.stack) { msg += `${warning.stack}`; } else { const toString = typeof warning.toString === 'function' ? warning.toString : Error.prototype.toString; msg += `${toString.apply(warning)}`; } if (typeof warning.detail === 'string') { msg += `\n${warning.detail}`; } output(msg); }); } // process.emitWarning(error) // process.emitWarning(str[, type[, code]][, ctor]) // process.emitWarning(str[, options]) process.emitWarning = function(warning, type, code, ctor, now) { var detail; if (type !== null && typeof type === 'object' && !Array.isArray(type)) { ctor = type.ctor; code = type.code; if (typeof type.detail === 'string') detail = type.detail; type = type.type || 'Warning'; } else if (typeof type === 'function') { ctor = type; code = undefined; type = 'Warning'; } if (typeof code === 'function') { ctor = code; code = undefined; } if (code !== undefined && typeof code !== 'string') throw new ERR_INVALID_ARG_TYPE('code', 'string', code); if (type !== undefined && typeof type !== 'string') throw new ERR_INVALID_ARG_TYPE('type', 'string', type); if (warning === undefined || typeof warning === 'string') { // eslint-disable-next-line no-restricted-syntax warning = new Error(warning); warning.name = String(type || 'Warning'); if (code !== undefined) warning.code = code; if (detail !== undefined) warning.detail = detail; Error.captureStackTrace(warning, ctor || process.emitWarning); } if (!(warning instanceof Error)) { throw new ERR_INVALID_ARG_TYPE('warning', ['Error', 'string'], warning); } if (warning.name === 'DeprecationWarning') { if (process.noDeprecation) return; if (process.throwDeprecation) throw warning; } if (now) process.emit('warning', warning); else process.nextTick(doEmitWarning(warning)); }; } internal/process/worker_thread_only'use strict'; // This file contains process bootstrappers that can only be // run in the worker thread. const { setupProcessStdio } = require('internal/process/stdio'); const { workerStdio } = require('internal/worker'); function setupStdio() { setupProcessStdio({ getStdout: () => workerStdio.stdout, getStderr: () => workerStdio.stderr, getStdin: () => workerStdio.stdin }); } module.exports = { setupStdio }; internal/querystring'use strict'; const { ERR_INVALID_URI } = require('internal/errors').codes; const hexTable = new Array(256); for (var i = 0; i < 256; ++i) hexTable[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); const isHexTable = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 32 - 47 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 64 - 79 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 80 - 95 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 96 - 111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 112 - 127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 128 ... 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // ... 256 ]; function encodeStr(str, noEscapeTable, hexTable) { const len = str.length; if (len === 0) return ''; var out = ''; var lastPos = 0; for (var i = 0; i < len; i++) { var c = str.charCodeAt(i); // ASCII if (c < 0x80) { if (noEscapeTable[c] === 1) continue; if (lastPos < i) out += str.slice(lastPos, i); lastPos = i + 1; out += hexTable[c]; continue; } if (lastPos < i) out += str.slice(lastPos, i); // Multi-byte characters ... if (c < 0x800) { lastPos = i + 1; out += hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]; continue; } if (c < 0xD800 || c >= 0xE000) { lastPos = i + 1; out += hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; continue; } // Surrogate pair ++i; // This branch should never happen because all URLSearchParams entries // should already be converted to USVString. But, included for // completion's sake anyway. if (i >= len) throw new ERR_INVALID_URI(); var c2 = str.charCodeAt(i) & 0x3FF; lastPos = i + 1; c = 0x10000 + (((c & 0x3FF) << 10) | c2); out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; } if (lastPos === 0) return str; if (lastPos < len) return out + str.slice(lastPos); return out; } module.exports = { encodeStr, hexTable, isHexTable }; internal/process/write-coverage'use strict'; const path = require('path'); const { mkdirSync, writeFileSync } = require('fs'); function writeCoverage() { if (!global.__coverage__) { return; } const dirname = path.join(path.dirname(process.execPath), '.coverage'); const filename = `coverage-${process.pid}-${Date.now()}.json`; try { mkdirSync(dirname); } catch (err) { if (err.code !== 'EEXIST') { console.error(err); return; } } const target = path.join(dirname, filename); const coverageInfo = JSON.stringify(global.__coverage__); try { writeFileSync(target, coverageInfo); } catch (err) { console.error(err); } } function setup() { const reallyReallyExit = process.reallyExit; process.reallyExit = function(code) { writeCoverage(); reallyReallyExit(code); }; process.on('exit', writeCoverage); } exports.setup = setup; internal/process/coverage'use strict'; const path = require('path'); const { mkdirSync, writeFileSync } = require('fs'); const hasInspector = process.config.variables.v8_enable_inspector === 1; let inspector = null; if (hasInspector) inspector = require('inspector'); let session; function writeCoverage() { if (!session) { return; } const { threadId } = require('internal/worker'); const filename = `coverage-${process.pid}-${Date.now()}-${threadId}.json`; try { // TODO(bcoe): switch to mkdirp once #22302 is addressed. mkdirSync(process.env.NODE_V8_COVERAGE); } catch (err) { if (err.code !== 'EEXIST') { console.error(err); return; } } const target = path.join(process.env.NODE_V8_COVERAGE, filename); try { session.post('Profiler.takePreciseCoverage', (err, coverageInfo) => { if (err) return console.error(err); try { writeFileSync(target, JSON.stringify(coverageInfo)); } catch (err) { console.error(err); } }); } catch (err) { console.error(err); } finally { session.disconnect(); session = null; } } exports.writeCoverage = writeCoverage; function setup() { if (!hasInspector) { console.warn('coverage currently only supported in main thread'); return; } session = new inspector.Session(); session.connect(); session.post('Profiler.enable'); session.post('Profiler.startPreciseCoverage', { callCount: true, detailed: true }); const reallyReallyExit = process.reallyExit; process.reallyExit = function(code) { writeCoverage(); reallyReallyExit(code); }; process.on('exit', writeCoverage); } exports.setup = setup; internal/readline'use strict'; // Regex used for ansi escape code splitting // Adopted from https://github.com/chalk/ansi-regex/blob/master/index.js // License: MIT, authors: @sindresorhus, Qix-, and arjunmehta // Matches all ansi escape code sequences in a string /* eslint-disable no-control-regex */ const ansi = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; /* eslint-enable no-control-regex */ const kEscape = '\x1b'; let getStringWidth; let isFullWidthCodePoint; function CSI(strings, ...args) { let ret = `${kEscape}[`; for (var n = 0; n < strings.length; n++) { ret += strings[n]; if (n < args.length) ret += args[n]; } return ret; } CSI.kEscape = kEscape; CSI.kClearToBeginning = CSI`1K`; CSI.kClearToEnd = CSI`0K`; CSI.kClearLine = CSI`2K`; CSI.kClearScreenDown = CSI`0J`; if (process.binding('config').hasIntl) { const icu = process.binding('icu'); getStringWidth = function getStringWidth(str, options) { options = options || {}; if (!Number.isInteger(str)) str = stripVTControlCharacters(String(str)); return icu.getStringWidth( str, Boolean(options.ambiguousAsFullWidth), Boolean(options.expandEmojiSequence) ); }; isFullWidthCodePoint = function isFullWidthCodePoint(code, options) { if (typeof code !== 'number') return false; return icu.getStringWidth(code, options) === 2; }; } else { /** * Returns the number of columns required to display the given string. */ getStringWidth = function getStringWidth(str) { if (Number.isInteger(str)) return isFullWidthCodePoint(str) ? 2 : 1; let width = 0; str = stripVTControlCharacters(String(str)); for (var i = 0; i < str.length; i++) { const code = str.codePointAt(i); if (code >= 0x10000) { // surrogates i++; } if (isFullWidthCodePoint(code)) { width += 2; } else { width++; } } return width; }; /** * Returns true if the character represented by a given * Unicode code point is full-width. Otherwise returns false. */ isFullWidthCodePoint = function isFullWidthCodePoint(code) { if (!Number.isInteger(code)) { return false; } // Code points are derived from: // http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt if ( code >= 0x1100 && ( code <= 0x115f || // Hangul Jamo code === 0x2329 || // LEFT-POINTING ANGLE BRACKET code === 0x232a || // RIGHT-POINTING ANGLE BRACKET // CJK Radicals Supplement .. Enclosed CJK Letters and Months code >= 0x2e80 && code <= 0x3247 && code !== 0x303f || // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A code >= 0x3250 && code <= 0x4dbf || // CJK Unified Ideographs .. Yi Radicals code >= 0x4e00 && code <= 0xa4c6 || // Hangul Jamo Extended-A code >= 0xa960 && code <= 0xa97c || // Hangul Syllables code >= 0xac00 && code <= 0xd7a3 || // CJK Compatibility Ideographs code >= 0xf900 && code <= 0xfaff || // Vertical Forms code >= 0xfe10 && code <= 0xfe19 || // CJK Compatibility Forms .. Small Form Variants code >= 0xfe30 && code <= 0xfe6b || // Halfwidth and Fullwidth Forms code >= 0xff01 && code <= 0xff60 || code >= 0xffe0 && code <= 0xffe6 || // Kana Supplement code >= 0x1b000 && code <= 0x1b001 || // Enclosed Ideographic Supplement code >= 0x1f200 && code <= 0x1f251 || // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane code >= 0x20000 && code <= 0x3fffd ) ) { return true; } return false; }; } /** * Tries to remove all VT control characters. Use to estimate displayed * string width. May be buggy due to not running a real state machine */ function stripVTControlCharacters(str) { return str.replace(ansi, ''); } /* Some patterns seen in terminal key escape codes, derived from combos seen at http://www.midnight-commander.org/browser/lib/tty/key.c ESC letter ESC [ letter ESC [ modifier letter ESC [ 1 ; modifier letter ESC [ num char ESC [ num ; modifier char ESC O letter ESC O modifier letter ESC O 1 ; modifier letter ESC N letter ESC [ [ num ; modifier char ESC [ [ 1 ; modifier letter ESC ESC [ num char ESC ESC O letter - char is usually ~ but $ and ^ also happen with rxvt - modifier is 1 + (shift * 1) + (left_alt * 2) + (ctrl * 4) + (right_alt * 8) - two leading ESCs apparently mean the same as one leading ESC */ function* emitKeys(stream) { while (true) { let ch = yield; let s = ch; let escaped = false; const key = { sequence: null, name: undefined, ctrl: false, meta: false, shift: false }; if (ch === kEscape) { escaped = true; s += (ch = yield); if (ch === kEscape) { s += (ch = yield); } } if (escaped && (ch === 'O' || ch === '[')) { // ansi escape sequence let code = ch; let modifier = 0; if (ch === 'O') { // ESC O letter // ESC O modifier letter s += (ch = yield); if (ch >= '0' && ch <= '9') { modifier = (ch >> 0) - 1; s += (ch = yield); } code += ch; } else if (ch === '[') { // ESC [ letter // ESC [ modifier letter // ESC [ [ modifier letter // ESC [ [ num char s += (ch = yield); if (ch === '[') { // \x1b[[A // ^--- escape codes might have a second bracket code += ch; s += (ch = yield); } /* * Here and later we try to buffer just enough data to get * a complete ascii sequence. * * We have basically two classes of ascii characters to process: * * * 1. `\x1b[24;5~` should be parsed as { code: '[24~', modifier: 5 } * * This particular example is featuring Ctrl+F12 in xterm. * * - `;5` part is optional, e.g. it could be `\x1b[24~` * - first part can contain one or two digits * * So the generic regexp is like /^\d\d?(;\d)?[~^$]$/ * * * 2. `\x1b[1;5H` should be parsed as { code: '[H', modifier: 5 } * * This particular example is featuring Ctrl+Home in xterm. * * - `1;5` part is optional, e.g. it could be `\x1b[H` * - `1;` part is optional, e.g. it could be `\x1b[5H` * * So the generic regexp is like /^((\d;)?\d)?[A-Za-z]$/ * */ const cmdStart = s.length - 1; // skip one or two leading digits if (ch >= '0' && ch <= '9') { s += (ch = yield); if (ch >= '0' && ch <= '9') { s += (ch = yield); } } // skip modifier if (ch === ';') { s += (ch = yield); if (ch >= '0' && ch <= '9') { s += (ch = yield); } } /* * We buffered enough data, now trying to extract code * and modifier from it */ const cmd = s.slice(cmdStart); let match; if ((match = cmd.match(/^(\d\d?)(;(\d))?([~^$])$/))) { code += match[1] + match[4]; modifier = (match[3] || 1) - 1; } else if ((match = cmd.match(/^((\d;)?(\d))?([A-Za-z])$/))) { code += match[4]; modifier = (match[3] || 1) - 1; } else { code += cmd; } } // Parse the key modifier key.ctrl = !!(modifier & 4); key.meta = !!(modifier & 10); key.shift = !!(modifier & 1); key.code = code; // Parse the key itself switch (code) { /* xterm/gnome ESC O letter */ case 'OP': key.name = 'f1'; break; case 'OQ': key.name = 'f2'; break; case 'OR': key.name = 'f3'; break; case 'OS': key.name = 'f4'; break; /* xterm/rxvt ESC [ number ~ */ case '[11~': key.name = 'f1'; break; case '[12~': key.name = 'f2'; break; case '[13~': key.name = 'f3'; break; case '[14~': key.name = 'f4'; break; /* from Cygwin and used in libuv */ case '[[A': key.name = 'f1'; break; case '[[B': key.name = 'f2'; break; case '[[C': key.name = 'f3'; break; case '[[D': key.name = 'f4'; break; case '[[E': key.name = 'f5'; break; /* common */ case '[15~': key.name = 'f5'; break; case '[17~': key.name = 'f6'; break; case '[18~': key.name = 'f7'; break; case '[19~': key.name = 'f8'; break; case '[20~': key.name = 'f9'; break; case '[21~': key.name = 'f10'; break; case '[23~': key.name = 'f11'; break; case '[24~': key.name = 'f12'; break; /* xterm ESC [ letter */ case '[A': key.name = 'up'; break; case '[B': key.name = 'down'; break; case '[C': key.name = 'right'; break; case '[D': key.name = 'left'; break; case '[E': key.name = 'clear'; break; case '[F': key.name = 'end'; break; case '[H': key.name = 'home'; break; /* xterm/gnome ESC O letter */ case 'OA': key.name = 'up'; break; case 'OB': key.name = 'down'; break; case 'OC': key.name = 'right'; break; case 'OD': key.name = 'left'; break; case 'OE': key.name = 'clear'; break; case 'OF': key.name = 'end'; break; case 'OH': key.name = 'home'; break; /* xterm/rxvt ESC [ number ~ */ case '[1~': key.name = 'home'; break; case '[2~': key.name = 'insert'; break; case '[3~': key.name = 'delete'; break; case '[4~': key.name = 'end'; break; case '[5~': key.name = 'pageup'; break; case '[6~': key.name = 'pagedown'; break; /* putty */ case '[[5~': key.name = 'pageup'; break; case '[[6~': key.name = 'pagedown'; break; /* rxvt */ case '[7~': key.name = 'home'; break; case '[8~': key.name = 'end'; break; /* rxvt keys with modifiers */ case '[a': key.name = 'up'; key.shift = true; break; case '[b': key.name = 'down'; key.shift = true; break; case '[c': key.name = 'right'; key.shift = true; break; case '[d': key.name = 'left'; key.shift = true; break; case '[e': key.name = 'clear'; key.shift = true; break; case '[2$': key.name = 'insert'; key.shift = true; break; case '[3$': key.name = 'delete'; key.shift = true; break; case '[5$': key.name = 'pageup'; key.shift = true; break; case '[6$': key.name = 'pagedown'; key.shift = true; break; case '[7$': key.name = 'home'; key.shift = true; break; case '[8$': key.name = 'end'; key.shift = true; break; case 'Oa': key.name = 'up'; key.ctrl = true; break; case 'Ob': key.name = 'down'; key.ctrl = true; break; case 'Oc': key.name = 'right'; key.ctrl = true; break; case 'Od': key.name = 'left'; key.ctrl = true; break; case 'Oe': key.name = 'clear'; key.ctrl = true; break; case '[2^': key.name = 'insert'; key.ctrl = true; break; case '[3^': key.name = 'delete'; key.ctrl = true; break; case '[5^': key.name = 'pageup'; key.ctrl = true; break; case '[6^': key.name = 'pagedown'; key.ctrl = true; break; case '[7^': key.name = 'home'; key.ctrl = true; break; case '[8^': key.name = 'end'; key.ctrl = true; break; /* misc. */ case '[Z': key.name = 'tab'; key.shift = true; break; default: key.name = 'undefined'; break; } } else if (ch === '\r') { // carriage return key.name = 'return'; } else if (ch === '\n') { // enter, should have been called linefeed key.name = 'enter'; } else if (ch === '\t') { // tab key.name = 'tab'; } else if (ch === '\b' || ch === '\x7f') { // backspace or ctrl+h key.name = 'backspace'; key.meta = escaped; } else if (ch === kEscape) { // escape key key.name = 'escape'; key.meta = escaped; } else if (ch === ' ') { key.name = 'space'; key.meta = escaped; } else if (!escaped && ch <= '\x1a') { // ctrl+letter key.name = String.fromCharCode(ch.charCodeAt(0) + 'a'.charCodeAt(0) - 1); key.ctrl = true; } else if (/^[0-9A-Za-z]$/.test(ch)) { // letter, number, shift+letter key.name = ch.toLowerCase(); key.shift = /^[A-Z]$/.test(ch); key.meta = escaped; } else if (escaped) { // Escape sequence timeout key.name = ch.length ? undefined : 'escape'; key.meta = true; } key.sequence = s; if (s.length !== 0 && (key.name !== undefined || escaped)) { /* Named character or sequence */ stream.emit('keypress', escaped ? undefined : s, key); } else if (s.length === 1) { /* Single unnamed character, e.g. "." */ stream.emit('keypress', s, key); } /* Unrecognized or broken escape sequence, don't emit anything */ } } module.exports = { emitKeys, getStringWidth, isFullWidthCodePoint, stripVTControlCharacters, CSI }; internal/repl'use strict'; const { Interface } = require('readline'); const REPL = require('repl'); const path = require('path'); const fs = require('fs'); const os = require('os'); const util = require('util'); const debug = util.debuglog('repl'); module.exports = Object.create(REPL); module.exports.createInternalRepl = createRepl; // XXX(chrisdickinson): The 15ms debounce value is somewhat arbitrary. // The debounce is to guard against code pasted into the REPL. const kDebounceHistoryMS = 15; function _writeToOutput(repl, message) { repl._writeToOutput(message); repl._refreshLine(); } function createRepl(env, opts, cb) { if (typeof opts === 'function') { cb = opts; opts = null; } opts = util._extend({ ignoreUndefined: false, terminal: process.stdout.isTTY, useGlobal: true, breakEvalOnSigint: true }, opts); if (parseInt(env.NODE_NO_READLINE)) { opts.terminal = false; } // The "dumb" special terminal, as defined by terminfo, doesn't support // ANSI color control codes. // see http://invisible-island.net/ncurses/terminfo.ti.html#toc-_Specials if (parseInt(env.NODE_DISABLE_COLORS) || env.TERM === 'dumb') { opts.useColors = false; } opts.replMode = { 'strict': REPL.REPL_MODE_STRICT, 'sloppy': REPL.REPL_MODE_SLOPPY }[String(env.NODE_REPL_MODE).toLowerCase().trim()]; if (opts.replMode === undefined) { opts.replMode = REPL.REPL_MODE_SLOPPY; } const historySize = Number(env.NODE_REPL_HISTORY_SIZE); if (!Number.isNaN(historySize) && historySize > 0) { opts.historySize = historySize; } else { // XXX(chrisdickinson): set here to avoid affecting existing applications // using repl instances. opts.historySize = 1000; } const repl = REPL.start(opts); if (opts.terminal) { return setupHistory(repl, env.NODE_REPL_HISTORY, cb); } repl._historyPrev = _replHistoryMessage; cb(null, repl); } function setupHistory(repl, historyPath, ready) { // Empty string disables persistent history if (typeof historyPath === 'string') historyPath = historyPath.trim(); if (historyPath === '') { repl._historyPrev = _replHistoryMessage; return ready(null, repl); } if (!historyPath) { try { historyPath = path.join(os.homedir(), '.node_repl_history'); } catch (err) { _writeToOutput(repl, '\nError: Could not get the home directory.\n' + 'REPL session history will not be persisted.\n'); debug(err.stack); repl._historyPrev = _replHistoryMessage; return ready(null, repl); } } var timer = null; var writing = false; var pending = false; repl.pause(); // History files are conventionally not readable by others: // https://github.com/nodejs/node/issues/3392 // https://github.com/nodejs/node/pull/3394 fs.open(historyPath, 'a+', 0o0600, oninit); function oninit(err, hnd) { if (err) { // Cannot open history file. // Don't crash, just don't persist history. _writeToOutput(repl, '\nError: Could not open history file.\n' + 'REPL session history will not be persisted.\n'); debug(err.stack); repl._historyPrev = _replHistoryMessage; repl.resume(); return ready(null, repl); } fs.close(hnd, onclose); } function onclose(err) { if (err) { return ready(err); } fs.readFile(historyPath, 'utf8', onread); } function onread(err, data) { if (err) { return ready(err); } if (data) { repl.history = data.split(/[\n\r]+/, repl.historySize); } else { repl.history = []; } fs.open(historyPath, 'r+', onhandle); } function onhandle(err, hnd) { if (err) { return ready(err); } fs.ftruncate(hnd, 0, (err) => { repl._historyHandle = hnd; repl.on('line', online); // Reading the file data out erases it repl.once('flushHistory', function() { repl.resume(); ready(null, repl); }); flushHistory(); }); } // ------ history listeners ------ function online() { repl._flushing = true; if (timer) { clearTimeout(timer); } timer = setTimeout(flushHistory, kDebounceHistoryMS); } function flushHistory() { timer = null; if (writing) { pending = true; return; } writing = true; const historyData = repl.history.join(os.EOL); fs.write(repl._historyHandle, historyData, 0, 'utf8', onwritten); } function onwritten(err, data) { writing = false; if (pending) { pending = false; online(); } else { repl._flushing = Boolean(timer); if (!repl._flushing) { repl.emit('flushHistory'); } } } } function _replHistoryMessage() { if (this.history.length === 0) { _writeToOutput( this, '\nPersistent history support disabled. ' + 'Set the NODE_REPL_HISTORY environment\nvariable to ' + 'a valid, user-writable path to enable.\n' ); } this._historyPrev = Interface.prototype._historyPrev; return this._historyPrev(); } internal/repl/await'use strict'; const acorn = require('internal/deps/acorn/dist/acorn'); const walk = require('internal/deps/acorn/dist/walk'); const noop = () => {}; const visitorsWithoutAncestors = { ClassDeclaration(node, state, c) { if (state.ancestors[state.ancestors.length - 2] === state.body) { state.prepend(node, `${node.id.name}=`); } walk.base.ClassDeclaration(node, state, c); }, FunctionDeclaration(node, state, c) { state.prepend(node, `${node.id.name}=`); }, FunctionExpression: noop, ArrowFunctionExpression: noop, MethodDefinition: noop, AwaitExpression(node, state, c) { state.containsAwait = true; walk.base.AwaitExpression(node, state, c); }, ReturnStatement(node, state, c) { state.containsReturn = true; walk.base.ReturnStatement(node, state, c); }, VariableDeclaration(node, state, c) { if (node.kind === 'var' || state.ancestors[state.ancestors.length - 2] === state.body) { if (node.declarations.length === 1) { state.replace(node.start, node.start + node.kind.length, 'void'); } else { state.replace(node.start, node.start + node.kind.length, 'void ('); } for (const decl of node.declarations) { state.prepend(decl, '('); state.append(decl, decl.init ? ')' : '=undefined)'); } if (node.declarations.length !== 1) { state.append(node.declarations[node.declarations.length - 1], ')'); } } walk.base.VariableDeclaration(node, state, c); } }; const visitors = {}; for (const nodeType of Object.keys(walk.base)) { const callback = visitorsWithoutAncestors[nodeType] || walk.base[nodeType]; visitors[nodeType] = (node, state, c) => { const isNew = node !== state.ancestors[state.ancestors.length - 1]; if (isNew) { state.ancestors.push(node); } callback(node, state, c); if (isNew) { state.ancestors.pop(); } }; } function processTopLevelAwait(src) { const wrapped = `(async () => { ${src} })()`; const wrappedArray = wrapped.split(''); let root; try { root = acorn.parse(wrapped, { ecmaVersion: 10 }); } catch { return null; } const body = root.body[0].expression.callee.body; const state = { body, ancestors: [], replace(from, to, str) { for (var i = from; i < to; i++) { wrappedArray[i] = ''; } if (from === to) str += wrappedArray[from]; wrappedArray[from] = str; }, prepend(node, str) { wrappedArray[node.start] = str + wrappedArray[node.start]; }, append(node, str) { wrappedArray[node.end - 1] += str; }, containsAwait: false, containsReturn: false }; walk.recursive(body, state, visitors); // Do not transform if // 1. False alarm: there isn't actually an await expression. // 2. There is a top-level return, which is not allowed. if (!state.containsAwait || state.containsReturn) { return null; } const last = body.body[body.body.length - 1]; if (last.type === 'ExpressionStatement') { // For an expression statement of the form // ( expr ) ; // ^^^^^^^^^^ // last // ^^^^ // last.expression // // We do not want the left parenthesis before the `return` keyword; // therefore we prepend the `return (` to `last`. // // On the other hand, we do not want the right parenthesis after the // semicolon. Since there can only be more right parentheses between // last.expression.end and the semicolon, appending one more to // last.expression should be fine. state.prepend(last, 'return ('); state.append(last.expression, ')'); } return wrappedArray.join(''); } module.exports = { processTopLevelAwait }; internal/repl/recoverable'use strict'; const acorn = require('internal/deps/acorn/dist/acorn'); const { tokTypes: tt } = acorn; // If the error is that we've unexpectedly ended the input, // then let the user try to recover by adding more input. // Note: `e` (the original exception) is not used by the current implementation, // but may be needed in the future. function isRecoverableError(e, code) { let recoverable = false; // Determine if the point of the any error raised is at the end of the input. // There are two cases to consider: // // 1. Any error raised after we have encountered the 'eof' token. // This prevents us from declaring partial tokens (like '2e') as // recoverable. // // 2. Three cases where tokens can legally span lines. This is // template, comment, and strings with a backslash at the end of // the line, indicating a continuation. Note that we need to look // for the specific errors of 'unterminated' kind (not, for example, // a syntax error in a ${} expression in a template), and the only // way to do that currently is to look at the message. Should Acorn // change these messages in the future, this will lead to a test // failure, indicating that this code needs to be updated. // acorn.plugins.replRecoverable = (parser) => { parser.extend('nextToken', (nextToken) => { return function() { Reflect.apply(nextToken, this, []); if (this.type === tt.eof) recoverable = true; }; }); parser.extend('raise', (raise) => { return function(pos, message) { switch (message) { case 'Unterminated template': case 'Unterminated comment': recoverable = true; break; case 'Unterminated string constant': const token = this.input.slice(this.lastTokStart, this.pos); // see https://www.ecma-international.org/ecma-262/#sec-line-terminators recoverable = /\\(?:\r\n?|\n|\u2028|\u2029)$/.test(token); } Reflect.apply(raise, this, [pos, message]); }; }); }; // For similar reasons as `defaultEval`, wrap expressions starting with a // curly brace with parenthesis. Note: only the open parenthesis is added // here as the point is to test for potentially valid but incomplete // expressions. if (/^\s*\{/.test(code) && isRecoverableError(e, `(${code}`)) return true; // Try to parse the code with acorn. If the parse fails, ignore the acorn // error and return the recoverable status. try { acorn.parse(code, { plugins: { replRecoverable: true }, ecmaVersion: 10 }); // Odd case: the underlying JS engine (V8, Chakra) rejected this input // but Acorn detected no issue. Presume that additional text won't // address this issue. return false; } catch { return recoverable; } } module.exports = { isRecoverableError }; internal/socket_list'use strict'; const { ERR_CHILD_CLOSED_BEFORE_REPLY } = require('internal/errors').codes; const EventEmitter = require('events'); // This object keeps track of the sockets that are sent class SocketListSend extends EventEmitter { constructor(child, key) { super(); this.key = key; this.child = child; child.once('exit', () => this.emit('exit', this)); } _request(msg, cmd, swallowErrors, callback) { var self = this; if (!this.child.connected) return onclose(); this.child._send(msg, undefined, swallowErrors); function onclose() { self.child.removeListener('internalMessage', onreply); callback(new ERR_CHILD_CLOSED_BEFORE_REPLY()); } function onreply(msg) { if (!(msg.cmd === cmd && msg.key === self.key)) return; self.child.removeListener('disconnect', onclose); self.child.removeListener('internalMessage', onreply); callback(null, msg); } this.child.once('disconnect', onclose); this.child.on('internalMessage', onreply); } close(callback) { this._request({ cmd: 'NODE_SOCKET_NOTIFY_CLOSE', key: this.key }, 'NODE_SOCKET_ALL_CLOSED', true, callback); } getConnections(callback) { this._request({ cmd: 'NODE_SOCKET_GET_COUNT', key: this.key }, 'NODE_SOCKET_COUNT', false, function(err, msg) { if (err) return callback(err); callback(null, msg.count); }); } } // This object keeps track of the sockets that are received class SocketListReceive extends EventEmitter { constructor(child, key) { super(); this.connections = 0; this.key = key; this.child = child; function onempty(self) { if (!self.child.connected) return; self.child._send({ cmd: 'NODE_SOCKET_ALL_CLOSED', key: self.key }, undefined, true); } this.child.on('internalMessage', (msg) => { if (msg.key !== this.key) return; if (msg.cmd === 'NODE_SOCKET_NOTIFY_CLOSE') { // Already empty if (this.connections === 0) return onempty(this); // Wait for sockets to get closed this.once('empty', onempty); } else if (msg.cmd === 'NODE_SOCKET_GET_COUNT') { if (!this.child.connected) return; this.child._send({ cmd: 'NODE_SOCKET_COUNT', key: this.key, count: this.connections }); } }); } add(obj) { this.connections++; // Notify the previous owner of the socket about its state change obj.socket.once('close', () => { this.connections--; if (this.connections === 0) this.emit('empty', this); }); } } module.exports = { SocketListSend, SocketListReceive }; internal/test/binding'use strict'; process.emitWarning( 'These APIs are exposed only for testing and are not ' + 'tracked by any versioning system or deprecation process.', 'internal/test/binding'); // These exports should be scoped as specifically as possible // to avoid exposing APIs because even with that warning and // this file being internal people will still try to abuse it. module.exports = { ModuleWrap: internalBinding('module_wrap').ModuleWrap, internalBinding }; internal/test/heap'use strict'; process.emitWarning( 'These APIs are exposed only for testing and are not ' + 'tracked by any versioning system or deprecation process.', 'internal/test/heap'); const { createHeapDump, buildEmbedderGraph } = internalBinding('heap_utils'); const assert = require('assert'); // This is not suitable for production code. It creates a full V8 heap dump, // parses it as JSON, and then creates complex objects from it, leading // to significantly increased memory usage. function createJSHeapDump() { const dump = createHeapDump(); const meta = dump.snapshot.meta; const nodes = readHeapInfo(dump.nodes, meta.node_fields, meta.node_types, dump.strings); const edges = readHeapInfo(dump.edges, meta.edge_fields, meta.edge_types, dump.strings); for (const node of nodes) { node.incomingEdges = []; node.outgoingEdges = []; } let fromNodeIndex = 0; let edgeIndex = 0; for (const { type, name_or_index, to_node } of edges) { while (edgeIndex === nodes[fromNodeIndex].edge_count) { edgeIndex = 0; fromNodeIndex++; } const toNode = nodes[to_node / meta.node_fields.length]; const fromNode = nodes[fromNodeIndex]; const edge = { type, to: toNode, from: fromNode, name: typeof name_or_index === 'string' ? name_or_index : null }; toNode.incomingEdges.push(edge); fromNode.outgoingEdges.push(edge); edgeIndex++; } for (const node of nodes) assert.strictEqual(node.edge_count, node.outgoingEdges.length); return nodes; } function readHeapInfo(raw, fields, types, strings) { const items = []; for (var i = 0; i < raw.length; i += fields.length) { const item = {}; for (var j = 0; j < fields.length; j++) { const name = fields[j]; let type = types[j]; if (Array.isArray(type)) { item[name] = type[raw[i + j]]; } else if (name === 'name_or_index') { // type === 'string_or_number' if (item.type === 'element' || item.type === 'hidden') type = 'number'; else type = 'string'; } if (type === 'string') { item[name] = strings[raw[i + j]]; } else if (type === 'number' || type === 'node') { item[name] = raw[i + j]; } } items.push(item); } return items; } module.exports = { createJSHeapDump, buildEmbedderGraph }; internal/test/unicode'use strict'; // This module exists entirely for regression testing purposes. // See `test/parallel/test-internal-unicode.js`. /* eslint-disable node-core/non-ascii-character */ module.exports = '''; /* eslint-enable node-core/non-ascii-character */ internal/timers'use strict'; const { getDefaultTriggerAsyncId, newAsyncId, initHooksExist, emitInit } = require('internal/async_hooks'); // Symbols for storing async id state. const async_id_symbol = Symbol('asyncId'); const trigger_async_id_symbol = Symbol('triggerId'); const { ERR_INVALID_CALLBACK, ERR_OUT_OF_RANGE } = require('internal/errors').codes; const { validateNumber } = require('internal/validators'); const { inspect } = require('util'); // Timeout values > TIMEOUT_MAX are set to 1. const TIMEOUT_MAX = 2 ** 31 - 1; const unrefedSymbol = Symbol('unrefed'); module.exports = { TIMEOUT_MAX, kTimeout: Symbol('timeout'), // For hiding Timeouts on other internals. async_id_symbol, trigger_async_id_symbol, Timeout, initAsyncResource, setUnrefTimeout, validateTimerDuration }; var timers; function getTimers() { if (timers === undefined) { timers = require('timers'); } return timers; } function initAsyncResource(resource, type) { const asyncId = resource[async_id_symbol] = newAsyncId(); const triggerAsyncId = resource[trigger_async_id_symbol] = getDefaultTriggerAsyncId(); if (initHooksExist()) emitInit(asyncId, type, triggerAsyncId, resource); } // Timer constructor function. // The entire prototype is defined in lib/timers.js function Timeout(callback, after, args, isRepeat, isUnrefed) { after *= 1; // coalesce to number or NaN if (!(after >= 1 && after <= TIMEOUT_MAX)) { if (after > TIMEOUT_MAX) { process.emitWarning(`${after} does not fit into` + ' a 32-bit signed integer.' + '\nTimeout duration was set to 1.', 'TimeoutOverflowWarning'); } after = 1; // schedule on next tick, follows browser behavior } this._called = false; this._idleTimeout = after; this._idlePrev = this; this._idleNext = this; this._idleStart = null; // this must be set to null first to avoid function tracking // on the hidden class, revisit in V8 versions after 6.2 this._onTimeout = null; this._onTimeout = callback; this._timerArgs = args; this._repeat = isRepeat ? after : null; this._destroyed = false; this[unrefedSymbol] = isUnrefed; initAsyncResource(this, 'Timeout'); } // Make sure the linked list only shows the minimal necessary information. Timeout.prototype[inspect.custom] = function(_, options) { return inspect(this, { ...options, // Only inspect one level. depth: 0, // It should not recurse. customInspect: false }); }; Timeout.prototype.refresh = function() { if (this._handle) { // Would be more ideal with uv_timer_again(), however that API does not // cause libuv's sorted timers data structure (a binary heap at the time // of writing) to re-sort itself. This causes ordering inconsistencies. this._handle.start(this._idleTimeout); } else if (this[unrefedSymbol]) { getTimers()._unrefActive(this); } else { getTimers().active(this); } return this; }; function setUnrefTimeout(callback, after, arg1, arg2, arg3) { // Type checking identical to setTimeout() if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } let i, args; switch (arguments.length) { // fast cases case 1: case 2: break; case 3: args = [arg1]; break; case 4: args = [arg1, arg2]; break; default: args = [arg1, arg2, arg3]; for (i = 5; i < arguments.length; i++) { // extend array dynamically, makes .apply run much faster in v6.0.0 args[i - 2] = arguments[i]; } break; } const timer = new Timeout(callback, after, args, false, true); getTimers()._unrefActive(timer); return timer; } // Type checking used by timers.enroll() and Socket#setTimeout() function validateTimerDuration(msecs) { validateNumber(msecs, 'msecs'); if (msecs < 0 || !isFinite(msecs)) { throw new ERR_OUT_OF_RANGE('msecs', 'a non-negative finite number', msecs); } // Ensure that msecs fits into signed int32 if (msecs > TIMEOUT_MAX) { process.emitWarning(`${msecs} does not fit into a 32-bit signed integer.` + `\nTimer duration was truncated to ${TIMEOUT_MAX}.`, 'TimeoutOverflowWarning'); return TIMEOUT_MAX; } return msecs; } internal/tls'use strict'; // Example: // C=US\nST=CA\nL=SF\nO=Joyent\nOU=Node.js\nCN=ca1\nemailAddress=ry@clouds.org function parseCertString(s) { const out = Object.create(null); const parts = s.split('\n'); for (var i = 0, len = parts.length; i < len; i++) { const sepIndex = parts[i].indexOf('='); if (sepIndex > 0) { const key = parts[i].slice(0, sepIndex); const value = parts[i].slice(sepIndex + 1); if (key in out) { if (!Array.isArray(out[key])) { out[key] = [out[key]]; } out[key].push(value); } else { out[key] = value; } } } return out; } module.exports = { parseCertString }; internal/trace_events_async_hooks'use strict'; exports.setup = function(traceEvents, traceEventCategory) { const async_wrap = internalBinding('async_wrap'); const async_hooks = require('async_hooks'); // Use small letters such that chrome://tracing groups by the name. // The behavior is not only useful but the same as the events emitted using // the specific C++ macros. const BEFORE_EVENT = 'b'.charCodeAt(0); const END_EVENT = 'e'.charCodeAt(0); // In traceEvents it is not only the id but also the name that needs to be // repeated. Since async_hooks doesn't expose the provider type in the // non-init events, use a map to manually map the asyncId to the type name. const typeMemory = new Map(); // It is faster to emit traceEvents directly from C++. Thus, this happens // in async_wrap.cc. However, events emitted from the JavaScript API or the // Embedder C++ API can't be emitted from async_wrap.cc. Thus they are // emitted using the JavaScript API. To prevent emitting the same event // twice the async_wrap.Providers list is used to filter the events. const nativeProviders = new Set(Object.keys(async_wrap.Providers)); async_hooks.createHook({ init(asyncId, type, triggerAsyncId, resource) { if (nativeProviders.has(type)) return; typeMemory.set(asyncId, type); traceEvents.emit(BEFORE_EVENT, traceEventCategory, type, asyncId, 'triggerAsyncId', triggerAsyncId, 'executionAsyncId', async_hooks.executionAsyncId()); }, before(asyncId) { const type = typeMemory.get(asyncId); if (type === undefined) return; traceEvents.emit(BEFORE_EVENT, traceEventCategory, type + '_CALLBACK', asyncId); }, after(asyncId) { const type = typeMemory.get(asyncId); if (type === undefined) return; traceEvents.emit(END_EVENT, traceEventCategory, type + '_CALLBACK', asyncId); }, destroy(asyncId) { const type = typeMemory.get(asyncId); if (type === undefined) return; traceEvents.emit(END_EVENT, traceEventCategory, type, asyncId); // cleanup asyncId to type map typeMemory.delete(asyncId); } }).enable(); }; internal/tty// MIT License // Copyright (c) Sindre Sorhus (sindresorhus.com) // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. 'use strict'; let OSRelease; const COLORS_2 = 1; const COLORS_16 = 4; const COLORS_256 = 8; const COLORS_16m = 24; // Some entries were taken from `dircolors` // (https://linux.die.net/man/1/dircolors). The corresponding terminals might // support more than 16 colors, but this was not tested for. // // Copyright (C) 1996-2016 Free Software Foundation, Inc. Copying and // distribution of this file, with or without modification, are permitted // provided the copyright notice and this notice are preserved. const TERM_ENVS = [ 'Eterm', 'cons25', 'console', 'cygwin', 'dtterm', 'gnome', 'hurd', 'jfbterm', 'konsole', 'kterm', 'mlterm', 'putty', 'st', 'terminator' ]; const TERM_ENVS_REG_EXP = [ /ansi/, /color/, /linux/, /^con[0-9]*x[0-9]/, /^rxvt/, /^screen/, /^xterm/, /^vt100/ ]; // The `getColorDepth` API got inspired by multiple sources such as // https://github.com/chalk/supports-color, // https://github.com/isaacs/color-support. function getColorDepth(env = process.env) { if (env.NODE_DISABLE_COLORS || env.TERM === 'dumb' && !env.COLORTERM) { return COLORS_2; } if (process.platform === 'win32') { // Lazy load for startup performance. if (OSRelease === undefined) { const { release } = require('os'); OSRelease = release().split('.'); } // Windows 10 build 10586 is the first Windows release that supports 256 // colors. Windows 10 build 14931 is the first release that supports // 16m/TrueColor. if (+OSRelease[0] >= 10) { const build = +OSRelease[2]; if (build >= 14931) return COLORS_16m; if (build >= 10586) return COLORS_256; } return COLORS_16; } if (env.TMUX) { return COLORS_256; } if (env.CI) { if ('TRAVIS' in env || 'CIRCLECI' in env || 'APPVEYOR' in env || 'GITLAB_CI' in env || env.CI_NAME === 'codeship') { return COLORS_256; } return COLORS_2; } if ('TEAMCITY_VERSION' in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? COLORS_16 : COLORS_2; } switch (env.TERM_PROGRAM) { case 'iTerm.app': if (!env.TERM_PROGRAM_VERSION || /^[0-2]\./.test(env.TERM_PROGRAM_VERSION)) { return COLORS_256; } return COLORS_16m; case 'HyperTerm': case 'Hyper': case 'MacTerm': return COLORS_16m; case 'Apple_Terminal': return COLORS_256; } if (env.TERM) { if (/^xterm-256/.test(env.TERM)) return COLORS_256; const termEnv = env.TERM.toLowerCase(); for (const term of TERM_ENVS) { if (termEnv === term) { return COLORS_16; } } for (const term of TERM_ENVS_REG_EXP) { if (term.test(termEnv)) { return COLORS_16; } } } if (env.COLORTERM) return COLORS_16; return COLORS_2; } module.exports = { getColorDepth }; internal/url'use strict'; const util = require('util'); const { encodeStr, hexTable, isHexTable } = require('internal/querystring'); const { getConstructorOf, removeColors } = require('internal/util'); const { ERR_ARG_NOT_ITERABLE, ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, ERR_INVALID_FILE_URL_HOST, ERR_INVALID_FILE_URL_PATH, ERR_INVALID_THIS, ERR_INVALID_TUPLE, ERR_INVALID_URL, ERR_INVALID_URL_SCHEME, ERR_MISSING_ARGS } = require('internal/errors').codes; const { CHAR_AMPERSAND, CHAR_BACKWARD_SLASH, CHAR_EQUAL, CHAR_FORWARD_SLASH, CHAR_LOWERCASE_A, CHAR_LOWERCASE_Z, CHAR_PERCENT, CHAR_PLUS } = require('internal/constants'); const path = require('path'); // Lazy loaded for startup performance. let querystring; const { platform } = process; const isWindows = platform === 'win32'; const { domainToASCII: _domainToASCII, domainToUnicode: _domainToUnicode, encodeAuth, toUSVString: _toUSVString, parse: _parse, setURLConstructor, URL_FLAGS_CANNOT_BE_BASE, URL_FLAGS_HAS_FRAGMENT, URL_FLAGS_HAS_HOST, URL_FLAGS_HAS_PASSWORD, URL_FLAGS_HAS_PATH, URL_FLAGS_HAS_QUERY, URL_FLAGS_HAS_USERNAME, URL_FLAGS_IS_DEFAULT_SCHEME_PORT, URL_FLAGS_SPECIAL, kFragment, kHost, kHostname, kPathStart, kPort, kQuery, kSchemeStart } = process.binding('url'); const context = Symbol('context'); const cannotBeBase = Symbol('cannot-be-base'); const cannotHaveUsernamePasswordPort = Symbol('cannot-have-username-password-port'); const special = Symbol('special'); const searchParams = Symbol('query'); const kFormat = Symbol('format'); // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object const IteratorPrototype = Object.getPrototypeOf( Object.getPrototypeOf([][Symbol.iterator]()) ); const unpairedSurrogateRe = /(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/; function toUSVString(val) { const str = `${val}`; // As of V8 5.5, `str.search()` (and `unpairedSurrogateRe[@@search]()`) are // slower than `unpairedSurrogateRe.exec()`. const match = unpairedSurrogateRe.exec(str); if (!match) return str; return _toUSVString(str, match.index); } // Refs: https://html.spec.whatwg.org/multipage/browsers.html#concept-origin-opaque const kOpaqueOrigin = 'null'; // Refs: https://html.spec.whatwg.org/multipage/browsers.html#ascii-serialisation-of-an-origin function serializeTupleOrigin(scheme, host, port) { return `${scheme}//${host}${port === null ? '' : `:${port}`}`; } // This class provides the internal state of a URL object. An instance of this // class is stored in every URL object and is accessed internally by setters // and getters. It roughly corresponds to the concept of a URL record in the // URL Standard, with a few differences. It is also the object transported to // the C++ binding. // Refs: https://url.spec.whatwg.org/#concept-url class URLContext { constructor() { this.flags = 0; this.scheme = ':'; this.username = ''; this.password = ''; this.host = null; this.port = null; this.path = []; this.query = null; this.fragment = null; } } class URLSearchParams { // URL Standard says the default value is '', but as undefined and '' have // the same result, undefined is used to prevent unnecessary parsing. // Default parameter is necessary to keep URLSearchParams.length === 0 in // accordance with Web IDL spec. constructor(init = undefined) { if (init === null || init === undefined) { this[searchParams] = []; } else if (typeof init === 'object' || typeof init === 'function') { const method = init[Symbol.iterator]; if (method === this[Symbol.iterator]) { // While the spec does not have this branch, we can use it as a // shortcut to avoid having to go through the costly generic iterator. const childParams = init[searchParams]; this[searchParams] = childParams.slice(); } else if (method !== null && method !== undefined) { if (typeof method !== 'function') { throw new ERR_ARG_NOT_ITERABLE('Query pairs'); } // sequence> // Note: per spec we have to first exhaust the lists then process them const pairs = []; for (const pair of init) { if ((typeof pair !== 'object' && typeof pair !== 'function') || pair === null || typeof pair[Symbol.iterator] !== 'function') { throw new ERR_INVALID_TUPLE('Each query pair', '[name, value]'); } const convertedPair = []; for (const element of pair) convertedPair.push(toUSVString(element)); pairs.push(convertedPair); } this[searchParams] = []; for (const pair of pairs) { if (pair.length !== 2) { throw new ERR_INVALID_TUPLE('Each query pair', '[name, value]'); } this[searchParams].push(pair[0], pair[1]); } } else { // record // Need to use reflection APIs for full spec compliance. this[searchParams] = []; const keys = Reflect.ownKeys(init); for (var i = 0; i < keys.length; i++) { const key = keys[i]; const desc = Reflect.getOwnPropertyDescriptor(init, key); if (desc !== undefined && desc.enumerable) { const typedKey = toUSVString(key); const typedValue = toUSVString(init[key]); this[searchParams].push(typedKey, typedValue); } } } } else { // USVString init = toUSVString(init); if (init[0] === '?') init = init.slice(1); initSearchParams(this, init); } // "associated url object" this[context] = null; } [util.inspect.custom](recurseTimes, ctx) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (typeof recurseTimes === 'number' && recurseTimes < 0) return ctx.stylize('[Object]', 'special'); var separator = ', '; var innerOpts = util._extend({}, ctx); if (recurseTimes !== null) { innerOpts.depth = recurseTimes - 1; } var innerInspect = (v) => util.inspect(v, innerOpts); var list = this[searchParams]; var output = []; for (var i = 0; i < list.length; i += 2) output.push(`${innerInspect(list[i])} => ${innerInspect(list[i + 1])}`); var length = output.reduce( (prev, cur) => prev + removeColors(cur).length + separator.length, -separator.length ); if (length > ctx.breakLength) { return `${this.constructor.name} {\n ${output.join(',\n ')} }`; } else if (output.length) { return `${this.constructor.name} { ${output.join(separator)} }`; } else { return `${this.constructor.name} {}`; } } } function onParseComplete(flags, protocol, username, password, host, port, path, query, fragment) { var ctx = this[context]; ctx.flags = flags; ctx.scheme = protocol; ctx.username = (flags & URL_FLAGS_HAS_USERNAME) !== 0 ? username : ''; ctx.password = (flags & URL_FLAGS_HAS_PASSWORD) !== 0 ? password : ''; ctx.port = port; ctx.path = (flags & URL_FLAGS_HAS_PATH) !== 0 ? path : []; ctx.query = query; ctx.fragment = fragment; ctx.host = host; if (!this[searchParams]) { // invoked from URL constructor this[searchParams] = new URLSearchParams(); this[searchParams][context] = this; } initSearchParams(this[searchParams], query); } function onParseError(flags, input) { const error = new ERR_INVALID_URL(input); error.input = input; throw error; } // Reused by URL constructor and URL#href setter. function parse(url, input, base) { const base_context = base ? base[context] : undefined; // In the URL#href setter if (!url[context]) { Object.defineProperty(url, context, { enumerable: false, configurable: false, value: new URLContext() }); } _parse(input.trim(), -1, base_context, undefined, onParseComplete.bind(url), onParseError); } function onParseProtocolComplete(flags, protocol, username, password, host, port, path, query, fragment) { const ctx = this[context]; if ((flags & URL_FLAGS_SPECIAL) !== 0) { ctx.flags |= URL_FLAGS_SPECIAL; } else { ctx.flags &= ~URL_FLAGS_SPECIAL; } ctx.scheme = protocol; ctx.port = port; } function onParseHostnameComplete(flags, protocol, username, password, host, port, path, query, fragment) { const ctx = this[context]; if ((flags & URL_FLAGS_HAS_HOST) !== 0) { ctx.host = host; ctx.flags |= URL_FLAGS_HAS_HOST; } else { ctx.host = null; ctx.flags &= ~URL_FLAGS_HAS_HOST; } } function onParsePortComplete(flags, protocol, username, password, host, port, path, query, fragment) { this[context].port = port; } function onParseHostComplete(flags, protocol, username, password, host, port, path, query, fragment) { onParseHostnameComplete.apply(this, arguments); if (port !== null || ((flags & URL_FLAGS_IS_DEFAULT_SCHEME_PORT) !== 0)) onParsePortComplete.apply(this, arguments); } function onParsePathComplete(flags, protocol, username, password, host, port, path, query, fragment) { const ctx = this[context]; if ((flags & URL_FLAGS_HAS_PATH) !== 0) { ctx.path = path; ctx.flags |= URL_FLAGS_HAS_PATH; } else { ctx.path = []; ctx.flags &= ~URL_FLAGS_HAS_PATH; } // The C++ binding may set host to empty string. if ((flags & URL_FLAGS_HAS_HOST) !== 0) { ctx.host = host; ctx.flags |= URL_FLAGS_HAS_HOST; } } function onParseSearchComplete(flags, protocol, username, password, host, port, path, query, fragment) { this[context].query = query; } function onParseHashComplete(flags, protocol, username, password, host, port, path, query, fragment) { this[context].fragment = fragment; } class URL { constructor(input, base) { // toUSVString is not needed. input = `${input}`; if (base !== undefined) { base = new URL(base); } parse(this, input, base); } get [special]() { return (this[context].flags & URL_FLAGS_SPECIAL) !== 0; } get [cannotBeBase]() { return (this[context].flags & URL_FLAGS_CANNOT_BE_BASE) !== 0; } // https://url.spec.whatwg.org/#cannot-have-a-username-password-port get [cannotHaveUsernamePasswordPort]() { const { host, scheme } = this[context]; return ((host == null || host === '') || this[cannotBeBase] || scheme === 'file:'); } [util.inspect.custom](depth, opts) { if (this == null || Object.getPrototypeOf(this[context]) !== URLContext.prototype) { throw new ERR_INVALID_THIS('URL'); } if (typeof depth === 'number' && depth < 0) return opts.stylize('[Object]', 'special'); var ctor = getConstructorOf(this); var obj = Object.create({ constructor: ctor === null ? URL : ctor }); obj.href = this.href; obj.origin = this.origin; obj.protocol = this.protocol; obj.username = this.username; obj.password = this.password; obj.host = this.host; obj.hostname = this.hostname; obj.port = this.port; obj.pathname = this.pathname; obj.search = this.search; obj.searchParams = this.searchParams; obj.hash = this.hash; if (opts.showHidden) { obj.cannotBeBase = this[cannotBeBase]; obj.special = this[special]; obj[context] = this[context]; } return util.inspect(obj, opts); } } Object.defineProperties(URL.prototype, { [kFormat]: { enumerable: false, configurable: false, // eslint-disable-next-line func-name-matching value: function format(options) { if (options && typeof options !== 'object') throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); options = util._extend({ fragment: true, unicode: false, search: true, auth: true }, options); const ctx = this[context]; var ret = ctx.scheme; if (ctx.host !== null) { ret += '//'; const has_username = ctx.username !== ''; const has_password = ctx.password !== ''; if (options.auth && (has_username || has_password)) { if (has_username) ret += ctx.username; if (has_password) ret += `:${ctx.password}`; ret += '@'; } ret += options.unicode ? domainToUnicode(this.hostname) : this.hostname; if (ctx.port !== null) ret += `:${ctx.port}`; } else if (ctx.scheme === 'file:') { ret += '//'; } if (this.pathname) ret += this.pathname; if (options.search && ctx.query !== null) ret += `?${ctx.query}`; if (options.fragment && ctx.fragment !== null) ret += `#${ctx.fragment}`; return ret; } }, [Symbol.toStringTag]: { configurable: true, value: 'URL' }, toString: { // https://heycam.github.io/webidl/#es-stringifier writable: true, enumerable: true, configurable: true, // eslint-disable-next-line func-name-matching value: function toString() { return this[kFormat]({}); } }, href: { enumerable: true, configurable: true, get() { return this[kFormat]({}); }, set(input) { // toUSVString is not needed. input = `${input}`; parse(this, input); } }, origin: { // readonly enumerable: true, configurable: true, get() { // Refs: https://url.spec.whatwg.org/#concept-url-origin const ctx = this[context]; switch (ctx.scheme) { case 'blob:': if (ctx.path.length > 0) { try { return (new URL(ctx.path[0])).origin; } catch { // fall through... do nothing } } return kOpaqueOrigin; case 'ftp:': case 'gopher:': case 'http:': case 'https:': case 'ws:': case 'wss:': return serializeTupleOrigin(ctx.scheme, ctx.host, ctx.port); } return kOpaqueOrigin; } }, protocol: { enumerable: true, configurable: true, get() { return this[context].scheme; }, set(scheme) { // toUSVString is not needed. scheme = `${scheme}`; if (scheme.length === 0) return; const ctx = this[context]; if (ctx.scheme === 'file:' && (ctx.host === '' || ctx.host === null)) { return; } _parse(scheme, kSchemeStart, null, ctx, onParseProtocolComplete.bind(this)); } }, username: { enumerable: true, configurable: true, get() { return this[context].username; }, set(username) { // toUSVString is not needed. username = `${username}`; if (this[cannotHaveUsernamePasswordPort]) return; const ctx = this[context]; if (username === '') { ctx.username = ''; ctx.flags &= ~URL_FLAGS_HAS_USERNAME; return; } ctx.username = encodeAuth(username); ctx.flags |= URL_FLAGS_HAS_USERNAME; } }, password: { enumerable: true, configurable: true, get() { return this[context].password; }, set(password) { // toUSVString is not needed. password = `${password}`; if (this[cannotHaveUsernamePasswordPort]) return; const ctx = this[context]; if (password === '') { ctx.password = ''; ctx.flags &= ~URL_FLAGS_HAS_PASSWORD; return; } ctx.password = encodeAuth(password); ctx.flags |= URL_FLAGS_HAS_PASSWORD; } }, host: { enumerable: true, configurable: true, get() { const ctx = this[context]; var ret = ctx.host || ''; if (ctx.port !== null) ret += `:${ctx.port}`; return ret; }, set(host) { const ctx = this[context]; // toUSVString is not needed. host = `${host}`; if (this[cannotBeBase]) { // Cannot set the host if cannot-be-base is set return; } _parse(host, kHost, null, ctx, onParseHostComplete.bind(this)); } }, hostname: { enumerable: true, configurable: true, get() { return this[context].host || ''; }, set(host) { const ctx = this[context]; // toUSVString is not needed. host = `${host}`; if (this[cannotBeBase]) { // Cannot set the host if cannot-be-base is set return; } _parse(host, kHostname, null, ctx, onParseHostnameComplete.bind(this)); } }, port: { enumerable: true, configurable: true, get() { const port = this[context].port; return port === null ? '' : String(port); }, set(port) { // toUSVString is not needed. port = `${port}`; if (this[cannotHaveUsernamePasswordPort]) return; const ctx = this[context]; if (port === '') { ctx.port = null; return; } _parse(port, kPort, null, ctx, onParsePortComplete.bind(this)); } }, pathname: { enumerable: true, configurable: true, get() { const ctx = this[context]; if (this[cannotBeBase]) return ctx.path[0]; if (ctx.path.length === 0) return ''; return `/${ctx.path.join('/')}`; }, set(path) { // toUSVString is not needed. path = `${path}`; if (this[cannotBeBase]) return; _parse(path, kPathStart, null, this[context], onParsePathComplete.bind(this)); } }, search: { enumerable: true, configurable: true, get() { const { query } = this[context]; if (query === null || query === '') return ''; return `?${query}`; }, set(search) { const ctx = this[context]; search = toUSVString(search); if (search === '') { ctx.query = null; ctx.flags &= ~URL_FLAGS_HAS_QUERY; } else { if (search[0] === '?') search = search.slice(1); ctx.query = ''; ctx.flags |= URL_FLAGS_HAS_QUERY; if (search) { _parse(search, kQuery, null, ctx, onParseSearchComplete.bind(this)); } } initSearchParams(this[searchParams], search); } }, searchParams: { // readonly enumerable: true, configurable: true, get() { return this[searchParams]; } }, hash: { enumerable: true, configurable: true, get() { const { fragment } = this[context]; if (fragment === null || fragment === '') return ''; return `#${fragment}`; }, set(hash) { const ctx = this[context]; // toUSVString is not needed. hash = `${hash}`; if (!hash) { ctx.fragment = null; ctx.flags &= ~URL_FLAGS_HAS_FRAGMENT; return; } if (hash[0] === '#') hash = hash.slice(1); ctx.fragment = ''; ctx.flags |= URL_FLAGS_HAS_FRAGMENT; _parse(hash, kFragment, null, ctx, onParseHashComplete.bind(this)); } }, toJSON: { writable: true, enumerable: true, configurable: true, // eslint-disable-next-line func-name-matching value: function toJSON() { return this[kFormat]({}); } } }); function update(url, params) { if (!url) return; const ctx = url[context]; const serializedParams = params.toString(); if (serializedParams) { ctx.query = serializedParams; ctx.flags |= URL_FLAGS_HAS_QUERY; } else { ctx.query = null; ctx.flags &= ~URL_FLAGS_HAS_QUERY; } } function initSearchParams(url, init) { if (!init) { url[searchParams] = []; return; } url[searchParams] = parseParams(init); } // application/x-www-form-urlencoded parser // Ref: https://url.spec.whatwg.org/#concept-urlencoded-parser function parseParams(qs) { const out = []; var pairStart = 0; var lastPos = 0; var seenSep = false; var buf = ''; var encoded = false; var encodeCheck = 0; var i; for (i = 0; i < qs.length; ++i) { const code = qs.charCodeAt(i); // Try matching key/value pair separator if (code === CHAR_AMPERSAND) { if (pairStart === i) { // We saw an empty substring between pair separators lastPos = pairStart = i + 1; continue; } if (lastPos < i) buf += qs.slice(lastPos, i); if (encoded) buf = querystring.unescape(buf); out.push(buf); // If `buf` is the key, add an empty value. if (!seenSep) out.push(''); seenSep = false; buf = ''; encoded = false; encodeCheck = 0; lastPos = pairStart = i + 1; continue; } // Try matching key/value separator (e.g. '=') if we haven't already if (!seenSep && code === CHAR_EQUAL) { // Key/value separator match! if (lastPos < i) buf += qs.slice(lastPos, i); if (encoded) buf = querystring.unescape(buf); out.push(buf); seenSep = true; buf = ''; encoded = false; encodeCheck = 0; lastPos = i + 1; continue; } // Handle + and percent decoding. if (code === CHAR_PLUS) { if (lastPos < i) buf += qs.slice(lastPos, i); buf += ' '; lastPos = i + 1; } else if (!encoded) { // Try to match an (valid) encoded byte (once) to minimize unnecessary // calls to string decoding functions if (code === CHAR_PERCENT) { encodeCheck = 1; } else if (encodeCheck > 0) { // eslint-disable-next-line no-extra-boolean-cast if (!!isHexTable[code]) { if (++encodeCheck === 3) { querystring = require('querystring'); encoded = true; } } else { encodeCheck = 0; } } } } // Deal with any leftover key or value data // There is a trailing &. No more processing is needed. if (pairStart === i) return out; if (lastPos < i) buf += qs.slice(lastPos, i); if (encoded) buf = querystring.unescape(buf); out.push(buf); // If `buf` is the key, add an empty value. if (!seenSep) out.push(''); return out; } // Adapted from querystring's implementation. // Ref: https://url.spec.whatwg.org/#concept-urlencoded-byte-serializer const noEscape = [ /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00 - 0x0F 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x10 - 0x1F 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, // 0x20 - 0x2F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 0x30 - 0x3F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 0x50 - 0x5F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 // 0x70 - 0x7F ]; // Special version of hexTable that uses `+` for U+0020 SPACE. const paramHexTable = hexTable.slice(); paramHexTable[0x20] = '+'; // application/x-www-form-urlencoded serializer // Ref: https://url.spec.whatwg.org/#concept-urlencoded-serializer function serializeParams(array) { const len = array.length; if (len === 0) return ''; const firstEncodedParam = encodeStr(array[0], noEscape, paramHexTable); const firstEncodedValue = encodeStr(array[1], noEscape, paramHexTable); let output = `${firstEncodedParam}=${firstEncodedValue}`; for (var i = 2; i < len; i += 2) { const encodedParam = encodeStr(array[i], noEscape, paramHexTable); const encodedValue = encodeStr(array[i + 1], noEscape, paramHexTable); output += `&${encodedParam}=${encodedValue}`; } return output; } // Mainly to mitigate func-name-matching ESLint rule function defineIDLClass(proto, classStr, obj) { // https://heycam.github.io/webidl/#dfn-class-string Object.defineProperty(proto, Symbol.toStringTag, { writable: false, enumerable: false, configurable: true, value: classStr }); // https://heycam.github.io/webidl/#es-operations for (const key of Object.keys(obj)) { Object.defineProperty(proto, key, { writable: true, enumerable: true, configurable: true, value: obj[key] }); } for (const key of Object.getOwnPropertySymbols(obj)) { Object.defineProperty(proto, key, { writable: true, enumerable: false, configurable: true, value: obj[key] }); } } // for merge sort function merge(out, start, mid, end, lBuffer, rBuffer) { const sizeLeft = mid - start; const sizeRight = end - mid; var l, r, o; for (l = 0; l < sizeLeft; l++) lBuffer[l] = out[start + l]; for (r = 0; r < sizeRight; r++) rBuffer[r] = out[mid + r]; l = 0; r = 0; o = start; while (l < sizeLeft && r < sizeRight) { if (lBuffer[l] <= rBuffer[r]) { out[o++] = lBuffer[l++]; out[o++] = lBuffer[l++]; } else { out[o++] = rBuffer[r++]; out[o++] = rBuffer[r++]; } } while (l < sizeLeft) out[o++] = lBuffer[l++]; while (r < sizeRight) out[o++] = rBuffer[r++]; } defineIDLClass(URLSearchParams.prototype, 'URLSearchParams', { append(name, value) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 2) { throw new ERR_MISSING_ARGS('name', 'value'); } name = toUSVString(name); value = toUSVString(value); this[searchParams].push(name, value); update(this[context], this); }, delete(name) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 1) { throw new ERR_MISSING_ARGS('name'); } const list = this[searchParams]; name = toUSVString(name); for (var i = 0; i < list.length;) { const cur = list[i]; if (cur === name) { list.splice(i, 2); } else { i += 2; } } update(this[context], this); }, get(name) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 1) { throw new ERR_MISSING_ARGS('name'); } const list = this[searchParams]; name = toUSVString(name); for (var i = 0; i < list.length; i += 2) { if (list[i] === name) { return list[i + 1]; } } return null; }, getAll(name) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 1) { throw new ERR_MISSING_ARGS('name'); } const list = this[searchParams]; const values = []; name = toUSVString(name); for (var i = 0; i < list.length; i += 2) { if (list[i] === name) { values.push(list[i + 1]); } } return values; }, has(name) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 1) { throw new ERR_MISSING_ARGS('name'); } const list = this[searchParams]; name = toUSVString(name); for (var i = 0; i < list.length; i += 2) { if (list[i] === name) { return true; } } return false; }, set(name, value) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (arguments.length < 2) { throw new ERR_MISSING_ARGS('name', 'value'); } const list = this[searchParams]; name = toUSVString(name); value = toUSVString(value); // If there are any name-value pairs whose name is `name`, in `list`, set // the value of the first such name-value pair to `value` and remove the // others. var found = false; for (var i = 0; i < list.length;) { const cur = list[i]; if (cur === name) { if (!found) { list[i + 1] = value; found = true; i += 2; } else { list.splice(i, 2); } } else { i += 2; } } // Otherwise, append a new name-value pair whose name is `name` and value // is `value`, to `list`. if (!found) { list.push(name, value); } update(this[context], this); }, sort() { const a = this[searchParams]; const len = a.length; if (len <= 2) { // Nothing needs to be done. } else if (len < 100) { // 100 is found through testing. // Simple stable in-place insertion sort // Derived from v8/src/js/array.js for (var i = 2; i < len; i += 2) { var curKey = a[i]; var curVal = a[i + 1]; var j; for (j = i - 2; j >= 0; j -= 2) { if (a[j] > curKey) { a[j + 2] = a[j]; a[j + 3] = a[j + 1]; } else { break; } } a[j + 2] = curKey; a[j + 3] = curVal; } } else { // Bottom-up iterative stable merge sort const lBuffer = new Array(len); const rBuffer = new Array(len); for (var step = 2; step < len; step *= 2) { for (var start = 0; start < len - 2; start += 2 * step) { var mid = start + step; var end = mid + step; end = end < len ? end : len; if (mid > end) continue; merge(a, start, mid, end, lBuffer, rBuffer); } } } update(this[context], this); }, // https://heycam.github.io/webidl/#es-iterators // Define entries here rather than [Symbol.iterator] as the function name // must be set to `entries`. entries() { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } return createSearchParamsIterator(this, 'key+value'); }, forEach(callback, thisArg = undefined) { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } if (typeof callback !== 'function') { throw new ERR_INVALID_CALLBACK(); } let list = this[searchParams]; var i = 0; while (i < list.length) { const key = list[i]; const value = list[i + 1]; callback.call(thisArg, value, key, this); // in case the URL object's `search` is updated list = this[searchParams]; i += 2; } }, // https://heycam.github.io/webidl/#es-iterable keys() { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } return createSearchParamsIterator(this, 'key'); }, values() { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } return createSearchParamsIterator(this, 'value'); }, // https://heycam.github.io/webidl/#es-stringifier // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior toString() { if (!this || !this[searchParams] || this[searchParams][searchParams]) { throw new ERR_INVALID_THIS('URLSearchParams'); } return serializeParams(this[searchParams]); } }); // https://heycam.github.io/webidl/#es-iterable-entries Object.defineProperty(URLSearchParams.prototype, Symbol.iterator, { writable: true, configurable: true, value: URLSearchParams.prototype.entries }); // https://heycam.github.io/webidl/#dfn-default-iterator-object function createSearchParamsIterator(target, kind) { const iterator = Object.create(URLSearchParamsIteratorPrototype); iterator[context] = { target, kind, index: 0 }; return iterator; } // https://heycam.github.io/webidl/#dfn-iterator-prototype-object const URLSearchParamsIteratorPrototype = Object.create(IteratorPrototype); defineIDLClass(URLSearchParamsIteratorPrototype, 'URLSearchParams Iterator', { next() { if (!this || Object.getPrototypeOf(this) !== URLSearchParamsIteratorPrototype) { throw new ERR_INVALID_THIS('URLSearchParamsIterator'); } const { target, kind, index } = this[context]; const values = target[searchParams]; const len = values.length; if (index >= len) { return { value: undefined, done: true }; } const name = values[index]; const value = values[index + 1]; this[context].index = index + 2; let result; if (kind === 'key') { result = name; } else if (kind === 'value') { result = value; } else { result = [name, value]; } return { value: result, done: false }; }, [util.inspect.custom](recurseTimes, ctx) { if (this == null || this[context] == null || this[context].target == null) throw new ERR_INVALID_THIS('URLSearchParamsIterator'); if (typeof recurseTimes === 'number' && recurseTimes < 0) return ctx.stylize('[Object]', 'special'); const innerOpts = util._extend({}, ctx); if (recurseTimes !== null) { innerOpts.depth = recurseTimes - 1; } const { target, kind, index } = this[context]; const output = target[searchParams].slice(index).reduce((prev, cur, i) => { const key = i % 2 === 0; if (kind === 'key' && key) { prev.push(cur); } else if (kind === 'value' && !key) { prev.push(cur); } else if (kind === 'key+value' && !key) { prev.push([target[searchParams][index + i - 1], cur]); } return prev; }, []); const breakLn = util.inspect(output, innerOpts).includes('\n'); const outputStrs = output.map((p) => util.inspect(p, innerOpts)); let outputStr; if (breakLn) { outputStr = `\n ${outputStrs.join(',\n ')}`; } else { outputStr = ` ${outputStrs.join(', ')}`; } return `${this[Symbol.toStringTag]} {${outputStr} }`; } }); function domainToASCII(domain) { if (arguments.length < 1) throw new ERR_MISSING_ARGS('domain'); // toUSVString is not needed. return _domainToASCII(`${domain}`); } function domainToUnicode(domain) { if (arguments.length < 1) throw new ERR_MISSING_ARGS('domain'); // toUSVString is not needed. return _domainToUnicode(`${domain}`); } // Utility function that converts a URL object into an ordinary // options object as expected by the http.request and https.request // APIs. function urlToOptions(url) { var options = { protocol: url.protocol, hostname: url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname, hash: url.hash, search: url.search, pathname: url.pathname, path: `${url.pathname}${url.search}`, href: url.href }; if (url.port !== '') { options.port = Number(url.port); } if (url.username || url.password) { options.auth = `${url.username}:${url.password}`; } return options; } function getPathFromURLWin32(url) { var hostname = url.hostname; var pathname = url.pathname; for (var n = 0; n < pathname.length; n++) { if (pathname[n] === '%') { var third = pathname.codePointAt(n + 2) | 0x20; if ((pathname[n + 1] === '2' && third === 102) || // 2f 2F / (pathname[n + 1] === '5' && third === 99)) { // 5c 5C \ throw new ERR_INVALID_FILE_URL_PATH( 'must not include encoded \\ or / characters' ); } } } pathname = decodeURIComponent(pathname); if (hostname !== '') { // If hostname is set, then we have a UNC path // Pass the hostname through domainToUnicode just in case // it is an IDN using punycode encoding. We do not need to worry // about percent encoding because the URL parser will have // already taken care of that for us. Note that this only // causes IDNs with an appropriate `xn--` prefix to be decoded. return `//${domainToUnicode(hostname)}${pathname}`; } else { // Otherwise, it's a local path that requires a drive letter var letter = pathname.codePointAt(1) | 0x20; var sep = pathname[2]; if (letter < CHAR_LOWERCASE_A || letter > CHAR_LOWERCASE_Z || // a..z A..Z (sep !== ':')) { throw new ERR_INVALID_FILE_URL_PATH('must be absolute'); } return pathname.slice(1); } } function getPathFromURLPosix(url) { if (url.hostname !== '') { throw new ERR_INVALID_FILE_URL_HOST(platform); } var pathname = url.pathname; for (var n = 0; n < pathname.length; n++) { if (pathname[n] === '%') { var third = pathname.codePointAt(n + 2) | 0x20; if (pathname[n + 1] === '2' && third === 102) { throw new ERR_INVALID_FILE_URL_PATH( 'must not include encoded / characters' ); } } } return decodeURIComponent(pathname); } function fileURLToPath(path) { if (typeof path === 'string') path = new URL(path); else if (path == null || !path[searchParams] || !path[searchParams][searchParams]) throw new ERR_INVALID_ARG_TYPE('path', ['string', 'URL'], path); if (path.protocol !== 'file:') throw new ERR_INVALID_URL_SCHEME('file'); return isWindows ? getPathFromURLWin32(path) : getPathFromURLPosix(path); } // We percent-encode % character when converting from file path to URL, // as this is the only character that won't be percent encoded by // default URL percent encoding when pathname is set. const percentRegEx = /%/g; const backslashRegEx = /\\/g; function pathToFileURL(filepath) { let resolved = path.resolve(filepath); // path.resolve strips trailing slashes so we must add them back const filePathLast = filepath.charCodeAt(filepath.length - 1); if ((filePathLast === CHAR_FORWARD_SLASH || isWindows && filePathLast === CHAR_BACKWARD_SLASH) && resolved[resolved.length - 1] !== path.sep) resolved += '/'; const outURL = new URL('file://'); if (resolved.includes('%')) resolved = resolved.replace(percentRegEx, '%25'); // in posix, "/" is a valid character in paths if (!isWindows && resolved.includes('\\')) resolved = resolved.replace(backslashRegEx, '%5C'); outURL.pathname = resolved; return outURL; } function toPathIfFileURL(fileURLOrPath) { if (fileURLOrPath == null || !fileURLOrPath[searchParams] || !fileURLOrPath[searchParams][searchParams]) return fileURLOrPath; return fileURLToPath(fileURLOrPath); } function NativeURL(ctx) { Object.defineProperty(this, context, { enumerable: false, configurable: false, value: ctx }); } NativeURL.prototype = URL.prototype; function constructUrl(flags, protocol, username, password, host, port, path, query, fragment) { var ctx = new URLContext(); ctx.flags = flags; ctx.scheme = protocol; ctx.username = (flags & URL_FLAGS_HAS_USERNAME) !== 0 ? username : ''; ctx.password = (flags & URL_FLAGS_HAS_PASSWORD) !== 0 ? password : ''; ctx.port = port; ctx.path = (flags & URL_FLAGS_HAS_PATH) !== 0 ? path : []; ctx.query = query; ctx.fragment = fragment; ctx.host = host; const url = new NativeURL(ctx); url[searchParams] = new URLSearchParams(); url[searchParams][context] = url; initSearchParams(url[searchParams], query); return url; } setURLConstructor(constructUrl); module.exports = { toUSVString, fileURLToPath, pathToFileURL, toPathIfFileURL, URL, URLSearchParams, domainToASCII, domainToUnicode, urlToOptions, formatSymbol: kFormat, searchParamsSymbol: searchParams, encodeStr }; internal/util'use strict'; const { ERR_INVALID_ARG_TYPE, ERR_NO_CRYPTO, ERR_UNKNOWN_SIGNAL } = require('internal/errors').codes; const { signals } = process.binding('constants').os; const { getHiddenValue, setHiddenValue, arrow_message_private_symbol: kArrowMessagePrivateSymbolIndex, decorated_private_symbol: kDecoratedPrivateSymbolIndex } = process.binding('util'); const { errmap } = process.binding('uv'); const noCrypto = !process.versions.openssl; const experimentalWarnings = new Set(); const colorRegExp = /\u001b\[\d\d?m/g; // eslint-disable-line no-control-regex function removeColors(str) { return str.replace(colorRegExp, ''); } function isError(e) { return objectToString(e) === '[object Error]' || e instanceof Error; } function objectToString(o) { return Object.prototype.toString.call(o); } // Keep a list of deprecation codes that have been warned on so we only warn on // each one once. const codesWarned = {}; // Mark that a method should not be used. // Returns a modified function which warns once by default. // If --no-deprecation is set, then it is a no-op. function deprecate(fn, msg, code) { if (process.noDeprecation === true) { return fn; } if (code !== undefined && typeof code !== 'string') throw new ERR_INVALID_ARG_TYPE('code', 'string', code); let warned = false; function deprecated(...args) { if (!warned) { warned = true; if (code !== undefined) { if (!codesWarned[code]) { process.emitWarning(msg, 'DeprecationWarning', code, deprecated); codesWarned[code] = true; } } else { process.emitWarning(msg, 'DeprecationWarning', deprecated); } } if (new.target) { return Reflect.construct(fn, args, new.target); } return fn.apply(this, args); } // The wrapper will keep the same prototype as fn to maintain prototype chain Object.setPrototypeOf(deprecated, fn); if (fn.prototype) { // Setting this (rather than using Object.setPrototype, as above) ensures // that calling the unwrapped constructor gives an instanceof the wrapped // constructor. deprecated.prototype = fn.prototype; } return deprecated; } function decorateErrorStack(err) { if (!(isError(err) && err.stack) || getHiddenValue(err, kDecoratedPrivateSymbolIndex) === true) return; const arrow = getHiddenValue(err, kArrowMessagePrivateSymbolIndex); if (arrow) { err.stack = arrow + err.stack; setHiddenValue(err, kDecoratedPrivateSymbolIndex, true); } } function assertCrypto() { if (noCrypto) throw new ERR_NO_CRYPTO(); } // Return undefined if there is no match. // Move the "slow cases" to a separate function to make sure this function gets // inlined properly. That prioritizes the common case. function normalizeEncoding(enc) { if (enc == null || enc === 'utf8' || enc === 'utf-8') return 'utf8'; return slowCases(enc); } function slowCases(enc) { switch (enc.length) { case 4: if (enc === 'UTF8') return 'utf8'; if (enc === 'ucs2' || enc === 'UCS2') return 'utf16le'; enc = `${enc}`.toLowerCase(); if (enc === 'utf8') return 'utf8'; if (enc === 'ucs2') return 'utf16le'; break; case 3: if (enc === 'hex' || enc === 'HEX' || `${enc}`.toLowerCase() === 'hex') return 'hex'; break; case 5: if (enc === 'ascii') return 'ascii'; if (enc === 'ucs-2') return 'utf16le'; if (enc === 'UTF-8') return 'utf8'; if (enc === 'ASCII') return 'ascii'; if (enc === 'UCS-2') return 'utf16le'; enc = `${enc}`.toLowerCase(); if (enc === 'utf-8') return 'utf8'; if (enc === 'ascii') return 'ascii'; if (enc === 'ucs-2') return 'utf16le'; break; case 6: if (enc === 'base64') return 'base64'; if (enc === 'latin1' || enc === 'binary') return 'latin1'; if (enc === 'BASE64') return 'base64'; if (enc === 'LATIN1' || enc === 'BINARY') return 'latin1'; enc = `${enc}`.toLowerCase(); if (enc === 'base64') return 'base64'; if (enc === 'latin1' || enc === 'binary') return 'latin1'; break; case 7: if (enc === 'utf16le' || enc === 'UTF16LE' || `${enc}`.toLowerCase() === 'utf16le') return 'utf16le'; break; case 8: if (enc === 'utf-16le' || enc === 'UTF-16LE' || `${enc}`.toLowerCase() === 'utf-16le') return 'utf16le'; break; default: if (enc === '') return 'utf8'; } } function emitExperimentalWarning(feature) { if (experimentalWarnings.has(feature)) return; const msg = `${feature} is an experimental feature. This feature could ` + 'change at any time'; experimentalWarnings.add(feature); process.emitWarning(msg, 'ExperimentalWarning'); } function filterDuplicateStrings(items, low) { const map = new Map(); for (var i = 0; i < items.length; i++) { const item = items[i]; const key = item.toLowerCase(); if (low) { map.set(key, key); } else { map.set(key, item); } } return Array.from(map.values()).sort(); } function cachedResult(fn) { let result; return () => { if (result === undefined) result = fn(); return result.slice(); }; } // Useful for Wrapping an ES6 Class with a constructor Function that // does not require the new keyword. For instance: // class A { constructor(x) {this.x = x;}} // const B = createClassWrapper(A); // B() instanceof A // true // B() instanceof B // true function createClassWrapper(type) { function fn(...args) { return Reflect.construct(type, args, new.target || type); } // Mask the wrapper function name and length values Object.defineProperties(fn, { name: { value: type.name }, length: { value: type.length } }); Object.setPrototypeOf(fn, type); fn.prototype = type.prototype; return fn; } let signalsToNamesMapping; function getSignalsToNamesMapping() { if (signalsToNamesMapping !== undefined) return signalsToNamesMapping; signalsToNamesMapping = Object.create(null); for (var key in signals) { signalsToNamesMapping[signals[key]] = key; } return signalsToNamesMapping; } function convertToValidSignal(signal) { if (typeof signal === 'number' && getSignalsToNamesMapping()[signal]) return signal; if (typeof signal === 'string') { const signalName = signals[signal.toUpperCase()]; if (signalName) return signalName; } throw new ERR_UNKNOWN_SIGNAL(signal); } function getConstructorOf(obj) { while (obj) { const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); if (descriptor !== undefined && typeof descriptor.value === 'function' && descriptor.value.name !== '') { return descriptor.value; } obj = Object.getPrototypeOf(obj); } return null; } function getSystemErrorName(err) { const entry = errmap.get(err); return entry ? entry[0] : `Unknown system error ${err}`; } const kCustomPromisifiedSymbol = Symbol('util.promisify.custom'); const kCustomPromisifyArgsSymbol = Symbol('customPromisifyArgs'); function promisify(original) { if (typeof original !== 'function') throw new ERR_INVALID_ARG_TYPE('original', 'Function', original); if (original[kCustomPromisifiedSymbol]) { const fn = original[kCustomPromisifiedSymbol]; if (typeof fn !== 'function') { throw new ERR_INVALID_ARG_TYPE('util.promisify.custom', 'Function', fn); } Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true }); return fn; } // Names to create an object from in case the callback receives multiple // arguments, e.g. ['stdout', 'stderr'] for child_process.exec. const argumentNames = original[kCustomPromisifyArgsSymbol]; function fn(...args) { return new Promise((resolve, reject) => { original.call(this, ...args, (err, ...values) => { if (err) { return reject(err); } if (argumentNames !== undefined && values.length > 1) { const obj = {}; for (var i = 0; i < argumentNames.length; i++) obj[argumentNames[i]] = values[i]; resolve(obj); } else { resolve(values[0]); } }); }); } Object.setPrototypeOf(fn, Object.getPrototypeOf(original)); Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true }); return Object.defineProperties( fn, Object.getOwnPropertyDescriptors(original) ); } promisify.custom = kCustomPromisifiedSymbol; // The build-in Array#join is slower in v8 6.0 function join(output, separator) { let str = ''; if (output.length !== 0) { for (var i = 0; i < output.length - 1; i++) { // It is faster not to use a template string here str += output[i]; str += separator; } str += output[i]; } return str; } // As of V8 6.6, depending on the size of the array, this is anywhere // between 1.5-10x faster than the two-arg version of Array#splice() function spliceOne(list, index) { for (; index + 1 < list.length; index++) list[index] = list[index + 1]; list.pop(); } const kNodeModulesRE = /^(.*)[\\/]node_modules[\\/]/; let getStructuredStack; function isInsideNodeModules() { if (getStructuredStack === undefined) { // Lazy-load to avoid a circular dependency. const { runInNewContext } = require('vm'); // Use `runInNewContext()` to get something tamper-proof and // side-effect-free. Since this is currently only used for a deprecated API, // the perf implications should be okay. getStructuredStack = runInNewContext(`(function() { Error.prepareStackTrace = function(err, trace) { err.stack = trace; }; Error.stackTraceLimit = Infinity; return function structuredStack() { return new Error().stack; }; })()`, {}, { filename: 'structured-stack' }); } const stack = getStructuredStack(); // Iterate over all stack frames and look for the first one not coming // from inside Node.js itself: if (Array.isArray(stack)) { for (const frame of stack) { const filename = frame.getFileName(); // If a filename does not start with / or contain \, // it's likely from Node.js core. if (!/^\/|\\/.test(filename)) continue; return kNodeModulesRE.test(filename); } } return false; } function once(callback) { let called = false; return function(...args) { if (called) return; called = true; callback(...args); }; } module.exports = { assertCrypto, cachedResult, convertToValidSignal, createClassWrapper, decorateErrorStack, deprecate, emitExperimentalWarning, filterDuplicateStrings, getConstructorOf, getSystemErrorName, isError, isInsideNodeModules, join, normalizeEncoding, objectToString, once, promisify, spliceOne, removeColors, // Symbol used to customize promisify conversion customPromisifyArgs: kCustomPromisifyArgsSymbol, // Symbol used to provide a custom inspect function for an object as an // alternative to using 'inspect' customInspectSymbol: Symbol.for('nodejs.util.inspect.custom'), // Used by the buffer module to capture an internal reference to the // default isEncoding implementation, just in case userland overrides it. kIsEncodingSymbol: Symbol('kIsEncodingSymbol'), kExpandStackSymbol: Symbol('kExpandStackSymbol') }; internal/util/comparisons'use strict'; const { compare } = process.binding('buffer'); const { isArrayBufferView } = require('internal/util/types'); const { isDate, isMap, isRegExp, isSet } = internalBinding('types'); const { getOwnNonIndexProperties, propertyFilter: { ONLY_ENUMERABLE } } = process.binding('util'); const ReflectApply = Reflect.apply; function uncurryThis(func) { return (thisArg, ...args) => ReflectApply(func, thisArg, args); } const kStrict = true; const kLoose = false; const kNoIterator = 0; const kIsArray = 1; const kIsSet = 2; const kIsMap = 3; const objectToString = uncurryThis(Object.prototype.toString); const hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty); const propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable); const objectKeys = Object.keys; const getPrototypeOf = Object.getPrototypeOf; const getOwnPropertySymbols = Object.getOwnPropertySymbols; const objectIs = Object.is; const numberIsNaN = Number.isNaN; // Check if they have the same source and flags function areSimilarRegExps(a, b) { return a.source === b.source && a.flags === b.flags; } function areSimilarFloatArrays(a, b) { if (a.byteLength !== b.byteLength) { return false; } for (var offset = 0; offset < a.byteLength; offset++) { if (a[offset] !== b[offset]) { return false; } } return true; } function areSimilarTypedArrays(a, b) { if (a.byteLength !== b.byteLength) { return false; } return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0; } function isFloatTypedArrayTag(tag) { return tag === '[object Float32Array]' || tag === '[object Float64Array]'; } function isArguments(tag) { return tag === '[object Arguments]'; } function isObjectOrArrayTag(tag) { return tag === '[object Array]' || tag === '[object Object]'; } // Notes: Type tags are historical [[Class]] properties that can be set by // FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS // and retrieved using Object.prototype.toString.call(obj) in JS // See https://tc39.github.io/ecma262/#sec-object.prototype.tostring // for a list of tags pre-defined in the spec. // There are some unspecified tags in the wild too (e.g. typed array tags). // Since tags can be altered, they only serve fast failures // // Typed arrays and buffers are checked by comparing the content in their // underlying ArrayBuffer. This optimization requires that it's // reasonable to interpret their underlying memory in the same way, // which is checked by comparing their type tags. // (e.g. a Uint8Array and a Uint16Array with the same memory content // could still be different because they will be interpreted differently). // // For strict comparison, objects should have // a) The same built-in type tags // b) The same prototypes. function strictDeepEqual(val1, val2, memos) { if (typeof val1 !== 'object') { return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2); } if (typeof val2 !== 'object' || val1 === null || val2 === null) { return false; } const val1Tag = objectToString(val1); const val2Tag = objectToString(val2); if (val1Tag !== val2Tag) { return false; } if (getPrototypeOf(val1) !== getPrototypeOf(val2)) { return false; } if (val1Tag === '[object Array]') { // Check for sparse arrays and general fast path if (val1.length !== val2.length) { return false; } const keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE); const keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE); if (keys1.length !== keys2.length) { return false; } return keyCheck(val1, val2, kStrict, memos, kIsArray, keys1); } if (val1Tag === '[object Object]') { return keyCheck(val1, val2, kStrict, memos, kNoIterator); } if (isDate(val1)) { // TODO: Make these safe. if (val1.getTime() !== val2.getTime()) { return false; } } else if (isRegExp(val1)) { if (!areSimilarRegExps(val1, val2)) { return false; } } else if (val1Tag === '[object Error]') { // Do not compare the stack as it might differ even though the error itself // is otherwise identical. The non-enumerable name should be identical as // the prototype is also identical. Otherwise this is caught later on. if (val1.message !== val2.message) { return false; } } else if (isArrayBufferView(val1)) { if (!areSimilarTypedArrays(val1, val2)) { return false; } // Buffer.compare returns true, so val1.length === val2.length. If they both // only contain numeric keys, we don't need to exam further than checking // the symbols. const keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE); const keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE); if (keys1.length !== keys2.length) { return false; } return keyCheck(val1, val2, kStrict, memos, kNoIterator, keys1); } else if (isSet(val1)) { if (!isSet(val2) || val1.size !== val2.size) { return false; } return keyCheck(val1, val2, kStrict, memos, kIsSet); } else if (isMap(val1)) { if (!isMap(val2) || val1.size !== val2.size) { return false; } return keyCheck(val1, val2, kStrict, memos, kIsMap); // TODO: Make the valueOf checks safe. } else if (typeof val1.valueOf === 'function') { const val1Value = val1.valueOf(); if (val1Value !== val1 && (typeof val2.valueOf !== 'function' || !innerDeepEqual(val1Value, val2.valueOf(), kStrict))) { return false; } } return keyCheck(val1, val2, kStrict, memos, kNoIterator); } function looseDeepEqual(val1, val2, memos) { if (val1 === null || typeof val1 !== 'object') { if (val2 === null || typeof val2 !== 'object') { // eslint-disable-next-line eqeqeq return val1 == val2; } return false; } if (val2 === null || typeof val2 !== 'object') { return false; } const val1Tag = objectToString(val1); const val2Tag = objectToString(val2); if (val1Tag === val2Tag) { if (isObjectOrArrayTag(val1Tag)) { return keyCheck(val1, val2, kLoose, memos, kNoIterator); } if (isArrayBufferView(val1)) { if (isFloatTypedArrayTag(val1Tag)) { return areSimilarFloatArrays(val1, val2); } return areSimilarTypedArrays(val1, val2); } if (isDate(val1) && isDate(val2)) { return val1.getTime() === val2.getTime(); } if (isRegExp(val1) && isRegExp(val2)) { return areSimilarRegExps(val1, val2); } if (val1 instanceof Error && val2 instanceof Error) { if (val1.message !== val2.message || val1.name !== val2.name) return false; } // Ensure reflexivity of deepEqual with `arguments` objects. // See https://github.com/nodejs/node-v0.x-archive/pull/7178 } else if (isArguments(val1Tag) || isArguments(val2Tag)) { return false; } if (isSet(val1)) { if (!isSet(val2) || val1.size !== val2.size) { return false; } return keyCheck(val1, val2, kLoose, memos, kIsSet); } else if (isMap(val1)) { if (!isMap(val2) || val1.size !== val2.size) { return false; } return keyCheck(val1, val2, kLoose, memos, kIsMap); } else if (isSet(val2) || isMap(val2)) { return false; } return keyCheck(val1, val2, kLoose, memos, kNoIterator); } function getEnumerables(val, keys) { return keys.filter((k) => propertyIsEnumerable(val, k)); } function keyCheck(val1, val2, strict, memos, iterationType, aKeys) { // For all remaining Object pairs, including Array, objects and Maps, // equivalence is determined by having: // a) The same number of owned enumerable properties // b) The same set of keys/indexes (although not necessarily the same order) // c) Equivalent values for every corresponding key/index // d) For Sets and Maps, equal contents // Note: this accounts for both named and indexed properties on Arrays. if (arguments.length === 5) { aKeys = objectKeys(val1); const bKeys = objectKeys(val2); // The pair must have the same number of owned properties. if (aKeys.length !== bKeys.length) { return false; } } // Cheap key test let i = 0; for (; i < aKeys.length; i++) { if (!hasOwnProperty(val2, aKeys[i])) { return false; } } if (strict && arguments.length === 5) { const symbolKeysA = getOwnPropertySymbols(val1); if (symbolKeysA.length !== 0) { let count = 0; for (i = 0; i < symbolKeysA.length; i++) { const key = symbolKeysA[i]; if (propertyIsEnumerable(val1, key)) { if (!propertyIsEnumerable(val2, key)) { return false; } aKeys.push(key); count++; } else if (propertyIsEnumerable(val2, key)) { return false; } } const symbolKeysB = getOwnPropertySymbols(val2); if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) { return false; } } else { const symbolKeysB = getOwnPropertySymbols(val2); if (symbolKeysB.length !== 0 && getEnumerables(val2, symbolKeysB).length !== 0) { return false; } } } if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) { return true; } // Use memos to handle cycles. if (memos === undefined) { memos = { val1: new Map(), val2: new Map(), position: 0 }; } else { // We prevent up to two map.has(x) calls by directly retrieving the value // and checking for undefined. The map can only contain numbers, so it is // safe to check for undefined only. const val2MemoA = memos.val1.get(val1); if (val2MemoA !== undefined) { const val2MemoB = memos.val2.get(val2); if (val2MemoB !== undefined) { return val2MemoA === val2MemoB; } } memos.position++; } memos.val1.set(val1, memos.position); memos.val2.set(val2, memos.position); const areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType); memos.val1.delete(val1); memos.val2.delete(val2); return areEq; } function innerDeepEqual(val1, val2, strict, memos) { // All identical values are equivalent, as determined by ===. if (val1 === val2) { if (val1 !== 0) return true; return strict ? objectIs(val1, val2) : true; } // Check more closely if val1 and val2 are equal. if (strict === true) return strictDeepEqual(val1, val2, memos); return looseDeepEqual(val1, val2, memos); } function setHasEqualElement(set, val1, strict, memo) { // Go looking. for (const val2 of set) { if (innerDeepEqual(val1, val2, strict, memo)) { // Remove the matching element to make sure we do not check that again. set.delete(val2); return true; } } return false; } // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using // Sadly it is not possible to detect corresponding values properly in case the // type is a string, number, bigint or boolean. The reason is that those values // can match lots of different string values (e.g., 1n == '+00001'). function findLooseMatchingPrimitives(prim) { switch (typeof prim) { case 'undefined': return null; case 'object': // Only pass in null as object! return undefined; case 'symbol': return false; case 'string': prim = +prim; // Loose equal entries exist only if the string is possible to convert to // a regular number and not NaN. // Fall through case 'number': if (Number.isNaN(prim)) { return false; } } return true; } function setMightHaveLoosePrim(a, b, prim) { const altValue = findLooseMatchingPrimitives(prim); if (altValue != null) return altValue; return b.has(altValue) && !a.has(altValue); } function mapMightHaveLoosePrim(a, b, prim, item, memo) { const altValue = findLooseMatchingPrimitives(prim); if (altValue != null) { return altValue; } const curB = b.get(altValue); if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) { return false; } const curA = a.get(altValue); return curA === undefined && a.has(altValue) || innerDeepEqual(item, curA, false, memo); } function setEquiv(a, b, strict, memo) { // This is a lazily initiated Set of entries which have to be compared // pairwise. let set = null; for (const val of a) { // Note: Checking for the objects first improves the performance for object // heavy sets but it is a minor slow down for primitives. As they are fast // to check this improves the worst case scenario instead. if (typeof val === 'object' && val !== null) { if (set === null) { set = new Set(); } // If the specified value doesn't exist in the second set its an not null // object (or non strict only: a not matching primitive) we'll need to go // hunting for something thats deep-(strict-)equal to it. To make this // O(n log n) complexity we have to copy these values in a new set first. set.add(val); } else if (!b.has(val)) { if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values. if (!setMightHaveLoosePrim(a, b, val)) { return false; } if (set === null) { set = new Set(); } set.add(val); } } if (set !== null) { for (const val of b) { // We have to check if a primitive value is already // matching and only if it's not, go hunting for it. if (typeof val === 'object' && val !== null) { if (!setHasEqualElement(set, val, strict, memo)) return false; } else if (!strict && !a.has(val) && !setHasEqualElement(set, val, strict, memo)) { return false; } } return set.size === 0; } return true; } function mapHasEqualEntry(set, map, key1, item1, strict, memo) { // To be able to handle cases like: // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']]) // ... we need to consider *all* matching keys, not just the first we find. for (const key2 of set) { if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) { set.delete(key2); return true; } } return false; } function mapEquiv(a, b, strict, memo) { let set = null; for (const [key, item1] of a) { if (typeof key === 'object' && key !== null) { if (set === null) { set = new Set(); } set.add(key); } else { // By directly retrieving the value we prevent another b.has(key) check in // almost all possible cases. const item2 = b.get(key); if ((item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo))) { if (strict) return false; // Fast path to detect missing string, symbol, undefined and null // keys. if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false; if (set === null) { set = new Set(); } set.add(key); } } } if (set !== null) { for (const [key, item] of b) { if (typeof key === 'object' && key !== null) { if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false; } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) { return false; } } return set.size === 0; } return true; } function objEquiv(a, b, strict, keys, memos, iterationType) { // Sets and maps don't have their entries accessible via normal object // properties. let i = 0; if (iterationType === kIsSet) { if (!setEquiv(a, b, strict, memos)) { return false; } } else if (iterationType === kIsMap) { if (!mapEquiv(a, b, strict, memos)) { return false; } } else if (iterationType === kIsArray) { for (; i < a.length; i++) { if (hasOwnProperty(a, i)) { if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) { return false; } } else if (hasOwnProperty(b, i)) { return false; } else { // Array is sparse. const keysA = objectKeys(a); i++; for (; i < keysA.length; i++) { const key = keysA[i]; if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[i], strict, memos)) { return false; } } if (keysA.length !== objectKeys(b).length) { return false; } return true; } } } // The pair must have equivalent values for every corresponding key. // Possibly expensive deep test: for (i = 0; i < keys.length; i++) { const key = keys[i]; if (!innerDeepEqual(a[key], b[key], strict, memos)) { return false; } } return true; } function isDeepEqual(val1, val2) { return innerDeepEqual(val1, val2, kLoose); } function isDeepStrictEqual(val1, val2) { return innerDeepEqual(val1, val2, kStrict); } module.exports = { isDeepEqual, isDeepStrictEqual }; internal/util/inspect'use strict'; const { getOwnNonIndexProperties, getPromiseDetails, getProxyDetails, kPending, kRejected, previewEntries, propertyFilter: { ALL_PROPERTIES, ONLY_ENUMERABLE } } = process.binding('util'); const { customInspectSymbol, deprecate, isError, join, removeColors } = require('internal/util'); const { codes: { ERR_INVALID_ARG_TYPE }, isStackOverflowError } = require('internal/errors'); const types = internalBinding('types'); Object.assign(types, require('internal/util/types')); const { isAnyArrayBuffer, isArrayBuffer, isArgumentsObject, isBoxedPrimitive, isDataView, isExternal, isMap, isMapIterator, isPromise, isSet, isSetIterator, isWeakMap, isWeakSet, isRegExp, isDate, isTypedArray, isStringObject, isNumberObject, isBooleanObject, isBigIntObject, isUint8Array, isUint8ClampedArray, isUint16Array, isUint32Array, isInt8Array, isInt16Array, isInt32Array, isFloat32Array, isFloat64Array, isBigInt64Array, isBigUint64Array } = types; const ReflectApply = Reflect.apply; // This function is borrowed from the function with the same name on V8 Extras' // `utils` object. V8 implements Reflect.apply very efficiently in conjunction // with the spread syntax, such that no additional special case is needed for // function calls w/o arguments. // Refs: https://github.com/v8/v8/blob/d6ead37d265d7215cf9c5f768f279e21bd170212/src/js/prologue.js#L152-L156 function uncurryThis(func) { return (thisArg, ...args) => ReflectApply(func, thisArg, args); } const propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable); const regExpToString = uncurryThis(RegExp.prototype.toString); const dateToISOString = uncurryThis(Date.prototype.toISOString); const errorToString = uncurryThis(Error.prototype.toString); const bigIntValueOf = uncurryThis(BigInt.prototype.valueOf); const booleanValueOf = uncurryThis(Boolean.prototype.valueOf); const numberValueOf = uncurryThis(Number.prototype.valueOf); const symbolValueOf = uncurryThis(Symbol.prototype.valueOf); const stringValueOf = uncurryThis(String.prototype.valueOf); const setValues = uncurryThis(Set.prototype.values); const mapEntries = uncurryThis(Map.prototype.entries); const dateGetTime = uncurryThis(Date.prototype.getTime); const hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty); const inspectDefaultOptions = Object.seal({ showHidden: false, depth: 2, colors: false, customInspect: true, showProxy: false, maxArrayLength: 100, breakLength: 60, compact: true, sorted: false }); const kObjectType = 0; const kArrayType = 1; const kArrayExtrasType = 2; /* eslint-disable no-control-regex */ const strEscapeSequencesRegExp = /[\x00-\x1f\x27\x5c]/; const strEscapeSequencesReplacer = /[\x00-\x1f\x27\x5c]/g; /* eslint-enable no-control-regex */ const keyStrRegExp = /^[a-zA-Z_][a-zA-Z_0-9]*$/; const numberRegExp = /^(0|[1-9][0-9]*)$/; const readableRegExps = {}; const kMinLineLength = 16; // Constants to map the iterator state. const kWeak = 0; const kIterator = 1; const kMapEntries = 2; // Escaped special characters. Use empty strings to fill up unused entries. const meta = [ '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000b', '\\f', '\\r', '\\u000e', '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', '\\u001e', '\\u001f', '', '', '', '', '', '', '', "\\'", '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '\\\\' ]; /** * Echos the value of any input. Tries to print the value out * in the best way possible given the different types. * * @param {any} value The value to print out. * @param {Object} opts Optional options object that alters the output. */ /* Legacy: value, showHidden, depth, colors */ function inspect(value, opts) { // Default options const ctx = { budget: {}, indentationLvl: 0, seen: [], stylize: stylizeNoColor, showHidden: inspectDefaultOptions.showHidden, depth: inspectDefaultOptions.depth, colors: inspectDefaultOptions.colors, customInspect: inspectDefaultOptions.customInspect, showProxy: inspectDefaultOptions.showProxy, // TODO(BridgeAR): Deprecate `maxArrayLength` and replace it with // `maxEntries`. maxArrayLength: inspectDefaultOptions.maxArrayLength, breakLength: inspectDefaultOptions.breakLength, compact: inspectDefaultOptions.compact, sorted: inspectDefaultOptions.sorted }; // Legacy... if (arguments.length > 2) { if (arguments[2] !== undefined) { ctx.depth = arguments[2]; } if (arguments.length > 3 && arguments[3] !== undefined) { ctx.colors = arguments[3]; } } // Set user-specified options if (typeof opts === 'boolean') { ctx.showHidden = opts; } else if (opts) { const optKeys = Object.keys(opts); for (var i = 0; i < optKeys.length; i++) { ctx[optKeys[i]] = opts[optKeys[i]]; } } if (ctx.colors) ctx.stylize = stylizeWithColor; if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity; return formatValue(ctx, value, ctx.depth); } inspect.custom = customInspectSymbol; Object.defineProperty(inspect, 'defaultOptions', { get() { return inspectDefaultOptions; }, set(options) { if (options === null || typeof options !== 'object') { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } return Object.assign(inspectDefaultOptions, options); } }); // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics inspect.colors = Object.assign(Object.create(null), { 'bold': [1, 22], 'italic': [3, 23], 'underline': [4, 24], 'inverse': [7, 27], 'white': [37, 39], 'grey': [90, 39], 'black': [30, 39], 'blue': [34, 39], 'cyan': [36, 39], 'green': [32, 39], 'magenta': [35, 39], 'red': [31, 39], 'yellow': [33, 39] }); // Don't use 'blue' not visible on cmd.exe inspect.styles = Object.assign(Object.create(null), { 'special': 'cyan', 'number': 'yellow', 'bigint': 'yellow', 'boolean': 'yellow', 'undefined': 'grey', 'null': 'bold', 'string': 'green', 'symbol': 'green', 'date': 'magenta', // "name": intentionally not styling 'regexp': 'red' }); const escapeFn = (str) => meta[str.charCodeAt(0)]; // Escape control characters, single quotes and the backslash. // This is similar to JSON stringify escaping. function strEscape(str) { // Some magic numbers that worked out fine while benchmarking with v8 6.0 if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) return `'${str}'`; if (str.length > 100) return `'${str.replace(strEscapeSequencesReplacer, escapeFn)}'`; let result = ''; let last = 0; for (var i = 0; i < str.length; i++) { const point = str.charCodeAt(i); if (point === 39 || point === 92 || point < 32) { if (last === i) { result += meta[point]; } else { result += `${str.slice(last, i)}${meta[point]}`; } last = i + 1; } } if (last !== i) { result += str.slice(last); } return `'${result}'`; } function stylizeWithColor(str, styleType) { const style = inspect.styles[styleType]; if (style !== undefined) { const color = inspect.colors[style]; return `\u001b[${color[0]}m${str}\u001b[${color[1]}m`; } return str; } function stylizeNoColor(str) { return str; } // Return a new empty array to push in the results of the default formatter. function getEmptyFormatArray() { return []; } function getConstructorName(obj) { let firstProto; while (obj) { const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); if (descriptor !== undefined && typeof descriptor.value === 'function' && descriptor.value.name !== '') { return descriptor.value.name; } obj = Object.getPrototypeOf(obj); if (firstProto === undefined) { firstProto = obj; } } if (firstProto === null) { return null; } // TODO(BridgeAR): Improve prototype inspection. // We could use inspect on the prototype itself to improve the output. return ''; } function getPrefix(constructor, tag, fallback) { if (constructor === null) { if (tag !== '') { return `[${fallback}: null prototype] [${tag}] `; } return `[${fallback}: null prototype] `; } if (constructor !== '') { if (tag !== '' && constructor !== tag) { return `${constructor} [${tag}] `; } return `${constructor} `; } return ''; } const getBoxedValue = formatPrimitive.bind(null, stylizeNoColor); // Look up the keys of the object. function getKeys(value, showHidden) { let keys; const symbols = Object.getOwnPropertySymbols(value); if (showHidden) { keys = Object.getOwnPropertyNames(value); if (symbols.length !== 0) keys.push(...symbols); } else { // This might throw if `value` is a Module Namespace Object from an // unevaluated module, but we don't want to perform the actual type // check because it's expensive. // TODO(devsnek): track https://github.com/tc39/ecma262/issues/1209 // and modify this logic as needed. try { keys = Object.keys(value); } catch (err) { if (types.isNativeError(err) && err.name === 'ReferenceError' && types.isModuleNamespaceObject(value)) { keys = Object.getOwnPropertyNames(value); } else { throw err; } } if (symbols.length !== 0) { keys.push(...symbols.filter((key) => propertyIsEnumerable(value, key))); } } return keys; } function getCtxStyle(constructor, tag) { return constructor || tag || 'Object'; } function formatProxy(ctx, proxy, recurseTimes) { if (recurseTimes != null) { if (recurseTimes < 0) return ctx.stylize('Proxy [Array]', 'special'); recurseTimes -= 1; } ctx.indentationLvl += 2; const res = [ formatValue(ctx, proxy[0], recurseTimes), formatValue(ctx, proxy[1], recurseTimes) ]; ctx.indentationLvl -= 2; const str = reduceToSingleString(ctx, res, '', ['[', ']']); return `Proxy ${str}`; } function findTypedConstructor(value) { for (const [check, clazz] of [ [isUint8Array, Uint8Array], [isUint8ClampedArray, Uint8ClampedArray], [isUint16Array, Uint16Array], [isUint32Array, Uint32Array], [isInt8Array, Int8Array], [isInt16Array, Int16Array], [isInt32Array, Int32Array], [isFloat32Array, Float32Array], [isFloat64Array, Float64Array], [isBigInt64Array, BigInt64Array], [isBigUint64Array, BigUint64Array] ]) { if (check(value)) { return clazz; } } } let lazyNullPrototypeCache; // Creates a subclass and name // the constructor as `${clazz} : null prototype` function clazzWithNullPrototype(clazz, name) { if (lazyNullPrototypeCache === undefined) { lazyNullPrototypeCache = new Map(); } else { const cachedClass = lazyNullPrototypeCache.get(clazz); if (cachedClass !== undefined) { return cachedClass; } } class NullPrototype extends clazz { get [Symbol.toStringTag]() { return ''; } } Object.defineProperty(NullPrototype.prototype.constructor, 'name', { value: `[${name}: null prototype]` }); lazyNullPrototypeCache.set(clazz, NullPrototype); return NullPrototype; } function noPrototypeIterator(ctx, value, recurseTimes) { let newVal; if (isSet(value)) { const clazz = Object.getPrototypeOf(value) || clazzWithNullPrototype(Set, 'Set'); newVal = new clazz(setValues(value)); } else if (isMap(value)) { const clazz = Object.getPrototypeOf(value) || clazzWithNullPrototype(Map, 'Map'); newVal = new clazz(mapEntries(value)); } else if (Array.isArray(value)) { const clazz = Object.getPrototypeOf(value) || clazzWithNullPrototype(Array, 'Array'); newVal = new clazz(value.length); } else if (isTypedArray(value)) { let clazz = Object.getPrototypeOf(value); if (!clazz) { const constructor = findTypedConstructor(value); clazz = clazzWithNullPrototype(constructor, constructor.name); } newVal = new clazz(value); } if (newVal) { Object.defineProperties(newVal, Object.getOwnPropertyDescriptors(value)); return formatValue(ctx, newVal, recurseTimes); } } // Note: using `formatValue` directly requires the indentation level to be // corrected by setting `ctx.indentationLvL += diff` and then to decrease the // value afterwards again. function formatValue(ctx, value, recurseTimes) { // Primitive types cannot have properties if (typeof value !== 'object' && typeof value !== 'function') { return formatPrimitive(ctx.stylize, value, ctx); } if (value === null) { return ctx.stylize('null', 'null'); } if (ctx.showProxy) { const proxy = getProxyDetails(value); if (proxy !== undefined) { return formatProxy(ctx, proxy, recurseTimes); } } // Provide a hook for user-specified inspect functions. // Check that value is an object with an inspect function on it if (ctx.customInspect) { let maybeCustom = value[customInspectSymbol]; if (!maybeCustom && value.inspect !== inspect && typeof value.inspect === 'function') { maybeCustom = deprecate( value.inspect, 'Custom inspection function on Objects via .inspect() is deprecated', 'DEP0079' ); } if (typeof maybeCustom === 'function' && // Filter out the util module, its inspect function is special maybeCustom !== inspect && // Also filter out any prototype objects using the circular check. !(value.constructor && value.constructor.prototype === value)) { const ret = maybeCustom.call(value, recurseTimes, ctx); // If the custom inspection method returned `this`, don't go into // infinite recursion. if (ret !== value) { if (typeof ret !== 'string') { return formatValue(ctx, ret, recurseTimes); } return ret; } } } // Using an array here is actually better for the average case than using // a Set. `seen` will only check for the depth and will never grow too large. if (ctx.seen.indexOf(value) !== -1) return ctx.stylize('[Circular]', 'special'); return formatRaw(ctx, value, recurseTimes); } function formatRaw(ctx, value, recurseTimes) { let keys; const constructor = getConstructorName(value); let tag = value[Symbol.toStringTag]; if (typeof tag !== 'string') tag = ''; let base = ''; let formatter = getEmptyFormatArray; let braces; let noIterator = true; let i = 0; let skip = false; const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE; let extrasType = kObjectType; // Iterators and the rest are split to reduce checks if (value[Symbol.iterator]) { noIterator = false; if (Array.isArray(value)) { keys = getOwnNonIndexProperties(value, filter); // Only set the constructor for non ordinary ("Array [...]") arrays. const prefix = getPrefix(constructor, tag, 'Array'); braces = [`${prefix === 'Array ' ? '' : prefix}[`, ']']; if (value.length === 0 && keys.length === 0) return `${braces[0]}]`; extrasType = kArrayExtrasType; formatter = formatArray; } else if (isSet(value)) { keys = getKeys(value, ctx.showHidden); const prefix = getPrefix(constructor, tag, 'Set'); if (value.size === 0 && keys.length === 0) return `${prefix}{}`; braces = [`${prefix}{`, '}']; formatter = formatSet; } else if (isMap(value)) { keys = getKeys(value, ctx.showHidden); const prefix = getPrefix(constructor, tag, 'Map'); if (value.size === 0 && keys.length === 0) return `${prefix}{}`; braces = [`${prefix}{`, '}']; formatter = formatMap; } else if (isTypedArray(value)) { keys = getOwnNonIndexProperties(value, filter); const prefix = constructor !== null ? getPrefix(constructor, tag) : getPrefix(constructor, tag, findTypedConstructor(value).name); braces = [`${prefix}[`, ']']; if (value.length === 0 && keys.length === 0 && !ctx.showHidden) return `${braces[0]}]`; formatter = formatTypedArray; extrasType = kArrayExtrasType; } else if (isMapIterator(value)) { keys = getKeys(value, ctx.showHidden); braces = [`[${tag}] {`, '}']; formatter = formatMapIterator; } else if (isSetIterator(value)) { keys = getKeys(value, ctx.showHidden); braces = [`[${tag}] {`, '}']; formatter = formatSetIterator; } else { noIterator = true; } } if (noIterator) { keys = getKeys(value, ctx.showHidden); braces = ['{', '}']; if (constructor === 'Object') { if (isArgumentsObject(value)) { if (keys.length === 0) return '[Arguments] {}'; braces[0] = '[Arguments] {'; } else if (tag !== '') { braces[0] = `${getPrefix(constructor, tag, 'Object')}{`; if (keys.length === 0) { return `${braces[0]}}`; } } else if (keys.length === 0) { return '{}'; } } else if (typeof value === 'function') { const type = constructor || tag || 'Function'; const name = `${type}${value.name ? `: ${value.name}` : ''}`; if (keys.length === 0) return ctx.stylize(`[${name}]`, 'special'); base = `[${name}]`; } else if (isRegExp(value)) { // Make RegExps say that they are RegExps if (keys.length === 0 || recurseTimes < 0) return ctx.stylize(regExpToString(value), 'regexp'); base = `${regExpToString(value)}`; } else if (isDate(value)) { // Make dates with properties first say the date if (keys.length === 0) { if (Number.isNaN(dateGetTime(value))) return ctx.stylize(String(value), 'date'); return ctx.stylize(dateToISOString(value), 'date'); } base = dateToISOString(value); } else if (isError(value)) { // Make error with message first say the error base = formatError(value); // Wrap the error in brackets in case it has no stack trace. const stackStart = base.indexOf('\n at'); if (stackStart === -1) { base = `[${base}]`; } // The message and the stack have to be indented as well! if (ctx.indentationLvl !== 0) { const indentation = ' '.repeat(ctx.indentationLvl); base = formatError(value).replace(/\n/g, `\n${indentation}`); } if (keys.length === 0) return base; if (ctx.compact === false && stackStart !== -1) { braces[0] += `${base.slice(stackStart)}`; base = `[${base.slice(0, stackStart)}]`; } } else if (isAnyArrayBuffer(value)) { // Fast path for ArrayBuffer and SharedArrayBuffer. // Can't do the same for DataView because it has a non-primitive // .buffer property that we need to recurse for. const arrayType = isArrayBuffer(value) ? 'ArrayBuffer' : 'SharedArrayBuffer'; const prefix = getPrefix(constructor, tag, arrayType); if (keys.length === 0) return prefix + `{ byteLength: ${formatNumber(ctx.stylize, value.byteLength)} }`; braces[0] = `${prefix}{`; keys.unshift('byteLength'); } else if (isDataView(value)) { braces[0] = `${getPrefix(constructor, tag, 'DataView')}{`; // .buffer goes last, it's not a primitive like the others. keys.unshift('byteLength', 'byteOffset', 'buffer'); } else if (isPromise(value)) { braces[0] = `${getPrefix(constructor, tag, 'Promise')}{`; formatter = formatPromise; } else if (isWeakSet(value)) { braces[0] = `${getPrefix(constructor, tag, 'WeakSet')}{`; formatter = ctx.showHidden ? formatWeakSet : formatWeakCollection; } else if (isWeakMap(value)) { braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`; formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection; } else if (types.isModuleNamespaceObject(value)) { braces[0] = `[${tag}] {`; formatter = formatNamespaceObject; skip = true; } else if (isBoxedPrimitive(value)) { let type; if (isNumberObject(value)) { base = `[Number: ${getBoxedValue(numberValueOf(value))}]`; type = 'number'; } else if (isStringObject(value)) { base = `[String: ${getBoxedValue(stringValueOf(value), ctx)}]`; type = 'string'; // For boxed Strings, we have to remove the 0-n indexed entries, // since they just noisy up the output and are redundant // Make boxed primitive Strings look like such keys = keys.slice(value.length); } else if (isBooleanObject(value)) { base = `[Boolean: ${getBoxedValue(booleanValueOf(value))}]`; type = 'boolean'; } else if (isBigIntObject(value)) { base = `[BigInt: ${getBoxedValue(bigIntValueOf(value))}]`; type = 'bigint'; } else { base = `[Symbol: ${getBoxedValue(symbolValueOf(value))}]`; type = 'symbol'; } if (keys.length === 0) { return ctx.stylize(base, type); } } else { // The input prototype got manipulated. Special handle these. We have to // rebuild the information so we are able to display everything. const specialIterator = noPrototypeIterator(ctx, value, recurseTimes); if (specialIterator) { return specialIterator; } if (isMapIterator(value)) { braces = [`[${tag || 'Map Iterator'}] {`, '}']; formatter = formatMapIterator; } else if (isSetIterator(value)) { braces = [`[${tag || 'Set Iterator'}] {`, '}']; formatter = formatSetIterator; // Handle other regular objects again. } else if (keys.length === 0) { if (isExternal(value)) return ctx.stylize('[External]', 'special'); return `${getPrefix(constructor, tag, 'Object')}{}`; } else { braces[0] = `${getPrefix(constructor, tag, 'Object')}{`; } } } if (recurseTimes != null) { if (recurseTimes < 0) return ctx.stylize(`[${getCtxStyle(constructor, tag)}]`, 'special'); recurseTimes -= 1; } ctx.seen.push(value); let output; const indentationLvl = ctx.indentationLvl; try { output = formatter(ctx, value, recurseTimes, keys); if (skip === false) { for (i = 0; i < keys.length; i++) { output.push( formatProperty(ctx, value, recurseTimes, keys[i], extrasType)); } } } catch (err) { return handleMaxCallStackSize(ctx, err, constructor, tag, indentationLvl); } ctx.seen.pop(); if (ctx.sorted) { const comparator = ctx.sorted === true ? undefined : ctx.sorted; if (extrasType === kObjectType) { output = output.sort(comparator); } else if (keys.length > 1) { const sorted = output.slice(output.length - keys.length).sort(comparator); output.splice(output.length - keys.length, keys.length, ...sorted); } } return reduceToSingleString(ctx, output, base, braces); } function handleMaxCallStackSize(ctx, err, constructor, tag, indentationLvl) { if (isStackOverflowError(err)) { ctx.seen.pop(); ctx.indentationLvl = indentationLvl; return ctx.stylize( `[${getCtxStyle(constructor, tag)}: Inspection interrupted ` + 'prematurely. Maximum call stack size exceeded.]', 'special' ); } throw err; } function formatNumber(fn, value) { // Format -0 as '-0'. Checking `value === -0` won't distinguish 0 from -0. if (Object.is(value, -0)) return fn('-0', 'number'); return fn(`${value}`, 'number'); } function formatPrimitive(fn, value, ctx) { if (typeof value === 'string') { if (ctx.compact === false && ctx.indentationLvl + value.length > ctx.breakLength && value.length > kMinLineLength) { // eslint-disable-next-line max-len const minLineLength = Math.max(ctx.breakLength - ctx.indentationLvl, kMinLineLength); // eslint-disable-next-line max-len const averageLineLength = Math.ceil(value.length / Math.ceil(value.length / minLineLength)); const divisor = Math.max(averageLineLength, kMinLineLength); let res = ''; if (readableRegExps[divisor] === undefined) { // Build a new RegExp that naturally breaks text into multiple lines. // // Rules // 1. Greedy match all text up the max line length that ends with a // whitespace or the end of the string. // 2. If none matches, non-greedy match any text up to a whitespace or // the end of the string. // // eslint-disable-next-line max-len, node-core/no-unescaped-regexp-dot readableRegExps[divisor] = new RegExp(`(.|\\n){1,${divisor}}(\\s|$)|(\\n|.)+?(\\s|$)`, 'gm'); } const matches = value.match(readableRegExps[divisor]); if (matches.length > 1) { const indent = ' '.repeat(ctx.indentationLvl); res += `${fn(strEscape(matches[0]), 'string')} +\n`; for (var i = 1; i < matches.length - 1; i++) { res += `${indent} ${fn(strEscape(matches[i]), 'string')} +\n`; } res += `${indent} ${fn(strEscape(matches[i]), 'string')}`; return res; } } return fn(strEscape(value), 'string'); } if (typeof value === 'number') return formatNumber(fn, value); // eslint-disable-next-line valid-typeof if (typeof value === 'bigint') return fn(`${value}n`, 'bigint'); if (typeof value === 'boolean') return fn(`${value}`, 'boolean'); if (typeof value === 'undefined') return fn('undefined', 'undefined'); // es6 symbol primitive return fn(value.toString(), 'symbol'); } function formatError(value) { return value.stack || errorToString(value); } function formatNamespaceObject(ctx, value, recurseTimes, keys) { const len = keys.length; const output = new Array(len); for (var i = 0; i < len; i++) { try { output[i] = formatProperty(ctx, value, recurseTimes, keys[i], kObjectType); } catch (err) { if (!(types.isNativeError(err) && err.name === 'ReferenceError')) { throw err; } // Use the existing functionality. This makes sure the indentation and // line breaks are always correct. Otherwise it is very difficult to keep // this aligned, even though this is a hacky way of dealing with this. const tmp = { [keys[i]]: '' }; output[i] = formatProperty(ctx, tmp, recurseTimes, keys[i], kObjectType); const pos = output[i].lastIndexOf(' '); // We have to find the last whitespace and have to replace that value as // it will be visualized as a regular string. output[i] = output[i].slice(0, pos + 1) + ctx.stylize('', 'special'); } } return output; } // The array is sparse and/or has extra keys function formatSpecialArray(ctx, value, recurseTimes, maxLength, output, i) { const keys = Object.keys(value); let index = i; for (; i < keys.length && output.length < maxLength; i++) { const key = keys[i]; const tmp = +key; // Arrays can only have up to 2^32 - 1 entries if (tmp > 2 ** 32 - 2) { break; } if (`${index}` !== key) { if (!numberRegExp.test(key)) { break; } const emptyItems = tmp - index; const ending = emptyItems > 1 ? 's' : ''; const message = `<${emptyItems} empty item${ending}>`; output.push(ctx.stylize(message, 'undefined')); index = tmp; if (output.length === maxLength) { break; } } output.push(formatProperty(ctx, value, recurseTimes, key, kArrayType)); index++; } const remaining = value.length - index; if (output.length !== maxLength) { if (remaining > 0) { const ending = remaining > 1 ? 's' : ''; const message = `<${remaining} empty item${ending}>`; output.push(ctx.stylize(message, 'undefined')); } } else if (remaining > 0) { output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); } return output; } function formatArray(ctx, value, recurseTimes) { const valLen = value.length; const len = Math.min(Math.max(0, ctx.maxArrayLength), valLen); const remaining = valLen - len; const output = []; for (var i = 0; i < len; i++) { // Special handle sparse arrays. if (!hasOwnProperty(value, i)) { return formatSpecialArray(ctx, value, recurseTimes, len, output, i); } output.push(formatProperty(ctx, value, recurseTimes, i, kArrayType)); } if (remaining > 0) output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); return output; } function formatTypedArray(ctx, value, recurseTimes) { const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), value.length); const remaining = value.length - maxLength; const output = new Array(maxLength); for (var i = 0; i < maxLength; ++i) output[i] = formatNumber(ctx.stylize, value[i]); if (remaining > 0) output[i] = `... ${remaining} more item${remaining > 1 ? 's' : ''}`; if (ctx.showHidden) { // .buffer goes last, it's not a primitive like the others. ctx.indentationLvl += 2; for (const key of [ 'BYTES_PER_ELEMENT', 'length', 'byteLength', 'byteOffset', 'buffer' ]) { const str = formatValue(ctx, value[key], recurseTimes); output.push(`[${key}]: ${str}`); } ctx.indentationLvl -= 2; } return output; } function formatSet(ctx, value, recurseTimes) { const output = []; ctx.indentationLvl += 2; for (const v of value) { output.push(formatValue(ctx, v, recurseTimes)); } ctx.indentationLvl -= 2; // With `showHidden`, `length` will display as a hidden property for // arrays. For consistency's sake, do the same for `size`, even though this // property isn't selected by Object.getOwnPropertyNames(). if (ctx.showHidden) output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); return output; } function formatMap(ctx, value, recurseTimes) { const output = []; ctx.indentationLvl += 2; for (const [k, v] of value) { output.push(`${formatValue(ctx, k, recurseTimes)} => ` + formatValue(ctx, v, recurseTimes)); } ctx.indentationLvl -= 2; // See comment in formatSet if (ctx.showHidden) output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); return output; } function formatSetIterInner(ctx, recurseTimes, entries, state) { const maxArrayLength = Math.max(ctx.maxArrayLength, 0); const maxLength = Math.min(maxArrayLength, entries.length); let output = new Array(maxLength); ctx.indentationLvl += 2; for (var i = 0; i < maxLength; i++) { output[i] = formatValue(ctx, entries[i], recurseTimes); } ctx.indentationLvl -= 2; if (state === kWeak) { // Sort all entries to have a halfway reliable output (if more entries than // retrieved ones exist, we can not reliably return the same output). output = output.sort(); } const remaining = entries.length - maxLength; if (remaining > 0) { output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); } return output; } function formatMapIterInner(ctx, recurseTimes, entries, state) { const maxArrayLength = Math.max(ctx.maxArrayLength, 0); // Entries exist as [key1, val1, key2, val2, ...] const len = entries.length / 2; const remaining = len - maxArrayLength; const maxLength = Math.min(maxArrayLength, len); let output = new Array(maxLength); let start = ''; let end = ''; let middle = ' => '; let i = 0; if (state === kMapEntries) { start = '[ '; end = ' ]'; middle = ', '; } ctx.indentationLvl += 2; for (; i < maxLength; i++) { const pos = i * 2; output[i] = `${start}${formatValue(ctx, entries[pos], recurseTimes)}` + `${middle}${formatValue(ctx, entries[pos + 1], recurseTimes)}${end}`; } ctx.indentationLvl -= 2; if (state === kWeak) { // Sort all entries to have a halfway reliable output (if more entries // than retrieved ones exist, we can not reliably return the same output). output = output.sort(); } if (remaining > 0) { output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); } return output; } function formatWeakCollection(ctx) { return [ctx.stylize('[items unknown]', 'special')]; } function formatWeakSet(ctx, value, recurseTimes) { const entries = previewEntries(value); return formatSetIterInner(ctx, recurseTimes, entries, kWeak); } function formatWeakMap(ctx, value, recurseTimes) { const entries = previewEntries(value); return formatMapIterInner(ctx, recurseTimes, entries, kWeak); } function formatSetIterator(ctx, value, recurseTimes) { const entries = previewEntries(value); return formatSetIterInner(ctx, recurseTimes, entries, kIterator); } function formatMapIterator(ctx, value, recurseTimes) { const [entries, isKeyValue] = previewEntries(value, true); if (isKeyValue) { return formatMapIterInner(ctx, recurseTimes, entries, kMapEntries); } return formatSetIterInner(ctx, recurseTimes, entries, kIterator); } function formatPromise(ctx, value, recurseTimes) { let output; const [state, result] = getPromiseDetails(value); if (state === kPending) { output = [ctx.stylize('', 'special')]; } else { // Using `formatValue` is correct here without the need to fix the // indentation level. ctx.indentationLvl += 2; const str = formatValue(ctx, result, recurseTimes); ctx.indentationLvl -= 2; output = [ state === kRejected ? `${ctx.stylize('', 'special')} ${str}` : str ]; } return output; } function formatProperty(ctx, value, recurseTimes, key, type) { let name, str; let extra = ' '; const desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key], enumerable: true }; if (desc.value !== undefined) { const diff = (type !== kObjectType || ctx.compact === false) ? 2 : 3; ctx.indentationLvl += diff; str = formatValue(ctx, desc.value, recurseTimes); if (diff === 3) { const len = ctx.colors ? removeColors(str).length : str.length; if (ctx.breakLength < len) { extra = `\n${' '.repeat(ctx.indentationLvl)}`; } } ctx.indentationLvl -= diff; } else if (desc.get !== undefined) { if (desc.set !== undefined) { str = ctx.stylize('[Getter/Setter]', 'special'); } else { str = ctx.stylize('[Getter]', 'special'); } } else if (desc.set !== undefined) { str = ctx.stylize('[Setter]', 'special'); } else { str = ctx.stylize('undefined', 'undefined'); } if (type === kArrayType) { return str; } if (typeof key === 'symbol') { const tmp = key.toString().replace(strEscapeSequencesReplacer, escapeFn); name = `[${ctx.stylize(tmp, 'symbol')}]`; } else if (desc.enumerable === false) { name = `[${key.replace(strEscapeSequencesReplacer, escapeFn)}]`; } else if (keyStrRegExp.test(key)) { name = ctx.stylize(key, 'name'); } else { name = ctx.stylize(strEscape(key), 'string'); } return `${name}:${extra}${str}`; } function reduceToSingleString(ctx, output, base, braces) { const breakLength = ctx.breakLength; let i = 0; if (ctx.compact === false) { const indentation = ' '.repeat(ctx.indentationLvl); let res = `${base ? `${base} ` : ''}${braces[0]}\n${indentation} `; for (; i < output.length - 1; i++) { res += `${output[i]},\n${indentation} `; } res += `${output[i]}\n${indentation}${braces[1]}`; return res; } if (output.length * 2 <= breakLength) { let length = 0; for (; i < output.length && length <= breakLength; i++) { if (ctx.colors) { length += removeColors(output[i]).length + 1; } else { length += output[i].length + 1; } } if (length <= breakLength) return `${braces[0]}${base ? ` ${base}` : ''} ${join(output, ', ')} ` + braces[1]; } // If the opening "brace" is too large, like in the case of "Set {", // we need to force the first item to be on the next line or the // items will not line up correctly. const indentation = ' '.repeat(ctx.indentationLvl); const ln = base === '' && braces[0].length === 1 ? ' ' : `${base ? ` ${base}` : ''}\n${indentation} `; const str = join(output, `,\n${indentation} `); return `${braces[0]}${ln}${str} ${braces[1]}`; } module.exports = { inspect }; internal/util/inspector'use strict'; const hasInspector = process.config.variables.v8_enable_inspector === 1; const inspector = hasInspector ? require('inspector') : undefined; let session; function sendInspectorCommand(cb, onError) { if (!hasInspector) return onError(); if (session === undefined) session = new inspector.Session(); try { session.connect(); try { return cb(session); } finally { session.disconnect(); } } catch { return onError(); } } module.exports = { sendInspectorCommand }; internal/util/types'use strict'; const ReflectApply = Reflect.apply; // This function is borrowed from the function with the same name on V8 Extras' // `utils` object. V8 implements Reflect.apply very efficiently in conjunction // with the spread syntax, such that no additional special case is needed for // function calls w/o arguments. // Refs: https://github.com/v8/v8/blob/d6ead37d265d7215cf9c5f768f279e21bd170212/src/js/prologue.js#L152-L156 function uncurryThis(func) { return (thisArg, ...args) => ReflectApply(func, thisArg, args); } const TypedArrayPrototype = Object.getPrototypeOf(Uint8Array.prototype); const TypedArrayProto_toStringTag = uncurryThis( Object.getOwnPropertyDescriptor(TypedArrayPrototype, Symbol.toStringTag).get); // Cached to make sure no userland code can tamper with it. const isArrayBufferView = ArrayBuffer.isView; function isTypedArray(value) { return TypedArrayProto_toStringTag(value) !== undefined; } function isUint8Array(value) { return TypedArrayProto_toStringTag(value) === 'Uint8Array'; } function isUint8ClampedArray(value) { return TypedArrayProto_toStringTag(value) === 'Uint8ClampedArray'; } function isUint16Array(value) { return TypedArrayProto_toStringTag(value) === 'Uint16Array'; } function isUint32Array(value) { return TypedArrayProto_toStringTag(value) === 'Uint32Array'; } function isInt8Array(value) { return TypedArrayProto_toStringTag(value) === 'Int8Array'; } function isInt16Array(value) { return TypedArrayProto_toStringTag(value) === 'Int16Array'; } function isInt32Array(value) { return TypedArrayProto_toStringTag(value) === 'Int32Array'; } function isFloat32Array(value) { return TypedArrayProto_toStringTag(value) === 'Float32Array'; } function isFloat64Array(value) { return TypedArrayProto_toStringTag(value) === 'Float64Array'; } function isBigInt64Array(value) { return TypedArrayProto_toStringTag(value) === 'BigInt64Array'; } function isBigUint64Array(value) { return TypedArrayProto_toStringTag(value) === 'BigUint64Array'; } module.exports = { isArrayBufferView, isTypedArray, isUint8Array, isUint8ClampedArray, isUint16Array, isUint32Array, isInt8Array, isInt16Array, isInt32Array, isFloat32Array, isFloat64Array, isBigInt64Array, isBigUint64Array }; internal/http2/core'use strict'; /* eslint-disable no-use-before-define */ const { assertCrypto, customInspectSymbol: kInspect, promisify } = require('internal/util'); assertCrypto(); const assert = require('assert'); const EventEmitter = require('events'); const fs = require('fs'); const http = require('http'); const net = require('net'); const { Duplex } = require('stream'); const tls = require('tls'); const { URL } = require('url'); const util = require('util'); const { kIncomingMessage } = require('_http_common'); const { kServerResponse } = require('_http_server'); const { StreamWrap } = require('_stream_wrap'); const { defaultTriggerAsyncIdScope, symbols: { async_id_symbol, owner_symbol, }, } = require('internal/async_hooks'); const { codes: { ERR_HTTP2_ALTSVC_INVALID_ORIGIN, ERR_HTTP2_ALTSVC_LENGTH, ERR_HTTP2_CONNECT_AUTHORITY, ERR_HTTP2_CONNECT_PATH, ERR_HTTP2_CONNECT_SCHEME, ERR_HTTP2_GOAWAY_SESSION, ERR_HTTP2_HEADERS_AFTER_RESPOND, ERR_HTTP2_HEADERS_SENT, ERR_HTTP2_INVALID_INFO_STATUS, ERR_HTTP2_INVALID_ORIGIN, ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH, ERR_HTTP2_INVALID_SESSION, ERR_HTTP2_INVALID_SETTING_VALUE, ERR_HTTP2_INVALID_STREAM, ERR_HTTP2_MAX_PENDING_SETTINGS_ACK, ERR_HTTP2_NESTED_PUSH, ERR_HTTP2_NO_SOCKET_MANIPULATION, ERR_HTTP2_ORIGIN_LENGTH, ERR_HTTP2_OUT_OF_STREAMS, ERR_HTTP2_PAYLOAD_FORBIDDEN, ERR_HTTP2_PING_CANCEL, ERR_HTTP2_PING_LENGTH, ERR_HTTP2_PUSH_DISABLED, ERR_HTTP2_SEND_FILE, ERR_HTTP2_SEND_FILE_NOSEEK, ERR_HTTP2_SESSION_ERROR, ERR_HTTP2_SETTINGS_CANCEL, ERR_HTTP2_SOCKET_BOUND, ERR_HTTP2_SOCKET_UNBOUND, ERR_HTTP2_STATUS_101, ERR_HTTP2_STATUS_INVALID, ERR_HTTP2_STREAM_CANCEL, ERR_HTTP2_STREAM_ERROR, ERR_HTTP2_STREAM_SELF_DEPENDENCY, ERR_HTTP2_TRAILERS_ALREADY_SENT, ERR_HTTP2_TRAILERS_NOT_READY, ERR_HTTP2_UNSUPPORTED_PROTOCOL, ERR_INVALID_ARG_TYPE, ERR_INVALID_CALLBACK, ERR_INVALID_CHAR, ERR_INVALID_OPT_VALUE, ERR_OUT_OF_RANGE, ERR_SOCKET_CLOSED } } = require('internal/errors'); const { validateNumber } = require('internal/validators'); const { utcDate } = require('internal/http'); const { onServerStream, Http2ServerRequest, Http2ServerResponse, } = require('internal/http2/compat'); const { assertIsObject, assertValidPseudoHeaderResponse, assertValidPseudoHeaderTrailer, assertWithinRange, getDefaultSettings, getSessionState, getSettings, getStreamState, isPayloadMeaningless, kSocket, mapToHeaders, NghttpError, sessionName, toHeaderObject, updateOptionsBuffer, updateSettingsBuffer } = require('internal/http2/util'); const { createWriteWrap, writeGeneric, writevGeneric, onStreamRead, kMaybeDestroy, kUpdateTimer } = require('internal/stream_base_commons'); const { kTimeout, setUnrefTimeout, validateTimerDuration } = require('internal/timers'); const { isArrayBufferView } = require('internal/util/types'); const { FileHandle } = process.binding('fs'); const binding = process.binding('http2'); const { ShutdownWrap } = process.binding('stream_wrap'); const { UV_EOF } = process.binding('uv'); const { StreamPipe } = internalBinding('stream_pipe'); const { _connectionListener: httpConnectionListener } = http; const debug = util.debuglog('http2'); const kMaxFrameSize = (2 ** 24) - 1; const kMaxInt = (2 ** 32) - 1; const kMaxStreams = (2 ** 31) - 1; // eslint-disable-next-line no-control-regex const kQuotedString = /^[\x09\x20-\x5b\x5d-\x7e\x80-\xff]*$/; const { constants, nameForErrorCode } = binding; const NETServer = net.Server; const TLSServer = tls.Server; const kAlpnProtocol = Symbol('alpnProtocol'); const kAuthority = Symbol('authority'); const kEncrypted = Symbol('encrypted'); const kHandle = Symbol('handle'); const kID = Symbol('id'); const kInit = Symbol('init'); const kInfoHeaders = Symbol('sent-info-headers'); const kLocalSettings = Symbol('local-settings'); const kOptions = Symbol('options'); const kOwner = owner_symbol; const kOrigin = Symbol('origin'); const kProceed = Symbol('proceed'); const kProtocol = Symbol('protocol'); const kProxySocket = Symbol('proxy-socket'); const kRemoteSettings = Symbol('remote-settings'); const kSentHeaders = Symbol('sent-headers'); const kSentTrailers = Symbol('sent-trailers'); const kServer = Symbol('server'); const kSession = Symbol('session'); const kState = Symbol('state'); const kType = Symbol('type'); const kWriteGeneric = Symbol('write-generic'); const kDefaultSocketTimeout = 2 * 60 * 1000; const { paddingBuffer, PADDING_BUF_FRAME_LENGTH, PADDING_BUF_MAX_PAYLOAD_LENGTH, PADDING_BUF_RETURN_VALUE } = binding; const { NGHTTP2_CANCEL, NGHTTP2_REFUSED_STREAM, NGHTTP2_DEFAULT_WEIGHT, NGHTTP2_FLAG_END_STREAM, NGHTTP2_HCAT_PUSH_RESPONSE, NGHTTP2_HCAT_RESPONSE, NGHTTP2_INTERNAL_ERROR, NGHTTP2_NO_ERROR, NGHTTP2_SESSION_CLIENT, NGHTTP2_SESSION_SERVER, NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE, NGHTTP2_ERR_INVALID_ARGUMENT, NGHTTP2_ERR_STREAM_CLOSED, HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_DATE, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_SCHEME, HTTP2_HEADER_STATUS, HTTP2_HEADER_CONTENT_LENGTH, NGHTTP2_SETTINGS_HEADER_TABLE_SIZE, NGHTTP2_SETTINGS_ENABLE_PUSH, NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, NGHTTP2_SETTINGS_MAX_FRAME_SIZE, NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE, HTTP2_METHOD_GET, HTTP2_METHOD_HEAD, HTTP2_METHOD_CONNECT, HTTP_STATUS_CONTINUE, HTTP_STATUS_RESET_CONTENT, HTTP_STATUS_OK, HTTP_STATUS_NO_CONTENT, HTTP_STATUS_NOT_MODIFIED, HTTP_STATUS_SWITCHING_PROTOCOLS, HTTP_STATUS_MISDIRECTED_REQUEST, STREAM_OPTION_EMPTY_PAYLOAD, STREAM_OPTION_GET_TRAILERS } = constants; const STREAM_FLAGS_PENDING = 0x0; const STREAM_FLAGS_READY = 0x1; const STREAM_FLAGS_CLOSED = 0x2; const STREAM_FLAGS_HEADERS_SENT = 0x4; const STREAM_FLAGS_HEAD_REQUEST = 0x8; const STREAM_FLAGS_ABORTED = 0x10; const STREAM_FLAGS_HAS_TRAILERS = 0x20; const SESSION_FLAGS_PENDING = 0x0; const SESSION_FLAGS_READY = 0x1; const SESSION_FLAGS_CLOSED = 0x2; const SESSION_FLAGS_DESTROYED = 0x4; // Top level to avoid creating a closure function emit(self, ...args) { self.emit(...args); } // Called when a new block of headers has been received for a given // stream. The stream may or may not be new. If the stream is new, // create the associated Http2Stream instance and emit the 'stream' // event. If the stream is not new, emit the 'headers' event to pass // the block of headers on. function onSessionHeaders(handle, id, cat, flags, headers) { const session = this[kOwner]; if (session.destroyed) return; const type = session[kType]; session[kUpdateTimer](); debug(`Http2Stream ${id} [Http2Session ` + `${sessionName(type)}]: headers received`); const streams = session[kState].streams; const endOfStream = !!(flags & NGHTTP2_FLAG_END_STREAM); let stream = streams.get(id); // Convert the array of header name value pairs into an object const obj = toHeaderObject(headers); if (stream === undefined) { if (session.closed) { // we are not accepting any new streams at this point. This callback // should not be invoked at this point in time, but just in case it is, // refuse the stream using an RST_STREAM and destroy the handle. handle.rstStream(NGHTTP2_REFUSED_STREAM); handle.destroy(); return; } const opts = { readable: !endOfStream }; // session[kType] can be only one of two possible values if (type === NGHTTP2_SESSION_SERVER) { stream = new ServerHttp2Stream(session, handle, id, opts, obj); if (obj[HTTP2_HEADER_METHOD] === HTTP2_METHOD_HEAD) { // For head requests, there must not be a body... // end the writable side immediately. stream.end(); stream[kState].flags |= STREAM_FLAGS_HEAD_REQUEST; } } else { stream = new ClientHttp2Stream(session, handle, id, opts); stream.end(); } if (endOfStream) stream[kState].endAfterHeaders = true; process.nextTick(emit, session, 'stream', stream, obj, flags, headers); } else { let event; const status = obj[HTTP2_HEADER_STATUS]; if (cat === NGHTTP2_HCAT_RESPONSE) { if (!endOfStream && status !== undefined && status >= 100 && status < 200) { event = 'headers'; } else { event = 'response'; } } else if (cat === NGHTTP2_HCAT_PUSH_RESPONSE) { event = 'push'; // cat === NGHTTP2_HCAT_HEADERS: } else if (!endOfStream && status !== undefined && status >= 200) { event = 'response'; } else { event = endOfStream ? 'trailers' : 'headers'; } const session = stream.session; if (status === HTTP_STATUS_MISDIRECTED_REQUEST) { const originSet = session[kState].originSet = initOriginSet(session); originSet.delete(stream[kOrigin]); } debug(`Http2Stream ${id} [Http2Session ` + `${sessionName(type)}]: emitting stream '${event}' event`); process.nextTick(emit, stream, event, obj, flags, headers); } if (endOfStream) { stream.push(null); } } function tryClose(fd) { // Try to close the file descriptor. If closing fails, assert because // an error really should not happen at this point. fs.close(fd, (err) => assert.ifError(err)); } // Called when the Http2Stream has finished sending data and is ready for // trailers to be sent. This will only be called if the { hasOptions: true } // option is set. function onStreamTrailers() { const stream = this[kOwner]; stream[kState].trailersReady = true; if (stream.destroyed || stream.closed) return; if (!stream.emit('wantTrailers')) { // There are no listeners, send empty trailing HEADERS frame and close. stream.sendTrailers({}); } } // Submit an RST-STREAM frame to be sent to the remote peer. // This will cause the Http2Stream to be closed. function submitRstStream(code) { if (this[kHandle] !== undefined) { this[kHandle].rstStream(code); } } function onPing(payload) { const session = this[kOwner]; if (session.destroyed) return; session[kUpdateTimer](); debug(`Http2Session ${sessionName(session[kType])}: new ping received`); session.emit('ping', payload); } // Called when the stream is closed either by sending or receiving an // RST_STREAM frame, or through a natural end-of-stream. // If the writable and readable sides of the stream are still open at this // point, close them. If there is an open fd for file send, close that also. // At this point the underlying node::http2:Http2Stream handle is no // longer usable so destroy it also. function onStreamClose(code) { const stream = this[kOwner]; if (stream.destroyed) return; debug(`Http2Stream ${stream[kID]} [Http2Session ` + `${sessionName(stream[kSession][kType])}]: closed with code ${code}`); if (!stream.closed) closeStream(stream, code, kNoRstStream); stream[kState].fd = -1; // Defer destroy we actually emit end. if (!stream.readable || code !== NGHTTP2_NO_ERROR) { // If errored or ended, we can destroy immediately. stream[kMaybeDestroy](code); } else { // Wait for end to destroy. stream.on('end', stream[kMaybeDestroy]); // Push a null so the stream can end whenever the client consumes // it completely. stream.push(null); // If the user hasn't tried to consume the stream (and this is a server // session) then just dump the incoming data so that the stream can // be destroyed. if (stream[kSession][kType] === NGHTTP2_SESSION_SERVER && !stream[kState].didRead && stream.readableFlowing === null) stream.resume(); else stream.read(0); } } // Called when the remote peer settings have been updated. // Resets the cached settings. function onSettings() { const session = this[kOwner]; if (session.destroyed) return; session[kUpdateTimer](); debug(`Http2Session ${sessionName(session[kType])}: new settings received`); session[kRemoteSettings] = undefined; session.emit('remoteSettings', session.remoteSettings); } // If the stream exists, an attempt will be made to emit an event // on the stream object itself. Otherwise, forward it on to the // session (which may, in turn, forward it on to the server) function onPriority(id, parent, weight, exclusive) { const session = this[kOwner]; if (session.destroyed) return; debug(`Http2Stream ${id} [Http2Session ` + `${sessionName(session[kType])}]: priority [parent: ${parent}, ` + `weight: ${weight}, exclusive: ${exclusive}]`); const emitter = session[kState].streams.get(id) || session; if (!emitter.destroyed) { emitter[kUpdateTimer](); emitter.emit('priority', id, parent, weight, exclusive); } } // Called by the native layer when an error has occurred sending a // frame. This should be exceedingly rare. function onFrameError(id, type, code) { const session = this[kOwner]; if (session.destroyed) return; debug(`Http2Session ${sessionName(session[kType])}: error sending frame ` + `type ${type} on stream ${id}, code: ${code}`); const emitter = session[kState].streams.get(id) || session; emitter[kUpdateTimer](); emitter.emit('frameError', type, code, id); } function onAltSvc(stream, origin, alt) { const session = this[kOwner]; if (session.destroyed) return; debug(`Http2Session ${sessionName(session[kType])}: altsvc received: ` + `stream: ${stream}, origin: ${origin}, alt: ${alt}`); session[kUpdateTimer](); session.emit('altsvc', alt, origin, stream); } function initOriginSet(session) { let originSet = session[kState].originSet; if (originSet === undefined) { const socket = session[kSocket]; session[kState].originSet = originSet = new Set(); if (socket.servername != null) { let originString = `https://${socket.servername}`; if (socket.remotePort != null) originString += `:${socket.remotePort}`; // We have to ensure that it is a properly serialized // ASCII origin string. The socket.servername might not // be properly ASCII encoded. originSet.add((new URL(originString)).origin); } } return originSet; } function onOrigin(origins) { const session = this[kOwner]; if (session.destroyed) return; debug(`Http2Session ${sessionName(session[kType])}: origin received: ` + `${origins.join(', ')}`); session[kUpdateTimer](); if (!session.encrypted || session.destroyed) return undefined; const originSet = initOriginSet(session); for (var n = 0; n < origins.length; n++) originSet.add(origins[n]); session.emit('origin', origins); } // Receiving a GOAWAY frame from the connected peer is a signal that no // new streams should be created. If the code === NGHTTP2_NO_ERROR, we // are going to send our close, but allow existing frames to close // normally. If code !== NGHTTP2_NO_ERROR, we are going to send our own // close using the same code then destroy the session with an error. // The goaway event will be emitted on next tick. function onGoawayData(code, lastStreamID, buf) { const session = this[kOwner]; if (session.destroyed) return; debug(`Http2Session ${sessionName(session[kType])}: goaway ${code} ` + `received [last stream id: ${lastStreamID}]`); const state = session[kState]; state.goawayCode = code; state.goawayLastStreamID = lastStreamID; session.emit('goaway', code, lastStreamID, buf); if (code === NGHTTP2_NO_ERROR) { // If this is a no error goaway, begin shutting down. // No new streams permitted, but existing streams may // close naturally on their own. session.close(); } else { // However, if the code is not NGHTTP_NO_ERROR, destroy the // session immediately. We destroy with an error but send a // goaway using NGHTTP2_NO_ERROR because there was no error // condition on this side of the session that caused the // shutdown. session.destroy(new ERR_HTTP2_SESSION_ERROR(code), NGHTTP2_NO_ERROR); } } // Returns the padding to use per frame. The selectPadding callback is set // on the options. It is invoked with two arguments, the frameLen, and the // maxPayloadLen. The method must return a numeric value within the range // frameLen <= n <= maxPayloadLen. function onSelectPadding(fn) { return function getPadding() { const frameLen = paddingBuffer[PADDING_BUF_FRAME_LENGTH]; const maxFramePayloadLen = paddingBuffer[PADDING_BUF_MAX_PAYLOAD_LENGTH]; paddingBuffer[PADDING_BUF_RETURN_VALUE] = fn(frameLen, maxFramePayloadLen); }; } // When a ClientHttp2Session is first created, the socket may not yet be // connected. If request() is called during this time, the actual request // will be deferred until the socket is ready to go. function requestOnConnect(headers, options) { const session = this[kSession]; // At this point, the stream should have already been destroyed during // the session.destroy() method. Do nothing else. if (session === undefined || session.destroyed) return; // If the session was closed while waiting for the connect, destroy // the stream and do not continue with the request. if (session.closed) { const err = new ERR_HTTP2_GOAWAY_SESSION(); this.destroy(err); return; } debug(`Http2Session ${sessionName(session[kType])}: connected, ` + 'initializing request'); let streamOptions = 0; if (options.endStream) streamOptions |= STREAM_OPTION_EMPTY_PAYLOAD; if (options.waitForTrailers) streamOptions |= STREAM_OPTION_GET_TRAILERS; // ret will be either the reserved stream ID (if positive) // or an error code (if negative) const ret = session[kHandle].request(headers, streamOptions, options.parent | 0, options.weight | 0, !!options.exclusive); // In an error condition, one of three possible response codes will be // possible: // * NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE - Maximum stream ID is reached, this // is fatal for the session // * NGHTTP2_ERR_INVALID_ARGUMENT - Stream was made dependent on itself, this // impacts on this stream. // For the first two, emit the error on the session, // For the third, emit the error on the stream, it will bubble up to the // session if not handled. if (typeof ret === 'number') { let err; switch (ret) { case NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE: err = new ERR_HTTP2_OUT_OF_STREAMS(); this.destroy(err); break; case NGHTTP2_ERR_INVALID_ARGUMENT: err = new ERR_HTTP2_STREAM_SELF_DEPENDENCY(); this.destroy(err); break; default: session.destroy(new NghttpError(ret)); } return; } this[kInit](ret.id(), ret); } // Validates that priority options are correct, specifically: // 1. options.weight must be a number // 2. options.parent must be a positive number // 3. options.exclusive must be a boolean // 4. if specified, options.silent must be a boolean // // Also sets the default priority options if they are not set. function validatePriorityOptions(options) { let err; if (options.weight === undefined) { options.weight = NGHTTP2_DEFAULT_WEIGHT; } else if (typeof options.weight !== 'number') { err = new ERR_INVALID_OPT_VALUE('weight', options.weight); } if (options.parent === undefined) { options.parent = 0; } else if (typeof options.parent !== 'number' || options.parent < 0) { err = new ERR_INVALID_OPT_VALUE('parent', options.parent); } if (options.exclusive === undefined) { options.exclusive = false; } else if (typeof options.exclusive !== 'boolean') { err = new ERR_INVALID_OPT_VALUE('exclusive', options.exclusive); } if (options.silent === undefined) { options.silent = false; } else if (typeof options.silent !== 'boolean') { err = new ERR_INVALID_OPT_VALUE('silent', options.silent); } if (err) { Error.captureStackTrace(err, validatePriorityOptions); throw err; } } // When an error occurs internally at the binding level, immediately // destroy the session. function onSessionInternalError(code) { if (this[kOwner] !== undefined) this[kOwner].destroy(new NghttpError(code)); } function settingsCallback(cb, ack, duration) { this[kState].pendingAck--; this[kLocalSettings] = undefined; if (ack) { debug(`Http2Session ${sessionName(this[kType])}: settings received`); const settings = this.localSettings; if (typeof cb === 'function') cb(null, settings, duration); this.emit('localSettings', settings); } else { debug(`Http2Session ${sessionName(this[kType])}: settings canceled`); if (typeof cb === 'function') cb(new ERR_HTTP2_SETTINGS_CANCEL()); } } // Submits a SETTINGS frame to be sent to the remote peer. function submitSettings(settings, callback) { if (this.destroyed) return; debug(`Http2Session ${sessionName(this[kType])}: submitting settings`); this[kUpdateTimer](); updateSettingsBuffer(settings); if (!this[kHandle].settings(settingsCallback.bind(this, callback))) { this.destroy(new ERR_HTTP2_MAX_PENDING_SETTINGS_ACK()); } } // Submits a PRIORITY frame to be sent to the remote peer // Note: If the silent option is true, the change will be made // locally with no PRIORITY frame sent. function submitPriority(options) { if (this.destroyed) return; this[kUpdateTimer](); // If the parent is the id, do nothing because a // stream cannot be made to depend on itself. if (options.parent === this[kID]) return; this[kHandle].priority(options.parent | 0, options.weight | 0, !!options.exclusive, !!options.silent); } // Submit a GOAWAY frame to be sent to the remote peer. // If the lastStreamID is set to <= 0, then the lastProcStreamID will // be used. The opaqueData must either be a typed array or undefined // (which will be checked elsewhere). function submitGoaway(code, lastStreamID, opaqueData) { if (this.destroyed) return; debug(`Http2Session ${sessionName(this[kType])}: submitting goaway`); this[kUpdateTimer](); this[kHandle].goaway(code, lastStreamID, opaqueData); } const proxySocketHandler = { get(session, prop) { switch (prop) { case 'setTimeout': case 'ref': case 'unref': return session[prop].bind(session); case 'destroy': case 'emit': case 'end': case 'pause': case 'read': case 'resume': case 'write': case 'setEncoding': case 'setKeepAlive': case 'setNoDelay': throw new ERR_HTTP2_NO_SOCKET_MANIPULATION(); default: const socket = session[kSocket]; if (socket === undefined) throw new ERR_HTTP2_SOCKET_UNBOUND(); const value = socket[prop]; return typeof value === 'function' ? value.bind(socket) : value; } }, getPrototypeOf(session) { const socket = session[kSocket]; if (socket === undefined) throw new ERR_HTTP2_SOCKET_UNBOUND(); return Reflect.getPrototypeOf(socket); }, set(session, prop, value) { switch (prop) { case 'setTimeout': case 'ref': case 'unref': session[prop] = value; return true; case 'destroy': case 'emit': case 'end': case 'pause': case 'read': case 'resume': case 'write': case 'setEncoding': case 'setKeepAlive': case 'setNoDelay': throw new ERR_HTTP2_NO_SOCKET_MANIPULATION(); default: const socket = session[kSocket]; if (socket === undefined) throw new ERR_HTTP2_SOCKET_UNBOUND(); socket[prop] = value; return true; } } }; // pingCallback() returns a function that is invoked when an HTTP2 PING // frame acknowledgement is received. The ack is either true or false to // indicate if the ping was successful or not. The duration indicates the // number of milliseconds elapsed since the ping was sent and the ack // received. The payload is a Buffer containing the 8 bytes of payload // data received on the PING acknowledgement. function pingCallback(cb) { return function pingCallback(ack, duration, payload) { if (ack) { cb(null, duration, payload); } else { cb(new ERR_HTTP2_PING_CANCEL()); } }; } // Validates the values in a settings object. Specifically: // 1. headerTableSize must be a number in the range 0 <= n <= kMaxInt // 2. initialWindowSize must be a number in the range 0 <= n <= kMaxInt // 3. maxFrameSize must be a number in the range 16384 <= n <= kMaxFrameSize // 4. maxConcurrentStreams must be a number in the range 0 <= n <= kMaxStreams // 5. maxHeaderListSize must be a number in the range 0 <= n <= kMaxInt // 6. enablePush must be a boolean // All settings are optional and may be left undefined function validateSettings(settings) { settings = Object.assign({}, settings); assertWithinRange('headerTableSize', settings.headerTableSize, 0, kMaxInt); assertWithinRange('initialWindowSize', settings.initialWindowSize, 0, kMaxInt); assertWithinRange('maxFrameSize', settings.maxFrameSize, 16384, kMaxFrameSize); assertWithinRange('maxConcurrentStreams', settings.maxConcurrentStreams, 0, kMaxStreams); assertWithinRange('maxHeaderListSize', settings.maxHeaderListSize, 0, kMaxInt); if (settings.enablePush !== undefined && typeof settings.enablePush !== 'boolean') { const err = new ERR_HTTP2_INVALID_SETTING_VALUE('enablePush', settings.enablePush); err.actual = settings.enablePush; Error.captureStackTrace(err, 'validateSettings'); throw err; } return settings; } // Creates the internal binding.Http2Session handle for an Http2Session // instance. This occurs only after the socket connection has been // established. Note: the binding.Http2Session will take over ownership // of the socket. No other code should read from or write to the socket. function setupHandle(socket, type, options) { // If the session has been destroyed, go ahead and emit 'connect', // but do nothing else. The various on('connect') handlers set by // core will check for session.destroyed before progressing, this // ensures that those at l`east get cleared out. if (this.destroyed) { process.nextTick(emit, this, 'connect', this, socket); return; } debug(`Http2Session ${sessionName(type)}: setting up session handle`); this[kState].flags |= SESSION_FLAGS_READY; updateOptionsBuffer(options); const handle = new binding.Http2Session(type); handle[kOwner] = this; handle.error = onSessionInternalError; handle.onpriority = onPriority; handle.onsettings = onSettings; handle.onping = onPing; handle.onheaders = onSessionHeaders; handle.onframeerror = onFrameError; handle.ongoawaydata = onGoawayData; handle.onaltsvc = onAltSvc; handle.onorigin = onOrigin; if (typeof options.selectPadding === 'function') handle.ongetpadding = onSelectPadding(options.selectPadding); assert(socket._handle !== undefined, 'Internal HTTP/2 Failure. The socket is not connected. Please ' + 'report this as a bug in Node.js'); handle.consume(socket._handle._externalStream); this[kHandle] = handle; if (socket.encrypted) { this[kAlpnProtocol] = socket.alpnProtocol; this[kEncrypted] = true; } else { // 'h2c' is the protocol identifier for HTTP/2 over plain-text. We use // it here to identify any session that is not explicitly using an // encrypted socket. this[kAlpnProtocol] = 'h2c'; this[kEncrypted] = false; } const settings = typeof options.settings === 'object' ? options.settings : {}; this.settings(settings); if (type === NGHTTP2_SESSION_SERVER && Array.isArray(options.origins)) { this.origin(...options.origins); } process.nextTick(emit, this, 'connect', this, socket); } // Emits a close event followed by an error event if err is truthy. Used // by Http2Session.prototype.destroy() function emitClose(self, error) { if (error) self.emit('error', error); self.emit('close'); } function finishSessionDestroy(session, error) { const socket = session[kSocket]; if (!socket.destroyed) socket.destroy(error); session[kProxySocket] = undefined; session[kSocket] = undefined; session[kHandle] = undefined; socket[kSession] = undefined; socket[kServer] = undefined; // Finally, emit the close and error events (if necessary) on next tick. process.nextTick(emitClose, session, error); } // Upon creation, the Http2Session takes ownership of the socket. The session // may not be ready to use immediately if the socket is not yet fully connected. // In that case, the Http2Session will wait for the socket to connect. Once // the Http2Session is ready, it will emit its own 'connect' event. // // The Http2Session.goaway() method will send a GOAWAY frame, signalling // to the connected peer that a shutdown is in progress. Sending a goaway // frame has no other effect, however. // // Receiving a GOAWAY frame will cause the Http2Session to first emit a 'goaway' // event notifying the user that a shutdown is in progress. If the goaway // error code equals 0 (NGHTTP2_NO_ERROR), session.close() will be called, // causing the Http2Session to send its own GOAWAY frame and switch itself // into a graceful closing state. In this state, new inbound or outbound // Http2Streams will be rejected. Existing *pending* streams (those created // but without an assigned stream ID or handle) will be destroyed with a // cancel error. Existing open streams will be permitted to complete on their // own. Once all existing streams close, session.destroy() will be called // automatically. // // Calling session.destroy() will tear down the Http2Session immediately, // making it no longer usable. Pending and existing streams will be destroyed. // The bound socket will be destroyed. Once all resources have been freed up, // the 'close' event will be emitted. Note that pending streams will be // destroyed using a specific "ERR_HTTP2_STREAM_CANCEL" error. Existing open // streams will be destroyed using the same error passed to session.destroy() // // If destroy is called with an error, an 'error' event will be emitted // immediately following the 'close' event. // // The socket and Http2Session lifecycles are tightly bound. Once one is // destroyed, the other should also be destroyed. When the socket is destroyed // with an error, session.destroy() will be called with that same error. // Likewise, when session.destroy() is called with an error, the same error // will be sent to the socket. class Http2Session extends EventEmitter { constructor(type, options, socket) { super(); if (!socket._handle || !socket._handle._externalStream) { socket = new StreamWrap(socket); } // No validation is performed on the input parameters because this // constructor is not exported directly for users. // If the session property already exists on the socket, // then it has already been bound to an Http2Session instance // and cannot be attached again. if (socket[kSession] !== undefined) throw new ERR_HTTP2_SOCKET_BOUND(); socket[kSession] = this; this[kState] = { flags: SESSION_FLAGS_PENDING, goawayCode: null, goawayLastStreamID: null, streams: new Map(), pendingStreams: new Set(), pendingAck: 0, writeQueueSize: 0, originSet: undefined }; this[kEncrypted] = undefined; this[kAlpnProtocol] = undefined; this[kType] = type; this[kProxySocket] = null; this[kSocket] = socket; this[kTimeout] = null; // Do not use nagle's algorithm if (typeof socket.setNoDelay === 'function') socket.setNoDelay(); // Disable TLS renegotiation on the socket if (typeof socket.disableRenegotiation === 'function') socket.disableRenegotiation(); const setupFn = setupHandle.bind(this, socket, type, options); if (socket.connecting) { const connectEvent = socket instanceof tls.TLSSocket ? 'secureConnect' : 'connect'; socket.once(connectEvent, setupFn); } else { setupFn(); } debug(`Http2Session ${sessionName(type)}: created`); } // Returns undefined if the socket is not yet connected, true if the // socket is a TLSSocket, and false if it is not. get encrypted() { return this[kEncrypted]; } // Returns undefined if the socket is not yet connected, `h2` if the // socket is a TLSSocket and the alpnProtocol is `h2`, or `h2c` if the // socket is not a TLSSocket. get alpnProtocol() { return this[kAlpnProtocol]; } // TODO(jasnell): originSet is being added in preparation for ORIGIN frame // support. At the current time, the ORIGIN frame specification is awaiting // publication as an RFC and is awaiting implementation in nghttp2. Once // added, an ORIGIN frame will add to the origins included in the origin // set. 421 responses will remove origins from the set. get originSet() { if (!this.encrypted || this.destroyed) return undefined; return Array.from(initOriginSet(this)); } // True if the Http2Session is still waiting for the socket to connect get connecting() { return (this[kState].flags & SESSION_FLAGS_READY) === 0; } // True if Http2Session.prototype.close() has been called get closed() { return !!(this[kState].flags & SESSION_FLAGS_CLOSED); } // True if Http2Session.prototype.destroy() has been called get destroyed() { return !!(this[kState].flags & SESSION_FLAGS_DESTROYED); } // Resets the timeout counter [kUpdateTimer]() { if (this.destroyed) return; if (this[kTimeout]) this[kTimeout].refresh(); } // Sets the id of the next stream to be created by this Http2Session. // The value must be a number in the range 0 <= n <= kMaxStreams. The // value also needs to be larger than the current next stream ID. setNextStreamID(id) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); validateNumber(id, 'id'); if (id <= 0 || id > kMaxStreams) throw new ERR_OUT_OF_RANGE('id', `> 0 and <= ${kMaxStreams}`, id); this[kHandle].setNextStreamID(id); } // If ping is called while we are still connecting, or after close() has // been called, the ping callback will be invoked immediately will a ping // cancelled error and a duration of 0.0. ping(payload, callback) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); if (typeof payload === 'function') { callback = payload; payload = undefined; } if (payload && !isArrayBufferView(payload)) { throw new ERR_INVALID_ARG_TYPE('payload', ['Buffer', 'TypedArray', 'DataView'], payload); } if (payload && payload.length !== 8) { throw new ERR_HTTP2_PING_LENGTH(); } if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); const cb = pingCallback(callback); if (this.connecting || this.closed) { process.nextTick(cb, false, 0.0, payload); return; } return this[kHandle].ping(payload, cb); } [kInspect](depth, opts) { const obj = { type: this[kType], closed: this.closed, destroyed: this.destroyed, state: this.state, localSettings: this.localSettings, remoteSettings: this.remoteSettings }; return `Http2Session ${util.format(obj)}`; } // The socket owned by this session get socket() { const proxySocket = this[kProxySocket]; if (proxySocket === null) return this[kProxySocket] = new Proxy(this, proxySocketHandler); return proxySocket; } // The session type get type() { return this[kType]; } // If a GOAWAY frame has been received, gives the error code specified get goawayCode() { return this[kState].goawayCode || NGHTTP2_NO_ERROR; } // If a GOAWAY frame has been received, gives the last stream ID reported get goawayLastStreamID() { return this[kState].goawayLastStreamID || 0; } // true if the Http2Session is waiting for a settings acknowledgement get pendingSettingsAck() { return this[kState].pendingAck > 0; } // Retrieves state information for the Http2Session get state() { return this.connecting || this.destroyed ? {} : getSessionState(this[kHandle]); } // The settings currently in effect for the local peer. These will // be updated only when a settings acknowledgement has been received. get localSettings() { const settings = this[kLocalSettings]; if (settings !== undefined) return settings; if (this.destroyed || this.connecting) return {}; return this[kLocalSettings] = getSettings(this[kHandle], false); // Local } // The settings currently in effect for the remote peer. get remoteSettings() { const settings = this[kRemoteSettings]; if (settings !== undefined) return settings; if (this.destroyed || this.connecting) return {}; return this[kRemoteSettings] = getSettings(this[kHandle], true); // Remote } // Submits a SETTINGS frame to be sent to the remote peer. settings(settings, callback) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); assertIsObject(settings, 'settings'); settings = validateSettings(settings); if (callback && typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); debug(`Http2Session ${sessionName(this[kType])}: sending settings`); this[kState].pendingAck++; const settingsFn = submitSettings.bind(this, settings, callback); if (this.connecting) { this.once('connect', settingsFn); return; } settingsFn(); } // Sumits a GOAWAY frame to be sent to the remote peer. Note that this // is only a notification, and does not affect the usable state of the // session with the notable exception that new incoming streams will // be rejected automatically. goaway(code = NGHTTP2_NO_ERROR, lastStreamID = 0, opaqueData) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); if (opaqueData !== undefined && !isArrayBufferView(opaqueData)) { throw new ERR_INVALID_ARG_TYPE('opaqueData', ['Buffer', 'TypedArray', 'DataView'], opaqueData); } validateNumber(code, 'code'); validateNumber(lastStreamID, 'lastStreamID'); const goawayFn = submitGoaway.bind(this, code, lastStreamID, opaqueData); if (this.connecting) { this.once('connect', goawayFn); return; } goawayFn(); } // Destroy the Http2Session, making it no longer usable and cancelling // any pending activity. destroy(error = NGHTTP2_NO_ERROR, code) { if (this.destroyed) return; debug(`Http2Session ${sessionName(this[kType])}: destroying`); if (typeof error === 'number') { code = error; error = code !== NGHTTP2_NO_ERROR ? new ERR_HTTP2_SESSION_ERROR(code) : undefined; } if (code === undefined && error != null) code = NGHTTP2_INTERNAL_ERROR; const state = this[kState]; state.flags |= SESSION_FLAGS_DESTROYED; // Clear timeout and remove timeout listeners this.setTimeout(0); this.removeAllListeners('timeout'); // Destroy any pending and open streams const cancel = new ERR_HTTP2_STREAM_CANCEL(); if (error) { cancel.cause = error; if (typeof error.message === 'string') cancel.message += ` (caused by: ${error.message})`; } state.pendingStreams.forEach((stream) => stream.destroy(cancel)); state.streams.forEach((stream) => stream.destroy(error)); // Disassociate from the socket and server const socket = this[kSocket]; const handle = this[kHandle]; // Destroy the handle if it exists at this point if (handle !== undefined) handle.destroy(code, socket.destroyed); // If the socket is alive, use setImmediate to destroy the session on the // next iteration of the event loop in order to give data time to transmit. // Otherwise, destroy immediately. if (!socket.destroyed) setImmediate(finishSessionDestroy, this, error); else finishSessionDestroy(this, error); } // Closing the session will: // 1. Send a goaway frame // 2. Mark the session as closed // 3. Prevent new inbound or outbound streams from being opened // 4. Optionally register a 'close' event handler // 5. Will cause the session to automatically destroy after the // last currently open Http2Stream closes. // // Close always assumes a good, non-error shutdown (NGHTTP_NO_ERROR) // // If the session has not connected yet, the closed flag will still be // set but the goaway will not be sent until after the connect event // is emitted. close(callback) { if (this.closed || this.destroyed) return; debug(`Http2Session ${sessionName(this[kType])}: marking session closed`); this[kState].flags |= SESSION_FLAGS_CLOSED; if (typeof callback === 'function') this.once('close', callback); this.goaway(); this[kMaybeDestroy](); } // Destroy the session if: // * error is not undefined/null // * session is closed and there are no more pending or open streams [kMaybeDestroy](error) { if (error == null) { const state = this[kState]; // Do not destroy if we're not closed and there are pending/open streams if (!this.closed || state.streams.size > 0 || state.pendingStreams.size > 0) { return; } } this.destroy(error); } _onTimeout() { // If the session is destroyed, this should never actually be invoked, // but just in case... if (this.destroyed) return; // This checks whether a write is currently in progress and also whether // that write is actually sending data across the write. The kHandle // stored `chunksSentSinceLastWrite` is only updated when a timeout event // happens, meaning that if a write is ongoing it should never equal the // newly fetched, updated value. if (this[kState].writeQueueSize > 0) { const handle = this[kHandle]; const chunksSentSinceLastWrite = handle !== undefined ? handle.chunksSentSinceLastWrite : null; if (chunksSentSinceLastWrite !== null && chunksSentSinceLastWrite !== handle.updateChunksSent()) { this[kUpdateTimer](); return; } } this.emit('timeout'); } ref() { if (this[kSocket]) { this[kSocket].ref(); } } unref() { if (this[kSocket]) { this[kSocket].unref(); } } } // ServerHttp2Session instances should never have to wait for the socket // to connect as they are always created after the socket has already been // established. class ServerHttp2Session extends Http2Session { constructor(options, socket, server) { super(NGHTTP2_SESSION_SERVER, options, socket); this[kServer] = server; } get server() { return this[kServer]; } // Submits an altsvc frame to be sent to the client. `stream` is a // numeric Stream ID. origin is a URL string that will be used to get // the origin. alt is a string containing the altsvc details. No fancy // API is provided for that. altsvc(alt, originOrStream) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); let stream = 0; let origin; if (typeof originOrStream === 'string') { origin = (new URL(originOrStream)).origin; if (origin === 'null') throw new ERR_HTTP2_ALTSVC_INVALID_ORIGIN(); } else if (typeof originOrStream === 'number') { if (originOrStream >>> 0 !== originOrStream || originOrStream === 0) { throw new ERR_OUT_OF_RANGE('originOrStream', `> 0 && < ${2 ** 32}`, originOrStream); } stream = originOrStream; } else if (originOrStream !== undefined) { // Allow origin to be passed a URL or object with origin property if (originOrStream !== null && typeof originOrStream === 'object') origin = originOrStream.origin; // Note: if originOrStream is an object with an origin property other // than a URL, then it is possible that origin will be malformed. // We do not verify that here. Users who go that route need to // ensure they are doing the right thing or the payload data will // be invalid. if (typeof origin !== 'string') { throw new ERR_INVALID_ARG_TYPE('originOrStream', ['string', 'number', 'URL', 'object'], originOrStream); } else if (origin === 'null' || origin.length === 0) { throw new ERR_HTTP2_ALTSVC_INVALID_ORIGIN(); } } if (typeof alt !== 'string') throw new ERR_INVALID_ARG_TYPE('alt', 'string', alt); if (!kQuotedString.test(alt)) throw new ERR_INVALID_CHAR('alt'); // Max length permitted for ALTSVC if ((alt.length + (origin !== undefined ? origin.length : 0)) > 16382) throw new ERR_HTTP2_ALTSVC_LENGTH(); this[kHandle].altsvc(stream, origin || '', alt); } // Submits an origin frame to be sent. origin(...origins) { if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); if (origins.length === 0) return; let arr = ''; let len = 0; const count = origins.length; for (var i = 0; i < count; i++) { let origin = origins[i]; if (typeof origin === 'string') { origin = (new URL(origin)).origin; } else if (origin != null && typeof origin === 'object') { origin = origin.origin; } if (typeof origin !== 'string') throw new ERR_INVALID_ARG_TYPE('origin', 'string', origin); if (origin === 'null') throw new ERR_HTTP2_INVALID_ORIGIN(); arr += `${origin}\0`; len += origin.length; } if (len > 16382) throw new ERR_HTTP2_ORIGIN_LENGTH(); this[kHandle].origin(arr, count); } } // ClientHttp2Session instances have to wait for the socket to connect after // they have been created. Various operations such as request() may be used, // but the actual protocol communication will only occur after the socket // has been connected. class ClientHttp2Session extends Http2Session { constructor(options, socket) { super(NGHTTP2_SESSION_CLIENT, options, socket); } // Submits a new HTTP2 request to the connected peer. Returns the // associated Http2Stream instance. request(headers, options) { debug(`Http2Session ${sessionName(this[kType])}: initiating request`); if (this.destroyed) throw new ERR_HTTP2_INVALID_SESSION(); if (this.closed) throw new ERR_HTTP2_GOAWAY_SESSION(); this[kUpdateTimer](); assertIsObject(headers, 'headers'); assertIsObject(options, 'options'); headers = Object.assign(Object.create(null), headers); options = Object.assign({}, options); if (headers[HTTP2_HEADER_METHOD] === undefined) headers[HTTP2_HEADER_METHOD] = HTTP2_METHOD_GET; const connect = headers[HTTP2_HEADER_METHOD] === HTTP2_METHOD_CONNECT; if (!connect || headers[HTTP2_HEADER_PROTOCOL] !== undefined) { if (headers[HTTP2_HEADER_AUTHORITY] === undefined) headers[HTTP2_HEADER_AUTHORITY] = this[kAuthority]; if (headers[HTTP2_HEADER_SCHEME] === undefined) headers[HTTP2_HEADER_SCHEME] = this[kProtocol].slice(0, -1); if (headers[HTTP2_HEADER_PATH] === undefined) headers[HTTP2_HEADER_PATH] = '/'; } else { if (headers[HTTP2_HEADER_AUTHORITY] === undefined) throw new ERR_HTTP2_CONNECT_AUTHORITY(); if (headers[HTTP2_HEADER_SCHEME] !== undefined) throw new ERR_HTTP2_CONNECT_SCHEME(); if (headers[HTTP2_HEADER_PATH] !== undefined) throw new ERR_HTTP2_CONNECT_PATH(); } validatePriorityOptions(options); if (options.endStream === undefined) { // For some methods, we know that a payload is meaningless, so end the // stream by default if the user has not specifically indicated a // preference. options.endStream = isPayloadMeaningless(headers[HTTP2_HEADER_METHOD]); } else if (typeof options.endStream !== 'boolean') { throw new ERR_INVALID_OPT_VALUE('endStream', options.endStream); } const headersList = mapToHeaders(headers); if (!Array.isArray(headersList)) throw headersList; const stream = new ClientHttp2Stream(this, undefined, undefined, {}); stream[kSentHeaders] = headers; stream[kOrigin] = `${headers[HTTP2_HEADER_SCHEME]}://` + `${headers[HTTP2_HEADER_AUTHORITY]}`; // Close the writable side of the stream if options.endStream is set. if (options.endStream) stream.end(); if (options.waitForTrailers) stream[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; const onConnect = requestOnConnect.bind(stream, headersList, options); if (this.connecting) { this.once('connect', onConnect); } else { onConnect(); } return stream; } } function trackWriteState(stream, bytes) { const session = stream[kSession]; stream[kState].writeQueueSize += bytes; session[kState].writeQueueSize += bytes; session[kHandle].chunksSentSinceLastWrite = 0; } function afterDoStreamWrite(status, handle) { const stream = handle[kOwner]; const session = stream[kSession]; stream[kUpdateTimer](); const { bytes } = this; stream[kState].writeQueueSize -= bytes; if (session !== undefined) session[kState].writeQueueSize -= bytes; if (typeof this.callback === 'function') this.callback(null); } function streamOnResume() { if (!this.destroyed) this[kHandle].readStart(); } function streamOnPause() { if (!this.destroyed && !this.pending) this[kHandle].readStop(); } function afterShutdown() { this.callback(); const stream = this.handle[kOwner]; if (stream) stream[kMaybeDestroy](); } function finishSendTrailers(stream, headersList) { // The stream might be destroyed and in that case // there is nothing to do. // This can happen because finishSendTrailers is // scheduled via setImmediate. if (stream.destroyed) { return; } stream[kState].flags &= ~STREAM_FLAGS_HAS_TRAILERS; const ret = stream[kHandle].trailers(headersList); if (ret < 0) stream.destroy(new NghttpError(ret)); else stream[kMaybeDestroy](); } const kNoRstStream = 0; const kSubmitRstStream = 1; const kForceRstStream = 2; function closeStream(stream, code, rstStreamStatus = kSubmitRstStream) { const state = stream[kState]; state.flags |= STREAM_FLAGS_CLOSED; state.rstCode = code; // Clear timeout and remove timeout listeners stream.setTimeout(0); stream.removeAllListeners('timeout'); const { ending, finished } = stream._writableState; if (!ending) { // If the writable side of the Http2Stream is still open, emit the // 'aborted' event and set the aborted flag. if (!stream.aborted) { state.flags |= STREAM_FLAGS_ABORTED; stream.emit('aborted'); } // Close the writable side. stream.end(); } if (rstStreamStatus !== kNoRstStream) { const finishFn = finishCloseStream.bind(stream, code); if (!ending || finished || code !== NGHTTP2_NO_ERROR || rstStreamStatus === kForceRstStream) finishFn(); else stream.once('finish', finishFn); } } function finishCloseStream(code) { const rstStreamFn = submitRstStream.bind(this, code); // If the handle has not yet been assigned, queue up the request to // ensure that the RST_STREAM frame is sent after the stream ID has // been determined. if (this.pending) { this.push(null); this.once('ready', rstStreamFn); return; } rstStreamFn(); } // An Http2Stream is a Duplex stream that is backed by a // node::http2::Http2Stream handle implementing StreamBase. class Http2Stream extends Duplex { constructor(session, options) { options.allowHalfOpen = true; options.decodeStrings = false; super(options); this[async_id_symbol] = -1; // Corking the stream automatically allows writes to happen // but ensures that those are buffered until the handle has // been assigned. this.cork(); this[kSession] = session; session[kState].pendingStreams.add(this); // Allow our logic for determining whether any reads have happened to // work in all situations. This is similar to what we do in _http_incoming. this._readableState.readingMore = true; this[kTimeout] = null; this[kState] = { didRead: false, flags: STREAM_FLAGS_PENDING, rstCode: NGHTTP2_NO_ERROR, writeQueueSize: 0, trailersReady: false, endAfterHeaders: false }; this.on('pause', streamOnPause); } [kUpdateTimer]() { if (this.destroyed) return; if (this[kTimeout]) this[kTimeout].refresh(); if (this[kSession]) this[kSession][kUpdateTimer](); } [kInit](id, handle) { const state = this[kState]; state.flags |= STREAM_FLAGS_READY; const session = this[kSession]; session[kState].pendingStreams.delete(this); session[kState].streams.set(id, this); this[kID] = id; this[async_id_symbol] = handle.getAsyncId(); handle[kOwner] = this; this[kHandle] = handle; handle.ontrailers = onStreamTrailers; handle.onstreamclose = onStreamClose; handle.onread = onStreamRead; this.uncork(); this.emit('ready'); } [kInspect](depth, opts) { const obj = { id: this[kID] || '', closed: this.closed, destroyed: this.destroyed, state: this.state, readableState: this._readableState, writableState: this._writableState }; return `Http2Stream ${util.format(obj)}`; } get endAfterHeaders() { return this[kState].endAfterHeaders; } get sentHeaders() { return this[kSentHeaders]; } get sentTrailers() { return this[kSentTrailers]; } get sentInfoHeaders() { return this[kInfoHeaders]; } get pending() { return this[kID] === undefined; } // The id of the Http2Stream, will be undefined if the socket is not // yet connected. get id() { return this[kID]; } // The Http2Session that owns this Http2Stream. get session() { return this[kSession]; } _onTimeout() { if (this.destroyed) return; // This checks whether a write is currently in progress and also whether // that write is actually sending data across the write. The kHandle // stored `chunksSentSinceLastWrite` is only updated when a timeout event // happens, meaning that if a write is ongoing it should never equal the // newly fetched, updated value. if (this[kState].writeQueueSize > 0) { const handle = this[kSession][kHandle]; const chunksSentSinceLastWrite = handle !== undefined ? handle.chunksSentSinceLastWrite : null; if (chunksSentSinceLastWrite !== null && chunksSentSinceLastWrite !== handle.updateChunksSent()) { this[kUpdateTimer](); return; } } this.emit('timeout'); } // true if the HEADERS frame has been sent get headersSent() { return !!(this[kState].flags & STREAM_FLAGS_HEADERS_SENT); } // true if the Http2Stream was aborted abnormally. get aborted() { return !!(this[kState].flags & STREAM_FLAGS_ABORTED); } // true if dealing with a HEAD request get headRequest() { return !!(this[kState].flags & STREAM_FLAGS_HEAD_REQUEST); } // The error code reported when this Http2Stream was closed. get rstCode() { return this[kState].rstCode; } // State information for the Http2Stream get state() { const id = this[kID]; if (this.destroyed || id === undefined) return {}; return getStreamState(this[kHandle], id); } [kProceed]() { assert.fail(null, null, 'Implementors MUST implement this. Please report this as a ' + 'bug in Node.js'); } [kWriteGeneric](writev, data, encoding, cb) { // When the Http2Stream is first created, it is corked until the // handle and the stream ID is assigned. However, if the user calls // uncork() before that happens, the Duplex will attempt to pass // writes through. Those need to be queued up here. if (this.pending) { this.once( 'ready', this[kWriteGeneric].bind(this, writev, data, encoding, cb) ); return; } // If the stream has been destroyed, there's nothing else we can do // because the handle has been destroyed. This should only be an // issue if a write occurs before the 'ready' event in the case where // the duplex is uncorked before the stream is ready to go. In that // case, drop the data on the floor. An error should have already been // emitted. if (this.destroyed) return; this[kUpdateTimer](); if (!this.headersSent) this[kProceed](); const req = createWriteWrap(this[kHandle], afterDoStreamWrite); req.stream = this[kID]; if (writev) writevGeneric(this, req, data, cb); else writeGeneric(this, req, data, encoding, cb); trackWriteState(this, req.bytes); } _write(data, encoding, cb) { this[kWriteGeneric](false, data, encoding, cb); } _writev(data, cb) { this[kWriteGeneric](true, data, '', cb); } _final(cb) { const handle = this[kHandle]; if (this[kID] === undefined) { this.once('ready', () => this._final(cb)); } else if (handle !== undefined) { debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(this[kSession][kType])}]: _final shutting down`); const req = new ShutdownWrap(); req.oncomplete = afterShutdown; req.callback = cb; req.handle = handle; handle.shutdown(req); } else { cb(); } } _read(nread) { if (this.destroyed) { this.push(null); return; } if (!this[kState].didRead) { this._readableState.readingMore = false; this[kState].didRead = true; } if (!this.pending) { streamOnResume.call(this); } else { this.once('ready', streamOnResume); } } priority(options) { if (this.destroyed) throw new ERR_HTTP2_INVALID_STREAM(); assertIsObject(options, 'options'); options = Object.assign({}, options); validatePriorityOptions(options); const priorityFn = submitPriority.bind(this, options); // If the handle has not yet been assigned, queue up the priority // frame to be sent as soon as the ready event is emitted. if (this.pending) { this.once('ready', priorityFn); return; } priorityFn(); } sendTrailers(headers) { if (this.destroyed || this.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this[kSentTrailers]) throw new ERR_HTTP2_TRAILERS_ALREADY_SENT(); if (!this[kState].trailersReady) throw new ERR_HTTP2_TRAILERS_NOT_READY(); assertIsObject(headers, 'headers'); headers = Object.assign(Object.create(null), headers); const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: sending trailers`); this[kUpdateTimer](); const headersList = mapToHeaders(headers, assertValidPseudoHeaderTrailer); if (!Array.isArray(headersList)) throw headersList; this[kSentTrailers] = headers; // Send the trailers in setImmediate so we don't do it on nghttp2 stack. setImmediate(finishSendTrailers, this, headersList); } get closed() { return !!(this[kState].flags & STREAM_FLAGS_CLOSED); } // Close initiates closing the Http2Stream instance by sending an RST_STREAM // frame to the connected peer. The readable and writable sides of the // Http2Stream duplex are closed and the timeout timer is cleared. If // a callback is passed, it is registered to listen for the 'close' event. // // If the handle and stream ID have not been assigned yet, the close // will be queued up to wait for the ready event. As soon as the stream ID // is determined, the close will proceed. // // Submitting the RST_STREAM frame to the underlying handle will cause // the Http2Stream to be closed and ultimately destroyed. After calling // close, it is still possible to queue up PRIORITY and RST_STREAM frames, // but no DATA and HEADERS frames may be sent. close(code = NGHTTP2_NO_ERROR, callback) { validateNumber(code, 'code'); if (code < 0 || code > kMaxInt) throw new ERR_OUT_OF_RANGE('code', `>= 0 && <= ${kMaxInt}`, code); if (callback !== undefined && typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); if (this.closed) return; if (callback !== undefined) this.once('close', callback); closeStream(this, code); } // Called by this.destroy(). // * Will submit an RST stream to shutdown the stream if necessary. // This will cause the internal resources to be released. // * Then cleans up the resources on the js side _destroy(err, callback) { const session = this[kSession]; const handle = this[kHandle]; const id = this[kID]; debug(`Http2Stream ${this[kID] || ''} [Http2Session ` + `${sessionName(session[kType])}]: destroying stream`); const state = this[kState]; const code = err != null ? NGHTTP2_INTERNAL_ERROR : (state.rstCode || NGHTTP2_NO_ERROR); const hasHandle = handle !== undefined; if (!this.closed) closeStream(this, code, hasHandle ? kForceRstStream : kNoRstStream); this.push(null); if (hasHandle) { handle.destroy(); session[kState].streams.delete(id); } else { session[kState].pendingStreams.delete(this); } // Adjust the write queue size for accounting session[kState].writeQueueSize -= state.writeQueueSize; state.writeQueueSize = 0; // RST code 8 not emitted as an error as its used by clients to signify // abort and is already covered by aborted event, also allows more // seamless compatibility with http1 if (err == null && code !== NGHTTP2_NO_ERROR && code !== NGHTTP2_CANCEL) err = new ERR_HTTP2_STREAM_ERROR(nameForErrorCode[code] || code); this[kSession] = undefined; this[kHandle] = undefined; // This notifies the session that this stream has been destroyed and // gives the session the opportunity to clean itself up. The session // will destroy if it has been closed and there are no other open or // pending streams. session[kMaybeDestroy](); callback(err); } // The Http2Stream can be destroyed if it has closed and if the readable // side has received the final chunk. [kMaybeDestroy](code = NGHTTP2_NO_ERROR) { if (code !== NGHTTP2_NO_ERROR) { this.destroy(); return; } // TODO(mcollina): remove usage of _*State properties if (this._writableState.finished) { if (!this.readable && this.closed) { this.destroy(); return; } // We've submitted a response from our server session, have not attempted // to process any incoming data, and have no trailers. This means we can // attempt to gracefully close the session. const state = this[kState]; if (this.headersSent && this[kSession][kType] === NGHTTP2_SESSION_SERVER && !(state.flags & STREAM_FLAGS_HAS_TRAILERS) && !state.didRead && this.readableFlowing === null) { // By using setImmediate we allow pushStreams to make it through // before the stream is officially closed. This prevents a bug // in most browsers where those pushStreams would be rejected. setImmediate(this.close.bind(this)); } } } } function processHeaders(headers) { assertIsObject(headers, 'headers'); headers = Object.assign(Object.create(null), headers); if (headers[HTTP2_HEADER_STATUS] == null) headers[HTTP2_HEADER_STATUS] = HTTP_STATUS_OK; headers[HTTP2_HEADER_DATE] = utcDate(); const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; // This is intentionally stricter than the HTTP/1 implementation, which // allows values between 100 and 999 (inclusive) in order to allow for // backwards compatibility with non-spec compliant code. With HTTP/2, // we have the opportunity to start fresh with stricter spec compliance. // This will have an impact on the compatibility layer for anyone using // non-standard, non-compliant status codes. if (statusCode < 200 || statusCode > 599) throw new ERR_HTTP2_STATUS_INVALID(headers[HTTP2_HEADER_STATUS]); return headers; } function onFileCloseError(stream, err) { stream.emit(err); } function onFileUnpipe() { const stream = this.sink[kOwner]; if (stream.ownsFd) this.source.close().catch(onFileCloseError.bind(stream)); else this.source.releaseFD(); } // This is only called once the pipe has returned back control, so // it only has to handle errors and End-of-File. function onPipedFileHandleRead(err) { if (err < 0 && err !== UV_EOF) { this.stream.close(NGHTTP2_INTERNAL_ERROR); } } function processRespondWithFD(self, fd, headers, offset = 0, length = -1, streamOptions = 0) { const state = self[kState]; state.flags |= STREAM_FLAGS_HEADERS_SENT; const headersList = mapToHeaders(headers, assertValidPseudoHeaderResponse); self[kSentHeaders] = headers; if (!Array.isArray(headersList)) { self.destroy(headersList); return; } // Close the writable side of the stream, but only as far as the writable // stream implementation is concerned. self._final = null; self.end(); const ret = self[kHandle].respond(headersList, streamOptions); if (ret < 0) { self.destroy(new NghttpError(ret)); return; } defaultTriggerAsyncIdScope(self[async_id_symbol], startFilePipe, self, fd, offset, length); } function startFilePipe(self, fd, offset, length) { const handle = new FileHandle(fd, offset, length); handle.onread = onPipedFileHandleRead; handle.stream = self; const pipe = new StreamPipe(handle._externalStream, self[kHandle]._externalStream); pipe.onunpipe = onFileUnpipe; pipe.start(); // exact length of the file doesn't matter here, since the // stream is closing anyway - just use 1 to signify that // a write does exist trackWriteState(self, 1); } function doSendFD(session, options, fd, headers, streamOptions, err, stat) { if (err) { this.destroy(err); return; } // This can happen if the stream is destroyed or closed while we are waiting // for the file descriptor to be opened or the stat call to be completed. // In either case, we do not want to continue because the we are shutting // down and should not attempt to send any data. if (this.destroyed || this.closed) { this.destroy(new ERR_HTTP2_INVALID_STREAM()); return; } const statOptions = { offset: options.offset !== undefined ? options.offset : 0, length: options.length !== undefined ? options.length : -1 }; // options.statCheck is a user-provided function that can be used to // verify stat values, override or set headers, or even cancel the // response operation. If statCheck explicitly returns false, the // response is canceled. The user code may also send a separate type // of response so check again for the HEADERS_SENT flag if ((typeof options.statCheck === 'function' && options.statCheck.call(this, stat, headers, statOptions) === false) || (this[kState].flags & STREAM_FLAGS_HEADERS_SENT)) { return; } processRespondWithFD(this, fd, headers, statOptions.offset | 0, statOptions.length | 0, streamOptions); } function doSendFileFD(session, options, fd, headers, streamOptions, err, stat) { const onError = options.onError; if (err) { tryClose(fd); if (onError) onError(err); else this.destroy(err); return; } if (!stat.isFile()) { const isDirectory = stat.isDirectory(); if (options.offset !== undefined || options.offset > 0 || options.length !== undefined || options.length >= 0 || isDirectory) { const err = isDirectory ? new ERR_HTTP2_SEND_FILE() : new ERR_HTTP2_SEND_FILE_NOSEEK(); tryClose(fd); if (onError) onError(err); else this.destroy(err); return; } options.offset = -1; options.length = -1; } if (this.destroyed || this.closed) { tryClose(fd); this.destroy(new ERR_HTTP2_INVALID_STREAM()); return; } const statOptions = { offset: options.offset !== undefined ? options.offset : 0, length: options.length !== undefined ? options.length : -1 }; // options.statCheck is a user-provided function that can be used to // verify stat values, override or set headers, or even cancel the // response operation. If statCheck explicitly returns false, the // response is canceled. The user code may also send a separate type // of response so check again for the HEADERS_SENT flag if ((typeof options.statCheck === 'function' && options.statCheck.call(this, stat, headers) === false) || (this[kState].flags & STREAM_FLAGS_HEADERS_SENT)) { tryClose(fd); return; } if (stat.isFile()) { statOptions.length = statOptions.length < 0 ? stat.size - (+statOptions.offset) : Math.min(stat.size - (+statOptions.offset), statOptions.length); headers[HTTP2_HEADER_CONTENT_LENGTH] = statOptions.length; } processRespondWithFD(this, fd, headers, options.offset | 0, statOptions.length | 0, streamOptions); } function afterOpen(session, options, headers, streamOptions, err, fd) { const state = this[kState]; const onError = options.onError; if (err) { if (onError) onError(err); else this.destroy(err); return; } if (this.destroyed || this.closed) { tryClose(fd); return; } state.fd = fd; fs.fstat(fd, doSendFileFD.bind(this, session, options, fd, headers, streamOptions)); } class ServerHttp2Stream extends Http2Stream { constructor(session, handle, id, options, headers) { super(session, options); handle.owner = this; this[kInit](id, handle); this[kProtocol] = headers[HTTP2_HEADER_SCHEME]; this[kAuthority] = headers[HTTP2_HEADER_AUTHORITY]; } // true if the remote peer accepts push streams get pushAllowed() { return !this.destroyed && !this.closed && !this.session.closed && !this.session.destroyed && this[kSession].remoteSettings.enablePush; } // create a push stream, call the given callback with the created // Http2Stream for the push stream. pushStream(headers, options, callback) { if (!this.pushAllowed) throw new ERR_HTTP2_PUSH_DISABLED(); if (this[kID] % 2 === 0) throw new ERR_HTTP2_NESTED_PUSH(); const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: initiating push stream`); this[kUpdateTimer](); if (typeof options === 'function') { callback = options; options = undefined; } if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); assertIsObject(options, 'options'); options = Object.assign({}, options); options.endStream = !!options.endStream; assertIsObject(headers, 'headers'); headers = Object.assign(Object.create(null), headers); if (headers[HTTP2_HEADER_METHOD] === undefined) headers[HTTP2_HEADER_METHOD] = HTTP2_METHOD_GET; if (headers[HTTP2_HEADER_AUTHORITY] === undefined) headers[HTTP2_HEADER_AUTHORITY] = this[kAuthority]; if (headers[HTTP2_HEADER_SCHEME] === undefined) headers[HTTP2_HEADER_SCHEME] = this[kProtocol]; if (headers[HTTP2_HEADER_PATH] === undefined) headers[HTTP2_HEADER_PATH] = '/'; let headRequest = false; if (headers[HTTP2_HEADER_METHOD] === HTTP2_METHOD_HEAD) headRequest = options.endStream = true; options.readable = false; const headersList = mapToHeaders(headers); if (!Array.isArray(headersList)) throw headersList; const streamOptions = options.endStream ? STREAM_OPTION_EMPTY_PAYLOAD : 0; const ret = this[kHandle].pushPromise(headersList, streamOptions); let err; if (typeof ret === 'number') { switch (ret) { case NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE: err = new ERR_HTTP2_OUT_OF_STREAMS(); break; case NGHTTP2_ERR_STREAM_CLOSED: err = new ERR_HTTP2_INVALID_STREAM(); break; default: err = new NghttpError(ret); break; } process.nextTick(callback, err); return; } const id = ret.id(); const stream = new ServerHttp2Stream(session, ret, id, options, headers); stream[kSentHeaders] = headers; if (options.endStream) stream.end(); if (headRequest) stream[kState].flags |= STREAM_FLAGS_HEAD_REQUEST; process.nextTick(callback, null, stream, headers, 0); } // Initiate a response on this Http2Stream respond(headers, options) { if (this.destroyed || this.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this.headersSent) throw new ERR_HTTP2_HEADERS_SENT(); const state = this[kState]; assertIsObject(options, 'options'); options = Object.assign({}, options); const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: initiating response`); this[kUpdateTimer](); options.endStream = !!options.endStream; let streamOptions = 0; if (options.endStream) streamOptions |= STREAM_OPTION_EMPTY_PAYLOAD; if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; state.flags |= STREAM_FLAGS_HAS_TRAILERS; } headers = processHeaders(headers); const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; // Payload/DATA frames are not permitted in these cases so set // the options.endStream option to true so that the underlying // bits do not attempt to send any. if (statusCode === HTTP_STATUS_NO_CONTENT || statusCode === HTTP_STATUS_RESET_CONTENT || statusCode === HTTP_STATUS_NOT_MODIFIED || this.headRequest === true) { options.endStream = true; } const headersList = mapToHeaders(headers, assertValidPseudoHeaderResponse); if (!Array.isArray(headersList)) throw headersList; this[kSentHeaders] = headers; state.flags |= STREAM_FLAGS_HEADERS_SENT; // Close the writable side if the endStream option is set if (options.endStream) this.end(); const ret = this[kHandle].respond(headersList, streamOptions); if (ret < 0) this.destroy(new NghttpError(ret)); } // Initiate a response using an open FD. Note that there are fewer // protections with this approach. For one, the fd is not validated by // default. In respondWithFile, the file is checked to make sure it is a // regular file, here the fd is passed directly. If the underlying // mechanism is not able to read from the fd, then the stream will be // reset with an error code. respondWithFD(fd, headers, options) { if (this.destroyed || this.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this.headersSent) throw new ERR_HTTP2_HEADERS_SENT(); const session = this[kSession]; assertIsObject(options, 'options'); options = Object.assign({}, options); if (options.offset !== undefined && typeof options.offset !== 'number') throw new ERR_INVALID_OPT_VALUE('offset', options.offset); if (options.length !== undefined && typeof options.length !== 'number') throw new ERR_INVALID_OPT_VALUE('length', options.length); if (options.statCheck !== undefined && typeof options.statCheck !== 'function') { throw new ERR_INVALID_OPT_VALUE('statCheck', options.statCheck); } let streamOptions = 0; if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; this[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; } validateNumber(fd, 'fd'); debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: initiating response from fd`); this[kUpdateTimer](); this.ownsFd = false; headers = processHeaders(headers); const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; // Payload/DATA frames are not permitted in these cases if (statusCode === HTTP_STATUS_NO_CONTENT || statusCode === HTTP_STATUS_RESET_CONTENT || statusCode === HTTP_STATUS_NOT_MODIFIED) { throw new ERR_HTTP2_PAYLOAD_FORBIDDEN(statusCode); } if (options.statCheck !== undefined) { fs.fstat(fd, doSendFD.bind(this, session, options, fd, headers, streamOptions)); return; } processRespondWithFD(this, fd, headers, options.offset, options.length, streamOptions); } // Initiate a file response on this Http2Stream. The path is passed to // fs.open() to acquire the fd with mode 'r', then the fd is passed to // fs.fstat(). Assuming fstat is successful, a check is made to ensure // that the file is a regular file, then options.statCheck is called, // giving the user an opportunity to verify the details and set additional // headers. If statCheck returns false, the operation is aborted and no // file details are sent. respondWithFile(path, headers, options) { if (this.destroyed || this.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this.headersSent) throw new ERR_HTTP2_HEADERS_SENT(); assertIsObject(options, 'options'); options = Object.assign({}, options); if (options.offset !== undefined && typeof options.offset !== 'number') throw new ERR_INVALID_OPT_VALUE('offset', options.offset); if (options.length !== undefined && typeof options.length !== 'number') throw new ERR_INVALID_OPT_VALUE('length', options.length); if (options.statCheck !== undefined && typeof options.statCheck !== 'function') { throw new ERR_INVALID_OPT_VALUE('statCheck', options.statCheck); } let streamOptions = 0; if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; this[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; } const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: initiating response from file`); this[kUpdateTimer](); this.ownsFd = true; headers = processHeaders(headers); const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; // Payload/DATA frames are not permitted in these cases if (statusCode === HTTP_STATUS_NO_CONTENT || statusCode === HTTP_STATUS_RESET_CONTENT || statusCode === HTTP_STATUS_NOT_MODIFIED) { throw new ERR_HTTP2_PAYLOAD_FORBIDDEN(statusCode); } fs.open(path, 'r', afterOpen.bind(this, session, options, headers, streamOptions)); } // Sends a block of informational headers. In theory, the HTTP/2 spec // allows sending a HEADER block at any time during a streams lifecycle, // but the HTTP request/response semantics defined in HTTP/2 places limits // such that HEADERS may only be sent *before* or *after* DATA frames. // If the block of headers being sent includes a status code, it MUST be // a 1xx informational code and it MUST be sent before the request/response // headers are sent, or an error will be thrown. additionalHeaders(headers) { if (this.destroyed || this.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this.headersSent) throw new ERR_HTTP2_HEADERS_AFTER_RESPOND(); assertIsObject(headers, 'headers'); headers = Object.assign(Object.create(null), headers); const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + `${sessionName(session[kType])}]: sending additional headers`); if (headers[HTTP2_HEADER_STATUS] != null) { const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; if (statusCode === HTTP_STATUS_SWITCHING_PROTOCOLS) throw new ERR_HTTP2_STATUS_101(); if (statusCode < 100 || statusCode >= 200) { throw new ERR_HTTP2_INVALID_INFO_STATUS(headers[HTTP2_HEADER_STATUS]); } } this[kUpdateTimer](); const headersList = mapToHeaders(headers, assertValidPseudoHeaderResponse); if (!Array.isArray(headersList)) throw headersList; if (!this[kInfoHeaders]) this[kInfoHeaders] = [headers]; else this[kInfoHeaders].push(headers); const ret = this[kHandle].info(headersList); if (ret < 0) this.destroy(new NghttpError(ret)); } } ServerHttp2Stream.prototype[kProceed] = ServerHttp2Stream.prototype.respond; class ClientHttp2Stream extends Http2Stream { constructor(session, handle, id, options) { super(session, options); this[kState].flags |= STREAM_FLAGS_HEADERS_SENT; if (id !== undefined) this[kInit](id, handle); this.on('headers', handleHeaderContinue); } } function handleHeaderContinue(headers) { if (headers[HTTP2_HEADER_STATUS] === HTTP_STATUS_CONTINUE) this.emit('continue'); } const setTimeout = { configurable: true, enumerable: true, writable: true, value: function(msecs, callback) { if (this.destroyed) return; // Type checking identical to timers.enroll() msecs = validateTimerDuration(msecs); // Attempt to clear an existing timer lear in both cases - // even if it will be rescheduled we don't want to leak an existing timer. clearTimeout(this[kTimeout]); if (msecs === 0) { if (callback !== undefined) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); this.removeListener('timeout', callback); } } else { this[kTimeout] = setUnrefTimeout(this._onTimeout.bind(this), msecs); if (this[kSession]) this[kSession][kUpdateTimer](); if (callback !== undefined) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); this.once('timeout', callback); } } return this; } }; Object.defineProperty(Http2Stream.prototype, 'setTimeout', setTimeout); Object.defineProperty(Http2Session.prototype, 'setTimeout', setTimeout); // When the socket emits an error, destroy the associated Http2Session and // forward it the same error. function socketOnError(error) { const session = this[kSession]; if (session !== undefined) { // We can ignore ECONNRESET after GOAWAY was received as there's nothing // we can do and the other side is fully within its rights to do so. if (error.code === 'ECONNRESET' && session[kState].goawayCode !== null) return session.destroy(); debug(`Http2Session ${sessionName(session[kType])}: socket error [` + `${error.message}]`); session.destroy(error); } } // Handles the on('stream') event for a session and forwards // it on to the server object. function sessionOnStream(stream, headers, flags, rawHeaders) { if (this[kServer] !== undefined) this[kServer].emit('stream', stream, headers, flags, rawHeaders); } function sessionOnPriority(stream, parent, weight, exclusive) { if (this[kServer] !== undefined) this[kServer].emit('priority', stream, parent, weight, exclusive); } function sessionOnError(error) { if (this[kServer]) this[kServer].emit('sessionError', error, this); } // When the session times out on the server, try emitting a timeout event. // If no handler is registered, destroy the session. function sessionOnTimeout() { // if destroyed or closed already, do nothing if (this.destroyed || this.closed) return; const server = this[kServer]; if (!server.emit('timeout', this)) this.destroy(); // No error code, just things down. } function connectionListener(socket) { debug('Http2Session server: received a connection'); const options = this[kOptions] || {}; if (socket.alpnProtocol === false || socket.alpnProtocol === 'http/1.1') { // Fallback to HTTP/1.1 if (options.allowHTTP1 === true) { socket.server[kIncomingMessage] = options.Http1IncomingMessage; socket.server[kServerResponse] = options.Http1ServerResponse; return httpConnectionListener.call(this, socket); } // Let event handler deal with the socket debug(`Unknown protocol from ${socket.remoteAddress}:${socket.remotePort}`); if (!this.emit('unknownProtocol', socket)) { // We don't know what to do, so let's just tell the other side what's // going on in a format that they *might* understand. socket.end('HTTP/1.0 403 Forbidden\r\n' + 'Content-Type: text/plain\r\n\r\n' + 'Unknown ALPN Protocol, expected `h2` to be available.\n' + 'If this is a HTTP request: The server was not ' + 'configured with the `allowHTTP1` option or a ' + 'listener for the `unknownProtocol` event.\n'); } return; } socket.on('error', socketOnError); socket.on('close', socketOnClose); // Set up the Session const session = new ServerHttp2Session(options, socket, this); session.on('stream', sessionOnStream); session.on('priority', sessionOnPriority); session.on('error', sessionOnError); if (this.timeout) session.setTimeout(this.timeout, sessionOnTimeout); socket[kServer] = this; this.emit('session', session); } function initializeOptions(options) { assertIsObject(options, 'options'); options = Object.assign({}, options); options.allowHalfOpen = true; assertIsObject(options.settings, 'options.settings'); options.settings = Object.assign({}, options.settings); // Used only with allowHTTP1 options.Http1IncomingMessage = options.Http1IncomingMessage || http.IncomingMessage; options.Http1ServerResponse = options.Http1ServerResponse || http.ServerResponse; options.Http2ServerRequest = options.Http2ServerRequest || Http2ServerRequest; options.Http2ServerResponse = options.Http2ServerResponse || Http2ServerResponse; return options; } function initializeTLSOptions(options, servername) { options = initializeOptions(options); options.ALPNProtocols = ['h2']; if (options.allowHTTP1 === true) options.ALPNProtocols.push('http/1.1'); if (servername !== undefined && options.servername === undefined) options.servername = servername; return options; } function onErrorSecureServerSession(err, socket) { if (!this.emit('clientError', err, socket)) socket.destroy(err); } class Http2SecureServer extends TLSServer { constructor(options, requestListener) { options = initializeTLSOptions(options); super(options, connectionListener); this[kOptions] = options; this.timeout = kDefaultSocketTimeout; this.on('newListener', setupCompat); if (typeof requestListener === 'function') this.on('request', requestListener); this.on('tlsClientError', onErrorSecureServerSession); } setTimeout(msecs, callback) { this.timeout = msecs; if (callback !== undefined) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); this.on('timeout', callback); } return this; } } class Http2Server extends NETServer { constructor(options, requestListener) { super(connectionListener); this[kOptions] = initializeOptions(options); this.timeout = kDefaultSocketTimeout; this.on('newListener', setupCompat); if (typeof requestListener === 'function') this.on('request', requestListener); } setTimeout(msecs, callback) { this.timeout = msecs; if (callback !== undefined) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); this.on('timeout', callback); } return this; } } function setupCompat(ev) { if (ev === 'request') { this.removeListener('newListener', setupCompat); this.on('stream', onServerStream.bind( this, this[kOptions].Http2ServerRequest, this[kOptions].Http2ServerResponse) ); } } function socketOnClose() { const session = this[kSession]; if (session !== undefined) { debug(`Http2Session ${sessionName(session[kType])}: socket closed`); const err = session.connecting ? new ERR_SOCKET_CLOSED() : null; const state = session[kState]; state.streams.forEach((stream) => stream.close(NGHTTP2_CANCEL)); state.pendingStreams.forEach((stream) => stream.close(NGHTTP2_CANCEL)); session.close(); session[kMaybeDestroy](err); } } function connect(authority, options, listener) { if (typeof options === 'function') { listener = options; options = undefined; } assertIsObject(options, 'options'); options = Object.assign({}, options); if (typeof authority === 'string') authority = new URL(authority); assertIsObject(authority, 'authority', ['string', 'Object', 'URL']); const protocol = authority.protocol || options.protocol || 'https:'; const port = '' + (authority.port !== '' ? authority.port : (authority.protocol === 'http:' ? 80 : 443)); const host = authority.hostname || authority.host || 'localhost'; let socket; if (typeof options.createConnection === 'function') { socket = options.createConnection(authority, options); } else { switch (protocol) { case 'http:': socket = net.connect(port, host); break; case 'https:': socket = tls.connect(port, host, initializeTLSOptions(options, host)); break; default: throw new ERR_HTTP2_UNSUPPORTED_PROTOCOL(protocol); } } socket.on('error', socketOnError); socket.on('close', socketOnClose); const session = new ClientHttp2Session(options, socket); session[kAuthority] = `${options.servername || host}:${port}`; session[kProtocol] = protocol; if (typeof listener === 'function') session.once('connect', listener); return session; } // Support util.promisify Object.defineProperty(connect, promisify.custom, { value: (authority, options) => { return new Promise((resolve) => { const server = connect(authority, options, () => resolve(server)); }); } }); function createSecureServer(options, handler) { assertIsObject(options, 'options'); return new Http2SecureServer(options, handler); } function createServer(options, handler) { if (typeof options === 'function') { handler = options; options = {}; } assertIsObject(options, 'options'); return new Http2Server(options, handler); } // Returns a Base64 encoded settings frame payload from the given // object. The value is suitable for passing as the value of the // HTTP2-Settings header frame. function getPackedSettings(settings) { assertIsObject(settings, 'settings'); updateSettingsBuffer(validateSettings(settings)); return binding.packSettings(); } function getUnpackedSettings(buf, options = {}) { if (!isArrayBufferView(buf)) { throw new ERR_INVALID_ARG_TYPE('buf', ['Buffer', 'TypedArray', 'DataView'], buf); } if (buf.length % 6 !== 0) throw new ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH(); const settings = {}; let offset = 0; while (offset < buf.length) { const id = buf.readUInt16BE(offset); offset += 2; const value = buf.readUInt32BE(offset); switch (id) { case NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: settings.headerTableSize = value; break; case NGHTTP2_SETTINGS_ENABLE_PUSH: settings.enablePush = value !== 0; break; case NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: settings.maxConcurrentStreams = value; break; case NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: settings.initialWindowSize = value; break; case NGHTTP2_SETTINGS_MAX_FRAME_SIZE: settings.maxFrameSize = value; break; case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: settings.maxHeaderListSize = value; break; } offset += 4; } if (options != null && options.validate) validateSettings(settings); return settings; } // Exports module.exports = { connect, constants, createServer, createSecureServer, getDefaultSettings, getPackedSettings, getUnpackedSettings, Http2Session, Http2Stream, Http2ServerRequest, Http2ServerResponse }; /* eslint-enable no-use-before-define */ internal/http2/compat'use strict'; const assert = require('assert'); const Stream = require('stream'); const Readable = Stream.Readable; const binding = process.binding('http2'); const constants = binding.constants; const { ERR_HTTP2_HEADERS_SENT, ERR_HTTP2_INFO_STATUS_NOT_ALLOWED, ERR_HTTP2_INVALID_HEADER_VALUE, ERR_HTTP2_INVALID_STREAM, ERR_HTTP2_NO_SOCKET_MANIPULATION, ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED, ERR_HTTP2_STATUS_INVALID, ERR_INVALID_ARG_VALUE, ERR_INVALID_CALLBACK, ERR_INVALID_HTTP_TOKEN } = require('internal/errors').codes; const { validateString } = require('internal/validators'); const { kSocket } = require('internal/http2/util'); const kBeginSend = Symbol('begin-send'); const kState = Symbol('state'); const kStream = Symbol('stream'); const kRequest = Symbol('request'); const kResponse = Symbol('response'); const kHeaders = Symbol('headers'); const kRawHeaders = Symbol('rawHeaders'); const kTrailers = Symbol('trailers'); const kRawTrailers = Symbol('rawTrailers'); const kProxySocket = Symbol('proxySocket'); const kSetHeader = Symbol('setHeader'); const kAborted = Symbol('aborted'); const { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_SCHEME, HTTP2_HEADER_STATUS, HTTP_STATUS_CONTINUE, HTTP_STATUS_EXPECTATION_FAILED, HTTP_STATUS_METHOD_NOT_ALLOWED, HTTP_STATUS_OK } = constants; let statusMessageWarned = false; // Defines and implements an API compatibility layer on top of the core // HTTP/2 implementation, intended to provide an interface that is as // close as possible to the current require('http') API function assertValidHeader(name, value) { let err; if (name === '' || typeof name !== 'string') { err = new ERR_INVALID_HTTP_TOKEN('Header name', name); } else if (isPseudoHeader(name)) { err = new ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED(); } else if (value === undefined || value === null) { err = new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); } if (err !== undefined) { Error.captureStackTrace(err, assertValidHeader); throw err; } } function isPseudoHeader(name) { switch (name) { case HTTP2_HEADER_STATUS: // :status case HTTP2_HEADER_METHOD: // :method case HTTP2_HEADER_PATH: // :path case HTTP2_HEADER_AUTHORITY: // :authority case HTTP2_HEADER_SCHEME: // :scheme return true; default: return false; } } function statusMessageWarn() { if (statusMessageWarned === false) { process.emitWarning( 'Status message is not supported by HTTP/2 (RFC7540 8.1.2.4)', 'UnsupportedWarning' ); statusMessageWarned = true; } } function onStreamData(chunk) { const request = this[kRequest]; if (request !== undefined && !request.push(chunk)) this.pause(); } function onStreamTrailers(trailers, flags, rawTrailers) { const request = this[kRequest]; if (request !== undefined) { Object.assign(request[kTrailers], trailers); request[kRawTrailers].push(...rawTrailers); } } function onStreamEnd() { // Cause the request stream to end as well. const request = this[kRequest]; if (request !== undefined) this[kRequest].push(null); } function onStreamError(error) { // this is purposefully left blank // // errors in compatibility mode are // not forwarded to the request // and response objects. } function onRequestPause() { this[kStream].pause(); } function onRequestResume() { this[kStream].resume(); } function onStreamDrain() { const response = this[kResponse]; if (response !== undefined) response.emit('drain'); } function onStreamAbortedRequest() { const request = this[kRequest]; if (request !== undefined && request[kState].closed === false) { request[kAborted] = true; request.emit('aborted'); } } function onStreamAbortedResponse() { // non-op for now } function resumeStream(stream) { stream.resume(); } const proxySocketHandler = { get(stream, prop) { switch (prop) { case 'on': case 'once': case 'end': case 'emit': case 'destroy': return stream[prop].bind(stream); case 'writable': case 'destroyed': return stream[prop]; case 'readable': if (stream.destroyed) return false; const request = stream[kRequest]; return request ? request.readable : stream.readable; case 'setTimeout': const session = stream.session; if (session !== undefined) return session.setTimeout.bind(session); return stream.setTimeout.bind(stream); case 'write': case 'read': case 'pause': case 'resume': throw new ERR_HTTP2_NO_SOCKET_MANIPULATION(); default: const ref = stream.session !== undefined ? stream.session[kSocket] : stream; const value = ref[prop]; return typeof value === 'function' ? value.bind(ref) : value; } }, getPrototypeOf(stream) { if (stream.session !== undefined) return Reflect.getPrototypeOf(stream.session[kSocket]); return Reflect.getPrototypeOf(stream); }, set(stream, prop, value) { switch (prop) { case 'writable': case 'readable': case 'destroyed': case 'on': case 'once': case 'end': case 'emit': case 'destroy': stream[prop] = value; return true; case 'setTimeout': const session = stream.session; if (session !== undefined) session.setTimeout = value; else stream.setTimeout = value; return true; case 'write': case 'read': case 'pause': case 'resume': throw new ERR_HTTP2_NO_SOCKET_MANIPULATION(); default: const ref = stream.session !== undefined ? stream.session[kSocket] : stream; ref[prop] = value; return true; } } }; function onStreamCloseRequest() { const req = this[kRequest]; if (req === undefined) return; const state = req[kState]; state.closed = true; req.push(null); // if the user didn't interact with incoming data and didn't pipe it, // dump it for compatibility with http1 if (!state.didRead && !req._readableState.resumeScheduled) req.resume(); this[kProxySocket] = null; this[kRequest] = undefined; req.emit('close'); } function onStreamTimeout(kind) { return function onStreamTimeout() { const obj = this[kind]; obj.emit('timeout'); }; } class Http2ServerRequest extends Readable { constructor(stream, headers, options, rawHeaders) { super(options); this[kState] = { closed: false, didRead: false, }; this[kHeaders] = headers; this[kRawHeaders] = rawHeaders; this[kTrailers] = {}; this[kRawTrailers] = []; this[kStream] = stream; this[kAborted] = false; stream[kProxySocket] = null; stream[kRequest] = this; // Pause the stream.. stream.on('trailers', onStreamTrailers); stream.on('end', onStreamEnd); stream.on('error', onStreamError); stream.on('aborted', onStreamAbortedRequest); stream.on('close', onStreamCloseRequest); stream.on('timeout', onStreamTimeout(kRequest)); this.on('pause', onRequestPause); this.on('resume', onRequestResume); } get aborted() { return this[kAborted]; } get complete() { return this._readableState.ended || this[kState].closed || this[kStream].destroyed; } get stream() { return this[kStream]; } get headers() { return this[kHeaders]; } get rawHeaders() { return this[kRawHeaders]; } get trailers() { return this[kTrailers]; } get rawTrailers() { return this[kRawTrailers]; } get httpVersionMajor() { return 2; } get httpVersionMinor() { return 0; } get httpVersion() { return '2.0'; } get socket() { const stream = this[kStream]; const proxySocket = stream[kProxySocket]; if (proxySocket === null) return stream[kProxySocket] = new Proxy(stream, proxySocketHandler); return proxySocket; } get connection() { return this.socket; } _read(nread) { const state = this[kState]; assert(!state.closed); if (!state.didRead) { state.didRead = true; this[kStream].on('data', onStreamData); } else { process.nextTick(resumeStream, this[kStream]); } } get method() { return this[kHeaders][HTTP2_HEADER_METHOD]; } set method(method) { validateString(method, 'method'); if (method.trim() === '') throw new ERR_INVALID_ARG_VALUE('method', method); this[kHeaders][HTTP2_HEADER_METHOD] = method; } get authority() { return this[kHeaders][HTTP2_HEADER_AUTHORITY]; } get scheme() { return this[kHeaders][HTTP2_HEADER_SCHEME]; } get url() { return this[kHeaders][HTTP2_HEADER_PATH]; } set url(url) { this[kHeaders][HTTP2_HEADER_PATH] = url; } setTimeout(msecs, callback) { if (this[kState].closed) return; this[kStream].setTimeout(msecs, callback); } } function onStreamTrailersReady() { this.sendTrailers(this[kResponse][kTrailers]); } function onStreamCloseResponse() { const res = this[kResponse]; if (res === undefined) return; const state = res[kState]; if (this.headRequest !== state.headRequest) return; state.closed = true; this[kProxySocket] = null; this.removeListener('wantTrailers', onStreamTrailersReady); this[kResponse] = undefined; res.emit('finish'); res.emit('close'); } class Http2ServerResponse extends Stream { constructor(stream, options) { super(options); this[kState] = { closed: false, ending: false, headRequest: false, sendDate: true, statusCode: HTTP_STATUS_OK, }; this[kHeaders] = Object.create(null); this[kTrailers] = Object.create(null); this[kStream] = stream; stream[kProxySocket] = null; stream[kResponse] = this; this.writable = true; stream.on('drain', onStreamDrain); stream.on('aborted', onStreamAbortedResponse); stream.on('close', onStreamCloseResponse); stream.on('wantTrailers', onStreamTrailersReady); stream.on('timeout', onStreamTimeout(kResponse)); } // User land modules such as finalhandler just check truthiness of this // but if someone is actually trying to use this for more than that // then we simply can't support such use cases get _header() { return this.headersSent; } get finished() { const stream = this[kStream]; return stream.destroyed || stream._writableState.ended || this[kState].closed; } get socket() { // this is compatible with http1 which removes socket reference // only from ServerResponse but not IncomingMessage if (this[kState].closed) return; const stream = this[kStream]; const proxySocket = stream[kProxySocket]; if (proxySocket === null) return stream[kProxySocket] = new Proxy(stream, proxySocketHandler); return proxySocket; } get connection() { return this.socket; } get stream() { return this[kStream]; } get headersSent() { return this[kStream].headersSent; } get sendDate() { return this[kState].sendDate; } set sendDate(bool) { this[kState].sendDate = Boolean(bool); } get statusCode() { return this[kState].statusCode; } set statusCode(code) { code |= 0; if (code >= 100 && code < 200) throw new ERR_HTTP2_INFO_STATUS_NOT_ALLOWED(); if (code < 100 || code > 599) throw new ERR_HTTP2_STATUS_INVALID(code); this[kState].statusCode = code; } setTrailer(name, value) { validateString(name, 'name'); name = name.trim().toLowerCase(); assertValidHeader(name, value); this[kTrailers][name] = value; } addTrailers(headers) { const keys = Object.keys(headers); let key = ''; for (var i = 0; i < keys.length; i++) { key = keys[i]; this.setTrailer(key, headers[key]); } } getHeader(name) { validateString(name, 'name'); name = name.trim().toLowerCase(); return this[kHeaders][name]; } getHeaderNames() { return Object.keys(this[kHeaders]); } getHeaders() { return Object.assign({}, this[kHeaders]); } hasHeader(name) { validateString(name, 'name'); name = name.trim().toLowerCase(); return Object.prototype.hasOwnProperty.call(this[kHeaders], name); } removeHeader(name) { validateString(name, 'name'); if (this[kStream].headersSent) throw new ERR_HTTP2_HEADERS_SENT(); name = name.trim().toLowerCase(); delete this[kHeaders][name]; } setHeader(name, value) { validateString(name, 'name'); if (this[kStream].headersSent) throw new ERR_HTTP2_HEADERS_SENT(); this[kSetHeader](name, value); } [kSetHeader](name, value) { name = name.trim().toLowerCase(); assertValidHeader(name, value); this[kHeaders][name] = value; } get statusMessage() { statusMessageWarn(); return ''; } set statusMessage(msg) { statusMessageWarn(); } flushHeaders() { const state = this[kState]; if (!state.closed && !this[kStream].headersSent) this.writeHead(state.statusCode); } writeHead(statusCode, statusMessage, headers) { const state = this[kState]; if (state.closed) throw new ERR_HTTP2_INVALID_STREAM(); if (this[kStream].headersSent) throw new ERR_HTTP2_HEADERS_SENT(); if (typeof statusMessage === 'string') statusMessageWarn(); if (headers === undefined && typeof statusMessage === 'object') headers = statusMessage; if (typeof headers === 'object') { const keys = Object.keys(headers); let key = ''; for (var i = 0; i < keys.length; i++) { key = keys[i]; this[kSetHeader](key, headers[key]); } } state.statusCode = statusCode; this[kBeginSend](); } write(chunk, encoding, cb) { if (typeof encoding === 'function') { cb = encoding; encoding = 'utf8'; } if (this[kState].closed) { const err = new ERR_HTTP2_INVALID_STREAM(); if (typeof cb === 'function') process.nextTick(cb, err); else throw err; return; } const stream = this[kStream]; if (!stream.headersSent) this.writeHead(this[kState].statusCode); return stream.write(chunk, encoding, cb); } end(chunk, encoding, cb) { const stream = this[kStream]; const state = this[kState]; if ((state.closed || state.ending) && state.headRequest === stream.headRequest) { return false; } if (typeof chunk === 'function') { cb = chunk; chunk = null; } else if (typeof encoding === 'function') { cb = encoding; encoding = 'utf8'; } if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); const isFinished = this.finished; state.headRequest = stream.headRequest; state.ending = true; if (typeof cb === 'function') { if (isFinished) this.once('finish', cb); else stream.once('finish', cb); } if (!stream.headersSent) this.writeHead(this[kState].statusCode); if (isFinished) onStreamCloseResponse.call(stream); else stream.end(); return this; } destroy(err) { if (this[kState].closed) return; this[kStream].destroy(err); } setTimeout(msecs, callback) { if (this[kState].closed) return; this[kStream].setTimeout(msecs, callback); } createPushResponse(headers, callback) { if (typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); if (this[kState].closed) { process.nextTick(callback, new ERR_HTTP2_INVALID_STREAM()); return; } this[kStream].pushStream(headers, {}, (err, stream, headers, options) => { if (err) { callback(err); return; } callback(null, new Http2ServerResponse(stream)); }); } [kBeginSend]() { const state = this[kState]; const headers = this[kHeaders]; headers[HTTP2_HEADER_STATUS] = state.statusCode; const options = { endStream: state.ending, waitForTrailers: true, }; this[kStream].respond(headers, options); } // TODO doesn't support callbacks writeContinue() { const stream = this[kStream]; if (stream.headersSent || this[kState].closed) return false; stream.additionalHeaders({ [HTTP2_HEADER_STATUS]: HTTP_STATUS_CONTINUE }); return true; } } function onServerStream(ServerRequest, ServerResponse, stream, headers, flags, rawHeaders) { const server = this; const request = new ServerRequest(stream, headers, undefined, rawHeaders); const response = new ServerResponse(stream); // Check for the CONNECT method const method = headers[HTTP2_HEADER_METHOD]; if (method === 'CONNECT') { if (!server.emit('connect', request, response)) { response.statusCode = HTTP_STATUS_METHOD_NOT_ALLOWED; response.end(); } return; } // Check for Expectations if (headers.expect !== undefined) { if (headers.expect === '100-continue') { if (server.listenerCount('checkContinue')) { server.emit('checkContinue', request, response); } else { response.writeContinue(); server.emit('request', request, response); } } else if (server.listenerCount('checkExpectation')) { server.emit('checkExpectation', request, response); } else { response.statusCode = HTTP_STATUS_EXPECTATION_FAILED; response.end(); } return; } server.emit('request', request, response); } module.exports = { onServerStream, Http2ServerRequest, Http2ServerResponse, }; internal/http2/util'use strict'; const binding = internalBinding('http2'); const { ERR_HTTP2_HEADER_SINGLE_VALUE, ERR_HTTP2_INVALID_CONNECTION_HEADERS, ERR_HTTP2_INVALID_PSEUDOHEADER, ERR_HTTP2_INVALID_SETTING_VALUE, ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const kSocket = Symbol('socket'); const { NGHTTP2_SESSION_CLIENT, NGHTTP2_SESSION_SERVER, HTTP2_HEADER_STATUS, HTTP2_HEADER_METHOD, HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS, HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE, HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD, HTTP2_HEADER_AGE, HTTP2_HEADER_AUTHORIZATION, HTTP2_HEADER_CONTENT_ENCODING, HTTP2_HEADER_CONTENT_LANGUAGE, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_CONTENT_LOCATION, HTTP2_HEADER_CONTENT_MD5, HTTP2_HEADER_CONTENT_RANGE, HTTP2_HEADER_CONTENT_TYPE, HTTP2_HEADER_COOKIE, HTTP2_HEADER_DATE, HTTP2_HEADER_DNT, HTTP2_HEADER_ETAG, HTTP2_HEADER_EXPIRES, HTTP2_HEADER_FROM, HTTP2_HEADER_IF_MATCH, HTTP2_HEADER_IF_NONE_MATCH, HTTP2_HEADER_IF_MODIFIED_SINCE, HTTP2_HEADER_IF_RANGE, HTTP2_HEADER_IF_UNMODIFIED_SINCE, HTTP2_HEADER_LAST_MODIFIED, HTTP2_HEADER_LOCATION, HTTP2_HEADER_MAX_FORWARDS, HTTP2_HEADER_PROXY_AUTHORIZATION, HTTP2_HEADER_RANGE, HTTP2_HEADER_REFERER, HTTP2_HEADER_RETRY_AFTER, HTTP2_HEADER_SET_COOKIE, HTTP2_HEADER_TK, HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS, HTTP2_HEADER_USER_AGENT, HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS, HTTP2_HEADER_CONNECTION, HTTP2_HEADER_UPGRADE, HTTP2_HEADER_HTTP2_SETTINGS, HTTP2_HEADER_TE, HTTP2_HEADER_TRANSFER_ENCODING, HTTP2_HEADER_HOST, HTTP2_HEADER_KEEP_ALIVE, HTTP2_HEADER_PROXY_CONNECTION, HTTP2_METHOD_DELETE, HTTP2_METHOD_GET, HTTP2_METHOD_HEAD } = binding.constants; // This set is defined strictly by the HTTP/2 specification. Only // :-prefixed headers defined by that specification may be added to // this set. const kValidPseudoHeaders = new Set([ HTTP2_HEADER_STATUS, HTTP2_HEADER_METHOD, HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, HTTP2_HEADER_PROTOCOL ]); // This set contains headers that are permitted to have only a single // value. Multiple instances must not be specified. const kSingleValueHeaders = new Set([ HTTP2_HEADER_STATUS, HTTP2_HEADER_METHOD, HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS, HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE, HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD, HTTP2_HEADER_AGE, HTTP2_HEADER_AUTHORIZATION, HTTP2_HEADER_CONTENT_ENCODING, HTTP2_HEADER_CONTENT_LANGUAGE, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_CONTENT_LOCATION, HTTP2_HEADER_CONTENT_MD5, HTTP2_HEADER_CONTENT_RANGE, HTTP2_HEADER_CONTENT_TYPE, HTTP2_HEADER_DATE, HTTP2_HEADER_DNT, HTTP2_HEADER_ETAG, HTTP2_HEADER_EXPIRES, HTTP2_HEADER_FROM, HTTP2_HEADER_IF_MATCH, HTTP2_HEADER_IF_MODIFIED_SINCE, HTTP2_HEADER_IF_NONE_MATCH, HTTP2_HEADER_IF_RANGE, HTTP2_HEADER_IF_UNMODIFIED_SINCE, HTTP2_HEADER_LAST_MODIFIED, HTTP2_HEADER_LOCATION, HTTP2_HEADER_MAX_FORWARDS, HTTP2_HEADER_PROXY_AUTHORIZATION, HTTP2_HEADER_RANGE, HTTP2_HEADER_REFERER, HTTP2_HEADER_RETRY_AFTER, HTTP2_HEADER_TK, HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS, HTTP2_HEADER_USER_AGENT, HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS ]); // The HTTP methods in this set are specifically defined as assigning no // meaning to the request payload. By default, unless the user explicitly // overrides the endStream option on the request method, the endStream // option will be defaulted to true when these methods are used. const kNoPayloadMethods = new Set([ HTTP2_METHOD_DELETE, HTTP2_METHOD_GET, HTTP2_METHOD_HEAD ]); // The following ArrayBuffer instances are used to share memory more efficiently // with the native binding side for a number of methods. These are not intended // to be used directly by users in any way. The ArrayBuffers are created on // the native side with values that are filled in on demand, the js code then // reads those values out. The set of IDX constants that follow identify the // relevant data positions within these buffers. const { settingsBuffer, optionsBuffer } = binding; // Note that Float64Array is used here because there is no Int64Array available // and these deal with numbers that can be beyond the range of Uint32 and Int32. // The values set on the native side will always be integers. This is not a // unique example of this, this pattern can be found in use in other parts of // Node.js core as a performance optimization. const { sessionState, streamState } = binding; const IDX_SETTINGS_HEADER_TABLE_SIZE = 0; const IDX_SETTINGS_ENABLE_PUSH = 1; const IDX_SETTINGS_INITIAL_WINDOW_SIZE = 2; const IDX_SETTINGS_MAX_FRAME_SIZE = 3; const IDX_SETTINGS_MAX_CONCURRENT_STREAMS = 4; const IDX_SETTINGS_MAX_HEADER_LIST_SIZE = 5; const IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL = 6; const IDX_SETTINGS_FLAGS = 7; const IDX_SESSION_STATE_EFFECTIVE_LOCAL_WINDOW_SIZE = 0; const IDX_SESSION_STATE_EFFECTIVE_RECV_DATA_LENGTH = 1; const IDX_SESSION_STATE_NEXT_STREAM_ID = 2; const IDX_SESSION_STATE_LOCAL_WINDOW_SIZE = 3; const IDX_SESSION_STATE_LAST_PROC_STREAM_ID = 4; const IDX_SESSION_STATE_REMOTE_WINDOW_SIZE = 5; const IDX_SESSION_STATE_OUTBOUND_QUEUE_SIZE = 6; const IDX_SESSION_STATE_HD_DEFLATE_DYNAMIC_TABLE_SIZE = 7; const IDX_SESSION_STATE_HD_INFLATE_DYNAMIC_TABLE_SIZE = 8; const IDX_STREAM_STATE = 0; const IDX_STREAM_STATE_WEIGHT = 1; const IDX_STREAM_STATE_SUM_DEPENDENCY_WEIGHT = 2; const IDX_STREAM_STATE_LOCAL_CLOSE = 3; const IDX_STREAM_STATE_REMOTE_CLOSE = 4; const IDX_STREAM_STATE_LOCAL_WINDOW_SIZE = 5; const IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE = 0; const IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS = 1; const IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH = 2; const IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS = 3; const IDX_OPTIONS_PADDING_STRATEGY = 4; const IDX_OPTIONS_MAX_HEADER_LIST_PAIRS = 5; const IDX_OPTIONS_MAX_OUTSTANDING_PINGS = 6; const IDX_OPTIONS_MAX_OUTSTANDING_SETTINGS = 7; const IDX_OPTIONS_MAX_SESSION_MEMORY = 8; const IDX_OPTIONS_FLAGS = 9; function updateOptionsBuffer(options) { var flags = 0; if (typeof options.maxDeflateDynamicTableSize === 'number') { flags |= (1 << IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE); optionsBuffer[IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE] = options.maxDeflateDynamicTableSize; } if (typeof options.maxReservedRemoteStreams === 'number') { flags |= (1 << IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS); optionsBuffer[IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS] = options.maxReservedRemoteStreams; } if (typeof options.maxSendHeaderBlockLength === 'number') { flags |= (1 << IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH); optionsBuffer[IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH] = options.maxSendHeaderBlockLength; } if (typeof options.peerMaxConcurrentStreams === 'number') { flags |= (1 << IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS); optionsBuffer[IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS] = options.peerMaxConcurrentStreams; } if (typeof options.paddingStrategy === 'number') { flags |= (1 << IDX_OPTIONS_PADDING_STRATEGY); optionsBuffer[IDX_OPTIONS_PADDING_STRATEGY] = options.paddingStrategy; } if (typeof options.maxHeaderListPairs === 'number') { flags |= (1 << IDX_OPTIONS_MAX_HEADER_LIST_PAIRS); optionsBuffer[IDX_OPTIONS_MAX_HEADER_LIST_PAIRS] = options.maxHeaderListPairs; } if (typeof options.maxOutstandingPings === 'number') { flags |= (1 << IDX_OPTIONS_MAX_OUTSTANDING_PINGS); optionsBuffer[IDX_OPTIONS_MAX_OUTSTANDING_PINGS] = options.maxOutstandingPings; } if (typeof options.maxOutstandingSettings === 'number') { flags |= (1 << IDX_OPTIONS_MAX_OUTSTANDING_SETTINGS); optionsBuffer[IDX_OPTIONS_MAX_OUTSTANDING_SETTINGS] = Math.max(1, options.maxOutstandingSettings); } if (typeof options.maxSessionMemory === 'number') { flags |= (1 << IDX_OPTIONS_MAX_SESSION_MEMORY); optionsBuffer[IDX_OPTIONS_MAX_SESSION_MEMORY] = Math.max(1, options.maxSessionMemory); } optionsBuffer[IDX_OPTIONS_FLAGS] = flags; } function getDefaultSettings() { settingsBuffer[IDX_SETTINGS_FLAGS] = 0; binding.refreshDefaultSettings(); const holder = Object.create(null); const flags = settingsBuffer[IDX_SETTINGS_FLAGS]; if ((flags & (1 << IDX_SETTINGS_HEADER_TABLE_SIZE)) === (1 << IDX_SETTINGS_HEADER_TABLE_SIZE)) { holder.headerTableSize = settingsBuffer[IDX_SETTINGS_HEADER_TABLE_SIZE]; } if ((flags & (1 << IDX_SETTINGS_ENABLE_PUSH)) === (1 << IDX_SETTINGS_ENABLE_PUSH)) { holder.enablePush = settingsBuffer[IDX_SETTINGS_ENABLE_PUSH] === 1; } if ((flags & (1 << IDX_SETTINGS_INITIAL_WINDOW_SIZE)) === (1 << IDX_SETTINGS_INITIAL_WINDOW_SIZE)) { holder.initialWindowSize = settingsBuffer[IDX_SETTINGS_INITIAL_WINDOW_SIZE]; } if ((flags & (1 << IDX_SETTINGS_MAX_FRAME_SIZE)) === (1 << IDX_SETTINGS_MAX_FRAME_SIZE)) { holder.maxFrameSize = settingsBuffer[IDX_SETTINGS_MAX_FRAME_SIZE]; } if ((flags & (1 << IDX_SETTINGS_MAX_CONCURRENT_STREAMS)) === (1 << IDX_SETTINGS_MAX_CONCURRENT_STREAMS)) { holder.maxConcurrentStreams = settingsBuffer[IDX_SETTINGS_MAX_CONCURRENT_STREAMS]; } if ((flags & (1 << IDX_SETTINGS_MAX_HEADER_LIST_SIZE)) === (1 << IDX_SETTINGS_MAX_HEADER_LIST_SIZE)) { holder.maxHeaderListSize = settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE]; } if ((flags & (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL)) === (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL)) { holder.enableConnectProtocol = settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL]; } return holder; } // remote is a boolean. true to fetch remote settings, false to fetch local. // this is only called internally function getSettings(session, remote) { if (remote) session.remoteSettings(); else session.localSettings(); return { headerTableSize: settingsBuffer[IDX_SETTINGS_HEADER_TABLE_SIZE], enablePush: !!settingsBuffer[IDX_SETTINGS_ENABLE_PUSH], initialWindowSize: settingsBuffer[IDX_SETTINGS_INITIAL_WINDOW_SIZE], maxFrameSize: settingsBuffer[IDX_SETTINGS_MAX_FRAME_SIZE], maxConcurrentStreams: settingsBuffer[IDX_SETTINGS_MAX_CONCURRENT_STREAMS], maxHeaderListSize: settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE], enableConnectProtocol: settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] }; } function updateSettingsBuffer(settings) { var flags = 0; if (typeof settings.headerTableSize === 'number') { flags |= (1 << IDX_SETTINGS_HEADER_TABLE_SIZE); settingsBuffer[IDX_SETTINGS_HEADER_TABLE_SIZE] = settings.headerTableSize; } if (typeof settings.maxConcurrentStreams === 'number') { flags |= (1 << IDX_SETTINGS_MAX_CONCURRENT_STREAMS); settingsBuffer[IDX_SETTINGS_MAX_CONCURRENT_STREAMS] = settings.maxConcurrentStreams; } if (typeof settings.initialWindowSize === 'number') { flags |= (1 << IDX_SETTINGS_INITIAL_WINDOW_SIZE); settingsBuffer[IDX_SETTINGS_INITIAL_WINDOW_SIZE] = settings.initialWindowSize; } if (typeof settings.maxFrameSize === 'number') { flags |= (1 << IDX_SETTINGS_MAX_FRAME_SIZE); settingsBuffer[IDX_SETTINGS_MAX_FRAME_SIZE] = settings.maxFrameSize; } if (typeof settings.maxHeaderListSize === 'number') { flags |= (1 << IDX_SETTINGS_MAX_HEADER_LIST_SIZE); settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE] = settings.maxHeaderListSize; } if (typeof settings.enablePush === 'boolean') { flags |= (1 << IDX_SETTINGS_ENABLE_PUSH); settingsBuffer[IDX_SETTINGS_ENABLE_PUSH] = Number(settings.enablePush); } if (typeof settings.enableConnectProtocol === 'boolean') { flags |= (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL); settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] = Number(settings.enableConnectProtocol); } settingsBuffer[IDX_SETTINGS_FLAGS] = flags; } function getSessionState(session) { session.refreshState(); return { effectiveLocalWindowSize: sessionState[IDX_SESSION_STATE_EFFECTIVE_LOCAL_WINDOW_SIZE], effectiveRecvDataLength: sessionState[IDX_SESSION_STATE_EFFECTIVE_RECV_DATA_LENGTH], nextStreamID: sessionState[IDX_SESSION_STATE_NEXT_STREAM_ID], localWindowSize: sessionState[IDX_SESSION_STATE_LOCAL_WINDOW_SIZE], lastProcStreamID: sessionState[IDX_SESSION_STATE_LAST_PROC_STREAM_ID], remoteWindowSize: sessionState[IDX_SESSION_STATE_REMOTE_WINDOW_SIZE], outboundQueueSize: sessionState[IDX_SESSION_STATE_OUTBOUND_QUEUE_SIZE], deflateDynamicTableSize: sessionState[IDX_SESSION_STATE_HD_DEFLATE_DYNAMIC_TABLE_SIZE], inflateDynamicTableSize: sessionState[IDX_SESSION_STATE_HD_INFLATE_DYNAMIC_TABLE_SIZE] }; } function getStreamState(stream) { stream.refreshState(); return { state: streamState[IDX_STREAM_STATE], weight: streamState[IDX_STREAM_STATE_WEIGHT], sumDependencyWeight: streamState[IDX_STREAM_STATE_SUM_DEPENDENCY_WEIGHT], localClose: streamState[IDX_STREAM_STATE_LOCAL_CLOSE], remoteClose: streamState[IDX_STREAM_STATE_REMOTE_CLOSE], localWindowSize: streamState[IDX_STREAM_STATE_LOCAL_WINDOW_SIZE] }; } function isIllegalConnectionSpecificHeader(name, value) { switch (name) { case HTTP2_HEADER_CONNECTION: case HTTP2_HEADER_UPGRADE: case HTTP2_HEADER_HOST: case HTTP2_HEADER_HTTP2_SETTINGS: case HTTP2_HEADER_KEEP_ALIVE: case HTTP2_HEADER_PROXY_CONNECTION: case HTTP2_HEADER_TRANSFER_ENCODING: return true; case HTTP2_HEADER_TE: return value !== 'trailers'; default: return false; } } function assertValidPseudoHeader(key) { if (!kValidPseudoHeaders.has(key)) { const err = new ERR_HTTP2_INVALID_PSEUDOHEADER(key); Error.captureStackTrace(err, assertValidPseudoHeader); return err; } } function assertValidPseudoHeaderResponse(key) { if (key !== ':status') { const err = new ERR_HTTP2_INVALID_PSEUDOHEADER(key); Error.captureStackTrace(err, assertValidPseudoHeaderResponse); return err; } } function assertValidPseudoHeaderTrailer(key) { const err = new ERR_HTTP2_INVALID_PSEUDOHEADER(key); Error.captureStackTrace(err, assertValidPseudoHeaderTrailer); return err; } function mapToHeaders(map, assertValuePseudoHeader = assertValidPseudoHeader) { let ret = ''; let count = 0; const keys = Object.keys(map); const singles = new Set(); for (var i = 0; i < keys.length; i++) { let key = keys[i]; let value = map[key]; if (value === undefined || key === '') continue; key = key.toLowerCase(); const isSingleValueHeader = kSingleValueHeaders.has(key); let isArray = Array.isArray(value); if (isArray) { switch (value.length) { case 0: continue; case 1: value = String(value[0]); isArray = false; break; default: if (isSingleValueHeader) return new ERR_HTTP2_HEADER_SINGLE_VALUE(key); } } else { value = String(value); } if (isSingleValueHeader) { if (singles.has(key)) return new ERR_HTTP2_HEADER_SINGLE_VALUE(key); singles.add(key); } if (key[0] === ':') { const err = assertValuePseudoHeader(key); if (err !== undefined) return err; ret = `${key}\0${value}\0${ret}`; count++; } else { if (isIllegalConnectionSpecificHeader(key, value)) { return new ERR_HTTP2_INVALID_CONNECTION_HEADERS(key); } if (isArray) { for (var k = 0; k < value.length; k++) { const val = String(value[k]); ret += `${key}\0${val}\0`; } count += value.length; } else { ret += `${key}\0${value}\0`; count++; } } } return [ret, count]; } class NghttpError extends Error { constructor(ret) { super(binding.nghttp2ErrorString(ret)); this.code = 'ERR_HTTP2_ERROR'; this.name = 'Error [ERR_HTTP2_ERROR]'; this.errno = ret; } } function assertIsObject(value, name, types = 'Object') { if (value !== undefined && (value === null || typeof value !== 'object' || Array.isArray(value))) { const err = new ERR_INVALID_ARG_TYPE(name, types, value); Error.captureStackTrace(err, assertIsObject); throw err; } } function assertWithinRange(name, value, min = 0, max = Infinity) { if (value !== undefined && (typeof value !== 'number' || value < min || value > max)) { const err = new ERR_HTTP2_INVALID_SETTING_VALUE.RangeError(name, value); err.min = min; err.max = max; err.actual = value; Error.captureStackTrace(err, assertWithinRange); throw err; } } function toHeaderObject(headers) { const obj = Object.create(null); for (var n = 0; n < headers.length; n = n + 2) { var name = headers[n]; var value = headers[n + 1]; if (name === HTTP2_HEADER_STATUS) value |= 0; var existing = obj[name]; if (existing === undefined) { obj[name] = name === HTTP2_HEADER_SET_COOKIE ? [value] : value; } else if (!kSingleValueHeaders.has(name)) { switch (name) { case HTTP2_HEADER_COOKIE: // https://tools.ietf.org/html/rfc7540#section-8.1.2.5 // "...If there are multiple Cookie header fields after decompression, // these MUST be concatenated into a single octet string using the // two-octet delimiter of 0x3B, 0x20 (the ASCII string "; ") before // being passed into a non-HTTP/2 context." obj[name] = `${existing}; ${value}`; break; case HTTP2_HEADER_SET_COOKIE: // https://tools.ietf.org/html/rfc7230#section-3.2.2 // "Note: In practice, the "Set-Cookie" header field ([RFC6265]) often // appears multiple times in a response message and does not use the // list syntax, violating the above requirements on multiple header // fields with the same name. Since it cannot be combined into a // single field-value, recipients ought to handle "Set-Cookie" as a // special case while processing header fields." existing.push(value); break; default: // https://tools.ietf.org/html/rfc7230#section-3.2.2 // "A recipient MAY combine multiple header fields with the same field // name into one "field-name: field-value" pair, without changing the // semantics of the message, by appending each subsequent field value // to the combined field value in order, separated by a comma." obj[name] = `${existing}, ${value}`; break; } } } return obj; } function isPayloadMeaningless(method) { return kNoPayloadMethods.has(method); } function sessionName(type) { switch (type) { case NGHTTP2_SESSION_CLIENT: return 'client'; case NGHTTP2_SESSION_SERVER: return 'server'; default: return ''; } } module.exports = { assertIsObject, assertValidPseudoHeaderResponse, assertValidPseudoHeaderTrailer, assertWithinRange, getDefaultSettings, getSessionState, getSettings, getStreamState, isPayloadMeaningless, kSocket, mapToHeaders, NghttpError, sessionName, toHeaderObject, updateOptionsBuffer, updateSettingsBuffer }; internal/v8_prof_polyfill// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. module.exports = { versionCheck }; // Don't execute when required directly instead of being eval'd from // lib/internal/v8_prof_processor.js. This way we can test functions // from this file in isolation. if (module.id === 'internal/v8_prof_polyfill') return; // Node polyfill const fs = require('fs'); const cp = require('child_process'); const os = { system: function(name, args) { if (process.platform === 'linux' && name === 'nm') { // Filter out vdso and vsyscall entries. const arg = args[args.length - 1]; if (arg === '[vdso]' || arg == '[vsyscall]' || /^[0-9a-f]+-[0-9a-f]+$/.test(arg)) { return ''; } } let out = cp.spawnSync(name, args).stdout.toString(); // Auto c++filt names, but not [iItT] if (process.platform === 'darwin' && name === 'nm') out = macCppfiltNm(out); return out; } }; const print = console.log; function read(fileName) { return fs.readFileSync(fileName, 'utf8'); } const quit = process.exit; // Polyfill "readline()". const logFile = arguments[arguments.length - 1]; try { fs.accessSync(logFile); } catch(e) { console.error('Please provide a valid isolate file as the final argument.'); process.exit(1); } const fd = fs.openSync(logFile, 'r'); const buf = Buffer.allocUnsafe(4096); const dec = new (require('string_decoder').StringDecoder)('utf-8'); var line = ''; { const message = versionCheck(peekline(), process.versions.v8); if (message) console.log(message); } function peekline() { const s = readline(); line = `${s}\n${line}`; return s; } function readline() { while (true) { const lineBreak = line.indexOf('\n'); if (lineBreak !== -1) { const res = line.slice(0, lineBreak); line = line.slice(lineBreak + 1); return res; } const bytes = fs.readSync(fd, buf, 0, buf.length); line += dec.write(buf.slice(0, bytes)); if (line.length === 0) { return ''; } if (bytes === 0) { process.emitWarning(`Profile file ${logFile} is broken`, { code: 'BROKEN_PROFILE_FILE', detail: `${JSON.stringify(line)} at the file end is broken` }); return ''; } } } function versionCheck(firstLine, expected) { // v8-version looks like // "v8-version,$major,$minor,$build,$patch[,$embedder],$candidate" // whereas process.versions.v8 is either "$major.$minor.$build-$embedder" or // "$major.$minor.$build.$patch-$embedder". firstLine = firstLine.split(','); const curVer = expected.split(/[.\-]/); if (firstLine.length !== 6 && firstLine.length !== 7 || firstLine[0] !== 'v8-version') { return 'Unable to read v8-version from log file.'; } // Compare major, minor and build; ignore the patch and candidate fields. for (var i = 0; i < 3; i++) if (curVer[i] !== firstLine[i + 1]) return 'Testing v8 version different from logging version'; } function macCppfiltNm(out) { // Re-grouped copy-paste from `tickprocessor.js` const FUNC_RE = /^([0-9a-fA-F]{8,16} [iItT] )(.*)$/gm; const CLEAN_RE = /^[0-9a-fA-F]{8,16} [iItT] /; let entries = out.match(FUNC_RE); if (entries === null) return out; entries = entries.map((entry) => { return entry.replace(CLEAN_RE, '') }); let filtered; try { filtered = cp.spawnSync('c++filt', [ '-p' , '-i' ], { input: entries.join('\n') }).stdout.toString(); } catch { return out; } let i = 0; filtered = filtered.split('\n'); return out.replace(FUNC_RE, (all, prefix, postfix) => { return prefix + (filtered[i++] || postfix); }); } internal/v8_prof_processor'use strict'; const vm = require('vm'); const scriptFiles = [ 'internal/v8_prof_polyfill', 'internal/deps/v8/tools/splaytree', 'internal/deps/v8/tools/codemap', 'internal/deps/v8/tools/csvparser', 'internal/deps/v8/tools/consarray', 'internal/deps/v8/tools/profile', 'internal/deps/v8/tools/profile_view', 'internal/deps/v8/tools/logreader', 'internal/deps/v8/tools/arguments', 'internal/deps/v8/tools/tickprocessor', 'internal/deps/v8/tools/SourceMap', 'internal/deps/v8/tools/tickprocessor-driver' ]; var script = ''; scriptFiles.forEach(function(s) { script += process.binding('natives')[s] + '\n'; }); const tickArguments = []; if (process.platform === 'darwin') { tickArguments.push('--mac'); } else if (process.platform === 'win32') { tickArguments.push('--windows'); } tickArguments.push.apply(tickArguments, process.argv.slice(1)); script = `(function(module, require) { arguments = ${JSON.stringify(tickArguments)}; function write (s) { process.stdout.write(s) } function printErr(err) { console.error(err); } ${script} })`; vm.runInThisContext(script)(module, require); internal/validators'use strict'; const { ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE } = require('internal/errors').codes; function isInt32(value) { return value === (value | 0); } function isUint32(value) { return value === (value >>> 0); } const octalReg = /^[0-7]+$/; const modeDesc = 'must be a 32-bit unsigned integer or an octal string'; /** * Validate values that will be converted into mode_t (the S_* constants). * Only valid numbers and octal strings are allowed. They could be converted * to 32-bit unsigned integers or non-negative signed integers in the C++ * land, but any value higher than 0o777 will result in platform-specific * behaviors. * * @param {*} value Values to be validated * @param {string} name Name of the argument * @param {number} def If specified, will be returned for invalid values * @returns {number} */ function validateMode(value, name, def) { if (isUint32(value)) { return value; } if (typeof value === 'number') { if (!Number.isInteger(value)) { throw new ERR_OUT_OF_RANGE(name, 'an integer', value); } else { // 2 ** 32 === 4294967296 throw new ERR_OUT_OF_RANGE(name, '>= 0 && < 4294967296', value); } } if (typeof value === 'string') { if (!octalReg.test(value)) { throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc); } const parsed = parseInt(value, 8); return parsed; } // TODO(BridgeAR): Only return `def` in case `value == null` if (def !== undefined) { return def; } throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc); } function validateInteger(value, name) { let err; if (typeof value !== 'number') err = new ERR_INVALID_ARG_TYPE(name, 'number', value); else if (!Number.isSafeInteger(value)) err = new ERR_OUT_OF_RANGE(name, 'an integer', value); if (err) { Error.captureStackTrace(err, validateInteger); throw err; } return value; } function validateInt32(value, name, min = -2147483648, max = 2147483647) { // The defaults for min and max correspond to the limits of 32-bit integers. if (!isInt32(value)) { let err; if (typeof value !== 'number') { err = new ERR_INVALID_ARG_TYPE(name, 'number', value); } else if (!Number.isInteger(value)) { err = new ERR_OUT_OF_RANGE(name, 'an integer', value); } else { err = new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); } Error.captureStackTrace(err, validateInt32); throw err; } else if (value < min || value > max) { const err = new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); Error.captureStackTrace(err, validateInt32); throw err; } return value; } function validateUint32(value, name, positive) { if (!isUint32(value)) { let err; if (typeof value !== 'number') { err = new ERR_INVALID_ARG_TYPE(name, 'number', value); } else if (!Number.isInteger(value)) { err = new ERR_OUT_OF_RANGE(name, 'an integer', value); } else { const min = positive ? 1 : 0; // 2 ** 32 === 4294967296 err = new ERR_OUT_OF_RANGE(name, `>= ${min} && < 4294967296`, value); } Error.captureStackTrace(err, validateUint32); throw err; } else if (positive && value === 0) { const err = new ERR_OUT_OF_RANGE(name, '>= 1 && < 4294967296', value); Error.captureStackTrace(err, validateUint32); throw err; } return value; } function validateString(value, name) { if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value); } function validateNumber(value, name) { if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value); } module.exports = { isInt32, isUint32, validateMode, validateInteger, validateInt32, validateUint32, validateString, validateNumber }; internal/stream_base_commons'use strict'; const { Buffer } = require('buffer'); const { WriteWrap } = internalBinding('stream_wrap'); const { UV_EOF } = internalBinding('uv'); const { errnoException } = require('internal/errors'); const { owner_symbol } = require('internal/async_hooks').symbols; const kMaybeDestroy = Symbol('kMaybeDestroy'); const kUpdateTimer = Symbol('kUpdateTimer'); function handleWriteReq(req, data, encoding) { const { handle } = req; switch (encoding) { case 'buffer': return handle.writeBuffer(req, data); case 'latin1': case 'binary': return handle.writeLatin1String(req, data); case 'utf8': case 'utf-8': return handle.writeUtf8String(req, data); case 'ascii': return handle.writeAsciiString(req, data); case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return handle.writeUcs2String(req, data); default: return handle.writeBuffer(req, Buffer.from(data, encoding)); } } function createWriteWrap(handle, oncomplete) { var req = new WriteWrap(); req.handle = handle; req.oncomplete = oncomplete; req.async = false; return req; } function writevGeneric(self, req, data, cb) { var allBuffers = data.allBuffers; var chunks; var i; if (allBuffers) { chunks = data; for (i = 0; i < data.length; i++) data[i] = data[i].chunk; } else { chunks = new Array(data.length << 1); for (i = 0; i < data.length; i++) { var entry = data[i]; chunks[i * 2] = entry.chunk; chunks[i * 2 + 1] = entry.encoding; } } var err = req.handle.writev(req, chunks, allBuffers); // Retain chunks if (err === 0) req._chunks = chunks; afterWriteDispatched(self, req, err, cb); } function writeGeneric(self, req, data, encoding, cb) { var err = handleWriteReq(req, data, encoding); afterWriteDispatched(self, req, err, cb); } function afterWriteDispatched(self, req, err, cb) { if (err !== 0) return self.destroy(errnoException(err, 'write', req.error), cb); if (!req.async) { cb(); } else { req.callback = cb; } } function onStreamRead(nread, buf) { const handle = this; const stream = this[owner_symbol]; stream[kUpdateTimer](); if (nread > 0 && !stream.destroyed) { if (!stream.push(buf)) { handle.reading = false; if (!stream.destroyed) { const err = handle.readStop(); if (err) stream.destroy(errnoException(err, 'read')); } } return; } if (nread === 0) { return; } if (nread !== UV_EOF) { return stream.destroy(errnoException(nread, 'read')); } // defer this until we actually emit end if (stream._readableState.endEmitted) { if (stream[kMaybeDestroy]) stream[kMaybeDestroy](); } else { if (stream[kMaybeDestroy]) stream.on('end', stream[kMaybeDestroy]); // push a null to signal the end of data. // Do it before `maybeDestroy` for correct order of events: // `end` -> `close` stream.push(null); stream.read(0); } } module.exports = { createWriteWrap, writevGeneric, writeGeneric, onStreamRead, kMaybeDestroy, kUpdateTimer, }; internal/vm/source_text_module'use strict'; const { URL } = require('internal/url'); const { isContext } = process.binding('contextify'); const { ERR_INVALID_ARG_TYPE, ERR_OUT_OF_RANGE, ERR_VM_MODULE_ALREADY_LINKED, ERR_VM_MODULE_DIFFERENT_CONTEXT, ERR_VM_MODULE_LINKING_ERRORED, ERR_VM_MODULE_NOT_LINKED, ERR_VM_MODULE_NOT_MODULE, ERR_VM_MODULE_STATUS } = require('internal/errors').codes; const { getConstructorOf, customInspectSymbol, emitExperimentalWarning } = require('internal/util'); const { SafePromise } = require('internal/safe_globals'); const { ModuleWrap, kUninstantiated, kInstantiating, kInstantiated, kEvaluating, kEvaluated, kErrored, } = internalBinding('module_wrap'); const STATUS_MAP = { [kUninstantiated]: 'uninstantiated', [kInstantiating]: 'instantiating', [kInstantiated]: 'instantiated', [kEvaluating]: 'evaluating', [kEvaluated]: 'evaluated', [kErrored]: 'errored', }; let globalModuleId = 0; const perContextModuleId = new WeakMap(); const wrapMap = new WeakMap(); const dependencyCacheMap = new WeakMap(); const linkingStatusMap = new WeakMap(); // vm.SourceTextModule -> function const initImportMetaMap = new WeakMap(); // ModuleWrap -> vm.SourceTextModule const wrapToModuleMap = new WeakMap(); const defaultModuleName = 'vm:module'; // TODO(devsnek): figure out AbstractModule class or protocol class SourceTextModule { constructor(src, options = {}) { emitExperimentalWarning('vm.SourceTextModule'); if (typeof src !== 'string') throw new ERR_INVALID_ARG_TYPE('src', 'string', src); if (typeof options !== 'object' || options === null) throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); const { context, lineOffset = 0, columnOffset = 0, initializeImportMeta } = options; if (context !== undefined) { if (typeof context !== 'object' || context === null) { throw new ERR_INVALID_ARG_TYPE('options.context', 'Object', context); } if (!isContext(context)) { throw new ERR_INVALID_ARG_TYPE('options.context', 'vm.Context', context); } } let { url } = options; if (url !== undefined) { if (typeof url !== 'string') { throw new ERR_INVALID_ARG_TYPE('options.url', 'string', url); } url = new URL(url).href; } else if (context === undefined) { url = `${defaultModuleName}(${globalModuleId++})`; } else if (perContextModuleId.has(context)) { const curId = perContextModuleId.get(context); url = `${defaultModuleName}(${curId})`; perContextModuleId.set(context, curId + 1); } else { url = `${defaultModuleName}(0)`; perContextModuleId.set(context, 1); } validateInteger(lineOffset, 'options.lineOffset'); validateInteger(columnOffset, 'options.columnOffset'); if (initializeImportMeta !== undefined) { if (typeof initializeImportMeta === 'function') { initImportMetaMap.set(this, initializeImportMeta); } else { throw new ERR_INVALID_ARG_TYPE( 'options.initializeImportMeta', 'function', initializeImportMeta); } } const wrap = new ModuleWrap(src, url, context, lineOffset, columnOffset); wrapMap.set(this, wrap); linkingStatusMap.set(this, 'unlinked'); wrapToModuleMap.set(wrap, this); Object.defineProperties(this, { url: { value: url, enumerable: true }, context: { value: context, enumerable: true }, }); } get linkingStatus() { return linkingStatusMap.get(this); } get status() { return STATUS_MAP[wrapMap.get(this).getStatus()]; } get namespace() { const wrap = wrapMap.get(this); if (wrap.getStatus() < kInstantiated) throw new ERR_VM_MODULE_STATUS( 'must not be uninstantiated or instantiating' ); return wrap.namespace(); } get dependencySpecifiers() { let deps = dependencyCacheMap.get(this); if (deps !== undefined) return deps; deps = wrapMap.get(this).getStaticDependencySpecifiers(); Object.freeze(deps); dependencyCacheMap.set(this, deps); return deps; } get error() { const wrap = wrapMap.get(this); if (wrap.getStatus() !== kErrored) throw new ERR_VM_MODULE_STATUS('must be errored'); return wrap.getError(); } async link(linker) { if (typeof linker !== 'function') throw new ERR_INVALID_ARG_TYPE('linker', 'function', linker); if (linkingStatusMap.get(this) !== 'unlinked') throw new ERR_VM_MODULE_ALREADY_LINKED(); const wrap = wrapMap.get(this); if (wrap.getStatus() !== kUninstantiated) throw new ERR_VM_MODULE_STATUS('must be uninstantiated'); linkingStatusMap.set(this, 'linking'); const promises = wrap.link(async (specifier) => { const m = await linker(specifier, this); if (!m || !wrapMap.has(m)) throw new ERR_VM_MODULE_NOT_MODULE(); if (m.context !== this.context) throw new ERR_VM_MODULE_DIFFERENT_CONTEXT(); const childLinkingStatus = linkingStatusMap.get(m); if (childLinkingStatus === 'errored') throw new ERR_VM_MODULE_LINKING_ERRORED(); if (childLinkingStatus === 'unlinked') await m.link(linker); return wrapMap.get(m); }); try { if (promises !== undefined) await SafePromise.all(promises); linkingStatusMap.set(this, 'linked'); } catch (err) { linkingStatusMap.set(this, 'errored'); throw err; } } instantiate() { const wrap = wrapMap.get(this); const status = wrap.getStatus(); if (status === kInstantiating || status === kEvaluating) throw new ERR_VM_MODULE_STATUS('must not be instantiating or evaluating'); if (linkingStatusMap.get(this) !== 'linked') throw new ERR_VM_MODULE_NOT_LINKED(); wrap.instantiate(); } async evaluate(options = {}) { if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } let timeout = options.timeout; if (timeout === undefined) { timeout = -1; } else if (!Number.isInteger(timeout) || timeout <= 0) { throw new ERR_INVALID_ARG_TYPE('options.timeout', 'a positive integer', timeout); } const { breakOnSigint = false } = options; if (typeof breakOnSigint !== 'boolean') { throw new ERR_INVALID_ARG_TYPE('options.breakOnSigint', 'boolean', breakOnSigint); } const wrap = wrapMap.get(this); const status = wrap.getStatus(); if (status !== kInstantiated && status !== kEvaluated && status !== kErrored) { throw new ERR_VM_MODULE_STATUS( 'must be one of instantiated, evaluated, and errored' ); } const result = wrap.evaluate(timeout, breakOnSigint); return { result, __proto__: null }; } [customInspectSymbol](depth, options) { let ctor = getConstructorOf(this); ctor = ctor === null ? SourceTextModule : ctor; if (typeof depth === 'number' && depth < 0) return options.stylize(`[${ctor.name}]`, 'special'); const o = Object.create({ constructor: ctor }); o.status = this.status; o.linkingStatus = this.linkingStatus; o.url = this.url; o.context = this.context; return require('util').inspect(o, options); } } function validateInteger(prop, propName) { if (!Number.isInteger(prop)) { throw new ERR_INVALID_ARG_TYPE(propName, 'integer', prop); } if ((prop >> 0) !== prop) { throw new ERR_OUT_OF_RANGE(propName, '32-bit integer', prop); } } module.exports = { SourceTextModule, initImportMetaMap, wrapToModuleMap }; internal/worker'use strict'; const EventEmitter = require('events'); const assert = require('assert'); const path = require('path'); const util = require('util'); const { Readable, Writable } = require('stream'); const { ERR_INVALID_ARG_TYPE, ERR_WORKER_PATH, ERR_WORKER_UNSERIALIZABLE_ERROR, ERR_WORKER_UNSUPPORTED_EXTENSION, } = require('internal/errors').codes; const { MessagePort, MessageChannel } = internalBinding('messaging'); const { handle_onclose: handleOnCloseSymbol, oninit: onInitSymbol } = internalBinding('symbols'); const { clearAsyncIdStack } = require('internal/async_hooks'); const { serializeError, deserializeError } = require('internal/error-serdes'); const { pathToFileURL } = require('url'); const { Worker: WorkerImpl, getEnvMessagePort, threadId } = internalBinding('worker'); const isMainThread = threadId === 0; const kOnMessageListener = Symbol('kOnMessageListener'); const kHandle = Symbol('kHandle'); const kName = Symbol('kName'); const kPort = Symbol('kPort'); const kPublicPort = Symbol('kPublicPort'); const kDispose = Symbol('kDispose'); const kOnExit = Symbol('kOnExit'); const kOnMessage = Symbol('kOnMessage'); const kOnCouldNotSerializeErr = Symbol('kOnCouldNotSerializeErr'); const kOnErrorMessage = Symbol('kOnErrorMessage'); const kParentSideStdio = Symbol('kParentSideStdio'); const kWritableCallbacks = Symbol('kWritableCallbacks'); const kStdioWantsMoreDataCallback = Symbol('kStdioWantsMoreDataCallback'); const kStartedReading = Symbol('kStartedReading'); const kWaitingStreams = Symbol('kWaitingStreams'); const kIncrementsPortRef = Symbol('kIncrementsPortRef'); const debug = util.debuglog('worker'); const messageTypes = { UP_AND_RUNNING: 'upAndRunning', COULD_NOT_SERIALIZE_ERROR: 'couldNotSerializeError', ERROR_MESSAGE: 'errorMessage', STDIO_PAYLOAD: 'stdioPayload', STDIO_WANTS_MORE_DATA: 'stdioWantsMoreData', LOAD_SCRIPT: 'loadScript' }; // We have to mess with the MessagePort prototype a bit, so that a) we can make // it inherit from EventEmitter, even though it is a C++ class, and b) we do // not provide methods that are not present in the Browser and not documented // on our side (e.g. hasRef). // Save a copy of the original set of methods as a shallow clone. const MessagePortPrototype = Object.create( Object.getPrototypeOf(MessagePort.prototype), Object.getOwnPropertyDescriptors(MessagePort.prototype)); // Set up the new inheritance chain. Object.setPrototypeOf(MessagePort, EventEmitter); Object.setPrototypeOf(MessagePort.prototype, EventEmitter.prototype); // Finally, purge methods we don't want to be public. delete MessagePort.prototype.stop; delete MessagePort.prototype.drain; MessagePort.prototype.ref = MessagePortPrototype.ref; MessagePort.prototype.unref = MessagePortPrototype.unref; // A communication channel consisting of a handle (that wraps around an // uv_async_t) which can receive information from other threads and emits // .onmessage events, and a function used for sending data to a MessagePort // in some other thread. MessagePort.prototype[kOnMessageListener] = function onmessage(payload) { debug(`[${threadId}] received message`, payload); // Emit the deserialized object to userland. this.emit('message', payload); }; // This is for compatibility with the Web's MessagePort API. It makes sense to // provide it as an `EventEmitter` in Node.js, but if somebody overrides // `onmessage`, we'll switch over to the Web API model. Object.defineProperty(MessagePort.prototype, 'onmessage', { enumerable: true, configurable: true, get() { return this[kOnMessageListener]; }, set(value) { this[kOnMessageListener] = value; if (typeof value === 'function') { this.ref(); MessagePortPrototype.start.call(this); } else { this.unref(); MessagePortPrototype.stop.call(this); } } }); // This is called from inside the `MessagePort` constructor. function oninit() { setupPortReferencing(this, this, 'message'); } Object.defineProperty(MessagePort.prototype, onInitSymbol, { enumerable: true, writable: false, value: oninit }); // This is called after the underlying `uv_async_t` has been closed. function onclose() { if (typeof this.onclose === 'function') { // Not part of the Web standard yet, but there aren't many reasonable // alternatives in a non-EventEmitter usage setting. // Refs: https://github.com/whatwg/html/issues/1766 this.onclose(); } this.emit('close'); } Object.defineProperty(MessagePort.prototype, handleOnCloseSymbol, { enumerable: false, writable: false, value: onclose }); MessagePort.prototype.close = function(cb) { if (typeof cb === 'function') this.once('close', cb); MessagePortPrototype.close.call(this); }; Object.defineProperty(MessagePort.prototype, util.inspect.custom, { enumerable: false, writable: false, value: function inspect() { // eslint-disable-line func-name-matching let ref; try { // This may throw when `this` does not refer to a native object, // e.g. when accessing the prototype directly. ref = MessagePortPrototype.hasRef.call(this); } catch { return this; } return Object.assign(Object.create(MessagePort.prototype), ref === undefined ? { active: false, } : { active: true, refed: ref }, this); } }); function setupPortReferencing(port, eventEmitter, eventName) { // Keep track of whether there are any workerMessage listeners: // If there are some, ref() the channel so it keeps the event loop alive. // If there are none or all are removed, unref() the channel so the worker // can shutdown gracefully. port.unref(); eventEmitter.on('newListener', (name) => { if (name === eventName && eventEmitter.listenerCount(eventName) === 0) { port.ref(); MessagePortPrototype.start.call(port); } }); eventEmitter.on('removeListener', (name) => { if (name === eventName && eventEmitter.listenerCount(eventName) === 0) { MessagePortPrototype.stop.call(port); port.unref(); } }); } class ReadableWorkerStdio extends Readable { constructor(port, name) { super(); this[kPort] = port; this[kName] = name; this[kIncrementsPortRef] = true; this[kStartedReading] = false; this.on('end', () => { if (this[kIncrementsPortRef] && --this[kPort][kWaitingStreams] === 0) this[kPort].unref(); }); } _read() { if (!this[kStartedReading] && this[kIncrementsPortRef]) { this[kStartedReading] = true; if (this[kPort][kWaitingStreams]++ === 0) this[kPort].ref(); } this[kPort].postMessage({ type: messageTypes.STDIO_WANTS_MORE_DATA, stream: this[kName] }); } } class WritableWorkerStdio extends Writable { constructor(port, name) { super({ decodeStrings: false }); this[kPort] = port; this[kName] = name; this[kWritableCallbacks] = []; } _write(chunk, encoding, cb) { this[kPort].postMessage({ type: messageTypes.STDIO_PAYLOAD, stream: this[kName], chunk, encoding }); this[kWritableCallbacks].push(cb); if (this[kPort][kWaitingStreams]++ === 0) this[kPort].ref(); } _final(cb) { this[kPort].postMessage({ type: messageTypes.STDIO_PAYLOAD, stream: this[kName], chunk: null }); cb(); } [kStdioWantsMoreDataCallback]() { const cbs = this[kWritableCallbacks]; this[kWritableCallbacks] = []; for (const cb of cbs) cb(); if ((this[kPort][kWaitingStreams] -= cbs.length) === 0) this[kPort].unref(); } } class Worker extends EventEmitter { constructor(filename, options = {}) { super(); debug(`[${threadId}] create new worker`, filename, options); if (typeof filename !== 'string') { throw new ERR_INVALID_ARG_TYPE('filename', 'string', filename); } if (!options.eval) { if (!path.isAbsolute(filename) && !filename.startsWith('./') && !filename.startsWith('../') && !filename.startsWith('.' + path.sep) && !filename.startsWith('..' + path.sep)) { throw new ERR_WORKER_PATH(filename); } filename = path.resolve(filename); const ext = path.extname(filename); if (ext !== '.js' && ext !== '.mjs') { throw new ERR_WORKER_UNSUPPORTED_EXTENSION(ext); } } const url = options.eval ? null : pathToFileURL(filename); // Set up the C++ handle for the worker, as well as some internal wiring. this[kHandle] = new WorkerImpl(url); this[kHandle].onexit = (code) => this[kOnExit](code); this[kPort] = this[kHandle].messagePort; this[kPort].on('message', (data) => this[kOnMessage](data)); this[kPort].start(); this[kPort].unref(); this[kPort][kWaitingStreams] = 0; debug(`[${threadId}] created Worker with ID ${this.threadId}`); let stdin = null; if (options.stdin) stdin = new WritableWorkerStdio(this[kPort], 'stdin'); const stdout = new ReadableWorkerStdio(this[kPort], 'stdout'); if (!options.stdout) { stdout[kIncrementsPortRef] = false; pipeWithoutWarning(stdout, process.stdout); } const stderr = new ReadableWorkerStdio(this[kPort], 'stderr'); if (!options.stderr) { stderr[kIncrementsPortRef] = false; pipeWithoutWarning(stderr, process.stderr); } this[kParentSideStdio] = { stdin, stdout, stderr }; const { port1, port2 } = new MessageChannel(); this[kPublicPort] = port1; this[kPublicPort].on('message', (message) => this.emit('message', message)); setupPortReferencing(this[kPublicPort], this, 'message'); this[kPort].postMessage({ type: messageTypes.LOAD_SCRIPT, filename, doEval: !!options.eval, workerData: options.workerData, publicPort: port2, hasStdin: !!options.stdin }, [port2]); // Actually start the new thread now that everything is in place. this[kHandle].startThread(); } [kOnExit](code) { debug(`[${threadId}] hears end event for Worker ${this.threadId}`); MessagePortPrototype.drain.call(this[kPublicPort]); this[kDispose](); this.emit('exit', code); this.removeAllListeners(); } [kOnCouldNotSerializeErr]() { this.emit('error', new ERR_WORKER_UNSERIALIZABLE_ERROR()); } [kOnErrorMessage](serialized) { // This is what is called for uncaught exceptions. const error = deserializeError(serialized); this.emit('error', error); } [kOnMessage](message) { switch (message.type) { case messageTypes.UP_AND_RUNNING: return this.emit('online'); case messageTypes.COULD_NOT_SERIALIZE_ERROR: return this[kOnCouldNotSerializeErr](); case messageTypes.ERROR_MESSAGE: return this[kOnErrorMessage](message.error); case messageTypes.STDIO_PAYLOAD: { const { stream, chunk, encoding } = message; return this[kParentSideStdio][stream].push(chunk, encoding); } case messageTypes.STDIO_WANTS_MORE_DATA: { const { stream } = message; return this[kParentSideStdio][stream][kStdioWantsMoreDataCallback](); } } assert.fail(`Unknown worker message type ${message.type}`); } [kDispose]() { this[kHandle].onexit = null; this[kHandle] = null; this[kPort] = null; this[kPublicPort] = null; const { stdout, stderr } = this[kParentSideStdio]; this[kParentSideStdio] = null; if (!stdout._readableState.ended) { debug(`[${threadId}] explicitly closes stdout for ${this.threadId}`); stdout.push(null); } if (!stderr._readableState.ended) { debug(`[${threadId}] explicitly closes stderr for ${this.threadId}`); stderr.push(null); } } postMessage(...args) { this[kPublicPort].postMessage(...args); } terminate(callback) { if (this[kHandle] === null) return; debug(`[${threadId}] terminates Worker with ID ${this.threadId}`); if (typeof callback !== 'undefined') this.once('exit', (exitCode) => callback(null, exitCode)); this[kHandle].stopThread(); } ref() { if (this[kHandle] === null) return; this[kHandle].ref(); this[kPublicPort].ref(); } unref() { if (this[kHandle] === null) return; this[kHandle].unref(); this[kPublicPort].unref(); } get threadId() { if (this[kHandle] === null) return -1; return this[kHandle].threadId; } get stdin() { return this[kParentSideStdio].stdin; } get stdout() { return this[kParentSideStdio].stdout; } get stderr() { return this[kParentSideStdio].stderr; } } const workerStdio = {}; if (!isMainThread) { const port = getEnvMessagePort(); port[kWaitingStreams] = 0; workerStdio.stdin = new ReadableWorkerStdio(port, 'stdin'); workerStdio.stdout = new WritableWorkerStdio(port, 'stdout'); workerStdio.stderr = new WritableWorkerStdio(port, 'stderr'); } let originalFatalException; function setupChild(evalScript) { // Called during bootstrap to set up worker script execution. debug(`[${threadId}] is setting up worker child environment`); const port = getEnvMessagePort(); const publicWorker = require('worker_threads'); port.on('message', (message) => { if (message.type === messageTypes.LOAD_SCRIPT) { const { filename, doEval, workerData, publicPort, hasStdin } = message; publicWorker.parentPort = publicPort; publicWorker.workerData = workerData; if (!hasStdin) workerStdio.stdin.push(null); debug(`[${threadId}] starts worker script ${filename} ` + `(eval = ${eval}) at cwd = ${process.cwd()}`); port.unref(); port.postMessage({ type: messageTypes.UP_AND_RUNNING }); if (doEval) { evalScript('[worker eval]', filename); } else { process.argv[1] = filename; // script filename require('module').runMain(); } return; } else if (message.type === messageTypes.STDIO_PAYLOAD) { const { stream, chunk, encoding } = message; workerStdio[stream].push(chunk, encoding); return; } else if (message.type === messageTypes.STDIO_WANTS_MORE_DATA) { const { stream } = message; workerStdio[stream][kStdioWantsMoreDataCallback](); return; } assert.fail(`Unknown worker message type ${message.type}`); }); port.start(); originalFatalException = process._fatalException; process._fatalException = fatalException; function fatalException(error) { debug(`[${threadId}] gets fatal exception`); let caught = false; try { caught = originalFatalException.call(this, error); } catch (e) { error = e; } debug(`[${threadId}] fatal exception caught = ${caught}`); if (!caught) { let serialized; try { serialized = serializeError(error); } catch {} debug(`[${threadId}] fatal exception serialized = ${!!serialized}`); if (serialized) port.postMessage({ type: messageTypes.ERROR_MESSAGE, error: serialized }); else port.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR }); clearAsyncIdStack(); process.exit(); } } } function pipeWithoutWarning(source, dest) { const sourceMaxListeners = source._maxListeners; const destMaxListeners = dest._maxListeners; source.setMaxListeners(Infinity); dest.setMaxListeners(Infinity); source.pipe(dest); source._maxListeners = sourceMaxListeners; dest._maxListeners = destMaxListeners; } module.exports = { MessagePort, MessageChannel, threadId, Worker, setupChild, isMainThread, workerStdio }; internal/streams/lazy_transform// LazyTransform is a special type of Transform stream that is lazily loaded. // This is used for performance with bi-API-ship: when two APIs are available // for the stream, one conventional and one non-conventional. 'use strict'; const stream = require('stream'); const util = require('util'); const { getDefaultEncoding } = require('internal/crypto/util'); module.exports = LazyTransform; function LazyTransform(options) { this._options = options; this.writable = true; this.readable = true; } util.inherits(LazyTransform, stream.Transform); function makeGetter(name) { return function() { stream.Transform.call(this, this._options); this._writableState.decodeStrings = false; if (!this._options || !this._options.defaultEncoding) { this._writableState.defaultEncoding = getDefaultEncoding(); } return this[name]; }; } function makeSetter(name) { return function(val) { Object.defineProperty(this, name, { value: val, enumerable: true, configurable: true, writable: true }); }; } Object.defineProperties(LazyTransform.prototype, { _readableState: { get: makeGetter('_readableState'), set: makeSetter('_readableState'), configurable: true, enumerable: true }, _writableState: { get: makeGetter('_writableState'), set: makeSetter('_writableState'), configurable: true, enumerable: true }, _transformState: { get: makeGetter('_transformState'), set: makeSetter('_transformState'), configurable: true, enumerable: true } }); internal/streams/async_iterator'use strict'; const finished = require('internal/streams/end-of-stream'); const kLastResolve = Symbol('lastResolve'); const kLastReject = Symbol('lastReject'); const kError = Symbol('error'); const kEnded = Symbol('ended'); const kLastPromise = Symbol('lastPromise'); const kHandlePromise = Symbol('handlePromise'); const kStream = Symbol('stream'); function createIterResult(value, done) { return { value, done }; } function readAndResolve(iter) { const resolve = iter[kLastResolve]; if (resolve !== null) { const data = iter[kStream].read(); // we defer if data is null // we can be expecting either 'end' or // 'error' if (data !== null) { iter[kLastPromise] = null; iter[kLastResolve] = null; iter[kLastReject] = null; resolve(createIterResult(data, false)); } } } function onReadable(iter) { // we wait for the next tick, because it might // emit an error with process.nextTick process.nextTick(readAndResolve, iter); } function wrapForNext(lastPromise, iter) { return function(resolve, reject) { lastPromise.then(function() { iter[kHandlePromise](resolve, reject); }, reject); }; } const AsyncIteratorPrototype = Object.getPrototypeOf( Object.getPrototypeOf(async function* () {}).prototype); const ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({ get stream() { return this[kStream]; }, next() { // if we have detected an error in the meanwhile // reject straight away const error = this[kError]; if (error !== null) { return Promise.reject(error); } if (this[kEnded]) { return Promise.resolve(createIterResult(null, true)); } if (this[kStream].destroyed) { // We need to defer via nextTick because if .destroy(err) is // called, the error will be emitted via nextTick, and // we cannot guarantee that there is no error lingering around // waiting to be emitted. return new Promise((resolve, reject) => { process.nextTick(() => { if (this[kError]) { reject(this[kError]); } else { resolve(createIterResult(null, true)); } }); }); } // if we have multiple next() calls // we will wait for the previous Promise to finish // this logic is optimized to support for await loops, // where next() is only called once at a time const lastPromise = this[kLastPromise]; let promise; if (lastPromise) { promise = new Promise(wrapForNext(lastPromise, this)); } else { // fast path needed to support multiple this.push() // without triggering the next() queue const data = this[kStream].read(); if (data !== null) { return Promise.resolve(createIterResult(data, false)); } promise = new Promise(this[kHandlePromise]); } this[kLastPromise] = promise; return promise; }, return() { // destroy(err, cb) is a private API // we can guarantee we have that here, because we control the // Readable class this is attached to return new Promise((resolve, reject) => { this[kStream].destroy(null, (err) => { if (err) { reject(err); return; } resolve(createIterResult(null, true)); }); }); }, }, AsyncIteratorPrototype); const createReadableStreamAsyncIterator = (stream) => { const iterator = Object.create(ReadableStreamAsyncIteratorPrototype, { [kStream]: { value: stream, writable: true }, [kLastResolve]: { value: null, writable: true }, [kLastReject]: { value: null, writable: true }, [kError]: { value: null, writable: true }, [kEnded]: { value: stream._readableState.endEmitted, writable: true }, [kLastPromise]: { value: null, writable: true }, // the function passed to new Promise // is cached so we avoid allocating a new // closure at every run [kHandlePromise]: { value: (resolve, reject) => { const data = iterator[kStream].read(); if (data) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(data, false)); } else { iterator[kLastResolve] = resolve; iterator[kLastReject] = reject; } }, writable: true, }, }); finished(stream, (err) => { if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { const reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise // returned by next() and store the error if (reject !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; reject(err); } iterator[kError] = err; return; } const resolve = iterator[kLastResolve]; if (resolve !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(null, true)); } iterator[kEnded] = true; }); stream.on('readable', onReadable.bind(null, iterator)); return iterator; }; module.exports = createReadableStreamAsyncIterator; internal/streams/buffer_list'use strict'; const { Buffer } = require('buffer'); const { inspect } = require('util'); function copyBuffer(src, target, offset) { Buffer.prototype.copy.call(src, target, offset); } module.exports = class BufferList { constructor() { this.head = null; this.tail = null; this.length = 0; } push(v) { const entry = { data: v, next: null }; if (this.length > 0) this.tail.next = entry; else this.head = entry; this.tail = entry; ++this.length; } unshift(v) { const entry = { data: v, next: this.head }; if (this.length === 0) this.tail = entry; this.head = entry; ++this.length; } shift() { if (this.length === 0) return; const ret = this.head.data; if (this.length === 1) this.head = this.tail = null; else this.head = this.head.next; --this.length; return ret; } clear() { this.head = this.tail = null; this.length = 0; } join(s) { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; while (p = p.next) ret += s + p.data; return ret; } concat(n) { if (this.length === 0) return Buffer.alloc(0); const ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } return ret; } // Consumes a specified amount of bytes or characters from the buffered data. consume(n, hasStrings) { var ret; if (n < this.head.data.length) { // `slice` is the same for buffers and strings. ret = this.head.data.slice(0, n); this.head.data = this.head.data.slice(n); } else if (n === this.head.data.length) { // First chunk is a perfect match. ret = this.shift(); } else { // Result spans more than one buffer. ret = hasStrings ? this._getString(n) : this._getBuffer(n); } return ret; } first() { return this.head.data; } // Consumes a specified amount of characters from the buffered data. _getString(n) { var p = this.head; var c = 1; var ret = p.data; n -= ret.length; while (p = p.next) { const str = p.data; const nb = (n > str.length ? str.length : n); if (nb === str.length) ret += str; else ret += str.slice(0, n); n -= nb; if (n === 0) { if (nb === str.length) { ++c; if (p.next) this.head = p.next; else this.head = this.tail = null; } else { this.head = p; p.data = str.slice(nb); } break; } ++c; } this.length -= c; return ret; } // Consumes a specified amount of bytes from the buffered data. _getBuffer(n) { const ret = Buffer.allocUnsafe(n); var p = this.head; var c = 1; p.data.copy(ret); n -= p.data.length; while (p = p.next) { const buf = p.data; const nb = (n > buf.length ? buf.length : n); buf.copy(ret, ret.length - n, 0, nb); n -= nb; if (n === 0) { if (nb === buf.length) { ++c; if (p.next) this.head = p.next; else this.head = this.tail = null; } else { this.head = p; p.data = buf.slice(nb); } break; } ++c; } this.length -= c; return ret; } // Make sure the linked list only shows the minimal necessary information. [inspect.custom](_, options) { return inspect(this, { ...options, // Only inspect one level. depth: 0, // It should not recurse. customInspect: false }); } }; internal/streams/duplexpair'use strict'; const { Duplex } = require('stream'); const kCallback = Symbol('Callback'); const kOtherSide = Symbol('Other'); class DuplexSocket extends Duplex { constructor() { super(); this[kCallback] = null; this[kOtherSide] = null; } _read() { const callback = this[kCallback]; if (callback) { this[kCallback] = null; callback(); } } _write(chunk, encoding, callback) { this[kOtherSide][kCallback] = callback; this[kOtherSide].push(chunk); } _final(callback) { this[kOtherSide].on('end', callback); this[kOtherSide].push(null); } } class DuplexPair { constructor() { this.socket1 = new DuplexSocket(); this.socket2 = new DuplexSocket(); this.socket1[kOtherSide] = this.socket2; this.socket2[kOtherSide] = this.socket1; } } module.exports = DuplexPair; internal/streams/legacy'use strict'; const EE = require('events'); const util = require('util'); function Stream() { EE.call(this); } util.inherits(Stream, EE); Stream.prototype.pipe = function(dest, options) { var source = this; function ondata(chunk) { if (dest.writable && dest.write(chunk) === false && source.pause) { source.pause(); } } source.on('data', ondata); function ondrain() { if (source.readable && source.resume) { source.resume(); } } dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when // source gets the 'end' or 'close' events. Only dest.end() once. if (!dest._isStdio && (!options || options.end !== false)) { source.on('end', onend); source.on('close', onclose); } var didOnEnd = false; function onend() { if (didOnEnd) return; didOnEnd = true; dest.end(); } function onclose() { if (didOnEnd) return; didOnEnd = true; if (typeof dest.destroy === 'function') dest.destroy(); } // don't leave dangling pipes when there are errors. function onerror(er) { cleanup(); if (EE.listenerCount(this, 'error') === 0) { throw er; // Unhandled stream error in pipe. } } source.on('error', onerror); dest.on('error', onerror); // remove all the event listeners that were added. function cleanup() { source.removeListener('data', ondata); dest.removeListener('drain', ondrain); source.removeListener('end', onend); source.removeListener('close', onclose); source.removeListener('error', onerror); dest.removeListener('error', onerror); source.removeListener('end', cleanup); source.removeListener('close', cleanup); dest.removeListener('close', cleanup); } source.on('end', cleanup); source.on('close', cleanup); dest.on('close', cleanup); dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C) return dest; }; module.exports = Stream; internal/streams/destroy'use strict'; // undocumented cb() API, needed for core, not for public API function destroy(err, cb) { const readableDestroyed = this._readableState && this._readableState.destroyed; const writableDestroyed = this._writableState && this._writableState.destroyed; if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { process.nextTick(emitErrorNT, this, err); } return this; } // we set destroyed to true before firing error callbacks in order // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; } // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } this._destroy(err || null, (err) => { if (!cb && err) { process.nextTick(emitErrorAndCloseNT, this, err); if (this._writableState) { this._writableState.errorEmitted = true; } } else if (cb) { process.nextTick(emitCloseNT, this); cb(err); } else { process.nextTick(emitCloseNT, this); } }); return this; } function emitErrorAndCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } function emitCloseNT(self) { if (self._writableState && !self._writableState.emitClose) return; if (self._readableState && !self._readableState.emitClose) return; self.emit('close'); } function undestroy() { if (this._readableState) { this._readableState.destroyed = false; this._readableState.reading = false; this._readableState.ended = false; this._readableState.endEmitted = false; } if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; this._writableState.ending = false; this._writableState.finalCalled = false; this._writableState.prefinished = false; this._writableState.finished = false; this._writableState.errorEmitted = false; } } function emitErrorNT(self, err) { self.emit('error', err); } module.exports = { destroy, undestroy }; internal/streams/state'use strict'; const { ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } function getHighWaterMark(state, options, duplexKey, isDuplex) { const hwm = highWaterMarkFrom(options, isDuplex, duplexKey); if (hwm != null) { if (!Number.isInteger(hwm) || hwm < 0) { const name = isDuplex ? duplexKey : 'highWaterMark'; throw new ERR_INVALID_OPT_VALUE(name, hwm); } return Math.floor(hwm); } // Default value return state.objectMode ? 16 : 16 * 1024; } module.exports = { getHighWaterMark }; internal/streams/pipeline// Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). 'use strict'; let eos; const { once } = require('internal/util'); const { ERR_MISSING_ARGS, ERR_STREAM_DESTROYED } = require('internal/errors').codes; function noop(err) { // Rethrow the error if it exists to avoid swallowing it if (err) throw err; } function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } function destroyer(stream, reading, writing, callback) { callback = once(callback); let closed = false; stream.on('close', () => { closed = true; }); if (eos === undefined) eos = require('internal/streams/end-of-stream'); eos(stream, { readable: reading, writable: writing }, (err) => { if (err) return callback(err); closed = true; callback(); }); let destroyed = false; return (err) => { if (closed) return; if (destroyed) return; destroyed = true; // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); if (typeof stream.destroy === 'function') return stream.destroy(); callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } function call(fn) { fn(); } function pipe(from, to) { return from.pipe(to); } function popCallback(streams) { if (!streams.length) return noop; if (typeof streams[streams.length - 1] !== 'function') return noop; return streams.pop(); } function pipeline(...streams) { const callback = popCallback(streams); if (Array.isArray(streams[0])) streams = streams[0]; if (streams.length < 2) { throw new ERR_MISSING_ARGS('streams'); } let error; const destroys = streams.map(function(stream, i) { const reading = i < streams.length - 1; const writing = i > 0; return destroyer(stream, reading, writing, function(err) { if (!error) error = err; if (err) destroys.forEach(call); if (reading) return; destroys.forEach(call); callback(error); }); }); return streams.reduce(pipe); } module.exports = pipeline; internal/streams/end-of-stream// Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). 'use strict'; const { ERR_STREAM_PREMATURE_CLOSE } = require('internal/errors').codes; function noop() {} function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } function once(callback) { let called = false; return function(err) { if (called) return; called = true; callback.call(this, err); }; } function eos(stream, opts, callback) { if (typeof opts === 'function') return eos(stream, null, opts); if (!opts) opts = {}; callback = once(callback || noop); const ws = stream._writableState; const rs = stream._readableState; let readable = opts.readable || (opts.readable !== false && stream.readable); let writable = opts.writable || (opts.writable !== false && stream.writable); const onlegacyfinish = () => { if (!stream.writable) onfinish(); }; const onfinish = () => { writable = false; if (!readable) callback.call(stream); }; const onend = () => { readable = false; if (!writable) callback.call(stream); }; const onerror = (err) => { callback.call(stream, err); }; const onclose = () => { if (readable && !(rs && rs.ended)) { return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); } if (writable && !(ws && ws.ended)) { return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); } }; const onrequest = () => { stream.req.on('finish', onfinish); }; if (isRequest(stream)) { stream.on('complete', onfinish); stream.on('abort', onclose); if (stream.req) onrequest(); else stream.on('request', onrequest); } else if (writable && !ws) { // legacy streams stream.on('end', onlegacyfinish); stream.on('close', onlegacyfinish); } stream.on('end', onend); stream.on('finish', onfinish); if (opts.error !== false) stream.on('error', onerror); stream.on('close', onclose); return function() { stream.removeListener('complete', onfinish); stream.removeListener('abort', onclose); stream.removeListener('request', onrequest); if (stream.req) stream.req.removeListener('finish', onfinish); stream.removeListener('end', onlegacyfinish); stream.removeListener('close', onlegacyfinish); stream.removeListener('finish', onfinish); stream.removeListener('end', onend); stream.removeListener('error', onerror); stream.removeListener('close', onclose); }; } module.exports = eos; internal/wrap_js_stream'use strict'; const assert = require('assert'); const util = require('util'); const { Socket } = require('net'); const { JSStream } = internalBinding('js_stream'); const uv = internalBinding('uv'); const debug = util.debuglog('stream_wrap'); const { owner_symbol } = require('internal/async_hooks').symbols; const { ERR_STREAM_WRAP } = require('internal/errors').codes; const kCurrentWriteRequest = Symbol('kCurrentWriteRequest'); const kCurrentShutdownRequest = Symbol('kCurrentShutdownRequest'); const kPendingShutdownRequest = Symbol('kPendingShutdownRequest'); function isClosing() { return this[owner_symbol].isClosing(); } function onreadstart() { return this[owner_symbol].readStart(); } function onreadstop() { return this[owner_symbol].readStop(); } function onshutdown(req) { return this[owner_symbol].doShutdown(req); } function onwrite(req, bufs) { return this[owner_symbol].doWrite(req, bufs); } /* This class serves as a wrapper for when the C++ side of Node wants access * to a standard JS stream. For example, TLS or HTTP do not operate on network * resources conceptually, although that is the common case and what we are * optimizing for; in theory, they are completely composable and can work with * any stream resource they see. * * For the common case, i.e. a TLS socket wrapping around a net.Socket, we * can skip going through the JS layer and let TLS access the raw C++ handle * of a net.Socket. The flipside of this is that, to maintain composability, * we need a way to create "fake" net.Socket instances that call back into a * "real" JavaScript stream. JSStreamWrap is exactly this. */ class JSStreamWrap extends Socket { constructor(stream) { const handle = new JSStream(); handle.close = (cb) => { debug('close'); this.doClose(cb); }; // Inside of the following functions, `this` refers to the handle // and `this[owner_symbol]` refers to this JSStreamWrap instance. handle.isClosing = isClosing; handle.onreadstart = onreadstart; handle.onreadstop = onreadstop; handle.onshutdown = onshutdown; handle.onwrite = onwrite; stream.pause(); stream.on('error', (err) => this.emit('error', err)); const ondata = (chunk) => { if (typeof chunk === 'string' || stream._readableState.objectMode === true) { // Make sure that no further `data` events will happen. stream.pause(); stream.removeListener('data', ondata); this.emit('error', new ERR_STREAM_WRAP()); return; } debug('data', chunk.length); if (this._handle) this._handle.readBuffer(chunk); }; stream.on('data', ondata); stream.once('end', () => { debug('end'); if (this._handle) this._handle.emitEOF(); }); // Some `Stream` don't pass `hasError` parameters when closed. stream.once('close', () => { // Errors emitted from `stream` have also been emitted to this instance // so that we don't pass errors to `destroy()` again. this.destroy(); }); super({ handle, manualStart: true }); this.stream = stream; this[kCurrentWriteRequest] = null; this[kCurrentShutdownRequest] = null; this[kPendingShutdownRequest] = null; this.readable = stream.readable; this.writable = stream.writable; // Start reading. this.read(0); } // Legacy static get StreamWrap() { return JSStreamWrap; } isClosing() { return !this.readable || !this.writable; } readStart() { this.stream.resume(); return 0; } readStop() { this.stream.pause(); return 0; } doShutdown(req) { // TODO(addaleax): It might be nice if we could get into a state where // DoShutdown() is not called on streams while a write is still pending. // // Currently, the only part of the code base where that happens is the // TLS implementation, which calls both DoWrite() and DoShutdown() on the // underlying network stream inside of its own DoShutdown() method. // Working around that on the native side is not quite trivial (yet?), // so for now that is supported here. if (this[kCurrentWriteRequest] !== null) { this[kPendingShutdownRequest] = req; return 0; } assert.strictEqual(this[kCurrentWriteRequest], null); assert.strictEqual(this[kCurrentShutdownRequest], null); this[kCurrentShutdownRequest] = req; const handle = this._handle; setImmediate(() => { // Ensure that write is dispatched asynchronously. this.stream.end(() => { this.finishShutdown(handle, 0); }); }); return 0; } // handle === this._handle except when called from doClose(). finishShutdown(handle, errCode) { // The shutdown request might already have been cancelled. if (this[kCurrentShutdownRequest] === null) return; const req = this[kCurrentShutdownRequest]; this[kCurrentShutdownRequest] = null; handle.finishShutdown(req, errCode); } doWrite(req, bufs) { assert.strictEqual(this[kCurrentWriteRequest], null); assert.strictEqual(this[kCurrentShutdownRequest], null); const handle = this._handle; const self = this; let pending = bufs.length; this.stream.cork(); for (var i = 0; i < bufs.length; ++i) this.stream.write(bufs[i], done); this.stream.uncork(); // Only set the request here, because the `write()` calls could throw. this[kCurrentWriteRequest] = req; function done(err) { if (!err && --pending !== 0) return; // Ensure that this is called once in case of error pending = 0; let errCode = 0; if (err) { errCode = uv[`UV_${err.code}`] || uv.UV_EPIPE; } // Ensure that write was dispatched setImmediate(() => { self.finishWrite(handle, errCode); }); } return 0; } // handle === this._handle except when called from doClose(). finishWrite(handle, errCode) { // The write request might already have been cancelled. if (this[kCurrentWriteRequest] === null) return; const req = this[kCurrentWriteRequest]; this[kCurrentWriteRequest] = null; handle.finishWrite(req, errCode); if (this[kPendingShutdownRequest]) { const req = this[kPendingShutdownRequest]; this[kPendingShutdownRequest] = null; this.doShutdown(req); } } doClose(cb) { const handle = this._handle; // When sockets of the "net" module destroyed, they will call // `this._handle.close()` which will also emit EOF if not emitted before. // This feature makes sockets on the other side emit "end" and "close" // even though we haven't called `end()`. As `stream` are likely to be // instances of `net.Socket`, calling `stream.destroy()` manually will // avoid issues that don't properly close wrapped connections. this.stream.destroy(); setImmediate(() => { // Should be already set by net.js assert.strictEqual(this._handle, null); this.finishWrite(handle, uv.UV_ECANCELED); this.finishShutdown(handle, uv.UV_ECANCELED); cb(); }); } } module.exports = JSStreamWrap; internal/deps/v8/tools/splaytree// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Constructs a Splay tree. A splay tree is a self-balancing binary * search tree with the additional property that recently accessed * elements are quick to access again. It performs basic operations * such as insertion, look-up and removal in O(log(n)) amortized time. * * @constructor */ function SplayTree() { }; /** * Pointer to the root node of the tree. * * @type {SplayTree.Node} * @private */ SplayTree.prototype.root_ = null; /** * @return {boolean} Whether the tree is empty. */ SplayTree.prototype.isEmpty = function() { return !this.root_; }; /** * Inserts a node into the tree with the specified key and value if * the tree does not already contain a node with the specified key. If * the value is inserted, it becomes the root of the tree. * * @param {number} key Key to insert into the tree. * @param {*} value Value to insert into the tree. */ SplayTree.prototype.insert = function(key, value) { if (this.isEmpty()) { this.root_ = new SplayTree.Node(key, value); return; } // Splay on the key to move the last node on the search path for // the key to the root of the tree. this.splay_(key); if (this.root_.key == key) { return; } var node = new SplayTree.Node(key, value); if (key > this.root_.key) { node.left = this.root_; node.right = this.root_.right; this.root_.right = null; } else { node.right = this.root_; node.left = this.root_.left; this.root_.left = null; } this.root_ = node; }; /** * Removes a node with the specified key from the tree if the tree * contains a node with this key. The removed node is returned. If the * key is not found, an exception is thrown. * * @param {number} key Key to find and remove from the tree. * @return {SplayTree.Node} The removed node. */ SplayTree.prototype.remove = function(key) { if (this.isEmpty()) { throw Error('Key not found: ' + key); } this.splay_(key); if (this.root_.key != key) { throw Error('Key not found: ' + key); } var removed = this.root_; if (!this.root_.left) { this.root_ = this.root_.right; } else { var right = this.root_.right; this.root_ = this.root_.left; // Splay to make sure that the new root has an empty right child. this.splay_(key); // Insert the original right child as the right child of the new // root. this.root_.right = right; } return removed; }; /** * Returns the node having the specified key or null if the tree doesn't contain * a node with the specified key. * * @param {number} key Key to find in the tree. * @return {SplayTree.Node} Node having the specified key. */ SplayTree.prototype.find = function(key) { if (this.isEmpty()) { return null; } this.splay_(key); return this.root_.key == key ? this.root_ : null; }; /** * @return {SplayTree.Node} Node having the minimum key value. */ SplayTree.prototype.findMin = function() { if (this.isEmpty()) { return null; } var current = this.root_; while (current.left) { current = current.left; } return current; }; /** * @return {SplayTree.Node} Node having the maximum key value. */ SplayTree.prototype.findMax = function(opt_startNode) { if (this.isEmpty()) { return null; } var current = opt_startNode || this.root_; while (current.right) { current = current.right; } return current; }; /** * @return {SplayTree.Node} Node having the maximum key value that * is less or equal to the specified key value. */ SplayTree.prototype.findGreatestLessThan = function(key) { if (this.isEmpty()) { return null; } // Splay on the key to move the node with the given key or the last // node on the search path to the top of the tree. this.splay_(key); // Now the result is either the root node or the greatest node in // the left subtree. if (this.root_.key <= key) { return this.root_; } else if (this.root_.left) { return this.findMax(this.root_.left); } else { return null; } }; /** * @return {Array<*>} An array containing all the values of tree's nodes paired * with keys. */ SplayTree.prototype.exportKeysAndValues = function() { var result = []; this.traverse_(function(node) { result.push([node.key, node.value]); }); return result; }; /** * @return {Array<*>} An array containing all the values of tree's nodes. */ SplayTree.prototype.exportValues = function() { var result = []; this.traverse_(function(node) { result.push(node.value); }); return result; }; /** * Perform the splay operation for the given key. Moves the node with * the given key to the top of the tree. If no node has the given * key, the last node on the search path is moved to the top of the * tree. This is the simplified top-down splaying algorithm from: * "Self-adjusting Binary Search Trees" by Sleator and Tarjan * * @param {number} key Key to splay the tree on. * @private */ SplayTree.prototype.splay_ = function(key) { if (this.isEmpty()) { return; } // Create a dummy node. The use of the dummy node is a bit // counter-intuitive: The right child of the dummy node will hold // the L tree of the algorithm. The left child of the dummy node // will hold the R tree of the algorithm. Using a dummy node, left // and right will always be nodes and we avoid special cases. var dummy, left, right; dummy = left = right = new SplayTree.Node(null, null); var current = this.root_; while (true) { if (key < current.key) { if (!current.left) { break; } if (key < current.left.key) { // Rotate right. var tmp = current.left; current.left = tmp.right; tmp.right = current; current = tmp; if (!current.left) { break; } } // Link right. right.left = current; right = current; current = current.left; } else if (key > current.key) { if (!current.right) { break; } if (key > current.right.key) { // Rotate left. var tmp = current.right; current.right = tmp.left; tmp.left = current; current = tmp; if (!current.right) { break; } } // Link left. left.right = current; left = current; current = current.right; } else { break; } } // Assemble. left.right = current.left; right.left = current.right; current.left = dummy.right; current.right = dummy.left; this.root_ = current; }; /** * Performs a preorder traversal of the tree. * * @param {function(SplayTree.Node)} f Visitor function. * @private */ SplayTree.prototype.traverse_ = function(f) { var nodesToVisit = [this.root_]; while (nodesToVisit.length > 0) { var node = nodesToVisit.shift(); if (node == null) { continue; } f(node); nodesToVisit.push(node.left); nodesToVisit.push(node.right); } }; /** * Constructs a Splay tree node. * * @param {number} key Key. * @param {*} value Value. */ SplayTree.Node = function(key, value) { this.key = key; this.value = value; }; /** * @type {SplayTree.Node} */ SplayTree.Node.prototype.left = null; /** * @type {SplayTree.Node} */ SplayTree.Node.prototype.right = null; v8/tools/splaytree'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/splaytree\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/splaytree'); internal/deps/v8/tools/codemap// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Constructs a mapper that maps addresses into code entries. * * @constructor */ function CodeMap() { /** * Dynamic code entries. Used for JIT compiled code. */ this.dynamics_ = new SplayTree(); /** * Name generator for entries having duplicate names. */ this.dynamicsNameGen_ = new CodeMap.NameGenerator(); /** * Static code entries. Used for statically compiled code. */ this.statics_ = new SplayTree(); /** * Libraries entries. Used for the whole static code libraries. */ this.libraries_ = new SplayTree(); /** * Map of memory pages occupied with static code. */ this.pages_ = []; }; /** * The number of alignment bits in a page address. */ CodeMap.PAGE_ALIGNMENT = 12; /** * Page size in bytes. */ CodeMap.PAGE_SIZE = 1 << CodeMap.PAGE_ALIGNMENT; /** * Adds a dynamic (i.e. moveable and discardable) code entry. * * @param {number} start The starting address. * @param {CodeMap.CodeEntry} codeEntry Code entry object. */ CodeMap.prototype.addCode = function(start, codeEntry) { this.deleteAllCoveredNodes_(this.dynamics_, start, start + codeEntry.size); this.dynamics_.insert(start, codeEntry); }; /** * Moves a dynamic code entry. Throws an exception if there is no dynamic * code entry with the specified starting address. * * @param {number} from The starting address of the entry being moved. * @param {number} to The destination address. */ CodeMap.prototype.moveCode = function(from, to) { var removedNode = this.dynamics_.remove(from); this.deleteAllCoveredNodes_(this.dynamics_, to, to + removedNode.value.size); this.dynamics_.insert(to, removedNode.value); }; /** * Discards a dynamic code entry. Throws an exception if there is no dynamic * code entry with the specified starting address. * * @param {number} start The starting address of the entry being deleted. */ CodeMap.prototype.deleteCode = function(start) { var removedNode = this.dynamics_.remove(start); }; /** * Adds a library entry. * * @param {number} start The starting address. * @param {CodeMap.CodeEntry} codeEntry Code entry object. */ CodeMap.prototype.addLibrary = function( start, codeEntry) { this.markPages_(start, start + codeEntry.size); this.libraries_.insert(start, codeEntry); }; /** * Adds a static code entry. * * @param {number} start The starting address. * @param {CodeMap.CodeEntry} codeEntry Code entry object. */ CodeMap.prototype.addStaticCode = function( start, codeEntry) { this.statics_.insert(start, codeEntry); }; /** * @private */ CodeMap.prototype.markPages_ = function(start, end) { for (var addr = start; addr <= end; addr += CodeMap.PAGE_SIZE) { this.pages_[addr >>> CodeMap.PAGE_ALIGNMENT] = 1; } }; /** * @private */ CodeMap.prototype.deleteAllCoveredNodes_ = function(tree, start, end) { var to_delete = []; var addr = end - 1; while (addr >= start) { var node = tree.findGreatestLessThan(addr); if (!node) break; var start2 = node.key, end2 = start2 + node.value.size; if (start2 < end && start < end2) to_delete.push(start2); addr = start2 - 1; } for (var i = 0, l = to_delete.length; i < l; ++i) tree.remove(to_delete[i]); }; /** * @private */ CodeMap.prototype.isAddressBelongsTo_ = function(addr, node) { return addr >= node.key && addr < (node.key + node.value.size); }; /** * @private */ CodeMap.prototype.findInTree_ = function(tree, addr) { var node = tree.findGreatestLessThan(addr); return node && this.isAddressBelongsTo_(addr, node) ? node : null; }; /** * Embedded builtins are located in the shared library but should be attributed * according to the dynamically generated code-create events. * * @private */ CodeMap.prototype.isEmbeddedBuiltin_ = function(entry) { return entry.type == "CPP" && /v8_\w*embedded_blob_/.test(entry.name); }; /** * Finds a code entry that contains the specified address. Both static and * dynamic code entries are considered. Returns the code entry and the offset * within the entry. * * @param {number} addr Address. */ CodeMap.prototype.findAddress = function(addr) { var pageAddr = addr >>> CodeMap.PAGE_ALIGNMENT; if (pageAddr in this.pages_) { // Static code entries can contain "holes" of unnamed code. // In this case, the whole library is assigned to this address. var result = this.findInTree_(this.statics_, addr); if (!result) { result = this.findInTree_(this.libraries_, addr); if (!result) return null; } if (!this.isEmbeddedBuiltin_(result.value)) { // Embedded builtins are handled in the following dynamic section. return { entry : result.value, offset : addr - result.key }; } } var min = this.dynamics_.findMin(); var max = this.dynamics_.findMax(); if (max != null && addr < (max.key + max.value.size) && addr >= min.key) { var dynaEntry = this.findInTree_(this.dynamics_, addr); if (dynaEntry == null) return null; // Dedupe entry name. var entry = dynaEntry.value; if (!entry.nameUpdated_) { entry.name = this.dynamicsNameGen_.getName(entry.name); entry.nameUpdated_ = true; } return { entry : entry, offset : addr - dynaEntry.key }; } return null; }; /** * Finds a code entry that contains the specified address. Both static and * dynamic code entries are considered. * * @param {number} addr Address. */ CodeMap.prototype.findEntry = function(addr) { var result = this.findAddress(addr); return result ? result.entry : null; }; /** * Returns a dynamic code entry using its starting address. * * @param {number} addr Address. */ CodeMap.prototype.findDynamicEntryByStartAddress = function(addr) { var node = this.dynamics_.find(addr); return node ? node.value : null; }; /** * Returns an array of all dynamic code entries. */ CodeMap.prototype.getAllDynamicEntries = function() { return this.dynamics_.exportValues(); }; /** * Returns an array of pairs of all dynamic code entries and their addresses. */ CodeMap.prototype.getAllDynamicEntriesWithAddresses = function() { return this.dynamics_.exportKeysAndValues(); }; /** * Returns an array of all static code entries. */ CodeMap.prototype.getAllStaticEntries = function() { return this.statics_.exportValues(); }; /** * Returns an array of pairs of all static code entries and their addresses. */ CodeMap.prototype.getAllStaticEntriesWithAddresses = function() { return this.statics_.exportKeysAndValues(); }; /** * Returns an array of all libraries entries. */ CodeMap.prototype.getAllLibrariesEntries = function() { return this.libraries_.exportValues(); }; /** * Creates a code entry object. * * @param {number} size Code entry size in bytes. * @param {string} opt_name Code entry name. * @param {string} opt_type Code entry type, e.g. SHARED_LIB, CPP. * @constructor */ CodeMap.CodeEntry = function(size, opt_name, opt_type) { this.size = size; this.name = opt_name || ''; this.type = opt_type || ''; this.nameUpdated_ = false; }; CodeMap.CodeEntry.prototype.getName = function() { return this.name; }; CodeMap.CodeEntry.prototype.toString = function() { return this.name + ': ' + this.size.toString(16); }; CodeMap.NameGenerator = function() { this.knownNames_ = {}; }; CodeMap.NameGenerator.prototype.getName = function(name) { if (!(name in this.knownNames_)) { this.knownNames_[name] = 0; return name; } var count = ++this.knownNames_[name]; return name + ' {' + count + '}'; }; v8/tools/codemap'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/codemap\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/codemap'); internal/deps/v8/tools/consarray// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Constructs a ConsArray object. It is used mainly for tree traversal. * In this use case we have lots of arrays that we need to iterate * sequentally. The internal Array implementation is horribly slow * when concatenating on large (10K items) arrays due to memory copying. * That's why we avoid copying memory and insead build a linked list * of arrays to iterate through. * * @constructor */ function ConsArray() { this.tail_ = new ConsArray.Cell(null, null); this.currCell_ = this.tail_; this.currCellPos_ = 0; }; /** * Concatenates another array for iterating. Empty arrays are ignored. * This operation can be safely performed during ongoing ConsArray * iteration. * * @param {Array} arr Array to concatenate. */ ConsArray.prototype.concat = function(arr) { if (arr.length > 0) { this.tail_.data = arr; this.tail_ = this.tail_.next = new ConsArray.Cell(null, null); } }; /** * Whether the end of iteration is reached. */ ConsArray.prototype.atEnd = function() { return this.currCell_ === null || this.currCell_.data === null || this.currCellPos_ >= this.currCell_.data.length; }; /** * Returns the current item, moves to the next one. */ ConsArray.prototype.next = function() { var result = this.currCell_.data[this.currCellPos_++]; if (this.currCellPos_ >= this.currCell_.data.length) { this.currCell_ = this.currCell_.next; this.currCellPos_ = 0; } return result; }; /** * A cell object used for constructing a list in ConsArray. * * @constructor */ ConsArray.Cell = function(data, next) { this.data = data; this.next = next; }; v8/tools/consarray'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/consarray\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/consarray'); internal/deps/v8/tools/csvparser// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Creates a CSV lines parser. */ class CsvParser { /** * Converts \x00 and \u0000 escape sequences in the given string. * * @param {string} input field. **/ escapeField(string) { let nextPos = string.indexOf("\\"); if (nextPos === -1) return string; let result = string.substring(0, nextPos); // Escape sequences of the form \x00 and \u0000; let endPos = string.length; let pos = 0; while (nextPos !== -1) { let escapeIdentifier = string.charAt(nextPos + 1); pos = nextPos + 2; if (escapeIdentifier == 'n') { result += '\n'; nextPos = pos; } else { if (escapeIdentifier == 'x') { // \x00 ascii range escapes consume 2 chars. nextPos = pos + 2; } else { // \u0000 unicode range escapes consume 4 chars. nextPos = pos + 4; } // Convert the selected escape sequence to a single character. let escapeChars = string.substring(pos, nextPos); result += String.fromCharCode(parseInt(escapeChars, 16)); } // Continue looking for the next escape sequence. pos = nextPos; nextPos = string.indexOf("\\", pos); // If there are no more escape sequences consume the rest of the string. if (nextPos === -1) { result += string.substr(pos); } else if (pos != nextPos) { result += string.substring(pos, nextPos); } } return result; } /** * Parses a line of CSV-encoded values. Returns an array of fields. * * @param {string} line Input line. */ parseLine(line) { var pos = 0; var endPos = line.length; var fields = []; if (endPos == 0) return fields; let nextPos = 0; while(nextPos !== -1) { nextPos = line.indexOf(',', pos); let field; if (nextPos === -1) { field = line.substr(pos); } else { field = line.substring(pos, nextPos); } fields.push(this.escapeField(field)); pos = nextPos + 1; }; return fields } } v8/tools/csvparser'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/csvparser\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/csvparser'); internal/deps/v8/tools/profile// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Creates a profile object for processing profiling-related events * and calculating function execution times. * * @constructor */ function Profile() { this.codeMap_ = new CodeMap(); this.topDownTree_ = new CallTree(); this.bottomUpTree_ = new CallTree(); this.c_entries_ = {}; this.ticks_ = []; }; /** * Returns whether a function with the specified name must be skipped. * Should be overriden by subclasses. * * @param {string} name Function name. */ Profile.prototype.skipThisFunction = function(name) { return false; }; /** * Enum for profiler operations that involve looking up existing * code entries. * * @enum {number} */ Profile.Operation = { MOVE: 0, DELETE: 1, TICK: 2 }; /** * Enum for code state regarding its dynamic optimization. * * @enum {number} */ Profile.CodeState = { COMPILED: 0, OPTIMIZABLE: 1, OPTIMIZED: 2 }; /** * Called whenever the specified operation has failed finding a function * containing the specified address. Should be overriden by subclasses. * See the Profile.Operation enum for the list of * possible operations. * * @param {number} operation Operation. * @param {number} addr Address of the unknown code. * @param {number} opt_stackPos If an unknown address is encountered * during stack strace processing, specifies a position of the frame * containing the address. */ Profile.prototype.handleUnknownCode = function( operation, addr, opt_stackPos) { }; /** * Registers a library. * * @param {string} name Code entry name. * @param {number} startAddr Starting address. * @param {number} endAddr Ending address. */ Profile.prototype.addLibrary = function( name, startAddr, endAddr) { var entry = new CodeMap.CodeEntry( endAddr - startAddr, name, 'SHARED_LIB'); this.codeMap_.addLibrary(startAddr, entry); return entry; }; /** * Registers statically compiled code entry. * * @param {string} name Code entry name. * @param {number} startAddr Starting address. * @param {number} endAddr Ending address. */ Profile.prototype.addStaticCode = function( name, startAddr, endAddr) { var entry = new CodeMap.CodeEntry( endAddr - startAddr, name, 'CPP'); this.codeMap_.addStaticCode(startAddr, entry); return entry; }; /** * Registers dynamic (JIT-compiled) code entry. * * @param {string} type Code entry type. * @param {string} name Code entry name. * @param {number} start Starting address. * @param {number} size Code entry size. */ Profile.prototype.addCode = function( type, name, timestamp, start, size) { var entry = new Profile.DynamicCodeEntry(size, type, name); this.codeMap_.addCode(start, entry); return entry; }; /** * Registers dynamic (JIT-compiled) code entry. * * @param {string} type Code entry type. * @param {string} name Code entry name. * @param {number} start Starting address. * @param {number} size Code entry size. * @param {number} funcAddr Shared function object address. * @param {Profile.CodeState} state Optimization state. */ Profile.prototype.addFuncCode = function( type, name, timestamp, start, size, funcAddr, state) { // As code and functions are in the same address space, // it is safe to put them in a single code map. var func = this.codeMap_.findDynamicEntryByStartAddress(funcAddr); if (!func) { func = new Profile.FunctionEntry(name); this.codeMap_.addCode(funcAddr, func); } else if (func.name !== name) { // Function object has been overwritten with a new one. func.name = name; } var entry = this.codeMap_.findDynamicEntryByStartAddress(start); if (entry) { if (entry.size === size && entry.func === func) { // Entry state has changed. entry.state = state; } } else { entry = new Profile.DynamicFuncCodeEntry(size, type, func, state); this.codeMap_.addCode(start, entry); } return entry; }; /** * Reports about moving of a dynamic code entry. * * @param {number} from Current code entry address. * @param {number} to New code entry address. */ Profile.prototype.moveCode = function(from, to) { try { this.codeMap_.moveCode(from, to); } catch (e) { this.handleUnknownCode(Profile.Operation.MOVE, from); } }; Profile.prototype.deoptCode = function( timestamp, code, inliningId, scriptOffset, bailoutType, sourcePositionText, deoptReasonText) { }; /** * Reports about deletion of a dynamic code entry. * * @param {number} start Starting address. */ Profile.prototype.deleteCode = function(start) { try { this.codeMap_.deleteCode(start); } catch (e) { this.handleUnknownCode(Profile.Operation.DELETE, start); } }; /** * Adds source positions for given code. */ Profile.prototype.addSourcePositions = function( start, script, startPos, endPos, sourcePositions, inliningPositions, inlinedFunctions) { // CLI does not need source code => ignore. }; /** * Adds script source code. */ Profile.prototype.addScriptSource = function(script, source) { // CLI does not need source code => ignore. }; /** * Reports about moving of a dynamic code entry. * * @param {number} from Current code entry address. * @param {number} to New code entry address. */ Profile.prototype.moveFunc = function(from, to) { if (this.codeMap_.findDynamicEntryByStartAddress(from)) { this.codeMap_.moveCode(from, to); } }; /** * Retrieves a code entry by an address. * * @param {number} addr Entry address. */ Profile.prototype.findEntry = function(addr) { return this.codeMap_.findEntry(addr); }; /** * Records a tick event. Stack must contain a sequence of * addresses starting with the program counter value. * * @param {Array} stack Stack sample. */ Profile.prototype.recordTick = function(time_ns, vmState, stack) { var processedStack = this.resolveAndFilterFuncs_(stack); this.bottomUpTree_.addPath(processedStack); processedStack.reverse(); this.topDownTree_.addPath(processedStack); }; /** * Translates addresses into function names and filters unneeded * functions. * * @param {Array} stack Stack sample. */ Profile.prototype.resolveAndFilterFuncs_ = function(stack) { var result = []; var last_seen_c_function = ''; var look_for_first_c_function = false; for (var i = 0; i < stack.length; ++i) { var entry = this.codeMap_.findEntry(stack[i]); if (entry) { var name = entry.getName(); if (i === 0 && (entry.type === 'CPP' || entry.type === 'SHARED_LIB')) { look_for_first_c_function = true; } if (look_for_first_c_function && entry.type === 'CPP') { last_seen_c_function = name; } if (!this.skipThisFunction(name)) { result.push(name); } } else { this.handleUnknownCode(Profile.Operation.TICK, stack[i], i); if (i === 0) result.push("UNKNOWN"); } if (look_for_first_c_function && i > 0 && (!entry || entry.type !== 'CPP') && last_seen_c_function !== '') { if (this.c_entries_[last_seen_c_function] === undefined) { this.c_entries_[last_seen_c_function] = 0; } this.c_entries_[last_seen_c_function]++; look_for_first_c_function = false; // Found it, we're done. } } return result; }; /** * Performs a BF traversal of the top down call graph. * * @param {function(CallTree.Node)} f Visitor function. */ Profile.prototype.traverseTopDownTree = function(f) { this.topDownTree_.traverse(f); }; /** * Performs a BF traversal of the bottom up call graph. * * @param {function(CallTree.Node)} f Visitor function. */ Profile.prototype.traverseBottomUpTree = function(f) { this.bottomUpTree_.traverse(f); }; /** * Calculates a top down profile for a node with the specified label. * If no name specified, returns the whole top down calls tree. * * @param {string} opt_label Node label. */ Profile.prototype.getTopDownProfile = function(opt_label) { return this.getTreeProfile_(this.topDownTree_, opt_label); }; /** * Calculates a bottom up profile for a node with the specified label. * If no name specified, returns the whole bottom up calls tree. * * @param {string} opt_label Node label. */ Profile.prototype.getBottomUpProfile = function(opt_label) { return this.getTreeProfile_(this.bottomUpTree_, opt_label); }; /** * Helper function for calculating a tree profile. * * @param {Profile.CallTree} tree Call tree. * @param {string} opt_label Node label. */ Profile.prototype.getTreeProfile_ = function(tree, opt_label) { if (!opt_label) { tree.computeTotalWeights(); return tree; } else { var subTree = tree.cloneSubtree(opt_label); subTree.computeTotalWeights(); return subTree; } }; /** * Calculates a flat profile of callees starting from a node with * the specified label. If no name specified, starts from the root. * * @param {string} opt_label Starting node label. */ Profile.prototype.getFlatProfile = function(opt_label) { var counters = new CallTree(); var rootLabel = opt_label || CallTree.ROOT_NODE_LABEL; var precs = {}; precs[rootLabel] = 0; var root = counters.findOrAddChild(rootLabel); this.topDownTree_.computeTotalWeights(); this.topDownTree_.traverseInDepth( function onEnter(node) { if (!(node.label in precs)) { precs[node.label] = 0; } var nodeLabelIsRootLabel = node.label == rootLabel; if (nodeLabelIsRootLabel || precs[rootLabel] > 0) { if (precs[rootLabel] == 0) { root.selfWeight += node.selfWeight; root.totalWeight += node.totalWeight; } else { var rec = root.findOrAddChild(node.label); rec.selfWeight += node.selfWeight; if (nodeLabelIsRootLabel || precs[node.label] == 0) { rec.totalWeight += node.totalWeight; } } precs[node.label]++; } }, function onExit(node) { if (node.label == rootLabel || precs[rootLabel] > 0) { precs[node.label]--; } }, null); if (!opt_label) { // If we have created a flat profile for the whole program, we don't // need an explicit root in it. Thus, replace the counters tree // root with the node corresponding to the whole program. counters.root_ = root; } else { // Propagate weights so percents can be calculated correctly. counters.getRoot().selfWeight = root.selfWeight; counters.getRoot().totalWeight = root.totalWeight; } return counters; }; Profile.CEntryNode = function(name, ticks) { this.name = name; this.ticks = ticks; } Profile.prototype.getCEntryProfile = function() { var result = [new Profile.CEntryNode("TOTAL", 0)]; var total_ticks = 0; for (var f in this.c_entries_) { var ticks = this.c_entries_[f]; total_ticks += ticks; result.push(new Profile.CEntryNode(f, ticks)); } result[0].ticks = total_ticks; // Sorting will keep this at index 0. result.sort(function(n1, n2) { return n2.ticks - n1.ticks || (n2.name < n1.name ? -1 : 1) }); return result; } /** * Cleans up function entries that are not referenced by code entries. */ Profile.prototype.cleanUpFuncEntries = function() { var referencedFuncEntries = []; var entries = this.codeMap_.getAllDynamicEntriesWithAddresses(); for (var i = 0, l = entries.length; i < l; ++i) { if (entries[i][1].constructor === Profile.FunctionEntry) { entries[i][1].used = false; } } for (var i = 0, l = entries.length; i < l; ++i) { if ("func" in entries[i][1]) { entries[i][1].func.used = true; } } for (var i = 0, l = entries.length; i < l; ++i) { if (entries[i][1].constructor === Profile.FunctionEntry && !entries[i][1].used) { this.codeMap_.deleteCode(entries[i][0]); } } }; /** * Creates a dynamic code entry. * * @param {number} size Code size. * @param {string} type Code type. * @param {string} name Function name. * @constructor */ Profile.DynamicCodeEntry = function(size, type, name) { CodeMap.CodeEntry.call(this, size, name, type); }; /** * Returns node name. */ Profile.DynamicCodeEntry.prototype.getName = function() { return this.type + ': ' + this.name; }; /** * Returns raw node name (without type decoration). */ Profile.DynamicCodeEntry.prototype.getRawName = function() { return this.name; }; Profile.DynamicCodeEntry.prototype.isJSFunction = function() { return false; }; Profile.DynamicCodeEntry.prototype.toString = function() { return this.getName() + ': ' + this.size.toString(16); }; /** * Creates a dynamic code entry. * * @param {number} size Code size. * @param {string} type Code type. * @param {Profile.FunctionEntry} func Shared function entry. * @param {Profile.CodeState} state Code optimization state. * @constructor */ Profile.DynamicFuncCodeEntry = function(size, type, func, state) { CodeMap.CodeEntry.call(this, size, '', type); this.func = func; this.state = state; }; Profile.DynamicFuncCodeEntry.STATE_PREFIX = ["", "~", "*"]; /** * Returns state. */ Profile.DynamicFuncCodeEntry.prototype.getState = function() { return Profile.DynamicFuncCodeEntry.STATE_PREFIX[this.state]; }; /** * Returns node name. */ Profile.DynamicFuncCodeEntry.prototype.getName = function() { var name = this.func.getName(); return this.type + ': ' + this.getState() + name; }; /** * Returns raw node name (without type decoration). */ Profile.DynamicFuncCodeEntry.prototype.getRawName = function() { return this.func.getName(); }; Profile.DynamicFuncCodeEntry.prototype.isJSFunction = function() { return true; }; Profile.DynamicFuncCodeEntry.prototype.toString = function() { return this.getName() + ': ' + this.size.toString(16); }; /** * Creates a shared function object entry. * * @param {string} name Function name. * @constructor */ Profile.FunctionEntry = function(name) { CodeMap.CodeEntry.call(this, 0, name); }; /** * Returns node name. */ Profile.FunctionEntry.prototype.getName = function() { var name = this.name; if (name.length == 0) { name = ''; } else if (name.charAt(0) == ' ') { // An anonymous function with location: " aaa.js:10". name = '' + name; } return name; }; Profile.FunctionEntry.prototype.toString = CodeMap.CodeEntry.prototype.toString; /** * Constructs a call graph. * * @constructor */ function CallTree() { this.root_ = new CallTree.Node( CallTree.ROOT_NODE_LABEL); }; /** * The label of the root node. */ CallTree.ROOT_NODE_LABEL = ''; /** * @private */ CallTree.prototype.totalsComputed_ = false; /** * Returns the tree root. */ CallTree.prototype.getRoot = function() { return this.root_; }; /** * Adds the specified call path, constructing nodes as necessary. * * @param {Array} path Call path. */ CallTree.prototype.addPath = function(path) { if (path.length == 0) { return; } var curr = this.root_; for (var i = 0; i < path.length; ++i) { curr = curr.findOrAddChild(path[i]); } curr.selfWeight++; this.totalsComputed_ = false; }; /** * Finds an immediate child of the specified parent with the specified * label, creates a child node if necessary. If a parent node isn't * specified, uses tree root. * * @param {string} label Child node label. */ CallTree.prototype.findOrAddChild = function(label) { return this.root_.findOrAddChild(label); }; /** * Creates a subtree by cloning and merging all subtrees rooted at nodes * with a given label. E.g. cloning the following call tree on label 'A' * will give the following result: * * -- * / / * == clone on 'A' ==> -- * \ \ * ---- * * And 's selfWeight will be the sum of selfWeights of 's from the * source call tree. * * @param {string} label The label of the new root node. */ CallTree.prototype.cloneSubtree = function(label) { var subTree = new CallTree(); this.traverse(function(node, parent) { if (!parent && node.label != label) { return null; } var child = (parent ? parent : subTree).findOrAddChild(node.label); child.selfWeight += node.selfWeight; return child; }); return subTree; }; /** * Computes total weights in the call graph. */ CallTree.prototype.computeTotalWeights = function() { if (this.totalsComputed_) { return; } this.root_.computeTotalWeight(); this.totalsComputed_ = true; }; /** * Traverses the call graph in preorder. This function can be used for * building optionally modified tree clones. This is the boilerplate code * for this scenario: * * callTree.traverse(function(node, parentClone) { * var nodeClone = cloneNode(node); * if (parentClone) * parentClone.addChild(nodeClone); * return nodeClone; * }); * * @param {function(CallTree.Node, *)} f Visitor function. * The second parameter is the result of calling 'f' on the parent node. */ CallTree.prototype.traverse = function(f) { var pairsToProcess = new ConsArray(); pairsToProcess.concat([{node: this.root_, param: null}]); while (!pairsToProcess.atEnd()) { var pair = pairsToProcess.next(); var node = pair.node; var newParam = f(node, pair.param); var morePairsToProcess = []; node.forEachChild(function (child) { morePairsToProcess.push({node: child, param: newParam}); }); pairsToProcess.concat(morePairsToProcess); } }; /** * Performs an indepth call graph traversal. * * @param {function(CallTree.Node)} enter A function called * prior to visiting node's children. * @param {function(CallTree.Node)} exit A function called * after visiting node's children. */ CallTree.prototype.traverseInDepth = function(enter, exit) { function traverse(node) { enter(node); node.forEachChild(traverse); exit(node); } traverse(this.root_); }; /** * Constructs a call graph node. * * @param {string} label Node label. * @param {CallTree.Node} opt_parent Node parent. */ CallTree.Node = function(label, opt_parent) { this.label = label; this.parent = opt_parent; this.children = {}; }; /** * Node self weight (how many times this node was the last node in * a call path). * @type {number} */ CallTree.Node.prototype.selfWeight = 0; /** * Node total weight (includes weights of all children). * @type {number} */ CallTree.Node.prototype.totalWeight = 0; /** * Adds a child node. * * @param {string} label Child node label. */ CallTree.Node.prototype.addChild = function(label) { var child = new CallTree.Node(label, this); this.children[label] = child; return child; }; /** * Computes node's total weight. */ CallTree.Node.prototype.computeTotalWeight = function() { var totalWeight = this.selfWeight; this.forEachChild(function(child) { totalWeight += child.computeTotalWeight(); }); return this.totalWeight = totalWeight; }; /** * Returns all node's children as an array. */ CallTree.Node.prototype.exportChildren = function() { var result = []; this.forEachChild(function (node) { result.push(node); }); return result; }; /** * Finds an immediate child with the specified label. * * @param {string} label Child node label. */ CallTree.Node.prototype.findChild = function(label) { return this.children[label] || null; }; /** * Finds an immediate child with the specified label, creates a child * node if necessary. * * @param {string} label Child node label. */ CallTree.Node.prototype.findOrAddChild = function(label) { return this.findChild(label) || this.addChild(label); }; /** * Calls the specified function for every child. * * @param {function(CallTree.Node)} f Visitor function. */ CallTree.Node.prototype.forEachChild = function(f) { for (var c in this.children) { f(this.children[c]); } }; /** * Walks up from the current node up to the call tree root. * * @param {function(CallTree.Node)} f Visitor function. */ CallTree.Node.prototype.walkUpToRoot = function(f) { for (var curr = this; curr != null; curr = curr.parent) { f(curr); } }; /** * Tries to find a node with the specified path. * * @param {Array} labels The path. * @param {function(CallTree.Node)} opt_f Visitor function. */ CallTree.Node.prototype.descendToChild = function( labels, opt_f) { for (var pos = 0, curr = this; pos < labels.length && curr != null; pos++) { var child = curr.findChild(labels[pos]); if (opt_f) { opt_f(child, pos); } curr = child; } return curr; }; function JsonProfile() { this.codeMap_ = new CodeMap(); this.codeEntries_ = []; this.functionEntries_ = []; this.ticks_ = []; this.scripts_ = []; } JsonProfile.prototype.addLibrary = function( name, startAddr, endAddr) { var entry = new CodeMap.CodeEntry( endAddr - startAddr, name, 'SHARED_LIB'); this.codeMap_.addLibrary(startAddr, entry); entry.codeId = this.codeEntries_.length; this.codeEntries_.push({name : entry.name, type : entry.type}); return entry; }; JsonProfile.prototype.addStaticCode = function( name, startAddr, endAddr) { var entry = new CodeMap.CodeEntry( endAddr - startAddr, name, 'CPP'); this.codeMap_.addStaticCode(startAddr, entry); entry.codeId = this.codeEntries_.length; this.codeEntries_.push({name : entry.name, type : entry.type}); return entry; }; JsonProfile.prototype.addCode = function( kind, name, timestamp, start, size) { var entry = new CodeMap.CodeEntry(size, name, 'CODE'); this.codeMap_.addCode(start, entry); entry.codeId = this.codeEntries_.length; this.codeEntries_.push({ name : entry.name, timestamp: timestamp, type : entry.type, kind : kind }); return entry; }; JsonProfile.prototype.addFuncCode = function( kind, name, timestamp, start, size, funcAddr, state) { // As code and functions are in the same address space, // it is safe to put them in a single code map. var func = this.codeMap_.findDynamicEntryByStartAddress(funcAddr); if (!func) { var func = new CodeMap.CodeEntry(0, name, 'SFI'); this.codeMap_.addCode(funcAddr, func); func.funcId = this.functionEntries_.length; this.functionEntries_.push({name : name, codes : []}); } else if (func.name !== name) { // Function object has been overwritten with a new one. func.name = name; func.funcId = this.functionEntries_.length; this.functionEntries_.push({name : name, codes : []}); } // TODO(jarin): Insert the code object into the SFI's code list. var entry = this.codeMap_.findDynamicEntryByStartAddress(start); if (entry) { // TODO(jarin) This does not look correct, we should really // update the code object (remove the old one and insert this one). if (entry.size === size && entry.func === func) { // Entry state has changed. entry.state = state; } } else { var entry = new CodeMap.CodeEntry(size, name, 'JS'); this.codeMap_.addCode(start, entry); entry.codeId = this.codeEntries_.length; this.functionEntries_[func.funcId].codes.push(entry.codeId); if (state === 0) { kind = "Builtin"; } else if (state === 1) { kind = "Unopt"; } else if (state === 2) { kind = "Opt"; } this.codeEntries_.push({ name : entry.name, type : entry.type, kind : kind, func : func.funcId, tm : timestamp }); } return entry; }; JsonProfile.prototype.moveCode = function(from, to) { try { this.codeMap_.moveCode(from, to); } catch (e) { printErr("Move: unknown source " + from); } }; JsonProfile.prototype.addSourcePositions = function( start, script, startPos, endPos, sourcePositions, inliningPositions, inlinedFunctions) { var entry = this.codeMap_.findDynamicEntryByStartAddress(start); if (!entry) return; var codeId = entry.codeId; // Resolve the inlined fucntions list. if (inlinedFunctions.length > 0) { inlinedFunctions = inlinedFunctions.substring(1).split("S"); for (var i = 0; i < inlinedFunctions.length; i++) { var funcAddr = parseInt(inlinedFunctions[i]); var func = this.codeMap_.findDynamicEntryByStartAddress(funcAddr); if (!func || func.funcId === undefined) { printErr("Could not find function " + inlinedFunctions[i]); inlinedFunctions[i] = null; } else { inlinedFunctions[i] = func.funcId; } } } else { inlinedFunctions = []; } this.codeEntries_[entry.codeId].source = { script : script, start : startPos, end : endPos, positions : sourcePositions, inlined : inliningPositions, fns : inlinedFunctions }; }; JsonProfile.prototype.addScriptSource = function(script, url, source) { this.scripts_[script] = { name : url, source : source }; }; JsonProfile.prototype.deoptCode = function( timestamp, code, inliningId, scriptOffset, bailoutType, sourcePositionText, deoptReasonText) { let entry = this.codeMap_.findDynamicEntryByStartAddress(code); if (entry) { let codeId = entry.codeId; if (!this.codeEntries_[codeId].deopt) { // Only add the deopt if there was no deopt before. // The subsequent deoptimizations should be lazy deopts for // other on-stack activations. this.codeEntries_[codeId].deopt = { tm : timestamp, inliningId : inliningId, scriptOffset : scriptOffset, posText : sourcePositionText, reason : deoptReasonText, bailoutType : bailoutType }; } } }; JsonProfile.prototype.deleteCode = function(start) { try { this.codeMap_.deleteCode(start); } catch (e) { printErr("Delete: unknown address " + start); } }; JsonProfile.prototype.moveFunc = function(from, to) { if (this.codeMap_.findDynamicEntryByStartAddress(from)) { this.codeMap_.moveCode(from, to); } }; JsonProfile.prototype.findEntry = function(addr) { return this.codeMap_.findEntry(addr); }; JsonProfile.prototype.recordTick = function(time_ns, vmState, stack) { // TODO(jarin) Resolve the frame-less case (when top of stack is // known code). var processedStack = []; for (var i = 0; i < stack.length; i++) { var resolved = this.codeMap_.findAddress(stack[i]); if (resolved) { processedStack.push(resolved.entry.codeId, resolved.offset); } else { processedStack.push(-1, stack[i]); } } this.ticks_.push({ tm : time_ns, vm : vmState, s : processedStack }); }; function writeJson(s) { write(JSON.stringify(s, null, 2)); } JsonProfile.prototype.writeJson = function() { // Write out the JSON in a partially manual way to avoid creating too-large // strings in one JSON.stringify call when there are a lot of ticks. write('{\n') write(' "code": '); writeJson(this.codeEntries_); write(',\n'); write(' "functions": '); writeJson(this.functionEntries_); write(',\n'); write(' "ticks": [\n'); for (var i = 0; i < this.ticks_.length; i++) { write(' '); writeJson(this.ticks_[i]); if (i < this.ticks_.length - 1) { write(',\n'); } else { write('\n'); } } write(' ],\n'); write(' "scripts": '); writeJson(this.scripts_); write('}\n'); }; v8/tools/profile'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/profile\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/profile'); internal/deps/v8/tools/profile_view// Copyright 2009 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * Creates a Profile View builder object. * * @param {number} samplingRate Number of ms between profiler ticks. * @constructor */ function ViewBuilder(samplingRate) { this.samplingRate = samplingRate; }; /** * Builds a profile view for the specified call tree. * * @param {CallTree} callTree A call tree. * @param {boolean} opt_bottomUpViewWeights Whether remapping * of self weights for a bottom up view is needed. */ ViewBuilder.prototype.buildView = function( callTree, opt_bottomUpViewWeights) { var head; var samplingRate = this.samplingRate; var createViewNode = this.createViewNode; callTree.traverse(function(node, viewParent) { var totalWeight = node.totalWeight * samplingRate; var selfWeight = node.selfWeight * samplingRate; if (opt_bottomUpViewWeights === true) { if (viewParent === head) { selfWeight = totalWeight; } else { selfWeight = 0; } } var viewNode = createViewNode(node.label, totalWeight, selfWeight, head); if (viewParent) { viewParent.addChild(viewNode); } else { head = viewNode; } return viewNode; }); var view = this.createView(head); return view; }; /** * Factory method for a profile view. * * @param {ProfileView.Node} head View head node. * @return {ProfileView} Profile view. */ ViewBuilder.prototype.createView = function(head) { return new ProfileView(head); }; /** * Factory method for a profile view node. * * @param {string} internalFuncName A fully qualified function name. * @param {number} totalTime Amount of time that application spent in the * corresponding function and its descendants (not that depending on * profile they can be either callees or callers.) * @param {number} selfTime Amount of time that application spent in the * corresponding function only. * @param {ProfileView.Node} head Profile view head. * @return {ProfileView.Node} Profile view node. */ ViewBuilder.prototype.createViewNode = function( funcName, totalTime, selfTime, head) { return new ProfileView.Node( funcName, totalTime, selfTime, head); }; /** * Creates a Profile View object. It allows to perform sorting * and filtering actions on the profile. * * @param {ProfileView.Node} head Head (root) node. * @constructor */ function ProfileView(head) { this.head = head; }; /** * Sorts the profile view using the specified sort function. * * @param {function(ProfileView.Node, * ProfileView.Node):number} sortFunc A sorting * functions. Must comply with Array.sort sorting function requirements. */ ProfileView.prototype.sort = function(sortFunc) { this.traverse(function (node) { node.sortChildren(sortFunc); }); }; /** * Traverses profile view nodes in preorder. * * @param {function(ProfileView.Node)} f Visitor function. */ ProfileView.prototype.traverse = function(f) { var nodesToTraverse = new ConsArray(); nodesToTraverse.concat([this.head]); while (!nodesToTraverse.atEnd()) { var node = nodesToTraverse.next(); f(node); nodesToTraverse.concat(node.children); } }; /** * Constructs a Profile View node object. Each node object corresponds to * a function call. * * @param {string} internalFuncName A fully qualified function name. * @param {number} totalTime Amount of time that application spent in the * corresponding function and its descendants (not that depending on * profile they can be either callees or callers.) * @param {number} selfTime Amount of time that application spent in the * corresponding function only. * @param {ProfileView.Node} head Profile view head. * @constructor */ ProfileView.Node = function( internalFuncName, totalTime, selfTime, head) { this.internalFuncName = internalFuncName; this.totalTime = totalTime; this.selfTime = selfTime; this.head = head; this.parent = null; this.children = []; }; /** * Returns a share of the function's total time in its parent's total time. */ ProfileView.Node.prototype.__defineGetter__( 'parentTotalPercent', function() { return this.totalTime / (this.parent ? this.parent.totalTime : this.totalTime) * 100.0; }); /** * Adds a child to the node. * * @param {ProfileView.Node} node Child node. */ ProfileView.Node.prototype.addChild = function(node) { node.parent = this; this.children.push(node); }; /** * Sorts all the node's children recursively. * * @param {function(ProfileView.Node, * ProfileView.Node):number} sortFunc A sorting * functions. Must comply with Array.sort sorting function requirements. */ ProfileView.Node.prototype.sortChildren = function( sortFunc) { this.children.sort(sortFunc); }; v8/tools/profile_view'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/profile_view\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/profile_view'); internal/deps/v8/tools/logreader// Copyright 2011 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** * @fileoverview Log Reader is used to process log file produced by V8. */ /** * Base class for processing log files. * * @param {Array.} dispatchTable A table used for parsing and processing * log records. * @param {boolean} timedRange Ignore ticks outside timed range. * @param {boolean} pairwiseTimedRange Ignore ticks outside pairs of timer * markers. * @constructor */ function LogReader(dispatchTable, timedRange, pairwiseTimedRange) { /** * @type {Array.} */ this.dispatchTable_ = dispatchTable; /** * @type {boolean} */ this.timedRange_ = timedRange; /** * @type {boolean} */ this.pairwiseTimedRange_ = pairwiseTimedRange; if (pairwiseTimedRange) { this.timedRange_ = true; } /** * Current line. * @type {number} */ this.lineNum_ = 0; /** * CSV lines parser. * @type {CsvParser} */ this.csvParser_ = new CsvParser(); /** * Keeps track of whether we've seen a "current-time" tick yet. * @type {boolean} */ this.hasSeenTimerMarker_ = false; /** * List of log lines seen since last "current-time" tick. * @type {Array.} */ this.logLinesSinceLastTimerMarker_ = []; }; /** * Used for printing error messages. * * @param {string} str Error message. */ LogReader.prototype.printError = function(str) { // Do nothing. }; /** * Processes a portion of V8 profiler event log. * * @param {string} chunk A portion of log. */ LogReader.prototype.processLogChunk = function(chunk) { this.processLog_(chunk.split('\n')); }; /** * Processes a line of V8 profiler event log. * * @param {string} line A line of log. */ LogReader.prototype.processLogLine = function(line) { if (!this.timedRange_) { this.processLog_([line]); return; } if (line.startsWith("current-time")) { if (this.hasSeenTimerMarker_) { this.processLog_(this.logLinesSinceLastTimerMarker_); this.logLinesSinceLastTimerMarker_ = []; // In pairwise mode, a "current-time" line ends the timed range. if (this.pairwiseTimedRange_) { this.hasSeenTimerMarker_ = false; } } else { this.hasSeenTimerMarker_ = true; } } else { if (this.hasSeenTimerMarker_) { this.logLinesSinceLastTimerMarker_.push(line); } else if (!line.startsWith("tick")) { this.processLog_([line]); } } }; /** * Processes stack record. * * @param {number} pc Program counter. * @param {number} func JS Function. * @param {Array.} stack String representation of a stack. * @return {Array.} Processed stack. */ LogReader.prototype.processStack = function(pc, func, stack) { var fullStack = func ? [pc, func] : [pc]; var prevFrame = pc; for (var i = 0, n = stack.length; i < n; ++i) { var frame = stack[i]; var firstChar = frame.charAt(0); if (firstChar == '+' || firstChar == '-') { // An offset from the previous frame. prevFrame += parseInt(frame, 16); fullStack.push(prevFrame); // Filter out possible 'overflow' string. } else if (firstChar != 'o') { fullStack.push(parseInt(frame, 16)); } else { this.printError("dropping: " + frame); } } return fullStack; }; /** * Returns whether a particular dispatch must be skipped. * * @param {!Object} dispatch Dispatch record. * @return {boolean} True if dispatch must be skipped. */ LogReader.prototype.skipDispatch = function(dispatch) { return false; }; /** * Does a dispatch of a log record. * * @param {Array.} fields Log record. * @private */ LogReader.prototype.dispatchLogRow_ = function(fields) { // Obtain the dispatch. var command = fields[0]; if (!(command in this.dispatchTable_)) return; var dispatch = this.dispatchTable_[command]; if (dispatch === null || this.skipDispatch(dispatch)) { return; } // Parse fields. var parsedFields = []; for (var i = 0; i < dispatch.parsers.length; ++i) { var parser = dispatch.parsers[i]; if (parser === null) { parsedFields.push(fields[1 + i]); } else if (typeof parser == 'function') { parsedFields.push(parser(fields[1 + i])); } else { // var-args parsedFields.push(fields.slice(1 + i)); break; } } // Run the processor. dispatch.processor.apply(this, parsedFields); }; /** * Processes log lines. * * @param {Array.} lines Log lines. * @private */ LogReader.prototype.processLog_ = function(lines) { for (var i = 0, n = lines.length; i < n; ++i, ++this.lineNum_) { var line = lines[i]; if (!line) { continue; } try { var fields = this.csvParser_.parseLine(line); this.dispatchLogRow_(fields); } catch (e) { this.printError('line ' + (this.lineNum_ + 1) + ': ' + (e.message || e)); } } }; v8/tools/logreader'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/logreader\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/logreader'); internal/deps/v8/tools/arguments// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. class BaseArgumentsProcessor { constructor(args) { this.args_ = args; this.result_ = this.getDefaultResults(); console.assert(this.result_ !== undefined) console.assert(this.result_.logFileName !== undefined); this.argsDispatch_ = this.getArgsDispatch(); console.assert(this.argsDispatch_ !== undefined); } getDefaultResults() { throw "Implement in getDefaultResults in subclass"; } getArgsDispatch() { throw "Implement getArgsDispatch in subclass"; } result() { return this.result_ } printUsageAndExit() { print('Cmdline args: [options] [log-file-name]\n' + 'Default log file name is "' + this.result_.logFileName + '".\n'); print('Options:'); for (var arg in this.argsDispatch_) { var synonyms = [arg]; var dispatch = this.argsDispatch_[arg]; for (var synArg in this.argsDispatch_) { if (arg !== synArg && dispatch === this.argsDispatch_[synArg]) { synonyms.push(synArg); delete this.argsDispatch_[synArg]; } } print(' ' + synonyms.join(', ').padEnd(20) + " " + dispatch[2]); } quit(2); } parse() { while (this.args_.length) { var arg = this.args_.shift(); if (arg.charAt(0) != '-') { this.result_.logFileName = arg; continue; } var userValue = null; var eqPos = arg.indexOf('='); if (eqPos != -1) { userValue = arg.substr(eqPos + 1); arg = arg.substr(0, eqPos); } if (arg in this.argsDispatch_) { var dispatch = this.argsDispatch_[arg]; var property = dispatch[0]; var defaultValue = dispatch[1]; if (typeof defaultValue == "function") { userValue = defaultValue(userValue); } else if (userValue == null) { userValue = defaultValue; } this.result_[property] = userValue; } else { return false; } } return true; } } function parseBool(str) { if (str == "true" || str == "1") return true; return false; } v8/tools/arguments'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/arguments\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/arguments'); internal/deps/v8/tools/tickprocessor// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. function inherits(childCtor, parentCtor) { childCtor.prototype.__proto__ = parentCtor.prototype; }; function V8Profile(separateIc, separateBytecodes, separateBuiltins, separateStubs) { Profile.call(this); var regexps = []; if (!separateIc) regexps.push(V8Profile.IC_RE); if (!separateBytecodes) regexps.push(V8Profile.BYTECODES_RE); if (!separateBuiltins) regexps.push(V8Profile.BUILTINS_RE); if (!separateStubs) regexps.push(V8Profile.STUBS_RE); if (regexps.length > 0) { this.skipThisFunction = function(name) { for (var i=0; i this.range_end) { return; } this.ticks_.total++; if (vmState == TickProcessor.VmStates.GC) this.ticks_.gc++; if (!this.includeTick(vmState)) { this.ticks_.excluded++; return; } if (is_external_callback) { // Don't use PC when in external callback code, as it can point // inside callback's code, and we will erroneously report // that a callback calls itself. Instead we use tos_or_external_callback, // as simply resetting PC will produce unaccounted ticks. pc = tos_or_external_callback; tos_or_external_callback = 0; } else if (tos_or_external_callback) { // Find out, if top of stack was pointing inside a JS function // meaning that we have encountered a frameless invocation. var funcEntry = this.profile_.findEntry(tos_or_external_callback); if (!funcEntry || !funcEntry.isJSFunction || !funcEntry.isJSFunction()) { tos_or_external_callback = 0; } } this.profile_.recordTick( ns_since_start, vmState, this.processStack(pc, tos_or_external_callback, stack)); }; TickProcessor.prototype.advanceDistortion = function() { this.distortion += this.distortion_per_entry; } TickProcessor.prototype.processHeapSampleBegin = function(space, state, ticks) { if (space != 'Heap') return; this.currentProducerProfile_ = new CallTree(); }; TickProcessor.prototype.processHeapSampleEnd = function(space, state) { if (space != 'Heap' || !this.currentProducerProfile_) return; print('Generation ' + this.generation_ + ':'); var tree = this.currentProducerProfile_; tree.computeTotalWeights(); var producersView = this.viewBuilder_.buildView(tree); // Sort by total time, desc, then by name, desc. producersView.sort(function(rec1, rec2) { return rec2.totalTime - rec1.totalTime || (rec2.internalFuncName < rec1.internalFuncName ? -1 : 1); }); this.printHeavyProfile(producersView.head.children); this.currentProducerProfile_ = null; this.generation_++; }; TickProcessor.prototype.printStatistics = function() { if (this.preprocessJson) { this.profile_.writeJson(); return; } print('Statistical profiling result from ' + this.lastLogFileName_ + ', (' + this.ticks_.total + ' ticks, ' + this.ticks_.unaccounted + ' unaccounted, ' + this.ticks_.excluded + ' excluded).'); if (this.ticks_.total == 0) return; var flatProfile = this.profile_.getFlatProfile(); var flatView = this.viewBuilder_.buildView(flatProfile); // Sort by self time, desc, then by name, desc. flatView.sort(function(rec1, rec2) { return rec2.selfTime - rec1.selfTime || (rec2.internalFuncName < rec1.internalFuncName ? -1 : 1); }); var totalTicks = this.ticks_.total; if (this.ignoreUnknown_) { totalTicks -= this.ticks_.unaccounted; } var printAllTicks = !this.onlySummary_; // Count library ticks var flatViewNodes = flatView.head.children; var self = this; var libraryTicks = 0; if(printAllTicks) this.printHeader('Shared libraries'); this.printEntries(flatViewNodes, totalTicks, null, function(name) { return self.isSharedLibrary(name); }, function(rec) { libraryTicks += rec.selfTime; }, printAllTicks); var nonLibraryTicks = totalTicks - libraryTicks; var jsTicks = 0; if(printAllTicks) this.printHeader('JavaScript'); this.printEntries(flatViewNodes, totalTicks, nonLibraryTicks, function(name) { return self.isJsCode(name); }, function(rec) { jsTicks += rec.selfTime; }, printAllTicks); var cppTicks = 0; if(printAllTicks) this.printHeader('C++'); this.printEntries(flatViewNodes, totalTicks, nonLibraryTicks, function(name) { return self.isCppCode(name); }, function(rec) { cppTicks += rec.selfTime; }, printAllTicks); this.printHeader('Summary'); this.printLine('JavaScript', jsTicks, totalTicks, nonLibraryTicks); this.printLine('C++', cppTicks, totalTicks, nonLibraryTicks); this.printLine('GC', this.ticks_.gc, totalTicks, nonLibraryTicks); this.printLine('Shared libraries', libraryTicks, totalTicks, null); if (!this.ignoreUnknown_ && this.ticks_.unaccounted > 0) { this.printLine('Unaccounted', this.ticks_.unaccounted, this.ticks_.total, null); } if(printAllTicks) { print('\n [C++ entry points]:'); print(' ticks cpp total name'); var c_entry_functions = this.profile_.getCEntryProfile(); var total_c_entry = c_entry_functions[0].ticks; for (var i = 1; i < c_entry_functions.length; i++) { c = c_entry_functions[i]; this.printLine(c.name, c.ticks, total_c_entry, totalTicks); } this.printHeavyProfHeader(); var heavyProfile = this.profile_.getBottomUpProfile(); var heavyView = this.viewBuilder_.buildView(heavyProfile); // To show the same percentages as in the flat profile. heavyView.head.totalTime = totalTicks; // Sort by total time, desc, then by name, desc. heavyView.sort(function(rec1, rec2) { return rec2.totalTime - rec1.totalTime || (rec2.internalFuncName < rec1.internalFuncName ? -1 : 1); }); this.printHeavyProfile(heavyView.head.children); } }; function padLeft(s, len) { s = s.toString(); if (s.length < len) { var padLength = len - s.length; if (!(padLength in padLeft)) { padLeft[padLength] = new Array(padLength + 1).join(' '); } s = padLeft[padLength] + s; } return s; }; TickProcessor.prototype.printHeader = function(headerTitle) { print('\n [' + headerTitle + ']:'); print(' ticks total nonlib name'); }; TickProcessor.prototype.printLine = function( entry, ticks, totalTicks, nonLibTicks) { var pct = ticks * 100 / totalTicks; var nonLibPct = nonLibTicks != null ? padLeft((ticks * 100 / nonLibTicks).toFixed(1), 5) + '% ' : ' '; print(' ' + padLeft(ticks, 5) + ' ' + padLeft(pct.toFixed(1), 5) + '% ' + nonLibPct + entry); } TickProcessor.prototype.printHeavyProfHeader = function() { print('\n [Bottom up (heavy) profile]:'); print(' Note: percentage shows a share of a particular caller in the ' + 'total\n' + ' amount of its parent calls.'); print(' Callers occupying less than ' + TickProcessor.CALL_PROFILE_CUTOFF_PCT.toFixed(1) + '% are not shown.\n'); print(' ticks parent name'); }; TickProcessor.prototype.processProfile = function( profile, filterP, func) { for (var i = 0, n = profile.length; i < n; ++i) { var rec = profile[i]; if (!filterP(rec.internalFuncName)) { continue; } func(rec); } }; TickProcessor.prototype.getLineAndColumn = function(name) { var re = /:([0-9]+):([0-9]+)$/; var array = re.exec(name); if (!array) { return null; } return {line: array[1], column: array[2]}; } TickProcessor.prototype.hasSourceMap = function() { return this.sourceMap != null; }; TickProcessor.prototype.formatFunctionName = function(funcName) { if (!this.hasSourceMap()) { return funcName; } var lc = this.getLineAndColumn(funcName); if (lc == null) { return funcName; } // in source maps lines and columns are zero based var lineNumber = lc.line - 1; var column = lc.column - 1; var entry = this.sourceMap.findEntry(lineNumber, column); var sourceFile = entry[2]; var sourceLine = entry[3] + 1; var sourceColumn = entry[4] + 1; return sourceFile + ':' + sourceLine + ':' + sourceColumn + ' -> ' + funcName; }; TickProcessor.prototype.printEntries = function( profile, totalTicks, nonLibTicks, filterP, callback, printAllTicks) { var that = this; this.processProfile(profile, filterP, function (rec) { if (rec.selfTime == 0) return; callback(rec); var funcName = that.formatFunctionName(rec.internalFuncName); if(printAllTicks) { that.printLine(funcName, rec.selfTime, totalTicks, nonLibTicks); } }); }; TickProcessor.prototype.printHeavyProfile = function(profile, opt_indent) { var self = this; var indent = opt_indent || 0; var indentStr = padLeft('', indent); this.processProfile(profile, function() { return true; }, function (rec) { // Cut off too infrequent callers. if (rec.parentTotalPercent < TickProcessor.CALL_PROFILE_CUTOFF_PCT) return; var funcName = self.formatFunctionName(rec.internalFuncName); print(' ' + padLeft(rec.totalTime, 5) + ' ' + padLeft(rec.parentTotalPercent.toFixed(1), 5) + '% ' + indentStr + funcName); // Limit backtrace depth. if (indent < 2 * self.callGraphSize_) { self.printHeavyProfile(rec.children, indent + 2); } // Delimit top-level functions. if (indent == 0) { print(''); } }); }; function CppEntriesProvider() { }; CppEntriesProvider.prototype.parseVmSymbols = function( libName, libStart, libEnd, libASLRSlide, processorFunc) { this.loadSymbols(libName); var prevEntry; function addEntry(funcInfo) { // Several functions can be mapped onto the same address. To avoid // creating zero-sized entries, skip such duplicates. // Also double-check that function belongs to the library address space. if (prevEntry && !prevEntry.end && prevEntry.start < funcInfo.start && prevEntry.start >= libStart && funcInfo.start <= libEnd) { processorFunc(prevEntry.name, prevEntry.start, funcInfo.start); } if (funcInfo.end && (!prevEntry || prevEntry.start != funcInfo.start) && funcInfo.start >= libStart && funcInfo.end <= libEnd) { processorFunc(funcInfo.name, funcInfo.start, funcInfo.end); } prevEntry = funcInfo; } while (true) { var funcInfo = this.parseNextLine(); if (funcInfo === null) { continue; } else if (funcInfo === false) { break; } if (funcInfo.start < libStart - libASLRSlide && funcInfo.start < libEnd - libStart) { funcInfo.start += libStart; } else { funcInfo.start += libASLRSlide; } if (funcInfo.size) { funcInfo.end = funcInfo.start + funcInfo.size; } addEntry(funcInfo); } addEntry({name: '', start: libEnd}); }; CppEntriesProvider.prototype.loadSymbols = function(libName) { }; CppEntriesProvider.prototype.parseNextLine = function() { return false; }; function UnixCppEntriesProvider(nmExec, targetRootFS) { this.symbols = []; this.parsePos = 0; this.nmExec = nmExec; this.targetRootFS = targetRootFS; this.FUNC_RE = /^([0-9a-fA-F]{8,16}) ([0-9a-fA-F]{8,16} )?[tTwW] (.*)$/; }; inherits(UnixCppEntriesProvider, CppEntriesProvider); UnixCppEntriesProvider.prototype.loadSymbols = function(libName) { this.parsePos = 0; libName = this.targetRootFS + libName; try { this.symbols = [ os.system(this.nmExec, ['-C', '-n', '-S', libName], -1, -1), os.system(this.nmExec, ['-C', '-n', '-S', '-D', libName], -1, -1) ]; } catch (e) { // If the library cannot be found on this system let's not panic. this.symbols = ['', '']; } }; UnixCppEntriesProvider.prototype.parseNextLine = function() { if (this.symbols.length == 0) { return false; } var lineEndPos = this.symbols[0].indexOf('\n', this.parsePos); if (lineEndPos == -1) { this.symbols.shift(); this.parsePos = 0; return this.parseNextLine(); } var line = this.symbols[0].substring(this.parsePos, lineEndPos); this.parsePos = lineEndPos + 1; var fields = line.match(this.FUNC_RE); var funcInfo = null; if (fields) { funcInfo = { name: fields[3], start: parseInt(fields[1], 16) }; if (fields[2]) { funcInfo.size = parseInt(fields[2], 16); } } return funcInfo; }; function MacCppEntriesProvider(nmExec, targetRootFS) { UnixCppEntriesProvider.call(this, nmExec, targetRootFS); // Note an empty group. It is required, as UnixCppEntriesProvider expects 3 groups. this.FUNC_RE = /^([0-9a-fA-F]{8,16})() (.*)$/; }; inherits(MacCppEntriesProvider, UnixCppEntriesProvider); MacCppEntriesProvider.prototype.loadSymbols = function(libName) { this.parsePos = 0; libName = this.targetRootFS + libName; // It seems that in OS X `nm` thinks that `-f` is a format option, not a // "flat" display option flag. try { this.symbols = [os.system(this.nmExec, ['-n', libName], -1, -1), '']; } catch (e) { // If the library cannot be found on this system let's not panic. this.symbols = ''; } }; function WindowsCppEntriesProvider(_ignored_nmExec, targetRootFS) { this.targetRootFS = targetRootFS; this.symbols = ''; this.parsePos = 0; }; inherits(WindowsCppEntriesProvider, CppEntriesProvider); WindowsCppEntriesProvider.FILENAME_RE = /^(.*)\.([^.]+)$/; WindowsCppEntriesProvider.FUNC_RE = /^\s+0001:[0-9a-fA-F]{8}\s+([_\?@$0-9a-zA-Z]+)\s+([0-9a-fA-F]{8}).*$/; WindowsCppEntriesProvider.IMAGE_BASE_RE = /^\s+0000:00000000\s+___ImageBase\s+([0-9a-fA-F]{8}).*$/; // This is almost a constant on Windows. WindowsCppEntriesProvider.EXE_IMAGE_BASE = 0x00400000; WindowsCppEntriesProvider.prototype.loadSymbols = function(libName) { libName = this.targetRootFS + libName; var fileNameFields = libName.match(WindowsCppEntriesProvider.FILENAME_RE); if (!fileNameFields) return; var mapFileName = fileNameFields[1] + '.map'; this.moduleType_ = fileNameFields[2].toLowerCase(); try { this.symbols = read(mapFileName); } catch (e) { // If .map file cannot be found let's not panic. this.symbols = ''; } }; WindowsCppEntriesProvider.prototype.parseNextLine = function() { var lineEndPos = this.symbols.indexOf('\r\n', this.parsePos); if (lineEndPos == -1) { return false; } var line = this.symbols.substring(this.parsePos, lineEndPos); this.parsePos = lineEndPos + 2; // Image base entry is above all other symbols, so we can just // terminate parsing. var imageBaseFields = line.match(WindowsCppEntriesProvider.IMAGE_BASE_RE); if (imageBaseFields) { var imageBase = parseInt(imageBaseFields[1], 16); if ((this.moduleType_ == 'exe') != (imageBase == WindowsCppEntriesProvider.EXE_IMAGE_BASE)) { return false; } } var fields = line.match(WindowsCppEntriesProvider.FUNC_RE); return fields ? { name: this.unmangleName(fields[1]), start: parseInt(fields[2], 16) } : null; }; /** * Performs very simple unmangling of C++ names. * * Does not handle arguments and template arguments. The mangled names have * the form: * * ?LookupInDescriptor@JSObject@internal@v8@@...arguments info... */ WindowsCppEntriesProvider.prototype.unmangleName = function(name) { // Empty or non-mangled name. if (name.length < 1 || name.charAt(0) != '?') return name; var nameEndPos = name.indexOf('@@'); var components = name.substring(1, nameEndPos).split('@'); components.reverse(); return components.join('::'); }; class ArgumentsProcessor extends BaseArgumentsProcessor { getArgsDispatch() { let dispatch = { '-j': ['stateFilter', TickProcessor.VmStates.JS, 'Show only ticks from JS VM state'], '-g': ['stateFilter', TickProcessor.VmStates.GC, 'Show only ticks from GC VM state'], '-p': ['stateFilter', TickProcessor.VmStates.PARSER, 'Show only ticks from PARSER VM state'], '-b': ['stateFilter', TickProcessor.VmStates.BYTECODE_COMPILER, 'Show only ticks from BYTECODE_COMPILER VM state'], '-c': ['stateFilter', TickProcessor.VmStates.COMPILER, 'Show only ticks from COMPILER VM state'], '-o': ['stateFilter', TickProcessor.VmStates.OTHER, 'Show only ticks from OTHER VM state'], '-e': ['stateFilter', TickProcessor.VmStates.EXTERNAL, 'Show only ticks from EXTERNAL VM state'], '--filter-runtime-timer': ['runtimeTimerFilter', null, 'Show only ticks matching the given runtime timer scope'], '--call-graph-size': ['callGraphSize', TickProcessor.CALL_GRAPH_SIZE, 'Set the call graph size'], '--ignore-unknown': ['ignoreUnknown', true, 'Exclude ticks of unknown code entries from processing'], '--separate-ic': ['separateIc', parseBool, 'Separate IC entries'], '--separate-bytecodes': ['separateBytecodes', parseBool, 'Separate Bytecode entries'], '--separate-builtins': ['separateBuiltins', parseBool, 'Separate Builtin entries'], '--separate-stubs': ['separateStubs', parseBool, 'Separate Stub entries'], '--unix': ['platform', 'unix', 'Specify that we are running on *nix platform'], '--windows': ['platform', 'windows', 'Specify that we are running on Windows platform'], '--mac': ['platform', 'mac', 'Specify that we are running on Mac OS X platform'], '--nm': ['nm', 'nm', 'Specify the \'nm\' executable to use (e.g. --nm=/my_dir/nm)'], '--target': ['targetRootFS', '', 'Specify the target root directory for cross environment'], '--range': ['range', 'auto,auto', 'Specify the range limit as [start],[end]'], '--distortion': ['distortion', 0, 'Specify the logging overhead in picoseconds'], '--source-map': ['sourceMap', null, 'Specify the source map that should be used for output'], '--timed-range': ['timedRange', true, 'Ignore ticks before first and after last Date.now() call'], '--pairwise-timed-range': ['pairwiseTimedRange', true, 'Ignore ticks outside pairs of Date.now() calls'], '--only-summary': ['onlySummary', true, 'Print only tick summary, exclude other information'], '--preprocess': ['preprocessJson', true, 'Preprocess for consumption with web interface'] }; dispatch['--js'] = dispatch['-j']; dispatch['--gc'] = dispatch['-g']; dispatch['--compiler'] = dispatch['-c']; dispatch['--other'] = dispatch['-o']; dispatch['--external'] = dispatch['-e']; dispatch['--ptr'] = dispatch['--pairwise-timed-range']; return dispatch; } getDefaultResults() { return { logFileName: 'v8.log', platform: 'unix', stateFilter: null, callGraphSize: 5, ignoreUnknown: false, separateIc: true, separateBytecodes: false, separateBuiltins: true, separateStubs: true, preprocessJson: null, targetRootFS: '', nm: 'nm', range: 'auto,auto', distortion: 0, timedRange: false, pairwiseTimedRange: false, onlySummary: false, runtimeTimerFilter: null, }; } } v8/tools/tickprocessor'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/tickprocessor\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/tickprocessor'); internal/deps/v8/tools/SourceMap// Copyright 2013 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // This is a copy from blink dev tools, see: // http://src.chromium.org/viewvc/blink/trunk/Source/devtools/front_end/SourceMap.js // revision: 153407 // Added to make the file work without dev tools WebInspector = {}; WebInspector.ParsedURL = {}; WebInspector.ParsedURL.completeURL = function(){}; // start of original file content /* * Copyright (C) 2012 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * Implements Source Map V3 model. See http://code.google.com/p/closure-compiler/wiki/SourceMaps * for format description. * @constructor * @param {string} sourceMappingURL * @param {SourceMapV3} payload */ WebInspector.SourceMap = function(sourceMappingURL, payload) { if (!WebInspector.SourceMap.prototype._base64Map) { const base64Digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; WebInspector.SourceMap.prototype._base64Map = {}; for (var i = 0; i < base64Digits.length; ++i) WebInspector.SourceMap.prototype._base64Map[base64Digits.charAt(i)] = i; } this._sourceMappingURL = sourceMappingURL; this._reverseMappingsBySourceURL = {}; this._mappings = []; this._sources = {}; this._sourceContentByURL = {}; this._parseMappingPayload(payload); } /** * @param {string} sourceMapURL * @param {string} compiledURL * @param {function(WebInspector.SourceMap)} callback */ WebInspector.SourceMap.load = function(sourceMapURL, compiledURL, callback) { NetworkAgent.loadResourceForFrontend(WebInspector.resourceTreeModel.mainFrame.id, sourceMapURL, undefined, contentLoaded.bind(this)); /** * @param {?Protocol.Error} error * @param {number} statusCode * @param {NetworkAgent.Headers} headers * @param {string} content */ function contentLoaded(error, statusCode, headers, content) { if (error || !content || statusCode >= 400) { console.error("Could not load content for " + sourceMapURL + " : " + (error || ("HTTP status code: " + statusCode))); callback(null); return; } if (content.slice(0, 3) === ")]}") content = content.substring(content.indexOf('\n')); try { var payload = /** @type {SourceMapV3} */ (JSON.parse(content)); var baseURL = sourceMapURL.startsWith("data:") ? compiledURL : sourceMapURL; callback(new WebInspector.SourceMap(baseURL, payload)); } catch(e) { console.error(e.message); callback(null); } } } WebInspector.SourceMap.prototype = { /** * @return {Array.} */ sources: function() { return Object.keys(this._sources); }, /** * @param {string} sourceURL * @return {string|undefined} */ sourceContent: function(sourceURL) { return this._sourceContentByURL[sourceURL]; }, /** * @param {string} sourceURL * @param {WebInspector.ResourceType} contentType * @return {WebInspector.ContentProvider} */ sourceContentProvider: function(sourceURL, contentType) { var lastIndexOfDot = sourceURL.lastIndexOf("."); var extension = lastIndexOfDot !== -1 ? sourceURL.substr(lastIndexOfDot + 1) : ""; var mimeType = WebInspector.ResourceType.mimeTypesForExtensions[extension.toLowerCase()]; var sourceContent = this.sourceContent(sourceURL); if (sourceContent) return new WebInspector.StaticContentProvider(contentType, sourceContent, mimeType); return new WebInspector.CompilerSourceMappingContentProvider(sourceURL, contentType, mimeType); }, /** * @param {SourceMapV3} mappingPayload */ _parseMappingPayload: function(mappingPayload) { if (mappingPayload.sections) this._parseSections(mappingPayload.sections); else this._parseMap(mappingPayload, 0, 0); }, /** * @param {Array.} sections */ _parseSections: function(sections) { for (var i = 0; i < sections.length; ++i) { var section = sections[i]; this._parseMap(section.map, section.offset.line, section.offset.column); } }, /** * @param {number} lineNumber in compiled resource * @param {number} columnNumber in compiled resource * @return {?Array} */ findEntry: function(lineNumber, columnNumber) { var first = 0; var count = this._mappings.length; while (count > 1) { var step = count >> 1; var middle = first + step; var mapping = this._mappings[middle]; if (lineNumber < mapping[0] || (lineNumber === mapping[0] && columnNumber < mapping[1])) count = step; else { first = middle; count -= step; } } var entry = this._mappings[first]; if (!first && entry && (lineNumber < entry[0] || (lineNumber === entry[0] && columnNumber < entry[1]))) return null; return entry; }, /** * @param {string} sourceURL of the originating resource * @param {number} lineNumber in the originating resource * @return {Array} */ findEntryReversed: function(sourceURL, lineNumber) { var mappings = this._reverseMappingsBySourceURL[sourceURL]; for ( ; lineNumber < mappings.length; ++lineNumber) { var mapping = mappings[lineNumber]; if (mapping) return mapping; } return this._mappings[0]; }, /** * @override */ _parseMap: function(map, lineNumber, columnNumber) { var sourceIndex = 0; var sourceLineNumber = 0; var sourceColumnNumber = 0; var nameIndex = 0; var sources = []; var originalToCanonicalURLMap = {}; for (var i = 0; i < map.sources.length; ++i) { var originalSourceURL = map.sources[i]; var sourceRoot = map.sourceRoot || ""; if (sourceRoot && !sourceRoot.endsWith("/")) sourceRoot += "/"; var href = sourceRoot + originalSourceURL; var url = WebInspector.ParsedURL.completeURL(this._sourceMappingURL, href) || href; originalToCanonicalURLMap[originalSourceURL] = url; sources.push(url); this._sources[url] = true; if (map.sourcesContent && map.sourcesContent[i]) this._sourceContentByURL[url] = map.sourcesContent[i]; } var stringCharIterator = new WebInspector.SourceMap.StringCharIterator(map.mappings); var sourceURL = sources[sourceIndex]; while (true) { if (stringCharIterator.peek() === ",") stringCharIterator.next(); else { while (stringCharIterator.peek() === ";") { lineNumber += 1; columnNumber = 0; stringCharIterator.next(); } if (!stringCharIterator.hasNext()) break; } columnNumber += this._decodeVLQ(stringCharIterator); if (this._isSeparator(stringCharIterator.peek())) { this._mappings.push([lineNumber, columnNumber]); continue; } var sourceIndexDelta = this._decodeVLQ(stringCharIterator); if (sourceIndexDelta) { sourceIndex += sourceIndexDelta; sourceURL = sources[sourceIndex]; } sourceLineNumber += this._decodeVLQ(stringCharIterator); sourceColumnNumber += this._decodeVLQ(stringCharIterator); if (!this._isSeparator(stringCharIterator.peek())) nameIndex += this._decodeVLQ(stringCharIterator); this._mappings.push([lineNumber, columnNumber, sourceURL, sourceLineNumber, sourceColumnNumber]); } for (var i = 0; i < this._mappings.length; ++i) { var mapping = this._mappings[i]; var url = mapping[2]; if (!url) continue; if (!this._reverseMappingsBySourceURL[url]) this._reverseMappingsBySourceURL[url] = []; var reverseMappings = this._reverseMappingsBySourceURL[url]; var sourceLine = mapping[3]; if (!reverseMappings[sourceLine]) reverseMappings[sourceLine] = [mapping[0], mapping[1]]; } }, /** * @param {string} char * @return {boolean} */ _isSeparator: function(char) { return char === "," || char === ";"; }, /** * @param {WebInspector.SourceMap.StringCharIterator} stringCharIterator * @return {number} */ _decodeVLQ: function(stringCharIterator) { // Read unsigned value. var result = 0; var shift = 0; do { var digit = this._base64Map[stringCharIterator.next()]; result += (digit & this._VLQ_BASE_MASK) << shift; shift += this._VLQ_BASE_SHIFT; } while (digit & this._VLQ_CONTINUATION_MASK); // Fix the sign. var negative = result & 1; result >>= 1; return negative ? -result : result; }, _VLQ_BASE_SHIFT: 5, _VLQ_BASE_MASK: (1 << 5) - 1, _VLQ_CONTINUATION_MASK: 1 << 5 } /** * @constructor * @param {string} string */ WebInspector.SourceMap.StringCharIterator = function(string) { this._string = string; this._position = 0; } WebInspector.SourceMap.StringCharIterator.prototype = { /** * @return {string} */ next: function() { return this._string.charAt(this._position++); }, /** * @return {string} */ peek: function() { return this._string.charAt(this._position); }, /** * @return {boolean} */ hasNext: function() { return this._position < this._string.length; } } v8/tools/SourceMap'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/SourceMap\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/SourceMap'); internal/deps/v8/tools/tickprocessor-driver// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Tick Processor's code flow. function processArguments(args) { var processor = new ArgumentsProcessor(args); if (processor.parse()) { return processor.result(); } else { processor.printUsageAndExit(); } } function initSourceMapSupport() { // Pull dev tools source maps into our name space. SourceMap = WebInspector.SourceMap; // Overwrite the load function to load scripts synchronously. SourceMap.load = function(sourceMapURL) { var content = readFile(sourceMapURL); var sourceMapObject = (JSON.parse(content)); return new SourceMap(sourceMapURL, sourceMapObject); }; } var entriesProviders = { 'unix': UnixCppEntriesProvider, 'windows': WindowsCppEntriesProvider, 'mac': MacCppEntriesProvider }; var params = processArguments(arguments); var sourceMap = null; if (params.sourceMap) { initSourceMapSupport(); sourceMap = SourceMap.load(params.sourceMap); } var tickProcessor = new TickProcessor( new (entriesProviders[params.platform])(params.nm, params.targetRootFS), params.separateIc, params.separateBytecodes, params.separateBuiltins, params.separateStubs, params.callGraphSize, params.ignoreUnknown, params.stateFilter, params.distortion, params.range, sourceMap, params.timedRange, params.pairwiseTimedRange, params.onlySummary, params.runtimeTimerFilter, params.preprocessJson); tickProcessor.processLogFile(params.logFileName); tickProcessor.printStatistics(); v8/tools/tickprocessor-driver'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'v8/tools/tickprocessor-driver\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/v8/tools/tickprocessor-driver'); internal/deps/node-inspect/lib/_inspect/* * Copyright Node.js contributors. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ 'use strict'; const { spawn } = require('child_process'); const { EventEmitter } = require('events'); const net = require('net'); const util = require('util'); const runAsStandalone = typeof __dirname !== 'undefined'; const [ InspectClient, createRepl ] = runAsStandalone ? // This copy of node-inspect is on-disk, relative paths make sense. [ require('./internal/inspect_client'), require('./internal/inspect_repl') ] : // This copy of node-inspect is built into the node executable. [ require('node-inspect/lib/internal/inspect_client'), require('node-inspect/lib/internal/inspect_repl') ]; const debuglog = util.debuglog('inspect'); class StartupError extends Error { constructor(message) { super(message); this.name = 'StartupError'; } } function portIsFree(host, port, timeout = 2000) { if (port === 0) return Promise.resolve(); // Binding to a random port. const retryDelay = 150; let didTimeOut = false; return new Promise((resolve, reject) => { setTimeout(() => { didTimeOut = true; reject(new StartupError( `Timeout (${timeout}) waiting for ${host}:${port} to be free`)); }, timeout); function pingPort() { if (didTimeOut) return; const socket = net.connect(port, host); let didRetry = false; function retry() { if (!didRetry && !didTimeOut) { didRetry = true; setTimeout(pingPort, retryDelay); } } socket.on('error', (error) => { if (error.code === 'ECONNREFUSED') { resolve(); } else { retry(); } }); socket.on('connect', () => { socket.destroy(); retry(); }); } pingPort(); }); } function runScript(script, scriptArgs, inspectHost, inspectPort, childPrint) { return portIsFree(inspectHost, inspectPort) .then(() => { return new Promise((resolve) => { const needDebugBrk = process.version.match(/^v(6|7)\./); const args = (needDebugBrk ? ['--inspect', `--debug-brk=${inspectPort}`] : [`--inspect-brk=${inspectPort}`]) .concat([script], scriptArgs); const child = spawn(process.execPath, args); child.stdout.setEncoding('utf8'); child.stderr.setEncoding('utf8'); child.stdout.on('data', childPrint); child.stderr.on('data', childPrint); let output = ''; function waitForListenHint(text) { output += text; if (/Debugger listening on ws:\/\/\[?(.+?)\]?:(\d+)\//.test(output)) { const host = RegExp.$1; const port = Number.parseInt(RegExp.$2); child.stderr.removeListener('data', waitForListenHint); resolve([child, port, host]); } } child.stderr.on('data', waitForListenHint); }); }); } function createAgentProxy(domain, client) { const agent = new EventEmitter(); agent.then = (...args) => { // TODO: potentially fetch the protocol and pretty-print it here. const descriptor = { [util.inspect.custom](depth, { stylize }) { return stylize(`[Agent ${domain}]`, 'special'); }, }; return Promise.resolve(descriptor).then(...args); }; return new Proxy(agent, { get(target, name) { if (name in target) return target[name]; return function callVirtualMethod(params) { return client.callMethod(`${domain}.${name}`, params); }; }, }); } class NodeInspector { constructor(options, stdin, stdout) { this.options = options; this.stdin = stdin; this.stdout = stdout; this.paused = true; this.child = null; if (options.script) { this._runScript = runScript.bind(null, options.script, options.scriptArgs, options.host, options.port, this.childPrint.bind(this)); } else { this._runScript = () => Promise.resolve([null, options.port, options.host]); } this.client = new InspectClient(); this.domainNames = ['Debugger', 'HeapProfiler', 'Profiler', 'Runtime']; this.domainNames.forEach((domain) => { this[domain] = createAgentProxy(domain, this.client); }); this.handleDebugEvent = (fullName, params) => { const [domain, name] = fullName.split('.'); if (domain in this) { this[domain].emit(name, params); } }; this.client.on('debugEvent', this.handleDebugEvent); const startRepl = createRepl(this); // Handle all possible exits process.on('exit', () => this.killChild()); process.once('SIGTERM', process.exit.bind(process, 0)); process.once('SIGHUP', process.exit.bind(process, 0)); this.run() .then(() => startRepl()) .then((repl) => { this.repl = repl; this.repl.on('exit', () => { process.exit(0); }); this.paused = false; }) .then(null, (error) => process.nextTick(() => { throw error; })); } suspendReplWhile(fn) { if (this.repl) { this.repl.rli.pause(); } this.stdin.pause(); this.paused = true; return new Promise((resolve) => { resolve(fn()); }).then(() => { this.paused = false; if (this.repl) { this.repl.rli.resume(); this.repl.displayPrompt(); } this.stdin.resume(); }).then(null, (error) => process.nextTick(() => { throw error; })); } killChild() { this.client.reset(); if (this.child) { this.child.kill(); this.child = null; } } run() { this.killChild(); return this._runScript().then(([child, port, host]) => { this.child = child; let connectionAttempts = 0; const attemptConnect = () => { ++connectionAttempts; debuglog('connection attempt #%d', connectionAttempts); this.stdout.write('.'); return this.client.connect(port, host) .then(() => { debuglog('connection established'); this.stdout.write(' ok'); }, (error) => { debuglog('connect failed', error); // If it's failed to connect 10 times then print failed message if (connectionAttempts >= 10) { this.stdout.write(' failed to connect, please retry\n'); process.exit(1); } return new Promise((resolve) => setTimeout(resolve, 500)) .then(attemptConnect); }); }; this.print(`connecting to ${host}:${port} ..`, true); return attemptConnect(); }); } clearLine() { if (this.stdout.isTTY) { this.stdout.cursorTo(0); this.stdout.clearLine(1); } else { this.stdout.write('\b'); } } print(text, oneline = false) { this.clearLine(); this.stdout.write(oneline ? text : `${text}\n`); } childPrint(text) { this.print( text.toString() .split(/\r\n|\r|\n/g) .filter((chunk) => !!chunk) .map((chunk) => `< ${chunk}`) .join('\n') ); if (!this.paused) { this.repl.displayPrompt(true); } if (/Waiting for the debugger to disconnect\.\.\.\n$/.test(text)) { this.killChild(); } } } function parseArgv([target, ...args]) { let host = '127.0.0.1'; let port = 9229; let isRemote = false; let script = target; let scriptArgs = args; const hostMatch = target.match(/^([^:]+):(\d+)$/); const portMatch = target.match(/^--port=(\d+)$/); if (hostMatch) { // Connecting to remote debugger // `node-inspect localhost:9229` host = hostMatch[1]; port = parseInt(hostMatch[2], 10); isRemote = true; script = null; } else if (portMatch) { // start debugee on custom port // `node inspect --port=9230 script.js` port = parseInt(portMatch[1], 10); script = args[0]; scriptArgs = args.slice(1); } else if (args.length === 1 && /^\d+$/.test(args[0]) && target === '-p') { // Start debugger against a given pid const pid = parseInt(args[0], 10); try { process._debugProcess(pid); } catch (e) { if (e.code === 'ESRCH') { /* eslint-disable no-console */ console.error(`Target process: ${pid} doesn't exist.`); /* eslint-enable no-console */ process.exit(1); } throw e; } script = null; isRemote = true; } return { host, port, isRemote, script, scriptArgs, }; } function startInspect(argv = process.argv.slice(2), stdin = process.stdin, stdout = process.stdout) { /* eslint-disable no-console */ if (argv.length < 1) { const invokedAs = runAsStandalone ? 'node-inspect' : `${process.argv0} ${process.argv[1]}`; console.error(`Usage: ${invokedAs} script.js`); console.error(` ${invokedAs} :`); console.error(` ${invokedAs} -p `); process.exit(1); } const options = parseArgv(argv); const inspector = new NodeInspector(options, stdin, stdout); stdin.resume(); function handleUnexpectedError(e) { if (!(e instanceof StartupError)) { console.error('There was an internal error in node-inspect. ' + 'Please report this bug.'); console.error(e.message); console.error(e.stack); } else { console.error(e.message); } if (inspector.child) inspector.child.kill(); process.exit(1); } process.on('uncaughtException', handleUnexpectedError); /* eslint-enable no-console */ } exports.start = startInspect; node-inspect/lib/_inspect'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'node-inspect/lib/_inspect\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/node-inspect/lib/_inspect'); internal/deps/node-inspect/lib/internal/inspect_client/* * Copyright Node.js contributors. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ 'use strict'; const Buffer = require('buffer').Buffer; const crypto = require('crypto'); const { EventEmitter } = require('events'); const http = require('http'); const URL = require('url'); const util = require('util'); const debuglog = util.debuglog('inspect'); const kOpCodeText = 0x1; const kOpCodeClose = 0x8; const kFinalBit = 0x80; const kReserved1Bit = 0x40; const kReserved2Bit = 0x20; const kReserved3Bit = 0x10; const kOpCodeMask = 0xF; const kMaskBit = 0x80; const kPayloadLengthMask = 0x7F; const kMaxSingleBytePayloadLength = 125; const kMaxTwoBytePayloadLength = 0xFFFF; const kTwoBytePayloadLengthField = 126; const kEightBytePayloadLengthField = 127; const kMaskingKeyWidthInBytes = 4; function isEmpty(obj) { return Object.keys(obj).length === 0; } function unpackError({ code, message, data }) { const err = new Error(`${message} - ${data}`); err.code = code; Error.captureStackTrace(err, unpackError); return err; } function encodeFrameHybi17(payload) { var i; const dataLength = payload.length; let singleByteLength; let additionalLength; if (dataLength > kMaxTwoBytePayloadLength) { singleByteLength = kEightBytePayloadLengthField; additionalLength = Buffer.alloc(8); let remaining = dataLength; for (i = 0; i < 8; ++i) { additionalLength[7 - i] = remaining & 0xFF; remaining >>= 8; } } else if (dataLength > kMaxSingleBytePayloadLength) { singleByteLength = kTwoBytePayloadLengthField; additionalLength = Buffer.alloc(2); additionalLength[0] = (dataLength & 0xFF00) >> 8; additionalLength[1] = dataLength & 0xFF; } else { additionalLength = Buffer.alloc(0); singleByteLength = dataLength; } const header = Buffer.from([ kFinalBit | kOpCodeText, kMaskBit | singleByteLength, ]); const mask = Buffer.alloc(4); const masked = Buffer.alloc(dataLength); for (i = 0; i < dataLength; ++i) { masked[i] = payload[i] ^ mask[i % kMaskingKeyWidthInBytes]; } return Buffer.concat([header, additionalLength, mask, masked]); } function decodeFrameHybi17(data) { const dataAvailable = data.length; const notComplete = { closed: false, payload: null, rest: data }; let payloadOffset = 2; if ((dataAvailable - payloadOffset) < 0) return notComplete; const firstByte = data[0]; const secondByte = data[1]; const final = (firstByte & kFinalBit) !== 0; const reserved1 = (firstByte & kReserved1Bit) !== 0; const reserved2 = (firstByte & kReserved2Bit) !== 0; const reserved3 = (firstByte & kReserved3Bit) !== 0; const opCode = firstByte & kOpCodeMask; const masked = (secondByte & kMaskBit) !== 0; const compressed = reserved1; if (compressed) { throw new Error('Compressed frames not supported'); } if (!final || reserved2 || reserved3) { throw new Error('Only compression extension is supported'); } if (masked) { throw new Error('Masked server frame - not supported'); } let closed = false; switch (opCode) { case kOpCodeClose: closed = true; break; case kOpCodeText: break; default: throw new Error(`Unsupported op code ${opCode}`); } let payloadLength = secondByte & kPayloadLengthMask; switch (payloadLength) { case kTwoBytePayloadLengthField: payloadOffset += 2; payloadLength = (data[2] << 8) + data[3]; break; case kEightBytePayloadLengthField: payloadOffset += 8; payloadLength = 0; for (var i = 0; i < 8; ++i) { payloadLength <<= 8; payloadLength |= data[2 + i]; } break; default: // Nothing. We already have the right size. } if ((dataAvailable - payloadOffset - payloadLength) < 0) return notComplete; const payloadEnd = payloadOffset + payloadLength; return { payload: data.slice(payloadOffset, payloadEnd), rest: data.slice(payloadEnd), closed, }; } class Client extends EventEmitter { constructor() { super(); this.handleChunk = this._handleChunk.bind(this); this._port = undefined; this._host = undefined; this.reset(); } _handleChunk(chunk) { this._unprocessed = Buffer.concat([this._unprocessed, chunk]); while (this._unprocessed.length > 2) { const { closed, payload: payloadBuffer, rest } = decodeFrameHybi17(this._unprocessed); this._unprocessed = rest; if (closed) { this.reset(); return; } if (payloadBuffer === null) break; const payloadStr = payloadBuffer.toString(); debuglog('< %s', payloadStr); const lastChar = payloadStr[payloadStr.length - 1]; if (payloadStr[0] !== '{' || lastChar !== '}') { throw new Error(`Payload does not look like JSON: ${payloadStr}`); } let payload; try { payload = JSON.parse(payloadStr); } catch (parseError) { parseError.string = payloadStr; throw parseError; } const { id, method, params, result, error } = payload; if (id) { const handler = this._pending[id]; if (handler) { delete this._pending[id]; handler(error, result); } } else if (method) { this.emit('debugEvent', method, params); this.emit(method, params); } else { throw new Error(`Unsupported response: ${payloadStr}`); } } } reset() { if (this._http) { this._http.destroy(); } this._http = null; this._lastId = 0; this._socket = null; this._pending = {}; this._unprocessed = Buffer.alloc(0); } callMethod(method, params) { return new Promise((resolve, reject) => { if (!this._socket) { reject(new Error('Use `run` to start the app again.')); return; } const data = { id: ++this._lastId, method, params }; this._pending[data.id] = (error, result) => { if (error) reject(unpackError(error)); else resolve(isEmpty(result) ? undefined : result); }; const json = JSON.stringify(data); debuglog('> %s', json); this._socket.write(encodeFrameHybi17(Buffer.from(json))); }); } _fetchJSON(urlPath) { return new Promise((resolve, reject) => { const httpReq = http.get({ host: this._host, port: this._port, path: urlPath, }); const chunks = []; function onResponse(httpRes) { function parseChunks() { const resBody = Buffer.concat(chunks).toString(); if (httpRes.statusCode !== 200) { reject(new Error(`Unexpected ${httpRes.statusCode}: ${resBody}`)); return; } try { resolve(JSON.parse(resBody)); } catch (parseError) { reject(new Error(`Response didn't contain JSON: ${resBody}`)); return; } } httpRes.on('error', reject); httpRes.on('data', (chunk) => chunks.push(chunk)); httpRes.on('end', parseChunks); } httpReq.on('error', reject); httpReq.on('response', onResponse); }); } connect(port, host) { this._port = port; this._host = host; return this._discoverWebsocketPath() .then((urlPath) => this._connectWebsocket(urlPath)); } _discoverWebsocketPath() { return this._fetchJSON('/json') .then(([{ webSocketDebuggerUrl }]) => URL.parse(webSocketDebuggerUrl).path); } _connectWebsocket(urlPath) { this.reset(); const key1 = crypto.randomBytes(16).toString('base64'); debuglog('request websocket', key1); const httpReq = this._http = http.request({ host: this._host, port: this._port, path: urlPath, headers: { Connection: 'Upgrade', Upgrade: 'websocket', 'Sec-WebSocket-Key': key1, 'Sec-WebSocket-Version': '13', }, }); httpReq.on('error', (e) => { this.emit('error', e); }); httpReq.on('response', (httpRes) => { if (httpRes.statusCode >= 400) { process.stderr.write(`Unexpected HTTP code: ${httpRes.statusCode}\n`); httpRes.pipe(process.stderr); } else { httpRes.pipe(process.stderr); } }); const handshakeListener = (res, socket) => { // TODO: we *could* validate res.headers[sec-websocket-accept] debuglog('websocket upgrade'); this._socket = socket; socket.on('data', this.handleChunk); socket.on('close', () => { this.emit('close'); }); this.emit('ready'); }; return new Promise((resolve, reject) => { this.once('error', reject); this.once('ready', resolve); httpReq.on('upgrade', handshakeListener); httpReq.end(); }); } } module.exports = Client; node-inspect/lib/internal/inspect_client'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'node-inspect/lib/internal/inspect_client\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/node-inspect/lib/internal/inspect_client'); internal/deps/node-inspect/lib/internal/inspect_repl/* * Copyright Node.js contributors. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ 'use strict'; const FS = require('fs'); const Path = require('path'); const Repl = require('repl'); const util = require('util'); const vm = require('vm'); const debuglog = util.debuglog('inspect'); const SHORTCUTS = { cont: 'c', next: 'n', step: 's', out: 'o', backtrace: 'bt', setBreakpoint: 'sb', clearBreakpoint: 'cb', run: 'r', }; const HELP = ` run, restart, r Run the application or reconnect kill Kill a running application or disconnect cont, c Resume execution next, n Continue to next line in current file step, s Step into, potentially entering a function out, o Step out, leaving the current function backtrace, bt Print the current backtrace list Print the source around the current line where execution is currently paused setBreakpoint, sb Set a breakpoint clearBreakpoint, cb Clear a breakpoint breakpoints List all known breakpoints breakOnException Pause execution whenever an exception is thrown breakOnUncaught Pause execution whenever an exception isn't caught breakOnNone Don't pause on exceptions (this is the default) watch(expr) Start watching the given expression unwatch(expr) Stop watching an expression watchers Print all watched expressions and their current values exec(expr) Evaluate the expression and print the value repl Enter a debug repl that works like exec scripts List application scripts that are currently loaded scripts(true) List all scripts (including node-internals) profile Start CPU profiling session. profileEnd Stop current CPU profiling session. profiles Array of completed CPU profiling sessions. profiles[n].save(filepath = 'node.cpuprofile') Save CPU profiling session to disk as JSON. takeHeapSnapshot(filepath = 'node.heapsnapshot') Take a heap snapshot and save to disk as JSON. `.trim(); const FUNCTION_NAME_PATTERN = /^(?:function\*? )?([^(\s]+)\(/; function extractFunctionName(description) { const fnNameMatch = description.match(FUNCTION_NAME_PATTERN); return fnNameMatch ? `: ${fnNameMatch[1]}` : ''; } const NATIVES = process.binding('natives'); function isNativeUrl(url) { return url.replace('.js', '') in NATIVES || url === 'bootstrap_node.js'; } function getRelativePath(filename) { const dir = Path.join(Path.resolve(), 'x').slice(0, -1); // Change path to relative, if possible if (filename.indexOf(dir) === 0) { return filename.slice(dir.length); } return filename; } function toCallback(promise, callback) { function forward(...args) { process.nextTick(() => callback(...args)); } promise.then(forward.bind(null, null), forward); } // Adds spaces and prefix to number // maxN is a maximum number we should have space for function leftPad(n, prefix, maxN) { const s = n.toString(); const nchars = Math.max(2, String(maxN).length) + 1; const nspaces = nchars - s.length - 1; return prefix + ' '.repeat(nspaces) + s; } function markSourceColumn(sourceText, position, useColors) { if (!sourceText) return ''; const head = sourceText.slice(0, position); let tail = sourceText.slice(position); // Colourize char if stdout supports colours if (useColors) { tail = tail.replace(/(.+?)([^\w]|$)/, '\u001b[32m$1\u001b[39m$2'); } // Return source line with coloured char at `position` return [head, tail].join(''); } function extractErrorMessage(stack) { if (!stack) return '<unknown>'; const m = stack.match(/^\w+: ([^\n]+)/); return m ? m[1] : stack; } function convertResultToError(result) { const { className, description } = result; const err = new Error(extractErrorMessage(description)); err.stack = description; Object.defineProperty(err, 'name', { value: className }); return err; } class RemoteObject { constructor(attributes) { Object.assign(this, attributes); if (this.type === 'number') { this.value = this.unserializableValue ? +this.unserializableValue : +this.value; } } [util.inspect.custom](depth, opts) { function formatProperty(prop) { switch (prop.type) { case 'string': case 'undefined': return util.inspect(prop.value, opts); case 'number': case 'boolean': return opts.stylize(prop.value, prop.type); case 'object': case 'symbol': if (prop.subtype === 'date') { return util.inspect(new Date(prop.value), opts); } if (prop.subtype === 'array') { return opts.stylize(prop.value, 'special'); } return opts.stylize(prop.value, prop.subtype || 'special'); default: return prop.value; } } switch (this.type) { case 'boolean': case 'number': case 'string': case 'undefined': return util.inspect(this.value, opts); case 'symbol': return opts.stylize(this.description, 'special'); case 'function': { const fnName = extractFunctionName(this.description); const formatted = `[${this.className}${fnName}]`; return opts.stylize(formatted, 'special'); } case 'object': switch (this.subtype) { case 'date': return util.inspect(new Date(this.description), opts); case 'null': return util.inspect(null, opts); case 'regexp': return opts.stylize(this.description, 'regexp'); default: break; } if (this.preview) { const props = this.preview.properties .map((prop, idx) => { const value = formatProperty(prop); if (prop.name === `${idx}`) return value; return `${prop.name}: ${value}`; }); if (this.preview.overflow) { props.push('...'); } const singleLine = props.join(', '); const propString = singleLine.length > 60 ? props.join(',\n ') : singleLine; return this.subtype === 'array' ? `[ ${propString} ]` : `{ ${propString} }`; } return this.description; default: return this.description; } } static fromEvalResult({ result, wasThrown }) { if (wasThrown) return convertResultToError(result); return new RemoteObject(result); } } class ScopeSnapshot { constructor(scope, properties) { Object.assign(this, scope); this.properties = new Map(properties.map((prop) => { const value = new RemoteObject(prop.value); return [prop.name, value]; })); this.completionGroup = properties.map((prop) => prop.name); } [util.inspect.custom](depth, opts) { const type = `${this.type[0].toUpperCase()}${this.type.slice(1)}`; const name = this.name ? `<${this.name}>` : ''; const prefix = `${type}${name} `; return util.inspect(this.properties, opts) .replace(/^Map /, prefix); } } function copyOwnProperties(target, source) { Object.getOwnPropertyNames(source).forEach((prop) => { const descriptor = Object.getOwnPropertyDescriptor(source, prop); Object.defineProperty(target, prop, descriptor); }); } function aliasProperties(target, mapping) { Object.keys(mapping).forEach((key) => { const descriptor = Object.getOwnPropertyDescriptor(target, key); Object.defineProperty(target, mapping[key], descriptor); }); } function createRepl(inspector) { const { Debugger, HeapProfiler, Profiler, Runtime } = inspector; let repl; // eslint-disable-line prefer-const // Things we want to keep around const history = { control: [], debug: [] }; const watchedExpressions = []; const knownBreakpoints = []; let pauseOnExceptionState = 'none'; let lastCommand; // Things we need to reset when the app restarts let knownScripts; let currentBacktrace; let selectedFrame; let exitDebugRepl; function resetOnStart() { knownScripts = {}; currentBacktrace = null; selectedFrame = null; if (exitDebugRepl) exitDebugRepl(); exitDebugRepl = null; } resetOnStart(); const INSPECT_OPTIONS = { colors: inspector.stdout.isTTY }; function inspect(value) { return util.inspect(value, INSPECT_OPTIONS); } function print(value, oneline = false) { const text = typeof value === 'string' ? value : inspect(value); return inspector.print(text, oneline); } function getCurrentLocation() { if (!selectedFrame) { throw new Error('Requires execution to be paused'); } return selectedFrame.location; } function isCurrentScript(script) { return selectedFrame && getCurrentLocation().scriptId === script.scriptId; } function formatScripts(displayNatives = false) { function isVisible(script) { if (displayNatives) return true; return !script.isNative || isCurrentScript(script); } return Object.keys(knownScripts) .map((scriptId) => knownScripts[scriptId]) .filter(isVisible) .map((script) => { const isCurrent = isCurrentScript(script); const { isNative, url } = script; const name = `${getRelativePath(url)}${isNative ? ' <native>' : ''}`; return `${isCurrent ? '*' : ' '} ${script.scriptId}: ${name}`; }) .join('\n'); } function listScripts(displayNatives = false) { print(formatScripts(displayNatives)); } listScripts[util.inspect.custom] = function listWithoutInternal() { return formatScripts(); }; const profiles = []; class Profile { constructor(data) { this.data = data; } static createAndRegister({ profile }) { const p = new Profile(profile); profiles.push(p); return p; } [util.inspect.custom](depth, { stylize }) { const { startTime, endTime } = this.data; return stylize(`[Profile ${endTime - startTime}s]`, 'special'); } save(filename = 'node.cpuprofile') { const absoluteFile = Path.resolve(filename); const json = JSON.stringify(this.data); FS.writeFileSync(absoluteFile, json); print('Saved profile to ' + absoluteFile); } } class SourceSnippet { constructor(location, delta, scriptSource) { Object.assign(this, location); this.scriptSource = scriptSource; this.delta = delta; } [util.inspect.custom](depth, options) { const { scriptId, lineNumber, columnNumber, delta, scriptSource } = this; const start = Math.max(1, lineNumber - delta + 1); const end = lineNumber + delta + 1; const lines = scriptSource.split('\n'); return lines.slice(start - 1, end).map((lineText, offset) => { const i = start + offset; const isCurrent = i === (lineNumber + 1); const markedLine = isCurrent ? markSourceColumn(lineText, columnNumber, options.colors) : lineText; let isBreakpoint = false; knownBreakpoints.forEach(({ location }) => { if (!location) return; if (scriptId === location.scriptId && i === (location.lineNumber + 1)) { isBreakpoint = true; } }); let prefixChar = ' '; if (isCurrent) { prefixChar = '>'; } else if (isBreakpoint) { prefixChar = '*'; } return `${leftPad(i, prefixChar, end)} ${markedLine}`; }).join('\n'); } } function getSourceSnippet(location, delta = 5) { const { scriptId } = location; return Debugger.getScriptSource({ scriptId }) .then(({ scriptSource }) => new SourceSnippet(location, delta, scriptSource)); } class CallFrame { constructor(callFrame) { Object.assign(this, callFrame); } loadScopes() { return Promise.all( this.scopeChain .filter((scope) => scope.type !== 'global') .map((scope) => { const { objectId } = scope.object; return Runtime.getProperties({ objectId, generatePreview: true, }).then(({ result }) => new ScopeSnapshot(scope, result)); }) ); } list(delta = 5) { return getSourceSnippet(this.location, delta); } } class Backtrace extends Array { [util.inspect.custom]() { return this.map((callFrame, idx) => { const { location: { scriptId, lineNumber, columnNumber }, functionName } = callFrame; const name = functionName || '(anonymous)'; const script = knownScripts[scriptId]; const relativeUrl = (script && getRelativePath(script.url)) || '<unknown>'; const frameLocation = `${relativeUrl}:${lineNumber + 1}:${columnNumber}`; return `#${idx} ${name} ${frameLocation}`; }).join('\n'); } static from(callFrames) { return super.from(Array.from(callFrames).map((callFrame) => { if (callFrame instanceof CallFrame) { return callFrame; } return new CallFrame(callFrame); })); } } function prepareControlCode(input) { if (input === '\n') return lastCommand; // exec process.title => exec("process.title"); const match = input.match(/^\s*exec\s+([^\n]*)/); if (match) { lastCommand = `exec(${JSON.stringify(match[1])})`; } else { lastCommand = input; } return lastCommand; } function evalInCurrentContext(code) { // Repl asked for scope variables if (code === '.scope') { if (!selectedFrame) { return Promise.reject(new Error('Requires execution to be paused')); } return selectedFrame.loadScopes().then((scopes) => { return scopes.map((scope) => scope.completionGroup); }); } if (selectedFrame) { return Debugger.evaluateOnCallFrame({ callFrameId: selectedFrame.callFrameId, expression: code, objectGroup: 'node-inspect', generatePreview: true, }).then(RemoteObject.fromEvalResult); } return Runtime.evaluate({ expression: code, objectGroup: 'node-inspect', generatePreview: true, }).then(RemoteObject.fromEvalResult); } function controlEval(input, context, filename, callback) { debuglog('eval:', input); function returnToCallback(error, result) { debuglog('end-eval:', input, error); callback(error, result); } try { const code = prepareControlCode(input); const result = vm.runInContext(code, context, filename); if (result && typeof result.then === 'function') { toCallback(result, returnToCallback); return; } returnToCallback(null, result); } catch (e) { returnToCallback(e); } } function debugEval(input, context, filename, callback) { debuglog('eval:', input); function returnToCallback(error, result) { debuglog('end-eval:', input, error); callback(error, result); } try { const result = evalInCurrentContext(input); if (result && typeof result.then === 'function') { toCallback(result, returnToCallback); return; } returnToCallback(null, result); } catch (e) { returnToCallback(e); } } function formatWatchers(verbose = false) { if (!watchedExpressions.length) { return Promise.resolve(''); } const inspectValue = (expr) => evalInCurrentContext(expr) // .then(formatValue) .catch((error) => `<${error.message}>`); const lastIndex = watchedExpressions.length - 1; return Promise.all(watchedExpressions.map(inspectValue)) .then((values) => { const lines = watchedExpressions .map((expr, idx) => { const prefix = `${leftPad(idx, ' ', lastIndex)}: ${expr} =`; const value = inspect(values[idx], { colors: true }); if (value.indexOf('\n') === -1) { return `${prefix} ${value}`; } return `${prefix}\n ${value.split('\n').join('\n ')}`; }); return lines.join('\n'); }) .then((valueList) => { return verbose ? `Watchers:\n${valueList}\n` : valueList; }); } function watchers(verbose = false) { return formatWatchers(verbose).then(print); } // List source code function list(delta = 5) { return selectedFrame.list(delta) .then(null, (error) => { print('You can\'t list source code right now'); throw error; }); } function handleBreakpointResolved({ breakpointId, location }) { const script = knownScripts[location.scriptId]; const scriptUrl = script && script.url; if (scriptUrl) { Object.assign(location, { scriptUrl }); } const isExisting = knownBreakpoints.some((bp) => { if (bp.breakpointId === breakpointId) { Object.assign(bp, { location }); return true; } return false; }); if (!isExisting) { knownBreakpoints.push({ breakpointId, location }); } } function listBreakpoints() { if (!knownBreakpoints.length) { print('No breakpoints yet'); return; } function formatLocation(location) { if (!location) return '<unknown location>'; const script = knownScripts[location.scriptId]; const scriptUrl = script ? script.url : location.scriptUrl; return `${getRelativePath(scriptUrl)}:${location.lineNumber + 1}`; } const breaklist = knownBreakpoints .map((bp, idx) => `#${idx} ${formatLocation(bp.location)}`) .join('\n'); print(breaklist); } function setBreakpoint(script, line, condition, silent) { function registerBreakpoint({ breakpointId, actualLocation }) { handleBreakpointResolved({ breakpointId, location: actualLocation }); if (actualLocation && actualLocation.scriptId) { if (!silent) return getSourceSnippet(actualLocation, 5); } else { print(`Warning: script '${script}' was not loaded yet.`); } return undefined; } // setBreakpoint(): set breakpoint at current location if (script === undefined) { return Debugger .setBreakpoint({ location: getCurrentLocation(), condition }) .then(registerBreakpoint); } // setBreakpoint(line): set breakpoint in current script at specific line if (line === undefined && typeof script === 'number') { const location = { scriptId: getCurrentLocation().scriptId, lineNumber: script - 1, }; return Debugger.setBreakpoint({ location, condition }) .then(registerBreakpoint); } if (typeof script !== 'string') { throw new TypeError(`setBreakpoint() expects a string, got ${script}`); } // setBreakpoint('fn()'): Break when a function is called if (script.endsWith('()')) { const debugExpr = `debug(${script.slice(0, -2)})`; const debugCall = selectedFrame ? Debugger.evaluateOnCallFrame({ callFrameId: selectedFrame.callFrameId, expression: debugExpr, includeCommandLineAPI: true, }) : Runtime.evaluate({ expression: debugExpr, includeCommandLineAPI: true, }); return debugCall.then(({ result, wasThrown }) => { if (wasThrown) return convertResultToError(result); return undefined; // This breakpoint can't be removed the same way }); } // setBreakpoint('scriptname') let scriptId = null; let ambiguous = false; if (knownScripts[script]) { scriptId = script; } else { for (const id of Object.keys(knownScripts)) { const scriptUrl = knownScripts[id].url; if (scriptUrl && scriptUrl.indexOf(script) !== -1) { if (scriptId !== null) { ambiguous = true; } scriptId = id; } } } if (ambiguous) { print('Script name is ambiguous'); return undefined; } if (line <= 0) { print('Line should be a positive value'); return undefined; } if (scriptId !== null) { const location = { scriptId, lineNumber: line - 1 }; return Debugger.setBreakpoint({ location, condition }) .then(registerBreakpoint); } const escapedPath = script.replace(/([/\\.?*()^${}|[\]])/g, '\\$1'); const urlRegex = `^(.*[\\/\\\\])?${escapedPath}$`; return Debugger .setBreakpointByUrl({ urlRegex, lineNumber: line - 1, condition }) .then((bp) => { // TODO: handle bp.locations in case the regex matches existing files if (!bp.location) { // Fake it for now. Object.assign(bp, { actualLocation: { scriptUrl: `.*/${script}$`, lineNumber: line - 1, }, }); } return registerBreakpoint(bp); }); } function clearBreakpoint(url, line) { const breakpoint = knownBreakpoints.find(({ location }) => { if (!location) return false; const script = knownScripts[location.scriptId]; if (!script) return false; return ( script.url.indexOf(url) !== -1 && (location.lineNumber + 1) === line ); }); if (!breakpoint) { print(`Could not find breakpoint at ${url}:${line}`); return Promise.resolve(); } return Debugger.removeBreakpoint({ breakpointId: breakpoint.breakpointId }) .then(() => { const idx = knownBreakpoints.indexOf(breakpoint); knownBreakpoints.splice(idx, 1); }); } function restoreBreakpoints() { const lastBreakpoints = knownBreakpoints.slice(); knownBreakpoints.length = 0; const newBreakpoints = lastBreakpoints .filter(({ location }) => !!location.scriptUrl) .map(({ location }) => setBreakpoint(location.scriptUrl, location.lineNumber + 1)); if (!newBreakpoints.length) return Promise.resolve(); return Promise.all(newBreakpoints).then((results) => { print(`${results.length} breakpoints restored.`); }); } function setPauseOnExceptions(state) { return Debugger.setPauseOnExceptions({ state }) .then(() => { pauseOnExceptionState = state; }); } Debugger.on('paused', ({ callFrames, reason /* , hitBreakpoints */ }) => { // Save execution context's data currentBacktrace = Backtrace.from(callFrames); selectedFrame = currentBacktrace[0]; const { scriptId, lineNumber } = selectedFrame.location; const breakType = reason === 'other' ? 'break' : reason; const script = knownScripts[scriptId]; const scriptUrl = script ? getRelativePath(script.url) : '[unknown]'; const header = `${breakType} in ${scriptUrl}:${lineNumber + 1}`; inspector.suspendReplWhile(() => Promise.all([formatWatchers(true), selectedFrame.list(2)]) .then(([watcherList, context]) => { if (watcherList) { return `${watcherList}\n${inspect(context)}`; } return inspect(context); }).then((breakContext) => { print(`${header}\n${breakContext}`); })); }); function handleResumed() { currentBacktrace = null; selectedFrame = null; } Debugger.on('resumed', handleResumed); Debugger.on('breakpointResolved', handleBreakpointResolved); Debugger.on('scriptParsed', (script) => { const { scriptId, url } = script; if (url) { knownScripts[scriptId] = Object.assign({ isNative: isNativeUrl(url), }, script); } }); Profiler.on('consoleProfileFinished', ({ profile }) => { Profile.createAndRegister({ profile }); print([ 'Captured new CPU profile.', `Access it with profiles[${profiles.length - 1}]` ].join('\n')); }); function initializeContext(context) { inspector.domainNames.forEach((domain) => { Object.defineProperty(context, domain, { value: inspector[domain], enumerable: true, configurable: true, writeable: false, }); }); copyOwnProperties(context, { get help() { print(HELP); }, get run() { return inspector.run(); }, get kill() { return inspector.killChild(); }, get restart() { return inspector.run(); }, get cont() { handleResumed(); return Debugger.resume(); }, get next() { handleResumed(); return Debugger.stepOver(); }, get step() { handleResumed(); return Debugger.stepInto(); }, get out() { handleResumed(); return Debugger.stepOut(); }, get pause() { return Debugger.pause(); }, get backtrace() { return currentBacktrace; }, get breakpoints() { return listBreakpoints(); }, exec(expr) { return evalInCurrentContext(expr); }, get profile() { return Profiler.start(); }, get profileEnd() { return Profiler.stop() .then(Profile.createAndRegister); }, get profiles() { return profiles; }, takeHeapSnapshot(filename = 'node.heapsnapshot') { return new Promise((resolve, reject) => { const absoluteFile = Path.resolve(filename); const writer = FS.createWriteStream(absoluteFile); let sizeWritten = 0; function onProgress({ done, total, finished }) { if (finished) { print('Heap snaphost prepared.'); } else { print(`Heap snapshot: ${done}/${total}`, true); } } function onChunk({ chunk }) { sizeWritten += chunk.length; writer.write(chunk); print(`Writing snapshot: ${sizeWritten}`, true); } function onResolve() { writer.end(() => { teardown(); print(`Wrote snapshot: ${absoluteFile}`); resolve(); }); } function onReject(error) { teardown(); reject(error); } function teardown() { HeapProfiler.removeListener( 'reportHeapSnapshotProgress', onProgress); HeapProfiler.removeListener('addHeapSnapshotChunk', onChunk); } HeapProfiler.on('reportHeapSnapshotProgress', onProgress); HeapProfiler.on('addHeapSnapshotChunk', onChunk); print('Heap snapshot: 0/0', true); HeapProfiler.takeHeapSnapshot({ reportProgress: true }) .then(onResolve, onReject); }); }, get watchers() { return watchers(); }, watch(expr) { watchedExpressions.push(expr); }, unwatch(expr) { const index = watchedExpressions.indexOf(expr); // Unwatch by expression // or // Unwatch by watcher number watchedExpressions.splice(index !== -1 ? index : +expr, 1); }, get repl() { // Don't display any default messages const listeners = repl.rli.listeners('SIGINT').slice(0); repl.rli.removeAllListeners('SIGINT'); const oldContext = repl.context; exitDebugRepl = () => { // Restore all listeners process.nextTick(() => { listeners.forEach((listener) => { repl.rli.on('SIGINT', listener); }); }); // Exit debug repl repl.eval = controlEval; // Swap history history.debug = repl.rli.history; repl.rli.history = history.control; repl.context = oldContext; repl.rli.setPrompt('debug> '); repl.displayPrompt(); repl.rli.removeListener('SIGINT', exitDebugRepl); repl.removeListener('exit', exitDebugRepl); exitDebugRepl = null; }; // Exit debug repl on SIGINT repl.rli.on('SIGINT', exitDebugRepl); // Exit debug repl on repl exit repl.on('exit', exitDebugRepl); // Set new repl.eval = debugEval; repl.context = {}; // Swap history history.control = repl.rli.history; repl.rli.history = history.debug; repl.rli.setPrompt('> '); print('Press Ctrl + C to leave debug repl'); repl.displayPrompt(); }, get version() { return Runtime.evaluate({ expression: 'process.versions.v8', contextId: 1, returnByValue: true, }).then(({ result }) => { print(result.value); }); }, scripts: listScripts, setBreakpoint, clearBreakpoint, setPauseOnExceptions, get breakOnException() { return setPauseOnExceptions('all'); }, get breakOnUncaught() { return setPauseOnExceptions('uncaught'); }, get breakOnNone() { return setPauseOnExceptions('none'); }, list, }); aliasProperties(context, SHORTCUTS); } function initAfterStart() { const setupTasks = [ Runtime.enable(), Profiler.enable(), Profiler.setSamplingInterval({ interval: 100 }), Debugger.enable(), Debugger.setPauseOnExceptions({ state: 'none' }), Debugger.setAsyncCallStackDepth({ maxDepth: 0 }), Debugger.setBlackboxPatterns({ patterns: [] }), Debugger.setPauseOnExceptions({ state: pauseOnExceptionState }), restoreBreakpoints(), Runtime.runIfWaitingForDebugger(), ]; return Promise.all(setupTasks); } return function startRepl() { inspector.client.on('close', () => { resetOnStart(); }); inspector.client.on('ready', () => { initAfterStart(); }); const replOptions = { prompt: 'debug> ', input: inspector.stdin, output: inspector.stdout, eval: controlEval, useGlobal: false, ignoreUndefined: true, }; repl = Repl.start(replOptions); // eslint-disable-line prefer-const initializeContext(repl.context); repl.on('reset', initializeContext); repl.defineCommand('interrupt', () => { // We want this for testing purposes where sending CTRL-C can be tricky. repl.rli.emit('SIGINT'); }); // Init once for the initial connection initAfterStart(); return repl; }; } module.exports = createRepl; node-inspect/lib/internal/inspect_repl'use strict'; process.emitWarning( 'Requiring Node.js-bundled \'node-inspect/lib/internal/inspect_repl\' module is deprecated. Please ' + 'install the necessary module locally.', 'DeprecationWarning', 'DEP0084'); module.exports = require('internal/deps/node-inspect/lib/internal/inspect_repl'); internal/deps/acorn/dist/acorn(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.acorn = {}))); }(this, (function (exports) { 'use strict'; // Reserved word lists for various dialects of the language var reservedWords = { 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", 5: "class enum extends super const export import", 6: "enum", strict: "implements interface let package private protected public static yield", strictBind: "eval arguments" }; // And the keywords var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; var keywords = { 5: ecma5AndLessKeywords, 6: ecma5AndLessKeywords + " const class extends export import super" }; var keywordRelationalOperator = /^in(stanceof)?$/; // ## Character categories // Big ugly regular expressions that match characters in the // whitespace, identifier, and identifier-start categories. These // are only applied when a character is found to actually have a // code point above 128. // Generated by `bin/generate-identifier-regex.js`. var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; // These are a run-length and offset encoded representation of the // >0xffff code points that are a valid part of identifiers. The // offset starts at 0x10000, and each pair of numbers represents an // offset to the next range, and then a size of the range. They were // generated by bin/generate-identifier-regex.js // eslint-disable-next-line comma-spacing var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]; // eslint-disable-next-line comma-spacing var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]; // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is // rare. function isInAstralSet(code, set) { var pos = 0x10000; for (var i = 0; i < set.length; i += 2) { pos += set[i]; if (pos > code) { return false } pos += set[i + 1]; if (pos >= code) { return true } } } // Test whether a given character code starts an identifier. function isIdentifierStart(code, astral) { if (code < 65) { return code === 36 } if (code < 91) { return true } if (code < 97) { return code === 95 } if (code < 123) { return true } if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) } if (astral === false) { return false } return isInAstralSet(code, astralIdentifierStartCodes) } // Test whether a given character is part of an identifier. function isIdentifierChar(code, astral) { if (code < 48) { return code === 36 } if (code < 58) { return true } if (code < 65) { return false } if (code < 91) { return true } if (code < 97) { return code === 95 } if (code < 123) { return true } if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) } if (astral === false) { return false } return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes) } // ## Token types // The assignment of fine-grained, information-carrying type objects // allows the tokenizer to store the information it has about a // token in a way that is very cheap for the parser to look up. // All token type variables start with an underscore, to make them // easy to recognize. // The `beforeExpr` property is used to disambiguate between regular // expressions and divisions. It is set on all token types that can // be followed by an expression (thus, a slash after them would be a // regular expression). // // The `startsExpr` property is used to check if the token ends a // `yield` expression. It is set on all token types that either can // directly start an expression (like a quotation mark) or can // continue an expression (like the body of a string). // // `isLoop` marks a keyword as starting a loop, which is important // to know when parsing a label, in order to allow or disallow // continue jumps to that label. var TokenType = function TokenType(label, conf) { if ( conf === void 0 ) conf = {}; this.label = label; this.keyword = conf.keyword; this.beforeExpr = !!conf.beforeExpr; this.startsExpr = !!conf.startsExpr; this.isLoop = !!conf.isLoop; this.isAssign = !!conf.isAssign; this.prefix = !!conf.prefix; this.postfix = !!conf.postfix; this.binop = conf.binop || null; this.updateContext = null; }; function binop(name, prec) { return new TokenType(name, {beforeExpr: true, binop: prec}) } var beforeExpr = {beforeExpr: true}; var startsExpr = {startsExpr: true}; // Map keyword names to token types. var keywords$1 = {}; // Succinct definitions of keyword token types function kw(name, options) { if ( options === void 0 ) options = {}; options.keyword = name; return keywords$1[name] = new TokenType(name, options) } var types = { num: new TokenType("num", startsExpr), regexp: new TokenType("regexp", startsExpr), string: new TokenType("string", startsExpr), name: new TokenType("name", startsExpr), eof: new TokenType("eof"), // Punctuation token types. bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}), bracketR: new TokenType("]"), braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}), braceR: new TokenType("}"), parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}), parenR: new TokenType(")"), comma: new TokenType(",", beforeExpr), semi: new TokenType(";", beforeExpr), colon: new TokenType(":", beforeExpr), dot: new TokenType("."), question: new TokenType("?", beforeExpr), arrow: new TokenType("=>", beforeExpr), template: new TokenType("template"), invalidTemplate: new TokenType("invalidTemplate"), ellipsis: new TokenType("...", beforeExpr), backQuote: new TokenType("`", startsExpr), dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}), // Operators. These carry several kinds of properties to help the // parser use them properly (the presence of these properties is // what categorizes them as operators). // // `binop`, when present, specifies that this operator is a binary // operator, and will refer to its precedence. // // `prefix` and `postfix` mark the operator as a prefix or postfix // unary operator. // // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as // binary operators with a very low precedence, that should result // in AssignmentExpression nodes. eq: new TokenType("=", {beforeExpr: true, isAssign: true}), assign: new TokenType("_=", {beforeExpr: true, isAssign: true}), incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}), prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}), logicalOR: binop("||", 1), logicalAND: binop("&&", 2), bitwiseOR: binop("|", 3), bitwiseXOR: binop("^", 4), bitwiseAND: binop("&", 5), equality: binop("==/!=/===/!==", 6), relational: binop("</>/<=/>=", 7), bitShift: binop("<</>>/>>>", 8), plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}), modulo: binop("%", 10), star: binop("*", 10), slash: binop("/", 10), starstar: new TokenType("**", {beforeExpr: true}), // Keyword token types. _break: kw("break"), _case: kw("case", beforeExpr), _catch: kw("catch"), _continue: kw("continue"), _debugger: kw("debugger"), _default: kw("default", beforeExpr), _do: kw("do", {isLoop: true, beforeExpr: true}), _else: kw("else", beforeExpr), _finally: kw("finally"), _for: kw("for", {isLoop: true}), _function: kw("function", startsExpr), _if: kw("if"), _return: kw("return", beforeExpr), _switch: kw("switch"), _throw: kw("throw", beforeExpr), _try: kw("try"), _var: kw("var"), _const: kw("const"), _while: kw("while", {isLoop: true}), _with: kw("with"), _new: kw("new", {beforeExpr: true, startsExpr: true}), _this: kw("this", startsExpr), _super: kw("super", startsExpr), _class: kw("class", startsExpr), _extends: kw("extends", beforeExpr), _export: kw("export"), _import: kw("import"), _null: kw("null", startsExpr), _true: kw("true", startsExpr), _false: kw("false", startsExpr), _in: kw("in", {beforeExpr: true, binop: 7}), _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}), _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}), _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}), _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true}) }; // Matches a whole line break (where CRLF is considered a single // line break). Used to count lines. var lineBreak = /\r\n?|\n|\u2028|\u2029/; var lineBreakG = new RegExp(lineBreak.source, "g"); function isNewLine(code, ecma2019String) { return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029)) } var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; var ref = Object.prototype; var hasOwnProperty = ref.hasOwnProperty; var toString = ref.toString; // Checks if an object has a property. function has(obj, propName) { return hasOwnProperty.call(obj, propName) } var isArray = Array.isArray || (function (obj) { return ( toString.call(obj) === "[object Array]" ); }); // These are used when `options.locations` is on, for the // `startLoc` and `endLoc` properties. var Position = function Position(line, col) { this.line = line; this.column = col; }; Position.prototype.offset = function offset (n) { return new Position(this.line, this.column + n) }; var SourceLocation = function SourceLocation(p, start, end) { this.start = start; this.end = end; if (p.sourceFile !== null) { this.source = p.sourceFile; } }; // The `getLineInfo` function is mostly useful when the // `locations` option is off (for performance reasons) and you // want to find the line/column position for a given character // offset. `input` should be the code string that the offset refers // into. function getLineInfo(input, offset) { for (var line = 1, cur = 0;;) { lineBreakG.lastIndex = cur; var match = lineBreakG.exec(input); if (match && match.index < offset) { ++line; cur = match.index + match[0].length; } else { return new Position(line, offset - cur) } } } // A second optional argument can be given to further configure // the parser process. These options are recognized: var defaultOptions = { // `ecmaVersion` indicates the ECMAScript version to parse. Must // be either 3, 5, 6 (2015), 7 (2016), or 8 (2017). This influences support // for strict mode, the set of reserved words, and support for // new syntax features. The default is 7. ecmaVersion: 7, // `sourceType` indicates the mode the code should be parsed in. // Can be either `"script"` or `"module"`. This influences global // strict mode and parsing of `import` and `export` declarations. sourceType: "script", // `onInsertedSemicolon` can be a callback that will be called // when a semicolon is automatically inserted. It will be passed // th position of the comma as an offset, and if `locations` is // enabled, it is given the location as a `{line, column}` object // as second argument. onInsertedSemicolon: null, // `onTrailingComma` is similar to `onInsertedSemicolon`, but for // trailing commas. onTrailingComma: null, // By default, reserved words are only enforced if ecmaVersion >= 5. // Set `allowReserved` to a boolean value to explicitly turn this on // an off. When this option has the value "never", reserved words // and keywords can also not be used as property names. allowReserved: null, // When enabled, a return at the top level is not considered an // error. allowReturnOutsideFunction: false, // When enabled, import/export statements are not constrained to // appearing at the top of the program. allowImportExportEverywhere: false, // When enabled, await identifiers are allowed to appear at the top-level scope, // but they are still not allowed in non-async functions. allowAwaitOutsideFunction: false, // When enabled, hashbang directive in the beginning of file // is allowed and treated as a line comment. allowHashBang: false, // When `locations` is on, `loc` properties holding objects with // `start` and `end` properties in `{line, column}` form (with // line being 1-based and column 0-based) will be attached to the // nodes. locations: false, // A function can be passed as `onToken` option, which will // cause Acorn to call that function with object in the same // format as tokens returned from `tokenizer().getToken()`. Note // that you are not allowed to call the parser from the // callback that will corrupt its internal state. onToken: null, // A function can be passed as `onComment` option, which will // cause Acorn to call that function with `(block, text, start, // end)` parameters whenever a comment is skipped. `block` is a // boolean indicating whether this is a block (`/* */`) comment, // `text` is the content of the comment, and `start` and `end` are // character offsets that denote the start and end of the comment. // When the `locations` option is on, two more parameters are // passed, the full `{line, column}` locations of the start and // end of the comments. Note that you are not allowed to call the // parser from the callback that will corrupt its internal state. onComment: null, // Nodes have their start and end characters offsets recorded in // `start` and `end` properties (directly on the node, rather than // the `loc` object, which holds line/column data. To also add a // [semi-standardized][range] `range` property holding a `[start, // end]` array with the same numbers, set the `ranges` option to // `true`. // // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 ranges: false, // It is possible to parse multiple files into a single AST by // passing the tree produced by parsing the first file as // `program` option in subsequent parses. This will add the // toplevel forms of the parsed file to the `Program` (top) node // of an existing parse tree. program: null, // When `locations` is on, you can pass this to record the source // file in every node's `loc` object. sourceFile: null, // This value, if given, is stored in every node, whether // `locations` is on or off. directSourceFile: null, // When enabled, parenthesized expressions are represented by // (non-standard) ParenthesizedExpression nodes preserveParens: false, plugins: {} }; // Interpret and default an options object function getOptions(opts) { var options = {}; for (var opt in defaultOptions) { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; } if (options.ecmaVersion >= 2015) { options.ecmaVersion -= 2009; } if (options.allowReserved == null) { options.allowReserved = options.ecmaVersion < 5; } if (isArray(options.onToken)) { var tokens = options.onToken; options.onToken = function (token) { return tokens.push(token); }; } if (isArray(options.onComment)) { options.onComment = pushComment(options, options.onComment); } return options } function pushComment(options, array) { return function(block, text, start, end, startLoc, endLoc) { var comment = { type: block ? "Block" : "Line", value: text, start: start, end: end }; if (options.locations) { comment.loc = new SourceLocation(this, startLoc, endLoc); } if (options.ranges) { comment.range = [start, end]; } array.push(comment); } } // Registered plugins var plugins = {}; function keywordRegexp(words) { return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") } var Parser = function Parser(options, input, startPos) { this.options = options = getOptions(options); this.sourceFile = options.sourceFile; this.keywords = keywordRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5]); var reserved = ""; if (!options.allowReserved) { for (var v = options.ecmaVersion;; v--) { if (reserved = reservedWords[v]) { break } } if (options.sourceType === "module") { reserved += " await"; } } this.reservedWords = keywordRegexp(reserved); var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; this.reservedWordsStrict = keywordRegexp(reservedStrict); this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + reservedWords.strictBind); this.input = String(input); // Used to signal to callers of `readWord1` whether the word // contained any escape sequences. This is needed because words with // escape sequences must not be interpreted as keywords. this.containsEsc = false; // Load plugins this.loadPlugins(options.plugins); // Set up token state // The current position of the tokenizer in the input. if (startPos) { this.pos = startPos; this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; } else { this.pos = this.lineStart = 0; this.curLine = 1; } // Properties of the current token: // Its type this.type = types.eof; // For tokens that include more information than their type, the value this.value = null; // Its start and end offset this.start = this.end = this.pos; // And, if locations are used, the {line, column} object // corresponding to those offsets this.startLoc = this.endLoc = this.curPosition(); // Position information for the previous token this.lastTokEndLoc = this.lastTokStartLoc = null; this.lastTokStart = this.lastTokEnd = this.pos; // The context stack is used to superficially track syntactic // context to predict whether a regular expression is allowed in a // given position. this.context = this.initialContext(); this.exprAllowed = true; // Figure out if it's a module code. this.inModule = options.sourceType === "module"; this.strict = this.inModule || this.strictDirective(this.pos); // Used to signify the start of a potential arrow function this.potentialArrowAt = -1; // Flags to track whether we are in a function, a generator, an async function. this.inFunction = this.inGenerator = this.inAsync = false; // Positions to delayed-check that yield/await does not exist in default parameters. this.yieldPos = this.awaitPos = 0; // Labels in scope. this.labels = []; // If enabled, skip leading hashbang line. if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") { this.skipLineComment(2); } // Scope tracking for duplicate variable names (see scope.js) this.scopeStack = []; this.enterFunctionScope(); // For RegExp validation this.regexpState = null; }; // DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them Parser.prototype.isKeyword = function isKeyword (word) { return this.keywords.test(word) }; Parser.prototype.isReservedWord = function isReservedWord (word) { return this.reservedWords.test(word) }; Parser.prototype.extend = function extend (name, f) { this[name] = f(this[name]); }; Parser.prototype.loadPlugins = function loadPlugins (pluginConfigs) { var this$1 = this; for (var name in pluginConfigs) { var plugin = plugins[name]; if (!plugin) { throw new Error("Plugin '" + name + "' not found") } plugin(this$1, pluginConfigs[name]); } }; Parser.prototype.parse = function parse () { var node = this.options.program || this.startNode(); this.nextToken(); return this.parseTopLevel(node) }; var pp = Parser.prototype; // ## Parser utilities var literal = /^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/; pp.strictDirective = function(start) { var this$1 = this; for (;;) { skipWhiteSpace.lastIndex = start; start += skipWhiteSpace.exec(this$1.input)[0].length; var match = literal.exec(this$1.input.slice(start)); if (!match) { return false } if ((match[1] || match[2]) === "use strict") { return true } start += match[0].length; } }; // Predicate that tests whether the next token is of the given // type, and if yes, consumes it as a side effect. pp.eat = function(type) { if (this.type === type) { this.next(); return true } else { return false } }; // Tests whether parsed token is a contextual keyword. pp.isContextual = function(name) { return this.type === types.name && this.value === name && !this.containsEsc }; // Consumes contextual keyword if possible. pp.eatContextual = function(name) { if (!this.isContextual(name)) { return false } this.next(); return true }; // Asserts that following token is given contextual keyword. pp.expectContextual = function(name) { if (!this.eatContextual(name)) { this.unexpected(); } }; // Test whether a semicolon can be inserted at the current position. pp.canInsertSemicolon = function() { return this.type === types.eof || this.type === types.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; pp.insertSemicolon = function() { if (this.canInsertSemicolon()) { if (this.options.onInsertedSemicolon) { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } return true } }; // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. pp.semicolon = function() { if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); } }; pp.afterTrailingComma = function(tokType, notNext) { if (this.type === tokType) { if (this.options.onTrailingComma) { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } if (!notNext) { this.next(); } return true } }; // Expect a token of a given type. If found, consume it, otherwise, // raise an unexpected token error. pp.expect = function(type) { this.eat(type) || this.unexpected(); }; // Raise an unexpected token error. pp.unexpected = function(pos) { this.raise(pos != null ? pos : this.start, "Unexpected token"); }; function DestructuringErrors() { this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; } pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return } if (refDestructuringErrors.trailingComma > -1) { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); } }; pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { if (!refDestructuringErrors) { return false } var shorthandAssign = refDestructuringErrors.shorthandAssign; var doubleProto = refDestructuringErrors.doubleProto; if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 } if (shorthandAssign >= 0) { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); } if (doubleProto >= 0) { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } }; pp.checkYieldAwaitInDefaultParams = function() { if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } if (this.awaitPos) { this.raise(this.awaitPos, "Await expression cannot be a default value"); } }; pp.isSimpleAssignTarget = function(expr) { if (expr.type === "ParenthesizedExpression") { return this.isSimpleAssignTarget(expr.expression) } return expr.type === "Identifier" || expr.type === "MemberExpression" }; var pp$1 = Parser.prototype; // ### Statement parsing // Parse a program. Initializes the parser, reads any number of // statements, and wraps them in a Program node. Optionally takes a // `program` argument. If present, the statements will be appended // to its body instead of creating a new node. pp$1.parseTopLevel = function(node) { var this$1 = this; var exports = {}; if (!node.body) { node.body = []; } while (this.type !== types.eof) { var stmt = this$1.parseStatement(true, true, exports); node.body.push(stmt); } this.adaptDirectivePrologue(node.body); this.next(); if (this.options.ecmaVersion >= 6) { node.sourceType = this.options.sourceType; } return this.finishNode(node, "Program") }; var loopLabel = {kind: "loop"}; var switchLabel = {kind: "switch"}; pp$1.isLet = function() { if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); if (nextCh === 91 || nextCh === 123) { return true } // '{' and '[' if (isIdentifierStart(nextCh, true)) { var pos = next + 1; while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; } var ident = this.input.slice(next, pos); if (!keywordRelationalOperator.test(ident)) { return true } } return false }; // check 'async [no LineTerminator here] function' // - 'async /*foo*/ function' is OK. // - 'async /*\n*/ function' is invalid. pp$1.isAsyncFunction = function() { if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { return false } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length; return !lineBreak.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8))) }; // Parse a single statement. // // If expecting a statement and finding a slash operator, parse a // regular expression literal. This is to handle cases like // `if (foo) /blah/.exec(foo)`, where looking at the previous token // does not help. pp$1.parseStatement = function(declaration, topLevel, exports) { var starttype = this.type, node = this.startNode(), kind; if (this.isLet()) { starttype = types._var; kind = "let"; } // Most types of statements are recognized by the keyword they // start with. Many are trivial to parse, some require a bit of // complexity. switch (starttype) { case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword) case types._debugger: return this.parseDebuggerStatement(node) case types._do: return this.parseDoStatement(node) case types._for: return this.parseForStatement(node) case types._function: if (!declaration && this.options.ecmaVersion >= 6) { this.unexpected(); } return this.parseFunctionStatement(node, false) case types._class: if (!declaration) { this.unexpected(); } return this.parseClass(node, true) case types._if: return this.parseIfStatement(node) case types._return: return this.parseReturnStatement(node) case types._switch: return this.parseSwitchStatement(node) case types._throw: return this.parseThrowStatement(node) case types._try: return this.parseTryStatement(node) case types._const: case types._var: kind = kind || this.value; if (!declaration && kind !== "var") { this.unexpected(); } return this.parseVarStatement(node, kind) case types._while: return this.parseWhileStatement(node) case types._with: return this.parseWithStatement(node) case types.braceL: return this.parseBlock() case types.semi: return this.parseEmptyStatement(node) case types._export: case types._import: if (!this.options.allowImportExportEverywhere) { if (!topLevel) { this.raise(this.start, "'import' and 'export' may only appear at the top level"); } if (!this.inModule) { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } } return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports) // If the statement does not start with a statement keyword or a // brace, it's an ExpressionStatement or LabeledStatement. We // simply start parsing an expression, and afterwards, if the // next token is a colon and the expression was a simple // Identifier node, we switch to interpreting it as a label. default: if (this.isAsyncFunction()) { if (!declaration) { this.unexpected(); } this.next(); return this.parseFunctionStatement(node, true) } var maybeName = this.value, expr = this.parseExpression(); if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) { return this.parseLabeledStatement(node, maybeName, expr) } else { return this.parseExpressionStatement(node, expr) } } }; pp$1.parseBreakContinueStatement = function(node, keyword) { var this$1 = this; var isBreak = keyword === "break"; this.next(); if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; } else if (this.type !== types.name) { this.unexpected(); } else { node.label = this.parseIdent(); this.semicolon(); } // Verify that there is an actual destination to break or // continue to. var i = 0; for (; i < this.labels.length; ++i) { var lab = this$1.labels[i]; if (node.label == null || lab.name === node.label.name) { if (lab.kind != null && (isBreak || lab.kind === "loop")) { break } if (node.label && isBreak) { break } } } if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); } return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") }; pp$1.parseDebuggerStatement = function(node) { this.next(); this.semicolon(); return this.finishNode(node, "DebuggerStatement") }; pp$1.parseDoStatement = function(node) { this.next(); this.labels.push(loopLabel); node.body = this.parseStatement(false); this.labels.pop(); this.expect(types._while); node.test = this.parseParenExpression(); if (this.options.ecmaVersion >= 6) { this.eat(types.semi); } else { this.semicolon(); } return this.finishNode(node, "DoWhileStatement") }; // Disambiguating between a `for` and a `for`/`in` or `for`/`of` // loop is non-trivial. Basically, we have to parse the init `var` // statement or expression, disallowing the `in` operator (see // the second parameter to `parseExpression`), and then check // whether the next token is `in` or `of`. When there is no init // part (semicolon immediately after the opening parenthesis), it // is a regular `for` loop. pp$1.parseForStatement = function(node) { this.next(); var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1; this.labels.push(loopLabel); this.enterLexicalScope(); this.expect(types.parenL); if (this.type === types.semi) { if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, null) } var isLet = this.isLet(); if (this.type === types._var || this.type === types._const || isLet) { var init$1 = this.startNode(), kind = isLet ? "let" : this.value; this.next(); this.parseVar(init$1, true, kind); this.finishNode(init$1, "VariableDeclaration"); if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1 && !(kind !== "var" && init$1.declarations[0].init)) { if (this.options.ecmaVersion >= 9) { if (this.type === types._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } return this.parseForIn(node, init$1) } if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, init$1) } var refDestructuringErrors = new DestructuringErrors; var init = this.parseExpression(true, refDestructuringErrors); if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) { if (this.options.ecmaVersion >= 9) { if (this.type === types._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } this.toAssignable(init, false, refDestructuringErrors); this.checkLVal(init); return this.parseForIn(node, init) } else { this.checkExpressionErrors(refDestructuringErrors, true); } if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, init) }; pp$1.parseFunctionStatement = function(node, isAsync) { this.next(); return this.parseFunction(node, true, false, isAsync) }; pp$1.parseIfStatement = function(node) { this.next(); node.test = this.parseParenExpression(); // allow function declarations in branches, but only in non-strict mode node.consequent = this.parseStatement(!this.strict && this.type === types._function); node.alternate = this.eat(types._else) ? this.parseStatement(!this.strict && this.type === types._function) : null; return this.finishNode(node, "IfStatement") }; pp$1.parseReturnStatement = function(node) { if (!this.inFunction && !this.options.allowReturnOutsideFunction) { this.raise(this.start, "'return' outside of function"); } this.next(); // In `return` (and `break`/`continue`), the keywords with // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; } else { node.argument = this.parseExpression(); this.semicolon(); } return this.finishNode(node, "ReturnStatement") }; pp$1.parseSwitchStatement = function(node) { var this$1 = this; this.next(); node.discriminant = this.parseParenExpression(); node.cases = []; this.expect(types.braceL); this.labels.push(switchLabel); this.enterLexicalScope(); // Statements under must be grouped (by label) in SwitchCase // nodes. `cur` is used to keep the node that we are currently // adding statements to. var cur; for (var sawDefault = false; this.type !== types.braceR;) { if (this$1.type === types._case || this$1.type === types._default) { var isCase = this$1.type === types._case; if (cur) { this$1.finishNode(cur, "SwitchCase"); } node.cases.push(cur = this$1.startNode()); cur.consequent = []; this$1.next(); if (isCase) { cur.test = this$1.parseExpression(); } else { if (sawDefault) { this$1.raiseRecoverable(this$1.lastTokStart, "Multiple default clauses"); } sawDefault = true; cur.test = null; } this$1.expect(types.colon); } else { if (!cur) { this$1.unexpected(); } cur.consequent.push(this$1.parseStatement(true)); } } this.exitLexicalScope(); if (cur) { this.finishNode(cur, "SwitchCase"); } this.next(); // Closing brace this.labels.pop(); return this.finishNode(node, "SwitchStatement") }; pp$1.parseThrowStatement = function(node) { this.next(); if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) { this.raise(this.lastTokEnd, "Illegal newline after throw"); } node.argument = this.parseExpression(); this.semicolon(); return this.finishNode(node, "ThrowStatement") }; // Reused empty array added for node fields that are always empty. var empty = []; pp$1.parseTryStatement = function(node) { this.next(); node.block = this.parseBlock(); node.handler = null; if (this.type === types._catch) { var clause = this.startNode(); this.next(); if (this.eat(types.parenL)) { clause.param = this.parseBindingAtom(); this.enterLexicalScope(); this.checkLVal(clause.param, "let"); this.expect(types.parenR); } else { if (this.options.ecmaVersion < 10) { this.unexpected(); } clause.param = null; this.enterLexicalScope(); } clause.body = this.parseBlock(false); this.exitLexicalScope(); node.handler = this.finishNode(clause, "CatchClause"); } node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; if (!node.handler && !node.finalizer) { this.raise(node.start, "Missing catch or finally clause"); } return this.finishNode(node, "TryStatement") }; pp$1.parseVarStatement = function(node, kind) { this.next(); this.parseVar(node, false, kind); this.semicolon(); return this.finishNode(node, "VariableDeclaration") }; pp$1.parseWhileStatement = function(node) { this.next(); node.test = this.parseParenExpression(); this.labels.push(loopLabel); node.body = this.parseStatement(false); this.labels.pop(); return this.finishNode(node, "WhileStatement") }; pp$1.parseWithStatement = function(node) { if (this.strict) { this.raise(this.start, "'with' in strict mode"); } this.next(); node.object = this.parseParenExpression(); node.body = this.parseStatement(false); return this.finishNode(node, "WithStatement") }; pp$1.parseEmptyStatement = function(node) { this.next(); return this.finishNode(node, "EmptyStatement") }; pp$1.parseLabeledStatement = function(node, maybeName, expr) { var this$1 = this; for (var i$1 = 0, list = this$1.labels; i$1 < list.length; i$1 += 1) { var label = list[i$1]; if (label.name === maybeName) { this$1.raise(expr.start, "Label '" + maybeName + "' is already declared"); } } var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null; for (var i = this.labels.length - 1; i >= 0; i--) { var label$1 = this$1.labels[i]; if (label$1.statementStart === node.start) { // Update information about previous labels on this node label$1.statementStart = this$1.start; label$1.kind = kind; } else { break } } this.labels.push({name: maybeName, kind: kind, statementStart: this.start}); node.body = this.parseStatement(true); if (node.body.type === "ClassDeclaration" || node.body.type === "VariableDeclaration" && node.body.kind !== "var" || node.body.type === "FunctionDeclaration" && (this.strict || node.body.generator || node.body.async)) { this.raiseRecoverable(node.body.start, "Invalid labeled declaration"); } this.labels.pop(); node.label = expr; return this.finishNode(node, "LabeledStatement") }; pp$1.parseExpressionStatement = function(node, expr) { node.expression = expr; this.semicolon(); return this.finishNode(node, "ExpressionStatement") }; // Parse a semicolon-enclosed block of statements, handling `"use // strict"` declarations when `allowStrict` is true (used for // function bodies). pp$1.parseBlock = function(createNewLexicalScope) { var this$1 = this; if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; var node = this.startNode(); node.body = []; this.expect(types.braceL); if (createNewLexicalScope) { this.enterLexicalScope(); } while (!this.eat(types.braceR)) { var stmt = this$1.parseStatement(true); node.body.push(stmt); } if (createNewLexicalScope) { this.exitLexicalScope(); } return this.finishNode(node, "BlockStatement") }; // Parse a regular `for` loop. The disambiguation code in // `parseStatement` will already have parsed the init statement or // expression. pp$1.parseFor = function(node, init) { node.init = init; this.expect(types.semi); node.test = this.type === types.semi ? null : this.parseExpression(); this.expect(types.semi); node.update = this.type === types.parenR ? null : this.parseExpression(); this.expect(types.parenR); this.exitLexicalScope(); node.body = this.parseStatement(false); this.labels.pop(); return this.finishNode(node, "ForStatement") }; // Parse a `for`/`in` and `for`/`of` loop, which are almost // same from parser's perspective. pp$1.parseForIn = function(node, init) { var type = this.type === types._in ? "ForInStatement" : "ForOfStatement"; this.next(); if (type === "ForInStatement") { if (init.type === "AssignmentPattern" || (init.type === "VariableDeclaration" && init.declarations[0].init != null && (this.strict || init.declarations[0].id.type !== "Identifier"))) { this.raise(init.start, "Invalid assignment in for-in loop head"); } } node.left = init; node.right = type === "ForInStatement" ? this.parseExpression() : this.parseMaybeAssign(); this.expect(types.parenR); this.exitLexicalScope(); node.body = this.parseStatement(false); this.labels.pop(); return this.finishNode(node, type) }; // Parse a list of variable declarations. pp$1.parseVar = function(node, isFor, kind) { var this$1 = this; node.declarations = []; node.kind = kind; for (;;) { var decl = this$1.startNode(); this$1.parseVarId(decl, kind); if (this$1.eat(types.eq)) { decl.init = this$1.parseMaybeAssign(isFor); } else if (kind === "const" && !(this$1.type === types._in || (this$1.options.ecmaVersion >= 6 && this$1.isContextual("of")))) { this$1.unexpected(); } else if (decl.id.type !== "Identifier" && !(isFor && (this$1.type === types._in || this$1.isContextual("of")))) { this$1.raise(this$1.lastTokEnd, "Complex binding patterns require an initialization value"); } else { decl.init = null; } node.declarations.push(this$1.finishNode(decl, "VariableDeclarator")); if (!this$1.eat(types.comma)) { break } } return node }; pp$1.parseVarId = function(decl, kind) { decl.id = this.parseBindingAtom(kind); this.checkLVal(decl.id, kind, false); }; // Parse a function declaration or literal (depending on the // `isStatement` parameter). pp$1.parseFunction = function(node, isStatement, allowExpressionBody, isAsync) { this.initFunction(node); if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { node.generator = this.eat(types.star); } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } if (isStatement) { node.id = isStatement === "nullableID" && this.type !== types.name ? null : this.parseIdent(); if (node.id) { this.checkLVal(node.id, this.inModule && !this.inFunction ? "let" : "var"); } } var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldInFunc = this.inFunction; this.inGenerator = node.generator; this.inAsync = node.async; this.yieldPos = 0; this.awaitPos = 0; this.inFunction = true; this.enterFunctionScope(); if (!isStatement) { node.id = this.type === types.name ? this.parseIdent() : null; } this.parseFunctionParams(node); this.parseFunctionBody(node, allowExpressionBody); this.inGenerator = oldInGen; this.inAsync = oldInAsync; this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.inFunction = oldInFunc; return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression") }; pp$1.parseFunctionParams = function(node) { this.expect(types.parenL); node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); }; // Parse a class declaration or literal (depending on the // `isStatement` parameter). pp$1.parseClass = function(node, isStatement) { var this$1 = this; this.next(); this.parseClassId(node, isStatement); this.parseClassSuper(node); var classBody = this.startNode(); var hadConstructor = false; classBody.body = []; this.expect(types.braceL); while (!this.eat(types.braceR)) { var member = this$1.parseClassMember(classBody); if (member && member.type === "MethodDefinition" && member.kind === "constructor") { if (hadConstructor) { this$1.raise(member.start, "Duplicate constructor in the same class"); } hadConstructor = true; } } node.body = this.finishNode(classBody, "ClassBody"); return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") }; pp$1.parseClassMember = function(classBody) { var this$1 = this; if (this.eat(types.semi)) { return null } var method = this.startNode(); var tryContextual = function (k, noLineBreak) { if ( noLineBreak === void 0 ) noLineBreak = false; var start = this$1.start, startLoc = this$1.startLoc; if (!this$1.eatContextual(k)) { return false } if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true } if (method.key) { this$1.unexpected(); } method.computed = false; method.key = this$1.startNodeAt(start, startLoc); method.key.name = k; this$1.finishNode(method.key, "Identifier"); return false }; method.kind = "method"; method.static = tryContextual("static"); var isGenerator = this.eat(types.star); var isAsync = false; if (!isGenerator) { if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) { isAsync = true; isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); } else if (tryContextual("get")) { method.kind = "get"; } else if (tryContextual("set")) { method.kind = "set"; } } if (!method.key) { this.parsePropertyName(method); } var key = method.key; if (!method.computed && !method.static && (key.type === "Identifier" && key.name === "constructor" || key.type === "Literal" && key.value === "constructor")) { if (method.kind !== "method") { this.raise(key.start, "Constructor can't have get/set modifier"); } if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } method.kind = "constructor"; } else if (method.static && key.type === "Identifier" && key.name === "prototype") { this.raise(key.start, "Classes may not have a static property named prototype"); } this.parseClassMethod(classBody, method, isGenerator, isAsync); if (method.kind === "get" && method.value.params.length !== 0) { this.raiseRecoverable(method.value.start, "getter should have no params"); } if (method.kind === "set" && method.value.params.length !== 1) { this.raiseRecoverable(method.value.start, "setter should have exactly one param"); } if (method.kind === "set" && method.value.params[0].type === "RestElement") { this.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params"); } return method }; pp$1.parseClassMethod = function(classBody, method, isGenerator, isAsync) { method.value = this.parseMethod(isGenerator, isAsync); classBody.body.push(this.finishNode(method, "MethodDefinition")); }; pp$1.parseClassId = function(node, isStatement) { node.id = this.type === types.name ? this.parseIdent() : isStatement === true ? this.unexpected() : null; }; pp$1.parseClassSuper = function(node) { node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null; }; // Parses module export declaration. pp$1.parseExport = function(node, exports) { var this$1 = this; this.next(); // export * from '...' if (this.eat(types.star)) { this.expectContextual("from"); if (this.type !== types.string) { this.unexpected(); } node.source = this.parseExprAtom(); this.semicolon(); return this.finishNode(node, "ExportAllDeclaration") } if (this.eat(types._default)) { // export default ... this.checkExport(exports, "default", this.lastTokStart); var isAsync; if (this.type === types._function || (isAsync = this.isAsyncFunction())) { var fNode = this.startNode(); this.next(); if (isAsync) { this.next(); } node.declaration = this.parseFunction(fNode, "nullableID", false, isAsync); } else if (this.type === types._class) { var cNode = this.startNode(); node.declaration = this.parseClass(cNode, "nullableID"); } else { node.declaration = this.parseMaybeAssign(); this.semicolon(); } return this.finishNode(node, "ExportDefaultDeclaration") } // export var|const|let|function|class ... if (this.shouldParseExportStatement()) { node.declaration = this.parseStatement(true); if (node.declaration.type === "VariableDeclaration") { this.checkVariableExport(exports, node.declaration.declarations); } else { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); } node.specifiers = []; node.source = null; } else { // export { x, y as z } [from '...'] node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); if (this.eatContextual("from")) { if (this.type !== types.string) { this.unexpected(); } node.source = this.parseExprAtom(); } else { // check for keywords used as local names for (var i = 0, list = node.specifiers; i < list.length; i += 1) { var spec = list[i]; this$1.checkUnreserved(spec.local); } node.source = null; } this.semicolon(); } return this.finishNode(node, "ExportNamedDeclaration") }; pp$1.checkExport = function(exports, name, pos) { if (!exports) { return } if (has(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; pp$1.checkPatternExport = function(exports, pat) { var this$1 = this; var type = pat.type; if (type === "Identifier") { this.checkExport(exports, pat.name, pat.start); } else if (type === "ObjectPattern") { for (var i = 0, list = pat.properties; i < list.length; i += 1) { var prop = list[i]; this$1.checkPatternExport(exports, prop); } } else if (type === "ArrayPattern") { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { var elt = list$1[i$1]; if (elt) { this$1.checkPatternExport(exports, elt); } } } else if (type === "Property") { this.checkPatternExport(exports, pat.value); } else if (type === "AssignmentPattern") { this.checkPatternExport(exports, pat.left); } else if (type === "RestElement") { this.checkPatternExport(exports, pat.argument); } else if (type === "ParenthesizedExpression") { this.checkPatternExport(exports, pat.expression); } }; pp$1.checkVariableExport = function(exports, decls) { var this$1 = this; if (!exports) { return } for (var i = 0, list = decls; i < list.length; i += 1) { var decl = list[i]; this$1.checkPatternExport(exports, decl.id); } }; pp$1.shouldParseExportStatement = function() { return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction() }; // Parses a comma-separated list of module exports. pp$1.parseExportSpecifiers = function(exports) { var this$1 = this; var nodes = [], first = true; // export { x, y as z } [from '...'] this.expect(types.braceL); while (!this.eat(types.braceR)) { if (!first) { this$1.expect(types.comma); if (this$1.afterTrailingComma(types.braceR)) { break } } else { first = false; } var node = this$1.startNode(); node.local = this$1.parseIdent(true); node.exported = this$1.eatContextual("as") ? this$1.parseIdent(true) : node.local; this$1.checkExport(exports, node.exported.name, node.exported.start); nodes.push(this$1.finishNode(node, "ExportSpecifier")); } return nodes }; // Parses import declaration. pp$1.parseImport = function(node) { this.next(); // import '...' if (this.type === types.string) { node.specifiers = empty; node.source = this.parseExprAtom(); } else { node.specifiers = this.parseImportSpecifiers(); this.expectContextual("from"); node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected(); } this.semicolon(); return this.finishNode(node, "ImportDeclaration") }; // Parses a comma-separated list of module imports. pp$1.parseImportSpecifiers = function() { var this$1 = this; var nodes = [], first = true; if (this.type === types.name) { // import defaultObj, { x, y as z } from '...' var node = this.startNode(); node.local = this.parseIdent(); this.checkLVal(node.local, "let"); nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); if (!this.eat(types.comma)) { return nodes } } if (this.type === types.star) { var node$1 = this.startNode(); this.next(); this.expectContextual("as"); node$1.local = this.parseIdent(); this.checkLVal(node$1.local, "let"); nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); return nodes } this.expect(types.braceL); while (!this.eat(types.braceR)) { if (!first) { this$1.expect(types.comma); if (this$1.afterTrailingComma(types.braceR)) { break } } else { first = false; } var node$2 = this$1.startNode(); node$2.imported = this$1.parseIdent(true); if (this$1.eatContextual("as")) { node$2.local = this$1.parseIdent(); } else { this$1.checkUnreserved(node$2.imported); node$2.local = node$2.imported; } this$1.checkLVal(node$2.local, "let"); nodes.push(this$1.finishNode(node$2, "ImportSpecifier")); } return nodes }; // Set `ExpressionStatement#directive` property for directive prologues. pp$1.adaptDirectivePrologue = function(statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { statements[i].directive = statements[i].expression.raw.slice(1, -1); } }; pp$1.isDirectiveCandidate = function(statement) { return ( statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && // Reject parenthesized strings. (this.input[statement.start] === "\"" || this.input[statement.start] === "'") ) }; var pp$2 = Parser.prototype; // Convert existing expression atom to assignable pattern // if possible. pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { var this$1 = this; if (this.options.ecmaVersion >= 6 && node) { switch (node.type) { case "Identifier": if (this.inAsync && node.name === "await") { this.raise(node.start, "Can not use 'await' as identifier inside an async function"); } break case "ObjectPattern": case "ArrayPattern": case "RestElement": break case "ObjectExpression": node.type = "ObjectPattern"; if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } for (var i = 0, list = node.properties; i < list.length; i += 1) { var prop = list[i]; this$1.toAssignable(prop, isBinding); // Early error: // AssignmentRestProperty[Yield, Await] : // `...` DestructuringAssignmentTarget[Yield, Await] // // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|. if ( prop.type === "RestElement" && (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern") ) { this$1.raise(prop.argument.start, "Unexpected token"); } } break case "Property": // AssignmentProperty has type === "Property" if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); } this.toAssignable(node.value, isBinding); break case "ArrayExpression": node.type = "ArrayPattern"; if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } this.toAssignableList(node.elements, isBinding); break case "SpreadElement": node.type = "RestElement"; this.toAssignable(node.argument, isBinding); if (node.argument.type === "AssignmentPattern") { this.raise(node.argument.start, "Rest elements cannot have a default value"); } break case "AssignmentExpression": if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); } node.type = "AssignmentPattern"; delete node.operator; this.toAssignable(node.left, isBinding); // falls through to AssignmentPattern case "AssignmentPattern": break case "ParenthesizedExpression": this.toAssignable(node.expression, isBinding); break case "MemberExpression": if (!isBinding) { break } default: this.raise(node.start, "Assigning to rvalue"); } } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } return node }; // Convert list of expression atoms to binding list. pp$2.toAssignableList = function(exprList, isBinding) { var this$1 = this; var end = exprList.length; for (var i = 0; i < end; i++) { var elt = exprList[i]; if (elt) { this$1.toAssignable(elt, isBinding); } } if (end) { var last = exprList[end - 1]; if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") { this.unexpected(last.argument.start); } } return exprList }; // Parses spread element. pp$2.parseSpread = function(refDestructuringErrors) { var node = this.startNode(); this.next(); node.argument = this.parseMaybeAssign(false, refDestructuringErrors); return this.finishNode(node, "SpreadElement") }; pp$2.parseRestBinding = function() { var node = this.startNode(); this.next(); // RestElement inside of a function parameter must be an identifier if (this.options.ecmaVersion === 6 && this.type !== types.name) { this.unexpected(); } node.argument = this.parseBindingAtom(); return this.finishNode(node, "RestElement") }; // Parses lvalue (assignable) atom. pp$2.parseBindingAtom = function() { if (this.options.ecmaVersion >= 6) { switch (this.type) { case types.bracketL: var node = this.startNode(); this.next(); node.elements = this.parseBindingList(types.bracketR, true, true); return this.finishNode(node, "ArrayPattern") case types.braceL: return this.parseObj(true) } } return this.parseIdent() }; pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { var this$1 = this; var elts = [], first = true; while (!this.eat(close)) { if (first) { first = false; } else { this$1.expect(types.comma); } if (allowEmpty && this$1.type === types.comma) { elts.push(null); } else if (allowTrailingComma && this$1.afterTrailingComma(close)) { break } else if (this$1.type === types.ellipsis) { var rest = this$1.parseRestBinding(); this$1.parseBindingListItem(rest); elts.push(rest); if (this$1.type === types.comma) { this$1.raise(this$1.start, "Comma is not permitted after the rest element"); } this$1.expect(close); break } else { var elem = this$1.parseMaybeDefault(this$1.start, this$1.startLoc); this$1.parseBindingListItem(elem); elts.push(elem); } } return elts }; pp$2.parseBindingListItem = function(param) { return param }; // Parses assignment pattern around given atom if possible. pp$2.parseMaybeDefault = function(startPos, startLoc, left) { left = left || this.parseBindingAtom(); if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.right = this.parseMaybeAssign(); return this.finishNode(node, "AssignmentPattern") }; // Verify that a node is an lval  something that can be assigned // to. // bindingType can be either: // 'var' indicating that the lval creates a 'var' binding // 'let' indicating that the lval creates a lexical ('let' or 'const') binding // 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references pp$2.checkLVal = function(expr, bindingType, checkClashes) { var this$1 = this; switch (expr.type) { case "Identifier": if (this.strict && this.reservedWordsStrictBind.test(expr.name)) { this.raiseRecoverable(expr.start, (bindingType ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } if (checkClashes) { if (has(checkClashes, expr.name)) { this.raiseRecoverable(expr.start, "Argument name clash"); } checkClashes[expr.name] = true; } if (bindingType && bindingType !== "none") { if ( bindingType === "var" && !this.canDeclareVarName(expr.name) || bindingType !== "var" && !this.canDeclareLexicalName(expr.name) ) { this.raiseRecoverable(expr.start, ("Identifier '" + (expr.name) + "' has already been declared")); } if (bindingType === "var") { this.declareVarName(expr.name); } else { this.declareLexicalName(expr.name); } } break case "MemberExpression": if (bindingType) { this.raiseRecoverable(expr.start, "Binding member expression"); } break case "ObjectPattern": for (var i = 0, list = expr.properties; i < list.length; i += 1) { var prop = list[i]; this$1.checkLVal(prop, bindingType, checkClashes); } break case "Property": // AssignmentProperty has type === "Property" this.checkLVal(expr.value, bindingType, checkClashes); break case "ArrayPattern": for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { var elem = list$1[i$1]; if (elem) { this$1.checkLVal(elem, bindingType, checkClashes); } } break case "AssignmentPattern": this.checkLVal(expr.left, bindingType, checkClashes); break case "RestElement": this.checkLVal(expr.argument, bindingType, checkClashes); break case "ParenthesizedExpression": this.checkLVal(expr.expression, bindingType, checkClashes); break default: this.raise(expr.start, (bindingType ? "Binding" : "Assigning to") + " rvalue"); } }; // A recursive descent parser operates by defining functions for all // syntactic elements, and recursively calling those, each function // advancing the input stream and returning an AST node. Precedence // of constructs (for example, the fact that `!x[1]` means `!(x[1])` // instead of `(!x)[1]` is handled by the fact that the parser // function that parses unary prefix operators is called first, and // in turn calls the function that parses `[]` subscripts  that // way, it'll receive the node for `x[1]` already parsed, and wraps // *that* in the unary operator node. // // Acorn uses an [operator precedence parser][opp] to handle binary // operator precedence, because it is much more compact than using // the technique outlined above, which uses different, nesting // functions to specify precedence, for all of the ten binary // precedence levels that JavaScript defines. // // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser var pp$3 = Parser.prototype; // Check if property name clashes with already added. // Object/class getters and setters are not allowed to clash  // either with each other or with an init property  and in // strict mode, init properties are also not allowed to be repeated. pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) { if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { return } if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) { return } var key = prop.key; var name; switch (key.type) { case "Identifier": name = key.name; break case "Literal": name = String(key.value); break default: return } var kind = prop.kind; if (this.options.ecmaVersion >= 6) { if (name === "__proto__" && kind === "init") { if (propHash.proto) { if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) { refDestructuringErrors.doubleProto = key.start; } // Backwards-compat kludge. Can be removed in version 6.0 else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } } propHash.proto = true; } return } name = "$" + name; var other = propHash[name]; if (other) { var redefinition; if (kind === "init") { redefinition = this.strict && other.init || other.get || other.set; } else { redefinition = other.init || other[kind]; } if (redefinition) { this.raiseRecoverable(key.start, "Redefinition of property"); } } else { other = propHash[name] = { init: false, get: false, set: false }; } other[kind] = true; }; // ### Expression parsing // These nest, from the most general expression type at the top to // 'atomic', nondivisible expression types at the bottom. Most of // the functions will simply let the function(s) below them parse, // and, *if* the syntactic construct they handle is present, wrap // the AST node that the inner parser gave them in another node. // Parse a full expression. The optional arguments are used to // forbid the `in` operator (in for loops initalization expressions) // and provide reference for storing '=' operator inside shorthand // property assignment in contexts where both object expression // and object pattern might appear (so it's possible to raise // delayed syntax error at correct position). pp$3.parseExpression = function(noIn, refDestructuringErrors) { var this$1 = this; var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeAssign(noIn, refDestructuringErrors); if (this.type === types.comma) { var node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; while (this.eat(types.comma)) { node.expressions.push(this$1.parseMaybeAssign(noIn, refDestructuringErrors)); } return this.finishNode(node, "SequenceExpression") } return expr }; // Parse an assignment expression. This includes applications of // operators like `+=`. pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) { if (this.inGenerator && this.isContextual("yield")) { return this.parseYield() } var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1; if (refDestructuringErrors) { oldParenAssign = refDestructuringErrors.parenthesizedAssign; oldTrailingComma = refDestructuringErrors.trailingComma; refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; } else { refDestructuringErrors = new DestructuringErrors; ownDestructuringErrors = true; } var startPos = this.start, startLoc = this.startLoc; if (this.type === types.parenL || this.type === types.name) { this.potentialArrowAt = this.start; } var left = this.parseMaybeConditional(noIn, refDestructuringErrors); if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } if (this.type.isAssign) { var node = this.startNodeAt(startPos, startLoc); node.operator = this.value; node.left = this.type === types.eq ? this.toAssignable(left, false, refDestructuringErrors) : left; if (!ownDestructuringErrors) { DestructuringErrors.call(refDestructuringErrors); } refDestructuringErrors.shorthandAssign = -1; // reset because shorthand default was used correctly this.checkLVal(left); this.next(); node.right = this.parseMaybeAssign(noIn); return this.finishNode(node, "AssignmentExpression") } else { if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } } if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; } if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; } return left }; // Parse a ternary conditional (`?:`) operator. pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprOps(noIn, refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } if (this.eat(types.question)) { var node = this.startNodeAt(startPos, startLoc); node.test = expr; node.consequent = this.parseMaybeAssign(); this.expect(types.colon); node.alternate = this.parseMaybeAssign(noIn); return this.finishNode(node, "ConditionalExpression") } return expr }; // Start the precedence parser. pp$3.parseExprOps = function(noIn, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeUnary(refDestructuringErrors, false); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn) }; // Parse binary operators with the operator precedence parsing // algorithm. `left` is the left-hand side of the operator. // `minPrec` provides context that allows the function to stop and // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) { var prec = this.type.binop; if (prec != null && (!noIn || this.type !== types._in)) { if (prec > minPrec) { var logical = this.type === types.logicalOR || this.type === types.logicalAND; var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn); var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical); return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) } } return left }; pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) { var node = this.startNodeAt(startPos, startLoc); node.left = left; node.operator = op; node.right = right; return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression") }; // Parse unary operators, both prefix and postfix. pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) { var this$1 = this; var startPos = this.start, startLoc = this.startLoc, expr; if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) { expr = this.parseAwait(); sawUnary = true; } else if (this.type.prefix) { var node = this.startNode(), update = this.type === types.incDec; node.operator = this.value; node.prefix = true; this.next(); node.argument = this.parseMaybeUnary(null, true); this.checkExpressionErrors(refDestructuringErrors, true); if (update) { this.checkLVal(node.argument); } else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } else { sawUnary = true; } expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); } else { expr = this.parseExprSubscripts(refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } while (this.type.postfix && !this.canInsertSemicolon()) { var node$1 = this$1.startNodeAt(startPos, startLoc); node$1.operator = this$1.value; node$1.prefix = false; node$1.argument = expr; this$1.checkLVal(expr); this$1.next(); expr = this$1.finishNode(node$1, "UpdateExpression"); } } if (!sawUnary && this.eat(types.starstar)) { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) } else { return expr } }; // Parse call, dot, and `[]`-subscript expressions. pp$3.parseExprSubscripts = function(refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprAtom(refDestructuringErrors); var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")"; if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) { return expr } var result = this.parseSubscripts(expr, startPos, startLoc); if (refDestructuringErrors && result.type === "MemberExpression") { if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } } return result }; pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) { var this$1 = this; var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === "async"; for (var computed = (void 0);;) { if ((computed = this$1.eat(types.bracketL)) || this$1.eat(types.dot)) { var node = this$1.startNodeAt(startPos, startLoc); node.object = base; node.property = computed ? this$1.parseExpression() : this$1.parseIdent(true); node.computed = !!computed; if (computed) { this$1.expect(types.bracketR); } base = this$1.finishNode(node, "MemberExpression"); } else if (!noCalls && this$1.eat(types.parenL)) { var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this$1.yieldPos, oldAwaitPos = this$1.awaitPos; this$1.yieldPos = 0; this$1.awaitPos = 0; var exprList = this$1.parseExprList(types.parenR, this$1.options.ecmaVersion >= 8, false, refDestructuringErrors); if (maybeAsyncArrow && !this$1.canInsertSemicolon() && this$1.eat(types.arrow)) { this$1.checkPatternErrors(refDestructuringErrors, false); this$1.checkYieldAwaitInDefaultParams(); this$1.yieldPos = oldYieldPos; this$1.awaitPos = oldAwaitPos; return this$1.parseArrowExpression(this$1.startNodeAt(startPos, startLoc), exprList, true) } this$1.checkExpressionErrors(refDestructuringErrors, true); this$1.yieldPos = oldYieldPos || this$1.yieldPos; this$1.awaitPos = oldAwaitPos || this$1.awaitPos; var node$1 = this$1.startNodeAt(startPos, startLoc); node$1.callee = base; node$1.arguments = exprList; base = this$1.finishNode(node$1, "CallExpression"); } else if (this$1.type === types.backQuote) { var node$2 = this$1.startNodeAt(startPos, startLoc); node$2.tag = base; node$2.quasi = this$1.parseTemplate({isTagged: true}); base = this$1.finishNode(node$2, "TaggedTemplateExpression"); } else { return base } } }; // Parse an atomic expression  either a single token that is an // expression, an expression started by a keyword like `function` or // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. pp$3.parseExprAtom = function(refDestructuringErrors) { var node, canBeArrow = this.potentialArrowAt === this.start; switch (this.type) { case types._super: if (!this.inFunction) { this.raise(this.start, "'super' outside of function or class"); } node = this.startNode(); this.next(); // The `super` keyword can appear at below: // SuperProperty: // super [ Expression ] // super . IdentifierName // SuperCall: // super Arguments if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL) { this.unexpected(); } return this.finishNode(node, "Super") case types._this: node = this.startNode(); this.next(); return this.finishNode(node, "ThisExpression") case types.name: var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; var id = this.parseIdent(this.type !== types.name); if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) { return this.parseFunction(this.startNodeAt(startPos, startLoc), false, false, true) } if (canBeArrow && !this.canInsertSemicolon()) { if (this.eat(types.arrow)) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) } if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc) { id = this.parseIdent(); if (this.canInsertSemicolon() || !this.eat(types.arrow)) { this.unexpected(); } return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true) } } return id case types.regexp: var value = this.value; node = this.parseLiteral(value.value); node.regex = {pattern: value.pattern, flags: value.flags}; return node case types.num: case types.string: return this.parseLiteral(this.value) case types._null: case types._true: case types._false: node = this.startNode(); node.value = this.type === types._null ? null : this.type === types._true; node.raw = this.type.keyword; this.next(); return this.finishNode(node, "Literal") case types.parenL: var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow); if (refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) { refDestructuringErrors.parenthesizedAssign = start; } if (refDestructuringErrors.parenthesizedBind < 0) { refDestructuringErrors.parenthesizedBind = start; } } return expr case types.bracketL: node = this.startNode(); this.next(); node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors); return this.finishNode(node, "ArrayExpression") case types.braceL: return this.parseObj(false, refDestructuringErrors) case types._function: node = this.startNode(); this.next(); return this.parseFunction(node, false) case types._class: return this.parseClass(this.startNode(), false) case types._new: return this.parseNew() case types.backQuote: return this.parseTemplate() default: this.unexpected(); } }; pp$3.parseLiteral = function(value) { var node = this.startNode(); node.value = value; node.raw = this.input.slice(this.start, this.end); this.next(); return this.finishNode(node, "Literal") }; pp$3.parseParenExpression = function() { this.expect(types.parenL); var val = this.parseExpression(); this.expect(types.parenR); return val }; pp$3.parseParenAndDistinguishExpression = function(canBeArrow) { var this$1 = this; var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; if (this.options.ecmaVersion >= 6) { this.next(); var innerStartPos = this.start, innerStartLoc = this.startLoc; var exprList = [], first = true, lastIsComma = false; var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; this.yieldPos = 0; this.awaitPos = 0; while (this.type !== types.parenR) { first ? first = false : this$1.expect(types.comma); if (allowTrailingComma && this$1.afterTrailingComma(types.parenR, true)) { lastIsComma = true; break } else if (this$1.type === types.ellipsis) { spreadStart = this$1.start; exprList.push(this$1.parseParenItem(this$1.parseRestBinding())); if (this$1.type === types.comma) { this$1.raise(this$1.start, "Comma is not permitted after the rest element"); } break } else { exprList.push(this$1.parseMaybeAssign(false, refDestructuringErrors, this$1.parseParenItem)); } } var innerEndPos = this.start, innerEndLoc = this.startLoc; this.expect(types.parenR); if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; return this.parseParenArrowList(startPos, startLoc, exprList) } if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); } if (spreadStart) { this.unexpected(spreadStart); } this.checkExpressionErrors(refDestructuringErrors, true); this.yieldPos = oldYieldPos || this.yieldPos; this.awaitPos = oldAwaitPos || this.awaitPos; if (exprList.length > 1) { val = this.startNodeAt(innerStartPos, innerStartLoc); val.expressions = exprList; this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); } else { val = exprList[0]; } } else { val = this.parseParenExpression(); } if (this.options.preserveParens) { var par = this.startNodeAt(startPos, startLoc); par.expression = val; return this.finishNode(par, "ParenthesizedExpression") } else { return val } }; pp$3.parseParenItem = function(item) { return item }; pp$3.parseParenArrowList = function(startPos, startLoc, exprList) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList) }; // New's precedence is slightly tricky. It must allow its argument to // be a `[]` or dot subscript expression, but not a call  at least, // not without wrapping it in parentheses. Thus, it uses the noCalls // argument to parseSubscripts to prevent it from consuming the // argument list. var empty$1 = []; pp$3.parseNew = function() { var node = this.startNode(); var meta = this.parseIdent(true); if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) { node.meta = meta; var containsEsc = this.containsEsc; node.property = this.parseIdent(true); if (node.property.name !== "target" || containsEsc) { this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target"); } if (!this.inFunction) { this.raiseRecoverable(node.start, "new.target can only be used in functions"); } return this.finishNode(node, "MetaProperty") } var startPos = this.start, startLoc = this.startLoc; node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); } else { node.arguments = empty$1; } return this.finishNode(node, "NewExpression") }; // Parse template expression. pp$3.parseTemplateElement = function(ref) { var isTagged = ref.isTagged; var elem = this.startNode(); if (this.type === types.invalidTemplate) { if (!isTagged) { this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); } elem.value = { raw: this.value, cooked: null }; } else { elem.value = { raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), cooked: this.value }; } this.next(); elem.tail = this.type === types.backQuote; return this.finishNode(elem, "TemplateElement") }; pp$3.parseTemplate = function(ref) { var this$1 = this; if ( ref === void 0 ) ref = {}; var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; var node = this.startNode(); this.next(); node.expressions = []; var curElt = this.parseTemplateElement({isTagged: isTagged}); node.quasis = [curElt]; while (!curElt.tail) { this$1.expect(types.dollarBraceL); node.expressions.push(this$1.parseExpression()); this$1.expect(types.braceR); node.quasis.push(curElt = this$1.parseTemplateElement({isTagged: isTagged})); } this.next(); return this.finishNode(node, "TemplateLiteral") }; pp$3.isAsyncProp = function(prop) { return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; // Parse an object literal or binding pattern. pp$3.parseObj = function(isPattern, refDestructuringErrors) { var this$1 = this; var node = this.startNode(), first = true, propHash = {}; node.properties = []; this.next(); while (!this.eat(types.braceR)) { if (!first) { this$1.expect(types.comma); if (this$1.afterTrailingComma(types.braceR)) { break } } else { first = false; } var prop = this$1.parseProperty(isPattern, refDestructuringErrors); if (!isPattern) { this$1.checkPropClash(prop, propHash, refDestructuringErrors); } node.properties.push(prop); } return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") }; pp$3.parseProperty = function(isPattern, refDestructuringErrors) { var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) { if (isPattern) { prop.argument = this.parseIdent(false); if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } return this.finishNode(prop, "RestElement") } // To disallow parenthesized identifier via `this.toAssignable()`. if (this.type === types.parenL && refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0) { refDestructuringErrors.parenthesizedAssign = this.start; } if (refDestructuringErrors.parenthesizedBind < 0) { refDestructuringErrors.parenthesizedBind = this.start; } } // Parse argument. prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); // To disallow trailing comma via `this.toAssignable()`. if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } // Finish return this.finishNode(prop, "SpreadElement") } if (this.options.ecmaVersion >= 6) { prop.method = false; prop.shorthand = false; if (isPattern || refDestructuringErrors) { startPos = this.start; startLoc = this.startLoc; } if (!isPattern) { isGenerator = this.eat(types.star); } } var containsEsc = this.containsEsc; this.parsePropertyName(prop); if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { isAsync = true; isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); this.parsePropertyName(prop, refDestructuringErrors); } else { isAsync = false; } this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); return this.finishNode(prop, "Property") }; pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { if ((isGenerator || isAsync) && this.type === types.colon) { this.unexpected(); } if (this.eat(types.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); prop.kind = "init"; } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) { if (isPattern) { this.unexpected(); } prop.kind = "init"; prop.method = true; prop.value = this.parseMethod(isGenerator, isAsync); } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (this.type !== types.comma && this.type !== types.braceR)) { if (isGenerator || isAsync) { this.unexpected(); } prop.kind = prop.key.name; this.parsePropertyName(prop); prop.value = this.parseMethod(false); var paramCount = prop.kind === "get" ? 0 : 1; if (prop.value.params.length !== paramCount) { var start = prop.value.start; if (prop.kind === "get") { this.raiseRecoverable(start, "getter should have no params"); } else { this.raiseRecoverable(start, "setter should have exactly one param"); } } else { if (prop.kind === "set" && prop.value.params[0].type === "RestElement") { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); } } } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { this.checkUnreserved(prop.key); prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); } else if (this.type === types.eq && refDestructuringErrors) { if (refDestructuringErrors.shorthandAssign < 0) { refDestructuringErrors.shorthandAssign = this.start; } prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); } else { prop.value = prop.key; } prop.shorthand = true; } else { this.unexpected(); } }; pp$3.parsePropertyName = function(prop) { if (this.options.ecmaVersion >= 6) { if (this.eat(types.bracketL)) { prop.computed = true; prop.key = this.parseMaybeAssign(); this.expect(types.bracketR); return prop.key } else { prop.computed = false; } } return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(true) }; // Initialize empty function node. pp$3.initFunction = function(node) { node.id = null; if (this.options.ecmaVersion >= 6) { node.generator = false; node.expression = false; } if (this.options.ecmaVersion >= 8) { node.async = false; } }; // Parse object or class method. pp$3.parseMethod = function(isGenerator, isAsync) { var node = this.startNode(), oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldInFunc = this.inFunction; this.initFunction(node); if (this.options.ecmaVersion >= 6) { node.generator = isGenerator; } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } this.inGenerator = node.generator; this.inAsync = node.async; this.yieldPos = 0; this.awaitPos = 0; this.inFunction = true; this.enterFunctionScope(); this.expect(types.parenL); node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); this.parseFunctionBody(node, false); this.inGenerator = oldInGen; this.inAsync = oldInAsync; this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.inFunction = oldInFunc; return this.finishNode(node, "FunctionExpression") }; // Parse arrow function expression with given parameters. pp$3.parseArrowExpression = function(node, params, isAsync) { var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldInFunc = this.inFunction; this.enterFunctionScope(); this.initFunction(node); if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } this.inGenerator = false; this.inAsync = node.async; this.yieldPos = 0; this.awaitPos = 0; this.inFunction = true; node.params = this.toAssignableList(params, true); this.parseFunctionBody(node, true); this.inGenerator = oldInGen; this.inAsync = oldInAsync; this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.inFunction = oldInFunc; return this.finishNode(node, "ArrowFunctionExpression") }; // Parse function body and check parameters. pp$3.parseFunctionBody = function(node, isArrowFunction) { var isExpression = isArrowFunction && this.type !== types.braceL; var oldStrict = this.strict, useStrict = false; if (isExpression) { node.body = this.parseMaybeAssign(); node.expression = true; this.checkParams(node, false); } else { var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); if (!oldStrict || nonSimple) { useStrict = this.strictDirective(this.end); // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. if (useStrict && nonSimple) { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); } } // Start a new scope with regard to labels and the `inFunction` // flag (restore them to their old value afterwards). var oldLabels = this.labels; this.labels = []; if (useStrict) { this.strict = true; } // Add the params to varDeclaredNames to ensure that an error is thrown // if a let/const declaration in the function clashes with one of the params. this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && this.isSimpleParamList(node.params)); node.body = this.parseBlock(false); node.expression = false; this.adaptDirectivePrologue(node.body.body); this.labels = oldLabels; } this.exitFunctionScope(); if (this.strict && node.id) { // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' this.checkLVal(node.id, "none"); } this.strict = oldStrict; }; pp$3.isSimpleParamList = function(params) { for (var i = 0, list = params; i < list.length; i += 1) { var param = list[i]; if (param.type !== "Identifier") { return false } } return true }; // Checks function params for various disallowed patterns such as using "eval" // or "arguments" and duplicate parameters. pp$3.checkParams = function(node, allowDuplicates) { var this$1 = this; var nameHash = {}; for (var i = 0, list = node.params; i < list.length; i += 1) { var param = list[i]; this$1.checkLVal(param, "var", allowDuplicates ? null : nameHash); } }; // Parses a comma-separated list of expressions, and returns them as // an array. `close` is the token type that ends the list, and // `allowEmpty` can be turned on to allow subsequent commas with // nothing in between them to be parsed as `null` (which is needed // for array literals). pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { var this$1 = this; var elts = [], first = true; while (!this.eat(close)) { if (!first) { this$1.expect(types.comma); if (allowTrailingComma && this$1.afterTrailingComma(close)) { break } } else { first = false; } var elt = (void 0); if (allowEmpty && this$1.type === types.comma) { elt = null; } else if (this$1.type === types.ellipsis) { elt = this$1.parseSpread(refDestructuringErrors); if (refDestructuringErrors && this$1.type === types.comma && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this$1.start; } } else { elt = this$1.parseMaybeAssign(false, refDestructuringErrors); } elts.push(elt); } return elts }; pp$3.checkUnreserved = function(ref) { var start = ref.start; var end = ref.end; var name = ref.name; if (this.inGenerator && name === "yield") { this.raiseRecoverable(start, "Can not use 'yield' as identifier inside a generator"); } if (this.inAsync && name === "await") { this.raiseRecoverable(start, "Can not use 'await' as identifier inside an async function"); } if (this.isKeyword(name)) { this.raise(start, ("Unexpected keyword '" + name + "'")); } if (this.options.ecmaVersion < 6 && this.input.slice(start, end).indexOf("\\") !== -1) { return } var re = this.strict ? this.reservedWordsStrict : this.reservedWords; if (re.test(name)) { if (!this.inAsync && name === "await") { this.raiseRecoverable(start, "Can not use keyword 'await' outside an async function"); } this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved")); } }; // Parse the next token as an identifier. If `liberal` is true (used // when parsing properties), it will also convert keywords into // identifiers. pp$3.parseIdent = function(liberal, isBinding) { var node = this.startNode(); if (liberal && this.options.allowReserved === "never") { liberal = false; } if (this.type === types.name) { node.name = this.value; } else if (this.type.keyword) { node.name = this.type.keyword; // To fix https://github.com/acornjs/acorn/issues/575 // `class` and `function` keywords push new context into this.context. // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name. // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword if ((node.name === "class" || node.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { this.context.pop(); } } else { this.unexpected(); } this.next(); this.finishNode(node, "Identifier"); if (!liberal) { this.checkUnreserved(node); } return node }; // Parses yield expression inside generator. pp$3.parseYield = function() { if (!this.yieldPos) { this.yieldPos = this.start; } var node = this.startNode(); this.next(); if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) { node.delegate = false; node.argument = null; } else { node.delegate = this.eat(types.star); node.argument = this.parseMaybeAssign(); } return this.finishNode(node, "YieldExpression") }; pp$3.parseAwait = function() { if (!this.awaitPos) { this.awaitPos = this.start; } var node = this.startNode(); this.next(); node.argument = this.parseMaybeUnary(null, true); return this.finishNode(node, "AwaitExpression") }; var pp$4 = Parser.prototype; // This function is used to raise exceptions on parse errors. It // takes an offset integer (into the current `input`) to indicate // the location of the error, attaches the position to the end // of the error message, and then raises a `SyntaxError` with that // message. pp$4.raise = function(pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; var err = new SyntaxError(message); err.pos = pos; err.loc = loc; err.raisedAt = this.pos; throw err }; pp$4.raiseRecoverable = pp$4.raise; pp$4.curPosition = function() { if (this.options.locations) { return new Position(this.curLine, this.pos - this.lineStart) } }; var pp$5 = Parser.prototype; // Object.assign polyfill var assign = Object.assign || function(target) { var sources = [], len = arguments.length - 1; while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ]; for (var i = 0, list = sources; i < list.length; i += 1) { var source = list[i]; for (var key in source) { if (has(source, key)) { target[key] = source[key]; } } } return target }; // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. pp$5.enterFunctionScope = function() { // var: a hash of var-declared names in the current lexical scope // lexical: a hash of lexically-declared names in the current lexical scope // childVar: a hash of var-declared names in all child lexical scopes of the current lexical scope (within the current function scope) // parentLexical: a hash of lexically-declared names in all parent lexical scopes of the current lexical scope (within the current function scope) this.scopeStack.push({var: {}, lexical: {}, childVar: {}, parentLexical: {}}); }; pp$5.exitFunctionScope = function() { this.scopeStack.pop(); }; pp$5.enterLexicalScope = function() { var parentScope = this.scopeStack[this.scopeStack.length - 1]; var childScope = {var: {}, lexical: {}, childVar: {}, parentLexical: {}}; this.scopeStack.push(childScope); assign(childScope.parentLexical, parentScope.lexical, parentScope.parentLexical); }; pp$5.exitLexicalScope = function() { var childScope = this.scopeStack.pop(); var parentScope = this.scopeStack[this.scopeStack.length - 1]; assign(parentScope.childVar, childScope.var, childScope.childVar); }; /** * A name can be declared with `var` if there are no variables with the same name declared with `let`/`const` * in the current lexical scope or any of the parent lexical scopes in this function. */ pp$5.canDeclareVarName = function(name) { var currentScope = this.scopeStack[this.scopeStack.length - 1]; return !has(currentScope.lexical, name) && !has(currentScope.parentLexical, name) }; /** * A name can be declared with `let`/`const` if there are no variables with the same name declared with `let`/`const` * in the current scope, and there are no variables with the same name declared with `var` in the current scope or in * any child lexical scopes in this function. */ pp$5.canDeclareLexicalName = function(name) { var currentScope = this.scopeStack[this.scopeStack.length - 1]; return !has(currentScope.lexical, name) && !has(currentScope.var, name) && !has(currentScope.childVar, name) }; pp$5.declareVarName = function(name) { this.scopeStack[this.scopeStack.length - 1].var[name] = true; }; pp$5.declareLexicalName = function(name) { this.scopeStack[this.scopeStack.length - 1].lexical[name] = true; }; var Node = function Node(parser, pos, loc) { this.type = ""; this.start = pos; this.end = 0; if (parser.options.locations) { this.loc = new SourceLocation(parser, loc); } if (parser.options.directSourceFile) { this.sourceFile = parser.options.directSourceFile; } if (parser.options.ranges) { this.range = [pos, 0]; } }; // Start an AST node, attaching a start offset. var pp$6 = Parser.prototype; pp$6.startNode = function() { return new Node(this, this.start, this.startLoc) }; pp$6.startNodeAt = function(pos, loc) { return new Node(this, pos, loc) }; // Finish an AST node, adding `type` and `end` properties. function finishNodeAt(node, type, pos, loc) { node.type = type; node.end = pos; if (this.options.locations) { node.loc.end = loc; } if (this.options.ranges) { node.range[1] = pos; } return node } pp$6.finishNode = function(node, type) { return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) }; // Finish node at given position pp$6.finishNodeAt = function(node, type, pos, loc) { return finishNodeAt.call(this, node, type, pos, loc) }; // The algorithm used to determine whether a regexp can appear at a // given point in the program is loosely based on sweet.js' approach. // See https://github.com/mozilla/sweet.js/wiki/design var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) { this.token = token; this.isExpr = !!isExpr; this.preserveSpace = !!preserveSpace; this.override = override; this.generator = !!generator; }; var types$1 = { b_stat: new TokContext("{", false), b_expr: new TokContext("{", true), b_tmpl: new TokContext("${", false), p_stat: new TokContext("(", false), p_expr: new TokContext("(", true), q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }), f_stat: new TokContext("function", false), f_expr: new TokContext("function", true), f_expr_gen: new TokContext("function", true, false, null, true), f_gen: new TokContext("function", false, false, null, true) }; var pp$7 = Parser.prototype; pp$7.initialContext = function() { return [types$1.b_stat] }; pp$7.braceIsBlock = function(prevType) { var parent = this.curContext(); if (parent === types$1.f_expr || parent === types$1.f_stat) { return true } if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr)) { return !parent.isExpr } // The check for `tt.name && exprAllowed` detects whether we are // after a `yield` or `of` construct. See the `updateContext` for // `tt.name`. if (prevType === types._return || prevType === types.name && this.exprAllowed) { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) { return true } if (prevType === types.braceL) { return parent === types$1.b_stat } if (prevType === types._var || prevType === types.name) { return false } return !this.exprAllowed }; pp$7.inGeneratorContext = function() { var this$1 = this; for (var i = this.context.length - 1; i >= 1; i--) { var context = this$1.context[i]; if (context.token === "function") { return context.generator } } return false }; pp$7.updateContext = function(prevType) { var update, type = this.type; if (type.keyword && prevType === types.dot) { this.exprAllowed = false; } else if (update = type.updateContext) { update.call(this, prevType); } else { this.exprAllowed = type.beforeExpr; } }; // Token-specific context update code types.parenR.updateContext = types.braceR.updateContext = function() { if (this.context.length === 1) { this.exprAllowed = true; return } var out = this.context.pop(); if (out === types$1.b_stat && this.curContext().token === "function") { out = this.context.pop(); } this.exprAllowed = !out.isExpr; }; types.braceL.updateContext = function(prevType) { this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr); this.exprAllowed = true; }; types.dollarBraceL.updateContext = function() { this.context.push(types$1.b_tmpl); this.exprAllowed = true; }; types.parenL.updateContext = function(prevType) { var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; this.context.push(statementParens ? types$1.p_stat : types$1.p_expr); this.exprAllowed = true; }; types.incDec.updateContext = function() { // tokExprAllowed stays unchanged }; types._function.updateContext = types._class.updateContext = function(prevType) { if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else && !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) { this.context.push(types$1.f_expr); } else { this.context.push(types$1.f_stat); } this.exprAllowed = false; }; types.backQuote.updateContext = function() { if (this.curContext() === types$1.q_tmpl) { this.context.pop(); } else { this.context.push(types$1.q_tmpl); } this.exprAllowed = false; }; types.star.updateContext = function(prevType) { if (prevType === types._function) { var index = this.context.length - 1; if (this.context[index] === types$1.f_expr) { this.context[index] = types$1.f_expr_gen; } else { this.context[index] = types$1.f_gen; } } this.exprAllowed = true; }; types.name.updateContext = function(prevType) { var allowed = false; if (this.options.ecmaVersion >= 6) { if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { allowed = true; } } this.exprAllowed = allowed; }; var data = { "$LONE": [ "ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned", "Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M", "Case_Ignorable", "CI", "Cased", "Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM", "Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF", "Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU", "Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep", "Diacritic", "Dia", "Emoji", "Emoji_Component", "Emoji_Modifier", "Emoji_Modifier_Base", "Emoji_Presentation", "Extender", "Ext", "Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext", "Hex_Digit", "Hex", "IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST", "ID_Continue", "IDC", "ID_Start", "IDS", "Ideographic", "Ideo", "Join_Control", "Join_C", "Logical_Order_Exception", "LOE", "Lowercase", "Lower", "Math", "Noncharacter_Code_Point", "NChar", "Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS", "Quotation_Mark", "QMark", "Radical", "Regional_Indicator", "RI", "Sentence_Terminal", "STerm", "Soft_Dotted", "SD", "Terminal_Punctuation", "Term", "Unified_Ideograph", "UIdeo", "Uppercase", "Upper", "Variation_Selector", "VS", "White_Space", "space", "XID_Continue", "XIDC", "XID_Start", "XIDS" ], "General_Category": [ "Cased_Letter", "LC", "Close_Punctuation", "Pe", "Connector_Punctuation", "Pc", "Control", "Cc", "cntrl", "Currency_Symbol", "Sc", "Dash_Punctuation", "Pd", "Decimal_Number", "Nd", "digit", "Enclosing_Mark", "Me", "Final_Punctuation", "Pf", "Format", "Cf", "Initial_Punctuation", "Pi", "Letter", "L", "Letter_Number", "Nl", "Line_Separator", "Zl", "Lowercase_Letter", "Ll", "Mark", "M", "Combining_Mark", "Math_Symbol", "Sm", "Modifier_Letter", "Lm", "Modifier_Symbol", "Sk", "Nonspacing_Mark", "Mn", "Number", "N", "Open_Punctuation", "Ps", "Other", "C", "Other_Letter", "Lo", "Other_Number", "No", "Other_Punctuation", "Po", "Other_Symbol", "So", "Paragraph_Separator", "Zp", "Private_Use", "Co", "Punctuation", "P", "punct", "Separator", "Z", "Space_Separator", "Zs", "Spacing_Mark", "Mc", "Surrogate", "Cs", "Symbol", "S", "Titlecase_Letter", "Lt", "Unassigned", "Cn", "Uppercase_Letter", "Lu" ], "Script": [ "Adlam", "Adlm", "Ahom", "Anatolian_Hieroglyphs", "Hluw", "Arabic", "Arab", "Armenian", "Armn", "Avestan", "Avst", "Balinese", "Bali", "Bamum", "Bamu", "Bassa_Vah", "Bass", "Batak", "Batk", "Bengali", "Beng", "Bhaiksuki", "Bhks", "Bopomofo", "Bopo", "Brahmi", "Brah", "Braille", "Brai", "Buginese", "Bugi", "Buhid", "Buhd", "Canadian_Aboriginal", "Cans", "Carian", "Cari", "Caucasian_Albanian", "Aghb", "Chakma", "Cakm", "Cham", "Cherokee", "Cher", "Common", "Zyyy", "Coptic", "Copt", "Qaac", "Cuneiform", "Xsux", "Cypriot", "Cprt", "Cyrillic", "Cyrl", "Deseret", "Dsrt", "Devanagari", "Deva", "Duployan", "Dupl", "Egyptian_Hieroglyphs", "Egyp", "Elbasan", "Elba", "Ethiopic", "Ethi", "Georgian", "Geor", "Glagolitic", "Glag", "Gothic", "Goth", "Grantha", "Gran", "Greek", "Grek", "Gujarati", "Gujr", "Gurmukhi", "Guru", "Han", "Hani", "Hangul", "Hang", "Hanunoo", "Hano", "Hatran", "Hatr", "Hebrew", "Hebr", "Hiragana", "Hira", "Imperial_Aramaic", "Armi", "Inherited", "Zinh", "Qaai", "Inscriptional_Pahlavi", "Phli", "Inscriptional_Parthian", "Prti", "Javanese", "Java", "Kaithi", "Kthi", "Kannada", "Knda", "Katakana", "Kana", "Kayah_Li", "Kali", "Kharoshthi", "Khar", "Khmer", "Khmr", "Khojki", "Khoj", "Khudawadi", "Sind", "Lao", "Laoo", "Latin", "Latn", "Lepcha", "Lepc", "Limbu", "Limb", "Linear_A", "Lina", "Linear_B", "Linb", "Lisu", "Lycian", "Lyci", "Lydian", "Lydi", "Mahajani", "Mahj", "Malayalam", "Mlym", "Mandaic", "Mand", "Manichaean", "Mani", "Marchen", "Marc", "Masaram_Gondi", "Gonm", "Meetei_Mayek", "Mtei", "Mende_Kikakui", "Mend", "Meroitic_Cursive", "Merc", "Meroitic_Hieroglyphs", "Mero", "Miao", "Plrd", "Modi", "Mongolian", "Mong", "Mro", "Mroo", "Multani", "Mult", "Myanmar", "Mymr", "Nabataean", "Nbat", "New_Tai_Lue", "Talu", "Newa", "Nko", "Nkoo", "Nushu", "Nshu", "Ogham", "Ogam", "Ol_Chiki", "Olck", "Old_Hungarian", "Hung", "Old_Italic", "Ital", "Old_North_Arabian", "Narb", "Old_Permic", "Perm", "Old_Persian", "Xpeo", "Old_South_Arabian", "Sarb", "Old_Turkic", "Orkh", "Oriya", "Orya", "Osage", "Osge", "Osmanya", "Osma", "Pahawh_Hmong", "Hmng", "Palmyrene", "Palm", "Pau_Cin_Hau", "Pauc", "Phags_Pa", "Phag", "Phoenician", "Phnx", "Psalter_Pahlavi", "Phlp", "Rejang", "Rjng", "Runic", "Runr", "Samaritan", "Samr", "Saurashtra", "Saur", "Sharada", "Shrd", "Shavian", "Shaw", "Siddham", "Sidd", "SignWriting", "Sgnw", "Sinhala", "Sinh", "Sora_Sompeng", "Sora", "Soyombo", "Soyo", "Sundanese", "Sund", "Syloti_Nagri", "Sylo", "Syriac", "Syrc", "Tagalog", "Tglg", "Tagbanwa", "Tagb", "Tai_Le", "Tale", "Tai_Tham", "Lana", "Tai_Viet", "Tavt", "Takri", "Takr", "Tamil", "Taml", "Tangut", "Tang", "Telugu", "Telu", "Thaana", "Thaa", "Thai", "Tibetan", "Tibt", "Tifinagh", "Tfng", "Tirhuta", "Tirh", "Ugaritic", "Ugar", "Vai", "Vaii", "Warang_Citi", "Wara", "Yi", "Yiii", "Zanabazar_Square", "Zanb" ] }; Array.prototype.push.apply(data.$LONE, data.General_Category); data.gc = data.General_Category; data.sc = data.Script_Extensions = data.scx = data.Script; var pp$9 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : ""); this.source = ""; this.flags = ""; this.start = 0; this.switchU = false; this.switchN = false; this.pos = 0; this.lastIntValue = 0; this.lastStringValue = ""; this.lastAssertionIsQuantifiable = false; this.numCapturingParens = 0; this.maxBackReference = 0; this.groupNames = []; this.backReferenceNames = []; }; RegExpValidationState.prototype.reset = function reset (start, pattern, flags) { var unicode = flags.indexOf("u") !== -1; this.start = start | 0; this.source = pattern + ""; this.flags = flags; this.switchU = unicode && this.parser.options.ecmaVersion >= 6; this.switchN = unicode && this.parser.options.ecmaVersion >= 9; }; RegExpValidationState.prototype.raise = function raise (message) { this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message)); }; // If u flag is given, this returns the code point at the index (it combines a surrogate pair). // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). RegExpValidationState.prototype.at = function at (i) { var s = this.source; var l = s.length; if (i >= l) { return -1 } var c = s.charCodeAt(i); if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { return c } return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00 }; RegExpValidationState.prototype.nextIndex = function nextIndex (i) { var s = this.source; var l = s.length; if (i >= l) { return l } var c = s.charCodeAt(i); if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { return i + 1 } return i + 2 }; RegExpValidationState.prototype.current = function current () { return this.at(this.pos) }; RegExpValidationState.prototype.lookahead = function lookahead () { return this.at(this.nextIndex(this.pos)) }; RegExpValidationState.prototype.advance = function advance () { this.pos = this.nextIndex(this.pos); }; RegExpValidationState.prototype.eat = function eat (ch) { if (this.current() === ch) { this.advance(); return true } return false }; function codePointToString$1(ch) { if (ch <= 0xFFFF) { return String.fromCharCode(ch) } ch -= 0x10000; return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) } /** * Validate the flags part of a given RegExpLiteral. * * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ pp$9.validateRegExpFlags = function(state) { var this$1 = this; var validFlags = state.validFlags; var flags = state.flags; for (var i = 0; i < flags.length; i++) { var flag = flags.charAt(i); if (validFlags.indexOf(flag) === -1) { this$1.raise(state.start, "Invalid regular expression flag"); } if (flags.indexOf(flag, i + 1) > -1) { this$1.raise(state.start, "Duplicate regular expression flag"); } } }; /** * Validate the pattern part of a given RegExpLiteral. * * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ pp$9.validateRegExpPattern = function(state) { this.regexp_pattern(state); // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of // parsing contains a |GroupName|, reparse with the goal symbol // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* // exception if _P_ did not conform to the grammar, if any elements of _P_ // were not matched by the parse, or if any Early Error conditions exist. if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) { state.switchN = true; this.regexp_pattern(state); } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern pp$9.regexp_pattern = function(state) { state.pos = 0; state.lastIntValue = 0; state.lastStringValue = ""; state.lastAssertionIsQuantifiable = false; state.numCapturingParens = 0; state.maxBackReference = 0; state.groupNames.length = 0; state.backReferenceNames.length = 0; this.regexp_disjunction(state); if (state.pos !== state.source.length) { // Make the same messages as V8. if (state.eat(0x29 /* ) */)) { state.raise("Unmatched ')'"); } if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) { state.raise("Lone quantifier brackets"); } } if (state.maxBackReference > state.numCapturingParens) { state.raise("Invalid escape"); } for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) { var name = list[i]; if (state.groupNames.indexOf(name) === -1) { state.raise("Invalid named capture referenced"); } } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction pp$9.regexp_disjunction = function(state) { var this$1 = this; this.regexp_alternative(state); while (state.eat(0x7C /* | */)) { this$1.regexp_alternative(state); } // Make the same message as V8. if (this.regexp_eatQuantifier(state, true)) { state.raise("Nothing to repeat"); } if (state.eat(0x7B /* { */)) { state.raise("Lone quantifier brackets"); } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative pp$9.regexp_alternative = function(state) { while (state.pos < state.source.length && this.regexp_eatTerm(state)) { } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term pp$9.regexp_eatTerm = function(state) { if (this.regexp_eatAssertion(state)) { // Handle `QuantifiableAssertion Quantifier` alternative. // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion // is a QuantifiableAssertion. if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { // Make the same message as V8. if (state.switchU) { state.raise("Invalid quantifier"); } } return true } if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { this.regexp_eatQuantifier(state); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion pp$9.regexp_eatAssertion = function(state) { var start = state.pos; state.lastAssertionIsQuantifiable = false; // ^, $ if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) { return true } // \b \B if (state.eat(0x5C /* \ */)) { if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) { return true } state.pos = start; } // Lookahead / Lookbehind if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) { var lookbehind = false; if (this.options.ecmaVersion >= 9) { lookbehind = state.eat(0x3C /* < */); } if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) { this.regexp_disjunction(state); if (!state.eat(0x29 /* ) */)) { state.raise("Unterminated group"); } state.lastAssertionIsQuantifiable = !lookbehind; return true } } state.pos = start; return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier pp$9.regexp_eatQuantifier = function(state, noError) { if ( noError === void 0 ) noError = false; if (this.regexp_eatQuantifierPrefix(state, noError)) { state.eat(0x3F /* ? */); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix pp$9.regexp_eatQuantifierPrefix = function(state, noError) { return ( state.eat(0x2A /* * */) || state.eat(0x2B /* + */) || state.eat(0x3F /* ? */) || this.regexp_eatBracedQuantifier(state, noError) ) }; pp$9.regexp_eatBracedQuantifier = function(state, noError) { var start = state.pos; if (state.eat(0x7B /* { */)) { var min = 0, max = -1; if (this.regexp_eatDecimalDigits(state)) { min = state.lastIntValue; if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) { max = state.lastIntValue; } if (state.eat(0x7D /* } */)) { // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term if (max !== -1 && max < min && !noError) { state.raise("numbers out of order in {} quantifier"); } return true } } if (state.switchU && !noError) { state.raise("Incomplete quantifier"); } state.pos = start; } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom pp$9.regexp_eatAtom = function(state) { return ( this.regexp_eatPatternCharacters(state) || state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) ) }; pp$9.regexp_eatReverseSolidusAtomEscape = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatAtomEscape(state)) { return true } state.pos = start; } return false }; pp$9.regexp_eatUncapturingGroup = function(state) { var start = state.pos; if (state.eat(0x28 /* ( */)) { if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { this.regexp_disjunction(state); if (state.eat(0x29 /* ) */)) { return true } state.raise("Unterminated group"); } state.pos = start; } return false }; pp$9.regexp_eatCapturingGroup = function(state) { if (state.eat(0x28 /* ( */)) { if (this.options.ecmaVersion >= 9) { this.regexp_groupSpecifier(state); } else if (state.current() === 0x3F /* ? */) { state.raise("Invalid group"); } this.regexp_disjunction(state); if (state.eat(0x29 /* ) */)) { state.numCapturingParens += 1; return true } state.raise("Unterminated group"); } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom pp$9.regexp_eatExtendedAtom = function(state) { return ( state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) || this.regexp_eatInvalidBracedQuantifier(state) || this.regexp_eatExtendedPatternCharacter(state) ) }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier pp$9.regexp_eatInvalidBracedQuantifier = function(state) { if (this.regexp_eatBracedQuantifier(state, true)) { state.raise("Nothing to repeat"); } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter pp$9.regexp_eatSyntaxCharacter = function(state) { var ch = state.current(); if (isSyntaxCharacter(ch)) { state.lastIntValue = ch; state.advance(); return true } return false }; function isSyntaxCharacter(ch) { return ( ch === 0x24 /* $ */ || ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || ch === 0x2E /* . */ || ch === 0x3F /* ? */ || ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || ch >= 0x7B /* { */ && ch <= 0x7D /* } */ ) } // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter // But eat eager. pp$9.regexp_eatPatternCharacters = function(state) { var start = state.pos; var ch = 0; while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { state.advance(); } return state.pos !== start }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter pp$9.regexp_eatExtendedPatternCharacter = function(state) { var ch = state.current(); if ( ch !== -1 && ch !== 0x24 /* $ */ && !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && ch !== 0x2E /* . */ && ch !== 0x3F /* ? */ && ch !== 0x5B /* [ */ && ch !== 0x5E /* ^ */ && ch !== 0x7C /* | */ ) { state.advance(); return true } return false }; // GroupSpecifier[U] :: // [empty] // `?` GroupName[?U] pp$9.regexp_groupSpecifier = function(state) { if (state.eat(0x3F /* ? */)) { if (this.regexp_eatGroupName(state)) { if (state.groupNames.indexOf(state.lastStringValue) !== -1) { state.raise("Duplicate capture group name"); } state.groupNames.push(state.lastStringValue); return } state.raise("Invalid group"); } }; // GroupName[U] :: // `<` RegExpIdentifierName[?U] `>` // Note: this updates `state.lastStringValue` property with the eaten name. pp$9.regexp_eatGroupName = function(state) { state.lastStringValue = ""; if (state.eat(0x3C /* < */)) { if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { return true } state.raise("Invalid capture group name"); } return false }; // RegExpIdentifierName[U] :: // RegExpIdentifierStart[?U] // RegExpIdentifierName[?U] RegExpIdentifierPart[?U] // Note: this updates `state.lastStringValue` property with the eaten name. pp$9.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { state.lastStringValue += codePointToString$1(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { state.lastStringValue += codePointToString$1(state.lastIntValue); } return true } return false }; // RegExpIdentifierStart[U] :: // UnicodeIDStart // `$` // `_` // `\` RegExpUnicodeEscapeSequence[?U] pp$9.regexp_eatRegExpIdentifierStart = function(state) { var start = state.pos; var ch = state.current(); state.advance(); if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) { ch = state.lastIntValue; } if (isRegExpIdentifierStart(ch)) { state.lastIntValue = ch; return true } state.pos = start; return false }; function isRegExpIdentifierStart(ch) { return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ } // RegExpIdentifierPart[U] :: // UnicodeIDContinue // `$` // `_` // `\` RegExpUnicodeEscapeSequence[?U] // <ZWNJ> // <ZWJ> pp$9.regexp_eatRegExpIdentifierPart = function(state) { var start = state.pos; var ch = state.current(); state.advance(); if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) { ch = state.lastIntValue; } if (isRegExpIdentifierPart(ch)) { state.lastIntValue = ch; return true } state.pos = start; return false }; function isRegExpIdentifierPart(ch) { return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape pp$9.regexp_eatAtomEscape = function(state) { if ( this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) || (state.switchN && this.regexp_eatKGroupName(state)) ) { return true } if (state.switchU) { // Make the same message as V8. if (state.current() === 0x63 /* c */) { state.raise("Invalid unicode escape"); } state.raise("Invalid escape"); } return false }; pp$9.regexp_eatBackReference = function(state) { var start = state.pos; if (this.regexp_eatDecimalEscape(state)) { var n = state.lastIntValue; if (state.switchU) { // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape if (n > state.maxBackReference) { state.maxBackReference = n; } return true } if (n <= state.numCapturingParens) { return true } state.pos = start; } return false }; pp$9.regexp_eatKGroupName = function(state) { if (state.eat(0x6B /* k */)) { if (this.regexp_eatGroupName(state)) { state.backReferenceNames.push(state.lastStringValue); return true } state.raise("Invalid named reference"); } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape pp$9.regexp_eatCharacterEscape = function(state) { return ( this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || this.regexp_eatRegExpUnicodeEscapeSequence(state) || (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) || this.regexp_eatIdentityEscape(state) ) }; pp$9.regexp_eatCControlLetter = function(state) { var start = state.pos; if (state.eat(0x63 /* c */)) { if (this.regexp_eatControlLetter(state)) { return true } state.pos = start; } return false }; pp$9.regexp_eatZero = function(state) { if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { state.lastIntValue = 0; state.advance(); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape pp$9.regexp_eatControlEscape = function(state) { var ch = state.current(); if (ch === 0x74 /* t */) { state.lastIntValue = 0x09; /* \t */ state.advance(); return true } if (ch === 0x6E /* n */) { state.lastIntValue = 0x0A; /* \n */ state.advance(); return true } if (ch === 0x76 /* v */) { state.lastIntValue = 0x0B; /* \v */ state.advance(); return true } if (ch === 0x66 /* f */) { state.lastIntValue = 0x0C; /* \f */ state.advance(); return true } if (ch === 0x72 /* r */) { state.lastIntValue = 0x0D; /* \r */ state.advance(); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter pp$9.regexp_eatControlLetter = function(state) { var ch = state.current(); if (isControlLetter(ch)) { state.lastIntValue = ch % 0x20; state.advance(); return true } return false }; function isControlLetter(ch) { return ( (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) || (ch >= 0x61 /* a */ && ch <= 0x7A /* z */) ) } // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence pp$9.regexp_eatRegExpUnicodeEscapeSequence = function(state) { var start = state.pos; if (state.eat(0x75 /* u */)) { if (this.regexp_eatFixedHexDigits(state, 4)) { var lead = state.lastIntValue; if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) { var leadSurrogateEnd = state.pos; if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { var trail = state.lastIntValue; if (trail >= 0xDC00 && trail <= 0xDFFF) { state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; return true } } state.pos = leadSurrogateEnd; state.lastIntValue = lead; } return true } if ( state.switchU && state.eat(0x7B /* { */) && this.regexp_eatHexDigits(state) && state.eat(0x7D /* } */) && isValidUnicode(state.lastIntValue) ) { return true } if (state.switchU) { state.raise("Invalid unicode escape"); } state.pos = start; } return false }; function isValidUnicode(ch) { return ch >= 0 && ch <= 0x10FFFF } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape pp$9.regexp_eatIdentityEscape = function(state) { if (state.switchU) { if (this.regexp_eatSyntaxCharacter(state)) { return true } if (state.eat(0x2F /* / */)) { state.lastIntValue = 0x2F; /* / */ return true } return false } var ch = state.current(); if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) { state.lastIntValue = ch; state.advance(); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape pp$9.regexp_eatDecimalEscape = function(state) { state.lastIntValue = 0; var ch = state.current(); if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { do { state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); state.advance(); } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape pp$9.regexp_eatCharacterClassEscape = function(state) { var ch = state.current(); if (isCharacterClassEscape(ch)) { state.lastIntValue = -1; state.advance(); return true } if ( state.switchU && this.options.ecmaVersion >= 9 && (ch === 0x50 /* P */ || ch === 0x70 /* p */) ) { state.lastIntValue = -1; state.advance(); if ( state.eat(0x7B /* { */) && this.regexp_eatUnicodePropertyValueExpression(state) && state.eat(0x7D /* } */) ) { return true } state.raise("Invalid property name"); } return false }; function isCharacterClassEscape(ch) { return ( ch === 0x64 /* d */ || ch === 0x44 /* D */ || ch === 0x73 /* s */ || ch === 0x53 /* S */ || ch === 0x77 /* w */ || ch === 0x57 /* W */ ) } // UnicodePropertyValueExpression :: // UnicodePropertyName `=` UnicodePropertyValue // LoneUnicodePropertyNameOrValue pp$9.regexp_eatUnicodePropertyValueExpression = function(state) { var start = state.pos; // UnicodePropertyName `=` UnicodePropertyValue if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) { var name = state.lastStringValue; if (this.regexp_eatUnicodePropertyValue(state)) { var value = state.lastStringValue; this.regexp_validateUnicodePropertyNameAndValue(state, name, value); return true } } state.pos = start; // LoneUnicodePropertyNameOrValue if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { var nameOrValue = state.lastStringValue; this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); return true } return false }; pp$9.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { if (!data.hasOwnProperty(name) || data[name].indexOf(value) === -1) { state.raise("Invalid property name"); } }; pp$9.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { if (data.$LONE.indexOf(nameOrValue) === -1) { state.raise("Invalid property name"); } }; // UnicodePropertyName :: // UnicodePropertyNameCharacters pp$9.regexp_eatUnicodePropertyName = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" }; function isUnicodePropertyNameCharacter(ch) { return isControlLetter(ch) || ch === 0x5F /* _ */ } // UnicodePropertyValue :: // UnicodePropertyValueCharacters pp$9.regexp_eatUnicodePropertyValue = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" }; function isUnicodePropertyValueCharacter(ch) { return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch) } // LoneUnicodePropertyNameOrValue :: // UnicodePropertyValueCharacters pp$9.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { return this.regexp_eatUnicodePropertyValue(state) }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass pp$9.regexp_eatCharacterClass = function(state) { if (state.eat(0x5B /* [ */)) { state.eat(0x5E /* ^ */); this.regexp_classRanges(state); if (state.eat(0x5D /* [ */)) { return true } // Unreachable since it threw "unterminated regular expression" error before. state.raise("Unterminated character class"); } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash pp$9.regexp_classRanges = function(state) { var this$1 = this; while (this.regexp_eatClassAtom(state)) { var left = state.lastIntValue; if (state.eat(0x2D /* - */) && this$1.regexp_eatClassAtom(state)) { var right = state.lastIntValue; if (state.switchU && (left === -1 || right === -1)) { state.raise("Invalid character class"); } if (left !== -1 && right !== -1 && left > right) { state.raise("Range out of order in character class"); } } } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash pp$9.regexp_eatClassAtom = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatClassEscape(state)) { return true } if (state.switchU) { // Make the same message as V8. var ch$1 = state.current(); if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) { state.raise("Invalid class escape"); } state.raise("Invalid escape"); } state.pos = start; } var ch = state.current(); if (ch !== 0x5D /* [ */) { state.lastIntValue = ch; state.advance(); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape pp$9.regexp_eatClassEscape = function(state) { var start = state.pos; if (state.eat(0x62 /* b */)) { state.lastIntValue = 0x08; /* <BS> */ return true } if (state.switchU && state.eat(0x2D /* - */)) { state.lastIntValue = 0x2D; /* - */ return true } if (!state.switchU && state.eat(0x63 /* c */)) { if (this.regexp_eatClassControlLetter(state)) { return true } state.pos = start; } return ( this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) ) }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter pp$9.regexp_eatClassControlLetter = function(state) { var ch = state.current(); if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { state.lastIntValue = ch % 0x20; state.advance(); return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence pp$9.regexp_eatHexEscapeSequence = function(state) { var start = state.pos; if (state.eat(0x78 /* x */)) { if (this.regexp_eatFixedHexDigits(state, 2)) { return true } if (state.switchU) { state.raise("Invalid escape"); } state.pos = start; } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits pp$9.regexp_eatDecimalDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; while (isDecimalDigit(ch = state.current())) { state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); state.advance(); } return state.pos !== start }; function isDecimalDigit(ch) { return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits pp$9.regexp_eatHexDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; while (isHexDigit(ch = state.current())) { state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); state.advance(); } return state.pos !== start }; function isHexDigit(ch) { return ( (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) || (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) || (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) ) } function hexToInt(ch) { if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) { return 10 + (ch - 0x41 /* A */) } if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) { return 10 + (ch - 0x61 /* a */) } return ch - 0x30 /* 0 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence // Allows only 0-377(octal) i.e. 0-255(decimal). pp$9.regexp_eatLegacyOctalEscapeSequence = function(state) { if (this.regexp_eatOctalDigit(state)) { var n1 = state.lastIntValue; if (this.regexp_eatOctalDigit(state)) { var n2 = state.lastIntValue; if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; } else { state.lastIntValue = n1 * 8 + n2; } } else { state.lastIntValue = n1; } return true } return false }; // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit pp$9.regexp_eatOctalDigit = function(state) { var ch = state.current(); if (isOctalDigit(ch)) { state.lastIntValue = ch - 0x30; /* 0 */ state.advance(); return true } state.lastIntValue = 0; return false }; function isOctalDigit(ch) { return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence pp$9.regexp_eatFixedHexDigits = function(state, length) { var start = state.pos; state.lastIntValue = 0; for (var i = 0; i < length; ++i) { var ch = state.current(); if (!isHexDigit(ch)) { state.pos = start; return false } state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); state.advance(); } return true }; // Object type used to represent tokens. Note that normally, tokens // simply exist as properties on the parser object. This is only // used for the onToken callback and the external tokenizer. var Token = function Token(p) { this.type = p.type; this.value = p.value; this.start = p.start; this.end = p.end; if (p.options.locations) { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); } if (p.options.ranges) { this.range = [p.start, p.end]; } }; // ## Tokenizer var pp$8 = Parser.prototype; // Move to the next token pp$8.next = function() { if (this.options.onToken) { this.options.onToken(new Token(this)); } this.lastTokEnd = this.end; this.lastTokStart = this.start; this.lastTokEndLoc = this.endLoc; this.lastTokStartLoc = this.startLoc; this.nextToken(); }; pp$8.getToken = function() { this.next(); return new Token(this) }; // If we're in an ES6 environment, make parsers iterable if (typeof Symbol !== "undefined") { pp$8[Symbol.iterator] = function() { var this$1 = this; return { next: function () { var token = this$1.getToken(); return { done: token.type === types.eof, value: token } } } }; } // Toggle strict mode. Re-reads the next number or string to please // pedantic tests (`"use strict"; 010;` should fail). pp$8.curContext = function() { return this.context[this.context.length - 1] }; // Read a single token, updating the parser object's token-related // properties. pp$8.nextToken = function() { var curContext = this.curContext(); if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } this.start = this.pos; if (this.options.locations) { this.startLoc = this.curPosition(); } if (this.pos >= this.input.length) { return this.finishToken(types.eof) } if (curContext.override) { return curContext.override(this) } else { this.readToken(this.fullCharCodeAtPos()); } }; pp$8.readToken = function(code) { // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) { return this.readWord() } return this.getTokenFromCode(code) }; pp$8.fullCharCodeAtPos = function() { var code = this.input.charCodeAt(this.pos); if (code <= 0xd7ff || code >= 0xe000) { return code } var next = this.input.charCodeAt(this.pos + 1); return (code << 10) + next - 0x35fdc00 }; pp$8.skipBlockComment = function() { var this$1 = this; var startLoc = this.options.onComment && this.curPosition(); var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } this.pos = end + 2; if (this.options.locations) { lineBreakG.lastIndex = start; var match; while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { ++this$1.curLine; this$1.lineStart = match.index + match[0].length; } } if (this.options.onComment) { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, startLoc, this.curPosition()); } }; pp$8.skipLineComment = function(startSkip) { var this$1 = this; var start = this.pos; var startLoc = this.options.onComment && this.curPosition(); var ch = this.input.charCodeAt(this.pos += startSkip); while (this.pos < this.input.length && !isNewLine(ch)) { ch = this$1.input.charCodeAt(++this$1.pos); } if (this.options.onComment) { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, startLoc, this.curPosition()); } }; // Called at the start of the parse and after every token. Skips // whitespace and comments, and. pp$8.skipSpace = function() { var this$1 = this; loop: while (this.pos < this.input.length) { var ch = this$1.input.charCodeAt(this$1.pos); switch (ch) { case 32: case 160: // ' ' ++this$1.pos; break case 13: if (this$1.input.charCodeAt(this$1.pos + 1) === 10) { ++this$1.pos; } case 10: case 8232: case 8233: ++this$1.pos; if (this$1.options.locations) { ++this$1.curLine; this$1.lineStart = this$1.pos; } break case 47: // '/' switch (this$1.input.charCodeAt(this$1.pos + 1)) { case 42: // '*' this$1.skipBlockComment(); break case 47: this$1.skipLineComment(2); break default: break loop } break default: if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { ++this$1.pos; } else { break loop } } } }; // Called at the end of every token. Sets `end`, `val`, and // maintains `context` and `exprAllowed`, and skips the space after // the token, so that the next one's `start` will point at the // right position. pp$8.finishToken = function(type, val) { this.end = this.pos; if (this.options.locations) { this.endLoc = this.curPosition(); } var prevType = this.type; this.type = type; this.value = val; this.updateContext(prevType); }; // ### Token reading // This is the function that is called to fetch the next token. It // is somewhat obscure, because it works in character codes rather // than characters, and because operator parsing has been inlined // into it. // // All in the name of speed. // pp$8.readToken_dot = function() { var next = this.input.charCodeAt(this.pos + 1); if (next >= 48 && next <= 57) { return this.readNumber(true) } var next2 = this.input.charCodeAt(this.pos + 2); if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' this.pos += 3; return this.finishToken(types.ellipsis) } else { ++this.pos; return this.finishToken(types.dot) } }; pp$8.readToken_slash = function() { // '/' var next = this.input.charCodeAt(this.pos + 1); if (this.exprAllowed) { ++this.pos; return this.readRegexp() } if (next === 61) { return this.finishOp(types.assign, 2) } return this.finishOp(types.slash, 1) }; pp$8.readToken_mult_modulo_exp = function(code) { // '%*' var next = this.input.charCodeAt(this.pos + 1); var size = 1; var tokentype = code === 42 ? types.star : types.modulo; // exponentiation operator ** and **= if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { ++size; tokentype = types.starstar; next = this.input.charCodeAt(this.pos + 2); } if (next === 61) { return this.finishOp(types.assign, size + 1) } return this.finishOp(tokentype, size) }; pp$8.readToken_pipe_amp = function(code) { // '|&' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) } if (next === 61) { return this.finishOp(types.assign, 2) } return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) }; pp$8.readToken_caret = function() { // '^' var next = this.input.charCodeAt(this.pos + 1); if (next === 61) { return this.finishOp(types.assign, 2) } return this.finishOp(types.bitwiseXOR, 1) }; pp$8.readToken_plus_min = function(code) { // '+-' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { // A `-->` line comment this.skipLineComment(3); this.skipSpace(); return this.nextToken() } return this.finishOp(types.incDec, 2) } if (next === 61) { return this.finishOp(types.assign, 2) } return this.finishOp(types.plusMin, 1) }; pp$8.readToken_lt_gt = function(code) { // '<>' var next = this.input.charCodeAt(this.pos + 1); var size = 1; if (next === code) { size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } return this.finishOp(types.bitShift, size) } if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { // `<!--`, an XML-style comment that should be interpreted as a line comment this.skipLineComment(4); this.skipSpace(); return this.nextToken() } if (next === 61) { size = 2; } return this.finishOp(types.relational, size) }; pp$8.readToken_eq_excl = function(code) { // '=!' var next = this.input.charCodeAt(this.pos + 1); if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) } if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>' this.pos += 2; return this.finishToken(types.arrow) } return this.finishOp(code === 61 ? types.eq : types.prefix, 1) }; pp$8.getTokenFromCode = function(code) { switch (code) { // The interpretation of a dot depends on whether it is followed // by a digit or another two dots. case 46: // '.' return this.readToken_dot() // Punctuation tokens. case 40: ++this.pos; return this.finishToken(types.parenL) case 41: ++this.pos; return this.finishToken(types.parenR) case 59: ++this.pos; return this.finishToken(types.semi) case 44: ++this.pos; return this.finishToken(types.comma) case 91: ++this.pos; return this.finishToken(types.bracketL) case 93: ++this.pos; return this.finishToken(types.bracketR) case 123: ++this.pos; return this.finishToken(types.braceL) case 125: ++this.pos; return this.finishToken(types.braceR) case 58: ++this.pos; return this.finishToken(types.colon) case 63: ++this.pos; return this.finishToken(types.question) case 96: // '`' if (this.options.ecmaVersion < 6) { break } ++this.pos; return this.finishToken(types.backQuote) case 48: // '0' var next = this.input.charCodeAt(this.pos + 1); if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number if (this.options.ecmaVersion >= 6) { if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number } // Anything else beginning with a digit is an integer, octal // number, or float. case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9 return this.readNumber(false) // Quotes produce strings. case 34: case 39: // '"', "'" return this.readString(code) // Operators are parsed inline in tiny state machines. '=' (61) is // often referred to. `finishOp` simply skips the amount of // characters it is given as second argument, and returns a token // of the type given by its first argument. case 47: // '/' return this.readToken_slash() case 37: case 42: // '%*' return this.readToken_mult_modulo_exp(code) case 124: case 38: // '|&' return this.readToken_pipe_amp(code) case 94: // '^' return this.readToken_caret() case 43: case 45: // '+-' return this.readToken_plus_min(code) case 60: case 62: // '<>' return this.readToken_lt_gt(code) case 61: case 33: // '=!' return this.readToken_eq_excl(code) case 126: // '~' return this.finishOp(types.prefix, 1) } this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); }; pp$8.finishOp = function(type, size) { var str = this.input.slice(this.pos, this.pos + size); this.pos += size; return this.finishToken(type, str) }; pp$8.readRegexp = function() { var this$1 = this; var escaped, inClass, start = this.pos; for (;;) { if (this$1.pos >= this$1.input.length) { this$1.raise(start, "Unterminated regular expression"); } var ch = this$1.input.charAt(this$1.pos); if (lineBreak.test(ch)) { this$1.raise(start, "Unterminated regular expression"); } if (!escaped) { if (ch === "[") { inClass = true; } else if (ch === "]" && inClass) { inClass = false; } else if (ch === "/" && !inClass) { break } escaped = ch === "\\"; } else { escaped = false; } ++this$1.pos; } var pattern = this.input.slice(start, this.pos); ++this.pos; var flagsStart = this.pos; var flags = this.readWord1(); if (this.containsEsc) { this.unexpected(flagsStart); } // Validate pattern var state = this.regexpState || (this.regexpState = new RegExpValidationState(this)); state.reset(start, pattern, flags); this.validateRegExpFlags(state); this.validateRegExpPattern(state); // Create Literal#value property value. var value = null; try { value = new RegExp(pattern, flags); } catch (e) { // ESTree requires null if it failed to instantiate RegExp object. // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral } return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value}) }; // Read an integer in the given radix. Return null if zero digits // were read, the integer value otherwise. When `len` is given, this // will return `null` unless the integer has exactly `len` digits. pp$8.readInt = function(radix, len) { var this$1 = this; var start = this.pos, total = 0; for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) { var code = this$1.input.charCodeAt(this$1.pos), val = (void 0); if (code >= 97) { val = code - 97 + 10; } // a else if (code >= 65) { val = code - 65 + 10; } // A else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9 else { val = Infinity; } if (val >= radix) { break } ++this$1.pos; total = total * radix + val; } if (this.pos === start || len != null && this.pos - start !== len) { return null } return total }; pp$8.readRadixNumber = function(radix) { this.pos += 2; // 0x var val = this.readInt(radix); if (val == null) { this.raise(this.start + 2, "Expected number in radix " + radix); } if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } return this.finishToken(types.num, val) }; // Read an integer, octal integer, or floating-point number. pp$8.readNumber = function(startsWithDot) { var start = this.pos; if (!startsWithDot && this.readInt(10) === null) { this.raise(start, "Invalid number"); } var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; if (octal && this.strict) { this.raise(start, "Invalid number"); } if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; } var next = this.input.charCodeAt(this.pos); if (next === 46 && !octal) { // '.' ++this.pos; this.readInt(10); next = this.input.charCodeAt(this.pos); } if ((next === 69 || next === 101) && !octal) { // 'eE' next = this.input.charCodeAt(++this.pos); if (next === 43 || next === 45) { ++this.pos; } // '+-' if (this.readInt(10) === null) { this.raise(start, "Invalid number"); } } if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } var str = this.input.slice(start, this.pos); var val = octal ? parseInt(str, 8) : parseFloat(str); return this.finishToken(types.num, val) }; // Read a string value, interpreting backslash-escapes. pp$8.readCodePoint = function() { var ch = this.input.charCodeAt(this.pos), code; if (ch === 123) { // '{' if (this.options.ecmaVersion < 6) { this.unexpected(); } var codePos = ++this.pos; code = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos); ++this.pos; if (code > 0x10FFFF) { this.invalidStringToken(codePos, "Code point out of bounds"); } } else { code = this.readHexChar(4); } return code }; function codePointToString(code) { // UTF-16 Decoding if (code <= 0xFFFF) { return String.fromCharCode(code) } code -= 0x10000; return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) } pp$8.readString = function(quote) { var this$1 = this; var out = "", chunkStart = ++this.pos; for (;;) { if (this$1.pos >= this$1.input.length) { this$1.raise(this$1.start, "Unterminated string constant"); } var ch = this$1.input.charCodeAt(this$1.pos); if (ch === quote) { break } if (ch === 92) { // '\' out += this$1.input.slice(chunkStart, this$1.pos); out += this$1.readEscapedChar(false); chunkStart = this$1.pos; } else { if (isNewLine(ch, this$1.options.ecmaVersion >= 10)) { this$1.raise(this$1.start, "Unterminated string constant"); } ++this$1.pos; } } out += this.input.slice(chunkStart, this.pos++); return this.finishToken(types.string, out) }; // Reads template string tokens. var INVALID_TEMPLATE_ESCAPE_ERROR = {}; pp$8.tryReadTemplateToken = function() { this.inTemplateElement = true; try { this.readTmplToken(); } catch (err) { if (err === INVALID_TEMPLATE_ESCAPE_ERROR) { this.readInvalidTemplateToken(); } else { throw err } } this.inTemplateElement = false; }; pp$8.invalidStringToken = function(position, message) { if (this.inTemplateElement && this.options.ecmaVersion >= 9) { throw INVALID_TEMPLATE_ESCAPE_ERROR } else { this.raise(position, message); } }; pp$8.readTmplToken = function() { var this$1 = this; var out = "", chunkStart = this.pos; for (;;) { if (this$1.pos >= this$1.input.length) { this$1.raise(this$1.start, "Unterminated template"); } var ch = this$1.input.charCodeAt(this$1.pos); if (ch === 96 || ch === 36 && this$1.input.charCodeAt(this$1.pos + 1) === 123) { // '`', '${' if (this$1.pos === this$1.start && (this$1.type === types.template || this$1.type === types.invalidTemplate)) { if (ch === 36) { this$1.pos += 2; return this$1.finishToken(types.dollarBraceL) } else { ++this$1.pos; return this$1.finishToken(types.backQuote) } } out += this$1.input.slice(chunkStart, this$1.pos); return this$1.finishToken(types.template, out) } if (ch === 92) { // '\' out += this$1.input.slice(chunkStart, this$1.pos); out += this$1.readEscapedChar(true); chunkStart = this$1.pos; } else if (isNewLine(ch)) { out += this$1.input.slice(chunkStart, this$1.pos); ++this$1.pos; switch (ch) { case 13: if (this$1.input.charCodeAt(this$1.pos) === 10) { ++this$1.pos; } case 10: out += "\n"; break default: out += String.fromCharCode(ch); break } if (this$1.options.locations) { ++this$1.curLine; this$1.lineStart = this$1.pos; } chunkStart = this$1.pos; } else { ++this$1.pos; } } }; // Reads a template token to search for the end, without validating any escape sequences pp$8.readInvalidTemplateToken = function() { var this$1 = this; for (; this.pos < this.input.length; this.pos++) { switch (this$1.input[this$1.pos]) { case "\\": ++this$1.pos; break case "$": if (this$1.input[this$1.pos + 1] !== "{") { break } // falls through case "`": return this$1.finishToken(types.invalidTemplate, this$1.input.slice(this$1.start, this$1.pos)) // no default } } this.raise(this.start, "Unterminated template"); }; // Used to read escaped characters pp$8.readEscapedChar = function(inTemplate) { var ch = this.input.charCodeAt(++this.pos); ++this.pos; switch (ch) { case 110: return "\n" // 'n' -> '\n' case 114: return "\r" // 'r' -> '\r' case 120: return String.fromCharCode(this.readHexChar(2)) // 'x' case 117: return codePointToString(this.readCodePoint()) // 'u' case 116: return "\t" // 't' -> '\t' case 98: return "\b" // 'b' -> '\b' case 118: return "\u000b" // 'v' -> '\u000b' case 102: return "\f" // 'f' -> '\f' case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\r\n' case 10: // ' \n' if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; } return "" default: if (ch >= 48 && ch <= 55) { var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]; var octal = parseInt(octalStr, 8); if (octal > 255) { octalStr = octalStr.slice(0, -1); octal = parseInt(octalStr, 8); } this.pos += octalStr.length - 1; ch = this.input.charCodeAt(this.pos); if ((octalStr !== "0" || ch === 56 || ch === 57) && (this.strict || inTemplate)) { this.invalidStringToken( this.pos - 1 - octalStr.length, inTemplate ? "Octal literal in template string" : "Octal literal in strict mode" ); } return String.fromCharCode(octal) } return String.fromCharCode(ch) } }; // Used to read character escape sequences ('\x', '\u', '\U'). pp$8.readHexChar = function(len) { var codePos = this.pos; var n = this.readInt(16, len); if (n === null) { this.invalidStringToken(codePos, "Bad character escape sequence"); } return n }; // Read an identifier, and return it as a string. Sets `this.containsEsc` // to whether the word contained a '\u' escape. // // Incrementally adds only escaped chars, adding other chunks as-is // as a micro-optimization. pp$8.readWord1 = function() { var this$1 = this; this.containsEsc = false; var word = "", first = true, chunkStart = this.pos; var astral = this.options.ecmaVersion >= 6; while (this.pos < this.input.length) { var ch = this$1.fullCharCodeAtPos(); if (isIdentifierChar(ch, astral)) { this$1.pos += ch <= 0xffff ? 1 : 2; } else if (ch === 92) { // "\" this$1.containsEsc = true; word += this$1.input.slice(chunkStart, this$1.pos); var escStart = this$1.pos; if (this$1.input.charCodeAt(++this$1.pos) !== 117) // "u" { this$1.invalidStringToken(this$1.pos, "Expecting Unicode escape sequence \\uXXXX"); } ++this$1.pos; var esc = this$1.readCodePoint(); if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral)) { this$1.invalidStringToken(escStart, "Invalid Unicode escape"); } word += codePointToString(esc); chunkStart = this$1.pos; } else { break } first = false; } return word + this.input.slice(chunkStart, this.pos) }; // Read an identifier or keyword token. Will check for reserved // words when necessary. pp$8.readWord = function() { var word = this.readWord1(); var type = types.name; if (this.keywords.test(word)) { if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword " + word); } type = keywords$1[word]; } return this.finishToken(type, word) }; // Acorn is a tiny, fast JavaScript parser written in JavaScript. // // Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and // various contributors and released under an MIT license. // // Git repositories for Acorn are available at // // http://marijnhaverbeke.nl/git/acorn // https://github.com/acornjs/acorn.git // // Please use the [github bug tracker][ghbt] to report issues. // // [ghbt]: https://github.com/acornjs/acorn/issues // // This file defines the main parser interface. The library also comes // with a [error-tolerant parser][dammit] and an // [abstract syntax tree walker][walk], defined in other files. // // [dammit]: acorn_loose.js // [walk]: util/walk.js var version = "5.7.2"; // The main exported interface (under `self.acorn` when in the // browser) is a `parse` function that takes a code string and // returns an abstract syntax tree as specified by [Mozilla parser // API][api]. // // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API function parse(input, options) { return new Parser(options, input).parse() } // This function tries to parse a single expression at a given // offset in a string. Useful for parsing mixed-language formats // that embed JavaScript expressions. function parseExpressionAt(input, pos, options) { var p = new Parser(options, input, pos); p.nextToken(); return p.parseExpression() } // Acorn is organized as a tokenizer and a recursive-descent parser. // The `tokenizer` export provides an interface to the tokenizer. function tokenizer(input, options) { return new Parser(options, input) } // This is a terrible kludge to support the existing, pre-ES6 // interface where the loose parser module retroactively adds exports // to this module. // eslint-disable-line camelcase function addLooseExports(parse, Parser$$1, plugins$$1) { exports.parse_dammit = parse; // eslint-disable-line camelcase exports.LooseParser = Parser$$1; exports.pluginsLoose = plugins$$1; } exports.version = version; exports.parse = parse; exports.parseExpressionAt = parseExpressionAt; exports.tokenizer = tokenizer; exports.addLooseExports = addLooseExports; exports.Parser = Parser; exports.plugins = plugins; exports.defaultOptions = defaultOptions; exports.Position = Position; exports.SourceLocation = SourceLocation; exports.getLineInfo = getLineInfo; exports.Node = Node; exports.TokenType = TokenType; exports.tokTypes = types; exports.keywordTypes = keywords$1; exports.TokContext = TokContext; exports.tokContexts = types$1; exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierStart = isIdentifierStart; exports.Token = Token; exports.isNewLine = isNewLine; exports.lineBreak = lineBreak; exports.lineBreakG = lineBreakG; exports.nonASCIIwhitespace = nonASCIIwhitespace; Object.defineProperty(exports, '__esModule', { value: true }); }))); internal/deps/acorn/dist/walk(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.acorn = global.acorn || {}, global.acorn.walk = {}))); }(this, (function (exports) { 'use strict'; // AST walker module for Mozilla Parser API compatible trees // A simple walk is one where you simply specify callbacks to be // called on specific nodes. The last two arguments are optional. A // simple use would be // // walk.simple(myTree, { // Expression: function(node) { ... } // }); // // to do something with all expressions. All Parser API node types // can be used to identify node types, as well as Expression, // Statement, and ScopeBody, which denote categories of nodes. // // The base argument can be used to pass a custom (recursive) // walker, and state can be used to give this walked an initial // state. function simple(node, visitors, baseVisitor, state, override) { if (!baseVisitor) { baseVisitor = base ; }(function c(node, st, override) { var type = override || node.type, found = visitors[type]; baseVisitor[type](node, st, c); if (found) { found(node, st); } })(node, state, override); } // An ancestor walk keeps an array of ancestor nodes (including the // current node) and passes them to the callback as third parameter // (and also as state parameter when no other state is present). function ancestor(node, visitors, baseVisitor, state) { var ancestors = []; if (!baseVisitor) { baseVisitor = base ; }(function c(node, st, override) { var type = override || node.type, found = visitors[type]; var isNew = node !== ancestors[ancestors.length - 1]; if (isNew) { ancestors.push(node); } baseVisitor[type](node, st, c); if (found) { found(node, st || ancestors, ancestors); } if (isNew) { ancestors.pop(); } })(node, state); } // A recursive walk is one where your functions override the default // walkers. They can modify and replace the state parameter that's // threaded through the walk, and can opt how and whether to walk // their child nodes (by calling their third argument on these // nodes). function recursive(node, state, funcs, baseVisitor, override) { var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor;(function c(node, st, override) { visitor[override || node.type](node, st, c); })(node, state, override); } function makeTest(test) { if (typeof test === "string") { return function (type) { return type === test; } } else if (!test) { return function () { return true; } } else { return test } } var Found = function Found(node, state) { this.node = node; this.state = state; }; // A full walk triggers the callback on each node function full(node, callback, baseVisitor, state, override) { if (!baseVisitor) { baseVisitor = base ; }(function c(node, st, override) { var type = override || node.type; baseVisitor[type](node, st, c); if (!override) { callback(node, st, type); } })(node, state, override); } // An fullAncestor walk is like an ancestor walk, but triggers // the callback on each node function fullAncestor(node, callback, baseVisitor, state) { if (!baseVisitor) { baseVisitor = base; } var ancestors = [];(function c(node, st, override) { var type = override || node.type; var isNew = node !== ancestors[ancestors.length - 1]; if (isNew) { ancestors.push(node); } baseVisitor[type](node, st, c); if (!override) { callback(node, st || ancestors, ancestors, type); } if (isNew) { ancestors.pop(); } })(node, state); } // Find a node with a given start, end, and type (all are optional, // null can be used as wildcard). Returns a {node, state} object, or // undefined when it doesn't find a matching node. function findNodeAt(node, start, end, test, baseVisitor, state) { if (!baseVisitor) { baseVisitor = base; } test = makeTest(test); try { (function c(node, st, override) { var type = override || node.type; if ((start == null || node.start <= start) && (end == null || node.end >= end)) { baseVisitor[type](node, st, c); } if ((start == null || node.start === start) && (end == null || node.end === end) && test(type, node)) { throw new Found(node, st) } })(node, state); } catch (e) { if (e instanceof Found) { return e } throw e } } // Find the innermost node of a given type that contains the given // position. Interface similar to findNodeAt. function findNodeAround(node, pos, test, baseVisitor, state) { test = makeTest(test); if (!baseVisitor) { baseVisitor = base; } try { (function c(node, st, override) { var type = override || node.type; if (node.start > pos || node.end < pos) { return } baseVisitor[type](node, st, c); if (test(type, node)) { throw new Found(node, st) } })(node, state); } catch (e) { if (e instanceof Found) { return e } throw e } } // Find the outermost matching node after a given position. function findNodeAfter(node, pos, test, baseVisitor, state) { test = makeTest(test); if (!baseVisitor) { baseVisitor = base; } try { (function c(node, st, override) { if (node.end < pos) { return } var type = override || node.type; if (node.start >= pos && test(type, node)) { throw new Found(node, st) } baseVisitor[type](node, st, c); })(node, state); } catch (e) { if (e instanceof Found) { return e } throw e } } // Find the outermost matching node before a given position. function findNodeBefore(node, pos, test, baseVisitor, state) { test = makeTest(test); if (!baseVisitor) { baseVisitor = base; } var max;(function c(node, st, override) { if (node.start > pos) { return } var type = override || node.type; if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node)) { max = new Found(node, st); } baseVisitor[type](node, st, c); })(node, state); return max } // Fallback to an Object.create polyfill for older environments. var create = Object.create || function(proto) { function Ctor() {} Ctor.prototype = proto; return new Ctor }; // Used to create a custom walker. Will fill in all missing node // type properties with the defaults. function make(funcs, baseVisitor) { var visitor = create(baseVisitor || base); for (var type in funcs) { visitor[type] = funcs[type]; } return visitor } function skipThrough(node, st, c) { c(node, st); } function ignore(_node, _st, _c) {} // Node walkers. var base = {}; base.Program = base.BlockStatement = function (node, st, c) { for (var i = 0, list = node.body; i < list.length; i += 1) { var stmt = list[i]; c(stmt, st, "Statement"); } }; base.Statement = skipThrough; base.EmptyStatement = ignore; base.ExpressionStatement = base.ParenthesizedExpression = function (node, st, c) { return c(node.expression, st, "Expression"); }; base.IfStatement = function (node, st, c) { c(node.test, st, "Expression"); c(node.consequent, st, "Statement"); if (node.alternate) { c(node.alternate, st, "Statement"); } }; base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); }; base.BreakStatement = base.ContinueStatement = ignore; base.WithStatement = function (node, st, c) { c(node.object, st, "Expression"); c(node.body, st, "Statement"); }; base.SwitchStatement = function (node, st, c) { c(node.discriminant, st, "Expression"); for (var i = 0, list = node.cases; i < list.length; i += 1) { var cs = list[i]; if (cs.test) { c(cs.test, st, "Expression"); } for (var i$1 = 0, list$1 = cs.consequent; i$1 < list$1.length; i$1 += 1) { var cons = list$1[i$1]; c(cons, st, "Statement"); } } }; base.SwitchCase = function (node, st, c) { if (node.test) { c(node.test, st, "Expression"); } for (var i = 0, list = node.consequent; i < list.length; i += 1) { var cons = list[i]; c(cons, st, "Statement"); } }; base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) { if (node.argument) { c(node.argument, st, "Expression"); } }; base.ThrowStatement = base.SpreadElement = function (node, st, c) { return c(node.argument, st, "Expression"); }; base.TryStatement = function (node, st, c) { c(node.block, st, "Statement"); if (node.handler) { c(node.handler, st); } if (node.finalizer) { c(node.finalizer, st, "Statement"); } }; base.CatchClause = function (node, st, c) { if (node.param) { c(node.param, st, "Pattern"); } c(node.body, st, "ScopeBody"); }; base.WhileStatement = base.DoWhileStatement = function (node, st, c) { c(node.test, st, "Expression"); c(node.body, st, "Statement"); }; base.ForStatement = function (node, st, c) { if (node.init) { c(node.init, st, "ForInit"); } if (node.test) { c(node.test, st, "Expression"); } if (node.update) { c(node.update, st, "Expression"); } c(node.body, st, "Statement"); }; base.ForInStatement = base.ForOfStatement = function (node, st, c) { c(node.left, st, "ForInit"); c(node.right, st, "Expression"); c(node.body, st, "Statement"); }; base.ForInit = function (node, st, c) { if (node.type === "VariableDeclaration") { c(node, st); } else { c(node, st, "Expression"); } }; base.DebuggerStatement = ignore; base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); }; base.VariableDeclaration = function (node, st, c) { for (var i = 0, list = node.declarations; i < list.length; i += 1) { var decl = list[i]; c(decl, st); } }; base.VariableDeclarator = function (node, st, c) { c(node.id, st, "Pattern"); if (node.init) { c(node.init, st, "Expression"); } }; base.Function = function (node, st, c) { if (node.id) { c(node.id, st, "Pattern"); } for (var i = 0, list = node.params; i < list.length; i += 1) { var param = list[i]; c(param, st, "Pattern"); } c(node.body, st, node.expression ? "ScopeExpression" : "ScopeBody"); }; // FIXME drop these node types in next major version // (They are awkward, and in ES6 every block can be a scope.) base.ScopeBody = function (node, st, c) { return c(node, st, "Statement"); }; base.ScopeExpression = function (node, st, c) { return c(node, st, "Expression"); }; base.Pattern = function (node, st, c) { if (node.type === "Identifier") { c(node, st, "VariablePattern"); } else if (node.type === "MemberExpression") { c(node, st, "MemberPattern"); } else { c(node, st); } }; base.VariablePattern = ignore; base.MemberPattern = skipThrough; base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); }; base.ArrayPattern = function (node, st, c) { for (var i = 0, list = node.elements; i < list.length; i += 1) { var elt = list[i]; if (elt) { c(elt, st, "Pattern"); } } }; base.ObjectPattern = function (node, st, c) { for (var i = 0, list = node.properties; i < list.length; i += 1) { var prop = list[i]; if (prop.type === "Property") { if (prop.computed) { c(prop.key, st, "Expression"); } c(prop.value, st, "Pattern"); } else if (prop.type === "RestElement") { c(prop.argument, st, "Pattern"); } } }; base.Expression = skipThrough; base.ThisExpression = base.Super = base.MetaProperty = ignore; base.ArrayExpression = function (node, st, c) { for (var i = 0, list = node.elements; i < list.length; i += 1) { var elt = list[i]; if (elt) { c(elt, st, "Expression"); } } }; base.ObjectExpression = function (node, st, c) { for (var i = 0, list = node.properties; i < list.length; i += 1) { var prop = list[i]; c(prop, st); } }; base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration; base.SequenceExpression = base.TemplateLiteral = function (node, st, c) { for (var i = 0, list = node.expressions; i < list.length; i += 1) { var expr = list[i]; c(expr, st, "Expression"); } }; base.UnaryExpression = base.UpdateExpression = function (node, st, c) { c(node.argument, st, "Expression"); }; base.BinaryExpression = base.LogicalExpression = function (node, st, c) { c(node.left, st, "Expression"); c(node.right, st, "Expression"); }; base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) { c(node.left, st, "Pattern"); c(node.right, st, "Expression"); }; base.ConditionalExpression = function (node, st, c) { c(node.test, st, "Expression"); c(node.consequent, st, "Expression"); c(node.alternate, st, "Expression"); }; base.NewExpression = base.CallExpression = function (node, st, c) { c(node.callee, st, "Expression"); if (node.arguments) { for (var i = 0, list = node.arguments; i < list.length; i += 1) { var arg = list[i]; c(arg, st, "Expression"); } } }; base.MemberExpression = function (node, st, c) { c(node.object, st, "Expression"); if (node.computed) { c(node.property, st, "Expression"); } }; base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) { if (node.declaration) { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); } if (node.source) { c(node.source, st, "Expression"); } }; base.ExportAllDeclaration = function (node, st, c) { c(node.source, st, "Expression"); }; base.ImportDeclaration = function (node, st, c) { for (var i = 0, list = node.specifiers; i < list.length; i += 1) { var spec = list[i]; c(spec, st); } c(node.source, st, "Expression"); }; base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore; base.TaggedTemplateExpression = function (node, st, c) { c(node.tag, st, "Expression"); c(node.quasi, st, "Expression"); }; base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); }; base.Class = function (node, st, c) { if (node.id) { c(node.id, st, "Pattern"); } if (node.superClass) { c(node.superClass, st, "Expression"); } c(node.body, st); }; base.ClassBody = function (node, st, c) { for (var i = 0, list = node.body; i < list.length; i += 1) { var elt = list[i]; c(elt, st); } }; base.MethodDefinition = base.Property = function (node, st, c) { if (node.computed) { c(node.key, st, "Expression"); } c(node.value, st, "Expression"); }; exports.simple = simple; exports.ancestor = ancestor; exports.recursive = recursive; exports.full = full; exports.fullAncestor = fullAncestor; exports.findNodeAt = findNodeAt; exports.findNodeAround = findNodeAround; exports.findNodeAfter = findNodeAfter; exports.findNodeBefore = findNodeBefore; exports.make = make; exports.base = base; Object.defineProperty(exports, '__esModule', { value: true }); }))); config{ "target_defaults": { "cflags": [], "default_configuration": "Release", "defines": [], "include_dirs": [], "libraries": []}, "variables": { "OS": "android", "arm_float_abi": "default", "arm_fpu": "vfpv3", "arm_thumb": 0, "arm_version": "7", "asan": 0, "build_v8_with_gn": "false", "coverage": "false", "debug_nghttp2": "false", "enable_lto": "false", "enable_pgo_generate": "false", "enable_pgo_use": "false", "force_dynamic_crt": 0, "host_arch": "x64", "icu_small": "false", "llvm_version": "8.0", "node_byteorder": "little", "node_debug_lib": "false", "node_enable_d8": "false", "node_enable_v8_vtunejit": "false", "node_install_npm": "true", "node_module_version": 64, "node_no_browser_globals": "false", "node_prefix": "/usr/local", "node_release_urlbase": "", "node_shared": "false", "node_shared_cares": "false", "node_shared_http_parser": "false", "node_shared_libuv": "false", "node_shared_nghttp2": "false", "node_shared_openssl": "false", "node_shared_zlib": "false", "node_tag": "", "node_target_type": "executable", "node_use_bundled_v8": "true", "node_use_dtrace": "false", "node_use_etw": "false", "node_use_large_pages": "false", "node_use_openssl": "true", "node_use_pch": "false", "node_use_perfctr": "false", "node_use_v8_platform": "true", "node_with_ltcg": "false", "node_without_node_options": "false", "openssl_fips": "", "openssl_no_asm": 1, "shlib_suffix": "so.64", "target_arch": "arm", "v8_enable_gdbjit": 0, "v8_enable_i18n_support": 0, "v8_enable_inspector": 0, "v8_no_strict_aliasing": 1, "v8_optimized_debug": 0, "v8_promise_internal_field_count": 1, "v8_random_seed": 0, "v8_trace_maps": 0, "v8_typed_array_max_size_in_heap": 0, "v8_use_snapshot": "false", "want_separate_host_toolset": 0}} 0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfa deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler      `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @ inflate 1.2.11 Copyright 1995-2017 Mark Adler  #+3;CScsM !1Aa  0@`@@   L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}   S S  3 3  s s    K K  + +  k k     [ [  ; ;  { {     G G  ' '  g g     W W  7 7  w w     O O  / /  o o     _ _  ? ?     @ `P0pH(hX8xD$dT4tC#c             (08@P`p  0@`  0@`%u.%u.%u.%u01234567890123456789abcdef0123456789ABCDEF@<D40<T<DXpP 0d((@Pmodel name : Processor : !#$%&'*+-.0123456789abcdefghijklmnopqrstuvwxyz^_`abcdefghijklmnopqrstuvwxyz|~  0123456789abcdef01234567890123456789abcdef0123456789ABCDEF01234567890123456789  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ???        \   !]^_`abcdefghijklmnopqrs  ?"#$%&'tu()*+v, -wxyz{ ? ???????????????????????????  #*19@012aceiost 001122aacceeiioo0 00(01 11(12 22(2a aa(a00 0000)08011 1111)18122 2222)282aa aaaa)a8ac cc(ce ee(ei ii(io oo(occ cccc)c8cee eeee)e8eii iiii)i8ioo oooo)o8osstt %-./3456789s ss(st tt(t  %%--..ss ssss)s8stt tttt)t8t   ( % %%(%- --(-. ..(.      ) 8 %% %%%%)%8%-- ----)-8-.. ....).8.//33445566778899/ //(/3 33(34 44(45 55(5// ////)/8/33 3333)38344 4444)48455 5555)5856 66(67 77(78 88(89 99(966 6666)68677 7777)78788 8888)88899 9999)989!"$%+.25:=AD=A_bdfghlmnpru&'==AA__bbddffgghh= ==(=A AA(A_ __(_b bb(b== ====)=8=AA AAAA)A8A__ ____)_8_bb bbbb)b8bd dd(df ff(fg gg(gh hh(hdd dddd)d8dff ffff)f8fgg gggg)g8ghh hhhh)h8hllmmnnpprruu:BCDl ll(lm mm(mn nn(np pp(pll llll)l8lmm mmmm)m8mnn nnnn)n8npp pppp)p8pr rr(ru uu(u::BBCCDDrr rrrr)r8ruu uuuu)u8u: ::(:B BB(BC CC(CD DD(D:: ::::):8:BB BBBB)B8BCC CCCC)C8CDD DDDD)D8D,-/03467;<>?BCEHEFGHIJKLMNOPQRSTEEFFGGHHIIJJKKLLE EE(EF FF(FG GG(GH HH(HEE EEEE)E8EFF FFFF)F8FGG GGGG)G8GHH HHHH)H8HI II(IJ JJ(JK KK(KL LL(LII IIII)I8IJJ JJJJ)J8JKK KKKK)K8KLL LLLL)L8LMMNNOOPPQQRRSSTTM MM(MN NN(NO OO(OP PP(PMM MMMM)M8MNN NNNN)N8NOO OOOO)O8OPP PPPP)P8PQ QQ(QR RR(RS SS(ST TT(TQQ QQQQ)Q8QRR RRRR)R8RSS SSSS)S8STT TTTT)T8TUVWYjkqvwxyzFGIJUUVVWWYYjjkkqqvvU UU(UV VV(VW WW(WY YY(YUU UUUU)U8UVV VVVV)V8VWW WWWW)W8WYY YYYY)Y8Yj jj(jk kk(kq qq(qv vv(vjj jjjj)j8jkk kkkk)k8kqq qqqq)q8qvv vvvv)v8vwwxxyyzz&*,;XZKNw ww(wx xx(xy yy(yz zz(zww wwww)w8wxx xxxx)x8xyy yyyy)y8yzz zzzz)z8z&&**,,;;XXZZLMOQ& &&(&* **(*, ,,(,; ;;(;&& &&&&)&8&** ****)*8*,, ,,,,),8,;; ;;;;);8;X XX(XZ ZZ(Z!"()?PRTXX XXXX)X8XZZ ZZZZ)Z8Z!!""(())??'+|SUX! !!(!" ""("( (((() ))()!! !!!!)!8!"" """")"8"(( (((()(8()) ))))))8)? ??(?''++||#>VWYZ?? ????)?8?' ''('+ ++(+'' '''')'8'++ ++++)+8+| ||(|##>>$@[]~[\|| ||||)|8|# ##(#> >>(>## ####)#8#>> >>>>)>8>$$@@[[]]~~^}]^ ($ $$($@ @@(@[ [[([ )8$$ $$$$)$8$@@ @@@@)@8@[[ [[[[)[8[] ]](]~ ~~(~^^}}<`{_]] ]]]])]8]~~ ~~~~)~8~^ ^^(^} }}(}<<``{{`n^^ ^^^^)^8^}} }}}})}8}< <<(<` ``(`{ {{({aeo<< <<<<)<8<`` ````)`8`{{ {{{{){8{bcfipw\dghjkqtx~\\lm\ \\(\ ( (\\ \\\\)\8\ )8 )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8rsuvy{z|} ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8  ( ( ( ( )8 )8 )8 )8 (   )8   (  (      ) 8  )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( )8 )8 )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8   ( )8 ( ( )8 )8 ( ( ( ( )8 )8 )8 )8     (   (    (  ( )8      ) 8       ) 8  )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( ( ( )8 )8 )8 )8 ( ( (   )8 )8 )8       (    (  (      ) 8       ) 8  )8666666666666666666666666666666666666666666666666\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Pp,%" @.  @@)/ r @  @OpenSSL 1.1.0j 20 Nov 2018 ?P00***33*-*-****P00000,00+**....0................(...........*******PPPPPPPpppPPPPPpp  00* 0*0*@)t+   @@Pp  )AAq'x(@   %-18s @ @ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB:6 ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQSڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl#s'ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZhڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K :ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM541ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM546|p&ܲ`&Fuv=7S8/A0jS'1'Z>ϛDlԻG%K3 QQ+ׯBo7ҿYK2rnt^p/F @1 Y#z~6̈EXZK+AT̏m~H^7ৗ(ՋvP=̱\V.28n<h>f?H`-[ ttm@$ڢ!h4b)Ngt ;"QJy4:C0+ m_7O5mmQE䅵vb^~LB7k \8kZ$|KI(fQ[=|cH6UӚi?$_e]#ܣbV R)pmg 5NJtl!|2^F.6;w,']oLR+X9I|j&rZ-3 Pz3U!dX qW] }ǫ 3J%a&k/يdvs>jdR+{ Wza]lw FOt1C[K !r<׈q[&'j<h4 %*Lۻގ.ʦ(|YGNk]Oâ#;Q[a)pׯv!pH'հZ꘍ܐM546|p&ܲ`&Fuv=7S8/A0jS'1'Z>ϛDlԻG%K3 QQ+ׯBo7ҿYK2rnt^p/F @1 Y#z~6̈EXZK+AT̏m~H^7ৗ(ՋvP=̱\V.28n<h>f?H`-[ ttmYto8w|2ߌؾs1;2tG%vk$f:cZh4#t+x#e-"".|W#4sdl0kKȆ/Kyh3[:+u|*b^v(߬eaŖ'WMinghuaQuS^ |*b^fv a'L \,Q]tL K 蒴dВCF.7Gnn6 ظY| K MinghuaQu :Ds6yuyy=$<,^R- (`|,[Z9[-zu 8MinghuaQu41;ѳY̛^),eXm]{j^W)2@'jM:q_KD?$rs;L8,zv06M~51k‚S3)E\\*= /yf~ܻUb· -(Y[H:w&e]HTGЏԸH;^6AA05jzjgszͬs1/>䘎k-nAPZV9.ѝ**慎"7 tn;bYAT*8U]U)l:T^8rv 6J&,o])(|1 `~zC|_cM7-X Hzj)sBО)Sg92dQ>a!@r[󸴉 V9Q~{R;5s߈=,4EkP?ƅ͞>f#Bd9?!(`kM=K^wY('3HjB~~1f9)jx;\_,}٘DIWDh'>f,r^&@P?a5ƶ"߹\k% cd 9:hSIxBwiɉrioHJetizg+*=}p_$܀AH1ihD5޳xĶ\Y*Wc."=9ZʧB=G`b%ki})wZx7X+J"8"cs73KIܶjmvHCzb1?B@;` uy`2}kl;ATuq/}7ya”, <ܨl3d+XW=?';<} ]n@TS FTh"k9{^]qR&  S;+˚ah2Wl $?XKzL/,8 ه'pQ !^&)jgh\HS`TP_Z扏9 U+"o;onl]A|'`Kk,BGc@w}-39Eؘ–OBJ|+3Wk1^˶@h7Qc%Q#֖vVVI0% dX &D#sao55b(0'yX1^9ov`֖vV]h~Z U){Կ6YOzj{&^/͸GNgL敺x$MinghuaQu[ӭ!:  kV!DA%pVKc)xAߘ3Ccn~sKNP1#:dM[ӭ֖vVZ!: 娉A_es&jFVWsL!VP1e-#fHmy@6m&]$iT3S{דNm^\]8X2.68ڣ ,OT(Fx*a-ܴ k)ʑ:XiCwVgVxzxvTC^BﯲQ Hœ' `SQ/xtJ2b~hԙF74>6lq OE\ ys$w #L3?MinghuaQuwű0zQiq{@ ȩ{Ièz[|1G_JtloaybSr%7: jJwD:̒I֖vVQ7ȡo"cZQ7>g >iwpɻ'L7~*j[Cٶ}.g~Q5 a~Δ3V)'"LlZVTr2:~s)/ck Lna&S}UZg'͛VV[nsߗt՟kA=K4K Pfd~l3, #X!;3; B_}ˬ!9u_e96sqUj5x( g6qo~Rt/i"&ח@)s '&L{*eU05v1.T05u1*]ƷeS Zy|x$!?xD?;bS&_#Vzi¬$XI(681]Bo~EFYb6N4aw"Y.uw&]E1;y9%ݐOp.%U~;͆ SghT$Բ Qo5ݰgyE9`[*|ﭳ4`_eI:q! L'ϸ|`b".U@7Fi |NB)4`x/'2Qe_lBRzXcH(k_ @U}^[K\_ϗ4@W֟y!= LKMBb! !\Ku;{GkB.gGa֬'ȩr/lzUOP1{T_]H`ЈݳIk `dub`DJwM[4%ZQV`yNTyaϫk+$jv6ŧXOTЏ8QOKO@6ds֦3_|</d7٢sH%nY?1?䬜`$HCpG0MΰѺ9IGvGMʈRrI܀O7OJ;ʕ1MՌ0zTm,IyDOrܶ {20YL>ǣPc䳑ۑA80K98޴\wc|H*X:3Hka:#%~"!)q/\jˌkJY3+gVn)JZxRM9 )Urz4V)l CWbFS/Qn#<H'[aUsh#ݜ=Qtn/NGv`֖vVT%FCR4"xu2Ȕ5RBQ}$ <8K MoiF=y2=t3#!Yf?XHʟȂMSL D֖vVX wıف|Qrg8NH@t3O8 $&nNm MĆ&qۛlhMf%8#џM۷P\MinghuaQuj6&=>%ViTG*V8oHT%+{|WM ϊ"RGu޽5Y ^H?q=  n)\@}9Ж{pK ]G dގ3( †g`)JWoS-ֺ}a6+jV,SsW+ &NT'D֖vVU/'(fS{ggRcjheT&@'kdRbg.EWxogTb 62ײ67J v[43^3)2E$@Ðgȓq/$֖vVX\@(wMwwǷfmfC q'O ($+|їbj8 (Zj(xCCbm`!:>zC}f PPe($ksSQ-Ƅ֖vVPgxmlGV ""Vw~wwq&τyYc2?7]LOCDއFP n8&TZ9aW]Y6njL|{UUUUUUUUUUUa h(>HaZb!.`4+D9*?cߕYzxUN'ѥzU玚Ê_ ذa}\#{l!.-^Ոq~!/KMinghuaQuq ]2W|T1:FgVCB>'uxWxvy9/02| Ã"Wp.| [pnVk~|RaPw?k&itNqdǩac MBI*IfG*/ߤ֖vV]&g''}B0wWg#Vtc%Sf&dyVT_P7eA͂J/.?wREr/ͷK(NiG4vҹ1p LVg3LE;^,qbV}TSn"~3UUUUUUUUUUUUUUL# ;_JN"(q-Bu+,@ M͵ qg+|4*Up:o?̄@a,l b-w# qݍiWk.aBA0^ʰ^]ޝ#THn1rE{{b!'. i1IQ 7~_-Q Dt(x6ZۗU CyڦxyNqf@9`Us@{^j_<,z>\&(ZdOt &៾n qQ~@P(2RzAj^& T;VW*VW*-\?ahDC-L+5I $֖vVX[3-ƀVggjeK uO5n FV|FgUVVFg#VVTfVW$r|I6?]R}]E]94V&t+c)#<%wgy8A6j.:$ߜkޘz"9S)TpHy9HO{N#exhW-0Z@q(k򆼡(k򆼡(kkV, Oqtu;/p % R"%nyU [Gxv/ Q*j 2 E,v X0<4E87N I-dDGjuSUz‚VFųJ9Lk"'!oj_{>ܺbزRWs,Yb:E8C|хZڨ*P#Q-rIي]ǰS.Q;zy @1[g6`'~ #Llj]9[#lĭ,* ЕloaThM͏ٴ}CYTL놂7ژ*gZbmNPszb8&]j˰L/z}ᨛb]jY7`@4@4@4@4@4@4@4@4@4#p;^ƍ5 IJfyy pxKJcx\msU7ɊWJ3 A2VPD׿غ' 9C#U k2JV"42\!7c#L"CuZGdDՁ~4>)E\\*=@3{LjІl  |D۟$ ^^J_spY`ǭb4{⢀tat]XB4O-g^Xկ?jObF1ZgGz8GAfcc!^J_spY`YP)@` ^J_spY`ǭb^J_spY`ǭb zUkmS[{Q,M}z \U󀱙;49~de#xq||a$Cw!R^J_spY`YP)@` *6ͧF0эGmbj@v91@ƚ(F(|(̣rOD~o%d~S3l /\HS7_j[_H(Iw?)*6ͧF/k[Ĭ*6ͧF0эGmb*6ͧF0эGmboxhh޴;5hT.'{y:匂<0(.?,Dja) ~,Vg":*D|*6ͧF/k[Ĭ4&Cf*0%uׇWډ~h,l)S QN*ذ*YҟC%!5f۳r8l@ ),~\4#}ƌLLn}XVrro$ƸNͬ$5Kʣv4&Cf*0%uKm޼4&Cf*0%uׇWډ~4&Cf*0%uׇWډ~K3}A{'  Ld`jD%8BNv.I`)Հt>V??M| KA j_FL4&Cf*0%uKm޼ Wۡ>f rn;#& ( HnSw}Z u,0Wu0AzU&\lJKD0&\lJKD0ٻ|)\kҮ~W,KH/'#:DS2bT~5FawE-T\T/iWۡ>f q9zaHV Wۡ>f rn;#& ( HnSwWۡ>f rn;#& ( HnStf,a0Nfs= vį/I%j+f q9zaHV(^G 6O Vm?;5yfu}RBӭ@ho?A4T1͈E9o^C~SظRĎ7 ~* 9UEȫ@$w'^CqxwjREi.^G 6O}I4lO ~xho3W$Rc:z'H>fqz0NXwBE_^G 6Ob|9ɔ:PLdhE:?kG~O &46FGԯu ¤\뎕Rb )XdO)(FF!wBA&g@P^( c#.dZ!2.Ljp;b ;xԍPh{}_|mPG@j^h5" "}8]Vc2꿩x" ${[IJ_H^[K؊'c+/Tx:ݝċ?30cp3pU>\AL&AaGӁ]ݵi@ݝċ?30cp3q}MhB͡*检(/-ƅ(`VX:Hݝċ?30cp3q}MhB͡*检(/-ƅ(`VX:H|Dnh! IRxPK>6+#e@EE%Sev6WgB>d\x¦$Xmޝu91=Qs\>w֔:d_o&5[SKՕȒ7lN041ٓ!!k߆'0nmᘶ2ݝċ?30cp3pU>\AL&AaGӁ]ݵi @8`$plHT @`൦YY  { | zQ}   dijk[\]^_`abcdefghijklmnopqrstceuvwxyz{|RSTUVWXgYZ~Y~x`_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^lmno_`abcdefghijk|}~%&h-yCB* )@Fsupqrstuv$'()*+,-/012wwxyz{43MNOP56789:;<=>?@ABCDEFGHIJKLtq     9   TURSQV/ !%,x  !"#$%&'()*+,-./0123456789:CDEFGHIJKLMNOPQRSTUVWXYZ[Z\]_`abcdefghijkl  :;lpA DE012345678X[;<=>?@ABmnopqrstuvw"#GHIJKLMNOf"#$}}" !kpm~t-Q/SR+1,2)0'U(TV*z&'(XHLJG:ON9;KIMroqnsEZ w   ZWgXY~YVSTUR! l^xr[]\^ !\qlnmos6y~ 25t&%{ +<>!,=?-kgP zw||tCBqF"#)0xu8cwYc. W   !y}89:;3=<>47HIJKLG@ABCDEF?MNOP65 cbdef}CFED ijhQNZJPOSRHIQXYWMUVTLGK$.*7/,6438-5+120[ `a\_]  g9<?>=@;:BA#""#$.eeo rh_`kZ3{lvm p D_/^]hivb%'&(axzy{fuwmy#"$[{n   iq~}|_pltvusrnkghjica`befd@:;<ABC=X.P/QWVDE !"FGH#$%I>?063ST45UJK&'(LMN)*+O71  ,-   89R2\[])@sA*4zjd`ba%jfx71pou$d}l[]\^ !lnmo~ o +<>!,=?-P|tBqFC)c W  }"#$. Xr_9n{ DEb%'&(axzy{u`hw*As   )@d   z }! pkxrZrWm\qYs625gXt&%{kg~w|"#0u8~tcY/+S-.,R !y89:;3=<>47QHIJKLVG1@ABCDEF?MNOP265'U(T* cbdef}CFED ijhQNZJPOSRHIQXYWMUVTLGK$.*7/,6438-5+120Z[ `a\_]  g9<?>=@;:BA#"ee&'(VS)k3qHLJ:OGN;KIMlvp_ /^]hi0Tvfmy#"$[nisq~}|_plwotvum{xyzsrnkghjica`befd@:;<ABC=X.P/QWVDE !"FGH#$%I>?063ST45UJK&'(LMN)*+O71  ,-   89R2^YZ\[]4URzj`ba%jwfx71pou$d*H *H *H *H *H *H *H *H *H *H UUUUUUU U U*H *H *H *H *H *H *H *H *H ++ +++<*H ++*H +*H  *H  *H  *H  *H  *H  *H  *H  *H  *H  `HB`HB`HB+*H + + *H  *H  +`HB`HB`HB`HB`HB`HB`HB `HB `HBUUUUUUUUU U#+UUeUdU*UU+ &,d,U+UU U *H}B *H}B *H8+*H8+$+$*H *H  U%++++++++7+7+7 +7 +7 `HBUUU+e*H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H *H ++*H  *H *H *H  +7*H  U)U.++0++0+0+ **H*H8*H8*H *H *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H   *H   *H   *H   *H   *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H  *H ++++++++ + + + +++++++++ + + + + +++++++++++ +++++ +++++++++ + + + + +++++++++++++++++++++++++ + + +++++++++++ + + + + + + + + + + + + + +0+0+0+0+0+0+0+0+0+0+0 +0 +0 ++ U++++++++++++:X &,d &,d UU7*H + + + UHU$U7U8*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=+7`He`He`He`He`He`He`He`He`He)`He*`He+`He,U*H8*H8*H8 & &, &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d &,d% &,d& &,d' &,d( &,d) &,d* &,d+ &,d- &,d. &,d/ &,d0 &,d1 &,d2 &,d3 &,d4 &,d5 &,d6 &,d7 &,d8U-+++++U,UAg*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g* g* g* g* g* g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g* g*!g*"g*#g*$g*%g*&g*'g*(g*)g**g*+g*,g*-g*.g*/g*0g*1g*2g*3g*4g*5g*6g*7g*8g*9g*:g*;g*g*?g*@g*Ag*Bg*Cg*Dg*Eg*Fg*Gg*Hg*Ig*Jg*Kg*Lg*Mg*Ng*Og*Pg*Qg*Rg*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g* g* g* g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*g*"g*#g*g*g*{*H  *H g+7+7U U++++U+*H  *H  *H  *H `He`He`He`He++g+g+*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=*H=*H= *H= *H= *H= *H= *H=*H=*H=*H=*H=*H=*H=+++++ ++++ +!+ +"+#+++++++++++++++$+%+&+'g+g+g+g+g+g+g+g+ g+ g+ g+ U U!U6*K=*K=*K=1 1 1 )1 1 1 ,1 1 1 +U UU*D*D*D*D*D++*H}B *H}B++0*H   *H  `He`He`He-*H=*H=*H=*H=*H=*H=*H *H *H  *H  *H  `He`He(7** *** * ******b*c************* * * * * *!*!*!*#*#*#*#*$*$***** * * * * * +7U.+UUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U/U0U1U2U3U4U5U6*H   `He`He`He`He`He`He`He.`He/`He0*K=*K=*K=U%*H *H  *H *H>+$+$+$+$+$+$+$+$+$ +$ +$ +$ +$ +$*H  +H?+ + + + +H?+++++y+y+y+y+7<+7<+7<1 1 1 1 1 1 1 1 1 .1 /1 11 2+G ******************************d*d*do*dp++++++++++++++en+eo+: +: *H  *H  *H  *)A@B)tF@C`_hq@ts@wu@"t#t')+(),T)RU)S@@ENCRYPTEDProc-Type:DEK-Info:xݵ(yJ؝~7+vSbLdDYOaEm }2@놷{ !"\kNTe`sVu;B=0<&oFiW'C>/fހRr5Mj*qZItK^AnQ$Pp9|:#z6[%U1-]㊒)glឨ,c?X≩ 843H _.G奜w h)TPD ,$!%\QM@CCPQA< `cC#( (D@D  "%xsK;;.pp@0 <3?(0226tpD4, TSG\PLXSK=$ $ psC3 2, ,'prB2 ``@ PP@#+  6LCO7XRJxpH8&/`aA!4@AAPRB|qM=  PSC7!=trF6,#/$#'0 +"lbN.LAM haI)|pL<  ?/3>d`D$,".HCK   !!hcK+dbF&5 3|rN>xrJ:DCG%$"&-!000437.426 ""8084'DAEL@L )415 <0 <2><*:LBNTQE83 ;h`H(|sO?HBJ TRFtsG7 -DBF5(# +daE%:#91\RN9&2011*laM-\SO$0 82 :XPH`bB"(! )033( xqI9hbJ*(" *088(! -,&ܳ38/`@ `QET@DDcO/lcK+hSKXbB"`3305! )( "ࣇ'Б <264CK H/쀈`L,l(4AED!3?<1 =< ((BNL62><%9 # +(bF&drJ:x#'$#/,1rB2pBB@AA@sC3pcG'd, 7- ,,*044 .)QM\8SGT. ̂9?qM=|1105 bJ*h1 "" `H(hqA1pؑaA!`>&QIXQAPܒ#+Ё CGD #,쁍 ?sK;xPL\"!cC#`## AM LȒ2 :8 ".,:bN.lRJX23AI HpH8x ;p@0pqE5tsO?|154`D$daM-lpD4t԰4* rF6t >@@@ ్=:0" *(RN\)RFTCC@ 0%@HHqI9x<!!  SO\sG7tPDT2 !%$COLBFD-PHXRBP+rN>| =000aE%d0 <<6$䳋;pL<| P@P1 98"&$220aI)h374' $$$ SCP @L L3 ;8BJ H7)DTP ,%$!M\QC@CAPQ< C#`c(( DD@  "%K;xs;.@0pp ?<3(2026D4tp, GTSL\PKXS=$$ C3ps 2 ,, 'B2prц @ ``@PP#+ 6OLC7JXRH8xp&/A!`aÄ4A@ABPRM=|q  CPS7!=F6tr/,#'$#0  +"N.lbM LAI)haL<|p  ?/3>D$d`.,"K HC ! !K+hcF&db5 3N>|rJ:xrGDC%&$"-Ӂ!000743.642" "8804'EDAL L@)541  <<0A1pqÉ E5tq;8IXQ?I HA 981G'dcӈ8 B@B# #L,l`ӄ$4401HH@O/lc =<1 -,!@@@>><2<*:NLBETQ ;83H(h`O?|sJ HBFTRG7ts -FDB5 +(#E%da:#91N\R9&2101*M-laO\S$0  :82HXPB"`b )(!303( I9xqJ*hb *("880(-,! &38/ ``@TQED@D/lcO+hcKXSK"`bB3035)(! "' <642 HCK/,l`L(4DAE!?<3=<1 (( LBN6><2%9  +(# &dbF:xrJ'$#/,#12prB@BB@AA3psC'dcG, 7- ,, *440  .)\QM8TSG. 9?=|qM1015 *hbJ1 " "(h`H1pqA!`aA>&XQIPQA#+ DCG #, ?;xsK\PL"!#`cC# # LAM:82 .,":.lbNXRJ23 HAI8xpH ;0pp@5tqE?|sO541$d`D-laM4tpD4*  6trF >@@@ =:0*(" \RN)TRF@CC 0%H@H9xqI<! !  \SO7tsGTPD2 %$!LCODBF-XPHPRB+>|rN =000%daE<<0 6$;<|pL PP@981 &$"202)haI743'$$ $ PSC   L@L;83 HBJ7/BD7q۵[V9Y?^[1$} Ut]rހܛtiGƝ̡ $o,-tJܩ\ڈvRQ>m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq"(ט/Be#D7q/;Mۉ۵8H[V9YO?m^BؾopE[N1$} Uo{t]r;ހ5%ܛ&itJi%O8GՌƝew̡ $u+Yo,-ntJAܩ\SڈvfRQ>2-m1?!'Y= % GoQcpn g))/F '&&\8!.*Zm,M߳ 8ScTs ew< jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c ?G5 q}#w($@{2 ˾L*~e)Y:o_XGJDlPp(,<0123456789.0123456789.:abcdefABCDEFGSUWYg~"#T@@@cƥc||ww{{ kֽkoޱoőT0`P0gΩg+V}+׵b׫MvvʏEʂɉ@}}YYGG AԳgԢ_Eꯜ#Srr[u·=&Lj&6lZ6?~A?̃O4h\4Q4qqثs1bS1*? ǕR#Fe#Ý^0(7 / $6=&'Ni'Ͳuu  ,Xt,4.6-nܲnZZ[RR;vM;ַaֳ}γ)R{)>/^q/SSѹh, @` yȱ[[jԾjˍF˾gپ9rK9JJLLXXυJлk*OCCMM3fU3EEPP!KKaܽ pp>|B>qĵf̪fHHa£a5j_5WWiйX:''8+"3iһi٩pَ3-<" ·IUU(Px(ߥzߌY  eڿ1BBhиhAA)-Zw-{˰TTmֻ,:ƥcc||ww{{ ֽkkޱooT`P00ΩggV}++bM櫫vvE@}}YYGG A쭭g_E꯯#Srr[u·=Lj&&lZ66~A??Oh\44Q4qqsbS11*? RFe##^0(7 / $6=&Ni''Ͳuu Xt,,4.6-ܲnnZZ[RRvM;;a}γR{))>^q//SSh,@` yȱ[[ԾjjFgپrK99JJLLXXJϻk*O媪CCMMfU33EEPPxD<<%K㨨QQ]@@?!pH88c߼wuBc!! 0mҁL &5/__5DD.9WU~~zG==Ȭdd]]2+ss``OODf""T~**; FF)kӸ(<y޼^^ v;dV22tN:: II Hl$$\\]½nCשּׁĦbb917yy2CnY77ڷmmd՜NNI੩شllVV%ʯeezzG鮮oպxxJo%%\r..8$WsǴQ#|tt>!KKaܽ pp|B>>qĵ̪ffHH£aaj_55WWiйX:''8+"3һiip3-<" IΪUUPx((zY  eڿ1BBиhhAA)Zw--{˰TTmֻ,:ccƄ||ww{{ kkֱooTőP00`gg}++Vb׵櫫MvvEʏ@ɉ}}YYGG 쭭AgԳ_꯯E#Srr[·uᮓ=j&&LZ66lA??~Õ\44hQ4qqsثS11b?* RǕe##F^Ý(07 / 6$=&i''NͲuu t,,X.4-6nnZZ[RRM;;vaַγ}{))R>q//^SShѹ,` @ȱy[[jjFˍپgK99rJJLLXXJυkл*媪OCCMMU33fEEPPD<KKܽa ppB>>|ĵqffHHaa_55jWWйiX':'8볘+3"iip٩3-"< I·UUx((PzߥY  ڿe1BBhhAA)w--Z˰{TTֻm:,ccƥ||ww{{ kkֽooޱőT00`PggΩ++V}׵bMvvʏEɉ@}}YYGG AԳg_Eꜜ#Srr[u=&&Lj66lZ??~ÃO44h\Q4qqثs11bS*? ǕR##FeÝ^0(7 / $6=&''Niuu ,,Xt4.6-nnܲZZ[RR;;vMַa}))R{>//^qSSѹh, @`y[[jjԾˍFg99rKJJLLXXυJлk*OCCMM33fUEEPP<!KKݽa܋ pp>>|Bqff̪HHaa£55j_WWiІX:''8+"3iiһ٩p3-<" ·IUU((PxߥzY e1BBhhиAAÙ)--Zw{TTm,: @6PQSeA~ä^':k;EXKU0 mvv̈%LO*ŀD5&bIZg%E]u/LFk_zmYR-!tX)iIDɎjuxyk>Xq'Of ɴ:}Jc1`3QESbwdk+XhHpElޔ{R#sKrW*Uf(µ/{ņ7(0#j\+ϊyiNeվb4ъĝS.4U2u9 `@q^Qn!>=ݖ>FMT]qoP`$C@wgB谈8[yG |B| H+2pNrZlV8ծ='9-6d !\hT[:.6$g WҖO aiKwZ *C"< Nj򹨶-ȩWLuݙ`&r\;fD4~[v)C#hc1cB@" Ƅ}$J=2m)K/0R wl+pH"dGČ?,}V3"NI8ʌ6 Ԙρ(z&ڤ?:, xP_jbF~Tؐ^9.Â]|i-o%;ȧ}nc{; x&Yn쨚Oen~ϼ!ٛ6oJ |)11#?*0f57NtʂАا3JAP/MvMCTMўjL,QeF^]5st.A ZgRے3VGmaךz 7Y<'5ah,4$8_@r %⼋I<(A q9޳ ؐVda{p2t\lHBWЧQPeA~S^':k;EXK0 Umvv̈L%O*D5&bZI%gE]u/LFk_眒zmYRڃ-!tXiI)ɎDujyx>Xkq'Oᾶ f:}Jc13Q`SbEwdk+hHpXElޔ{Rs#KrWUf*(µ/{ņ7ӥ(0#j\ϊ+yiNe;b4ĊS.4U2u 9`@q^nQ!>ݖ=>ݮMFT]qoP`$֗C@̞gwB谽[8y |GB| +2HprZlN8Vծ=9-6' d\h!T[.6$:g WґO aKwZi *"4$8,@_r% I<( A9q ؜Vd{a2p\lHtWBQPA~Seä':^;kEXK0 Uvm̈v%LO*5&DbIZ%gE]/uLFk_mzRY-tX!I)iɎDujxyXk>'qᾶO f}:cJ1Q`3SbEdwk+HpXhEޔl{Rs#KrWUf*(/ņ{7ӥ(0#j\ϊ+yiNeվ4bĊ.4SU2u 9`@q^nQ!>ݖ=>ݮMFTq]oP`$֗@Cgw谽B8[y|G B| +2HpZlNrV8=-6'9 d\h![T6$:. gWҖOa wZiK *"$8,4_@r %<(I A9q ޳؜Vd{a2plHt\BWQP~SeAä:^';kEXK U0mvv%LO*&D5bIZ%gE]u/LFk_zmYR-X!tI)iDujxyk>X'qOf }:cJ1`3QbESwdk+pXhHElR{#srKWf*U(/µ{ӥ70(#j\+ϧyNieվb4Ċ4S.U2ኤu 9@`^qQn>!=ݮ>MF摵Tq]o`P$֗齉C@gwٰB8[yȡG ||B 2H+plNrZV8=ծ6'9- dh!\T[$:.6 g WҖOa ZiKw *h8,4$_@r %(IKy xZݨ31Y'_`QJ -zɜ;M* >>>>#>)>/>3>A>W>c>e>w>>>>>>>>>>>>>>>> ? ?7?;?=?A?Y?_?e?g?y?}????????????@!@%@+@1@?@C@E@]@a@g@m@@@@@@@@@@@@@ A AAA!A3A5A;A?AYAeAkAwA{AAAAAAAAAAABBBB#B)B/BCBSBUB[BaBsB}BBBBBBBBBBBBBBCCC%C'C3C7C9COCWCiCCCCCCCCCCCCCCCCC D DD#D)D;D?DEDKDQDSDYDeDoDDDDDDDDDDDDDDEEE+E1EAEIESEUEaEwE}EEEEEEEE %)+/5;=CGIOSYaegkmq !%+379=CKQ[]agiouy{  #'-/39;AKMQWY_ceikuw )+157;=GISUY[_gmqsw}  %'-179?CEIOU]acis{  !')/5;?EMQSWY]ekow{ #)+/7=AGIMSU[aekqsy %'379=EKOQUWacmsuy !#')3?AEGQSY]_cioq{}  /Ɵ[Cv8Qn/lrSK?NvہTG= `yȱ4g|"UCР;X)z`KQ'nU_O_MKaLۻ{*z'9AYst t ^yU /)f:`ϰgi9PکH 1K#=gwu홠)sP`=1er/X^fJ2Ak: тK[C1tOFٺ wl]azW {+Rdj>svd/k&Νa%J3 یᦅ} ]Wq Xd߫!U3zP 3-ĪZr&j|I9X+RLo]ŵ좃',w;6.F^2|!ltJN5 gmp)՞R Vb#]e_$?iU6Hژc|=[Qf(IK|$Zk8\ k7BL~^bvEQmm5O7_m +0C:ͳ4yJQ"; tgN)܀b4h!145Mܷݏ괓Z'Hp!vp)a[Q;#ÐO]kNGY|(ʾ.»L*% 4hsvd/k&Νa%J3 یᦅ} ]Wq Xd߫!U3zP 3-ĪZr&j|I9X+RLo]ŵ좃',w;6.F^2|!ltJN5 gmp)՞R Vb#]e_$?iU6Hژc|=[Qf(IK|$Zk8\ k7BL~^bvEQmm5O7_m +0C:ͳ4yJQ"; tgN)܀b4h!$@mtt [-`H?f>hZ'1'Sj0A/8S7=vuF&`&p|Ҵ645Mܷݏ괓Z'Hp!vp)a[Q;#ÐO]kNGY|(ʾ.»L*% 4hsvd/k&Νa%J3 یᦅ} ]Wq Xd߫!U3zP 3-ĪZr&j|I9X+RLo]ŵ좃',w;6.F^2|!ltJN5 gmp)՞R Vb#]e_$?iU6Hژc|=[Qf(IK|$Zk8\ k7BL~^bvEQmm5O7_m +0C:ͳ4yJQ"; tgN)܀b4h!݀`qnVߔVvP0wVGXGn +8.lHC @F5hksM~ձ~]HFd]%E6jt1-D?*mx<+:[3hyK݅/Kk0lds4#W|.""ي-e#x+t#4hZc:f$kv%Gtӝ2;1sľ،2|w8otYmtt [-`H?f>hZ'1'Sj0A/8S7=vuF&`&p|Ҵ645Mܷݏ괓Z'Hp!vp)a[Q;#ÐO]kNGY|(ʾ.»L*% 4hsvd/k&Νa%J3 یᦅ} ]Wq Xd߫!U3zP 3-ĪZr&j|I9X+RLo]ŵ좃',w;6.F^2|!ltJN5 gmp)՞R Vb#]e_$?iU6Hژc|=[Qf(IK|$Zk8\ k7BL~^bvEQmm5O7_m +0C:ͳ4yJQ"; tgN)܀b4h!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                            @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @@ @ @@ @B@B@B@@@BB@BBB@B@@@@BBB@BB@BB@@              ##%%&&))**,,//1122447788;;==>>@@CCEEFFIIJJLLOOQQRRTTWWXX[[]]^^aabbddgghhkkmmnnppssuuvvyyzz||        0 0 0  0 0  0 0  0           0  0 0 0 0  0  0  0          $$  $ $ $$  $ $             $$  $ $ $$  $ $                  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0                            ((  ((  ((  ((  ((  ((  ((  ((          """"   " " " " ((((((((    """" ( ( ( ("("("("(ggen;$%`7L>B=2LLL=u>Q@vAs.| 4L){zbDyՓVegYCC Eq<%9Eгv}2MUӇ0dմXiSўsb<7nٵfW֮rz,1j=BjnQkC*lUq2Dj 2gP#8Ye)G̪O.PMK&PLUuVϤBLPbLƢr.ژ+h dne FGX2D:hB2U&sPq}XZDLvqBK.+xD+|kT53t3BT:#A5E-{ n4G`69YSTd\xh|>)U*`?> 8-VDq޺;BEHVl7Ym4 ,jG}3)>!o]SEs.a1qK 0` E;%Q}j<BңN%4cMI.TA)6OɃo!2&Ntݙ:,';1uur0^)8} w, T~>Y7D̲#/3&W$4}{U< X#<7֠e8 @rv}e^ƍ3* mA0/C7ڥ"JBGXzcԵ\*M^Q]G4^B01=]-lZO'?M5Rve\CX!H,iPo_ Llh?uE0#o!p־sfX3JǏ̢eahEnX4Y/ZrP!tWEX: qME;y4S4'"D[9#o] @N&zda>[M?t Rq=d$w[Oggo5E•&vR9ѱ.s.Xgޯ,igUA^uRue$r%h QHaE Ǔ sA֯٭P|Z; )l(3~[Ax<ֽPMkJ6gtH ^/#Y=SK&_|O]RÂ(L~c>`D*4=fH zw[նJo {"\M-Ë;Nly O`&>>}o] a(19A m,#%HgkZ5,*;?XN$qGǞ:M! A?M!fW)VlD-I`>Q<$#m6#=8:|X~B&"f_.Tu"Jd\px*FCQdk#u>`;Q E:Sfm`L< ]h+uQu+/!,}(yYEXˇɮGy)^N$tX1>L3RmugKG [`37?'4$(U fTaEzy95HR0Sm" G&F_EeONny|O F: O% U̖'.WX"B,f6)cW){4r+u([#&f}$vq |`JXXdu4Q.j EP 0XtzbA {Y;pXZ1 &lYpe.-O3I*ei2O4heNbM)#|#5 }0]o=yE$0o'2cףW#lnLJe/0+R6r(7[l 8Lb},]pG;C*7n6̶AQڟ &b%Xn`$yp/^ QC|_J,mYY$L.LMo'^HFDfM/:avΏn Nr!bhruKS:@C/opd%kƀOћ<pA t{<;Y{KE0tѠAPb%¸?"Aِ8&-xl~wkRTNvP4?`'3( KIa kk(F CRP2H^LA{HW~Y iIqxBmԏ Z9:Y4  U.g~"#o evŅߧmPVF^3sN }_ ա'_]W_}Ξx*exm,ppZ%lS ZXstzd %`Nβi|mҕ`nu 2{(c"0PF3-z,%AzEZPj`r1w>@R3 Zv7vȟkyUv&/ Kb2JB/L 5 L2 ~D\0A1?;0?N(p#ːhh(&^X7zfv$H&>>c{ 3:%Jy)_rMs\QP{YJǍF]K\ݓ14~|. @4@Nng@((*;K|\VY8 *$$0XbG[OL*E}SHz5tTBnè,E@[:h:ˆLcKPE@i#|yP}Dʔve^zHFEEvRJuBA8;]-~ rc4c`>~lިK(k^&-vѾQv{ e{7{2cL aAC VN@`CB7`!b3S6 1CH H*O*&Txh~`8u D/ &BY. cSһ-*|֢ f$pC4{6b>'ÒT\^JX(ƓC=aj_V0vx ]UDFPRaccTktpz.i  ?D'\i* (s Q`p +N2Aqy;n^po`$U{GI " \'ZbaY^OZ_~f$#sUSI/rDA;H>]yv;QÈ3IM`6;m*-Вf쎻2 JY0OL? 1qfe9 *ƒ8D[NC4ρms6:xB0E@e}#I a:jpTaZ}˹M\js٘x565 d"jWU'thdFЊ1L{%ڠ\ ~rFD<ҽٻq\>۷!͵P9CZ{]'`4TB"ŠnP;HGٯ_qCS< }U`YQ+ E1<#v1XAp~451p&7eЅ=Ev!satbvri|G^$AG-m4SYI:}$D3*ELV&d&5#aQQIksRTcdePM!n_U%oj#LrW@ zewbG95 cڜ qYi6^\Xf!Zaڛrwj5s[Xj,=q4|n6'dڷkΠ_Lϡu34u I8^e k+dvrCXY\xrs"H|WKa\Cv{xhFw6-SHk8&-Pg`RFoQ'N!DtFhO]և$mpn$.I]+ f]oblAOI(0kX aUqBnQ<h|a҅8)oo:oՍ&{. iw-JS|sԍS62ֽiH36ܴS:WI<j1v ~n%;R/Vd%pTjo(e136J]沒H96>wH=C8 .l?54kJגּ P$b=9%>+_'ܮ0 "6<$8x3R*k\ ?'ʡ)Ѣt4gE;5)0PҼq?bM;5 Խ Ȯ2q^Z^q+Yj{SBR1'aM;Y=˫\N!7xb{c.1cw#s-Hp{1"\f;*b.%#&^|+_HxοzO.TqHGIH QLX~kxy ;${< Ba$&s]`gŞ;90YM*L0Q4%t]|vSn]TL>d5m:cJ  47Y";TwH{sGܹ#L&}ar,)-Q\yb Q,˜RG:r2&e96~-u`L2^ƘxD"E AeZxD6)ڼq0XiR ]B5\k xN1 miZqJ: >yҲ~9+eo/V=F5IVJ_<toAˆ'Xl1Ghi]nIC3ZC2ҏ5j٭p]G0Bqox_-i^4D-h&L`5 C6wS **oMG5L"/'\Ev mjN/TҰk'& HHEMGo*;! OnIJE1 d}JiZU=#>}VIx{&:,\E Xp{ >]F*hȌ%98F nds%-araެ 1F4S]>M2By0?,IR L;+m6A{dߘ!;,]W_GUt ]6bakLZ6B6'Al1UR>:'%5QRͧ^-(op6K^0ʑ'v*u+26PDb&#H$(Y@Si:stjvʮHkJjio@fyC` _Y@%0Z`9.r=B7n!r^/pSv(ve5pYk~ Om1Jp3 up"%P&-Z/*L 3}2 ~S8b9vY!3[4#C1X$:XKBBeyOQ^ S^V(3fmt&[߯BV<`%z׻.8ez 3 5} f %a)<jq;\pi0TymkI9Ysp9`/ C)`4U|y2r<&k7^F^MxEUQ&1%=|N10_i@KQI j^"Z9܅c)9aLA%">_Mj~@[b5z$}Fa0ZRT.gq.ey(|- l2Xގ_uo| AD&A&2?<z#!qj`ҮԐYb"XpAn%B8 Sp-vGLSc[*`@v#qzwB$@Y>heT1KςMs7Vd:m+~g#=3QІsw:rU1FTU.5] 7-,Z1x{B2ƏeKaWv6@q9s1=@I( Zy)+adPAh{IMh`h{9fVNj xICSp0@Add7 Q |f(v砆w<&ɖx6 B"&pP 37:Idh ^;'f \TPZۮf5L4lSk$mv:8ѝG/V 0\i`P؂b+1[Iy='?hp~bPb{XҸb{fSAt\"BQG(?>Ov2?{c:2M,{;a̵%GUwȺS|W3||0:}b l#} "e"d9'F9vto6O@ ^0q2C7h_0%B7?@RJ5GC}߉] ܄&fV<+Q$?3.r0O /]i*R+'&b@<1twxt5m nSۉ2Jxznw!.()p1oyL)U$1\m'|ÕZ$CU&#|D#6ɤu1~qu˟߇Mc%3Y10-lPEg>[nۢ;!0kp;mM"c82TYJb*c_+9 c?wPi6赽EpЫ/m{S4 Za=)^*7lD jOCB{>"X*_qZ}Bx 21F 4^8[.9/=o [baW~YOkMV< %$Sɩ<C<qKtAQPH!mk};:Ωy(=^89<-lU cb],G @]8>eNQa1p<wl'{1TJ6fiqO Ȕ=s1݇:#. QA4}t.J \Gsl:0۱<W5K02x# eehO>e`A t#+O;B!Pná8B{/CrWaWT`[%};Av4A߾e#mM1{ZV Ao]<]0L\Fc ̓W_ݕ&n+sױv`4Bu@.?_ͱ+c3te}MAb!n>ElqS¡<ѱufP2T}6"uI#HO)ʭcLl$`;jdWn]wJpC[!f։g]t9T{xww /hȹrMN-yRZ _ GVw<x_3i: +|2.gTFuFOJ ġ5]1X$&{ȝLg"r3n8jOMP5VD^\nbuM |\#vY095==;nyQj@E5.Uqag Ѷ_4zd" PY߅ BJ]BDf.Z؀K(3|1ʰ|&_=|3(`NV$V o)la9>,u-t<,}AK25ZP-:G" #Dsn:W1S'hxțϑ W#wߡ^FCU2{8D's+h4Hk~XDN6?7&^ 'JlsuvtiCR%ց{dy-lB8BEwR8r{gU1co'&O}a4,(Mvw#4uf0̚YF<k<8;nG6W-OeFgNeˆqP}5trIR|}(4*Ҟ*@\($UMvB`sBnEoPlkAQ9ε/"GK_(fQ")K_L1u{W}>?ƫ$ #\\<>);}mzR Xŝ/^9XTU|ySvS:yX#} `#%.ټ99{ u$PNiDQ}֐7&[.#}+bz 9 q [lm(|(rbcE, 5;f4 {S%8 bڹa/xg3{ =+E/",N94(^S?MwVВЅ:x՛ *^2pS7wT#-C'6g*AV5a/#FFg$Z(0 Qݪl]dV$#њd9 )dK;xU7r5wJ?ChPOY7u`ՑEx_r*H5I>mf) z&  }) Up~VGQ b'G-Ko; 0_rĵ3]mh- 4pL=+@}XJ1B|{&vprbYWp,`(> #uRn&*Sa1 wx=s8cu3%pQ!6p+hX43ulu.[WWSSLluR& s߶n]9<iŤ`"%cT_N]ؙvvV-)dqtLlg0fE3_kZ|jLȍ:h4q&4.e!o>|^p8cC}: TRS%'.jϧ"H3ia-NOVt%RMRTeX^vmxW]I gbpx5 }Pm[/mts1WULY-;brIN1~T1+Tg#hmCݚɬX}g\m^$6,M aJۣ#vrXj%ɡvaYc:geǓ Ox>}#l!SQ->}bj]m>$y xF%Xgj1<8kcr^IY"N٥ ͇Tp% [m1i4gȥ4{W6Nx=8))}W֥FԩH]!g+iDDT 9(M8T56_ _suv ja]+-v`n2r)5oz)alCט**2jjD:u%x6$=dZ A @tqsg}#I{.8% w"=I}ph펏Aflu"%xEP|JGhQ'=[ ;[ QzrˑwBHjwRhЌ+b ee&_Ŧ>Б $X[4E4O+ Co,# rQG &iu2QO?DA$nM-x{~[VIQ,pevH84H~`;y_Rw+̬Nh~;uHZ@L@J%} YQe+6# ~F}^u9p0@\$x7+jbJkj56Zx{Yr=RM9Z_4/gy$KJ e.0MoM=Ha*9dI#lORgl"<JrN):yOybzt0lB޶w'0|mwU y0G3[1H#vp;,rg<Ֆ qhH܃tO\]"ԼeSΦIJWIOQHAH[Jf*qBd >{ $w-*9~ld=y:vL "pY%i#(jer(gn?:XI^Y6-OsT@CϽ@Q-6W`I!4BP%]]EWj.c>r,m'^eX`^cj 5~^e.|| 0|j =٘܂-7AW]ar i\ύ 20t+%"*D`uB2K SP $nZ4 9 qKտE/@?jϮ8XI5 xIM;AF) pWem,R5^;]'XNQ  /r]k'vwXin$n[Bto  ڜ5)ovs[T<W q+Fzi~Vn%[D>7[SE]h&z pin]H]me| f7A}ִ`-u6eV,{!јZ)S}լRש " dTٺ1ovahO;\E #JvD|B#V+Jo~V[E,ܴ#f/\fqFzFu?gAh{6XS5g1o6=l<*F•(&w&=w`* t]}W% a& ?H&\Nh$T =.q}K$Env]@&FtJ{cOv;^= +.& 3<:boM[( 2lNZ<)tcRvo8{44] [8-:n4Y W,^zU\h_45#GR 0I,p"eH}hahTP8VN u1ccA>7Xφ.83 ?aKuG6(LoWO|lKL7?D4o iMPX-y=T.L!1%EC^* '- r/T^YR48wpS5Ba[Nx5u_?u~w9a/ɻw-d~b_x6bho.ʔ9_Gg1Tg]DyR )O+Χ4 o<eJ&[T ߉ӄ_@>y]M4Qۊ^+ob?2G5-SRT]axv#r2 r'sԆ٠t^KthuV=W}̨.iԡkEڵTzv`Y0z`iu6"~iC4ӓ 6,3-Dj]-=so:?RKDn٦FX ͌u8&|l7_DJ=`i;!L hKfplrF…9PaUF;`a yX#۴JIn15/Ry:0u ( 3 n9uev6TL͸/HNpU2B]4i mH:#,u2kDonS(L:`(rFT-@8"98iSg JAaPd֮!2JnoTTK;pز _bL[R'yQAW.hYn֞65\!qj+43AWO{AL,UDʷA !G;P;H d8;KPso]9: އzl{+PH< &m[NnbhPyh3>7r'L5bTQ=274X+wBQ\x{7H )g0:Q뵽ًJ0R.2 ӍzV/%3Ni2<[OfRg {<t}[Vy% yKpR_ 93iab$ 4ٴ7ԪTc)$F6Wt뫖ʇ_{]>K֋s o4% j5*c= \p&$xkM{Kf,x bL|蒼`) `~>QUs6@-rG/Bv2VpKq?+>-WŗRFWZxF\ /\i=1d=tMK\QۓL%a,d%29Jpa]Ied]4;˱^4srh~cvkZyX ]}qM4¶r ogɁN4(nե<>E`a1-xy0-"2[.6{iƍNC6gN&\W?l"f"Bv2cvyZewD$ 7`)?dR59c1R=R+n}=.4ӟ7yiw˲( A+z5J0րV dVD=+T^D?ؼ 9 < {^^t\aya\pP`mKJ ZjDrr*JJy<F(As>/7 mp{hly%Mol[K>+@zYRTZWg<Ђ ΁^ٝtsk_3}ʀ _D7 ]̬`En&1Pv}rFFCIz2(ҟŗATB~ZvfE8\E^Po[w YbJ3p:l #V8K>Zt<QZp!pSuIOMrN9~ 1h {DW'lyF2Dte(in` g)dJ~ғ,/[6iNf_4|TGjT^\8s`a7Bfg3Y7_BAD~dp:',Dvr~N!$[ /EDq5H-nDDOnF_[!_)#p 2% p1faGf=La;8=bb.6Rg&m> uxE#cvyHu}O^7>NRnf?lRiP'<]H ,CkV.t2Q@d?1UT~ꢢa@~4+'@Ĺb<EYe[y '{?s]Bz֠->jO3cWde }R%$r0ގ?r7P~-IߎH5 qk8`~0m%^ǝ1]*+wXk* c[2__YnO=zpg{c[oUTe:2w-3vZ^bL\P65q8v8s0,rrIYK8Jxw QxzbmNFȩa//gc\Hv# +GTfoa(@ qE3Jtt~ :$3+F@8T 24aG7"N:J@E˓~ BDB%]r`\,Ew v2SGRF y)G$)?I"|yݖ)WZmGkfÑ.XunmU3p"yrPqzDnҪwlObQODdk9 dȵAhO;F2fw d]ꍉ}/abtn `sM[O\XƋKM{E Dǽ3_kRe-H0@ڞjga-'0ujsa&/AS&\[co!տ)YTF2|LUoPcB~JcAwc8Ot+E [z<00y-J>ZjtS# !P">WeU$QE@:^V/V?%'mytI ZaBވ43/NeI}`!I+XmzḣAGd_N kv:}&l}q[yOlL/o XK/lkѼcʔ#nDEkfRf\$ݢS7A^lo td+~OC% >"nhPoHTi@C{y?_ՅR0 rѯLo罋wʾj@D?`/ QTYD:^q\aS  <͘b<ٶm;x%\A4 srZ+Xlq4#LBrb2J$5(AEUc_)8'jDT[=C crn|nD.d^LpxfOȰ)@θN-?#; ^zpim@J7,LM.ɫE,%>"w#E((3\CERy\r>W`>8~u ,S*Q|aS֦$ /Zی&ԓ?BTYNzRJ1喾U4)TI{T]w 44}Lק7im,)e^]kvHP=y}a'1nF}v* \f  Ŵˣ,W ${P{U)o;B!эthpXS/o-&4-muR(ߡn{3њs٤7ET^I-`;`!&I@ut8>gvV m"UӺ z±zfګl١"/ K]b:# CuB{*nlv:R>rs20T_Im4 (L4a~|Jy#UTQuB <fнu\xO Aڣk&N/X/+7td`Kjܐ Qdz4%Tp [Eu\!k+WyTe Hjl~=f9o3-ONs RPS(MkOU\GE3ҬqYY@Bot*'6Pjsg|abx|Op\0%/.K)Wyq- Rlwn"^,4N9/d3}kMZ3%"w&vtA4n/cv}{6~97y }|) "9S%*`bwfnRɑvu̒ byjX|ͫZ0%|pKJFx MamQ!949AGgb!Lq4:D9/yjQ+3=9_;vb?^r:Kia߆qc>pcj !Ͷ&5b* (ұ=-Yt~&r2yʱ>n%y'T _h ~{FptU:v?tM>?%k52^+>N5P:M?"y;&c'PM!^,rl~9( ''y3 v&Eq8iXl1*jBE]9oZZ(2`X|AuVfy$s<;aGѡT3HT-*5Nu(}gEBXK-$F2 E28Ճ*,(1?#=eqh&yyw#A>l P[]e' .̼&s4qIlEE˲cAo%l@%EX>YD'5)~*caJs1H;|c ̰M%U!x:ջ}.<"g_$) æv-CՕ  N+0)ě<ukmp1IPke.4ҫ$XZ8`*NFF}D|FfB4u܏{83+D?>?456789:;<=  !"#$%&'()*+,-./0123Content-Type: application/ocsp-request Content-Length: %d %s %s HTTP/1.0 j?$.Dsp"8 1).lN!(Ew8fTl 4)P|ɵՄ? Gy 1Ѭߘr/Ḗ~&jE|,G$l iciNWqX~=t XrX͋qJT{YZ90`*#`(yA8۸y:`l>w'K1/x`\`U%U攫UbHW@cj9U*4\̴ATr|*oc]ũ+1t>\3֯\$lS2zw(H;Kkē!(f a!`|H2]]]u#&܈e>#Ŭom9BD . Ji^Bh!la gӫҠQjh/T(3Ql n;zP;*~ev9>YfCoEå}^;uos D@jVbNw?6r=B$7H ۛIrS{y%P;LylO`@ž\^c$johSl>9oR;Qm,0DE ^J3(fK.WtE9_ ӹyU 2`yr,@%g̣饎"2u<kaP/R=2`#H{1S>W\o.ViB~(2gsUO'[iXʻ]=!lJ[-ySeEIҐK3~ˤAb Lw6~д+MەqՓkю%ǯ/[{AI~-%^q h"W6d$ cUYCxSZ٢[} Źv&ϕbhAJsN-GJ{RQ)S?Wƛv`+t恵oWk *!ec.4dV]-SGjnpzKD). u#&İn}ߧI`fqilRdVឱ¥6)L u@Y>:䚘T?eB[k?ҡ08-M]% L&pc^?kh >\D}W7: P tAu8/;21>8TNmO Bo ,y|$ryVw.?rU$qk.P̈́GXzt}K:zfC cdG27;C$CMQe*P:qUN1w_V5kǣ;< $Y,n<pEㆱo ^*>Zw=Ne)։>%fRxL.jxS<- N=+6&9`y#RnfE{7(2åZl!Xeh;/ۭ}*/n[(!pa)uGa0a4c\s9pL ު˼,b`\ndi#PZe2Zh@*<1! T_~}=b7w-_h)5ǡޖXxWcr"ÃF T0.SHُ(1mX4a(s<|J]d]B> EꫪOlOBBǵj;Oe!AyMjGKPb=bF&[$ti GV[ Htb#*BXU >ap?#r3A~_;"lY7|`t˧@n2w΄PU5ai Z .zD4Egɞs͈Uy_g@Cge48>q(= m!>J=+hZ=@&L4)i Av.khq$j 3ԷCaP.9FE$tO!@MpE/f m1'A9UG%ښ ʫ%xP()Sچ, mbhiHפh'?Oz|Ϊ_7әxB*k@5 ٫9N;VmK1f&tn:2C[Ah xN جV@E'H::SU kKмgUXc)3VJ*%1?~^|1)p/'\,(H"m?H܆AyG@n]Q_2Տd5A4x{%`*`lc´2Of#k>3b $;" r(-Exb}doITH}'>AcG t.no:7`L knU{7,gm;e' )̒9 i{f} ϑ^و/$[Qy{;v.97yY̗&-1.Bh;+jLu.x7BjQ满PcKkؽ%=YBD n *Ngd_ڈ鿾dW{x`M``FѰ8Ew63kBqA_^;Z4ٷ,Q+:Ֆ}}>(-}|%rZLZq)GW;()f(.y_xU`uD^mm%adâW<'*:m?!cf&(3uU4V<wQ( gQ̫_QM08bX7 z{>d!Q2Ow~㶨F=)iSHd$m-if! FEdlX [@X̻k~jEY:D 5>ʹrdfGof,ҏ"W##v215VbuZ6ns҈bIPLVq z2E{Sb%ҽ5iq"|˶+v>S@`8G% 8vFšw``u N˅؍芰z~L\HjiԐ\-% ?2aN[wߏWr:ppp,,,'''WWW555 AAA###kkkEEE!!!OOONNNeee|||>>>000___^^^ 999GGG]]]===ZZZQQQVVVlllMMM fff---ttt+++ LLL444~~~vvvmmm111XXX:::aaa222SSS"""DDDzzz$$$```iiiPPP}}}bbbTTT[[[dddHHHuuu ???\\\JJJ333sssgggRRR&&&777;;;oooKKKccc...yyynnn)))///YYYxxxjjjFFFqqq%%%BBBrrrUUU 666III***hhh<<<888@@@((({{{CCCwwwppp,,,WWW###kkkEEEOOO|||>>>^^^ 999]]]ZZZQQQlllttt+++444vvvmmm:::222SSSzzz$$$```iiibbbTTTddduuu ݇͐sssRRRƁoooccc)))///xxxqqqԫrrr666***<<<@@@ӻCCCwww'''555 AAA!!!NNNeee000___GGG===VVVMMM fff--- LLL~~~111XXXaaa"""DDDPPP}}}[[[HHH???\\\JJJ333ggg&&&777;;;KKK...yyynnnYYYjjjFFF%%%BBBUUU IIIhhh888((({{{ǞXXXgggNNN jjj]]]FFF'''222KKKBBB:::%%%{{{ qqq___>>>|||```444MMMrrrzzz555aaaZZZ$$$VVV@@@ccc 333hhh oooSSSbbb...(((ttt666"""888ddd999,,,000DDDeeekkk###HHHQQQUUUAAACCC///<<<+++ GGG~~~)))!!!fff;;;777LLLnnnvvv---&&&}}}\\\OOO???yyyRRRmmm^^^iii111 uuuJJJWWWEEEsssYYYlllTTTxxxpppIIIPPPwww***[[[===888AAAvvvٓ```rrr«uuuWWWɢҐ'''IIICCC\\\>>>gggnnn///ⅅ SSSeee꣣쀀---kkk+++666ņMMM333fffXXX::: xxxBBB&&&aaa???;;;Ԙ苋 ,,,oooNNN yyy"""YYY===tttTTT000~~~(((UUUhhhPPP111***ppp222iiibbb$$$EEEsssmmmJJJ...%%%HHH{{{οqqq)))llldddcccKKK___FFF777^^^GGG[[[ZZZ<<5&5 M{n0f&%HVV^c ϲc|E pPr(pH# yM;-AB G&LjMG\^ |Y#јr8S#/nqFnEV 9q +A|iCHy}B{BIZݿe\ [ ~iC?9zaz UQry吝5rNcZպ60ę _}֡{/6Y DYD̃Aѱ* ;{ B[A%zzӤ0XޘN?wiy{$[Ĭ%5P_aT1bcKU !h]Yfsc=4·~!+g\ab906;Wd/`:5F- 'zy㠌l0^7%oo;j tE'4:NiOM>dY58EfCr3c%N? (Υ'R¦սTUdpfM w&ۄgC!`X0TroSUGڿ]bVhkʃ;n-Ӧ\= wL3{9+^S_aodC x^c"&gI{ڷ"%-U^7rRyL H[k0 cq/޹ S E!5(T<)c)A|-nRPf4,0P1`sY&D\dwR3A+ٺ|o!PaH?ek«dv&4{^% ;MM1$~I,;jx`]sVz\/1Co0TyXR^/2zj0>՚1B°I #ڸ(0q_`ɣaM/Ǚ."płNؼ40y;'ƸaiH?;(ZC/v7ܱӧßn>ƼB7Q(heRwj-K'5.n\ )^XOX{iT̨g&H`K`8# ~8lI `s5GƱVL>#8d^BFzk Od^AE#\;]>rC|m~ll9`qpsv#E@]%=`GK6DήPQH<p}}d^(O= &g.yr?U+HԼ?^!@WNFRWs3NɷdŸW1O g_?@k{C=K۵cUȗn-J(JqoCCl< _P/~׿PZG.Q>pX.0_|r *,]I鎸P'WIoyR}}Yr@EEt]>uOiVA#. '`vteyvvwHNma}/ 4H<0(Ow Vܒ M"7)}V'|@|硴f^aÝ <є`AFv\;x,WGl"}NC~8<=Q8d{h'فI]j~vh]9K9 ;#Im<Eub'z\aBΒ~Brrp }ȡ[(Ob<51)BSjO[}m(Ki\j#MŌ?,-ҖXRg[HJI \EkӉ7`:SRqDIK @sg4|~q6UO/Т`?mPьGnU?墼38Wg} =3{r3O̫]ňv{{uWBdBc+ri/n+_mazgaq%9̸L!gуb>ܷν8\ =Dmn`I:T`H'W+8$ ږ%Eh;}E `P/(b4 ٠m+1+dZ0RXBA\1>26F3S75 {s{OJWdCQz(~c5_ yCdcdJ$_(͸O@C " 0 O7-{$MgQLq_-_d !S^>'_aB%rqK=;&o~~TLmDl߫I&Ǡ36~?Pa w8Pr.PwWFgOT3ɏ1 i5M\=fȦ[]oڑo/"F}F9mOCCN!и  ?X(>nH&p׋wt|% - y#;(8itb߷@!{7Ȋ@ YVvO@/{U MVi35'#WȯVeka^u˅nwU2?-ɿ[%;з$;mc fÀ(82 Tɪס2Zb,gTzuw11&o6F HjyZVLj~CRv/ t,t* M|k .TA5B=!&|,aRe1i%& !\1cr ^Iy p1 d>>̶Ոî 0rlqn/kءDVÈ9/ű1(x⤣2}o~X$Ū{s0a!-!)۳*)e\,0?Б\,ԩT _w:^VxV޾\!uQųåҶw#)Ei/z毲p[v F98/gsD)k)/Ifingӛ/~p%Q^$Slj>!DYܷ)eyCy9A+MWN )zkS< ~U3rŅ?~  ~tn,fy3jXDD1Zs"*ˁc8:$zi HIĀ@8HުL H_%A@N$A UeQr% 9jyMc@hV 틕Z Vqק)N-fcqw*7 5Wa"ɠBր[t!h!hl iwW~@PճMװx QV$AV ʔUWnྵa$ XK'aU{whkldMDfd~i/IO70j5,s@IvM;B(HDLns) _ɋ}oaOw.+rץ<}+FYYEEهTNoHm| ǥcs_DVj͈prͳ]ny` E`1©\1BN"r\,rN@%/N2g@#x\n܃"ukMxnXO DH?{vw#Vu*F_( +8=6 JRft;QZylu eX&hJpFS(l\v0k)h76*g$ k%ֿh,DUueI40" WIbuU~bڨv^FESGml,gHL|3ەCh\SU2` ߝWc9^28aI37~^b<#NygCHKJf-ۄoH Ja)Yfc(` 0qt&@3/C~A^ l( ؒ0~of˜os*`ژ46K-%#= %IH6Jo8C@TzWOpA:Z„TU|5YŗZ:G:%Sj~=eI&TwQ[P]vlDȨ!帊iX`[ŗY)L;]J5ULkD$5鰽bעT/I18T(q)9H[/u@g+3-fVo*ɛ`( ')dMP˲,\26K_A !PNhذy\CPIMAC8wn\e0Rԋ@+>`xT7}02m-yyS"wuXȃoxkcZ\3]ùzv٣Byqj3ƚ`'PC=+mvN%ύHf6AN( aϩI=߹_d: }+p?PO+Zbbyj.H@,Z@"ғ-ES4n)olIIBr~V>olbfLTq*+9)XLVRf.S9v.i硦>iFt+LVvuOx39]O#2]2=&K/~~<O^?vf)o=E4ӷ+4grN=U"g`k8=ü0}8QcÐӝXyTGָaYwSW-XVcNx.F~eyUڑ0@5㶼P?!@=LXI6QpӱڍyKoqK 0ݻ맕d5w$,ϩ/ tцB*v:-7ޚ, )p@ :$7ѴyN] h1 HZ޻Bf1畏?r 3uQB}\cmd!@ WS1zݨ]3CoFq"8ԚέiGb[UgfN G[oLĎnrWxzdD]Ջ` l_9 ]c2֋~ pIPӻߘ)* mS~H~X.t;/RG'~[!<8zvOB9`55'{ɸ6g {pqT3^-ZId, =4pBwbO&Ҹ$d%FN`7>͕xE_{ ۫v"{.1ן%$r_m L=mPO%os#(ĴyI%4aĘnzn|l6AT޾'VAJJ{` ,8I%vK$%Gv XY f 0NndQ& #Phꃢ@@ @ `x0`x00`xx0`x0`x0``x0`x0###F&&###FF&###F&###F&####F&###F&####F&#?~?~?~?~~?~??~?~oooooo臇oo臇&Lˇ&Lˇ&Lˇ&LLˇ&Lˇ&&Lˇ&Lˇڸbmڸbmmڸbbmڸbmڸbmڸbmڸbm       OO!OBn OO!OBn OO!OBnn OO!OBBn OO!OOBn OO!!OBn OOO!OBn O666l666ll666l666l6666l666l6666l6YQYQQYQYYQYQYQYQo޽ o޽ o޽ o޽ o޽ oo޽ o޽ yyyyyyyyyyyyyyyyyyyyyyyyooo_00ooo_0ooo_0ooo__0oooo_0ooo_0oooo_0o~?mm~??m~?m~?m~?m~~?m~?mRRURRRURRRURRRURRRURRRRUURRRRURR```'GG```'G```'G```''G````'G```'G````'G`ʼve55ʼvee5ʼvve5ʼve5ʼve5ʼve5ʼve5V+77V++7V+7V+7V+7VV+7V+7q[ңq[[ңq[ңqq[ңq[ңq[ңq[ң 0 `<ll 0 `<l 0 `<<l 0 ``<l 0 `<l 00 `<l 0 `<l {{{{{{{{{{{{{{{{{{{{{{{{555j555jj555j555j5555j555j5555j5ti:ti::tii:ti:ti:tti:ti:SGݳSGݳSGGݳSSGݳSGݳ১SGݳSGݳ{!!{!{!{!{!{{!{!/^활/^홙/^활/^^활/^활//^활/^활...m\CC...m\\C...m\C...mm\C....m\C...m\C....m\C.KK1Kbz))KK1Kbz)KK1Kbzz)KK1Kbbz)KK1KKbz)KK11Kbz)KKK1Kbz)K!]]!]!!]!]!]!]!]WWAWWWAWWWAWWWAWWWAWWWWAAWWWWAWWTA*TA**TAA*TA*TA*TTA*TA*wwwwwwwwwwwwwwwwwwwwwwww777n777nn777n777n7777n777n7777n7{Vמ{Vמ{VVמ{{Vמ{Vמ峳{Vמ{Vמ域F#F##F#F#F#FF#F#########JJ5Jj JJ5Jj JJ5Jj JJ5Jjj JJ5JJj JJ55Jj JJJ5Jj JOڞDDOڞDOڞDOڞDOڞDOOڞDOڞDXX}X%XX}X%XX}X%%XX}X%XX}XX%XX}}X%XXX}X%Xʏʏʏʏʏʏʏ)))UR||)))URR|)))UR|)))UUR|))))UR|)))UR|))))UR|) ( P"ZZ ( P"Z ( P""Z ( PP"Z ( P"Z (( P"Z ( P"Z OPPOPOOPOPOPOPOPi]ɠi]]ɠi]ɠii]ɠi]ɠi]ɠi]ɠkkkkkkkkkkkkkkkkkkkkkkkk.\م.\م.\م.\\م.\م..\م.\مνsg<<νsgg<νssg<νsg<νsg<νsg<νsg<]]i]4]]i]4]]i]44]]i]4]]i]]4]]ii]4]]]i]4]@P @P @PP @P @P @@P @P        >>>|>>>||>>>|>>>|>>>>|>>>|>>>>|>( --( -( -(( -( -( -( -gggxxgggxgggxgggxggggxgggxggggxgsS՗sS՗sSS՗ssS՗sS՗䷷sS՗sS՗'''%N'''%NN'''%N'''%%N''''%N'''%N''''%N'AAA2XssAAA2XsAAA2XXsAAA22XsAAAA2XsAAA2XsAAAA2XsA, , , ,, , , , QSQSSQSQQSQSQSQS}}}ϔ}}}ϔ}}}ϔ}}}ϔ}}}}ϔ}}}ϔ}}}}ϔ}n7IIn77In7In7In7Inn7In7IG؎VVG؎VG؎VG؎VG؎VGG؎VG؎V0pp0p00p0p0p0p0p#q#q#qq##q#q#q#q|||Ǒ|||Ǒ|||Ǒ|||Ǒ||||Ǒ|||Ǒ||||Ǒ|fffqqfffqfffqfffqffffqfffqffffqfSݦ{{Sݦ{Sݦ{Sݦ{Sݦ{SSݦ{Sݦ{\K.\K..\KK.\K.\K.\\K.\K.GGGFEEGGGFEGGGFFEGGGFEGGGGFEGGGFEGGGGFEGB!B!!B!B!B!BB!B!ʼnʼnʼnʼnʼnʼnʼn---uZXX---uZZX---uZX---uuZX----uZX---uZX----uZX-ƿyc..ƿycc.ƿyyc.ƿyc.ƿyc.ƿyc.ƿyc.8??8?8?88?8?8?8?#G#GG##G#G#G#G#GZZuZ/ZZuZ/ZZuZ//ZZuZ/ZZuZZ/ZZuuZ/ZZZuZ/Z6l6l6l6ll6l66l6l333f333ff333f333f3333f333f3333f3ccc?\\ccc?\ccc?\ccc??\cccc?\ccc?\cccc?\c       98I98II988I998I98I98I98Iqqqqqqqqqqqqqqqqqqqqqqqqύύύύύύύd}2d}22d}}2d}2d}2dd}2d}2II9Irp;;II9Irp;II9Irpp;II9Irrp;II9IIrp;II99Irp;III9Irp;ICن__Cن_Cن_Cن_Cن_CCن_Cن_11111111KHۨKHۨKHHۨKKHۨKHۨ㫫KHۨKHۨ[[q[*[[q[*[[q[**[[q[*[[q[[*[[qq[*[[[q[*[4 4 4 44 4 4 4 R)>>R))>R)>R)>R)>RR)>R)>&&&-L &&&-LL &&&-L &&&--L &&&&-L &&&-L &&&&-L &222d222dd222d222d2222d222d2222d2J}YYJ}}YJJ}YJ}YJ}YJ}YJ}Yjjjjjj郃jj<x3ww<x3w<x33w<xx3w<x3w<<x3w<x3ws榷33s榷3s榦3s榷3s榷3ss榷3s榷3Հ:t:t:t:tt:t::t􀀀:t􀾾¾|a''¾|aa'¾||a'¾|a'¾|a'¾|a'¾|a'&އ&އ&އ&&އ&އ&އ&އ444h444hh444h444h4444h444h4444h4HH=Hzu22HH=Hzu2HH=Hzuu2HH=Hzzu2HH=HHzu2HH==Hzu2HHH=Hzu2H$TT$T$$T$T$T$T$Tzzzzzzzzzzzzzzzzzzzzzzzzz=ddz==dz=dz=dz=dzz=dz=d__a_>__a_>__a_>>__a_>__a__>__aa_>___a_>_ @== @@= @= @= @= @= @= hhhghhhghhhghhhgghhhhghhhghhhhghhr4hr44hrr4hr4hr4hhr4hr4,A,AA,,A,A,A,A,A^u}}^uu}^^u}^u}괴^u}^u}^u}TTMTTTMTTTMTTTMTTTMTTTTMMTTTTMTTv;v;;v;v;v;vv;v;""" D//""" DD/""" D/""" D/"""" D/""" D/"""" D/"dddccdddcdddcdddcddddcdddcddddcd********ssssssssssssssssssssssssHZ$HZ$$HZZ$HZ$HZ$HHZ$HZ$@@@:]zz@@@:]z@@@:]]z@@@::]z@@@@:]z@@@:]z@@@@:]z@ @(HH @(H @((H @@(H @(H @(H @(H+V蛕+V蛛+V蛕+VV蛕+V蛕++V蛕+V蛕3{3{3{{33{3{엗3{3{KۖMMKۖMKۖMKۖMKۖMKKۖMKۖMۡa_a__a_aa_a_a_a_===z===zz===z===z====z===z====z=f3[[f33[f3[f3[f3[ff3[f3[6ԃ6ԃ6ԃ66ԃ6ԃ6ԃ6ԃ+++EVnn+++EVVn+++EVn+++EEVn++++EVn+++EVn++++EVn+vvvvvvvvvvvvvvvvvvvvvvvv2d悂2d悂2d悂2dd悂2d悂22d悂2d((((((((lw6lw66lww6lw6lw6llw6lw6tt[wwt[[wt[wt[wt[wt[wt)C)CC))C)C)C)C)CjjjwjjjwjjjwjjjwwjjjjwjjjwjjjjwjPP]P PP]P PP]P PP]P PP]PP PP]]P PPP]P PEE ELWWEE ELWEE ELLWEE ELWEE EELWEE ELWEEE ELWE88888888000`000``000`000`0000`000`0000`0+t+t+tt++t+t+t+t???~???~~???~???~????~???~????~?UUIUUUIUUUIUUUIUUUIUUUUIIUUUUIUUyYۢyYYۢyYۢyyYۢyYۢyYۢyYۢeeeeeeꏏeeeeejjeeejeeejeeejeeeejeeejeeeejeҺhiҺhiiҺhhiҺhiҺhiҺhiҺhi///e^JJ///e^^J///e^J///ee^J////e^J///e^J////e^J/'N睎'N睝'N睎'NN睎'N睎''N睎'N睎_޾``_޾`_޾`_޾`_޾`__޾`_޾`pl8pl88pll8pl8pl8ppl8pl8.FF.F..F.F.F.F.FMM)MRdMM)MRdMM)MRddMM)MRRdMM)MMRdMM))MRdMMM)MRdMr9vvr99vr9vr9vr9vrr9vr9vuuuuuuuuuuuuuuuuuuuuuuuu0 660 60 600 60 60 60 6$ $ $ $$ $ $ $ @yKK@yyK@@yK@yK@yK@yK@yKcYхcYхcYYхccYхcYх濿cYхcYх8p6~~8p6~8p66~8pp6~8p6~88p6~8p6~|c>|c>>|cc>|c>|c>||c>|c>bbb7UUbbb7Ubbb7Ubbb77Ubbbb7Ubbb7Ubbbb7Ubw::w:w:w:w:ww:w:Ԩ)2M)2MM)22M))2M)2M)2M)2Mb1RRb11Rb1Rb1Rb1Rbb1Rb1R:bb:b::b:b:b:b:b3f3f3f3ff3f33f3f%%%5J%%%5JJ%%%5J%%%55J%%%%5J%%%5J%%%%5J%YYyY YYyY YYyY YYyY YYyYY YYyyY YYYyY Y*TЄ*TЄ*TЄ*TTЄ*TЄ**TЄ*TЄrrrrrrrrrrrrrrrrrrrrrrrr999r999rr999r999r9999r999r9999r9LL-LZaLL-LZaLL-LZaaLL-LZZaLL-LLZaLL--LZaLLL-LZaL^^e^;^^e^;^^e^;;^^e^;^^e^^;^^ee^;^^^e^;^xxxxxxxxx煅xxxxxxxxxxxxxxx888p888pp888p888p8888p888p8888p8       cƲcƲcƲcƲcƲccƲcƲѥA W䥥A WW䥥A W䥥AA W䥥A W䥥A W䥥A WCM١CM١CMM١CCM١CM١⯯CM١CM١aaa/NNaaa/Naaa/Naaa//Naaaa/Naaa/Naaaa/NaE{BBE{{BEE{BE{BE{BE{BE{B!!!B44!!!BB4!!!B4!!!B4!!!!B4!!!B4!!!!B4!J%J%%J%J%J%JJ%J%xf<xf<<xff<xf<xf<xxf<xf<CCC"RaaCCC"RaCCC"RRaCCC""RaCCCC"RaCCC"RaCCCC"RaC;v;v;v;vv;v;;v;v+OO+O++O+O+O+O+O $$ $ $ $ $ $ $QQYQQQYQQQYQQQYQQQYQQQQYYQQQQYQQ^/%%^//%^/%^/%^/%^^/%^/%mmmO""mmmO"mmmO"mmmOO"mmmmO"mmmO"mmmmO"m 4 h9ee 4 h9e 4 h99e 4 hh9e 4 h9e 44 h9e 4 h9e 5yy5y55y5y5y5y5y[߶ii[߶i[߶i[߶i[߶i[[߶i[߶i~~~כ~~~כ~~~כ~~~כ~~~~כ~~~כ~~~~כ~$$$=H$$$=HH$$$=H$$$==H$$$$=H$$$=H$$$$=H$;;;v;;;vv;;;v;;;v;;;;v;;;v;;;;v;1=K1=KK1==K11=K1=K1=K1=K>с>с>с>>с>с>с>сDU"DU""DUU"DU"DU"DDU"DU"       NN%NJkNN%NJkNN%NJkkNN%NJJkNN%NNJkNN%%NJkNNN%NJkNQsffQssfQQsfQsf混QsfQsfQsf ` ` `` ` `닋 ` `<<|>|>|>||>|>>|>|j5@@j55@j5@j5@j5@jj5@j5@       ޹go޹goo޹ggo޹go޹go޹go޹goL_&L_&&L__&L_&L_&LL_&L_&,,,}XQQ,,,}XXQ,,,}XQ,,,}}XQ,,,,}XQ,,,}XQ,,,,}XQ,kָkָkָkָkָkkָkָk\ӌk\ӌk\\ӌkk\ӌk\ӌ绻k\ӌk\ӌnnnW99nnnW9nnnW9nnnWW9nnnnW9nnnW9nnnnW9n7n󕪪7n󕕪7n7nn7n77n7n       VVEVVVEVVVEVVVEVVVEVVVVEEVVVVEVVDD DI^^DD DI^DD DII^DD DI^DD DDI^DD DI^DDD DI^Dߞߞߞߞߞߞߞ!7O!7OO!77O!!7O!7O!7O!7O***MTgg***MTTg***MTg***MMTg****MTg***MTg****MTg*ֻmk ֻmkk ֻmmk ֻmk ֻmk ֻmk ֻmk #F⟇#F⟟#F⟇#FF⟇#F⟇##F⟇#F⟇SSQSSSQSSSQSSSQSSSQSSSSQQSSSSQSSWܮrrWܮrWܮrWܮrWܮrWWܮrWܮr , X'SS , X'S , X''S , XX'S , X'S ,, X'S , X'S N'N''N'N'N'NN'N'lllG++lllG+lllG+lllGG+llllG+lllG+llllG+l111b111bb111b111b1111b111b1111b1tttttttttttttttttttttttt       FFF CLLFFF CLFFF CCLFFF CLFFFF CLFFF CLFFFF CLF &E &EE &&E &E &E &E &E<<<<<<<<PD(PD((PDD(PD(PD(PPD(PD([Bߺ[Bߺ[BBߺ[[Bߺ[Bߺᣣ[Bߺ[BߺXN,XN,,XNN,XN,XN,XXN,XN,:::t:::tt:::t:::t::::t:::t::::t:iiioiiioiiioiiiooiiiioiiioiiiioi $ H-AA $ H-A $ H--A $ HH-A $ H-A $$ H-A $ H-A ppppppppppppppppppppppppTqooTqqoTTqoTqoⶶTqoTqoTqogηgηgηgηgηggηgη;~;~;~~;;~;~퓓;~;~.ۅ.ۅ.ۅ..ۅ.ۅ.ۅ.ۅBBB*WhhBBB*WhBBB*WWhBBB**WhBBBB*WhBBB*WhBBBB*WhBZ-,,Z--,Z-,Z-,Z-,ZZ-,Z-,IUIUUIUIIUIUIUIU(((]Puu(((]PPu(((]Pu(((]]Pu((((]Pu(((]Pu((((]Pu(\\m\1\\m\1\\m\11\\m\1\\m\\1\\mm\1\\\m\1\?kk?k??k?k?k?k?k"D†"D†"D†"DD†"D†""D†"D†#臸O6yoR` {5.KWw7JX) k]>g'A}|fG-Z3? 0@P`pAAAABB/B?BOB_BoBBBBBBBBBB @ @  12./  ^H@@AA^A @ @ @@JJ JH NN N^^ ^^ @` `@^^~\^_imc{{g  @c c;Zx0N<[y1O?AF@333333?333333?  `,'  @*@ truefalse%m/%d/%y%H:%M:%S%a %b %d %H:%M:%S %Y%I:%M:%S %p()SundayMondayTuesdayWednesdayThursdayFridaySaturdaySunMonTueWedThuFriSatJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberJanFebMarAprJunJulAugSepOctNovDecAMPM%d%u%ld%lu%lld%llu%f%Lf os so   P ?@@?? ףp= ?cbedgfhijlk@??                                                         w';()*45Exception thrown:=========================================================Please provide a feedback metadata objectPlease provide a feedback vectorPlease provide a descriptor arrayPlease provide a layout descriptorPlease provide a transition arrayPlease provide a valid Map\u0000 \u0001 \u0002 \u0003 \u0004 \u0005 \u0006 \u0007 \b \t \n \u000b \f \r \u000e \u000f \u0010 \u0011 \u0012 \u0013 \u0014 \u0015 \u0016 \u0017 \u0018 \u0019 \u001a \u001b \u001c \u001d \u001e \u001f ! \" # $ % & ' ( ) * + , - . / 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 { | } ~  /tmp/perf-%d.map.ll  333333?  3@KSZ`fkoswz~ _fg^^^^^dfecccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f      TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTKKTTKKKKKKKKKKKKKKKKKKKKKKKKKKKTTTTTTTKKKKKKKKKKKKTTTTTTTTCCCCCCCCCCCCCCCC./jit-%d.dump1  ! ( * / 0 _ ` 000:A[_`a{0:   A@Z@@   "$&(*,.02469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvx@y{}@@@@@@@@@@@@@   "$&(*,.02:@;=@>AC@FHJLNprv@@@@@@@/`bdfhjlnprtvxz|~@   "$&(*,.1@V@   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~@@(@/8@?H@MY[]_h@o@@@@@ @ @@$&(*@-0@3>@?E @. ` b @d g i k m @p r u ~ @ @BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{}@~@@!@:@@A@Za@z@@@@@p@tv@wz@}@@@@@/1@VYa@@@ @Jn@oq@@@@@/M@@@@$(@@X@ @9 = P X @a q @ @ @ @ @ @ @ @ @  @  @  @( * @0 2 @3 5 @6 8 @9 Y @\ ^ r @t @ @ @ @ @ @ @  @  @  @( * @0 2 @3 5 @9 = \ @] _ @a q @ @ @ @ @ @ @ @  @  @  @( * @9 = X @Y ` @a @ @ @ @ @ @ @  @  @  @: = N ` @a z @ @ @ @ @ @02@3@@F@@@@@@@@@@@@GI@l@@*?P@UZ@]ae@fn@pu@@@@HJ@MP@VXZ@]`@@@@@@@@@@Z@@@lo@@@@@ @ @1@@Q`@ln@p@ @w@@@P@mp@t@@@ @T@3E@K@@@@#M@OZ@}@@@@@@ @EH@MP@WY[]_@}@@@@@@@@@q@ @@$&(*@-/@9<@?E@IN`@ @. 0 @^ ` @ @ @ @% ' - 0 @g o @ @ @ @ @ @ @ @ @ /@!@)1@58@<A@@@@@-1@@@@$A@Z\_a@z@@@@@p@tv@wz@}@@@@@/1@VYa@@@ @Jn@oq@@@@@/M@@@@$(@@X@ @9 = P X @a q @ @ @ @ @ @ @ @ @  @  @  @( * @0 2 @3 5 @6 8 @9 Y @\ ^ r @t @ @ @ @ @ @ @  @  @  @( * @0 2 @3 5 @9 = \ @] _ @a q @ @ @ @ @ @ @ @  @  @  @( * @9 = X @Y ` @a @ @ @ @ @ @ @  @  @  @: = N ` @a z @ @ @ @ @ @02@3@@F@@@@@@@@@@@@GI@l@@*?P@UZ@]ae@fn@pu@@@@HJ@MP@VXZ@]`@@@@@@@@@@Z@@@lo@@@@@ @ @1@@Q`@ln@p@ @w@@@P@mp@t@@@ @T@3E@K@@@@#M@OZ@}@@@@@@ @EH@MP@WY[]_@}@@@@@@@@@q@ @@$&(*@9<@?E@IN`@ @. 0 @^ ` @ @ @ @% ' - 0 @g o @ @ @ @ @ @ @ @ @ @!@)1@58@<A@@@@@-1@@@@@@@ @*@+@@n@@@"@@@@@@@  @"@@s@@ @% 0 @F ` @| @ @ @ @ @( @ @B D @K ` @v z ~ @ @ @ @ @ @  @ @  @ @& ( @. 0 @Z \ @_ d @e @ @@@@@mp@@@@(*@68@<>@@AC@DF@@=P@@@p@tv@!@:A@Zf@@@@@0@9_@o@@@@@K@ip@@@@@0@J@@@@@#%@')@-Y@[@ : @< > @O Q @W b @c f @o @ @ @ @ @ @  @ < > @B G @H K @M Q f @q u @ @ @ @ @ @  @ < > @D G @H K @M V @W b @c f @o @ @ @ @ @ > @D F @H J @M U @V b @c f @o @ @ @ @ @ @ @  @ > @D F @H J @M W b @c f @o @ @ @ @ @ 14@:G@NP@Y@@@@@ @)579>@?q@@@@+@>@@IV@Y^@`b@dg@mq@t@@]@_i@q@2@4R@Sr@s@@ @ @ @+0@;F@O@@@@U@^`@|@@@@4@DP@Yk@s@@@@$@7@@IP@Y@@@@@@ @ ?@@T@@ @  @ *@/@ @)ot@}@ #@'@@@@ @ & @- G @S @ @ @ @ ) @6 C L @M P @Y { @} @ @ @ @ @ @ @ @ @ @-3@4M@O@? @ @ /_A@Z@@   "$&(*,.02469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvxy{}H8@44<(,4<LDLTXhhh@ddl|    "$&(*,.02:;=t>ACDEFHJLNprv@@@@ @@@@@/`bdfhjlnprtvxz|~<   "$&(*,.1@V@qqqq   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~@@(@/8@?H@MY[]_h@o@@@@@@@@pp@@@@@@i&*}+~2p`@@o@@hh @. ` b $Xc hd dXg i k m Wn Xo Wp Wr u ~ @W W                                                     @BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{}~`kjjjjkXk!@:a@z @@   !#%')+-/1`357:<>@BDFHIKMOQSUWY[]_acegikmoqsuwz|~P     #%')+-/13<?@@BGIKMOP|QpRxSTV@WY[\<`a,cefhikܧloqru}@HEPqsw{@} h@ll@@@D(00@OP@_acegikmoqsuwy{}   !#%')+-/a@@@y(};   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}!%)@  @  @ ' 0@ 7 @@ E P-Q R1S T5U V9W `@ g p@(q(r@XuXv@wx@yz@{|@}=AEIMQUY=AEIMQUY]aeimquy]aeimquy}}@  l@   @  SSNJ 5RH1TW Y AB     ()*+,-./hijklmnoBBBBBBBBBBNp@@0 @@^ @a e TWf `Wh j l s v @% ' - ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|  !%)A@ZFFFIFLFFIFFLSTDFD5D;NFD=a@z @@   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~    #%')+-/13<?@@BGIKMOP|QpRxSTV@WY[\<`a,cefhikܧloqru}@HEPqsw{@}h@ll@@@D(00@OP@_acegikmoqsuwy{}   !#%')+-/a@@@y(};   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}@  @  @ ' 0@ 7 @@ E Q S U W `@ g p@(q(r@XuXv@wx@yz@{|@}@  l@  @  Np@@0 @@^ @a e TWf `Wh j l s v @% ' - ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|A@ZA@Za@z @ @@ @!!%%))--1 1 5 5 9 9==AAEEIIMMQQUUYY]] a!a"e#e$i%i&m'm(q)q*u+u,y-y.}/}2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy z { | }~!!%))@-1559=AEEIMQUY]]aeimquuyy}}@9     Q!!%%))--1 1 5 5 9 9==AAEEIIMMQQUUYY]] m"a#a$e%e&i'i(m)m*q+q,u-u.y/y0}1}23:;<=a>?@@ABCDEFGHIJKLMNOPQRST%V@-W1Y=[A\`IacMefhYiUkloeqriuq}@Epqrsvw{@} @ @!%@)-1@59=AE @IMQUY@]ae@im @ !%@)-1@59=AE @IMQUYY@]ae@im@q%=eQquuyy}}AU1@@@/0@OP@_`abcdefghijklmnopqrstuvwxyz{|}~    !!%%))--115599==AAEEIIMMQQUUYY]]aaeeiimmquuyy}}q         !!%%))-- 1!1"5#5$9%9&='=(A)A*E+E,I-I.M/M1@QVUa@QU@Y]aeyi}mqquuyy}}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M N O PQRSTUVWX!Y!Z%[%\)])^-_-`1a1b5c5d9e9f=g=hAiAjEkElImInMoMpQqQrUsUtYuYv]w]xayaze{e|i}i~mmqquuyy}}1    !!%%))--115599==AAEEIIMMQQUUYY@]a@]a@ei@ei @m'q(@m/q0@u7y8@u?y@@}EH@}MQSUWY[]_`@gh@op@qr@uv@wx@yz@{|@}@@@@@@@@@@@@AaZzx      !"#$%&'()*+,-./2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyz{|}~CSTVWY[`cih=or u     "#$%&'()*+,-./0123:e,;<>f,?~,@,ABDEFGHIJKLMNOPo,Qm,Rp,\aefkb,lqn,}d,Epqrsvw{}P_0/O`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1aV-%-'---y}}c,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ('/087?@HEMQYS[U]W_`hgopqruvwxyz{|}2N`@o p@   @@ @. 0 @^ ` !a !b %c )d -e 1f 5g 9h 9i =j =k Al Am En Io Mp Qr Us Uu Yv Y~ @] a e e i i m m q q u u y y } }                 ! ! % % ) ) - - 1 1 5 5 @9% =' A- E2!N!`!p!o!!!!$$$$,0,.,^,`,a,kb,}c,}d,:e,>f,g,h,i,j,k,l,Qm,qn,Po,Rp,r,s,u,v,?~,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-%-'---@ABCD E F G HIJKLMNOP!Q!R%S%T)U)V-W-X1Y1Z5[5\9]9^=_=`AaAbEcEdIeIfMgMhQiQjUkUlYmY]]aaeeiimmqquuyy}}"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ _ ` a bcdefghij!k!l%m%n)o)y-z-{1|1}5~99==AAEEIIMMQUUYY]]aaeeiimmqquuyy}}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|y}~ef\al!@:A@Z!A:ZA@dZa@dz@X@@X@{@}@@@@@@@@<@|/0@|OP@<_1@Va@@@@@@ @'(@/0@78@?@@EH@M`@gh@or@ u@ `@<op@<@d@d @. 0 @^ @% !@d:A@dZ    $0       % %%%&&&&&&&&&&&&&&&&&&&&&&&&'(''(((      )* $"  >  ? @ A B C  SE   F G H  I J  T   UK     L M N  O   P V  W  Xcgko;Zx0N<[y1O  hpl  0@P`pAAAABB/B?BOB_BoBBBBBBBBBBc-wasm-entry:     janfebmaraprmayjunjulaugsep oct nov dec ampm ututczgmtcdtcstedtestmdtmstpdtpsttzLR?Y@Z[XY d'@Bʚ;?$@Y@@@@j@.AcAחAeA _BvH7BmB@0BļB4&k C7yAC؅W4vCNgmC=`XC@xDPKDMDTLI 0 0 `pP@}q5 =-1eQJ877;<:TՏ<v>ᮺWvU0 r5]JBό-;eUkE=ƚpOܼw kAV<Ѝ,U1(\QFɦqaˋ#w"{mSx@I̮ Wζ]y<7VM6OH8oꖐ$:%˅t,φ4* 45<5*g8PD;?ȄkL'DŅT%Οk\b}$lۺd_ Xfl&ޓt |J|l_b%S04`?U&NZ~)p$wt帟ߦ}t_ϛpDk11eU%{?;+*\.Ӓsi$$Icd~̈Po ̼,eXѳ@ bx x9?{Η8$p\{2~S,h髤8m4E"&'O<'1cDȌ8eްLeǃTqB]\X,iM dpd'lJwmBtk}{x \|wyTwś[[=]S5Ȭ\*_F%94›\rξTSܷ1A"Lx\ӛ fS!{Z:0ܵ\S٨5D.&pA~_֑9S99_(;/ Zmm~6 'FOf?-_'u={9Rk_]0V{Fk 6^ae_@h'sM1Vɨs{`k!?! @|@!@zj@|"@%@!)@:F,@zj/@\G1@|2@k4@5@ۏ7@!9@:@:F<@Z=@zj?@L~@@\GA@lB@|B@C@kD@4E@E@F@ۏG@XH@!I@@!?-Dt>F<`Qx;9@ %z8"6i5@NHAPIOCSKTBUJWRVbXjarYZ[ ]\"^*`2_ERMQ  T(  8 D$       =?@UWX       (function(a,b){ "use strict"; var c=a.Array; var d=a.isNaN; var e=a.JSON.stringify; var f=a.Map.prototype.entries; var g=(new a.Map).entries().next; var h=(new a.Set).values().next; var i=a.Set.prototype.values; var j={ UNDEFINED_TYPE:'undefined', NULL_TYPE:'null', BOOLEAN_TYPE:'boolean', NUMBER_TYPE:'number', STRING_TYPE:'string', SYMBOL_TYPE:'symbol', OBJECT_TYPE:'object', FUNCTION_TYPE:'function', REGEXP_TYPE:'regexp', ERROR_TYPE:'error', PROPERTY_TYPE:'property', INTERNAL_PROPERTY_TYPE:'internalProperty', FRAME_TYPE:'frame', SCRIPT_TYPE:'script', CONTEXT_TYPE:'context', SCOPE_TYPE:'scope', PROMISE_TYPE:'promise', MAP_TYPE:'map', SET_TYPE:'set', ITERATOR_TYPE:'iterator', GENERATOR_TYPE:'generator', } function MakeMirror(k){ var l; if((k===(void 0))){ l=new UndefinedMirror(); }else if((k===null)){ l=new NullMirror(); }else if((typeof(k)==='boolean') ){ l=new BooleanMirror(k); }else if((typeof(k)==='number')){ l=new NumberMirror(k); }else if((typeof(k)==='string')){ l=new StringMirror(k); }else if((typeof(k)==='symbol')){ l=new SymbolMirror(k); }else if((%_IsArray(k))){ l=new ArrayMirror(k); }else if((%IsDate(k)) ){ l=new DateMirror(k); }else if((%IsFunction(k))){ l=new FunctionMirror(k); }else if(%IsRegExp(k)){ l=new RegExpMirror(k); }else if((%IsJSError(k)) ){ l=new ErrorMirror(k); }else if((%IsScriptWrapper(k)) ){ l=new ScriptMirror(k); }else if((%_IsJSMap(k)) ||(%_IsJSWeakMap(k))){ l=new MapMirror(k); }else if((%_IsJSSet(k)) ||(%_IsJSWeakSet(k))){ l=new SetMirror(k); }else if((%IsJSMapIterator(k)) ||(%IsJSSetIterator(k)) ){ l=new IteratorMirror(k); }else if(%is_promise(k)){ l=new PromiseMirror(k); }else if((%IsJSGeneratorObject(k)) ){ l=new GeneratorMirror(k); }else{ l=new ObjectMirror(k,j.OBJECT_TYPE); } return l; } function GetUndefinedMirror(){ return MakeMirror((void 0)); } function inherits(m,n){ var o=function(){}; o.prototype=n.prototype; m.super_=n.prototype; m.prototype=new o(); m.prototype.constructor=m; } var p=80; var q={}; q.Data=0; q.Accessor=1; var r={}; r.None=0; r.ReadOnly=1; r.DontEnum=2; r.DontDelete=4; var s={Global:0, Local:1, With:2, Closure:3, Catch:4, Block:5, Script:6, Eval:7, Module:8, }; function Mirror(t){ this.type_=t; } Mirror.prototype.type=function(){ return this.type_; }; Mirror.prototype.isValue=function(){ return this instanceof ValueMirror; }; Mirror.prototype.isUndefined=function(){ return this instanceof UndefinedMirror; }; Mirror.prototype.isNull=function(){ return this instanceof NullMirror; }; Mirror.prototype.isBoolean=function(){ return this instanceof BooleanMirror; }; Mirror.prototype.isNumber=function(){ return this instanceof NumberMirror; }; Mirror.prototype.isString=function(){ return this instanceof StringMirror; }; Mirror.prototype.isSymbol=function(){ return this instanceof SymbolMirror; }; Mirror.prototype.isObject=function(){ return this instanceof ObjectMirror; }; Mirror.prototype.isFunction=function(){ return this instanceof FunctionMirror; }; Mirror.prototype.isUnresolvedFunction=function(){ return this instanceof UnresolvedFunctionMirror; }; Mirror.prototype.isArray=function(){ return this instanceof ArrayMirror; }; Mirror.prototype.isDate=function(){ return this instanceof DateMirror; }; Mirror.prototype.isRegExp=function(){ return this instanceof RegExpMirror; }; Mirror.prototype.isError=function(){ return this instanceof ErrorMirror; }; Mirror.prototype.isPromise=function(){ return this instanceof PromiseMirror; }; Mirror.prototype.isGenerator=function(){ return this instanceof GeneratorMirror; }; Mirror.prototype.isProperty=function(){ return this instanceof PropertyMirror; }; Mirror.prototype.isInternalProperty=function(){ return this instanceof InternalPropertyMirror; }; Mirror.prototype.isFrame=function(){ return this instanceof FrameMirror; }; Mirror.prototype.isScript=function(){ return this instanceof ScriptMirror; }; Mirror.prototype.isContext=function(){ return this instanceof ContextMirror; }; Mirror.prototype.isScope=function(){ return this instanceof ScopeMirror; }; Mirror.prototype.isMap=function(){ return this instanceof MapMirror; }; Mirror.prototype.isSet=function(){ return this instanceof SetMirror; }; Mirror.prototype.isIterator=function(){ return this instanceof IteratorMirror; }; Mirror.prototype.toText=function(){ return"#<"+this.constructor.name+">"; }; function ValueMirror(t,k){ %_Call(Mirror,this,t); this.value_=k; } inherits(ValueMirror,Mirror); ValueMirror.prototype.isPrimitive=function(){ var t=this.type(); return t==='undefined'|| t==='null'|| t==='boolean'|| t==='number'|| t==='string'|| t==='symbol'; }; ValueMirror.prototype.value=function(){ return this.value_; }; function UndefinedMirror(){ %_Call(ValueMirror,this,j.UNDEFINED_TYPE,(void 0)); } inherits(UndefinedMirror,ValueMirror); UndefinedMirror.prototype.toText=function(){ return'undefined'; }; function NullMirror(){ %_Call(ValueMirror,this,j.NULL_TYPE,null); } inherits(NullMirror,ValueMirror); NullMirror.prototype.toText=function(){ return'null'; }; function BooleanMirror(k){ %_Call(ValueMirror,this,j.BOOLEAN_TYPE,k); } inherits(BooleanMirror,ValueMirror); BooleanMirror.prototype.toText=function(){ return this.value_?'true':'false'; }; function NumberMirror(k){ %_Call(ValueMirror,this,j.NUMBER_TYPE,k); } inherits(NumberMirror,ValueMirror); NumberMirror.prototype.toText=function(){ return''+this.value_; }; function StringMirror(k){ %_Call(ValueMirror,this,j.STRING_TYPE,k); } inherits(StringMirror,ValueMirror); StringMirror.prototype.length=function(){ return this.value_.length; }; StringMirror.prototype.getTruncatedValue=function(u){ if(u!=-1&&this.length()>u){ return this.value_.substring(0,u)+ '... (length: '+this.length()+')'; } return this.value_; }; StringMirror.prototype.toText=function(){ return this.getTruncatedValue(p); }; function SymbolMirror(k){ %_Call(ValueMirror,this,j.SYMBOL_TYPE,k); } inherits(SymbolMirror,ValueMirror); SymbolMirror.prototype.description=function(){ return %SymbolDescription(%ValueOf(this.value_)); } SymbolMirror.prototype.toText=function(){ return %SymbolDescriptiveString(%ValueOf(this.value_)); } function ObjectMirror(k,t){ t=t||j.OBJECT_TYPE; %_Call(ValueMirror,this,t,k); } inherits(ObjectMirror,ValueMirror); ObjectMirror.prototype.className=function(){ return %ClassOf(this.value_); }; ObjectMirror.prototype.constructorFunction=function(){ return MakeMirror(%DebugGetProperty(this.value_,'constructor')); }; ObjectMirror.prototype.prototypeObject=function(){ return MakeMirror(%DebugGetProperty(this.value_,'prototype')); }; ObjectMirror.prototype.protoObject=function(){ return MakeMirror(%DebugGetPrototype(this.value_)); }; ObjectMirror.prototype.hasNamedInterceptor=function(){ var v=%GetInterceptorInfo(this.value_); return(v&2)!=0; }; ObjectMirror.prototype.hasIndexedInterceptor=function(){ var v=%GetInterceptorInfo(this.value_); return(v&1)!=0; }; ObjectMirror.prototype.propertyNames=function(){ return %GetOwnPropertyKeys(this.value_,0); }; ObjectMirror.prototype.properties=function(){ var w=this.propertyNames(); var x=new c(w.length); for(var y=0;y'; }; ObjectMirror.GetInternalProperties=function(k){ var x=%DebugGetInternalProperties(k); var D=[]; for(var y=0;yK)return new c(); var L=new c(K-J+1); for(var y=J;y<=K;y++){ var A=%DebugGetPropertyDetails(this.value_,(%_ToString(y))); var k; if(A){ k=new PropertyMirror(this,y,A); }else{ k=GetUndefinedMirror(); } L[y-J]=k; } return L; }; function DateMirror(k){ %_Call(ObjectMirror,this,k); } inherits(DateMirror,ObjectMirror); DateMirror.prototype.toText=function(){ var M=e(this.value_); return M.substring(1,M.length-1); }; function RegExpMirror(k){ %_Call(ObjectMirror,this,k,j.REGEXP_TYPE); } inherits(RegExpMirror,ObjectMirror); RegExpMirror.prototype.source=function(){ return this.value_.source; }; RegExpMirror.prototype.global=function(){ return this.value_.global; }; RegExpMirror.prototype.ignoreCase=function(){ return this.value_.ignoreCase; }; RegExpMirror.prototype.multiline=function(){ return this.value_.multiline; }; RegExpMirror.prototype.sticky=function(){ return this.value_.sticky; }; RegExpMirror.prototype.unicode=function(){ return this.value_.unicode; }; RegExpMirror.prototype.toText=function(){ return"/"+this.source()+"/"; }; function ErrorMirror(k){ %_Call(ObjectMirror,this,k,j.ERROR_TYPE); } inherits(ErrorMirror,ObjectMirror); ErrorMirror.prototype.message=function(){ return this.value_.message; }; ErrorMirror.prototype.toText=function(){ var N; try{ N=%ErrorToString(this.value_); }catch(e){ N='#'; } return N; }; function PromiseMirror(k){ %_Call(ObjectMirror,this,k,j.PROMISE_TYPE); } inherits(PromiseMirror,ObjectMirror); function PromiseGetStatus_(k){ var O=%PromiseStatus(k); if(O==0)return"pending"; if(O==1)return"resolved"; return"rejected"; } function PromiseGetValue_(k){ return %PromiseResult(k); } PromiseMirror.prototype.status=function(){ return PromiseGetStatus_(this.value_); }; PromiseMirror.prototype.promiseValue=function(){ return MakeMirror(PromiseGetValue_(this.value_)); }; function MapMirror(k){ %_Call(ObjectMirror,this,k,j.MAP_TYPE); } inherits(MapMirror,ObjectMirror); MapMirror.prototype.entries=function(P){ var D=[]; if((%_IsJSWeakMap(this.value_))){ var Q=%GetWeakMapEntries(this.value_,P||0); for(var y=0;y3){ this.exception_=A[3]; this.getter_=A[4]; this.setter_=A[5]; } } inherits(PropertyMirror,Mirror); PropertyMirror.prototype.isReadOnly=function(){ return(this.attributes()&r.ReadOnly)!=0; }; PropertyMirror.prototype.isEnum=function(){ return(this.attributes()&r.DontEnum)==0; }; PropertyMirror.prototype.canDelete=function(){ return(this.attributes()&r.DontDelete)==0; }; PropertyMirror.prototype.name=function(){ return this.name_; }; PropertyMirror.prototype.toText=function(){ if((typeof(this.name_)==='symbol'))return %SymbolDescriptiveString(this.name_); return this.name_; }; PropertyMirror.prototype.isIndexed=function(){ for(var y=0;y0; }; FrameDetails.prototype.inlinedFrameIndex=function(){ %CheckExecutionState(this.break_id_); var ap=an; return(this.details_[ag]&ap)>>2; }; FrameDetails.prototype.argumentCount=function(){ %CheckExecutionState(this.break_id_); return this.details_[ab]; }; FrameDetails.prototype.argumentName=function(G){ %CheckExecutionState(this.break_id_); if(G>=0&&G=0&&G=0&&G=0&&G0){ for(var y=0;y0){ D+=this.lineOffset(); D+='-'; D+=this.lineOffset()+this.lineCount()-1; }else{ D+=this.lineCount(); } D+=')'; return D; }; function ContextMirror(aQ){ %_Call(Mirror,this,j.CONTEXT_TYPE); this.data_=aQ; } inherits(ContextMirror,Mirror); ContextMirror.prototype.data=function(){ return this.data_; }; b.InstallConstants(a,[ "MakeMirror",MakeMirror, "ScopeType",s, "PropertyType",q, "PropertyAttribute",r, "Mirror",Mirror, "ValueMirror",ValueMirror, "UndefinedMirror",UndefinedMirror, "NullMirror",NullMirror, "BooleanMirror",BooleanMirror, "NumberMirror",NumberMirror, "StringMirror",StringMirror, "SymbolMirror",SymbolMirror, "ObjectMirror",ObjectMirror, "FunctionMirror",FunctionMirror, "UnresolvedFunctionMirror",UnresolvedFunctionMirror, "ArrayMirror",ArrayMirror, "DateMirror",DateMirror, "RegExpMirror",RegExpMirror, "ErrorMirror",ErrorMirror, "PromiseMirror",PromiseMirror, "MapMirror",MapMirror, "SetMirror",SetMirror, "IteratorMirror",IteratorMirror, "GeneratorMirror",GeneratorMirror, "PropertyMirror",PropertyMirror, "InternalPropertyMirror",InternalPropertyMirror, "FrameMirror",FrameMirror, "ScriptMirror",ScriptMirror, "ScopeMirror",ScopeMirror, "FrameDetails",FrameDetails, ]); }) (function(a,b){ "use strict"; var c=a.FrameMirror; var d=a.Array; var e=a.RegExp; var f=a.isNaN; var g=a.MakeMirror; var h=a.Math.min; var i=a.Mirror; var j=a.ValueMirror; var k={}; k.DebugEvent={Break:1, Exception:2, AfterCompile:3, CompileError:4, AsyncTaskEvent:5}; k.ExceptionBreak={Caught:0, Uncaught:1}; k.StepAction={StepOut:0, StepNext:1, StepIn:2}; k.ScriptType={Native:0, Extension:1, Normal:2, Wasm:3}; k.ScriptCompilationType={Host:0, Eval:1, JSON:2}; function ScriptTypeFlag(l){ return(1<=this.frameCount()){ throw %make_type_error(44); } return new c(this.break_id,E); }; ExecutionState.prototype.setSelectedFrame=function(F){ var s=(%_ToNumber(F)); if(s<0||s>=this.frameCount()){ throw %make_type_error(44); } this.selected_frame=s; }; ExecutionState.prototype.selectedFrame=function(){ return this.selected_frame; }; function MakeExceptionEvent(B,G,H,I){ return new ExceptionEvent(B,G,H,I); } function ExceptionEvent(B,G,H,I){ this.exec_state_=new ExecutionState(B); this.exception_=G; this.uncaught_=H; this.promise_=I; } ExceptionEvent.prototype.eventType=function(){ return k.DebugEvent.Exception; }; ExceptionEvent.prototype.exception=function(){ return this.exception_; }; ExceptionEvent.prototype.uncaught=function(){ return this.uncaught_; }; ExceptionEvent.prototype.promise=function(){ return this.promise_; }; ExceptionEvent.prototype.func=function(){ return this.exec_state_.frame(0).func(); }; ExceptionEvent.prototype.sourceLine=function(){ return this.exec_state_.frame(0).sourceLine(); }; ExceptionEvent.prototype.sourceColumn=function(){ return this.exec_state_.frame(0).sourceColumn(); }; ExceptionEvent.prototype.sourceLineText=function(){ return this.exec_state_.frame(0).sourceLineText(); }; function MakeCompileEvent(t,l){ return new CompileEvent(t,l); } function CompileEvent(t,l){ this.script_=g(t); this.type_=l; } CompileEvent.prototype.eventType=function(){ return this.type_; }; CompileEvent.prototype.script=function(){ return this.script_; }; function MakeScriptObject_(t,J){ var K={id:t.id(), name:t.name(), lineOffset:t.lineOffset(), columnOffset:t.columnOffset(), lineCount:t.lineCount(), }; if(!(t.data()===(void 0))){ K.data=t.data(); } if(J){ K.source=t.source(); } return K; } function MakeAsyncTaskEvent(l,L){ return new AsyncTaskEvent(l,L); } function AsyncTaskEvent(l,L){ this.type_=l; this.id_=L; } AsyncTaskEvent.prototype.type=function(){ return this.type_; } AsyncTaskEvent.prototype.id=function(){ return this.id_; } b.InstallConstants(a,[ "Debug",k, "CompileEvent",CompileEvent, ]); b.InstallConstants(b,[ "MakeExecutionState",MakeExecutionState, "MakeExceptionEvent",MakeExceptionEvent, "MakeCompileEvent",MakeCompileEvent, "MakeAsyncTaskEvent",MakeAsyncTaskEvent, ]); }) (function(a,b){ "use strict"; var c=a.Debug.findScriptSourcePosition; var d=a.Array; var e=a.Math.floor; var f=a.Math.max; var g=a.SyntaxError; var h; function ApplyPatchMultiChunk(script,diff_array,new_source,preview_only, change_log){ var i=script.source; var j=GatherCompileInfo(i,script); var k=BuildCodeInfoTree(j); var l=new PosTranslator(diff_array); MarkChangedFunctions(k,l.GetChunks()); FindLiveSharedInfos(k,script); var m; try{ m=GatherCompileInfo(new_source,script); }catch(e){ var n= new Failure("Failed to compile new version of script: "+e); if(e instanceof g){ var o={ type:"liveedit_compile_error", syntaxErrorMessage:e.message }; CopyErrorPositionToDetails(e,o); n.details=o; } throw n; } var p=m.reduce( (max,info)=>f(max,info.function_literal_id),0); var q=BuildCodeInfoTree(m); FindCorrespondingFunctions(k,q); var r=new d(); var s=new d(); var t=new d(); var u=new d(); function HarvestTodo(v){ function CollectDamaged(w){ s.push(w); for(var x=0;xO[E].start_position){ R=E; } } if(R!=x){ var S=O[R]; var T=P[R]; O[R]=O[x]; P[R]=P[x]; O[x]=S; P[x]=T; } } var U=0; function ResetIndexes(V,W){ var X=-1; while(U=ay.pos1+ay.len1){ return as+ay.pos2+ay.len2-ay.pos1-ay.len1; } if(!at){ at=PosTranslator.DefaultInsideChunkHandler; } return at(as,ay); }; PosTranslator.DefaultInsideChunkHandler=function(as,az){ Assert(false,"Cannot translate position in changed area"); }; PosTranslator.ShiftWithTopInsideChunkHandler= function(as,az){ return as-az.pos1+az.pos2; }; var h={ UNCHANGED:"unchanged", SOURCE_CHANGED:"source changed", CHANGED:"changed", DAMAGED:"damaged" }; function CodeInfoTreeNode(aA,aB,aC){ this.info=aA; this.children=aB; this.array_index=aC; this.parent=(void 0); this.status=h.UNCHANGED; this.status_explanation=(void 0); this.new_start_pos=(void 0); this.new_end_pos=(void 0); this.corresponding_node=(void 0); this.unmatched_new_nodes=(void 0); this.textual_corresponding_node=(void 0); this.textually_unmatched_new_nodes=(void 0); this.live_shared_function_infos=(void 0); } function BuildCodeInfoTree(aD){ var aE=0; function BuildNode(){ var aF=aE; aE++; var aG=new d(); while(aE=am.length;}; this.TranslatePos=function(as){return as+aL;}; }; function ProcessInternals(aM){ aM.new_start_pos=aJ.TranslatePos( aM.info.start_position); var aN=0; var aO=false; var aP=false; while(!aJ.done()&& aJ.current().pos1= aJ.current().pos1+aJ.current().len1){ aO=true; aJ.next(); continue; }else if(aQ.info.start_position<=aJ.current().pos1&& aQ.info.end_position>=aJ.current().pos1+ aJ.current().len1){ ProcessInternals(aQ); aP=aP|| (aQ.status!=h.UNCHANGED); aO=aO|| (aQ.status==h.DAMAGED); aN++; continue; }else{ aO=true; aQ.status=h.DAMAGED; aQ.status_explanation= "Text diff overlaps with function boundary"; aN++; continue; } }else{ if(aJ.current().pos1+aJ.current().len1<= aM.info.end_position){ aM.status=h.CHANGED; aJ.next(); continue; }else{ aM.status=h.DAMAGED; aM.status_explanation= "Text diff overlaps with function boundary"; return; } } Assert("Unreachable",false); } while(aN0){ return bd; } } function TraverseTree(w){ w.live_shared_function_infos=FindFunctionInfos(w.info); for(var x=0;x ["+bl+"]"; } return; } var bm; function CheckStackActivations(old_shared_wrapper_list, new_shared_list, Z){ var bn=new d(); for(var x=0;x0){ Z.push({dropped_from_stack:bq}); } if(bp.length>0){ Z.push({functions_on_stack:bp}); throw new Failure("Blocked by functions on stack"); } return bq.length; } var bm={ AVAILABLE_FOR_PATCH:1, BLOCKED_ON_ACTIVE_STACK:2, BLOCKED_ON_OTHER_STACK:3, BLOCKED_UNDER_NATIVE_CODE:4, REPLACED_ON_ACTIVE_STACK:5, BLOCKED_UNDER_GENERATOR:6, BLOCKED_ACTIVE_GENERATOR:7, BLOCKED_NO_NEW_TARGET_ON_RESTART:8 }; bm.SymbolName=function(bt){ var bu=bm; for(var bv in bu){ if(bu[bv]==bt){ return bv; } } }; function Failure(ag){ this.message=ag; } Failure.prototype.toString=function(){ return"LiveEdit Failure: "+this.message; }; function CopyErrorPositionToDetails(bw,o){ function createPositionStruct(M,bx){ if(bx==-1)return; var by=%ScriptPositionInfo(M,bx,true); if(by==null)return; return{ line:by.line+1, column:by.column+1, position:bx }; } if(!("scriptObject"in bw)||!("startPosition"in bw)){ return; } var M=bw.scriptObject; var bz={ start:createPositionStruct(M,bw.startPosition), end:createPositionStruct(M,bw.endPosition) }; o.position=bz; } function SetScriptSource(M,bA,bB,Z){ var i=M.source; var bC=CompareStrings(i,bA); return ApplyPatchMultiChunk(M,bC,bA,bB, Z); } function CompareStrings(bD,bE){ return %LiveEditCompareStrings(bD,bE); } function ApplySingleChunkPatch(M,change_pos,change_len,new_str, Z){ var i=M.source; var bA=i.substring(0,change_pos)+ new_str+i.substring(change_pos+change_len); return ApplyPatchMultiChunk(M, [change_pos,change_pos+change_len,change_pos+new_str.length], bA,false,Z); } function DescribeChangeTree(aR){ function ProcessOldNode(w){ var bF=[]; for(var x=0;x>1); var j=2|4|1; for(var k=0;k>1)+(fields?fields.length:0); if(n>=4){ %OptimizeObjectForAddingMultipleProperties(m,n); } if(fields){ for(var k=0;k>2; var D=%EstimateNumberOfElements(l); return(DD*4); } function Stack(){ this.length=0; this.values=new e(); } Stack.prototype.length=null; Stack.prototype.values=null; function StackPush(E,F){ E.values[E.length++]=F; } function StackPop(E){ E.values[--E.length]=null } function StackHas(E,G){ var m=E.length; var H=E.values; for(var t=0;t=K){ var O=l[z]; if(!(O===(void 0))||z in l){ %CreateDataProperty(N,z-K,O); } } } } } function SparseMove(l,K,L,M,Q){ if(Q===L)return; var R=new e( g(M-L+Q,0xffffffff)); var S; var q=%GetArrayKeys(l,M); if((typeof(q)==='number')){ var r=q; for(var t=0;t=K+L){ var O=l[z]; if(!(O===(void 0))||z in l){ var T=z-L+Q; R[T]=O; if(T>0xfffffffe){ S=S||new e(); S.push(T); } } } } } %MoveArrayContents(R,l); if(!(S===(void 0))){ var m=S.length; for(var t=0;tL){ for(var t=M-L;t>K;t--){ var V=t+L-1; var W=t+Q-1; if(V in l){ l[W]=l[V]; }else{ delete l[W]; } } }else{ for(var t=K;tM-L+Q;t--){ delete l[t-1]; } } } } var X; %DefineMethodsInternal(d.prototype,class{toString(){ var l; var Y; if((%_IsArray(this))){ Y=this.join; if(Y===X){ return Join(this,this.length,',',false); } l=this; }else{ l=(%_ToObject(this)); Y=l.join; } if(!(typeof(Y)==='function')){ return %_Call(i,l); } return %_Call(Y,l); }},-1); function InnerArrayToLocaleString(l,m){ return Join(l,(%_ToLength(m)),',',true); } %DefineMethodsInternal(d.prototype,class{toLocaleString(){ var l=(%_ToObject(this)); var Z=l.length; return InnerArrayToLocaleString(l,Z); }},-1); function InnerArrayJoin(w,l,m){ if((w===(void 0))){ w=','; }else{ w=(%_ToString(w)); } if(m===1){ var u=l[0]; if((u==null))return''; return(%_ToString(u)); } return Join(l,m,w,false); } %DefineMethodsInternal(d.prototype,class{join(w){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); return InnerArrayJoin(w,l,m); }},-1); function ArrayPopFallback(){ var l=(%_ToObject(this)); var aa=(%_ToLength(l.length)); if(aa==0){ l.length=aa; return; } aa--; var F=l[aa]; delete l[aa]; l.length=aa; return F; } function ArrayPushFallback(){ var l=(%_ToObject(this)); var aa=(%_ToLength(l.length)); var ab=arguments.length; if(ab>9007199254740991-aa)throw %make_type_error(260,ab,aa); for(var t=0;t=t){ ah=t; while(s[++ae]==t){} ai=M-t-1; } var aj=l[ah]; if(!(aj===(void 0))||ah in l){ var ak=l[ai]; if(!(ak===(void 0))||ai in l){ l[ah]=ak; l[ai]=aj; }else{ l[ai]=aj; delete l[ah]; } }else{ var ak=l[ai]; if(!(ak===(void 0))||ai in l){ l[ah]=ak; delete l[ai]; } } } } function PackedArrayReverse(l,M){ var af=M-1; for(var t=0;t0){ if(new_len>=2**53)throw %make_type_error(176); if(M>0&&UseSparseVariant(l,M,(%_IsArray(l)),M)&& !%object_is_sealed(l)){ SparseMove(l,0,0,M,ao); }else{ SimpleMove(l,0,0,M,ao); } for(var t=0;tM?M:K; } function ComputeSpliceDeleteCount(ar,ao,M,K){ var L=0; if(ao==1) return M-K; L=(%_ToInteger(ar)); if(L<0) return 0; if(L>M-K) return M-K; return L; } function ArraySpliceFallback(ap,ar){ var ao=arguments.length; var l=(%_ToObject(this)); var M=(%_ToLength(l.length)); var K=ComputeSpliceStartIndex((%_ToInteger(ap)),M); var L=ComputeSpliceDeleteCount(ar,ao,M, K); var as=ao>2?ao-2:0; const new_len=M-L+as; if(new_len>=2**53)throw %make_type_error(176); var N=ArraySpeciesCreate(l,L); N.length=L; var at=L; if(as!=L){ at+=M-K-L; } if(UseSparseVariant(l,M,(%_IsArray(l)),at)){ %NormalizeElements(l); if((%_IsArray(N)))%NormalizeElements(N); SparseSlice(l,K,L,M,N); SparseMove(l,K,L,M,as); }else{ SimpleSlice(l,K,L,M,N); SimpleMove(l,K,L,M,as); } var t=K; var au=2; var av=arguments.length; while(au=ay;af--){ var aB=o[af]; var aC=aw(aB,aA); if(aC>0){ o[af+1]=aB; }else{ break; } } o[af+1]=aA; } }; function GetThirdIndex(o,ay,az){ var aD=new e(); var aE=200+((az-ay)&15); var af=0; ay+=1; az-=1; for(var t=ay;t>1][0]; return aF; } function QuickSort(o,ay,az){ var aF=0; while(true){ if(az-ay<=10){ InsertionSort(o,ay,az); return; } if(az-ay>1000){ aF=GetThirdIndex(o,ay,az); }else{ aF=ay+((az-ay)>>1); } var aG=o[ay]; var aH=o[az-1]; var aI=o[aF]; var aJ=aw(aG,aH); if(aJ>0){ var aB=aG; aG=aH; aH=aB; } var aK=aw(aG,aI); if(aK>=0){ var aB=aG; aG=aI; aI=aH; aH=aB; }else{ var aL=aw(aH,aI); if(aL>0){ var aB=aH; aH=aI; aI=aB; } } o[ay]=aG; o[az-1]=aI; var aM=aH; var aN=ay+1; var aO=az-1; o[aF]=o[aN]; o[aN]=aM; partition:for(var t=aN+1;t0){ do{ aO--; if(aO==t)break partition; var aP=o[aO]; aC=aw(aP,aM); }while(aC>0); o[t]=o[aO]; o[aO]=aA; if(aC<0){ aA=o[t]; o[t]=o[aN]; o[aN]=aA; aN++; } } } if(az-aO=m)U=m-1; } var aR=0; var aS=U; if(UseSparseVariant(l,m,(%_IsArray(l)),U)){ %NormalizeElements(l); var q=%GetArrayKeys(l,U+1); if((typeof(q)==='number')){ aS=q; }else{ if(q.length==0)return-1; var aT=GetSortedArrayKeys(l,q); var t=aT.length-1; while(t>=0){ var z=aT[t]; if(l[z]===aA)return z; t--; } return-1; } } if(!(aA===(void 0))){ for(var t=aS;t>=aR;t--){ if(l[t]===aA)return t; } return-1; } for(var t=aS;t>=aR;t--){ if((l[t]===(void 0))&&t in l){ return t; } } return-1; }},1); %DefineMethodsInternal(d.prototype,class{copyWithin(target,ap,aq){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); target=(%_ToInteger(target)); var az; if(target<0){ az=f(m+target,0); }else{ az=g(target,m); } ap=(%_ToInteger(ap)); var ay; if(ap<0){ ay=f(m+ap,0); }else{ ay=g(ap,m); } aq=(aq===(void 0))?m:(%_ToInteger(aq)); var aU; if(aq<0){ aU=f(m+aq,0); }else{ aU=g(aq,m); } var aV=g(aU-ay,m-az); var aW=1; if(ay0){ if(ay in l){ l[az]=l[ay]; }else{ delete l[az]; } ay=ay+aW; az=az+aW; aV--; } return l; }},2); %DefineMethodsInternal(d.prototype,class{fill(F,ap,aq){ var l=(%_ToObject(this)); var m=(%_ToLength(l.length)); var t=(ap===(void 0))?0:(%_ToInteger(ap)); var aq=(aq===(void 0))?m:(%_ToInteger(aq)); if(t<0){ t+=m; if(t<0)t=0; }else{ if(t>m)t=m; } if(aq<0){ aq+=m; if(aq<0)aq=0; }else{ if(aq>m)aq=m; } for(;t.C .(CC(T66A A CA A EpA A A A C*X88A  F,0C"X>.CC(T66A A A A A A A A A A EpA A A A A A A EpE  A ECA CCA A IE^^dA A CQG >&t*C1) Hx|4qE5+ H4-C1) Hx|4E5* F~4C1) Hx|4iC1) Hx|4)C1) Hx|4C1) Hx|4C1) Hx|4iC1) Hx|4)C1) Hx|4C1) Hx|4C1) Hx|4iA %rV6A A CQG >&t*YC1) Hx|4E5+ H4C1) Hx|4E5* F~4QC1) Hx|4C1) Hx|4C1) Hx|4C1) Hx|4QC1) Hx|4C1) Hx|4C1) Hx|4C1) Hx|4QC1) Hx|4A %"z2YC>>fj25C<<bf2A A A A CA A A A A  4RNV\A A iFA6@rH FA6Fv H FA6@rH yFA6@rH )FA6@rH FA6@rH FA6@rH 9FA6FxH FA6FxH FA6@rH IFA6DtH FA6DtH FA6@rH YEpMB>"z2C-"v2lP6C-#<vX8C>>fj2aC<<bf2A 1A 8 4A A ECA A CEEpF*^^f~qF,<<04|5F&`` &6@bF&`` &6BdF&`` &6@bF&`` &6@bUF&`` &6@bF&`` &6BdF&\\$&>D^F&\\$&>D^uF&\\$&>D^=F-6B &4V~EC!,,`8\>&dpjA & <0$F*^^f~mF,<<04~1F&\\ &0@dF&\\ &0BbF&\\ &0@dF&\\ &0@dQF&\\ &0@dF&\\ &0BbF&XX$&8D`F&XX$&8D`qF&XX$&8D`9F-6B &0V|EE&&B,n:FE&&zB |b:E&&B,n:FmE&&zB |b:MEFFN0~l%F ^E 66P<F xxL XF ^F ^qF \QI1vv2 .0A C!,,`8\>&dpjF>dd f}I1vv2 .05F ^^dlEFFN0~lF \F xxL \F vv|`}F \]F ^=F ^I1vv2 48F>``fI1vv2 48=F ^^dlCF..4C EEp ((b.JCEp ((b.JCEp ((b.JCaF::@CCCCCCEpCCCCCFCF..4EpEaEp ((b.JC9Ep ((b.JCEp ((b.JCF88>CCCCCCEpCCCCCF-A 6"*FA 6"*FA CA A 6"*qFIA 6"*1FA CA A *(F..4A A A A CCUA *$=C`` A *$C VV\\A *(F..4A A A C}E%NN ^d2IA *$1A *$A *$A *$A A A *$A *$A A F 6mCUL&&,4BT &,>. F 6CCF 6CUL&&,4BT &,>.UF 6CC!F :F((.6D.|.  ,& <EF :CCF :F((.6D.|.  ,& <5F :CCFA7,8R"$"$F$$$t8 < &$>  \  8 bL^A  &(FA7,8RR$DFF ^b:}F ^bBCQFA7.:T"$$"F.(lB P , >  <  T hJb]FA7,8RT$DFF ^bBA I2>| >` hFFuF*..\ D<H9I3B@d bFFF*00d"F>>A A C& 2.`l 0UF.2R8A 4$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 F ( 0> p x      ,  J                       D     A $6( A A A A A A A A A A A A A A A A A A A A C.8 ~JtPLF" : L t |       ,  R                        J     Ep1&":JrJCCCCCCCCCCCCCCCCCCCCCCCCCCCCF4J`.JC"B*(CA $6( A A A A qC"44< F2x 6=C ,!Ep#<<D P4 6E 2"E 4$E :$$C)..Jl @A A A =E 0!C& 2.`l 0A  &(C0 t: Zrbhh(A  E 44 H hpvv*A A C& 2.`l 0UC0 t: Zrbhh(CEpFFA A A &"*60 EpD(@HTN C62:F@ eF""N,JR^X 9A !FQGVVx~.  FQFNNlr. naE%&& 4:R-C! \ L H2\8DPXF<< fJbjvp ѼCFCFEpCFCFEpA A FECA A A FA FFA FA FFCEpA CECA A A A A FA FA A A A A A A $ iCA9006BLj*  A ",(A E%44~BzH>A  A $ CA9006BLj*  =A ",(%E%44 vDrJ0zC BոC BC DC FC DZeC DZIA >^D@1A >^D@A >^D@A >^D@A >^D@ѷA 8X>FA >^D@A >^D@C`` eC VV\\IA -F5J*F88EpFUL J. IF88FFFnn 8 V 4 D6     EMA  1A  FFA *A A A A A A A A FA iC>CA A EEp zz~>CECCEFFFFFFEpEpEpQEp~~E%FEp zz~>A ղA  .*&  A  6*A A aA E -  C A   ձ A  CA A mA  QE..4J~)A D A  `*P0<A ݰC%DD*tn|&A   }  CQ  1  C ffllC8XRݯA CCA  0<FA ($C]A A A -A ($A A A  0<A CA A A A A A CA A A A A A CCA   A A A FCA CA A CEA UFxxCA A A CCEpCլEp LLb2A CCA EA EpEpFCCECCEEEECCCC*D0A A CuCDIA "CA CA C ffj>A A A A A A C ffj>A A A A A A CCA A EF5*||v(P  A A CCA YFB9FD CA   CA EpCCEpEA qFCA A A FCCFCEp LLf2A CCA EA CCECCECCEpEEEpCCCŦC.H4A A CCFUA "CA !C ffj>A E .. X:6٥E .. X:6E .. X:6E .. X:6F hhz>eF RR(zBEF jj|@%F RR*|DF jj|@F RR*|DŤInF RR&x@F hhzBaF RR(zFAF hhzB!F RR(zFEpF j  N٣EpF j  NEpF j  NEpF j  NaFH l  N9FH l  NGL t  RGL p  RGL p  REp@@ d" NmEp@@ d" NAEp@@ d" NEp@@ d" NFBB f& PFBB f& PGDD p& ReGFF n& P9GFF n& PFFFFݠA @6<<(A @6<<(FA A A EpA A A =C XX^JC$$ t.j6VA C:: DLX͟C22 <xDXE,, z6p>REp>> HPTeE88 B|JVAC <*.A A  CA &4,$A ŞC 2TA A A A A A aE bbj>CA A A  0<E tt|<A A ɝA     } ($ (]E!XX` -C ""N&6A C $$Z,DCnn~ (ŜC<<L*v (Evv (qEBBR*| *A 5C&&t.8fjj"CA  B(4A  .,͛CJJhZ dd$A A  A }C>RZJUA  $$ .4-A  8&.A  :(,C v(*RlZ:՚A  :(,C v(*RlZ:A A A A iA  &I   A CA A J NCݙC d^CA *:.A CyA TXA A A A A A A A  JјA  &EpFA A CmFMB^bv CEA A CCEpA EpA EpA FEA CEFCA EEFECA A A CA F ~A A CA A EFA A EpFEFA FCA CA A CA A Ep]FA A FCA EFٔEp  ZA A A A qA YA AA )A A F " A FCECCEpCEA A A A EpA CA EEECA A CC0R6.F r\tb"FCCA FEA CA CCA CA CA A EpA A A A A A A A A A A A A CCA A A A CC A A A CqC4\<8A A CCCCCA A A A A A A A A A CFEpA A EA A A A CA A CCA A A A A CCA A A A A A FCCFA CFA A A A CCCCA A CCA A A CA A A EA FC0;0;l2;2;3; 4;4;<5;5;L6;jP0<<<<8>===l==AH >.~7:+/r r]X_yP&ef ER2%w4#v<>l>>=vvv b > >c > vB!b>(>c@>bD>X>cp>AH >.~7:+/r r]X_yP&ef ER2%w4!!!!>$>l>p>>l==;X$><<!1"5"G"!""G"!""G"!""G"!"}"!\#`#"!z5"z###$!>l*>=;=l==;X$><<#8$}<$#q$u$<$7>@;>=>D6>>>?>D?>?>?>0<?>?>?>$$$$H7>X>X>X>X>Y> Y>\Y>Y>Y>Y>Y>q>r>s>s>4t>l==;Z>Z>[>\>$^>_>Z>Lu>\>^>_>lJa><lJlJZ>[>TlJ\lJ`v>`w>Z>dlJn%%%%n%%%n%F&J&g&hx>x>x>x>8y>y>y>y>y>y>y>l==;z>z>=x>z> z>==2&&L'z>Hz>z>z>{>{>p{>x{>{>{>{>8|>l==;@|>p|>=z>n%'J'n%'''n%'J(n%''(>0>?h??l==(#((K)N)((\)_)((s)/((v)((z)~)(())(()((C )((")(())((**4*(*4*(*)*( +)*($+)*((+,+C+(+.C+(++C+(),j-,(-,+-(-_)-(/-( .*.(..(.j.(/*/(//(000(B100(F1J11(`2jd204?4jC4044j4044j4044585H504%j50466604(7,760497=7604T7X760477704888048j8042979R90499}:04H<M<}:04==}:04@?E?n?04@j@04@@@??'??ئ?04AA+B04IDND|D04D_)D04*E/ED04~EEE04F FE04IF_)NF04F_)F04mG.rG=3D3K3S3Z3b3j3q3x333333333333333334 444"4)404,A1A]A04GGH???|?04HHH04HIHḇ??c?v*IUIhImIIUIJ JIUIJAJIUI{JJJhQyQQQQQQ R!R1RIRkRRRRRS ;UIMNNUIhNmNNUINNNUINNNUI@ONEOUIONOUIPN PUIYP]PPF@dF@8G@UI.S J2SUI.SAJ2STG@\G@G@UI.S JfTUI.SAJfTG@G@lH@UI.S JUUI.SAJUUIVVVUI|W JWUI|WAJWUIW2XUIX2XpI@I@$J@8J@K@K@XL@lL@UI+Y0YdYUI+YYdYM@HO@UIVZZZZUI[[v[UI[[_\UI;]@]]UIPPQUIMQPQQW@W@4X@8X@==XXjXXYYY/ \\\^^Ht^^^^^^^^^_t^_^^ +^3_^^b_f_w_^^_j_^^`j`^^h`l`~`^^`j`^^CajGa^^al`a^^aaa^^"a(b^^bb(b^^cJc^^rdc^^ddc^^dde^^dzee^^eee^^dde^^dzee^^eee^^ddMf^^dzeMf^^eeMf^^ddf^^dzef^^eef^^ddA|A@ChCCl==;B BCCC,B|BCtAABB BlJC<lJlJCCTlJ\lJTB`w>CdlJ"C <CLC|BCCl==;PTdN)A'E"PTN)͔єՔdCCCC8Cl==; Bl B B8 BD"I'NHSXĝɝ"ɝ'ɝHɝXɝ$)7t7y~7H77ž7՞ڞ7 )7ю7!N)&h&mՔ&N)ǟ̟Քߟ#(?D[TotttTtנN)ܠ"ܠՔܠ2"7u"7z'77X7ܡ"X%_))b CCcXC4_)8N)ģ"ȣT٣ݣ'v"ݣTݣN)-k-oT-ĤɤۤrdT"EJ_"dHiX~ĥ"ɥTߥN)"AՔ2"797{~7H77ž7ڞ77˦Ц7ю7HMRejX7"<<<ި"T?ɤDIHWX[N)m"m'mTmȩN)ͩ ͩ'ͩTͩ*/m"/ru/w/|X/ӪتuݪX:"?uDIXx ]"]]o]X]ūʫ ʫʫoʫ Xʫ5N):z:T:_іx( C!C!C"C0#Cl==;C8#C=;=l==;2kodC@(C=;=l==;====+C+C,C-C-Cl==;-C.Ct/C/Cl,0C0C1C2C2Cl==;2C3C4C4Cl0CD5C5C6CL6C< <ll#s~КޚК_cК bfevxКЧ>Cp>C>Cx>>C>C8?C@?C?C@C @CX@Cl==;ɬ̬ bήҮ@D515PPPPdC iCDDPDl==8iCȫCCiC iClJCxCXDDDԱߎGqqM#@[bȶhIȶFKȶEJzϸԸDIkkk == >Żڻ=Bڻ[`ڻ~ڻڻȲCCD D`Dl==ܵCCCChDpDxDDCCĵCCTCClJCDlJlJDDTlJ\lJ`v>`w>DdlJDI^I6*I#I l# IпIտID#տ,I1D#1I*ZI_ _I-I2s%xxICCUZqFK S\a!<4DC8DD< <DD`CtCDXDDD<@D0CDDD< < 44;DDD,Dl==;C4D;8DLDlDDl==;1DDpGD|DpG22!%IaY2UX2|HКޚКޚhDDY>Y>DDКvxQ LE4NEHNENEOEl==;OEOEtQE|QEQE$REDXDDDaETETEUE,UE0UE4UE\UEUEVE@WEHWEPWEXWE`WE;?d2qdZ^CG+G GGMX a@DeXEEppEEE< <*CGd`rEuEuEETE< <*~* $*),$xEtyE\EEأEl==;|E,E**Pk***nrxEȏȄE\h\E**Fs pEEE|EEhhh**W*[*[E,EdEclEEdFxFx(FF,F\F̺FFFFFPLEHFȂFRfj~)`xH@yHTyHyHyHl==' + / 3 7 ; ? C G K O S W [ _ c g k o s w {  !! !!!!!!#!'!+!/!3!7!;!?!C!G!K!O!S!W![!_!c!g!k!o!s!w!{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"" """"""#"'"+"/"3"7";"?"C"G"K"O"S"W"["_"c"g"k"o"s"w"{""""""""""""""""""""""""""""""""""## ########'#+#/#3#7#;#?#C#G#K#O#S#W#[#_#c#g#k#o#s#w#{##################################$$ $$$$$$#$6$V$#$$6$$#$%%$#$'''#$'_)'#$( ('#$L(Q('#$(('#$(('#$((#$f)k)(#$)ox)#$_))#$))#$*_))#$*)#$U *)#$*ox*#$*_)*#$*ox*#$A+_)*#$F+*K+#$+K+К/*+_)++q$J.+Z.u.+.J.+u.+J!/+t/u!/EIEIEIEIEIFIFI FI+^.b..|/^._)/a111a+2V2a222a23+3!>VIVIVI,WIl==;X$><<n3333n344n3`4,+d4n34d4n3{"d4n3)ud44^544^544j5^544m5^544p5t5545554554 6H64p6t664F6641t5%7xqIsI0IЂIIl==;v7777v7887v7)#87v7Z.187v7`8d8|8v73979|8v7c9g9}9v79#8}9v7a 99v7+:/:8:v7e:i:8:v7:/::v7::v7),i::v7::v7(;;v7<"<;v7<18<v7> >J>a==#= AkIAԿIIII Il==;IITI\ItI|IԿIII;=l==;IIIItI|IIIIPII< < AAAA ABBA AHBA ABB C ACCC ACDC Ag +DkD AREVEE AYFaE@IDItIIII AFFF AG H AHHI AII A)J-JI Aq~I AHJLJI AJI AxJI AwJ K AK K AC L K A-L1L K AHHML AIML A)J-JML Aq~ML AHJLJML AJML AxJML AwJ1M AK1M AC L1M A-L1L1M A1O5OO AP PO A$P(PP AYPQP AcQgQP AQP AF1URR~?Ef?Y?J?B?E)?6?~?r?f?Y?J?B?E)?6?r?f?Y?J?B?$?~?Ef?Y?J?B?S SOSSSSOSSq$;TSZ.;TSTTSTTSOUJSUSx/SU<I0I4IlIl==;X$><<HIIIIl==;X$><<'W'WW'W2XW'W&CXW'W5VXW'WgXW'WqXW'W XW'WXXW'WX5"X'W94YX'WRYVYkY'WY YjZ#ZZjZ7a[ZjZx[|[[JJJ$Jl==;X$><<\{ ]q]]]q]q$]3^q]g^k^^q]^^^q]_^q]p5/_d_q]___q]Tkk^_q]&`k^*`q]y`}`*`q]``*`q]in``q]aa`q];a?a`q]da`haq]aahaq]aahaq]a`aq]abaq]baaq]REb0bq]lUbtbq]}matbq]vbbq]c cbq] cbq]3cbq]McQcbq]kcoccq] ccq]&d)dIdq]ddq]dddq]ddeq]Jedeq]NedReq]@vdReeeeeegcf{feff{feg g?gegf?ge&hfgGJHJY>Y>PIJXIJ`IJJJY>Y>JJJJ>i\Wii>iHJii>iOU7jOj>ixjOj>iej>ikkk>i&lk*llJll#JllRllC #mll*J>mlm5"mlmŻmlήKnmlunynnD0pJlJ=DXDDD4pJpJ===lJ=<lJlJDpJlJ4mJ(pJ,pJDDD8qJlJ=(pJ,pJDD`w>=dlJlJnl/nlkXonlgokonlJol/olkXoolgokoolJol/olkXoolgokoolJEpl/EplkXoEplgokoEp2ZppКpJ̎JJJ̞Jl==;XqnqqqqXqqqqXqqqXq{'r4rXqrrXq*rXq8s<<8J,J0JJJJJJJl==;JLJ=;=l==;ybf7zbf{-}S@}w}-}}w}-}e~-}1"e~-}B~-}go -}W[JJJJJJJ JJ J<<4K|KKKl==;X$><<)Ku"#A*_A8%݅DAKpBKBKCKDKqv)[ qz)[ `MKOKTKWKDLK4MQ[ 4[ 4#*b[ Ĉ[ ȈkKDkKyKЉ\Љ%uYЉm ЉЉC <KKK$Kl==;X$><<|KĴKȴKKl==;X$><<VɬiV`8FVMVVcV_+V~*V͍*эV+x*"V&l*vVp*ώV)_)ώV-,+1Ve:JVRVV~V*VVV AxK K=;=l==;X)JJbfw<K`KdKK<KK$K8KКޚКޚovxК_c&КК"1К_cК\j5 #- ئܦ- ֩*۩ A_)۩ $ w| 05 gl}  MR ҭ (-ҭ fk  49 sx} } x %*˰ ,+ ' . . ڲ߲ TYs s ) Ve |e յڵ H ž $H) ž)yr`sssssYtsYusvsxs{s  _du u =_)B * c #(> > NSZ Z Z ƿ uƿ ƿ ƿ KPƿ lqƿ  * /4 HM af z NS ot S c Lu QcV 'V _) u  w| l` l`% ql`v M % *J&/ {~/ / $_ #E, 15i;AFdNSX7^Gcgow|y֙Xǭ9BB:z )K/4O:?CKNPSDX0]djrcw~UU@@ͤBXDF2>FiH*!`)0j8f>BfJAPXH]0bKjrv=~W0ݮmNU;"i hM4M4M4M4M4M4MM4M4M5M05M45M85MML5MP5Mx5M5M5M5M in  bCMDMc$DM 6;}  Q (+b zMMMMTMl==ṂMMMMl==M8M M$MPMl==XMMMMMl==MMhMlMMl==MMhMlMMl==КgctMتMhMlMMl==īMMMMHMl==PMMMMMl==MhMMMDMMHM=M= ;@f f FK joLMPMdMMMĵMMMM,M $) :?C C C C ,C 1C 6;C nsC ;C C C ;C sC  )MMMM %*MMMMMMMM KP P P P *P PMtM,MMM #X   F+ ID y~ RW WTnrT`xT # W Tޚ W Te: T T  < Tp t < T T T T, 0 Tl[ T TMDM,M M\M< <T @MMD N$N%Nl==;MMXMxMMNNMMHMMMM@NNMMMMMM(NlJ8N<MpM0MhMMMN`w>MdlJXMMNNxMXDDD: M ] : %M : ^J : 1 :  : ' : *J&5 : :  : ~ : -`: : >: a%: ~: : : : NRu: ,+: : (+: ,0: H0L: /0: *!: _)!: s !: A !: w0!: {M %N%NY^&-nu29PWhoz #B I  n!u!" """ #'###6$=$$$8%?%%%L&S&&&b'i'''(() )))(*/***\+c++,,,0-7---J.Q...T/[///t0{01111 22223333(4/444F5M55566077777x88 9'999::D;K;;;<<H=O===>>J?Q???@@BAIAAABB0C7CCChDoDEEEETF[FFFGG2H9HHHtI{IJJJJpKwK&L-LLLhMoMMNNNVO]O PPPPnQuQ>RERS SSSvT}T2U9UUUlVsVWWWW\XcXY!YYY|ZZ*[1[[[~\\@]G]]]^^L_S___``"a)aaatb{bc!ccc`dgddeeeLfSffftg{g hhhh^ieijjjjLkSkkkllBmImmmnnHoOoppppTq[qrrrrts{st%tttruyu v'vvvww>xExxxyy2z9zzz{{J|Q|||}}>~E~bi Ł^e")ʃу&-x&-ډŊ>EҍٍPWƑ ")<CHOV]ip{áʡ٢4;V]v}¬íʭʮѮޯ "4;FMV]ryù 07AHX_gnry(/QX 7>jq+2^e =Dmt 29_f4;`g 5<ls 7>^e6=ryZa%E L g n    GN%,fm!JQnu( / U!\!""##$$&&3':'Q(X(p)w)**++- -2.9.^/e/001122%4,4X5_56677994:;:x;;<<==.?5?c@j@AABB DDDEKEFFxGGHHIIJJKKM MMN3O:O&P-P_QfQ\RcRSSTTUUVVWXXX4Z;Z+[2[n\u\{]]^^__a&aBbIbccdd ffNgUgphwhSO0$OY>4$O8$OH$OSOP$OY>T$OX$Oh$OSOp$OY>t$Ox$O$OSO$OY>$O$O$OSO$OY>$O$O$OSO$OY>$O$O$OSO$OY>$O$O%OSO%OY>%O%O(%OSO0%OY>4%O8%OH%OSOP%OY>T%OX%Oh%OSOp%OY>t%Ox%O%OSO%OY>%O%O%OSO%OY>%O%O%OSO%OY>%O%O%OSO%OY>%O%O&OSO&OY>&O&O(&OSO0&OY>4&O8&OH&OSOP&OY>T&OX&Oh&OSOp&OY>t&Ox&O&OSO&OY>&O&O&OSO&OY>&O&O&OSO&OY>&O&O&OSO&OY>&O&O'OSO'OY>'O'O('OSO0'OY>4'O8'OH'OSOP'OY>T'OX'Oh'OSOp'OY>t'Ox'O'OSO'OY>'O'O'OSO'OY>'O'O'OSO'OY>'O'O'OSO'OY>'O'O(OSO(OY>(O(O((OSO0(OY>4(O8(OH(OSOP(OY>T(OX(Oh(OSOp(OY>t(Ox(O(OSO(OY>(O(O(OSO(OY>(O(O(OSO(OY>(O(O(OSO(OY>(O(O)OSO)OY>)O)O()OSO0)OY>4)O8)OH)OSOP)OY>T)OX)Oh)OSOp)OY>t)Ox)O)OSO)OY>)O)O)OSO)OY>)O)O)OSO)OY>)O)O)OSO)OY>)O)O*OSO*OY>*O*O(*OSO0*OY>4*O8*OH*OSOP*OY>T*OX*Oh*OSOp*OY>t*Ox*O*OSO*OY>*O*O*OSO*OY>*O*O*OSO*OY>*O*O*OSO*OY>*O*O+OSO+OY>+O+O(+OSO0+OY>4+O8+OH+OSOP+OY>T+OX+Oh+OSOp+OY>t+Ox+O+OSO+OY>+O+O+OSO+OY>+O+O+OSO+OY>+O+O+OSO+OY>+O+O,OSO,OY>,O,O(,OSO0,OY>4,O8,OH,OSOP,OY>T,OX,Oh,OSOp,OY>t,Ox,O,OSO,OY>,O,O,OSO,OY>,O,O,OSO,OY>,O,O,OSO,OY>,O,O-OSO-OY>-O-O(-OSO0-OY>4-O8-OH-OSOP-OY>T-OX-Oh-OSOp-OY>t-Ox-O-OSO-OY>-O-O-OSO-OY>-O-O-OSO-OY>-O-O-OSO-OY>-O-O.OSO.OY>.O.O(.OSO0.OY>4.O8.OH.OSOP.OY>T.OX.Oh.OSOp.OY>t.Ox.O.OSO.OY>.O.O.OSO.OY>.O.O.OSO.OY>.O.O.OSO.OY>.O.O/OSO/OY>/O/O(/OSO0/OY>4/O8/OH/OSOP/OY>T/OX/Oh/OSOp/OY>t/Ox/O/OSO/OY>/O/O/OSO/OY>/O/O/OSO/OY>/O/O/OSO/OY>/O/O0OSO0OY>0O0O(0OSO00OY>40O80OH0OSOP0OY>T0OX0Oh0OSOp0OY>t0Ox0O0OSO0OY>0O0O0OSO0OY>0O0O0OSO0OY>0O0O0OSO0OY>0O0O1OSO1OY>1O1O(1OSO01OY>41O81OH1OSOP1OY>T1OX1Oh1OSOp1OY>t1Ox1O1OSO1OY>1O1O1OSO1OY>1O1O1OSO1OY>1O1O1OSO1OY>1O1O2OSO2OY>2O2O(2OSO02OY>42O82OH2OSOP2OY>T2OX2Oh2OSOp2OY>t2Ox2O2OSO2OY>2O2O2OSO2OY>2O2O2OSO2OY>2O2O2OSO2OY>2O2O3OSO3OY>3O3O(3OSO03OY>43O83OH3OSOP3OY>T3OX3Oh3OSOp3OY>t3Ox3O3OSO3OY>3O3O3OSO3OY>3O3O3OSO3OY>3O3O3OSO3OY>3O3O4OSO4OY>4O4O(4OSO04OY>44O84OH4OSOP4OY>T4OX4Oh4OSOp4OY>t4Ox4O4OSO4OY>4O4O4OSO4OY>4O4O4OSO4OY>4O4O4OSO4OY>4O4O5OSO5OY>5O5O(5OSO05OY>45O85OH5OSOP5OY>T5OX5Oh5OSOp5OY>t5Ox5O5OSO5OY>5O5O5OSO5OY>5O5O5OSO5OY>5O5O5OSO5OY>5O5O6OSO6OY>6O6O(6OSO06OY>46O86OH6OSOP6OY>T6OX6Oh6OSOp6OY>t6Ox6O6OSO6OY>6O6O6OSO6OY>6O6O6OSO6OY>6O6O6OSO6OY>6O6O7OSO7OY>7O7O(7OSO07OY>47O87OH7OSOP7OY>T7OX7Oh7OSOp7OY>t7Ox7O7OSO7OY>7O7O7OSO7OY>7O7O7OSO7OY>7O7O7OSO7OY>7O7O8OSO8OY>8O8O(8OSO08OY>48O88OH8OSOP8OY>T8OX8Oh8OSOp8OY>t8Ox8O8OSO8OY>8O8O8OSO8OY>8O8O8OSO8OY>8O8O8OSO8OY>8O8O9OSO9OY>9O9O(9OSO09OY>49O89OH9OSOP9OY>T9OX9Oh9OSOp9OY>t9Ox9O9OSO9OY>9O9O9OSO9OY>9O9O9OSO9OY>9O9O9OSO9OY>9O9O:OSO:OY>:O:O(:OSO0:OY>4:O8:OH:OSOP:OY>T:OX:Oh:OSOp:OY>t:Ox:O:OSO:OY>:O:O:OSO:OY>:O:O:OSO:OY>:O:O:OSO:OY>:O:O;OSO;OY>;O;O(;OSO0;OY>4;O8;OH;OSOP;OY>T;OX;Oh;OSOp;OY>t;Ox;O;OSO;OY>;O;O;OSO;OY>;O;O;OSO;OY>;O;O;OSO;OY>;O;O4Tt=O=O(=OSO0=OY>4=O8=OH=OSOP=OY>T=OX=Oh=OSOp=OY>t=Ox=O=OSO=OY>=O=O=OSO=OY>=O=O=OSO=OY>=O=O=OSO=OY>=O=O>OSO>OY>>O>O(>OSO0>OY>4>O8>OH>OSOP>OY>T>OX>Oh>OSOp>OY>t>Ox>O>OSO>OY>>O>O>OSO>OY>>O>O>OSO>OY>>O>O>OSO>OY>>O>O?OSO?OY>?O?O(?OSO0?OY>4?O8?OH?OSOP?OY>T?OX?Oh?OSOp?OY>t?Ox?O?OSO?OY>?O?O?OSO?OY>?O?O?OSO?OY>?O?O?OSO?OY>?O?O@OSO@OY>@O@O(@OSO0@OY>4@O8@OH@OSOP@OY>T@OX@Oh@OSOp@OY>t@Ox@O@OSO@OY>@O@O@OSO@OY>@O@O@OSO@OY>@O@O@OSO@OY>@O@OAOSOAOY>AOAO(AOSO0AOY>4AO8AOHAOSOPAOY>TAOXAOhAOSOpAOY>tAOxAOAOSOAOY>AOAOAOSOAOY>AOAOAOSOAOY>AOAOAOSOAOY>AOAOBOSOBOY>BOBO(BOSO0BOY>4BO8BOHBOSOPBOY>TBOXBOhBOSOpBOY>tBOxBOBOSOBOY>BOBOBOSOBOY>BOBOBOSOBOY>BOBOBOSOBOY>BOBOCOSOCOY>COCO(COSO0COY>4CO8COHCOSOPCOY>TCOXCOhCOSOpCOY>tCOxCOCOSOCOY>COCOCOSOCOY>COCOCOSOCOY>COCOCOSOCOY>COCODOSODOY>DODO(DOSO0DOY>4DO8DOHDOSOPDOY>TDOXDOhDOSOpDOY>tDOxDODOSODOY>DODODOSODOY>DODODOSODOY>DODODOSODOY>DODOEOSOEOY>EOEO(EOSO0EOY>4EO8EOHEOSOPEOY>TEOXEOhEOSOpEOY>tEOxEOEOSOEOY>EOEOEOSOEOY>EOEOEOSOEOY>EOEOEOSOEOY>EOEOFOSOFOY>FOFO(FOSO0FOY>4FO8FOHFOSOPFOY>TFOXFOhFOSOpFOY>tFOxFOFOSOFOY>FOFOFOSOFOY>FOFOFOSOFOY>FOFOFOSOFOY>FOFOGOSOGOY>GOGO(GOSO0GOY>4GO8GOHGOSOPGOY>TGOXGOhGOSOtGOY>xGO|GOGOSOGOY>GOGOGOSOGOY>GOGOGOSOGOY>GOGOGOSOGOY>GOGO HOSOHOY>HOHO,HOSO4HOY>8HOXHO\HOlHOSOtHOY>xHO|HOHOSOHOY>HOHOHOSOHOY>HOHOHOSOHOY>HOHOHOSOHOY>HOHO IOSOIOY>IOIO,IOSO4IOY>8IOXIO\IOlIOSOtIOY>xIO|IOIOSOIOY>IOIOIOSOIOY>IOIOIOSOIOY>IOIOIOSOIOY>IOIO JOSOJOY>JOJO,JOSO4JOY>8JOXJO\JOlJOSOtJOY>xJO|JOJOSOJOY>JOJOJOSOJOY>JOJOJOSOJOY>JOJOJOSOJOY>JOJO KOSOKOY>KOKO,KOSO4KOY>8KOXKO\KOlKOSOtKOY>xKO|KOKOSOKOY>KOKOKOSOKOY>KOKOKOSOKOY>KOKOKOSOKOY>KOKO LOSOLOY>LOLO,LOSO4LOY>8LOXLO\LOlLOSOtLOY>xLO|LOLOSOLOY>LOLOLOSOLOY>LOLOLOSOLOY>LOLOLOSOLOY>LOLO MOSOMOY>MOMO,MOSO4MOY>8MOXMO\MOlMOSOtMOY>xMO|MOMOSOMOY>MOMOMOSOMOY>MOMOMOSOMOY>MOMOMOSOMOY>MOMO NOSONOY>NONO,NOSO4NOY>8NOXNO\NOlNOSOtNOY>xNO|NONOSONOY>NONONOSONOY>NONONOSONOY>NONONOSONOY>NONO OOSOOOY>OOOO,OOSO4OOY>8OOXOO\OOlOOSOtOOY>xOO|OOOOSOOOY>OOOOOOSOOOY>OOOOOOSOOOY>OOOOOOSOOOY>OOOO POSOPOY>POPO,POSO4POY>8POXPO\POlPOSOtPOY>xPO|POPOSOPOY>POPOPOSOPOY>POPOPOSOPOY>POPOPOSOPOY>POPO QOSOQOY>QOQO,QOSO4QOY>8QOXQO\QOlQOSOtQOY>xQO|QOQOSOQOY>QOQOQOSOQOY>QOQOQOSOQOY>QOQOQOSOQOY>QOQO ROSOROY>RORO,ROSO4ROY>8ROXRO\ROlROSOtROY>xRO|ROROSOROY>ROROROSOROY>ROROROSOROY>ROROROSOROY>RORO SOSOSOY>SOSO,SOSO8SOY>\SO`SOpSOSOxSOY>|SOSOSOSOSOY>SOSOSOlOOO O|O |O|O |O |O |OHMXMDNNlll'l4l?lSl`l'm-m6m>m%CmHm&PmTm~ZmA^mS(bm}km'm-m6m>m%CmHm&PmTm~Zm8QQQQQ@QQ8xQQQQ@KK$K8KdQQQ8RRXRx RRR R,RRRR:cC IE}.y}[%.5?xK,Q||||||},}P}d}}}}}}~0~>~\~p~~~~~ Ka%1BO`m~΀߀:Uց*Ekv0Y}ņކ)@^ˇ߇3c~FO^mƏ؏  www)www)--.Dw w .Dttj٢FFj٢[[אo[`x[`xאo[x[xאo[[אo[[אo[[אo[[אoh\d= = Zqjjwu  f%f)~${  IA,  2A A W6j j ͤP\>}JJEMww.L;  J   @w** YrVV!Woo"Xkږ#ǎ>$u͕%o&vp'yH H (wa+ll)>~*G0  +kZW//,i -   .lff/~01 2f34f  4v225=@Q Q 68+n7!8Lt  9%$:Eޫ@;,i<{.|WWW`?V2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?V2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?V2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?V2V$U\UUUdUUTTl#UT U\UUT0T8TtWdy#DU UU|WWW`?VU$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?VU$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?VU$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWW`?VU$U\UUUdUUTTl#UT U\UUT0T8TtWdy#DU UU|WWWU2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWWU2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWWU2V$U\UUUdUUTTl#UT U\UUT0T8TtWy#DU UU|WWWU2V$U\UUUdUUTTl#UT U\UUT0T8TtWdy#DU UU8aaa`?V2V$U\UUadUUxTaaa U\UUT0T8T0a8$DU UU8aaa`?V2V$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UU8aaa`?V2V$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UU8aaa`?VU$U\UUadUUxTaaa U\UUT0T8T0a8$DU UU8aaa`?VU$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UU8aaa`?VU$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UU8aaaU2V$U\UUadUUxTaaa U\UUT0T8T0a8$DU UU8aaaU2V$U\UUadUUxTaaa U\UUT0T8T0a8$DU UU8aaaU2V$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UU8aaaU2V$U\UUadUUxTaaa U\UUT0T8T0aX8$DU UUTTaa aha$ȳͳaTT Tf#`M~#^~#jL{#qL{#|L{#L{# #(#04($4L{#8L#<L{#LL{#PL{# @# HL{# L{# TL{# Xa#-1 A UZ_vdk8rw@  @ nr  @P!%0,3;GS\3ei syT܂T,TTBJR]jq%5CQ_oyh{#~# L{# "$Xz#{#  )9N]l=P() 0=KYp }#~#p }#8~#|# }#h~#~#~#\&\&|&|&\&\&|&|&$`&$|##n#~# {##} xXXX؃X XXXDXXxXXhXXXXX0XX@XlXXXX0XX@XlXXXX#(XԴXXHX,XHX~~YYvt`YLbYcYPdY\dYfYgYgYgYgYgYlhYhYhYiYiYiYt`YLbYcYPdY\dYfYgYgYgYgYgYlhYhYhYiYiYiYiYd@$ d@$@$ؽjjP8AAmpmmTp$   5]@(lmȪ$JPp`xx8H  JJHttlZ ^Z8bZbZThZnZnZLZlZZZZZhZ,>ZpZZ8Z`ZZZZZ4ZZZZxZZȬZ(Z,Z`ZZpZԂZ,ZZZZZZZt^ZԹZZ`ZZZZZhZ,>ZpZZ8Z`ZZZZZ4ZZZZxZZȬZ(Z,Z`ZtZXZZZZZZt^ZԹZZ`ZZZZZhZ,>ZpZZ8Z`ZZZZZ4ZZZZxZZȬZ(Z,Z`ZZZZZZZZt^ZԹZ  ZZZTZ,ZܾZ ZLZTZ\ZdZlZZ Z8Z$Z/[0[/[T1[/[1[/[42[/[2[/[4[/[ 5[/[0[/[T1[/[1[/[42[/[2[/[4[/[ 5[ /[0[ /[T1[ /[1[ /[42[ /[2[ /[4[ /[ 5[ v05[6[9[`:[ v05[6[9[`:[ v05[6[9[`:[ q?[?[@[@q?[?[@[ w0A[8B[PF[ w0A[8B[PF[ w0A[8B[PF[2I[I[2I[I[ 2I[I[2I[I[2I[I[ 2I[I[ s1K[L[P[P[ s1K[L[P[P[ s1K[L[P[P[S[|T[ S[LU[ S[U[ S[,V[ S[V[ S[|X[ S[Y[ S[|T[ S[LU[ S[U[ S[,V[ S[V[ S[|X[ S[Y[  S[|T[  S[LU[  S[U[  S[,V[  S[V[  S[|X[  S[Y[  0Y[dZ[xe[e[[h[xm[Dq[(o[ xm[r[(o[,ts[m[(o[=ts[o[(o[?ts[Dq[(o[!ts[r[(o[ts[s[(o[ts[t[(o[ts[8v["z[{[[h[#z[|[[h[.z[D}[[h[$z[\~[[h[~[~[%Jp[[[H[['Kp[,[[H[[(Lp[[[H[[&Ip[[[H[[Jp[[[H[[bJp[[[H[[[[a[[ t[[ t[[ t[L[t[d[ķ[ط[[@`rr$,[\[[@[@A[0[T[@dt[[[ļ[@t [[[@t0<[P[t[@[[̽[WWZ_t\\\\\l\W\|\\ \l\\, \!\ H\H\@I\8K\L\tN\N\N\ Q\R\  * . 2 6 : :  H P  e m            ) + < ? nV Z Z ` `  k k  | |      #  , 5  = F K  P  U' 0 !9 B " ZK T #] f $o w %e & ' (e )m *r + ,w -  .$ $ /* * 0 7 7 1 H H 2 T T 3 b b 4 n n 5   6  7  8  9 :;1=<IV=co>{?3@A BCD E  F'2G #EOH ,aqI 5J >K GL P M Y&0N bAPO knwPQtRvSyT| U8FVevWXYZ[  '\.5]<C^JO_T]`ipawbcdef ghi99jk l (m2<nFPoZZp pyqrstuwxy z{$} 5F~ `` eekv!)19 A?I Kku U _ i s|#-DSck~     ,= Yi           $ . 8 AJ",RAOZlw b k t }  18 JJVV\\bv   &&,2 99 FF RR ^^ kk ww ' 1 ; F Q \ g r }55 TT hh }}       )) CC __ ww  " - 8 C N Y44 dSS oqq z      ?? __ ~~      33 HH *bb 5{{ @ K V a l w   0 0 O O o o       !! ! !!!!! ! ! '!'! -!-!  4!4!  ;!;! ! B!B! ( I!I! / ^!^!7 s!s!? !!G !!O !!W !!_ !!g !!o !!w "" "" 3"3" M"M" Y"Y" e"e" t"" "" "" ""  ""! """ ""# ""$ ##%  ##& -#9#' F#P#(![#`#)!e#e#*!y#y#+!##,'!##-/!##.7!##/?!##0G!##1O!$$2W!/$/$3_!E$E$4g![$[$5o!o$o$6w!$$7!$$8!$$9!$$:!$$; !$$< !$$= !%%> !.%.%? !C%C%@ !^%^%A !s%s%B !%%C!%%D!%%E!%%F!%%G"%%H"%%I" & &J"&&K'"0&0&L/"C&C&M7"Y&Y&N?"n&n&OG"&&PO"&&QW"&&R_"&&Sg"&&To"&&Uw"&&V"''W"''X")')'Y"?'?'Z"\'\'["o'o'\"'']"''_"''`"''a"''b"''c" ( (d""("(e"/(/(f";(;(g"R(R(h#](](i#l(l(j#((k#((l'#((m /#((n 8#((o A#( )p J#')/)q S#=)K)r \#_)n)s e#))t n#))u w#v #))w #x#))y#))z#)*{#* *|#**}#*"*~#,*1*#<*I*#V*^*#f*o*#x**#**#**#** #** #D* #**#++# ++ #(+(+#4+F+#a+a+$q+q+ $v++ $++$++$++$,,$,,!$-,-,($<,<,/$G,G,7$R,R,?$],],G$h,h,O$s,s,W$~,~,_$,,g$,, n$,, w$,, $,, $,- $- - $,-8- $D-P- $\-h- $t-- $-- $-- $-- $--$-.$(.B.$_.u.$$..$..$..%.. %.. %.. %.. )%.. 2%.. <% / / F%// P%"/"/ Z%*/*/ d%3/3/ n%8/8/ x%G/G/ %W/W/ %a/a/ %u/u/ %// %// %// %// %// %// %// %LL %// % 0 0 &00 &00 & "&&0&0 ,&.0.0 6&A0A0 @&O0O0 J&_0_0 T&n0n0 ^&00 h&00 r&00 |&00 &00 &00 &00 &00 &00 &00 &11 &11 & 1 1 &/1/1 &A1A1 &O1O1 &e1e1 'z1z1 '11 '11 &'11 0'11 :'11 D'11 N'11 X'22 b'22 l'.2.2 v':2:2 '@2@2 'R2R2'g2p2'y2y2'22'22'22'22'22'22'33''323'E3E3'N3N3'Y3e3'|3|3'33'33'33 '33 '33 '33 '33 '33'33' 4 4'%4%4'=4=4'O4O4(b4b4(o4o4(~4~4 (44(44(44(44(44 (44$(44((55,((5(50(<5<5 4(L5L5!8(]5]5"<(n5n5#@(55$D(55%H(55&L(55'P(55(T(55)X(55*\(66+`(66,d(/6/6-h(A6A6.l(Y6Y6/p(q6q60t(661x(662|(663(664(665(666(667( 7 78(779(3737:(D7D7;(U7U7<(g7g7=(z7z7>(77?(77@(77A(77B(77C(77D(88E(88F(%8%8G(8888H(L8L8I(_8_8J(p8p8K(88L(88M(88N(88O(88P(88Q(88R(99S)#9#9T)5959U)F9F9V )_9_9W){9{9X)99Y)99Z)99[ )99\$)99]() ::^,),:,:_0)<:<:`4)O:O:a8)`:`:b<)r:r:c@)::dD)::eH)::fL)::gP)::hT)::iX)::j\);;k`)+;+;ld)8;H;mh)e;e;nl)w;;op);;pt);;qy);;r~);;s);;t);;u)<<v)<-<w)A<O<x)a<t<y)<<z)<<{)<<|)<<})<<~)==)%=%=)4=4=)I=I=)Y=b=)k=k= )======)== )>> )7>D>Q>^>k>x>>>>>>>>>>>>??!?/?6?)D?D?)O?O?)V?d?*?? *??*??*?? *@@ (**@5@ 1*M@X@ :*p@{@ C*@ L*@ U*@@ ^*@@ g*@@p*@@q*@@t*@@v*@@y* A A *AA *AA *"A"A*-A-A*8A8A*CACA*NANA*YAYA*dAdA*oAoA*zAzA*AA*AA*AA*AA*AA+AA +AA+AA+AA$+AA,+AA4+AA<+BBA+BBF+BBK+&B&BP+0B0BU+:B:BZ+DBDB_+NBNBd+XBXBi+bBbBn+lBlBs+vBvBx+BB}+BB+BB+BB+BB+BB+BB+BB+BB+BB+BB+BB+BB+CC+ C C+CC+ C C+*C*C+4C4C+KCKC+bCbC+yCyC+CC+CC+CC+CC+CC+DD,DD ,4D>D,PD_D,vDD,DDDDDD ,DD #,E E .,1EBE9,SEdEA,uEEI,EEQ,EEY,EEa,EF!F3FEFWFiF{FFFFFFFi,FGq,G*Gy,;GVG,zGG,GG,GG,GG,GH ,HH ,!H*H ,3H.MM?!.MM@(.MMA/.MMB6.NNC=.9N9NDD.aNaNEK.NNFR.NNGY.NNH`.NNIg.OOJn.EOEOKu.oOoOL|.OOM.OON.OOO.OOP.OOQ.P$PR.[P[1b[s[1[[&1[[.1[[61[[>1\\F10\A\N1R\d\V1v\v\ ^1\\g1\\\\l1\\r1\y1\1]]1]!]1E]S]1w]w]1]]1]^1F^F^1R^r^1^^1^^1^^1^^1__17_7_1I_I_1`_`_1__ 2_` 2+`P` 2w`w`2``#2``*2`` 22aa;2aaC2 a aH2a!aM29aHaR2_a_ajajauauaaaaaaaaaaaaaaab bb!bW2-b6b?bHb_2dbmbg2bbo2bbw2bb2bb2cc2'c1c2o~#MoL{#Xo"$] $$ mH%$h{#$ nh{#do$ro<$$$ %nh{#o${o~# oL{#]|$$4no|#~#ro}#$Enh{#do$n~#ro<$4($ oD$$ o$X$Wnh{#ro<$$knh{#~#np$ dL{#D$yno"$$n o"$$n,$$n}#n$n`$n$n$n($n }#ׄppn0p ^^T^^^P^$^0^8^D^L^@^H^h$^$^$^d%^@$qd@$qd@$q@$@$ @$$q@$(q@$,q@$80^$ p$Xnqd@$qd@$80^$$Xnf~#q~#rh{# rh{#$qr~#%r~#1r~#l$ qY^Z^[^d[^P\^,_^|a^dc^td^xe^i^{{A{b{{{{{ |#|@|X|m|}||||&}>}k}}}}}}~?~W~l~~~~ 2OvẀ2Niށ /ISxނ,>Ui/j dZ KVx|# }#"$ih{#ӆ0z#$$"$$h{#~# H%$0z#g0z##$$$b` 0#$#$,o#$,~#4{#Db`#$,$$x|#'}#L{#`$$0$$$$x|#D}#$$:m`hn`n`8q`@s`,%$J%$%$%$%$~#{#܁`%$%$ h{#EH%$`&$"$` &$p&$&$~#${#&$I0 h{#h{#~#H%$ S@A$(EH%$,&$0\{#4f{#8$$&$ IHq'$H~#P{#`܆`'$($ |#|#{# L{#~#P(${݉{#{#($<{#($)$K|#<)$X)$\"L{#0)$)$l4*$ϊ")$ `8`ϊ)$L{#<2$h{#H*$ Ul2$`(`Vl2$``l2$`݉h{#h{#H+$Ύh{#ӎp+$+$ |#ێ+$+$+$+$,$,#<,$\``,$Y,$Laa -$#|#,d-$,$7|#ˑ.$<-$ˑU-$_`}#-$ڑg`}#th{#-$$.$T.$?|#H-$n }#/$gh.$#a4&aYh.$#a4&a <2$%$5a.$/$ e-4/$ӓ{#ۓ<2$P/$u7/$-4/$M}#V}# ]{#m}#y}#/$40$)a$,a &4AUhs~˔ߔ|# }#1$]|}#|}#D1$g(1$|#ǖ|#і(}#ߖH%$l1$|#L{#&|#1$ t5<2$X2$X3$U2$$ @$L{#|#f4($db?$Z,dd`ddd dDd,dDddd@dHddtddfffdd(dZZZZZt^Z@ddxdddHdepeeheU/WXa$ j\'e<)e0,e/e<0e0e(0e1ex2e2e 5el5e5e[ @eAeH[h[] @eBeH[h[^ @eBeH[h[\ @eCeH[h[l DeDe[h[n DeEe[h[o DeFe[h[m DeGe[h[PXHeHe[h[ \e \eD@\eEp[@|ea@|e,@|e+@|e%@|eb@|e[\e\e@\e@ !*)Ep[H4f[e([eL[e@`_`|[e[e[e$uw[e[e\e@d$@L\e`\e\e@o$yerd|#zed|#ze|#zenL{eP{eT{e|e\|eq|#|e|es0$|eZ*$\e0e]$q"W\$e,e"}#"h{#G{#ele0'S{#ele'{#`e'l^$$~]$e`ep]$e`e$|#H|#ffI|#ffJ|#ffK|#ffL|#ffM|#ffN|#ffXh{#Dah{#Dah{#DaPfa$@L{#@h{#@h{# @h{#Ah{# @IfIfIf! (JfY>4 k< k?k k,k4kkkk4kbd6?@AmBW۸CWDWEWFW\GW¸HWƸIW̸JWѸKWLWMWNWOW׸PWQW݉RWSWTWUWVWWWXWYW`ZWe[Wk\Wp]Wv^W_W{`WaWbWcWdefghijGزkXblXmXnX~oXpXtqXrXsXwtfufbvfwfxf~yfzfw{t|t}t~t8Ji,HRcw-L`x*AXdv0X"Cam;N\(tx.E]fp,?HRajt1CUnz!-<BJX`xpޮ#=Kc}$ɮŮή׮Ү'8Kf%AMsDj?Pf )Rz ,BXo` #x*t/8Yt;>PBEHK Q6NUo\Z^c@hlq'vDznD4ԑt+8ЩEQH\hs|8l¯(ůǯʯ\ͯЯү.կ=LدOۯ_ݯr~lXD@(38HLfOW`_X!(g'9oT(.pv4}:A:J_s9Qh !:JOOd|lvܽǰPҰڰ(2JfD %-@69!8F:>PBjX~艱䌱(,Иt 4JdzDܫ+C \бlӱֱٱܱ߱P!2>Tbz .FUex #+4>GQZdnwp '08AIR[ex0&D _Pw ,?EO[fpz! H&+08WRw\CE447GK,O*/-B|XZr<?6\ANbm|'ObHdl-EXl+:FWhyfj|n|rTv,z#}2$KVlpX@(લ);Oȭa sෲ亲5Uj8LQh} 0C̣Ui},' -.EP[fp{$̲DzҲ0F`{(۲5Pdy, 4I^t &?Vx`x"&)+J[u; &AYs>GDOhT/ ZN@`i>Up}6Vm0CNby /Ki!JrR) a    8 W s      , 00  2 X u     h p$ H[mTfmXfmfmX\`dhlp{mxmm=Tm8m=~mY>mmSOmY>Y>mmknknkn o o ov8>vh>v>v>vhuXx-aܓ$k(הH8:hYXwxו$Oyʖ(LH8hϗX0xk֘*B\(uH8h͙Xx2KhŚ!(CgH8hћXx>aМ@l(H8 h3XX|xÞܞ;[z(H 81hUXwx $Muݡ(#HF8_hwXĢx 0Rsģ( "H:8ShkXxڤ)Vɥ('8hX'Zxx -Jf(Hި8hXFnxΩ1Rr(ҪH8h5XXzxث9Yx(ڬH8h9XYxxŭ?g®(ݮH 8;hUXxxݯ(Pw ̰(  H "8 Ah _X x Ʊ   L y !в (!+!EH!^8!yh!X!!޳x!!!5!Z!!!ٴ"!$("G"dH"8"h"X""x"'"?"k"""" #."L(#i#H#8#ŷh#X##"x#@#]#}###׸#$#/($K$oH$8$h$͹X$$ x$H$o$$$ź$$%$C(%g%H%8%h%X%?%lx%%%%0%o%%&%L(&&H&ؾ8&h&7X&m&x&տ&&9&j&&&',&](''H'8'0h'gX''x''E'w'''1'a('((($H(X8(h(X((Dx(u((((M(()(()S)H)8)h) X)9)fx))))>)~))*F){(**H* 8*<h*kX**x*Qc{:^o"3Le~5Iay 6Zgr3So/LaDv.I^x5Ql :_*B\u /?^n*BWu0CWk &BYfw5LVdy7Vg,9FSh~ 6S7E[.UfPpq"1?HTes4Qeya6Rq 2Sez )=Mr3K_q (E2BUaomO !1CWwĻ8Mi~1C".J`s+CXjN/:Pg&:MmL/Fo3I^t&5KVgew%A_u- !.;UfpAE'j?H]8DaQW? ,_Ohw &B]o$MYm|,GZk|1ISgZyXdv4HZr<B1?Up .@Pb{4Qgx$.BRbt%?Rf{'1Pk$2ETkN\tJX`xXo No'Dn+8EQ\hs.=O_r~3Lf9Tp::Odlv2Jf!:Pj~ 4C\l&D_ +Ww/B6b#2KVlOas8C{5Vs/N  $ 0D]k'DU#<]v .AQ_nz7Li!5DhHx 9H_| &9Nbv  8 T g z  ; J V f t   7 N c  % 9 M ` z  & = R h y ?Yy;Z~ .BX{Ag+z;ax4I_nxnx(oxdxTyyyPy4ypyDyyyyyyyyyLy~ >~>~T>~>~>~?~|lK~pK~K~K~K~DL~LL~lL~L~M~dP~XS~T~ W~W~tX~X~X~X~X~X~X~X~X~HY~hY~[~x\~]~^~_~(_~c~Pe~j~j~j~k~k~|m~m~m~m~m~tn~|n~n~o~o~r~u~v~@y~y~z~z~z~z~z~z~z~{~{~|{~{~@}~~~~ ~|~~~~0~X~`~l~x~|~~(~P~\~ܐ~~~p~0~~~l~ț~x~0~D~P~\~h~t~~~~~ ~~(~h~~ܣ~~L~ ~P~x~~~~| ~$~H~p~|~~~$~~P~(~~~~~P~d~p~|~~~~~~$~@~~X~~~,~8~~p~~~~~~|p~t~~~~~~$~~P~~~~ ~~~\~h~t~~~~~~~8~~8~p~~~~(~~~~~~~|h~l~~~~~~~~H~~T ` l x      0  8 x@|     0!8!X!!"% ($)+0,,-------.l../0@2p3338:>>>>>|hAlAAAABBY>Y>Y>DLkTkBk Ck  Mk$cNNNOOkNNxNNNNNO)O=OFOPOOkOzOObuuu2Q%8QFQMQ\Qu$+18? $+18?=====T`l죀`lpp====̨T|쩀=8̨ܰ̀H̀<h谀TԮЮ讀̨T|쩀8d̨ܰ̀H̀x܀h(t8ܰx̀H̀h谀T (̨ܰ̀H̀<h谀l,84̨ܰ̀H̀<h谀8Th@lT|쩀D<@L,T|쩀DPX̨T|쩀\8dܰt̨̀̀T̀<h谀ThԮЮp讀̨T|쩀tԮЮ|讀̨T|쩀ԮЮ讀̨T|쩀̨T|쩀8ܰt̨̀̀T̀<h谀T̨T|쩀ӿݿ 4DU_xB`BmBDHE mSS$T0Tt|=|=D H |773377f7g7777h3377377\74770RemTeliti mjjjPmqmqqq m\qqr7DjPrHTrrr'rpr s,$sXsds߈ls)l*DjhtHTrrr'rpr s,$sXsds߈ls)l*DjtHTrrr'rpr@u,$sXsds߈ls)l*u`uduxu Tvv77 xxx@{{{d|77f7g7777h}}},~77lhz0Vft~&/Pmm mu6xu\6687L;P;<?(AC7PE7777h0RSmT=RS m_aaaqq4مhڅd++ ޅ\dždžɆ7,ʆ0ʆlʆʆ7f7g7777hˆˆ̆77f7g7777h\̆̆77j͆͆lφφφφ І4ІHІц ц ҆$҆(҆7h,҆Txӆ|ӆl(,/,77777h8lpx70R8mTL mj ===Xhxԅ477777h4*((T-$&T-%- '0R/mT/22 ml22l,N0NPmԉm艇 m877f7g7777h TmX m\`?,(,7d?h??77f7g7777h@A\A77f7g7777h0@Q 1DjGHTrrr'rpr s,$sXsds߈ls)l*0@QQDjRHTrrr'rpr s,$sXsds߈ls)l*0@dJ4506ۈ ܈܈܈FrrhJpJrt;xJ sFFFۈ ܈܈܈Frr=Fr== s=FGHTrr=Fr== s===,GGۈ ܈܈܈FrrGHrH s%>4>>>Y>q>>>>?:?a???????@)@\@n@@@@@@@@A#A>ASAwAAAAAB2BPB|BBBBB C(CLCyCCCC D'DND|DDDDDEE,EDE^EvEEEEEEEFxxxxyy,y7yHyZyjyyyyyyyyyzz(z6zHz`zxzzzzzzzz:vDvOv[vhvvvvvvvvvww(w3w;wCwKwawqwwwwwwwwwxx'xCx\xxxxSh~ 6S7E[.UfPpq"1?HTes4Qeya6Rq 2Sez )=Mr3K_q (E2BUaomO !1CWwĻ8Mi~1C".J`s+CXjN/:Pg&:MmL/Fo3I^t&5KVgew%A_u- !.;UfpAE'j?H]8DaQW? ,_Ohw &B]o$MYm|,GZk|1ISgZyXdv4HZr<B1?Up .@Pb{4Qgx$.BRbt%?Rf{'1Pk$2ETk  / F Z h v /Gfr~ #:Qf{ !;Uj %8JS\iv<\t!1Ln-@Odu2Nd}8FUfq "6M\l~ $6EQZi(E[s,9Vm"<Rh '/BR`u1Tn;TdlH]x * @ W j  !!$!4!K!W!i!z!!!!!!""":"["x""""""##0#=#K#b#w#########$.$:$H$b$$$$$$$$$%%%%%/%<%P%Z%n%w%|%%%%%%%%%% &&.&D&a&p&&&&&&&''4'?'R'd'}'''''''' (-(B(R(b(t(((((((()")>)R)d)v))))))**!*4*M*X*m*********+*+:+Q+b+r+++++++,,*,1,:,Q,p,,,,,,,,--4-I-^-y--------. .3.M.h......./,/C/U/h//////// 00*0;0L0_0p0|0000001141H1]1s1}11111122(232S2o22222223313@3T3d3|333333344\\]]]^_adhkopoooooqrrtvwxxqq{~qqv]]]^^v^^]]]vv]qorqooo~~~~~~~~~\]~\\      $%%%%%%%%%%%%''''((,/3(8,/(:=ADGGK''LLOL8SS8UWXYYYYYYYYYZ]_aeeeeefimXXppqqqrsux|qqqrrrrqqqqpqpp        "#%(*,..1148((((((((((((999999999999;;;;<<@CG<L@C<NQUX[[(((((((_;;``c `LggL   iklmmmmmmmmmn"qsu"yyyyyz}ll ttts`tVX`iij8kkH[mlllH[m4m8mDmH[mXm\mhmH[m|mmmH[mmmmH[mmmmH[mmmmH[m nnnH[m0n4n@nH[mTnXndnH[mxn|nnH[mnnnH[mnnnH[mnnnH[mo ooH[m,o0oZt .ˋ9jʌX؍Cl~P3oؑ@|5vѓ-FkД ;{͕/PqҖ`*8D`oƗ2ASvoۙ%Sw06xƑ`6==77f7g7777hd6|x6͒Β||6͒6|6͒4b|ddd|dd8gߒ llll|mm|m<<<<<cxq\Z^\Z^<<<<<<<<<<cxq'8=ELZnϯگ Aΰ۰JAR0x|0 048`x|0b#$c $$$<<<<$<<<<<$%%($''|'0(%%%̏%(\<x<<<@@AcAbA(AcTA~~@̷Dl̷Ѐ̷̷r8r̷rr̷̷(̷Px̷̷8̷~̷зx==|@H D覙p~ú̺غܺ)4?JU`kvŻȻ˻ջ߻$-69>FJSVZahmsw{ǼҼ߼ *")-4:¸@PmxŽʽܽ ~TV@@)o5+-039<?BFJORUX[^{be3hjmp1u-`twz}@7B7 þcXFƾ˾ϾվZOTھ ¸)$'1N>? |%&$pppx2ppT2pp&1l4<5<?C4F4pOPgjgpYZДXlRDT ll|l؜ԜN؜ܜP؜dh\7Nh77TWH`࡛Тtx0<?>Ȣ?>ؤ,ӛӛӛ77f7g7777hBKWm}(!09'18LM NLO4S,TVlXTN\X^l]0Y` `YYpuzz{h||0}2 +Й0 p====ߝ$ߝ,ߝTߝޝޝ==ޝޝߝ== ߝޜ (08@HPX`hpxXߝ====ߝ$ߝ\ߝ$ߝ`fTߝ$ߝ$ P4(DEʝ`8Hߝ$ߝ$$ xjߝ$ߝɝ$$,ߝ$ߝTTߝ|\$,ߝ$ߝTTߝHߝ$ߝ4 Hߝ$ߝLhGߝ$ߝ\֝ Νҝ(ϝ,Н`Нpѝ\֝8ÝĝŝtȝɝÝƝޝ)tޝpD)L)ޜ (08@HPX`hpxޝT)䰝ޝ||))`ޜ08@HPX`hpxޝ8& ПޝTh`&h& ߝޜ (@HPX`hpxޝp&8~&ޝߝ&& ߝ@ (08PX`hpxޝ&Pk&ޝߝ&& ߝߜ (08@H`hpx&'llH'ޝߝP'X' ߝ (08@HPX`hpxTXޝ`'hhޝޝߝ''8ޜ (08@HPX pxޝ'ܮޝ`p''ޜ (08@HPX`hޝ'(ޝ(((8(H(X(ޜ (08@HPX`hpx$(ޝt(4ޝ0ߝ((ޜ (08@HPX`hpx04ޝ(ޝޝߝ(( ߝޜ (08@HPX`hpx<@ޝ(4ޝޝߝ )) ߝޜ (08@HPX`hpxHL))0h< t!t""<#$L$ ))2=====================,@,=====================)t,2=x,===================,@,=====================ЛX!$'*-036:>BFJNRVZ^bfjnrvz~ "&*.26\:=@CFILORUX\v_beЛ̚ЛԛhxtwtttttwLS$h ~XTP  @  ؖ  0{6Sv7EN[.`$ UIfPip0qR, H!4"X#"8$1%?&H'J(T)e/*s3+@G,C-H?.;/04124 3Q4e5 6ȩ78l9Ե:<;<<Д=>4y?\@~A0wBy\CDEaF6GRHqtIJlKL<MN|OPQPR ST27USVe=Wz(ПXYXZ՞[\p]؞^ ܟ_;`)*a=4bM.crd e`1fglhTiQjk3DlKhKm_nqopq\r`shtpmuv @4w<x(LyE(z2W{B|U}a~o (vmhO> !! 1C Ww4$@FĻd<C<'9zTn|l,ppXbs8ldMjig~rwsB8d10l`H3CP9"'.Jx`SYsGo<t $}+TC`X(j$l,hN$L#pGD/ܒ:P@g$H &:ܘMmP0t&x7P*LD/`Fwol$ПH3܌I^0tl x P&,5}KVgue8ߠw\ | $piTfT%4AL_, u7 -Š  Xؠ qӠ Xb!(Ϡ. ;mUlfPԁplHpkA !E ^"|`#$%ʠ&'۠'jP(S)Z*?I+H,M,]HA-8 C.DpF/aW0Q1W23?4 &5,,6"7)8_9O :hh ;@<w[=W>S?$Q@D0A4NB<CJD_E,dF 4G&8HBpyI]<Jo`oKgL(jMlN\sO`PܷQRX[ST)UV$xWMXY|YmZ|[( \]x^_H`xaTbcd<e,fGذgZhk i|jkXlm"ndolp,:qir1sIetSHvuglvZmwyxXyd@zv|{M|DU}HX~t[Ƚ$tCx^lJ4HZLr<L}BH ` \g`i 1?UԖp̆DD>(2dA@ po.L@Pb{$T4tdD4Qg$xPT4$.UB@rRtb t.Xt'`%,?0RfZ{wzhLTTtЈ'`1;PkL<H'6hd*$$92-ElTkXDt L $/ F XZ h Tv P    @  ؖ 0{/vGfNr~`$ Ii 0 R    #:,QfH{4X8J/ 3!@G;CUH?j; 4!" #$ %% &8ȩ'J(Sl)\Ե*i<+v<,Д-.4y/\0~10w2\34567<8\t9t:l;<<=>|?@APB!C1DL7EnF=G(ПHIXJ՞KLpM؞N- ܟO@;PO*Qd4Ru.ST U`1VWlXTY2QZN[dD\}hK]^_`a\b`chdpme8fF@4gU<hfLiq(jWklmno pq r"s6(vtMu\hvlw~>x!y z{ |}~ 4$$@F6d<ECQ<'Z9izTn|l,ppXbsld(jEg[rswsB8d0l`H3P9,'9VxmSYGo<t" <$R}hT`($ l'/,BhR`$uL#pGDܒ@1$TnH ܘ;TPd0lt&x7P*D`wHl]$xПH ܌* @ 0W j     l   x   P!!$!,4!}K!W!i!uz!8ߠ!\ !!|! !$"pi""Tf:"T["4x"L","7"Š""Xؠ#q#Ӡ0#X=#K#b#bw#(Ϡ## #m#l#P #ԁ # #l $Hp .$k:$H$b$$ ^$|`$$$ʠ$۠$P$S%Z%I%,M%%HA/% C<%pFP%W Z%!n%"w%#|%$% &%%,&%"'%)(%)% *%h +%@,%[- &W.&S/.&$Q0D&D01a&4N2p&<3&J4&_5&,d6&47&88&py9'<:'`o;4'g<?'(j=R'l>d'\s?}'`@'ܷA'B'X[C'D')E'F'xG (H-(|IB(JR(Kb(( Lt(M(xN(O(HP(xQ(TR(S(T)<U")V>)ذWR)Xd) Yv)Z)[)X\)])"^)d_*l`*,:a!*ib4*cM*edX*Hvem*lf*mg*h*i*@j*|k*Ml*DUm*HXn+t[o*+Ƚp:+qQ+$rb+tsr+Ct+x^u+v+lJw+x+y+z,L{,|*,L}}1,~:,HQ, p,`, ,,\,g,`i, ,--Ԗ4-I-̆^-Dy-D->-(2-dA-@-po--L. .3.M.h.$..T.4.t.d.D/,/C/$U/h/////P/T//4 00U*0@r;0tL0 _0p0|000.0X0t0'1`1,410H1]1Zs1w}1z1hL1T111T2t2Ј(2`32;S2o22L2<2H2'262h3d*3$139@3-T3ld3|3X333333D44taEЄP477 %$4TX\\( 77$T T|g${77Ȥ{p`80VY>ȡȡ6ӡP^7^6`8P^7^ԡ@ա{77ܡ{@%77= % @@{77={$pppxlpp|ppDgXpg 6XP^7^伢tŢ7pâŢˢtˢ8ɢ77 @ 4 | X8P<<<n%%%%%%%%%%&&$&5&G&%X&e&t&&&&4Ԥ դlз4D\t4դtդLPb cbc48 bcX\`   b`tcPmm m4 04 <@DLP PmmT\ mPmtm m9:>$39?L7P7T7X7\7$h7a7L7P7T7X7\7$h7ĥHĥ===LĥĥTĥXĥ`ĥLĥ=ĥhĥdlĥtĥ|ĥĥĥXĥ`ĥLĥйĥĥĥĥLĥĥĥXĥ`ĥLĥĥĥXĥ`ĥLĥ俥ĥĥĥĥLĥĥĥĥĥLĥ:::: ;b@@c0AbhB|BcBRGb!!c<"b4#H#ch#h%t%%%%%%%%%%%%%%%(%4%@%L%X%d%p%|%%%%%%%%%%%% %%$%0%<%H%T%  " % ' * , 0 3 5 6 9 ; > @ B E H J L N P S U W Y [ ^ ` b d g j l p r v x {    a7L7P7T7X7\7$h7X7\7$L7P7T7`@fkvvfk{mm䡩m8m nmymvmDmHm{m{mmDm8m좩nmȯ\`T޺޺dq==4ݺ`7D777`\<x<<<z{L{ɼݼP|\{`{{{{{q@DT|4ݺq..T4ݺ /$/Г(/4ݺXqXݿ\ݿ0ʿ4ݺqݿ4ݺqhl4ݺLV_is}**5#B#R#i#v##p!{!!!!!e!!**A*#*!"""""""""!!!!!"","8"C"O"Z"g"r""""*k**V*2*"###)#<-G-O++A+E))0i)))),,:Tl %?Zu+ > T i   ####,,-#$$6$%+G+G$T$a$n$|$$3+ V+x++d,+++++g++,, ,0,?,O,,+- !!5!M!R-$ $$$$$$% %%!%*%3%<%D%L%T% \% g%z%%% %%%%%%%% %&&"&8& O&Y&  c&l&u&# 4 &&&E N &&&&&& '' '*'2'X a :'C'L'b'j y'''''t } ''' '' '((!(3(<(F(P(X( `(i(r((( (( ((((()((( ) )!)-)9)E)R)*5CU#/<IUbv)(6g}L2Kbx zm'D0DZov&2A"AR[} .P>T>X>x>.ggpg|H(x?Uepޮ$ɮŮή׮Ү ` 2 #a x* t/ ; > PB E !H2!KR!Qq!U!\Z!^!c"@h&"lO"qv"v"z"D"#:#4a#ԑ#t###Щ#$H'$:$N$|a$8w$$$l¯$(ů$ǯ$ʯ%\ͯ%Я0%үF%կb%Lدy%ۯ%ݯ%%l%X%D &@!&=&`&(&&8H&&O'4'WV'x'`_'X!'(g''(o%((.H(vl(4(}(:((A")H)n)J)O)|)))ܽ)ǰ *PҰ>*ڰc***(***D "+C+k+%+-+@6+9+8F,>6,BT,Xv,,艱,䌱,(,,,И -t"-:-P-e--D-ܫ- -б.ӱ.ֱ@.ٱX.ܱy.߱...P..p.0 /1/P/ v/P/!///H&00+0R@0\Ch0E044070G0K1,O1*11-L1|Xg11<1?1\1Hd2f2j62|nT2|rg2Tv2,z2}2$23323O3pl3X3@3(333લ4ȭ74 Q4k4ෲ4亲44L4̣5,'"5 -R5z5$̲5Dz5Ҳ5(۲55,6 @6xb6"t6&6)6;6>6G6DO7hTA7 Zd7@`77,70078h&8O8px889,9J9i999999 : %: A: R: m:::::;;);I;b;;;;;;;<5<T< q<!<"<#<$<%<&='=(7=)Q=*h=+=,=-=.=/>0,>1N>2q>3>4>5>6>7 ?8?9/?:D?;Y?<j?=?>???@?A?B?C@D@EE@FZ@G@H@I@J@KALAM?ANXAOhAPAQARASATAU!BV\?1\@O\At\B\C\D\E\F\G]H7]I[]Jv]K]L]M]N]O^P^Q&^RB^Sf^T^U^V^W^X^Y_Z-_[E_\__]w_^___`_a_b`c`d9`eU`fy`g`h`i`j`k`lamEaneaoapaqarasatbu bv;bwUbxqbybzb{b|b}b~c-cEcdc}cccccd#d@d[d|dddddde7ePedexeeeeef,fIflffffffg'gBg[gvgggggh;hYhyhhhhhi7iOioiiiiiij%j>jWjrjjjjjjk?kTktkkkkkll:l^l}llllll&mJmkmmmmmmn7nTnknnnnno$oZs:zs|(s/s2s3 t51t7_t)t,t*t+t-u@0ud1>u&fuPmmT\ m00177f7g7777hPmXImlIII mzzzz{-{K{n{{{{{|/|W|k|z|||||}}:}T}s}}}}}}~~8~Z~~~~-Nau&Edʀ݀#C[|ہ%Sɂ8UsRtԄ .[wԄ .[wŖϖY>JJYНPdP4tȟܟ0pl=ppL|(XxXp4 xPthTTh1<{@{D{t{{{{<{{{{| ||,|D||||||@}(|~p~~~~~HPxL(|lptxЁԁ؁p HLP (08@HX(|` 740` 0 /740$ $$ @hlpe|4fe6mP^7^?D}~ttդ,,̳@t$tդa7L7P7T7X7\7$h7a7L7P7T7X7\7$    Lo@tWd1Ta   1   4ݮgX°F79?D`glw2 {!"e#$U%&'(t)*+,-./01@234 56=78"9:; <=>?@ABC,DZE6FG=HDI¹JxKTL{MiNdOlPxQRSTUV'WNXYZ[\m]^_r`ab/cdefygXhNilXjklmFno!pq(rstuv8wxy z{|}~ƾ$.aزO;oZ EX`wiq|`nӶTӶTXӶ!!!"""#t##`$$%d%Ӷx(|(((((Ӷ@)D)t))))Ӷ(*,*\****+++D+l+p+t+++++ ,,,Ӷ0,4,x,,,,Ӷ<6@6p6666XH>L>P>X>>>>??XP?T?????X??@0@4@8@XL@P@@@@@X@@@ AAAE CC@ChClCpCECCCDDDETDXDDDDDEEE4E\E`EdEEEEEFFFDDFHFpFFFFDFFFFFFE`GdGGGGGEH H ??@ &))Q,04523P&L!L1L5LLLM}N=OP&*.15%6 34&[)\\==E> ??@+_3_;_G_S___k_&/_7_A_M_Y_e_q_&!ccd5LLLM}N=Offfffff&fffffff&hhh&m5mQm0&qooh<&!p7pQmP&pppppppq)q-q5qp&qqqqqqqrrr!r&rrrrrrrr s ss&ssssssssst tЄ&Mwwwwww xx!x%x)x܄&i{{| | ||%|1|=|A|E|&59=IUamqu&Ʌeimy&ӆ׆@&#'9ap&}&)UЅ&˿Ͽ߿&/3CIU&߿&CIU(&[iw4&%@&QU5}/L&E - P&ah&&}eM&)M&L&MUe1 G~&R%ȁ&u##### $E$ԁ&####$)$a$&u#&### $E$&#i(##$)$a${&=&!&P|&=%M}#Auy&!&!{&D|&|&=K[iw&`!&0!{&|&}&=%5}/&!{&|&P}&=3E - &!{&|&}&="5}/&!}&}&="E - &!P}&~&="5}/&@!}&T~&="E - &p!P}&~&RR1 &!{&|&&!~&~&= S&!}&(&=SMUY]w&!P}&d&R-S&0!~&&R=SKSW[)&`!~&&=MS7 u&!}&&=]SOW[_&!}&T&=mS%y&!P}&&=}SYaei& !P}&̀&RS &P!~&&=S!A""""""&!P}&D&=S !a!!!!!!&!}&&!{&& !{&&!\&&`!{&&@!t&&!{&D|&&!&&!P|&&!{&&!{&& !ȁ&&@!ԁ&&!&!&&`!{&&&@!&&!{&@&&!&!&&`!{&&&@!&&!{&Ђ&&!&!&`!{&&&&P!&!{&&H&&!&!x&&! && &p!x&& !P&& &!&!{&&&!{&&&`!&&!&& !&!{&H&&@!{&H&&`!{&H&&!{&H&&!P&&!p&&!&&0!&&!&`!{&&& !&!{&0&&!&@!{&`&&!&!{&&&@!& !{&&&`!{&&&!Ѕ&&!&&!|&&!~&& !}&&P!P}&&LW&!&܆&MWe1 G&!&&abebub&!&&bb=&!@&bb=c=&!&&) = Y=&&@!Џ&&`!ȇ&)+= Ym&!&&)- Y&!ȇ&(&)1Y&!ȇ&H&&!D&l&& !&&)I YU&@!ȇ&&p!`&&!&&!&&!&&0!&&`!&&}=(&}'&!&&!<&!4&<&!4&&!<&!\&<&!\&&!<&!&<&!&&!<&!&<&!&&!<&!ԉ&<&!ԉ&&!<&!&<&!&&!<&!$&<&!$&& !<& !L&<&!L&&!<&!t&<&!t&&!<&!&<&!!&&%!<&'!Ċ&<&*!Ċ&&.!<&0!&<&3!&&7!<&9!&<&WN_N:} %YÂe' ;4Ao,   S&t}/!^I&C }"!}"0}"o3oT4o@^8;p@{<@<hj@!>!@$4,>c%@n%Le>&@(h> 3@04l? I@^^m@@yA2y@~A֐@AD-@,B}@ D@)E;@*E)@(E@\kG}@G   @D7HZ@0eH@@M(H@#$@H@+3Iw/@|/HI;@v7xI=@ AĠI;@SdIU@'WHI>W@\J\@q]t Je@>iZJ k@XqDJ;u@uԞJTx@-}J@ JɁ@Љ0{KM@VK@\K;@ +M}@: NP###4#T#t######4#T#t######4#T#t######4#T#t######4#T#t######4#T#t######4#T#t######4#T#t##### #4 #T #t # # # # #!#4!#T!#t!#!#!#!#!#"#4"#T"#t"#"#"#"#"###4##T##t##########$#4$#T$#t$#$#$#$#$#%#4%#T%#t%#%#%#%#%#&#4&#T&#t&#&#&#&#&#'#4'#T'#t'#'#'#'#'#(#4(#T(#t(#(#(#(#(#)#4)#T)#t)#)#)#)#)#*#4*#T*#t*#*#*#*#*#+#4+#T+#t+#+#+#+#+#,#4,#T,#t,#,#,#,#,#-#4-#T-#t-#-#-#-#-#.#4.#T.#t.#.#.#.#.#/#4/#T/#t/#/#/#/#/#0#40#T0#t0#0#0#0#0#1#41#T1#t1#1#1#1#1#2#42#T2#t2#2#2#2#2#3#43#T3#t3#3#3#3#3#4#44#T4#t4#4#4#4#4#5#45#T5#t5#5#5#5#5#6#46#T6#t6#6#6#6#6#7#47#T7#t7#7#7#7#7#8#48#T8#t8#8#8#8#8#9#49#T9#t9#9#9#9#9#:#4:#T:#t:#:#:#:#:#;#4;#T;#t;#;#;#;#;#<#4<#T<#t<#<#<#<#<#=#4=#T=#t=#=#=#=#=#>#4>#T>#t>#>#>#>#>#?#4?#T?#t?#?#?#?#?#@#4@#T@#t@#@#@#@#@#A#4A#TA#tA#A#A#A#A#B#4B#TB#tB#B#B#B#B#C#4C#TC#tC#C#C#C#C#D#4D#TD#tD#D#D#D#D#E#4E#TE#tE#E#E#E#E#F#4F#TF#tF#F#F#F#F#G#4G#X|a|5H zTzTzTzT     /@ 2@8 '3@ :4@8 I5 T88 g9 z:8 ;  <@ = @@8 Ǵg@ ݴj8 k  l@8 m8 -@? @Q@k @@8 @8@8ϵ @8@@(@(@@(@(!@(-@(9@(M@(a@@(p@(@@(@(@(@(Ŷ@(ٶ@(@@(@(@(3@(K  ` @ w    @  ˷  ڷ@8 8 #@$ 0'@H( `+@~, @/@0 @Ը,  -  .@  @  )@ @ W@@ n@ @ @@˹ @@@@ @@ / E  U e@     @@ ۺ@ @   @ 5@ 66 O7@ k8 9  :  ; ƻ @@ ڻ @  @(   @ !  6" ( N@h@@@@Լ@@@((6(Q(h({(((Ƚ( ؽ( ( ( A( ,D( DE( \F( pr(s (v(˾w ((  (( 1 (L@( g@ ((  ($ ɿ$ ҿ$ $ $ WWWWWWW4UpUUU$U`UUؐUV$L$##(###x#̇#\#4###4MXhMXMXMXXOXOXOX PXPPXdPXQXRX&M<}YYXYYY&Y̥YYhY|Y#@ &P &` &0p &=&R&] &j& & && & &0 &@ &0&  & &3@&Hp&X&d&t` &p & &&P && && &- &= &S &j &x & &d&&&&&g&w&0h&M&Y&gf&}i&&&&j&l& m&!n&-&&A&R&e&xu&p&x&&}&&t&&&e&&63J e r  *+  (!5"D#U$e%}/&'(-.0234!,3;BJR Z b j s| !"&*:?@ABCD+E:Fnx S0~@#P`SpS&~  p0][^[b[Hb[ [[ @[$,S$T$8U$̩#C$S$##8#l\m\n\%&r:^>^A^G^(M^ cT^T^tC$xC$tC$dC$tC$PC$tC$v (b9\vͼ'>R|_uvThUɽq3KecHxE˾ܾ}3Kgf7Ŀݿ2KBXJqS D0xAg`qX #0>`t8 *#O4PMQhVY +hB]ijkl?@ ,AZv1Oju}t9~M_-u./9Rp$>/8L .&C_BvZYWXVm+nKom:!CVhvp*;OR];Iq-=Tzjv r    aeimquy} ȩbb$bb,bxbbbb,bbbb bbDbdddd dddP P   ) 9 I` [0 r  0 P` %7p K] p`|0 @P  p` , BSdp z    p 0,p AT f0 v  @ P   , A Yv P`@ @   $d9EVzpre 4Jbxo$3EQdxvg$Mfj*9yH^kt{|l}v~%;mQ@4@P4Wd4$e4lf4~fe@P`p`'p' ' '0P'B'S'h'w0'' ''@''`'e'f')z'4{'Ny'hg'z|'h'i'l'm''n' '3o'Fp'kr's'u'v'}'~''w'x''*     0  + C@ ZP a` l { p    P ` p   @   + C L Y o ڥ      0 @ P d *e 9f <g It Vh gu yv  s w x y z #{ > Pi _j lk zl m | } o p q tr ~ ##)#8#D#\P#t##@## #0#`#p# ##1#NP#k## #0###@#d# y#e#f#5g#Bx#Ph#ri#j#k#l#m#n#o#q#r#s##t#Au#Zv#qw#!p!`!@!"P!8`!F0!_p!s!!!!!!! !P!@!"0!5`!C!O!a !t!!!!@!!!!!p!0P!Fu!!St!sv!!w!e!!!x!y!%!:!Oz!h!!ss!{!!h!|!!!)! i!!!8!M!uj!k!l!m!n!o!p!q!-r!@le|eeee e@$d$  0 $8 FXP fv   @   0   + : @C P\ `u p P ` p    7 W q       * L k   0 @     P ` p6 A ^ dx e f g hlj k l m n 2 oM z\ x p | } {  $(>M[r~"x8Ki^pqy$r$=sYtouv3N~wv/// /! /6P /P@ /i0/~@/P/@/P/`/p//  /"p /5 /E /W /j /{ //`/p/////*/B/_/r/// /0/@/P/`/.p/Q` /i/~////// / /5/I/S /b/t///d//s//t/e/f/:u/.g/Qh/ji/yj/hk/v/w//l/x/ y/m/n/z//)/;o/Ip/[{/i|/~}/~/q///r/-0(@((()P(A (P(](nP(v`((p((((((h(f(1g(Ai(Qk(bd(te(sm(n(o(j(l(@  P P  % 2` ;p D X  qp        3 J0 X j  @       '0 E0 c@ ~P ` ` @ p     " 4 E Y l  `  P   n  d (v :r Ne ` {  q w {  s t  g  h ' | 8 i L i } w ~ j k l u m y !x !o ^p +!z =!`'ee!e!e!e!e!e!e!e!!!22̌""# ###"#*#<#B#T#e#u#########$ $$$,$:$w$$ &4AUhs~$$ ˔ߔ @ " %` "1% "M% "i%p "%"%"% "%p"%p "% "%"%P "%"&"!&@";&P"J&0"S&` "b& "t& "&@"&"&"&0"& "&"&"&"'"'",'0 "?'P"Q'"e'p"'`"'`"'p"'`"'P"' "' "' "(0 "( ",( "C( "W(P "g(@"w("("("("("( "("(")")",)">)"O)v"`)w"o)d"z)e")")")")")")"*"*"3*s"D*f"Y*g"m*t"*"*"*"*"*h"*i"+"(+"<+"N+j"d+k"rl"q+m"+"+"+n"+"+"+"+","%,"2,"B,~"Q,|"e,"s,",y",",",",r"-}"-"(-">-"N-"n-"-"-"-z"-{".o"."8."J.x"9u"a."t.".@ .` .p . .p . . . . / "/ ./ @/ L/ X/ e/ n/ z/ / / /  / /@ /P / / 0 0 -0 A0 S0` d00 s0 0p 0P 0 0 0` 0 0 0 10 10 1` 61 M1 ]1@ s1  1@ 1P 10 1 1` 1p 2 2 02 <2 J2 Y2@ f2P p2 2 2@ 2  2P 2 20 2` 2 2 3 3 .3 530 @3 T3 d3P s30 3@ 3P 3` 3 3` 3p 3p 3 3p 4 4 04@ A4P Q4 \4 m4 x4 4 4 4 4 4 4 4 4 5d 5f &5 85i #j R5k El S j5m 5n 5 5p 5 5 4r 5s 5t 6w 6x 26y O6z ]6{ q6 6| 6 6 6 6 6 6 7} 7 (7 ;7~ J7 _7 7 7 7 7 7 7 7 8 58 C8 U8 + f8 ~8 8 8 8 8 8 9 9 %9 69 K9 W9 e, m9 9 9 9 9 9 9 9 9 : .: D: X: m: : : : : : ; ; !; 9; I; o Z; p; z; ; ; ; ; ; ; ; < (< @< \< h< < t. < < <e3qAf3Ai3!g3A@3AP3 A`32Ap3@A3PA3aA@ A` AP A A A0 A Bp B B )B` 9B KB XBp cB nB |B B B B B B B B B B B B C C (C 6C  @C LC0 VC@ aCP qC@ C  C CP C` d C C Ce C| #g Dk D 3D ED cD} tD{ D D D Dn D D Eq #E 3Es @Eu OEv eE }Ew E E E Ex h E Ey F F~ HSHcHuHHpHHHH HH H H0HdIeIrIv/If>IgWIhcIirInIjIsIwIoIkIlItIuJpJq%Jm9J@JJPJ0.K@ .K@.#KP .:K .VKP.nK`.Kp.K.K.K.K.K.K.L.L.-L.:L.FL` .[L .uL0.L@.LP.L`.L .Lp.M.M..M.HM.bM.}M.M.M .M.M.M.N .N0.*N@.=NP.YN .iN .N .N`.N .N .N .O . O .DO .eOp.O.O.O.O.P.'P.FP.eP.Pp .P .P .P .Q . Q .1Q .>Q .MQ0 .gQ@ .xQP .Q` .Qp .Q .Q .Q .Q0 .R .&R .1R .@Rc.KR.\R.xRd.e.Rf.Rg.Rh.R.Ri. S.Sj.2Sk.SSl.sSm.Sn.o.Sp.q.Sr.Ss.St.Tu.T.U|.PU.bU}.kU~.U.h.9...U.U.U.U.U.U.U.V.-.V.. .(V.=V..MV.u.]V.nV.V.V.V.V.V.*.V.W...W.4W.YW.tW.t..W.W.W.WXff,fhffff0f8fwXff,fhffff0f8f}X@XpXpXXX0XPX`XXX YY0YAYLY [YiYPsYn|YsYdYeYpYmYfZiZjZk;Zr3ElFZuvwMx_gOZqlZtZhZZZ@Z0ZZ`[%[3[P@[`S[@f[efz[g[P2[`2[p2[2[2[ 2\02\2)\P2:\2Q\2h\2p\2}\2\2\2\2\2\@2\2\P2\ 2\02]@2!]`24]p2K]2a]l2:d2q]m2]n2]o2]p2]q2]t2]h2^k2^i2&^r27^j2K^s2W^e2o^f2^g2`_P__ _0_@`P``#`p/`A`O`_`n`}``@`p```e`m`j`hf`p alag^k+ad=aiNaogaqva"S@ aP a a a b b b (b 5bp Hbp Wb hb0 ub@ bP b` b b b` b b b b cf cl `m `h j 'cp ;ce g ^k +ai Naq n Nc@%tc`%c %c%cp%c%c%c0%c%c%c%c%d%d%%d%.d%?d%Qd@%Zd%dd%sd%d %d0%d@%dP%dP%dP%d%dp%d%d`%e%e%'e%8e%Ged%Ten%keq%~er%ee%ef%es%eg%em%fo%fh%'fp%Mfi%afj%fk%fl%fg %g 6g Ig Zgjg{g`ggggggg h h@ )hP php$(pp''p q$($q{$(^S{{''_{{$(` |9|$(aI|`|$(bs||$(c||$(d|+}''h7}h}''l|}}$(p}"~$(t6~~$(x~~''|)$(Q$($($('A$(T''Ѐ('$(%\$(i$(ԁ$(U$(u$(('A$(^$($(.$(?\$(v('؄ ('"$(1E ('Wi$($(ͅ (' ('-$(F_ ('p('Ć('؆('('4b('ɇ$( $("@$(Vu$(³$(óƈ$(ij$(ų)T('Ƴt$(ȳ('̳=$(ͳU('γƊ('ϳՊ$(г=%(ԳMo%(س~%(ٳ('ڳ('۳6%(ܳ%(ݳX%(޳q %(߳@ %(SȎ %(׎=%(M%(ݏ%(v%(%(Ȑ%(x('('(')('5l('w('ܒ(' ('!N!('["('ē$('D?%͓6%(F%(Ք(('H?%ڔ%( 0%( <%( K!%( W#%( d%%( q,(' •-(' ӕ'%(  \(%( n,%(-%(ǖۖ0%(4%(/S5%(j0('6%( ؗ7%(!H8%("n9%(#:%($!4('%,};%(&G/!5(''\q<%(({=%()Ǚ>%(*י?%(+-@%(,>qA%(-6('.ȚB%(/ӚC%(0D%(1.PE%(2a}7('38('4ěF%(5G%(6)LH%(7k<('8ϜI%(<=J%(=XK%(>ŝ@('?՝L%(@ eA('ApM%(BʞD('D՞H('H1rN%(LL('Pԟ O%(T&ZP('U{T('XʠP%(\*dX(']zY('^ơQ%(_ϡ T%(`>X%(dSZ('eY%(fĢ[('gZ%(h0R[%(i]p\('j\%(k£]('lף]%(m>^('nW^%(o_%(p٤`%(qd%(t!O`('xcd('|h(' 4h%(Si%(Φj%(k%(7vl%(bi('sj('7p%(Ax%(ĩ!|%(4%(Ǫ%(ܪ%(/T%(bk('٫l('.%(Ie%(}%(ˬm(' (%(>]n(']o%(op('x('('L?%ʭ֭('%(Z%(k%(Ĵ%(ȴ(%(̴-^%(ʹl%(δ%(ϴӯ('P?%%(д)¸%(شe%(ٴΰ%(ڴְ%(۴2%(ܴ>X%(ݴd|%(޴%(ߴ%(,('?|('²%(˲('G('T?%Oq('%(ӳ%(@%(P|%(մ%(ߴ%(4r('X?%%(׵%((%(>b('\?%w('%(J%(b%(%(%(;b%(s%(ո%($%(N%(ȹ%(׹('`?%%%( 8X%( k%( %( ĺ %( F%(Rj%(z%(3<|| $$$Q&:=@CFILORUX\v_be!$'*-036:>BFJNRVZ^bfjnrvz~Yn\3&"s',q's'*H)HL,H`+H,/H/H0Ht2Hp6H@5H%H%HH2H3H!HH(Hs'n'-L"P&S Shs'"p'p's'p?<<<<p'`p'ܚa9aWM@MTsLhMMH#nPlaQp'\&T&X&R@\Hdj\<^^@_k`U8j`9]U&Uh$UVl\Vt WVV ]V(V@VV$HVVEVVDVVdCV`?V2V&EXS(&A$A$A$A$A$A$A$B$$B$PcScWc\cLccS(|y'Zy'H'b"bTbcHc8c?$H@$_`T^\|$$$``l``|``0]@]$b4b/^/^0^@}`}`PY~`~``YpYYYdY`<`tsYtY{`|`bXbXtbT`d````]]Pe0{#4($D$$$$$P$~#$ c(^̜^b``\___'$&$##$p$&$$$4^Y@YZYH%$$bX[tX9a`؏`aalaej`,CXb8bbbJ$$J$F$ I$$G$L$Pc`cH$G$|G$H$D$E$\D$I$tF$E$DKXLL$|L$?$$H$/^$$~#$$xXxJxFxNxRK$hK$'(%(P%%('%(-('tO'pO'lO'hO'$'('O'i''b''-%($(%(X('4!M%(d%D$(H$(`O'%( %(%(d>%0%(x>% >%>%>%>%>%>%>%>%[%(('7%(#$('$(a''f''k''(%(',%(4%(5%(1$(0('''''$(8%(V%9%(,&&&p&&U%L&d&<&xU%&U%%%(%(%($(G%(F%(H%(%(<%(>%(^('B%(6(''';$(e''$(D('%($(''''''''$($(''''''''''%(%(%(%(('$($(e$(|$(h$(l$(}$(''t$(u$(\$(''''|J(&H&&&''d&%&4&~$(b$(d$($(a$(L%(@('H ?%( d&h('l%$( ('N%(A%(|sDO|kzzWWWX0XxXXYPYpYYYZXZZ [[[,\l\\\\,]]]]^^$_-.k8k 2) @` xPP ۔ {{ |$ݒX oL,Y('|'(H('-$(%(('l'' %(('%4%L%l%($(%($($($(*$(%(('$($(%(('$( %( %($(TP%$()$( ('$(' ('$($(L('$($($($(''$(%$($S%R%p%($(''('$(Q%DR%%( ('('$(('('('$(%(%(%($( ('$($(m''p''tS%('%($(('$($T%(l%,|''/$(''%(k%(0-(4-($(j%($($(L$(:%(U%U%0U%HU%V%`U%U%U%U% V%8V%PV%&hV%V%&&&&&,&&&D&\&t&&&&&4&|&&&V%V%&&V%V%W%(W%@W%& &$&<&T&l&Q&N$(T$(''%(4('''<$(X$(%(%(('x%(|%($(%(6%(t''u''v''Z%(dQ&%(%(('%(%(%(%(%(%(%(Q%(\('('('%(8$(x''dO'@%(Y%(:$(J%(I%(y''9$(w'',$( %(Z('v$(''''''U$(]('5('\%( $($$("$(j''h''&$(g''%$(]%(%dh%(<('('Ж%O%(P('`%P%(T('m('0%Ğ%Т%,('%%%<%d''c''%%(%X%''''y$(=%(C%(''E%(%(%(k('j('8('8-(<-(@-(%(('A('$($($(''p&''$($($(''$($(=$($($($($(''$($($($('0'%%(#%(%(%(%(!%(%( $$`$$X%($($($(&&| $p$(''7('@$(z$(TO&`$(M$(]$(^$(P$(''c$(''''%(''x$(''''''''''''''_$({$($($($($(Ԫ ت !R<%('\''$($(%(ܐ$$\$\$$`$ $D%(+$(;%(hL&8L&(L&.$(HL&XL&t%(%(xO'T-(%(%(l(' $($(Ě Ӛ     $(H$(''''''Xr%o%L\l|Q&(xpޮ$ɮŮή׮Ү` #x*t/;>PBEHKQU\Z^c@hlqvzD4ԑtЩH|8l¯(ůǯʯ\ͯЯүկLدۯݯlXD@(8HOW`_X!(g'o(.v4}:AJO|ܽǰPҰڰ(D %-@698F>BX艱䌱(,ИtDܫ бӱֱٱܱ߱Pp0 P!H&0R\CE447GK,O*-|X<?\Hdfj|n|rTv,z}$pX@(લȭ ෲ亲Ḷ,' -$̲DzҲ(۲, x"&);>GDOhT Z@`,00hpڳ޳ٳ,ntntnnnpnn$0$(xp&&& r&h$r&&p&lJ(h"p&p&I(q&I(@q&pq&I(q&q&r&)q&I(s&s&s&J(!t&J(Pt&t&t& u&`u&=u&;{&@v&Xv&pv&v&v&v&w&Hw&w&w&w&(x&`x&Џ& J(J(|x&0J((J(x&x&x&x&y&0y&Py&y&{&y&y&dz&|&p|&|& }&I(I(J(J(J(8J(@J(HJ(PJ(I(J(J(J(XJ(`J(h&ehJ($z&Dz&z&z&@{&h{&{&{&|&&5&&&&5\&p&5X&|&&4&H&T&TQ'PQ'Q(Ď&؎&&&&\&̈&4&؈&&l&&&(&<&&|||;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Android (5058415 based on r339409) clang version 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec746213857d083c0e8b0abb568790) (https://android.googlesource.com/toolchain/llvm 7a6618d69e7e8111e1d49dc9e7813767c5ca756a) (based on LLVM 8.0.2svn)GCC: (GNU) 4.9.x 20150123 (prerelease) GNUgold 1.12A5aeabi+ARM v7 A   "&.shstrtab.interp.note.android.ident.dynsym.dynstr.hash.gnu.version.gnu.version_r.rel.dyn.rel.plt.text.ARM.exidx.rodata.ARM.extab.preinit_array.init_array.fini_array.data.rel.ro.dynamic.data.got.bss.comment.note.gnu.gold-version.ARM.attributes TThh'  /  S&7t}/t}/8=o33DJoT4T4`Y 44Ab B;; f;;k0;0;\qqpܡܡ7 |4x!x!s}"m"}"m"0}"m"~"n" &&&&``Q'`A'@k'<['0<['/l\'p\'6\'