x H__PAGEZERO(__TEXT__text__TEXTl__stubs__TEXTL __stub_helper__TEXTTdT__cstring__TEXT5__const__TEXT0__unwind_info__TEXTH__DATA_CONST@@__got__DATA_CONST__const__DATA_CONST-8__DATA@@@@__la_symbol_ptr__DATA@@__data__DATAEE__bss__DATAEH__LINKEDIT"0 Xp0E P??At /usr/lib/dyld'G=X{[}f2   4*(` 8'/usr/lib/libSystem.B.dylib /usr/local/lib&X)p0 O{H R#( e (0 a( ]@R^ , ^@RY,P Y`,p V- S@. P / M1p J4 {BOAD_WO{C7@qT@A#  4!#0  40`4}! "0 թ!p q" p qTq@ TqaTdRtJJ@qT!p [4 P B[@! H4-H R#P ۽jR,P -qAT*4Rb8 @-qT`@s  X@"R.@RqTqTR{EODWC_B_O{N0 hX@`@} AP {BOA__WO{RMqT*@ TAP ~@Ap {COBWA_ĨO{C!P B #R4 R{AO¨_A cP "R{AO¨,O{C8/ʗ؞κfMѴSBpR{AO¨_Cog_WO{_q,T@#AE ;@@ T@` TE0  4 qT@R0 Ep  @"w  4sp @a@(@q(lTtu {HOGWF_EgDoCC_w@ 5@/`4\ B"#7@?@y4a:0 @a@(@q(lTv@@5@bE0 KTP C@@?E# Q2y kT6y7 kT30 y@a@(@q(lTv@]a@1p  E@4>0 Y@=0 -p #A10 -CWO{ X@R@ւ_x741Bp )#AR|@ 5n)@ iX)@?T{DOCWBC_֫CWO{Up "u@a@@@ @94a@{DOCWBC_WO{)8@y(@7AQB?6@a0 @a@(@q(lTva@hp [ R{COBWA_WO{@w{BOAWèR_O{aC f` u!P RF#(`5 @vyu{BOA__WO{C X@@ @d `@#AR5`@@qTR`@ukT@ ՉX)@?T{EODWC_B_ܹ*zuyO{CRy{AO¨CWO{s@z@qTҔ 0 hzh# T{DOCWBC_ֈyyWO{A(@(1   ը XR?P {BOAWè. {BOAWèO{C!@(@q(LT  Ղ X{AO¨@og_WO{ C HX@0 -  RQ@4h@ 86}@?P ޺yP H R#` ՂAp Ղp PRu0 vp w 0 ՘4@9qaT!RP  9RKy!RP ըRz@$4#Rh@?Q 59R@q`T94 xRκxɺ[%@qTeqTqT!@qTX,`@#4 X@"Ro@R@qTARh@?@ ՉX)@?AT{IOHWG_FgEoD_֙og_WO{ )X)@C0 RU94R+O7Q0  S/R9i w@q!T4hw@qT;Q NQ%q#T#BRG@ @9?qThS@H35Q)R )O@h25(R )W@H17k 1TRRS95RRw@q-TqTq@TqaT7RqTq`T 9k58;hTw@C Q?%qT#BRչCG@qT@k*T@u`-5C@C5R(87R;h?w@_qT;zhw@ Q?%qT#BR?G@qaT@k$T@u'5?@H?;YhWw@qTqaT;Nhw@6Rq`T R;Chw@6R]qT5R Q?Yq(T ՊyixJ @@W@i 5@q T#@q`Tq#TRC@P 9 _qT?@P 9 @W@i657w@@y?qAT=@3R('xRc5(Rw@)9?9C@ R? T?@+R_ T?A((_qI( @?kmT#@   ( X!}@#@?~@63@SǸo/@S/@o5C@9T9@@#R9C@ T@o@C@9mT5@#RC@ T;'J)) WRTQaqT@W@i;@ 5Sc@S3go9R Rw5Rc@W@yy_qT?@9#@/@Tgo#@/@   X)R#@!R?/@RR3@)%ȚI6)RI98) ?T R5R_98)4`"a O@Yi0   @p @@(@q(lT##@   X?֨Z UX)@?T{SORWQ_PgOoN_H4S9W9Sap  jO{#b42 @({BOA_WO{#3+ @4 h@T|{COBWA_BR{COBWAO{C@9qAaT R @943 TJX87 =@5R 4`@85{AO¨_O{#շ`@{BOA_a^{{_ WO{ (p X!}@?~@48{BOAWè_WO{ hm X)!}@?b~@38{BOAWè_O{HRr 4Cҟ @ '@jjt)}J*GII%{COB_ =J) ))IJ) )IJ- J( AHJ_a4R! _8 @ !qT_R_(R_og_WO{7RySkTRh"@kbTh@Q ha X*5}?z*@u"@4Ri@;Y|;x @h@@`@?h*@  Zhi Z(h"@Qh"85 \ X`@?@t"y v^)u~)z*{FOEWD_CgBoA_WO{R@@ @?@ @ @?R R{BOAWè__WO{@5Rh@i"@ kTyS}h@@?h*@i@  h@Yvh@ @` @@?֠4@ T @w ըP XR?h@ yv y6h"@h"q{COBWA_Ĩ_WO{"R @@ @  @ @H?@@a@? @ @ ?@v @ @?Rh a@ ?֨@ @ @?`t R{BOAWè_Rt_WO{ @4@@?h*@i@  h@YvHh@ @` @@?֠4 @@T @( R{COBWA_Ĩ_ֈ @wBi@) (h"@Qh"h@ @` @@ ?h@@` @@? (> X?R_WO{ @H4 Ri@ *4Yj @h@ @` @@ ?h@@` @@?֨B?h"@Qh"wi@?y6h5{COBWA_Ĩ_O{C 7 X`@?*R{AO¨_WO{ @4@@?ֈ*@@  @5yh5@ @ @@?֠4@T @u{BOAWè_O{C 0 XR?{AO¨_ @ @ J @K@ k*TJ@H @ @*_|_ Ղ+ X@@@_O{C$@) kjT`@ yS) RMqHh թ( X`@}} ?`h@(h{AO¨_@4Q @ h__@4 @Q h__WO{@qkT҈@yu`?ֵKT{BOAWè_O{C`@@hb (! XR?h^@ H`^{AO¨_O{C(@@?`@h  HT H X?h@hi@ i@I(^@AT^b@"Hbh{AO¨_O{C@  HT  X?{AO¨_WO{@H4 i X ?`@h@3@h@( @h?   h~<@h`<{BOAWè_O{C@th@`@{AO¨_h@ @?O{C@h@ @?`@{AO¨_O{C@h@ @?`@{AO¨_O{C `@6`@a@=c`{AO¨_WO{(@ T)@i  @?h@@?uh@ h&){BOAWè_WO{1TT4 H X!}@?}@4855  tv~{BOAWè_WO{c L){BOAWè_WO{1`T*`{BOAWè_WO{1ThB)  _ kD@zAT(ySRqH i@ JX?@?`vh@`@~@(?h@i)4i)8h@(7h@i bh@ hh@ h{BOAWè_WO{B@@ @?ւ@@{BOAWèO{5C} @B@ !@{BOA_WO{`T@@ @?ִ@h@h@ @?h@kATa@ܲq RR{BOAWè_WO{5@@ @?@@@@ @?ւ@@{BOAWèg_WO{Cq 49iqTmq`TqqT @8?qs Kq!T3b K#3 baQ@'` KKs+`T:q@T3g'#b''A) kT8K#Y'8 sK454R& @8sq7?qATh7s44`53aR(kAT@9qd @z T|@( @8?qd AzsQTRh*q{EODWC_BgA_R R_WO{6@@ @?@8@@ @?֘@-{COBWA_Ĩg_WO{Cky43&#&#A) kAT 89q!Tk觟kZ })2q{EODWC_BgA_C_WO{8@h@ @?x@w@3#`4@H5_kT{DOCWB_AC_{DOCWB_AC_WO{@5;4 R{COBWA_Ĩ_֨@2 kʂH @ kɂ(  Rg_WO{C5@@ @?֕@@3#`4"@a5kTkaT{EODWC_BgAIa Eah X){EODWC_BgA_g_WO{C@3#u`4&cA)_kkT@@ @?֗@ aQh `)A` :* {EODWC_BgA_WO{(@v T@?T@ @?ց@a`4R @T@?֖ R{BOAWè_O{C s$@h9$@qq *{AO¨_og_WO{C @AT@@( ?T@@04@( @?&@@5Rۉ *R?AT"@+A[ @\ }@/o<<+.) @\RXRR@: 9qXh4V9qTY 4c'Wq T"Ț?TCY 5OV Ѩ7CWCY_1)I4T"Ț ? @TCYH5CW9@7( =@4R$`5qTV @9?)qTCW)CWQTc!&qTV 7WQHRmqTqqT@9CY)q @zTcс%cG% CWs1)c&ѨRWXq)K$Yh5W@aRRR$BR?o(R@h@`T@h@ @) Y7@@q T*1LAqkT)@#B}| ?@7@?qKTRRR@H#3a&@Zb q`Tq!T&@Q qT @qTqaT@@9qTb(R? qBT R@0 R6`4 @(%@qTR(%*@(!(R R)KAkQ qT7}4ZQq`THR ~@e   @QrZZ5@H#3@#w4Y3Q@@ &@@ @ @J  9cZW557@_ kT@(R  x H  #@p)@BR@@Rq) D@@TB?h@@?v(m h {EODWC_BgAoƨ_WO{L@L@ @B?uU{BOAWè_WO{(@h@ @?h@ @9?qT@9qaTh@hAP $h@qhTI{BOAWè__WO{ ըfX R?o=((Rh@hh@qhTR{COBWA_Ĩ_WO{@4`\@h:@ @`>@?֠ `{BOAWèhN@hN`@ @B?uU{BOAWè_WO{R{BOAWè_WO{`qT0 G5RR@qT{COBWA_CWO{,@=@@@ @?֨@4u@h@ @?u@h@ qT@9qT@9qT.@=@|P h@h{DOCWBC_o g _ W O { !X@CqTRRRRvP W0 ՘<BRz@4bRu4@9q@ !@;c@ !@@@ @?@@(;99@{ k`Ez TcFsGC@RR CX )5}@?@ @a@(@q(lTt?qT*@(@q(lT"TZ X)@?!T{NOMWL_KgJoI_TC_WO{H@@ @?ֈ@4%!v@ !f0 {DOCWB_ACAcp @@!ep 46R@qT@qT{DOCWB_AC_@RhN@hN`@ @B?wWRC_WO{(@43%@qT Jh8qT q T2 _8?qT*@ @)q T*@N Q*@7*`hN@hN`@ @B?vV+{DOCWB_AC_g_WO{C(@ T@iN@ !T@h.@=@4@@5YwR \@ @@?֙hN@"h.@=@h.@=@ @) @qT@B@5h.@=@@@ @?@4$`6aJ U@qT{EODWC_BgA__WO{f4qTqa T{COBWA_Ĩ@@u.@h.@u. 5G XR?@|@@ @?ց@(@9qT(@8q!T@Q(@8BQqTw2@BI6Rw.@BR@@?( Ո@* @@(@q(lTVR{COBWA_Ĩ__WO{(@6 T)*  Ti*@?q R RIjij@)@_ aTRNu@ @?u@ww4_8qTR1` R<@9qT@9q!TQ(@8BQqT2@B]@.@BV@xR"@MR@8 R5R8h@@?Rv@xu*{COBWA_Ĩ_WO{N$@#RR4QP WP0 u@@a@(@q(lTu @RK0 8{COBWA_HMP WO{n@@qT{BOAWè_O{CE,t.{AO¨_WO{E@@qTf{BOAWè_og_WO{4q!Tp ]@ @ @@ @?ַ@@@9qT@9q!TZQ@8ZQqThhb@@@ @?ֈ@ @9?qT @9?qT@"Q(@8BQqTv2@@h @ @ kT! @qlTTC@@qTRaP w R{FOEWD_CgBoA_X@(@(@ @?(@kT @(@ @? @U`4@5(@ @?T@0 @a@(@q(lTuWO{@4{COBWA_TqT5@ @v.@i.@v.@6a 0 #A{COBWAT#@O{CE,t.{AO¨_WO{;@@qT\{BOAWè_O{CE,t.{AO¨_C_WO{4qAT{DOCWB_ACV@ @Iw.@i.@Rw.*@(4@@ @?ց@@(@9qT(@8BQx2@C446 {DOCWB_AC_x.@C5hR@ iRg_WO{CP hXR?@P@Ȣ@ ɢ"#  @Ȣ@Ȣ@@ @?ֶ@Ҩ@RquB}@ XRTj8|q`T7(K =@ 4jw8R5 Rj78T^9{EODWC_BgA_O{C@ @ ˀR1h@ hR r )|RrIT{AO¨{AO¨_og_WO{ C X@(@V @ Tw@ @?w@h@@9?qT@9 Q?qqT@Gҩ̬L @jRʅr)  hN@9qT@9qT2 {XRu  k8|q@T7HK =@ 5R4ATR< =RB39CBRe @` 4 u@@ ՉvX)@?T{IOHWG_FgEoD_ր"cZ@h@@?v@h0 fWO{sh@h@(@q(lTR R{BOAWè_O{CYR@h R{AO¨_og_W O {  kX@/@`Tv ;#\@  Wt Ո@ @96T@ @?ր@@?qkT@9qT@9 * Qq9ǨC9(+TȦ@9qTN@9qaTR@9qTVBRC@C$R|@Ru" | @@@#C@@hHBaR?@B#0 O@#3HR|'@+#@ @) x@@aR^@a@(@q(lT-x@qT%#@(@q(lT9hbA?kT@yC!HB @?h@hR`R/@ ՉSX)@?AT{KOJWI_HgGoF_aO{4H@qT6@T#{BOA_WO{?qT*}jjhK@kK!?ATa@(@q(lTs"T{BOAWè_{BOAWèR_WO{ ՈtXIR?IR> @\`R=`o`"=S s>`Z=rT s`~=hU s h:=U hho |`aU T(R `YT `b@ҧ`h@h hLX  `aP '`P !`h@h7|`f2hR @J h @ @J h@ @J hX @k hY @ h@hhf@ @k @|)`hBhH@H(@(h@ @) 0 Ÿp a6p 60 P bp p b p ՂP ~!p Ÿp xa0 0 rP m0 hTRT A0 6T p -{BOAWè_O{C?   {AO¨_WO{@`8@(X |8 H HUXR?oP8x  R@ R$ @R<h@h{BOAWè_WO{n(<  4R{BOAWè_WO{(R,@tR&@R a@(@q(lTZa@(@q(lTSa@(@q(lTLa@(@q(lTEa@(@q(lT>a@(@q(lT7a@(@q(lT0a@(@q(lT)a @(@q(lT"af@(@q(lTa@(@q(lThN@hN`@@B?tT`B`6@?6~`" B`@?~`BrB` A? :B`A?`bB`@?~a@(@q(lT`b@@B?tt@t A0@(B @?֟ :B?B{BOAWè@_WO{,@Aa@ @a@R "@@v@@x@@@qTxqTl4qT@a@(@q(lTpv@qTg@qT`{COBWA_Ĩ_og_WO{C6H@V@4Q@8hX@:@?:@ @H>@? :@qT$@h5hB@?hB?a2@(@q(lTa6@(@q(lT a>@(@q(lT4h*@AqT`B `B hB` @? :@h:{EODWC_BgAoƨ_CWO{6@@ @?֖@@9qTcs@B4 C @`T|h.@ Ѷp @  T"Rq`T@(i.@)  CBR@94 @@9H4  Th.@  `T%@XP h2@{DOCWBC_WO{(@  T5R"RFqTR@h{BOAWè_WO{  XR?Lb{BOAWè{``@@{_`0@_WO{(@)  T5R"R qTR@h{BOAWè_C_WO{(@i  T@ @?֗@#9@X46!a0 Rh Ո(ATp@qT_ @a@(@q(lTt R @@?R Ո{DOCWB_AC_C_WO{(@I  @TRh@ @T@$@Q@4A=0 DRh@@@T6R"RwqTR@{DOCWB_AC__WO{(@(@H4@@ h@@? hu6Rh@qhTy{COBWA_Ĩ_֨@ qT qTq!T@ @@(@q(lT]R@ @ @@7 T@ @{ @T@@ uQ_qT@ @6 Ռmij8  觟"@ @?qT @` @  T @ 'R &RH ן  ǟ  跟  q'R &R(jh@@(@q(lTRg_WO{(@  TX `T  T@  )v*R@a^3@ @?֗@cBR@4C&4A; R R@@@?֙b @@?֘ @R`{FOEWD_CgB_#m{C@`   {A#l_g_WO{C(@ `T@ @?֖@ҙ  {x4#AT@ 7@@?֗q觟Rh!00  R{EODWC_BgA__WO{$D)  kTySqa q貖@6(3K}}͡q+T*@Ɇ*@J*AT"@ "{COBWA_Ĩ_O{`@ HT X?#"R{BOA_og_WO { (@W "Tɭ Պ  T Tb"@@ii8R5@@)@ @?֖"@@@?֗y4o<5@a@(@q(lTRt@p n@ qT R{GOFWE_DgCoB_g_WO{C(@i`  `Tyg T@ @?֗@a0 bRܟ@4@#@qT74P ) R6@( R KTR@*>8h4q`Tq!TY`R2hRh@4a6 T@@?֙Rv{EODWC_BgA__WO{D7"@kT6*"@ kT @~@v @)q T@ywCR@y7@W6p @a@(@q(lT+t R{COBWA_Ĩ_g_WO{"@b |qkTRjd?kT {DOCWB_AgŨ_og_WO{ C5I 4qT**@J@_T)!AT4R(4R5@@@ @?֨@ 9#T q  (XX!}@?qKT*yzz8@(@ @?8@5@4K7 QQ'9@7 'X =@5R4Q{QQ9ѹ57R7@)7R0y4K7@@ 8@7 "X =@5Rޜ4 qT kh8qq TQ9єѿ+T7R7@ 7R@@RR'@ @"@ݝ9Z_Tw6QR8_aT9@{IOHWG_FgEoDK(TqKT*h@!@ @!T{IOHWG_FgEoD_@0  _WO{3?5#:4{COBWA_i"@@2 k+h @ k*J KKk17qk.Q K_ kNﳏk k} rL _kJⳋq@IzTi@!({COBWAQ*@I@( kkT1cTR 6(?I@?kT Q  KJ} h_WO{4 R{BOAWè_֠@6 HT Ո5X?ֿ{BOAWè{g_WO{(@  @ T  AT@ qT@@"@s"@7R@ &@ $q+ Tyya4@`)@)q)Tm@~@ J@ y)@yy(@q(T`"@(}@? T " @*yy *y(@* J@ "*+( k-T@9 Ra @a@(@q(lT6t RR{DOCWB_AgŨ__WO{3 @4@h@|@`)@)q)Th@Ry6M"4h@~@yw)@)q)Th@yv(@q(lTh"@ Qi"QkTj@IiIy7i@(h(y6h@ywR"i"D) k!T ySRqHh& ՉX`@}} ?`i"@ Rh@R@J@J)h@* j"){COBWA_Ĩ__WO{(  qKT҈ @y k+T{COBWA_Ĩ_WO{BR?o=44Ba~}?ր&{BOAWè_C_WO{`4@4R@(hh6S  R{DOCWB_AC_g_WO{hA)8  i"@4i@*K}5ik1T4) )@?kaTh@Qi5h@?1  )Z ZS) R1T1T 1T4h@*)}  i)h*@h*U5?1Th*@Qh*h"@i@)M7(a)4h@*)}i){DOCWB_AgŨ_֪WO{(@  !T"@hh7@?4(Rh@!@h@ @{BOAWè_C_WO{#4qT*@#H5@"TRa{DOCWB_AC_Cog_WO{ @' qThq K T5sA @@ HTB?_@ 47 ^h  BR?o=` @h@ qkT@0#@4<W77   ՈXR?o=5#Ain4@H7@@ T ՈX?_@T hX?֟[4'@ qT R{HOGWF_EgDoCC_@ 7@a@(@q(lTRtRqT'P _֨ Y`_WO{(@v  T  TRq!TB 3R @4Ep P R@@@?֖@@Rh{COBWA_LqT `_qTqT  _  _PQ R}  ih_#mog_WO{  (X@(@i  T  T 3R@b"@ 5@@)@ @?։@@cJA  \X!o\P R<(@ qTqT9qT @_!@R!@_WO{(@ QqTȾ  R(!@{COBWA@4RQ=qT0 Պ+ih8J @5@h@5!@#R5@ !@4R"R!@ @a@(@q(lTRuh@44R{COBWA_!@{COBWA\O{C4{AO¨_ց@1TqT 5 RR(RhRWO{(@((@o  `T"RqT#644h@h@qhT'{COBWA_@ `@q#mog_WO { (@@ @?֨@@ @?@@7~ |@|)hi  @ H@#T@@a@(@q(lTu @.6ROE8-4qKT)D)_kM T6@9v487 HX 6=@4@kT7@79@7 FX =@5R4TUR5@w8kaT@k* TZ)@6iz8V5 mQ?Mq*RI!* R r) $@zT@7Q9@7 Ո@X =@R̕`5@9@)}@~@ qTCQ   _kTqT@LF;.(O    @)D@WAKF(@ F> d)@@9 )mQ?uqT*RI! @R r? j@T? r`T>@T@`J   @6xq`TqTqTRD(R r?j T@^@9 4@E;@CR 4@8(8ZqT@9@5?87 ը,X =@R-5EZ5)@(Iz84RBA@9@:RBR@Th;   @6@9q@@9q@?9@"K@@ @?@@1AT;B6aN |E41ATj @5}@@)yh?T@)qTW @) @8y({ @T@qTE @ @qT< @9{JOIWH_GgFoE#Dm_,@qT% @"'og_WO { A@"R`@i"D) kTAP @a@(@q(lTu9R|hAqTa@RhAha@hAQh~h&|@hA{@o=h@ @h.@ @hf@#ChzP Xp vu@q; h@5y@(@(a@(@q(lTy@4Q@h@?@qT?qTh.@M@Hh.@I "@@|h&@Qh&@h{h@ @hh.@ M@ Q@h.@M@)@)q)Tlh.@ 9R{JOIWH_GgFoE_g_WO{(BW~}?~}єm(B?{DOCWB_AgŨ_O{C {AO¨WO{! @4h@hb@h@qhTR{BOAWè_og_W O {  HX@/(@I   aT@$@$@qT@qT8R7t@@a@(@q(lTt@ @ q`T5@qTRH @ @ ? T@ @5 @ *  TA@(@  "T @@vf@uf@qTWR[f0 }|Hkh]C)"&q+T ըX}?cqkTR }@H< @)qT<(|Hkh @URTH @5RI Q_qTkkj8 9@ARYiEq T!@4h!@"R!@^!@H@ 5y@8R9 (@(u44:95#@ Q qTc T X!}}?qT)qkT hX}?~}cc4*@Jyh*y(*@JyhK@kKT (@q(TQ kT74hB@4h&@R8RR75RqT*Zu(@q(lTѵQTcT X? @@k@z`T q@TqW@aT /@ IX)@?a T{KOJWI_HgGoFRh*@qW@@Tvf@@? ը@qT/@  X)@?!T{KOJWI_HgGoF_R@qlT@  T@@  T X?@qT@a@(@q(lTuRvޑC_WO{(R(x qT? qT @#{5@R @T6R"Rq`T@@ qJT@ HT ՈX?ֿ@@(@)  Ttcu 6R!R@ \ @_46R @a@(@q(lT Ru{DOCWB_AC_WO{@5m a@#R`4@@a@R @qT{COBWA_og_W O {  ՈX@/_$qTcq*TR|(B*!}?R'p v'P  @(QqTjh8) @?EqA T@5@8R"R@8R``z<@|xraT@qT**kh8) `z|@@@ @?`z|@ {#B5+T @h86@86z<q!Tv@vcT@Q{4v"ju(@q(lTR"TcT X?e@,Ou4qAT @? qT@? q!T*@? qT @h @h @ @) RR  O5Rj@K@  !TK @J!@l@l" (BI!}@?qT*@@~@) B)}@(q(lT#T@:8cT(B?/@ IX)@?AT{KOJWI_HgGoF_?g_WO{Ah4h@&(Rh@ @) a @)@)q)T@h "@h a@(@q(lTH  `@h@hq+ Tu@@@ @?ֶ@@"aP 0 q@9(5@@ @?֨@4a@(@ q+TQ(`@@94w@?X{AO¨@O{C R4i )*_8   qT{AO¨_U{q{_ B:X@O{C(@ha@? 8X{AO¨@O{C $@? `T(h@ K  _ T R UګRrLRM}cӮ ) ) )_%q T*qSJ  ( @?h@4R }@j@) )*_8 ` qTR{AO¨_O{C!@(@q(LT| .X{AO¨@O{C (X@ @RR9(R)R9 h}ț CHR(9(R*R)#ŤLR*.}KBNϥ i*8J/%MTj4* *J,j8li(8aT?(8`Q`^ iX)@?T{EOD_֕( @ @)q lT! @!_ <@   @a@(@ Q) qjTRu@qT{EODWC_B#Am_|#mO{#R@a~~ga\8   @a@(@q(lTctR{COB#Am_C#mWO{!@ 5u@@#E5@Q=q Ti Պ+ih8J @@*~'@|$@{~!@|@|@|@~@|@l~@d @@e @|@}@}@`h,   @a@(@q(lTv@qT{DOCWB#AmC_@ag|O{C)4{AO¨_a@{AO¨_WO{"@qTR.X5kTR R{COBWA_Ĩ_WO{A&A  Oi<)A!N?TqT *+@ ik8ji8 im8 i+8ji8 i+8)_ TR1 qKT{BOAWè__WO{}B!R?`BR?7}J*|Jj7!TRB{COBWA_Ĩ@WO{As4 A))@  A ii8J J@ ij8  i)8 i*8 )@ ii88sqT{BOAWè_A5O{CR?lqMT?pqT?qT?qTP  ?q`T?lqT AP 0 @a@(@q(lTt R{AO¨_og_WO{CR@@9H `@@9kATuO@9kT}qv9c?TJ@9~@H6h @k@TK ZX9@7H =@5RF{491cT@9qATt@R ihh @Kh CiURIUr} Qh& R{EODWC_BgAoƨ__WO{@< ոq zv{|4"T R hi @)Ki hRh&{COBWA_Ĩ_C#mog_WO{ȎA^*?!qmTP S@a@(@q(lTyte ;@@q!Tic @ `T|C_R1qT-qT1qT#6@Q@kAT5qTqAT#6@k!T'@k#T@9RR#R$R@4/@"6kTQq TOq T7qT)R)!*R? j`T]qTaqTROq T7q(T)R)!*R? jT y?9q!T`@c9qaT0i $ rRQQi)  R)'"A@9_k+T  )%ٚi6_k@T?qTqTRDR!i'@?-qTi?qTi?@?1qTi#"@(";R$R $  R(# E@9@RcR<@5@"@("({QqAT@H4Q@(h(H(   R(# E@9h4 q!T@4Q@(h( @H4Q@(h(PA{@` $ @j@k J ? Ta@b @a @?qaT@j@+@k+ !  "@)"( @) @( Oq T@u0 9R7q T(R!)R j T@@qT@kTR@QJU7kJT@h4@At =)sP rP kHqp 3tP 0qp -@kT@ qkTR@qAT@ah @Ab0 k!TRae  @aP R@bP 9R{HOGWF_EgDoC#BmC_(@c0 }(`(R(i (ih@'AdP |"@ш"!b0 gWO{_qT*v"@(@q(lT֢T bX{BOAWè@O{C3 @h@qhT{AO¨_a@b@ ՂX{AO¨@__Cg_WO{ ȨX@@@d@zn(@ 8#   Ȇ@Q@R@qT}zr T@qlTttt@@a@(@q(lTgRt@ թX)@?!T{HOGWF_EgDC_xCog_WO{(4@k*TZQ>@ 6:@( _k- T@&h |2@q T6p 7T0 P ySp #RF>@&@ )@ !T#R:&@@q!I#R*&@i|b#Ri|H@H@ @?H@*@8_q{2CT@W!Kp j4R{HOGWF_EgDoCC_֗@@@ @?@4a.@(@i@ kT @a@(@q(lTtR*@(X@0@4@ af@{@B @@ @) @ @) w.2@q T҈6@VK;R+&@i|>@ TF)( Hk;&@@ 5; E@bqkT{@@ @?@{H@9qT'u.@&@h.8R"Ru.`A%@h.@%@H@qHTCD)4'+@4yX52C Th@ h@@(2P @l5@ 8R@bh.@%@h."Rq@T qATh.@qh.Tt*@h@ha@(@q(lT@h @) 4RTRh@ WO{3 @h@qhT{BOAWè_h@q Ti@!iu)@)q)Th@B(TB`@?a@(@q(lTB{BOAWè@__WO{"q,T00 5R!RB@@@a@(@q(lTv@  HR{BOAWè_WO{)x? qT@ qT4R"R#* 4R!RZ @`44R @@a@(@q(lTXRu{BOAWè_og_WO{C?q+T*"8R6p W$p A{y5A{y`4R9aT8R(R( (kT*N(5A(ˁ@V4@5"Tt@@a@(@q(lT Rt R{EODWC_BgAoƨ_WO{(x qT@? qTBp 4 @`@h@ @?`@ PX@vCp 5R!R @@ @?֠@wR{BOAWè_ցP @a@(@q(lTt5RRuRsRRWO{? qT@375@4 @qDzT@3(`4C 5R!R{{COBWA_ qTt@@a@(@q(lTwRtog_WO{(R(Q q#T p 6R!RN @cuqT5@Cmq T5@#e@65qaT@7RQZh@@$M d v @{_ 觟ן꧟V ן< v64Iq ( 6 xrT@"Rd@qT@@Td @IR4 R@(@T:@5@ H^ T (]X?R@(@T%R6R4 qT4 qTt@@a@(@q(lTRt{GOFWE_DgCoB_6Rog_WO{(R?qAT@5 @36@q$ @zT0 7R!R @@a@ q @`T@ qT@ @? qT@*@_uqT_}qT:R* @J@_ qT) @)@?9q$CzAT @bp 4@@@ @@4@ @*@5@_9qaTsqATR@)@ @@@R@i.  T"RqT@@uRy@+  T"RqT@T@xrAT7R"R^ @@?qT)(  T '  T"Rq T@%   44I@@ (= T <X?R@qT@qTqhT(R!)R jTt@@a@(@q(lTRt{FOEWD_CgBoA_y4z(5@xrT@xrAT @3/@Rd#Rb_WO{?q TP 4R!RwHT@?qaTRR*U@ f"@kT@v@@b@5"TQ  K"@k TE"@kT@v@a@(@q(lTCRu4R{COBWA_Ĩ_g_WO{C? q T:Rv0 WP 8p _k Tz35}@?kjTzyH q(kJT@5}@?kT zy@5zy`5Q?kTzy)h߿ |@|)a@(@q(lTRtQ_kATzz{EODWC_BgAcP 9R!R{EODWC_BgA_Cog_WO{? q*TþP 4R!R{HOGWF_EgDoCC_R'5R7ep پ պp u@@ @?֜@@9qTBRt4BRt`4BRt4A0 BRt4~@0 BRt5K qTzu{R R;R'@2'[RK qTkT}@uKqT4@A"@@47q T *Y{| Q}@qHTqhTJ] ՈIit8 @5*R`5 @'@Aq!T@@"@@@74H@ kTRkT 42Y[h kT 4 QHhp t@@a@(@q(lT۾ty{HOGWF_EgDoCCRztAP O4RKO{CH "Q1@a@(@q(lTtR{AO¨_WO{?q T#p 4R!RH@B@#Q#RU75@u@@a@(@q(lTRu{COBWA_WO{?q T#p 4R!R_!A@T@ qT@`44RQDXh{BOAWè@@a@(@q(lTPRu{BOAWè_og_WO { ? q T? q!T75R{RQ7< Q{R; 5R: w3%R@ 5O@)qT~@jh8J @(R;.(R+?@2?'?@2?R"(R7;(R7 {w6{v@  T"Rq T@m!T7{wkT(K q*T 5R!R7@#՚!0 @a@(@q(lTt5R{JOIWH_GgFoE_7@(4    [BqT! o@@qq+TRtQ{"@@T@#(@(( @:@@%R- 5RRqhT"p ՈIit8 ւ@#@@?@}6V@#@?@q@#@?@;@h47@*4@J.~@  $ 7@(4T@kT@4T#@7@h4 @(@q(T#Z _k@T (@77@H 4 @7@h4 @@a@(@q(lTRt@b(@q(T5R@ @S;@h4@*ݼ   @a@(@q( @lTRvar @ @4R@1H   @a@(@q(@lTļRv3h@ha@(@q(lT{(@q(@ @TR@qlTWO{?qATT@{"v(   @a@(@q(lT}Rt0 5R!Rd{BOAWè__WO{?q,Tep 6R!RO=@R`@ q TR 6R  7R qMT*B †@ aT@y4706R @a@(@q(lT$Rt{COBWA_Ĩ_WO{?q,T#\0 6R!R6@@ qT@ @3( 4@T6R "@@_kT6 Qb@a@(@q(lTػRt{COBWA_g_WO{C? q,T#SP 5R!R  @35@#@45R{EODWC_BgA_֖@"@@2 k*H @_ k)* IkkT)1cTR 6RI_kT+Qj KI :} k8È@Q"H "K@8M:@a@(@q(lTmRwog_WO{C8q,THP 6R!RG ՠ\# kw?O :qaTZx@ q T#q 4=;R |0 4RweR 5@?%qT~@ki8J @8641k TRzw(c)HRhR$k Tz{"@@)o;R5{kTzw@e  T"Rq T@ TkTx KT"ԚA30 _# 5@a@(@q(lT̺Ru\@yd d@qTR7- kT#5dqTR(@ Ԛ9 ?kT@a@(@q(lTw@q T!1p .0 a/P J@a@(@q(lTpt6R{UOTWS_RgQoP__WO{?q,Tc-P 6R!RED@ qT6R"R9R`@ q T{R #Rf |7R*B †@aT@h476R @a@(@q(lTRt{COBWA_Ĩ_O{C!q T#P 4R!R qaTA@B qTh@h{AO¨__WO{?qTw.@@@@ @?@@9 Qq IzT@QC !R  qT#у !R R{COBWA_Ĩ_`. qaT@#w.{?qTA@{#p !R R{_O{C?qaTsR0 3R!Rz{AO¨_O{C?qaTR0 3R!Rj{AO¨_WO{)x?q!T&AqT cP 5R!RN*@ @@7@qTC@@a@(@q(lT8Rt5R{BOAWè_WO{?qAT@(@q(lTu@@@ @?֨@4Rh@ @)  0 5R!RR{BOAWè_O{C!QB @a@(@q(lTtR{AO¨_og_WO{;Q? qT <R8 P 9  Օ@g4 @sq!Ta@[4 @ @Bp R4 @ @bP H4 @@   T"RjqT@\Z Hk,TX @<R8Rk TkT0 !Ry@qTyq!TuEh.P u.wr)kTZ{@a@(@q(lTitHR{GOFWE_DgCoB_ֈ @0 ޾ R_WO{?q+T7a@^QW5q*T 5R!R$*h@5 TR5R{COBWA_Ĩ_WO{?q TP 4R!R!h.@ @h4*U Ѵ@@@ @?ֈ@ @9?qT@9qT@c2@5"ATR4R{BOAWè_Cog_WO{(R7q,T0 6R!R{HOGWF_EgDoCC_@t ceR4@bs {HOGWF_EgDoCC2@_Wq(4Tm Չ yzx) ֨Q qT 2qA&T_Sq2T_Oq5T @@@ @?ִ@ iX!R ?qa#T @_qA7T(UQq(T9R\Rq 6R|SERU,5@ @h4 q ,Tzi@  T"R.qT@ (R { qTq$T A@_qA1TZ/zq#T @@@ @?@@@@ @?@ @ٷ@շq-T@X75/@2 k)( } /_7q,TqT@q 7TqAT @Bd sERA4c ՚q Tq2T@Bp 14Zw @b Dp eR 15@@ @?@@O4/@9q/T 5XU Պ+yhxJ @@u [TRq![TQ q&T ^q-TqAT @Z sER`940 Nq$T@`)5( |@+Tт @ v@a@(@q(lTRuqT @@@ @?ִ@ ըX?֠R9qTR@ k8 ?kTAP qT@ 5 @@@ @?@ @#@2 k 6+#D)Tk(T( @@@ @?ֈ@k>TB6"RqT @9R5 QN(u@X _ q T4a@hP պp շ_Kq@T_GqT_CqaT @%T@5R< ՘ @@@ @?ִ@ X!R ?"R @@@ @?ִ@ ՉX!R ? #@ RJŵj@@@ @?ր@|@^u`T_;qa T/D@)4`)4k,)T~@|@@9QA(@9kT-j&4Q7 A@q T@^p %P "h |qKT*B т@aT@a@(@q(lT{RwCp ARb6R @u @RdRjR 4 4:k Tk T|@X9i`4K kT2@@@ @?ִ@u@͵w@@@ @?@w@5 A?qq_ q}@h |@@q A*@qbA"@t 7@@ @?@ϴ | 4ҟqKTR6@h@ @?|@kkKT4?4Z _kT@R @KԵB . _kT Q5@K4@a@(@q(T.p R@a@(@q(lTxtqqTT~@T   @a@(@q(lT[RtG S u}X% Օ}X" յ}X: 4 |X Օ}X |X }X  յzX  U{X uzX zXqT@9?֠4aTȉ  (R    kq6RT _g@qf#m_WO{?q,T0 5R!RO? q!T @@  T5R"RqT@w<7RRqT@@4/Rd  Tbba   w ךh|   @a@(@q(lTtz R{DOCWB_A#l_#mg_WO{C?q Tcx 5R!Rn{EODWC_BgA#l_? qT @@ u  T5R"R1q@T@T }R} HRrRҁ@FR5?TRa@7R5qTbba&(s  AoP o X AmP  Հ\hX Ak ڳVg X iP dzܲX @a@(@q(lTRtbWO{? q+Td0 6R!R"?qT@@)`  T6R"Rq@T@@@a@(@q(lTvRt2R{BOAWè_R2!R.WO{( Q qTCbp 4R!RA@? qTC @@a@(@q(lT{Ru{BOAWè_WO{?qaTA@@@a@(@q(lT^Ru  p 4R!RE4R{BOAWè_WO{? q!T@Ľ @ @) @)@)q)T6 @ @@a@(@q(lT)Rt TP 5R!R5R{BOAWè_WO{)x? qT@ qT @URQ0 4R!R @`44R @@a@(@q(lTRu{BOAWè_WO{?qAT|@±A   @a@(@q(lTɱt`b@ t@B?ubURC 0 4R!R{BOAWè_{? qTA@{ĸFp !R R{_og_WO{9q,TFp 8R!R@v $FP %Rb`4@bE0 4HRqT#E0 ARc8R@Iq T#RP  +ih8J @7B Q@ {FOEWD_CgBoA @b8R#%Ry1TqTZy} q,T= qlT>P qlT?p qT>P ռqA T @ 5@!@1T @"4qT @{FOEWD_CgBoA qTRSqlT<0 ՕCRQ qTC:0 Վr EzIR‰}@zh QB 0 Ʊ p #R {FOEWD_CgBoA5P f @qT@C50 ^ @bQ8R#%R5@@a@(@q(lTRt{FOEWD_CgBoA_ց @bZy%R{FOEWD_CgBoA @bRq @b#R7q~(   @BJ @Zy8R"RʺbQ8R#%R5@u@\4qkT҈ @qT k Th@h@ @?h@4@`5R@{hB}?qTJ@ )Tq+T9@zuR4zuR|zu{9Rs klThB? {FOEWD_CgBoA~@!@q}Axg_WO{C?q*T#P 5R!R57Q?qaTR"R @eR5@222qqJ q5#9Tw#`45R@@a@(@q(lTȯRt{EODWC_BgA_g_WO{ C ըX@'? qT@ B(RQq qaT7RXR@" P CeRq@4@'@ )X)@?NT" {IOHWG_FgER@?[q(BT(R iP Պ+yyxJ @qT @5R"RK@@@24?;qAT?qAT915@#P 5R!RNH R#p _R"Rb_ 7C0 cHR{ q T#4h.@=@@@ @?@h5qa#T @5qA%T @R~ q`+T q Th.@q@-T q! Th@    HR{ qT4h.@=@@@ @?@5qaT @4xR! ͯ'@ X)@?a<TQ{IOHWG_FgEP AR5RyQ qCT0 !P < qTaf@@]q%Tq&T@@  T5R"Rq+T@ @@@ @?ֶ@ @@@ @?֢@@ @)   ( t@+! 0 m'@ X)@?a0T{IOHWG_FgE}qT q TsҨ    g\ GzuB?"TS҈  I 0 @@)@A'_RbRa_hbAkTh@vq T @5R"R@5 @I  @#T @a  )qAT @ qAT @c P 7a#* @U4qThE Thb   @۱$@_9߂qq *H   @a@(@q(lTuqTqAT@_"R#Rqc 0 / p  @! P  @@  T"RqT@ h.@ ) ?lT @@6 T"R{q`T@ w@  LT @(@ɼ  T  Th5Ra p ծ @@ T5R"RUqT@q)T! P 9# 0 ՘h@AC ?@a@(@q(lToRt'@ թX)@?A T{IOHWG_FgE_ @@  $R;(`5 t@ Yu(@9qT2*h.@<w@9 @"  H   @a@(@q(lTRv@` ? `T%@i2@ T)@Y@~A 0 W  `T@Ȫ  A  a  @a @a 0 X a P @*@0D p |@ @h@5@uB P mj @ @e  _\h.@  pX PWO{? qT?q!ThR@R}@Sȓ   @a@(@q(lTZRt@ 3eR-45Rc P 5R!R5{COBWA_@ @q`TR@ qTqT5(R@4R@ @  og_WO{(x qT@@@ @?@@h4@ qT۬  ՗R  4R!RR @@@ @?@ @ӫȈ  44Q3##A) kTZ Q5 K995K=Z4;R\q Q3@%Qq(T7HBwR?wRB_@h"Rmz(h(R!R\l)W@5HB?֨@a@(@q(lTvRu{FOEWD_CgBoA_WO{(x qT?qT p #R 0 5R!RE @@@ @?֢@@@%@a@(@q(lT=Rt{BOAWè_WO{?q T p 5R!RH@)QC@ @a@(@q(lTRt5R{BOAWè_og_WO { ?qTÍ P 5R!R'W@@  ,T@Z @?@@ @?@@@?qkTR @K@8q)T(R*  ) ( y IyX}@ ?c^C_@q$TRW 5BGO @  H@9qTH@9qaT?q9~@4*_bTI@9?qTK@8qAT j(8Z _cT ~@j(8[Th@9qT[ @G@#3  p_qTK{@1Th@9qATO@OZ4_qkT@(5Oh_1AT@Gz9_oq!Ti R q94  @8_yqaT R(9j/@8&T 0 R^{]u9Th@9(q9z9 p R^ HqTqTh@|._uqT)8) +}`@) ij84uqTi*8kJuq! Tk`j+8+ lQ kTRk}@LA) jm8ߵqT8}@/ j8kTj18j/8.R  KqTR 5 ( u@9qT9z_cTA@q T@ @_1T@_ kT)T@7{#3ak  տ^qTOhK{@qT@?"TWj  n 0 Hm  Ho p  o 0  q p (g 0 (j 0 @ @H @@A@Z@a@(@q(lTtE'@?q@ T !@) Q? k*Ta] P +@5R#RTT@@@?k T!\  Hh7  @A@(@q(lTORTTZ 0 @A@(@q(lT;T5R{JOIWH_GgFoE_ց@5R#RT"@4 "@q+TRR@b@@@ @?ֈ@q Ts!@@Mq9##T5Rs~@ߨH%   WO{(x qT@@a@(@q(lTڨvqT @a X p !Rh@h R{BOAWè_WO{?qTA@C @@a@(@q(lTRt #T  5R!R5R{BOAWè_C_WO{?q T@#@5@ qTBn(  ~QW M  5R!R\t@@a@(@q(lT`Rt{DOCWB_AC_C_WO{?qT[@4  @5"RM]@K@U@?q+TcD P 5R!R @@@ @?@E\ܨ@a@(@q(lTRt{DOCWB_AC_ֿ q,T@A?  y5R @@@ @?ց@O{C?qTT@@@ @?ց@nqC< P 4R!R{AO¨_C_WO{?qTT@"@@  qTQZu#"RIѵQT@a@(@q(lTRtCw 0 5R!R{DOCWB_AC__WO{C (R(Q q#Tc1 p 4R!Rcb@ qAT#4R 5@(TRM  0q+T* ?` c"RT@a@(@q(lT@Ru-CW5 @#R`5q!T@K5@tkT?T?T!' P @a@(@q(lTt4R{EODWC_B_4RUڟV ɚw2 CWO{(Q q#T#" P 5R!RW?qT?qT @C`5 @c5 @C5@ @DT ՚@#R^@h*T ՚(  @a@(@q(lTt5RH   @a@(@q(lTRt{DOCWBC__WO{,@ @I4?qKT%@@6R"RW`@RQN@R P 6@a@(@q(lT\t6RR{COBWA_Ĩ_WO{!q T#  5R!R5%h@hB eh@Qh@5t@5R"R`h.@I@@ HXR?h.@I|h.@I@@ȥR{BOAWè_WO{5q T  !R$@"R @4@B@B@B@QB{@ p p R{COBWA_g_WO{C4q,T P 4R!Re@"@ y? qT qAT@"@ qkT@ @ @ p  ? T"R}qTBi@? )Z@ }{BOAWè_BVO{TB(e@@"m@#@#%RV`5Be@a@m@@%RM@5Bu@#?{BOA_րB!RUog_WO{]" hMX|!a?֠o= 0<`Xx@*@@*@ @)  7"@[ 4 ՈHXR?ր(l  qTR:#@HQqHT(#@qT(@@_qTRk`(#@ qT(@@ ըAXR?(@(|@,` 5kTq+TR@| 0 Tܳ#@(4 qJT qTӳ#@qT@@ y56@6#@qT@@d4>@6>:@:&@i:&@ZCT9A p  0 , P y@a@(@q(lTuA p ! 0 (@q(T 1X? P   {FOEWD_CgBoA_MSO{C(@(@(@q(lTet(RhK"@ q Ta@ Q@@ @?ֈ@h5(Rh{AO¨_og_WO{8@h@ @?x@|@u@@ @?ֺ@@5, չR4 c&@{4s@ {K?kT~@ wK5TK@" @Ѡ{GOFWE_DgCoB_og_WO{bZ@@ @?ֺ@@zx ռRh@h@ @?h@u@~@ 54jK c@{4s@( {K?kT8a@ @)  Ti@? qT@z @ |?h"8i@ Kh{GOFWE_DgCoB_WO{(@9h43@t4;X6)s @9(59{COBWA_og_WO{ C'A 0 3tEh. P t.q# TQR56R {v@@ @?@Y p UT4(@9q TA P bR^TqhR9BRpT@h@5@{{8T4{#!T4(R!ۚ@I( qT#@@6RRkT@ERhB@+hBTi&@iRwhB@#@KhBtEh. P R~ t.~@'@4kTҶc  @w p %R 5~@7@ qTkTh4 v{v:#@_qTR{v$R59_kTR@& T|@6#@q TR;@?kq5?kTkT@#@Y *R#@vX _q@#@W լ T5t {ti(#@qT(@@{t](#@qT(@@ @ @k+T@c@k*T{w kJT{h@qH T(%՚67"  (7qTh*@a&@?7#@-5R kT@HL '@Yi5R!R{IOHWG_FgEoD_'@5t&@   @a@(@q(lT w&@@ @?ֈ@4b@=q(R 4 @@ @?@4ӝ   P  qATh*@}@6 X  P t.X q @T  ~b@z p splܥq4v@@v5@a@(@q(lT|v@qTs'@h4G~@T   @a@(@q(lT[Rt2(RH5O{C@h@ @?h@i@? q T @9?qT@9qR{AO¨_og_WO{C  @@ @?֠@a p HRH:C@B@`?9@?kT@yZT @`?{EODWC_BgAoƨ__WO{ qaT@R4`7{COBWA_Ĩ_ւ@{COBWA_ĨC_WO{qTh@4A AqTJ`3#A)Ru4o@q,T{DOCWB_AC{DOCWB_AC_O{C ՈX @?{AO¨_WO{( @@ hX?@Pv" h{BOAWè_O{C @@ә`yQ`{AO¨_@!@fQ?qT9 R_?q(T(|S29R(39@R_(|S5(| S 29R R),3 9(39`R_R(P39R R)D 3 9 R),3 9(3 9R_(R JR lR qRq?qIr_WO{6.QqkTR3sB Kq,TR{COBWA_@9qT}qT @9*_qTS)(*(q)T@R_qhT @9*_q!T @9KqTS) *I *(qT`R_q(T @9*_qT @9Kq!T @9lqT S)1 *I *i *(}Sh4R_@9( R_WO{4R3@  B6sqTR{COBWA_O{qbT R !  դ #BRR'O`R !, $ 3"RRO@R{BOA_4IRjRR!Q @9l87,R   ql߁qLq, !5K_{?qTT * ii8j86J_qT) _qT R(R K{_,NqhTN !R{C_@@qT* ՠRN`@y_{A_qhTNm !RO{CqcT ARq`kT{AO¨{AO¨_@)@y K_@)@ kbT_)@ k_O{0oba P h6}~fO`!Rh@i2*j2R[r y)3RI4h@qTR`RR` {BOA_` @??(AA @4 @,R Kq j5 @_qT_!qT @*)Ri3@9i7R R R mR}@ m!qT yn4p zo5 kJ1)1 @4qZ +aTRj)C_WO{(RH4h@ @9?qT @9?qT hh@wARh@i2*j2y)i2*j2y)u2@34 Q4h@ I}@) yi j 4qZ +T 3RR55yLK Kq y)@@*yrI(*h@ @9?qTh3r 4h@ I}@) yi jL4qZ +TFqARVh@i2*j2y)i2*j2y)i2@) Q j}@J yj k4qZ +Tm K+ Kq y*4j}@ kq!TN }@kyk l4qZ +T K, Kq y+ k@4 yjqkZK +Th@4 i@9qT @94qaTRhRRh {DOCWB_AC_WO{@$@T`R{COBWA_ @R[r? kATd:c.bbkR)R &Rt" kl4k}@y1qaT 5qT,! r`TR  j T m  -yl5 LR +Ti4yih@W`h@iB))}@ h@l6h@iyih@E R Rt*h@h4U 6/a@4h@4o5a@h@) Rb5@943V XR4 RO5@9(4h@96ARKN`t*RvWO{4@9h43@ kT{COBWA_C_WO{4@9h43@F@ Q kTK{DOCWB_AC_O{C$`@qT`.@}RwM!R4hB@Kj.@kJ@hKI!) R{AO¨_{CLqT)r p ɱ )Y`" P M|@{A_@Log_WO{?ARRh2 i2RjBIy(h2 i2_y(h2@ QR@9H4qTqT3@4`@@9 Q? qTq`Tq!T@x7qTqT[RBRM@`@?T(@9qT4i BRM@*@9_qT`@ qqHRr@b HRr? T[RkTq,TqTRiM`@8qT`rhRRrHRR!'h@6])qW5ARuh@i2*j2R y)i2*j2y)i2@) Q  j}@J yj k4qZ +TmK Kq y*j}@J yj x4qZ +Tm K) Kq y*h@`@9 Q? qTqTqT@(*|4h@I}@) yi |4qZ +TLK Kq y)K *F<5ARh@i2*j2*R y)i2*j2y) RRh ;R[R{ R{FOEWD_CgBoA_O{C$F)  k TyS4@}~L`{AO¨_og_WO{@@#h@ u @qT Q?)q Th Պ yixJ @TRARh@i2*j2y)3uqLTqTmq Tqq;Th9I _YqL)T_1qL2TKQ!q9TP ՌMykx ARh@i2*j2Rq Tq`Tyq7TARh@i2*j2*R y)i2*j2y)h2@ QRR(55RRh 3!RA4@R @(*ARvh@i2*j2jR y)i2*j2y)h2@ Qo@9AReh@i2*j2zq!TR y)i2*j2y)R y)i2*j2y)h2@@9?tq`T?qT@8?tq!T@ Q!R?h@i2*j2y) @8?qh:: p : P 43 @rqT9q TqTqTR7Rhkw8!TXR"RR R RR"Rh@97! RBR!RB R?3 @rq T24@9qT@94uqT  @_pqT@/4 @?pqT@9h/4 R:nqATqTo yzK|@K4Z_3aT@9?tqaTv`) _/qTH@+ )jih8) R|@9 T@9h(4 R@! RBR! R Rg!RRczRR^RR!RR!RRPARRLa R RHaRR_qT_]q`T_iqT_qT?qRAR`h@i2*j2y)i2*j2y)h2@ QR"R,hRR_q T_q`T_q T?qRARBh@i2*j2y)i2*j2y)h2@ Qh@97! RBR!RB RR"R R R"_5qT_MqT?qRARh@i2*j2y)i2*j2y)u2@R6R7 p jv8!T Q!Rh@i2*j2y)@2ARh@i2*j2 R[ARh@i2*j2*RR5RR\|@hARh@i2*j2 R y)i2*j2y)z2@w@@94RU 0 v 0 RJ@h@# @sq!Th@794RI # @ 4  Rh@~@w8 Q? qTqTq@T!Rh@i2*j2y)9h@w@9h5R59R!Rh@i2*j2y)h@hV Q!R~h@i2*j2y)@?qiR) *{FOEWD_CgBoA_ARgh@i2*j2RRHRHR R WO{RQ@3 P2@K}~I@3}@32@2`{BOAWè_WO{4`@`{BOAWè_WO{UkT!R@2*2y)!R@2*2y){BOAWè_WO{8(qTQMq(Ts Պ+ih8J @hR84Uq TqTR1R/HR-R+(R)@9qT` R(qTB @9qaT@}S5hRAR  RRR qB RK{BOAWè_?qT R* i8lQ)qTlQqTl]Q *lQq"TkQ1Ti *_kT @4I_R_og_WO{$4vf  ՗}XRh@~@z yz4y{*  KqTR`&@h@;i@9y{?GqT RzyxJ @@i@9I64)qT@j@97i 5@k@97*5~@k@9K75y(tq T ph @h 4 ya!5^h@9- 7hD Td@ 4a@@qT =@ 47hD *T@i@9i75WR)4?)qaTLRJ)4_)q)Tl +yl(4) )!,_  kdJzT+@K5:R*'4_)q&Tl +ylK4) )!,_  kdJz%T+@K5i&@(("R4G`5~qA$ThD iT8@h7 =@ 34*qT@q(T =@ Rb&@h@!7h&@A h&T5uRGR5~qTh&@8@7 =@ 4RF 5~qTRFR5~qT?q`T?CqT!R( *yzK _qT}@*j_!qaT) 7 @aA)u&@@ Qq(T|iJ Պ+ih8J @R9qi@9(q  *?rq`ZzT{. 4 A) kT4 R(Q)qHTu&@@4h@y{Aq TQib@ kTi.@(( @R @ k,T?7qT(yz  q5@t&@ 5t&h@ 5)@4~@ yj_q)Z5+ TRuqTj@Qf_q TR@h@3@h@h75S?q$Jz Tj@Ky| 4J J!L_  kdIzTK@K5C{ kT:_qKTRh@3@h@h750?q$JzTj@Ky|K4J J!L_  kdIzlTK@K5{ kTRRh _qTR@h@3h@y|@ k!T{ _kaTRv&kJTR{FOEWD_CgBoA_?/qz(RZ?/qTkTkT*q `&h@#4h@9 7 @kT`5  kjT 5@Qi@(yz4)y{?qTKu&EQib@ k Ti.@(M( M@?1aTiB@ K R O{E@cG P Ϙ{BOA__WO{' 0 fF@94ARE`4  @94=G_8qTB  #R7 P 1RgG@FaG674F@a@(@q(lTu {COBWA_Ĩ_{C(AR)R?q!6RwF{A_{CRnF{A_{RLF{_O{C`` @E{AO¨EO{C@a~@F @hK{AO¨_O{CF{AO¨WO{@kT` @h@ h@ %` @~@XF` h@Ki~@(Fh @i)4i)8i"@) )Ki")bh @ h {BOAWè_O{C@E{AO¨_ 0 {AO¨zF_WO{@kMTvFh@kT !` @~@F` x@Kh fF{COBWA_Ĩ` @5~@ 6K}@Ei"@)}@6)Ki")i @?i(8h @5Eh @ h {COBWA_Ĩ_WO{@kT_q kLT@5i@)Kh h @54(K}@Ei"@)}@4) i")i @?i(8{BOAWè_C@h9)__WO{4B5EqT@DTD{COBWA_Ĩ_x 0  RRCF)(B  !_WO{@@}!EE@ z({BOAWè_( _(_(_O{Cm3hX9q!T;@6 !RE1@T9@{EOD_WO{ X@8 RD4 p  նDҖ juE 4"bAT`:@T1 E1T5X97@ C(R9@A=`RgN N#N"@#@If Dn=4Rcy`:@!RE7R(9C(R] X)@?T{GOFWE_֧CO{c RRrD57@yh4h@4{COB_ RhS4|Rd  4@@k-T4og_WO{C hX@oe1OTRsD(R3#D @9)@#@D= @+ @K^  $qT+@@* @ hX? k @T7R @ "X?7@( ՕXBT;@ys#@;@ys#@@ @+@c$q!Th7@ ɚS T@RC@C7@1`TnqT7@%T#@@ @+@wR ճXa@RC`@oCR7@bT;@ys@( @9?)@D@ @+7@(;@ysqCs7@CT;@kCJq!TRR H Q8 RDD@ @+@dlqTq`T? qTp[@!?4qT?T1@T?P1T ?8qT?@qT(QyqH Tq,T7|@7k78s tQ6RRR ճk5R RRqןK 3 7kT X@K/D\ @7D 5+dTk+T? @ @zKѺA  @ TQK78*9_)@K@C7@ @+ Xys!K+=  |RS4xQKL 8KCq(x qT@@9)@2 0 RR@ @+?(q@+@#@ @nqT[@q TvqH"Tk jyhx) @#@ @+,qTqTq T!R"Rh5!RRc4!R"R+#@@ @R+@@ @? kT#+#@+@qT+#@@ @3R +@Q<wRh@K  qkT 5X@7* vaB@ @`C6s+TkT3* h@ @9)@XC@#@ @+ @O[ t@(* @@h4+@QqT+@@ @KN RA 0 RC/7+@qkT@) @ kTK+@K0+@Q+@R/+@R@4#@@ @+@+@Qq T+@O+@qTSq TqTKq!T+@K\5'@R+@7 @@94x k@9@5T5(X9qAT[@!R" B1`T(9@R^BR~@5"Ry4Rt#@@ @+@QiqöT&q`TqKT+@Q@" P *B hX@lA ըX@S>)(( IX yh}A@ @+ )5  XI)R3i9#@ @z9@@@hR )(( IX yh]A(X9qAT[@" !RB1`T(9@RA'@q@1TjҨZ )X)@?!T{UOTWS_RgQoP_֏@WO{RA>A1 T4qT(qT?9?"Rg0A1T1T8{COBWA_{ B{A0 _WO{ 7BR@8EqTZhA`4kT@@Q}YAEQB6 R@R{COBWA_Ĩ_ Հ_g_WO{qT6B5E*RK@8kTqT@@@9TRR"}8AB@(EkMT R{DOCWB_AgŨ_g_WO{! P ~@@7Eq+T9t  5 p  0 (ByxH@91qT5q TqqT)qTj@4b@Z@R]@躅+T3@R{DOCWB_AgŨ_WO{ 0 >@TRR*@9_qq`T5 *@8_qK_q 8)96@R{BOAWè_ր ȣ  X_{X9qT" R!RXA{CO{@ p 0  Հa<:@ R>qKT#SqTqTR'@ qT@qTh RR{DOCC_>a4{C  o{A_a p O{C6@@{AO¨:@B|@{AO¨!AO{ (Ry#!RR@ 4"Re@aT@9{BOA_@qTS Պ+ih8J @?lqR)RIR?lq($?qaTHR(Q%qT $@JR(! $hR @kTR $C))}@*_ kT $@   +$5(xQiqTR_O{ ^X@C#CR@qT#^ \X)@?T{FOE_D>>WO{8@3"R?T39 qTT*34`:@"R?!TT3#% @{COBWA_WO{AR]7QeqT26`R4ARQ7nq`T>qTQ!qTR)%7RnqATq TqTAR;qTQqTiR)% 71 TqTAR, R)< <  h{BOAWè_WO{7@ @?k-T @Jh@ @|@ !RDh@i @?kaTh@ @? k AzTi@)qkT @i87h@h&)6RRR`@h @kmTQh 4h@ @b@R 4 R{BOAWè_֡ 0 bR@RO{7@ @?kMT @h@ @ 3{@{BOA__WO{7@ @j _ k,T @@ @ qT~@@@h9)@R>@ @R34l4kAT{COBWA_Ĩ_C_WO{7@ @?kjTR6 @// 8h@h @kaTh@ @kTqjT@Rkh@kTi@)Kh&)7RR`@/h @kkTh 4h@ @b@Rh4 R{DOCWB_AC_/@RCog_ W O {  h@H%RO>`h&B))*  +T! p ah@qKTR p X p 5Rٚ 0 մ4Qh@k T@94RR~5R  =y0 աSZ4lqTR; =< 4qJz!T"RR{5|h@ kT"R{5ZqTqATW@5R:@9(5RRR M4@ @.RRh@K Q @@@94SNZqjT@R9 k+TS@ZqjT@R9KQT@ kT@94RR&7@qjTZR}h@I ?kkT D4Ah0 "RDR{qu7@}q T8RCs"RUaP "R.W"R*S"RG  9@9Q(5RRqqh@K @#RMh@@ @zTRRh@Khr)hkTA| 0 `h@kkThht`:@h@ @ >`@{LOKWJ_IgHoGC_ִ;C_WO{w  4wR Rv p sqF@#-35{DOCWB_AC__WO{C ՉX)@ *Y9  1X_q$@HAzjTRI )B# ?րV4@)qT?1TRh5?q T)(R3bR@943R@qjT@Rk Tw7@95 @5@qT3"R h(XB? R@ թX)@?T{EODWC_B_֍;_WO{7@ @R @kaTRR~ qkT @ k T{COBWA_Ĩ_WO{ iX)@8=7R\@)ʜ Kk @ kTAATҧCihb_ 0 @) Kk @ kTAATCih"]  @)  Kk @ kTAATCihZ 0 @ @JZ P | P ?piJY P w#BY 0 u@)j Kk @ kTAATCihW p a @) Kk @ kTAATCihT 0 MaT  85@9.R 0 (%@9:i *J@_TAAT5iN p  f] X)@?T{GOFWE_֏:CWO{އ{BOAWèؙ_Cog_ W O {  ըX@*?<7qTRڃ ~ X D2?sb DB  eR 5@%qT Չjih8) C;5 @ Jih? TA!TK @9x JihJ@9? k TAT@@u)n: P <4@w- @9*x JihJ@9? k TAT @9JkhJ@9? kTAAT @9*khJ@9? kTAATw @9 khJ@9? kTAATkCۖ 5 @C9XCӖ 5 @G9PC˖ 5 @@}6@)vk H@ȳRr(@)x/@)H @(1@)r(@)u @(&) (@99"* P ջ4@p|(LRr(@)wJ P է4 kKTARU;| oa'   RZ iX)@?!T{LOKWJ_IgHoGC_Y9_WO $@)_"%Tk ,R- nRR0o  e 4h8"4q,T~q,T&Q q*Mz T_rqmTvqTqT q T#q&qTsP&s@1T*t@1@TqTqTq T qT# 1T|ghgQq#TQ7*t|thtQqTst@1Ts @1TqETq@T nqT?kbT *&tN  1 T|vhvqTu@qs|gh3 qT!ԚTvqTq`TQxqHTsbT'hs85c ?kT *) f()|)jQ 1@Tf @ }GBT4ht8rqT4qAT\uT6h8ԾQq!Ԛ @T4׺Qq(Thw8 t uv "T6hv84Q*qTQߖq!֚Ě@ Tv 1CTs t TRߊq TPQQ 1 5LjQ+u|uhukT GgsQ&t_1Tt@1@TQsBTCkBT* j N)S}) _1Tj F @F   J _T )Q7 *iP))@?1Ti) @?1T qTT @ OBWA_è_4_O{"Rm@5 @   `T!P  {BOA_@WO{8 |{BOAWèQ}{@@{_O{CP Ղ 4R#RR* 5P B ip Ղ a!P ՂG Y h{X@p 0 R'R^ zX@p ՔP R'RP wX@$ R'RDR{AO¨_Cog_WO{ (tX@(x qaT@qT @ c P 5R!Ro0 @9qTA P  CaRT@9]q`TIq!T @q+ TRRZI ջ P |f Ձ @C%R`5@ qT)I 5h}@{h*9k!T6R;877@Q77@p RRU5R@ )cX)@?aT{HOGWF_EgDoCC_ֆ66og_WO{C `X@I@ ը A B @(R+H@?qkTRRT UR9RR@ Հ@܃@9qT@c%R$5@qiqU8{Q" q T 5R!R@ %R4@w@@a@(@q(lTwqT@@ /@)q(TZR6RM ժ+ih8J <R@6R<R5R; @a@(@q(lTtR6R5R:R) 5R"R76`@cZR6R<R5RZR6R<R5RRZR<R w6R<R:RRR:RR7 7;4aR62R6c57RRRv7Yc%645@7 jwc` 5Yc:64 45@q! T\7R645@70 Kx5!RZC5c R!RRX77@ %" c$R+x5c64)@C@ &p Rac E աR5@77!0 55RZ  6X)@?AT{EODWC_BgAoƨ_u5WO{ H3X@?q!T644R#0 4R!Rܧ @p Յ R@@ )/X)@?T{COBWA_A5g_WO{ ,X@ 75 h@h#R6#~(@(  hTXR?o=d57(RAR|5h  տ"b D #@a@(@q(lTzt@ )"X)@?!T{GOFWE_DgC_;544og_WO{ HX@@ 4@@߁@9@q T 6R3%R`5@q T5@@H R8RcRRR @9R R Hq"@@c?q+Tc9 @TA6  5@@?R|@4@C5 @RR"4#a @q+THh8)qTѨ@?i(8@a@(@q(lT܀Ru0  R7RqTAP @a@(@q(lTt6RZ  X)@?AT{WOVWU_TgSoR_4og_WO{ ՈX@@A@ qaT@A5@T/ R#0 #ˉ@)@A;bÈ ?qT|@@@?kT@ZT(@;R!R?@,T#T(@?54 RZ թ X)@?AT{VOUWT_SgRoQ_w@a@(@q(lT9Rt3O{C@@"4@&4|@\@a@(@q(lTtR{AO¨_o_WO{C  X@@m3@tRπ#@ @# R?#54)}@# kc8?)q` T# K3@qT@@?@4 `4R8RV44@`5Mq |@j!@ r 4 R @a@(@q(lTRt[  X)@?T{UOTWS_RoQ_#R3WO{@?qT@p 4"@3@@@?@kT q@T@@A40 "R?qaTR@9 R{COBWA_O{C@@Q33|@@a@(@q(lTHtR{AO¨_C_ W O {  h X@@ RA@C4 R\  X)@?aT{LOKWJ_IC_ @ @!?@3 @c3R3"7"8@a@(@q(lTv qT@@c@?RZ2WO {   X@@@@q@#BRF`4 R@B@2 @)B|@#R37|@@a@(@q(lT~Rt]  X)@?AT{JOIWH_}2_W O {   X@@ R@#27qT@@#5@P T@S0 Sp GRG R\ i X)@?T{KOJWI_H_1O{@A@#ю5@ @24( R{BOA__WO{C@4?qAT[RRX @ @)Cs{25 T@q_~ScT@a@(@q(lT~Rt$V շR@~B_34bT@!D  T@sV5@C_4 R{EODWC_B_ @@)sR2`7R@;1@2A>P O{C@@a@(@q(lT}RtҌ R{AO¨_O{ C ( X@@ R@#1`7@#@a@(@q(lT}Rtb R^ ɤ X)@?T{IOH_0O{C@@p11`TR@H R{AO¨_O{C@@@?q@a@(@q(lTZ}tR{AO¨_WO{? q!Tv@ @w 5R3%R5@ qBT@q"2 4#!T@qT@2@Y{COBWA_+P }@a@(@q(lT}t5RRWO{@?qT@b( 4R@#`4 R@@ 11TR{COBWA_ց@B%P ~45R@@"#0 r`4URO{C@@0@a@(@q(lT|tR{AO¨_O{C@@@@(@q(lT|tR{AO¨_WO{@4A@# `4 R @ @qaRv03Rq0@aRn0S@a@(@q(lTx|Rt{COBWA_O{C@`@_0`@0R{AO¨_O{@A@b[ 3R3%R65@ q Tq`T5@BR @R@"RR*1R{BOA_W O { @@L01T4@ R{KOJWI_{@"RIR{_{@BR?R{_{@R5R{_O{@?q!TA@ @4!RRhR@#/1T5!R E/@5qTA/@qT @a@(@q(lT{Rt  */@0aP G R{COB_O{@IR@#R/qۉ@a@(@q(lT{tR{COB_WO{@A4?q+T@@@a@(@q(lTx{Rt(T@@`7@c675R@qLT\{@qTT{"5R{BOAWè_WO{(@@?`4R @ @?4@{BOAWè_O{@!0 {@a@(@q(lT{t{BOA_{@@{ f.@{0WO{@2@qTz{BOAWè_WO{ hN X@(@9yqT qT ʵ0 ի LQ} q"T&3h R39"RcR/3/@y Z}S0 R33@RR/3/@y Z}SP R/n{] F X)@?T{GOFWE_.g_WO{ C?xqT?q T?q T(R9 P  Rq//Rh{AR/AR/`!Kw!1P w@9mqAT R`/Kw6* wo =R)cd.4gP 4R'0 զwo =HR)cN.4  dX?A0 4R"@@@.@@h%.R  (aX?@@@.@@h.  (_X?R{IOHWG_FgE_O{ C Ո0 X@ R @#&.7@#Ҩ^ I. X)@?T{IOH_<-WO{!@4@Dz 4@@{BOAWè@a@(@q(lTyt{BOAWè_g_WO{"@@RRb@U@&@R@b@G@a@(@q(lTmyRu @ -@-6 R{DOCWB_AgŨ_WO{(@qThR@97_@y4y.Dya@(@q(lT=ya@RHhR@9h7`@-a@a1y  bEX{BOAWè@{B|@@!RE-{_{B|@@!R'-{_@-O{C@,`4,`@,5g,@q Tc,@qT_,@qTR{AO¨_W,@q{P,@{.@,O{C RvqaT4RP b 4R#R`5aP >   ~R{AO¨_O{CA@R m1@a@(@q(lTxtR{AO¨_WO{A@RqaT @BP *|4g4 7@a@(@q(lT~xtR{BOAWè_#RdR{BOAWèڞWO{A@RqT{BOAWè_ւ@#R$R{BOAWèC_WO{U@|7@R7@qTsxqTR#RR @] kT@_0 x@a@(@q(lT xt R{DOCWB_AC_ց@{DOCWB_AC=O{CA@R?7*@a@(@q(lTwtR{AO¨_O{A@R{BOAɞ@ap I~ R{BOA_C_WO{?qT@‚P G{4@R]R{DOCWB_AC_ց@R3R؏@q+Tҁ@zwR;y5 @ @kLT@J0 Cx@a@(@q(lTiwtO{C RqaT4R! b 4R#RP`5    f}R{AO¨_O{CRtp@a@(@q(lT2wtR{AO¨_W O {   X@   =A@Cɇ`4 R,u7)Q"q@T @@4cX+cm+@@ R,w@a@(@q(lTvRt] Չ X)@?T{KOJWI_!{0 w@a@(@q(lTvt;*O{CRit@a@(@q(lTvtR{AO¨_O{CRPthjt|H G!Hل@a@(@q(lTvtR{AO¨_WO{+u7sQ"q T@Cc*@ w@c+`@94o0 =w@a@(@q(lTcvt RL@4(RI/E)_q(H _ q駟i K*)u_qI룐Rk=r)}+,)g) 1*) ,R} m̌R̬r}, a-RK}ke;D)}@  ,VRLr(!  J H! iRr K R} R/Cii% ) 0R*r%*c*U@a@(@q(lTvRt{GOFWE_O{CRshHhc|H R!H4@a@(@q(lTutR{AO¨_C_WO{?qKT  Ձzx3eR5@q T5@64 @^v` kTR R{DOCWB_AC_CWO{ ( X@aXP SvEh.v.xr` T@( 5V ovh@ @)  @) Rp}#AR4 qT@ ( X@`@vP )A 0 Fv@a@(@q(lTluu@(@q(lTdu @(@q(lT]u@ թ X)@?T{DOCWBC_ֽ(_WO{JP   ՈXR?X)@{COBWA_Ĩ_WO{h@hFP Dž  XR?P) i @{BOAWè_R(@q(LT u_O{CBP դ@( @?kT @?jT@( @{AO¨_g_WO{?P Ո@ڻ @@kaT@jT(? @@?H@?x{DOCWB_AgŨ_g_WO{8P V@  HXR?dRGr b^@( @_ jT  k@l @_ jT( C5{DOCWB_AgŨ_WO{2P  @jT5%@T@aT@T@?aT@   @Rr@@?  X?{BOAWè_og_WO{C*P @U66@76@ @Rq57ҕ7u6o89:;:R@96@Rq'4~@I#C~khI *k(@96@Rb'4~@I#C~jkhI *ik(@96@RS'4~@I#C~*khI *)k(@k@hHhc~țRӨ HRr RWҡ( 74@R;R@96R '4C~kh%h67RR@96R'4C~(kh%H62@96R'4C~Hkh%h624@@?xrTR&4h#C)~ kiH( k)R&4h#C)~*kiH( (k)R&4h#C)~JkiH( Hk)@|&@YqT -t@a@(@q(lTSst57R@@ @TRp @jT%@@ @_ aT H@h @  AT@i(@@?@@?@?ֵ@6{EODWC_BgAoƨ_O{C RqaT4R3P բd 4R#R@5  XR?oP B {   yp0 Ղ x!P b xR{AO¨__WO{5@x յ@ @@?@?u@@@@?@?@{COBWA_Ĩ@_WO{@? qAT@ .vqR7RK? qTZhR}@aR.7w7`&@@R|UaU!s4hB@(4h&@ 5R!RN `@r5&@qTOr 1aT5Rt@@a@(@q(lT@rRt{COBWA_Ĩ_WO{@(R?qATRqTR?qLT@B/  3eR40 5R!R{COBWA_R_WO{ H3 X@@ R?q,TC0 6R!R@C 4@(  դP 6R3%R`5v@@a@(@q(lTqv  q!T @ ( \ay('RR@qT'  Պ+ih8J @ֵ q TcP Հq T qAT@R%V 0 @kR&kprm@67 qT#p ] QB@ @ ա \axb D RLrBp r@r@qTdq@a@(@q(lTZqRt$AxT~@ @g@@T@0# AR%6R@ Չ X)@?! T{GOFWE_D_.@v ը@T@r`5@qI@i  T @!P w@qT6Rp@Ń@I Պ AqR$&(@q(LTp_O{kqp R%`4`#BRm@q{BOA_WO{ RTqaT4R1A0 " 4R#R5  Ո5XR?|0 " Ք  v@P " vp 1 ҧvR{BOAWè_Cog_WO{5Q6qKTt@Zuœ  t`4"c҆`7R~@4*!G~)T@a@(@q(lTMpw  H(X?R"cT 7b0 Rq+@?1T7R7R}p 7R_0 Rp@@?q-TRx@*RP /@4{TRf%qT/@_jT|@hy5R  (X@?@47R  X?'@1TRR$'@a`7`5P {7R(q@qTo0p/@q+THh8)qTш@?i(8@a@(@q(lTot{HOGWF_EgDoCC_O{C(@q(T{AO¨_T Ո@ @?ւ@{AO¨@C_WO{@?qTh@qTRu@R"@9h6@#"R$qTh@Qh h@"7T@ @ 2Qq TRN?q+T@ rqR2k!TZh#`43R5 3R!R.- @$1`T@a~@@6@(*rT @&@@(@q(lToR{DOCWB_AC_WO{?qaTD#|@2}@a@(@q(lTnRt90 5R!R۔{BOAWè_o g _ W O{@U  ը@)!}}?tshoHqC TOgs7R(R9R#}@t@o@9q Tq`TqT@8q Tq T{s"oQhRJh@9q!T/@8q@ Tq T(RO_ ՜#4a| ՗#`5k@TC@kT/@/X(> @8?qj +Hwkk8qK@8qKRig7@95tkT{tn7qs@g@(s7@+@HRO.@8(5O5skT{sѴnHRs?@8h4kj TkT s5skT{sn  @X4~P Rx`Qxnzr @j2JJ}Sj~}A( ?3q T}S t #RqZnBRhZn" Z T+@#@ @7i n@a@(@q(lTmt!f0 @Rtadp @n@a@(@q(lTmtu  ը@?z(9  ոXg@ٔ#ܔ6O@ qT q T"RU1@ TÙ"Ù TR" D 7Z!7@ qOBs@T7@7M!SOBs@T" 4^ ;RCs?q7v1aT @n"7@!Zp @sR;(q17@!T @["P sR;R; TP  R;OB@3or)o q@!Tp )"4@7 Ou@3 @"R1TO `iqO1A T` @"Np @}sR;#@@1T `@1T hY1@T CY1@T ;@H4*;@@1T!RAsT@;@?_1`T{ 1`Tw 1`Ts @?T@?{OONWM_LgKoJ_O1Tx O1T@/@!}~?;q TR*/  = k T*@738/@8tzw!`4!@4?T3RX 3RR k+@@X` T4kTg! 5gCY7@zhx!\ ` 7 4@)#A) kT}@(   ) X @~ ? (@ @R )8? (;@y<_1`T1X`TYog@ kT  R@;@ #@O@YA5 @l@a@(@q(lTlt5  OB#@O@qO@!30 @g@U  1 @p qO@_1T sq X`@_kT`@1T o X`@k@T`@k`T tm X1T@kT@y@@@1@Tr@@@1@Tk+@7@ Y1@Tdg@1`Tg@_`@@'0 R !@a@"@!@&0 BR R?qT @*?qTLxh @k! n_kTk1aTl@2l T_C_WO{ ` X)@0 PR#!R RlqT#vl6Rq T5\ \ X)@?T{TOSWR_QC_֭O{ ՈZ X@lap k #ARQx5a@{4@ iW X)@?T{COB_@ @_qKT @  @kT1kaTJQq TRI%+*@) @  @ QR _g_WO{Ray Tq T5P k} y}>Sah0 k}x}x07P  p Ձ 0   P  P {kx}0    0 g lxb}]kZ}{GOFWE_DgC_CWO{ hB X@Rx @  @yP @y @P z@BP t2@[p n@P h@b b"@P \HRr*CkjtJ}KKGjJ#) Ln j| @yYj|R[t#ARʐ@0jjAr@a@(@q(lTiRt@ )1 X)@?T{DOCWBC_ ipi RHWO{j|w{BOAWè| @Q }S? qT} S)B   Yh_P _O{C REqaT4R$_P B9 4R#R`5a^P W գ  ҵoap b ҭop "  ҥoR{AO¨__WO{wO  @R?R`@j@@(@q(lTfiRAP -j@@(@q(lTSi6R@?{COBWA_Ĩ_O{?qT@@i@4@Oa o4R cp 4R!RR{BOA_O { A@`4 R@Iw@a@(@q(lT iRt{JOI_O { ?qT@y5@i@ HRr} @r`4 R@w@a@(@q(lThRt{JOI_O { ?qT@vy5@Vi@f"@C`4 RHRr+CkjtJ}KKGjJ!)v@a@(@q(lThRt{JOI_WO{P ^i{BOAWè)WO{A@ViR@94 T(}@?q" q T Ѩ _8 _q T"p @a@(@q(lTZht "i@a@(@q(lTHhu@qT@hR{BOAWè_WO{@@hR_R[@HTKh@@@a@(@q(lThtR{BOAWè_WO{A@hR1R-@cTZ0 h@a@(@q(lTgu@qTgR{BOAWè_WO{A@ehR@h@a@(@q(lTgu @a@(@q(lTgt@qTgR{BOAWè__WO{Rv@-h@9qAT "Rah^z@9qTH5@a@(@q(lT|gtR{COBWA_Ĩ_R K;h4h1zC_WO{@@g7  @R?`Qh@a@(@q(lT;gRt@?֔@@G m R{DOCWB_AC_g_WO{C  @!R??8qT*R@3yg@9q`Tq!T(@9H4qT!@ Q6 _8?qT9"4Tq T(kv8qTџj68"!Tҟj68g@a@(@q(lTfRt@?!P g@a@(@q(lTft R{EODWC_BgA_{A@RR{_{A@BRR{_{A@"RR{_{A@RR{_C_WO{A@B j5@b?p j`4Q"4p Հ@g1T@ qT<1T4,g"R`5"Q5R{DOCWB_AC_ְ@a!0 l RC_WO{4  Հ@fcJ@?5"Qu5R @@:!p l R{DOCWB_AC_O{C?qT@@fR7R R{AO¨__WO{C? qT@ i`4"@f@|fqTRc4`4R@A@0 &@'A Vl R{EODWC_B_CWO{? qaT@B  seR@5"@Cf@@f@45 4R@@p #l R{DOCWBC_C_WO{@@f  @!R?RE_1`T"8f@a@(@q(lTmeRt@?֔@@y!z k R{DOCWB_AC_O { A@`4 R3@{s@a@(@q(lT=eRt{JOI_W O { A@`4 R  qaT@{KOJWI_W O { A@b`4 R  qaT@{KOJWI_O { A@J`4 R @y2e@a@(@q(lTdRt{JOI_O { A@_`4 @ks@a@(@q(lTdtR{JOI_O { A@=q @y) ?@q r@a@(@q(lTdtR{JOI_O { A@q @y) ?!@q r@a@(@q(lTdtR{JOI_WO{eu1`TR @}PP j R{COBWA_O{C } X@hHhcH|H R(H HRr #3c@4@S!Lp j R^ y X)@?T{EOD_֘WO{dd*q? q T*) +_8 q TB_kTdh@h{BOAWè_O{Cd{1+r@a@(@q(lTct{AO¨_W O { =Rq45RA@ qT1bTR T959=RY`5*@EqT5 @y @qaTR(R{KOJWI_WO{8d1`TR @7P  j R{COBWA_O{C R!qaT4RAP t 4R#R{ `5@P b |  ґiR{AO¨_{@@c\R{_O{C@@c`4@]R{AO¨_WO{@@c\@Rd qT@k 4  ՁzeR 5Z qTqTq98RH@zz @) @)qTazzZ_kT)R:R_kATwga Ù4UR<  1T4 1T7(@*!|?>@Q q0qT(@?C0 5R!R'0  ap 0 p a@a@(@q(lT`t5R@(@q(lT`{MOLWK_JgIoH_84Ro@#S(@?ֈ@#@h4cRZ @) @)qTl`Z@5Rn/s+s@a@(@q(lTQ`v@q TI` @a@(@q(lT>`t@qT6`Rg_WO{Rnh @ @@i@I? qAT4Aa@mq(R!)R @zT qT|ARa@]kATZC!TZRBRl :R 6R:RVRZRvRzR]h @Ah q T?qTh@4h@*@)J}@ " Kw@`r_ h"@q BzTnr_ qTh@` @@ QqTa@(@aT{DOCWB_AgŨ_{@q TqTqT(hh8qRIzR`RR{_WO{_qT5L"CH*  !yhU`@{BOAWèMr_WO{)@(@ Q_q(T)@iV j@W  qTh@5 R`(Rh8h@4v@Rm`@ @9q T%qTqTb@(rh@4b@ ra@(@q(lT5_vgP @9%qTf0 _qh @Ah {COBWA_Ĩ_WO{ H X@RR4R@ !0 e?["P CCRC`?q`TP o   XR?u^!P B ]ot^t@@a@(@q(lT^Rt Wp Be R]  X)@?T{FOEWD_aO{C! w^@^  B X{AO¨@_{a  ҩdR{_O{C?qLT0 !Rp R{AO¨_@@ _{AO¨^AWO{^@H4@(4@9qT@9qaT(@8qT{BOAWè&_^4^P CRk__{BOAWè_ֆWO{(@(H@H0@gqTp d@qT^h@qhT^{COBWA_O{C^AR8`T_8qT4* {AO¨^`@{AO¨_WO{^AR`T_8qT{BOAWè^{BOAWè_O{C RjqaT4R0  4R#R@50 b c!h " cR{AO¨_C_WO{?q,T 5R!R@  dP 3eRt4@   {DOCWB_AC_@1qhTR) P j+ih8J @q T0 X qTP BRA^h.@=@^DqT#p EqT @Pz qATqTB@qT @]}@zh QB0 ^p #Rd^_^|CP q T@N0  q` T q Th.@=@@V# AR5Rh.@@]4P `5]@9qT@9qTP BR]@a@(@q(lT\uN^@qT\RZbrh.@=@ @lـKh.@=@ @ A`@a@(@q(lT\Rt7_WO{?q+TCp 7R!R-?q+Th.@=@@9@@h.@ @5=@#]4]5qT @d@qT\R{COBWA_Ĩ_R74O{C RqaT4R{ b 4R#Rh@5z0 b by # wbR{AO¨_Cog_WO{?qT @B  5R%R 5@cZm5@'@?qaT @(@xp b5Rt0 5R!R{HOGWF_EgDoCC_ց@C6m@5 @H'@?qaT @?qTT@sP *y_qTTT?qAT@k\@+ jT*} @+ mTI H (?C\@3R\@T} @*_ mT '@qT*RJ!R_ j@T*_ rTq TR Ҫ K_qjJ}j88x!kTH'@PqKT~@)?(QR<RRs`Ӊ`8hK#ٚ(%r9Q_AT** rATqT~@ K_qjJ}j8J!ȚX! TqkT~@;R RI`Ӊ`8j#ٚ(%r9_TQ )!ך'Ț@ qqzqT @Thq ~ @"ihgm@a@(@q(lTF[tRog_WO { (Q q#TY 6R!R5@b  6R%R@5?@qT @8l 5?@y qT @cm5@*l`5@KT?@?qaT @?q`T)T@RP a6R{JOIWH_GgFoE_)y? qT`TATqAT@l 5@?@?qT @@Lp @Re @ qT[0 R[(RA[pSBA ?(T}@0 #R["B!?Th@a@(@q(lTZvb0 R[?@ y? qT@T@@bO#gq ~O@(#@@g?@yrTqaT@'B3@ raT?!q!T q(}(8Y@#B@? rT!qT(?q}(8L@ ( C@ (C @Z T @Z|@@@ @Z@/?qT;}@( Q7R<'ښR`R(K" `8*( (*@H 8ZQTqkT}@7R'ښ  R `"`8*( (*@H 8ZAT@Vbq@)R(*7 ZRC_WO{@IY@@9(463 w` RuXR{DOCWB_AC_og_WO{@@@(@q(lTYuvBY`@Z@a@(@q(lTYRt{0 RYd@  T XR?mqTR;+P <+p m'ZSRR @44SR( R'0 tR 4Z?kaT  M X?"9Rw710 R^R!#0 m 4AuJ  ՙ4X@?9R@6`@Yh@n0 J0 qIP _{GOFWE_DgCoB_֨@?֢) R"tX^@}@qLTY{A0 E CE  %_R{_O{C@@Y$ #R{AO¨O{C@@@Y"R{AO¨ WO{RXg`BWXeX`@Yk  Ո9 X?ֈ@a@(@q(lTXtR{BOAWè_O{C RKqaT4R+p  4R#R@50 b Ҽ^0 բ Ҵ^a;P B Ҭ^A p " Ҥ^R{AO¨_WO{?qT 1 T|@f@a@(@q(lTlXRu h0 4R!RS~4R{BOAWè_WO{ ըX@?qTP Y *wf 0  Yr *lfP Yj *afAP XV *Vf##Rf@a@(@q(lTXRu]0 4R!R}] IX)@?T{GOFWE_j WO{?qTU  ը@R?R) 1@TX@a@(@q(lTWRuV0 4R!R}$@?4R{BOAWè_O{C e@a@(@q(lTWtR{AO¨_O{C @ qX@a@(@q(lTWt{AO¨_WO{? qaT@p [q(RR(R q@T67#p 5R!Rd}FzhX `Re* `(\A8qTX@94qaT\@94(X%j @a@(@q(lTHWRtv6R @V  X@a@(@q(lT0Wt5R{BOAWè_O{C RqaT4Ra0 բ 4R#R@5A0 " )]R{AO¨_og_WO{ X@? qT)RR6R  xp p Հv}W@9q!T}@zzCeR~@ 5@q(T*kh8) (R22;R (R VkTzvck5kTK q*Tp ;R!R|HvT`}@@ B9R)0 8* zI  ա_=T4@2Q"Ry7h@k@T`_-T@4@caqT@h _%0 T 4@Q @R9h@h479 BkT @?k TR?kTh@5@95P R[PR(p (Q@a@(@q(lTNPt5R#?kTZyPak  Rx`79 @( Rrr(0 @9b@)(Rh|P!xP nR{GOFWE_DgCoB_A O{C RxqaT4R " 4R#R5  Ո XҁR? ՠ\09  $ VR{AO¨_O{C(@H4  Ղ X{AO¨@_WO{yPhPrPkTP@RR@qTO{COBWA_Ĩ_O{C RDxqaT4Rp " 4R#R@5A0 b ҵUR{AO¨_Cog_WO{7q,T 5R!Rru@bT  seRVw4@BS  v@ q Tq T5qTC 0 }q!T @c`4 @cqTRRҗ@ @ck5OOR ?kTkT= 9Z #@/@? kT @OOkTO@qT @GcR]qkTR @ec@5akT@a@(@q(lTNRv ARt5R{HOGWF_EgDoCC_ּ QZ|Zw qTy%P xR-WRxR$P >  weRv5}@#@4? qT{?qkTzw4O6rk@Tzw;O/kTb  @ !}}?/qkT @Rc@O@{;{/kTR @_{;Wv@?4t4N4 8Ozb@b@0a@$n/@Rb@@a@(@q(lTKNRtes0 T^t@ AP 0 O@a@(@q(lT*NtDO{C0 B #R4 R{AO¨_a cp "R{AO¨QrO{CA B #R4 R{AO¨_!0 CP "R{AO¨9rO{CP B #R4 R{AO¨_֡p ê "R{AO¨!rO{C!0 B #R4 R{AO¨_ցP 0 "R{AO¨ rO{C>p B #R4 R{AO¨_ց= գ=0 "R{AO¨qO{C!P B #R4 R{AO¨_0  "R{AO¨qO{CP B #R4 R{AO¨_0  "R{AO¨qO{Ca` B #Rq4 R{AO¨_A_P Ճ_ "R{AO¨qO{C! B #RY4 R{AO¨_0 P "R{AO¨q{`0P a c0P R{B0 ! B BR{,P  ,p lR{ ա գP R{`P a գ  R|{ աP գ0 " Rr{`P P cP բRh{p ՁP p pR^{`0 AP c0 բaRT{@P P cp ¥RJ{)P !* #*P R@{ 2p ( #2P R6{p pp #q բR,{v w0 pp "R"{wp u0 cwp  R{@{0 ա{p {p Ղ R{z0 azp c{P բ R հ X Ր X p X P X 0 X  X  X І X հ X Ր X p X P X 0 X  X  X Ѕ X հ X Ր X p X P X 0 X  X  X Є X հ X Ր X p X P X 0 X  X  X Ѓ X հ X Ր X p X P X 0 X  X  X Ђ X հ X Ր X p X P X 0 X  X  X Ё X հ X Ր X p X P X 0 X  X  X Ѐ X հ X Ր X p X P X 0 X  X  X  X հ X Ր X p X P X 0 X  X ~ X ~ X հ~ X Ր~ X p~ X P~ X 0~ X ~ X } X } X հ} X Ր} X p} X P} X 0} X } X | X | X հ| X Ր| X p| X P| X 0| X | X { X { X հ{ X Ր{ X p{ X P{ X 0{ X { X z X z X հz X Րz X pz X Pz X 0z X z X y X y X հy X Րy X py X Py X 0y X y X x X x X հx X Րx X px X Px X 0x X x X w X w X հw X Րw X pw X Pw X 0w X w X v X v X հv X Րv X pv X Pv X 0v X v X u X u X հu X Րu X pu X Pu X 0u X u X t X t X հt X Րt X pt X Pt X 0t X t X s X s X հs X Րs X ps X Ps X 0s X s X r X r X հr X Րr X pr X Pr X 0r X r X q X q X հq Xֱq  G 0IXPPP)POP^PpPPPPPPPPPPPP'P5PDPQP^PnP|PPPPPPPP PP)P:PJPVPcPoPPP~P{PxPuPrPoPlPiPf PcP`(P]7PZEPWTPTaPQoPN|PKPHPEPBP?P<P9P6P3P0P-!P*5P'BP$QP!aPpPPPPPP P PPP P.P@PNP]PjPwPPPPPPPPPPPP.P>PMP[PkPzPPPPPPPPPP PP%P2P?POP`PpPPPP|PyPvPsPpPm PjPg,Pd>PaJP^WP[ePXvPUPRPOPLPIPFPCP@P= P: P7& P45 P1I P.Y P+i P(y P% P" P P P P P P P  P  P- P? PQ P^ Pm P{ P P P P P jimsh version %d.%d Usage: %s or : %s [options] [filename] --version%d.%d --helpjim::argv0tcl_interactive10-eargv0-eval [info source [stdin read] stdin 1]%s argvargcWithout options: Interactive modeOptions: --version : prints the version string --help : prints this text -e CMD : executes command CMD NOTE: all subsequent options will be passed as arguments to the command [filename|-] : executes the script contained in the named file, or from stdin if "-" NOTE: all subsequent options will be passed to the script initjimsh1.0initjimsh.tcl proc _jimsh_init {} { rename _jimsh_init {} global jim::exe jim::argv0 tcl_interactive auto_path tcl_platform if {[exists jim::argv0]} { if {[string match "*/*" $jim::argv0]} { set jim::exe [file join [pwd] $jim::argv0] } else { foreach path [split [env PATH ""] $tcl_platform(pathSeparator)] { set exec [file join [pwd] [string map {\\ /} $path] $jim::argv0] if {[file executable $exec]} { set jim::exe $exec break } } } } lappend p {*}[split [env JIMLIB {}] $tcl_platform(pathSeparator)] if {[exists jim::exe]} { lappend p [file dirname $jim::exe] } lappend p {*}$auto_path set auto_path $p if {$tcl_interactive && [env HOME {}] ne ""} { foreach src {.jimrc jimrc.tcl} { if {[file exists [env HOME]/$src]} { uplevel #0 source [env HOME]/$src break } } } return "" } if {$tcl_platform(platform) eq "windows"} { set jim::argv0 [string map {\\ /} $jim::argv0] } set tcl::autocomplete_commands {info tcl::prefix socket namespace array clock file package string dict signal history} proc tcl::autocomplete {prefix} { if {[set space [string first " " $prefix]] != -1} { set cmd [string range $prefix 0 $space-1] if {$cmd in $::tcl::autocomplete_commands || [info channel $cmd] ne ""} { set arg [string range $prefix $space+1 end] return [lmap p [$cmd -commands] { if {![string match "${arg}*" $p]} continue function "$cmd $p" }] } } if {[string match "source *" $prefix]} { set path [string range $prefix 7 end] return [lmap p [glob -nocomplain "${path}*"] { function "source $p" }] } return [lmap p [lsort [info commands $prefix*]] { if {[string match "* *" $p]} { continue } function $p }] } _jimsh_init wrong # args: should be "%#s command ..." Use "%#s -help ?command?" for help-helpambiguousUsage: wrong # args: should be ""subcmd-lookupUsage: "%#s command ... ", where command is one of: %#sdummy%#s, %s command "%#s": should be %#shistory::multiline%4d %s HOME%s/.jim_historytcl::autocompleteWelcome to Jim version %d.%d [%d] . [%s] . . %c> hnot enough arguments for all format specifiersformat string ended in middle of field specifier%ld.%ldformat too longbad field specifier "%s"jim.c::can't delete "%#s": command doesn't existcan't rename "%#s": command doesn't existcan't rename to "%#s": command already existscan't rename local command "%#s"invalid command name "%#s"bad variable name "%#s": upvar won't create a scalar variable that looks like an array elementvariable "%#s" already existsbad variable name "%#s": upvar won't create namespace variable that refers to procedure variablecan't upvar from variable to itselfcan't read "%#s": no such variablecan't unset "%#s": no such variable.%020lu>intexpected integer but got "%#s"Integer value too big to be representedsourcecoerced-doubledoubleNaN-InfInf%.12gexpected floating-point number but got "%#s"expected boolean but got "%#s"trueyesonfalsenoofflistListEnsureLengthidx >= 0missing value to go with keydictJimDictHashFindtvoffsetindexend%dend%dbad index "%#s": must be intexpr or end?[+-]intexpr?okerrorreturnbreakcontinuesignalexitevalreturn-codeexpected return code but got "%#s"*/%+<<>><<<>>><><=>===!=&^|&&||**eqneinniltgtlege!~ - +wideabsroundrandsrandsincostanasinacosatanatan2sinhcoshtanhceilfloorexploglog10sqrtpowhypotfmodexponentiation of zero by negative powerDivision by zerosyntax error in expression: "%#s"eENnIi.nanNANinfINFunmatched "["missing close-braceextra characters after close-bracemissing quotemissing close parenthesisExprTreeCreateTreeexpr->len <= tokenlist->count - 1Expression too complexunexpected open parenthesis in expression: "%#s"unexpected closing parenthesis in expression: "%#s"unexpected comma in expression: "%#s"too many arguments to math function: without ? in expression: "%#s"missing arguments for math functiontoo many arguments for math functionmissing operand to %s in expression: "%#s"missing operator in expression: "%#s"too %s arguments for math functionfewmanyempty expressionsyntax error in expression "%#s": premature end of expressionextra terms after expressionexpressionInfinite eval recursionproccmd ...??arg ...?wrong # args: should be "%#s%#s"varName ?increment?variablescriptaliasputsincrwhileloopforforeachlmaplassignifswitchlindexlsetlsearchllengthlappendlinsertlreplacelsortappenduplevelexprxtraceconcatupvarglobaltimetimeratecatchtryrefgetrefsetreffinalizecollectrenamesubstinfoexistssplitjoinformatscanlrangelrepeatenvlreverserangetailcalllocalupcallapplynewname command ?args ...?varName ?newValue?-nocomplain?-nonewline? string-nonewlineThe second argument must be -nonewlinenumber ?number ... number?condition bodyvar ?first? limit ?incr? bodystart test next bodyvarList list ?varList list ...? scriptforeach varlist is emptyvarList list ?varName ...?thenelseelseifcondition ?then? trueBody ?elseif ...? ?else? falseBody?options? string pattern body ... ?default body? or {pattern body ?pattern body ...?}-exact-glob-regexp-commandbad option "%#s": must be -exact, -glob, -regexp, -command procname or --defaultregexpno body specified for pattern "%#s"list ?index ...?element %#s missing from sublist "%#s"listVar ?index ...? value-bool-not-all-inline-stride-index?-exact|-glob|-regexp|-command 'command'? ?-bool|-inline? ?-not? ?-nocase? ?-all? ?-stride len? ?-index val? list valuestride length must be at least 1list size must be a multiple of the stride lengthvarName ?value value ...?list index ?element ...?list first last ?element ...?-ascii-increasing-decreasing-integer-real-unique?options? list"-command" option must be followed by comparison commandstride length must be at least 2"-index" option must be followed by list indexvarName ?value ...?arg ?arg ...??level? command ?arg ...?name arglist ?statics? bodyJimCreateProcedureCmdcmdPtrargument with no nametoo many fields in argument specifier "%#s"args'args' specified more than oncevariable for initialization of static "%#s" not found in the local contextstatic variable name "%#s" duplicated in statics listtoo many fields in static specifier "%#s"callback-code-errorinfo-errorcode-levelbad level "%#s"?-code code? ?-errorinfo stacktrace? ?-level level? ?result?errorCode?level? otherVar localVar ?otherVar localVar ...?varName ?varName ...?bytelengthlengthcomparematchequalisbyterangereplacemaprepeatreversefirstlastcattrimtrimlefttrimrighttolowertouppertotitle-lengthoption ?arguments ...??-nocase? ?-length int? string1 string2?-nocase? pattern string?-nocase? mapList stringstring first laststring first last ?string?string countJim_StringCoreCommandbufstring indexsubString string ?index?string ?trimchars?-strictclass ?-strict? strlist must contain an even number of elementsintegeralphaalnumasciidigitlowerupperspacexdigitcontrolprintgraphpunctbooleanclassscript ?count? microseconds per iterationscript ?milliseconds?us_per_iteriters_per_seccountelapsed_us?exitCode??-?no?code ... --? script ?resultVarName? ?optionVarName??-?no?code ... --? script ?on|trap codes vars script? ... ?finally script?NONE-notrapfinallyhandlerstring tag ?finalizer?reference newValuereference ?finalizerProc?oldName newNamecreategetkeyssizemergewithremovevaluesupdategetwithdefaultsubcommand ?arguments ...?subcommandgetdefdictionary ?key ...?dictionary ?key ...? key defaultvarName key ?key ...? valuedictionary key ?key ...?varName key ?key ...?dictionary ?pattern?dictionary?key value ...?dictVar ?key ...? script-nobackslashes-nocommands-novariables?options? stringbodystaticscommandsprocschannelsglobalslevelframelocalsvarsversionpatchlevelcompletehostnamestacktracenameofexecutablereturncodesreferences-nonssubcommand ?args ...?varNamecommand "%#s" is not an alias?pattern?namespace infosource ?filename line??levelNum?procnamecommand "%#s" is not a procedure%d.%dscript ?missing?os.gethostname{info nameofexecutable}?code?typelinefile*[?\-proc-alias-var?option? namestring ?splitChars? list ?joinString?formatString ?arg arg ...?string format ?varName varName ...?"%n$" argument index out of rangedifferent numbers of variable names and field specifiersvariable is not assigned by any conversion specifiersscanformatstring%d%ncannot mix "%" and "%n$" conversion specifiersvariable is assigned by multiple "%n$" conversion specifiers"%n$" conversion specifier is negativeunmatched [ in format stringhlLmissing scan conversion characterefgcsndoxuibad scan conversion characterfield width may not be specified in %c conversionunsigned wide not supportedmessage ?stacktrace?list first lastcount ?value ...?varName ?default?environment variable "%#s" does not existfileName?start? end ?step?Invalid (infinite?) range specified?min? maxInvalid arguments (max < min)tailcall can only be called from a proc or lambdacmd ?args ...?no previous command: "%#s"lambdaExpr ?arg ...?can't interpret "%#s" as a lambda expressionapply lambdaExprget-enumoption%s%s "%s": must be or , utf8_prev_lenutf8.clen > 0successno matchbad patternnull argumentunknown errortoo bigout of memorytoo many ()parentheses () not balancedbraces {} not balancedinvalid repetition count(s)extra characters*+ of empty atomnested countinternal errorcount follows nothinginvalid escape \ sequencecorrupted programcontains null charbrackets [] not balancedBad error code:alpha::alnum::space::blank::upper::lower::digit::xdigit::cntrl::graph::print::punct: ^$.[()|?{+*<>mMwWdDsSAZ%s: %sTMPDIR/tmp/tcl.tmp.XXXXXX\\\n\rlinenoise.csb_delete_spacepos + len <= sb->lastTERMdumbcons25emacsqueryCursorcurrent->output == NULL [%dC outputFormattedn < (int)sizeof(buf)refreshStart[%dB[%dA[%d%c(reverse-i-search)'%s':  paritydatastopxonxoffrtsctshandshakeinputoutputvminvtimebaudsettingbad value for %#s: %#sevenodd56782rawcookedechoNot a filehandle: "%#s"aioopensocketpipestdinrstdoutwstderrread?-nonewline|-pending|len?copytohandle ?size?getfdgets?var??-nonewline? strisattyrecvfromlen ?addrvar?sendtostr addressaccept?addrvar?listenbacklogsockopt?opt 0|1?socknamepeernameflusheofclose?r(ead)|w(rite)?seekoffset ?start|current|endtellfilenamendelay?0|1?syncbufferingnone|line|fullstatreadable?readable-script?writable?writable-script?onexception?exception-script?lock?-wait?unlocktty?baud rate? ?data bits? ?stop bits? ?parity even|odd|none? ?handshake xonxoff|rtscts|none? ?input raw|cooked? ?output raw|cooked? ?echo 0|1? ?vmin n? ?vtime n?-pending-pending not supported on this connection typeinvalid parameter: negative len%#s: %s]:%d:%dNot a valid address: %s:%s0.0.0.0Not a valid address: %saio.sockstream%ldr+Failed to set %#s: %sUnknown sockopt %#sbroadcastdebugkeepalivenosigpipeoobinlinesndbufrcvbuftcp_nodelay-nodeletenot supportedstartcurrentnonefull-waitlock failed: %sfilename ?mode?::popenRDONLYWRONLYRDWRAPPENDBINARYCREATEXCLNOCTTYTRUNCw+access modeJimAioOpenCommandjim-aio.cmodeaio.handle%ldunix.serverunix.dgramunix.dgram.serverdgramdgram.serverstreamstream.serverpairpty-async-ipv6?-async? ?-ipv6? type ?address?socket typeaio.sockpair%ldUnsupported socket type%s: bind: %s%s: connect: %slisten: %saio.sock%ldaio.pty%ldaio.pipe%ldJimMakeChannelfd >= 0arrayarrayNamearrayName ?pattern?arrayName listlist must have an even number of elements"%#s" isn't an arrayclockclicksseconds ?-format string? ?-gmt boolean?microsecondsmillisecondsstr -format format ?-gmt boolean?seconds%a %b %d %H:%M:%S %Z %Yformat string too long or invalid time-gmt-formatFailed to parse time according to formateventloopbgerrornon-waitable filehandlevwaitafter-signal?-signal? nameidletasks?idletasks?cancelidleoption ?arg ...?argumentscript ?script ...?after#id|commandafter#%lldtimerevent "%#s" doesn't exist?id?execwaitpiderror reading from output pipeerror reading from error pipe|&illegal use of | or |& in commandcan't specify "%s" as last word in commanddidn't specify command to executecouldn't write temp filecouldn't write file "%s": %scouldn't create output pipemissing command to execcouldn't create pipecouldn't fork child processcouldn't exec "" %s=%sCHILDSTATUSCHILDKILLEDkilledCHILDSUSPsuspendedchild by signal -nohang?-nohang? ?pid?devinonlinkuidgidatimemtimectimemtimeuscan't set "%#s(dev)": variable isn't arraypwdcddirectorycharacterSpecialblockSpecialfifolinknamename ?time?copy?-force? source destdirnamerootnameextensiontailnormalizename ?name ...?executabledelete?-force|--? name ...mkdirdir ...tempfile?template??-symbolic|-hard? newname targetreadlinkname ?var?lstatownedisdirectoryisfilecould not read "%#s": %scan't set time on "%s": %sfile copycan't normalize "%#s": %sPath too long-forcefile delete forcecouldn't delete file "%s": %scan't create directory "%#s": %serror renaming "%#s" to "%#s": target existserror renaming "%#s" to "%#s": %s-hard-symbolicerror linking "%#s" to "%#s": %scould not read link "%#s": %sFailed to get pwdcouldn't change working directory to "%s": %shistoryaddcompletiongetlineprompt ?varname?keep?count?saveshowinterpjim::exeinterp.parentinterp.handle%ldscript ...childcmd parentcmd ?arg ...?JimInterpAliasProcjim-interp.cparentjsonjson::decodejsonencodenullempty JSON string-null-schema?-index? ?-null nullvalue? ?-schema? jsoninvalid JSON stringtruncated JSON stringroot element must be an object or an arrayjson_decode_get_typejim-json.cboolobjmixedstrnumjson_decode_add_schema_typetype >= 0 && type < JSON_MAX_TYPEerror loading extension "%s": %sJim_%.*sInitNo %s symbol found in extension %sload::handlesloadlibraryFileJimCanonicalNamespacejim-namespace.cnameObj->refCount != 0nsObj->refCount != 0can't define "%#s": name refers to an element in an arraynamespacecanonicalqualifiersorigincodeinscopeimportexportwhichsubcommand ?arg ...?name arg ?arg...??current? ?name??name?name ?value?packunpack-intbe-intle-uintbe-uintle-floatbe-floatle-strbinvalue -intbe|-intle|-uintbe|-uintle|-floatbe|-floatle|-str bitpos bitwidthbad bitoffset: %#sbad bitwidth: %#svarName value -intle|-intbe|-floatle|-floatbe|-str bitwidth ?bitoffset?package "%s" was already provided%#s%sCan't load package %spackage.tcl%s/%s.so.%s.tcl%s/%s.tclprovidename ?version?requirenamesposixos.forkos.getidsos.uptimeeuidegid?-nocomplain? dirPathreaddir-indices-line-start?-switch ...? exp string ?matchVar? ?subMatchVar ...?regexp match variables not allowed when using -inlineerror while matching pattern: %s?-switch ...? exp string subSpec ?varName?regsubcouldn't compile regular expression pattern: %sunknown signalalarmkillsleep?SIG|-0? pid-0kill: Failed to deliver signalsigunknown signal %sSIGABRTSIGALRMSIGBUSSIGCHLDSIGCONTSIGFPESIGHUPSIGILLSIGINTSIGIOSIGKILLSIGPIPESIGPROFSIGQUITSIGSEGVSIGSTOPSIGSYSSIGTERMSIGTRAPSIGTSTPSIGTTINSIGTTOUSIGURGSIGUSR1SIGUSR2SIGVTALRMSIGWINCHSIGXCPUSIGXFSZSIGEMTSIGINFOhandle?signals ...?ignoreblockcheck?-clear? ?signals ...?throw?signal?-clear?-facility cron|daemon|...? ?-ident string? ?-options int? ?debug|info|...? message-facilityUnknown facility-options-identUnknown priorityTcl scriptsyslogkernelusermaildaemonlprnewsuucpcronauthprivlocal0local1local2local3local4local5local6local7emergalertcritwarningnoticetclprefixtcl::prefixalllongest-error-message?options? table stringmissing error optionserror options must have an even number of elementsmissing messagebad %s "%#s": no valid optionsreturn -level 0 -code errortable stringbinarybinary.tcl package require pack package require regexp proc binary {cmd args} { tailcall "binary $cmd" {*}$args } proc "binary format" {formatString args} { set bitoffset 0 set result {} foreach {conv t u n} [regexp -all -inline {([^[:space:]])(u)?([*0-9]*)} $formatString] { switch -exact -- $t { a - A { set value [binary::nextarg args] set sn [string bytelength $value] if {$n ne "*"} { if {$n eq ""} { set n 1 } if {$n > $sn} { append value [string repeat [dict get {A " " a \x00} $t] $($n - $sn)] } } else { set n $sn } if {$n} { set bitoffset [pack result $value -str $(8 * $n) $bitoffset] } } x { if {$n eq "*"} { return -code error {cannot use "*" in format string with "x"} } if {$n eq ""} { set n 1 } loop i 0 $n { set bitoffset [pack result 0 -intbe 8 $bitoffset] } } @ { if {$n eq ""} { return -code error {missing count for "@" field specifier} } if {$n eq "*"} { set bitoffset $(8 * [string bytelength $result]) } else { set max [string bytelength $result] append result [string repeat \x00 $($n - $max)] set bitoffset $(8 * $n) } } X { if {$n eq "*"} { set bitoffset 0 } elseif {$n eq ""} { incr bitoffset -8 } else { incr bitoffset $($n * -8) } if {$bitoffset < 0} { set bitoffset 0 } } default { if {![info exists ::binary::scalarinfo($t)]} { return -code error "bad field specifier \"$t\"" } lassign $::binary::scalarinfo($t) type convtype size prefix set value [binary::nextarg args] if {$type in {bin hex}} { set value [split $value {}] } set vn [llength $value] if {$n eq "*"} { set n $vn } elseif {$n eq ""} { set n 1 set value [list $value] } elseif {$vn < $n} { if {$type in {bin hex}} { lappend value {*}[lrepeat $($n - $vn) 0] } else { return -code error "number of elements in list does not match count" } } elseif {$vn > $n} { set value [lrange $value 0 $n-1] } set convtype -$::binary::convtype($convtype) foreach v $value { set bitoffset [pack result $prefix$v $convtype $size $bitoffset] } if {$bitoffset % 8} { set bitoffset [pack result 0 $convtype $(8 - $bitoffset % 8) $bitoffset] } } } } return $result } proc "binary scan" {value formatString {args varName}} { set bitoffset 0 set count 0 foreach {conv t u n} [regexp -all -inline {([^[:space:]])(u)?([*0-9]*)} $formatString] { set rembytes $([string bytelength $value] - $bitoffset / 8) switch -exact -- $t { a - A { if {$n eq "*"} { set n $rembytes } elseif {$n eq ""} { set n 1 } if {$n > $rembytes} { break } set var [binary::nextarg varName] set result [unpack $value -str $bitoffset $($n * 8)] incr bitoffset $([string bytelength $result] * 8) if {$t eq "A"} { set result [string trimright $result] } } x { if {$n eq "*"} { set n $rembytes } elseif {$n eq ""} { set n 1 } if {$n > $rembytes} { set n $rembytes } incr bitoffset $($n * 8) continue } X { if {$n eq "*"} { set bitoffset 0 continue } if {$n eq ""} { set n 1 } if {$n * 8 > $bitoffset} { set bitoffset 0 continue } incr bitoffset -$($n * 8) continue } @ { if {$n eq ""} { return -code error {missing count for "@" field specifier} } if {$n eq "*" || $n > $rembytes + $bitoffset / 8} { incr bitoffset $($rembytes * 8) } elseif {$n < 0} { set bitoffset 0 } else { set bitoffset $($n * 8) } continue } default { if {![info exists ::binary::scalarinfo($t)]} { return -code error "bad field specifier \"$t\"" } lassign $::binary::scalarinfo($t) type convtype size prefix set var [binary::nextarg varName] if {$n eq "*"} { set n $($rembytes * 8 / $size) } else { if {$n eq ""} { set n 1 } } if {$n * $size > $rembytes * 8} { break } if {$type in {hex bin}} { set u u } set convtype -$u$::binary::convtype($convtype) set result {} loop i 0 $n { set v [unpack $value $convtype $bitoffset $size] if {$type in {bin hex}} { append result [lindex {0 1 2 3 4 5 6 7 8 9 a b c d e f} $v] } else { lappend result $v } incr bitoffset $size } if {$bitoffset % 8} { incr bitoffset $(8 - ($bitoffset % 8)) } } } uplevel 1 [list set $var $result] incr count } return $count } proc binary::nextarg {&arglist} { if {[llength $arglist] == 0} { return -level 2 -code error "not enough arguments for all format specifiers" } set arglist [lassign $arglist arg] return $arg } set binary::scalarinfo { c {int be 8} s {int le 16} t {int host 16} S {int be 16} i {int le 32} I {int be 32} n {int host 32} w {int le 64} W {int be 64} m {int host 64} h {hex le 4 0x} H {hex be 4 0x} b {bin le 1} B {bin be 1} r {float fle 32} R {float fbe 32} f {float fhost 32} q {float fle 64} Q {float fbe 64} d {float fhost 64} } set binary::convtype { be intbe le intle fbe floatbe fle floatle } if {$::tcl_platform(byteOrder) eq "bigEndian"} { array set binary::convtype {host intbe fhost floatbe} } else { array set binary::convtype {host intle fhost floatle} } ensembleensemble.tcl proc ensemble {command args} { set autoprefix "$command " set badopts "should be \"ensemble command ?-automap prefix?\"" if {[llength $args] % 2 != 0} { return -code error "wrong # args: $badopts" } foreach {opt value} $args { switch -- $opt { -automap { set autoprefix $value } default { return -code error "wrong # args: $badopts" } } } proc $command {subcmd args} {autoprefix {mapping {}}} { if {![dict exists $mapping $subcmd]} { if {$subcmd in {-commands -help}} { set prefixlen [string length $autoprefix] set subcmds [lmap p [lsort [info commands $autoprefix*]] { string range $p $prefixlen end }] if {$subcmd eq "-commands"} { return $subcmds } set command [lindex [info level 0] 0] return "Usage: \"$command command ... \", where command is one of: [join $subcmds ", "]" } dict set mapping $subcmd ${autoprefix}$subcmd } tailcall [dict get $mapping $subcmd] {*}$args } } globglob.tcl package require readdir proc glob.globdir {dir pattern} { if {[file exists $dir/$pattern]} { return [list $pattern] } set result {} set files [readdir $dir] lappend files . .. foreach name $files { if {[string match $pattern $name]} { if {[string index $name 0] eq "." && [string index $pattern 0] ne "."} { continue } lappend result $name } } return $result } proc glob.explode {pattern} { set oldexp {} set newexp {""} while 1 { set oldexp $newexp set newexp {} set ob [string first \{ $pattern] set cb [string first \} $pattern] if {$ob < $cb && $ob != -1} { set mid [string range $pattern 0 $ob-1] set subexp [lassign [glob.explode [string range $pattern $ob+1 end]] pattern] if {$pattern eq ""} { error "unmatched open brace in glob pattern" } set pattern [string range $pattern 1 end] foreach subs $subexp { foreach sub [split $subs ,] { foreach old $oldexp { lappend newexp $old$mid$sub } } } } elseif {$cb != -1} { set suf [string range $pattern 0 $cb-1] set rest [string range $pattern $cb end] break } else { set suf $pattern set rest "" break } } foreach old $oldexp { lappend newexp $old$suf } list $rest {*}$newexp } proc glob.glob {base pattern} { set dir [file dirname $pattern] if {$pattern eq $dir || $pattern eq ""} { return [list [file join $base $dir] $pattern] } elseif {$pattern eq [file tail $pattern]} { set dir "" } set dirlist [glob.glob $base $dir] set pattern [file tail $pattern] set result {} foreach {realdir dir} $dirlist { if {![file isdir $realdir]} { continue } if {[string index $dir end] ne "/" && $dir ne ""} { append dir / } foreach name [glob.globdir $realdir $pattern] { lappend result [file join $realdir $name] $dir$name } } return $result } proc glob {args} { set nocomplain 0 set base "" set tails 0 set n 0 foreach arg $args { if {[info exists param]} { set $param $arg unset param incr n continue } switch -glob -- $arg { -d* { set switch $arg set param base } -n* { set nocomplain 1 } -ta* { set tails 1 } -- { incr n break } -* { return -code error "bad option \"$arg\": must be -directory, -nocomplain, -tails, or --" } * { break } } incr n } if {[info exists param]} { return -code error "missing argument to \"$switch\"" } if {[llength $args] <= $n} { return -code error "wrong # args: should be \"glob ?options? pattern ?pattern ...?\"" } set args [lrange $args $n end] set result {} foreach pattern $args { set escpattern [string map { \\\\ \x01 \\\{ \x02 \\\} \x03 \\, \x04 } $pattern] set patexps [lassign [glob.explode $escpattern] rest] if {$rest ne ""} { return -code error "unmatched close brace in glob pattern" } foreach patexp $patexps { set patexp [string map { \x01 \\\\ \x02 \{ \x03 \} \x04 , } $patexp] foreach {realname name} [glob.glob $base $patexp] { incr n if {$tails} { lappend result $name } else { lappend result [file join $base $name] } } } } if {!$nocomplain && [llength $result] == 0} { set s $(([llength $args] > 1) ? "s" : "") return -code error "no files matched glob pattern$s \"[join $args]\"" } return $result } jsonencode.tcl proc json::encode {value {schema str}} { json::subencode [lindex $schema 0] $value [lrange $schema 1 end] } proc json::subencode {type value {schema {}}} { switch -exact -- $type { str - "" { return \"[string map [list \\ \\\\ \" \\" \f \\f \n \\n / \\/ \b \\b \r \\r \t \\t] $value]\" } num { if {$value in {Inf -Inf}} { append value inity } return $value } bool { if {$value} { return true } return false } obj { set result "\{" set sep " " foreach k [lsort [dict keys $value]] { if {[dict exists $schema $k]} { set subtype [dict get $schema $k] } elseif {[dict exists $schema *]} { set subtype [dict get $schema *] } else { set subtype str } append result $sep\"$k\": append result [json::subencode [lindex $subtype 0] [dict get $value $k] [lrange $subtype 1 end]] set sep ", " } append result " \}" return $result } list { set result "\[" set sep " " foreach l $value { append result $sep append result [json::subencode [lindex $schema 0] $l [lrange $schema 1 end]] set sep ", " } append result " \]" return $result } mixed { set result "\[" set sep " " foreach l $value subtype $schema { append result $sep append result [json::subencode [lindex $subtype 0] $l [lrange $subtype 1 end]] set sep ", " } append result " \]" } default { error "bad type $type" } } } nshelpernshelper.tcl proc {namespace delete} {args} { foreach name $args { if {$name ni {:: ""}} { set name [uplevel 1 [list ::namespace canon $name]] foreach i [info commands ${name}::*] { rename $i "" } uplevel #0 [list unset {*}[info globals ${name}::*]] } } } proc {namespace origin} {name} { set nscanon [uplevel 1 [list ::namespace canon $name]] if {[exists -alias $nscanon]} { tailcall {namespace origin} [info alias $nscanon] } if {[exists -command $nscanon]} { return ::$nscanon } if {[exists -command $name]} { return ::$name } return -code error "invalid command name \"$name\"" } proc {namespace which} {{type -command} name} { set nsname ::[uplevel 1 [list ::namespace canon $name]] if {$type eq "-variable"} { return $nsname } if {$type eq "-command"} { if {[exists -command $nsname]} { return $nsname } elseif {[exists -command ::$name]} { return ::$name } return "" } return -code error {wrong # args: should be "namespace which ?-command? ?-variable? name"} } proc {namespace code} {arg} { if {[string first "::namespace inscope " $arg] == 0} { return $arg } list ::namespace inscope [uplevel 1 ::namespace current] $arg } proc {namespace inscope} {name arg args} { tailcall namespace eval $name $arg $args } proc {namespace import} {args} { set current [uplevel 1 ::namespace canon] foreach pattern $args { foreach cmd [info commands [namespace canon $current $pattern]] { if {[namespace qualifiers $cmd] eq $current} { return -code error "import pattern \"$pattern\" tries to import from namespace \"$current\" into itself" } set newcmd ${current}::[namespace tail $cmd] set alias $cmd while {[exists -alias $alias]} { set alias [info alias $alias] if {$alias eq $newcmd} { return -code error "import pattern \"$pattern\" would create a loop" } } alias $newcmd $cmd } } } proc {namespace info} {cmd {pattern *}} { set current [uplevel 1 ::namespace canon] if {[string first :: $pattern] == 0} { set global 1 set prefix :: } else { set global 0 set clen [string length $current] incr clen 2 } set fqp [namespace canon $current $pattern] switch -glob -- $cmd { co* - p* { if {$global} { set result [info $cmd $fqp] } else { set r {} foreach c [info $cmd $fqp] { dict set r [string range $c $clen end] 1 } if {[string match co* $cmd]} { foreach c [info -nons commands $pattern] { dict set r $c 1 } } set result [dict keys $r] } } ch* { set result [info channels $pattern] } v* { set result [uplevel #0 info -nons vars $fqp] } g* { set result [info globals $fqp] } l* { set result [uplevel 1 info -nons locals $pattern] } } if {$global} { set result [lmap p $result { string cat $prefix $p }] } return $result } proc {namespace upvar} {ns args} { set nscanon ::[uplevel 1 [list ::namespace canon $ns]] set script [list upvar 0] foreach {other local} $args { lappend script ${nscanon}::$other $local } tailcall {*}$script } proc {namespace ensemble} {subcommand args} { if {$subcommand ne "create"} { return -code error "only \[namespace ensemble create\] is supported" } set ns [uplevel 1 namespace canon] set cmd $ns if {$ns eq ""} { return -code error "namespace ensemble create: must be called within a namespace" } ensemble $cmd -automap ${ns}:: {*}$args } oooo.tcl proc class {classname {baseclasses {}} classvars} { set baseclassvars {} foreach baseclass $baseclasses { foreach method [$baseclass methods] { alias "$classname $method" "$baseclass $method" } set baseclassvars [dict merge $baseclassvars [$baseclass classvars]] proc "$classname baseclass" {} baseclass { return $baseclass } } set classvars [dict merge $baseclassvars $classvars] proc $classname {{cmd new} args} classname { if {![exists -command "$classname $cmd"]} { return -code error "$classname, unknown command \"$cmd\": should be [join [$classname methods] ", "]" } tailcall "$classname $cmd" {*}$args } proc "$classname new" {args} {classname classvars} { set obj ::[ref $classname $classname "$classname finalize"] set instvars $classvars proc $obj {method args} {classname instvars} { if {![exists -command "$classname $method"]} { if {![exists -command "$classname unknown"]} { return -code error "$classname, unknown method \"$method\": should be [join [$classname methods] ", "]" } return ["$classname unknown" $method {*}$args] } "$classname $method" {*}$args } $obj constructor {*}$args return $obj } proc "$classname finalize" {ref classname} { $ref destroy } proc "$classname method" {method arglist __body} classname { proc "$classname $method" $arglist {__body} { if {![uplevel exists instvars]} { return -code error -level 2 "\"[lindex [info level 0] 0]\" method called with no object" } set self [lindex [info level -1] 0] foreach __ [$self vars] {upvar 1 instvars($__) $__} unset -nocomplain __ eval $__body } } proc "$classname vars" {} classvars { lsort [dict keys $classvars] } proc "$classname classvars" {} classvars { return $classvars } proc "$classname classname" {} classname { return $classname } proc "$classname methods" {} classname { lsort [lmap p [info commands "$classname *"] { lindex [split $p " "] 1 }] } $classname method defaultconstructor {{__vars {}}} { set __classvars [$self classvars] foreach __v [dict keys $__vars] { if {![dict exists $__classvars $__v]} { return -code error -level 3 "[lindex [info level 0] 0], $__v is not a class variable" } set $__v [dict get $__vars $__v] } } alias "$classname constructor" "$classname defaultconstructor" $classname method destroy {} { rename $self "" } $classname method get {var} { set $var } $classname method eval {{__locals {}} __body} { foreach __ $__locals { upvar 2 $__ $__ } unset -nocomplain __ eval $__body } return $classname } proc super {method args} { set classname [lindex [info level -1] 0 0] uplevel 2 [list [$classname baseclass] $method {*}$args] } stdlibstdlib.tcl if {![exists -command ref]} { proc ref {args} {{count 0}} { format %08x [incr count] } } proc lambda {arglist args} { tailcall proc [ref {} function lambda.finalizer] $arglist {*}$args } proc lambda.finalizer {name val} { rename $name {} } proc curry {args} { alias [ref {} function lambda.finalizer] {*}$args } proc function {value} { return $value } proc stacktrace {{skip 0}} { set trace {} incr skip 2 loop level $skip [info level]+1 { set frame [info frame -$level] lappend trace [lindex [dict get $frame cmd] 0] [dict get $frame file] [dict get $frame line] } return $trace } proc stacktrace {{skip 0}} { set trace {} incr skip 1 set last 0 loop level $skip [info frame]+1 { set frame [info frame -$level] set file [dict get $frame file] set line [dict get $frame line] set lev [dict get $frame level] if {$lev != $last && $lev > $skip} { set proc [lindex [dict get $frame cmd] 0] lappend trace $proc $file $line } set last $lev } return $trace } proc stackdump {stacktrace} { set lines {} foreach {l f p} [lreverse $stacktrace] { set line {} if {$p ne ""} { append line "in procedure '$p' " if {$f ne ""} { append line "called " } } if {$f ne ""} { append line "at file \"$f\", line $l" } if {$line ne ""} { lappend lines $line } } join $lines \n } proc defer {script} { upvar jim::defer v lappend v $script } proc errorInfo {msg {stacktrace ""}} { if {$stacktrace eq ""} { set stacktrace [info stacktrace] lappend stacktrace {*}[stacktrace 1] } lassign $stacktrace p f l if {$f ne ""} { set result "$f:$l: Error: " } append result "$msg\n" append result [stackdump $stacktrace] string trim $result } proc {info nameofexecutable} {} { if {[exists ::jim::exe]} { return $::jim::exe } } proc {dict update} {&varName args script} { set keys {} foreach {n v} $args { upvar $v var_$v if {[dict exists $varName $n]} { set var_$v [dict get $varName $n] } } catch {uplevel 1 $script} msg opts if {[info exists varName]} { foreach {n v} $args { if {[info exists var_$v]} { dict set varName $n [set var_$v] } else { dict unset varName $n } } } return {*}$opts $msg } proc {dict replace} {dictionary {args {key value}}} { if {[llength ${key value}] % 2} { tailcall {dict replace} } tailcall dict merge $dictionary ${key value} } proc {dict lappend} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set list [dict get $dict $key] } lappend list {*}$value dict set dict $key $list } proc {dict append} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set str [dict get $dict $key] } append str {*}$value dict set dict $key $str } proc {dict incr} {varName key {increment 1}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set value [dict get $dict $key] } incr value $increment dict set dict $key $value } proc {dict remove} {dictionary {args key}} { foreach k $key { dict unset dictionary $k } return $dictionary } proc {dict for} {vars dictionary script} { if {[llength $vars] != 2} { return -code error "must have exactly two variable names" } dict size $dictionary tailcall foreach $vars $dictionary $script } tclcompattclcompat.tcl set env [env] if {[info commands stdout] ne ""} { foreach p {gets flush close eof seek tell} { proc $p {chan args} {p} { tailcall $chan $p {*}$args } } unset p proc puts {{-nonewline {}} {chan stdout} msg} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} puts $msg } tailcall $chan puts {*}${-nonewline} $msg } proc read {{-nonewline {}} chan} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} read {*}${chan} } tailcall $chan read {*}${-nonewline} } proc fconfigure {f args} { foreach {n v} $args { switch -glob -- $n { -bl* { $f ndelay $(!$v) } -bu* { $f buffering $v } -tr* { } default { return -code error "fconfigure: unknown option $n" } } } } } proc fileevent {args} { tailcall {*}$args } proc parray {arrayname {pattern *} {puts puts}} { upvar $arrayname a set max 0 foreach name [array names a $pattern]] { if {[string length $name] > $max} { set max [string length $name] } } incr max [string length $arrayname] incr max 2 foreach name [lsort [array names a $pattern]] { $puts [format "%-${max}s = %s" $arrayname\($name\) $a($name)] } } proc {file copy} {{force {}} source target} { try { if {$force ni {{} -force}} { error "bad option \"$force\": should be -force" } set in [open $source rb] if {[file exists $target]} { if {$force eq ""} { error "error copying \"$source\" to \"$target\": file already exists" } if {$source eq $target} { return } file stat $source ss file stat $target ts if {$ss(dev) == $ts(dev) && $ss(ino) == $ts(ino) && $ss(ino)} { return } } set out [open $target wb] $in copyto $out $out close } on error {msg opts} { incr opts(-level) return {*}$opts $msg } finally { catch {$in close} } } proc popen {cmd {mode r}} { lassign [pipe] r w try { if {[string match "w*" $mode]} { lappend cmd <@$r & set pids [exec {*}$cmd] $r close set f $w } else { lappend cmd >@$w & set pids [exec {*}$cmd] $w close set f $r } lambda {cmd args} {f pids} { if {$cmd eq "pid"} { return $pids } if {$cmd eq "getfd"} { $f getfd } if {$cmd eq "close"} { $f close set retopts {} foreach p $pids { lassign [wait $p] status - rc if {$status eq "CHILDSTATUS"} { if {$rc == 0} { continue } set msg "child process exited abnormally" } else { set msg "child killed: received signal" } set retopts [list -code error -errorcode [list $status $p $rc] $msg] } return {*}$retopts } tailcall $f $cmd {*}$args } } on error {error opts} { $r close $w close error $error } } local proc pid {{channelId {}}} { if {$channelId eq ""} { tailcall upcall pid } if {[catch {$channelId tell}]} { return -code error "can not find channel named \"$channelId\"" } if {[catch {$channelId pid} pids]} { return "" } return $pids } proc throw {code {msg ""}} { return -code $code $msg } proc {file delete force} {path} { foreach e [readdir $path] { file delete -force $path/$e } file delete $path } treetree.tcl package require oo class tree { tree {root {}} parents {root {}} children {root {}} nodeid 0 } tree method depth {node} { set depth 0 while {$node ne "root"} { incr depth set node [dict get $parents $node] } return $depth } tree method parent {node} { dict get $parents $node } tree method children {node} { dict get $children $node } tree method numchildren {node} { llength [dict get $children $node] } tree method next {node} { set siblings [dict get $children [dict get $parents $node]] set i [lsearch $siblings $node] incr i lindex $siblings $i } tree method set {node key value} { dict set tree $node $key $value return $value } tree method get {node key} { dict get $tree $node $key } tree method keyexists {node key} { dict exists $tree $node $key } tree method getall {node} { dict get $tree $node } tree method insert {node {index end}} { set childname [incr nodeid] dict set tree $childname {} dict set children $childname {} dict set parents $childname $node set nodes [dict get $children $node] dict set children $node [linsert $nodes $index $childname] return $childname } tree method delete {node} { if {$node eq "root"} { return -code error "can't delete root node" } $self walk $node dfs {action subnode} { if {$action eq "exit"} { dict unset tree $subnode set parent [$self parent $subnode] if {$parent ne ""} { set siblings [dict get $children $parent] set i [lsearch $siblings $subnode] dict set children $parent [lreplace $siblings $i $i] } } } } tree method lappend {node key args} { if {[dict exists $tree $node $key]} { set result [dict get $tree $node $key] } lappend result {*}$args dict set tree $node $key $result return $result } tree method walk {node type vars code} { lassign $vars actionvar namevar set n $node if {$type ne "child"} { upvar 2 $namevar name $actionvar action set name $node set action enter uplevel 2 $code } if {$type eq "dfs"} { foreach child [$self children $n] { uplevel 2 [list $self walk $child $type $vars $code] } } elseif {$type ne "none"} { foreach child [$self children $n] { uplevel 2 [list $self walk $child none $vars $code] } foreach child [$self children $n] { uplevel 2 [list $self walk $child child $vars $code] } } if {$type ne "child"} { set name $node set action exit uplevel 2 $code } } tree method dump {} { $self walk root dfs {action n} { set indent [string repeat " " [$self depth $n]] if {$action eq "enter"} { puts "$indent$n ([$self getall $n])" } } puts "" } interactive-completion(((((((((((( .A"x^^^^^^^^^^^^^^^^^^^^^^^)^^^^)15555551 %(((((((( & )npr &LTVX[^adgG!#%(*HHHHHHHHHHHHfQQQQQQQQ &\;;;;P( M!$'J  . %'&&TT<]]h5:?DqI[gk{{{{p{{w+*)?_HN^] 6  x     ! #"%$'&)(+*-,/.1I325476:9<;>=@?BADCFEHGKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvzy|{~}SC=      #"%$'&)(+*-,/.1032<;?~,@,BAGFIHKJMLONPo,Qm,Rp,STVWY[\`acefhijkb,loqn,ru}d,ŧDEqpsrwv{|}0123456789:;<=>?@ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/PQRSTUVWXY Z [ \ ] ^_a`cbedgfihkjmlonqpsrutwvyx{z}|~     ! #"%$'&)(+*-,/.a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NOPQRSTUV!""*bJy}}c,Ƨ     ! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvyx{z}|~`      (!)"*#+$,%-&.'/08192:3;4<5=6>7?@HAIBJCKDLEMQYS[U]W_`haibjckdlemfngopqrstuvwxyz{|}N!2!!!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,`,e,:f,>h,g,j,i,l,k,s,r,v,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------- - - - - ------------------- -!-"-#-$-%-'---A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjml#"%$'&)(+*-,/.32547698;:=A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonzy|{~ħç§ȧǧʧɧѧЧק֧٧اSpqrstuvwxyz{|}~A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:      !"#$%&'()*+,-./0i2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STVWY[`cihoru      "#$%&'()*+,-./0123:e,;<=>f,ABCDEFGHIJKLMNOpqrsvw{|}PQRSTUVWX Y Z [ \ ]^_0123456789:;<=>? @!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~OPQRSTUV--------- - - - - ------------------- -!-"-#-$-%-'---pqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ( )!*"+#,$-%.&/'8091:2;3<4=5>6?7H@IAJBKCLDMEYQ[S]U_Wh`iajbkcldmenfogpqrstuvwz{xy|}&!*!k+!2!N!!!,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,kc,}d,}g,h,i,j,k,l,m,Qn,qo,Pp,Rr,s,u,v,~,?,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}y~ef\aljS§çħŧƧǧȧɧʧЧѧ֧קا٧!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O0P1Q2R3S4T5U6V7W8X9Y:ZpK`pq0M0Y^ : X b d  < Y p r u v  < \ b f  < X b f  ; N W X b f 124?GO5:>@q+?VZ^egnqu]`25R`r  @U4Ekt$; !,,---.*00000o~ #(,0Ψ&.G_)@CDLP{~ª 0_##)#*#######%%&&H&S&&&&&&&&&&&&&&&&&&&&&&&&&&&'' ' '('('L'L'N'N'S'U'W'W'''''''++P+P+U+U+....////0>0A00001/11111112 2G2P2MNƤ`|0RTfhk`oooopՌ"PRdgp;@HPQ`e -57|~>@@B=KNPgzzO :<EGptx|KGCCWFs ::::::: ::: :$:&' %+.7[x>W_hzpHHHHHHHHHHHHHHHHHHzWh}>_HrHaazHpHHHH ! +Rm.3ZA3ZD3ZH3ZL3 PN3 PP3 PS3 PV3 FY3 F\32^31`30b38 e3 .|-h3 xk3<n3<q37t37w3Kz3K}3K3K33(33U1331333(3030303030303 3030303030303030303 3 3 ;;/:::;;:;;=/=#=:/=8=;>=;0@;@B@J@P@V@Y@8c@k@o@v@2~@@@@@@@@@//@ BBB B&B1,B2B8B>BEBMBSBYB_BBC%2rCwCCC008CC8CC-887CD7c@ DDE%E1EOETE\EeEkE8tE|EEEEEEE>E71EEEE7:FFFHlT4=KEKNKZKhKvK~KKKKKKK LL%L;LULgLzLLLLLLLLLLLLLMMMRNN0NNNN+ NNNNNNDN]NgNmN=NINtNyNN OO<*O1O>?O@EOJOittvalidateStringRepqHashFunctionerRactivePromptpIncrProcEpochȄnsBigEndianDictListengthistoadLibraryܙElementListAppendGetIndexInJoinLengthRangeSetIndexdexsertElements ErrorMessageGlobalNamespaceNameTempFileدؒ QualifiersTail amespaceeictObjoubleObjDIntObjListObjObjReferenceStringObjĂ؉NoAllocUtf8ȋwxtHashEntryReadWrite ProvideRequire ckagerseSubCmd@arocessEvents  addirCmdgnameCommandplaceHashEntryturnCode expCmdisterCoreCommandssubCmd wanStringriptIsCompletecetignaltubyslogCmdЇAssocDataDictKeysVectorEnvironFinalizerGlobalVariableStrResultTtySettingsVariableErrnoFormattedLinkStrWithStr IdSetIgnored LenPЁeekopushackrnLenoDupingByteRangeObjCompareObjEqObjMatchObjRangeObjToИ̏mDoubleWidekLCmdProcstObj nsetVariabletf8LengthܲioInitrrayInit    nsembleInitventloopInitxecInit  ȵ   =itjimshInitterpInit  InitencodeInit Ď  amespaceInitshelperInit   InitageInitк ackosixInit  addirInitgexpInit  ignalInittdlibInityslogInit   compatInitprefixInit̅ clreeInit Jim _mh_execute_header j!linenoise!main#sb_$u%comp e free rror xec reg tt_name!im_ smn_!init!parse!ЛAddCompletion!C"History"Set#WithInitial#learScreen!olumns"Add"Free"GetMaxLen"Load"S"Allocated"ܛave"etMaxLen#CompletionCallback#FreeHintsCallback#HintsCallback#MultiLine#6lloc#ppend$_len$a$clear$delete$free$insert$realloc$to_string%5sage%tf8_% charlen%fromunicode%index%lower&prev_len&str&t&upper&width&̠len&width&itle&ounicode&5P`L4pHLpL,\Xp(4D@Xt$ TXHP888\XTdxD \Tt,x,t,dp<h0\dT$d0p x$\T|$\@p,p ,<,@$hx`pD ,h4 $,8XllH$< D  X\ X<| tX  ` 8@@\8 td`HHd4d< @xl`h$X$\(|lXDxDH4$$,<4<h\ h  4d&K'b0)|56:TDHKMP @YZ+_CddW fhuwz~@(L4 <,X=8O\cxXDX `0 ApVfs`| $ !8RDkxH t"=[w,@`0D_@}T|   0 <F [  o    D      <    ! !! /!@!8N![!|m!~!!(!!0!!$!!` " " /"P!E""Z"8#m")"`*"*"*"H,"1"2"2#3$#\4:#5O#6c#6w#6#6#6#7#:#*PT*g*L}***h*l**+@+,+x9+D+`I+S+@_+g+r+p|++ +++L+++L++  ,T,',85,tB,P,0e,v,,<,X,,,,,,|, ! -%-/--X1@-3S-9f-P:v-<->-@-  > 3> E> Z>( u>X > >P>>>#?P?k?h?x??8?X @(@@>@Z@0s@@@@ @@@`@@@A Ap$A?A\A{AxAAAAABB4BPBkB8B"BP#BP$B$B$C %)C%@C%UC&lC&C&C 'CH'C((C-C0.CP. D E/D E@D ESD E^D EgD EtD ED ED ED ED ED ED ED 8FD W,i>|{A@@8$0 $ a4CPp`Pq,rkDl|?Dlo\C 8.!BjSkgXt'(l&''(( ("85@D ^8sx)|WHBvC܌.x=Ucls@WX  & 8 hzG t{W DAc mu D E lE ? 4     % `p8 TH |W q p ^ ; ȩ 4 P Ѓ Ц  q* xgD LX [p % b h g g   0@ @ @( 8@7 l7C 7R C^ PLv J G hH M 6 5 &  p pl+ D; \M 0Z ^i  y d `  \u ~ Ț   X  0  -D;4N ` lzP@ ,  3@0Nd[hܪu,/) \,8  2Mcy@p`!X+6EOZ|cnzL4|$&:IWw !'-4<BHQX`mz#*28@HOW]djsz !.:HPX_jqz'.5=EMU^fmv~&.5=EMYblw| &09AIQZdmBCDEFGHMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~AIJKLBCDEFGHMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ _JimCanonicalNamespace_JimDefaultAllocator_JimStringComparePrefix_JimStringReplaceObj_Jim_AddHashEntry_Jim_AioFile_Jim_AioFilehandle_Jim_Allocator_Jim_AppendObj_Jim_AppendString_Jim_AppendStrings_Jim_CallSubCmd_Jim_CheckAbiVersion_Jim_CheckShowCommands_Jim_ClearHashTable_Jim_Collect_Jim_CollectIfNeeded_Jim_CommandMatchObj_Jim_CompareStringImmediate_Jim_ConcatObj_Jim_CreateCommand_Jim_CreateCommandObj_Jim_CreateFileHandler_Jim_CreateInterp_Jim_CreateNamespaceVariable_Jim_CreateScriptFileHandler_Jim_CreateTimeHandler_Jim_DeleteAssocData_Jim_DeleteCommand_Jim_DeleteFileHandler_Jim_DeleteHashEntry_Jim_DeleteTimeHandler_Jim_DictAddElement_Jim_DictInfo_Jim_DictKey_Jim_DictKeysVector_Jim_DictMatchTypes_Jim_DictMerge_Jim_DictPairs_Jim_DictSize_Jim_DuplicateObj_Jim_Eval_Jim_EvalExpression_Jim_EvalFile_Jim_EvalFileGlobal_Jim_EvalGlobal_Jim_EvalNamespace_Jim_EvalObj_Jim_EvalObjBackground_Jim_EvalObjList_Jim_EvalObjPrefix_Jim_EvalObjVector_Jim_EvalSource_Jim_ExpandHashTable_Jim_FileStoreStatData_Jim_FindByName_Jim_FindFileHandler_Jim_FindHashEntry_Jim_FormatString_Jim_FreeHashTable_Jim_FreeInterp_Jim_FreeObj_Jim_FreeStack_Jim_FreeStackElements_Jim_GenHashFunction_Jim_GetAssocData_Jim_GetBoolFromExpr_Jim_GetBoolean_Jim_GetCallFrameByLevel_Jim_GetCommand_Jim_GetDouble_Jim_GetEnum_Jim_GetEnviron_Jim_GetExitCode_Jim_GetFinalizer_Jim_GetGlobalVariable_Jim_GetGlobalVariableStr_Jim_GetHashTableIterator_Jim_GetIndex_Jim_GetLong_Jim_GetReference_Jim_GetReturnCode_Jim_GetString_Jim_GetTimeUsec_Jim_GetTtySettings_Jim_GetVariable_Jim_GetVariableStr_Jim_GetWide_Jim_GetWideExpr_Jim_HistoryAdd_Jim_HistoryGetMaxLen_Jim_HistoryGetline_Jim_HistoryLoad_Jim_HistorySave_Jim_HistorySetCompletion_Jim_HistorySetMaxLen_Jim_HistoryShow_Jim_InitHashTable_Jim_InitStack_Jim_InitStaticExtensions_Jim_IntHashFunction_Jim_InteractivePrompt_Jim_InterpIncrProcEpoch_Jim_InvalidateStringRep_Jim_IsBigEndian_Jim_IsDict_Jim_IsList_Jim_Length_Jim_ListAppendElement_Jim_ListAppendList_Jim_ListGetIndex_Jim_ListIndex_Jim_ListInsertElements_Jim_ListJoin_Jim_ListLength_Jim_ListRange_Jim_ListSetIndex_Jim_LoadLibrary_Jim_MakeErrorMessage_Jim_MakeGlobalNamespaceName_Jim_MakeTempFile_Jim_NamespaceQualifiers_Jim_NamespaceTail_Jim_NewDictObj_Jim_NewDoubleObj_Jim_NewIntObj_Jim_NewListObj_Jim_NewObj_Jim_NewReference_Jim_NewStringObj_Jim_NewStringObjNoAlloc_Jim_NewStringObjUtf8_Jim_NextHashEntry_Jim_OpenForRead_Jim_OpenForWrite_Jim_PackageProvide_Jim_PackageRequire_Jim_ParseSubCmd_Jim_ProcessEvents_Jim_ReaddirCmd_Jim_RegexpCmd_Jim_RegisterCoreCommands_Jim_RegsubCmd_Jim_RenameCommand_Jim_ReplaceHashEntry_Jim_ReturnCode_Jim_ScanString_Jim_ScriptIsComplete_Jim_SetAssocData_Jim_SetDictKeysVector_Jim_SetEnviron_Jim_SetFinalizer_Jim_SetGlobalVariableStr_Jim_SetResultErrno_Jim_SetResultFormatted_Jim_SetTtySettings_Jim_SetVariable_Jim_SetVariableLink_Jim_SetVariableStr_Jim_SetVariableStrWithStr_Jim_SignalId_Jim_SignalSetIgnored_Jim_StackLen_Jim_StackPeek_Jim_StackPop_Jim_StackPush_Jim_StrDup_Jim_StrDupLen_Jim_String_Jim_StringByteRangeObj_Jim_StringCompareObj_Jim_StringEqObj_Jim_StringMatchObj_Jim_StringRangeObj_Jim_StringToDouble_Jim_StringToWide_Jim_SubCmdProc_Jim_SubstObj_Jim_SyslogCmd_Jim_UnsetVariable_Jim_Utf8Length_Jim_WrongNumArgs_Jim_aioInit_Jim_arrayInit_Jim_binaryInit_Jim_clockInit_Jim_ensembleInit_Jim_eventloopInit_Jim_execInit_Jim_fileInit_Jim_globInit_Jim_historyInit_Jim_initjimshInit_Jim_interpInit_Jim_jsonInit_Jim_jsonencodeInit_Jim_loadInit_Jim_namespaceInit_Jim_nshelperInit_Jim_ooInit_Jim_packInit_Jim_packageInit_Jim_posixInit_Jim_readdirInit_Jim_regexpInit_Jim_signalInit_Jim_stdlibInit_Jim_syslogInit_Jim_tclcompatInit_Jim_tclprefixInit_Jim_treeInit__mh_execute_header_jim_regcomp_jim_regerror_jim_regexec_jim_regfree_jim_tt_name_jsmn_init_jsmn_parse_linenoise_linenoiseAddCompletion_linenoiseClearScreen_linenoiseColumns_linenoiseHistory_linenoiseHistoryAdd_linenoiseHistoryAddAllocated_linenoiseHistoryFree_linenoiseHistoryGetMaxLen_linenoiseHistoryLoad_linenoiseHistorySave_linenoiseHistorySetMaxLen_linenoiseSetCompletionCallback_linenoiseSetFreeHintsCallback_linenoiseSetHintsCallback_linenoiseSetMultiLine_linenoiseWithInitial_main_sb_alloc_sb_append_sb_append_len_sb_clear_sb_delete_sb_free_sb_insert_sb_realloc_sb_to_string_usage_utf8_charlen_utf8_fromunicode_utf8_index_utf8_lower_utf8_prev_len_utf8_strlen_utf8_strwidth_utf8_title_utf8_tounicode_utf8_upper_utf8_width__DefaultRuneLocale__NSGetEnviron___assert_rtn___darwin_check_fd_set_overflow___error___maskrune___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp___tolower___toupper__exit_abort_accept_access_acos_alarm_asin_atan_atan2_atexit_atoi_bind_bsearch_bzero_calloc_cfgetispeed_cfsetispeed_cfsetospeed_chdir_clearerr_clock_clock_gettime_close_closedir_closelog_connect_cos_cosh_div_dlclose_dlerror_dlopen_dlsym_dup_dup2_execvp_exp_fclose_fcntl_fdopen_feof_ferror_fflush_fgets_fileno_fmod_fopen_fork_fprintf_fputc_fputs_fread_free_freeaddrinfo_fseeko_fstat_fsync_ftello_fwrite_getaddrinfo_getc_getcwd_getegid_getenv_geteuid_getgid_gethostname_getpeername_getpid_getsockname_getsockopt_gettimeofday_getuid_gmtime_hypot_inet_ntop_ioctl_isalnum_isalpha_isascii_isatty_iscntrl_isdigit_isgraph_islower_isprint_ispunct_isspace_isupper_isxdigit_kill_link_listen_localtime_localtime_r_log_log10_longjmp_lseek_lstat_malloc_memchr_memcmp_memcpy_memmove_memset_mkdir_mkstemp_mktime_open_opendir_openlog_openpty_pipe_poll_pow_printf_putchar_puts_qsort_raise_rand_read_readdir_readlink_realloc_realpath$DARWIN_EXTSN_recvfrom_remove_rename_rmdir_select_sendto_setjmp_setsockopt_setvbuf_shutdown_sigaction_sin_sinh_sleep_snprintf_socket_socketpair_sprintf_sscanf_stat_strcasecmp_strchr_strcmp_strdup_strerror_strftime_strlen_strncasecmp_strncmp_strncpy_strpbrk_strptime_strrchr_strstr_strtod_strtol_strtoul_strtoull_symlink_syslog$DARWIN_EXTSN_tan_tanh_tcgetattr_tcsetattr_time_ualarm_umask_unlink_usleep_utimes_vsnprintf_waitpid_writedyld_stub_binder_JimPrintErrorMessage_JimSetArgv_subcmd_cmd_list_add_cmd_usage_subcmd_null_JimCompletionCallback_JimHistoryFreeCompletion_jim_strtoull_JimCheckConversion_JimInsertHashEntry_SetStringFromAny_JimGlobMatch_JimStringCompareUtf8_JimStringGetRange_JimGetScript_JimCreateCommand_JimQualifyName_JimUpdateProcNamespace_SetVariableFromAny_JimDictSugarSet_JimMarkObject_JimCreateCallFrame_JimInvokeDefer_JimFreeCallFrame_SetIntFromAny_ListInsertElements_SetListFromAny_ListSetIndex_JimRelToAbsRange_SetDictFromAny_DictAddElement_JimDictNew_JimDictHashFind_JimGetExpression_JimExprIntValOrVar_JimExprEvalTermNode_ExprBool_JimInvokeCommand_JimEvalObjList_Jim_IncrCoreCommand_JimExpandDictSugar_JimInterpolateTokens_JimAddErrorToStack_JimSortStringTable_JimNumberBase_DupStringInternalRep_JimCharsetMatch_utf8_tounicode_case_ScriptAddToken_JimParseSep_JimParseStr_JimParseVar_JimParseComment_JimParseSubBrace_JimParseSubCmd_JimParseSubQuote_JimMakeScriptObj_JimEscape_Jim_GetStringNoQualifier_FreeCommandInternalRep_DupCommandInternalRep_FreeDictSubstInternalRep_DupDictSubstInternalRep_SetDictSubstFromAny_FreeInterpolatedInternalRep_DupInterpolatedInternalRep_JimDictExpandArrayVariable_UpdateStringOfReference_JimReferencesHTHashFunction_JimReferencesHTKeyDup_JimReferencesHTKeyCompare_JimReferencesHTKeyDestructor_JimCommandsHT_HashFunction_JimObjectHTKeyValDup_JimCommandsHT_KeyCompare_JimObjectHTKeyValDestructor_JimCommandsHT_ValDestructor_JimDecrCmdRefCount_JimReferencesHTValDestructor_JimStringCopyHTHashFunction_JimStringCopyHTDup_JimStringCopyHTKeyCompare_JimStringCopyHTKeyDestructor_JimAssocDataHashTableValueDestructor_JimObjectHTHashFunction_JimObjectHTKeyCompare_JimVariablesHTValDestructor_UpdateStringOfInt_FreeSourceInternalRep_DupSourceInternalRep_UpdateStringOfDouble_FreeListInternalRep_DupListInternalRep_UpdateStringOfList_JimMakeListStringRep_ListEnsureLength_JimDictAdd_JimDictExpandHashTable_FreeDictInternalRep_DupDictInternalRep_UpdateStringOfDict_UpdateStringOfIndex_JimExprOpBin_JimExprOpIntBin_JimExprOpAnd_JimExprOpOr_JimExprOpTernary_JimExprOpStrBin_JimExprOpNumUnary_JimExprOpIntUnary_JimExprOpNone_JimExprOpDoubleUnary_JimExprGetTermBoolean_JimSearchList_JimPrngSeed_JimPrngInit_JimRandomBytes_JimParseCheckMissing_JimParseExprOperator_JimParseExprBoolean_ExprTreeBuildTree_ExprTreeFreeNodes_FreeExprInternalRep_DupExprInternalRep_JimTraceCallback_JimCallProcedure_FreeScriptInternalRep_DupScriptInternalRep_Jim_AliasCoreCommand_Jim_SetCoreCommand_Jim_UnsetCoreCommand_Jim_PutsCoreCommand_Jim_AddCoreCommand_Jim_MulCoreCommand_Jim_SubCoreCommand_Jim_DivCoreCommand_Jim_WhileCoreCommand_Jim_LoopCoreCommand_Jim_ForCoreCommand_Jim_ForeachCoreCommand_Jim_LmapCoreCommand_Jim_LassignCoreCommand_Jim_IfCoreCommand_Jim_SwitchCoreCommand_Jim_ListCoreCommand_Jim_LindexCoreCommand_Jim_LsetCoreCommand_Jim_LsearchCoreCommand_Jim_LlengthCoreCommand_Jim_LappendCoreCommand_Jim_LinsertCoreCommand_Jim_LreplaceCoreCommand_Jim_LsortCoreCommand_Jim_AppendCoreCommand_Jim_EvalCoreCommand_Jim_UplevelCoreCommand_Jim_ExprCoreCommand_Jim_BreakCoreCommand_Jim_ContinueCoreCommand_Jim_ProcCoreCommand_Jim_XtraceCoreCommand_Jim_ConcatCoreCommand_Jim_ReturnCoreCommand_Jim_UpvarCoreCommand_Jim_GlobalCoreCommand_Jim_StringCoreCommand_Jim_TimeCoreCommand_Jim_TimeRateCoreCommand_Jim_ExitCoreCommand_Jim_CatchCoreCommand_Jim_TryCoreCommand_Jim_RefCoreCommand_Jim_GetrefCoreCommand_Jim_SetrefCoreCommand_Jim_FinalizeCoreCommand_Jim_CollectCoreCommand_Jim_RenameCoreCommand_Jim_DictCoreCommand_Jim_SubstCoreCommand_Jim_InfoCoreCommand_Jim_ExistsCoreCommand_Jim_SplitCoreCommand_Jim_JoinCoreCommand_Jim_FormatCoreCommand_Jim_ScanCoreCommand_Jim_ErrorCoreCommand_Jim_LrangeCoreCommand_Jim_LrepeatCoreCommand_Jim_EnvCoreCommand_Jim_SourceCoreCommand_Jim_LreverseCoreCommand_Jim_RangeCoreCommand_Jim_RandCoreCommand_Jim_TailcallCoreCommand_Jim_LocalCoreCommand_Jim_UpcallCoreCommand_Jim_ApplyCoreCommand_JimAliasCmd_JimAliasCmdDelete_JimAddMulHelper_JimSubDivHelper_JimForeachMapHelper_JimListIterNext_Jim_ListIndices_ListSortElements_ListSortString_ListSortStringNoCase_ListSortInteger_ListSortReal_ListSortCommand_ListSortIndexHelper_JimCreateProcedureCmd_JimSetStackTrace_JimStringTrimLeft_JimStringTrimRight_JimStrCopyUpperLower_JimCatchTryHelper_JimIsGlobalNamespace_JimHashtablePatternMatch_JimVariablesMatch_JimCommandMatch_FreeScanFmtInternalRep_DupScanFmtInternalRep_UpdateStringOfScanFmt_qsortCompareStringPointers_utf8_map_case_cmp_casemap_cmp_range_reg_str_find_prefix_cmp_regtry_regbranch_reg_grow_regatom_reginsert_reg_utf8_tounicode_case_reg_addrange_reg_decode_escape_parse_hex_regmatch_enableRawMode_getWindowSize_sb_getline_linenoiseAtExit_queryCursor_setCursorPos_outputChars_fd_read_char_parseEscapeSequence_outputFormatted_fd_read_check_special_remove_char_get_char_remove_chars_insert_char_refreshLineAlt_setOutputHighlight_refreshShowHints_skip_space_nonspace_JimListAddPair_JimAioSubCmdProc_JimAioOpenCommand_JimAioSockCommand_JimAioPipeCommand_JimMakeChannel_aio_cmd_read_aio_cmd_copy_aio_cmd_getfd_aio_cmd_gets_aio_cmd_puts_aio_cmd_isatty_aio_cmd_recvfrom_aio_cmd_sendto_aio_cmd_accept_aio_cmd_listen_aio_cmd_sockopt_aio_cmd_sockname_aio_cmd_peername_aio_cmd_flush_aio_cmd_eof_aio_cmd_close_aio_cmd_seek_aio_cmd_tell_aio_cmd_filename_aio_cmd_ndelay_aio_cmd_sync_aio_cmd_buffering_aio_cmd_stat_aio_cmd_readable_aio_cmd_writable_aio_cmd_onexception_aio_cmd_lock_aio_cmd_unlock_aio_cmd_tty_JimCheckStreamError_JimAioSetError_JimAioErrorString_JimSetVariableSocketAddress_JimFormatSocketAddress_JimParseSocketAddress_aio_sockname_aio_eventinfo_JimMakeChannelPair_JimAioDelProc_stdio_writer_stdio_reader_stdio_getline_stdio_error_stdio_strerror_stdio_eof_array_cmd_exists_array_cmd_get_array_cmd_names_array_cmd_set_array_cmd_size_array_cmd_stat_array_cmd_unset_clock_cmd_clicks_clock_cmd_format_clock_cmd_micros_clock_cmd_millis_clock_cmd_scan_clock_cmd_seconds_parse_clock_options_JimEventHandlerScript_JimEventHandlerScriptFinalize_JimELAssocDataDeleProc_JimELVwaitCommand_JimELUpdateCommand_JimELAfterCommand_JimAfterTimeHandler_JimAfterTimeEventFinalizer_JimParseAfterId_Jim_ExecCmd_JimFreeWaitInfoTable_Jim_WaitCommand_Jim_PidCommand_JimCreatePipeline_JimDetachPids_JimAppendStreamToString_JimGetChannelFd_JimWaitRemove_JimMakeErrorCode_AppendStatElement_JimGetFileType_Jim_PwdCmd_Jim_CdCmd_file_cmd_atime_file_cmd_mtime_file_cmd_mtimeus_file_cmd_copy_file_cmd_dirname_file_cmd_rootname_file_cmd_extension_file_cmd_tail_file_cmd_split_file_cmd_normalize_file_cmd_join_file_cmd_readable_file_cmd_writable_file_cmd_executable_file_cmd_exists_file_cmd_delete_file_cmd_mkdir_file_cmd_tempfile_file_cmd_rename_file_cmd_link_file_cmd_readlink_file_cmd_size_file_cmd_stat_file_cmd_lstat_file_cmd_type_file_cmd_owned_file_cmd_isdirectory_file_cmd_isfile_file_stat_JimSetFileTimes_JimStripTrailingSlashes_file_access_mkdir_all_file_lstat_history_cmd_add_history_cmd_setcompletion_history_cmd_getline_history_cmd_keep_history_cmd_load_history_cmd_save_history_cmd_show_JimInterpCommand_JimInterpCopyVariable_JimInterpSubCmdProc_JimInterpDelProc_interp_cmd_eval_interp_cmd_delete_interp_cmd_alias_JimInterpAliasProc_JimInterpDelAlias_json_decode_json_decode_dump_container_json_decode_get_type_json_decode_add_schema_type_json_decode_dump_value_JimFreeLoadHandles_Jim_LoadCoreCommand_JimFreeOneLoadHandle_JimNamespaceCmd_JimVariableCmd_Jim_UnpackCmd_Jim_PackCmd_package_cmd_provide_package_cmd_require_package_cmd_names_Jim_PosixForkCommand_Jim_PosixGetidsCommand_Jim_PosixGethostnameCommand_Jim_PosixUptimeCommand_Jim_PosixSetError_SetRegexpFromAny_FreeRegexpInternalRep_Jim_AlarmCmd_Jim_KillCmd_Jim_SleepCmd_signal_set_sigmask_result_JimSignalCmdDelete_find_signal_by_name_signal_cmd_handle_signal_cmd_ignore_signal_cmd_block_signal_cmd_default_signal_cmd_check_signal_cmd_throw_do_signal_cmd_signal_handler_signal_ignorer_Jim_SyslogCmdDelete_Jim_TclPrefixCoreCommand_JimDictHashFind.cold.1_JimGetExpression.cold.1_ListEnsureLength.cold.1_Jim_StringCoreCommand.cold.1_JimCreateProcedureCmd.cold.1_utf8_prev_len.cold.1_sb_delete.cold.1_queryCursor.cold.1_outputFormatted.cold.1_refreshLineAlt.cold.1_JimAioOpenCommand.cold.1_JimMakeChannel.cold.1_JimInterpAliasProc.cold.1_json_decode_get_type.cold.1_json_decode_add_schema_type.cold.1_JimCanonicalNamespace.cold.1_JimCanonicalNamespace.cold.2_completion_callback_assoc_key_jim_true_false_lens_default_trim_chars_unicode_case_mapping_upper_unicode_case_mapping_lower_unicode_case_mapping_title_unicode_range_combining_unicode_range_wide_baudtable_JimAioOpenCommand.modeflags_subcmdLookupObjType_dummy_subcmd_Jim_FormatString.badIndex_stringObjType_comparedStringObjType_commandObjType_referenceObjType_JimRefMarkHashTableType_JimCommandsHashTableType_JimReferencesHashTableType_JimAssocDataHashTableType_JimPackageHashTableType_intObjType_sourceObjType_coercedDoubleObjType_doubleObjType_listObjType_dictObjType_indexObjType_jimReturnCodes_returnCodeObjType_jim_tt_name.tt_names_exprObjType_variableObjType_scriptObjType_Jim_CoreCommandsTable_getEnumObjType_scriptLineObjType_dictSubstObjType_interpolatedObjType_JimVariablesHashTableType_jim_true_false_strings_Jim_ExprOperators_Jim_LsearchCoreCommand.options_Jim_LsortCoreCommand.options_Jim_StringCoreCommand.options_Jim_StringCoreCommand.nocase_options_Jim_StringCoreCommand.nocase_length_options_JimStringIs.strclassnames_JimCatchTryHelper.wrongargs_catchtry_JimCatchTryHelper.try_options_Jim_DictCoreCommand.options_Jim_SubstCoreCommand.options_Jim_InfoCoreCommand.commands_Jim_ExistsCoreCommand.options_scanFmtStringObjType_jim_regerror.error_strings_regatom.character_class_unsupported_term_parity_map_data_size_map_stop_size_map_input_map_output_map_tty_settings_names_aio_command_table_aio_cmd_read.options_sockopts_aio_cmd_close.options_aio_cmd_buffering.options_JimAioOpenCommand.modetypes_JimAioOpenCommand.simplemodes_JimAioSockCommand.options_JimAioSockCommand.mode_JimAioOpenPtyCommand.mode_JimAioPipeCommand.mode_stdio_fops_array_command_table_clock_command_table_parse_clock_options.options_JimELUpdateCommand.options_JimELAfterCommand.options_file_command_table_file_cmd_link.options_history_command_table_interp_command_table_parse_json_decode_options.options_json_decode_add_schema_type.schema_names_JimNamespaceCmd.options_Jim_UnpackCmd.options_Jim_PackCmd.options_package_command_table_Jim_RegexpCmd.options_Jim_RegsubCmd.options_regexpObjType_signal_command_table_facilities_priorities_Jim_TclPrefixCoreCommand.options_Jim_TclPrefixCoreCommand.matchoptions__dyld_private_history_max_len_JimEmptyStringRep_sort_info_history_history_len_completionCallback_completionUserdata_hintsCallback_hintsUserdata_freeHintsCallback_mlmode_orig_termios_atexit_registered_rawmode_showhints_sigsignored_siginfo_sigloc_sa_old   ^XT0  jimshMoi_VAʺO&T={1]Dh;ӛBK!CaZc)t!sIsXb[5YxA'j1*[ytx՛/^Q mdb nk@` jWx ¯AWyܓj`B%pk*OQ..sm;p:so/fγw򞯃IIFpyzLg [tF=JܶNuP_Ԕm+@0rpXH}ŌDFIR2*(AoJʑc3!J+ G<z)&(:8zl@0/+Cx\$L8H:3u.M_pCA0+9G"ȋfa<~\uWS7Qid4wlSäQuE|>($nTET4NxOB*71[F}Ͷ,kٽ|mZyMZBLgJDIeC' m+'Wdڲ0qs{k逞8FU.PnR\-68V8WߕՈG==Q@s#?rüW`-{ul?lIth1w|b6O>ϱsi+¯?5E= w-Rp|Zߙ=_Vn-5YhK((?c$R\/Y ^a]kt|10me@Hkɐ5s2IA.Y7?P{s&zG2yAMPUznIh`{e=#N3,diFɫ>cƂA`w>:t']0HvUV} JBZg!]@!s89cہ>bʜOD:wӺ]5(\,FZӴ(>T:ƿMoߐͰůFdhi_wJ SuN,nmEL}0=I.bT=7X䰜̮=>*Lv)?0qWoᐹq<^8As9Kxz36d zM$}>W[5E]O&$㓅椈($+jxmhZrC(5x7uO \x~Gۃ4ƱG;H C;uu\,?m|Di\)ݥiSbpfp{Wj%o7aI^]P>ZQ?t#%F0=5) ) ao/2OBߨvbO:+ 0s_stG\nRc~5B)3d!Ai}uP 0E a[ `?~t ^2n>xKڇm_BAx)ouPo1$;IHlYljήz T̷Sa[R瘵{3c4K;[OT-*4AQ ЪLڟ쮴}k Yt B߿= (\c"pj'hYϠ4O DP,`%5-I+enN($C"=nޤ7 ɂ.<^b6BhMg@9u'PcD֡pXofkOX||zڽH,G?Nd*mSzXofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,;kvvhv3*Vã*iqQkB+PLO >Dƈ`hHHME)o& ! VH)|.X_~bm]{RtHҘ+